1: Package Body Pa_Rbs_Elements_Pub AS
2: /* $Header: PARELEPB.pls 120.0.12020000.4 2013/03/27 17:46:25 bpottipa ship $*/
3:
4: /*
5: This procedure re generates the cbs cost code
7: procedure cbs_generate_cost_code(P_RBS_Version_Id IN Number,P_Element_Id IN number,P_Cost_Code IN varchar2,P_Cost_Code_Name IN varchar2)
8: IS
9: Cursor Cur_get_child_node is
10: select rbs_element_id,level_code,RESOURCE_NAME
11: from pa_rbs_elements pre , pa_rbs_element_names_vl v
12: where pre.rbs_element_name_id=v.rbs_element_name_id and pre.rbs_version_id=P_RBS_Version_Id
13: START WITH pre.parent_element_id = p_element_id
14: CONNECT BY PRIOR pre.rbs_element_id = pre.parent_element_id;
15: BEGIN
13: START WITH pre.parent_element_id = p_element_id
14: CONNECT BY PRIOR pre.rbs_element_id = pre.parent_element_id;
15: BEGIN
16: for c_child_Node in Cur_get_child_node LOOP
17: Update pa_rbs_elements set
18: cost_code=P_Cost_Code||'.'||c_child_Node.level_Code
19: ,cost_code_name=P_Cost_Code_Name||'.'||c_child_Node.RESOURCE_NAME
20: where rbs_element_id=c_child_Node.rbs_element_id and rbs_version_id=P_RBS_Version_Id;
21: END LOOP;
82: Pa_Debug.TrackPath('ADD','Process_Rbs_Elements Pub');
83:
84: Pa_Debug.G_Stage := 'Call Compatibility API.';
85: If Not Fnd_Api.Compatible_API_Call (
86: Pa_Rbs_Elements_Pub.G_Api_Version_Number,
87: P_Api_Version_Number,
88: l_Api_Name,
89: Pa_Rbs_Elements_Pub.G_Pkg_Name) Then
90:
85: If Not Fnd_Api.Compatible_API_Call (
86: Pa_Rbs_Elements_Pub.G_Api_Version_Number,
87: P_Api_Version_Number,
88: l_Api_Name,
89: Pa_Rbs_Elements_Pub.G_Pkg_Name) Then
90:
91: Raise Fnd_Api.G_Exc_Unexpected_Error;
92:
93: End If;
126: -- When it is a delete, the resource source ID is not passed in
127: -- Need to get it for the error message token
128: Select Resource_Source_Id
129: Into l_Resource_Source_Id
130: From pa_rbs_elements
131: Where rbs_element_id = P_Element_Id_Tbl(i);
132:
133: Pa_Rbs_Elements_Pvt.Process_Rbs_Element(
134: P_RBS_Version_Id => P_RBS_Version_Id,
129: Into l_Resource_Source_Id
130: From pa_rbs_elements
131: Where rbs_element_id = P_Element_Id_Tbl(i);
132:
133: Pa_Rbs_Elements_Pvt.Process_Rbs_Element(
134: P_RBS_Version_Id => P_RBS_Version_Id,
135: P_Parent_Element_Id => P_Parent_Element_Id_Tbl(i),
136: P_Element_Id => P_Element_Id_Tbl(i),
137: P_Resource_Type_Id => P_Resource_Type_Id_Tbl(i),
143:
144: If X_Error_Msg_Data is not null Then
145:
146: Pa_Debug.G_Stage := 'Assign error message - 1.';
147: Pa_Rbs_Elements_Pub.PopulateErrorStack(
148: P_Calling_Page => P_Calling_Page,
149: P_Element_Id => P_Element_Id_Tbl(i),
150: P_Resource_Type_Id => P_Resource_Type_Id_Tbl(i),
151: P_Resource_Source_Id => l_Resource_Source_Id,
170:
171: If P_Resource_Source_Id_Tbl(i) is Null Then
172:
173: Pa_Debug.G_Stage := 'Get Resource Source Id using code - 2.';
174: Pa_Rbs_Elements_Utils.GetResSourceId(
175: P_Resource_Type_Id => P_Resource_Type_Id_Tbl(i),
176: P_Resource_Source_Code => P_Resource_Source_Code_Tbl(i),
177: X_Resource_Source_Id => l_Resource_Source_Id);
178:
196: l_level_code :=null;
197: l_cost_code :=null;
198: l_cost_code_name :=null; --16430696
199: end if;
200: Pa_Rbs_Elements_Pvt.Process_Rbs_Element(
201: P_RBS_Version_Id => P_RBS_Version_Id,
202: P_Parent_Element_Id => P_Parent_Element_Id_Tbl(i),
203: P_Element_Id => P_Element_Id_Tbl(i),
204: P_Resource_Type_Id => P_Resource_Type_Id_Tbl(i),
213:
214: If X_Error_Msg_Data is not null Then
215:
216: Pa_Debug.G_Stage := 'Assign error message - 2.';
217: Pa_Rbs_Elements_Pub.PopulateErrorStack(
218: P_Calling_Page => P_Calling_Page,
219: P_Element_Id => P_Element_Id_Tbl(i),
220: P_Resource_Type_Id => P_Resource_Type_Id_Tbl(i),
221: P_Resource_Source_Id => l_Resource_Source_Id,
247: If P_Resource_Source_Id_Tbl(i) is Null Then
248:
249: Pa_Debug.G_Stage := 'Get Resource Source Id using code - 3.';
250:
251: Pa_Rbs_Elements_Utils.GetResSourceId(
252: P_Resource_Type_Id => P_Resource_Type_Id_Tbl(i),
253: P_Resource_Source_Code => P_Resource_Source_Code_Tbl(i),
254: X_Resource_Source_Id => l_Resource_Source_Id);
255:
271: l_cost_code_name :=null;--16430696
272: end if;
273:
274: Pa_Debug.G_Stage := 'Call Process_Rbs_Elements() Pvt - 3.';
275: Pa_Rbs_Elements_Pvt.Process_Rbs_Element(
276: P_RBS_Version_Id => P_RBS_Version_Id,
277: P_Parent_Element_Id => P_Parent_Element_Id_Tbl(i),
278: P_Element_Id => P_Element_Id_Tbl(i),
279: P_Resource_Type_Id => P_Resource_Type_Id_Tbl(i),
288:
289: If X_Error_Msg_Data is not null Then
290:
291: Pa_Debug.G_Stage := 'Assign error message - 3.';
292: Pa_Rbs_Elements_Pub.PopulateErrorStack(
293: P_Calling_Page => P_Calling_Page,
294: P_Element_Id => P_Element_Id_Tbl(i),
295: P_Resource_Type_Id => P_Resource_Type_Id_Tbl(i),
296: P_Resource_Source_Id => l_Resource_Source_Id,
316:
317: If X_Error_Msg_Data is not null Then
318:
319: Pa_Debug.G_Stage := 'Assign error message - 4.';
320: Pa_Rbs_Elements_Pub.PopulateErrorStack(
321: P_Calling_Page => P_Calling_Page,
322: P_Element_Id => P_Element_Id_Tbl(i),
323: P_Resource_Type_Id => P_Resource_Type_Id_Tbl(i),
324: P_Resource_Source_Id => l_Resource_Source_Id,
367: P_Init_Msg_List IN Varchar2 Default Fnd_Api.G_True,
368: P_API_Version_Number IN Number,
369: P_RBS_Version_Id IN Number,
370: P_Rbs_Version_Rec_Num IN Number,
371: P_Rbs_Elements_Tbl IN Pa_Rbs_Elements_Pub.Rbs_Elements_Tbl_Typ,
372: X_Return_Status OUT NOCOPY Varchar2,
373: X_Msg_Count OUT NOCOPY Number,
374: X_Error_Msg_Data OUT NOCOPY Varchar2 )
375:
405:
406: Pa_Debug.G_Stage := 'Call Compatibility API.';
407:
408: If Not Fnd_Api.Compatible_API_Call (
409: Pa_Rbs_Elements_Pub.G_Api_Version_Number,
410: P_Api_Version_Number,
411: l_Api_Name,
412: Pa_Rbs_Elements_Pub.G_Pkg_Name)
413: THEN
408: If Not Fnd_Api.Compatible_API_Call (
409: Pa_Rbs_Elements_Pub.G_Api_Version_Number,
410: P_Api_Version_Number,
411: l_Api_Name,
412: Pa_Rbs_Elements_Pub.G_Pkg_Name)
413: THEN
414: Raise Fnd_Api.G_Exc_Unexpected_Error;
415: END IF;
416:
443:
444: If P_Rbs_Elements_Tbl(i).Resource_Source_Id is Null Then
445:
446: Pa_Debug.G_Stage := 'Get Resource Source Id using code - 1.';
447: Pa_Rbs_Elements_Utils.GetResSourceId(
448: P_Resource_Type_Id => P_Rbs_Elements_Tbl(i).Resource_Type_Id,
449: P_Resource_Source_Code => P_Rbs_Elements_Tbl(i).Resource_Source_Code,
450: X_Resource_Source_Id => l_Resource_Source_Id);
451:
456:
457: End If;
458:
459: Pa_Debug.G_Stage := 'Call Process_Rbs_Elements() Pvt - 1.';
460: Pa_Rbs_Elements_Pvt.Process_Rbs_Element(
461: P_RBS_Version_Id => P_RBS_Version_Id,
462: P_Parent_Element_Id => P_Rbs_Elements_Tbl(i).Parent_Element_Id,
463: P_Element_Id => P_Rbs_Elements_Tbl(i).Rbs_Element_Id,
464: P_Resource_Type_Id => P_Rbs_Elements_Tbl(i).Resource_Type_Id,
470:
471: If X_Error_Msg_Data is not null Then
472:
473: Pa_Debug.G_Stage := 'Assign error message - 1.';
474: Pa_Rbs_Elements_Pub.PopulateErrorStack(
475: P_Element_Id => P_Rbs_Elements_Tbl(i).Rbs_Element_Id,
476: P_Resource_Type_Id => P_Rbs_Elements_Tbl(i).Resource_Type_Id,
477: P_Resource_Source_Id => l_Resource_Source_Id,
478: P_Error_Msg_Data => X_Error_Msg_Data);
494:
495: If P_Rbs_Elements_Tbl(i).Resource_Source_Id is Null Then
496:
497: Pa_Debug.G_Stage := 'Get Resource Source Id using code - 2.';
498: Pa_Rbs_Elements_Utils.GetResSourceId(
499: P_Resource_Type_Id => P_Rbs_Elements_Tbl(i).Resource_Type_Id,
500: P_Resource_Source_Code => P_Rbs_Elements_Tbl(i).Resource_Source_Code,
501: X_Resource_Source_Id => l_Resource_Source_Id);
502:
507:
508: End If;
509:
510: Pa_Debug.G_Stage := 'Call Process_Rbs_Element() Pvt - 2.';
511: Pa_Rbs_Elements_Pvt.Process_Rbs_Element(
512: P_RBS_Version_Id => P_RBS_Version_Id,
513: P_Parent_Element_Id => P_Rbs_Elements_Tbl(i).Parent_Element_Id,
514: P_Element_Id => P_Rbs_Elements_Tbl(i).Rbs_Element_Id,
515: P_Resource_Type_Id => P_Rbs_Elements_Tbl(i).Resource_Type_Id,
521:
522: If X_Error_Msg_Data is not null Then
523:
524: Pa_Debug.G_Stage := 'Assign error message - 2.';
525: Pa_Rbs_Elements_Pub.PopulateErrorStack(
526: P_Element_Id => P_Rbs_Elements_Tbl(i).Rbs_Element_Id,
527: P_Resource_Type_Id => P_Rbs_Elements_Tbl(i).Resource_Type_Id,
528: P_Resource_Source_Id => l_Resource_Source_Id,
529: P_Error_Msg_Data => X_Error_Msg_Data);
545:
546: If P_Rbs_Elements_Tbl(i).Resource_Source_Id is Null Then
547:
548: Pa_Debug.G_Stage := 'Get Resource Source Id using code - 3.';
549: Pa_Rbs_Elements_Utils.GetResSourceId(
550: P_Resource_Type_Id => P_Rbs_Elements_Tbl(i).Resource_Type_Id,
551: P_Resource_Source_Code => P_Rbs_Elements_Tbl(i).Resource_Source_Code,
552: X_Resource_Source_Id => l_Resource_Source_Id);
553:
558:
559: End If;
560:
561: Pa_Debug.G_Stage := 'Call Process_Rbs_Element() Pvt - 3.';
562: Pa_Rbs_Elements_Pvt.Process_Rbs_Element(
563: P_RBS_Version_Id => P_RBS_Version_Id,
564: P_Parent_Element_Id => P_Rbs_Elements_Tbl(i).Parent_Element_Id,
565: P_Element_Id => P_Rbs_Elements_Tbl(i).Rbs_Element_Id,
566: P_Resource_Type_Id => P_Rbs_Elements_Tbl(i).Resource_Type_Id,
572:
573: If X_Error_Msg_Data is not null Then
574:
575: Pa_Debug.G_Stage := 'Assign error message - 3.';
576: Pa_Rbs_Elements_Pub.PopulateErrorStack(
577: P_Element_Id => P_Rbs_Elements_Tbl(i).Rbs_Element_Id,
578: P_Resource_Type_Id => P_Rbs_Elements_Tbl(i).Resource_Type_Id,
579: P_Resource_Source_Id => l_Resource_Source_Id,
580: P_Error_Msg_Data => X_Error_Msg_Data);
668: Cursor c2(P_Id IN Number) Is
669: Select
670: Outline_Number
671: From
672: Pa_Rbs_Elements
673: Where
674: Rbs_Element_Id = P_Id;
675:
676: Cursor c3(P_Id IN Number) Is
708: If P_Resource_Source_Id <> -1 Then
709:
710: l_res_name := Pa_Rbs_Utils.Get_Element_Name(
711: P_Resource_Source_Id => P_Resource_Source_Id,
712: P_Resource_Type_Code => Pa_Rbs_Elements_Utils.GetResTypeCode(P_Resource_Type_Id));
713: --hr_utility.trace('In If l_res_name IS : ' || l_res_name);
714:
715: Else
716:
766: Raise;
767:
768: End PopulateErrorStack;
769:
770: End Pa_Rbs_Elements_Pub;