[Home] [Help]
5979:
5980: -- Procedure : check_overcommitment_single
5981: -- Purpose : First checks if this assignment alone causes resource
5982: -- overcommitment. If Yes, then stores self-conflict and user
5983: -- action in PA_ASSIGNMENT_CONFLICT_HIST.
5984: PROCEDURE check_overcommitment_single( p_assignment_id IN NUMBER,
5985: p_resolve_conflict_action_code IN VARCHAR2,
5986: p_conflict_group_id IN NUMBER := NULL,
5987: x_overcommitment_flag OUT NOCOPY VARCHAR2, --File.Sql.39 bug 4440895
6175:
6176: -- Procedure : check_overcommitment_mult
6177: -- Purpose : First checks if this assignment alone causes resource
6178: -- overcommitment. If Yes, then stores self-conflict and user
6179: -- action in PA_ASSIGNMENT_CONFLICT_HIST.
6180: PROCEDURE check_overcommitment_mult(p_item_type IN PA_WF_PROCESSES.item_type%TYPE,
6181: p_item_key IN PA_WF_PROCESSES.item_key%TYPE,
6182: p_conflict_group_id IN NUMBER := NULL,
6183: p_resolve_conflict_action_code IN VARCHAR2,
6585:
6586:
6587: -- Procedure : resolve_conflicts
6588: -- Purpose : Resolves remaining conflicts by taking action chosen to user
6589: -- detailed in PA_ASSIGNMENT_CONFLICT_HIST. Updates
6590: -- processed_flag in the table once complete.
6591: PROCEDURE resolve_conflicts( p_conflict_group_id IN NUMBER,
6592: p_assignment_id IN NUMBER,
6593: x_return_status OUT NOCOPY VARCHAR2, --File.Sql.39 bug 4440895
6600:
6601: -- Cursor c1 is used to resolve_conflicts_action_code.
6602: CURSOR c1 IS
6603: SELECT DISTINCT resolve_conflicts_action_code
6604: FROM pa_assignment_conflict_hist
6605: WHERE conflict_group_id = p_conflict_group_id
6606: AND assignment_id = p_assignment_id
6607: AND processed_flag = 'N';
6608:
6614: SELECT conflict_assignment_id,
6615: decode(asgn.MASS_WF_IN_PROGRESS_FLAG,
6616: 'Y', decode(hist.intra_txn_conflict_flag, 'N', 'Y', 'N'),
6617: decode(asgn.apprvl_status_code, 'ASGMT_APPRVL_SUBMITTED', 'Y', 'N')) locking_flag
6618: FROM pa_assignment_conflict_hist hist, pa_project_assignments asgn
6619: WHERE hist.conflict_assignment_id = asgn.assignment_id
6620: AND hist.conflict_group_id = p_conflict_group_id
6621: AND hist.assignment_id = p_assignment_id
6622: AND hist.processed_flag = 'N'
6715: fi.item_quantity,
6716: fi_overcom.overcommitment_quantity
6717: BULK COLLECT INTO l_assignment_id_tbl, l_item_date_tbl, l_week_end_date_tbl, l_item_quantity_tbl, l_overcom_quantity_tbl
6718: FROM pa_forecast_items fi,
6719: pa_assignment_conflict_hist conf,
6720: (SELECT
6721: resource_id,
6722: item_date,
6723: DECODE(sign(capacity_quantity*G_OVERCOMMITMENT_PERCENTAGE-overcommitment_quantity), 1, 0, overcommitment_quantity) overcommitment_quantity,
6748: fi.GLOBAL_EXP_PERIOD_END_DATE,
6749: fi.item_quantity,
6750: fi_overcom.overcommitment_quantity
6751: BULK COLLECT INTO l_assignment_id_tbl, l_item_date_tbl, l_week_end_date_tbl, l_item_quantity_tbl, l_overcom_quantity_tbl
6752: FROM pa_forecast_items fi, pa_assignment_conflict_hist conf,
6753: (SELECT
6754: resource_id,
6755: overcommitment_quantity,
6756: item_date,
6983: PA_SCHEDULE_UTILS.debug('After Change Work Pattern');
6984: END IF;
6985: END LOOP;
6986:
6987: -- Update pa_assignment_conflict_hist table.
6988: IF x_return_status = FND_API.G_RET_STS_SUCCESS THEN
6989: PA_ASGN_CONFLICT_HIST_PKG.update_rows(p_conflict_group_id => p_conflict_group_id,
6990: p_assignment_id => p_assignment_id,
6991: p_processed_flag => 'Y',
7330: Also removed distinct and added rownum = 1
7331:
7332: CURSOR c1 IS
7333: SELECT DISTINCT asgn.project_id, proj.name, proj.segment1, proj.person_name, proj.carrying_out_organization_name, proj.customer_name
7334: FROM pa_project_assignments asgn, pa_assignment_conflict_hist hist, pa_project_lists_v proj
7335: WHERE asgn.assignment_id = hist.assignment_id
7336: AND hist.conflict_group_id = p_conflict_group_id
7337: AND asgn.project_id = proj.project_id;
7338:
7341: /* Cursor added for bug 3115273 */
7342:
7343: CURSOR c1 IS
7344: SELECT asgn.project_id, proj.name, proj.segment1, proj.carrying_out_organization_id
7345: FROM pa_project_assignments asgn, pa_assignment_conflict_hist hist, pa_projects_all proj
7346: WHERE asgn.assignment_id = hist.assignment_id
7347: AND hist.conflict_group_id = p_conflict_group_id
7348: AND asgn.project_id = proj.project_id
7349: AND ROWNUM = 1;
7352:
7353: -- Retrieve conflict projects info.
7354: CURSOR c2 IS
7355: SELECT DISTINCT asgn.project_id, proj.name, proj.segment1
7356: FROM pa_project_assignments asgn, pa_assignment_conflict_hist hist, pa_projects_all proj
7357: WHERE asgn.assignment_id = hist.conflict_assignment_id
7358: AND hist.conflict_group_id = p_conflict_group_id
7359: AND asgn.project_id = proj.project_id
7360: AND hist.self_conflict_flag = 'N';
7363:
7364: -- Retrieve Self Conflicts info.
7365: CURSOR c3 IS
7366: SELECT assignment_id
7367: FROM pa_assignment_conflict_hist
7368: WHERE conflict_group_id = p_conflict_group_id
7369: AND self_conflict_flag = 'Y'
7370: AND resolve_conflicts_action_code = 'REMOVE_CONFLICTS';
7371:
7698: IS
7699:
7700: CURSOR c1 IS
7701: SELECT assignment_id
7702: FROM pa_assignment_conflict_hist
7703: WHERE conflict_group_id = p_conflict_group_id
7704: AND resolve_conflicts_action_code = 'REMOVE_CONFLICTS'
7705: AND self_conflict_flag = 'N'
7706: AND processed_flag = 'N';
7743: x_msg_data OUT NOCOPY VARCHAR2 ) --File.Sql.39 bug 4440895
7744: IS
7745: CURSOR c1 IS
7746: SELECT processed_flag
7747: FROM pa_assignment_conflict_hist
7748: WHERE conflict_group_id = p_conflict_group_id
7749: AND assignment_id = p_assignment_id
7750: AND resolve_conflicts_action_code = 'REMOVE_CONFLICTS'
7751: AND self_conflict_flag = 'N'
7788:
7789: -- 2167889: null instead of record_version_number
7790: CURSOR c1 IS
7791: SELECT DISTINCT conf.assignment_id, null record_version_number, asgn.assignment_type, asgn.start_date, asgn.end_date
7792: FROM pa_assignment_conflict_hist conf, pa_project_assignments asgn
7793: WHERE conf.conflict_group_id = p_conflict_group_id
7794: AND conf.assignment_id = asgn.assignment_id
7795: AND conf.resolve_conflicts_action_code = 'CANCEL_TXN_ITEM'
7796: AND conf.processed_flag = 'N';
7839: IS
7840:
7841: CURSOR c1 IS
7842: SELECT DISTINCT assignment_id
7843: FROM pa_assignment_conflict_hist
7844: WHERE conflict_group_id = p_conflict_group_id
7845: AND resolve_conflicts_action_code = 'REVERT_TXN_ITEM'
7846: AND processed_flag = 'N';
7847:
7889: BEGIN
7890:
7891: SELECT COUNT(DISTINCT assignment_id)
7892: INTO x_assignment_count
7893: FROM pa_assignment_conflict_hist
7894: WHERE conflict_group_id = p_conflict_group_id;
7895:
7896: x_return_status := FND_API.G_RET_STS_SUCCESS;
7897: EXCEPTION
7923:
7924: -- Cursor which retrieves the assignments on which action is not taken.
7925: CURSOR c1 IS
7926: SELECT assignment_id
7927: FROM pa_assignment_conflict_hist
7928: WHERE conflict_group_id = p_conflict_group_id
7929: AND resolve_conflicts_action_code = 'NOTIFY_IF_CONFLICT';
7930:
7931: v_c1 c1%ROWTYPE;
7967: IS
7968:
7969: CURSOR c1 IS
7970: SELECT hist.assignment_id
7971: FROM pa_assignment_conflict_hist hist, pa_project_assignments asgn
7972: WHERE hist.assignment_id = asgn.assignment_id
7973: AND hist.conflict_group_id = p_conflict_group_id
7974: AND asgn.apprvl_status_code = 'ASGMT_APPRVL_WORKING';
7975:
8977: from pa_forecast_items fi1, pa_project_assignments asgn, pa_schedules sch, pa_project_statuses a, pa_project_statuses b
8978: where (fi1.assignment_id = p_assignment_id
8979: or fi1.assignment_id in
8980: (select conflict_assignment_id
8981: from pa_assignment_conflict_hist
8982: where assignment_id = p_assignment_id
8983: and conflict_group_id = p_conflict_group_id
8984: and self_conflict_flag = 'N'
8985: and intra_txn_conflict_flag = 'Y'))
8995: select fi2.resource_id,
8996: item_quantity,
8997: fi2.item_date,
8998: fi2.delete_flag
8999: from pa_forecast_items fi2, pa_project_assignments asgn, pa_assignment_conflict_hist hist
9000: where fi2.assignment_id = asgn.assignment_id
9001: and fi2.assignment_id = hist.conflict_assignment_id
9002: and hist.conflict_group_id = p_conflict_group_id
9003: and hist.assignment_id = p_assignment_id
9059: forecast_item_type
9060: from pa_forecast_items fi1, pa_schedules sch, pa_project_statuses a, pa_project_statuses b
9061: where (fi1.assignment_id = p_assignment_id
9062: or fi1.assignment_id in (select conflict_assignment_id
9063: from pa_assignment_conflict_hist
9064: where conflict_group_id = p_conflict_group_id
9065: and assignment_id = p_assignment_id
9066: and self_conflict_flag = 'N'))
9067: and fi1.assignment_id = sch.assignment_id
9117: IS
9118:
9119: CURSOR c1 IS
9120: SELECT conflict_group_id, assignment_id
9121: FROM pa_assignment_conflict_hist
9122: WHERE conflict_group_id = p_conflict_group_id
9123: AND assignment_id = p_assignment_id;
9124: -- AND processed_flag = 'N';
9125:
9170: l_action_code VARCHAR2(30);
9171:
9172: CURSOR c1 IS
9173: SELECT resolve_conflicts_action_code
9174: FROM pa_assignment_conflict_hist
9175: WHERE conflict_group_id = p_conflict_group_id
9176: AND assignment_id = p_assignment_id;
9177:
9178: v_c1 c1%ROWTYPE;
9215:
9216: l_affected VARCHAR2(1) := 'N';
9217: CURSOR c1 IS
9218: SELECT DISTINCT asgn.project_id
9219: FROM pa_project_assignments asgn, pa_assignment_conflict_hist hist
9220: WHERE asgn.assignment_id = hist.conflict_assignment_id
9221: AND hist.conflict_group_id = p_conflict_group_id
9222: AND hist.assignment_id = p_assignment_id;
9223:
9250: l_result VARCHAR2(1);
9251:
9252: CURSOR c1 IS
9253: SELECT self_conflict_flag
9254: FROM pa_assignment_conflict_hist
9255: WHERE conflict_group_id = p_conflict_group_id
9256: AND assignment_id = p_assignment_id
9257: AND self_conflict_flag = 'Y'
9258: AND resolve_conflicts_action_code = 'REMOVE_CONFLICTS';