DBA Data[Home] [Help]

PACKAGE BODY: APPS.HRI_APL_DGNSTC_WBM

Source


1 PACKAGE BODY HRI_APL_DGNSTC_WBM AS
2 /* $Header: hridgwbm.pkb 120.6 2006/08/23 15:39:06 rlpatil noship $ */
3 
4    FUNCTION GET_CTRL_HDCNT_BDGTS
5       RETURN VARCHAR2
6    IS
7       l_sql_stmt   VARCHAR2 (32000);
8    BEGIN
9       l_sql_stmt :=
10          '
11   SELECT /*+ ordered */
12          PBG.NAME,
13          PB.BUDGET_NAME ||'' (''|| PBV.VERSION_NUMBER ||'')'',
14 	 FND_DATE.DATE_TO_DISPLAYDATE(PB.BUDGET_START_DATE),
15 	 FND_DATE.DATE_TO_DISPLAYDATE(PB.BUDGET_END_DATE),
16 	 CASE WHEN PB.BUDGET_UNIT1_ID = PST.SHARED_TYPE_ID   THEN PBV.BUDGET_UNIT1_VALUE
17               WHEN PB.BUDGET_UNIT2_ID = PST.SHARED_TYPE_ID   THEN PBV.BUDGET_UNIT2_VALUE
18               WHEN PB.BUDGET_UNIT3_ID = PST.SHARED_TYPE_ID   THEN PBV.BUDGET_UNIT3_VALUE
19          END BUDGET_VALUE
20    FROM (Select BUDGET_NAME,
21                BUSINESS_GROUP_ID,
22                BUDGET_ID,
23 	       BUDGET_UNIT1_ID,
24                BUDGET_UNIT2_ID,
25 	       BUDGET_UNIT3_ID,
26 	       BUDGET_START_DATE,
27                BUDGET_END_DATE
28          from  PQH_BUDGETS
29         WHERE  POSITION_CONTROL_FLAG  = ''Y''
30           AND BUDGETED_ENTITY_CD    IN (''ORGANIZATION'', ''POSITION'')
31           AND BUDGET_START_DATE <= :p_end_date
32           AND BUDGET_END_DATE   >= :p_start_date )PB,
33      (SELECT SHARED_TYPE_ID
34         FROM PER_SHARED_TYPES
35        WHERE LOOKUP_TYPE = ''BUDGET_MEASUREMENT_TYPE''
36          AND SYSTEM_TYPE_CD =''HEAD'' ) PST,
37 	 PQH_BUDGET_VERSIONS PBV,
38          PER_BUSINESS_GROUPS_PERF PBG
39    WHERE PB.BUDGET_ID             = PBV.BUDGET_ID
40      AND PST.SHARED_TYPE_ID       IN (PB.BUDGET_UNIT1_ID, PB.BUDGET_UNIT2_ID, PB.BUDGET_UNIT3_ID)
41      AND PBV.BUDGET_VERSION_ID    =( SELECT MAX(BUDGET_VERSION_ID)
42                                        FROM PQH_BUDGET_VERSIONS
43                                       WHERE BUDGET_ID = PB.BUDGET_ID )
44      AND PB.BUSINESS_GROUP_ID     = PBG.BUSINESS_GROUP_ID
45    ORDER BY PBG.NAME
46          ';
47       RETURN l_sql_stmt;
48    END GET_CTRL_HDCNT_BDGTS;
49 
50 
51    FUNCTION GET_NO_CTRL_HDCNT_BDGTS_PRDS
52       RETURN VARCHAR2
53    IS
54       l_sql_stmt   VARCHAR2(32000);
55    BEGIN
56       l_sql_stmt :=
57 
58 'SELECT PBG.NAME,
59         FND_DATE.DATE_TO_DISPLAYDATE(PRDS.START_DATE),
60 	FND_DATE.DATE_TO_DISPLAYDATE(PRDS.END_DATE),
61         NULL COL4,
62         NULL COL5
63   FROM
64 (
65 (SELECT     ID,
66             CASE WHEN (LEAD(DATE_FROM, 1) OVER
67                                  (PARTITION BY ID ORDER BY DATE_FROM)) IS NULL
68 		  AND DATE_FROM > :p_start_date
69 		  AND (row_number() over (PARTITION BY ID ORDER BY DATE_FROM))  =1
70 	         THEN :p_start_date
71 	         WHEN DATE_FROM > :p_start_date AND (row_number() over (PARTITION BY ID ORDER BY DATE_FROM))  =1
72 	         THEN :p_start_date
73              END  START_DATE,
74             CASE WHEN (LEAD(DATE_FROM, 1) OVER
75                                  (PARTITION BY ID ORDER BY DATE_FROM)) IS NULL
76                   AND DATE_FROM > :p_start_date
77 		  AND (row_number() over (PARTITION BY ID ORDER BY DATE_FROM))  =1
78 	         THEN DATE_FROM  -1
79                  WHEN DATE_FROM > :p_start_date AND (row_number() over (PARTITION BY ID ORDER BY DATE_FROM))  =1
80 	         THEN DATE_FROM -1
81             END  END_DATE
82  FROM
83           ( SELECT PB.BUSINESS_GROUP_ID ID,
84 	           PB.BUDGET_START_DATE  DATE_FROM,
85                    PB.BUDGET_END_DATE    DATE_TO
86               FROM PQH_BUDGETS PB,
87                   (SELECT SHARED_TYPE_ID
88                      FROM PER_SHARED_TYPES
89                     WHERE LOOKUP_TYPE = ''BUDGET_MEASUREMENT_TYPE''
90                       AND SYSTEM_TYPE_CD=''HEAD'' ) PST
91              WHERE PB.POSITION_CONTROL_FLAG = ''Y''
92                AND PB.BUDGETED_ENTITY_CD    IN (''ORGANIZATION'',''POSITION'')
93                AND PB.BUDGET_START_DATE     <= :p_end_date
94                AND PB.BUDGET_END_DATE       >= :p_start_date
95                AND PST.SHARED_TYPE_ID       IN (PB.BUDGET_UNIT1_ID, PB.BUDGET_UNIT2_ID, PB.BUDGET_UNIT3_ID)
96 	     ORDER BY DATE_FROM ))
97 UNION
98 (SELECT     ID,
99             CASE WHEN DATE_TO+1   < NVL((LEAD(DATE_FROM, 1) OVER
100                                  (PARTITION BY ID ORDER BY DATE_FROM)), :p_end_date)
101                  THEN DATE_TO +1
102 	         WHEN DATE_FROM > :p_start_date AND (row_number() over (PARTITION BY ID ORDER BY DATE_FROM))  =1
103 	         THEN :p_start_date
104              END  START_DATE,
105             CASE WHEN DATE_TO+1   < NVL((LEAD(DATE_FROM, 1) OVER
106                                (PARTITION BY ID ORDER BY DATE_FROM)), :p_end_date)
107 	         THEN NVL((LEAD(DATE_FROM, 1) OVER
108                                (PARTITION BY ID ORDER BY DATE_FROM)) - 1, :p_end_date)
109                  WHEN DATE_FROM > :p_start_date AND (row_number() over (PARTITION BY ID ORDER BY DATE_FROM))  =1
110 	         THEN DATE_FROM -1
111             END  END_DATE
112  FROM
113           ( SELECT PB.BUSINESS_GROUP_ID ID,
114 	           PB.BUDGET_START_DATE  DATE_FROM,
115                    PB.BUDGET_END_DATE    DATE_TO
116               FROM PQH_BUDGETS PB,
117                   (SELECT SHARED_TYPE_ID
118                      FROM PER_SHARED_TYPES
119                     WHERE LOOKUP_TYPE = ''BUDGET_MEASUREMENT_TYPE''
120                       AND SYSTEM_TYPE_CD=''HEAD'' ) PST
121              WHERE PB.POSITION_CONTROL_FLAG = ''Y''
122                AND PB.BUDGETED_ENTITY_CD    IN (''ORGANIZATION'',''POSITION'')
123                AND PB.BUDGET_START_DATE     <= :p_end_date
124                AND PB.BUDGET_END_DATE       >= :p_start_date
125                AND PST.SHARED_TYPE_ID       IN (PB.BUDGET_UNIT1_ID, PB.BUDGET_UNIT2_ID, PB.BUDGET_UNIT3_ID)
126 	     ORDER BY DATE_FROM ))
127 )PRDS,
128 PER_BUSINESS_GROUPS PBG
129 WHERE PRDS.START_DATE IS NOT NULL
130   AND PRDS.ID     = PBG.BUSINESS_GROUP_ID
131 ORDER BY PBG.NAME';
132       RETURN l_sql_stmt;
133    END GET_NO_CTRL_HDCNT_BDGTS_PRDS;
134 
135 
136    FUNCTION GET_NO_ORG_HDCNT_BDGTS
137       RETURN VARCHAR2
138    IS
139       l_sql_stmt   VARCHAR2 (32000);
140    BEGIN
141       l_sql_stmt :=
142          '
143  SELECT PBG.NAME,
144         HR_GENERAL.DECODE_ORGANIZATION(ORG.ORGANIZATION_ID),
145 	NULL COL3,
146 	NULL COL4,
147 	NULL COL5
148    FROM
149 (
150  SELECT ORGANIZATION_ID,
151         BUSINESS_GROUP_ID ID
152    FROM HR_ALL_ORGANIZATION_UNITS
153   WHERE DATE_FROM <= :p_end_date
154     AND NVL(DATE_TO,hr_general.end_of_time) >=  :p_start_date
155     AND (ORGANIZATION_ID,BUSINESS_GROUP_ID) NOT IN
156   (
157  SELECT  /*+ ordered*/
158          PBD.ORGANIZATION_ID,
159          PB.BUSINESS_GROUP_ID
160    FROM (Select BUSINESS_GROUP_ID,
161                BUDGET_ID,
162 	       BUDGET_UNIT1_ID,
163                BUDGET_UNIT2_ID,
164 	       BUDGET_UNIT3_ID
165          from  PQH_BUDGETS
166         WHERE   POSITION_CONTROL_FLAG  = ''Y''
167           AND BUDGETED_ENTITY_CD    IN (''ORGANIZATION'', ''POSITION'')
168           AND BUDGET_START_DATE <= :p_end_date
169           AND BUDGET_END_DATE   >= :p_start_date )PB,
170      (SELECT SHARED_TYPE_ID
171         FROM PER_SHARED_TYPES
172        WHERE LOOKUP_TYPE = ''BUDGET_MEASUREMENT_TYPE''
173          AND SYSTEM_TYPE_CD =''HEAD'' ) PST,
174 	 PQH_BUDGET_VERSIONS PBV,
175          PQH_BUDGET_DETAILS PBD
176    WHERE PB.BUDGET_ID             = PBV.BUDGET_ID
177      AND PBV.BUDGET_VERSION_ID    = PBD.BUDGET_VERSION_ID
178      AND PST.SHARED_TYPE_ID       IN (PB.BUDGET_UNIT1_ID, PB.BUDGET_UNIT2_ID, PB.BUDGET_UNIT3_ID)
179      AND PBV.BUDGET_VERSION_ID    =( SELECT MAX(BUDGET_VERSION_ID)
180                                        FROM PQH_BUDGET_VERSIONS
181                                       WHERE BUDGET_ID = PB.BUDGET_ID )
182 ) )ORG,
183 PER_BUSINESS_GROUPS_PERF PBG
184 WHERE ORG.ID     = PBG.BUSINESS_GROUP_ID
185 ORDER BY PBG.NAME
186         ';
187       RETURN l_sql_stmt;
188    END GET_NO_ORG_HDCNT_BDGTS;
189 
190 
191    FUNCTION GET_NO_POS_HDCNT_BDGTS
192       RETURN VARCHAR2
193    IS
194       l_sql_stmt   VARCHAR2 (32000);
195    BEGIN
196       l_sql_stmt :=
197          '
198  SELECT PBG.NAME,
199         HR_GENERAL.DECODE_POSITION_LATEST_NAME(POSITION_ID),
200 	NULL COL3,
201 	NULL COL4,
202 	NULL COL5
203    FROM
204 (
205  SELECT POSITION_ID,
206         BUSINESS_GROUP_ID ID
207    FROM HR_ALL_POSITIONS_F
208   WHERE EFFECTIVE_START_DATE <= :p_end_date
209     AND NVL(EFFECTIVE_END_DATE, hr_general.end_of_time) >= :p_start_date
210     AND (POSITION_ID, BUSINESS_GROUP_ID) NOT IN
211   (
212   SELECT  /*+ ordered*/
213          PBD.POSITION_ID,
214          PB.BUSINESS_GROUP_ID ID
215   FROM (Select BUSINESS_GROUP_ID,
216                BUDGET_ID,
217 	       BUDGET_UNIT1_ID,
218                BUDGET_UNIT2_ID,
219 	       BUDGET_UNIT3_ID
220          from  PQH_BUDGETS
221         WHERE  POSITION_CONTROL_FLAG  = ''Y''
222           AND  BUDGETED_ENTITY_CD = ''POSITION''
223           AND  BUDGET_START_DATE <= :p_end_date
224           AND  BUDGET_END_DATE   >= :p_start_date )PB,
225      (SELECT SHARED_TYPE_ID
226         FROM PER_SHARED_TYPES
227        WHERE LOOKUP_TYPE = ''BUDGET_MEASUREMENT_TYPE''
228          AND SYSTEM_TYPE_CD =''HEAD'' ) PST,
229 	 PQH_BUDGET_VERSIONS PBV,
230          PQH_BUDGET_DETAILS PBD
231    WHERE PB.BUDGET_ID             = PBV.BUDGET_ID
232      AND PBV.BUDGET_VERSION_ID    = PBD.BUDGET_VERSION_ID
233      AND PST.SHARED_TYPE_ID       IN (PB.BUDGET_UNIT1_ID, PB.BUDGET_UNIT2_ID, PB.BUDGET_UNIT3_ID)
234      AND PBV.BUDGET_VERSION_ID    =( SELECT MAX(BUDGET_VERSION_ID)
235                                        FROM PQH_BUDGET_VERSIONS
236                                       WHERE BUDGET_ID = PB.BUDGET_ID )
237 ) )POS,
238 PER_BUSINESS_GROUPS_PERF PBG
239 WHERE POS.ID     = PBG.BUSINESS_GROUP_ID
240 ORDER BY PBG.NAME
241       ';
242       RETURN l_sql_stmt;
243    END GET_NO_POS_HDCNT_BDGTS;
244 
245 
246    FUNCTION GET_CTRL_LBRCST_BDGTS
247       RETURN VARCHAR2
248    IS
249       l_sql_stmt   VARCHAR2 (32000);
250    BEGIN
251       l_sql_stmt :=
252 	 '
253   SELECT /*+ ordered */
254          PBG.NAME,
255          PB.BUDGET_NAME ||'' (''|| PBV.VERSION_NUMBER ||'')'',
256          FND_DATE.DATE_TO_DISPLAYDATE(PB.BUDGET_START_DATE),
257 	 FND_DATE.DATE_TO_DISPLAYDATE(PB.BUDGET_END_DATE),
258          NVL(PB.CURRENCY_CODE, PQH_BUDGET.GET_CURRENCY_CD(PB.BUDGET_ID))||'' ''||
259 	 TO_CHAR(
260 	 CASE WHEN PB.BUDGET_UNIT1_ID = PST.SHARED_TYPE_ID   THEN PBV.BUDGET_UNIT1_VALUE
261               WHEN PB.BUDGET_UNIT2_ID = PST.SHARED_TYPE_ID   THEN PBV.BUDGET_UNIT2_VALUE
262               WHEN PB.BUDGET_UNIT3_ID = PST.SHARED_TYPE_ID   THEN PBV.BUDGET_UNIT3_VALUE
263          END,
264 	 FND_CURRENCY.GET_FORMAT_MASK(NVL(PB.CURRENCY_CODE, PQH_BUDGET.GET_CURRENCY_CD(PB.BUDGET_ID)),30)
265 	 )  BUDGET_VALUE
266    FROM (Select BUDGET_NAME,
267                BUSINESS_GROUP_ID,
268                BUDGET_ID,
269 	       BUDGET_UNIT1_ID,
270                BUDGET_UNIT2_ID,
271 	       BUDGET_UNIT3_ID,
272 	       BUDGET_START_DATE,
273                BUDGET_END_DATE,
274 	       CURRENCY_CODE
275          from  PQH_BUDGETS
276         WHERE  POSITION_CONTROL_FLAG  = ''Y''
277           AND BUDGETED_ENTITY_CD    IN (''ORGANIZATION'', ''POSITION'')
278           AND BUDGET_START_DATE <= :p_end_date
279           AND BUDGET_END_DATE   >= :p_start_date )PB,
280      (SELECT SHARED_TYPE_ID
281         FROM PER_SHARED_TYPES
282        WHERE LOOKUP_TYPE = ''BUDGET_MEASUREMENT_TYPE''
283          AND SYSTEM_TYPE_CD =''MONEY'' ) PST,
284 	 PQH_BUDGET_VERSIONS PBV,
285          PER_BUSINESS_GROUPS_PERF PBG
286    WHERE PB.BUDGET_ID             = PBV.BUDGET_ID
287      AND PST.SHARED_TYPE_ID       IN (PB.BUDGET_UNIT1_ID, PB.BUDGET_UNIT2_ID, PB.BUDGET_UNIT3_ID)
288      AND PBV.BUDGET_VERSION_ID    =( SELECT MAX(BUDGET_VERSION_ID)
289                                        FROM PQH_BUDGET_VERSIONS
290                                       WHERE BUDGET_ID = PB.BUDGET_ID )
291      AND PBG.BUSINESS_GROUP_ID    = PB.BUSINESS_GROUP_ID
292    ORDER BY PBG.NAME
293    ';
294       RETURN l_sql_stmt;
295    END GET_CTRL_LBRCST_BDGTS;
296 
297 
298    FUNCTION GET_NO_CTRL_LBRCST_BDGTS_PRDS
299       RETURN VARCHAR2
300    IS
301       l_sql_stmt   VARCHAR2 (32000);
302    BEGIN
303       l_sql_stmt :=
304 
305 'SELECT PBG.NAME,
306         FND_DATE.DATE_TO_DISPLAYDATE(PRDS.EFFECTIVE_START_DATE),
307 	FND_DATE.DATE_TO_DISPLAYDATE(PRDS.EFFECTIVE_END_DATE),
308         NULL COL4,
309         NULL COL5
310   FROM
311 (
312 (SELECT     ID,
313             CASE WHEN (LEAD(DATE_FROM, 1) OVER
314                                  (PARTITION BY ID ORDER BY DATE_FROM)) IS NULL
315 		  AND DATE_FROM > :p_start_date
316 		  AND (row_number() over (PARTITION BY ID ORDER BY DATE_FROM))  =1
317 	         THEN :p_start_date
318 	         WHEN DATE_FROM > :p_start_date AND (row_number() over (PARTITION BY ID ORDER BY DATE_FROM))  =1
319 	         THEN :p_start_date
320              END  EFFECTIVE_START_DATE,
321             CASE WHEN (LEAD(DATE_FROM, 1) OVER
322                                  (PARTITION BY ID ORDER BY DATE_FROM)) IS NULL
323                   AND DATE_FROM > :p_start_date
324 		  AND (row_number() over (PARTITION BY ID ORDER BY DATE_FROM))  =1
325 	         THEN DATE_FROM  -1
326                  WHEN DATE_FROM > :p_start_date AND (row_number() over (PARTITION BY ID ORDER BY DATE_FROM))  =1
327 	         THEN DATE_FROM -1
328             END  EFFECTIVE_END_DATE
329  FROM
330           ( SELECT PB.BUSINESS_GROUP_ID ID,
331 	           PB.BUDGET_START_DATE  DATE_FROM,
332                    PB.BUDGET_END_DATE    DATE_TO
333               FROM PQH_BUDGETS PB,
334                   (SELECT SHARED_TYPE_ID
335                      FROM PER_SHARED_TYPES
336                     WHERE LOOKUP_TYPE = ''BUDGET_MEASUREMENT_TYPE''
337                       AND SYSTEM_TYPE_CD=''MONEY'' ) PST
338              WHERE PB.POSITION_CONTROL_FLAG = ''Y''
339                AND PB.BUDGETED_ENTITY_CD    IN (''ORGANIZATION'',''POSITION'')
340                AND PB.BUDGET_START_DATE     <= :p_end_date
341                AND PB.BUDGET_END_DATE       >= :p_start_date
342                AND PST.SHARED_TYPE_ID       IN (PB.BUDGET_UNIT1_ID, PB.BUDGET_UNIT2_ID, PB.BUDGET_UNIT3_ID)
343 	     ORDER BY DATE_FROM ))
344 UNION
345 (SELECT     ID,
346             CASE WHEN DATE_TO+1   < NVL((LEAD(DATE_FROM, 1) OVER
347                                  (PARTITION BY ID ORDER BY DATE_FROM)), :p_end_date)
348                  THEN DATE_TO +1
349 	         WHEN DATE_FROM > :p_start_date AND (row_number() over (PARTITION BY ID ORDER BY DATE_FROM))  =1
350 	         THEN :p_start_date
351              END  EFFECTIVE_START_DATE,
352 
353             CASE WHEN DATE_TO+1   < NVL((LEAD(DATE_FROM, 1) OVER
354                                (PARTITION BY ID ORDER BY DATE_FROM)), :p_end_date)
355 	         THEN NVL((LEAD(DATE_FROM, 1) OVER
356                                (PARTITION BY ID ORDER BY DATE_FROM)) - 1, :p_end_date)
357                  WHEN DATE_FROM > :p_start_date AND (row_number() over (PARTITION BY ID ORDER BY DATE_FROM))  =1
358 	         THEN DATE_FROM -1
359             END  EFFECTIVE_END_DATE
360  FROM
361           ( SELECT PB.BUSINESS_GROUP_ID ID,
362 	           PB.BUDGET_START_DATE  DATE_FROM,
363                    PB.BUDGET_END_DATE    DATE_TO
364               FROM PQH_BUDGETS PB,
365                   (SELECT SHARED_TYPE_ID
366                      FROM PER_SHARED_TYPES
367                     WHERE LOOKUP_TYPE = ''BUDGET_MEASUREMENT_TYPE''
368                       AND SYSTEM_TYPE_CD=''MONEY'' ) PST
369              WHERE PB.POSITION_CONTROL_FLAG = ''Y''
370                AND PB.BUDGETED_ENTITY_CD    IN (''ORGANIZATION'',''POSITION'')
371                AND PB.BUDGET_START_DATE     <= :p_end_date
372                AND PB.BUDGET_END_DATE       >= :p_start_date
373                AND PST.SHARED_TYPE_ID       IN (PB.BUDGET_UNIT1_ID, PB.BUDGET_UNIT2_ID, PB.BUDGET_UNIT3_ID)
374 	     ORDER BY DATE_FROM ))
375 )PRDS,
376 PER_BUSINESS_GROUPS PBG
377 WHERE EFFECTIVE_START_DATE IS NOT NULL
378   AND PRDS.ID     = PBG.BUSINESS_GROUP_ID
379 ORDER BY PBG.NAME';
380       RETURN l_sql_stmt;
381    END GET_NO_CTRL_LBRCST_BDGTS_PRDS;
382 
383    FUNCTION GET_NO_ORG_LBRCST_BDGTS
384       RETURN VARCHAR2
385    IS
386       l_sql_stmt   VARCHAR2 (32000);
387    BEGIN
388       l_sql_stmt :=
389          '
390  SELECT PBG.NAME,
391         HR_GENERAL.DECODE_ORGANIZATION(ORG.ORGANIZATION_ID),
392 	NULL COL3,
393 	NULL COL4,
394 	NULL COL5
395    FROM
396 (
397  SELECT ORGANIZATION_ID,
398         BUSINESS_GROUP_ID ID
399    FROM HR_ALL_ORGANIZATION_UNITS
403   (
400   WHERE DATE_FROM <= :p_end_date
401     AND NVL(DATE_TO,hr_general.end_of_time) >=  :p_start_date
402     AND (ORGANIZATION_ID, BUSINESS_GROUP_ID) NOT IN
404   SELECT /*+ ordered*/
405          PBD.ORGANIZATION_ID,
406          PB.BUSINESS_GROUP_ID ID
407   FROM (Select BUSINESS_GROUP_ID,
408                BUDGET_ID,
409 	       BUDGET_UNIT1_ID,
410                BUDGET_UNIT2_ID,
411 	       BUDGET_UNIT3_ID
412          from  PQH_BUDGETS
413         WHERE  POSITION_CONTROL_FLAG  = ''Y''
414           AND  BUDGETED_ENTITY_CD    IN (''ORGANIZATION'',''POSITION'')
415           AND  BUDGET_START_DATE <= :p_end_date
416           AND  BUDGET_END_DATE   >= :p_start_date )PB,
417      (SELECT SHARED_TYPE_ID
418         FROM PER_SHARED_TYPES
419        WHERE LOOKUP_TYPE = ''BUDGET_MEASUREMENT_TYPE''
420          AND SYSTEM_TYPE_CD =''MONEY'' ) PST,
421 	 PQH_BUDGET_VERSIONS PBV,
422 	 PQH_BUDGET_DETAILS PBD
423    WHERE PB.BUDGET_ID             = PBV.BUDGET_ID
424      AND PBV.BUDGET_VERSION_ID    = PBD.BUDGET_VERSION_ID
425      AND PST.SHARED_TYPE_ID       IN (PB.BUDGET_UNIT1_ID, PB.BUDGET_UNIT2_ID, PB.BUDGET_UNIT3_ID)
426      AND PBV.BUDGET_VERSION_ID    =( SELECT MAX(BUDGET_VERSION_ID)
427                                        FROM PQH_BUDGET_VERSIONS
428                                       WHERE BUDGET_ID = PB.BUDGET_ID )
429 )) ORG,
430 PER_BUSINESS_GROUPS_PERF PBG
431 WHERE ORG.ID     = PBG.BUSINESS_GROUP_ID
432 ORDER BY PBG.NAME
433 ';
434 
435       RETURN l_sql_stmt;
436    END GET_NO_ORG_LBRCST_BDGTS;
437 
438 
439    FUNCTION GET_NO_POS_LBRCST_BDGTS
440       RETURN VARCHAR2
441    IS
442       l_sql_stmt   VARCHAR2 (32000);
443    BEGIN
444       l_sql_stmt :=
445          '
446  SELECT PBG.NAME,
447         HR_GENERAL.DECODE_POSITION_LATEST_NAME(POS.POSITION_ID),
448 	NULL COL3,
449 	NULL COL4,
450 	NULL COL5
451    FROM
452 (
453  SELECT POSITION_ID,
454         BUSINESS_GROUP_ID ID
455    FROM HR_ALL_POSITIONS_F
456   WHERE EFFECTIVE_START_DATE <= :p_end_date
457     AND NVL(EFFECTIVE_END_DATE, hr_general.end_of_time) >= :p_start_date
458     AND (POSITION_ID, BUSINESS_GROUP_ID) NOT IN
459   (
460   SELECT  /*+ ordered*/
461          PBD.POSITION_ID,
462          PB.BUSINESS_GROUP_ID ID
463   FROM (Select BUSINESS_GROUP_ID,
464                BUDGET_ID,
465 	       BUDGET_UNIT1_ID,
466                BUDGET_UNIT2_ID,
467 	       BUDGET_UNIT3_ID
468          from  PQH_BUDGETS
469         WHERE  POSITION_CONTROL_FLAG  = ''Y''
470           AND  BUDGETED_ENTITY_CD = ''POSITION''
471           AND  BUDGET_START_DATE <= :p_end_date
472           AND  BUDGET_END_DATE   >= :p_start_date )PB,
473      (SELECT SHARED_TYPE_ID
474         FROM PER_SHARED_TYPES
475        WHERE LOOKUP_TYPE = ''BUDGET_MEASUREMENT_TYPE''
476          AND SYSTEM_TYPE_CD =''MONEY'' ) PST,
477 	 PQH_BUDGET_VERSIONS PBV,
478          PQH_BUDGET_DETAILS PBD
479    WHERE PB.BUDGET_ID             = PBV.BUDGET_ID
480      AND PBV.BUDGET_VERSION_ID    = PBD.BUDGET_VERSION_ID
481      AND PST.SHARED_TYPE_ID       IN (PB.BUDGET_UNIT1_ID, PB.BUDGET_UNIT2_ID, PB.BUDGET_UNIT3_ID)
482      AND PBV.BUDGET_VERSION_ID    =( SELECT MAX(BUDGET_VERSION_ID)
483                                        FROM PQH_BUDGET_VERSIONS
484                                       WHERE BUDGET_ID = PB.BUDGET_ID )
485 ) )POS,
486 PER_BUSINESS_GROUPS_PERF PBG
487 WHERE POS.ID     = PBG.BUSINESS_GROUP_ID
488 ORDER BY PBG.NAME
489          ';
490       RETURN l_sql_stmt;
491    END GET_NO_POS_LBRCST_BDGTS;
492 
493    FUNCTION GET_BSET_NO_FUND_SCR
494       RETURN VARCHAR2
495    IS
496       l_sql_stmt   VARCHAR2 (32000);
497    BEGIN
498       l_sql_stmt :=
499          '
500    SELECT  PB.BUDGET_NAME ||'' (''|| PBV.VERSION_NUMBER ||'')'',
501            PDBS.DFLT_BUDGET_SET_NAME,
502            HRI_APL_DGNSTC_WBM.GET_ELE_NAME(ELE.BUDGET_ELEMENT_ID,:p_start_date),
503            NULL COL4,
504 	   NULL COL5
505      FROM  PQH_BUDGETS PB,
506            PQH_BUDGET_VERSIONS PBV,
507            PQH_BUDGET_DETAILS PBD,
508            (SELECT SHARED_TYPE_ID
509               FROM PER_SHARED_TYPES
510              WHERE LOOKUP_TYPE = ''BUDGET_MEASUREMENT_TYPE''
511                AND SYSTEM_TYPE_CD=''MONEY'' ) PST,
512             PQH_BUDGET_DETAILS  DET,
513 	    PQH_BUDGET_PERIODS  PRD,
514 	    PER_TIME_PERIODS    PTPS,
515 	    PER_TIME_PERIODS    PTPE,
516 	    PQH_BUDGET_SETS     BSET,
517 	    PQH_BUDGET_ELEMENTS ELE,
518 	    PQH_BUDGET_FUND_SRCS SRC,
519 	    PQH_DFLT_BUDGET_SETS PDBS
520     WHERE PB.POSITION_CONTROL_FLAG = ''Y''
521       AND PB.BUDGET_ID             = PBV.BUDGET_ID
522       AND PBV.BUDGET_VERSION_ID    = PBD.BUDGET_VERSION_ID
523       AND PB.BUDGETED_ENTITY_CD    IN (''ORGANIZATION'',''POSITION'')
524       AND PB.BUDGET_START_DATE            <= :p_end_date
525       AND PB.BUDGET_END_DATE              >= :p_start_date
526       AND PST.SHARED_TYPE_ID       IN (PB.BUDGET_UNIT1_ID, PB.BUDGET_UNIT2_ID, PB.BUDGET_UNIT3_ID)
527       AND PBV.BUDGET_VERSION_ID    =( SELECT MAX(BUDGET_VERSION_ID)
528                                        FROM PQH_BUDGET_VERSIONS
529                                       WHERE BUDGET_ID = PB.BUDGET_ID )
530       AND DET.BUDGET_VERSION_ID    = PBV.BUDGET_VERSION_ID
531       AND DET.BUDGET_DETAIL_ID     = PRD.BUDGET_DETAIL_ID
532       AND PRD.BUDGET_PERIOD_ID     = BSET.BUDGET_PERIOD_ID
533       AND PRD.START_TIME_PERIOD_ID = PTPS.TIME_PERIOD_ID
534       AND PRD.END_TIME_PERIOD_ID   = PTPE.TIME_PERIOD_ID
535       AND BSET.BUDGET_SET_ID       = ELE.BUDGET_SET_ID
536       AND ELE.BUDGET_ELEMENT_ID    = SRC.BUDGET_ELEMENT_ID
537       AND SRC.COST_ALLOCATION_KEYFLEX_ID IS  NULL
538       AND BSET.DFLT_BUDGET_SET_ID  = PDBS.DFLT_BUDGET_SET_ID
542    END GET_BSET_NO_FUND_SCR;
539       AND PB.BUSINESS_GROUP_ID     = PDBS.BUSINESS_GROUP_ID
540 	 ';
541       RETURN l_sql_stmt;
543 
544 
545    FUNCTION GET_BSET_PRCT_DSTR
546       RETURN VARCHAR2
547    IS
548       l_sql_stmt   VARCHAR2 (32000);
549    BEGIN
550       l_sql_stmt :=
551          '
552 SELECT  BSET.BUDGET,
553         HRI_APL_DGNSTC_WBM.GET_BSET_NAME(BSET.BUDGET_SET_ID,BSET.BUSINESS_GROUP_ID),
554         SUM(  CASE WHEN  BSET.BUDGET_UNIT1_ID = BSET.SHARED_TYPE_ID THEN ELE.DISTRIBUTION_PERCENTAGE
555                    WHEN  BSET.BUDGET_UNIT2_ID = BSET.SHARED_TYPE_ID THEN ELE.DISTRIBUTION_PERCENTAGE
556                    WHEN  BSET.BUDGET_UNIT3_ID = BSET.SHARED_TYPE_ID THEN ELE.DISTRIBUTION_PERCENTAGE
557                END ),
558         NULL COL4,
559 	NULL COL5
560   FROM
561   ( SELECT DISTINCT BSET.BUDGET_SET_ID,
562            PB.BUDGET_NAME ||'' (''|| PBV.VERSION_NUMBER ||'')'' BUDGET,
563            PB.BUSINESS_GROUP_ID,
564            PB.BUDGET_UNIT1_ID,
565 	   PB.BUDGET_UNIT2_ID,
566 	   PB.BUDGET_UNIT3_ID,
567 	   PST.SHARED_TYPE_ID
568      FROM  PQH_BUDGETS PB,
569            PQH_BUDGET_VERSIONS PBV,
570            PQH_BUDGET_DETAILS PBD,
571            (SELECT SHARED_TYPE_ID
572               FROM PER_SHARED_TYPES
573              WHERE LOOKUP_TYPE = ''BUDGET_MEASUREMENT_TYPE''
574                AND SYSTEM_TYPE_CD=''MONEY'' ) PST,
575             PQH_BUDGET_DETAILS  DET,
576 	    PQH_BUDGET_PERIODS  PRD,
577 	    PER_TIME_PERIODS    PTPS,
578 	    PER_TIME_PERIODS    PTPE,
579 	    PQH_BUDGET_SETS     BSET
580     WHERE PB.POSITION_CONTROL_FLAG = ''Y''
581       AND PB.BUDGET_ID             = PBV.BUDGET_ID
582       AND PBV.BUDGET_VERSION_ID    = PBD.BUDGET_VERSION_ID
583       AND PB.BUDGETED_ENTITY_CD    IN (''ORGANIZATION'',''POSITION'')
584       AND PB.BUDGET_START_DATE            <= :p_end_date
585       AND PB.BUDGET_END_DATE              >= :p_start_date
586       AND PST.SHARED_TYPE_ID       IN (PB.BUDGET_UNIT1_ID, PB.BUDGET_UNIT2_ID, PB.BUDGET_UNIT3_ID)
587       AND PBV.BUDGET_VERSION_ID    =( SELECT MAX(BUDGET_VERSION_ID)
588                                        FROM PQH_BUDGET_VERSIONS
589                                       WHERE BUDGET_ID = PB.BUDGET_ID )
590       AND DET.BUDGET_VERSION_ID    = PBV.BUDGET_VERSION_ID
591       AND DET.BUDGET_DETAIL_ID     = PRD.BUDGET_DETAIL_ID
592       AND PRD.BUDGET_PERIOD_ID     = BSET.BUDGET_PERIOD_ID
593       AND PRD.START_TIME_PERIOD_ID = PTPS.TIME_PERIOD_ID
594       AND PRD.END_TIME_PERIOD_ID   = PTPE.TIME_PERIOD_ID ) BSET,
595     PQH_BUDGET_ELEMENTS ELE
596 WHERE BSET.BUDGET_SET_ID       = ELE.BUDGET_SET_ID
597 GROUP BY BSET.BUDGET_SET_ID,
598          BSET.BUSINESS_GROUP_ID,
599 	 BSET.BUDGET
600 HAVING SUM(
601               CASE WHEN  BSET.BUDGET_UNIT1_ID = BSET.SHARED_TYPE_ID THEN ELE.DISTRIBUTION_PERCENTAGE
602                    WHEN  BSET.BUDGET_UNIT2_ID = BSET.SHARED_TYPE_ID THEN ELE.DISTRIBUTION_PERCENTAGE
603                    WHEN  BSET.BUDGET_UNIT3_ID = BSET.SHARED_TYPE_ID THEN ELE.DISTRIBUTION_PERCENTAGE
604                END )
605           <> 100
606 	 ';
607       RETURN l_sql_stmt;
608    END GET_BSET_PRCT_DSTR;
609 
610    FUNCTION GET_BDGTS_CMNTS_ELE
611       RETURN VARCHAR2
612    IS
613       l_sql_stmt   VARCHAR2 (32000);
614    BEGIN
615       l_sql_stmt :=
616          '
617    SELECT PB.BUDGET_NAME ||'' (''|| PBV.VERSION_NUMBER ||'')'',
618           ELE.ELEMENT_NAME,
619 	  PIVF.NAME,
620 	  PBCE.SALARY_BASIS_FLAG,
621 	  PBCE.FORMULA_ID
622     FROM PQH_BDGT_CMMTMNT_ELMNTS PBCE,
623          PQH_BUDGETS PB,
624          PQH_BUDGET_VERSIONS PBV,
625          PAY_ELEMENT_TYPES_F ELE,
626 	 PAY_INPUT_VALUES_F PIVF
627    WHERE PBCE.BUDGET_ID = PB.BUDGET_ID
628      AND PB.BUDGET_ID             = PBV.BUDGET_ID
629      AND ELE.ELEMENT_TYPE_ID      = PBCE.ELEMENT_TYPE_ID
630      AND PB.BUDGET_START_DATE            <= :p_end_date
631      AND PB.BUDGET_END_DATE              >= :p_start_date
632      AND PBV.BUDGET_VERSION_ID    =( SELECT MAX(BUDGET_VERSION_ID)
633                                        FROM PQH_BUDGET_VERSIONS
634                                       WHERE BUDGET_ID = PB.BUDGET_ID )
635      AND PIVF.INPUT_VALUE_ID      = PBCE.ELEMENT_INPUT_VALUE_ID
636      AND :p_start_date BETWEEN ELE.EFFECTIVE_START_DATE AND ELE.EFFECTIVE_END_DATE
637      AND :p_start_date BETWEEN PIVF.EFFECTIVE_START_DATE AND PIVF.EFFECTIVE_END_DATE
638 ORDER BY PB.BUDGET_NAME ||'' (''|| PBV.VERSION_NUMBER ||'')''
639      ';
640       RETURN l_sql_stmt;
641    END GET_BDGTS_CMNTS_ELE;
642 
643 
644    FUNCTION GET_BDGTS_CMNTS_RUN
645       RETURN VARCHAR2
646    IS
647       l_sql_stmt   VARCHAR2 (32000);
648    BEGIN
649       l_sql_stmt :=
650          '
651    SELECT PB.BUDGET_NAME ||'' (''|| PBV.VERSION_NUMBER ||'')'',
652 	  FND_DATE.DATE_TO_DISPLAYDATE(PEC.COMMITMENT_START_DATE),
653 	  FND_DATE.DATE_TO_DISPLAYDATE(PEC.COMMITMENT_END_DATE),
654           ELE.ELEMENT_NAME,
655           NVL(PB.CURRENCY_CODE, PQH_BUDGET.GET_CURRENCY_CD(PB.BUDGET_ID))||'' ''||
656 	  TO_CHAR(
657 	  SUM(PEC.COMMITMENT_AMOUNT),
658           FND_CURRENCY.GET_FORMAT_MASK(NVL(PB.CURRENCY_CODE, PQH_BUDGET.GET_CURRENCY_CD(PB.BUDGET_ID)),30)
659   	  ) COMMITMENT_AMOUNT
660     FROM PQH_ELEMENT_COMMITMENTS PEC,
661          PQH_BUDGETS PB,
662          PQH_BUDGET_VERSIONS PBV,
663          PAY_ELEMENT_TYPES_F ELE
664    WHERE PEC.BUDGET_VERSION_ID     = PBV.BUDGET_VERSION_ID
665      AND PB.BUDGET_ID              = PBV.BUDGET_ID
666      AND ELE.ELEMENT_TYPE_ID        = PEC.ELEMENT_TYPE_ID
667      AND PB.BUDGET_START_DATE            <= :p_end_date
668      AND PB.BUDGET_END_DATE              >= :p_start_date
669      AND PEC.COMMITMENT_START_DATE <= :p_end_date
670      AND PEC.COMMITMENT_END_DATE   >= :p_start_date
674      AND :p_start_date BETWEEN ele.EFFECTIVE_START_DATE AND ele.EFFECTIVE_END_DATE
671      AND PBV.BUDGET_VERSION_ID    =( SELECT MAX(BUDGET_VERSION_ID)
672                                        FROM PQH_BUDGET_VERSIONS
673                                       WHERE BUDGET_ID = PB.BUDGET_ID )
675    GROUP BY PB.BUDGET_NAME ||'' (''|| PBV.VERSION_NUMBER ||'')'',
676             PB.CURRENCY_CODE,
677 	    PB.BUDGET_ID,
678             PEC.COMMITMENT_START_DATE,
679 	    PEC.COMMITMENT_END_DATE,
680             ELE.ELEMENT_NAME
681    ORDER BY PB.BUDGET_NAME ||'' (''|| PBV.VERSION_NUMBER ||'')''
682 	 ';
683       RETURN l_sql_stmt;
684    END GET_BDGTS_CMNTS_RUN;
685 
686    FUNCTION GET_BDGTS_CMNTS_NOT_RUN
687      RETURN VARCHAR2
688    IS
689       l_sql_stmt   VARCHAR2 (32000);
690    BEGIN
691       l_sql_stmt :=
692 	 '
693   SELECT BUDGET_NAME,
694          FND_DATE.DATE_TO_DISPLAYDATE(DATE_FROM),
695          FND_DATE.DATE_TO_DISPLAYDATE(DATE_TO),
696 	 NULL COL4,
697 	 NULL COL5
698     FROM
699 (
700   SELECT PB.BUDGET_NAME ||'' (''|| PBV.VERSION_NUMBER ||'')'' BUDGET_NAME,
701          PBV.DATE_FROM,
702          PBV.DATE_TO
703    FROM PQH_BUDGETS PB,
704          PQH_BUDGET_VERSIONS PBV
705    WHERE PB.BUDGET_ID             = PBV.BUDGET_ID
706      AND PB.BUDGET_START_DATE     <= :p_end_date
707      AND PB.BUDGET_END_DATE       >= :p_start_date
708      AND PBV.BUDGET_VERSION_ID    =( SELECT MAX(BUDGET_VERSION_ID)
709                                        FROM PQH_BUDGET_VERSIONS
710                                       WHERE BUDGET_ID = PB.BUDGET_ID )
711    MINUS
712 
713   SELECT PB.BUDGET_NAME ||'' (''|| PBV.VERSION_NUMBER ||'')'' BUDGET_NAME,
714          PBV.DATE_FROM,
715          PBV.DATE_TO
716     FROM PQH_ELEMENT_COMMITMENTS PEC,
717          PQH_BUDGETS PB,
718          PQH_BUDGET_VERSIONS PBV
719    WHERE PEC.BUDGET_VERSION_ID     = PBV.BUDGET_VERSION_ID
720      AND PB.BUDGET_ID              = PBV.BUDGET_ID
721      AND PEC.COMMITMENT_START_DATE <= :p_end_date
722      AND PEC.COMMITMENT_END_DATE   >= :p_start_date
723      AND PBV.BUDGET_VERSION_ID    =( SELECT MAX(BUDGET_VERSION_ID)
724                                        FROM PQH_BUDGET_VERSIONS
725                                       WHERE BUDGET_ID = PB.BUDGET_ID )
726 )
727    ORDER BY BUDGET_NAME
728 	 ';
729       RETURN l_sql_stmt;
730    END GET_BDGTS_CMNTS_NOT_RUN;
731 
732    FUNCTION GET_CMNTS_BY_ASGN
733       RETURN VARCHAR2
734    IS
735       l_sql_stmt   VARCHAR2 (32000);
736    BEGIN
737       l_sql_stmt :=
738          '
739   SELECT  HCPV.VALUE,
740 	  FND_DATE.DATE_TO_DISPLAYDATE(PEC.COMMITMENT_START_DATE),
741 	  FND_DATE.DATE_TO_DISPLAYDATE(PEC.COMMITMENT_END_DATE),
742           ELE.ELEMENT_NAME,
743 	  PEC.COMMITMENT_AMOUNT
744     FROM  PQH_ELEMENT_COMMITMENTS PEC,
745           per_all_assignments_f PAAF,
746 	  HRI_CL_PER_V HCPV,
747           PAY_ELEMENT_TYPES_F ELE
748    WHERE  PEC.ASSIGNMENT_ID          = PAAF.ASSIGNMENT_ID
749      AND  PAAF.PERSON_ID             = HCPV.ID
750      AND  ELE.ELEMENT_TYPE_ID        = PEC.ELEMENT_TYPE_ID
751      AND  PEC.COMMITMENT_START_DATE <= :p_end_date
752      AND  PEC.COMMITMENT_END_DATE   >= :p_start_date
753      AND :p_start_date BETWEEN ele.EFFECTIVE_START_DATE  AND ele.EFFECTIVE_END_DATE
754      AND :p_start_date BETWEEN hcpv.EFFECTIVE_START_DATE AND hcpv.EFFECTIVE_END_DATE
755      AND :p_start_date BETWEEN PAAF.EFFECTIVE_START_DATE AND PAAF.EFFECTIVE_END_DATE
756    ORDER BY HCPV.VALUE
757 	 ';
758       RETURN l_sql_stmt;
759    END GET_CMNTS_BY_ASGN;
760 
761 
762    FUNCTION GET_NO_CMNTS_PRDS
763       RETURN VARCHAR2
764    IS
765       l_sql_stmt   VARCHAR2 (32000);
766    BEGIN
767       l_sql_stmt :=
768          '
769 SELECT PRDS.VALUE,
770        ELE.ELEMENT_NAME,
771        FND_DATE.DATE_TO_DISPLAYDATE(PRDS.START_DATE),
772        FND_DATE.DATE_TO_DISPLAYDATE(PRDS.END_DATE),
773        NULL COL5
774   FROM
775 (
776 (SELECT     VALUE,
777             ELEMENT_TYPE_ID,
778             CASE WHEN (LEAD(START_DATE, 1) OVER
779                                  (PARTITION BY VALUE,ELEMENT_TYPE_ID ORDER BY START_DATE)) IS NULL
780 		  AND START_DATE > :p_start_date
781 		  AND (row_number() over (PARTITION BY VALUE,ELEMENT_TYPE_ID ORDER BY START_DATE))  =1
782 	         THEN :p_start_date
783                  WHEN START_DATE > :p_start_date AND (ROW_NUMBER() OVER (PARTITION BY VALUE,ELEMENT_TYPE_ID ORDER BY START_DATE)) = 1
784   	         THEN :p_start_date
785              END  START_DATE,
786             CASE WHEN (LEAD(START_DATE, 1) OVER
787                                  (PARTITION BY VALUE,ELEMENT_TYPE_ID ORDER BY START_DATE)) IS NULL
788                   AND START_DATE > :p_start_date
789 		  AND (row_number() over (PARTITION BY VALUE,ELEMENT_TYPE_ID ORDER BY START_DATE))  =1
790 	         THEN START_DATE  -1
791                  WHEN START_DATE > :p_start_date AND (ROW_NUMBER() OVER (PARTITION BY VALUE,ELEMENT_TYPE_ID ORDER BY START_DATE)) = 1
792 	         THEN START_DATE -1
793             END  END_DATE
794  FROM
795   (
796   SELECT  HCPV.VALUE,
797           PEC.ELEMENT_TYPE_ID,
798           PEC.COMMITMENT_START_DATE START_DATE,
799 	  PEC.COMMITMENT_END_DATE END_DATE
800     FROM  PQH_ELEMENT_COMMITMENTS PEC,
801           per_all_assignments_f PAAF,
802           HRI_CL_PER_V HCPV
803    WHERE  PEC.ASSIGNMENT_ID          = PAAF.ASSIGNMENT_ID
804      AND  PAAF.PERSON_ID             = HCPV.ID
805      AND  PEC.COMMITMENT_START_DATE <= :p_end_date
809    ORDER  BY PEC.COMMITMENT_START_DATE    ))
806      AND  PEC.COMMITMENT_END_DATE   >= :p_start_date
807      AND  :p_start_date BETWEEN hcpv.EFFECTIVE_START_DATE AND hcpv.EFFECTIVE_END_DATE
808      AND :p_start_date BETWEEN PAAF.EFFECTIVE_START_DATE AND PAAF.EFFECTIVE_END_DATE
810 UNION
811 (SELECT VALUE,
812         ELEMENT_TYPE_ID,
813         CASE WHEN END_DATE +1 < NVL((LEAD(START_DATE, 1) OVER
814                                                       (PARTITION BY VALUE,ELEMENT_TYPE_ID ORDER BY START_DATE)), :p_end_date)
815 	     THEN END_DATE +1
816 	     WHEN START_DATE > :p_start_date AND (ROW_NUMBER() OVER (PARTITION BY VALUE,ELEMENT_TYPE_ID ORDER BY START_DATE)) = 1
817 	     THEN :p_start_date
818         END  EFFECTIVE_START_DATE,
819        CASE WHEN END_DATE +1 < NVL((LEAD(START_DATE, 1) OVER
820                                               (PARTITION BY VALUE,ELEMENT_TYPE_ID ORDER BY START_DATE)), :p_end_date)
821 	    THEN NVL((LEAD(START_DATE, 1) OVER
822                                (PARTITION BY VALUE,ELEMENT_TYPE_ID ORDER BY START_DATE)) - 1, :p_end_date)
823             WHEN START_DATE > :p_start_date AND (ROW_NUMBER() OVER (PARTITION BY VALUE,ELEMENT_TYPE_ID ORDER BY START_DATE)) = 1
824 	    THEN START_DATE -1
825        END  EFFECTIVE_END_DATE
826  FROM
827   (
828   SELECT  HCPV.VALUE,
829           PEC.ELEMENT_TYPE_ID,
830           PEC.COMMITMENT_START_DATE START_DATE,
831 	  PEC.COMMITMENT_END_DATE END_DATE
832     FROM  PQH_ELEMENT_COMMITMENTS PEC,
833           per_all_assignments_f PAAF,
834           HRI_CL_PER_V HCPV
835    WHERE  PEC.ASSIGNMENT_ID          = PAAF.ASSIGNMENT_ID
836      AND  PAAF.PERSON_ID             = HCPV.ID
837      AND  PEC.COMMITMENT_START_DATE <= :p_end_date
838      AND  PEC.COMMITMENT_END_DATE   >= :p_start_date
839      AND  :p_start_date BETWEEN hcpv.EFFECTIVE_START_DATE AND hcpv.EFFECTIVE_END_DATE
840      AND  :p_start_date BETWEEN PAAF.EFFECTIVE_START_DATE AND PAAF.EFFECTIVE_END_DATE
841    ORDER  BY PEC.COMMITMENT_START_DATE    )) ) PRDS,
842   PAY_ELEMENT_TYPES_F ELE
843 WHERE  PRDS.START_DATE IS NOT NULL
844   AND  ELE.ELEMENT_TYPE_ID        = PRDS.ELEMENT_TYPE_ID
845   AND  :p_start_date BETWEEN ele.EFFECTIVE_START_DATE AND ele.EFFECTIVE_END_DATE
846 ORDER BY PRDS.VALUE';
847 
848       RETURN l_sql_stmt;
849    END GET_NO_CMNTS_PRDS;
850 
851 
852    FUNCTION GET_WBM_ORG_MGR
853       RETURN VARCHAR2
854    IS
855       l_sql_stmt   VARCHAR2 (32000);
856    BEGIN
857       l_sql_stmt :=
858          '
859   SELECT  DISTINCT FULL_NAME,
860           NAME,
861 	  FND_DATE.DATE_TO_DISPLAYDATE(START_DATE),
862 	  FND_DATE.DATE_TO_DISPLAYDATE(END_DATE),
863 	  NULL COL5
864     FROM
865     (
866 SELECT PPF.FULL_NAME,
867        ORG_TL.NAME,
868        FND_DATE.CANONICAL_TO_DATE(ORG_INFO2.ORG_INFORMATION3) START_DATE,
869        FND_DATE.CANONICAL_TO_DATE(ORG_INFO2.ORG_INFORMATION4) END_DATE
870   FROM HR_ALL_ORGANIZATION_UNITS ORG,
871        HR_ALL_ORGANIZATION_UNITS_TL ORG_TL,
872        HR_ORGANIZATION_INFORMATION ORG_INFO2,
873        PER_ALL_PEOPLE_F PPF
874  WHERE ORG_INFO2.ORGANIZATION_ID = ORG.ORGANIZATION_ID
875    AND ORG_INFO2.ORG_INFORMATION_CONTEXT = ''Organization Name Alias''
876    AND TO_NUMBER(ORG_INFO2.ORG_INFORMATION2) = PPF.PERSON_ID
877    AND ORG.ORGANIZATION_ID = ORG_TL.ORGANIZATION_ID
878    AND ORG_TL.LANGUAGE = USERENV(''LANG'')
879    AND EXISTS (SELECT NULL
880                  FROM HR_ORG_INFO_TYPES_BY_CLASS OITBC,
881 		      HR_ORGANIZATION_INFORMATION ORG_INFO
882 		WHERE ORG_INFO.ORGANIZATION_ID = ORG.ORGANIZATION_ID
883 		  AND ORG_INFO.ORG_INFORMATION_CONTEXT = ''CLASS''
884 		  AND ORG_INFO.ORG_INFORMATION2 = ''Y''
885 		  AND OITBC.ORG_CLASSIFICATION = ORG_INFO.ORG_INFORMATION1
886 		  AND OITBC.ORG_INFORMATION_TYPE = ''Organization Name Alias'')
887     )
888    WHERE START_DATE                   <= :p_end_date
889      AND NVL(END_DATE,:p_start_date)  >= :p_start_date
890    ORDER BY FULL_NAME
891    ';
892       RETURN l_sql_stmt;
893    END GET_WBM_ORG_MGR;
894 
895 
896    FUNCTION GET_ORG_WITHOUT_MGR
897       RETURN VARCHAR2
898    IS
899       l_sql_stmt   VARCHAR2 (32000);
900    BEGIN
901       l_sql_stmt :=
902          '
903   SELECT PBG.NAME,
904          HR_GENERAL.DECODE_ORGANIZATION(ORGS.ORGANIZATION_ID),
905          NULL COL3,
906 	 NULL COL4,
907 	 NULL COL5
908     FROM
909        (
910   SELECT  /*+ ordered*/
911          PBD.ORGANIZATION_ID,
912          PB.BUSINESS_GROUP_ID ID
913   FROM (Select BUSINESS_GROUP_ID,
914                BUDGET_ID,
915 	       BUDGET_UNIT1_ID,
916                BUDGET_UNIT2_ID,
917 	       BUDGET_UNIT3_ID
918          from  PQH_BUDGETS
919         WHERE  POSITION_CONTROL_FLAG  = ''Y''
920           AND  BUDGETED_ENTITY_CD    IN (''ORGANIZATION'',''POSITION'')
921           AND  BUDGET_START_DATE <= :p_end_date
922           AND  BUDGET_END_DATE   >= :p_start_date )PB,
923          (SELECT SHARED_TYPE_ID
924             FROM PER_SHARED_TYPES
925            WHERE LOOKUP_TYPE = ''BUDGET_MEASUREMENT_TYPE''
926              AND SYSTEM_TYPE_CD IN (''MONEY'',''HEAD'')) PST,
927          PQH_BUDGET_VERSIONS PBV,
928          PQH_BUDGET_DETAILS PBD
929    WHERE PB.BUDGET_ID             = PBV.BUDGET_ID
930      AND PBV.BUDGET_VERSION_ID    = PBD.BUDGET_VERSION_ID
931      AND PST.SHARED_TYPE_ID       IN (PB.BUDGET_UNIT1_ID, PB.BUDGET_UNIT2_ID, PB.BUDGET_UNIT3_ID)
932      AND PBV.BUDGET_VERSION_ID    =( SELECT MAX(BUDGET_VERSION_ID)
933                                        FROM PQH_BUDGET_VERSIONS
934                                       WHERE BUDGET_ID = PB.BUDGET_ID )
935   MINUS
936 
940     (
937   SELECT ORGANIZATION_ID,
938          BUSINESS_GROUP_ID ID
939     FROM
941 SELECT ORG.ORGANIZATION_ID,
942        ORG.BUSINESS_GROUP_ID,
943        FND_DATE.CANONICAL_TO_DATE(ORG_INFO2.ORG_INFORMATION3) START_DATE,
944        FND_DATE.CANONICAL_TO_DATE(ORG_INFO2.ORG_INFORMATION4) END_DATE
945   FROM HR_ALL_ORGANIZATION_UNITS ORG,
946        HR_ORGANIZATION_INFORMATION ORG_INFO2,
947        PER_ALL_PEOPLE_F PPF
948  WHERE ORG_INFO2.ORGANIZATION_ID = ORG.ORGANIZATION_ID
949    AND ORG_INFO2.ORG_INFORMATION_CONTEXT = ''Organization Name Alias''
950    AND TO_NUMBER(ORG_INFO2.ORG_INFORMATION2) = PPF.PERSON_ID
951    AND EXISTS (SELECT NULL
952                  FROM HR_ORG_INFO_TYPES_BY_CLASS OITBC,
953 		      HR_ORGANIZATION_INFORMATION ORG_INFO
954 		WHERE ORG_INFO.ORGANIZATION_ID = ORG.ORGANIZATION_ID
955 		  AND ORG_INFO.ORG_INFORMATION_CONTEXT = ''CLASS''
956 		  AND ORG_INFO.ORG_INFORMATION2 = ''Y''
957 		  AND OITBC.ORG_CLASSIFICATION = ORG_INFO.ORG_INFORMATION1
958 		  AND OITBC.ORG_INFORMATION_TYPE = ''Organization Name Alias'')
959     )
960    WHERE START_DATE                          <= :p_end_date
961      AND NVL(END_DATE,:p_start_date)         >= :p_start_date
962 ) ORGS,
963 PER_BUSINESS_GROUPS_PERF PBG
964 WHERE ORGS.ID     = PBG.BUSINESS_GROUP_ID
965 ORDER BY PBG.NAME
966 	 ';
967       RETURN l_sql_stmt;
968    END GET_ORG_WITHOUT_MGR;
969 
970    FUNCTION GET_WBM_USER_VALID_SETUP
971       RETURN VARCHAR2
972    IS
973       l_sql_stmt   VARCHAR2 (32000);
974    BEGIN
975       l_sql_stmt :=
976          '
977    SELECT  DISTINCT usr.user_name,
978            FND_DATE.DATE_TO_DISPLAYDATE(usr.start_date),
979 	   NULL COL3,
980 	   NULL COL4,
981 	   NULL COL5
982      FROM  FND_USER usr,
983            WF_USER_ROLE_ASSIGNMENTS waur,
984 	   WF_LOCAL_ROLES wlr,
985 	   FND_RESPONSIBILITY resp
986     WHERE  resp.responsibility_id = wlr.orig_system_id
987       AND resp.responsibility_key = ''HRI_DBI_WRKFC_BDGT_MANAGER''
988       AND wlr.orig_system = ''FND_RESP''
989       AND usr.user_name = waur.user_name
990       AND waur.role_name = wlr.name
991       AND sysdate BETWEEN usr.start_date AND NVL(usr.end_date,hr_general.end_of_time)
992       AND sysdate BETWEEN resp.start_date and NVL(resp.end_date, hr_general.end_of_time)
993     ORDER BY usr.user_name
994 	 ';
995       RETURN l_sql_stmt;
996    END GET_WBM_USER_VALID_SETUP;
997 
998    FUNCTION GET_WBM_PRSN_NOT_ASSIGNED
999       RETURN VARCHAR2
1000    IS
1001       l_sql_stmt   VARCHAR2 (32000);
1002    BEGIN
1003       l_sql_stmt :=
1004          '
1005    SELECT DISTINCT usr.user_name,
1006           FND_DATE.DATE_TO_DISPLAYDATE(usr.start_date),
1007 	  null col3,
1008 	  null col4,
1009 	  null col5
1010      FROM FND_USER usr,
1011           WF_USER_ROLE_ASSIGNMENTS waur,
1012           WF_LOCAL_ROLES wlr,
1013           FND_RESPONSIBILITY resp
1014     WHERE resp.responsibility_id = wlr.orig_system_id
1015       AND resp.responsibility_key = ''HRI_DBI_WRKFC_BDGT_MANAGER''
1016       AND wlr.orig_system = ''FND_RESP''
1017       AND usr.user_name = waur.user_name
1018       AND waur.role_name = wlr.name
1019       AND usr.employee_id IS NULL
1020       AND sysdate BETWEEN usr.start_date AND NVL(usr.end_date,hr_general.end_of_time)
1021       AND sysdate BETWEEN resp.start_date and NVL(resp.end_date, hr_general.end_of_time)
1022     ORDER BY usr.user_name
1023 	 ';
1024       RETURN l_sql_stmt;
1025    END GET_WBM_PRSN_NOT_ASSIGNED;
1026 
1027 
1028    FUNCTION GET_WBM_PRSN_NOT_IN_SUP_HRCHY
1029       RETURN VARCHAR2
1030    IS
1031       l_sql_stmt   VARCHAR2 (32000);
1032    BEGIN
1033       l_sql_stmt :=
1034          '
1035     SELECT DISTINCT usr.user_name,
1036            FND_DATE.DATE_TO_DISPLAYDATE(usr.start_date),
1037 	   null col3,
1038 	   null col4,
1039 	   null col5
1040       FROM FND_USER usr,
1041            WF_USER_ROLE_ASSIGNMENTS waur,
1042            WF_LOCAL_ROLES wlr,
1043 	   FND_RESPONSIBILITY resp
1044      WHERE resp.responsibility_id = wlr.orig_system_id
1045       AND resp.responsibility_key = ''HRI_DBI_WRKFC_BDGT_MANAGER''
1046       AND wlr.orig_system = ''FND_RESP''
1047       AND usr.user_name = waur.user_name
1048       AND waur.role_name = wlr.name
1049       AND usr.employee_id IS NOT NULL
1050       AND NOT EXISTS (SELECT null  FROM hri_cs_suph sup WHERE sup.sup_person_id = usr.employee_id)
1051       AND sysdate BETWEEN usr.start_date AND NVL(usr.end_date,hr_general.end_of_time)
1052       AND sysdate BETWEEN resp.start_date and NVL(resp.end_date, hr_general.end_of_time)
1053     ORDER BY usr.user_name
1054 	 ';
1055       RETURN l_sql_stmt;
1056    END GET_WBM_PRSN_NOT_IN_SUP_HRCHY;
1057 
1058 
1059    FUNCTION GET_WBM_LAST_PAY_RUN_DATE
1060       RETURN VARCHAR2
1061    IS
1062       l_sql_stmt   VARCHAR2 (32000);
1063    BEGIN
1064       l_sql_stmt :=
1065          '
1066  SELECT PBG.NAME,
1067         PAPF.PAYROLL_NAME,
1068 	FND_DATE.DATE_TO_DISPLAYDATE(MAX(PPA.EFFECTIVE_DATE)),
1069 	NULL COL4,
1070 	NULL COL5
1071    FROM
1072 (
1073  SELECT BUSINESS_GROUP_ID, PAYROLL_ID, EFFECTIVE_DATE
1074    FROM PAY_PAYROLL_ACTIONS
1075   WHERE ACTION_TYPE = ''R''
1076     AND ACTION_STATUS = ''C''
1077 ) PPA,
1078 PER_BUSINESS_GROUPS PBG,
1079 PAY_ALL_PAYROLLS_F PAPF
1080 WHERE PPA.BUSINESS_GROUP_ID =PBG.BUSINESS_GROUP_ID
1081   AND PAPF.PAYROLL_ID = PPA.PAYROLL_ID
1082   AND PPA.EFFECTIVE_DATE BETWEEN PAPF.EFFECTIVE_START_DATE AND PAPF.EFFECTIVE_END_DATE
1083 GROUP BY PBG.NAME,
1084       PAPF.PAYROLL_NAME
1085  	 ';
1086       RETURN l_sql_stmt;
1087    END GET_WBM_LAST_PAY_RUN_DATE;
1088 
1089 
1090    FUNCTION GET_HDCNT_BDGTS_ORG
1094    BEGIN
1091       RETURN VARCHAR2
1092    IS
1093       l_sql_stmt   VARCHAR2 (32000);
1095       l_sql_stmt :=
1096          '
1097   SELECT /*+ ordered*/
1098          PBG.NAME,
1099          PB.BUDGET_NAME ||'' (''|| PBV.VERSION_NUMBER ||'')'',
1100 	 HR_GENERAL.DECODE_ORGANIZATION(PBD.ORGANIZATION_ID),
1101 	 FND_DATE.DATE_TO_DISPLAYDATE(PB.BUDGET_START_DATE) ||''  '' ||
1102 	 FND_DATE.DATE_TO_DISPLAYDATE(PB.BUDGET_END_DATE),
1103          SUM (
1104 	 CASE WHEN PB.BUDGET_UNIT1_ID = PST.SHARED_TYPE_ID   THEN PBD.BUDGET_UNIT1_VALUE
1105               WHEN PB.BUDGET_UNIT2_ID = PST.SHARED_TYPE_ID   THEN PBD.BUDGET_UNIT2_VALUE
1106               WHEN PB.BUDGET_UNIT3_ID = PST.SHARED_TYPE_ID   THEN PBD.BUDGET_UNIT3_VALUE
1107          END )BUDGET_VALUE
1108   FROM (Select BUSINESS_GROUP_ID,
1109                BUDGET_NAME,
1110 	       BUDGET_START_DATE,
1111 	       BUDGET_END_DATE,
1112                BUDGET_ID,
1113 	       BUDGET_UNIT1_ID,
1114                BUDGET_UNIT2_ID,
1115 	       BUDGET_UNIT3_ID
1116          from  PQH_BUDGETS
1117         WHERE  POSITION_CONTROL_FLAG  = ''Y''
1118           AND  BUDGETED_ENTITY_CD    IN (''ORGANIZATION'',''POSITION'')
1119           AND  BUDGET_START_DATE <= :p_end_date
1120           AND  BUDGET_END_DATE   >= :p_start_date )PB,
1121      (SELECT SHARED_TYPE_ID
1122         FROM PER_SHARED_TYPES
1123        WHERE LOOKUP_TYPE = ''BUDGET_MEASUREMENT_TYPE''
1124          AND SYSTEM_TYPE_CD =''HEAD'' ) PST,
1125 	 PQH_BUDGET_VERSIONS PBV,
1126          PQH_BUDGET_DETAILS PBD,
1127          PER_BUSINESS_GROUPS_PERF PBG
1128    WHERE PB.BUDGET_ID             = PBV.BUDGET_ID
1129      AND PBV.BUDGET_VERSION_ID    = PBD.BUDGET_VERSION_ID
1130      AND PST.SHARED_TYPE_ID       IN (PB.BUDGET_UNIT1_ID, PB.BUDGET_UNIT2_ID, PB.BUDGET_UNIT3_ID)
1131      AND PBV.BUDGET_VERSION_ID    =( SELECT MAX(BUDGET_VERSION_ID)
1132                                        FROM PQH_BUDGET_VERSIONS
1133                                       WHERE BUDGET_ID = PB.BUDGET_ID )
1134      AND PB.BUSINESS_GROUP_ID     = PBG.BUSINESS_GROUP_ID
1135    GROUP BY PBG.NAME,
1136             PB.BUDGET_NAME ||'' (''|| PBV.VERSION_NUMBER ||'')'',
1137 	    HR_GENERAL.DECODE_ORGANIZATION(PBD.ORGANIZATION_ID),
1138             PB.BUDGET_START_DATE,
1139             PB.BUDGET_END_DATE
1140    ORDER BY PBG.NAME
1141          ';
1142       RETURN l_sql_stmt;
1143    END GET_HDCNT_BDGTS_ORG;
1144 
1145 
1146    FUNCTION GET_HDCNT_BDGTS_POS
1147       RETURN VARCHAR2
1148    IS
1149       l_sql_stmt   VARCHAR2 (32000);
1150    BEGIN
1151       l_sql_stmt :=
1152          '
1153   SELECT /*+ ordered*/
1154          PBG.NAME,
1155          PB.BUDGET_NAME ||'' (''|| PBV.VERSION_NUMBER ||'')'',
1156 	 HR_GENERAL.DECODE_POSITION_LATEST_NAME(PBD.POSITION_ID),
1157 	 FND_DATE.DATE_TO_DISPLAYDATE(PB.BUDGET_START_DATE) ||''  '' ||
1158 	 FND_DATE.DATE_TO_DISPLAYDATE(PB.BUDGET_END_DATE),
1159 	 CASE WHEN PB.BUDGET_UNIT1_ID = PST.SHARED_TYPE_ID   THEN PBD.BUDGET_UNIT1_VALUE
1160               WHEN PB.BUDGET_UNIT2_ID = PST.SHARED_TYPE_ID   THEN PBD.BUDGET_UNIT2_VALUE
1161               WHEN PB.BUDGET_UNIT3_ID = PST.SHARED_TYPE_ID   THEN PBD.BUDGET_UNIT3_VALUE
1162          END BUDGET_VALUE
1163   FROM (Select BUSINESS_GROUP_ID,
1164                BUDGET_NAME,
1165 	       BUDGET_START_DATE,
1166 	       BUDGET_END_DATE,
1167                BUDGET_ID,
1168 	       BUDGET_UNIT1_ID,
1169                BUDGET_UNIT2_ID,
1170 	       BUDGET_UNIT3_ID
1171          from  PQH_BUDGETS
1172         WHERE  POSITION_CONTROL_FLAG  = ''Y''
1173           AND  BUDGETED_ENTITY_CD   = ''POSITION''
1174           AND  BUDGET_START_DATE <= :p_end_date
1175           AND  BUDGET_END_DATE   >= :p_start_date )PB,
1176      (SELECT SHARED_TYPE_ID
1177         FROM PER_SHARED_TYPES
1178        WHERE LOOKUP_TYPE = ''BUDGET_MEASUREMENT_TYPE''
1179          AND SYSTEM_TYPE_CD =''HEAD'' ) PST,
1180 	 PQH_BUDGET_VERSIONS PBV,
1181          PQH_BUDGET_DETAILS PBD,
1182          PER_BUSINESS_GROUPS_PERF PBG
1183    WHERE PB.BUDGET_ID             = PBV.BUDGET_ID
1184      AND PBV.BUDGET_VERSION_ID    = PBD.BUDGET_VERSION_ID
1185      AND PST.SHARED_TYPE_ID       IN (PB.BUDGET_UNIT1_ID, PB.BUDGET_UNIT2_ID, PB.BUDGET_UNIT3_ID)
1186      AND PBV.BUDGET_VERSION_ID    =( SELECT MAX(BUDGET_VERSION_ID)
1187                                        FROM PQH_BUDGET_VERSIONS
1188                                       WHERE BUDGET_ID = PB.BUDGET_ID )
1189      AND PB.BUSINESS_GROUP_ID     = PBG.BUSINESS_GROUP_ID
1190    ORDER BY PBG.NAME
1191         ';
1192       RETURN l_sql_stmt;
1193    END GET_HDCNT_BDGTS_POS;
1194 
1195 
1196    FUNCTION GET_LBRCST_BDGTS_ORG
1197       RETURN VARCHAR2
1198    IS
1199       l_sql_stmt   VARCHAR2 (32000);
1200    BEGIN
1201       l_sql_stmt :=
1202          '
1203   SELECT /*+ ordered*/
1204          PBG.NAME,
1205          PB.BUDGET_NAME ||'' (''|| PBV.VERSION_NUMBER ||'')'',
1206 	 HR_GENERAL.DECODE_ORGANIZATION(PBD.ORGANIZATION_ID),
1207 	 FND_DATE.DATE_TO_DISPLAYDATE(PB.BUDGET_START_DATE) ||''   '' ||
1208 	 FND_DATE.DATE_TO_DISPLAYDATE(PB.BUDGET_END_DATE),
1209          NVL(PB.CURRENCY_CODE, PQH_BUDGET.GET_CURRENCY_CD(PB.BUDGET_ID))||''  ''||
1210 	 TO_CHAR(
1211 	 SUM(
1212 	 CASE WHEN PB.BUDGET_UNIT1_ID = PST.SHARED_TYPE_ID   THEN PBD.BUDGET_UNIT1_VALUE
1213               WHEN PB.BUDGET_UNIT2_ID = PST.SHARED_TYPE_ID   THEN PBD.BUDGET_UNIT2_VALUE
1214               WHEN PB.BUDGET_UNIT3_ID = PST.SHARED_TYPE_ID   THEN PBD.BUDGET_UNIT3_VALUE
1215          END),
1216 	 FND_CURRENCY.GET_FORMAT_MASK(NVL(PB.CURRENCY_CODE, PQH_BUDGET.GET_CURRENCY_CD(PB.BUDGET_ID)),30)
1217 	 )  BUDGET_VALUE
1218   FROM (Select BUSINESS_GROUP_ID,
1219                BUDGET_NAME,
1220 	       CURRENCY_CODE,
1221 	       BUDGET_START_DATE,
1222 	       BUDGET_END_DATE,
1223                BUDGET_ID,
1224 	       BUDGET_UNIT1_ID,
1225                BUDGET_UNIT2_ID,
1229           AND  BUDGETED_ENTITY_CD    IN (''ORGANIZATION'',''POSITION'')
1226 	       BUDGET_UNIT3_ID
1227          from  PQH_BUDGETS
1228         WHERE  POSITION_CONTROL_FLAG  = ''Y''
1230           AND  BUDGET_START_DATE <= :p_end_date
1231           AND  BUDGET_END_DATE   >= :p_start_date )PB,
1232      (SELECT SHARED_TYPE_ID
1233         FROM PER_SHARED_TYPES
1234        WHERE LOOKUP_TYPE = ''BUDGET_MEASUREMENT_TYPE''
1235          AND SYSTEM_TYPE_CD =''MONEY'' ) PST,
1236 	 PQH_BUDGET_VERSIONS PBV,
1237          PQH_BUDGET_DETAILS PBD,
1238          PER_BUSINESS_GROUPS_PERF PBG
1239    WHERE PB.BUDGET_ID             = PBV.BUDGET_ID
1240      AND PBV.BUDGET_VERSION_ID    = PBD.BUDGET_VERSION_ID
1241      AND PST.SHARED_TYPE_ID       IN (PB.BUDGET_UNIT1_ID, PB.BUDGET_UNIT2_ID, PB.BUDGET_UNIT3_ID)
1242      AND PBV.BUDGET_VERSION_ID    =( SELECT MAX(BUDGET_VERSION_ID)
1243                                        FROM PQH_BUDGET_VERSIONS
1244                                       WHERE BUDGET_ID = PB.BUDGET_ID )
1245      AND PB.BUSINESS_GROUP_ID     = PBG.BUSINESS_GROUP_ID
1246    GROUP BY  PBG.NAME,
1247              PB.CURRENCY_CODE,
1248 	     PB.BUDGET_ID,
1249              PB.BUDGET_NAME ||'' (''|| PBV.VERSION_NUMBER ||'')'',
1250 	     HR_GENERAL.DECODE_ORGANIZATION(PBD.ORGANIZATION_ID),
1251 	     PB.BUDGET_START_DATE,
1252 	     PB.BUDGET_END_DATE
1253    ORDER BY  PBG.NAME
1254       ';
1255       RETURN l_sql_stmt;
1256    END GET_LBRCST_BDGTS_ORG;
1257 
1258 
1259    FUNCTION GET_LBRCST_BDGTS_POS
1260       RETURN VARCHAR2
1261    IS
1262       l_sql_stmt   VARCHAR2 (32000);
1263    BEGIN
1264       l_sql_stmt :=
1265          '
1266   SELECT /*+ ordered*/
1267          PBG.NAME,
1268          PB.BUDGET_NAME ||'' (''|| PBV.VERSION_NUMBER ||'')'',
1269 	 HR_GENERAL.DECODE_POSITION_LATEST_NAME(PBD.POSITION_ID),
1270 	 FND_DATE.DATE_TO_DISPLAYDATE(PB.BUDGET_START_DATE) ||''   '' ||
1271 	 FND_DATE.DATE_TO_DISPLAYDATE(PB.BUDGET_END_DATE),
1272          NVL(PB.CURRENCY_CODE, PQH_BUDGET.GET_CURRENCY_CD(PB.BUDGET_ID))||''  ''||
1273 	 TO_CHAR(
1274 	 CASE WHEN PB.BUDGET_UNIT1_ID = PST.SHARED_TYPE_ID   THEN PBD.BUDGET_UNIT1_VALUE
1275               WHEN PB.BUDGET_UNIT2_ID = PST.SHARED_TYPE_ID   THEN PBD.BUDGET_UNIT2_VALUE
1276               WHEN PB.BUDGET_UNIT3_ID = PST.SHARED_TYPE_ID   THEN PBD.BUDGET_UNIT3_VALUE
1277          END,
1278  	 FND_CURRENCY.GET_FORMAT_MASK(NVL(PB.CURRENCY_CODE, PQH_BUDGET.GET_CURRENCY_CD(PB.BUDGET_ID)),30)
1279 	        ) BUDGET_VALUE
1280   FROM (Select BUSINESS_GROUP_ID,
1281                BUDGET_NAME,
1282 	       CURRENCY_CODE,
1283 	       BUDGET_START_DATE,
1284 	       BUDGET_END_DATE,
1285                BUDGET_ID,
1286 	       BUDGET_UNIT1_ID,
1287                BUDGET_UNIT2_ID,
1288 	       BUDGET_UNIT3_ID
1289          from  PQH_BUDGETS
1290         WHERE  POSITION_CONTROL_FLAG  = ''Y''
1291           AND  BUDGETED_ENTITY_CD    =''POSITION''
1292           AND  BUDGET_START_DATE <= :p_end_date
1293           AND  BUDGET_END_DATE   >= :p_start_date )PB,
1294      (SELECT SHARED_TYPE_ID
1295         FROM PER_SHARED_TYPES
1296        WHERE LOOKUP_TYPE = ''BUDGET_MEASUREMENT_TYPE''
1297          AND SYSTEM_TYPE_CD =''MONEY'' ) PST,
1298 	 PQH_BUDGET_VERSIONS PBV,
1299          PQH_BUDGET_DETAILS PBD,
1300          PER_BUSINESS_GROUPS_PERF PBG
1301    WHERE PB.BUDGET_ID             = PBV.BUDGET_ID
1302      AND PBV.BUDGET_VERSION_ID    = PBD.BUDGET_VERSION_ID
1303      AND PST.SHARED_TYPE_ID       IN (PB.BUDGET_UNIT1_ID, PB.BUDGET_UNIT2_ID, PB.BUDGET_UNIT3_ID)
1304      AND PBV.BUDGET_VERSION_ID    =( SELECT MAX(BUDGET_VERSION_ID)
1305                                        FROM PQH_BUDGET_VERSIONS
1306                                       WHERE BUDGET_ID = PB.BUDGET_ID )
1307      AND PB.BUSINESS_GROUP_ID     = PBG.BUSINESS_GROUP_ID
1308    ORDER BY PBG.NAME
1309        ';
1310       RETURN l_sql_stmt;
1311    END GET_LBRCST_BDGTS_POS;
1312 
1313 
1314    FUNCTION GET_BDGTS_BSET
1315       RETURN VARCHAR2
1316    IS
1317       l_sql_stmt   VARCHAR2 (32000);
1318    BEGIN
1319       l_sql_stmt :=
1320          '
1321    SELECT  DISTINCT PB.BUDGET_NAME ||'' (''|| PBV.VERSION_NUMBER ||'')'' ,
1322            HRI_APL_DGNSTC_WBM.GET_BSET_NAME(BSET.BUDGET_SET_ID,PB.BUSINESS_GROUP_ID) ,
1323 	   HRI_APL_DGNSTC_WBM.GET_ELE_NAME(ELE.ELEMENT_TYPE_ID,:p_start_date) ,
1324 	   HRI_APL_DGNSTC_WBM.GET_FSC_NAME(SRC.COST_ALLOCATION_KEYFLEX_ID) ,
1325            (src.distribution_percentage *  ele.distribution_percentage / 100 )
1326      FROM  PQH_BUDGETS PB,
1327            PQH_BUDGET_VERSIONS PBV,
1328            PQH_BUDGET_DETAILS PBD,
1329            (SELECT SHARED_TYPE_ID
1330               FROM PER_SHARED_TYPES
1331              WHERE LOOKUP_TYPE = ''BUDGET_MEASUREMENT_TYPE''
1332                AND SYSTEM_TYPE_CD=''MONEY'' ) PST,
1333             PQH_BUDGET_DETAILS  DET,
1334 	    PQH_BUDGET_PERIODS  PRD,
1335 	    PER_TIME_PERIODS    PTPS,
1336 	    PER_TIME_PERIODS    PTPE,
1337 	    PQH_BUDGET_SETS     BSET,
1338 	    PQH_BUDGET_ELEMENTS ELE,
1339 	    PQH_BUDGET_FUND_SRCS SRC
1340     WHERE PB.POSITION_CONTROL_FLAG = ''Y''
1341       AND PB.BUDGET_ID             = PBV.BUDGET_ID
1342       AND PBV.BUDGET_VERSION_ID    = PBD.BUDGET_VERSION_ID
1343       AND PB.BUDGETED_ENTITY_CD    IN (''ORGANIZATION'',''POSITION'')
1344       AND PB.BUDGET_START_DATE            <= :p_end_date
1345       AND PB.BUDGET_END_DATE              >= :p_start_date
1346       AND PST.SHARED_TYPE_ID       IN (PB.BUDGET_UNIT1_ID, PB.BUDGET_UNIT2_ID, PB.BUDGET_UNIT3_ID)
1347       AND PBV.BUDGET_VERSION_ID    =( SELECT MAX(BUDGET_VERSION_ID)
1348                                        FROM PQH_BUDGET_VERSIONS
1349                                       WHERE BUDGET_ID = PB.BUDGET_ID )
1350       AND DET.BUDGET_VERSION_ID    = PBV.BUDGET_VERSION_ID
1351       AND DET.BUDGET_DETAIL_ID     = PRD.BUDGET_DETAIL_ID
1352       AND PRD.BUDGET_PERIOD_ID     = BSET.BUDGET_PERIOD_ID
1356       AND ELE.BUDGET_ELEMENT_ID    = SRC.BUDGET_ELEMENT_ID
1353       AND PRD.START_TIME_PERIOD_ID = PTPS.TIME_PERIOD_ID
1354       AND PRD.END_TIME_PERIOD_ID   = PTPE.TIME_PERIOD_ID
1355       AND BSET.BUDGET_SET_ID       = ELE.BUDGET_SET_ID
1357     ORDER BY HRI_APL_DGNSTC_WBM.GET_BSET_NAME(BSET.BUDGET_SET_ID,PB.BUSINESS_GROUP_ID) ,
1358              HRI_APL_DGNSTC_WBM.GET_ELE_NAME(ELE.ELEMENT_TYPE_ID,:p_start_date)
1359         ';
1360       RETURN l_sql_stmt;
1361    END GET_BDGTS_BSET;
1362 
1363 
1364    FUNCTION GET_ELE_NOT_IN_ACTLS
1365       RETURN VARCHAR2
1366    IS
1367       l_sql_stmt   VARCHAR2 (32000);
1368    BEGIN
1369       l_sql_stmt :=
1370          '
1371 SELECT 	HRI_APL_DGNSTC_WBM.GET_ELE_NAME(ELEMENT_TYPE_ID,:p_start_date),
1372         NULL COL2,
1373         NULL COL3,
1374         NULL COL4,
1375         NULL COL5
1376   FROM
1377 (
1378  SELECT ELEMENT_TYPE_ID
1379    FROM HRI_MB_BDGTS_CT
1380   WHERE BUDGET_START_DATE <= :p_end_date
1381     AND BUDGET_END_DATE   >= :p_start_date
1382     AND BUDGET_MEASUREMENT_TYPE = ''MONEY''
1383 MINUS
1384  SELECT ELEMENT_TYPE_ID
1385    FROM HRI_MB_ACTLS_CT
1386   WHERE EFFECTIVE_DATE    <= :p_end_date
1387     AND EFFECTIVE_DATE    >= :p_start_date
1388 )
1389 ORDER BY HRI_APL_DGNSTC_WBM.GET_ELE_NAME(ELEMENT_TYPE_ID,:p_start_date)
1390  ';
1391       RETURN l_sql_stmt;
1392    END GET_ELE_NOT_IN_ACTLS;
1393 
1394    FUNCTION GET_WBM_LAST_COST_RUN_DATE
1395       RETURN VARCHAR2
1396    IS
1397       l_sql_stmt   VARCHAR2 (32000);
1398    BEGIN
1399       l_sql_stmt :=
1400          '
1401  SELECT PBG.NAME,
1402         PAPF.PAYROLL_NAME,
1403 	FND_DATE.DATE_TO_DISPLAYDATE(MAX(PPA.EFFECTIVE_DATE)),
1404         NULL COL4,
1405         NULL COL5
1406    FROM
1407 (
1408  SELECT BUSINESS_GROUP_ID,
1409         PAYROLL_ID,
1410 	EFFECTIVE_DATE
1411    FROM PAY_PAYROLL_ACTIONS
1412   WHERE ACTION_TYPE = ''C''
1413     AND ACTION_STATUS = ''C''
1414 ) PPA,
1415 PER_BUSINESS_GROUPS PBG,
1416 PAY_ALL_PAYROLLS_F PAPF
1417 WHERE PPA.BUSINESS_GROUP_ID =PBG.BUSINESS_GROUP_ID
1418   AND PAPF.PAYROLL_ID = PPA.PAYROLL_ID
1419   AND PPA.EFFECTIVE_DATE BETWEEN PAPF.EFFECTIVE_START_DATE AND PAPF.EFFECTIVE_END_DATE
1420 GROUP BY PBG.NAME,
1421       PAPF.PAYROLL_NAME
1422 	 ';
1423       RETURN l_sql_stmt;
1424    END GET_WBM_LAST_COST_RUN_DATE;
1425 
1426    FUNCTION GET_BSET_NAME(p_bset_id IN NUMBER,p_business_group_id IN NUMBER)
1427       RETURN VARCHAR2
1428    IS
1429       l_bset_name   VARCHAR2 (500);
1430    BEGIN
1431 
1432      SELECT PDBS.DFLT_BUDGET_SET_NAME INTO l_bset_name
1433        FROM PQH_DFLT_BUDGET_SETS PDBS,
1434             PQH_BUDGET_SETS PBS
1435       WHERE PBS.BUDGET_SET_ID = p_bset_id
1436         AND PDBS.BUSINESS_GROUP_ID = P_BUSINESS_GROUP_ID
1437         AND PBS.DFLT_BUDGET_SET_ID  = PDBS.DFLT_BUDGET_SET_ID;
1438 
1439       RETURN l_bset_name;
1440    END GET_BSET_NAME;
1441 
1442 
1443    FUNCTION GET_ELE_NAME(p_element_id IN NUMBER ,p_effective_date IN DATE)
1444       RETURN VARCHAR2
1445    IS
1446       l_ele_name   VARCHAR2 (500);
1447    BEGIN
1448 
1449      SELECT ELEMENT_NAME INTO l_ele_name
1450        FROM PAY_ELEMENT_TYPES_F_TL
1451       WHERE ELEMENT_TYPE_ID = p_element_id
1452         AND LANGUAGE = USERENV('LANG') ;
1453 
1454       RETURN l_ele_name;
1455    END GET_ELE_NAME;
1456 
1457 
1458    FUNCTION GET_FSC_NAME(p_cost_allocation_keyflex_id IN NUMBER )
1459       RETURN VARCHAR2
1460    IS
1461       l_fsc_name   VARCHAR2 (500);
1462    BEGIN
1463 
1464      SELECT CONCATENATED_SEGMENTS INTO l_fsc_name
1465        FROM PAY_COST_ALLOCATION_KEYFLEX
1466       WHERE COST_ALLOCATION_KEYFLEX_ID = p_cost_allocation_keyflex_id;
1467 
1468       RETURN l_fsc_name;
1469    END GET_FSC_NAME;
1470 
1471 
1472 END HRI_APL_DGNSTC_WBM;