DBA Data[Home] [Help]

PACKAGE BODY: APPS.PA_PAXMGPSD_XMLP_PKG

Source


1 PACKAGE BODY PA_PAXMGPSD_XMLP_PKG AS
2 /* $Header: PAXMGPSDB.pls 120.2 2008/01/03 12:12:39 krreddy noship $ */
3   FUNCTION GET_COVER_PAGE_VALUES RETURN BOOLEAN IS
4   BEGIN
5     RETURN (TRUE);
6   EXCEPTION
7     WHEN OTHERS THEN
8       RETURN (FALSE);
9   END GET_COVER_PAGE_VALUES;
10 
11   FUNCTION BEFOREREPORT RETURN BOOLEAN IS
12   BEGIN
13     DECLARE
14       INIT_FAILURE EXCEPTION;
15       P_ORG HR_ORGANIZATION_UNITS.NAME%TYPE;
16       P_MGR VARCHAR2(30);
17       P_NUMBER VARCHAR2(30);
18       P_NAME VARCHAR2(30);
19       TSK_NUM VARCHAR2(30);
20       TSK_NAME VARCHAR2(30);
21       P_COST_BGT_CODE VARCHAR2(30);
22       P_COST_BGT_TYPE VARCHAR2(30);
23       P_REV_BGT_CODE VARCHAR2(30);
24       P_REV_BGT_TYPE VARCHAR2(30);
25     BEGIN
26       P_CONC_REQUEST_ID := FND_GLOBAL.CONC_REQUEST_ID;
27       /*SRW.USER_EXIT('FND SRWINIT')*/NULL;
28       /*SRW.USER_EXIT('FND GETPROFILE
29                     NAME="PA_RULE_BASED_OPTIMIZER"
30                     FIELD=":p_rule_optimizer"
31                     PRINT_ERROR="N"')*/NULL;
32       P_DEBUG_MODE := FND_PROFILE.VALUE('PA_DEBUG_MODE');
33       IF ORG_ID IS NOT NULL THEN
34         SELECT
35           SUBSTR(NAME
36                 ,1
37                 ,60)
38         INTO P_ORG
39         FROM
40           HR_ORGANIZATION_UNITS
41         WHERE ORG_ID = ORGANIZATION_ID;
42       END IF;
43       C_ORG := P_ORG;
44       IF PROJECT_MANAGER_ID IS NOT NULL THEN
45         SELECT
46           FULL_NAME
47         INTO P_MGR
48         FROM
49           PER_PEOPLE_F
50         WHERE PROJECT_MANAGER_ID = PERSON_ID
51           AND sysdate between EFFECTIVE_START_DATE
52           AND NVL(EFFECTIVE_END_DATE
53            ,SYSDATE + 1)
54           AND ( CURRENT_NPW_FLAG = 'Y'
55         OR CURRENT_EMPLOYEE_FLAG = 'Y' )
56           AND DECODE(CURRENT_NPW_FLAG
57               ,'Y'
58               ,NPW_NUMBER
59               ,EMPLOYEE_NUMBER) IS NOT NULL;
60       END IF;
61       C_MGR := P_MGR;
62       IF PROJ IS NOT NULL THEN
63         SELECT
64           SEGMENT1,
65           NAME
66         INTO P_NUMBER,P_NAME
67         FROM
68           PA_PROJECTS
69         WHERE PROJ = PROJECT_ID;
70       END IF;
71       C_PROJ_NUM := P_NUMBER;
72       C_PROJ_NAME := P_NAME;
73       IF (GET_COMPANY_NAME <> TRUE) THEN
74         RAISE INIT_FAILURE;
75       END IF;
76       IF (NO_DATA_FOUND_FUNC <> TRUE) THEN
77         RAISE INIT_FAILURE;
78       END IF;
79       IF (COST_BGT_CODE IS NULL) THEN
80         SELECT
81           BUDGET_TYPE_CODE,
82           BUDGET_TYPE
83         INTO P_COST_BGT_CODE,P_COST_BGT_TYPE
84         FROM
85           PA_BUDGET_TYPES
86         WHERE BUDGET_AMOUNT_CODE = 'C'
87           AND PREDEFINED_FLAG = 'Y'
88           AND BUDGET_TYPE_CODE = 'AC';
89         C_COST_BGT_CODE := P_COST_BGT_CODE;
90         C_COST_BGT_NAME := P_COST_BGT_TYPE;
91       ELSE
92         SELECT
93           BUDGET_TYPE
94         INTO P_COST_BGT_TYPE
95         FROM
96           PA_BUDGET_TYPES
97         WHERE BUDGET_TYPE_CODE = COST_BGT_CODE;
98         C_COST_BGT_CODE := COST_BGT_CODE;
99         C_COST_BGT_NAME := P_COST_BGT_TYPE;
100       END IF;
101       IF (REV_BGT_CODE IS NULL) THEN
102         SELECT
103           BUDGET_TYPE_CODE,
104           BUDGET_TYPE
105         INTO P_REV_BGT_CODE,P_REV_BGT_TYPE
106         FROM
107           PA_BUDGET_TYPES
108         WHERE BUDGET_AMOUNT_CODE = 'R'
109           AND PREDEFINED_FLAG = 'Y'
110           AND BUDGET_TYPE_CODE = 'AR';
111         C_REV_BGT_CODE := P_REV_BGT_CODE;
112         C_REV_BGT_NAME := P_REV_BGT_TYPE;
113       ELSE
114         SELECT
115           BUDGET_TYPE
116         INTO P_REV_BGT_TYPE
117         FROM
118           PA_BUDGET_TYPES
119         WHERE BUDGET_TYPE_CODE = REV_BGT_CODE;
120         C_REV_BGT_CODE := REV_BGT_CODE;
121         C_REV_BGT_NAME := P_REV_BGT_TYPE;
122       END IF;
123     EXCEPTION
124       WHEN OTHERS THEN
125         /*RAISE SRW.PROGRAM_ABORT*/RAISE_APPLICATION_ERROR(-20101,null);
126     END;
127     RETURN (TRUE);
128   END BEFOREREPORT;
129 
130   FUNCTION GET_COMPANY_NAME RETURN BOOLEAN IS
131     L_NAME GL_SETS_OF_BOOKS.NAME%TYPE;
132   BEGIN
133     SELECT
134       GL.NAME
135     INTO L_NAME
136     FROM
137       GL_SETS_OF_BOOKS GL,
138       PA_IMPLEMENTATIONS PI
139     WHERE GL.SET_OF_BOOKS_ID = PI.SET_OF_BOOKS_ID;
140     C_COMPANY_NAME_HEADER := L_NAME;
141     RETURN (TRUE);
142   EXCEPTION
143     WHEN OTHERS THEN
144       RETURN (FALSE);
145   END GET_COMPANY_NAME;
146 
147   FUNCTION NO_DATA_FOUND_FUNC RETURN BOOLEAN IS
148     MESSAGE_NAME VARCHAR2(80);
149   BEGIN
150     SELECT
151       MEANING
152     INTO MESSAGE_NAME
153     FROM
154       PA_LOOKUPS
155     WHERE LOOKUP_TYPE = 'MESSAGE'
156       AND LOOKUP_CODE = 'NO_DATA_FOUND';
157     C_NO_DATA_FOUND := MESSAGE_NAME;
158     RETURN (TRUE);
159   EXCEPTION
160     WHEN OTHERS THEN
161       RETURN (FALSE);
162   END NO_DATA_FOUND_FUNC;
163 
164   FUNCTION GET_PERIOD(SD IN DATE) RETURN VARCHAR2 IS
165     PERNAME VARCHAR2(30);
166     ST_DATE DATE;
167     E_DATE DATE;
168   BEGIN
169     IF (PA_PERIOD IS NULL) THEN
170       SELECT
171         PERIOD_NAME,
172         START_DATE,
173         END_DATE
174       INTO PERNAME,ST_DATE,E_DATE
175       FROM
176         PA_PERIODS
177       WHERE TRUNC(SYSDATE) between TRUNC(START_DATE)
178         AND TRUNC(END_DATE);
179     ELSE
180       SELECT
181         PERIOD_NAME,
182         START_DATE,
183         END_DATE
184       INTO PERNAME,ST_DATE,E_DATE
185       FROM
186         PA_PERIODS
187       WHERE PERIOD_NAME = PA_PERIOD;
188     END IF;
189     C_START_DATE := ST_DATE;
190     C_END_DATE := E_DATE;
191     RETURN (PERNAME);
192   EXCEPTION
193     WHEN OTHERS THEN
194       RETURN (NULL);
195   END GET_PERIOD;
196 
197   FUNCTION PERIOD_NAMEFORMULA RETURN VARCHAR2 IS
198   BEGIN
199     RETURN (GET_PERIOD(SYSDATE));
200   END PERIOD_NAMEFORMULA;
201 
202   FUNCTION UNBILLED_RECEIVABLESFORMULA(RETN_ACCOUNTING_FLAG IN VARCHAR2
203                                       ,TOTAL_REVENUE_AMOUNT IN NUMBER
204                                       ,PFC_TOTAL_INVOICE_AMOUNT IN NUMBER
205                                       ,UNBILLED_RETENTION IN NUMBER) RETURN NUMBER IS
206   BEGIN
207     IF (RETN_ACCOUNTING_FLAG = 'Y') THEN
208       RETURN (GREATEST((TOTAL_REVENUE_AMOUNT - PFC_TOTAL_INVOICE_AMOUNT)
209                      ,0));
210     ELSE
211       RETURN (GREATEST((TOTAL_REVENUE_AMOUNT - PFC_TOTAL_INVOICE_AMOUNT - UNBILLED_RETENTION)
212                      ,0));
213     END IF;
214   END UNBILLED_RECEIVABLESFORMULA;
215 
216   FUNCTION UNEARNED_REVENUEFORMULA(RETN_ACCOUNTING_FLAG IN VARCHAR2
217                                   ,PFC_TOTAL_INVOICE_AMOUNT IN NUMBER
218                                   ,TOTAL_REVENUE_AMOUNT IN NUMBER
219                                   ,UNBILLED_RETENTION IN NUMBER) RETURN NUMBER IS
220   BEGIN
221     IF (RETN_ACCOUNTING_FLAG = 'Y') THEN
222       RETURN (GREATEST((PFC_TOTAL_INVOICE_AMOUNT - TOTAL_REVENUE_AMOUNT)
223                      ,0));
224     ELSE
225       RETURN (GREATEST((PFC_TOTAL_INVOICE_AMOUNT + UNBILLED_RETENTION - TOTAL_REVENUE_AMOUNT)
226                      ,0));
227     END IF;
228   END UNEARNED_REVENUEFORMULA;
229 
230   FUNCTION AFTERREPORT RETURN BOOLEAN IS
231   BEGIN
232     BEGIN
233       /*SRW.USER_EXIT('FND SRWEXIT')*/NULL;
234     END;
235     RETURN (TRUE);
236   END AFTERREPORT;
237 
238   FUNCTION C_PROJECT_ACTUAL_COSTFORMULA RETURN NUMBER IS
239   BEGIN
240     RETURN NULL;
241   END C_PROJECT_ACTUAL_COSTFORMULA;
242 
243   FUNCTION C_ACT_PER_REVFORMULA(RESOURCE_LIST_MEMBER_ID IN NUMBER
244                                ,PERIOD_NAME IN VARCHAR2
245                                ,PROJECT_ID7 IN NUMBER) RETURN NUMBER IS
246   BEGIN
247     RETURN (GET_PERIOD_AMT('REVENUE'
248                          ,resource_list_member_id
249                          ,PROJECT_ID7
250                          ,PERIOD_NAME));
251   END C_ACT_PER_REVFORMULA;
252 
253   FUNCTION GET_PERIOD_AMT(X_TYPE IN VARCHAR2
254                          ,X_RSRC_LIST_MEMBER_ID IN NUMBER,project_id7 IN NUMBER,PERIOD_NAME IN VARCHAR2) RETURN NUMBER IS
255     X_REVENUE NUMBER;
256     X_RAW_COST NUMBER;
257     X_BURDENED_COST NUMBER;
258     X_QUANTITY NUMBER;
259     X_LABOR_HOURS NUMBER;
260     X_BILLABLE_RAW_COST NUMBER;
261     X_BILLABLE_BURDENED_COST NUMBER;
262     X_BILLABLE_QUANTITY NUMBER;
263     X_BILLABLE_LABOR_HOURS NUMBER;
264     X_CMT_RAW_COST NUMBER;
265     X_CMT_BURDENED_COST NUMBER;
266     X_UNIT_OF_MEASURE VARCHAR2(100);
267     X_ERR_STAGE VARCHAR2(100);
268     X_ERR_CODE NUMBER;
269     L_PRD_START_DATE DATE;
270     L_PRD_END_DATE DATE;
271   BEGIN
272     X_REVENUE := 0;
273     X_RAW_COST := 0;
274     X_BURDENED_COST := 0;
275     X_QUANTITY := 0;
276     X_LABOR_HOURS := 0;
277     X_BILLABLE_RAW_COST := 0;
278     X_BILLABLE_BURDENED_COST := 0;
279     X_BILLABLE_QUANTITY := 0;
280     X_BILLABLE_LABOR_HOURS := 0;
281     X_CMT_RAW_COST := 0;
282     X_CMT_BURDENED_COST := 0;
283     X_UNIT_OF_MEASURE := NULL;
284     X_ERR_STAGE := NULL;
285     X_ERR_CODE := 0;
286     L_PRD_START_DATE := C_START_DATE;
287     L_PRD_END_DATE := C_END_DATE;
288     PA_ACCUM_API.GET_PROJ_ACCUM_ACTUALS(PROJECT_ID7
289                                        ,NULL
290                                        ,X_RSRC_LIST_MEMBER_ID
291                                        ,'P'
292                                        ,PERIOD_NAME
293                                        ,L_PRD_START_DATE
294                                        ,L_PRD_END_DATE
295                                        ,X_REVENUE
296                                        ,X_RAW_COST
297                                        ,X_BURDENED_COST
298                                        ,X_QUANTITY
299                                        ,X_LABOR_HOURS
300                                        ,X_BILLABLE_RAW_COST
301                                        ,X_BILLABLE_BURDENED_COST
302                                        ,X_BILLABLE_QUANTITY
303                                        ,X_BILLABLE_LABOR_HOURS
304                                        ,X_CMT_RAW_COST
305                                        ,X_CMT_BURDENED_COST
306                                        ,X_UNIT_OF_MEASURE
307                                        ,X_ERR_STAGE
308                                        ,X_ERR_CODE);
309     IF (X_ERR_CODE = 0) THEN
310       IF (X_TYPE = 'REVENUE') THEN
311         RETURN (X_REVENUE);
312       ELSE
313         RETURN (X_BURDENED_COST);
314       END IF;
315     ELSE
316       RETURN (-1);
317     END IF;
318   EXCEPTION
319     WHEN OTHERS THEN
320       RETURN (NULL);
321   END GET_PERIOD_AMT;
322 
323   FUNCTION C_ACT_PER_COSTFORMULA(RESOURCE_LIST_MEMBER_ID1 IN NUMBER
324                                 ,PERIOD_NAME IN VARCHAR2
325                                 ,PROJECT_ID7 IN NUMBER) RETURN NUMBER IS
326   BEGIN
327     RETURN (GET_PERIOD_AMT('COST'
328                          ,resource_list_member_id1
329                          ,PROJECT_ID7
330                          ,PERIOD_NAME));
331   END C_ACT_PER_COSTFORMULA;
332 
333   FUNCTION C_ACT_PER_REV_SUMFORMULA(C_ACT_PER_REV IN NUMBER
334                                    ,MEMBER_LEVEL2 IN NUMBER) RETURN NUMBER IS
335   BEGIN
336     RETURN (GET_PERIOD_AMT_SUM(C_ACT_PER_REV
337                              ,MEMBER_LEVEL2));
338   END C_ACT_PER_REV_SUMFORMULA;
339 
340   FUNCTION GET_RSRC_NAME_DISP(X_ALIAS IN VARCHAR2
341                              ,X_LEVEL IN NUMBER) RETURN VARCHAR2 IS
342     LNAME VARCHAR2(30);
343   BEGIN
344     LNAME := NULL;
345     LNAME := (LPAD(' '
346                  ,2 * (X_LEVEL - 1)) || X_ALIAS);
347     RETURN (LNAME);
348   END GET_RSRC_NAME_DISP;
349 
350   FUNCTION C_ACT_PER_COST_SUMFORMULA(C_ACT_PER_COST IN NUMBER
351                                     ,MEMBER_LEVEL1 IN NUMBER) RETURN NUMBER IS
352   BEGIN
353     RETURN (GET_PERIOD_AMT_SUM(C_ACT_PER_COST
354                              ,MEMBER_LEVEL1));
355   END C_ACT_PER_COST_SUMFORMULA;
356 
357   FUNCTION GET_PERIOD_AMT_SUM(X_AMT IN NUMBER
358                              ,X_LEVEL IN NUMBER) RETURN NUMBER IS
359   BEGIN
360     IF (X_LEVEL = 1) THEN
361       RETURN (X_AMT);
362     ELSE
363       RETURN (0);
364     END IF;
365   END GET_PERIOD_AMT_SUM;
366 
367   FUNCTION CF_CURRENCY_CODEFORMULA RETURN VARCHAR2 IS
368   BEGIN
369     RETURN (PA_MULTI_CURRENCY.GET_ACCT_CURRENCY_CODE);
370   END CF_CURRENCY_CODEFORMULA;
371 
372   FUNCTION UNBILLED_RETNFORMULA(RETN_ACCOUNTING_FLAG IN VARCHAR2
373                                ,UNBILLED_RETENTION IN NUMBER) RETURN NUMBER IS
374   BEGIN
375     IF (RETN_ACCOUNTING_FLAG = 'Y') THEN
376       RETURN (-UNBILLED_RETENTION);
377     ELSE
378       RETURN (0);
379     END IF;
380   END UNBILLED_RETNFORMULA;
381 
382   FUNCTION AFTERPFORM RETURN BOOLEAN IS
383   BEGIN
384     IF PROJ IS NOT NULL THEN
385       P_PROJECT := 'AND  p.project_id = :proj ';
386     ELSE
387       P_PROJECT := ' AND 1=1';
388     END IF;
389     IF PROJ_TYPE IS NOT NULL THEN
390       P_PROJECT_TYPE := 'AND p.project_type = :proj_type';
391     ELSE
392       P_PROJECT_TYPE := 'AND 1=1';
393     END IF;
394     IF PROJECT_MANAGER_ID IS NOT NULL THEN
395       P_PROJECT_MANAGER := 'AND NVL(p.manager_person_id,-999) =:project_manager_id';
396     ELSE
397       P_PROJECT_MANAGER := 'AND 1=1 ';
398     END IF;
399     RETURN (TRUE);
400   END AFTERPFORM;
401 
402   FUNCTION C_COMPANY_NAME_HEADER_P RETURN VARCHAR2 IS
403   BEGIN
404     RETURN C_COMPANY_NAME_HEADER;
405   END C_COMPANY_NAME_HEADER_P;
406 
407   FUNCTION C_NO_DATA_FOUND_P RETURN VARCHAR2 IS
408   BEGIN
409     RETURN C_NO_DATA_FOUND;
410   END C_NO_DATA_FOUND_P;
411 
412   FUNCTION C_ORG_P RETURN VARCHAR2 IS
413   BEGIN
414     RETURN C_ORG;
415   END C_ORG_P;
416 
417   FUNCTION C_PROJ_NUM_P RETURN VARCHAR2 IS
418   BEGIN
419     RETURN C_PROJ_NUM;
420   END C_PROJ_NUM_P;
421 
422   FUNCTION C_PROJ_NAME_P RETURN VARCHAR2 IS
423   BEGIN
424     RETURN C_PROJ_NAME;
425   END C_PROJ_NAME_P;
426 
427   FUNCTION C_MGR_P RETURN VARCHAR2 IS
428   BEGIN
429     RETURN C_MGR;
430   END C_MGR_P;
431 
432   FUNCTION C_START_DATE_P RETURN DATE IS
433   BEGIN
434     RETURN C_START_DATE;
435   END C_START_DATE_P;
436 
437   FUNCTION C_END_DATE_P RETURN DATE IS
438   BEGIN
439     RETURN C_END_DATE;
440   END C_END_DATE_P;
441 
442   FUNCTION C_COST_BGT_NAME_P RETURN VARCHAR2 IS
443   BEGIN
444     RETURN C_COST_BGT_NAME;
445   END C_COST_BGT_NAME_P;
446 
447   FUNCTION C_REV_BGT_NAME_P RETURN VARCHAR2 IS
448   BEGIN
449     RETURN C_REV_BGT_NAME;
450   END C_REV_BGT_NAME_P;
451 
452   FUNCTION C_COST_BGT_CODE_P RETURN VARCHAR2 IS
453   BEGIN
454     RETURN C_COST_BGT_CODE;
455   END C_COST_BGT_CODE_P;
456 
457   FUNCTION C_REV_BGT_CODE_P RETURN VARCHAR2 IS
458   BEGIN
459     RETURN C_REV_BGT_CODE;
460   END C_REV_BGT_CODE_P;
461 
462 END PA_PAXMGPSD_XMLP_PKG;
463