DBA Data[Home] [Help]

PACKAGE BODY: APPS.PQH_PQHWSPCH_XMLP_PKG

Source


1 PACKAGE BODY PQH_PQHWSPCH_XMLP_PKG AS
2 /* $Header: PQHWSPCHB.pls 120.2 2007/12/21 19:32:33 vjaganat noship $ */
3   FUNCTION BEFOREREPORT RETURN BOOLEAN IS
4   l_dummy boolean;
5   BEGIN
6     DECLARE
7       CURSOR CSR_HIERARCHY IS
8         SELECT
9           NAME
10         FROM
11           PER_ORGANIZATION_STRUCTURES
12         WHERE BUSINESS_GROUP_ID = P_BUSINESS_GROUP_ID
13           AND NVL(POSITION_CONTROL_STRUCTURE_FLG
14            ,'N') = 'Y';
15       CURSOR CSR_POSN_TYPE IS
16         SELECT
17           MEANING
18         FROM
19           HR_LOOKUPS
20         WHERE LOOKUP_TYPE = 'PQH_POSITION_TYPE'
21           AND LOOKUP_CODE = P_POSITION_TYPE;
22       CURSOR CSR_CURRENCY_NAME IS
23         SELECT
24           NAME
25         FROM
26           FND_CURRENCIES_ACTIVE_V
27         WHERE CURRENCY_CODE <> 'STAT'
28           AND CURRENCY_CODE = P_CURRENCY_CODE;
29       CURSOR CSR_SESSION_DATE IS
30         SELECT
31           sysdate
32         FROM
33           DUAL;
34     BEGIN
35       l_dummy := BEFOREPFORM;
36       P_CONC_REQUEST_ID := FND_GLOBAL.CONC_REQUEST_ID;
37       OPEN CSR_CURRENCY_NAME;
38       FETCH CSR_CURRENCY_NAME
39        INTO
40          CP_CURRENCY;
41       CLOSE CSR_CURRENCY_NAME;
42       OPEN CSR_HIERARCHY;
43       FETCH CSR_HIERARCHY
44        INTO
45          CP_HIERARCHY_NAME;
46       CLOSE CSR_HIERARCHY;
47       OPEN CSR_POSN_TYPE;
48       FETCH CSR_POSN_TYPE
49        INTO
50          CP_POSITION_TYPE;
51       CLOSE CSR_POSN_TYPE;
52       P_REPORT_TITLE := HR_GENERAL.DECODE_LOOKUP('PQH_REPORT_TITLES'
53                                                 ,'PQHWSPCH');
54       C_BUSINESS_GROUP_NAME := GET_BUSINESS_GROUP(P_BUSINESS_GROUP_ID);
55       OPEN CSR_SESSION_DATE;
56       FETCH CSR_SESSION_DATE
57        INTO
58          CP_SESSION_DT;
59       CLOSE CSR_SESSION_DATE;
60     END;
61     RETURN (TRUE);
62   END BEFOREREPORT;
63 
64   FUNCTION CF_1FORMULA(BUDGET_UNIT_ID1 IN NUMBER
65                       ,ACTUAL_AMT IN NUMBER
66                       ,COMMITTED_AMT IN NUMBER) RETURN NUMBER IS
67     CURSOR SHARED_TYPES IS
68       SELECT
69         SYSTEM_TYPE_CD
70       FROM
71         PER_SHARED_TYPES
72       WHERE SHARED_TYPE_ID = BUDGET_UNIT_ID1;
73     L_SHARED_TYPE_CD PER_SHARED_TYPES.SYSTEM_TYPE_CD%TYPE;
74   BEGIN
75     OPEN SHARED_TYPES;
76     FETCH SHARED_TYPES
77      INTO
78        L_SHARED_TYPE_CD;
79     CLOSE SHARED_TYPES;
80     IF L_SHARED_TYPE_CD = 'MONEY' THEN
81       RETURN (NVL(ACTUAL_AMT
82                 ,0) + NVL(COMMITTED_AMT
83                 ,0));
84     ELSE
85       RETURN (NVL(ACTUAL_AMT
86                 ,0));
87     END IF;
88   END CF_1FORMULA;
89 
90   FUNCTION CF_DEF_EX_AMTFORMULA(BUDGETED_AMT IN NUMBER
91                                ,CF_PROJECTED_EXP IN NUMBER) RETURN NUMBER IS
92   BEGIN
93     RETURN (NVL(BUDGETED_AMT
94               ,0) - NVL(CF_PROJECTED_EXP
95               ,0));
96   END CF_DEF_EX_AMTFORMULA;
97 
98   FUNCTION BEFOREPFORM RETURN BOOLEAN IS
99   BEGIN
100     INSERT INTO FND_SESSIONS
101       (SESSION_ID
102       ,EFFECTIVE_DATE)
103     VALUES   (USERENV('sessionid')
104       ,P_EFFECTIVE_DATE);
105     RETURN (TRUE);
106   END BEFOREPFORM;
107 
108   FUNCTION CF_ACT_PERFORMULA(BUDGETED_AMT IN NUMBER
109                             ,ACTUAL_AMT IN NUMBER) RETURN NUMBER IS
110   BEGIN
111     IF BUDGETED_AMT = 0 THEN
112       RETURN 0;
113     ELSE
114       RETURN (NVL(ACTUAL_AMT
115                 ,0) / BUDGETED_AMT) * 100;
116     END IF;
117   END CF_ACT_PERFORMULA;
118 
119   FUNCTION CF_COM_PERFORMULA(BUDGETED_AMT IN NUMBER
120                             ,COMMITTED_AMT IN NUMBER) RETURN NUMBER IS
121   BEGIN
122     IF BUDGETED_AMT = 0 THEN
123       RETURN 0;
124     ELSE
125       RETURN (NVL(COMMITTED_AMT
126                 ,0) / BUDGETED_AMT) * 100;
127     END IF;
128   END CF_COM_PERFORMULA;
129 
130   FUNCTION CF_PROJ_PERFORMULA(BUDGETED_AMT IN NUMBER
131                              ,CF_PROJECTED_EXP IN NUMBER) RETURN NUMBER IS
132   BEGIN
133     IF BUDGETED_AMT = 0 THEN
134       RETURN 0;
135     ELSE
136       RETURN (NVL(CF_PROJECTED_EXP
137                 ,0) / BUDGETED_AMT) * 100;
138     END IF;
139   END CF_PROJ_PERFORMULA;
140 
141   FUNCTION CF_DEF_EX_PERFORMULA(BUDGETED_AMT IN NUMBER
142                                ,CF_DEF_EX_AMT IN NUMBER) RETURN NUMBER IS
143   BEGIN
144     IF BUDGETED_AMT = 0 THEN
145       RETURN 0;
146     ELSE
147       RETURN (NVL(CF_DEF_EX_AMT
148                 ,0) / BUDGETED_AMT) * 100;
149     END IF;
150   END CF_DEF_EX_PERFORMULA;
151 
152   FUNCTION CF_ORG_PROJECTED_EXPFORMULA(BUDGET_UNIT_ID IN NUMBER
153                                       ,CF_ORG_ACTUAL_AMT IN NUMBER
154                                       ,CF_ORG_COMMITTED_AMT IN NUMBER) RETURN NUMBER IS
155     CURSOR SHARED_TYPES IS
156       SELECT
157         SYSTEM_TYPE_CD
158       FROM
159         PER_SHARED_TYPES
160       WHERE SHARED_TYPE_ID = BUDGET_UNIT_ID;
161     L_SHARED_TYPE_CD PER_SHARED_TYPES.SYSTEM_TYPE_CD%TYPE;
162   BEGIN
163     OPEN SHARED_TYPES;
164     FETCH SHARED_TYPES
165      INTO
166        L_SHARED_TYPE_CD;
167     CLOSE SHARED_TYPES;
168     IF L_SHARED_TYPE_CD = 'MONEY' THEN
169       RETURN (NVL(CF_ORG_ACTUAL_AMT
170                 ,0) + NVL(CF_ORG_COMMITTED_AMT
171                 ,0));
172     ELSE
173       RETURN (NVL(CF_ORG_ACTUAL_AMT
174                 ,0));
175     END IF;
176   END CF_ORG_PROJECTED_EXPFORMULA;
177 
178   FUNCTION CF_ORG_DEF_EX_AMTFORMULA(CF_ORG_BUDGETED_AMT IN NUMBER
179                                    ,CF_ORG_PROJECTED_EXP IN NUMBER) RETURN NUMBER IS
180   BEGIN
181     RETURN (NVL(CF_ORG_BUDGETED_AMT
182               ,0) - NVL(CF_ORG_PROJECTED_EXP
183               ,0));
184   END CF_ORG_DEF_EX_AMTFORMULA;
185 
186   FUNCTION CF_ORG_ACT_PERFORMULA(CF_ORG_BUDGETED_AMT IN NUMBER
187                                 ,CF_ORG_ACTUAL_AMT IN NUMBER) RETURN NUMBER IS
188   BEGIN
189     IF CF_ORG_BUDGETED_AMT = 0 THEN
190       RETURN 0;
191     ELSE
192       RETURN (NVL(CF_ORG_ACTUAL_AMT
193                 ,0) / CF_ORG_BUDGETED_AMT) * 100;
194     END IF;
195   END CF_ORG_ACT_PERFORMULA;
196 
197   FUNCTION CF_ORG_COM_PERFORMULA(CF_ORG_BUDGETED_AMT IN NUMBER
198                                 ,CF_ORG_COMMITTED_AMT IN NUMBER) RETURN NUMBER IS
199   BEGIN
200     IF CF_ORG_BUDGETED_AMT = 0 THEN
201       RETURN 0;
202     ELSE
203       RETURN (NVL(CF_ORG_COMMITTED_AMT
204                 ,0) / CF_ORG_BUDGETED_AMT) * 100;
205     END IF;
206   END CF_ORG_COM_PERFORMULA;
207 
208   FUNCTION CF_ORG_PROJ_PERFORMULA(CF_ORG_BUDGETED_AMT IN NUMBER
209                                  ,CF_ORG_PROJECTED_EXP IN NUMBER) RETURN NUMBER IS
210   BEGIN
211     IF CF_ORG_BUDGETED_AMT = 0 THEN
212       RETURN 0;
213     ELSE
214       RETURN (NVL(CF_ORG_PROJECTED_EXP
215                 ,0) / CF_ORG_BUDGETED_AMT) * 100;
216     END IF;
217   END CF_ORG_PROJ_PERFORMULA;
218 
219   FUNCTION CF_ORG_DEF_EX_PERFORMULA(CF_ORG_BUDGETED_AMT IN NUMBER
220                                    ,CF_ORG_DEF_EX_AMT IN NUMBER) RETURN NUMBER IS
221   BEGIN
222     IF CF_ORG_BUDGETED_AMT = 0 THEN
223       RETURN 0;
224     ELSE
225       RETURN (NVL(CF_ORG_DEF_EX_AMT
226                 ,0) / CF_ORG_BUDGETED_AMT) * 100;
227     END IF;
228   END CF_ORG_DEF_EX_PERFORMULA;
229 
230   FUNCTION CF_ORG_BUDGETED_AMTFORMULA(ORGANIZATION_ID1 IN NUMBER
231                                      ,BUDGET_UNIT_ID IN NUMBER) RETURN NUMBER IS
232     L_AMT NUMBER(15,2);
233   BEGIN
234     L_AMT := PQH_MGMT_RPT_PKG.GET_ORG_POSN_BUDGET_AMT(ORGANIZATION_ID1
235                                                      ,P_START_DATE
236                                                      ,P_END_DATE
237                                                      ,BUDGET_UNIT_ID
238                                                      ,P_CURRENCY_CODE);
239     RETURN NVL(L_AMT
240               ,0);
241   END CF_ORG_BUDGETED_AMTFORMULA;
242 
243   FUNCTION CF_ORG_ACTUAL_AMTFORMULA(ORGANIZATION_ID1 IN NUMBER
244                                    ,BUDGET_UNIT_ID IN NUMBER) RETURN NUMBER IS
245     L_AMT NUMBER(15,2);
246   BEGIN
247     L_AMT := PQH_MGMT_RPT_PKG.GET_ORG_POSN_ACTUAL_CMMTMNTS(ORGANIZATION_ID1
248                                                           ,P_START_DATE
249                                                           ,P_END_DATE
250                                                           ,BUDGET_UNIT_ID
251                                                           ,'A'
252                                                           ,P_CURRENCY_CODE);
253     RETURN NVL(L_AMT
254               ,0);
255   END CF_ORG_ACTUAL_AMTFORMULA;
256 
257   FUNCTION CF_ORG_COMMITTED_AMTFORMULA(ORGANIZATION_ID1 IN NUMBER
258                                       ,BUDGET_UNIT_ID IN NUMBER) RETURN NUMBER IS
259     L_AMT NUMBER(15,2);
260   BEGIN
261     L_AMT := PQH_MGMT_RPT_PKG.GET_ORG_POSN_ACTUAL_CMMTMNTS(ORGANIZATION_ID1
262                                                           ,P_START_DATE
263                                                           ,P_END_DATE
264                                                           ,BUDGET_UNIT_ID
265                                                           ,'C'
266                                                           ,P_CURRENCY_CODE);
267     RETURN NVL(L_AMT
268               ,0);
269   END CF_ORG_COMMITTED_AMTFORMULA;
270 
271   FUNCTION CF_BGRP_BUDGETED_AMTFORMULA(BGRP_BUDGET_UNIT_ID IN NUMBER
272                                       ,BGRP_ACTUAL_AMT IN NUMBER
273                                       ,BGRP_COMMITTED_AMT IN NUMBER) RETURN NUMBER IS
274     CURSOR SHARED_TYPES IS
275       SELECT
276         SYSTEM_TYPE_CD
277       FROM
278         PER_SHARED_TYPES
279       WHERE SHARED_TYPE_ID = BGRP_BUDGET_UNIT_ID;
280     L_SHARED_TYPE_CD PER_SHARED_TYPES.SYSTEM_TYPE_CD%TYPE;
281   BEGIN
282     OPEN SHARED_TYPES;
283     FETCH SHARED_TYPES
284      INTO
285        L_SHARED_TYPE_CD;
286     CLOSE SHARED_TYPES;
287     IF L_SHARED_TYPE_CD = 'MONEY' THEN
288       RETURN (NVL(BGRP_ACTUAL_AMT
289                 ,0) + NVL(BGRP_COMMITTED_AMT
290                 ,0));
291     ELSE
292       RETURN (NVL(BGRP_ACTUAL_AMT
293                 ,0));
294     END IF;
295   END CF_BGRP_BUDGETED_AMTFORMULA;
296 
297   FUNCTION CF_BGRP_DEF_EX_AMTFORMULA(BGRP_BUDGETED_AMT IN NUMBER
298                                     ,CF_BGRP_PROJECTED_AMT IN NUMBER) RETURN NUMBER IS
299   BEGIN
300     RETURN (NVL(BGRP_BUDGETED_AMT
301               ,0) - NVL(CF_BGRP_PROJECTED_AMT
302               ,0));
303   END CF_BGRP_DEF_EX_AMTFORMULA;
304 
305   FUNCTION CF_BGRP_COM_PERFORMULA(BGRP_BUDGETED_AMT IN NUMBER
306                                  ,BGRP_COMMITTED_AMT IN NUMBER) RETURN NUMBER IS
307   BEGIN
308     IF BGRP_BUDGETED_AMT = 0 THEN
309       RETURN 0;
310     ELSE
311       RETURN ((NVL(BGRP_COMMITTED_AMT
312                 ,0) / BGRP_BUDGETED_AMT) * 100);
313     END IF;
314   END CF_BGRP_COM_PERFORMULA;
315 
316   FUNCTION CF_BGRP_PROJ_PERFORMULA(BGRP_BUDGETED_AMT IN NUMBER
317                                   ,CF_BGRP_PROJECTED_AMT IN NUMBER) RETURN NUMBER IS
318   BEGIN
319     IF BGRP_BUDGETED_AMT = 0 THEN
320       RETURN 0;
321     ELSE
322       RETURN ((NVL(CF_BGRP_PROJECTED_AMT
323                 ,0) / BGRP_BUDGETED_AMT) * 100);
324     END IF;
325   END CF_BGRP_PROJ_PERFORMULA;
326 
327   FUNCTION CF_BGRP_DEF_EX_PERFORMULA(BGRP_BUDGETED_AMT IN NUMBER
328                                     ,CF_BGRP_DEF_EX_AMT IN NUMBER) RETURN NUMBER IS
329   BEGIN
330     IF BGRP_BUDGETED_AMT = 0 THEN
331       RETURN 0;
332     ELSE
333       RETURN ((NVL(CF_BGRP_DEF_EX_AMT
334                 ,0) / BGRP_BUDGETED_AMT) * 100);
335     END IF;
336   END CF_BGRP_DEF_EX_PERFORMULA;
337 
338   FUNCTION CF_BGRP_ACTUAL_PERFORMULA(BGRP_BUDGETED_AMT IN NUMBER
339                                     ,BGRP_ACTUAL_AMT IN NUMBER) RETURN NUMBER IS
340   BEGIN
341     IF BGRP_BUDGETED_AMT = 0 THEN
342       RETURN 0;
343     ELSE
344       RETURN ((NVL(BGRP_ACTUAL_AMT
345                 ,0) / BGRP_BUDGETED_AMT) * 100);
346     END IF;
347   END CF_BGRP_ACTUAL_PERFORMULA;
348 
349   FUNCTION CF_FORMAT_MASK2(BUDGET_UNIT_ID IN NUMBER) RETURN CHAR IS
350     CURSOR CSR_UOM IS
351       SELECT
352         SYSTEM_TYPE_CD
353       FROM
354         PER_SHARED_TYPES
355       WHERE SHARED_TYPE_ID = BUDGET_UNIT_ID
356         AND LOOKUP_TYPE = 'BUDGET_MEASUREMENT_TYPE';
357     L_BUDGET_MEASUREMENT_TYPE PER_SHARED_TYPES.SHARED_TYPE_NAME%TYPE;
358     L_FORMAT_MASK VARCHAR2(50);
359   BEGIN
360     OPEN CSR_UOM;
361     FETCH CSR_UOM
362      INTO
363        L_BUDGET_MEASUREMENT_TYPE;
364     CLOSE CSR_UOM;
365     IF L_BUDGET_MEASUREMENT_TYPE = 'MONEY' THEN
366       L_FORMAT_MASK := FND_CURRENCY.GET_FORMAT_MASK(P_CURRENCY_CODE
367                                                    ,22);
368     ELSE
369       FND_CURRENCY.BUILD_FORMAT_MASK(L_FORMAT_MASK
370                                     ,22
371                                     ,2
372                                     ,NULL
373                                     ,NULL
374                                     ,NULL
375                                     ,NULL);
376     END IF;
377     RETURN L_FORMAT_MASK;
378   END CF_FORMAT_MASK2;
379 
380   FUNCTION CF_FORMAT_MASK1(BUDGET_UNIT_ID1 IN NUMBER) RETURN CHAR IS
381     CURSOR CSR_UOM IS
382       SELECT
383         SYSTEM_TYPE_CD
384       FROM
385         PER_SHARED_TYPES
386       WHERE SHARED_TYPE_ID = BUDGET_UNIT_ID1
387         AND LOOKUP_TYPE = 'BUDGET_MEASUREMENT_TYPE';
388     L_BUDGET_MEASUREMENT_TYPE PER_SHARED_TYPES.SHARED_TYPE_NAME%TYPE;
389     L_FORMAT_MASK VARCHAR2(50);
390   BEGIN
391     OPEN CSR_UOM;
392     FETCH CSR_UOM
393      INTO
394        L_BUDGET_MEASUREMENT_TYPE;
395     CLOSE CSR_UOM;
396     IF L_BUDGET_MEASUREMENT_TYPE = 'MONEY' THEN
397       L_FORMAT_MASK := FND_CURRENCY.GET_FORMAT_MASK(P_CURRENCY_CODE
398                                                    ,22);
399     ELSE
400       FND_CURRENCY.BUILD_FORMAT_MASK(L_FORMAT_MASK
401                                     ,22
402                                     ,2
403                                     ,NULL
404                                     ,NULL
405                                     ,NULL
406                                     ,NULL);
407     END IF;
408     RETURN L_FORMAT_MASK;
409   END CF_FORMAT_MASK1;
410 
411   FUNCTION CF_FORMAT_MASK3(BGRP_BUDGET_UNIT_ID IN NUMBER) RETURN CHAR IS
412     CURSOR CSR_UOM IS
413       SELECT
414         SYSTEM_TYPE_CD
415       FROM
416         PER_SHARED_TYPES
417       WHERE SHARED_TYPE_ID = BGRP_BUDGET_UNIT_ID
418         AND LOOKUP_TYPE = 'BUDGET_MEASUREMENT_TYPE';
419     L_BUDGET_MEASUREMENT_TYPE PER_SHARED_TYPES.SHARED_TYPE_NAME%TYPE;
420     L_FORMAT_MASK VARCHAR2(50);
421   BEGIN
422     OPEN CSR_UOM;
423     FETCH CSR_UOM
424      INTO
425        L_BUDGET_MEASUREMENT_TYPE;
426     CLOSE CSR_UOM;
427     IF L_BUDGET_MEASUREMENT_TYPE = 'MONEY' THEN
428       L_FORMAT_MASK := FND_CURRENCY.GET_FORMAT_MASK(P_CURRENCY_CODE
429                                                    ,22);
430     ELSE
431       FND_CURRENCY.BUILD_FORMAT_MASK(L_FORMAT_MASK
432                                     ,22
433                                     ,2
434                                     ,NULL
435                                     ,NULL
436                                     ,NULL
437                                     ,NULL);
438     END IF;
439     RETURN L_FORMAT_MASK;
440   END CF_FORMAT_MASK3;
441 
442   FUNCTION AFTERREPORT RETURN BOOLEAN IS
443   BEGIN
444     RETURN (TRUE);
445   END AFTERREPORT;
446 
447   FUNCTION C_REPORT_SUBTITLE_P RETURN VARCHAR2 IS
448   BEGIN
449     RETURN C_REPORT_SUBTITLE;
450   END C_REPORT_SUBTITLE_P;
451 
452   FUNCTION CP_BUSINESS_GROUP_NAME_P RETURN VARCHAR2 IS
453   BEGIN
454     RETURN CP_BUSINESS_GROUP_NAME;
455   END CP_BUSINESS_GROUP_NAME_P;
456 
457   FUNCTION CP_HIERARCHY_NAME_P RETURN VARCHAR2 IS
458   BEGIN
459     RETURN CP_HIERARCHY_NAME;
460   END CP_HIERARCHY_NAME_P;
461 
462   FUNCTION CP_POSITION_TYPE_P RETURN VARCHAR2 IS
463   BEGIN
464     RETURN CP_POSITION_TYPE;
465   END CP_POSITION_TYPE_P;
466 
467   FUNCTION CP_CURRENCY_P RETURN VARCHAR2 IS
468   BEGIN
469     RETURN CP_CURRENCY;
470   END CP_CURRENCY_P;
471 
472   FUNCTION C_BUSINESS_GROUP_NAME_P RETURN VARCHAR2 IS
473   BEGIN
474     RETURN C_BUSINESS_GROUP_NAME;
475   END C_BUSINESS_GROUP_NAME_P;
476 
477   FUNCTION CP_SESSION_DT_P RETURN DATE IS
478   BEGIN
479     RETURN CP_SESSION_DT;
480   END CP_SESSION_DT_P;
481 
482   FUNCTION GET_BUSINESS_GROUP(P_BUSINESS_GROUP_ID IN NUMBER) RETURN VARCHAR2 IS
483     X0 VARCHAR2(2000);
484   BEGIN
485     X0 := HR_REPORTS.GET_BUSINESS_GROUP(P_BUSINESS_GROUP_ID);
486     RETURN X0;
487   END GET_BUSINESS_GROUP;
488 
489 END PQH_PQHWSPCH_XMLP_PKG;