2941: END IF;
2942: END IF;
2943: END IF;
2944: --bug 3947726
2945: --do not allow sub-tasks creation if the lowest level task has progress.
2946: --This is also applicable for shared case if the task has only ETC but not actual. If actual is there then it means it will be stopped in expenditure items validation.
2947: IF pa_proj_task_struc_pub.wp_str_exists(l_project_id) = 'Y'
2948: AND pa_task_assignment_utils.get_task_level_record( l_project_id, p_parent_task_ver_id ) IS NOT NULL
2949: AND PA_PROGRESS_UTILS.check_object_has_prog(
4958: RETURN l_ret_code ;
4959: END CHECK_USER_VIEW_TASK_PRIVILEGE;
4960: --
4961: --
4962: function GET_SUB_TASK_VERSION_ID(p_task_version_id IN number) return number
4963: is
4964: l_sub_task_id NUMBER := NULL;
4965: l_sub_task_version_id NUMBER := NULL;
4966: --
4960: --
4961: --
4962: function GET_SUB_TASK_VERSION_ID(p_task_version_id IN number) return number
4963: is
4964: l_sub_task_id NUMBER := NULL;
4965: l_sub_task_version_id NUMBER := NULL;
4966: --
4967: --
4968: CURSOR c1 IS
4961: --
4962: function GET_SUB_TASK_VERSION_ID(p_task_version_id IN number) return number
4963: is
4964: l_sub_task_id NUMBER := NULL;
4965: l_sub_task_version_id NUMBER := NULL;
4966: --
4967: --
4968: CURSOR c1 IS
4969: SELECT object_id_to1
4973: AND relationship_type = 'S';
4974: --
4975: begin
4976: OPEN c1;
4977: FETCH c1 into l_sub_task_version_id;
4978: CLOSE c1;
4979: return l_sub_task_version_id;
4980: exception
4981: when others then
4975: begin
4976: OPEN c1;
4977: FETCH c1 into l_sub_task_version_id;
4978: CLOSE c1;
4979: return l_sub_task_version_id;
4980: exception
4981: when others then
4982: return(SQLCODE);
4983: end GET_SUB_TASK_VERSION_ID;
4979: return l_sub_task_version_id;
4980: exception
4981: when others then
4982: return(SQLCODE);
4983: end GET_SUB_TASK_VERSION_ID;
4984: --
4985: --
4986: FUNCTION check_deliv_in_hie_upd(p_task_version_id IN number)
4987: RETURN NUMBER
5029: -- l_err_msg VARCHAR2(80) :=NULL;
5030: l_err_msg VARCHAR2(1) :='N'; --Bug 3475920
5031: l_cnt_no_del_in_branch NUMBER:=0;
5032: l_parent_task_ver_id NUMBER:=NULL;
5033: l_sub_task_ver_id NUMBER:=NULL;
5034: BEGIN
5035: --
5036: l_parent_task_ver_id:=GET_PARENT_TASK_VERSION_ID(p_task_version_id);
5037: l_sub_task_ver_id:=GET_SUB_TASK_VERSION_ID(p_task_version_id);
5033: l_sub_task_ver_id NUMBER:=NULL;
5034: BEGIN
5035: --
5036: l_parent_task_ver_id:=GET_PARENT_TASK_VERSION_ID(p_task_version_id);
5037: l_sub_task_ver_id:=GET_SUB_TASK_VERSION_ID(p_task_version_id);
5038: --
5039: IF l_parent_task_ver_id IS NOT NULL THEN
5040: FOR cur_check_deliv_bt_rec in cur_check_deliv_bt(l_parent_task_ver_id)
5041: LOOP
5045: END IF;
5046: END LOOP;
5047: END IF;
5048: --
5049: IF l_sub_task_ver_id IS NOT NULL THEN
5050: FOR cur_check_deliv_tb_rec in cur_check_deliv_tb(l_sub_task_ver_id)
5051: LOOP
5052: IF cur_check_deliv_tb_rec.base_percent_comp_deriv_code LIKE 'DELIVERABLE' THEN
5053: l_cnt_no_del_in_branch := l_cnt_no_del_in_branch + 1;
5046: END LOOP;
5047: END IF;
5048: --
5049: IF l_sub_task_ver_id IS NOT NULL THEN
5050: FOR cur_check_deliv_tb_rec in cur_check_deliv_tb(l_sub_task_ver_id)
5051: LOOP
5052: IF cur_check_deliv_tb_rec.base_percent_comp_deriv_code LIKE 'DELIVERABLE' THEN
5053: l_cnt_no_del_in_branch := l_cnt_no_del_in_branch + 1;
5054: EXIT;
5136: cursor cur_lowest_level_fin_task (c_project_id NUMBER
5137: , c_task_version_id NUMBER
5138: , c_include_sub_proj_flag VARCHAR2) -- Fix for Bug # 4290042.
5139: is
5140: -- This query checks if the task version has a financial sub-task.
5141: select 'N'
5142: from pa_object_relationships por1, pa_proj_element_versions ppev1
5143: where por1.object_id_to1 = ppev1.element_version_id
5144: and por1.relationship_type = 'S'
5145: and ppev1.project_id = c_project_id
5146: and por1.object_id_from1 = c_task_version_id
5147: and ppev1.financial_task_flag = 'Y'
5148: union all
5149: -- This query checks if the task version has a linking sub-task that has a financial link to
5150: -- a sub-project if the input p_include_sub_proj_flag = 'Y'.
5151: select 'N'
5152: from pa_object_relationships por2, pa_proj_element_versions ppev2
5153: where por2.object_id_to1 = ppev2.element_version_id
5315: AND PROJECT_ID = p_project_id; */
5316:
5317: /*l_task_id_tbl SYSTEM.PA_NUM_TBL_TYPE := SYSTEM.PA_NUM_TBL_TYPE(); */ -- Commented this as this is no more needed after Bug#4964992 fix.
5318: l_dummy number:=0;
5319: l_task_tbl sub_task; --Added this for Bug#4964992.
5320:
5321: BEGIN
5322: x_error_code := 0;
5323: x_error_msg_code := NULL ;
5354: FROM
5355: sys.dual
5356: WHERE
5357: exists (SELECT NULL
5358: FROM PA_EXPENDITURE_ITEMS_all pei,table(cast(l_task_tbl as sub_task)) st --Changed the query for Bug#4964992
5359: WHERE pei.TASK_ID = st.task_id)
5360: or exists (SELECT NULL
5361: FROM PA_EI_DENORM ped, table(cast(l_task_tbl as sub_task)) st
5362: WHERE ped.TASK_ID = st.task_id);
5357: exists (SELECT NULL
5358: FROM PA_EXPENDITURE_ITEMS_all pei,table(cast(l_task_tbl as sub_task)) st --Changed the query for Bug#4964992
5359: WHERE pei.TASK_ID = st.task_id)
5360: or exists (SELECT NULL
5361: FROM PA_EI_DENORM ped, table(cast(l_task_tbl as sub_task)) st
5362: WHERE ped.TASK_ID = st.task_id);
5363: IF l_dummy = 1 THEN
5364: x_error_code :=50;
5365: x_error_msg_code := 'PA_TSK_EXP_ITEM_EXIST';
5391: FROM
5392: sys.dual
5393: WHERE
5394: exists (SELECT NULL
5395: FROM po_distributions_all poa, table(cast(l_task_tbl as sub_task)) st --Changed the query for Bug#4964992
5396: where poa.project_id = p_project_id
5397: AND poa.TASK_ID = st.task_id);
5398:
5399: IF l_dummy = 1 THEN
5428: FROM
5429: sys.dual
5430: WHERE
5431: exists (SELECT NULL
5432: FROM po_req_distributions_all prd, table(cast(l_task_tbl as sub_task)) st --Changed the query for Bug#4964992
5433: where prd.project_id = p_project_id
5434: AND prd.TASK_ID = st.task_id);
5435:
5436: IF l_dummy = 1 THEN
5465: FROM
5466: sys.dual
5467: WHERE
5468: exists (SELECT NULL
5469: FROM ap_invoices_all aia, table(cast(l_task_tbl as sub_task)) st --Changed the query for Bug#4964992
5470: where aia.project_id = p_project_id
5471: AND aia.TASK_ID = st.task_id);
5472:
5473: IF l_dummy = 1 THEN
5501: FROM
5502: sys.dual
5503: WHERE
5504: exists (SELECT NULL
5505: FROM ap_invoice_distributions_all aid, table(cast(l_task_tbl as sub_task)) st --Changed the query for Bug#4964992
5506: where aid.project_id = p_project_id
5507: AND aid.TASK_ID = st.task_id);
5508:
5509: IF l_dummy = 1 THEN
5537: FROM
5538: sys.dual
5539: WHERE
5540: exists (SELECT NULL
5541: FROM pa_commitment_txns pct, table(cast(l_task_tbl as sub_task)) st --Changed the query for Bug#4964992
5542: where pct.project_id = p_project_id
5543: AND pct.TASK_ID = st.task_id);
5544:
5545: IF l_dummy = 1 THEN
5573: FROM
5574: sys.dual
5575: WHERE
5576: exists (SELECT NULL
5577: FROM pa_comp_rule_ot_defaults_all pcr, table(cast(l_task_tbl as sub_task)) st --Changed the query for Bug#4964992
5578: where pcr.project_id = p_project_id
5579: AND pcr.TASK_ID = st.task_id)
5580: or exists (SELECT NULL
5581: FROM pa_org_labor_sch_rule pol, table(cast(l_task_tbl as sub_task)) st
5577: FROM pa_comp_rule_ot_defaults_all pcr, table(cast(l_task_tbl as sub_task)) st --Changed the query for Bug#4964992
5578: where pcr.project_id = p_project_id
5579: AND pcr.TASK_ID = st.task_id)
5580: or exists (SELECT NULL
5581: FROM pa_org_labor_sch_rule pol, table(cast(l_task_tbl as sub_task)) st
5582: where overtime_project_id = p_project_id
5583: AND pol.overtime_TASK_ID = st.task_id);
5584:
5585: IF l_dummy = 1 THEN
5613: FROM
5614: sys.dual
5615: WHERE
5616: exists (SELECT NULL
5617: FROM pa_draft_invoice_details_all pdi, table(cast(l_task_tbl as sub_task)) st --Changed the query for Bug#4964992
5618: where pdi.CC_TAX_TASK_ID =st.task_id);
5619:
5620: IF l_dummy = 1 THEN
5621: x_error_code :=160;
5648: FROM
5649: sys.dual
5650: WHERE
5651: exists (SELECT NULL
5652: FROM pa_project_customers pc, table(cast(l_task_tbl as sub_task)) st --Changed the query for Bug#4964992
5653: where pc.project_id = p_project_id
5654: and pc.receiver_task_id =st.task_id);
5655:
5656: IF l_dummy = 1 THEN
5685: FROM
5686: sys.dual
5687: WHERE
5688: exists (SELECT NULL
5689: FROM ap_exp_report_dists_all er, table(cast(l_task_tbl as sub_task)) st --Changed the query for Bug#4964992
5690: where er.project_id = p_project_id
5691: AND er.TASK_ID = st.task_id);
5692:
5693: IF l_dummy = 1 THEN
5722: FROM
5723: sys.dual
5724: WHERE
5725: exists (SELECT NULL
5726: FROM mtl_material_transactions mtl, table(cast(l_task_tbl as sub_task)) st --Changed the query for Bug#4964992
5727: where mtl.project_id = p_project_id
5728: AND mtl.TASK_ID = st.task_id);
5729:
5730: IF l_dummy = 1 THEN
5785:
5786: -- API name : get_task_hierarchy
5787: -- Type : Function
5788: -- Pre-reqs : None
5789: -- Return Value : Type sub_task (Table)
5790:
5791: -- Prameters :
5792: -- p_project_id IN NUMBER
5793: -- p_task_id IN NUMBER
5822: FUNCTION get_task_hierarchy(
5823: p_project_id IN NUMBER,
5824: p_task_id IN NUMBER
5825: )
5826: RETURN sub_task
5827: IS
5828:
5829: l_task_tbl sub_task;
5830: l_debug_level3 CONSTANT NUMBER := 3;
5825: )
5826: RETURN sub_task
5827: IS
5828:
5829: l_task_tbl sub_task;
5830: l_debug_level3 CONSTANT NUMBER := 3;
5831: l_user_id NUMBER;
5832: l_login_id NUMBER;
5833: l_debug_mode VARCHAR2(1);