1: PACKAGE BODY PA_CC_IDENT
2: -- $Header: PACCINTB.pls 120.5 2006/06/30 16:00:10 eyefimov noship $
3: AS
4:
5: G_PrevPrvdrOrgId NUMBER;
32: -- This wrapper API is created over the main identify procedure.
33: -- This API derives the provider,receiver orgs and assumes that
34: -- to process the records in plsql tables the param x_statusTab should be null
35: -- other wise it will be treated as a error records.
36: PROCEDURE PA_CC_IDENTIFY_TXN_FI(
37: P_ExpOrganizationIdTab IN PA_PLSQL_DATATYPES.IdTabTyp,
38: P_ExpOrgidTab IN PA_PLSQL_DATATYPES.IdTabTyp,
39: P_ProjectIdTab IN PA_PLSQL_DATATYPES.IdTabTyp,
40: P_TaskIdTab IN PA_PLSQL_DATATYPES.IdTabTyp,
81: l_PrevPrvdrOrgId pa_projects_all.org_id%type := Null;
82:
83:
84: BEGIN
85: pa_cc_utils.set_curr_function('PA_CC_IDENTIFY_TXN_FI');
86: l_MinRecs := P_SysLinkTab.FIRST;
87: l_MaxRecs := P_SysLinkTab.LAST;
88:
89: FOR j IN l_MinRecs..l_MaxRecs LOOP
93:
94: -- forecast items
95:
96: IF P_DEBUG_MODE THEN
97: pa_cc_utils.log_message('PA_CC_IDENTIFY_TXN_FI: ' || '20.05.01: This FI is already erroneous and needs no CC identification');
98: END IF;
99:
100: NULL ;
101:
103: --
104: -- Determine Current Operating Unit
105: --
106: IF P_DEBUG_MODE THEN
107: pa_cc_utils.log_message('PA_CC_IDENTIFY_TXN_FI: ' || '20.05.02: Determine the Expenditure OU and its cross charge options');
108: END IF;
109:
110: IF nvl(l_prevexporgid,-99) <> P_ExpOrgidTab(j) Then
111: IF P_DEBUG_MODE THEN
108: END IF;
109:
110: IF nvl(l_prevexporgid,-99) <> P_ExpOrgidTab(j) Then
111: IF P_DEBUG_MODE THEN
112: pa_cc_utils.log_message('PA_CC_IDENTIFY_TXN_FI: ' || '20.05.03: Derive the cross charge options from pa_implementations');
113: END IF;
114:
115: SELECT imp.org_id,
116: nvl(imp.cc_process_io_code,'N'),
130:
131: ELSE
132:
133: IF P_DEBUG_MODE THEN
134: pa_cc_utils.log_message('PA_CC_IDENTIFY_TXN_FI: ' || '20.05.04: Retrive cross charge options from cache');
135: END IF;
136: l_current_org_id := l_PrevPrvdrOrgId;
137: l_current_process_io_code := l_PrevCCProcessIOCode;
138: l_current_process_iu_code := l_PrevCCProcessIUCode;
150:
151: -- org id which is the receiver OU.
152: --
153: IF P_DEBUG_MODE THEN
154: pa_cc_utils.log_message('PA_CC_IDENTIFY_TXN_FI: ' || '20.05.05: Derive receiving org id for the given project');
155: END IF;
156:
157:
158: SELECT p.carrying_out_organization_id,
172:
173:
174: ELSE
175: IF P_DEBUG_MODE THEN
176: pa_cc_utils.log_message('PA_CC_IDENTIFY_TXN_FI: ' || '20.05.06: Retreive receiving org id cache');
177: END IF;
178:
179: l_recvr_organization_id := l_prev_recvr_organization_id;
180: l_cc_prj_process_flag := l_prev_cc_prj_process_flag;
192: X_PrvdrOrgIdTab(j) := l_current_org_id;
193:
194: IF P_DEBUG_MODE THEN
195: pa_cc_utils.log_message
196: ('PA_CC_IDENTIFY_TXN_FI: ' || '20.05.07: Calling Client Extension to override the PRVDR_RECVR orgs');
197: END IF;
198:
199: -- Call client extension to override the provider and receiver organizations.
200: PA_CC_IDENT_CLIENT_EXTN.OVERRIDE_PRVDR_RECVR (
196: ('PA_CC_IDENTIFY_TXN_FI: ' || '20.05.07: Calling Client Extension to override the PRVDR_RECVR orgs');
197: END IF;
198:
199: -- Call client extension to override the provider and receiver organizations.
200: PA_CC_IDENT_CLIENT_EXTN.OVERRIDE_PRVDR_RECVR (
201: P_PrvdrOrganizationId => X_PrvdrOrganizationIdTab(j),
202: P_PrvdrOrgId => P_ExpOrgidTab(j),
203: P_RecvrOrganizationId => X_RecvrOrganizationIdTab(j),
204: P_RecvrOrgId => X_RecvrOrgIdTab(j),
211: X_Error_Stage => X_Error_Stage,
212: X_Error_Code => X_Error_Code );
213:
214: IF P_DEBUG_MODE THEN
215: pa_cc_utils.log_message('PA_CC_IDENTIFY_TXN_FI: ' || 'P_ProjectIdTab='||P_ProjectIdTab(j)||'P_PrvdrOrganizationId='||X_PrvdrOrganizationIdTab(j)
216: ||'X_RecvrOrganizationIdTab='||X_RecvrOrganizationIdTab(j)||'X_RecvrOrgIdTab='
217: ||X_RecvrOrgIdTab(j)||'P_SysLinkTab='||P_SysLinkTab(j)
218: ||'l_CCPrjFlagTab='||l_CCPrjFlagTab(j)||'l_CCProcessIUCodeTab='
219: ||l_CCProcessIUCodeTab(j)||'l_CCProcessIOCodeTab='||l_CCProcessIOCodeTab(j));
216: ||'X_RecvrOrganizationIdTab='||X_RecvrOrganizationIdTab(j)||'X_RecvrOrgIdTab='
217: ||X_RecvrOrgIdTab(j)||'P_SysLinkTab='||P_SysLinkTab(j)
218: ||'l_CCPrjFlagTab='||l_CCPrjFlagTab(j)||'l_CCProcessIUCodeTab='
219: ||l_CCProcessIUCodeTab(j)||'l_CCProcessIOCodeTab='||l_CCProcessIOCodeTab(j));
220: pa_cc_utils.log_message('PA_CC_IDENTIFY_TXN_FI: ' || '20.05.08: End of Client Extension to override the PRVDR_RECVR orgs');
221: END IF;
222:
223: END IF; -- end of status_tab
224:
223: END IF; -- end of status_tab
224:
225: END LOOP;
226: IF P_DEBUG_MODE THEN
227: pa_cc_utils.log_message('PA_CC_IDENTIFY_TXN_FI: ' || '20.05.09: Calling PA_CC_GET_CROSS_CHARGE_TYPE api');
228: END IF;
229:
230:
231: PA_CC_IDENT.PA_CC_GET_CROSS_CHARGE_TYPE (
227: pa_cc_utils.log_message('PA_CC_IDENTIFY_TXN_FI: ' || '20.05.09: Calling PA_CC_GET_CROSS_CHARGE_TYPE api');
228: END IF;
229:
230:
231: PA_CC_IDENT.PA_CC_GET_CROSS_CHARGE_TYPE (
232: P_PrvdrOrganizationIdTab => X_PrvdrOrganizationIdTab
233: ,P_RecvrOrganizationIdTab => X_RecvrOrganizationIdTab
234: ,P_ProjectIdTab => P_ProjectIdTab
235: ,P_TaskIdTab => P_TaskIdTab
251: ,X_CrossChargeCodeTab => X_CrossChargeCodeTab
252: ,X_Error_Stage => X_Error_Stage
253: ,X_Error_Code => X_Error_Code );
254: IF P_DEBUG_MODE THEN
255: pa_cc_utils.log_message('PA_CC_IDENTIFY_TXN_FI: ' || '20.05.10: End of PA_CC_GET_CROSS_CHARGE_TYPE api');
256: END IF;
257:
258: pa_cc_utils.reset_curr_function;
259:
260: EXCEPTION
261:
262: WHEN OTHERS THEN
263: IF P_DEBUG_MODE THEN
264: pa_cc_utils.log_message('Failed in PA_CC_IDENTIFY_TXN_FI Error:'||SQLCODE||SQLERRM);
265: END IF;
266: RAISE ;
267:
268: END PA_CC_IDENTIFY_TXN_FI;
264: pa_cc_utils.log_message('Failed in PA_CC_IDENTIFY_TXN_FI Error:'||SQLCODE||SQLERRM);
265: END IF;
266: RAISE ;
267:
268: END PA_CC_IDENTIFY_TXN_FI;
269:
270: PROCEDURE PA_CC_IDENTIFY_TXN_ADJ (
271: P_ExpOrganizationId IN NUMBER,
272: P_ExpOrgid IN NUMBER,
266: RAISE ;
267:
268: END PA_CC_IDENTIFY_TXN_FI;
269:
270: PROCEDURE PA_CC_IDENTIFY_TXN_ADJ (
271: P_ExpOrganizationId IN NUMBER,
272: P_ExpOrgid IN NUMBER,
273: P_ProjectId IN NUMBER,
274: P_TaskId IN NUMBER,
336:
337: -- Assign all the input values to the tables. These tables will be passed
338: -- to the the main identification procedure.
339:
340: pa_cc_utils.set_curr_function('PA_CC_IDENTIFY_TXN_ADJ');
341: IF P_DEBUG_MODE THEN
342: pa_cc_utils.log_message('PA_CC_IDENTIFY_TXN_ADJ: ' || '10: Assign all the input values to the tables');
343: END IF;
344:
338: -- to the the main identification procedure.
339:
340: pa_cc_utils.set_curr_function('PA_CC_IDENTIFY_TXN_ADJ');
341: IF P_DEBUG_MODE THEN
342: pa_cc_utils.log_message('PA_CC_IDENTIFY_TXN_ADJ: ' || '10: Assign all the input values to the tables');
343: END IF;
344:
345: l_ExpOrganizationIdTab(1) := P_ExpOrganizationId ;
346: l_ExpOrgIdTab(1) := P_ExpOrgId ;
361: l_Error_Stage := X_Error_Stage;
362: l_Error_Code := X_Error_Code;
363:
364: IF P_DEBUG_MODE THEN
365: pa_cc_utils.log_message('PA_CC_IDENTIFY_TXN_ADJ: ' || '20: Calling procedure PA_CC_IDENT.PA_CC_IDENTIFY_TXN');
366: END IF;
367:
368: PA_CC_IDENT.PA_CC_IDENTIFY_TXN(
369: P_ExpOrganizationIdTab => l_ExpOrganizationIdTab,
364: IF P_DEBUG_MODE THEN
365: pa_cc_utils.log_message('PA_CC_IDENTIFY_TXN_ADJ: ' || '20: Calling procedure PA_CC_IDENT.PA_CC_IDENTIFY_TXN');
366: END IF;
367:
368: PA_CC_IDENT.PA_CC_IDENTIFY_TXN(
369: P_ExpOrganizationIdTab => l_ExpOrganizationIdTab,
370: P_ExpOrgidTab => l_ExpOrgidTab,
371: P_ProjectIdTab => l_ProjectIdTab,
372: P_TaskIdTab => l_TaskIdTab,
392: /* Added calling module for 3234973 */
393: X_Calling_Module => X_Calling_Module);
394:
395: IF P_DEBUG_MODE THEN
396: pa_cc_utils.log_message('PA_CC_IDENTIFY_TXN_ADJ: ' || '30: Assigning the returned values to the output variables');
397: END IF;
398:
399: X_status := l_StatusTab(1);
400: X_CrossChargeType := l_CrossChargeTypeTab(1);
403: X_RecvrOrganizationId := l_RecvrOrganizationIdTab(1);
404: X_RecvrOrgId := l_RecvrOrgIdTab(1);
405:
406: IF P_DEBUG_MODE THEN
407: pa_cc_utils.log_message('40: Exiting the procedure PA_CC_IDENT.PA_CC_IDENTIFY_TXN_ADJ');
408: END IF;
409:
410: pa_cc_utils.reset_curr_function;
411: EXCEPTION
414: x_error_stage := l_error_stage;
415: x_error_code := l_error_code;
416: RAISE ;
417:
418: END PA_CC_IDENTIFY_TXN_ADJ;
419:
420: PROCEDURE PA_CC_IDENTIFY_TXN(
421: P_ExpOrganizationIdTab IN PA_PLSQL_DATATYPES.IdTabTyp,
422: P_ExpOrgidTab IN PA_PLSQL_DATATYPES.IdTabTyp,
416: RAISE ;
417:
418: END PA_CC_IDENTIFY_TXN_ADJ;
419:
420: PROCEDURE PA_CC_IDENTIFY_TXN(
421: P_ExpOrganizationIdTab IN PA_PLSQL_DATATYPES.IdTabTyp,
422: P_ExpOrgidTab IN PA_PLSQL_DATATYPES.IdTabTyp,
423: P_ProjectIdTab IN PA_PLSQL_DATATYPES.IdTabTyp,
424: P_TaskIdTab IN PA_PLSQL_DATATYPES.IdTabTyp,
465: -- 2. Receiver Organization
466: -- 3. Provider Operating Unit
467: -- 4. Receiver Operating Unit
468:
469: pa_cc_utils.set_curr_function('PA_CC_IDENTIFY_TXN');
470:
471: IF P_DEBUG_MODE THEN
472: pa_cc_utils.log_message('PA_CC_IDENTIFY_TXN: ' || '20.10: Calling the procedure to determine the orgs');
473: END IF;
468:
469: pa_cc_utils.set_curr_function('PA_CC_IDENTIFY_TXN');
470:
471: IF P_DEBUG_MODE THEN
472: pa_cc_utils.log_message('PA_CC_IDENTIFY_TXN: ' || '20.10: Calling the procedure to determine the orgs');
473: END IF;
474:
475: PA_CC_IDENT.PA_CC_GET_PRVDR_RECVR_ORGS (
476: P_ExpOrganizationIdTab => P_ExpOrganizationIdTab,
471: IF P_DEBUG_MODE THEN
472: pa_cc_utils.log_message('PA_CC_IDENTIFY_TXN: ' || '20.10: Calling the procedure to determine the orgs');
473: END IF;
474:
475: PA_CC_IDENT.PA_CC_GET_PRVDR_RECVR_ORGS (
476: P_ExpOrganizationIdTab => P_ExpOrganizationIdTab,
477: P_ExpOrgidTab => P_ExpOrgidTab,
478: P_TaskIdTab => P_TaskIdTab,
479: P_ExpItemIdTab => P_ExpItemIdTab,
500: -- This procedure is called for determining the cross charge code.
501: --
502:
503: IF P_DEBUG_MODE THEN
504: pa_cc_utils.log_message('PA_CC_IDENTIFY_TXN: ' || '20.20: Calling the procedure to determine the cross charge code and type');
505: END IF;
506:
507: PA_CC_IDENT.PA_CC_GET_CROSS_CHARGE_TYPE (
508: P_PrvdrOrganizationIdTab => X_PrvdrOrganizationIdTab,
503: IF P_DEBUG_MODE THEN
504: pa_cc_utils.log_message('PA_CC_IDENTIFY_TXN: ' || '20.20: Calling the procedure to determine the cross charge code and type');
505: END IF;
506:
507: PA_CC_IDENT.PA_CC_GET_CROSS_CHARGE_TYPE (
508: P_PrvdrOrganizationIdTab => X_PrvdrOrganizationIdTab,
509: P_RecvrOrganizationIdTab => X_RecvrOrganizationIdTab,
510: P_ProjectIdTab => P_ProjectIdTab,
511: P_TaskIdTab => P_TaskIdTab,
535:
536: WHEN OTHERS THEN
537: RAISE ;
538:
539: END PA_CC_IDENTIFY_TXN;
540:
541: PROCEDURE PA_CC_GET_PRVDR_RECVR_ORGS (
542: P_ExpOrganizationIdTab IN PA_PLSQL_DATATYPES.IdTabTyp,
543: P_ExpOrgidTab IN PA_PLSQL_DATATYPES.IdTabTyp,
939: X_RecvrOrgIdTab(j) := NVL( P_PrjOrgIdTab(j), l_project_org_id);
940: X_CCPrjFlagTab(j) := l_cc_prj_process_flag;
941:
942: IF P_DEBUG_MODE THEN
943: pa_cc_utils.log_message('PA_CC_GET_PRVDR_RECVR_ORGS: ' || '20.10.170: Calling the client extension PA_CC_IDENT_CLIENT_EXTN.OVERRIDE_PRVDR_RECVR');
944: END IF;
945:
946: PA_CC_IDENT_CLIENT_EXTN.OVERRIDE_PRVDR_RECVR (
947: P_PrvdrOrganizationId => X_PrvdrOrganizationIdTab(j),
942: IF P_DEBUG_MODE THEN
943: pa_cc_utils.log_message('PA_CC_GET_PRVDR_RECVR_ORGS: ' || '20.10.170: Calling the client extension PA_CC_IDENT_CLIENT_EXTN.OVERRIDE_PRVDR_RECVR');
944: END IF;
945:
946: PA_CC_IDENT_CLIENT_EXTN.OVERRIDE_PRVDR_RECVR (
947: P_PrvdrOrganizationId => X_PrvdrOrganizationIdTab(j),
948: P_PrvdrOrgId => P_ExpOrgidTab(j),
949: P_RecvrOrganizationId => X_RecvrOrganizationIdTab(j),
950: P_RecvrOrgId => X_RecvrOrgIdTab(j),
1468: END IF;
1469: --
1470: -- Call client extension
1471: --
1472: PA_CC_IDENT_CLIENT_EXTN.OVERRIDE_CC_PROCESSING_METHOD (
1473: P_PrvdrOrganizationId => P_PrvdrOrganizationIdTab(j),
1474: P_RecvrOrganizationId => P_RecvrOrganizationIdTab(j),
1475: P_PrvdrOrgId => P_PrvdrOrgIdTab(j),
1476: P_RecvrOrgId => P_RecvrOrgIdTab(j),
1610: RAISE ;
1611:
1612: END GetLegalEntity;
1613:
1614: END PA_CC_IDENT;