DBA Data[Home] [Help]

PACKAGE BODY: APPS.PJI_FM_SUM_EXTR

Source


1 package body PJI_FM_SUM_EXTR as
2   /* $Header: PJISF02B.pls 120.9.12010000.4 2008/09/17 23:21:10 snizam ship $ */
3 
4   -- -----------------------------------------------------
5   -- procedure POPULATE_TIME_DIMENSION
6   -- -----------------------------------------------------
7   procedure POPULATE_TIME_DIMENSION (p_worker_id in number) is
8 
9     l_process varchar2(30);
10 
11     l_return_status varchar2(255);
12     l_msg_count     number;
13     l_msg_data      varchar2(2000);
14 
15   begin
16 
17     l_process := PJI_FM_SUM_MAIN.g_process || p_worker_id;
18 
19     if (not PJI_PROCESS_UTIL.NEED_TO_RUN_STEP(l_process, 'PJI_FM_SUM_EXTR.POPULATE_TIME_DIMENSION(p_worker_id);')) then
20       return;
21     end if;
22 
23     PJI_TIME_C.LOAD(null, null, l_return_status, l_msg_count, l_msg_data);
24 
25     PJI_PROCESS_UTIL.REGISTER_STEP_COMPLETION(l_process, 'PJI_FM_SUM_EXTR.POPULATE_TIME_DIMENSION(p_worker_id);');
26 
27     commit;
28 
29   end POPULATE_TIME_DIMENSION;
30 
31 
32   -- -----------------------------------------------------
33   -- procedure ORG_EXTR_INFO_TABLE
34   -- -----------------------------------------------------
35   procedure ORG_EXTR_INFO_TABLE (p_worker_id in number) is
36 
37     l_process varchar2(30);
38 
39   begin
40 
41     l_process := PJI_FM_SUM_MAIN.g_process || p_worker_id;
42 
43     if (not PJI_PROCESS_UTIL.NEED_TO_RUN_STEP(l_process, 'PJI_FM_SUM_EXTR.ORG_EXTR_INFO_TABLE(p_worker_id);')) then
44       return;
45     end if;
46 
47     PJI_EXTRACTION_UTIL.UPDATE_ORG_EXTR_INFO;
48 
49     PJI_PROCESS_UTIL.REGISTER_STEP_COMPLETION(l_process, 'PJI_FM_SUM_EXTR.ORG_EXTR_INFO_TABLE(p_worker_id);');
50 
51     -- implicit commit
52     FND_STATS.GATHER_TABLE_STATS(ownname => PJI_UTILS.GET_PJI_SCHEMA_NAME,
53                                  tabname => 'PJI_ORG_EXTR_INFO',
54                                  percent => 10,
55                                  degree  => PJI_UTILS.
56                                             GET_DEGREE_OF_PARALLELISM);
57     -- implicit commit
58     FND_STATS.GATHER_INDEX_STATS(ownname => PJI_UTILS.GET_PJI_SCHEMA_NAME,
59                                  indname => 'PJI_ORG_EXTR_INFO_N1',
60                                  percent => 10);
61 
62     commit;
63 
64   end ORG_EXTR_INFO_TABLE;
65 
66 
67   -- -----------------------------------------------------
68   -- procedure CURR_CONV_TABLE
69   -- -----------------------------------------------------
70   procedure CURR_CONV_TABLE (p_worker_id in number) is
71 
72     l_process varchar2(30);
73     l_extract_commitments varchar2(30);
74 
75   begin
76 
77     l_process := PJI_FM_SUM_MAIN.g_process || p_worker_id;
78 
79     if (not PJI_PROCESS_UTIL.NEED_TO_RUN_STEP(l_process, 'PJI_FM_SUM_EXTR.CURR_CONV_TABLE(p_worker_id);')) then
80       return;
81     end if;
82 
83     l_extract_commitments := PJI_PROCESS_UTIL.GET_PROCESS_PARAMETER
84                              (PJI_FM_SUM_MAIN.g_process,
85                               'EXTRACT_COMMITMENTS');
86 
87     insert /*+ append */ into PJI_FM_AGGR_DLY_RATES
88     (
89       WORKER_ID,
90       PF_CURRENCY_CODE,
91       TIME_ID,
92       RATE,
93       MAU,
94       RATE2,
95       MAU2
96     )
97     select /*+ ordered
98                full(tmp)
99                full(rates) use_hash(rates) parallel(rates) */
100       -1 WORKER_ID,
101       tmp.PF_CURRENCY_CODE,
102       tmp.TIME_ID,
103       tmp.RATE,
104       tmp.MAU,
105       tmp.RATE2,
106       tmp.MAU2
107     from
108     (
109     select         -- for rows that have resource data only
110       p_worker_id WORKER_ID,
111       'PJI$NULL'  PF_CURRENCY_CODE,
112       -1          TIME_ID,
113       0           RATE,
114       0           MAU,
115       0           RATE2,
116       0           MAU2
117     from
118       dual
119     union all
120     select
121       p_worker_id                                         WORKER_ID,
122       PF_CURRENCY_CODE                                    PF_CURRENCY_CODE,
123       TIME_ID                                             TIME_ID,
124       PJI_UTILS.GET_GLOBAL_RATE_PRIMARY(PF_CURRENCY_CODE,
125                           to_date(to_char(TIME_ID), 'J')) RATE,
126       PJI_UTILS.GET_MAU_PRIMARY                           MAU,
127       PJI_UTILS.GET_GLOBAL_RATE_SECONDARY(PF_CURRENCY_CODE,
128                           to_date(to_char(TIME_ID), 'J')) RATE2,
129       PJI_UTILS.GET_MAU_SECONDARY                         MAU2
130     from
131       (
132       select /*+ ordered
133                  full(tmp1)     use_hash(tmp1)       parallel(tmp1)
134                  full(prj_info) use_hash(prj_info)   swap_join_inputs(prj_info)
135                  full(res_info) use_hash(res_info)   swap_join_inputs(res_info)
136               */ -- bug 3092751: Changes in hints
137         distinct
138         decode(invert.INVERT_ID,
139                'PRVDR_GL', to_number(to_char(tmp1.PRVDR_GL_DATE, 'J')),
140                'RECVR_GL', to_number(to_char(tmp1.RECVR_GL_DATE, 'J')),
141                'PRVDR_PA', to_number(to_char(tmp1.PRVDR_PA_DATE, 'J')),
142                'RECVR_PA', to_number(to_char(tmp1.RECVR_PA_DATE, 'J')),
143                'EXP',      to_number(to_char(tmp1.EXPENDITURE_ITEM_DATE, 'J')))
144                                                           TIME_ID,
145         decode(invert.INVERT_ID,
146                'PRVDR_GL', res_info.PF_CURRENCY_CODE,
147                'RECVR_GL', prj_info.PF_CURRENCY_CODE,
148                'PRVDR_PA', res_info.PF_CURRENCY_CODE,
149                'RECVR_PA', prj_info.PF_CURRENCY_CODE,
150                'EXP',      res_info.PF_CURRENCY_CODE)     PF_CURRENCY_CODE
151       from -- bug 3092751: Changes in table order
152         PJI_ORG_EXTR_INFO     prj_info,
153         (
154         select /*+ full(tmp1) parallel(tmp1) */
155           distinct
156           PROJECT_ID,
157           PROJECT_ORG_ID,
158           EXPENDITURE_ORG_ID,
159           PRVDR_GL_DATE,
160           RECVR_GL_DATE,
161           PRVDR_PA_DATE,
162           RECVR_PA_DATE,
163           EXPENDITURE_ITEM_DATE
164         from
165           PJI_FM_AGGR_FIN1 tmp1
166         where
167           WORKER_ID = p_worker_id
168         ) tmp1,
169         PJI_ORG_EXTR_INFO     res_info,
170         (
171           select 'PRVDR_GL' INVERT_ID from dual union all
172           select 'RECVR_GL' INVERT_ID from dual union all
173           select 'PRVDR_PA' INVERT_ID from dual union all
174           select 'RECVR_PA' INVERT_ID from dual union all
175           select 'EXP'      INVERT_ID from dual
176         ) invert
177       where
178         tmp1.PROJECT_ORG_ID     = prj_info.ORG_ID and
179         tmp1.EXPENDITURE_ORG_ID = res_info.ORG_ID
180       union
181       select /*+ ordered
182                  full(tmp2)     use_hash(tmp2)       parallel(tmp2)
183                  full(map)      use_hash(map)        parallel(map)
184                  full(prj_info) use_hash(prj_info)   swap_join_inputs(prj_info)
185                  full(res_info) use_hash(res_info)   swap_join_inputs(res_info)
186               */ -- bug 3092751: Changes in hints
187         distinct
188         decode(invert.INVERT_ID,
189                'PRVDR_GL', tmp2.PRVDR_GL_TIME_ID,
190                'RECVR_GL', tmp2.RECVR_GL_TIME_ID,
191                'PRVDR_PA', tmp2.PRVDR_PA_TIME_ID,
192                'RECVR_PA', tmp2.RECVR_PA_TIME_ID,
193                'EXP',      tmp2.EXPENDITURE_ITEM_TIME_ID)       TIME_ID,
194         decode(invert.INVERT_ID,
195                'PRVDR_GL', res_info.PF_CURRENCY_CODE,
196                'RECVR_GL', prj_info.PF_CURRENCY_CODE,
197                'PRVDR_PA', res_info.PF_CURRENCY_CODE,
198                'RECVR_PA', prj_info.PF_CURRENCY_CODE,
199                'EXP',      res_info.PF_CURRENCY_CODE)     PF_CURRENCY_CODE
200       from  -- bug 3092751: changes in table order
201         PJI_ORG_EXTR_INFO     prj_info,
202         PJI_FM_PROJ_BATCH_MAP map,
203         (
204         select /*+ full(tmp2) parallel(tmp2) */
205           distinct
206           PROJECT_ID,
207           EXPENDITURE_ORG_ID,
208           PRVDR_GL_TIME_ID,
209           RECVR_GL_TIME_ID,
210           PRVDR_PA_TIME_ID,
211           RECVR_PA_TIME_ID,
212           EXPENDITURE_ITEM_TIME_ID
213         from
214           PJI_FM_DNGL_FIN tmp2
215         where
216           WORKER_ID = 0 and
217           RECORD_TYPE = 'A'
218         ) tmp2,
219         PJI_ORG_EXTR_INFO     res_info,
220         (
221           select 'PRVDR_GL' INVERT_ID from dual union all
222           select 'RECVR_GL' INVERT_ID from dual union all
223           select 'PRVDR_PA' INVERT_ID from dual union all
224           select 'RECVR_PA' INVERT_ID from dual union all
225           select 'EXP'      INVERT_ID from dual
226         ) invert
227       where
228         map.WORKER_ID           = p_worker_id     and
229         map.PROJECT_ID          = tmp2.PROJECT_ID and
230         map.PROJECT_ORG_ID      = prj_info.ORG_ID and
231         tmp2.EXPENDITURE_ORG_ID = res_info.ORG_ID
232       union
233       select /*+ ordered
234                  full(tmp1)     use_hash(tmp1)       parallel(tmp1)
235                  full(prj_info) use_hash(prj_info)   swap_join_inputs(prj_info)
236               */  -- bug 3092751: changes in hints
237         distinct
238         decode(invert.INVERT_ID,
239                'GL', tmp1.GL_TIME_ID,
240                'PA', tmp1.PA_TIME_ID)                     TIME_ID,
241         prj_info.PF_CURRENCY_CODE
242       from  -- bug 3092751: changes in table order
243         PJI_ORG_EXTR_INFO     prj_info,
244         (
245         select /*+ parallel(tmp1) full(tmp1) */
246           distinct
247           PROJECT_ID,
248           PROJECT_ORG_ID,
249           GL_TIME_ID,
250           PA_TIME_ID
251         from
252           PJI_FM_AGGR_ACT1 tmp1
253         where
254           WORKER_ID = p_worker_id
255         ) tmp1,
256         (
257           select 'GL' INVERT_ID from dual union all
258           select 'PA' INVERT_ID from dual
259         ) invert
260       where
261         tmp1.PROJECT_ORG_ID = prj_info.ORG_ID
262       union
263       select /*+ ordered
264                  full(tmp2)     use_hash(tmp2)      parallel(tmp2)
265                  full(map)      use_hash(map)       parallel(map)
266                  full(prj_info) use_hash(prj_info)  swap_join_inputs(prj_info)
267               */  -- bug 3092751: changes in hints
268         distinct
269         decode(invert.INVERT_ID,
270                'GL', tmp2.GL_TIME_ID,
271                'PA', tmp2.PA_TIME_ID)                     TIME_ID,
272         prj_info.PF_CURRENCY_CODE
273       from  -- bug 3092751: changes in table order
274         PJI_ORG_EXTR_INFO     prj_info,
275         PJI_FM_PROJ_BATCH_MAP map,
276         (
277         select /*+ parallel(tmp2) full(tmp2) */
278           distinct
279           PROJECT_ID,
280           GL_TIME_ID,
281           PA_TIME_ID
282         from
283           PJI_FM_DNGL_ACT tmp2
284         where
285           WORKER_ID = 0
286         ) tmp2,
287         (
288           select 'GL' INVERT_ID from dual union all
289           select 'PA' INVERT_ID from dual
290         ) invert
291       where
292         map.WORKER_ID      = p_worker_id     and
293         map.PROJECT_ID     = tmp2.PROJECT_ID and
294         map.PROJECT_ORG_ID = prj_info.ORG_ID
295       union      -- commitments data
296       select /*+ ordered
297                  full(tmp2)     use_hash(tmp2)      parallel(tmp2)
298                  full(map)      use_hash(map)       parallel(map)
299                  full(prj_info) use_hash(prj_info)  swap_join_inputs(prj_info)
300               */
301         distinct
302         decode(invert.INVERT_ID,
303                'GL', tmp2.GL_TIME_ID,
304                'PA', tmp2.PA_TIME_ID)                     TIME_ID,
305         prj_info.PF_CURRENCY_CODE
306       from
307         PJI_ORG_EXTR_INFO     prj_info,
308         PJI_FM_PROJ_BATCH_MAP map,
309         /*  commented and changed as below for bug 6894858
310         (
311         select /*+ parallel(cmt) full(cmt)
312           distinct
313           cmt.PROJECT_ID,
314           to_number(to_char(nvl(cmt.CMT_PROMISED_DATE,
315                                 nvl(cmt.CMT_NEED_BY_DATE,
316                                     cmt.EXPENDITURE_ITEM_DATE)),
317                     'J')) GL_TIME_ID,
318           to_number(to_char(nvl(cmt.CMT_PROMISED_DATE,
319                                 nvl(cmt.CMT_NEED_BY_DATE,
320                                     cmt.EXPENDITURE_ITEM_DATE)),
321                     'J')) PA_TIME_ID
322         from
323           PA_COMMITMENT_TXNS cmt
324         where
325           l_extract_commitments = 'Y'
326         ) tmp2,
327         (
328           select 'GL' INVERT_ID from dual union all
329           select 'PA' INVERT_ID from dual
330         ) invert
331       where
332         l_extract_commitments = 'Y'             and
333         map.WORKER_ID         = p_worker_id     and
334         map.PROJECT_ID        = tmp2.PROJECT_ID and
335         map.PROJECT_ORG_ID    = prj_info.ORG_ID
336       )*/
337       (
338         select
339           to_number(to_char(trunc(sysdate),
340                     'J')) GL_TIME_ID,
341           to_number(to_char(trunc(sysdate),
342                     'J')) PA_TIME_ID
343         from
344           dual
345         ) tmp2,
346         (
347           select 'GL' INVERT_ID from dual union all
348           select 'PA' INVERT_ID from dual
349         ) invert
350       where
351         l_extract_commitments = 'Y'             and
352         map.WORKER_ID         = p_worker_id     and
353         --map.PROJECT_ID        = tmp2.PROJECT_ID and --6894858
354         map.PROJECT_ORG_ID    = prj_info.ORG_ID
355       )
356     ) tmp,
357       PJI_FM_AGGR_DLY_RATES rates
358     where
359       -1                   = rates.WORKER_ID        (+) and
360       tmp.PF_CURRENCY_CODE = rates.PF_CURRENCY_CODE (+) and
361       tmp.TIME_ID          = rates.TIME_ID          (+) and
362       rates.WORKER_ID      is null;
363 
364     PJI_PROCESS_UTIL.REGISTER_STEP_COMPLETION(l_process, 'PJI_FM_SUM_EXTR.CURR_CONV_TABLE(p_worker_id);');
365 
366     commit;
367 
368   end CURR_CONV_TABLE;
369 
370 
371   -- -----------------------------------------------------
372   -- procedure DANGLING_FIN_ROWS
373   -- -----------------------------------------------------
374   procedure DANGLING_FIN_ROWS (p_worker_id in number) is
375 
376     l_process           varchar2(30);
377 
378     l_txn_currency_flag varchar2(1);
379     l_g2_currency_flag  varchar2(1);
380     l_g1_currency_code  varchar2(30);
381     l_g2_currency_code  varchar2(30);
382 
383   begin
384 
385     l_process := PJI_FM_SUM_MAIN.g_process || p_worker_id;
386 
387     if (not PJI_PROCESS_UTIL.NEED_TO_RUN_STEP(l_process, 'PJI_FM_SUM_EXTR.DANGLING_FIN_ROWS(p_worker_id);')) then
388       return;
389     end if;
390 
391     select
392       TXN_CURR_FLAG,
393       GLOBAL_CURR2_FLAG
394     into
395       l_txn_currency_flag,
396       l_g2_currency_flag
397     from
398       PJI_SYSTEM_SETTINGS;
399 
400     l_g1_currency_code := PJI_UTILS.GET_GLOBAL_PRIMARY_CURRENCY;
401     l_g2_currency_code := PJI_UTILS.GET_GLOBAL_SECONDARY_CURRENCY;
402 
403     insert /*+ append parallel(fin2_i) */ into PJI_FM_AGGR_FIN2 fin2_i -- in DANGLING_FIN_ROWS
404     (
405       WORKER_ID,
406       DANGLING_RECVR_GL_RATE_FLAG,
407       DANGLING_RECVR_GL_RATE2_FLAG,
408       DANGLING_RECVR_PA_RATE_FLAG,
409       DANGLING_RECVR_PA_RATE2_FLAG,
410       DANGLING_PRVDR_EN_TIME_FLAG,
411       DANGLING_RECVR_EN_TIME_FLAG,
412       DANGLING_EXP_EN_TIME_FLAG,
413       DANGLING_PRVDR_GL_TIME_FLAG,
414       DANGLING_RECVR_GL_TIME_FLAG,
415       DANGLING_EXP_GL_TIME_FLAG,
416       DANGLING_PRVDR_PA_TIME_FLAG,
417       DANGLING_RECVR_PA_TIME_FLAG,
418       DANGLING_EXP_PA_TIME_FLAG,
419       ROW_ID,
420       PJI_PROJECT_RECORD_FLAG,
421       PJI_RESOURCE_RECORD_FLAG,
422       RECORD_TYPE,
423       CMT_RECORD_TYPE,
424       PROJECT_ID,
425       PROJECT_ORG_ID,
426       PROJECT_ORGANIZATION_ID,
427       PROJECT_TYPE_CLASS,
428       PERSON_ID,
429       EXPENDITURE_ORG_ID,
430       EXPENDITURE_ORGANIZATION_ID,
431       EXP_EVT_TYPE_ID,
432       WORK_TYPE_ID,
433       JOB_ID,
434       TASK_ID,
435       VENDOR_ID,
436       EXPENDITURE_TYPE,
437       EVENT_TYPE,
438       EVENT_TYPE_CLASSIFICATION,
439       EXPENDITURE_CATEGORY,
440       REVENUE_CATEGORY,
441       NON_LABOR_RESOURCE,
442       BOM_LABOR_RESOURCE_ID,
443       BOM_EQUIPMENT_RESOURCE_ID,
444       INVENTORY_ITEM_ID,
445       PO_LINE_ID,
446       ASSIGNMENT_ID,
447       SYSTEM_LINKAGE_FUNCTION,
448       RESOURCE_CLASS_CODE,
449       RECVR_GL_TIME_ID,
450       GL_PERIOD_NAME,
451       PRVDR_GL_TIME_ID,
452       RECVR_PA_TIME_ID,
453       PA_PERIOD_NAME,
454       PRVDR_PA_TIME_ID,
455       EXPENDITURE_ITEM_TIME_ID,
456       PJ_GL_CALENDAR_ID,
457       PJ_PA_CALENDAR_ID,
458       RS_GL_CALENDAR_ID,
459       RS_PA_CALENDAR_ID,
460       PRJ_REVENUE,
461       PRJ_LABOR_REVENUE,
462       PRJ_REVENUE_WRITEOFF,
463       PRJ_RAW_COST,
464       PRJ_BRDN_COST,
465       PRJ_BILL_RAW_COST,
466       PRJ_BILL_BRDN_COST,
467       PRJ_LABOR_RAW_COST,
468       PRJ_LABOR_BRDN_COST,
469       PRJ_BILL_LABOR_RAW_COST,
470       PRJ_BILL_LABOR_BRDN_COST,
471       POU_REVENUE,
472       POU_LABOR_REVENUE,
473       POU_REVENUE_WRITEOFF,
474       POU_RAW_COST,
475       POU_BRDN_COST,
476       POU_BILL_RAW_COST,
477       POU_BILL_BRDN_COST,
478       POU_LABOR_RAW_COST,
479       POU_LABOR_BRDN_COST,
480       POU_BILL_LABOR_RAW_COST,
481       POU_BILL_LABOR_BRDN_COST,
482       EOU_RAW_COST,
483       EOU_BRDN_COST,
484       EOU_BILL_RAW_COST,
485       EOU_BILL_BRDN_COST,
486       TXN_CURRENCY_CODE,
487       TXN_REVENUE,
488       TXN_RAW_COST,
489       TXN_BRDN_COST,
490       TXN_BILL_RAW_COST,
491       TXN_BILL_BRDN_COST,
492       LABOR_HRS,
493       BILL_LABOR_HRS,
494       GG1_REVENUE,
495       GG1_LABOR_REVENUE,
496       GG1_REVENUE_WRITEOFF,
497       GG1_RAW_COST,
498       GG1_BRDN_COST,
499       GG1_BILL_RAW_COST,
500       GG1_BILL_BRDN_COST,
501       GG1_LABOR_RAW_COST,
502       GG1_LABOR_BRDN_COST,
503       GG1_BILL_LABOR_RAW_COST,
504       GG1_BILL_LABOR_BRDN_COST,
505       GP1_REVENUE,
506       GP1_LABOR_REVENUE,
507       GP1_REVENUE_WRITEOFF,
508       GP1_RAW_COST,
509       GP1_BRDN_COST,
510       GP1_BILL_RAW_COST,
511       GP1_BILL_BRDN_COST,
512       GP1_LABOR_RAW_COST,
513       GP1_LABOR_BRDN_COST,
514       GP1_BILL_LABOR_RAW_COST,
515       GP1_BILL_LABOR_BRDN_COST,
516       GG2_REVENUE,
517       GG2_LABOR_REVENUE,
518       GG2_REVENUE_WRITEOFF,
519       GG2_RAW_COST,
520       GG2_BRDN_COST,
521       GG2_BILL_RAW_COST,
522       GG2_BILL_BRDN_COST,
523       GG2_LABOR_RAW_COST,
524       GG2_LABOR_BRDN_COST,
525       GG2_BILL_LABOR_RAW_COST,
526       GG2_BILL_LABOR_BRDN_COST,
527       GP2_REVENUE,
528       GP2_LABOR_REVENUE,
529       GP2_REVENUE_WRITEOFF,
530       GP2_RAW_COST,
531       GP2_BRDN_COST,
532       GP2_BILL_RAW_COST,
533       GP2_BILL_BRDN_COST,
534       GP2_LABOR_RAW_COST,
535       GP2_LABOR_BRDN_COST,
536       GP2_BILL_LABOR_RAW_COST,
537       GP2_BILL_LABOR_BRDN_COST,
538       TOTAL_HRS_A,
539       BILL_HRS_A
540     )
541     select
542       p_worker_id,
543       tmp2.DANGLING_RECVR_GL_RATE_FLAG,
544       tmp2.DANGLING_RECVR_GL_RATE2_FLAG,
545       tmp2.DANGLING_RECVR_PA_RATE_FLAG,
546       tmp2.DANGLING_RECVR_PA_RATE2_FLAG,
547       tmp2.DANGLING_PRVDR_EN_TIME_FLAG,
548       tmp2.DANGLING_RECVR_EN_TIME_FLAG,
549       tmp2.DANGLING_EXP_EN_TIME_FLAG,
550       tmp2.DANGLING_PRVDR_GL_TIME_FLAG,
551       tmp2.DANGLING_RECVR_GL_TIME_FLAG,
552       tmp2.DANGLING_EXP_GL_TIME_FLAG,
553       tmp2.DANGLING_PRVDR_PA_TIME_FLAG,
554       tmp2.DANGLING_RECVR_PA_TIME_FLAG,
555       tmp2.DANGLING_EXP_PA_TIME_FLAG,
556       tmp2.ROW_ID,
557       tmp2.PJI_PROJECT_RECORD_FLAG,
558       tmp2.PJI_RESOURCE_RECORD_FLAG,
559       tmp2.RECORD_TYPE,
560       tmp2.CMT_RECORD_TYPE,
561       tmp2.PROJECT_ID,
562       tmp2.PROJECT_ORG_ID,
563       tmp2.PROJECT_ORGANIZATION_ID,
564       tmp2.PROJECT_TYPE_CLASS,
565       tmp2.PERSON_ID,
566       tmp2.EXPENDITURE_ORG_ID,
567       tmp2.EXPENDITURE_ORGANIZATION_ID,
568       tmp2.EXP_EVT_TYPE_ID,
569       tmp2.WORK_TYPE_ID,
570       tmp2.JOB_ID,
571       tmp2.TASK_ID,
572       tmp2.VENDOR_ID,
573       tmp2.EXPENDITURE_TYPE,
574       tmp2.EVENT_TYPE,
575       tmp2.EVENT_TYPE_CLASSIFICATION,
576       tmp2.EXPENDITURE_CATEGORY,
577       tmp2.REVENUE_CATEGORY,
578       tmp2.NON_LABOR_RESOURCE,
579       tmp2.BOM_LABOR_RESOURCE_ID,
580       tmp2.BOM_EQUIPMENT_RESOURCE_ID,
581       tmp2.INVENTORY_ITEM_ID,
582       tmp2.PO_LINE_ID,
583       tmp2.ASSIGNMENT_ID,
584       tmp2.SYSTEM_LINKAGE_FUNCTION,
585       tmp2.RESOURCE_CLASS_CODE,
586       tmp2.RECVR_GL_TIME_ID,
587       tmp2.GL_PERIOD_NAME,
588       tmp2.PRVDR_GL_TIME_ID,
589       tmp2.RECVR_PA_TIME_ID,
590       tmp2.PA_PERIOD_NAME,
591       tmp2.PRVDR_PA_TIME_ID,
592       tmp2.EXPENDITURE_ITEM_TIME_ID,
593       tmp2.PJ_GL_CALENDAR_ID,
594       tmp2.PJ_PA_CALENDAR_ID,
595       tmp2.RS_GL_CALENDAR_ID,
596       tmp2.RS_PA_CALENDAR_ID,
597       tmp2.PRJ_REVENUE,
598       tmp2.PRJ_LABOR_REVENUE,
599       tmp2.PRJ_REVENUE_WRITEOFF,
600       tmp2.PRJ_RAW_COST,
601       tmp2.PRJ_BRDN_COST,
602       tmp2.PRJ_BILL_RAW_COST,
603       tmp2.PRJ_BILL_BRDN_COST,
604       tmp2.PRJ_LABOR_RAW_COST,
605       tmp2.PRJ_LABOR_BRDN_COST,
606       tmp2.PRJ_BILL_LABOR_RAW_COST,
607       tmp2.PRJ_BILL_LABOR_BRDN_COST,
608       tmp2.POU_REVENUE,
609       tmp2.POU_LABOR_REVENUE,
610       tmp2.POU_REVENUE_WRITEOFF,
611       tmp2.POU_RAW_COST,
612       tmp2.POU_BRDN_COST,
613       tmp2.POU_BILL_RAW_COST,
614       tmp2.POU_BILL_BRDN_COST,
615       tmp2.POU_LABOR_RAW_COST,
616       tmp2.POU_LABOR_BRDN_COST,
617       tmp2.POU_BILL_LABOR_RAW_COST,
618       tmp2.POU_BILL_LABOR_BRDN_COST,
619       tmp2.EOU_RAW_COST,
620       tmp2.EOU_BRDN_COST,
621       tmp2.EOU_BILL_RAW_COST,
622       tmp2.EOU_BILL_BRDN_COST,
623       tmp2.TXN_CURRENCY_CODE,
624       tmp2.TXN_REVENUE,
625       tmp2.TXN_RAW_COST,
626       tmp2.TXN_BRDN_COST,
627       tmp2.TXN_BILL_RAW_COST,
628       tmp2.TXN_BILL_BRDN_COST,
629       tmp2.LABOR_HRS,
630       tmp2.BILL_LABOR_HRS,
631       decode(nvl(tmp2.PJI_PROJECT_RECORD_FLAG, 'N') ||
632              tmp2.DANGLING_RECVR_GL_RATE_FLAG       ||
633              tmp2.DANGLING_RECVR_GL_RATE2_FLAG      ||
634              tmp2.DANGLING_RECVR_PA_RATE_FLAG       ||
635              tmp2.DANGLING_RECVR_PA_RATE2_FLAG      ||
636              tmp2.DANGLING_PRVDR_EN_TIME_FLAG       ||
637              tmp2.DANGLING_RECVR_EN_TIME_FLAG       ||
638              tmp2.DANGLING_EXP_EN_TIME_FLAG         ||
639              tmp2.DANGLING_PRVDR_GL_TIME_FLAG       ||
640              tmp2.DANGLING_RECVR_GL_TIME_FLAG       ||
641              tmp2.DANGLING_EXP_GL_TIME_FLAG         ||
642              tmp2.DANGLING_PRVDR_PA_TIME_FLAG       ||
643              tmp2.DANGLING_RECVR_PA_TIME_FLAG       ||
644              tmp2.DANGLING_EXP_PA_TIME_FLAG,
645              'Y', decode(tmp2.TXN_CURRENCY_CODE,
646                          l_g1_currency_code,
647                          tmp2.TXN_REVENUE,
648                          round(tmp2.POU_REVENUE *
649                                tmp2.PRJ_GL_RATE1 /
650                                PRJ_GL_MAU1) * PRJ_GL_MAU1),
651                   to_number(null))                  GG1_REVENUE,
652       decode(nvl(tmp2.PJI_PROJECT_RECORD_FLAG, 'N') ||
653              tmp2.DANGLING_RECVR_GL_RATE_FLAG       ||
654              tmp2.DANGLING_RECVR_GL_RATE2_FLAG      ||
655              tmp2.DANGLING_RECVR_PA_RATE_FLAG       ||
656              tmp2.DANGLING_RECVR_PA_RATE2_FLAG      ||
657              tmp2.DANGLING_PRVDR_EN_TIME_FLAG       ||
658              tmp2.DANGLING_RECVR_EN_TIME_FLAG       ||
659              tmp2.DANGLING_EXP_EN_TIME_FLAG         ||
660              tmp2.DANGLING_PRVDR_GL_TIME_FLAG       ||
661              tmp2.DANGLING_RECVR_GL_TIME_FLAG       ||
662              tmp2.DANGLING_EXP_GL_TIME_FLAG         ||
663              tmp2.DANGLING_PRVDR_PA_TIME_FLAG       ||
664              tmp2.DANGLING_RECVR_PA_TIME_FLAG       ||
665              tmp2.DANGLING_EXP_PA_TIME_FLAG,
666              'Y', -- decode(tmp2.TXN_CURRENCY_CODE,
667                   --        l_g1_currency_code,
668                   --        tmp2.TXN_LABOR_REVENUE,
669                          round(tmp2.POU_LABOR_REVENUE *
670                                tmp2.PRJ_GL_RATE1 /
671                                PRJ_GL_MAU1) * PRJ_GL_MAU1
672                   -- )
673                   ,
674                   to_number(null))                  GG1_LABOR_REVENUE,
675       decode(nvl(tmp2.PJI_PROJECT_RECORD_FLAG, 'N') ||
676              tmp2.DANGLING_RECVR_GL_RATE_FLAG       ||
677              tmp2.DANGLING_RECVR_GL_RATE2_FLAG      ||
678              tmp2.DANGLING_RECVR_PA_RATE_FLAG       ||
679              tmp2.DANGLING_RECVR_PA_RATE2_FLAG      ||
680              tmp2.DANGLING_PRVDR_EN_TIME_FLAG       ||
681              tmp2.DANGLING_RECVR_EN_TIME_FLAG       ||
682              tmp2.DANGLING_EXP_EN_TIME_FLAG         ||
683              tmp2.DANGLING_PRVDR_GL_TIME_FLAG       ||
684              tmp2.DANGLING_RECVR_GL_TIME_FLAG       ||
685              tmp2.DANGLING_EXP_GL_TIME_FLAG         ||
686              tmp2.DANGLING_PRVDR_PA_TIME_FLAG       ||
687              tmp2.DANGLING_RECVR_PA_TIME_FLAG       ||
688              tmp2.DANGLING_EXP_PA_TIME_FLAG,
689              'Y', -- decode(tmp2.TXN_CURRENCY_CODE,
690                   --        l_g1_currency_code,
691                   --        tmp2.TXN_REVENUE_WRITEOFF,
692                          round(tmp2.POU_REVENUE_WRITEOFF *
693                                tmp2.PRJ_GL_RATE1 /
694                                PRJ_GL_MAU1) * PRJ_GL_MAU1
695                   -- )
696                   ,
697                   to_number(null))                  GG1_REVENUE_WRITEOFF,
698       decode(nvl(tmp2.PJI_PROJECT_RECORD_FLAG, 'N') ||
699              tmp2.DANGLING_RECVR_GL_RATE_FLAG       ||
700              tmp2.DANGLING_RECVR_GL_RATE2_FLAG      ||
701              tmp2.DANGLING_RECVR_PA_RATE_FLAG       ||
702              tmp2.DANGLING_RECVR_PA_RATE2_FLAG      ||
703              tmp2.DANGLING_PRVDR_EN_TIME_FLAG       ||
704              tmp2.DANGLING_RECVR_EN_TIME_FLAG       ||
705              tmp2.DANGLING_EXP_EN_TIME_FLAG         ||
706              tmp2.DANGLING_PRVDR_GL_TIME_FLAG       ||
707              tmp2.DANGLING_RECVR_GL_TIME_FLAG       ||
708              tmp2.DANGLING_EXP_GL_TIME_FLAG         ||
709              tmp2.DANGLING_PRVDR_PA_TIME_FLAG       ||
710              tmp2.DANGLING_RECVR_PA_TIME_FLAG       ||
711              tmp2.DANGLING_EXP_PA_TIME_FLAG,
712              'Y', decode(tmp2.TXN_CURRENCY_CODE,
713                          l_g1_currency_code,
714                          tmp2.TXN_RAW_COST,
715                          round(tmp2.POU_RAW_COST *
716                                tmp2.PRJ_GL_RATE1 /
717                                PRJ_GL_MAU1) * PRJ_GL_MAU1),
718                   to_number(null))                  GG1_RAW_COST,
719       decode(nvl(tmp2.PJI_PROJECT_RECORD_FLAG, 'N') ||
720              tmp2.DANGLING_RECVR_GL_RATE_FLAG       ||
721              tmp2.DANGLING_RECVR_GL_RATE2_FLAG      ||
722              tmp2.DANGLING_RECVR_PA_RATE_FLAG       ||
723              tmp2.DANGLING_RECVR_PA_RATE2_FLAG      ||
724              tmp2.DANGLING_PRVDR_EN_TIME_FLAG       ||
725              tmp2.DANGLING_RECVR_EN_TIME_FLAG       ||
726              tmp2.DANGLING_EXP_EN_TIME_FLAG         ||
727              tmp2.DANGLING_PRVDR_GL_TIME_FLAG       ||
728              tmp2.DANGLING_RECVR_GL_TIME_FLAG       ||
729              tmp2.DANGLING_EXP_GL_TIME_FLAG         ||
730              tmp2.DANGLING_PRVDR_PA_TIME_FLAG       ||
731              tmp2.DANGLING_RECVR_PA_TIME_FLAG       ||
732              tmp2.DANGLING_EXP_PA_TIME_FLAG,
733              'Y', decode(tmp2.TXN_CURRENCY_CODE,
734                          l_g1_currency_code,
735                          tmp2.TXN_BRDN_COST,
736                          round(tmp2.POU_BRDN_COST *
737                                tmp2.PRJ_GL_RATE1 /
738                                PRJ_GL_MAU1) * PRJ_GL_MAU1),
739                   to_number(null))                  GG1_BRDN_COST,
740       decode(nvl(tmp2.PJI_PROJECT_RECORD_FLAG, 'N') ||
741              tmp2.DANGLING_RECVR_GL_RATE_FLAG       ||
742              tmp2.DANGLING_RECVR_GL_RATE2_FLAG      ||
743              tmp2.DANGLING_RECVR_PA_RATE_FLAG       ||
744              tmp2.DANGLING_RECVR_PA_RATE2_FLAG      ||
745              tmp2.DANGLING_PRVDR_EN_TIME_FLAG       ||
746              tmp2.DANGLING_RECVR_EN_TIME_FLAG       ||
747              tmp2.DANGLING_EXP_EN_TIME_FLAG         ||
748              tmp2.DANGLING_PRVDR_GL_TIME_FLAG       ||
749              tmp2.DANGLING_RECVR_GL_TIME_FLAG       ||
750              tmp2.DANGLING_EXP_GL_TIME_FLAG         ||
751              tmp2.DANGLING_PRVDR_PA_TIME_FLAG       ||
752              tmp2.DANGLING_RECVR_PA_TIME_FLAG       ||
753              tmp2.DANGLING_EXP_PA_TIME_FLAG,
754              'Y', decode(tmp2.TXN_CURRENCY_CODE,
755                          l_g1_currency_code,
756                          tmp2.TXN_BILL_RAW_COST,
757                          round(tmp2.POU_BILL_RAW_COST *
758                                tmp2.PRJ_GL_RATE1 /
759                                PRJ_GL_MAU1) * PRJ_GL_MAU1),
760                   to_number(null))                  GG1_BILL_RAW_COST,
761       decode(nvl(tmp2.PJI_PROJECT_RECORD_FLAG, 'N') ||
762              tmp2.DANGLING_RECVR_GL_RATE_FLAG       ||
763              tmp2.DANGLING_RECVR_GL_RATE2_FLAG      ||
764              tmp2.DANGLING_RECVR_PA_RATE_FLAG       ||
765              tmp2.DANGLING_RECVR_PA_RATE2_FLAG      ||
766              tmp2.DANGLING_PRVDR_EN_TIME_FLAG       ||
767              tmp2.DANGLING_RECVR_EN_TIME_FLAG       ||
768              tmp2.DANGLING_EXP_EN_TIME_FLAG         ||
769              tmp2.DANGLING_PRVDR_GL_TIME_FLAG       ||
770              tmp2.DANGLING_RECVR_GL_TIME_FLAG       ||
771              tmp2.DANGLING_EXP_GL_TIME_FLAG         ||
772              tmp2.DANGLING_PRVDR_PA_TIME_FLAG       ||
773              tmp2.DANGLING_RECVR_PA_TIME_FLAG       ||
774              tmp2.DANGLING_EXP_PA_TIME_FLAG,
775              'Y', decode(tmp2.TXN_CURRENCY_CODE,
776                          l_g1_currency_code,
777                          tmp2.TXN_BILL_BRDN_COST,
778                          round(tmp2.POU_BILL_BRDN_COST *
779                                tmp2.PRJ_GL_RATE1 /
780                                PRJ_GL_MAU1) * PRJ_GL_MAU1),
781                   to_number(null))                  GG1_BILL_BRDN_COST,
782       decode(nvl(tmp2.PJI_PROJECT_RECORD_FLAG, 'N') ||
783              tmp2.DANGLING_RECVR_GL_RATE_FLAG       ||
784              tmp2.DANGLING_RECVR_GL_RATE2_FLAG      ||
785              tmp2.DANGLING_RECVR_PA_RATE_FLAG       ||
786              tmp2.DANGLING_RECVR_PA_RATE2_FLAG      ||
787              tmp2.DANGLING_PRVDR_EN_TIME_FLAG       ||
788              tmp2.DANGLING_RECVR_EN_TIME_FLAG       ||
789              tmp2.DANGLING_EXP_EN_TIME_FLAG         ||
790              tmp2.DANGLING_PRVDR_GL_TIME_FLAG       ||
791              tmp2.DANGLING_RECVR_GL_TIME_FLAG       ||
792              tmp2.DANGLING_EXP_GL_TIME_FLAG         ||
793              tmp2.DANGLING_PRVDR_PA_TIME_FLAG       ||
794              tmp2.DANGLING_RECVR_PA_TIME_FLAG       ||
795              tmp2.DANGLING_EXP_PA_TIME_FLAG,
796              'Y', -- decode(tmp2.TXN_CURRENCY_CODE,
797                   --        l_g1_currency_code,
798                   --        tmp2.TXN_LABOR_RAW_COST,
799                          round(tmp2.POU_LABOR_RAW_COST *
800                                tmp2.PRJ_GL_RATE1 /
801                                PRJ_GL_MAU1) * PRJ_GL_MAU1
802                   -- )
803                   ,
804                   to_number(null))                  GG1_LABOR_RAW_COST,
805       decode(nvl(tmp2.PJI_PROJECT_RECORD_FLAG, 'N') ||
806              tmp2.DANGLING_RECVR_GL_RATE_FLAG       ||
807              tmp2.DANGLING_RECVR_GL_RATE2_FLAG      ||
808              tmp2.DANGLING_RECVR_PA_RATE_FLAG       ||
809              tmp2.DANGLING_RECVR_PA_RATE2_FLAG      ||
810              tmp2.DANGLING_PRVDR_EN_TIME_FLAG       ||
811              tmp2.DANGLING_RECVR_EN_TIME_FLAG       ||
812              tmp2.DANGLING_EXP_EN_TIME_FLAG         ||
813              tmp2.DANGLING_PRVDR_GL_TIME_FLAG       ||
814              tmp2.DANGLING_RECVR_GL_TIME_FLAG       ||
815              tmp2.DANGLING_EXP_GL_TIME_FLAG         ||
816              tmp2.DANGLING_PRVDR_PA_TIME_FLAG       ||
817              tmp2.DANGLING_RECVR_PA_TIME_FLAG       ||
818              tmp2.DANGLING_EXP_PA_TIME_FLAG,
819              'Y', -- decode(tmp2.TXN_CURRENCY_CODE,
820                   --        l_g1_currency_code,
821                   --        tmp2.TXN_LABOR_BRDN_COST,
822                          round(tmp2.POU_LABOR_BRDN_COST *
823                                tmp2.PRJ_GL_RATE1 /
824                                PRJ_GL_MAU1) * PRJ_GL_MAU1
825                   -- )
826                   ,
827                   to_number(null))                  GG1_LABOR_BRDN_COST,
828       decode(nvl(tmp2.PJI_PROJECT_RECORD_FLAG, 'N') ||
829              tmp2.DANGLING_RECVR_GL_RATE_FLAG       ||
830              tmp2.DANGLING_RECVR_GL_RATE2_FLAG      ||
831              tmp2.DANGLING_RECVR_PA_RATE_FLAG       ||
832              tmp2.DANGLING_RECVR_PA_RATE2_FLAG      ||
833              tmp2.DANGLING_PRVDR_EN_TIME_FLAG       ||
834              tmp2.DANGLING_RECVR_EN_TIME_FLAG       ||
835              tmp2.DANGLING_EXP_EN_TIME_FLAG         ||
836              tmp2.DANGLING_PRVDR_GL_TIME_FLAG       ||
837              tmp2.DANGLING_RECVR_GL_TIME_FLAG       ||
838              tmp2.DANGLING_EXP_GL_TIME_FLAG         ||
839              tmp2.DANGLING_PRVDR_PA_TIME_FLAG       ||
840              tmp2.DANGLING_RECVR_PA_TIME_FLAG       ||
841              tmp2.DANGLING_EXP_PA_TIME_FLAG,
842              'Y', -- decode(tmp2.TXN_CURRENCY_CODE,
843                   --        l_g1_currency_code,
844                   --        tmp2.TXN_BILL_LABOR_RAW_COST,
845                          round(tmp2.POU_BILL_LABOR_RAW_COST *
846                                tmp2.PRJ_GL_RATE1 /
847                                PRJ_GL_MAU1) * PRJ_GL_MAU1
848                   -- )
849                   ,
850                   to_number(null))                  GG1_BILL_LABOR_RAW_COST,
851       decode(nvl(tmp2.PJI_PROJECT_RECORD_FLAG, 'N') ||
852              tmp2.DANGLING_RECVR_GL_RATE_FLAG       ||
853              tmp2.DANGLING_RECVR_GL_RATE2_FLAG      ||
854              tmp2.DANGLING_RECVR_PA_RATE_FLAG       ||
855              tmp2.DANGLING_RECVR_PA_RATE2_FLAG      ||
856              tmp2.DANGLING_PRVDR_EN_TIME_FLAG       ||
857              tmp2.DANGLING_RECVR_EN_TIME_FLAG       ||
858              tmp2.DANGLING_EXP_EN_TIME_FLAG         ||
859              tmp2.DANGLING_PRVDR_GL_TIME_FLAG       ||
860              tmp2.DANGLING_RECVR_GL_TIME_FLAG       ||
861              tmp2.DANGLING_EXP_GL_TIME_FLAG         ||
862              tmp2.DANGLING_PRVDR_PA_TIME_FLAG       ||
863              tmp2.DANGLING_RECVR_PA_TIME_FLAG       ||
864              tmp2.DANGLING_EXP_PA_TIME_FLAG,
865              'Y', -- decode(tmp2.TXN_CURRENCY_CODE,
866                   --        l_g1_currency_code,
867                   --        tmp2.TXN_BILL_LABOR_BRDN_COST,
868                          round(tmp2.POU_BILL_LABOR_BRDN_COST *
869                                tmp2.PRJ_GL_RATE1 /
870                                PRJ_GL_MAU1) * PRJ_GL_MAU1
871                   -- )
872                   ,
873                   to_number(null))                  GG1_BILL_LABOR_BRDN_COST,
874       decode(nvl(tmp2.PJI_PROJECT_RECORD_FLAG, 'N') ||
875              tmp2.DANGLING_RECVR_GL_RATE_FLAG       ||
876              tmp2.DANGLING_RECVR_GL_RATE2_FLAG      ||
877              tmp2.DANGLING_RECVR_PA_RATE_FLAG       ||
878              tmp2.DANGLING_RECVR_PA_RATE2_FLAG      ||
879              tmp2.DANGLING_PRVDR_EN_TIME_FLAG       ||
880              tmp2.DANGLING_RECVR_EN_TIME_FLAG       ||
881              tmp2.DANGLING_EXP_EN_TIME_FLAG         ||
882              tmp2.DANGLING_PRVDR_GL_TIME_FLAG       ||
883              tmp2.DANGLING_RECVR_GL_TIME_FLAG       ||
884              tmp2.DANGLING_EXP_GL_TIME_FLAG         ||
885              tmp2.DANGLING_PRVDR_PA_TIME_FLAG       ||
886              tmp2.DANGLING_RECVR_PA_TIME_FLAG       ||
887              tmp2.DANGLING_EXP_PA_TIME_FLAG,
888              'Y', decode(tmp2.TXN_CURRENCY_CODE,
889                          l_g1_currency_code,
890                          tmp2.TXN_REVENUE,
891                          round(tmp2.POU_REVENUE *
892                                tmp2.PRJ_PA_RATE1 /
893                                PRJ_PA_MAU1) * PRJ_PA_MAU1),
894                   to_number(null))                  GP1_REVENUE,
895       decode(nvl(tmp2.PJI_PROJECT_RECORD_FLAG, 'N') ||
896              tmp2.DANGLING_RECVR_GL_RATE_FLAG       ||
897              tmp2.DANGLING_RECVR_GL_RATE2_FLAG      ||
898              tmp2.DANGLING_RECVR_PA_RATE_FLAG       ||
899              tmp2.DANGLING_RECVR_PA_RATE2_FLAG      ||
900              tmp2.DANGLING_PRVDR_EN_TIME_FLAG       ||
901              tmp2.DANGLING_RECVR_EN_TIME_FLAG       ||
902              tmp2.DANGLING_EXP_EN_TIME_FLAG         ||
903              tmp2.DANGLING_PRVDR_GL_TIME_FLAG       ||
904              tmp2.DANGLING_RECVR_GL_TIME_FLAG       ||
905              tmp2.DANGLING_EXP_GL_TIME_FLAG         ||
906              tmp2.DANGLING_PRVDR_PA_TIME_FLAG       ||
907              tmp2.DANGLING_RECVR_PA_TIME_FLAG       ||
908              tmp2.DANGLING_EXP_PA_TIME_FLAG,
909              'Y', -- decode(tmp2.TXN_CURRENCY_CODE,
910                   --        l_g1_currency_code,
911                   --        tmp2.TXN_LABOR_REVENUE,
912                          round(tmp2.POU_LABOR_REVENUE *
913                                tmp2.PRJ_PA_RATE1 /
914                                PRJ_PA_MAU1) * PRJ_PA_MAU1
915                   -- )
916                   ,
917                   to_number(null))                  GP1_LABOR_REVENUE,
918       decode(nvl(tmp2.PJI_PROJECT_RECORD_FLAG, 'N') ||
919              tmp2.DANGLING_RECVR_GL_RATE_FLAG       ||
920              tmp2.DANGLING_RECVR_GL_RATE2_FLAG      ||
921              tmp2.DANGLING_RECVR_PA_RATE_FLAG       ||
922              tmp2.DANGLING_RECVR_PA_RATE2_FLAG      ||
923              tmp2.DANGLING_PRVDR_EN_TIME_FLAG       ||
924              tmp2.DANGLING_RECVR_EN_TIME_FLAG       ||
925              tmp2.DANGLING_EXP_EN_TIME_FLAG         ||
926              tmp2.DANGLING_PRVDR_GL_TIME_FLAG       ||
927              tmp2.DANGLING_RECVR_GL_TIME_FLAG       ||
928              tmp2.DANGLING_EXP_GL_TIME_FLAG         ||
929              tmp2.DANGLING_PRVDR_PA_TIME_FLAG       ||
930              tmp2.DANGLING_RECVR_PA_TIME_FLAG       ||
931              tmp2.DANGLING_EXP_PA_TIME_FLAG,
932              'Y', -- decode(tmp2.TXN_CURRENCY_CODE,
933                   --        l_g1_currency_code,
934                   --        tmp2.TXN_REVENUE_WRITEOFF,
935                          round(tmp2.POU_REVENUE_WRITEOFF *
936                                tmp2.PRJ_PA_RATE1 /
937                                PRJ_PA_MAU1) * PRJ_PA_MAU1
938                   -- )
939                   ,
940                   to_number(null))                  GP1_REVENUE_WRITEOFF,
941       decode(nvl(tmp2.PJI_PROJECT_RECORD_FLAG, 'N') ||
942              tmp2.DANGLING_RECVR_GL_RATE_FLAG       ||
943              tmp2.DANGLING_RECVR_GL_RATE2_FLAG      ||
944              tmp2.DANGLING_RECVR_PA_RATE_FLAG       ||
945              tmp2.DANGLING_RECVR_PA_RATE2_FLAG      ||
946              tmp2.DANGLING_PRVDR_EN_TIME_FLAG       ||
947              tmp2.DANGLING_RECVR_EN_TIME_FLAG       ||
948              tmp2.DANGLING_EXP_EN_TIME_FLAG         ||
949              tmp2.DANGLING_PRVDR_GL_TIME_FLAG       ||
950              tmp2.DANGLING_RECVR_GL_TIME_FLAG       ||
951              tmp2.DANGLING_EXP_GL_TIME_FLAG         ||
952              tmp2.DANGLING_PRVDR_PA_TIME_FLAG       ||
953              tmp2.DANGLING_RECVR_PA_TIME_FLAG       ||
954              tmp2.DANGLING_EXP_PA_TIME_FLAG,
955              'Y', decode(tmp2.TXN_CURRENCY_CODE,
956                          l_g1_currency_code,
957                          tmp2.TXN_RAW_COST,
958                          round(tmp2.POU_RAW_COST *
959                                tmp2.PRJ_PA_RATE1 /
960                                PRJ_PA_MAU1) * PRJ_PA_MAU1),
961                   to_number(null))                  GP1_RAW_COST,
962       decode(nvl(tmp2.PJI_PROJECT_RECORD_FLAG, 'N') ||
963              tmp2.DANGLING_RECVR_GL_RATE_FLAG       ||
964              tmp2.DANGLING_RECVR_GL_RATE2_FLAG      ||
965              tmp2.DANGLING_RECVR_PA_RATE_FLAG       ||
966              tmp2.DANGLING_RECVR_PA_RATE2_FLAG      ||
967              tmp2.DANGLING_PRVDR_EN_TIME_FLAG       ||
968              tmp2.DANGLING_RECVR_EN_TIME_FLAG       ||
969              tmp2.DANGLING_EXP_EN_TIME_FLAG         ||
970              tmp2.DANGLING_PRVDR_GL_TIME_FLAG       ||
971              tmp2.DANGLING_RECVR_GL_TIME_FLAG       ||
972              tmp2.DANGLING_EXP_GL_TIME_FLAG         ||
973              tmp2.DANGLING_PRVDR_PA_TIME_FLAG       ||
974              tmp2.DANGLING_RECVR_PA_TIME_FLAG       ||
975              tmp2.DANGLING_EXP_PA_TIME_FLAG,
976              'Y', decode(tmp2.TXN_CURRENCY_CODE,
977                          l_g1_currency_code,
978                          tmp2.TXN_BRDN_COST,
979                          round(tmp2.POU_BRDN_COST *
980                                tmp2.PRJ_PA_RATE1 /
981                                PRJ_PA_MAU1) * PRJ_PA_MAU1),
982                   to_number(null))                  GP1_BRDN_COST,
983       decode(nvl(tmp2.PJI_PROJECT_RECORD_FLAG, 'N') ||
984              tmp2.DANGLING_RECVR_GL_RATE_FLAG       ||
985              tmp2.DANGLING_RECVR_GL_RATE2_FLAG      ||
986              tmp2.DANGLING_RECVR_PA_RATE_FLAG       ||
987              tmp2.DANGLING_RECVR_PA_RATE2_FLAG      ||
988              tmp2.DANGLING_PRVDR_EN_TIME_FLAG       ||
989              tmp2.DANGLING_RECVR_EN_TIME_FLAG       ||
990              tmp2.DANGLING_EXP_EN_TIME_FLAG         ||
991              tmp2.DANGLING_PRVDR_GL_TIME_FLAG       ||
992              tmp2.DANGLING_RECVR_GL_TIME_FLAG       ||
993              tmp2.DANGLING_EXP_GL_TIME_FLAG         ||
994              tmp2.DANGLING_PRVDR_PA_TIME_FLAG       ||
995              tmp2.DANGLING_RECVR_PA_TIME_FLAG       ||
996              tmp2.DANGLING_EXP_PA_TIME_FLAG,
997              'Y', decode(tmp2.TXN_CURRENCY_CODE,
998                          l_g1_currency_code,
999                          tmp2.TXN_BILL_RAW_COST,
1000                          round(tmp2.POU_BILL_RAW_COST *
1001                                tmp2.PRJ_PA_RATE1 /
1002                                PRJ_PA_MAU1) * PRJ_PA_MAU1),
1003                   to_number(null))                  GP1_BILL_RAW_COST,
1004       decode(nvl(tmp2.PJI_PROJECT_RECORD_FLAG, 'N') ||
1005              tmp2.DANGLING_RECVR_GL_RATE_FLAG       ||
1006              tmp2.DANGLING_RECVR_GL_RATE2_FLAG      ||
1007              tmp2.DANGLING_RECVR_PA_RATE_FLAG       ||
1008              tmp2.DANGLING_RECVR_PA_RATE2_FLAG      ||
1009              tmp2.DANGLING_PRVDR_EN_TIME_FLAG       ||
1010              tmp2.DANGLING_RECVR_EN_TIME_FLAG       ||
1011              tmp2.DANGLING_EXP_EN_TIME_FLAG         ||
1012              tmp2.DANGLING_PRVDR_GL_TIME_FLAG       ||
1013              tmp2.DANGLING_RECVR_GL_TIME_FLAG       ||
1014              tmp2.DANGLING_EXP_GL_TIME_FLAG         ||
1015              tmp2.DANGLING_PRVDR_PA_TIME_FLAG       ||
1016              tmp2.DANGLING_RECVR_PA_TIME_FLAG       ||
1017              tmp2.DANGLING_EXP_PA_TIME_FLAG,
1018              'Y', decode(tmp2.TXN_CURRENCY_CODE,
1019                          l_g1_currency_code,
1020                          tmp2.TXN_BILL_BRDN_COST,
1021                          round(tmp2.POU_BILL_BRDN_COST *
1022                                tmp2.PRJ_PA_RATE1 /
1023                                PRJ_PA_MAU1) * PRJ_PA_MAU1),
1024                   to_number(null))                  GP1_BILL_BRDN_COST,
1025       decode(nvl(tmp2.PJI_PROJECT_RECORD_FLAG, 'N') ||
1026              tmp2.DANGLING_RECVR_GL_RATE_FLAG       ||
1027              tmp2.DANGLING_RECVR_GL_RATE2_FLAG      ||
1028              tmp2.DANGLING_RECVR_PA_RATE_FLAG       ||
1029              tmp2.DANGLING_RECVR_PA_RATE2_FLAG      ||
1030              tmp2.DANGLING_PRVDR_EN_TIME_FLAG       ||
1031              tmp2.DANGLING_RECVR_EN_TIME_FLAG       ||
1032              tmp2.DANGLING_EXP_EN_TIME_FLAG         ||
1033              tmp2.DANGLING_PRVDR_GL_TIME_FLAG       ||
1034              tmp2.DANGLING_RECVR_GL_TIME_FLAG       ||
1035              tmp2.DANGLING_EXP_GL_TIME_FLAG         ||
1036              tmp2.DANGLING_PRVDR_PA_TIME_FLAG       ||
1037              tmp2.DANGLING_RECVR_PA_TIME_FLAG       ||
1038              tmp2.DANGLING_EXP_PA_TIME_FLAG,
1039              'Y', -- decode(tmp2.TXN_CURRENCY_CODE,
1040                   --        l_g1_currency_code,
1041                   --        tmp2.TXN_LABOR_RAW_COST,
1042                          round(tmp2.POU_LABOR_RAW_COST *
1043                                tmp2.PRJ_PA_RATE1 /
1044                                PRJ_PA_MAU1) * PRJ_PA_MAU1
1045                   -- )
1046                   ,
1047                   to_number(null))                  GP1_LABOR_RAW_COST,
1048       decode(nvl(tmp2.PJI_PROJECT_RECORD_FLAG, 'N') ||
1049              tmp2.DANGLING_RECVR_GL_RATE_FLAG       ||
1050              tmp2.DANGLING_RECVR_GL_RATE2_FLAG      ||
1051              tmp2.DANGLING_RECVR_PA_RATE_FLAG       ||
1052              tmp2.DANGLING_RECVR_PA_RATE2_FLAG      ||
1053              tmp2.DANGLING_PRVDR_EN_TIME_FLAG       ||
1054              tmp2.DANGLING_RECVR_EN_TIME_FLAG       ||
1055              tmp2.DANGLING_EXP_EN_TIME_FLAG         ||
1056              tmp2.DANGLING_PRVDR_GL_TIME_FLAG       ||
1057              tmp2.DANGLING_RECVR_GL_TIME_FLAG       ||
1058              tmp2.DANGLING_EXP_GL_TIME_FLAG         ||
1059              tmp2.DANGLING_PRVDR_PA_TIME_FLAG       ||
1060              tmp2.DANGLING_RECVR_PA_TIME_FLAG       ||
1061              tmp2.DANGLING_EXP_PA_TIME_FLAG,
1062              'Y', -- decode(tmp2.TXN_CURRENCY_CODE,
1063                   --        l_g1_currency_code,
1064                   --        tmp2.TXN_LABOR_BRDN_COST,
1065                          round(tmp2.POU_LABOR_BRDN_COST *
1066                                tmp2.PRJ_PA_RATE1 /
1067                                PRJ_PA_MAU1) * PRJ_PA_MAU1
1068                   -- )
1069                   ,
1070                   to_number(null))                  GP1_LABOR_BRDN_COST,
1071       decode(nvl(tmp2.PJI_PROJECT_RECORD_FLAG, 'N') ||
1072              tmp2.DANGLING_RECVR_GL_RATE_FLAG       ||
1073              tmp2.DANGLING_RECVR_GL_RATE2_FLAG      ||
1074              tmp2.DANGLING_RECVR_PA_RATE_FLAG       ||
1075              tmp2.DANGLING_RECVR_PA_RATE2_FLAG      ||
1076              tmp2.DANGLING_PRVDR_EN_TIME_FLAG       ||
1077              tmp2.DANGLING_RECVR_EN_TIME_FLAG       ||
1078              tmp2.DANGLING_EXP_EN_TIME_FLAG         ||
1079              tmp2.DANGLING_PRVDR_GL_TIME_FLAG       ||
1080              tmp2.DANGLING_RECVR_GL_TIME_FLAG       ||
1081              tmp2.DANGLING_EXP_GL_TIME_FLAG         ||
1082              tmp2.DANGLING_PRVDR_PA_TIME_FLAG       ||
1083              tmp2.DANGLING_RECVR_PA_TIME_FLAG       ||
1084              tmp2.DANGLING_EXP_PA_TIME_FLAG,
1085              'Y', -- decode(tmp2.TXN_CURRENCY_CODE,
1086                   --        l_g1_currency_code,
1087                   --        tmp2.TXN_BILL_LABOR_RAW_COST,
1088                          round(tmp2.POU_BILL_LABOR_RAW_COST *
1089                                tmp2.PRJ_PA_RATE1 /
1090                                PRJ_PA_MAU1) * PRJ_PA_MAU1
1091                   -- )
1092                   ,
1093                   to_number(null))                  GP1_BILL_LABOR_RAW_COST,
1094       decode(nvl(tmp2.PJI_PROJECT_RECORD_FLAG, 'N') ||
1095              tmp2.DANGLING_RECVR_GL_RATE_FLAG       ||
1096              tmp2.DANGLING_RECVR_GL_RATE2_FLAG      ||
1097              tmp2.DANGLING_RECVR_PA_RATE_FLAG       ||
1098              tmp2.DANGLING_RECVR_PA_RATE2_FLAG      ||
1099              tmp2.DANGLING_PRVDR_EN_TIME_FLAG       ||
1100              tmp2.DANGLING_RECVR_EN_TIME_FLAG       ||
1101              tmp2.DANGLING_EXP_EN_TIME_FLAG         ||
1102              tmp2.DANGLING_PRVDR_GL_TIME_FLAG       ||
1103              tmp2.DANGLING_RECVR_GL_TIME_FLAG       ||
1104              tmp2.DANGLING_EXP_GL_TIME_FLAG         ||
1105              tmp2.DANGLING_PRVDR_PA_TIME_FLAG       ||
1106              tmp2.DANGLING_RECVR_PA_TIME_FLAG       ||
1107              tmp2.DANGLING_EXP_PA_TIME_FLAG,
1108              'Y', -- decode(tmp2.TXN_CURRENCY_CODE,
1109                   --        l_g1_currency_code,
1110                   --        tmp2.TXN_BILL_LABOR_BRDN_COST,
1111                          round(tmp2.POU_BILL_LABOR_BRDN_COST *
1112                                tmp2.PRJ_PA_RATE1 /
1113                                PRJ_PA_MAU1) * PRJ_PA_MAU1
1114                   -- )
1115                   ,
1116                   to_number(null))                  GP1_BILL_LABOR_BRDN_COST,
1117       decode(nvl(tmp2.PJI_PROJECT_RECORD_FLAG, 'N') ||
1118              tmp2.DANGLING_RECVR_GL_RATE_FLAG       ||
1119              tmp2.DANGLING_RECVR_GL_RATE2_FLAG      ||
1120              tmp2.DANGLING_RECVR_PA_RATE_FLAG       ||
1121              tmp2.DANGLING_RECVR_PA_RATE2_FLAG      ||
1122              tmp2.DANGLING_PRVDR_EN_TIME_FLAG       ||
1123              tmp2.DANGLING_RECVR_EN_TIME_FLAG       ||
1124              tmp2.DANGLING_EXP_EN_TIME_FLAG         ||
1125              tmp2.DANGLING_PRVDR_GL_TIME_FLAG       ||
1126              tmp2.DANGLING_RECVR_GL_TIME_FLAG       ||
1127              tmp2.DANGLING_EXP_GL_TIME_FLAG         ||
1128              tmp2.DANGLING_PRVDR_PA_TIME_FLAG       ||
1129              tmp2.DANGLING_RECVR_PA_TIME_FLAG       ||
1130              tmp2.DANGLING_EXP_PA_TIME_FLAG,
1131              'Y', decode(tmp2.TXN_CURRENCY_CODE,
1132                          l_g2_currency_code,
1133                          tmp2.TXN_REVENUE,
1134                          round(tmp2.POU_REVENUE *
1135                                tmp2.PRJ_GL_RATE2 /
1136                                PRJ_GL_MAU2) * PRJ_GL_MAU2),
1137                   to_number(null))                  GG2_REVENUE,
1138       decode(nvl(tmp2.PJI_PROJECT_RECORD_FLAG, 'N') ||
1139              tmp2.DANGLING_RECVR_GL_RATE_FLAG       ||
1140              tmp2.DANGLING_RECVR_GL_RATE2_FLAG      ||
1141              tmp2.DANGLING_RECVR_PA_RATE_FLAG       ||
1142              tmp2.DANGLING_RECVR_PA_RATE2_FLAG      ||
1143              tmp2.DANGLING_PRVDR_EN_TIME_FLAG       ||
1144              tmp2.DANGLING_RECVR_EN_TIME_FLAG       ||
1145              tmp2.DANGLING_EXP_EN_TIME_FLAG         ||
1146              tmp2.DANGLING_PRVDR_GL_TIME_FLAG       ||
1147              tmp2.DANGLING_RECVR_GL_TIME_FLAG       ||
1148              tmp2.DANGLING_EXP_GL_TIME_FLAG         ||
1149              tmp2.DANGLING_PRVDR_PA_TIME_FLAG       ||
1150              tmp2.DANGLING_RECVR_PA_TIME_FLAG       ||
1151              tmp2.DANGLING_EXP_PA_TIME_FLAG,
1152              'Y', -- decode(tmp2.TXN_CURRENCY_CODE,
1153                   --        l_g2_currency_code,
1154                   --        tmp2.TXN_LABOR_REVENUE,
1155                          round(tmp2.POU_LABOR_REVENUE *
1156                                tmp2.PRJ_GL_RATE2 /
1157                                PRJ_GL_MAU2) * PRJ_GL_MAU2
1158                   -- )
1159                   ,
1160                   to_number(null))                  GG2_LABOR_REVENUE,
1161       decode(nvl(tmp2.PJI_PROJECT_RECORD_FLAG, 'N') ||
1162              tmp2.DANGLING_RECVR_GL_RATE_FLAG       ||
1163              tmp2.DANGLING_RECVR_GL_RATE2_FLAG      ||
1164              tmp2.DANGLING_RECVR_PA_RATE_FLAG       ||
1165              tmp2.DANGLING_RECVR_PA_RATE2_FLAG      ||
1166              tmp2.DANGLING_PRVDR_EN_TIME_FLAG       ||
1167              tmp2.DANGLING_RECVR_EN_TIME_FLAG       ||
1168              tmp2.DANGLING_EXP_EN_TIME_FLAG         ||
1169              tmp2.DANGLING_PRVDR_GL_TIME_FLAG       ||
1170              tmp2.DANGLING_RECVR_GL_TIME_FLAG       ||
1171              tmp2.DANGLING_EXP_GL_TIME_FLAG         ||
1172              tmp2.DANGLING_PRVDR_PA_TIME_FLAG       ||
1173              tmp2.DANGLING_RECVR_PA_TIME_FLAG       ||
1174              tmp2.DANGLING_EXP_PA_TIME_FLAG,
1175              'Y', -- decode(tmp2.TXN_CURRENCY_CODE,
1176                   --        l_g2_currency_code,
1177                   --        tmp2.TXN_REVENUE_WRITEOFF,
1178                          round(tmp2.POU_REVENUE_WRITEOFF *
1179                                tmp2.PRJ_GL_RATE2 /
1180                                PRJ_GL_MAU2) * PRJ_GL_MAU2
1181                   -- )
1182                   ,
1183                   to_number(null))                  GG2_REVENUE_WRITEOFF,
1184       decode(nvl(tmp2.PJI_PROJECT_RECORD_FLAG, 'N') ||
1185              tmp2.DANGLING_RECVR_GL_RATE_FLAG       ||
1186              tmp2.DANGLING_RECVR_GL_RATE2_FLAG      ||
1187              tmp2.DANGLING_RECVR_PA_RATE_FLAG       ||
1188              tmp2.DANGLING_RECVR_PA_RATE2_FLAG      ||
1189              tmp2.DANGLING_PRVDR_EN_TIME_FLAG       ||
1190              tmp2.DANGLING_RECVR_EN_TIME_FLAG       ||
1191              tmp2.DANGLING_EXP_EN_TIME_FLAG         ||
1192              tmp2.DANGLING_PRVDR_GL_TIME_FLAG       ||
1193              tmp2.DANGLING_RECVR_GL_TIME_FLAG       ||
1194              tmp2.DANGLING_EXP_GL_TIME_FLAG         ||
1195              tmp2.DANGLING_PRVDR_PA_TIME_FLAG       ||
1196              tmp2.DANGLING_RECVR_PA_TIME_FLAG       ||
1197              tmp2.DANGLING_EXP_PA_TIME_FLAG,
1198              'Y', decode(tmp2.TXN_CURRENCY_CODE,
1199                          l_g2_currency_code,
1200                          tmp2.TXN_RAW_COST,
1201                          round(tmp2.POU_RAW_COST *
1202                                tmp2.PRJ_GL_RATE2 /
1203                                PRJ_GL_MAU2) * PRJ_GL_MAU2),
1204                   to_number(null))                  GG2_RAW_COST,
1205       decode(nvl(tmp2.PJI_PROJECT_RECORD_FLAG, 'N') ||
1206              tmp2.DANGLING_RECVR_GL_RATE_FLAG       ||
1207              tmp2.DANGLING_RECVR_GL_RATE2_FLAG      ||
1208              tmp2.DANGLING_RECVR_PA_RATE_FLAG       ||
1209              tmp2.DANGLING_RECVR_PA_RATE2_FLAG      ||
1210              tmp2.DANGLING_PRVDR_EN_TIME_FLAG       ||
1211              tmp2.DANGLING_RECVR_EN_TIME_FLAG       ||
1212              tmp2.DANGLING_EXP_EN_TIME_FLAG         ||
1213              tmp2.DANGLING_PRVDR_GL_TIME_FLAG       ||
1214              tmp2.DANGLING_RECVR_GL_TIME_FLAG       ||
1215              tmp2.DANGLING_EXP_GL_TIME_FLAG         ||
1216              tmp2.DANGLING_PRVDR_PA_TIME_FLAG       ||
1217              tmp2.DANGLING_RECVR_PA_TIME_FLAG       ||
1218              tmp2.DANGLING_EXP_PA_TIME_FLAG,
1219              'Y', decode(tmp2.TXN_CURRENCY_CODE,
1220                          l_g2_currency_code,
1221                          tmp2.TXN_BRDN_COST,
1222                          round(tmp2.POU_BRDN_COST *
1223                                tmp2.PRJ_GL_RATE2 /
1224                                PRJ_GL_MAU2) * PRJ_GL_MAU2),
1225                   to_number(null))                  GG2_BRDN_COST,
1226       decode(nvl(tmp2.PJI_PROJECT_RECORD_FLAG, 'N') ||
1227              tmp2.DANGLING_RECVR_GL_RATE_FLAG       ||
1228              tmp2.DANGLING_RECVR_GL_RATE2_FLAG      ||
1229              tmp2.DANGLING_RECVR_PA_RATE_FLAG       ||
1230              tmp2.DANGLING_RECVR_PA_RATE2_FLAG      ||
1231              tmp2.DANGLING_PRVDR_EN_TIME_FLAG       ||
1232              tmp2.DANGLING_RECVR_EN_TIME_FLAG       ||
1233              tmp2.DANGLING_EXP_EN_TIME_FLAG         ||
1234              tmp2.DANGLING_PRVDR_GL_TIME_FLAG       ||
1235              tmp2.DANGLING_RECVR_GL_TIME_FLAG       ||
1236              tmp2.DANGLING_EXP_GL_TIME_FLAG         ||
1237              tmp2.DANGLING_PRVDR_PA_TIME_FLAG       ||
1238              tmp2.DANGLING_RECVR_PA_TIME_FLAG       ||
1239              tmp2.DANGLING_EXP_PA_TIME_FLAG,
1240              'Y', decode(tmp2.TXN_CURRENCY_CODE,
1241                          l_g2_currency_code,
1242                          tmp2.TXN_BILL_RAW_COST,
1243                          round(tmp2.POU_BILL_RAW_COST *
1244                                tmp2.PRJ_GL_RATE2 /
1245                                PRJ_GL_MAU2) * PRJ_GL_MAU2),
1246                   to_number(null))                  GG2_BILL_RAW_COST,
1247       decode(nvl(tmp2.PJI_PROJECT_RECORD_FLAG, 'N') ||
1248              tmp2.DANGLING_RECVR_GL_RATE_FLAG       ||
1249              tmp2.DANGLING_RECVR_GL_RATE2_FLAG      ||
1250              tmp2.DANGLING_RECVR_PA_RATE_FLAG       ||
1251              tmp2.DANGLING_RECVR_PA_RATE2_FLAG      ||
1252              tmp2.DANGLING_PRVDR_EN_TIME_FLAG       ||
1253              tmp2.DANGLING_RECVR_EN_TIME_FLAG       ||
1254              tmp2.DANGLING_EXP_EN_TIME_FLAG         ||
1255              tmp2.DANGLING_PRVDR_GL_TIME_FLAG       ||
1256              tmp2.DANGLING_RECVR_GL_TIME_FLAG       ||
1257              tmp2.DANGLING_EXP_GL_TIME_FLAG         ||
1258              tmp2.DANGLING_PRVDR_PA_TIME_FLAG       ||
1259              tmp2.DANGLING_RECVR_PA_TIME_FLAG       ||
1260              tmp2.DANGLING_EXP_PA_TIME_FLAG,
1261              'Y', decode(tmp2.TXN_CURRENCY_CODE,
1262                          l_g2_currency_code,
1263                          tmp2.TXN_BILL_BRDN_COST,
1264                          round(tmp2.POU_BILL_BRDN_COST *
1265                                tmp2.PRJ_GL_RATE2 /
1266                                PRJ_GL_MAU2) * PRJ_GL_MAU2),
1267                   to_number(null))                  GG2_BILL_BRDN_COST,
1268       decode(nvl(tmp2.PJI_PROJECT_RECORD_FLAG, 'N') ||
1269              tmp2.DANGLING_RECVR_GL_RATE_FLAG       ||
1270              tmp2.DANGLING_RECVR_GL_RATE2_FLAG      ||
1271              tmp2.DANGLING_RECVR_PA_RATE_FLAG       ||
1272              tmp2.DANGLING_RECVR_PA_RATE2_FLAG      ||
1273              tmp2.DANGLING_PRVDR_EN_TIME_FLAG       ||
1274              tmp2.DANGLING_RECVR_EN_TIME_FLAG       ||
1275              tmp2.DANGLING_EXP_EN_TIME_FLAG         ||
1276              tmp2.DANGLING_PRVDR_GL_TIME_FLAG       ||
1277              tmp2.DANGLING_RECVR_GL_TIME_FLAG       ||
1278              tmp2.DANGLING_EXP_GL_TIME_FLAG         ||
1279              tmp2.DANGLING_PRVDR_PA_TIME_FLAG       ||
1280              tmp2.DANGLING_RECVR_PA_TIME_FLAG       ||
1281              tmp2.DANGLING_EXP_PA_TIME_FLAG,
1282              'Y', -- decode(tmp2.TXN_CURRENCY_CODE,
1283                   --        l_g2_currency_code,
1284                   --        tmp2.TXN_LABOR_RAW_COST,
1285                          round(tmp2.POU_LABOR_RAW_COST *
1286                                tmp2.PRJ_GL_RATE2 /
1287                                PRJ_GL_MAU2) * PRJ_GL_MAU2
1288                   -- )
1289                   ,
1290                   to_number(null))                  GG2_LABOR_RAW_COST,
1291       decode(nvl(tmp2.PJI_PROJECT_RECORD_FLAG, 'N') ||
1292              tmp2.DANGLING_RECVR_GL_RATE_FLAG       ||
1293              tmp2.DANGLING_RECVR_GL_RATE2_FLAG      ||
1294              tmp2.DANGLING_RECVR_PA_RATE_FLAG       ||
1295              tmp2.DANGLING_RECVR_PA_RATE2_FLAG      ||
1296              tmp2.DANGLING_PRVDR_EN_TIME_FLAG       ||
1297              tmp2.DANGLING_RECVR_EN_TIME_FLAG       ||
1298              tmp2.DANGLING_EXP_EN_TIME_FLAG         ||
1299              tmp2.DANGLING_PRVDR_GL_TIME_FLAG       ||
1300              tmp2.DANGLING_RECVR_GL_TIME_FLAG       ||
1301              tmp2.DANGLING_EXP_GL_TIME_FLAG         ||
1302              tmp2.DANGLING_PRVDR_PA_TIME_FLAG       ||
1303              tmp2.DANGLING_RECVR_PA_TIME_FLAG       ||
1304              tmp2.DANGLING_EXP_PA_TIME_FLAG,
1305              'Y', -- decode(tmp2.TXN_CURRENCY_CODE,
1306                   --        l_g2_currency_code,
1307                   --        tmp2.TXN_LABOR_BRDN_COST,
1308                          round(tmp2.POU_LABOR_BRDN_COST *
1309                                tmp2.PRJ_GL_RATE2 /
1310                                PRJ_GL_MAU2) * PRJ_GL_MAU2
1311                   -- )
1312                   ,
1313                   to_number(null))                  GG2_LABOR_BRDN_COST,
1314       decode(nvl(tmp2.PJI_PROJECT_RECORD_FLAG, 'N') ||
1315              tmp2.DANGLING_RECVR_GL_RATE_FLAG       ||
1316              tmp2.DANGLING_RECVR_GL_RATE2_FLAG      ||
1317              tmp2.DANGLING_RECVR_PA_RATE_FLAG       ||
1318              tmp2.DANGLING_RECVR_PA_RATE2_FLAG      ||
1319              tmp2.DANGLING_PRVDR_EN_TIME_FLAG       ||
1320              tmp2.DANGLING_RECVR_EN_TIME_FLAG       ||
1321              tmp2.DANGLING_EXP_EN_TIME_FLAG         ||
1322              tmp2.DANGLING_PRVDR_GL_TIME_FLAG       ||
1323              tmp2.DANGLING_RECVR_GL_TIME_FLAG       ||
1324              tmp2.DANGLING_EXP_GL_TIME_FLAG         ||
1325              tmp2.DANGLING_PRVDR_PA_TIME_FLAG       ||
1326              tmp2.DANGLING_RECVR_PA_TIME_FLAG       ||
1327              tmp2.DANGLING_EXP_PA_TIME_FLAG,
1328              'Y', -- decode(tmp2.TXN_CURRENCY_CODE,
1329                   --        l_g2_currency_code,
1330                   --        tmp2.TXN_BILL_LABOR_RAW_COST,
1331                          round(tmp2.POU_BILL_LABOR_RAW_COST *
1332                                tmp2.PRJ_GL_RATE2 /
1333                                PRJ_GL_MAU2) * PRJ_GL_MAU2
1334                   -- )
1335                   ,
1336                   to_number(null))                  GG2_BILL_LABOR_RAW_COST,
1337       decode(nvl(tmp2.PJI_PROJECT_RECORD_FLAG, 'N') ||
1338              tmp2.DANGLING_RECVR_GL_RATE_FLAG       ||
1339              tmp2.DANGLING_RECVR_GL_RATE2_FLAG      ||
1340              tmp2.DANGLING_RECVR_PA_RATE_FLAG       ||
1341              tmp2.DANGLING_RECVR_PA_RATE2_FLAG      ||
1342              tmp2.DANGLING_PRVDR_EN_TIME_FLAG       ||
1343              tmp2.DANGLING_RECVR_EN_TIME_FLAG       ||
1344              tmp2.DANGLING_EXP_EN_TIME_FLAG         ||
1345              tmp2.DANGLING_PRVDR_GL_TIME_FLAG       ||
1346              tmp2.DANGLING_RECVR_GL_TIME_FLAG       ||
1347              tmp2.DANGLING_EXP_GL_TIME_FLAG         ||
1348              tmp2.DANGLING_PRVDR_PA_TIME_FLAG       ||
1349              tmp2.DANGLING_RECVR_PA_TIME_FLAG       ||
1350              tmp2.DANGLING_EXP_PA_TIME_FLAG,
1351              'Y', -- decode(tmp2.TXN_CURRENCY_CODE,
1352                   --        l_g2_currency_code,
1353                   --        tmp2.TXN_BILL_LABOR_BRDN_COST,
1354                          round(tmp2.POU_BILL_LABOR_BRDN_COST *
1355                                tmp2.PRJ_GL_RATE2 /
1356                                PRJ_GL_MAU2) * PRJ_GL_MAU2
1357                   -- )
1358                   ,
1359                   to_number(null))                  GG2_BILL_LABOR_BRDN_COST,
1360       decode(nvl(tmp2.PJI_PROJECT_RECORD_FLAG, 'N') ||
1361              tmp2.DANGLING_RECVR_GL_RATE_FLAG       ||
1362              tmp2.DANGLING_RECVR_GL_RATE2_FLAG      ||
1363              tmp2.DANGLING_RECVR_PA_RATE_FLAG       ||
1364              tmp2.DANGLING_RECVR_PA_RATE2_FLAG      ||
1365              tmp2.DANGLING_PRVDR_EN_TIME_FLAG       ||
1366              tmp2.DANGLING_RECVR_EN_TIME_FLAG       ||
1367              tmp2.DANGLING_EXP_EN_TIME_FLAG         ||
1368              tmp2.DANGLING_PRVDR_GL_TIME_FLAG       ||
1369              tmp2.DANGLING_RECVR_GL_TIME_FLAG       ||
1370              tmp2.DANGLING_EXP_GL_TIME_FLAG         ||
1371              tmp2.DANGLING_PRVDR_PA_TIME_FLAG       ||
1372              tmp2.DANGLING_RECVR_PA_TIME_FLAG       ||
1373              tmp2.DANGLING_EXP_PA_TIME_FLAG,
1374              'Y', decode(tmp2.TXN_CURRENCY_CODE,
1375                          l_g2_currency_code,
1376                          tmp2.TXN_REVENUE,
1377                          round(tmp2.POU_REVENUE *
1378                                tmp2.PRJ_PA_RATE2 /
1379                                PRJ_PA_MAU2) * PRJ_PA_MAU2),
1380                   to_number(null))                  GP2_REVENUE,
1381       decode(nvl(tmp2.PJI_PROJECT_RECORD_FLAG, 'N') ||
1382              tmp2.DANGLING_RECVR_GL_RATE_FLAG       ||
1383              tmp2.DANGLING_RECVR_GL_RATE2_FLAG      ||
1384              tmp2.DANGLING_RECVR_PA_RATE_FLAG       ||
1385              tmp2.DANGLING_RECVR_PA_RATE2_FLAG      ||
1386              tmp2.DANGLING_PRVDR_EN_TIME_FLAG       ||
1387              tmp2.DANGLING_RECVR_EN_TIME_FLAG       ||
1388              tmp2.DANGLING_EXP_EN_TIME_FLAG         ||
1389              tmp2.DANGLING_PRVDR_GL_TIME_FLAG       ||
1390              tmp2.DANGLING_RECVR_GL_TIME_FLAG       ||
1391              tmp2.DANGLING_EXP_GL_TIME_FLAG         ||
1392              tmp2.DANGLING_PRVDR_PA_TIME_FLAG       ||
1393              tmp2.DANGLING_RECVR_PA_TIME_FLAG       ||
1394              tmp2.DANGLING_EXP_PA_TIME_FLAG,
1395              'Y', -- decode(tmp2.TXN_CURRENCY_CODE,
1396                   --        l_g2_currency_code,
1397                   --        tmp2.TXN_LABOR_REVENUE,
1398                          round(tmp2.POU_LABOR_REVENUE *
1399                                tmp2.PRJ_PA_RATE2 /
1400                                PRJ_PA_MAU2) * PRJ_PA_MAU2
1401                   -- )
1402                   ,
1403                   to_number(null))                  GP2_LABOR_REVENUE,
1404       decode(nvl(tmp2.PJI_PROJECT_RECORD_FLAG, 'N') ||
1405              tmp2.DANGLING_RECVR_GL_RATE_FLAG       ||
1406              tmp2.DANGLING_RECVR_GL_RATE2_FLAG      ||
1407              tmp2.DANGLING_RECVR_PA_RATE_FLAG       ||
1408              tmp2.DANGLING_RECVR_PA_RATE2_FLAG      ||
1409              tmp2.DANGLING_PRVDR_EN_TIME_FLAG       ||
1410              tmp2.DANGLING_RECVR_EN_TIME_FLAG       ||
1411              tmp2.DANGLING_EXP_EN_TIME_FLAG         ||
1412              tmp2.DANGLING_PRVDR_GL_TIME_FLAG       ||
1413              tmp2.DANGLING_RECVR_GL_TIME_FLAG       ||
1414              tmp2.DANGLING_EXP_GL_TIME_FLAG         ||
1415              tmp2.DANGLING_PRVDR_PA_TIME_FLAG       ||
1416              tmp2.DANGLING_RECVR_PA_TIME_FLAG       ||
1417              tmp2.DANGLING_EXP_PA_TIME_FLAG,
1418              'Y', -- decode(tmp2.TXN_CURRENCY_CODE,
1419                   --        l_g2_currency_code,
1420                   --        tmp2.TXN_REVENUE_WRITEOFF,
1421                          round(tmp2.POU_REVENUE_WRITEOFF *
1422                                tmp2.PRJ_PA_RATE2 /
1423                                PRJ_PA_MAU2) * PRJ_PA_MAU2
1424                   -- )
1425                   ,
1426                   to_number(null))                  GP2_REVENUE_WRITEOFF,
1427       decode(nvl(tmp2.PJI_PROJECT_RECORD_FLAG, 'N') ||
1428              tmp2.DANGLING_RECVR_GL_RATE_FLAG       ||
1429              tmp2.DANGLING_RECVR_GL_RATE2_FLAG      ||
1430              tmp2.DANGLING_RECVR_PA_RATE_FLAG       ||
1431              tmp2.DANGLING_RECVR_PA_RATE2_FLAG      ||
1432              tmp2.DANGLING_PRVDR_EN_TIME_FLAG       ||
1433              tmp2.DANGLING_RECVR_EN_TIME_FLAG       ||
1434              tmp2.DANGLING_EXP_EN_TIME_FLAG         ||
1435              tmp2.DANGLING_PRVDR_GL_TIME_FLAG       ||
1436              tmp2.DANGLING_RECVR_GL_TIME_FLAG       ||
1437              tmp2.DANGLING_EXP_GL_TIME_FLAG         ||
1438              tmp2.DANGLING_PRVDR_PA_TIME_FLAG       ||
1439              tmp2.DANGLING_RECVR_PA_TIME_FLAG       ||
1440              tmp2.DANGLING_EXP_PA_TIME_FLAG,
1441              'Y', decode(tmp2.TXN_CURRENCY_CODE,
1442                          l_g2_currency_code,
1443                          tmp2.TXN_RAW_COST,
1444                          round(tmp2.POU_RAW_COST *
1445                                tmp2.PRJ_PA_RATE2 /
1446                                PRJ_PA_MAU2) * PRJ_PA_MAU2),
1447                   to_number(null))                  GP2_RAW_COST,
1448       decode(nvl(tmp2.PJI_PROJECT_RECORD_FLAG, 'N') ||
1449              tmp2.DANGLING_RECVR_GL_RATE_FLAG       ||
1450              tmp2.DANGLING_RECVR_GL_RATE2_FLAG      ||
1451              tmp2.DANGLING_RECVR_PA_RATE_FLAG       ||
1452              tmp2.DANGLING_RECVR_PA_RATE2_FLAG      ||
1453              tmp2.DANGLING_PRVDR_EN_TIME_FLAG       ||
1454              tmp2.DANGLING_RECVR_EN_TIME_FLAG       ||
1455              tmp2.DANGLING_EXP_EN_TIME_FLAG         ||
1456              tmp2.DANGLING_PRVDR_GL_TIME_FLAG       ||
1457              tmp2.DANGLING_RECVR_GL_TIME_FLAG       ||
1458              tmp2.DANGLING_EXP_GL_TIME_FLAG         ||
1459              tmp2.DANGLING_PRVDR_PA_TIME_FLAG       ||
1460              tmp2.DANGLING_RECVR_PA_TIME_FLAG       ||
1461              tmp2.DANGLING_EXP_PA_TIME_FLAG,
1462              'Y', decode(tmp2.TXN_CURRENCY_CODE,
1463                          l_g2_currency_code,
1464                          tmp2.TXN_BRDN_COST,
1465                          round(tmp2.POU_BRDN_COST *
1466                                tmp2.PRJ_PA_RATE2 /
1467                                PRJ_PA_MAU2) * PRJ_PA_MAU2),
1468                   to_number(null))                  GP2_BRDN_COST,
1469       decode(nvl(tmp2.PJI_PROJECT_RECORD_FLAG, 'N') ||
1470              tmp2.DANGLING_RECVR_GL_RATE_FLAG       ||
1471              tmp2.DANGLING_RECVR_GL_RATE2_FLAG      ||
1472              tmp2.DANGLING_RECVR_PA_RATE_FLAG       ||
1473              tmp2.DANGLING_RECVR_PA_RATE2_FLAG      ||
1474              tmp2.DANGLING_PRVDR_EN_TIME_FLAG       ||
1475              tmp2.DANGLING_RECVR_EN_TIME_FLAG       ||
1476              tmp2.DANGLING_EXP_EN_TIME_FLAG         ||
1477              tmp2.DANGLING_PRVDR_GL_TIME_FLAG       ||
1478              tmp2.DANGLING_RECVR_GL_TIME_FLAG       ||
1479              tmp2.DANGLING_EXP_GL_TIME_FLAG         ||
1480              tmp2.DANGLING_PRVDR_PA_TIME_FLAG       ||
1481              tmp2.DANGLING_RECVR_PA_TIME_FLAG       ||
1482              tmp2.DANGLING_EXP_PA_TIME_FLAG,
1483              'Y', decode(tmp2.TXN_CURRENCY_CODE,
1484                          l_g2_currency_code,
1485                          tmp2.TXN_BILL_RAW_COST,
1486                          round(tmp2.POU_BILL_RAW_COST *
1487                                tmp2.PRJ_PA_RATE2 /
1488                                PRJ_PA_MAU2) * PRJ_PA_MAU2),
1489                   to_number(null))                  GP2_BILL_RAW_COST,
1490       decode(nvl(tmp2.PJI_PROJECT_RECORD_FLAG, 'N') ||
1491              tmp2.DANGLING_RECVR_GL_RATE_FLAG       ||
1492              tmp2.DANGLING_RECVR_GL_RATE2_FLAG      ||
1493              tmp2.DANGLING_RECVR_PA_RATE_FLAG       ||
1494              tmp2.DANGLING_RECVR_PA_RATE2_FLAG      ||
1495              tmp2.DANGLING_PRVDR_EN_TIME_FLAG       ||
1496              tmp2.DANGLING_RECVR_EN_TIME_FLAG       ||
1497              tmp2.DANGLING_EXP_EN_TIME_FLAG         ||
1498              tmp2.DANGLING_PRVDR_GL_TIME_FLAG       ||
1499              tmp2.DANGLING_RECVR_GL_TIME_FLAG       ||
1500              tmp2.DANGLING_EXP_GL_TIME_FLAG         ||
1501              tmp2.DANGLING_PRVDR_PA_TIME_FLAG       ||
1502              tmp2.DANGLING_RECVR_PA_TIME_FLAG       ||
1503              tmp2.DANGLING_EXP_PA_TIME_FLAG,
1504              'Y', decode(tmp2.TXN_CURRENCY_CODE,
1505                          l_g2_currency_code,
1506                          tmp2.TXN_BILL_BRDN_COST,
1507                          round(tmp2.POU_BILL_BRDN_COST *
1508                                tmp2.PRJ_PA_RATE2 /
1509                                PRJ_PA_MAU2) * PRJ_PA_MAU2),
1510                   to_number(null))                  GP2_BILL_BRDN_COST,
1511       decode(nvl(tmp2.PJI_PROJECT_RECORD_FLAG, 'N') ||
1512              tmp2.DANGLING_RECVR_GL_RATE_FLAG       ||
1513              tmp2.DANGLING_RECVR_GL_RATE2_FLAG      ||
1514              tmp2.DANGLING_RECVR_PA_RATE_FLAG       ||
1515              tmp2.DANGLING_RECVR_PA_RATE2_FLAG      ||
1516              tmp2.DANGLING_PRVDR_EN_TIME_FLAG       ||
1517              tmp2.DANGLING_RECVR_EN_TIME_FLAG       ||
1518              tmp2.DANGLING_EXP_EN_TIME_FLAG         ||
1519              tmp2.DANGLING_PRVDR_GL_TIME_FLAG       ||
1520              tmp2.DANGLING_RECVR_GL_TIME_FLAG       ||
1521              tmp2.DANGLING_EXP_GL_TIME_FLAG         ||
1522              tmp2.DANGLING_PRVDR_PA_TIME_FLAG       ||
1523              tmp2.DANGLING_RECVR_PA_TIME_FLAG       ||
1524              tmp2.DANGLING_EXP_PA_TIME_FLAG,
1525              'Y', -- decode(tmp2.TXN_CURRENCY_CODE,
1526                   --        l_g2_currency_code,
1527                   --        tmp2.TXN_LABOR_RAW_COST,
1528                          round(tmp2.POU_LABOR_RAW_COST *
1529                                tmp2.PRJ_PA_RATE2 /
1530                                PRJ_PA_MAU2) * PRJ_PA_MAU2
1531                   -- )
1532                   ,
1533                   to_number(null))                  GP2_LABOR_RAW_COST,
1534       decode(nvl(tmp2.PJI_PROJECT_RECORD_FLAG, 'N') ||
1535              tmp2.DANGLING_RECVR_GL_RATE_FLAG       ||
1536              tmp2.DANGLING_RECVR_GL_RATE2_FLAG      ||
1537              tmp2.DANGLING_RECVR_PA_RATE_FLAG       ||
1538              tmp2.DANGLING_RECVR_PA_RATE2_FLAG      ||
1539              tmp2.DANGLING_PRVDR_EN_TIME_FLAG       ||
1540              tmp2.DANGLING_RECVR_EN_TIME_FLAG       ||
1541              tmp2.DANGLING_EXP_EN_TIME_FLAG         ||
1542              tmp2.DANGLING_PRVDR_GL_TIME_FLAG       ||
1543              tmp2.DANGLING_RECVR_GL_TIME_FLAG       ||
1544              tmp2.DANGLING_EXP_GL_TIME_FLAG         ||
1545              tmp2.DANGLING_PRVDR_PA_TIME_FLAG       ||
1546              tmp2.DANGLING_RECVR_PA_TIME_FLAG       ||
1547              tmp2.DANGLING_EXP_PA_TIME_FLAG,
1548              'Y', -- decode(tmp2.TXN_CURRENCY_CODE,
1549                   --        l_g2_currency_code,
1550                   --        tmp2.TXN_LABOR_BRDN_COST,
1551                          round(tmp2.POU_LABOR_BRDN_COST *
1552                                tmp2.PRJ_PA_RATE2 /
1553                                PRJ_PA_MAU2) * PRJ_PA_MAU2
1554                   -- )
1555                   ,
1556                   to_number(null))                  GP2_LABOR_BRDN_COST,
1557       decode(nvl(tmp2.PJI_PROJECT_RECORD_FLAG, 'N') ||
1558              tmp2.DANGLING_RECVR_GL_RATE_FLAG       ||
1559              tmp2.DANGLING_RECVR_GL_RATE2_FLAG      ||
1560              tmp2.DANGLING_RECVR_PA_RATE_FLAG       ||
1561              tmp2.DANGLING_RECVR_PA_RATE2_FLAG      ||
1562              tmp2.DANGLING_PRVDR_EN_TIME_FLAG       ||
1563              tmp2.DANGLING_RECVR_EN_TIME_FLAG       ||
1564              tmp2.DANGLING_EXP_EN_TIME_FLAG         ||
1565              tmp2.DANGLING_PRVDR_GL_TIME_FLAG       ||
1566              tmp2.DANGLING_RECVR_GL_TIME_FLAG       ||
1567              tmp2.DANGLING_EXP_GL_TIME_FLAG         ||
1568              tmp2.DANGLING_PRVDR_PA_TIME_FLAG       ||
1569              tmp2.DANGLING_RECVR_PA_TIME_FLAG       ||
1570              tmp2.DANGLING_EXP_PA_TIME_FLAG,
1571              'Y', -- decode(tmp2.TXN_CURRENCY_CODE,
1572                   --        l_g2_currency_code,
1573                   --        tmp2.TXN_BILL_LABOR_RAW_COST,
1574                          round(tmp2.POU_BILL_LABOR_RAW_COST *
1575                                tmp2.PRJ_PA_RATE2 /
1576                                PRJ_PA_MAU2) * PRJ_PA_MAU2
1577                   -- )
1578                   ,
1579                   to_number(null))                  GP2_BILL_LABOR_RAW_COST,
1580       decode(nvl(tmp2.PJI_PROJECT_RECORD_FLAG, 'N') ||
1581              tmp2.DANGLING_RECVR_GL_RATE_FLAG       ||
1582              tmp2.DANGLING_RECVR_GL_RATE2_FLAG      ||
1583              tmp2.DANGLING_RECVR_PA_RATE_FLAG       ||
1584              tmp2.DANGLING_RECVR_PA_RATE2_FLAG      ||
1585              tmp2.DANGLING_PRVDR_EN_TIME_FLAG       ||
1586              tmp2.DANGLING_RECVR_EN_TIME_FLAG       ||
1587              tmp2.DANGLING_EXP_EN_TIME_FLAG         ||
1588              tmp2.DANGLING_PRVDR_GL_TIME_FLAG       ||
1589              tmp2.DANGLING_RECVR_GL_TIME_FLAG       ||
1590              tmp2.DANGLING_EXP_GL_TIME_FLAG         ||
1591              tmp2.DANGLING_PRVDR_PA_TIME_FLAG       ||
1592              tmp2.DANGLING_RECVR_PA_TIME_FLAG       ||
1593              tmp2.DANGLING_EXP_PA_TIME_FLAG,
1594              'Y', -- decode(tmp2.TXN_CURRENCY_CODE,
1595                   --        l_g2_currency_code,
1596                   --        tmp2.TXN_BILL_LABOR_BRDN_COST,
1597                          round(tmp2.POU_BILL_LABOR_BRDN_COST *
1598                                tmp2.PRJ_PA_RATE2 /
1599                                PRJ_PA_MAU2) * PRJ_PA_MAU2
1600                   -- )
1601                   ,
1602                   to_number(null))                  GP2_BILL_LABOR_BRDN_COST,
1603       tmp2.TOTAL_HRS_A,
1604       tmp2.BILL_HRS_A
1605     from
1606     (
1607     select /*+ ordered
1608                full(tmp2)      use_hash(tmp2)      parallel(tmp2)
1609                full(map)       use_hash(map)       parallel(map)
1610                full(prj_info)  use_hash(prj_info)
1611                full(res_info)  use_hash(res_info)
1612                full(prj_gl_rt) use_hash(prj_gl_rt)
1613                full(prj_pa_rt) use_hash(prj_pa_rt)
1614             */
1615       decode(tmp2.PJI_PROJECT_RECORD_FLAG,
1616              'Y', decode(prj_gl_rt.RATE,
1617                          -3, 'E', -- EUR rate for 01-JAN-1999 is missing
1618                          decode(sign(prj_gl_rt.RATE),
1619                                 -1, 'Y', null)),
1620              null)                             DANGLING_RECVR_GL_RATE_FLAG,
1621       decode(tmp2.PJI_PROJECT_RECORD_FLAG || l_g2_currency_flag,
1622              'YY', decode(prj_gl_rt.RATE2,
1623                           -3, 'E', -- EUR rate for 01-JAN-1999 is missing
1624                           decode(sign(prj_gl_rt.RATE2),
1625                                  -1, 'Y', null)),
1626              null)                             DANGLING_RECVR_GL_RATE2_FLAG,
1627       decode(tmp2.PJI_PROJECT_RECORD_FLAG,
1628              'Y', decode(prj_pa_rt.RATE,
1629                          -3, 'E', -- EUR rate for 01-JAN-1999 is missing
1630                          decode(sign(prj_pa_rt.RATE),
1631                                 -1, 'Y', null)),
1632              null)                             DANGLING_RECVR_PA_RATE_FLAG,
1633       decode(tmp2.PJI_PROJECT_RECORD_FLAG || l_g2_currency_flag,
1634              'YY', decode(prj_pa_rt.RATE2,
1635                           -3, 'E', -- EUR rate for 01-JAN-1999 is missing
1636                           decode(sign(prj_pa_rt.RATE2),
1637                                  -1, 'Y', null)),
1638              null)                             DANGLING_RECVR_PA_RATE2_FLAG,
1639       --case when tmp2.PJI_RESOURCE_RECORD_FLAG = 'Y' and
1640       --          (tmp2.PRVDR_GL_TIME_ID < res_info.EN_CALENDAR_MIN_DATE or
1641       --           tmp2.PRVDR_GL_TIME_ID > res_info.EN_CALENDAR_MAX_DATE)
1642       --     then 'Y'
1643       --     else null
1644       --     end                                 DANGLING_PRVDR_EN_TIME_FLAG,
1645       null                                     DANGLING_PRVDR_EN_TIME_FLAG,
1646       decode(tmp2.PJI_PROJECT_RECORD_FLAG,
1647              'Y', decode(sign(prj_info.EN_CALENDAR_MIN_DATE -
1648                               tmp2.RECVR_GL_TIME_ID) +
1649                          sign(tmp2.RECVR_GL_TIME_ID -
1650                               prj_info.EN_CALENDAR_MAX_DATE),
1651                          0, 'Y', null), null)  DANGLING_RECVR_EN_TIME_FLAG,
1652       decode(tmp2.PJI_RESOURCE_RECORD_FLAG,
1653              'Y', decode(sign(res_info.EN_CALENDAR_MIN_DATE -
1654                               tmp2.EXPENDITURE_ITEM_TIME_ID) +
1655                          sign(tmp2.EXPENDITURE_ITEM_TIME_ID -
1656                               res_info.EN_CALENDAR_MAX_DATE),
1657                          0, 'Y', null), null)  DANGLING_EXP_EN_TIME_FLAG,
1658       --case when tmp2.PJI_RESOURCE_RECORD_FLAG = 'Y' and
1659       --          (tmp2.PRVDR_GL_TIME_ID < res_info.GL_CALENDAR_MIN_DATE or
1660       --           tmp2.PRVDR_GL_TIME_ID > res_info.GL_CALENDAR_MAX_DATE)
1661       --     then 'Y'
1662       --     else null
1663       --     end                                 DANGLING_PRVDR_GL_TIME_FLAG,
1664       null                                     DANGLING_PRVDR_GL_TIME_FLAG,
1665       decode(tmp2.PJI_PROJECT_RECORD_FLAG,
1666              'Y', decode(sign(prj_info.GL_CALENDAR_MIN_DATE -
1667                               tmp2.RECVR_GL_TIME_ID) +
1668                          sign(tmp2.RECVR_GL_TIME_ID -
1669                               prj_info.GL_CALENDAR_MAX_DATE),
1670                          0, 'Y', null), null)  DANGLING_RECVR_GL_TIME_FLAG,
1671       decode(tmp2.PJI_RESOURCE_RECORD_FLAG,
1672              'Y', decode(sign(res_info.GL_CALENDAR_MIN_DATE -
1673                               tmp2.EXPENDITURE_ITEM_TIME_ID) +
1674                          sign(tmp2.EXPENDITURE_ITEM_TIME_ID -
1675                               res_info.GL_CALENDAR_MAX_DATE),
1676                          0, 'Y', null), null)  DANGLING_EXP_GL_TIME_FLAG,
1677       --case when tmp2.PJI_RESOURCE_RECORD_FLAG = 'Y' and
1678       --          (tmp2.PRVDR_PA_TIME_ID < res_info.PA_CALENDAR_MIN_DATE or
1679       --           tmp2.PRVDR_PA_TIME_ID > res_info.PA_CALENDAR_MAX_DATE)
1680       --     then 'Y'
1681       --     else null
1682       --     end                                 DANGLING_PRVDR_PA_TIME_FLAG,
1683       null                                     DANGLING_PRVDR_PA_TIME_FLAG,
1684       decode(tmp2.PJI_PROJECT_RECORD_FLAG,
1685              'Y', decode(sign(prj_info.PA_CALENDAR_MIN_DATE -
1686                               tmp2.RECVR_PA_TIME_ID) +
1687                          sign(tmp2.RECVR_PA_TIME_ID -
1688                               prj_info.PA_CALENDAR_MAX_DATE),
1689                          0, 'Y', null), null)  DANGLING_RECVR_PA_TIME_FLAG,
1690       decode(tmp2.PJI_RESOURCE_RECORD_FLAG,
1691              'Y', decode(sign(res_info.PA_CALENDAR_MIN_DATE -
1692                               tmp2.EXPENDITURE_ITEM_TIME_ID) +
1693                          sign(tmp2.EXPENDITURE_ITEM_TIME_ID -
1694                               res_info.PA_CALENDAR_MAX_DATE),
1695                          0, 'Y', null), null)  DANGLING_EXP_PA_TIME_FLAG,
1696       tmp2.ROWID                               ROW_ID,
1697       tmp2.PJI_PROJECT_RECORD_FLAG,
1698       tmp2.PJI_RESOURCE_RECORD_FLAG,
1699       tmp2.RECORD_TYPE,
1700       tmp2.CMT_RECORD_TYPE,
1701       tmp2.PROJECT_ID,
1702       tmp2.PROJECT_ORG_ID,
1703       tmp2.PROJECT_ORGANIZATION_ID,
1704       tmp2.PROJECT_TYPE_CLASS,
1705       tmp2.PERSON_ID,
1706       tmp2.EXPENDITURE_ORG_ID,
1707       tmp2.EXPENDITURE_ORGANIZATION_ID,
1708       tmp2.EXP_EVT_TYPE_ID,
1709       tmp2.WORK_TYPE_ID,
1710       tmp2.JOB_ID,
1711       tmp2.TASK_ID,
1712       tmp2.VENDOR_ID,
1713       tmp2.EXPENDITURE_TYPE,
1714       tmp2.EVENT_TYPE,
1715       tmp2.EVENT_TYPE_CLASSIFICATION,
1716       tmp2.EXPENDITURE_CATEGORY,
1717       tmp2.REVENUE_CATEGORY,
1718       tmp2.NON_LABOR_RESOURCE,
1719       tmp2.BOM_LABOR_RESOURCE_ID,
1720       tmp2.BOM_EQUIPMENT_RESOURCE_ID,
1721       tmp2.INVENTORY_ITEM_ID,
1722       tmp2.PO_LINE_ID,
1723       tmp2.ASSIGNMENT_ID,
1724       tmp2.SYSTEM_LINKAGE_FUNCTION,
1725       tmp2.RESOURCE_CLASS_CODE,
1726       tmp2.RECVR_GL_TIME_ID,
1727       tmp2.GL_PERIOD_NAME,
1728       tmp2.PRVDR_GL_TIME_ID,
1729       tmp2.RECVR_PA_TIME_ID,
1730       tmp2.PA_PERIOD_NAME,
1731       tmp2.PRVDR_PA_TIME_ID,
1732       tmp2.EXPENDITURE_ITEM_TIME_ID,
1733       prj_info.GL_CALENDAR_ID                  PJ_GL_CALENDAR_ID,
1734       prj_info.PA_CALENDAR_ID                  PJ_PA_CALENDAR_ID,
1735       res_info.GL_CALENDAR_ID                  RS_GL_CALENDAR_ID,
1736       res_info.PA_CALENDAR_ID                  RS_PA_CALENDAR_ID,
1737       prj_gl_rt.RATE                           PRJ_GL_RATE1,
1738       prj_gl_rt.RATE2                          PRJ_GL_RATE2,
1739       prj_pa_rt.RATE                           PRJ_PA_RATE1,
1740       prj_pa_rt.RATE2                          PRJ_PA_RATE2,
1741       prj_gl_rt.MAU                            PRJ_GL_MAU1,
1742       prj_gl_rt.MAU2                           PRJ_GL_MAU2,
1743       prj_pa_rt.MAU                            PRJ_PA_MAU1,
1744       prj_pa_rt.MAU2                           PRJ_PA_MAU2,
1745       tmp2.PRJ_REVENUE,
1746       tmp2.PRJ_LABOR_REVENUE,
1747       tmp2.PRJ_REVENUE_WRITEOFF,
1748       tmp2.PRJ_RAW_COST,
1749       tmp2.PRJ_BRDN_COST,
1750       tmp2.PRJ_BILL_RAW_COST,
1751       tmp2.PRJ_BILL_BRDN_COST,
1752       tmp2.PRJ_LABOR_RAW_COST,
1753       tmp2.PRJ_LABOR_BRDN_COST,
1754       tmp2.PRJ_BILL_LABOR_RAW_COST,
1755       tmp2.PRJ_BILL_LABOR_BRDN_COST,
1756       tmp2.POU_REVENUE,
1757       tmp2.POU_LABOR_REVENUE,
1758       tmp2.POU_REVENUE_WRITEOFF,
1759       tmp2.POU_RAW_COST,
1760       tmp2.POU_BRDN_COST,
1761       tmp2.POU_BILL_RAW_COST,
1762       tmp2.POU_BILL_BRDN_COST,
1763       tmp2.POU_LABOR_RAW_COST,
1764       tmp2.POU_LABOR_BRDN_COST,
1765       tmp2.POU_BILL_LABOR_RAW_COST,
1766       tmp2.POU_BILL_LABOR_BRDN_COST,
1767       tmp2.EOU_RAW_COST,
1768       tmp2.EOU_BRDN_COST,
1769       tmp2.EOU_BILL_RAW_COST,
1770       tmp2.EOU_BILL_BRDN_COST,
1771       tmp2.TXN_CURRENCY_CODE,
1772       tmp2.TXN_REVENUE,
1773       tmp2.TXN_RAW_COST,
1774       tmp2.TXN_BRDN_COST,
1775       tmp2.TXN_BILL_RAW_COST,
1776       tmp2.TXN_BILL_BRDN_COST,
1777       tmp2.LABOR_HRS,
1778       tmp2.BILL_LABOR_HRS,
1779       tmp2.TOTAL_HRS_A,
1780       tmp2.BILL_HRS_A
1781     from
1782       PJI_FM_DNGL_FIN       tmp2,
1783       PJI_FM_PROJ_BATCH_MAP map,
1784       PJI_ORG_EXTR_INFO     prj_info,
1785       PJI_ORG_EXTR_INFO     res_info,
1786       PJI_FM_AGGR_DLY_RATES prj_gl_rt,
1787       PJI_FM_AGGR_DLY_RATES prj_pa_rt
1788     where
1789       tmp2.WORKER_ID                      = 0                          and
1790       tmp2.RECORD_TYPE                    = 'A'                        and
1791       map.WORKER_ID                       = p_worker_id                and
1792       map.PROJECT_ID                      = tmp2.PROJECT_ID            and
1793       tmp2.PROJECT_ORG_ID                 = prj_info.ORG_ID            and
1794       tmp2.EXPENDITURE_ORG_ID             = res_info.ORG_ID            and
1795       prj_gl_rt.WORKER_ID                 = -1                         and
1796       tmp2.RECVR_GL_TIME_ID               = prj_gl_rt.TIME_ID          and
1797       prj_info.PF_CURRENCY_CODE           = prj_gl_rt.PF_CURRENCY_CODE and
1798       prj_pa_rt.WORKER_ID                 = -1                         and
1799       tmp2.RECVR_PA_TIME_ID               = prj_pa_rt.TIME_ID          and
1800       prj_info.PF_CURRENCY_CODE           = prj_pa_rt.PF_CURRENCY_CODE
1801     ) tmp2;
1802 
1803     PJI_PROCESS_UTIL.REGISTER_STEP_COMPLETION(l_process, 'PJI_FM_SUM_EXTR.DANGLING_FIN_ROWS(p_worker_id);');
1804 
1805     commit;
1806 
1807   end DANGLING_FIN_ROWS;
1808 
1809 
1810   -- -----------------------------------------------------
1811   -- procedure DANGLING_ACT_ROWS
1812   -- -----------------------------------------------------
1813   procedure DANGLING_ACT_ROWS (p_worker_id in number) is
1814 
1815     l_process           varchar2(30);
1816 
1817     l_txn_currency_flag varchar2(1);
1818     l_g2_currency_flag  varchar2(1);
1819     l_g1_currency_code  varchar2(30);
1820     l_g2_currency_code  varchar2(30);
1821 
1822   begin
1823 
1824     l_process := PJI_FM_SUM_MAIN.g_process || p_worker_id;
1825 
1826     if (not PJI_PROCESS_UTIL.NEED_TO_RUN_STEP(l_process, 'PJI_FM_SUM_EXTR.DANGLING_ACT_ROWS(p_worker_id);')) then
1827       return;
1828     end if;
1829 
1830     select
1831       TXN_CURR_FLAG,
1832       GLOBAL_CURR2_FLAG
1833     into
1834       l_txn_currency_flag,
1835       l_g2_currency_flag
1836     from
1837       PJI_SYSTEM_SETTINGS;
1838 
1839     l_g1_currency_code := PJI_UTILS.GET_GLOBAL_PRIMARY_CURRENCY;
1840     l_g2_currency_code := PJI_UTILS.GET_GLOBAL_SECONDARY_CURRENCY;
1841 
1842     insert /*+ append parallel(act2_i) */ into PJI_FM_AGGR_ACT2 act2_i -- in DANGLING_ACT_ROWS
1843     (
1844       WORKER_ID,
1845       DANGLING_GL_RATE_FLAG,
1846       DANGLING_GL_RATE2_FLAG,
1847       DANGLING_PA_RATE2_FLAG,
1848       DANGLING_PA_RATE_FLAG,
1849       DANGLING_EN_TIME_FLAG,
1850       DANGLING_GL_TIME_FLAG,
1851       DANGLING_PA_TIME_FLAG,
1852       ROW_ID,
1853       PROJECT_ID,
1854       PROJECT_ORG_ID,
1855       PROJECT_ORGANIZATION_ID,
1856       GL_TIME_ID,
1857       GL_PERIOD_NAME,
1858       PA_TIME_ID,
1859       PA_PERIOD_NAME,
1860       GL_CALENDAR_ID,
1861       PA_CALENDAR_ID,
1862       TXN_CURRENCY_CODE,
1863       TXN_REVENUE,
1864       TXN_FUNDING,
1865       TXN_INITIAL_FUNDING_AMOUNT,
1866       TXN_ADDITIONAL_FUNDING_AMOUNT,
1867       TXN_CANCELLED_FUNDING_AMOUNT,
1868       TXN_FUNDING_ADJUSTMENT_AMOUNT,
1869       TXN_REVENUE_WRITEOFF,
1870       TXN_AR_INVOICE_AMOUNT,
1871       TXN_AR_CASH_APPLIED_AMOUNT,
1872       TXN_AR_INVOICE_WRITEOFF_AMOUNT,
1873       TXN_AR_CREDIT_MEMO_AMOUNT,
1874       TXN_UNBILLED_RECEIVABLES,
1875       TXN_UNEARNED_REVENUE,
1876       TXN_AR_UNAPPR_INVOICE_AMOUNT,
1877       TXN_AR_APPR_INVOICE_AMOUNT,
1878       TXN_AR_AMOUNT_DUE,
1879       TXN_AR_AMOUNT_OVERDUE,
1880       PRJ_REVENUE,
1881       PRJ_FUNDING,
1882       PRJ_INITIAL_FUNDING_AMOUNT,
1883       PRJ_ADDITIONAL_FUNDING_AMOUNT,
1884       PRJ_CANCELLED_FUNDING_AMOUNT,
1885       PRJ_FUNDING_ADJUSTMENT_AMOUNT,
1886       PRJ_REVENUE_WRITEOFF,
1887       PRJ_AR_INVOICE_AMOUNT,
1888       PRJ_AR_CASH_APPLIED_AMOUNT,
1889       PRJ_AR_INVOICE_WRITEOFF_AMOUNT,
1890       PRJ_AR_CREDIT_MEMO_AMOUNT,
1891       PRJ_UNBILLED_RECEIVABLES,
1892       PRJ_UNEARNED_REVENUE,
1893       PRJ_AR_UNAPPR_INVOICE_AMOUNT,
1894       PRJ_AR_APPR_INVOICE_AMOUNT,
1895       PRJ_AR_AMOUNT_DUE,
1896       PRJ_AR_AMOUNT_OVERDUE,
1897       POU_REVENUE,
1898       POU_FUNDING,
1899       POU_INITIAL_FUNDING_AMOUNT,
1900       POU_ADDITIONAL_FUNDING_AMOUNT,
1901       POU_CANCELLED_FUNDING_AMOUNT,
1902       POU_FUNDING_ADJUSTMENT_AMOUNT,
1903       POU_REVENUE_WRITEOFF,
1904       POU_AR_INVOICE_AMOUNT,
1905       POU_AR_CASH_APPLIED_AMOUNT,
1906       POU_AR_INVOICE_WRITEOFF_AMOUNT,
1907       POU_AR_CREDIT_MEMO_AMOUNT,
1908       POU_UNBILLED_RECEIVABLES,
1909       POU_UNEARNED_REVENUE,
1910       POU_AR_UNAPPR_INVOICE_AMOUNT,
1911       POU_AR_APPR_INVOICE_AMOUNT,
1912       POU_AR_AMOUNT_DUE,
1913       POU_AR_AMOUNT_OVERDUE,
1914       INITIAL_FUNDING_COUNT,
1915       ADDITIONAL_FUNDING_COUNT,
1916       CANCELLED_FUNDING_COUNT,
1917       FUNDING_ADJUSTMENT_COUNT,
1918       AR_INVOICE_COUNT,
1919       AR_CASH_APPLIED_COUNT,
1920       AR_INVOICE_WRITEOFF_COUNT,
1921       AR_CREDIT_MEMO_COUNT,
1922       AR_UNAPPR_INVOICE_COUNT,
1923       AR_APPR_INVOICE_COUNT,
1924       AR_COUNT_DUE,
1925       AR_COUNT_OVERDUE,
1926       GG_REVENUE,
1927       GG_FUNDING,
1928       GG_INITIAL_FUNDING_AMOUNT,
1929       GG_ADDITIONAL_FUNDING_AMOUNT,
1930       GG_CANCELLED_FUNDING_AMOUNT,
1931       GG_FUNDING_ADJUSTMENT_AMOUNT,
1932       GG_REVENUE_WRITEOFF,
1933       GG_AR_INVOICE_AMOUNT,
1934       GG_AR_CASH_APPLIED_AMOUNT,
1935       GG_AR_INVOICE_WRITEOFF_AMOUNT,
1936       GG_AR_CREDIT_MEMO_AMOUNT,
1937       GG_UNBILLED_RECEIVABLES,
1938       GG_UNEARNED_REVENUE,
1939       GG_AR_UNAPPR_INVOICE_AMOUNT,
1940       GG_AR_APPR_INVOICE_AMOUNT,
1941       GG_AR_AMOUNT_DUE,
1942       GG_AR_AMOUNT_OVERDUE,
1943       GP_REVENUE,
1944       GP_FUNDING,
1945       GP_INITIAL_FUNDING_AMOUNT,
1946       GP_ADDITIONAL_FUNDING_AMOUNT,
1947       GP_CANCELLED_FUNDING_AMOUNT,
1948       GP_FUNDING_ADJUSTMENT_AMOUNT,
1949       GP_REVENUE_WRITEOFF,
1950       GP_AR_INVOICE_AMOUNT,
1951       GP_AR_CASH_APPLIED_AMOUNT,
1952       GP_AR_INVOICE_WRITEOFF_AMOUNT,
1953       GP_AR_CREDIT_MEMO_AMOUNT,
1954       GP_UNBILLED_RECEIVABLES,
1955       GP_UNEARNED_REVENUE,
1956       GP_AR_UNAPPR_INVOICE_AMOUNT,
1957       GP_AR_APPR_INVOICE_AMOUNT,
1958       GP_AR_AMOUNT_DUE,
1959       GP_AR_AMOUNT_OVERDUE,
1960       GG2_REVENUE,
1961       GG2_FUNDING,
1962       GG2_INITIAL_FUNDING_AMOUNT,
1963       GG2_ADDITIONAL_FUNDING_AMOUNT,
1964       GG2_CANCELLED_FUNDING_AMOUNT,
1965       GG2_FUNDING_ADJUSTMENT_AMOUNT,
1966       GG2_REVENUE_WRITEOFF,
1967       GG2_AR_INVOICE_AMOUNT,
1968       GG2_AR_CASH_APPLIED_AMOUNT,
1969       GG2_AR_INVOICE_WRITEOFF_AMOUNT,
1970       GG2_AR_CREDIT_MEMO_AMOUNT,
1971       GG2_UNBILLED_RECEIVABLES,
1972       GG2_UNEARNED_REVENUE,
1973       GG2_AR_UNAPPR_INVOICE_AMOUNT,
1974       GG2_AR_APPR_INVOICE_AMOUNT,
1975       GG2_AR_AMOUNT_DUE,
1976       GG2_AR_AMOUNT_OVERDUE,
1977       GP2_REVENUE,
1978       GP2_FUNDING,
1979       GP2_INITIAL_FUNDING_AMOUNT,
1980       GP2_ADDITIONAL_FUNDING_AMOUNT,
1981       GP2_CANCELLED_FUNDING_AMOUNT,
1982       GP2_FUNDING_ADJUSTMENT_AMOUNT,
1983       GP2_REVENUE_WRITEOFF,
1984       GP2_AR_INVOICE_AMOUNT,
1985       GP2_AR_CASH_APPLIED_AMOUNT,
1986       GP2_AR_INVOICE_WRITEOFF_AMOUNT,
1987       GP2_AR_CREDIT_MEMO_AMOUNT,
1988       GP2_UNBILLED_RECEIVABLES,
1989       GP2_UNEARNED_REVENUE,
1990       GP2_AR_UNAPPR_INVOICE_AMOUNT,
1991       GP2_AR_APPR_INVOICE_AMOUNT,
1992       GP2_AR_AMOUNT_DUE,
1993       GP2_AR_AMOUNT_OVERDUE
1994     )
1995     select
1996       p_worker_id,
1997       tmp2.DANGLING_GL_RATE_FLAG,
1998       tmp2.DANGLING_GL_RATE2_FLAG,
1999       tmp2.DANGLING_PA_RATE_FLAG,
2000       tmp2.DANGLING_PA_RATE2_FLAG,
2001       tmp2.DANGLING_EN_TIME_FLAG,
2002       tmp2.DANGLING_GL_TIME_FLAG,
2003       tmp2.DANGLING_PA_TIME_FLAG,
2004       tmp2.ROW_ID,
2005       tmp2.PROJECT_ID,
2006       tmp2.PROJECT_ORG_ID,
2007       tmp2.PROJECT_ORGANIZATION_ID,
2008       tmp2.GL_TIME_ID,
2009       tmp2.GL_PERIOD_NAME,
2010       tmp2.PA_TIME_ID,
2011       tmp2.PA_PERIOD_NAME,
2012       tmp2.GL_CALENDAR_ID,
2013       tmp2.PA_CALENDAR_ID,
2014       tmp2.TXN_CURRENCY_CODE,
2015       tmp2.TXN_REVENUE,
2016       tmp2.TXN_FUNDING,
2017       tmp2.TXN_INITIAL_FUNDING_AMOUNT,
2018       tmp2.TXN_ADDITIONAL_FUNDING_AMOUNT,
2019       tmp2.TXN_CANCELLED_FUNDING_AMOUNT,
2020       tmp2.TXN_FUNDING_ADJUSTMENT_AMOUNT,
2021       tmp2.TXN_REVENUE_WRITEOFF,
2022       tmp2.TXN_AR_INVOICE_AMOUNT,
2023       tmp2.TXN_AR_CASH_APPLIED_AMOUNT,
2024       tmp2.TXN_AR_INVOICE_WRITEOFF_AMOUNT,
2025       tmp2.TXN_AR_CREDIT_MEMO_AMOUNT,
2026       tmp2.TXN_UNBILLED_RECEIVABLES,
2027       tmp2.TXN_UNEARNED_REVENUE,
2028       tmp2.TXN_AR_UNAPPR_INVOICE_AMOUNT,
2029       tmp2.TXN_AR_APPR_INVOICE_AMOUNT,
2030       tmp2.TXN_AR_AMOUNT_DUE,
2031       tmp2.TXN_AR_AMOUNT_OVERDUE,
2032       tmp2.PRJ_REVENUE,
2033       tmp2.PRJ_FUNDING,
2034       tmp2.PRJ_INITIAL_FUNDING_AMOUNT,
2035       tmp2.PRJ_ADDITIONAL_FUNDING_AMOUNT,
2036       tmp2.PRJ_CANCELLED_FUNDING_AMOUNT,
2037       tmp2.PRJ_FUNDING_ADJUSTMENT_AMOUNT,
2038       tmp2.PRJ_REVENUE_WRITEOFF,
2039       tmp2.PRJ_AR_INVOICE_AMOUNT,
2040       tmp2.PRJ_AR_CASH_APPLIED_AMOUNT,
2041       tmp2.PRJ_AR_INVOICE_WRITEOFF_AMOUNT,
2042       tmp2.PRJ_AR_CREDIT_MEMO_AMOUNT,
2043       tmp2.PRJ_UNBILLED_RECEIVABLES,
2044       tmp2.PRJ_UNEARNED_REVENUE,
2045       tmp2.PRJ_AR_UNAPPR_INVOICE_AMOUNT,
2046       tmp2.PRJ_AR_APPR_INVOICE_AMOUNT,
2047       tmp2.PRJ_AR_AMOUNT_DUE,
2048       tmp2.PRJ_AR_AMOUNT_OVERDUE,
2049       tmp2.POU_REVENUE,
2050       tmp2.POU_FUNDING,
2051       tmp2.POU_INITIAL_FUNDING_AMOUNT,
2052       tmp2.POU_ADDITIONAL_FUNDING_AMOUNT,
2053       tmp2.POU_CANCELLED_FUNDING_AMOUNT,
2054       tmp2.POU_FUNDING_ADJUSTMENT_AMOUNT,
2055       tmp2.POU_REVENUE_WRITEOFF,
2056       tmp2.POU_AR_INVOICE_AMOUNT,
2057       tmp2.POU_AR_CASH_APPLIED_AMOUNT,
2058       tmp2.POU_AR_INVOICE_WRITEOFF_AMOUNT,
2059       tmp2.POU_AR_CREDIT_MEMO_AMOUNT,
2060       tmp2.POU_UNBILLED_RECEIVABLES,
2061       tmp2.POU_UNEARNED_REVENUE,
2062       tmp2.POU_AR_UNAPPR_INVOICE_AMOUNT,
2063       tmp2.POU_AR_APPR_INVOICE_AMOUNT,
2064       tmp2.POU_AR_AMOUNT_DUE,
2065       tmp2.POU_AR_AMOUNT_OVERDUE,
2066       tmp2.INITIAL_FUNDING_COUNT,
2067       tmp2.ADDITIONAL_FUNDING_COUNT,
2068       tmp2.CANCELLED_FUNDING_COUNT,
2069       tmp2.FUNDING_ADJUSTMENT_COUNT,
2070       tmp2.AR_INVOICE_COUNT,
2071       tmp2.AR_CASH_APPLIED_COUNT,
2072       tmp2.AR_INVOICE_WRITEOFF_COUNT,
2073       tmp2.AR_CREDIT_MEMO_COUNT,
2074       tmp2.AR_UNAPPR_INVOICE_COUNT,
2075       tmp2.AR_APPR_INVOICE_COUNT,
2076       tmp2.AR_COUNT_DUE,
2077       tmp2.AR_COUNT_OVERDUE,
2078       decode(tmp2.DANGLING_GL_RATE_FLAG      ||
2079              tmp2.DANGLING_GL_RATE2_FLAG     ||
2080              tmp2.DANGLING_PA_RATE_FLAG      ||
2081              tmp2.DANGLING_PA_RATE2_FLAG     ||
2082              tmp2.DANGLING_EN_TIME_FLAG      ||
2083              tmp2.DANGLING_GL_TIME_FLAG      ||
2084              tmp2.DANGLING_PA_TIME_FLAG,
2085              null, decode(tmp2.TXN_CURRENCY_CODE,
2086                           l_g1_currency_code,
2087                           tmp2.TXN_REVENUE,
2088                           round(tmp2.POU_REVENUE *
2089                                 tmp2.GL_RATE1 /
2090                                 tmp2.GL_MAU1) * tmp2.GL_MAU1),
2091                    to_number(null))            GG1_REVENUE,
2092       decode(tmp2.DANGLING_GL_RATE_FLAG      ||
2093              tmp2.DANGLING_GL_RATE2_FLAG     ||
2094              tmp2.DANGLING_PA_RATE_FLAG      ||
2095              tmp2.DANGLING_PA_RATE2_FLAG     ||
2096              tmp2.DANGLING_EN_TIME_FLAG      ||
2097              tmp2.DANGLING_GL_TIME_FLAG      ||
2098              tmp2.DANGLING_PA_TIME_FLAG,
2099              null, decode(tmp2.TXN_CURRENCY_CODE,
2100                           l_g1_currency_code,
2101                           tmp2.TXN_FUNDING,
2102                           round(tmp2.POU_FUNDING *
2103                                 tmp2.GL_RATE1 /
2104                                 tmp2.GL_MAU1) * tmp2.GL_MAU1),
2105                    to_number(null))            GG1_FUNDING,
2106       decode(tmp2.DANGLING_GL_RATE_FLAG      ||
2107              tmp2.DANGLING_GL_RATE2_FLAG     ||
2108              tmp2.DANGLING_PA_RATE_FLAG      ||
2109              tmp2.DANGLING_PA_RATE2_FLAG     ||
2110              tmp2.DANGLING_EN_TIME_FLAG      ||
2111              tmp2.DANGLING_GL_TIME_FLAG      ||
2112              tmp2.DANGLING_PA_TIME_FLAG,
2113              null, decode(tmp2.TXN_CURRENCY_CODE,
2114                           l_g1_currency_code,
2115                           tmp2.TXN_INITIAL_FUNDING_AMOUNT,
2116                           round(tmp2.POU_INITIAL_FUNDING_AMOUNT *
2117                                 tmp2.GL_RATE1 /
2118                                 tmp2.GL_MAU1) * tmp2.GL_MAU1),
2119                    to_number(null))            GG1_INITIAL_FUNDING_AMOUNT,
2120       decode(tmp2.DANGLING_GL_RATE_FLAG      ||
2121              tmp2.DANGLING_GL_RATE2_FLAG     ||
2122              tmp2.DANGLING_PA_RATE_FLAG      ||
2123              tmp2.DANGLING_PA_RATE2_FLAG     ||
2124              tmp2.DANGLING_EN_TIME_FLAG      ||
2125              tmp2.DANGLING_GL_TIME_FLAG      ||
2126              tmp2.DANGLING_PA_TIME_FLAG,
2127              null, decode(tmp2.TXN_CURRENCY_CODE,
2128                           l_g1_currency_code,
2129                           tmp2.TXN_ADDITIONAL_FUNDING_AMOUNT,
2130                           round(tmp2.POU_ADDITIONAL_FUNDING_AMOUNT *
2131                                 tmp2.GL_RATE1 /
2132                                 tmp2.GL_MAU1) * tmp2.GL_MAU1),
2133                    to_number(null))            GG1_ADDITIONAL_FUNDING_AMOUNT,
2134       decode(tmp2.DANGLING_GL_RATE_FLAG      ||
2135              tmp2.DANGLING_GL_RATE2_FLAG     ||
2136              tmp2.DANGLING_PA_RATE_FLAG      ||
2137              tmp2.DANGLING_PA_RATE2_FLAG     ||
2138              tmp2.DANGLING_EN_TIME_FLAG      ||
2139              tmp2.DANGLING_GL_TIME_FLAG      ||
2140              tmp2.DANGLING_PA_TIME_FLAG,
2141              null, decode(tmp2.TXN_CURRENCY_CODE,
2142                           l_g1_currency_code,
2143                           tmp2.TXN_CANCELLED_FUNDING_AMOUNT,
2144                           round(tmp2.POU_CANCELLED_FUNDING_AMOUNT *
2145                                 tmp2.GL_RATE1 /
2146                                 tmp2.GL_MAU1) * tmp2.GL_MAU1),
2147                    to_number(null))            GG1_CANCELLED_FUNDING_AMOUNT,
2148       decode(tmp2.DANGLING_GL_RATE_FLAG      ||
2149              tmp2.DANGLING_GL_RATE2_FLAG     ||
2150              tmp2.DANGLING_PA_RATE_FLAG      ||
2151              tmp2.DANGLING_PA_RATE2_FLAG     ||
2152              tmp2.DANGLING_EN_TIME_FLAG      ||
2153              tmp2.DANGLING_GL_TIME_FLAG      ||
2154              tmp2.DANGLING_PA_TIME_FLAG,
2155              null, decode(tmp2.TXN_CURRENCY_CODE,
2156                           l_g1_currency_code,
2157                           tmp2.TXN_FUNDING_ADJUSTMENT_AMOUNT,
2158                           round(tmp2.POU_FUNDING_ADJUSTMENT_AMOUNT *
2159                                 tmp2.GL_RATE1 /
2160                                 tmp2.GL_MAU1) * tmp2.GL_MAU1),
2161                    to_number(null))            GG1_FUNDING_ADJUSTMENT_AMOUNT,
2162       decode(tmp2.DANGLING_GL_RATE_FLAG      ||
2163              tmp2.DANGLING_GL_RATE2_FLAG     ||
2164              tmp2.DANGLING_PA_RATE_FLAG      ||
2165              tmp2.DANGLING_PA_RATE2_FLAG     ||
2166              tmp2.DANGLING_EN_TIME_FLAG      ||
2167              tmp2.DANGLING_GL_TIME_FLAG      ||
2168              tmp2.DANGLING_PA_TIME_FLAG,
2169              null, decode(tmp2.TXN_CURRENCY_CODE,
2170                           l_g1_currency_code,
2171                           tmp2.TXN_REVENUE_WRITEOFF,
2172                           round(tmp2.POU_REVENUE_WRITEOFF *
2173                                 tmp2.GL_RATE1 /
2174                                 tmp2.GL_MAU1) * tmp2.GL_MAU1),
2175                    to_number(null))            GG1_REVENUE_WRITEOFF,
2176       decode(tmp2.DANGLING_GL_RATE_FLAG      ||
2177              tmp2.DANGLING_GL_RATE2_FLAG     ||
2178              tmp2.DANGLING_PA_RATE_FLAG      ||
2179              tmp2.DANGLING_PA_RATE2_FLAG     ||
2180              tmp2.DANGLING_EN_TIME_FLAG      ||
2181              tmp2.DANGLING_GL_TIME_FLAG      ||
2182              tmp2.DANGLING_PA_TIME_FLAG,
2183              null, decode(tmp2.TXN_CURRENCY_CODE,
2184                           l_g1_currency_code,
2185                           tmp2.TXN_AR_INVOICE_AMOUNT,
2186                           round(tmp2.POU_AR_INVOICE_AMOUNT *
2187                                 tmp2.GL_RATE1 /
2188                                 tmp2.GL_MAU1) * tmp2.GL_MAU1),
2189                    to_number(null))            GG1_AR_INVOICE_AMOUNT,
2190       decode(tmp2.DANGLING_GL_RATE_FLAG      ||
2191              tmp2.DANGLING_GL_RATE2_FLAG     ||
2192              tmp2.DANGLING_PA_RATE_FLAG      ||
2193              tmp2.DANGLING_PA_RATE2_FLAG     ||
2194              tmp2.DANGLING_EN_TIME_FLAG      ||
2195              tmp2.DANGLING_GL_TIME_FLAG      ||
2196              tmp2.DANGLING_PA_TIME_FLAG,
2197              null, decode(tmp2.TXN_CURRENCY_CODE,
2198                           l_g1_currency_code,
2199                           tmp2.TXN_AR_CASH_APPLIED_AMOUNT,
2200                           round(tmp2.POU_AR_CASH_APPLIED_AMOUNT *
2201                                 tmp2.GL_RATE1 /
2202                                 tmp2.GL_MAU1) * tmp2.GL_MAU1),
2203                    to_number(null))            GG1_AR_CASH_APPLIED_AMOUNT,
2204       decode(tmp2.DANGLING_GL_RATE_FLAG      ||
2205              tmp2.DANGLING_GL_RATE2_FLAG     ||
2206              tmp2.DANGLING_PA_RATE_FLAG      ||
2207              tmp2.DANGLING_PA_RATE2_FLAG     ||
2208              tmp2.DANGLING_EN_TIME_FLAG      ||
2209              tmp2.DANGLING_GL_TIME_FLAG      ||
2210              tmp2.DANGLING_PA_TIME_FLAG,
2211              null, decode(tmp2.TXN_CURRENCY_CODE,
2212                           l_g1_currency_code,
2213                           tmp2.TXN_AR_INVOICE_WRITEOFF_AMOUNT,
2214                           round(tmp2.POU_AR_INVOICE_WRITEOFF_AMOUNT *
2215                                 tmp2.GL_RATE1 /
2216                                 tmp2.GL_MAU1) * tmp2.GL_MAU1),
2217                    to_number(null))            GG1_AR_INVOICE_WRITEOFF_AMOUNT,
2218       decode(tmp2.DANGLING_GL_RATE_FLAG      ||
2219              tmp2.DANGLING_GL_RATE2_FLAG     ||
2220              tmp2.DANGLING_PA_RATE_FLAG      ||
2221              tmp2.DANGLING_PA_RATE2_FLAG     ||
2222              tmp2.DANGLING_EN_TIME_FLAG      ||
2223              tmp2.DANGLING_GL_TIME_FLAG      ||
2224              tmp2.DANGLING_PA_TIME_FLAG,
2225              null, decode(tmp2.TXN_CURRENCY_CODE,
2226                           l_g1_currency_code,
2227                           tmp2.TXN_AR_CREDIT_MEMO_AMOUNT,
2228                           round(tmp2.POU_AR_CREDIT_MEMO_AMOUNT *
2229                                 tmp2.GL_RATE1 /
2230                                 tmp2.GL_MAU1) * tmp2.GL_MAU1),
2231                    to_number(null))            GG1_AR_CREDIT_MEMO_AMOUNT,
2232       decode(tmp2.DANGLING_GL_RATE_FLAG      ||
2233              tmp2.DANGLING_GL_RATE2_FLAG     ||
2234              tmp2.DANGLING_PA_RATE_FLAG      ||
2235              tmp2.DANGLING_PA_RATE2_FLAG     ||
2236              tmp2.DANGLING_EN_TIME_FLAG      ||
2237              tmp2.DANGLING_GL_TIME_FLAG      ||
2238              tmp2.DANGLING_PA_TIME_FLAG,
2239              null, decode(tmp2.TXN_CURRENCY_CODE,
2240                           l_g1_currency_code,
2241                           tmp2.TXN_UNBILLED_RECEIVABLES,
2242                           round(tmp2.POU_UNBILLED_RECEIVABLES *
2243                                 tmp2.GL_RATE1 /
2244                                 tmp2.GL_MAU1) * tmp2.GL_MAU1),
2245                    to_number(null))            GG1_UNBILLED_RECEIVABLES,
2246       decode(tmp2.DANGLING_GL_RATE_FLAG      ||
2247              tmp2.DANGLING_GL_RATE2_FLAG     ||
2248              tmp2.DANGLING_PA_RATE_FLAG      ||
2249              tmp2.DANGLING_PA_RATE2_FLAG     ||
2250              tmp2.DANGLING_EN_TIME_FLAG      ||
2251              tmp2.DANGLING_GL_TIME_FLAG      ||
2252              tmp2.DANGLING_PA_TIME_FLAG,
2253              null, decode(tmp2.TXN_CURRENCY_CODE,
2254                           l_g1_currency_code,
2255                           tmp2.TXN_UNEARNED_REVENUE,
2256                           round(tmp2.POU_UNEARNED_REVENUE *
2257                                 tmp2.GL_RATE1 /
2258                                 tmp2.GL_MAU1) * tmp2.GL_MAU1),
2259                    to_number(null))            GG1_UNEARNED_REVENUE,
2260       decode(tmp2.DANGLING_GL_RATE_FLAG      ||
2261              tmp2.DANGLING_GL_RATE2_FLAG     ||
2262              tmp2.DANGLING_PA_RATE_FLAG      ||
2263              tmp2.DANGLING_PA_RATE2_FLAG     ||
2264              tmp2.DANGLING_EN_TIME_FLAG      ||
2265              tmp2.DANGLING_GL_TIME_FLAG      ||
2266              tmp2.DANGLING_PA_TIME_FLAG,
2267              null, decode(tmp2.TXN_CURRENCY_CODE,
2268                           l_g1_currency_code,
2269                           tmp2.TXN_AR_UNAPPR_INVOICE_AMOUNT,
2270                           round(tmp2.POU_AR_UNAPPR_INVOICE_AMOUNT *
2271                                 tmp2.GL_RATE1 /
2272                                 tmp2.GL_MAU1) * tmp2.GL_MAU1),
2273                    to_number(null))            GG1_AR_UNAPPR_INVOICE_AMOUNT,
2274       decode(tmp2.DANGLING_GL_RATE_FLAG      ||
2275              tmp2.DANGLING_GL_RATE2_FLAG     ||
2276              tmp2.DANGLING_PA_RATE_FLAG      ||
2277              tmp2.DANGLING_PA_RATE2_FLAG     ||
2278              tmp2.DANGLING_EN_TIME_FLAG      ||
2279              tmp2.DANGLING_GL_TIME_FLAG      ||
2280              tmp2.DANGLING_PA_TIME_FLAG,
2281              null, decode(tmp2.TXN_CURRENCY_CODE,
2282                           l_g1_currency_code,
2283                           tmp2.TXN_AR_APPR_INVOICE_AMOUNT,
2284                           round(tmp2.POU_AR_APPR_INVOICE_AMOUNT *
2285                                 tmp2.GL_RATE1 /
2286                                 tmp2.GL_MAU1) * tmp2.GL_MAU1),
2287                    to_number(null))            GG1_AR_APPR_INVOICE_AMOUNT,
2288       decode(tmp2.DANGLING_GL_RATE_FLAG      ||
2289              tmp2.DANGLING_GL_RATE2_FLAG     ||
2290              tmp2.DANGLING_PA_RATE_FLAG      ||
2291              tmp2.DANGLING_PA_RATE2_FLAG     ||
2292              tmp2.DANGLING_EN_TIME_FLAG      ||
2293              tmp2.DANGLING_GL_TIME_FLAG      ||
2294              tmp2.DANGLING_PA_TIME_FLAG,
2295              null, decode(tmp2.TXN_CURRENCY_CODE,
2296                           l_g1_currency_code,
2297                           tmp2.TXN_AR_AMOUNT_DUE,
2298                           round(tmp2.POU_AR_AMOUNT_DUE *
2299                                 tmp2.GL_RATE1 /
2300                                 tmp2.GL_MAU1) * tmp2.GL_MAU1),
2301                    to_number(null))            GG1_AR_AMOUNT_DUE,
2302       decode(tmp2.DANGLING_GL_RATE_FLAG      ||
2303              tmp2.DANGLING_GL_RATE2_FLAG     ||
2304              tmp2.DANGLING_PA_RATE_FLAG      ||
2305              tmp2.DANGLING_PA_RATE2_FLAG     ||
2306              tmp2.DANGLING_EN_TIME_FLAG      ||
2307              tmp2.DANGLING_GL_TIME_FLAG      ||
2308              tmp2.DANGLING_PA_TIME_FLAG,
2309              null, decode(tmp2.TXN_CURRENCY_CODE,
2310                           l_g1_currency_code,
2311                           tmp2.TXN_AR_AMOUNT_OVERDUE,
2312                           round(tmp2.POU_AR_AMOUNT_OVERDUE *
2313                                 tmp2.GL_RATE1 /
2314                                 tmp2.GL_MAU1) * tmp2.GL_MAU1),
2315                    to_number(null))            GG1_AR_AMOUNT_OVERDUE,
2316       decode(tmp2.DANGLING_GL_RATE_FLAG      ||
2317              tmp2.DANGLING_GL_RATE2_FLAG     ||
2318              tmp2.DANGLING_PA_RATE_FLAG      ||
2319              tmp2.DANGLING_PA_RATE2_FLAG     ||
2320              tmp2.DANGLING_EN_TIME_FLAG      ||
2321              tmp2.DANGLING_GL_TIME_FLAG      ||
2322              tmp2.DANGLING_PA_TIME_FLAG,
2323              null, decode(tmp2.TXN_CURRENCY_CODE,
2324                           l_g1_currency_code,
2325                           tmp2.TXN_REVENUE,
2326                           round(tmp2.POU_REVENUE *
2327                                 tmp2.PA_RATE1 /
2328                                 tmp2.PA_MAU1) * tmp2.PA_MAU1),
2329                    to_number(null))            GP1_REVENUE,
2330       decode(tmp2.DANGLING_GL_RATE_FLAG      ||
2331              tmp2.DANGLING_GL_RATE2_FLAG     ||
2332              tmp2.DANGLING_PA_RATE_FLAG      ||
2333              tmp2.DANGLING_PA_RATE2_FLAG     ||
2334              tmp2.DANGLING_EN_TIME_FLAG      ||
2335              tmp2.DANGLING_GL_TIME_FLAG      ||
2336              tmp2.DANGLING_PA_TIME_FLAG,
2337              null, decode(tmp2.TXN_CURRENCY_CODE,
2338                           l_g1_currency_code,
2339                           tmp2.TXN_FUNDING,
2340                           round(tmp2.POU_FUNDING *
2341                                 tmp2.PA_RATE1 /
2342                                 tmp2.PA_MAU1) * tmp2.PA_MAU1),
2343                    to_number(null))            GP1_FUNDING,
2344       decode(tmp2.DANGLING_GL_RATE_FLAG      ||
2345              tmp2.DANGLING_GL_RATE2_FLAG     ||
2346              tmp2.DANGLING_PA_RATE_FLAG      ||
2347              tmp2.DANGLING_PA_RATE2_FLAG     ||
2348              tmp2.DANGLING_EN_TIME_FLAG      ||
2349              tmp2.DANGLING_GL_TIME_FLAG      ||
2350              tmp2.DANGLING_PA_TIME_FLAG,
2351              null, decode(tmp2.TXN_CURRENCY_CODE,
2352                           l_g1_currency_code,
2353                           tmp2.TXN_INITIAL_FUNDING_AMOUNT,
2354                           round(tmp2.POU_INITIAL_FUNDING_AMOUNT *
2355                                 tmp2.PA_RATE1 /
2356                                 tmp2.PA_MAU1) * tmp2.PA_MAU1),
2357                    to_number(null))            GP1_INITIAL_FUNDING_AMOUNT,
2358       decode(tmp2.DANGLING_GL_RATE_FLAG      ||
2359              tmp2.DANGLING_GL_RATE2_FLAG     ||
2360              tmp2.DANGLING_PA_RATE_FLAG      ||
2361              tmp2.DANGLING_PA_RATE2_FLAG     ||
2362              tmp2.DANGLING_EN_TIME_FLAG      ||
2363              tmp2.DANGLING_GL_TIME_FLAG      ||
2364              tmp2.DANGLING_PA_TIME_FLAG,
2365              null, decode(tmp2.TXN_CURRENCY_CODE,
2366                           l_g1_currency_code,
2367                           tmp2.TXN_ADDITIONAL_FUNDING_AMOUNT,
2368                           round(tmp2.POU_ADDITIONAL_FUNDING_AMOUNT *
2369                                 tmp2.PA_RATE1 /
2370                                 tmp2.PA_MAU1) * tmp2.PA_MAU1),
2371                    to_number(null))            GP1_ADDITIONAL_FUNDING_AMOUNT,
2372       decode(tmp2.DANGLING_GL_RATE_FLAG      ||
2373              tmp2.DANGLING_GL_RATE2_FLAG     ||
2374              tmp2.DANGLING_PA_RATE_FLAG      ||
2375              tmp2.DANGLING_PA_RATE2_FLAG     ||
2376              tmp2.DANGLING_EN_TIME_FLAG      ||
2377              tmp2.DANGLING_GL_TIME_FLAG      ||
2378              tmp2.DANGLING_PA_TIME_FLAG,
2379              null, decode(tmp2.TXN_CURRENCY_CODE,
2380                           l_g1_currency_code,
2381                           tmp2.TXN_CANCELLED_FUNDING_AMOUNT,
2382                           round(tmp2.POU_CANCELLED_FUNDING_AMOUNT *
2383                                 tmp2.PA_RATE1 /
2384                                 tmp2.PA_MAU1) * tmp2.PA_MAU1),
2385                    to_number(null))            GP1_CANCELLED_FUNDING_AMOUNT,
2386       decode(tmp2.DANGLING_GL_RATE_FLAG      ||
2387              tmp2.DANGLING_GL_RATE2_FLAG     ||
2388              tmp2.DANGLING_PA_RATE_FLAG      ||
2389              tmp2.DANGLING_PA_RATE2_FLAG     ||
2390              tmp2.DANGLING_EN_TIME_FLAG      ||
2391              tmp2.DANGLING_GL_TIME_FLAG      ||
2392              tmp2.DANGLING_PA_TIME_FLAG,
2393              null, decode(tmp2.TXN_CURRENCY_CODE,
2394                           l_g1_currency_code,
2395                           tmp2.TXN_FUNDING_ADJUSTMENT_AMOUNT,
2396                           round(tmp2.POU_FUNDING_ADJUSTMENT_AMOUNT *
2397                                 tmp2.PA_RATE1 /
2398                                 tmp2.PA_MAU1) * tmp2.PA_MAU1),
2399                    to_number(null))            GP1_FUNDING_ADJUSTMENT_AMOUNT,
2400       decode(tmp2.DANGLING_GL_RATE_FLAG      ||
2401              tmp2.DANGLING_GL_RATE2_FLAG     ||
2402              tmp2.DANGLING_PA_RATE_FLAG      ||
2403              tmp2.DANGLING_PA_RATE2_FLAG     ||
2404              tmp2.DANGLING_EN_TIME_FLAG      ||
2405              tmp2.DANGLING_GL_TIME_FLAG      ||
2406              tmp2.DANGLING_PA_TIME_FLAG,
2407              null, decode(tmp2.TXN_CURRENCY_CODE,
2408                           l_g1_currency_code,
2409                           tmp2.TXN_REVENUE_WRITEOFF,
2410                           round(tmp2.POU_REVENUE_WRITEOFF *
2411                                 tmp2.PA_RATE1 /
2412                                 tmp2.PA_MAU1) * tmp2.PA_MAU1),
2413                    to_number(null))            GP1_REVENUE_WRITEOFF,
2414       decode(tmp2.DANGLING_GL_RATE_FLAG      ||
2415              tmp2.DANGLING_GL_RATE2_FLAG     ||
2416              tmp2.DANGLING_PA_RATE_FLAG      ||
2417              tmp2.DANGLING_PA_RATE2_FLAG     ||
2418              tmp2.DANGLING_EN_TIME_FLAG      ||
2419              tmp2.DANGLING_GL_TIME_FLAG      ||
2420              tmp2.DANGLING_PA_TIME_FLAG,
2421              null, decode(tmp2.TXN_CURRENCY_CODE,
2422                           l_g1_currency_code,
2423                           tmp2.TXN_AR_INVOICE_AMOUNT,
2424                           round(tmp2.POU_AR_INVOICE_AMOUNT *
2425                                 tmp2.PA_RATE1 /
2426                                 tmp2.PA_MAU1) * tmp2.PA_MAU1),
2427                    to_number(null))            GP1_AR_INVOICE_AMOUNT,
2428       decode(tmp2.DANGLING_GL_RATE_FLAG      ||
2429              tmp2.DANGLING_GL_RATE2_FLAG     ||
2430              tmp2.DANGLING_PA_RATE_FLAG      ||
2431              tmp2.DANGLING_PA_RATE2_FLAG     ||
2432              tmp2.DANGLING_EN_TIME_FLAG      ||
2433              tmp2.DANGLING_GL_TIME_FLAG      ||
2434              tmp2.DANGLING_PA_TIME_FLAG,
2435              null, decode(tmp2.TXN_CURRENCY_CODE,
2436                           l_g1_currency_code,
2437                           tmp2.TXN_AR_CASH_APPLIED_AMOUNT,
2438                           round(tmp2.POU_AR_CASH_APPLIED_AMOUNT *
2439                                 tmp2.PA_RATE1 /
2440                                 tmp2.PA_MAU1) * tmp2.PA_MAU1),
2441                    to_number(null))            GP1_AR_CASH_APPLIED_AMOUNT,
2442       decode(tmp2.DANGLING_GL_RATE_FLAG      ||
2443              tmp2.DANGLING_GL_RATE2_FLAG     ||
2444              tmp2.DANGLING_PA_RATE_FLAG      ||
2445              tmp2.DANGLING_PA_RATE2_FLAG     ||
2446              tmp2.DANGLING_EN_TIME_FLAG      ||
2447              tmp2.DANGLING_GL_TIME_FLAG      ||
2448              tmp2.DANGLING_PA_TIME_FLAG,
2449              null, decode(tmp2.TXN_CURRENCY_CODE,
2450                           l_g1_currency_code,
2451                           tmp2.TXN_AR_INVOICE_WRITEOFF_AMOUNT,
2452                           round(tmp2.POU_AR_INVOICE_WRITEOFF_AMOUNT *
2453                                 tmp2.PA_RATE1 /
2454                                 tmp2.PA_MAU1) * tmp2.PA_MAU1),
2455                    to_number(null))            GP1_AR_INVOICE_WRITEOFF_AMOUNT,
2456       decode(tmp2.DANGLING_GL_RATE_FLAG      ||
2457              tmp2.DANGLING_GL_RATE2_FLAG     ||
2458              tmp2.DANGLING_PA_RATE_FLAG      ||
2459              tmp2.DANGLING_PA_RATE2_FLAG     ||
2460              tmp2.DANGLING_EN_TIME_FLAG      ||
2461              tmp2.DANGLING_GL_TIME_FLAG      ||
2462              tmp2.DANGLING_PA_TIME_FLAG,
2463              null, decode(tmp2.TXN_CURRENCY_CODE,
2464                           l_g1_currency_code,
2465                           tmp2.TXN_AR_CREDIT_MEMO_AMOUNT,
2466                           round(tmp2.POU_AR_CREDIT_MEMO_AMOUNT *
2467                                 tmp2.PA_RATE1 /
2468                                 tmp2.PA_MAU1) * tmp2.PA_MAU1),
2469                    to_number(null))            GP1_AR_CREDIT_MEMO_AMOUNT,
2470       decode(tmp2.DANGLING_GL_RATE_FLAG      ||
2471              tmp2.DANGLING_GL_RATE2_FLAG     ||
2472              tmp2.DANGLING_PA_RATE_FLAG      ||
2473              tmp2.DANGLING_PA_RATE2_FLAG     ||
2474              tmp2.DANGLING_EN_TIME_FLAG      ||
2475              tmp2.DANGLING_GL_TIME_FLAG      ||
2476              tmp2.DANGLING_PA_TIME_FLAG,
2477              null, decode(tmp2.TXN_CURRENCY_CODE,
2478                           l_g1_currency_code,
2479                           tmp2.TXN_UNBILLED_RECEIVABLES,
2480                           round(tmp2.POU_UNBILLED_RECEIVABLES *
2481                                 tmp2.PA_RATE1 /
2482                                 tmp2.PA_MAU1) * tmp2.PA_MAU1),
2483                    to_number(null))            GP1_UNBILLED_RECEIVABLES,
2484       decode(tmp2.DANGLING_GL_RATE_FLAG      ||
2485              tmp2.DANGLING_GL_RATE2_FLAG     ||
2486              tmp2.DANGLING_PA_RATE_FLAG      ||
2487              tmp2.DANGLING_PA_RATE2_FLAG     ||
2488              tmp2.DANGLING_EN_TIME_FLAG      ||
2489              tmp2.DANGLING_GL_TIME_FLAG      ||
2490              tmp2.DANGLING_PA_TIME_FLAG,
2491              null, decode(tmp2.TXN_CURRENCY_CODE,
2492                           l_g1_currency_code,
2493                           tmp2.TXN_UNEARNED_REVENUE,
2494                           round(tmp2.POU_UNEARNED_REVENUE *
2495                                 tmp2.PA_RATE1 /
2496                                 tmp2.PA_MAU1) * tmp2.PA_MAU1),
2497                    to_number(null))            GP1_UNEARNED_REVENUE,
2498       decode(tmp2.DANGLING_GL_RATE_FLAG      ||
2499              tmp2.DANGLING_GL_RATE2_FLAG     ||
2500              tmp2.DANGLING_PA_RATE_FLAG      ||
2501              tmp2.DANGLING_PA_RATE2_FLAG     ||
2502              tmp2.DANGLING_EN_TIME_FLAG      ||
2503              tmp2.DANGLING_GL_TIME_FLAG      ||
2504              tmp2.DANGLING_PA_TIME_FLAG,
2505              null, decode(tmp2.TXN_CURRENCY_CODE,
2506                           l_g1_currency_code,
2507                           tmp2.TXN_AR_UNAPPR_INVOICE_AMOUNT,
2508                           round(tmp2.POU_AR_UNAPPR_INVOICE_AMOUNT *
2509                                 tmp2.PA_RATE1 /
2510                                 tmp2.PA_MAU1) * tmp2.PA_MAU1),
2511                    to_number(null))            GP1_AR_UNAPPR_INVOICE_AMOUNT,
2512       decode(tmp2.DANGLING_GL_RATE_FLAG      ||
2513              tmp2.DANGLING_GL_RATE2_FLAG     ||
2514              tmp2.DANGLING_PA_RATE_FLAG      ||
2515              tmp2.DANGLING_PA_RATE2_FLAG     ||
2516              tmp2.DANGLING_EN_TIME_FLAG      ||
2517              tmp2.DANGLING_GL_TIME_FLAG      ||
2518              tmp2.DANGLING_PA_TIME_FLAG,
2519              null, decode(tmp2.TXN_CURRENCY_CODE,
2520                           l_g1_currency_code,
2521                           tmp2.TXN_AR_APPR_INVOICE_AMOUNT,
2522                           round(tmp2.POU_AR_APPR_INVOICE_AMOUNT *
2523                                 tmp2.PA_RATE1 /
2524                                 tmp2.PA_MAU1) * tmp2.PA_MAU1),
2525                    to_number(null))            GP1_AR_APPR_INVOICE_AMOUNT,
2526       decode(tmp2.DANGLING_GL_RATE_FLAG      ||
2527              tmp2.DANGLING_GL_RATE2_FLAG     ||
2528              tmp2.DANGLING_PA_RATE_FLAG      ||
2529              tmp2.DANGLING_PA_RATE2_FLAG     ||
2530              tmp2.DANGLING_EN_TIME_FLAG      ||
2531              tmp2.DANGLING_GL_TIME_FLAG      ||
2532              tmp2.DANGLING_PA_TIME_FLAG,
2533              null, decode(tmp2.TXN_CURRENCY_CODE,
2534                           l_g1_currency_code,
2535                           tmp2.TXN_AR_AMOUNT_DUE,
2536                           round(tmp2.POU_AR_AMOUNT_DUE *
2537                                 tmp2.PA_RATE1 /
2538                                 tmp2.PA_MAU1) * tmp2.PA_MAU1),
2539                    to_number(null))            GP1_AR_AMOUNT_DUE,
2540       decode(tmp2.DANGLING_GL_RATE_FLAG      ||
2541              tmp2.DANGLING_GL_RATE2_FLAG     ||
2542              tmp2.DANGLING_PA_RATE_FLAG      ||
2543              tmp2.DANGLING_PA_RATE2_FLAG     ||
2544              tmp2.DANGLING_EN_TIME_FLAG      ||
2545              tmp2.DANGLING_GL_TIME_FLAG      ||
2546              tmp2.DANGLING_PA_TIME_FLAG,
2547              null, decode(tmp2.TXN_CURRENCY_CODE,
2548                           l_g1_currency_code,
2549                           tmp2.TXN_AR_AMOUNT_OVERDUE,
2550                           round(tmp2.POU_AR_AMOUNT_OVERDUE *
2551                                 tmp2.PA_RATE1 /
2552                                 tmp2.PA_MAU1) * tmp2.PA_MAU1),
2553                    to_number(null))            GP1_AR_AMOUNT_OVERDUE,
2554       decode(tmp2.DANGLING_GL_RATE_FLAG      ||
2555              tmp2.DANGLING_GL_RATE2_FLAG     ||
2556              tmp2.DANGLING_PA_RATE_FLAG      ||
2557              tmp2.DANGLING_PA_RATE2_FLAG     ||
2558              tmp2.DANGLING_EN_TIME_FLAG      ||
2559              tmp2.DANGLING_GL_TIME_FLAG      ||
2560              tmp2.DANGLING_PA_TIME_FLAG,
2561              null, decode(tmp2.TXN_CURRENCY_CODE,
2562                           l_g2_currency_code,
2563                           tmp2.TXN_REVENUE,
2564                           round(tmp2.POU_REVENUE *
2565                                 tmp2.GL_RATE2 /
2566                                 tmp2.GL_MAU2) * tmp2.GL_MAU2),
2567                    to_number(null))            GG2_REVENUE,
2568       decode(tmp2.DANGLING_GL_RATE_FLAG      ||
2569              tmp2.DANGLING_GL_RATE2_FLAG     ||
2570              tmp2.DANGLING_PA_RATE_FLAG      ||
2571              tmp2.DANGLING_PA_RATE2_FLAG     ||
2572              tmp2.DANGLING_EN_TIME_FLAG      ||
2573              tmp2.DANGLING_GL_TIME_FLAG      ||
2574              tmp2.DANGLING_PA_TIME_FLAG,
2575              null, decode(tmp2.TXN_CURRENCY_CODE,
2576                           l_g2_currency_code,
2577                           tmp2.TXN_FUNDING,
2578                           round(tmp2.POU_FUNDING *
2579                                 tmp2.GL_RATE2 /
2580                                 tmp2.GL_MAU2) * tmp2.GL_MAU2),
2581                    to_number(null))            GG2_FUNDING,
2582       decode(tmp2.DANGLING_GL_RATE_FLAG      ||
2583              tmp2.DANGLING_GL_RATE2_FLAG     ||
2584              tmp2.DANGLING_PA_RATE_FLAG      ||
2585              tmp2.DANGLING_PA_RATE2_FLAG     ||
2586              tmp2.DANGLING_EN_TIME_FLAG      ||
2587              tmp2.DANGLING_GL_TIME_FLAG      ||
2588              tmp2.DANGLING_PA_TIME_FLAG,
2589              null, decode(tmp2.TXN_CURRENCY_CODE,
2590                           l_g2_currency_code,
2591                           tmp2.TXN_INITIAL_FUNDING_AMOUNT,
2592                           round(tmp2.POU_INITIAL_FUNDING_AMOUNT *
2593                                 tmp2.GL_RATE2 /
2594                                 tmp2.GL_MAU2) * tmp2.GL_MAU2),
2595                    to_number(null))            GG2_INITIAL_FUNDING_AMOUNT,
2596       decode(tmp2.DANGLING_GL_RATE_FLAG      ||
2597              tmp2.DANGLING_GL_RATE2_FLAG     ||
2598              tmp2.DANGLING_PA_RATE_FLAG      ||
2599              tmp2.DANGLING_PA_RATE2_FLAG     ||
2600              tmp2.DANGLING_EN_TIME_FLAG      ||
2601              tmp2.DANGLING_GL_TIME_FLAG      ||
2602              tmp2.DANGLING_PA_TIME_FLAG,
2603              null, decode(tmp2.TXN_CURRENCY_CODE,
2604                           l_g2_currency_code,
2605                           tmp2.TXN_ADDITIONAL_FUNDING_AMOUNT,
2606                           round(tmp2.POU_ADDITIONAL_FUNDING_AMOUNT *
2607                                 tmp2.GL_RATE2 /
2608                                 tmp2.GL_MAU2) * tmp2.GL_MAU2),
2609                    to_number(null))            GG2_ADDITIONAL_FUNDING_AMOUNT,
2610       decode(tmp2.DANGLING_GL_RATE_FLAG      ||
2611              tmp2.DANGLING_GL_RATE2_FLAG     ||
2612              tmp2.DANGLING_PA_RATE_FLAG      ||
2613              tmp2.DANGLING_PA_RATE2_FLAG     ||
2614              tmp2.DANGLING_EN_TIME_FLAG      ||
2615              tmp2.DANGLING_GL_TIME_FLAG      ||
2616              tmp2.DANGLING_PA_TIME_FLAG,
2617              null, decode(tmp2.TXN_CURRENCY_CODE,
2618                           l_g2_currency_code,
2619                           tmp2.TXN_CANCELLED_FUNDING_AMOUNT,
2620                           round(tmp2.POU_CANCELLED_FUNDING_AMOUNT *
2621                                 tmp2.GL_RATE2 /
2622                                 tmp2.GL_MAU2) * tmp2.GL_MAU2),
2623                    to_number(null))            GG2_CANCELLED_FUNDING_AMOUNT,
2624       decode(tmp2.DANGLING_GL_RATE_FLAG      ||
2625              tmp2.DANGLING_GL_RATE2_FLAG     ||
2626              tmp2.DANGLING_PA_RATE_FLAG      ||
2627              tmp2.DANGLING_PA_RATE2_FLAG     ||
2628              tmp2.DANGLING_EN_TIME_FLAG      ||
2629              tmp2.DANGLING_GL_TIME_FLAG      ||
2630              tmp2.DANGLING_PA_TIME_FLAG,
2631              null, decode(tmp2.TXN_CURRENCY_CODE,
2632                           l_g2_currency_code,
2633                           tmp2.TXN_FUNDING_ADJUSTMENT_AMOUNT,
2634                           round(tmp2.POU_FUNDING_ADJUSTMENT_AMOUNT *
2635                                 tmp2.GL_RATE2 /
2636                                 tmp2.GL_MAU2) * tmp2.GL_MAU2),
2637                    to_number(null))            GG2_FUNDING_ADJUSTMENT_AMOUNT,
2638       decode(tmp2.DANGLING_GL_RATE_FLAG      ||
2639              tmp2.DANGLING_GL_RATE2_FLAG     ||
2640              tmp2.DANGLING_PA_RATE_FLAG      ||
2641              tmp2.DANGLING_PA_RATE2_FLAG     ||
2642              tmp2.DANGLING_EN_TIME_FLAG      ||
2643              tmp2.DANGLING_GL_TIME_FLAG      ||
2644              tmp2.DANGLING_PA_TIME_FLAG,
2645              null, decode(tmp2.TXN_CURRENCY_CODE,
2646                           l_g2_currency_code,
2647                           tmp2.TXN_REVENUE_WRITEOFF,
2648                           round(tmp2.POU_REVENUE_WRITEOFF *
2649                                 tmp2.GL_RATE2 /
2650                                 tmp2.GL_MAU2) * tmp2.GL_MAU2),
2651                    to_number(null))            GG2_REVENUE_WRITEOFF,
2652       decode(tmp2.DANGLING_GL_RATE_FLAG      ||
2653              tmp2.DANGLING_GL_RATE2_FLAG     ||
2654              tmp2.DANGLING_PA_RATE_FLAG      ||
2655              tmp2.DANGLING_PA_RATE2_FLAG     ||
2656              tmp2.DANGLING_EN_TIME_FLAG      ||
2657              tmp2.DANGLING_GL_TIME_FLAG      ||
2658              tmp2.DANGLING_PA_TIME_FLAG,
2659              null, decode(tmp2.TXN_CURRENCY_CODE,
2660                           l_g2_currency_code,
2661                           tmp2.TXN_AR_INVOICE_AMOUNT,
2662                           round(tmp2.POU_AR_INVOICE_AMOUNT *
2663                                 tmp2.GL_RATE2 /
2664                                 tmp2.GL_MAU2) * tmp2.GL_MAU2),
2665                    to_number(null))            GG2_AR_INVOICE_AMOUNT,
2666       decode(tmp2.DANGLING_GL_RATE_FLAG      ||
2667              tmp2.DANGLING_GL_RATE2_FLAG     ||
2668              tmp2.DANGLING_PA_RATE_FLAG      ||
2669              tmp2.DANGLING_PA_RATE2_FLAG     ||
2670              tmp2.DANGLING_EN_TIME_FLAG      ||
2671              tmp2.DANGLING_GL_TIME_FLAG      ||
2672              tmp2.DANGLING_PA_TIME_FLAG,
2673              null, decode(tmp2.TXN_CURRENCY_CODE,
2674                           l_g2_currency_code,
2675                           tmp2.TXN_AR_CASH_APPLIED_AMOUNT,
2676                           round(tmp2.POU_AR_CASH_APPLIED_AMOUNT *
2677                                 tmp2.GL_RATE2 /
2678                                 tmp2.GL_MAU2) * tmp2.GL_MAU2),
2679                    to_number(null))            GG2_AR_CASH_APPLIED_AMOUNT,
2680       decode(tmp2.DANGLING_GL_RATE_FLAG      ||
2681              tmp2.DANGLING_GL_RATE2_FLAG     ||
2682              tmp2.DANGLING_PA_RATE_FLAG      ||
2683              tmp2.DANGLING_PA_RATE2_FLAG     ||
2684              tmp2.DANGLING_EN_TIME_FLAG      ||
2685              tmp2.DANGLING_GL_TIME_FLAG      ||
2686              tmp2.DANGLING_PA_TIME_FLAG,
2687              null, decode(tmp2.TXN_CURRENCY_CODE,
2688                           l_g2_currency_code,
2689                           tmp2.TXN_AR_INVOICE_WRITEOFF_AMOUNT,
2690                           round(tmp2.POU_AR_INVOICE_WRITEOFF_AMOUNT *
2691                                 tmp2.GL_RATE2 /
2692                                 tmp2.GL_MAU2) * tmp2.GL_MAU2),
2693                    to_number(null))            GG2_AR_INVOICE_WRITEOFF_AMOUNT,
2694       decode(tmp2.DANGLING_GL_RATE_FLAG      ||
2695              tmp2.DANGLING_GL_RATE2_FLAG     ||
2696              tmp2.DANGLING_PA_RATE_FLAG      ||
2697              tmp2.DANGLING_PA_RATE2_FLAG     ||
2698              tmp2.DANGLING_EN_TIME_FLAG      ||
2699              tmp2.DANGLING_GL_TIME_FLAG      ||
2700              tmp2.DANGLING_PA_TIME_FLAG,
2701              null, decode(tmp2.TXN_CURRENCY_CODE,
2702                           l_g2_currency_code,
2703                           tmp2.TXN_AR_CREDIT_MEMO_AMOUNT,
2704                           round(tmp2.POU_AR_CREDIT_MEMO_AMOUNT *
2705                                 tmp2.GL_RATE2 /
2706                                 tmp2.GL_MAU2) * tmp2.GL_MAU2),
2707                    to_number(null))            GG2_AR_CREDIT_MEMO_AMOUNT,
2708       decode(tmp2.DANGLING_GL_RATE_FLAG      ||
2709              tmp2.DANGLING_GL_RATE2_FLAG     ||
2710              tmp2.DANGLING_PA_RATE_FLAG      ||
2711              tmp2.DANGLING_PA_RATE2_FLAG     ||
2712              tmp2.DANGLING_EN_TIME_FLAG      ||
2713              tmp2.DANGLING_GL_TIME_FLAG      ||
2714              tmp2.DANGLING_PA_TIME_FLAG,
2715              null, decode(tmp2.TXN_CURRENCY_CODE,
2716                           l_g2_currency_code,
2717                           tmp2.TXN_UNBILLED_RECEIVABLES,
2718                           round(tmp2.POU_UNBILLED_RECEIVABLES *
2719                                 tmp2.GL_RATE2 /
2720                                 tmp2.GL_MAU2) * tmp2.GL_MAU2),
2721                    to_number(null))            GG2_UNBILLED_RECEIVABLES,
2722       decode(tmp2.DANGLING_GL_RATE_FLAG      ||
2723              tmp2.DANGLING_GL_RATE2_FLAG     ||
2724              tmp2.DANGLING_PA_RATE_FLAG      ||
2725              tmp2.DANGLING_PA_RATE2_FLAG     ||
2726              tmp2.DANGLING_EN_TIME_FLAG      ||
2727              tmp2.DANGLING_GL_TIME_FLAG      ||
2728              tmp2.DANGLING_PA_TIME_FLAG,
2729              null, decode(tmp2.TXN_CURRENCY_CODE,
2730                           l_g2_currency_code,
2731                           tmp2.TXN_UNEARNED_REVENUE,
2732                           round(tmp2.POU_UNEARNED_REVENUE *
2733                                 tmp2.GL_RATE2 /
2734                                 tmp2.GL_MAU2) * tmp2.GL_MAU2),
2735                    to_number(null))            GG2_UNEARNED_REVENUE,
2736       decode(tmp2.DANGLING_GL_RATE_FLAG      ||
2737              tmp2.DANGLING_GL_RATE2_FLAG     ||
2738              tmp2.DANGLING_PA_RATE_FLAG      ||
2739              tmp2.DANGLING_PA_RATE2_FLAG     ||
2740              tmp2.DANGLING_EN_TIME_FLAG      ||
2741              tmp2.DANGLING_GL_TIME_FLAG      ||
2742              tmp2.DANGLING_PA_TIME_FLAG,
2743              null, decode(tmp2.TXN_CURRENCY_CODE,
2744                           l_g2_currency_code,
2745                           tmp2.TXN_AR_UNAPPR_INVOICE_AMOUNT,
2746                           round(tmp2.POU_AR_UNAPPR_INVOICE_AMOUNT *
2747                                 tmp2.GL_RATE2 /
2748                                 tmp2.GL_MAU2) * tmp2.GL_MAU2),
2749                    to_number(null))            GG2_AR_UNAPPR_INVOICE_AMOUNT,
2750       decode(tmp2.DANGLING_GL_RATE_FLAG      ||
2751              tmp2.DANGLING_GL_RATE2_FLAG     ||
2752              tmp2.DANGLING_PA_RATE_FLAG      ||
2753              tmp2.DANGLING_PA_RATE2_FLAG     ||
2754              tmp2.DANGLING_EN_TIME_FLAG      ||
2755              tmp2.DANGLING_GL_TIME_FLAG      ||
2756              tmp2.DANGLING_PA_TIME_FLAG,
2757              null, decode(tmp2.TXN_CURRENCY_CODE,
2758                           l_g2_currency_code,
2759                           tmp2.TXN_AR_APPR_INVOICE_AMOUNT,
2760                           round(tmp2.POU_AR_APPR_INVOICE_AMOUNT *
2761                                 tmp2.GL_RATE2 /
2762                                 tmp2.GL_MAU2) * tmp2.GL_MAU2),
2763                    to_number(null))            GG2_AR_APPR_INVOICE_AMOUNT,
2764       decode(tmp2.DANGLING_GL_RATE_FLAG      ||
2765              tmp2.DANGLING_GL_RATE2_FLAG     ||
2766              tmp2.DANGLING_PA_RATE_FLAG      ||
2767              tmp2.DANGLING_PA_RATE2_FLAG     ||
2768              tmp2.DANGLING_EN_TIME_FLAG      ||
2769              tmp2.DANGLING_GL_TIME_FLAG      ||
2770              tmp2.DANGLING_PA_TIME_FLAG,
2771              null, decode(tmp2.TXN_CURRENCY_CODE,
2772                           l_g2_currency_code,
2773                           tmp2.TXN_AR_AMOUNT_DUE,
2774                           round(tmp2.POU_AR_AMOUNT_DUE *
2775                                 tmp2.GL_RATE2 /
2776                                 tmp2.GL_MAU2) * tmp2.GL_MAU2),
2777                    to_number(null))            GG2_AR_AMOUNT_DUE,
2778       decode(tmp2.DANGLING_GL_RATE_FLAG      ||
2779              tmp2.DANGLING_GL_RATE2_FLAG     ||
2780              tmp2.DANGLING_PA_RATE_FLAG      ||
2781              tmp2.DANGLING_PA_RATE2_FLAG     ||
2782              tmp2.DANGLING_EN_TIME_FLAG      ||
2783              tmp2.DANGLING_GL_TIME_FLAG      ||
2784              tmp2.DANGLING_PA_TIME_FLAG,
2785              null, decode(tmp2.TXN_CURRENCY_CODE,
2786                           l_g2_currency_code,
2787                           tmp2.TXN_AR_AMOUNT_OVERDUE,
2788                           round(tmp2.POU_AR_AMOUNT_OVERDUE *
2789                                 tmp2.GL_RATE2 /
2790                                 tmp2.GL_MAU2) * tmp2.GL_MAU2),
2791                    to_number(null))            GG2_AR_AMOUNT_OVERDUE,
2792       decode(tmp2.DANGLING_GL_RATE_FLAG      ||
2793              tmp2.DANGLING_GL_RATE2_FLAG     ||
2794              tmp2.DANGLING_PA_RATE_FLAG      ||
2795              tmp2.DANGLING_PA_RATE2_FLAG     ||
2796              tmp2.DANGLING_EN_TIME_FLAG      ||
2797              tmp2.DANGLING_GL_TIME_FLAG      ||
2798              tmp2.DANGLING_PA_TIME_FLAG,
2799              null, decode(tmp2.TXN_CURRENCY_CODE,
2800                           l_g2_currency_code,
2801                           tmp2.TXN_REVENUE,
2802                           round(tmp2.POU_REVENUE *
2803                                 tmp2.PA_RATE2 /
2804                                 tmp2.PA_MAU2) * tmp2.PA_MAU2),
2805                    to_number(null))            GP2_REVENUE,
2806       decode(tmp2.DANGLING_GL_RATE_FLAG      ||
2807              tmp2.DANGLING_GL_RATE2_FLAG     ||
2808              tmp2.DANGLING_PA_RATE_FLAG      ||
2809              tmp2.DANGLING_PA_RATE2_FLAG     ||
2810              tmp2.DANGLING_EN_TIME_FLAG      ||
2811              tmp2.DANGLING_GL_TIME_FLAG      ||
2812              tmp2.DANGLING_PA_TIME_FLAG,
2813              null, decode(tmp2.TXN_CURRENCY_CODE,
2814                           l_g2_currency_code,
2815                           tmp2.TXN_FUNDING,
2816                           round(tmp2.POU_FUNDING *
2817                                 tmp2.PA_RATE2 /
2818                                 tmp2.PA_MAU2) * tmp2.PA_MAU2),
2819                    to_number(null))            GP2_FUNDING,
2820       decode(tmp2.DANGLING_GL_RATE_FLAG      ||
2821              tmp2.DANGLING_GL_RATE2_FLAG     ||
2822              tmp2.DANGLING_PA_RATE_FLAG      ||
2823              tmp2.DANGLING_PA_RATE2_FLAG     ||
2824              tmp2.DANGLING_EN_TIME_FLAG      ||
2825              tmp2.DANGLING_GL_TIME_FLAG      ||
2826              tmp2.DANGLING_PA_TIME_FLAG,
2827              null, decode(tmp2.TXN_CURRENCY_CODE,
2828                           l_g2_currency_code,
2829                           tmp2.TXN_INITIAL_FUNDING_AMOUNT,
2830                           round(tmp2.POU_INITIAL_FUNDING_AMOUNT *
2831                                 tmp2.PA_RATE2 /
2832                                 tmp2.PA_MAU2) * tmp2.PA_MAU2),
2833                    to_number(null))            GP2_INITIAL_FUNDING_AMOUNT,
2834       decode(tmp2.DANGLING_GL_RATE_FLAG      ||
2835              tmp2.DANGLING_GL_RATE2_FLAG     ||
2836              tmp2.DANGLING_PA_RATE_FLAG      ||
2837              tmp2.DANGLING_PA_RATE2_FLAG     ||
2838              tmp2.DANGLING_EN_TIME_FLAG      ||
2839              tmp2.DANGLING_GL_TIME_FLAG      ||
2840              tmp2.DANGLING_PA_TIME_FLAG,
2841              null, decode(tmp2.TXN_CURRENCY_CODE,
2842                           l_g2_currency_code,
2843                           tmp2.TXN_ADDITIONAL_FUNDING_AMOUNT,
2844                           round(tmp2.POU_ADDITIONAL_FUNDING_AMOUNT *
2845                                 tmp2.PA_RATE2 /
2846                                 tmp2.PA_MAU2) * tmp2.PA_MAU2),
2847                    to_number(null))            GP2_ADDITIONAL_FUNDING_AMOUNT,
2848       decode(tmp2.DANGLING_GL_RATE_FLAG      ||
2849              tmp2.DANGLING_GL_RATE2_FLAG     ||
2850              tmp2.DANGLING_PA_RATE_FLAG      ||
2851              tmp2.DANGLING_PA_RATE2_FLAG     ||
2852              tmp2.DANGLING_EN_TIME_FLAG      ||
2853              tmp2.DANGLING_GL_TIME_FLAG      ||
2854              tmp2.DANGLING_PA_TIME_FLAG,
2855              null, decode(tmp2.TXN_CURRENCY_CODE,
2856                           l_g2_currency_code,
2857                           tmp2.TXN_CANCELLED_FUNDING_AMOUNT,
2858                           round(tmp2.POU_CANCELLED_FUNDING_AMOUNT *
2859                                 tmp2.PA_RATE2 /
2860                                 tmp2.PA_MAU2) * tmp2.PA_MAU2),
2861                    to_number(null))            GP2_CANCELLED_FUNDING_AMOUNT,
2862       decode(tmp2.DANGLING_GL_RATE_FLAG      ||
2863              tmp2.DANGLING_GL_RATE2_FLAG     ||
2864              tmp2.DANGLING_PA_RATE_FLAG      ||
2865              tmp2.DANGLING_PA_RATE2_FLAG     ||
2866              tmp2.DANGLING_EN_TIME_FLAG      ||
2867              tmp2.DANGLING_GL_TIME_FLAG      ||
2868              tmp2.DANGLING_PA_TIME_FLAG,
2869              null, decode(tmp2.TXN_CURRENCY_CODE,
2870                           l_g2_currency_code,
2871                           tmp2.TXN_FUNDING_ADJUSTMENT_AMOUNT,
2872                           round(tmp2.POU_FUNDING_ADJUSTMENT_AMOUNT *
2873                                 tmp2.PA_RATE2 /
2874                                 tmp2.PA_MAU2) * tmp2.PA_MAU2),
2875                    to_number(null))            GP2_FUNDING_ADJUSTMENT_AMOUNT,
2876       decode(tmp2.DANGLING_GL_RATE_FLAG      ||
2877              tmp2.DANGLING_GL_RATE2_FLAG     ||
2878              tmp2.DANGLING_PA_RATE_FLAG      ||
2879              tmp2.DANGLING_PA_RATE2_FLAG     ||
2880              tmp2.DANGLING_EN_TIME_FLAG      ||
2881              tmp2.DANGLING_GL_TIME_FLAG      ||
2882              tmp2.DANGLING_PA_TIME_FLAG,
2883              null, decode(tmp2.TXN_CURRENCY_CODE,
2884                           l_g2_currency_code,
2885                           tmp2.TXN_REVENUE_WRITEOFF,
2886                           round(tmp2.POU_REVENUE_WRITEOFF *
2887                                 tmp2.PA_RATE2 /
2888                                 tmp2.PA_MAU2) * tmp2.PA_MAU2),
2889                    to_number(null))            GP2_REVENUE_WRITEOFF,
2890       decode(tmp2.DANGLING_GL_RATE_FLAG      ||
2891              tmp2.DANGLING_GL_RATE2_FLAG     ||
2892              tmp2.DANGLING_PA_RATE_FLAG      ||
2893              tmp2.DANGLING_PA_RATE2_FLAG     ||
2894              tmp2.DANGLING_EN_TIME_FLAG      ||
2895              tmp2.DANGLING_GL_TIME_FLAG      ||
2896              tmp2.DANGLING_PA_TIME_FLAG,
2897              null, decode(tmp2.TXN_CURRENCY_CODE,
2898                           l_g2_currency_code,
2899                           tmp2.TXN_AR_INVOICE_AMOUNT,
2900                           round(tmp2.POU_AR_INVOICE_AMOUNT *
2901                                 tmp2.PA_RATE2 /
2902                                 tmp2.PA_MAU2) * tmp2.PA_MAU2),
2903                    to_number(null))            GP2_AR_INVOICE_AMOUNT,
2904       decode(tmp2.DANGLING_GL_RATE_FLAG      ||
2905              tmp2.DANGLING_GL_RATE2_FLAG     ||
2906              tmp2.DANGLING_PA_RATE_FLAG      ||
2907              tmp2.DANGLING_PA_RATE2_FLAG     ||
2908              tmp2.DANGLING_EN_TIME_FLAG      ||
2909              tmp2.DANGLING_GL_TIME_FLAG      ||
2910              tmp2.DANGLING_PA_TIME_FLAG,
2911              null, decode(tmp2.TXN_CURRENCY_CODE,
2912                           l_g2_currency_code,
2913                           tmp2.TXN_AR_CASH_APPLIED_AMOUNT,
2914                           round(tmp2.POU_AR_CASH_APPLIED_AMOUNT *
2915                                 tmp2.PA_RATE2 /
2916                                 tmp2.PA_MAU2) * tmp2.PA_MAU2),
2917                    to_number(null))            GP2_AR_CASH_APPLIED_AMOUNT,
2918       decode(tmp2.DANGLING_GL_RATE_FLAG      ||
2919              tmp2.DANGLING_GL_RATE2_FLAG     ||
2920              tmp2.DANGLING_PA_RATE_FLAG      ||
2921              tmp2.DANGLING_PA_RATE2_FLAG     ||
2922              tmp2.DANGLING_EN_TIME_FLAG      ||
2923              tmp2.DANGLING_GL_TIME_FLAG      ||
2924              tmp2.DANGLING_PA_TIME_FLAG,
2925              null, decode(tmp2.TXN_CURRENCY_CODE,
2926                           l_g2_currency_code,
2927                           tmp2.TXN_AR_INVOICE_WRITEOFF_AMOUNT,
2928                           round(tmp2.POU_AR_INVOICE_WRITEOFF_AMOUNT *
2929                                 tmp2.PA_RATE2 /
2930                                 tmp2.PA_MAU2) * tmp2.PA_MAU2),
2931                    to_number(null))            GP2_AR_INVOICE_WRITEOFF_AMOUNT,
2932       decode(tmp2.DANGLING_GL_RATE_FLAG      ||
2933              tmp2.DANGLING_GL_RATE2_FLAG     ||
2934              tmp2.DANGLING_PA_RATE_FLAG      ||
2935              tmp2.DANGLING_PA_RATE2_FLAG     ||
2936              tmp2.DANGLING_EN_TIME_FLAG      ||
2937              tmp2.DANGLING_GL_TIME_FLAG      ||
2938              tmp2.DANGLING_PA_TIME_FLAG,
2939              null, decode(tmp2.TXN_CURRENCY_CODE,
2940                           l_g2_currency_code,
2941                           tmp2.TXN_AR_CREDIT_MEMO_AMOUNT,
2942                           round(tmp2.POU_AR_CREDIT_MEMO_AMOUNT *
2943                                 tmp2.PA_RATE2 /
2944                                 tmp2.PA_MAU2) * tmp2.PA_MAU2),
2945                    to_number(null))            GP2_AR_CREDIT_MEMO_AMOUNT,
2946       decode(tmp2.DANGLING_GL_RATE_FLAG      ||
2947              tmp2.DANGLING_GL_RATE2_FLAG     ||
2948              tmp2.DANGLING_PA_RATE_FLAG      ||
2949              tmp2.DANGLING_PA_RATE2_FLAG     ||
2950              tmp2.DANGLING_EN_TIME_FLAG      ||
2951              tmp2.DANGLING_GL_TIME_FLAG      ||
2952              tmp2.DANGLING_PA_TIME_FLAG,
2953              null, decode(tmp2.TXN_CURRENCY_CODE,
2954                           l_g2_currency_code,
2955                           tmp2.TXN_UNBILLED_RECEIVABLES,
2956                           round(tmp2.POU_UNBILLED_RECEIVABLES *
2957                                 tmp2.PA_RATE2 /
2958                                 tmp2.PA_MAU2) * tmp2.PA_MAU2),
2959                    to_number(null))            GP2_UNBILLED_RECEIVABLES,
2960       decode(tmp2.DANGLING_GL_RATE_FLAG      ||
2961              tmp2.DANGLING_GL_RATE2_FLAG     ||
2962              tmp2.DANGLING_PA_RATE_FLAG      ||
2963              tmp2.DANGLING_PA_RATE2_FLAG     ||
2964              tmp2.DANGLING_EN_TIME_FLAG      ||
2965              tmp2.DANGLING_GL_TIME_FLAG      ||
2966              tmp2.DANGLING_PA_TIME_FLAG,
2967              null, decode(tmp2.TXN_CURRENCY_CODE,
2968                           l_g2_currency_code,
2969                           tmp2.TXN_UNEARNED_REVENUE,
2970                           round(tmp2.POU_UNEARNED_REVENUE *
2971                                 tmp2.PA_RATE2 /
2972                                 tmp2.PA_MAU2) * tmp2.PA_MAU2),
2973                    to_number(null))            GP2_UNEARNED_REVENUE,
2974       decode(tmp2.DANGLING_GL_RATE_FLAG      ||
2975              tmp2.DANGLING_GL_RATE2_FLAG     ||
2976              tmp2.DANGLING_PA_RATE_FLAG      ||
2977              tmp2.DANGLING_PA_RATE2_FLAG     ||
2978              tmp2.DANGLING_EN_TIME_FLAG      ||
2979              tmp2.DANGLING_GL_TIME_FLAG      ||
2980              tmp2.DANGLING_PA_TIME_FLAG,
2981              null, decode(tmp2.TXN_CURRENCY_CODE,
2982                           l_g2_currency_code,
2983                           tmp2.TXN_AR_UNAPPR_INVOICE_AMOUNT,
2984                           round(tmp2.POU_AR_UNAPPR_INVOICE_AMOUNT *
2985                                 tmp2.PA_RATE2 /
2986                                 tmp2.PA_MAU2) * tmp2.PA_MAU2),
2987                    to_number(null))            GP2_AR_UNAPPR_INVOICE_AMOUNT,
2988       decode(tmp2.DANGLING_GL_RATE_FLAG      ||
2989              tmp2.DANGLING_GL_RATE2_FLAG     ||
2990              tmp2.DANGLING_PA_RATE_FLAG      ||
2991              tmp2.DANGLING_PA_RATE2_FLAG     ||
2992              tmp2.DANGLING_EN_TIME_FLAG      ||
2993              tmp2.DANGLING_GL_TIME_FLAG      ||
2994              tmp2.DANGLING_PA_TIME_FLAG,
2995              null, decode(tmp2.TXN_CURRENCY_CODE,
2996                           l_g2_currency_code,
2997                           tmp2.TXN_AR_APPR_INVOICE_AMOUNT,
2998                           round(tmp2.POU_AR_APPR_INVOICE_AMOUNT *
2999                                 tmp2.PA_RATE2 /
3000                                 tmp2.PA_MAU2) * tmp2.PA_MAU2),
3001                    to_number(null))            GP2_AR_APPR_INVOICE_AMOUNT,
3002       decode(tmp2.DANGLING_GL_RATE_FLAG      ||
3003              tmp2.DANGLING_GL_RATE2_FLAG     ||
3004              tmp2.DANGLING_PA_RATE_FLAG      ||
3005              tmp2.DANGLING_PA_RATE2_FLAG     ||
3006              tmp2.DANGLING_EN_TIME_FLAG      ||
3007              tmp2.DANGLING_GL_TIME_FLAG      ||
3008              tmp2.DANGLING_PA_TIME_FLAG,
3009              null, decode(tmp2.TXN_CURRENCY_CODE,
3010                           l_g2_currency_code,
3011                           tmp2.TXN_AR_AMOUNT_DUE,
3012                           round(tmp2.POU_AR_AMOUNT_DUE *
3013                                 tmp2.PA_RATE2 /
3014                                 tmp2.PA_MAU2) * tmp2.PA_MAU2),
3015                    to_number(null))            GP2_AR_AMOUNT_DUE,
3016       decode(tmp2.DANGLING_GL_RATE_FLAG      ||
3017              tmp2.DANGLING_GL_RATE2_FLAG     ||
3018              tmp2.DANGLING_PA_RATE_FLAG      ||
3019              tmp2.DANGLING_PA_RATE2_FLAG     ||
3020              tmp2.DANGLING_EN_TIME_FLAG      ||
3021              tmp2.DANGLING_GL_TIME_FLAG      ||
3022              tmp2.DANGLING_PA_TIME_FLAG,
3023              null, decode(tmp2.TXN_CURRENCY_CODE,
3024                           l_g2_currency_code,
3025                           tmp2.TXN_AR_AMOUNT_OVERDUE,
3026                           round(tmp2.POU_AR_AMOUNT_OVERDUE *
3027                                 tmp2.PA_RATE2 /
3028                                 tmp2.PA_MAU2) * tmp2.PA_MAU2),
3029                    to_number(null))            GP2_AR_AMOUNT_OVERDUE
3030     from
3031     (
3032     select /*+ ordered
3033                full(tmp2)      use_hash(tmp2)     parallel(tmp2)
3034                full(map)       use_hash(map)      parallel(map)
3035                full(prj_info)  use_hash(prj_info)
3036                full(gl_rt)     use_hash(gl_rt)
3037                full(pa_rt)     use_hash(pa_rt)
3038             */
3039       decode(gl_rt.RATE,
3040              -3, 'E', -- EUR rate for 01-JAN-1999 is missing
3041              decode(sign(gl_rt.RATE),
3042                     -1, 'Y', null))            DANGLING_GL_RATE_FLAG,
3043       decode(l_g2_currency_flag,
3044              'Y', decode(gl_rt.RATE2,
3045                          -3, 'E', -- EUR rate for 01-JAN-1999 is missing
3046                          decode(sign(gl_rt.RATE2),
3047                                 -1, 'Y', null)),
3048              null)                             DANGLING_GL_RATE2_FLAG,
3049       decode(pa_rt.RATE,
3050              -3, 'E', -- EUR rate for 01-JAN-1999 is missing
3051              decode(sign(pa_rt.RATE),
3052                     -1, 'Y', null))            DANGLING_PA_RATE_FLAG,
3053       decode(l_g2_currency_flag,
3054              'Y', decode(pa_rt.RATE2,
3055                          -3, 'E', -- EUR rate for 01-JAN-1999 is missing
3056                          decode(sign(pa_rt.RATE2),
3057                                 -1, 'Y', null)),
3058              null)                             DANGLING_PA_RATE2_FLAG,
3059       decode(sign(prj_info.EN_CALENDAR_MIN_DATE -
3060                   tmp2.GL_TIME_ID) +
3061              sign(tmp2.GL_TIME_ID -
3062                   prj_info.EN_CALENDAR_MAX_DATE),
3063              0, 'Y', null)                     DANGLING_EN_TIME_FLAG,
3064       decode(sign(prj_info.GL_CALENDAR_MIN_DATE -
3065                   tmp2.GL_TIME_ID) +
3066              sign(tmp2.GL_TIME_ID -
3067                   prj_info.GL_CALENDAR_MAX_DATE),
3068              0, 'Y', null)                     DANGLING_GL_TIME_FLAG,
3069       decode(sign(prj_info.PA_CALENDAR_MIN_DATE -
3070                   tmp2.PA_TIME_ID) +
3071              sign(tmp2.PA_TIME_ID -
3072                   prj_info.PA_CALENDAR_MAX_DATE),
3073              0, 'Y', null)                     DANGLING_PA_TIME_FLAG,
3074       tmp2.ROWID                               ROW_ID,
3075       tmp2.PROJECT_ID,
3076       tmp2.PROJECT_ORG_ID,
3077       tmp2.PROJECT_ORGANIZATION_ID,
3078       tmp2.GL_TIME_ID,
3079       tmp2.GL_PERIOD_NAME,
3080       tmp2.PA_TIME_ID,
3081       tmp2.PA_PERIOD_NAME,
3082       prj_info.GL_CALENDAR_ID,
3083       prj_info.PA_CALENDAR_ID,
3084       gl_rt.RATE                               GL_RATE1,
3085       gl_rt.RATE2                              GL_RATE2,
3086       pa_rt.RATE                               PA_RATE1,
3087       pa_rt.RATE2                              PA_RATE2,
3088       gl_rt.MAU                                GL_MAU1,
3089       gl_rt.MAU2                               GL_MAU2,
3090       pa_rt.MAU                                PA_MAU1,
3091       pa_rt.MAU2                               PA_MAU2,
3092       tmp2.TXN_CURRENCY_CODE,
3093       tmp2.TXN_REVENUE,
3094       tmp2.TXN_FUNDING,
3095       tmp2.TXN_INITIAL_FUNDING_AMOUNT,
3096       tmp2.TXN_ADDITIONAL_FUNDING_AMOUNT,
3097       tmp2.TXN_CANCELLED_FUNDING_AMOUNT,
3098       tmp2.TXN_FUNDING_ADJUSTMENT_AMOUNT,
3099       tmp2.TXN_REVENUE_WRITEOFF,
3100       tmp2.TXN_AR_INVOICE_AMOUNT,
3101       tmp2.TXN_AR_CASH_APPLIED_AMOUNT,
3102       tmp2.TXN_AR_INVOICE_WRITEOFF_AMOUNT,
3103       tmp2.TXN_AR_CREDIT_MEMO_AMOUNT,
3104       tmp2.TXN_UNBILLED_RECEIVABLES,
3105       tmp2.TXN_UNEARNED_REVENUE,
3106       tmp2.TXN_AR_UNAPPR_INVOICE_AMOUNT,
3107       tmp2.TXN_AR_APPR_INVOICE_AMOUNT,
3108       tmp2.TXN_AR_AMOUNT_DUE,
3109       tmp2.TXN_AR_AMOUNT_OVERDUE,
3110       tmp2.PRJ_REVENUE,
3111       tmp2.PRJ_FUNDING,
3112       tmp2.PRJ_INITIAL_FUNDING_AMOUNT,
3113       tmp2.PRJ_ADDITIONAL_FUNDING_AMOUNT,
3114       tmp2.PRJ_CANCELLED_FUNDING_AMOUNT,
3115       tmp2.PRJ_FUNDING_ADJUSTMENT_AMOUNT,
3116       tmp2.PRJ_REVENUE_WRITEOFF,
3117       tmp2.PRJ_AR_INVOICE_AMOUNT,
3118       tmp2.PRJ_AR_CASH_APPLIED_AMOUNT,
3119       tmp2.PRJ_AR_INVOICE_WRITEOFF_AMOUNT,
3120       tmp2.PRJ_AR_CREDIT_MEMO_AMOUNT,
3121       tmp2.PRJ_UNBILLED_RECEIVABLES,
3122       tmp2.PRJ_UNEARNED_REVENUE,
3123       tmp2.PRJ_AR_UNAPPR_INVOICE_AMOUNT,
3124       tmp2.PRJ_AR_APPR_INVOICE_AMOUNT,
3125       tmp2.PRJ_AR_AMOUNT_DUE,
3126       tmp2.PRJ_AR_AMOUNT_OVERDUE,
3127       tmp2.POU_REVENUE,
3128       tmp2.POU_FUNDING,
3129       tmp2.POU_INITIAL_FUNDING_AMOUNT,
3130       tmp2.POU_ADDITIONAL_FUNDING_AMOUNT,
3131       tmp2.POU_CANCELLED_FUNDING_AMOUNT,
3132       tmp2.POU_FUNDING_ADJUSTMENT_AMOUNT,
3133       tmp2.POU_REVENUE_WRITEOFF,
3134       tmp2.POU_AR_INVOICE_AMOUNT,
3135       tmp2.POU_AR_CASH_APPLIED_AMOUNT,
3136       tmp2.POU_AR_INVOICE_WRITEOFF_AMOUNT,
3137       tmp2.POU_AR_CREDIT_MEMO_AMOUNT,
3138       tmp2.POU_UNBILLED_RECEIVABLES,
3139       tmp2.POU_UNEARNED_REVENUE,
3140       tmp2.POU_AR_UNAPPR_INVOICE_AMOUNT,
3141       tmp2.POU_AR_APPR_INVOICE_AMOUNT,
3142       tmp2.POU_AR_AMOUNT_DUE,
3143       tmp2.POU_AR_AMOUNT_OVERDUE,
3144       tmp2.INITIAL_FUNDING_COUNT,
3145       tmp2.ADDITIONAL_FUNDING_COUNT,
3146       tmp2.CANCELLED_FUNDING_COUNT,
3147       tmp2.FUNDING_ADJUSTMENT_COUNT,
3148       tmp2.AR_INVOICE_COUNT,
3149       tmp2.AR_CASH_APPLIED_COUNT,
3150       tmp2.AR_INVOICE_WRITEOFF_COUNT,
3151       tmp2.AR_CREDIT_MEMO_COUNT,
3152       tmp2.AR_UNAPPR_INVOICE_COUNT,
3153       tmp2.AR_APPR_INVOICE_COUNT,
3154       tmp2.AR_COUNT_DUE,
3155       tmp2.AR_COUNT_OVERDUE
3156     from
3157       PJI_FM_DNGL_ACT       tmp2,
3158       PJI_FM_PROJ_BATCH_MAP map,
3159       PJI_ORG_EXTR_INFO     prj_info,
3160       PJI_FM_AGGR_DLY_RATES     gl_rt,
3161       PJI_FM_AGGR_DLY_RATES     pa_rt
3162     where
3163       tmp2.WORKER_ID            = 0                      and
3164       map.WORKER_ID             = p_worker_id            and
3165       map.PROJECT_ID            = tmp2.PROJECT_ID        and
3166       tmp2.PROJECT_ORG_ID       = prj_info.ORG_ID        and
3167       gl_rt.WORKER_ID           = -1                     and
3168       tmp2.GL_TIME_ID           = gl_rt.TIME_ID          and
3169       prj_info.PF_CURRENCY_CODE = gl_rt.PF_CURRENCY_CODE and
3170       pa_rt.WORKER_ID           = -1                     and
3171       tmp2.PA_TIME_ID           = pa_rt.TIME_ID          and
3172       prj_info.PF_CURRENCY_CODE = pa_rt.PF_CURRENCY_CODE
3173     ) tmp2;
3174 
3175     PJI_PROCESS_UTIL.REGISTER_STEP_COMPLETION(l_process, 'PJI_FM_SUM_EXTR.DANGLING_ACT_ROWS(p_worker_id);');
3176 
3177     commit;
3178 
3179   end DANGLING_ACT_ROWS;
3180 
3181 
3182   -- -----------------------------------------------------
3183   -- procedure PURGE_DANGLING_FIN_ROWS
3184   -- -----------------------------------------------------
3185   procedure PURGE_DANGLING_FIN_ROWS (p_worker_id in number) is
3186 
3187     l_process varchar2(30);
3188 
3189   begin
3190 
3191     l_process := PJI_FM_SUM_MAIN.g_process || p_worker_id;
3192 
3193     if (not PJI_PROCESS_UTIL.NEED_TO_RUN_STEP(l_process, 'PJI_FM_SUM_EXTR.PURGE_DANGLING_FIN_ROWS(p_worker_id);')) then
3194       return;
3195     end if;
3196 
3197     /* delete /*+ parallel(fin)
3198     from   PJI_FM_DNGL_FIN fin
3199     where  WORKER_ID = 0 and
3200            (RECORD_TYPE = 'M' or
3201             ROWID in (select ROW_ID
3202                       from   PJI_FM_AGGR_FIN2
3203                       where  WORKER_ID = p_worker_id)); */
3204 -- Commented above and added below for Bug 7357456
3205 -- Spliting the above delete into two different deletes statements
3206     delete from PJI_FM_DNGL_FIN where worker_id = 0 and record_type = 'M';
3207 
3208     delete from PJI_FM_DNGL_FIN where worker_id = 0 and ROWID in (select row_id from PJI_FM_AGGR_FIN2 where worker_id = p_worker_id);
3209 -- End for Bug# 7357456
3210 
3211     PJI_PROCESS_UTIL.REGISTER_STEP_COMPLETION(l_process, 'PJI_FM_SUM_EXTR.PURGE_DANGLING_FIN_ROWS(p_worker_id);');
3212 
3213     commit;
3214 
3215   end PURGE_DANGLING_FIN_ROWS;
3216 
3217 
3218   -- -----------------------------------------------------
3219   -- procedure PURGE_DANGLING_ACT_ROWS
3220   -- -----------------------------------------------------
3221   procedure PURGE_DANGLING_ACT_ROWS (p_worker_id in number) is
3222 
3223     l_process varchar2(30);
3224 
3225   begin
3226 
3227     l_process := PJI_FM_SUM_MAIN.g_process || p_worker_id;
3228 
3229     if (not PJI_PROCESS_UTIL.NEED_TO_RUN_STEP(l_process, 'PJI_FM_SUM_EXTR.PURGE_DANGLING_ACT_ROWS(p_worker_id);')) then
3230       return;
3231     end if;
3232 
3233     delete /*+ parallel(act) */
3234     from   PJI_FM_DNGL_ACT act
3235     where  WORKER_ID = 0 and
3236            ROWID in (select ROW_ID
3237                      from   PJI_FM_AGGR_ACT2
3238                      where  WORKER_ID = p_worker_id);
3239 
3240     PJI_PROCESS_UTIL.REGISTER_STEP_COMPLETION(l_process, 'PJI_FM_SUM_EXTR.PURGE_DANGLING_ACT_ROWS(p_worker_id);');
3241 
3242     commit;
3243 
3244   end PURGE_DANGLING_ACT_ROWS;
3245 
3246 
3247   -- -----------------------------------------------------
3248   -- procedure FIN_SUMMARY
3249   -- -----------------------------------------------------
3250   procedure FIN_SUMMARY (p_worker_id in number) is
3251 
3252     l_process           varchar2(30);
3253     l_schema            varchar2(30);
3254 
3255     l_transition_flag   varchar2(1);
3256     l_params_cost_flag  varchar2(1);
3257     l_params_util_flag  varchar2(1);
3258     l_txn_currency_flag varchar2(1);
3259     l_g2_currency_flag  varchar2(1);
3260     l_g1_currency_code  varchar2(30);
3261     l_g2_currency_code  varchar2(30);
3262 
3263   begin
3264 
3265     l_process := PJI_FM_SUM_MAIN.g_process || p_worker_id;
3266 
3267     if (not PJI_PROCESS_UTIL.NEED_TO_RUN_STEP(l_process, 'PJI_FM_SUM_EXTR.FIN_SUMMARY(p_worker_id);')) then
3268       return;
3269     end if;
3270 
3271     l_transition_flag :=
3272           PJI_PROCESS_UTIL.GET_PROCESS_PARAMETER(PJI_FM_SUM_MAIN.g_process,
3273                                                  'TRANSITION');
3274 
3275     if (l_transition_flag = 'Y') then
3276 
3277       l_params_cost_flag :=
3278       nvl(PJI_PROCESS_UTIL.GET_PROCESS_PARAMETER(PJI_FM_SUM_MAIN.g_process,
3279                                                  'CONFIG_COST_FLAG'), 'N');
3280       l_params_util_flag :=
3281       nvl(PJI_PROCESS_UTIL.GET_PROCESS_PARAMETER(PJI_FM_SUM_MAIN.g_process,
3282                                                  'CONFIG_UTIL_FLAG'), 'N');
3283 
3284     else -- l_transition is null or 'N'
3285 
3286       l_params_cost_flag :=
3287                          nvl(PJI_UTILS.GET_PARAMETER('CONFIG_COST_FLAG'), 'N');
3288       l_params_util_flag :=
3289                          nvl(PJI_UTILS.GET_PARAMETER('CONFIG_UTIL_FLAG'), 'N');
3290 
3291     end if;
3292 
3293     select
3294       TXN_CURR_FLAG,
3295       GLOBAL_CURR2_FLAG
3296     into
3297       l_txn_currency_flag,
3298       l_g2_currency_flag
3299     from
3300       PJI_SYSTEM_SETTINGS;
3301 
3302     l_g1_currency_code := PJI_UTILS.GET_GLOBAL_PRIMARY_CURRENCY;
3303     l_g2_currency_code := PJI_UTILS.GET_GLOBAL_SECONDARY_CURRENCY;
3304 
3305     insert /*+ append parallel(fin2_i) */ into PJI_FM_AGGR_FIN2 fin2_i  --  in FIN_SUMMARY
3306     (
3307       WORKER_ID,
3308       DANGLING_RECVR_GL_RATE_FLAG,
3309       DANGLING_RECVR_GL_RATE2_FLAG,
3310       DANGLING_RECVR_PA_RATE_FLAG,
3311       DANGLING_RECVR_PA_RATE2_FLAG,
3312       DANGLING_PRVDR_EN_TIME_FLAG,
3313       DANGLING_RECVR_EN_TIME_FLAG,
3314       DANGLING_EXP_EN_TIME_FLAG,
3315       DANGLING_PRVDR_GL_TIME_FLAG,
3316       DANGLING_RECVR_GL_TIME_FLAG,
3317       DANGLING_EXP_GL_TIME_FLAG,
3318       DANGLING_PRVDR_PA_TIME_FLAG,
3319       DANGLING_RECVR_PA_TIME_FLAG,
3320       DANGLING_EXP_PA_TIME_FLAG,
3321       ROW_ID,
3322       PJI_PROJECT_RECORD_FLAG,
3323       PJI_RESOURCE_RECORD_FLAG,
3324       RECORD_TYPE,
3325       CMT_RECORD_TYPE,
3326       PROJECT_ID,
3327       PROJECT_ORG_ID,
3328       PROJECT_ORGANIZATION_ID,
3329       PROJECT_TYPE_CLASS,
3330       PERSON_ID,
3331       EXPENDITURE_ORG_ID,
3332       EXPENDITURE_ORGANIZATION_ID,
3333       EXP_EVT_TYPE_ID,
3334       WORK_TYPE_ID,
3335       JOB_ID,
3336       TASK_ID,
3337       VENDOR_ID,
3338       EXPENDITURE_TYPE,
3339       EVENT_TYPE,
3340       EVENT_TYPE_CLASSIFICATION,
3341       EXPENDITURE_CATEGORY,
3342       REVENUE_CATEGORY,
3343       NON_LABOR_RESOURCE,
3344       BOM_LABOR_RESOURCE_ID,
3345       BOM_EQUIPMENT_RESOURCE_ID,
3346       INVENTORY_ITEM_ID,
3347       PO_LINE_ID,
3348       ASSIGNMENT_ID,
3349       SYSTEM_LINKAGE_FUNCTION,
3350       RESOURCE_CLASS_CODE,
3351       RECVR_GL_TIME_ID,
3352       GL_PERIOD_NAME,
3353       PRVDR_GL_TIME_ID,
3354       RECVR_PA_TIME_ID,
3355       PA_PERIOD_NAME,
3356       PRVDR_PA_TIME_ID,
3357       EXPENDITURE_ITEM_TIME_ID,
3358       PJ_GL_CALENDAR_ID,
3359       PJ_PA_CALENDAR_ID,
3360       RS_GL_CALENDAR_ID,
3361       RS_PA_CALENDAR_ID,
3362       PRJ_REVENUE,
3363       PRJ_LABOR_REVENUE,
3364       PRJ_REVENUE_WRITEOFF,
3365       PRJ_RAW_COST,
3366       PRJ_BRDN_COST,
3367       PRJ_BILL_RAW_COST,
3368       PRJ_BILL_BRDN_COST,
3369       PRJ_LABOR_RAW_COST,
3370       PRJ_LABOR_BRDN_COST,
3371       PRJ_BILL_LABOR_RAW_COST,
3372       PRJ_BILL_LABOR_BRDN_COST,
3373       POU_REVENUE,
3374       POU_LABOR_REVENUE,
3375       POU_REVENUE_WRITEOFF,
3376       POU_RAW_COST,
3377       POU_BRDN_COST,
3378       POU_BILL_RAW_COST,
3379       POU_BILL_BRDN_COST,
3380       POU_LABOR_RAW_COST,
3381       POU_LABOR_BRDN_COST,
3382       POU_BILL_LABOR_RAW_COST,
3383       POU_BILL_LABOR_BRDN_COST,
3384       EOU_RAW_COST,
3385       EOU_BRDN_COST,
3386       EOU_BILL_RAW_COST,
3387       EOU_BILL_BRDN_COST,
3388       TXN_CURRENCY_CODE,
3389       TXN_REVENUE,
3390       TXN_RAW_COST,
3391       TXN_BRDN_COST,
3392       TXN_BILL_RAW_COST,
3393       TXN_BILL_BRDN_COST,
3394       LABOR_HRS,
3395       BILL_LABOR_HRS,
3396       GG1_REVENUE,
3397       GG1_LABOR_REVENUE,
3398       GG1_REVENUE_WRITEOFF,
3399       GG1_RAW_COST,
3400       GG1_BRDN_COST,
3401       GG1_BILL_RAW_COST,
3402       GG1_BILL_BRDN_COST,
3403       GG1_LABOR_RAW_COST,
3404       GG1_LABOR_BRDN_COST,
3405       GG1_BILL_LABOR_RAW_COST,
3406       GG1_BILL_LABOR_BRDN_COST,
3407       GP1_REVENUE,
3408       GP1_LABOR_REVENUE,
3409       GP1_REVENUE_WRITEOFF,
3410       GP1_RAW_COST,
3411       GP1_BRDN_COST,
3412       GP1_BILL_RAW_COST,
3413       GP1_BILL_BRDN_COST,
3414       GP1_LABOR_RAW_COST,
3415       GP1_LABOR_BRDN_COST,
3416       GP1_BILL_LABOR_RAW_COST,
3417       GP1_BILL_LABOR_BRDN_COST,
3418       GG2_REVENUE,
3419       GG2_LABOR_REVENUE,
3420       GG2_REVENUE_WRITEOFF,
3421       GG2_RAW_COST,
3422       GG2_BRDN_COST,
3423       GG2_BILL_RAW_COST,
3424       GG2_BILL_BRDN_COST,
3425       GG2_LABOR_RAW_COST,
3426       GG2_LABOR_BRDN_COST,
3427       GG2_BILL_LABOR_RAW_COST,
3428       GG2_BILL_LABOR_BRDN_COST,
3429       GP2_REVENUE,
3430       GP2_LABOR_REVENUE,
3431       GP2_REVENUE_WRITEOFF,
3432       GP2_RAW_COST,
3433       GP2_BRDN_COST,
3434       GP2_BILL_RAW_COST,
3435       GP2_BILL_BRDN_COST,
3436       GP2_LABOR_RAW_COST,
3437       GP2_LABOR_BRDN_COST,
3438       GP2_BILL_LABOR_RAW_COST,
3439       GP2_BILL_LABOR_BRDN_COST,
3440       TOTAL_HRS_A,
3441       BILL_HRS_A
3442     )
3443     select
3444       tmp1.WORKER_ID,
3445       tmp1.DANGLING_RECVR_GL_RATE_FLAG,
3446       tmp1.DANGLING_RECVR_GL_RATE2_FLAG,
3447       tmp1.DANGLING_RECVR_PA_RATE_FLAG,
3448       tmp1.DANGLING_RECVR_PA_RATE2_FLAG,
3449       tmp1.DANGLING_PRVDR_EN_TIME_FLAG,
3450       tmp1.DANGLING_RECVR_EN_TIME_FLAG,
3451       tmp1.DANGLING_EXP_EN_TIME_FLAG,
3452       tmp1.DANGLING_PRVDR_GL_TIME_FLAG,
3453       tmp1.DANGLING_RECVR_GL_TIME_FLAG,
3454       tmp1.DANGLING_EXP_GL_TIME_FLAG,
3455       tmp1.DANGLING_PRVDR_PA_TIME_FLAG,
3456       tmp1.DANGLING_RECVR_PA_TIME_FLAG,
3457       tmp1.DANGLING_EXP_PA_TIME_FLAG,
3458       null ROW_ID,
3459       decode(l_params_cost_flag,
3460              'N', 'N', tmp1.PJI_PROJECT_RECORD_FLAG) PJI_PROJECT_RECORD_FLAG,
3461       decode(l_params_util_flag,
3462              'N', 'N', tmp1.PJI_RESOURCE_RECORD_FLAG) PJI_RESOURCE_RECORD_FLAG,
3463       'A' RECORD_TYPE,
3464       null CMT_RECORD_TYPE,
3465       tmp1.PROJECT_ID,
3466       tmp1.PROJECT_ORG_ID,
3467       tmp1.PROJECT_ORGANIZATION_ID,
3468       tmp1.PROJECT_TYPE_CLASS,
3469       tmp1.PERSON_ID,
3470       tmp1.EXPENDITURE_ORG_ID,
3471       tmp1.EXPENDITURE_ORGANIZATION_ID,
3472       tmp1.EXP_EVT_TYPE_ID,
3473       tmp1.WORK_TYPE_ID,
3474       tmp1.JOB_ID,
3475       tmp1.TASK_ID,
3476       tmp1.VENDOR_ID,
3477       tmp1.EXPENDITURE_TYPE,
3478       tmp1.EVENT_TYPE,
3479       tmp1.EVENT_TYPE_CLASSIFICATION,
3480       tmp1.EXPENDITURE_CATEGORY,
3481       tmp1.REVENUE_CATEGORY,
3482       tmp1.NON_LABOR_RESOURCE,
3483       tmp1.BOM_LABOR_RESOURCE_ID,
3484       tmp1.BOM_EQUIPMENT_RESOURCE_ID,
3485       tmp1.INVENTORY_ITEM_ID,
3486       tmp1.PO_LINE_ID,
3487       tmp1.ASSIGNMENT_ID,
3488       tmp1.SYSTEM_LINKAGE_FUNCTION,
3489       tmp1.RESOURCE_CLASS_CODE,
3490       tmp1.RECVR_GL_TIME_ID,
3491       tmp1.GL_PERIOD_NAME,
3492       tmp1.PRVDR_GL_TIME_ID,
3493       tmp1.RECVR_PA_TIME_ID,
3494       tmp1.PA_PERIOD_NAME,
3495       tmp1.PRVDR_PA_TIME_ID,
3496       tmp1.EXPENDITURE_ITEM_TIME_ID,
3497       tmp1.PJ_GL_CALENDAR_ID,
3498       tmp1.PJ_PA_CALENDAR_ID,
3499       tmp1.RS_GL_CALENDAR_ID,
3500       tmp1.RS_PA_CALENDAR_ID,
3501       tmp1.PRJ_REVENUE,
3502       tmp1.PRJ_LABOR_REVENUE,
3503       tmp1.PRJ_REVENUE_WRITEOFF,
3504       tmp1.PRJ_RAW_COST,
3505       tmp1.PRJ_BRDN_COST,
3506       tmp1.PRJ_BILL_RAW_COST,
3507       tmp1.PRJ_BILL_BRDN_COST,
3508       tmp1.PRJ_LABOR_RAW_COST,
3509       tmp1.PRJ_LABOR_BRDN_COST,
3510       tmp1.PRJ_BILL_LABOR_RAW_COST,
3511       tmp1.PRJ_BILL_LABOR_BRDN_COST,
3512       tmp1.POU_REVENUE,
3513       tmp1.POU_LABOR_REVENUE,
3514       tmp1.POU_REVENUE_WRITEOFF,
3515       tmp1.POU_RAW_COST,
3516       tmp1.POU_BRDN_COST,
3517       tmp1.POU_BILL_RAW_COST,
3518       tmp1.POU_BILL_BRDN_COST,
3519       tmp1.POU_LABOR_RAW_COST,
3520       tmp1.POU_LABOR_BRDN_COST,
3521       tmp1.POU_BILL_LABOR_RAW_COST,
3522       tmp1.POU_BILL_LABOR_BRDN_COST,
3523       tmp1.EOU_RAW_COST,
3524       tmp1.EOU_BRDN_COST,
3525       tmp1.EOU_BILL_RAW_COST,
3526       tmp1.EOU_BILL_BRDN_COST,
3527       tmp1.TXN_CURRENCY_CODE,
3528       tmp1.TXN_REVENUE,
3529       tmp1.TXN_RAW_COST,
3530       tmp1.TXN_BRDN_COST,
3531       tmp1.TXN_BILL_RAW_COST,
3532       tmp1.TXN_BILL_BRDN_COST,
3533       tmp1.LABOR_HRS,
3534       tmp1.BILL_LABOR_HRS,
3535       decode(nvl(tmp1.PJI_PROJECT_RECORD_FLAG, 'N') ||
3536              sign(tmp1.WORKER_ID),
3537              'Y1', decode(tmp1.TXN_CURRENCY_CODE,
3538                           l_g1_currency_code,
3539                           tmp1.TXN_REVENUE,
3540                           round(tmp1.POU_REVENUE *
3541                                 tmp1.PRJ_GL_RATE1 /
3542                                 PRJ_GL_MAU1) * PRJ_GL_MAU1),
3543                    to_number(null))            GG1_REVENUE,
3544       decode(nvl(tmp1.PJI_PROJECT_RECORD_FLAG, 'N') ||
3545              sign(tmp1.WORKER_ID),
3546              'Y1', -- decode(tmp1.TXN_CURRENCY_CODE,
3547                    --        l_g1_currency_code,
3548                    --        tmp1.TXN_LABOR_REVENUE,
3549                           round(tmp1.POU_LABOR_REVENUE *
3550                                 tmp1.PRJ_GL_RATE1 /
3551                                 PRJ_GL_MAU1) * PRJ_GL_MAU1
3552                    -- )
3553                    ,
3554                    to_number(null))            GG1_LABOR_REVENUE,
3555       decode(nvl(tmp1.PJI_PROJECT_RECORD_FLAG, 'N') ||
3556              sign(tmp1.WORKER_ID),
3557              'Y1', -- decode(tmp1.TXN_CURRENCY_CODE,
3558                    --        l_g1_currency_code,
3559                    --        tmp1.TXN_REVENUE_WRITEOFF,
3560                           round(tmp1.POU_REVENUE_WRITEOFF *
3561                                 tmp1.PRJ_GL_RATE1 /
3562                                 PRJ_GL_MAU1) * PRJ_GL_MAU1
3563                    -- )
3564                    ,
3565                    to_number(null))            GG1_REVENUE_WRITEOFF,
3566       decode(nvl(tmp1.PJI_PROJECT_RECORD_FLAG, 'N') ||
3567              sign(tmp1.WORKER_ID),
3568              'Y1', decode(tmp1.TXN_CURRENCY_CODE,
3569                           l_g1_currency_code,
3570                           tmp1.TXN_RAW_COST,
3571                           round(tmp1.POU_RAW_COST *
3572                                 tmp1.PRJ_GL_RATE1 /
3573                                 PRJ_GL_MAU1) * PRJ_GL_MAU1),
3574                    to_number(null))            GG1_RAW_COST,
3575       decode(nvl(tmp1.PJI_PROJECT_RECORD_FLAG, 'N') ||
3576              sign(tmp1.WORKER_ID),
3577              'Y1', decode(tmp1.TXN_CURRENCY_CODE,
3578                           l_g1_currency_code,
3579                           tmp1.TXN_BRDN_COST,
3580                           round(tmp1.POU_BRDN_COST *
3581                                 tmp1.PRJ_GL_RATE1 /
3582                                 PRJ_GL_MAU1) * PRJ_GL_MAU1),
3583                    to_number(null))            GG1_BRDN_COST,
3584       decode(nvl(tmp1.PJI_PROJECT_RECORD_FLAG, 'N') ||
3585              sign(tmp1.WORKER_ID),
3586              'Y1', decode(tmp1.TXN_CURRENCY_CODE,
3587                           l_g1_currency_code,
3588                           tmp1.TXN_BILL_RAW_COST,
3589                           round(tmp1.POU_BILL_RAW_COST *
3590                                 tmp1.PRJ_GL_RATE1 /
3591                                 PRJ_GL_MAU1) * PRJ_GL_MAU1),
3592                    to_number(null))            GG1_BILL_RAW_COST,
3593       decode(nvl(tmp1.PJI_PROJECT_RECORD_FLAG, 'N') ||
3594              sign(tmp1.WORKER_ID),
3595              'Y1', decode(tmp1.TXN_CURRENCY_CODE,
3596                           l_g1_currency_code,
3597                           tmp1.TXN_BILL_BRDN_COST,
3598                           round(tmp1.POU_BILL_BRDN_COST *
3599                                 tmp1.PRJ_GL_RATE1 /
3600                                 PRJ_GL_MAU1) * PRJ_GL_MAU1),
3601                    to_number(null))            GG1_BILL_BRDN_COST,
3602       decode(nvl(tmp1.PJI_PROJECT_RECORD_FLAG, 'N') ||
3603              sign(tmp1.WORKER_ID),
3604              'Y1', -- decode(tmp1.TXN_CURRENCY_CODE,
3605                    --        l_g1_currency_code,
3606                    --        tmp1.TXN_LABOR_RAW_COST,
3607                           round(tmp1.POU_LABOR_RAW_COST *
3608                                 tmp1.PRJ_GL_RATE1 /
3609                                 PRJ_GL_MAU1) * PRJ_GL_MAU1
3610                    -- )
3611                    ,
3612                    to_number(null))            GG1_LABOR_RAW_COST,
3613       decode(nvl(tmp1.PJI_PROJECT_RECORD_FLAG, 'N') ||
3614              sign(tmp1.WORKER_ID),
3615              'Y1', -- decode(tmp1.TXN_CURRENCY_CODE,
3616                    --        l_g1_currency_code,
3617                    --        tmp1.TXN_LABOR_BRDN_COST,
3618                           round(tmp1.POU_LABOR_BRDN_COST *
3619                                 tmp1.PRJ_GL_RATE1 /
3620                                 PRJ_GL_MAU1) * PRJ_GL_MAU1
3621                    -- )
3622                    ,
3623                    to_number(null))            GG1_LABOR_BRDN_COST,
3624       decode(nvl(tmp1.PJI_PROJECT_RECORD_FLAG, 'N') ||
3625              sign(tmp1.WORKER_ID),
3626              'Y1', -- decode(tmp1.TXN_CURRENCY_CODE,
3627                    --        l_g1_currency_code,
3628                    --        tmp1.TXN_BILL_LABOR_RAW_COST,
3629                           round(tmp1.POU_BILL_LABOR_RAW_COST *
3630                                 tmp1.PRJ_GL_RATE1 /
3631                                 PRJ_GL_MAU1) * PRJ_GL_MAU1
3632                    -- )
3633                    ,
3634                    to_number(null))            GG1_BILL_LABOR_RAW_COST,
3635       decode(nvl(tmp1.PJI_PROJECT_RECORD_FLAG, 'N') ||
3636              sign(tmp1.WORKER_ID),
3637              'Y1', -- decode(tmp1.TXN_CURRENCY_CODE,
3638                    --        l_g1_currency_code,
3639                    --        tmp1.TXN_BILL_LABOR_BRDN_COST,
3640                           round(tmp1.POU_BILL_LABOR_BRDN_COST *
3641                                 tmp1.PRJ_GL_RATE1 /
3642                                 PRJ_GL_MAU1) * PRJ_GL_MAU1
3643                    -- )
3644                    ,
3645                    to_number(null))            GG1_BILL_LABOR_BRDN_COST,
3646       decode(nvl(tmp1.PJI_PROJECT_RECORD_FLAG, 'N') ||
3647              sign(tmp1.WORKER_ID),
3648              'Y1', decode(tmp1.TXN_CURRENCY_CODE,
3649                           l_g1_currency_code,
3650                           tmp1.TXN_REVENUE,
3651                           round(tmp1.POU_REVENUE *
3652                                 tmp1.PRJ_PA_RATE1 /
3653                                 PRJ_PA_MAU1) * PRJ_PA_MAU1),
3654                    to_number(null))            GP1_REVENUE,
3655       decode(nvl(tmp1.PJI_PROJECT_RECORD_FLAG, 'N') ||
3656              sign(tmp1.WORKER_ID),
3657              'Y1', -- decode(tmp1.TXN_CURRENCY_CODE,
3658                    --        l_g1_currency_code,
3659                    --        tmp1.TXN_LABOR_REVENUE,
3660                           round(tmp1.POU_LABOR_REVENUE *
3661                                 tmp1.PRJ_PA_RATE1 /
3662                                 PRJ_PA_MAU1) * PRJ_PA_MAU1
3663                    -- )
3664                    ,
3665                    to_number(null))            GP1_LABOR_REVENUE,
3666       decode(nvl(tmp1.PJI_PROJECT_RECORD_FLAG, 'N') ||
3667              sign(tmp1.WORKER_ID),
3668              'Y1', -- decode(tmp1.TXN_CURRENCY_CODE,
3669                    --        l_g1_currency_code,
3670                    --        tmp1.TXN_REVENUE_WRITEOFF,
3671                           round(tmp1.POU_REVENUE_WRITEOFF *
3672                                 tmp1.PRJ_PA_RATE1 /
3673                                 PRJ_PA_MAU1) * PRJ_PA_MAU1
3674                    -- )
3675                    ,
3676                    to_number(null))            GP1_REVENUE_WRITEOFF,
3677       decode(nvl(tmp1.PJI_PROJECT_RECORD_FLAG, 'N') ||
3678              sign(tmp1.WORKER_ID),
3679              'Y1', decode(tmp1.TXN_CURRENCY_CODE,
3680                           l_g1_currency_code,
3681                           tmp1.TXN_RAW_COST,
3682                           round(tmp1.POU_RAW_COST *
3683                                 tmp1.PRJ_PA_RATE1 /
3684                                 PRJ_PA_MAU1) * PRJ_PA_MAU1),
3685                    to_number(null))            GP1_RAW_COST,
3686       decode(nvl(tmp1.PJI_PROJECT_RECORD_FLAG, 'N') ||
3687              sign(tmp1.WORKER_ID),
3688              'Y1', decode(tmp1.TXN_CURRENCY_CODE,
3689                           l_g1_currency_code,
3690                           tmp1.TXN_BRDN_COST,
3691                           round(tmp1.POU_BRDN_COST *
3692                                 tmp1.PRJ_PA_RATE1 /
3693                                 PRJ_PA_MAU1) * PRJ_PA_MAU1),
3694                    to_number(null))            GP1_BRDN_COST,
3695       decode(nvl(tmp1.PJI_PROJECT_RECORD_FLAG, 'N') ||
3696              sign(tmp1.WORKER_ID),
3697              'Y1', decode(tmp1.TXN_CURRENCY_CODE,
3698                           l_g1_currency_code,
3699                           tmp1.TXN_BILL_RAW_COST,
3700                           round(tmp1.POU_BILL_RAW_COST *
3701                                 tmp1.PRJ_PA_RATE1 /
3702                                 PRJ_PA_MAU1) * PRJ_PA_MAU1),
3703                    to_number(null))            GP1_BILL_RAW_COST,
3704       decode(nvl(tmp1.PJI_PROJECT_RECORD_FLAG, 'N') ||
3705              sign(tmp1.WORKER_ID),
3706              'Y1', decode(tmp1.TXN_CURRENCY_CODE,
3707                           l_g1_currency_code,
3708                           tmp1.TXN_BILL_BRDN_COST,
3709                           round(tmp1.POU_BILL_BRDN_COST *
3710                                 tmp1.PRJ_PA_RATE1 /
3711                                 PRJ_PA_MAU1) * PRJ_PA_MAU1),
3712                    to_number(null))            GP1_BILL_BRDN_COST,
3713       decode(nvl(tmp1.PJI_PROJECT_RECORD_FLAG, 'N') ||
3714              sign(tmp1.WORKER_ID),
3715              'Y1', -- decode(tmp1.TXN_CURRENCY_CODE,
3716                    --        l_g1_currency_code,
3717                    --        tmp1.TXN_LABOR_RAW_COST,
3718                           round(tmp1.POU_LABOR_RAW_COST *
3719                                 tmp1.PRJ_PA_RATE1 /
3720                                 PRJ_PA_MAU1) * PRJ_PA_MAU1
3721                    -- )
3722                    ,
3723                    to_number(null))            GP1_LABOR_RAW_COST,
3724       decode(nvl(tmp1.PJI_PROJECT_RECORD_FLAG, 'N') ||
3725              sign(tmp1.WORKER_ID),
3726              'Y1', -- decode(tmp1.TXN_CURRENCY_CODE,
3727                    --        l_g1_currency_code,
3728                    --        tmp1.TXN_LABOR_BRDN_COST,
3729                           round(tmp1.POU_LABOR_BRDN_COST *
3730                                 tmp1.PRJ_PA_RATE1 /
3731                                 PRJ_PA_MAU1) * PRJ_PA_MAU1
3732                    -- )
3733                    ,
3734                    to_number(null))            GP1_LABOR_BRDN_COST,
3735       decode(nvl(tmp1.PJI_PROJECT_RECORD_FLAG, 'N') ||
3736              sign(tmp1.WORKER_ID),
3737              'Y1', -- decode(tmp1.TXN_CURRENCY_CODE,
3738                    --        l_g1_currency_code,
3739                    --        tmp1.TXN_BILL_LABOR_RAW_COST,
3740                           round(tmp1.POU_BILL_LABOR_RAW_COST *
3741                                 tmp1.PRJ_PA_RATE1 /
3742                                 PRJ_PA_MAU1) * PRJ_PA_MAU1
3743                    -- )
3744                    ,
3745                    to_number(null))            GP1_BILL_LABOR_RAW_COST,
3746       decode(nvl(tmp1.PJI_PROJECT_RECORD_FLAG, 'N') ||
3747              sign(tmp1.WORKER_ID),
3748              'Y1', -- decode(tmp1.TXN_CURRENCY_CODE,
3749                    --        l_g1_currency_code,
3750                    --        tmp1.TXN_BILL_LABOR_BRDN_COST,
3751                           round(tmp1.POU_BILL_LABOR_BRDN_COST *
3752                                 tmp1.PRJ_PA_RATE1 /
3753                                 PRJ_PA_MAU1) * PRJ_PA_MAU1
3754                    -- )
3755                    ,
3756                    to_number(null))            GP1_BILL_LABOR_BRDN_COST,
3757       decode(nvl(tmp1.PJI_PROJECT_RECORD_FLAG, 'N') ||
3758              sign(tmp1.WORKER_ID),
3759              'Y1', decode(tmp1.TXN_CURRENCY_CODE,
3760                           l_g2_currency_code,
3761                           tmp1.TXN_REVENUE,
3762                           round(tmp1.POU_REVENUE *
3763                                 tmp1.PRJ_GL_RATE2 /
3764                                 PRJ_GL_MAU2) * PRJ_GL_MAU2),
3765                    to_number(null))            GG2_REVENUE,
3766       decode(nvl(tmp1.PJI_PROJECT_RECORD_FLAG, 'N') ||
3767              sign(tmp1.WORKER_ID),
3768              'Y1', -- decode(tmp1.TXN_CURRENCY_CODE,
3769                    --        l_g2_currency_code,
3770                    --        tmp1.TXN_LABOR_REVENUE,
3771                           round(tmp1.POU_LABOR_REVENUE *
3772                                 tmp1.PRJ_GL_RATE2 /
3773                                 PRJ_GL_MAU2) * PRJ_GL_MAU2
3774                    -- )
3775                    ,
3776                    to_number(null))            GG2_LABOR_REVENUE,
3777       decode(nvl(tmp1.PJI_PROJECT_RECORD_FLAG, 'N') ||
3778              sign(tmp1.WORKER_ID),
3779              'Y1', -- decode(tmp1.TXN_CURRENCY_CODE,
3780                    --        l_g2_currency_code,
3781                    --        tmp1.TXN_REVENUE_WRITEOFF,
3782                           round(tmp1.POU_REVENUE_WRITEOFF *
3783                                 tmp1.PRJ_GL_RATE2 /
3784                                 PRJ_GL_MAU2) * PRJ_GL_MAU2
3785                    -- )
3786                    ,
3787                    to_number(null))            GG2_REVENUE_WRITEOFF,
3788       decode(nvl(tmp1.PJI_PROJECT_RECORD_FLAG, 'N') ||
3789              sign(tmp1.WORKER_ID),
3790              'Y1', decode(tmp1.TXN_CURRENCY_CODE,
3791                           l_g2_currency_code,
3792                           tmp1.TXN_RAW_COST,
3793                           round(tmp1.POU_RAW_COST *
3794                                 tmp1.PRJ_GL_RATE2 /
3795                                 PRJ_GL_MAU2) * PRJ_GL_MAU2),
3796                    to_number(null))            GG2_RAW_COST,
3797       decode(nvl(tmp1.PJI_PROJECT_RECORD_FLAG, 'N') ||
3798              sign(tmp1.WORKER_ID),
3799              'Y1', decode(tmp1.TXN_CURRENCY_CODE,
3800                           l_g2_currency_code,
3801                           tmp1.TXN_BRDN_COST,
3802                           round(tmp1.POU_BRDN_COST *
3803                                 tmp1.PRJ_GL_RATE2 /
3804                                 PRJ_GL_MAU2) * PRJ_GL_MAU2),
3805                    to_number(null))            GG2_BRDN_COST,
3806       decode(nvl(tmp1.PJI_PROJECT_RECORD_FLAG, 'N') ||
3807              sign(tmp1.WORKER_ID),
3808              'Y1', decode(tmp1.TXN_CURRENCY_CODE,
3809                           l_g2_currency_code,
3810                           tmp1.TXN_BILL_RAW_COST,
3811                           round(tmp1.POU_BILL_RAW_COST *
3812                                 tmp1.PRJ_GL_RATE2 /
3813                                 PRJ_GL_MAU2) * PRJ_GL_MAU2),
3814                    to_number(null))            GG2_BILL_RAW_COST,
3815       decode(nvl(tmp1.PJI_PROJECT_RECORD_FLAG, 'N') ||
3816              sign(tmp1.WORKER_ID),
3817              'Y1', decode(tmp1.TXN_CURRENCY_CODE,
3818                           l_g2_currency_code,
3819                           tmp1.TXN_BILL_BRDN_COST,
3820                           round(tmp1.POU_BILL_BRDN_COST *
3821                                 tmp1.PRJ_GL_RATE2 /
3822                                 PRJ_GL_MAU2) * PRJ_GL_MAU2),
3823                    to_number(null))            GG2_BILL_BRDN_COST,
3824       decode(nvl(tmp1.PJI_PROJECT_RECORD_FLAG, 'N') ||
3825              sign(tmp1.WORKER_ID),
3826              'Y1', -- decode(tmp1.TXN_CURRENCY_CODE,
3827                    --        l_g2_currency_code,
3828                    --        tmp1.TXN_LABOR_RAW_COST,
3829                           round(tmp1.POU_LABOR_RAW_COST *
3830                                 tmp1.PRJ_GL_RATE2 /
3831                                 PRJ_GL_MAU2) * PRJ_GL_MAU2
3832                    -- )
3833                    ,
3834                    to_number(null))            GG2_LABOR_RAW_COST,
3835       decode(nvl(tmp1.PJI_PROJECT_RECORD_FLAG, 'N') ||
3836              sign(tmp1.WORKER_ID),
3837              'Y1', -- decode(tmp1.TXN_CURRENCY_CODE,
3838                    --        l_g2_currency_code,
3839                    --        tmp1.TXN_LABOR_BRDN_COST,
3840                           round(tmp1.POU_LABOR_BRDN_COST *
3841                                 tmp1.PRJ_GL_RATE2 /
3842                                 PRJ_GL_MAU2) * PRJ_GL_MAU2
3843                    -- )
3844                    ,
3845                    to_number(null))            GG2_LABOR_BRDN_COST,
3846       decode(nvl(tmp1.PJI_PROJECT_RECORD_FLAG, 'N') ||
3847              sign(tmp1.WORKER_ID),
3848              'Y1', -- decode(tmp1.TXN_CURRENCY_CODE,
3849                    --        l_g2_currency_code,
3850                    --        tmp1.TXN_BILL_LABOR_RAW_COST,
3851                           round(tmp1.POU_BILL_LABOR_RAW_COST *
3852                                 tmp1.PRJ_GL_RATE2 /
3853                                 PRJ_GL_MAU2) * PRJ_GL_MAU2
3854                    -- )
3855                    ,
3856                    to_number(null))            GG2_BILL_LABOR_RAW_COST,
3857       decode(nvl(tmp1.PJI_PROJECT_RECORD_FLAG, 'N') ||
3858              sign(tmp1.WORKER_ID),
3859              'Y1', -- decode(tmp1.TXN_CURRENCY_CODE,
3860                    --        l_g2_currency_code,
3861                    --        tmp1.TXN_BILL_LABOR_BRDN_COST,
3862                           round(tmp1.POU_BILL_LABOR_BRDN_COST *
3863                                 tmp1.PRJ_GL_RATE2 /
3864                                 PRJ_GL_MAU2) * PRJ_GL_MAU2
3865                    -- )
3866                    ,
3867                    to_number(null))            GG2_BILL_LABOR_BRDN_COST,
3868       decode(nvl(tmp1.PJI_PROJECT_RECORD_FLAG, 'N') ||
3869              sign(tmp1.WORKER_ID),
3870              'Y1', decode(tmp1.TXN_CURRENCY_CODE,
3871                           l_g2_currency_code,
3872                           tmp1.TXN_REVENUE,
3873                           round(tmp1.POU_REVENUE *
3874                                 tmp1.PRJ_PA_RATE2 /
3875                                 PRJ_PA_MAU2) * PRJ_PA_MAU2),
3876                    to_number(null))            GP2_REVENUE,
3877       decode(nvl(tmp1.PJI_PROJECT_RECORD_FLAG, 'N') ||
3878              sign(tmp1.WORKER_ID),
3879              'Y1', -- decode(tmp1.TXN_CURRENCY_CODE,
3880                    --        l_g2_currency_code,
3881                    --        tmp1.TXN_LABOR_REVENUE,
3882                           round(tmp1.POU_LABOR_REVENUE *
3883                                 tmp1.PRJ_PA_RATE2 /
3884                                 PRJ_PA_MAU2) * PRJ_PA_MAU2
3885                    -- )
3886                    ,
3887                    to_number(null))            GP2_LABOR_REVENUE,
3888       decode(nvl(tmp1.PJI_PROJECT_RECORD_FLAG, 'N') ||
3889              sign(tmp1.WORKER_ID),
3890              'Y1', -- decode(tmp1.TXN_CURRENCY_CODE,
3891                    --        l_g2_currency_code,
3892                    --        tmp1.TXN_REVENUE_WRITEOFF,
3893                           round(tmp1.POU_REVENUE_WRITEOFF *
3894                                 tmp1.PRJ_PA_RATE2 /
3895                                 PRJ_PA_MAU2) * PRJ_PA_MAU2
3896                    -- )
3897                    ,
3898                    to_number(null))            GP2_REVENUE_WRITEOFF,
3899       decode(nvl(tmp1.PJI_PROJECT_RECORD_FLAG, 'N') ||
3900              sign(tmp1.WORKER_ID),
3901              'Y1', decode(tmp1.TXN_CURRENCY_CODE,
3902                           l_g2_currency_code,
3903                           tmp1.TXN_RAW_COST,
3904                           round(tmp1.POU_RAW_COST *
3905                                 tmp1.PRJ_PA_RATE2 /
3906                                 PRJ_PA_MAU2) * PRJ_PA_MAU2),
3907                    to_number(null))            GP2_RAW_COST,
3908       decode(nvl(tmp1.PJI_PROJECT_RECORD_FLAG, 'N') ||
3909              sign(tmp1.WORKER_ID),
3910              'Y1', decode(tmp1.TXN_CURRENCY_CODE,
3911                           l_g2_currency_code,
3912                           tmp1.TXN_BRDN_COST,
3913                           round(tmp1.POU_BRDN_COST *
3914                                 tmp1.PRJ_PA_RATE2 /
3915                                 PRJ_PA_MAU2) * PRJ_PA_MAU2),
3916                    to_number(null))            GP2_BRDN_COST,
3917       decode(nvl(tmp1.PJI_PROJECT_RECORD_FLAG, 'N') ||
3918              sign(tmp1.WORKER_ID),
3919              'Y1', decode(tmp1.TXN_CURRENCY_CODE,
3920                           l_g2_currency_code,
3921                           tmp1.TXN_BILL_RAW_COST,
3922                           round(tmp1.POU_BILL_RAW_COST *
3923                                 tmp1.PRJ_PA_RATE2 /
3924                                 PRJ_PA_MAU2) * PRJ_PA_MAU2),
3925                    to_number(null))            GP2_BILL_RAW_COST,
3926       decode(nvl(tmp1.PJI_PROJECT_RECORD_FLAG, 'N') ||
3927              sign(tmp1.WORKER_ID),
3928              'Y1', decode(tmp1.TXN_CURRENCY_CODE,
3929                           l_g2_currency_code,
3930                           tmp1.TXN_BILL_BRDN_COST,
3931                           round(tmp1.POU_BILL_BRDN_COST *
3932                                 tmp1.PRJ_PA_RATE2 /
3933                                 PRJ_PA_MAU2) * PRJ_PA_MAU2),
3934                    to_number(null))            GP2_BILL_BRDN_COST,
3935       decode(nvl(tmp1.PJI_PROJECT_RECORD_FLAG, 'N') ||
3936              sign(tmp1.WORKER_ID),
3937              'Y1', -- decode(tmp1.TXN_CURRENCY_CODE,
3938                    --        l_g2_currency_code,
3939                    --        tmp1.TXN_LABOR_RAW_COST,
3940                           round(tmp1.POU_LABOR_RAW_COST *
3941                                 tmp1.PRJ_PA_RATE2 /
3942                                 PRJ_PA_MAU2) * PRJ_PA_MAU2
3943                    -- )
3944                    ,
3945                    to_number(null))            GP2_LABOR_RAW_COST,
3946       decode(nvl(tmp1.PJI_PROJECT_RECORD_FLAG, 'N') ||
3947              sign(tmp1.WORKER_ID),
3948              'Y1', -- decode(tmp1.TXN_CURRENCY_CODE,
3949                    --        l_g2_currency_code,
3950                    --        tmp1.TXN_LABOR_BRDN_COST,
3951                           round(tmp1.POU_LABOR_BRDN_COST *
3952                                 tmp1.PRJ_PA_RATE2 /
3953                                 PRJ_PA_MAU2) * PRJ_PA_MAU2
3954                    -- )
3955                    ,
3956                    to_number(null))            GP2_LABOR_BRDN_COST,
3957       decode(nvl(tmp1.PJI_PROJECT_RECORD_FLAG, 'N') ||
3958              sign(tmp1.WORKER_ID),
3959              'Y1', -- decode(tmp1.TXN_CURRENCY_CODE,
3960                    --        l_g2_currency_code,
3961                    --        tmp1.TXN_BILL_LABOR_RAW_COST,
3962                           round(tmp1.POU_BILL_LABOR_RAW_COST *
3963                                 tmp1.PRJ_PA_RATE2 /
3964                                 PRJ_PA_MAU2) * PRJ_PA_MAU2
3965                    -- )
3966                    ,
3967                    to_number(null))            GP2_BILL_LABOR_RAW_COST,
3968       decode(nvl(tmp1.PJI_PROJECT_RECORD_FLAG, 'N') ||
3969              sign(tmp1.WORKER_ID),
3970              'Y1', -- decode(tmp1.TXN_CURRENCY_CODE,
3971                    --        l_g2_currency_code,
3972                    --        tmp1.TXN_BILL_LABOR_BRDN_COST,
3973                           round(tmp1.POU_BILL_LABOR_BRDN_COST *
3974                                 tmp1.PRJ_PA_RATE2 /
3975                                 PRJ_PA_MAU2) * PRJ_PA_MAU2
3976                    -- )
3977                    ,
3978                    to_number(null))            GP2_BILL_LABOR_BRDN_COST,
3979       tmp1.TOTAL_HRS_A,
3980       tmp1.BILL_HRS_A
3981     from
3982     (
3983     select /*+ ordered use_hash(tmp1,prj_info,res_info,prj_gl_rt,prj_pa_rt) full(tmp1) parallel(tmp1)
3984                full(prj_info)  swap_join_inputs(prj_info) full(res_info)  swap_join_inputs(res_info)
3985                full(prj_gl_rt) swap_join_inputs(prj_gl_rt) full(prj_pa_rt) swap_join_inputs(prj_pa_rt)
3986                pq_distribute(prj_gl_rt,none,broadcast) pq_distribute(prj_pa_rt,none,broadcast)
3987             */  -- bug 3092751: Changes in hints
3988       to_number(p_worker_id)                   WORKER_ID,
3989       decode(tmp1.PJI_PROJECT_RECORD_FLAG,
3990              'Y', decode(prj_gl_rt.RATE,
3991                          -3, 'E', -- EUR rate for 01-JAN-1999 is missing
3992                          decode(sign(prj_gl_rt.RATE),
3993                                 -1, 'Y', null)),
3994              null)                             DANGLING_RECVR_GL_RATE_FLAG,
3995       decode(tmp1.PJI_PROJECT_RECORD_FLAG || l_g2_currency_flag,
3996              'YY', decode(prj_gl_rt.RATE2,
3997                           -3, 'E', -- EUR rate for 01-JAN-1999 is missing
3998                           decode(sign(prj_gl_rt.RATE2),
3999                                  -1, 'Y', null)),
4000              null)                             DANGLING_RECVR_GL_RATE2_FLAG,
4001       decode(tmp1.PJI_PROJECT_RECORD_FLAG,
4002              'Y', decode(prj_pa_rt.RATE,
4003                          -3, 'E', -- EUR rate for 01-JAN-1999 is missing
4004                          decode(sign(prj_pa_rt.RATE),
4005                                 -1, 'Y', null)),
4006              null)                             DANGLING_RECVR_PA_RATE_FLAG,
4007       decode(tmp1.PJI_PROJECT_RECORD_FLAG || l_g2_currency_flag,
4008              'YY', decode(prj_pa_rt.RATE2,
4009                           -3, 'E', -- EUR rate for 01-JAN-1999 is missing
4010                           decode(sign(prj_pa_rt.RATE2),
4011                                  -1, 'Y', null)),
4012              null)                             DANGLING_RECVR_PA_RATE2_FLAG,
4013       --case when tmp1.PJI_RESOURCE_RECORD_FLAG = 'Y' and
4014       --          (tmp1.PRVDR_GL_TIME_ID < res_info.EN_CALENDAR_MIN_DATE or
4015       --           tmp1.PRVDR_GL_TIME_ID > res_info.EN_CALENDAR_MAX_DATE)
4016       --     then 'Y'
4017       --     else null
4018       --     end                                 DANGLING_PRVDR_EN_TIME_FLAG,
4019       null                                     DANGLING_PRVDR_EN_TIME_FLAG,
4020       decode(tmp1.PJI_PROJECT_RECORD_FLAG,
4021              'Y', decode(sign(prj_info.EN_CALENDAR_MIN_DATE -
4022                               tmp1.RECVR_GL_TIME_ID) +
4023                          sign(tmp1.RECVR_GL_TIME_ID -
4024                               prj_info.EN_CALENDAR_MAX_DATE),
4025                          0, 'Y', null), null)  DANGLING_RECVR_EN_TIME_FLAG,
4026       decode(tmp1.PJI_RESOURCE_RECORD_FLAG,
4027              'Y', decode(sign(res_info.EN_CALENDAR_MIN_DATE -
4028                               tmp1.EXPENDITURE_ITEM_TIME_ID) +
4029                          sign(tmp1.EXPENDITURE_ITEM_TIME_ID -
4030                               res_info.EN_CALENDAR_MAX_DATE),
4031                          0, 'Y', null), null)  DANGLING_EXP_EN_TIME_FLAG,
4032       --case when tmp1.PJI_RESOURCE_RECORD_FLAG = 'Y' and
4033       --          (tmp1.PRVDR_GL_TIME_ID < res_info.GL_CALENDAR_MIN_DATE or
4034       --           tmp1.PRVDR_GL_TIME_ID > res_info.GL_CALENDAR_MAX_DATE)
4035       --     then 'Y'
4036       --     else null
4037       --     end                                 DANGLING_PRVDR_GL_TIME_FLAG,
4038       null                                     DANGLING_PRVDR_GL_TIME_FLAG,
4039       decode(tmp1.PJI_PROJECT_RECORD_FLAG,
4040              'Y', decode(sign(prj_info.GL_CALENDAR_MIN_DATE -
4041                               tmp1.RECVR_GL_TIME_ID) +
4042                          sign(tmp1.RECVR_GL_TIME_ID -
4043                               prj_info.GL_CALENDAR_MAX_DATE),
4044                          0, 'Y', null), null)  DANGLING_RECVR_GL_TIME_FLAG,
4045       decode(tmp1.PJI_RESOURCE_RECORD_FLAG,
4046              'Y', decode(sign(res_info.GL_CALENDAR_MIN_DATE -
4047                               tmp1.EXPENDITURE_ITEM_TIME_ID) +
4048                          sign(tmp1.EXPENDITURE_ITEM_TIME_ID -
4049                               res_info.GL_CALENDAR_MAX_DATE),
4050                          0, 'Y', null), null)  DANGLING_EXP_GL_TIME_FLAG,
4051       --case when tmp1.PJI_RESOURCE_RECORD_FLAG = 'Y' and
4052       --          (tmp1.PRVDR_PA_TIME_ID < res_info.PA_CALENDAR_MIN_DATE or
4053       --           tmp1.PRVDR_PA_TIME_ID > res_info.PA_CALENDAR_MAX_DATE)
4054       --     then 'Y'
4055       --     else null
4056       --     end                                 DANGLING_PRVDR_PA_TIME_FLAG,
4057       null                                     DANGLING_PRVDR_PA_TIME_FLAG,
4058       decode(tmp1.PJI_PROJECT_RECORD_FLAG,
4059              'Y', decode(sign(prj_info.PA_CALENDAR_MIN_DATE -
4060                               tmp1.RECVR_PA_TIME_ID) +
4061                          sign(tmp1.RECVR_PA_TIME_ID -
4062                               prj_info.PA_CALENDAR_MAX_DATE),
4063                          0, 'Y', null), null)  DANGLING_RECVR_PA_TIME_FLAG,
4064       decode(tmp1.PJI_RESOURCE_RECORD_FLAG,
4065              'Y', decode(sign(res_info.PA_CALENDAR_MIN_DATE -
4066                               tmp1.EXPENDITURE_ITEM_TIME_ID) +
4067                          sign(tmp1.EXPENDITURE_ITEM_TIME_ID -
4068                               res_info.PA_CALENDAR_MAX_DATE),
4069                          0, 'Y', null), null)  DANGLING_EXP_PA_TIME_FLAG,
4070       tmp1.PJI_PROJECT_RECORD_FLAG,
4071       tmp1.PJI_RESOURCE_RECORD_FLAG,
4072       tmp1.PROJECT_ID,
4073       tmp1.PROJECT_ORG_ID,
4074       tmp1.PROJECT_ORGANIZATION_ID,
4075       tmp1.PROJECT_TYPE_CLASS,
4076       tmp1.PERSON_ID,
4077       tmp1.EXPENDITURE_ORG_ID,
4078       tmp1.EXPENDITURE_ORGANIZATION_ID,
4079       tmp1.EXP_EVT_TYPE_ID,
4080       tmp1.WORK_TYPE_ID,
4081       tmp1.JOB_ID,
4082       tmp1.TASK_ID,
4083       tmp1.VENDOR_ID,
4084       tmp1.EXPENDITURE_TYPE,
4085       tmp1.EVENT_TYPE,
4086       tmp1.EVENT_TYPE_CLASSIFICATION,
4087       tmp1.EXPENDITURE_CATEGORY,
4088       tmp1.REVENUE_CATEGORY,
4089       tmp1.NON_LABOR_RESOURCE,
4090       tmp1.BOM_LABOR_RESOURCE_ID,
4091       tmp1.BOM_EQUIPMENT_RESOURCE_ID,
4092       tmp1.INVENTORY_ITEM_ID,
4093       tmp1.PO_LINE_ID,
4094       tmp1.ASSIGNMENT_ID,
4095       tmp1.SYSTEM_LINKAGE_FUNCTION,
4096       'PJI$NULL'                               RESOURCE_CLASS_CODE,
4097       tmp1.RECVR_GL_TIME_ID,
4098       tmp1.GL_PERIOD_NAME,
4099       tmp1.PRVDR_GL_TIME_ID,
4100       tmp1.RECVR_PA_TIME_ID,
4101       tmp1.PA_PERIOD_NAME,
4102       tmp1.PRVDR_PA_TIME_ID,
4103       tmp1.EXPENDITURE_ITEM_TIME_ID,
4104       prj_info.GL_CALENDAR_ID                  PJ_GL_CALENDAR_ID,
4105       prj_info.PA_CALENDAR_ID                  PJ_PA_CALENDAR_ID,
4106       res_info.GL_CALENDAR_ID                  RS_GL_CALENDAR_ID,
4107       res_info.PA_CALENDAR_ID                  RS_PA_CALENDAR_ID,
4108       prj_gl_rt.RATE                           PRJ_GL_RATE1,
4109       prj_gl_rt.RATE2                          PRJ_GL_RATE2,
4110       prj_pa_rt.RATE                           PRJ_PA_RATE1,
4111       prj_pa_rt.RATE2                          PRJ_PA_RATE2,
4112       prj_gl_rt.MAU                            PRJ_GL_MAU1,
4113       prj_gl_rt.MAU2                           PRJ_GL_MAU2,
4114       prj_pa_rt.MAU                            PRJ_PA_MAU1,
4115       prj_pa_rt.MAU2                           PRJ_PA_MAU2,
4116       tmp1.PRJ_REVENUE,
4117       tmp1.PRJ_LABOR_REVENUE,
4118       tmp1.PRJ_REVENUE_WRITEOFF,
4119       tmp1.PRJ_RAW_COST,
4120       tmp1.PRJ_BRDN_COST,
4121       tmp1.PRJ_BILL_RAW_COST,
4122       tmp1.PRJ_BILL_BRDN_COST,
4123       tmp1.PRJ_LABOR_RAW_COST,
4124       tmp1.PRJ_LABOR_BRDN_COST,
4125       tmp1.PRJ_BILL_LABOR_RAW_COST,
4126       tmp1.PRJ_BILL_LABOR_BRDN_COST,
4127       tmp1.POU_REVENUE,
4128       tmp1.POU_LABOR_REVENUE,
4129       tmp1.POU_REVENUE_WRITEOFF,
4130       tmp1.POU_RAW_COST,
4131       tmp1.POU_BRDN_COST,
4132       tmp1.POU_BILL_RAW_COST,
4133       tmp1.POU_BILL_BRDN_COST,
4134       tmp1.POU_LABOR_RAW_COST,
4135       tmp1.POU_LABOR_BRDN_COST,
4136       tmp1.POU_BILL_LABOR_RAW_COST,
4137       tmp1.POU_BILL_LABOR_BRDN_COST,
4138       tmp1.EOU_RAW_COST,
4139       tmp1.EOU_BRDN_COST,
4140       tmp1.EOU_BILL_RAW_COST,
4141       tmp1.EOU_BILL_BRDN_COST,
4142       tmp1.TXN_CURRENCY_CODE,
4143       tmp1.TXN_REVENUE,
4144       tmp1.TXN_RAW_COST,
4145       tmp1.TXN_BRDN_COST,
4146       tmp1.TXN_BILL_RAW_COST,
4147       tmp1.TXN_BILL_BRDN_COST,
4148       tmp1.LABOR_HRS,
4149       tmp1.BILL_LABOR_HRS,
4150       tmp1.TOTAL_HRS_A,
4151       tmp1.BILL_HRS_A
4152     from  -- bug 3092751: Changes in table order
4153       PJI_ORG_EXTR_INFO     prj_info,
4154     (
4155     select /*+ parallel(tmp1) */
4156       decode(l_params_cost_flag,
4157              'N', 'N',
4158              tmp1.PJI_PROJECT_RECORD_FLAG) PJI_PROJECT_RECORD_FLAG,
4159       tmp1.PJI_RESOURCE_RECORD_FLAG,
4160       tmp1.PROJECT_ID,
4161       tmp1.PROJECT_ORG_ID,
4162       tmp1.PROJECT_ORGANIZATION_ID,
4163       tmp1.PROJECT_TYPE_CLASS,
4164       tmp1.PERSON_ID,
4165       tmp1.EXPENDITURE_ORG_ID,
4166       tmp1.EXPENDITURE_ORGANIZATION_ID,
4167       tmp1.EXP_EVT_TYPE_ID,
4168       tmp1.WORK_TYPE_ID,
4169       tmp1.JOB_ID,
4170       tmp1.TASK_ID,
4171       tmp1.VENDOR_ID,
4172       tmp1.EXPENDITURE_TYPE,
4173       tmp1.EVENT_TYPE,
4174       tmp1.EVENT_TYPE_CLASSIFICATION,
4175       tmp1.EXPENDITURE_CATEGORY,
4176       tmp1.REVENUE_CATEGORY,
4177       tmp1.NON_LABOR_RESOURCE,
4178       tmp1.BOM_LABOR_RESOURCE_ID,
4179       tmp1.BOM_EQUIPMENT_RESOURCE_ID,
4180       tmp1.INVENTORY_ITEM_ID,
4181       tmp1.PO_LINE_ID,
4182       tmp1.ASSIGNMENT_ID,
4183       tmp1.SYSTEM_LINKAGE_FUNCTION,
4184       decode(l_params_cost_flag || nvl(tmp1.PJI_PROJECT_RECORD_FLAG, 'N'),
4185              'YY', to_number(to_char(tmp1.RECVR_GL_DATE, 'J')),
4186              -1)                               RECVR_GL_TIME_ID,
4187       tmp1.GL_PERIOD_NAME,
4188       to_number(to_char(tmp1.PRVDR_GL_DATE,
4189                         'J'))                  PRVDR_GL_TIME_ID,
4190       decode(l_params_cost_flag || nvl(tmp1.PJI_PROJECT_RECORD_FLAG, 'N'),
4191              'YY', to_number(to_char(tmp1.RECVR_PA_DATE, 'J')),
4192              -1)                               RECVR_PA_TIME_ID,
4193       tmp1.PA_PERIOD_NAME,
4194       to_number(to_char(tmp1.PRVDR_PA_DATE,
4195                         'J'))                  PRVDR_PA_TIME_ID,
4196       to_number(to_char(tmp1.EXPENDITURE_ITEM_DATE,
4197                         'J'))                  EXPENDITURE_ITEM_TIME_ID,
4198       sum(tmp1.PRJ_REVENUE)                    PRJ_REVENUE,
4199       sum(decode(tmp1.SYSTEM_LINKAGE_FUNCTION,
4200                  'ST', tmp1.PRJ_REVENUE,
4201                  'OT', tmp1.PRJ_REVENUE, 0))   PRJ_LABOR_REVENUE,
4202       sum(decode(tmp1.EVENT_TYPE_CLASSIFICATION,
4203                  'WRITE OFF',
4204                  tmp1.PRJ_REVENUE, 0))         PRJ_REVENUE_WRITEOFF,
4205       sum(tmp1.PRJ_RAW_COST)                   PRJ_RAW_COST,
4206       sum(tmp1.PRJ_BURDENED_COST)              PRJ_BRDN_COST,
4207       sum(tmp1.PRJ_BILL_RAW_COST)              PRJ_BILL_RAW_COST,
4208       sum(tmp1.PRJ_BILL_BURDENED_COST)         PRJ_BILL_BRDN_COST,
4209       sum(decode(tmp1.SYSTEM_LINKAGE_FUNCTION,
4210                  'ST', tmp1.PRJ_RAW_COST,
4211                  'OT', tmp1.PRJ_RAW_COST, 0))  PRJ_LABOR_RAW_COST,
4212       sum(decode(tmp1.SYSTEM_LINKAGE_FUNCTION,
4213                  'ST', tmp1.PRJ_BURDENED_COST,
4214                  'OT', tmp1.PRJ_BURDENED_COST,
4215                  0))                           PRJ_LABOR_BRDN_COST,
4216       sum(decode(tmp1.SYSTEM_LINKAGE_FUNCTION,
4217                  'ST', tmp1.PRJ_BILL_RAW_COST,
4218                  'OT', tmp1.PRJ_BILL_RAW_COST,
4219                  0))                           PRJ_BILL_LABOR_RAW_COST,
4220       sum(decode(tmp1.SYSTEM_LINKAGE_FUNCTION,
4221                  'ST', tmp1.PRJ_BILL_BURDENED_COST,
4222                  'OT', tmp1.PRJ_BILL_BURDENED_COST,
4223                  0))                           PRJ_BILL_LABOR_BRDN_COST,
4224       sum(tmp1.POU_REVENUE)                    POU_REVENUE,
4225       sum(decode(tmp1.SYSTEM_LINKAGE_FUNCTION,
4226                  'ST', tmp1.POU_REVENUE,
4227                  'OT', tmp1.POU_REVENUE, 0))   POU_LABOR_REVENUE,
4228       sum(decode(tmp1.EVENT_TYPE_CLASSIFICATION,
4229                  'WRITE OFF',
4230                  tmp1.POU_REVENUE, 0))         POU_REVENUE_WRITEOFF,
4231       sum(tmp1.POU_RAW_COST)                   POU_RAW_COST,
4232       sum(tmp1.POU_BURDENED_COST)              POU_BRDN_COST,
4233       sum(tmp1.POU_BILL_RAW_COST)              POU_BILL_RAW_COST,
4234       sum(tmp1.POU_BILL_BURDENED_COST)         POU_BILL_BRDN_COST,
4235       sum(decode(tmp1.SYSTEM_LINKAGE_FUNCTION,
4236                  'ST', tmp1.POU_RAW_COST,
4237                  'OT', tmp1.POU_RAW_COST,
4238                  0))                           POU_LABOR_RAW_COST,
4239       sum(decode(tmp1.SYSTEM_LINKAGE_FUNCTION,
4240                  'ST', tmp1.POU_BURDENED_COST,
4241                  'OT', tmp1.POU_BURDENED_COST,
4242                  0))                           POU_LABOR_BRDN_COST,
4243       sum(decode(tmp1.SYSTEM_LINKAGE_FUNCTION,
4244                  'ST', tmp1.POU_BILL_RAW_COST,
4245                  'OT', tmp1.POU_BILL_RAW_COST,
4246                  0))                           POU_BILL_LABOR_RAW_COST,
4247       sum(decode(tmp1.SYSTEM_LINKAGE_FUNCTION,
4248                  'ST', tmp1.POU_BILL_BURDENED_COST,
4249                  'OT', tmp1.POU_BILL_BURDENED_COST,
4250                  0))                           POU_BILL_LABOR_BRDN_COST,
4251       sum(tmp1.EOU_RAW_COST)                   EOU_RAW_COST,
4252       sum(tmp1.EOU_BURDENED_COST)              EOU_BRDN_COST,
4253       sum(tmp1.EOU_BILL_RAW_COST)              EOU_BILL_RAW_COST,
4254       sum(tmp1.EOU_BILL_BURDENED_COST)         EOU_BILL_BRDN_COST,
4255       tmp1.TXN_CURRENCY_CODE,
4256       sum(tmp1.TXN_REVENUE)                    TXN_REVENUE,
4257       sum(tmp1.TXN_RAW_COST)                   TXN_RAW_COST,
4258       sum(tmp1.TXN_BURDENED_COST)              TXN_BRDN_COST,
4259       sum(tmp1.TXN_BILL_RAW_COST)              TXN_BILL_RAW_COST,
4260       sum(tmp1.TXN_BILL_BURDENED_COST)         TXN_BILL_BRDN_COST,
4261       sum(decode(tmp1.SYSTEM_LINKAGE_FUNCTION,
4262                  'ST', tmp1.QUANTITY,
4263                  'OT', tmp1.QUANTITY, 0))      LABOR_HRS,
4264       sum(decode(tmp1.SYSTEM_LINKAGE_FUNCTION,
4265                  'ST', tmp1.BILL_QUANTITY,
4266                  'OT', tmp1.BILL_QUANTITY, 0)) BILL_LABOR_HRS,
4267       sum(tmp1.QUANTITY)                       TOTAL_HRS_A,
4268       sum(tmp1.BILL_QUANTITY)                  BILL_HRS_A
4269     from
4270       PJI_FM_AGGR_FIN1  tmp1
4271     where
4272       tmp1.WORKER_ID = p_worker_id and
4273       tmp1.EXPENDITURE_ORGANIZATION_ID is not null
4274     group by
4275       decode(l_params_cost_flag,
4276              'N', 'N',
4277              tmp1.PJI_PROJECT_RECORD_FLAG),
4278       tmp1.PJI_RESOURCE_RECORD_FLAG,
4279       tmp1.PROJECT_ID,
4280       tmp1.PROJECT_ORG_ID,
4281       tmp1.PROJECT_ORGANIZATION_ID,
4282       tmp1.PROJECT_TYPE_CLASS,
4283       tmp1.PERSON_ID,
4284       tmp1.EXPENDITURE_ORG_ID,
4285       tmp1.EXPENDITURE_ORGANIZATION_ID,
4286       tmp1.EXP_EVT_TYPE_ID,
4287       tmp1.WORK_TYPE_ID,
4288       tmp1.JOB_ID,
4289       tmp1.TASK_ID,
4290       tmp1.VENDOR_ID,
4291       tmp1.EXPENDITURE_TYPE,
4292       tmp1.EVENT_TYPE,
4293       tmp1.EVENT_TYPE_CLASSIFICATION,
4294       tmp1.EXPENDITURE_CATEGORY,
4295       tmp1.REVENUE_CATEGORY,
4296       tmp1.NON_LABOR_RESOURCE,
4297       tmp1.BOM_LABOR_RESOURCE_ID,
4298       tmp1.BOM_EQUIPMENT_RESOURCE_ID,
4299       tmp1.INVENTORY_ITEM_ID,
4300       tmp1.PO_LINE_ID,
4301       tmp1.ASSIGNMENT_ID,
4302       tmp1.SYSTEM_LINKAGE_FUNCTION,
4303       decode(l_params_cost_flag || nvl(tmp1.PJI_PROJECT_RECORD_FLAG, 'N'),
4304              'YY', to_number(to_char(tmp1.RECVR_GL_DATE, 'J')),
4305              -1),
4306       tmp1.GL_PERIOD_NAME,
4307       to_number(to_char(tmp1.PRVDR_GL_DATE,
4308                         'J')),
4309       decode(l_params_cost_flag || nvl(tmp1.PJI_PROJECT_RECORD_FLAG, 'N'),
4310              'YY', to_number(to_char(tmp1.RECVR_PA_DATE, 'J')),
4311              -1),
4312       tmp1.PA_PERIOD_NAME,
4313       to_number(to_char(tmp1.PRVDR_PA_DATE,
4314                         'J')),
4315       to_number(to_char(tmp1.EXPENDITURE_ITEM_DATE,
4316                         'J')),
4317       tmp1.TXN_CURRENCY_CODE
4318     ) tmp1,
4319       PJI_ORG_EXTR_INFO     res_info,
4320       PJI_FM_AGGR_DLY_RATES prj_gl_rt,
4321       PJI_FM_AGGR_DLY_RATES prj_pa_rt
4322     where
4323       tmp1.EXPENDITURE_ORGANIZATION_ID    is not null                  and
4324       decode(l_params_cost_flag, 'Y', tmp1.PROJECT_ORG_ID, -1)
4325                                           = prj_info.ORG_ID            and
4326       decode(l_params_cost_flag, 'Y', tmp1.EXPENDITURE_ORG_ID, -1)
4327                                           = res_info.ORG_ID            and
4328       prj_gl_rt.WORKER_ID                 = -1                         and
4329       tmp1.RECVR_GL_TIME_ID               = prj_gl_rt.TIME_ID          and
4330       prj_info.PF_CURRENCY_CODE           = prj_gl_rt.PF_CURRENCY_CODE and
4331       prj_pa_rt.WORKER_ID                 = -1                         and
4332       tmp1.RECVR_PA_TIME_ID               = prj_pa_rt.TIME_ID          and
4333       prj_info.PF_CURRENCY_CODE           = prj_pa_rt.PF_CURRENCY_CODE
4334     ) tmp1;
4335 
4336     PJI_PROCESS_UTIL.REGISTER_STEP_COMPLETION(l_process, 'PJI_FM_SUM_EXTR.FIN_SUMMARY(p_worker_id);');
4337 
4338     -- truncate intermediate tables no longer required
4339     l_schema := PJI_UTILS.GET_PJI_SCHEMA_NAME;
4340     PJI_PROCESS_UTIL.TRUNC_INT_TABLE( l_schema , 'PJI_FM_AGGR_FIN1' , 'NORMAL',null);
4341 
4342     commit;
4343 
4344   end FIN_SUMMARY;
4345 
4346 
4347   -- -----------------------------------------------------
4348   -- procedure MOVE_DANGLING_FIN_ROWS
4349   -- -----------------------------------------------------
4350   procedure MOVE_DANGLING_FIN_ROWS (p_worker_id in number) is
4351 
4352     l_process varchar2(30);
4353 
4354   begin
4355 
4356     l_process := PJI_FM_SUM_MAIN.g_process || p_worker_id;
4357 
4358     if (not PJI_PROCESS_UTIL.NEED_TO_RUN_STEP(l_process, 'PJI_FM_SUM_EXTR.MOVE_DANGLING_FIN_ROWS(p_worker_id);')) then
4359       return;
4360     end if;
4361 
4362     insert into PJI_FM_DNGL_FIN
4363     (
4364       WORKER_ID,
4365       DANGLING_RECVR_GL_RATE_FLAG,
4366       DANGLING_RECVR_GL_RATE2_FLAG,
4367       DANGLING_RECVR_PA_RATE_FLAG,
4368       DANGLING_RECVR_PA_RATE2_FLAG,
4369       DANGLING_PRVDR_EN_TIME_FLAG,
4370       DANGLING_RECVR_EN_TIME_FLAG,
4371       DANGLING_EXP_EN_TIME_FLAG,
4372       DANGLING_PRVDR_GL_TIME_FLAG,
4373       DANGLING_RECVR_GL_TIME_FLAG,
4374       DANGLING_EXP_GL_TIME_FLAG,
4375       DANGLING_PRVDR_PA_TIME_FLAG,
4376       DANGLING_RECVR_PA_TIME_FLAG,
4377       DANGLING_EXP_PA_TIME_FLAG,
4378       PJI_PROJECT_RECORD_FLAG,
4379       PJI_RESOURCE_RECORD_FLAG,
4380       RECORD_TYPE,
4381       CMT_RECORD_TYPE,
4382       PROJECT_ID,
4383       PROJECT_ORG_ID,
4384       PROJECT_ORGANIZATION_ID,
4385       PROJECT_TYPE_CLASS,
4386       PERSON_ID,
4387       EXPENDITURE_ORG_ID,
4388       EXPENDITURE_ORGANIZATION_ID,
4389       EXP_EVT_TYPE_ID,
4390       WORK_TYPE_ID,
4391       JOB_ID,
4392       TASK_ID,
4393       VENDOR_ID,
4394       EXPENDITURE_TYPE,
4395       EVENT_TYPE,
4396       EVENT_TYPE_CLASSIFICATION,
4397       EXPENDITURE_CATEGORY,
4398       REVENUE_CATEGORY,
4399       NON_LABOR_RESOURCE,
4400       BOM_LABOR_RESOURCE_ID,
4401       BOM_EQUIPMENT_RESOURCE_ID,
4402       INVENTORY_ITEM_ID,
4403       PO_LINE_ID,
4404       ASSIGNMENT_ID,
4405       SYSTEM_LINKAGE_FUNCTION,
4406       RESOURCE_CLASS_CODE,
4407       RECVR_GL_TIME_ID,
4408       GL_PERIOD_NAME,
4409       PRVDR_GL_TIME_ID,
4410       RECVR_PA_TIME_ID,
4411       PA_PERIOD_NAME,
4412       PRVDR_PA_TIME_ID,
4413       EXPENDITURE_ITEM_TIME_ID,
4414       PJ_GL_CALENDAR_ID,
4415       PJ_PA_CALENDAR_ID,
4416       RS_GL_CALENDAR_ID,
4417       RS_PA_CALENDAR_ID,
4418       PRJ_REVENUE,
4419       PRJ_LABOR_REVENUE,
4420       PRJ_REVENUE_WRITEOFF,
4421       PRJ_RAW_COST,
4422       PRJ_BRDN_COST,
4423       PRJ_BILL_RAW_COST,
4424       PRJ_BILL_BRDN_COST,
4425       PRJ_LABOR_RAW_COST,
4426       PRJ_LABOR_BRDN_COST,
4427       PRJ_BILL_LABOR_RAW_COST,
4428       PRJ_BILL_LABOR_BRDN_COST,
4429       POU_REVENUE,
4430       POU_LABOR_REVENUE,
4431       POU_REVENUE_WRITEOFF,
4432       POU_RAW_COST,
4433       POU_BRDN_COST,
4434       POU_BILL_RAW_COST,
4435       POU_BILL_BRDN_COST,
4436       POU_LABOR_RAW_COST,
4437       POU_LABOR_BRDN_COST,
4438       POU_BILL_LABOR_RAW_COST,
4439       POU_BILL_LABOR_BRDN_COST,
4440       EOU_RAW_COST,
4441       EOU_BRDN_COST,
4442       EOU_BILL_RAW_COST,
4443       EOU_BILL_BRDN_COST,
4444       TXN_CURRENCY_CODE,
4445       TXN_REVENUE,
4446       TXN_RAW_COST,
4447       TXN_BRDN_COST,
4448       TXN_BILL_RAW_COST,
4449       TXN_BILL_BRDN_COST,
4450       LABOR_HRS,
4451       BILL_LABOR_HRS,
4452       GG1_REVENUE,
4453       GG1_LABOR_REVENUE,
4454       GG1_REVENUE_WRITEOFF,
4455       GG1_RAW_COST,
4456       GG1_BRDN_COST,
4457       GG1_BILL_RAW_COST,
4458       GG1_BILL_BRDN_COST,
4459       GG1_LABOR_RAW_COST,
4460       GG1_LABOR_BRDN_COST,
4461       GG1_BILL_LABOR_RAW_COST,
4462       GG1_BILL_LABOR_BRDN_COST,
4463       GP1_REVENUE,
4464       GP1_LABOR_REVENUE,
4465       GP1_REVENUE_WRITEOFF,
4466       GP1_RAW_COST,
4467       GP1_BRDN_COST,
4468       GP1_BILL_RAW_COST,
4469       GP1_BILL_BRDN_COST,
4470       GP1_LABOR_RAW_COST,
4471       GP1_LABOR_BRDN_COST,
4472       GP1_BILL_LABOR_RAW_COST,
4473       GP1_BILL_LABOR_BRDN_COST,
4474       GG2_REVENUE,
4475       GG2_LABOR_REVENUE,
4476       GG2_REVENUE_WRITEOFF,
4477       GG2_RAW_COST,
4478       GG2_BRDN_COST,
4479       GG2_BILL_RAW_COST,
4480       GG2_BILL_BRDN_COST,
4481       GG2_LABOR_RAW_COST,
4482       GG2_LABOR_BRDN_COST,
4483       GG2_BILL_LABOR_RAW_COST,
4484       GG2_BILL_LABOR_BRDN_COST,
4485       GP2_REVENUE,
4486       GP2_LABOR_REVENUE,
4487       GP2_REVENUE_WRITEOFF,
4488       GP2_RAW_COST,
4489       GP2_BRDN_COST,
4490       GP2_BILL_RAW_COST,
4491       GP2_BILL_BRDN_COST,
4492       GP2_LABOR_RAW_COST,
4493       GP2_LABOR_BRDN_COST,
4494       GP2_BILL_LABOR_RAW_COST,
4495       GP2_BILL_LABOR_BRDN_COST,
4496       TOTAL_HRS_A,
4497       BILL_HRS_A
4498     )
4499     select /*+ parallel(fin2) */
4500       0 WORKER_ID,
4501       DANGLING_RECVR_GL_RATE_FLAG,
4502       DANGLING_RECVR_GL_RATE2_FLAG,
4503       DANGLING_RECVR_PA_RATE_FLAG,
4504       DANGLING_RECVR_PA_RATE2_FLAG,
4505       DANGLING_PRVDR_EN_TIME_FLAG,
4506       DANGLING_RECVR_EN_TIME_FLAG,
4507       DANGLING_EXP_EN_TIME_FLAG,
4508       DANGLING_PRVDR_GL_TIME_FLAG,
4509       DANGLING_RECVR_GL_TIME_FLAG,
4510       DANGLING_EXP_GL_TIME_FLAG,
4511       DANGLING_PRVDR_PA_TIME_FLAG,
4512       DANGLING_RECVR_PA_TIME_FLAG,
4513       DANGLING_EXP_PA_TIME_FLAG,
4514       PJI_PROJECT_RECORD_FLAG,
4515       PJI_RESOURCE_RECORD_FLAG,
4516       RECORD_TYPE,
4517       CMT_RECORD_TYPE,
4518       PROJECT_ID,
4519       PROJECT_ORG_ID,
4520       PROJECT_ORGANIZATION_ID,
4521       PROJECT_TYPE_CLASS,
4522       PERSON_ID,
4523       EXPENDITURE_ORG_ID,
4524       EXPENDITURE_ORGANIZATION_ID,
4525       EXP_EVT_TYPE_ID,
4526       WORK_TYPE_ID,
4527       JOB_ID,
4528       TASK_ID,
4529       VENDOR_ID,
4530       EXPENDITURE_TYPE,
4531       EVENT_TYPE,
4532       EVENT_TYPE_CLASSIFICATION,
4533       EXPENDITURE_CATEGORY,
4534       REVENUE_CATEGORY,
4535       NON_LABOR_RESOURCE,
4536       BOM_LABOR_RESOURCE_ID,
4537       BOM_EQUIPMENT_RESOURCE_ID,
4538       INVENTORY_ITEM_ID,
4539       PO_LINE_ID,
4540       ASSIGNMENT_ID,
4541       SYSTEM_LINKAGE_FUNCTION,
4542       RESOURCE_CLASS_CODE,
4543       RECVR_GL_TIME_ID,
4544       GL_PERIOD_NAME,
4545       PRVDR_GL_TIME_ID,
4546       RECVR_PA_TIME_ID,
4547       PA_PERIOD_NAME,
4548       PRVDR_PA_TIME_ID,
4549       EXPENDITURE_ITEM_TIME_ID,
4550       PJ_GL_CALENDAR_ID,
4551       PJ_PA_CALENDAR_ID,
4552       RS_GL_CALENDAR_ID,
4553       RS_PA_CALENDAR_ID,
4554       PRJ_REVENUE,
4555       PRJ_LABOR_REVENUE,
4556       PRJ_REVENUE_WRITEOFF,
4557       PRJ_RAW_COST,
4558       PRJ_BRDN_COST,
4559       PRJ_BILL_RAW_COST,
4560       PRJ_BILL_BRDN_COST,
4561       PRJ_LABOR_RAW_COST,
4562       PRJ_LABOR_BRDN_COST,
4563       PRJ_BILL_LABOR_RAW_COST,
4564       PRJ_BILL_LABOR_BRDN_COST,
4565       POU_REVENUE,
4566       POU_LABOR_REVENUE,
4567       POU_REVENUE_WRITEOFF,
4568       POU_RAW_COST,
4569       POU_BRDN_COST,
4570       POU_BILL_RAW_COST,
4571       POU_BILL_BRDN_COST,
4572       POU_LABOR_RAW_COST,
4573       POU_LABOR_BRDN_COST,
4574       POU_BILL_LABOR_RAW_COST,
4575       POU_BILL_LABOR_BRDN_COST,
4576       EOU_RAW_COST,
4577       EOU_BRDN_COST,
4578       EOU_BILL_RAW_COST,
4579       EOU_BILL_BRDN_COST,
4580       TXN_CURRENCY_CODE,
4581       TXN_REVENUE,
4582       TXN_RAW_COST,
4583       TXN_BRDN_COST,
4584       TXN_BILL_RAW_COST,
4585       TXN_BILL_BRDN_COST,
4586       LABOR_HRS,
4587       BILL_LABOR_HRS,
4588       GG1_REVENUE,
4589       GG1_LABOR_REVENUE,
4590       GG1_REVENUE_WRITEOFF,
4591       GG1_RAW_COST,
4592       GG1_BRDN_COST,
4593       GG1_BILL_RAW_COST,
4594       GG1_BILL_BRDN_COST,
4595       GG1_LABOR_RAW_COST,
4596       GG1_LABOR_BRDN_COST,
4597       GG1_BILL_LABOR_RAW_COST,
4598       GG1_BILL_LABOR_BRDN_COST,
4599       GP1_REVENUE,
4600       GP1_LABOR_REVENUE,
4601       GP1_REVENUE_WRITEOFF,
4602       GP1_RAW_COST,
4603       GP1_BRDN_COST,
4604       GP1_BILL_RAW_COST,
4605       GP1_BILL_BRDN_COST,
4606       GP1_LABOR_RAW_COST,
4607       GP1_LABOR_BRDN_COST,
4608       GP1_BILL_LABOR_RAW_COST,
4609       GP1_BILL_LABOR_BRDN_COST,
4610       GG2_REVENUE,
4611       GG2_LABOR_REVENUE,
4612       GG2_REVENUE_WRITEOFF,
4613       GG2_RAW_COST,
4614       GG2_BRDN_COST,
4615       GG2_BILL_RAW_COST,
4616       GG2_BILL_BRDN_COST,
4617       GG2_LABOR_RAW_COST,
4618       GG2_LABOR_BRDN_COST,
4619       GG2_BILL_LABOR_RAW_COST,
4620       GG2_BILL_LABOR_BRDN_COST,
4621       GP2_REVENUE,
4622       GP2_LABOR_REVENUE,
4623       GP2_REVENUE_WRITEOFF,
4624       GP2_RAW_COST,
4625       GP2_BRDN_COST,
4626       GP2_BILL_RAW_COST,
4627       GP2_BILL_BRDN_COST,
4628       GP2_LABOR_RAW_COST,
4629       GP2_LABOR_BRDN_COST,
4630       GP2_BILL_LABOR_RAW_COST,
4631       GP2_BILL_LABOR_BRDN_COST,
4632       TOTAL_HRS_A,
4633       BILL_HRS_A
4634     from
4635       PJI_FM_AGGR_FIN2 fin2
4636     where
4637       WORKER_ID = p_worker_id and
4638       (DANGLING_RECVR_GL_RATE_FLAG  is not null or
4639        DANGLING_RECVR_GL_RATE2_FLAG is not null or
4640        DANGLING_RECVR_PA_RATE_FLAG  is not null or
4641        DANGLING_RECVR_PA_RATE2_FLAG is not null or
4642        DANGLING_PRVDR_EN_TIME_FLAG  is not null or
4643        DANGLING_RECVR_EN_TIME_FLAG  is not null or
4644        DANGLING_EXP_EN_TIME_FLAG    is not null or
4645        DANGLING_PRVDR_GL_TIME_FLAG  is not null or
4646        DANGLING_RECVR_GL_TIME_FLAG  is not null or
4647        DANGLING_EXP_GL_TIME_FLAG    is not null or
4648        DANGLING_PRVDR_PA_TIME_FLAG  is not null or
4649        DANGLING_RECVR_PA_TIME_FLAG  is not null or
4650        DANGLING_EXP_PA_TIME_FLAG    is not null);
4651 
4652     delete /*+ parallel(fin2) */
4653     from   PJI_FM_AGGR_FIN2 fin2
4654     where  WORKER_ID = p_worker_id and
4655            (DANGLING_RECVR_GL_RATE_FLAG  is not null or
4656             DANGLING_RECVR_GL_RATE2_FLAG is not null or
4657             DANGLING_RECVR_PA_RATE_FLAG  is not null or
4658             DANGLING_RECVR_PA_RATE2_FLAG is not null or
4659             DANGLING_PRVDR_EN_TIME_FLAG  is not null or
4660             DANGLING_RECVR_EN_TIME_FLAG  is not null or
4661             DANGLING_EXP_EN_TIME_FLAG    is not null or
4662             DANGLING_PRVDR_GL_TIME_FLAG  is not null or
4663             DANGLING_RECVR_GL_TIME_FLAG  is not null or
4664             DANGLING_EXP_GL_TIME_FLAG    is not null or
4665             DANGLING_PRVDR_PA_TIME_FLAG  is not null or
4666             DANGLING_RECVR_PA_TIME_FLAG  is not null or
4667             DANGLING_EXP_PA_TIME_FLAG    is not null);
4668 
4669     PJI_PROCESS_UTIL.REGISTER_STEP_COMPLETION(l_process, 'PJI_FM_SUM_EXTR.MOVE_DANGLING_FIN_ROWS(p_worker_id);');
4670 
4671     commit;
4672 
4673   end MOVE_DANGLING_FIN_ROWS;
4674 
4675 
4676   -- -----------------------------------------------------
4677   -- procedure ACT_SUMMARY
4678   -- -----------------------------------------------------
4679   procedure ACT_SUMMARY (p_worker_id in number) is
4680 
4681     l_process           varchar2(30);
4682     l_extraction_type   varchar2(30);
4683     l_schema            varchar2(30);
4684 
4685     l_txn_currency_flag varchar2(1);
4686     l_g2_currency_flag  varchar2(1);
4687     l_g1_currency_code  varchar2(30);
4688     l_g2_currency_code  varchar2(30);
4689 
4690   begin
4691 
4692     l_process := PJI_FM_SUM_MAIN.g_process || p_worker_id;
4693 
4694     if (not PJI_PROCESS_UTIL.NEED_TO_RUN_STEP(l_process, 'PJI_FM_SUM_EXTR.ACT_SUMMARY(p_worker_id);')) then
4695       return;
4696     end if;
4697 
4698     l_extraction_type := PJI_UTILS.GET_PARAMETER('EXTRACTION_TYPE');
4699 
4700     select
4701       TXN_CURR_FLAG,
4702       GLOBAL_CURR2_FLAG
4703     into
4704       l_txn_currency_flag,
4705       l_g2_currency_flag
4706     from
4707       PJI_SYSTEM_SETTINGS;
4708 
4709     l_g1_currency_code := PJI_UTILS.GET_GLOBAL_PRIMARY_CURRENCY;
4710     l_g2_currency_code := PJI_UTILS.GET_GLOBAL_SECONDARY_CURRENCY;
4711 
4712     insert /*+ append parallel(act2_i) */ into PJI_FM_AGGR_ACT2 act2_i  --  in ACT_SUMMARY
4713     (
4714       WORKER_ID,
4715       DANGLING_GL_RATE_FLAG,
4716       DANGLING_GL_RATE2_FLAG,
4717       DANGLING_PA_RATE_FLAG,
4718       DANGLING_PA_RATE2_FLAG,
4719       DANGLING_EN_TIME_FLAG,
4720       DANGLING_GL_TIME_FLAG,
4721       DANGLING_PA_TIME_FLAG,
4722       ROW_ID,
4723       PROJECT_ID,
4724       PROJECT_ORG_ID,
4725       PROJECT_ORGANIZATION_ID,
4726       TASK_ID,
4727       GL_TIME_ID,
4728       GL_PERIOD_NAME,
4729       PA_TIME_ID,
4730       PA_PERIOD_NAME,
4731       GL_CALENDAR_ID,
4732       PA_CALENDAR_ID,
4733       TXN_CURRENCY_CODE,
4734       TXN_REVENUE,
4735       TXN_FUNDING,
4736       TXN_INITIAL_FUNDING_AMOUNT,
4737       TXN_ADDITIONAL_FUNDING_AMOUNT,
4738       TXN_CANCELLED_FUNDING_AMOUNT,
4739       TXN_FUNDING_ADJUSTMENT_AMOUNT,
4740       TXN_REVENUE_WRITEOFF,
4741       TXN_AR_INVOICE_AMOUNT,
4742       TXN_AR_CASH_APPLIED_AMOUNT,
4743       TXN_AR_INVOICE_WRITEOFF_AMOUNT,
4744       TXN_AR_CREDIT_MEMO_AMOUNT,
4745       TXN_UNBILLED_RECEIVABLES,
4746       TXN_UNEARNED_REVENUE,
4747       TXN_AR_UNAPPR_INVOICE_AMOUNT,
4748       TXN_AR_APPR_INVOICE_AMOUNT,
4749       TXN_AR_AMOUNT_DUE,
4750       TXN_AR_AMOUNT_OVERDUE,
4751       PRJ_REVENUE,
4752       PRJ_FUNDING,
4753       PRJ_INITIAL_FUNDING_AMOUNT,
4754       PRJ_ADDITIONAL_FUNDING_AMOUNT,
4755       PRJ_CANCELLED_FUNDING_AMOUNT,
4756       PRJ_FUNDING_ADJUSTMENT_AMOUNT,
4757       PRJ_REVENUE_WRITEOFF,
4758       PRJ_AR_INVOICE_AMOUNT,
4759       PRJ_AR_CASH_APPLIED_AMOUNT,
4760       PRJ_AR_INVOICE_WRITEOFF_AMOUNT,
4761       PRJ_AR_CREDIT_MEMO_AMOUNT,
4762       PRJ_UNBILLED_RECEIVABLES,
4763       PRJ_UNEARNED_REVENUE,
4764       PRJ_AR_UNAPPR_INVOICE_AMOUNT,
4765       PRJ_AR_APPR_INVOICE_AMOUNT,
4766       PRJ_AR_AMOUNT_DUE,
4767       PRJ_AR_AMOUNT_OVERDUE,
4768       POU_REVENUE,
4769       POU_FUNDING,
4770       POU_INITIAL_FUNDING_AMOUNT,
4771       POU_ADDITIONAL_FUNDING_AMOUNT,
4772       POU_CANCELLED_FUNDING_AMOUNT,
4773       POU_FUNDING_ADJUSTMENT_AMOUNT,
4774       POU_REVENUE_WRITEOFF,
4775       POU_AR_INVOICE_AMOUNT,
4776       POU_AR_CASH_APPLIED_AMOUNT,
4777       POU_AR_INVOICE_WRITEOFF_AMOUNT,
4778       POU_AR_CREDIT_MEMO_AMOUNT,
4779       POU_UNBILLED_RECEIVABLES,
4780       POU_UNEARNED_REVENUE,
4781       POU_AR_UNAPPR_INVOICE_AMOUNT,
4782       POU_AR_APPR_INVOICE_AMOUNT,
4783       POU_AR_AMOUNT_DUE,
4784       POU_AR_AMOUNT_OVERDUE,
4785       INITIAL_FUNDING_COUNT,
4786       ADDITIONAL_FUNDING_COUNT,
4787       CANCELLED_FUNDING_COUNT,
4788       FUNDING_ADJUSTMENT_COUNT,
4789       AR_INVOICE_COUNT,
4790       AR_CASH_APPLIED_COUNT,
4791       AR_INVOICE_WRITEOFF_COUNT,
4792       AR_CREDIT_MEMO_COUNT,
4793       AR_UNAPPR_INVOICE_COUNT,
4794       AR_APPR_INVOICE_COUNT,
4795       AR_COUNT_DUE,
4796       AR_COUNT_OVERDUE,
4797       GG_REVENUE,
4798       GG_FUNDING,
4799       GG_INITIAL_FUNDING_AMOUNT,
4800       GG_ADDITIONAL_FUNDING_AMOUNT,
4801       GG_CANCELLED_FUNDING_AMOUNT,
4802       GG_FUNDING_ADJUSTMENT_AMOUNT,
4803       GG_REVENUE_WRITEOFF,
4804       GG_AR_INVOICE_AMOUNT,
4805       GG_AR_CASH_APPLIED_AMOUNT,
4806       GG_AR_INVOICE_WRITEOFF_AMOUNT,
4807       GG_AR_CREDIT_MEMO_AMOUNT,
4808       GG_UNBILLED_RECEIVABLES,
4809       GG_UNEARNED_REVENUE,
4810       GG_AR_UNAPPR_INVOICE_AMOUNT,
4811       GG_AR_APPR_INVOICE_AMOUNT,
4812       GG_AR_AMOUNT_DUE,
4813       GG_AR_AMOUNT_OVERDUE,
4814       GP_REVENUE,
4815       GP_FUNDING,
4816       GP_INITIAL_FUNDING_AMOUNT,
4817       GP_ADDITIONAL_FUNDING_AMOUNT,
4818       GP_CANCELLED_FUNDING_AMOUNT,
4819       GP_FUNDING_ADJUSTMENT_AMOUNT,
4820       GP_REVENUE_WRITEOFF,
4821       GP_AR_INVOICE_AMOUNT,
4822       GP_AR_CASH_APPLIED_AMOUNT,
4823       GP_AR_INVOICE_WRITEOFF_AMOUNT,
4824       GP_AR_CREDIT_MEMO_AMOUNT,
4825       GP_UNBILLED_RECEIVABLES,
4826       GP_UNEARNED_REVENUE,
4827       GP_AR_UNAPPR_INVOICE_AMOUNT,
4828       GP_AR_APPR_INVOICE_AMOUNT,
4829       GP_AR_AMOUNT_DUE,
4830       GP_AR_AMOUNT_OVERDUE,
4831       GG2_REVENUE,
4832       GG2_FUNDING,
4833       GG2_INITIAL_FUNDING_AMOUNT,
4834       GG2_ADDITIONAL_FUNDING_AMOUNT,
4835       GG2_CANCELLED_FUNDING_AMOUNT,
4836       GG2_FUNDING_ADJUSTMENT_AMOUNT,
4837       GG2_REVENUE_WRITEOFF,
4838       GG2_AR_INVOICE_AMOUNT,
4839       GG2_AR_CASH_APPLIED_AMOUNT,
4840       GG2_AR_INVOICE_WRITEOFF_AMOUNT,
4841       GG2_AR_CREDIT_MEMO_AMOUNT,
4842       GG2_UNBILLED_RECEIVABLES,
4843       GG2_UNEARNED_REVENUE,
4844       GG2_AR_UNAPPR_INVOICE_AMOUNT,
4845       GG2_AR_APPR_INVOICE_AMOUNT,
4846       GG2_AR_AMOUNT_DUE,
4847       GG2_AR_AMOUNT_OVERDUE,
4848       GP2_REVENUE,
4849       GP2_FUNDING,
4850       GP2_INITIAL_FUNDING_AMOUNT,
4851       GP2_ADDITIONAL_FUNDING_AMOUNT,
4852       GP2_CANCELLED_FUNDING_AMOUNT,
4853       GP2_FUNDING_ADJUSTMENT_AMOUNT,
4854       GP2_REVENUE_WRITEOFF,
4855       GP2_AR_INVOICE_AMOUNT,
4856       GP2_AR_CASH_APPLIED_AMOUNT,
4857       GP2_AR_INVOICE_WRITEOFF_AMOUNT,
4858       GP2_AR_CREDIT_MEMO_AMOUNT,
4859       GP2_UNBILLED_RECEIVABLES,
4860       GP2_UNEARNED_REVENUE,
4861       GP2_AR_UNAPPR_INVOICE_AMOUNT,
4862       GP2_AR_APPR_INVOICE_AMOUNT,
4863       GP2_AR_AMOUNT_DUE,
4864       GP2_AR_AMOUNT_OVERDUE
4865     )
4866     select
4867       tmp1.WORKER_ID,
4868       tmp1.DANGLING_GL_RATE_FLAG,
4869       tmp1.DANGLING_GL_RATE2_FLAG,
4870       tmp1.DANGLING_PA_RATE_FLAG,
4871       tmp1.DANGLING_PA_RATE2_FLAG,
4872       tmp1.DANGLING_EN_TIME_FLAG,
4873       tmp1.DANGLING_GL_TIME_FLAG,
4874       tmp1.DANGLING_PA_TIME_FLAG,
4875       null ROW_ID,
4876       tmp1.PROJECT_ID,
4877       tmp1.PROJECT_ORG_ID,
4878       tmp1.PROJECT_ORGANIZATION_ID,
4879       tmp1.TASK_ID,
4880       tmp1.GL_TIME_ID,
4881       tmp1.GL_PERIOD_NAME,
4882       tmp1.PA_TIME_ID,
4883       tmp1.PA_PERIOD_NAME,
4884       tmp1.GL_CALENDAR_ID,
4885       tmp1.PA_CALENDAR_ID,
4886       tmp1.TXN_CURRENCY_CODE,
4887       tmp1.TXN_REVENUE,
4888       tmp1.TXN_FUNDING,
4889       tmp1.TXN_INITIAL_FUNDING_AMOUNT,
4890       tmp1.TXN_ADDITIONAL_FUNDING_AMOUNT,
4891       tmp1.TXN_CANCELLED_FUNDING_AMOUNT,
4892       tmp1.TXN_FUNDING_ADJUSTMENT_AMOUNT,
4893       tmp1.TXN_REVENUE_WRITEOFF,
4894       tmp1.TXN_AR_INVOICE_AMOUNT,
4895       tmp1.TXN_AR_CASH_APPLIED_AMOUNT,
4896       tmp1.TXN_AR_INVOICE_WRITEOFF_AMOUNT,
4897       tmp1.TXN_AR_CREDIT_MEMO_AMOUNT,
4898       tmp1.TXN_UNBILLED_RECEIVABLES,
4899       tmp1.TXN_UNEARNED_REVENUE,
4900       tmp1.TXN_AR_UNAPPR_INVOICE_AMOUNT,
4901       tmp1.TXN_AR_APPR_INVOICE_AMOUNT,
4902       tmp1.TXN_AR_AMOUNT_DUE,
4903       tmp1.TXN_AR_AMOUNT_OVERDUE,
4904       tmp1.PRJ_REVENUE,
4905       tmp1.PRJ_FUNDING,
4906       tmp1.PRJ_INITIAL_FUNDING_AMOUNT,
4907       tmp1.PRJ_ADDITIONAL_FUNDING_AMOUNT,
4908       tmp1.PRJ_CANCELLED_FUNDING_AMOUNT,
4909       tmp1.PRJ_FUNDING_ADJUSTMENT_AMOUNT,
4910       tmp1.PRJ_REVENUE_WRITEOFF,
4911       tmp1.PRJ_AR_INVOICE_AMOUNT,
4912       tmp1.PRJ_AR_CASH_APPLIED_AMOUNT,
4913       tmp1.PRJ_AR_INVOICE_WRITEOFF_AMOUNT,
4914       tmp1.PRJ_AR_CREDIT_MEMO_AMOUNT,
4915       tmp1.PRJ_UNBILLED_RECEIVABLES,
4916       tmp1.PRJ_UNEARNED_REVENUE,
4917       tmp1.PRJ_AR_UNAPPR_INVOICE_AMOUNT,
4918       tmp1.PRJ_AR_APPR_INVOICE_AMOUNT,
4919       tmp1.PRJ_AR_AMOUNT_DUE,
4920       tmp1.PRJ_AR_AMOUNT_OVERDUE,
4921       tmp1.POU_REVENUE,
4922       tmp1.POU_FUNDING,
4923       tmp1.POU_INITIAL_FUNDING_AMOUNT,
4924       tmp1.POU_ADDITIONAL_FUNDING_AMOUNT,
4925       tmp1.POU_CANCELLED_FUNDING_AMOUNT,
4926       tmp1.POU_FUNDING_ADJUSTMENT_AMOUNT,
4927       tmp1.POU_REVENUE_WRITEOFF,
4928       tmp1.POU_AR_INVOICE_AMOUNT,
4929       tmp1.POU_AR_CASH_APPLIED_AMOUNT,
4930       tmp1.POU_AR_INVOICE_WRITEOFF_AMOUNT,
4931       tmp1.POU_AR_CREDIT_MEMO_AMOUNT,
4932       tmp1.POU_UNBILLED_RECEIVABLES,
4933       tmp1.POU_UNEARNED_REVENUE,
4934       tmp1.POU_AR_UNAPPR_INVOICE_AMOUNT,
4935       tmp1.POU_AR_APPR_INVOICE_AMOUNT,
4936       tmp1.POU_AR_AMOUNT_DUE,
4937       tmp1.POU_AR_AMOUNT_OVERDUE,
4938       tmp1.INITIAL_FUNDING_COUNT,
4939       tmp1.ADDITIONAL_FUNDING_COUNT,
4940       tmp1.CANCELLED_FUNDING_COUNT,
4941       tmp1.FUNDING_ADJUSTMENT_COUNT,
4942       tmp1.AR_INVOICE_COUNT,
4943       tmp1.AR_CASH_APPLIED_COUNT,
4944       tmp1.AR_INVOICE_WRITEOFF_COUNT,
4945       tmp1.AR_CREDIT_MEMO_COUNT,
4946       tmp1.AR_UNAPPR_INVOICE_COUNT,
4947       tmp1.AR_APPR_INVOICE_COUNT,
4948       tmp1.AR_COUNT_DUE,
4949       tmp1.AR_COUNT_OVERDUE,
4950       decode(sign(tmp1.WORKER_ID),
4951              1, decode(tmp1.TXN_CURRENCY_CODE,
4952                        l_g1_currency_code,
4953                        tmp1.TXN_REVENUE,
4954                        round(tmp1.POU_REVENUE *
4955                              tmp1.GL_RATE1 /
4956                              GL_MAU1) * GL_MAU1),
4957                 to_number(null))               GG1_REVENUE,
4958       decode(sign(tmp1.WORKER_ID),
4959              1, decode(tmp1.TXN_CURRENCY_CODE,
4960                        l_g1_currency_code,
4961                        tmp1.TXN_FUNDING,
4962                        round(tmp1.POU_FUNDING *
4963                              tmp1.GL_RATE1 /
4964                              GL_MAU1) * GL_MAU1),
4965                 to_number(null))               GG1_FUNDING,
4966       decode(sign(tmp1.WORKER_ID),
4967              1, decode(tmp1.TXN_CURRENCY_CODE,
4968                        l_g1_currency_code,
4969                        tmp1.TXN_INITIAL_FUNDING_AMOUNT,
4970                        round(tmp1.POU_INITIAL_FUNDING_AMOUNT *
4971                              tmp1.GL_RATE1 /
4972                              GL_MAU1) * GL_MAU1),
4973                 to_number(null))               GG1_INITIAL_FUNDING_AMOUNT,
4974       decode(sign(tmp1.WORKER_ID),
4975              1, decode(tmp1.TXN_CURRENCY_CODE,
4976                        l_g1_currency_code,
4977                        tmp1.TXN_ADDITIONAL_FUNDING_AMOUNT,
4978                        round(tmp1.POU_ADDITIONAL_FUNDING_AMOUNT *
4979                              tmp1.GL_RATE1 /
4980                              GL_MAU1) * GL_MAU1),
4981                 to_number(null))               GG1_ADDITIONAL_FUNDING_AMOUNT,
4982       decode(sign(tmp1.WORKER_ID),
4983              1, decode(tmp1.TXN_CURRENCY_CODE,
4984                        l_g1_currency_code,
4985                        tmp1.TXN_CANCELLED_FUNDING_AMOUNT,
4986                        round(tmp1.POU_CANCELLED_FUNDING_AMOUNT *
4987                              tmp1.GL_RATE1 /
4988                              GL_MAU1) * GL_MAU1),
4989                 to_number(null))               GG1_CANCELLED_FUNDING_AMOUNT,
4990       decode(sign(tmp1.WORKER_ID),
4991              1, decode(tmp1.TXN_CURRENCY_CODE,
4992                        l_g1_currency_code,
4993                        tmp1.TXN_FUNDING_ADJUSTMENT_AMOUNT,
4994                        round(tmp1.POU_FUNDING_ADJUSTMENT_AMOUNT *
4995                              tmp1.GL_RATE1 /
4996                              GL_MAU1) * GL_MAU1),
4997                 to_number(null))               GG1_FUNDING_ADJUSTMENT_AMOUNT,
4998       decode(sign(tmp1.WORKER_ID),
4999              1, decode(tmp1.TXN_CURRENCY_CODE,
5000                        l_g1_currency_code,
5001                        tmp1.TXN_REVENUE_WRITEOFF,
5002                        round(tmp1.POU_REVENUE_WRITEOFF *
5003                              tmp1.GL_RATE1 /
5004                              GL_MAU1) * GL_MAU1),
5005                 to_number(null))               GG1_REVENUE_WRITEOFF,
5006       decode(sign(tmp1.WORKER_ID),
5007              1, decode(tmp1.TXN_CURRENCY_CODE,
5008                        l_g1_currency_code,
5009                        tmp1.TXN_AR_INVOICE_AMOUNT,
5010                        round(tmp1.POU_AR_INVOICE_AMOUNT *
5011                              tmp1.GL_RATE1 /
5012                              GL_MAU1) * GL_MAU1),
5013                 to_number(null))               GG1_AR_INVOICE_AMOUNT,
5014       decode(sign(tmp1.WORKER_ID),
5015              1, decode(tmp1.TXN_CURRENCY_CODE,
5016                        l_g1_currency_code,
5017                        tmp1.TXN_AR_CASH_APPLIED_AMOUNT,
5018                        round(tmp1.POU_AR_CASH_APPLIED_AMOUNT *
5019                              tmp1.GL_RATE1 /
5020                              GL_MAU1) * GL_MAU1),
5021                 to_number(null))               GG1_AR_CASH_APPLIED_AMOUNT,
5022       decode(sign(tmp1.WORKER_ID),
5023              1, decode(tmp1.TXN_CURRENCY_CODE,
5024                        l_g1_currency_code,
5025                        tmp1.TXN_AR_INVOICE_WRITEOFF_AMOUNT,
5026                        round(tmp1.POU_AR_INVOICE_WRITEOFF_AMOUNT *
5027                              tmp1.GL_RATE1 /
5028                              GL_MAU1) * GL_MAU1),
5029                 to_number(null))               GG1_AR_INVOICE_WRITEOFF_AMOUNT,
5030       decode(sign(tmp1.WORKER_ID),
5031              1, decode(tmp1.TXN_CURRENCY_CODE,
5032                        l_g1_currency_code,
5033                        tmp1.TXN_AR_CREDIT_MEMO_AMOUNT,
5034                        round(tmp1.POU_AR_CREDIT_MEMO_AMOUNT *
5035                              tmp1.GL_RATE1 /
5036                              GL_MAU1) * GL_MAU1),
5037                 to_number(null))               GG1_AR_CREDIT_MEMO_AMOUNT,
5038       decode(sign(tmp1.WORKER_ID),
5039              1, decode(tmp1.TXN_CURRENCY_CODE,
5040                        l_g1_currency_code,
5041                        tmp1.TXN_UNBILLED_RECEIVABLES,
5042                        round(tmp1.POU_UNBILLED_RECEIVABLES *
5043                              tmp1.GL_RATE1 /
5044                              GL_MAU1) * GL_MAU1),
5045                 to_number(null))               GG1_UNBILLED_RECEIVABLES,
5046       decode(sign(tmp1.WORKER_ID),
5047              1, decode(tmp1.TXN_CURRENCY_CODE,
5048                        l_g1_currency_code,
5049                        tmp1.TXN_UNEARNED_REVENUE,
5050                        round(tmp1.POU_UNEARNED_REVENUE *
5051                              tmp1.GL_RATE1 /
5052                              GL_MAU1) * GL_MAU1),
5053                 to_number(null))               GG1_UNEARNED_REVENUE,
5054       decode(sign(tmp1.WORKER_ID),
5055              1, decode(tmp1.TXN_CURRENCY_CODE,
5056                        l_g1_currency_code,
5057                        tmp1.TXN_AR_UNAPPR_INVOICE_AMOUNT,
5058                        round(tmp1.POU_AR_UNAPPR_INVOICE_AMOUNT *
5059                              tmp1.GL_RATE1 /
5060                              GL_MAU1) * GL_MAU1),
5061                 to_number(null))               GG1_AR_UNAPPR_INVOICE_AMOUNT,
5062       decode(sign(tmp1.WORKER_ID),
5063              1, decode(tmp1.TXN_CURRENCY_CODE,
5064                        l_g1_currency_code,
5065                        tmp1.TXN_AR_APPR_INVOICE_AMOUNT,
5066                        round(tmp1.POU_AR_APPR_INVOICE_AMOUNT *
5067                              tmp1.GL_RATE1 /
5068                              GL_MAU1) * GL_MAU1),
5069                 to_number(null))               GG1_AR_APPR_INVOICE_AMOUNT,
5070       decode(sign(tmp1.WORKER_ID),
5071              1, decode(tmp1.TXN_CURRENCY_CODE,
5072                        l_g1_currency_code,
5073                        tmp1.TXN_AR_AMOUNT_DUE,
5074                        round(tmp1.POU_AR_AMOUNT_DUE *
5075                              tmp1.GL_RATE1 /
5076                              GL_MAU1) * GL_MAU1),
5077                 to_number(null))               GG1_AR_AMOUNT_DUE,
5078       decode(sign(tmp1.WORKER_ID),
5079              1, decode(tmp1.TXN_CURRENCY_CODE,
5080                        l_g1_currency_code,
5081                        tmp1.TXN_AR_AMOUNT_OVERDUE,
5082                        round(tmp1.POU_AR_AMOUNT_OVERDUE *
5083                              tmp1.GL_RATE1 /
5084                              GL_MAU1) * GL_MAU1),
5085                 to_number(null))               GG1_AR_AMOUNT_OVERDUE,
5086       decode(sign(tmp1.WORKER_ID),
5087              1, decode(tmp1.TXN_CURRENCY_CODE,
5088                        l_g1_currency_code,
5089                        tmp1.TXN_REVENUE,
5090                        round(tmp1.POU_REVENUE *
5091                              tmp1.PA_RATE1 /
5092                              PA_MAU1) * PA_MAU1),
5093                 to_number(null))               GP1_REVENUE,
5094       decode(sign(tmp1.WORKER_ID),
5095              1, decode(tmp1.TXN_CURRENCY_CODE,
5096                        l_g1_currency_code,
5097                        tmp1.TXN_FUNDING,
5098                        round(tmp1.POU_FUNDING *
5099                              tmp1.PA_RATE1 /
5100                              PA_MAU1) * PA_MAU1),
5101                 to_number(null))               GP1_FUNDING,
5102       decode(sign(tmp1.WORKER_ID),
5103              1, decode(tmp1.TXN_CURRENCY_CODE,
5104                        l_g1_currency_code,
5105                        tmp1.TXN_INITIAL_FUNDING_AMOUNT,
5106                        round(tmp1.POU_INITIAL_FUNDING_AMOUNT *
5107                              tmp1.PA_RATE1 /
5108                              PA_MAU1) * PA_MAU1),
5109                 to_number(null))               GP1_INITIAL_FUNDING_AMOUNT,
5110       decode(sign(tmp1.WORKER_ID),
5111              1, decode(tmp1.TXN_CURRENCY_CODE,
5112                        l_g1_currency_code,
5113                        tmp1.TXN_ADDITIONAL_FUNDING_AMOUNT,
5114                        round(tmp1.POU_ADDITIONAL_FUNDING_AMOUNT *
5115                              tmp1.PA_RATE1 /
5116                              PA_MAU1) * PA_MAU1),
5117                 to_number(null))               GP1_ADDITIONAL_FUNDING_AMOUNT,
5118       decode(sign(tmp1.WORKER_ID),
5119              1, decode(tmp1.TXN_CURRENCY_CODE,
5120                        l_g1_currency_code,
5121                        tmp1.TXN_CANCELLED_FUNDING_AMOUNT,
5122                        round(tmp1.POU_CANCELLED_FUNDING_AMOUNT *
5123                              tmp1.PA_RATE1 /
5124                              PA_MAU1) * PA_MAU1),
5125                 to_number(null))               GP1_CANCELLED_FUNDING_AMOUNT,
5126       decode(sign(tmp1.WORKER_ID),
5127              1, decode(tmp1.TXN_CURRENCY_CODE,
5128                        l_g1_currency_code,
5129                        tmp1.TXN_FUNDING_ADJUSTMENT_AMOUNT,
5130                        round(tmp1.POU_FUNDING_ADJUSTMENT_AMOUNT *
5131                              tmp1.PA_RATE1 /
5132                              PA_MAU1) * PA_MAU1),
5133                 to_number(null))               GP1_FUNDING_ADJUSTMENT_AMOUNT,
5134       decode(sign(tmp1.WORKER_ID),
5135              1, decode(tmp1.TXN_CURRENCY_CODE,
5136                        l_g1_currency_code,
5137                        tmp1.TXN_REVENUE_WRITEOFF,
5138                        round(tmp1.POU_REVENUE_WRITEOFF *
5139                              tmp1.PA_RATE1 /
5140                              PA_MAU1) * PA_MAU1),
5141                 to_number(null))               GP1_REVENUE_WRITEOFF,
5142       decode(sign(tmp1.WORKER_ID),
5143              1, decode(tmp1.TXN_CURRENCY_CODE,
5144                        l_g1_currency_code,
5145                        tmp1.TXN_AR_INVOICE_AMOUNT,
5146                        round(tmp1.POU_AR_INVOICE_AMOUNT *
5147                              tmp1.PA_RATE1 /
5148                              PA_MAU1) * PA_MAU1),
5149                 to_number(null))               GP1_AR_INVOICE_AMOUNT,
5150       decode(sign(tmp1.WORKER_ID),
5151              1, decode(tmp1.TXN_CURRENCY_CODE,
5152                        l_g1_currency_code,
5153                        tmp1.TXN_AR_CASH_APPLIED_AMOUNT,
5154                        round(tmp1.POU_AR_CASH_APPLIED_AMOUNT *
5155                              tmp1.PA_RATE1 /
5156                              PA_MAU1) * PA_MAU1),
5157                 to_number(null))               GP1_AR_CASH_APPLIED_AMOUNT,
5158       decode(sign(tmp1.WORKER_ID),
5159              1, decode(tmp1.TXN_CURRENCY_CODE,
5160                        l_g1_currency_code,
5161                        tmp1.TXN_AR_INVOICE_WRITEOFF_AMOUNT,
5162                        round(tmp1.POU_AR_INVOICE_WRITEOFF_AMOUNT *
5163                              tmp1.PA_RATE1 /
5164                              PA_MAU1) * PA_MAU1),
5165                 to_number(null))               GP1_AR_INVOICE_WRITEOFF_AMOUNT,
5166       decode(sign(tmp1.WORKER_ID),
5167              1, decode(tmp1.TXN_CURRENCY_CODE,
5168                        l_g1_currency_code,
5169                        tmp1.TXN_AR_CREDIT_MEMO_AMOUNT,
5170                        round(tmp1.POU_AR_CREDIT_MEMO_AMOUNT *
5171                              tmp1.PA_RATE1 /
5172                              PA_MAU1) * PA_MAU1),
5173                 to_number(null))               GP1_AR_CREDIT_MEMO_AMOUNT,
5174       decode(sign(tmp1.WORKER_ID),
5175              1, decode(tmp1.TXN_CURRENCY_CODE,
5176                        l_g1_currency_code,
5177                        tmp1.TXN_UNBILLED_RECEIVABLES,
5178                        round(tmp1.POU_UNBILLED_RECEIVABLES *
5179                              tmp1.PA_RATE1 /
5180                              PA_MAU1) * PA_MAU1),
5181                 to_number(null))               GP1_UNBILLED_RECEIVABLES,
5182       decode(sign(tmp1.WORKER_ID),
5183              1, decode(tmp1.TXN_CURRENCY_CODE,
5184                        l_g1_currency_code,
5185                        tmp1.TXN_UNEARNED_REVENUE,
5186                        round(tmp1.POU_UNEARNED_REVENUE *
5187                              tmp1.PA_RATE1 /
5188                              PA_MAU1) * PA_MAU1),
5189                 to_number(null))               GP1_UNEARNED_REVENUE,
5190       decode(sign(tmp1.WORKER_ID),
5191              1, decode(tmp1.TXN_CURRENCY_CODE,
5192                        l_g1_currency_code,
5193                        tmp1.TXN_AR_UNAPPR_INVOICE_AMOUNT,
5194                        round(tmp1.POU_AR_UNAPPR_INVOICE_AMOUNT *
5195                              tmp1.PA_RATE1 /
5196                              PA_MAU1) * PA_MAU1),
5197                 to_number(null))               GP1_AR_UNAPPR_INVOICE_AMOUNT,
5198       decode(sign(tmp1.WORKER_ID),
5199              1, decode(tmp1.TXN_CURRENCY_CODE,
5200                        l_g1_currency_code,
5201                        tmp1.TXN_AR_APPR_INVOICE_AMOUNT,
5202                        round(tmp1.POU_AR_APPR_INVOICE_AMOUNT *
5203                              tmp1.PA_RATE1 /
5204                              PA_MAU1) * PA_MAU1),
5205                 to_number(null))               GP1_AR_APPR_INVOICE_AMOUNT,
5206       decode(sign(tmp1.WORKER_ID),
5207              1, decode(tmp1.TXN_CURRENCY_CODE,
5208                        l_g1_currency_code,
5209                        tmp1.TXN_AR_AMOUNT_DUE,
5210                        round(tmp1.POU_AR_AMOUNT_DUE *
5211                              tmp1.PA_RATE1 /
5212                              PA_MAU1) * PA_MAU1),
5213                 to_number(null))               GP1_AR_AMOUNT_DUE,
5214       decode(sign(tmp1.WORKER_ID),
5215              1, decode(tmp1.TXN_CURRENCY_CODE,
5216                        l_g1_currency_code,
5217                        tmp1.TXN_AR_AMOUNT_OVERDUE,
5218                        round(tmp1.POU_AR_AMOUNT_OVERDUE *
5219                              tmp1.PA_RATE1 /
5220                              PA_MAU1) * PA_MAU1),
5221                 to_number(null))               GP1_AR_AMOUNT_OVERDUE,
5222       decode(sign(tmp1.WORKER_ID),
5223              1, decode(tmp1.TXN_CURRENCY_CODE,
5224                        l_g2_currency_code,
5225                        tmp1.TXN_REVENUE,
5226                        round(tmp1.POU_REVENUE *
5227                              tmp1.GL_RATE2 /
5228                              GL_MAU2) * GL_MAU2),
5229                 to_number(null))               GG2_REVENUE,
5230       decode(sign(tmp1.WORKER_ID),
5231              1, decode(tmp1.TXN_CURRENCY_CODE,
5232                        l_g2_currency_code,
5233                        tmp1.TXN_FUNDING,
5234                        round(tmp1.POU_FUNDING *
5235                              tmp1.GL_RATE2 /
5236                              GL_MAU2) * GL_MAU2),
5237                 to_number(null))               GG2_FUNDING,
5238       decode(sign(tmp1.WORKER_ID),
5239              1, decode(tmp1.TXN_CURRENCY_CODE,
5240                        l_g2_currency_code,
5241                        tmp1.TXN_INITIAL_FUNDING_AMOUNT,
5242                        round(tmp1.POU_INITIAL_FUNDING_AMOUNT *
5243                              tmp1.GL_RATE2 /
5244                              GL_MAU2) * GL_MAU2),
5245                 to_number(null))               GG2_INITIAL_FUNDING_AMOUNT,
5246       decode(sign(tmp1.WORKER_ID),
5247              1, decode(tmp1.TXN_CURRENCY_CODE,
5248                        l_g2_currency_code,
5249                        tmp1.TXN_ADDITIONAL_FUNDING_AMOUNT,
5250                        round(tmp1.POU_ADDITIONAL_FUNDING_AMOUNT *
5251                              tmp1.GL_RATE2 /
5252                              GL_MAU2) * GL_MAU2),
5253                 to_number(null))               GG2_ADDITIONAL_FUNDING_AMOUNT,
5254       decode(sign(tmp1.WORKER_ID),
5255              1, decode(tmp1.TXN_CURRENCY_CODE,
5256                        l_g2_currency_code,
5257                        tmp1.TXN_CANCELLED_FUNDING_AMOUNT,
5258                        round(tmp1.POU_CANCELLED_FUNDING_AMOUNT *
5259                              tmp1.GL_RATE2 /
5260                              GL_MAU2) * GL_MAU2),
5261                 to_number(null))               GG2_CANCELLED_FUNDING_AMOUNT,
5262       decode(sign(tmp1.WORKER_ID),
5263              1, decode(tmp1.TXN_CURRENCY_CODE,
5264                        l_g2_currency_code,
5265                        tmp1.TXN_FUNDING_ADJUSTMENT_AMOUNT,
5266                        round(tmp1.POU_FUNDING_ADJUSTMENT_AMOUNT *
5267                              tmp1.GL_RATE2 /
5268                              GL_MAU2) * GL_MAU2),
5269                 to_number(null))               GG2_FUNDING_ADJUSTMENT_AMOUNT,
5270       decode(sign(tmp1.WORKER_ID),
5271              1, decode(tmp1.TXN_CURRENCY_CODE,
5272                        l_g2_currency_code,
5273                        tmp1.TXN_REVENUE_WRITEOFF,
5274                        round(tmp1.POU_REVENUE_WRITEOFF *
5275                              tmp1.GL_RATE2 /
5276                              GL_MAU2) * GL_MAU2),
5277                 to_number(null))               GG2_REVENUE_WRITEOFF,
5278       decode(sign(tmp1.WORKER_ID),
5279              1, decode(tmp1.TXN_CURRENCY_CODE,
5280                        l_g2_currency_code,
5281                        tmp1.TXN_AR_INVOICE_AMOUNT,
5282                        round(tmp1.POU_AR_INVOICE_AMOUNT *
5283                              tmp1.GL_RATE2 /
5284                              GL_MAU2) * GL_MAU2),
5285                 to_number(null))               GG2_AR_INVOICE_AMOUNT,
5286       decode(sign(tmp1.WORKER_ID),
5287              1, decode(tmp1.TXN_CURRENCY_CODE,
5288                        l_g2_currency_code,
5289                        tmp1.TXN_AR_CASH_APPLIED_AMOUNT,
5290                        round(tmp1.POU_AR_CASH_APPLIED_AMOUNT *
5291                              tmp1.GL_RATE2 /
5292                              GL_MAU2) * GL_MAU2),
5293                 to_number(null))               GG2_AR_CASH_APPLIED_AMOUNT,
5294       decode(sign(tmp1.WORKER_ID),
5295              1, decode(tmp1.TXN_CURRENCY_CODE,
5296                        l_g2_currency_code,
5297                        tmp1.TXN_AR_INVOICE_WRITEOFF_AMOUNT,
5298                        round(tmp1.POU_AR_INVOICE_WRITEOFF_AMOUNT *
5299                              tmp1.GL_RATE2 /
5300                              GL_MAU2) * GL_MAU2),
5301                 to_number(null))               GG2_AR_INVOICE_WRITEOFF_AMOUNT,
5302       decode(sign(tmp1.WORKER_ID),
5303              1, decode(tmp1.TXN_CURRENCY_CODE,
5304                        l_g2_currency_code,
5305                        tmp1.TXN_AR_CREDIT_MEMO_AMOUNT,
5306                        round(tmp1.POU_AR_CREDIT_MEMO_AMOUNT *
5307                              tmp1.GL_RATE2 /
5308                              GL_MAU2) * GL_MAU2),
5309                 to_number(null))               GG2_AR_CREDIT_MEMO_AMOUNT,
5310       decode(sign(tmp1.WORKER_ID),
5311              1, decode(tmp1.TXN_CURRENCY_CODE,
5312                        l_g2_currency_code,
5313                        tmp1.TXN_UNBILLED_RECEIVABLES,
5314                        round(tmp1.POU_UNBILLED_RECEIVABLES *
5315                              tmp1.GL_RATE2 /
5316                              GL_MAU2) * GL_MAU2),
5317                 to_number(null))               GG2_UNBILLED_RECEIVABLES,
5318       decode(sign(tmp1.WORKER_ID),
5319              1, decode(tmp1.TXN_CURRENCY_CODE,
5320                        l_g2_currency_code,
5321                        tmp1.TXN_UNEARNED_REVENUE,
5322                        round(tmp1.POU_UNEARNED_REVENUE *
5323                              tmp1.GL_RATE2 /
5324                              GL_MAU2) * GL_MAU2),
5325                 to_number(null))               GG2_UNEARNED_REVENUE,
5326       decode(sign(tmp1.WORKER_ID),
5327              1, decode(tmp1.TXN_CURRENCY_CODE,
5328                        l_g2_currency_code,
5329                        tmp1.TXN_AR_UNAPPR_INVOICE_AMOUNT,
5330                        round(tmp1.POU_AR_UNAPPR_INVOICE_AMOUNT *
5331                              tmp1.GL_RATE2 /
5332                              GL_MAU2) * GL_MAU2),
5333                 to_number(null))               GG2_AR_UNAPPR_INVOICE_AMOUNT,
5334       decode(sign(tmp1.WORKER_ID),
5335              1, decode(tmp1.TXN_CURRENCY_CODE,
5336                        l_g2_currency_code,
5337                        tmp1.TXN_AR_APPR_INVOICE_AMOUNT,
5338                        round(tmp1.POU_AR_APPR_INVOICE_AMOUNT *
5339                              tmp1.GL_RATE2 /
5340                              GL_MAU2) * GL_MAU2),
5341                 to_number(null))               GG2_AR_APPR_INVOICE_AMOUNT,
5342       decode(sign(tmp1.WORKER_ID),
5343              1, decode(tmp1.TXN_CURRENCY_CODE,
5344                        l_g2_currency_code,
5345                        tmp1.TXN_AR_AMOUNT_DUE,
5346                        round(tmp1.POU_AR_AMOUNT_DUE *
5347                              tmp1.GL_RATE2 /
5348                              GL_MAU2) * GL_MAU2),
5349                 to_number(null))               GG2_AR_AMOUNT_DUE,
5350       decode(sign(tmp1.WORKER_ID),
5351              1, decode(tmp1.TXN_CURRENCY_CODE,
5352                        l_g2_currency_code,
5353                        tmp1.TXN_AR_AMOUNT_OVERDUE,
5354                        round(tmp1.POU_AR_AMOUNT_OVERDUE *
5355                              tmp1.GL_RATE2 /
5356                              GL_MAU2) * GL_MAU2),
5357                 to_number(null))               GG2_AR_AMOUNT_OVERDUE,
5358       decode(sign(tmp1.WORKER_ID),
5359              1, decode(tmp1.TXN_CURRENCY_CODE,
5360                        l_g2_currency_code,
5361                        tmp1.TXN_REVENUE,
5362                        round(tmp1.POU_REVENUE *
5363                              tmp1.PA_RATE2 /
5364                              PA_MAU2) * PA_MAU2),
5365                 to_number(null))               GP2_REVENUE,
5366       decode(sign(tmp1.WORKER_ID),
5367              1, decode(tmp1.TXN_CURRENCY_CODE,
5368                        l_g2_currency_code,
5369                        tmp1.TXN_FUNDING,
5370                        round(tmp1.POU_FUNDING *
5371                              tmp1.PA_RATE2 /
5372                              PA_MAU2) * PA_MAU2),
5373                 to_number(null))               GP2_FUNDING,
5374       decode(sign(tmp1.WORKER_ID),
5375              1, decode(tmp1.TXN_CURRENCY_CODE,
5376                        l_g2_currency_code,
5377                        tmp1.TXN_INITIAL_FUNDING_AMOUNT,
5378                        round(tmp1.POU_INITIAL_FUNDING_AMOUNT *
5379                              tmp1.PA_RATE2 /
5380                              PA_MAU2) * PA_MAU2),
5381                 to_number(null))               GP2_INITIAL_FUNDING_AMOUNT,
5382       decode(sign(tmp1.WORKER_ID),
5383              1, decode(tmp1.TXN_CURRENCY_CODE,
5384                        l_g2_currency_code,
5385                        tmp1.TXN_ADDITIONAL_FUNDING_AMOUNT,
5386                        round(tmp1.POU_ADDITIONAL_FUNDING_AMOUNT *
5387                              tmp1.PA_RATE2 /
5388                              PA_MAU2) * PA_MAU2),
5389                 to_number(null))               GP2_ADDITIONAL_FUNDING_AMOUNT,
5390       decode(sign(tmp1.WORKER_ID),
5391              1, decode(tmp1.TXN_CURRENCY_CODE,
5392                        l_g2_currency_code,
5393                        tmp1.TXN_CANCELLED_FUNDING_AMOUNT,
5394                        round(tmp1.POU_CANCELLED_FUNDING_AMOUNT *
5395                              tmp1.PA_RATE2 /
5396                              PA_MAU2) * PA_MAU2),
5397                 to_number(null))               GP2_CANCELLED_FUNDING_AMOUNT,
5398       decode(sign(tmp1.WORKER_ID),
5399              1, decode(tmp1.TXN_CURRENCY_CODE,
5400                        l_g2_currency_code,
5401                        tmp1.TXN_FUNDING_ADJUSTMENT_AMOUNT,
5402                        round(tmp1.POU_FUNDING_ADJUSTMENT_AMOUNT *
5403                              tmp1.PA_RATE2 /
5404                              PA_MAU2) * PA_MAU2),
5405                 to_number(null))               GP2_FUNDING_ADJUSTMENT_AMOUNT,
5406       decode(sign(tmp1.WORKER_ID),
5407              1, decode(tmp1.TXN_CURRENCY_CODE,
5408                        l_g2_currency_code,
5409                        tmp1.TXN_REVENUE_WRITEOFF,
5410                        round(tmp1.POU_REVENUE_WRITEOFF *
5411                              tmp1.PA_RATE2 /
5412                              PA_MAU2) * PA_MAU2),
5413                 to_number(null))               GP2_REVENUE_WRITEOFF,
5414       decode(sign(tmp1.WORKER_ID),
5415              1, decode(tmp1.TXN_CURRENCY_CODE,
5416                        l_g2_currency_code,
5417                        tmp1.TXN_AR_INVOICE_AMOUNT,
5418                        round(tmp1.POU_AR_INVOICE_AMOUNT *
5419                              tmp1.PA_RATE2 /
5420                              PA_MAU2) * PA_MAU2),
5421                 to_number(null))               GP2_AR_INVOICE_AMOUNT,
5422       decode(sign(tmp1.WORKER_ID),
5423              1, decode(tmp1.TXN_CURRENCY_CODE,
5424                        l_g2_currency_code,
5425                        tmp1.TXN_AR_CASH_APPLIED_AMOUNT,
5426                        round(tmp1.POU_AR_CASH_APPLIED_AMOUNT *
5427                              tmp1.PA_RATE2 /
5428                              PA_MAU2) * PA_MAU2),
5429                 to_number(null))               GP2_AR_CASH_APPLIED_AMOUNT,
5430       decode(sign(tmp1.WORKER_ID),
5431              1, decode(tmp1.TXN_CURRENCY_CODE,
5432                        l_g2_currency_code,
5433                        tmp1.TXN_AR_INVOICE_WRITEOFF_AMOUNT,
5434                        round(tmp1.POU_AR_INVOICE_WRITEOFF_AMOUNT *
5435                              tmp1.PA_RATE2 /
5436                              PA_MAU2) * PA_MAU2),
5437                 to_number(null))               GP2_AR_INVOICE_WRITEOFF_AMOUNT,
5438       decode(sign(tmp1.WORKER_ID),
5439              1, decode(tmp1.TXN_CURRENCY_CODE,
5440                        l_g2_currency_code,
5441                        tmp1.TXN_AR_CREDIT_MEMO_AMOUNT,
5442                        round(tmp1.POU_AR_CREDIT_MEMO_AMOUNT *
5443                              tmp1.PA_RATE2 /
5444                              PA_MAU2) * PA_MAU2),
5445                 to_number(null))               GP2_AR_CREDIT_MEMO_AMOUNT,
5446       decode(sign(tmp1.WORKER_ID),
5447              1, decode(tmp1.TXN_CURRENCY_CODE,
5448                        l_g2_currency_code,
5449                        tmp1.TXN_UNBILLED_RECEIVABLES,
5450                        round(tmp1.POU_UNBILLED_RECEIVABLES *
5451                              tmp1.PA_RATE2 /
5452                              PA_MAU2) * PA_MAU2),
5453                 to_number(null))               GP2_UNBILLED_RECEIVABLES,
5454       decode(sign(tmp1.WORKER_ID),
5455              1, decode(tmp1.TXN_CURRENCY_CODE,
5456                        l_g2_currency_code,
5457                        tmp1.TXN_UNEARNED_REVENUE,
5458                        round(tmp1.POU_UNEARNED_REVENUE *
5459                              tmp1.PA_RATE2 /
5460                              PA_MAU2) * PA_MAU2),
5461                 to_number(null))               GP2_UNEARNED_REVENUE,
5462       decode(sign(tmp1.WORKER_ID),
5463              1, decode(tmp1.TXN_CURRENCY_CODE,
5464                        l_g2_currency_code,
5465                        tmp1.TXN_AR_UNAPPR_INVOICE_AMOUNT,
5466                        round(tmp1.POU_AR_UNAPPR_INVOICE_AMOUNT *
5467                              tmp1.PA_RATE2 /
5468                              PA_MAU2) * PA_MAU2),
5469                 to_number(null))               GP2_AR_UNAPPR_INVOICE_AMOUNT,
5470       decode(sign(tmp1.WORKER_ID),
5471              1, decode(tmp1.TXN_CURRENCY_CODE,
5472                        l_g2_currency_code,
5473                        tmp1.TXN_AR_APPR_INVOICE_AMOUNT,
5474                        round(tmp1.POU_AR_APPR_INVOICE_AMOUNT *
5475                              tmp1.PA_RATE2 /
5476                              PA_MAU2) * PA_MAU2),
5477                 to_number(null))               GP2_AR_APPR_INVOICE_AMOUNT,
5478       decode(sign(tmp1.WORKER_ID),
5479              1, decode(tmp1.TXN_CURRENCY_CODE,
5480                        l_g2_currency_code,
5481                        tmp1.TXN_AR_AMOUNT_DUE,
5482                        round(tmp1.POU_AR_AMOUNT_DUE *
5483                              tmp1.PA_RATE2 /
5484                              PA_MAU2) * PA_MAU2),
5485                 to_number(null))               GP2_AR_AMOUNT_DUE,
5486       decode(sign(tmp1.WORKER_ID),
5487              1, decode(tmp1.TXN_CURRENCY_CODE,
5488                        l_g2_currency_code,
5489                        tmp1.TXN_AR_AMOUNT_OVERDUE,
5490                        round(tmp1.POU_AR_AMOUNT_OVERDUE *
5491                              tmp1.PA_RATE2 /
5492                              PA_MAU2) * PA_MAU2),
5493                 to_number(null))               GP2_AR_AMOUNT_OVERDUE
5494     from
5495     (
5496     select   /*+ ordered
5497                  full(tmp1)     use_hash(tmp1)    parallel(tmp1)
5498                  full(prj_info) use_hash(prj_info)
5499                  full(gl_rt)    use_hash(gl_rt)
5500                  full(pa_rt)    use_hash(pa_rt)
5501               */
5502       p_worker_id                              WORKER_ID,
5503       decode(gl_rt.RATE,
5504              -3, 'E', -- EUR rate for 01-JAN-1999 is missing
5505              decode(sign(gl_rt.RATE),
5506                     -1, 'Y', null))            DANGLING_GL_RATE_FLAG,
5507       decode(l_g2_currency_flag,
5508              'Y', decode(gl_rt.RATE2,
5509                          -3, 'E', -- EUR rate for 01-JAN-1999 is missing
5510                          decode(sign(gl_rt.RATE2),
5511                                 -1, 'Y', null)),
5512              null)                             DANGLING_GL_RATE2_FLAG,
5513       decode(pa_rt.RATE,
5514              -3, 'E', -- EUR rate for 01-JAN-1999 is missing
5515              decode(sign(pa_rt.RATE),
5516                     -1, 'Y', null))            DANGLING_PA_RATE_FLAG,
5517       decode(l_g2_currency_flag,
5518              'Y', decode(pa_rt.RATE2,
5519                          -3, 'E', -- EUR rate for 01-JAN-1999 is missing
5520                          decode(sign(pa_rt.RATE2),
5521                                 -1, 'Y', null)),
5522              null)                             DANGLING_PA_RATE2_FLAG,
5523       decode(sign(prj_info.EN_CALENDAR_MIN_DATE -
5524                   tmp1.GL_TIME_ID) +
5525              sign(tmp1.GL_TIME_ID -
5526                   prj_info.EN_CALENDAR_MAX_DATE),
5527              0, 'Y', null)                     DANGLING_EN_TIME_FLAG,
5528       decode(sign(prj_info.GL_CALENDAR_MIN_DATE -
5529                   tmp1.GL_TIME_ID) +
5530              sign(tmp1.GL_TIME_ID -
5531                   prj_info.GL_CALENDAR_MAX_DATE),
5532              0, 'Y', null)                     DANGLING_GL_TIME_FLAG,
5533       decode(sign(prj_info.PA_CALENDAR_MIN_DATE -
5534                   tmp1.PA_TIME_ID) +
5535              sign(tmp1.PA_TIME_ID -
5536                   prj_info.PA_CALENDAR_MAX_DATE),
5537              0, 'Y', null)                     DANGLING_PA_TIME_FLAG,
5538       tmp1.PROJECT_ID,
5539       tmp1.PROJECT_ORG_ID,
5540       tmp1.PROJECT_ORGANIZATION_ID,
5541       tmp1.TASK_ID,
5542       tmp1.GL_TIME_ID,
5543       tmp1.GL_PERIOD_NAME,
5544       tmp1.PA_TIME_ID,
5545       tmp1.PA_PERIOD_NAME,
5546       prj_info.GL_CALENDAR_ID                  GL_CALENDAR_ID,
5547       prj_info.PA_CALENDAR_ID                  PA_CALENDAR_ID,
5548       gl_rt.RATE                               GL_RATE1,
5549       gl_rt.RATE2                              GL_RATE2,
5550       pa_rt.RATE                               PA_RATE1,
5551       pa_rt.RATE2                              PA_RATE2,
5552       gl_rt.MAU                                GL_MAU1,
5553       gl_rt.MAU2                               GL_MAU2,
5554       pa_rt.MAU                                PA_MAU1,
5555       pa_rt.MAU2                               PA_MAU2,
5556       tmp1.TXN_CURRENCY_CODE                   TXN_CURRENCY_CODE,
5557       sum(tmp1.TXN_REVENUE)                    TXN_REVENUE,
5558       sum(tmp1.TXN_FUNDING)                    TXN_FUNDING,
5559       sum(tmp1.TXN_INITIAL_FUNDING_AMOUNT)     TXN_INITIAL_FUNDING_AMOUNT,
5560       sum(tmp1.TXN_ADDITIONAL_FUNDING_AMOUNT)  TXN_ADDITIONAL_FUNDING_AMOUNT,
5561       sum(tmp1.TXN_CANCELLED_FUNDING_AMOUNT)   TXN_CANCELLED_FUNDING_AMOUNT,
5562       sum(tmp1.TXN_FUNDING_ADJUSTMENT_AMOUNT)  TXN_FUNDING_ADJUSTMENT_AMOUNT,
5563       sum(tmp1.TXN_REVENUE_WRITEOFF)           TXN_REVENUE_WRITEOFF,
5564       sum(tmp1.TXN_AR_INVOICE_AMOUNT)          TXN_AR_INVOICE_AMOUNT,
5565       sum(tmp1.TXN_AR_CASH_APPLIED_AMOUNT)     TXN_AR_CASH_APPLIED_AMOUNT,
5566       sum(tmp1.TXN_AR_INVOICE_WRITEOFF_AMOUNT) TXN_AR_INVOICE_WRITEOFF_AMOUNT,
5567       sum(tmp1.TXN_AR_CREDIT_MEMO_AMOUNT)      TXN_AR_CREDIT_MEMO_AMOUNT,
5568       sum(tmp1.TXN_UNBILLED_RECEIVABLES)       TXN_UNBILLED_RECEIVABLES,
5569       sum(tmp1.TXN_UNEARNED_REVENUE)           TXN_UNEARNED_REVENUE,
5570       sum(tmp1.TXN_AR_UNAPPR_INVOICE_AMOUNT)   TXN_AR_UNAPPR_INVOICE_AMOUNT,
5571       sum(tmp1.TXN_AR_APPR_INVOICE_AMOUNT)     TXN_AR_APPR_INVOICE_AMOUNT,
5572       sum(tmp1.TXN_AR_AMOUNT_DUE)              TXN_AR_AMOUNT_DUE,
5573       sum(tmp1.TXN_AR_AMOUNT_OVERDUE)          TXN_AR_AMOUNT_OVERDUE,
5574       sum(tmp1.PRJ_REVENUE)                    PRJ_REVENUE,
5575       sum(tmp1.PRJ_FUNDING)                    PRJ_FUNDING,
5576       sum(tmp1.PRJ_INITIAL_FUNDING_AMOUNT)     PRJ_INITIAL_FUNDING_AMOUNT,
5577       sum(tmp1.PRJ_ADDITIONAL_FUNDING_AMOUNT)  PRJ_ADDITIONAL_FUNDING_AMOUNT,
5578       sum(tmp1.PRJ_CANCELLED_FUNDING_AMOUNT)   PRJ_CANCELLED_FUNDING_AMOUNT,
5579       sum(tmp1.PRJ_FUNDING_ADJUSTMENT_AMOUNT)  PRJ_FUNDING_ADJUSTMENT_AMOUNT,
5580       sum(tmp1.PRJ_REVENUE_WRITEOFF)           PRJ_REVENUE_WRITEOFF,
5581       sum(tmp1.PRJ_AR_INVOICE_AMOUNT)          PRJ_AR_INVOICE_AMOUNT,
5582       sum(tmp1.PRJ_AR_CASH_APPLIED_AMOUNT)     PRJ_AR_CASH_APPLIED_AMOUNT,
5583       sum(tmp1.PRJ_AR_INVOICE_WRITEOFF_AMOUNT) PRJ_AR_INVOICE_WRITEOFF_AMOUNT,
5584       sum(tmp1.PRJ_AR_CREDIT_MEMO_AMOUNT)      PRJ_AR_CREDIT_MEMO_AMOUNT,
5585       sum(tmp1.PRJ_UNBILLED_RECEIVABLES)       PRJ_UNBILLED_RECEIVABLES,
5586       sum(tmp1.PRJ_UNEARNED_REVENUE)           PRJ_UNEARNED_REVENUE,
5587       sum(tmp1.PRJ_AR_UNAPPR_INVOICE_AMOUNT)   PRJ_AR_UNAPPR_INVOICE_AMOUNT,
5588       sum(tmp1.PRJ_AR_APPR_INVOICE_AMOUNT)     PRJ_AR_APPR_INVOICE_AMOUNT,
5589       sum(tmp1.PRJ_AR_AMOUNT_DUE)              PRJ_AR_AMOUNT_DUE,
5590       sum(tmp1.PRJ_AR_AMOUNT_OVERDUE)          PRJ_AR_AMOUNT_OVERDUE,
5591       sum(tmp1.POU_REVENUE)                    POU_REVENUE,
5592       sum(tmp1.POU_FUNDING)                    POU_FUNDING,
5593       sum(tmp1.POU_INITIAL_FUNDING_AMOUNT)     POU_INITIAL_FUNDING_AMOUNT,
5594       sum(tmp1.POU_ADDITIONAL_FUNDING_AMOUNT)  POU_ADDITIONAL_FUNDING_AMOUNT,
5595       sum(tmp1.POU_CANCELLED_FUNDING_AMOUNT)   POU_CANCELLED_FUNDING_AMOUNT,
5596       sum(tmp1.POU_FUNDING_ADJUSTMENT_AMOUNT)  POU_FUNDING_ADJUSTMENT_AMOUNT,
5597       sum(tmp1.POU_REVENUE_WRITEOFF)           POU_REVENUE_WRITEOFF,
5598       sum(tmp1.POU_AR_INVOICE_AMOUNT)          POU_AR_INVOICE_AMOUNT,
5599       sum(tmp1.POU_AR_CASH_APPLIED_AMOUNT)     POU_AR_CASH_APPLIED_AMOUNT,
5600       sum(tmp1.POU_AR_INVOICE_WRITEOFF_AMOUNT) POU_AR_INVOICE_WRITEOFF_AMOUNT,
5601       sum(tmp1.POU_AR_CREDIT_MEMO_AMOUNT)      POU_AR_CREDIT_MEMO_AMOUNT,
5602       sum(tmp1.POU_UNBILLED_RECEIVABLES)       POU_UNBILLED_RECEIVABLES,
5603       sum(tmp1.POU_UNEARNED_REVENUE)           POU_UNEARNED_REVENUE,
5604       sum(tmp1.POU_AR_UNAPPR_INVOICE_AMOUNT)   POU_AR_UNAPPR_INVOICE_AMOUNT,
5605       sum(tmp1.POU_AR_APPR_INVOICE_AMOUNT)     POU_AR_APPR_INVOICE_AMOUNT,
5606       sum(tmp1.POU_AR_AMOUNT_DUE)              POU_AR_AMOUNT_DUE,
5607       sum(tmp1.POU_AR_AMOUNT_OVERDUE)          POU_AR_AMOUNT_OVERDUE,
5608       sum(tmp1.INITIAL_FUNDING_COUNT)          INITIAL_FUNDING_COUNT,
5609       sum(tmp1.ADDITIONAL_FUNDING_COUNT)       ADDITIONAL_FUNDING_COUNT,
5610       sum(tmp1.CANCELLED_FUNDING_COUNT)        CANCELLED_FUNDING_COUNT,
5611       sum(tmp1.FUNDING_ADJUSTMENT_COUNT)       FUNDING_ADJUSTMENT_COUNT,
5612       sum(tmp1.AR_INVOICE_COUNT)               AR_INVOICE_COUNT,
5613       sum(tmp1.AR_CASH_APPLIED_COUNT)          AR_CASH_APPLIED_COUNT,
5614       sum(tmp1.AR_INVOICE_WRITEOFF_COUNT)      AR_INVOICE_WRITEOFF_COUNT,
5615       sum(tmp1.AR_CREDIT_MEMO_COUNT)           AR_CREDIT_MEMO_COUNT,
5616       sum(tmp1.AR_UNAPPR_INVOICE_COUNT)        AR_UNAPPR_INVOICE_COUNT,
5617       sum(tmp1.AR_APPR_INVOICE_COUNT)          AR_APPR_INVOICE_COUNT,
5618       sum(tmp1.AR_COUNT_DUE)                   AR_COUNT_DUE,
5619       sum(tmp1.AR_COUNT_OVERDUE)               AR_COUNT_OVERDUE
5620     from
5621       PJI_FM_AGGR_ACT1 tmp1,
5622       PJI_ORG_EXTR_INFO    prj_info,
5623       PJI_FM_AGGR_DLY_RATES    gl_rt,
5624       PJI_FM_AGGR_DLY_RATES    pa_rt
5625     where
5626       tmp1.WORKER_ID            = p_worker_id            and
5627       tmp1.PROJECT_ORG_ID       = prj_info.ORG_ID        and
5628       gl_rt.WORKER_ID           = -1                     and
5629       tmp1.GL_TIME_ID           = gl_rt.TIME_ID          and
5630       prj_info.PF_CURRENCY_CODE = gl_rt.PF_CURRENCY_CODE and
5631       pa_rt.WORKER_ID           = -1                     and
5632       tmp1.PA_TIME_ID           = pa_rt.TIME_ID          and
5633       prj_info.PF_CURRENCY_CODE = pa_rt.PF_CURRENCY_CODE
5634     group by
5635       decode(gl_rt.RATE,
5636              -3, 'E', -- EUR rate for 01-JAN-1999 is missing
5637              decode(sign(gl_rt.RATE),
5638                     -1, 'Y', null)),
5639       decode(l_g2_currency_flag,
5640              'Y', decode(gl_rt.RATE2,
5641                          -3, 'E', -- EUR rate for 01-JAN-1999 is missing
5642                          decode(sign(gl_rt.RATE2),
5643                                 -1, 'Y', null)),
5644              null),
5645       decode(pa_rt.RATE,
5646              -3, 'E', -- EUR rate for 01-JAN-1999 is missing
5647              decode(sign(pa_rt.RATE),
5648                     -1, 'Y', null)),
5649       decode(l_g2_currency_flag,
5650              'Y', decode(pa_rt.RATE2,
5651                          -3, 'E', -- EUR rate for 01-JAN-1999 is missing
5652                          decode(sign(pa_rt.RATE2),
5653                                 -1, 'Y', null)),
5654              null),
5655       decode(sign(prj_info.EN_CALENDAR_MIN_DATE -
5656                   tmp1.GL_TIME_ID) +
5657              sign(tmp1.GL_TIME_ID -
5658                   prj_info.EN_CALENDAR_MAX_DATE),
5659              0, 'Y', null),
5660       decode(sign(prj_info.GL_CALENDAR_MIN_DATE -
5661                   tmp1.GL_TIME_ID) +
5662              sign(tmp1.GL_TIME_ID -
5663                   prj_info.GL_CALENDAR_MAX_DATE),
5664              0, 'Y', null),
5665       decode(sign(prj_info.PA_CALENDAR_MIN_DATE -
5666                   tmp1.PA_TIME_ID) +
5667              sign(tmp1.PA_TIME_ID -
5668                   prj_info.PA_CALENDAR_MAX_DATE),
5669              0, 'Y', null),
5670       tmp1.PROJECT_ID,
5671       tmp1.PROJECT_ORG_ID,
5672       tmp1.PROJECT_ORGANIZATION_ID,
5673       tmp1.TASK_ID,
5674       tmp1.GL_TIME_ID,
5675       tmp1.GL_PERIOD_NAME,
5676       tmp1.PA_TIME_ID,
5677       tmp1.PA_PERIOD_NAME,
5678       prj_info.GL_CALENDAR_ID,
5679       prj_info.PA_CALENDAR_ID,
5680       gl_rt.RATE,
5681       gl_rt.RATE2,
5682       pa_rt.RATE,
5683       pa_rt.RATE2,
5684       gl_rt.MAU,
5685       gl_rt.MAU2,
5686       pa_rt.MAU,
5687       pa_rt.MAU2,
5688       tmp1.TXN_CURRENCY_CODE
5689     ) tmp1;
5690 
5691     delete
5692     from   PJI_FM_AGGR_DLY_RATES
5693     where  WORKER_ID = -1;
5694 
5695     PJI_PROCESS_UTIL.REGISTER_STEP_COMPLETION(l_process, 'PJI_FM_SUM_EXTR.ACT_SUMMARY(p_worker_id);');
5696 
5697     -- truncate intermediate tables no longer required
5698     l_schema := PJI_UTILS.GET_PJI_SCHEMA_NAME;
5699     PJI_PROCESS_UTIL.TRUNC_INT_TABLE( l_schema , 'PJI_FM_AGGR_ACT1' , 'NORMAL',null);
5700 
5701     commit;
5702 
5703   end ACT_SUMMARY;
5704 
5705 
5706   -- -----------------------------------------------------
5707   -- procedure MOVE_DANGLING_ACT_ROWS
5708   -- -----------------------------------------------------
5709   procedure MOVE_DANGLING_ACT_ROWS (p_worker_id in number) is
5710 
5711     l_process varchar2(30);
5712 
5713   begin
5714 
5715     l_process := PJI_FM_SUM_MAIN.g_process || p_worker_id;
5716 
5717     if (not PJI_PROCESS_UTIL.NEED_TO_RUN_STEP(l_process, 'PJI_FM_SUM_EXTR.MOVE_DANGLING_ACT_ROWS(p_worker_id);')) then
5718       return;
5719     end if;
5720 
5721     insert into PJI_FM_DNGL_ACT
5722     (
5723       WORKER_ID,
5724       DANGLING_GL_RATE_FLAG,
5725       DANGLING_GL_RATE2_FLAG,
5726       DANGLING_PA_RATE_FLAG,
5727       DANGLING_PA_RATE2_FLAG,
5728       DANGLING_EN_TIME_FLAG,
5729       DANGLING_GL_TIME_FLAG,
5730       DANGLING_PA_TIME_FLAG,
5731       PROJECT_ID,
5732       PROJECT_ORG_ID,
5733       PROJECT_ORGANIZATION_ID,
5734       TASK_ID,
5735       GL_TIME_ID,
5736       GL_PERIOD_NAME,
5737       PA_TIME_ID,
5738       PA_PERIOD_NAME,
5739       GL_CALENDAR_ID,
5740       PA_CALENDAR_ID,
5741       PRJ_REVENUE,
5742       PRJ_FUNDING,
5743       PRJ_INITIAL_FUNDING_AMOUNT,
5744       PRJ_ADDITIONAL_FUNDING_AMOUNT,
5745       PRJ_CANCELLED_FUNDING_AMOUNT,
5746       PRJ_FUNDING_ADJUSTMENT_AMOUNT,
5747       PRJ_REVENUE_WRITEOFF,
5748       PRJ_AR_INVOICE_AMOUNT,
5749       PRJ_AR_CASH_APPLIED_AMOUNT,
5750       PRJ_AR_INVOICE_WRITEOFF_AMOUNT,
5751       PRJ_AR_CREDIT_MEMO_AMOUNT,
5752       PRJ_UNBILLED_RECEIVABLES,
5753       PRJ_UNEARNED_REVENUE,
5754       PRJ_AR_UNAPPR_INVOICE_AMOUNT,
5755       PRJ_AR_APPR_INVOICE_AMOUNT,
5756       PRJ_AR_AMOUNT_DUE,
5757       PRJ_AR_AMOUNT_OVERDUE,
5758       POU_REVENUE,
5759       POU_FUNDING,
5760       POU_INITIAL_FUNDING_AMOUNT,
5761       POU_ADDITIONAL_FUNDING_AMOUNT,
5762       POU_CANCELLED_FUNDING_AMOUNT,
5763       POU_FUNDING_ADJUSTMENT_AMOUNT,
5764       POU_REVENUE_WRITEOFF,
5765       POU_AR_INVOICE_AMOUNT,
5766       POU_AR_CASH_APPLIED_AMOUNT,
5767       POU_AR_INVOICE_WRITEOFF_AMOUNT,
5768       POU_AR_CREDIT_MEMO_AMOUNT,
5769       POU_UNBILLED_RECEIVABLES,
5770       POU_UNEARNED_REVENUE,
5771       POU_AR_UNAPPR_INVOICE_AMOUNT,
5772       POU_AR_APPR_INVOICE_AMOUNT,
5773       POU_AR_AMOUNT_DUE,
5774       POU_AR_AMOUNT_OVERDUE,
5775       TXN_CURRENCY_CODE,
5776       TXN_REVENUE,
5777       TXN_FUNDING,
5778       TXN_INITIAL_FUNDING_AMOUNT,
5779       TXN_ADDITIONAL_FUNDING_AMOUNT,
5780       TXN_CANCELLED_FUNDING_AMOUNT,
5781       TXN_FUNDING_ADJUSTMENT_AMOUNT,
5782       TXN_REVENUE_WRITEOFF,
5783       TXN_AR_INVOICE_AMOUNT,
5784       TXN_AR_CASH_APPLIED_AMOUNT,
5785       TXN_AR_INVOICE_WRITEOFF_AMOUNT,
5786       TXN_AR_CREDIT_MEMO_AMOUNT,
5787       TXN_UNBILLED_RECEIVABLES,
5788       TXN_UNEARNED_REVENUE,
5789       TXN_AR_UNAPPR_INVOICE_AMOUNT,
5790       TXN_AR_APPR_INVOICE_AMOUNT,
5791       TXN_AR_AMOUNT_DUE,
5792       TXN_AR_AMOUNT_OVERDUE,
5793       INITIAL_FUNDING_COUNT,
5794       ADDITIONAL_FUNDING_COUNT,
5795       CANCELLED_FUNDING_COUNT,
5796       FUNDING_ADJUSTMENT_COUNT,
5797       AR_INVOICE_COUNT,
5798       AR_CASH_APPLIED_COUNT,
5799       AR_INVOICE_WRITEOFF_COUNT,
5800       AR_CREDIT_MEMO_COUNT,
5801       AR_UNAPPR_INVOICE_COUNT,
5802       AR_APPR_INVOICE_COUNT,
5803       AR_COUNT_DUE,
5804       AR_COUNT_OVERDUE,
5805       GG_REVENUE,
5806       GG_FUNDING,
5807       GG_INITIAL_FUNDING_AMOUNT,
5808       GG_ADDITIONAL_FUNDING_AMOUNT,
5809       GG_CANCELLED_FUNDING_AMOUNT,
5810       GG_FUNDING_ADJUSTMENT_AMOUNT,
5811       GG_REVENUE_WRITEOFF,
5812       GG_AR_INVOICE_AMOUNT,
5813       GG_AR_CASH_APPLIED_AMOUNT,
5814       GG_AR_INVOICE_WRITEOFF_AMOUNT,
5815       GG_AR_CREDIT_MEMO_AMOUNT,
5816       GG_UNBILLED_RECEIVABLES,
5817       GG_UNEARNED_REVENUE,
5818       GG_AR_UNAPPR_INVOICE_AMOUNT,
5819       GG_AR_APPR_INVOICE_AMOUNT,
5820       GG_AR_AMOUNT_DUE,
5821       GG_AR_AMOUNT_OVERDUE,
5822       GP_REVENUE,
5823       GP_FUNDING,
5824       GP_INITIAL_FUNDING_AMOUNT,
5825       GP_ADDITIONAL_FUNDING_AMOUNT,
5826       GP_CANCELLED_FUNDING_AMOUNT,
5827       GP_FUNDING_ADJUSTMENT_AMOUNT,
5828       GP_REVENUE_WRITEOFF,
5829       GP_AR_INVOICE_AMOUNT,
5830       GP_AR_CASH_APPLIED_AMOUNT,
5831       GP_AR_INVOICE_WRITEOFF_AMOUNT,
5832       GP_AR_CREDIT_MEMO_AMOUNT,
5833       GP_UNBILLED_RECEIVABLES,
5834       GP_UNEARNED_REVENUE,
5835       GP_AR_UNAPPR_INVOICE_AMOUNT,
5836       GP_AR_APPR_INVOICE_AMOUNT,
5837       GP_AR_AMOUNT_DUE,
5838       GP_AR_AMOUNT_OVERDUE,
5839       GG2_REVENUE,
5840       GG2_FUNDING,
5841       GG2_INITIAL_FUNDING_AMOUNT,
5842       GG2_ADDITIONAL_FUNDING_AMOUNT,
5843       GG2_CANCELLED_FUNDING_AMOUNT,
5844       GG2_FUNDING_ADJUSTMENT_AMOUNT,
5845       GG2_REVENUE_WRITEOFF,
5846       GG2_AR_INVOICE_AMOUNT,
5847       GG2_AR_CASH_APPLIED_AMOUNT,
5848       GG2_AR_INVOICE_WRITEOFF_AMOUNT,
5849       GG2_AR_CREDIT_MEMO_AMOUNT,
5850       GG2_UNBILLED_RECEIVABLES,
5851       GG2_UNEARNED_REVENUE,
5852       GG2_AR_UNAPPR_INVOICE_AMOUNT,
5853       GG2_AR_APPR_INVOICE_AMOUNT,
5854       GG2_AR_AMOUNT_DUE,
5855       GG2_AR_AMOUNT_OVERDUE,
5856       GP2_REVENUE,
5857       GP2_FUNDING,
5858       GP2_INITIAL_FUNDING_AMOUNT,
5859       GP2_ADDITIONAL_FUNDING_AMOUNT,
5860       GP2_CANCELLED_FUNDING_AMOUNT,
5861       GP2_FUNDING_ADJUSTMENT_AMOUNT,
5862       GP2_REVENUE_WRITEOFF,
5863       GP2_AR_INVOICE_AMOUNT,
5864       GP2_AR_CASH_APPLIED_AMOUNT,
5865       GP2_AR_INVOICE_WRITEOFF_AMOUNT,
5866       GP2_AR_CREDIT_MEMO_AMOUNT,
5867       GP2_UNBILLED_RECEIVABLES,
5868       GP2_UNEARNED_REVENUE,
5869       GP2_AR_UNAPPR_INVOICE_AMOUNT,
5870       GP2_AR_APPR_INVOICE_AMOUNT,
5871       GP2_AR_AMOUNT_DUE,
5872       GP2_AR_AMOUNT_OVERDUE
5873     )
5874     select
5875       0 WORKER_ID,
5876       DANGLING_GL_RATE_FLAG,
5877       DANGLING_GL_RATE2_FLAG,
5878       DANGLING_PA_RATE_FLAG,
5879       DANGLING_PA_RATE2_FLAG,
5880       DANGLING_EN_TIME_FLAG,
5881       DANGLING_GL_TIME_FLAG,
5882       DANGLING_PA_TIME_FLAG,
5883       PROJECT_ID,
5884       PROJECT_ORG_ID,
5885       PROJECT_ORGANIZATION_ID,
5886       TASK_ID,
5887       GL_TIME_ID,
5888       GL_PERIOD_NAME,
5889       PA_TIME_ID,
5890       PA_PERIOD_NAME,
5891       GL_CALENDAR_ID,
5892       PA_CALENDAR_ID,
5893       PRJ_REVENUE,
5894       PRJ_FUNDING,
5895       PRJ_INITIAL_FUNDING_AMOUNT,
5896       PRJ_ADDITIONAL_FUNDING_AMOUNT,
5897       PRJ_CANCELLED_FUNDING_AMOUNT,
5898       PRJ_FUNDING_ADJUSTMENT_AMOUNT,
5899       PRJ_REVENUE_WRITEOFF,
5900       PRJ_AR_INVOICE_AMOUNT,
5901       PRJ_AR_CASH_APPLIED_AMOUNT,
5902       PRJ_AR_INVOICE_WRITEOFF_AMOUNT,
5903       PRJ_AR_CREDIT_MEMO_AMOUNT,
5904       PRJ_UNBILLED_RECEIVABLES,
5905       PRJ_UNEARNED_REVENUE,
5906       PRJ_AR_UNAPPR_INVOICE_AMOUNT,
5907       PRJ_AR_APPR_INVOICE_AMOUNT,
5908       PRJ_AR_AMOUNT_DUE,
5909       PRJ_AR_AMOUNT_OVERDUE,
5910       POU_REVENUE,
5911       POU_FUNDING,
5912       POU_INITIAL_FUNDING_AMOUNT,
5913       POU_ADDITIONAL_FUNDING_AMOUNT,
5914       POU_CANCELLED_FUNDING_AMOUNT,
5915       POU_FUNDING_ADJUSTMENT_AMOUNT,
5916       POU_REVENUE_WRITEOFF,
5917       POU_AR_INVOICE_AMOUNT,
5918       POU_AR_CASH_APPLIED_AMOUNT,
5919       POU_AR_INVOICE_WRITEOFF_AMOUNT,
5920       POU_AR_CREDIT_MEMO_AMOUNT,
5921       POU_UNBILLED_RECEIVABLES,
5922       POU_UNEARNED_REVENUE,
5923       POU_AR_UNAPPR_INVOICE_AMOUNT,
5924       POU_AR_APPR_INVOICE_AMOUNT,
5925       POU_AR_AMOUNT_DUE,
5926       POU_AR_AMOUNT_OVERDUE,
5927       TXN_CURRENCY_CODE,
5928       TXN_REVENUE,
5929       TXN_FUNDING,
5930       TXN_INITIAL_FUNDING_AMOUNT,
5931       TXN_ADDITIONAL_FUNDING_AMOUNT,
5932       TXN_CANCELLED_FUNDING_AMOUNT,
5933       TXN_FUNDING_ADJUSTMENT_AMOUNT,
5934       TXN_REVENUE_WRITEOFF,
5935       TXN_AR_INVOICE_AMOUNT,
5936       TXN_AR_CASH_APPLIED_AMOUNT,
5937       TXN_AR_INVOICE_WRITEOFF_AMOUNT,
5938       TXN_AR_CREDIT_MEMO_AMOUNT,
5939       TXN_UNBILLED_RECEIVABLES,
5940       TXN_UNEARNED_REVENUE,
5941       TXN_AR_UNAPPR_INVOICE_AMOUNT,
5942       TXN_AR_APPR_INVOICE_AMOUNT,
5943       TXN_AR_AMOUNT_DUE,
5944       TXN_AR_AMOUNT_OVERDUE,
5945       INITIAL_FUNDING_COUNT,
5946       ADDITIONAL_FUNDING_COUNT,
5947       CANCELLED_FUNDING_COUNT,
5948       FUNDING_ADJUSTMENT_COUNT,
5949       AR_INVOICE_COUNT,
5950       AR_CASH_APPLIED_COUNT,
5951       AR_INVOICE_WRITEOFF_COUNT,
5952       AR_CREDIT_MEMO_COUNT,
5953       AR_UNAPPR_INVOICE_COUNT,
5954       AR_APPR_INVOICE_COUNT,
5955       AR_COUNT_DUE,
5956       AR_COUNT_OVERDUE,
5957       GG_REVENUE,
5958       GG_FUNDING,
5959       GG_INITIAL_FUNDING_AMOUNT,
5960       GG_ADDITIONAL_FUNDING_AMOUNT,
5961       GG_CANCELLED_FUNDING_AMOUNT,
5962       GG_FUNDING_ADJUSTMENT_AMOUNT,
5963       GG_REVENUE_WRITEOFF,
5964       GG_AR_INVOICE_AMOUNT,
5965       GG_AR_CASH_APPLIED_AMOUNT,
5966       GG_AR_INVOICE_WRITEOFF_AMOUNT,
5967       GG_AR_CREDIT_MEMO_AMOUNT,
5968       GG_UNBILLED_RECEIVABLES,
5969       GG_UNEARNED_REVENUE,
5970       GG_AR_UNAPPR_INVOICE_AMOUNT,
5971       GG_AR_APPR_INVOICE_AMOUNT,
5972       GG_AR_AMOUNT_DUE,
5973       GG_AR_AMOUNT_OVERDUE,
5974       GP_REVENUE,
5975       GP_FUNDING,
5976       GP_INITIAL_FUNDING_AMOUNT,
5977       GP_ADDITIONAL_FUNDING_AMOUNT,
5978       GP_CANCELLED_FUNDING_AMOUNT,
5979       GP_FUNDING_ADJUSTMENT_AMOUNT,
5980       GP_REVENUE_WRITEOFF,
5981       GP_AR_INVOICE_AMOUNT,
5982       GP_AR_CASH_APPLIED_AMOUNT,
5983       GP_AR_INVOICE_WRITEOFF_AMOUNT,
5984       GP_AR_CREDIT_MEMO_AMOUNT,
5985       GP_UNBILLED_RECEIVABLES,
5986       GP_UNEARNED_REVENUE,
5987       GP_AR_UNAPPR_INVOICE_AMOUNT,
5988       GP_AR_APPR_INVOICE_AMOUNT,
5989       GP_AR_AMOUNT_DUE,
5990       GP_AR_AMOUNT_OVERDUE,
5991       GG2_REVENUE,
5992       GG2_FUNDING,
5993       GG2_INITIAL_FUNDING_AMOUNT,
5994       GG2_ADDITIONAL_FUNDING_AMOUNT,
5995       GG2_CANCELLED_FUNDING_AMOUNT,
5996       GG2_FUNDING_ADJUSTMENT_AMOUNT,
5997       GG2_REVENUE_WRITEOFF,
5998       GG2_AR_INVOICE_AMOUNT,
5999       GG2_AR_CASH_APPLIED_AMOUNT,
6000       GG2_AR_INVOICE_WRITEOFF_AMOUNT,
6001       GG2_AR_CREDIT_MEMO_AMOUNT,
6002       GG2_UNBILLED_RECEIVABLES,
6003       GG2_UNEARNED_REVENUE,
6004       GG2_AR_UNAPPR_INVOICE_AMOUNT,
6005       GG2_AR_APPR_INVOICE_AMOUNT,
6006       GG2_AR_AMOUNT_DUE,
6007       GG2_AR_AMOUNT_OVERDUE,
6008       GP2_REVENUE,
6009       GP2_FUNDING,
6010       GP2_INITIAL_FUNDING_AMOUNT,
6011       GP2_ADDITIONAL_FUNDING_AMOUNT,
6012       GP2_CANCELLED_FUNDING_AMOUNT,
6013       GP2_FUNDING_ADJUSTMENT_AMOUNT,
6014       GP2_REVENUE_WRITEOFF,
6015       GP2_AR_INVOICE_AMOUNT,
6016       GP2_AR_CASH_APPLIED_AMOUNT,
6017       GP2_AR_INVOICE_WRITEOFF_AMOUNT,
6018       GP2_AR_CREDIT_MEMO_AMOUNT,
6019       GP2_UNBILLED_RECEIVABLES,
6020       GP2_UNEARNED_REVENUE,
6021       GP2_AR_UNAPPR_INVOICE_AMOUNT,
6022       GP2_AR_APPR_INVOICE_AMOUNT,
6023       GP2_AR_AMOUNT_DUE,
6024       GP2_AR_AMOUNT_OVERDUE
6025     from
6026       PJI_FM_AGGR_ACT2
6027     where
6028       WORKER_ID = p_worker_id and
6029       (DANGLING_GL_RATE_FLAG  is not null or
6030        DANGLING_GL_RATE2_FLAG is not null or
6031        DANGLING_PA_RATE_FLAG  is not null or
6032        DANGLING_PA_RATE2_FLAG is not null or
6033        DANGLING_EN_TIME_FLAG  is not null or
6034        DANGLING_GL_TIME_FLAG  is not null or
6035        DANGLING_PA_TIME_FLAG  is not null);
6036 
6037     delete
6038     from   PJI_FM_AGGR_ACT2
6039     where  WORKER_ID = p_worker_id and
6040            (DANGLING_GL_RATE_FLAG  is not null or
6041             DANGLING_GL_RATE2_FLAG is not null or
6042             DANGLING_PA_RATE_FLAG  is not null or
6043             DANGLING_PA_RATE2_FLAG is not null or
6044             DANGLING_EN_TIME_FLAG  is not null or
6045             DANGLING_GL_TIME_FLAG  is not null or
6046             DANGLING_PA_TIME_FLAG  is not null);
6047 
6048     PJI_PROCESS_UTIL.REGISTER_STEP_COMPLETION(l_process, 'PJI_FM_SUM_EXTR.MOVE_DANGLING_ACT_ROWS(p_worker_id);');
6049 
6050     commit;
6051 
6052   end MOVE_DANGLING_ACT_ROWS;
6053 
6054 
6055   -- -----------------------------------------------------
6056   -- procedure AGGREGATE_RES_SLICES
6057   -- -----------------------------------------------------
6058   procedure AGGREGATE_RES_SLICES (p_worker_id in number) is
6059 
6060     l_process varchar2(30);
6061     l_extraction_type varchar2(30);
6062 
6063   begin
6064 
6065     l_process := PJI_FM_SUM_MAIN.g_process || p_worker_id;
6066 
6067     if (not PJI_PROCESS_UTIL.NEED_TO_RUN_STEP(l_process, 'PJI_FM_SUM_EXTR.AGGREGATE_RES_SLICES(p_worker_id);')) then
6068       return;
6069     end if;
6070 
6071     l_extraction_type := PJI_UTILS.GET_PARAMETER('EXTRACTION_TYPE');
6072 
6073     if (l_extraction_type = 'PARTIAL') then
6074 
6075       delete
6076       from   PJI_RM_AGGR_RES6
6077       where  PROJECT_ID in (select PROJECT_ID
6078                             from   PJI_FM_PROJ_BATCH_MAP
6079                             where  WORKER_ID = p_worker_id);
6080 
6081     end if;
6082 
6083     insert into PJI_RM_AGGR_RES6
6084     (
6085       WORKER_ID,
6086       PROJECT_ID,
6087       PERSON_ID,
6088       EXPENDITURE_ORG_ID,
6089       EXPENDITURE_ORGANIZATION_ID,
6090       WORK_TYPE_ID,
6091       JOB_ID,
6092       TIME_ID,
6093       PERIOD_TYPE_ID,
6094       CALENDAR_TYPE,
6095       GL_CALENDAR_ID,
6096       PA_CALENDAR_ID,
6097       TOTAL_HRS_A,
6098       BILL_HRS_A
6099     )
6100     select
6101       WORKER_ID,
6102       PROJECT_ID,
6103       PERSON_ID,
6104       EXPENDITURE_ORG_ID,
6105       EXPENDITURE_ORGANIZATION_ID,
6106       WORK_TYPE_ID,
6107       JOB_ID,
6108       EXPENDITURE_ITEM_TIME_ID TIME_ID,
6109       1                        PERIOD_TYPE_ID,
6110       'C'                      CALENDAR_TYPE,
6111       RS_GL_CALENDAR_ID        GL_CALENDAR_ID,
6112       RS_PA_CALENDAR_ID        PA_CALENDAR_ID,
6113       sum(LABOR_HRS)           TOTAL_HRS_A,
6114       sum(BILL_LABOR_HRS)      BILL_HRS_A
6115     from
6116       PJI_FM_AGGR_FIN2
6117     where
6118       WORKER_ID = p_worker_id and
6119       PJI_RESOURCE_RECORD_FLAG = 'Y'
6120     group by
6121       WORKER_ID,
6122       PROJECT_ID,
6123       PERSON_ID,
6124       EXPENDITURE_ORG_ID,
6125       EXPENDITURE_ORGANIZATION_ID,
6126       WORK_TYPE_ID,
6127       JOB_ID,
6128       EXPENDITURE_ITEM_TIME_ID,
6129       RS_GL_CALENDAR_ID,
6130       RS_PA_CALENDAR_ID;
6131 
6132     PJI_PROCESS_UTIL.REGISTER_STEP_COMPLETION(l_process, 'PJI_FM_SUM_EXTR.AGGREGATE_RES_SLICES(p_worker_id);');
6133 
6134     commit;
6135 
6136   end AGGREGATE_RES_SLICES;
6137 
6138 
6139   -- -----------------------------------------------------
6140   -- procedure AGGREGATE_FIN_SLICES
6141   -- -----------------------------------------------------
6142   procedure AGGREGATE_FIN_SLICES (p_worker_id in number) is
6143 
6144     l_process varchar2(30);
6145     l_extraction_type varchar2(30);
6146 
6147   begin
6148 
6149     l_process := PJI_FM_SUM_MAIN.g_process || p_worker_id;
6150 
6151     if (not PJI_PROCESS_UTIL.NEED_TO_RUN_STEP(l_process, 'PJI_FM_SUM_EXTR.AGGREGATE_FIN_SLICES(p_worker_id);')) then
6152       return;
6153     end if;
6154 
6155     l_extraction_type := PJI_UTILS.GET_PARAMETER('EXTRACTION_TYPE');
6156 
6157     if (l_extraction_type = 'PARTIAL') then
6158 
6159       delete
6160       from   PJI_FM_AGGR_FIN9
6161       where  PROJECT_ID in (select PROJECT_ID
6162                             from   PJI_FM_PROJ_BATCH_MAP
6163                             where  WORKER_ID = p_worker_id);
6164 
6165     end if;
6166 
6167     insert into PJI_FM_AGGR_FIN9
6168     (
6169       WORKER_ID,
6170       PROJECT_ID,
6171       PROJECT_ORGANIZATION_ID,
6172       PROJECT_ORG_ID,
6173       PROJECT_TYPE_CLASS,
6174       WORK_TYPE_ID,
6175       EXP_EVT_TYPE_ID,
6176       TIME_ID,
6177       CALENDAR_TYPE,
6178       GL_CALENDAR_ID,
6179       PA_CALENDAR_ID,
6180       TXN_CURRENCY_CODE,
6181       TXN_REVENUE,
6182       TXN_RAW_COST,
6183       TXN_BRDN_COST,
6184       TXN_BILL_RAW_COST,
6185       TXN_BILL_BRDN_COST,
6186       PRJ_REVENUE,
6187       PRJ_LABOR_REVENUE,
6188       PRJ_RAW_COST,
6189       PRJ_BRDN_COST,
6190       PRJ_BILL_RAW_COST,
6191       PRJ_BILL_BRDN_COST,
6192       PRJ_LABOR_RAW_COST,
6193       PRJ_LABOR_BRDN_COST,
6194       PRJ_BILL_LABOR_RAW_COST,
6195       PRJ_BILL_LABOR_BRDN_COST,
6196       PRJ_REVENUE_WRITEOFF,
6197       POU_REVENUE,
6198       POU_LABOR_REVENUE,
6199       POU_RAW_COST,
6200       POU_BRDN_COST,
6201       POU_BILL_RAW_COST,
6202       POU_BILL_BRDN_COST,
6203       POU_LABOR_RAW_COST,
6204       POU_LABOR_BRDN_COST,
6205       POU_BILL_LABOR_RAW_COST,
6206       POU_BILL_LABOR_BRDN_COST,
6207       POU_REVENUE_WRITEOFF,
6208       EOU_REVENUE,
6209       EOU_RAW_COST,
6210       EOU_BRDN_COST,
6211       EOU_BILL_RAW_COST,
6212       EOU_BILL_BRDN_COST,
6213       G1_REVENUE,
6214       G1_LABOR_REVENUE,
6215       G1_RAW_COST,
6216       G1_BRDN_COST,
6217       G1_BILL_RAW_COST,
6218       G1_BILL_BRDN_COST,
6219       G1_LABOR_RAW_COST,
6220       G1_LABOR_BRDN_COST,
6221       G1_BILL_LABOR_RAW_COST,
6222       G1_BILL_LABOR_BRDN_COST,
6223       G1_REVENUE_WRITEOFF,
6224       G2_REVENUE,
6225       G2_LABOR_REVENUE,
6226       G2_RAW_COST,
6227       G2_BRDN_COST,
6228       G2_BILL_RAW_COST,
6229       G2_BILL_BRDN_COST,
6230       G2_LABOR_RAW_COST,
6231       G2_LABOR_BRDN_COST,
6232       G2_BILL_LABOR_RAW_COST,
6233       G2_BILL_LABOR_BRDN_COST,
6234       G2_REVENUE_WRITEOFF,
6235       LABOR_HRS,
6236       BILL_LABOR_HRS,
6237       QUANTITY,
6238       BILL_QUANTITY
6239     )
6240     select /*+ ordered
6241                full(tmp2)    use_hash(tmp2)     parallel(tmp2)
6242                full(invert)  use_hash(invert)   swap_join_inputs(invert) */
6243       p_worker_id                                 WORKER_ID,
6244       tmp2.PROJECT_ID,
6245       tmp2.PROJECT_ORGANIZATION_ID,
6246       tmp2.PROJECT_ORG_ID,
6247       tmp2.PROJECT_TYPE_CLASS,
6248       tmp2.WORK_TYPE_ID,
6249       tmp2.EXP_EVT_TYPE_ID,
6250       decode(invert.INVERT_ID,
6251              'GL', tmp2.RECVR_GL_TIME_ID,
6252              'PA', tmp2.RECVR_PA_TIME_ID)         TIME_ID,
6253       decode(invert.INVERT_ID,
6254              'GL', 'C',
6255              'PA', 'P')                           CALENDAR_TYPE,
6256       tmp2.PJ_GL_CALENDAR_ID                      GL_CALENDAR_ID,
6257       tmp2.PJ_PA_CALENDAR_ID                      PA_CALENDAR_ID,
6258       null                                        TXN_CURRENCY_CODE,
6259       to_number(null)                             TXN_REVENUE,
6260       to_number(null)                             TXN_RAW_COST,
6261       to_number(null)                             TXN_BRDN_COST,
6262       to_number(null)                             TXN_BILL_RAW_COST,
6263       to_number(null)                             TXN_BILL_BRDN_COST,
6264       sum(tmp2.PRJ_REVENUE)                       PRJ_REVENUE,
6265       sum(tmp2.PRJ_LABOR_REVENUE)                 PRJ_LABOR_REVENUE,
6266       sum(tmp2.PRJ_RAW_COST)                      PRJ_RAW_COST,
6267       sum(tmp2.PRJ_BRDN_COST)                     PRJ_BRDN_COST,
6268       sum(tmp2.PRJ_BILL_RAW_COST)                 PRJ_BILL_RAW_COST,
6269       sum(tmp2.PRJ_BILL_BRDN_COST)                PRJ_BILL_BRDN_COST,
6270       sum(tmp2.PRJ_LABOR_RAW_COST)                PRJ_LABOR_RAW_COST,
6271       sum(tmp2.PRJ_LABOR_BRDN_COST)               PRJ_LABOR_BRDN_COST,
6272       sum(tmp2.PRJ_BILL_LABOR_RAW_COST)           PRJ_BILL_LABOR_RAW_COST,
6273       sum(tmp2.PRJ_BILL_LABOR_BRDN_COST)          PRJ_BILL_LABOR_BRDN_COST,
6274       sum(tmp2.PRJ_REVENUE_WRITEOFF)              PRJ_REVENUE_WRITEOFF,
6275       sum(tmp2.POU_REVENUE)                       POU_REVENUE,
6276       sum(tmp2.POU_LABOR_REVENUE)                 POU_LABOR_REVENUE,
6277       sum(tmp2.POU_RAW_COST)                      POU_RAW_COST,
6278       sum(tmp2.POU_BRDN_COST)                     POU_BRDN_COST,
6279       sum(tmp2.POU_BILL_RAW_COST)                 POU_BILL_RAW_COST,
6280       sum(tmp2.POU_BILL_BRDN_COST)                POU_BILL_BRDN_COST,
6281       sum(tmp2.POU_LABOR_RAW_COST)                POU_LABOR_RAW_COST,
6282       sum(tmp2.POU_LABOR_BRDN_COST)               POU_LABOR_BRDN_COST,
6283       sum(tmp2.POU_BILL_LABOR_RAW_COST)           POU_BILL_LABOR_RAW_COST,
6284       sum(tmp2.POU_BILL_LABOR_BRDN_COST)          POU_BILL_LABOR_BRDN_COST,
6285       sum(tmp2.POU_REVENUE_WRITEOFF)              POU_REVENUE_WRITEOFF,
6286       to_number(null)                             EOU_REVENUE,
6287       to_number(null)                             EOU_RAW_COST,
6288       to_number(null)                             EOU_BRDN_COST,
6289       to_number(null)                             EOU_BILL_RAW_COST,
6290       to_number(null)                             EOU_BILL_BRDN_COST,
6291       sum(decode(invert.INVERT_ID,
6292                  'GL', tmp2.GG1_REVENUE,
6293                  'PA', tmp2.GP1_REVENUE))         G1_REVENUE,
6294       sum(decode(invert.INVERT_ID,
6295                  'GL', tmp2.GG1_LABOR_REVENUE,
6296                  'PA', tmp2.GP1_LABOR_REVENUE))   G1_LABOR_REVENUE,
6297       sum(decode(invert.INVERT_ID,
6298                  'GL', tmp2.GG1_RAW_COST,
6299                  'PA', tmp2.GP1_RAW_COST))        G1_RAW_COST,
6300       sum(decode(invert.INVERT_ID,
6301                  'GL', tmp2.GG1_BRDN_COST,
6302                  'PA', tmp2.GP1_BRDN_COST))       G1_BRDN_COST,
6303       sum(decode(invert.INVERT_ID,
6304                  'GL', tmp2.GG1_BILL_RAW_COST,
6305                  'PA', tmp2.GP1_BILL_RAW_COST))   G1_BILL_RAW_COST,
6306       sum(decode(invert.INVERT_ID,
6307                  'GL', tmp2.GG1_BILL_BRDN_COST,
6308                  'PA', tmp2.GP1_BILL_BRDN_COST))
6309                                                   G1_BILL_BRDN_COST,
6310       sum(decode(invert.INVERT_ID,
6311                  'GL', tmp2.GG1_LABOR_RAW_COST,
6312                  'PA', tmp2.GP1_LABOR_RAW_COST))
6313                                                   G1_LABOR_RAW_COST,
6314       sum(decode(invert.INVERT_ID,
6315                  'GL', tmp2.GG1_LABOR_BRDN_COST,
6316                  'PA', tmp2.GP1_LABOR_BRDN_COST))
6317                                                   G1_LABOR_BRDN_COST,
6318       sum(decode(invert.INVERT_ID,
6319                  'GL', tmp2.GG1_BILL_LABOR_RAW_COST,
6320                  'PA', tmp2.GP1_BILL_LABOR_RAW_COST))
6321                                                   G1_BILL_LABOR_RAW_COST,
6322       sum(decode(invert.INVERT_ID,
6323                  'GL', tmp2.GG1_BILL_LABOR_BRDN_COST,
6324                  'PA', tmp2.GP1_BILL_LABOR_BRDN_COST))
6325                                                   G1_BILL_LABOR_BRDN_COST,
6326       sum(decode(invert.INVERT_ID,
6327                  'GL', tmp2.GG1_REVENUE_WRITEOFF,
6328                  'PA', tmp2.GP1_REVENUE_WRITEOFF))G1_REVENUE_WRITEOFF,
6329       sum(decode(invert.INVERT_ID,
6330                  'GL', tmp2.GG2_REVENUE,
6331                  'PA', tmp2.GP2_REVENUE))         G2_REVENUE,
6332       sum(decode(invert.INVERT_ID,
6333                  'GL', tmp2.GG2_LABOR_REVENUE,
6334                  'PA', tmp2.GP2_LABOR_REVENUE))   G2_LABOR_REVENUE,
6335       sum(decode(invert.INVERT_ID,
6336                  'GL', tmp2.GG2_RAW_COST,
6337                  'PA', tmp2.GP2_RAW_COST))        G2_RAW_COST,
6338       sum(decode(invert.INVERT_ID,
6339                  'GL', tmp2.GG2_BRDN_COST,
6340                  'PA', tmp2.GP2_BRDN_COST))       G2_BRDN_COST,
6341       sum(decode(invert.INVERT_ID,
6342                  'GL', tmp2.GG2_BILL_RAW_COST,
6343                  'PA', tmp2.GP2_BILL_RAW_COST))   G2_BILL_RAW_COST,
6344       sum(decode(invert.INVERT_ID,
6345                  'GL', tmp2.GG2_BILL_BRDN_COST,
6346                  'PA', tmp2.GP2_BILL_BRDN_COST))
6347                                                   G2_BILL_BRDN_COST,
6348       sum(decode(invert.INVERT_ID,
6349                  'GL', tmp2.GG2_LABOR_RAW_COST,
6350                  'PA', tmp2.GP2_LABOR_RAW_COST))  G2_LABOR_RAW_COST,
6351       sum(decode(invert.INVERT_ID,
6352                  'GL', tmp2.GG2_LABOR_BRDN_COST,
6353                  'PA', tmp2.GP2_LABOR_BRDN_COST))
6354                                                   G2_LABOR_BRDN_COST,
6355       sum(decode(invert.INVERT_ID,
6356                  'GL', tmp2.GG2_BILL_LABOR_RAW_COST,
6357                  'PA', tmp2.GP2_BILL_LABOR_RAW_COST))
6358                                                   G2_BILL_LABOR_RAW_COST,
6359       sum(decode(invert.INVERT_ID,
6360                  'GL', tmp2.GG2_BILL_LABOR_BRDN_COST,
6361                  'PA', tmp2.GP2_BILL_LABOR_BRDN_COST))
6362                                                   G2_BILL_LABOR_BRDN_COST,
6363       sum(decode(invert.INVERT_ID,
6364                  'GL', tmp2.GG2_REVENUE_WRITEOFF,
6365                  'PA', tmp2.GP2_REVENUE_WRITEOFF))G2_REVENUE_WRITEOFF,
6366       sum(tmp2.LABOR_HRS)                         LABOR_HRS,
6367       sum(tmp2.BILL_LABOR_HRS)                    BILL_LABOR_HRS,
6368       sum(tmp2.TOTAL_HRS_A)                       QUANTITY,
6369       sum(tmp2.BILL_HRS_A)                        BILL_QUANTITY
6370     from
6371       (
6372         select 'GL' INVERT_ID from DUAL union all
6373         select 'PA' INVERT_ID from DUAL
6374       ) invert,
6375       PJI_FM_AGGR_FIN2 tmp2
6376     where
6377       tmp2.WORKER_ID = p_worker_id and
6378       tmp2.PJI_PROJECT_RECORD_FLAG = 'Y'
6379     group by
6380       tmp2.PROJECT_ID,
6381       tmp2.PROJECT_ORGANIZATION_ID,
6382       tmp2.PROJECT_ORG_ID,
6383       tmp2.PROJECT_TYPE_CLASS,
6384       tmp2.WORK_TYPE_ID,
6385       tmp2.EXP_EVT_TYPE_ID,
6386       decode(invert.INVERT_ID,
6387              'GL', tmp2.RECVR_GL_TIME_ID,
6388              'PA', tmp2.RECVR_PA_TIME_ID),
6389       decode(invert.INVERT_ID,
6390              'GL', 'C',
6391              'PA', 'P'),
6392       tmp2.PJ_GL_CALENDAR_ID,
6393       tmp2.PJ_PA_CALENDAR_ID,
6394       tmp2.TXN_CURRENCY_CODE;
6395 
6396     PJI_PROCESS_UTIL.REGISTER_STEP_COMPLETION(l_process, 'PJI_FM_SUM_EXTR.AGGREGATE_FIN_SLICES(p_worker_id);');
6397 
6398     commit;
6399 
6400   end AGGREGATE_FIN_SLICES;
6401 
6402 
6403   -- -----------------------------------------------------
6404   -- procedure AGGREGATE_ACT_SLICES
6405   -- -----------------------------------------------------
6406   procedure AGGREGATE_ACT_SLICES (p_worker_id in number) is
6407 
6408     l_process          varchar2(30);
6409     l_extraction_type  varchar2(30);
6410     l_pa_calendar_flag varchar2(1);
6411     l_schema           varchar2(30);
6412 
6413   begin
6414 
6415     l_process := PJI_FM_SUM_MAIN.g_process || p_worker_id;
6416 
6417     if (not PJI_PROCESS_UTIL.NEED_TO_RUN_STEP(l_process, 'PJI_FM_SUM_EXTR.AGGREGATE_ACT_SLICES(p_worker_id);')) then
6418       return;
6419     end if;
6420 
6421     l_pa_calendar_flag := PJI_PROCESS_UTIL.GET_PROCESS_PARAMETER
6422     (
6423       PJI_FM_SUM_MAIN.g_process,
6424       'PA_CALENDAR_FLAG'
6425     );
6426 
6427     l_extraction_type := PJI_UTILS.GET_PARAMETER('EXTRACTION_TYPE');
6428 
6429     if (l_extraction_type = 'PARTIAL') then
6430 
6431       delete
6432       from   PJI_FM_AGGR_ACT5
6433       where  PROJECT_ID in (select PROJECT_ID
6434                             from   PJI_FM_PROJ_BATCH_MAP
6435                             where  WORKER_ID = p_worker_id);
6436 
6437     elsif (l_extraction_type = 'INCREMENTAL') then
6438 
6439       -- clean up snapshots and activities
6440 
6441       update PJI_FM_AGGR_ACT5 act5
6442       set    act5.TXN_AR_INVOICE_AMOUNT          = to_number(null),
6443              act5.TXN_AR_CASH_APPLIED_AMOUNT     = to_number(null),
6444              act5.TXN_AR_INVOICE_WRITEOFF_AMOUNT = to_number(null),
6445              act5.TXN_AR_CREDIT_MEMO_AMOUNT      = to_number(null),
6446              act5.TXN_AR_UNAPPR_INVOICE_AMOUNT   = to_number(null),
6447              act5.TXN_AR_APPR_INVOICE_AMOUNT     = to_number(null),
6448              act5.TXN_AR_AMOUNT_DUE              = to_number(null),
6449              act5.TXN_AR_AMOUNT_OVERDUE          = to_number(null),
6450              act5.PRJ_AR_INVOICE_AMOUNT          = to_number(null),
6451              act5.PRJ_AR_CASH_APPLIED_AMOUNT     = to_number(null),
6452              act5.PRJ_AR_INVOICE_WRITEOFF_AMOUNT = to_number(null),
6453              act5.PRJ_AR_CREDIT_MEMO_AMOUNT      = to_number(null),
6454              act5.PRJ_AR_UNAPPR_INVOICE_AMOUNT   = to_number(null),
6455              act5.PRJ_AR_APPR_INVOICE_AMOUNT     = to_number(null),
6456              act5.PRJ_AR_AMOUNT_DUE              = to_number(null),
6457              act5.PRJ_AR_AMOUNT_OVERDUE          = to_number(null),
6458              act5.POU_AR_INVOICE_AMOUNT          = to_number(null),
6459              act5.POU_AR_CASH_APPLIED_AMOUNT     = to_number(null),
6460              act5.POU_AR_INVOICE_WRITEOFF_AMOUNT = to_number(null),
6461              act5.POU_AR_CREDIT_MEMO_AMOUNT      = to_number(null),
6462              act5.POU_AR_UNAPPR_INVOICE_AMOUNT   = to_number(null),
6463              act5.POU_AR_APPR_INVOICE_AMOUNT     = to_number(null),
6464              act5.POU_AR_AMOUNT_DUE              = to_number(null),
6465              act5.POU_AR_AMOUNT_OVERDUE          = to_number(null),
6466              act5.AR_INVOICE_COUNT               = to_number(null),
6467              act5.AR_INVOICE_WRITEOFF_COUNT      = to_number(null),
6468              act5.AR_CREDIT_MEMO_COUNT           = to_number(null),
6469              act5.AR_UNAPPR_INVOICE_COUNT        = to_number(null),
6470              act5.AR_APPR_INVOICE_COUNT          = to_number(null),
6471              act5.AR_COUNT_DUE                   = to_number(null),
6472              act5.AR_COUNT_OVERDUE               = to_number(null),
6473              act5.G1_AR_INVOICE_AMOUNT           = to_number(null),
6474              act5.G1_AR_CASH_APPLIED_AMOUNT      = to_number(null),
6475              act5.G1_AR_INVOICE_WRITEOFF_AMOUNT  = to_number(null),
6476              act5.G1_AR_CREDIT_MEMO_AMOUNT       = to_number(null),
6477              act5.G1_AR_UNAPPR_INVOICE_AMOUNT    = to_number(null),
6478              act5.G1_AR_APPR_INVOICE_AMOUNT      = to_number(null),
6479              act5.G1_AR_AMOUNT_DUE               = to_number(null),
6480              act5.G1_AR_AMOUNT_OVERDUE           = to_number(null),
6481              act5.G2_AR_INVOICE_AMOUNT           = to_number(null),
6482              act5.G2_AR_CASH_APPLIED_AMOUNT      = to_number(null),
6483              act5.G2_AR_INVOICE_WRITEOFF_AMOUNT  = to_number(null),
6484              act5.G2_AR_CREDIT_MEMO_AMOUNT       = to_number(null),
6485              act5.G2_AR_UNAPPR_INVOICE_AMOUNT    = to_number(null),
6486              act5.G2_AR_APPR_INVOICE_AMOUNT      = to_number(null),
6487              act5.G2_AR_AMOUNT_DUE               = to_number(null),
6488              act5.G2_AR_AMOUNT_OVERDUE           = to_number(null)
6489       where  act5.PROJECT_ID in (select map.PROJECT_ID
6490                                  from   PJI_FM_PROJ_BATCH_MAP map
6491                                  where  map.WORKER_ID = p_worker_id) and
6492              not (nvl(act5.TXN_AR_INVOICE_AMOUNT          , 0) = 0 and
6493                   nvl(act5.TXN_AR_CASH_APPLIED_AMOUNT     , 0) = 0 and
6494                   nvl(act5.TXN_AR_INVOICE_WRITEOFF_AMOUNT , 0) = 0 and
6495                   nvl(act5.TXN_AR_CREDIT_MEMO_AMOUNT      , 0) = 0 and
6496                   nvl(act5.TXN_AR_UNAPPR_INVOICE_AMOUNT   , 0) = 0 and
6497                   nvl(act5.TXN_AR_APPR_INVOICE_AMOUNT     , 0) = 0 and
6498                   nvl(act5.TXN_AR_AMOUNT_DUE              , 0) = 0 and
6499                   nvl(act5.TXN_AR_AMOUNT_OVERDUE          , 0) = 0 and
6500                   nvl(act5.PRJ_AR_INVOICE_AMOUNT          , 0) = 0 and
6501                   nvl(act5.PRJ_AR_CASH_APPLIED_AMOUNT     , 0) = 0 and
6502                   nvl(act5.PRJ_AR_INVOICE_WRITEOFF_AMOUNT , 0) = 0 and
6503                   nvl(act5.PRJ_AR_CREDIT_MEMO_AMOUNT      , 0) = 0 and
6504                   nvl(act5.PRJ_AR_UNAPPR_INVOICE_AMOUNT   , 0) = 0 and
6505                   nvl(act5.PRJ_AR_APPR_INVOICE_AMOUNT     , 0) = 0 and
6506                   nvl(act5.PRJ_AR_AMOUNT_DUE              , 0) = 0 and
6507                   nvl(act5.PRJ_AR_AMOUNT_OVERDUE          , 0) = 0 and
6508                   nvl(act5.POU_AR_INVOICE_AMOUNT          , 0) = 0 and
6509                   nvl(act5.POU_AR_CASH_APPLIED_AMOUNT     , 0) = 0 and
6510                   nvl(act5.POU_AR_INVOICE_WRITEOFF_AMOUNT , 0) = 0 and
6511                   nvl(act5.POU_AR_CREDIT_MEMO_AMOUNT      , 0) = 0 and
6512                   nvl(act5.POU_AR_UNAPPR_INVOICE_AMOUNT   , 0) = 0 and
6513                   nvl(act5.POU_AR_APPR_INVOICE_AMOUNT     , 0) = 0 and
6514                   nvl(act5.POU_AR_AMOUNT_DUE              , 0) = 0 and
6515                   nvl(act5.POU_AR_AMOUNT_OVERDUE          , 0) = 0 and
6516                   nvl(act5.AR_INVOICE_COUNT               , 0) = 0 and
6517                   nvl(act5.AR_INVOICE_WRITEOFF_COUNT      , 0) = 0 and
6518                   nvl(act5.AR_CREDIT_MEMO_COUNT           , 0) = 0 and
6519                   nvl(act5.AR_UNAPPR_INVOICE_COUNT        , 0) = 0 and
6520                   nvl(act5.AR_APPR_INVOICE_COUNT          , 0) = 0 and
6521                   nvl(act5.AR_COUNT_DUE                   , 0) = 0 and
6522                   nvl(act5.AR_COUNT_OVERDUE               , 0) = 0 and
6523                   nvl(act5.G1_AR_INVOICE_AMOUNT           , 0) = 0 and
6524                   nvl(act5.G1_AR_CASH_APPLIED_AMOUNT      , 0) = 0 and
6525                   nvl(act5.G1_AR_INVOICE_WRITEOFF_AMOUNT  , 0) = 0 and
6526                   nvl(act5.G1_AR_CREDIT_MEMO_AMOUNT       , 0) = 0 and
6527                   nvl(act5.G1_AR_UNAPPR_INVOICE_AMOUNT    , 0) = 0 and
6528                   nvl(act5.G1_AR_APPR_INVOICE_AMOUNT      , 0) = 0 and
6529                   nvl(act5.G1_AR_AMOUNT_DUE               , 0) = 0 and
6530                   nvl(act5.G1_AR_AMOUNT_OVERDUE           , 0) = 0 and
6531                   nvl(act5.G2_AR_INVOICE_AMOUNT           , 0) = 0 and
6532                   nvl(act5.G2_AR_CASH_APPLIED_AMOUNT      , 0) = 0 and
6533                   nvl(act5.G2_AR_INVOICE_WRITEOFF_AMOUNT  , 0) = 0 and
6534                   nvl(act5.G2_AR_CREDIT_MEMO_AMOUNT       , 0) = 0 and
6535                   nvl(act5.G2_AR_UNAPPR_INVOICE_AMOUNT    , 0) = 0 and
6536                   nvl(act5.G2_AR_APPR_INVOICE_AMOUNT      , 0) = 0 and
6537                   nvl(act5.G2_AR_AMOUNT_DUE               , 0) = 0 and
6538                   nvl(act5.G2_AR_AMOUNT_OVERDUE           , 0) = 0);
6539 
6540       delete
6541       from   PJI_FM_AGGR_ACT5 act5
6542       where  act5.PROJECT_ID in (select map.PROJECT_ID
6543                                  from   PJI_FM_PROJ_BATCH_MAP map
6544                                  where  map.WORKER_ID = p_worker_id) and
6545              nvl(act5.TXN_REVENUE                    , 0) = 0 and
6546              nvl(act5.TXN_FUNDING                    , 0) = 0 and
6547              nvl(act5.TXN_INITIAL_FUNDING_AMOUNT     , 0) = 0 and
6548              nvl(act5.TXN_ADDITIONAL_FUNDING_AMOUNT  , 0) = 0 and
6549              nvl(act5.TXN_CANCELLED_FUNDING_AMOUNT   , 0) = 0 and
6550              nvl(act5.TXN_FUNDING_ADJUSTMENT_AMOUNT  , 0) = 0 and
6551              nvl(act5.TXN_REVENUE_WRITEOFF           , 0) = 0 and
6552              nvl(act5.TXN_AR_INVOICE_AMOUNT          , 0) = 0 and
6553              nvl(act5.TXN_AR_CASH_APPLIED_AMOUNT     , 0) = 0 and
6554              nvl(act5.TXN_AR_INVOICE_WRITEOFF_AMOUNT , 0) = 0 and
6555              nvl(act5.TXN_AR_CREDIT_MEMO_AMOUNT      , 0) = 0 and
6556              nvl(act5.TXN_UNBILLED_RECEIVABLES       , 0) = 0 and
6557              nvl(act5.TXN_UNEARNED_REVENUE           , 0) = 0 and
6558              nvl(act5.TXN_AR_UNAPPR_INVOICE_AMOUNT   , 0) = 0 and
6559              nvl(act5.TXN_AR_APPR_INVOICE_AMOUNT     , 0) = 0 and
6560              nvl(act5.TXN_AR_AMOUNT_DUE              , 0) = 0 and
6561              nvl(act5.TXN_AR_AMOUNT_OVERDUE          , 0) = 0 and
6562              nvl(act5.PRJ_REVENUE                    , 0) = 0 and
6563              nvl(act5.PRJ_FUNDING                    , 0) = 0 and
6564              nvl(act5.PRJ_INITIAL_FUNDING_AMOUNT     , 0) = 0 and
6565              nvl(act5.PRJ_ADDITIONAL_FUNDING_AMOUNT  , 0) = 0 and
6566              nvl(act5.PRJ_CANCELLED_FUNDING_AMOUNT   , 0) = 0 and
6567              nvl(act5.PRJ_FUNDING_ADJUSTMENT_AMOUNT  , 0) = 0 and
6568              nvl(act5.PRJ_REVENUE_WRITEOFF           , 0) = 0 and
6569              nvl(act5.PRJ_AR_INVOICE_AMOUNT          , 0) = 0 and
6570              nvl(act5.PRJ_AR_CASH_APPLIED_AMOUNT     , 0) = 0 and
6571              nvl(act5.PRJ_AR_INVOICE_WRITEOFF_AMOUNT , 0) = 0 and
6572              nvl(act5.PRJ_AR_CREDIT_MEMO_AMOUNT      , 0) = 0 and
6573              nvl(act5.PRJ_UNBILLED_RECEIVABLES       , 0) = 0 and
6574              nvl(act5.PRJ_UNEARNED_REVENUE           , 0) = 0 and
6575              nvl(act5.PRJ_AR_UNAPPR_INVOICE_AMOUNT   , 0) = 0 and
6576              nvl(act5.PRJ_AR_APPR_INVOICE_AMOUNT     , 0) = 0 and
6577              nvl(act5.PRJ_AR_AMOUNT_DUE              , 0) = 0 and
6578              nvl(act5.PRJ_AR_AMOUNT_OVERDUE          , 0) = 0 and
6579              nvl(act5.POU_REVENUE                    , 0) = 0 and
6580              nvl(act5.POU_FUNDING                    , 0) = 0 and
6581              nvl(act5.POU_INITIAL_FUNDING_AMOUNT     , 0) = 0 and
6582              nvl(act5.POU_ADDITIONAL_FUNDING_AMOUNT  , 0) = 0 and
6583              nvl(act5.POU_CANCELLED_FUNDING_AMOUNT   , 0) = 0 and
6584              nvl(act5.POU_FUNDING_ADJUSTMENT_AMOUNT  , 0) = 0 and
6585              nvl(act5.POU_REVENUE_WRITEOFF           , 0) = 0 and
6586              nvl(act5.POU_AR_INVOICE_AMOUNT          , 0) = 0 and
6587              nvl(act5.POU_AR_CASH_APPLIED_AMOUNT     , 0) = 0 and
6588              nvl(act5.POU_AR_INVOICE_WRITEOFF_AMOUNT , 0) = 0 and
6589              nvl(act5.POU_AR_CREDIT_MEMO_AMOUNT      , 0) = 0 and
6590              nvl(act5.POU_UNBILLED_RECEIVABLES       , 0) = 0 and
6591              nvl(act5.POU_UNEARNED_REVENUE           , 0) = 0 and
6592              nvl(act5.POU_AR_UNAPPR_INVOICE_AMOUNT   , 0) = 0 and
6593              nvl(act5.POU_AR_APPR_INVOICE_AMOUNT     , 0) = 0 and
6594              nvl(act5.POU_AR_AMOUNT_DUE              , 0) = 0 and
6595              nvl(act5.POU_AR_AMOUNT_OVERDUE          , 0) = 0 and
6596              nvl(act5.INITIAL_FUNDING_COUNT          , 0) = 0 and
6597              nvl(act5.ADDITIONAL_FUNDING_COUNT       , 0) = 0 and
6598              nvl(act5.CANCELLED_FUNDING_COUNT        , 0) = 0 and
6599              nvl(act5.FUNDING_ADJUSTMENT_COUNT       , 0) = 0 and
6600              nvl(act5.AR_INVOICE_COUNT               , 0) = 0 and
6601              nvl(act5.AR_CASH_APPLIED_COUNT          , 0) = 0 and
6602              nvl(act5.AR_INVOICE_WRITEOFF_COUNT      , 0) = 0 and
6603              nvl(act5.AR_CREDIT_MEMO_COUNT           , 0) = 0 and
6604              nvl(act5.AR_UNAPPR_INVOICE_COUNT        , 0) = 0 and
6605              nvl(act5.AR_APPR_INVOICE_COUNT          , 0) = 0 and
6606              nvl(act5.AR_COUNT_DUE                   , 0) = 0 and
6607              nvl(act5.AR_COUNT_OVERDUE               , 0) = 0 and
6608              nvl(act5.G1_REVENUE                     , 0) = 0 and
6609              nvl(act5.G1_FUNDING                     , 0) = 0 and
6610              nvl(act5.G1_INITIAL_FUNDING_AMOUNT      , 0) = 0 and
6611              nvl(act5.G1_ADDITIONAL_FUNDING_AMOUNT   , 0) = 0 and
6612              nvl(act5.G1_CANCELLED_FUNDING_AMOUNT    , 0) = 0 and
6613              nvl(act5.G1_FUNDING_ADJUSTMENT_AMOUNT   , 0) = 0 and
6614              nvl(act5.G1_REVENUE_WRITEOFF            , 0) = 0 and
6615              nvl(act5.G1_AR_INVOICE_AMOUNT           , 0) = 0 and
6616              nvl(act5.G1_AR_CASH_APPLIED_AMOUNT      , 0) = 0 and
6617              nvl(act5.G1_AR_INVOICE_WRITEOFF_AMOUNT  , 0) = 0 and
6618              nvl(act5.G1_AR_CREDIT_MEMO_AMOUNT       , 0) = 0 and
6619              nvl(act5.G1_UNBILLED_RECEIVABLES        , 0) = 0 and
6620              nvl(act5.G1_UNEARNED_REVENUE            , 0) = 0 and
6621              nvl(act5.G1_AR_UNAPPR_INVOICE_AMOUNT    , 0) = 0 and
6622              nvl(act5.G1_AR_APPR_INVOICE_AMOUNT      , 0) = 0 and
6623              nvl(act5.G1_AR_AMOUNT_DUE               , 0) = 0 and
6624              nvl(act5.G1_AR_AMOUNT_OVERDUE           , 0) = 0 and
6625              nvl(act5.G2_REVENUE                     , 0) = 0 and
6626              nvl(act5.G2_FUNDING                     , 0) = 0 and
6627              nvl(act5.G2_INITIAL_FUNDING_AMOUNT      , 0) = 0 and
6628              nvl(act5.G2_ADDITIONAL_FUNDING_AMOUNT   , 0) = 0 and
6629              nvl(act5.G2_CANCELLED_FUNDING_AMOUNT    , 0) = 0 and
6630              nvl(act5.G2_FUNDING_ADJUSTMENT_AMOUNT   , 0) = 0 and
6631              nvl(act5.G2_REVENUE_WRITEOFF            , 0) = 0 and
6632              nvl(act5.G2_AR_INVOICE_AMOUNT           , 0) = 0 and
6633              nvl(act5.G2_AR_CASH_APPLIED_AMOUNT      , 0) = 0 and
6634              nvl(act5.G2_AR_INVOICE_WRITEOFF_AMOUNT  , 0) = 0 and
6635              nvl(act5.G2_AR_CREDIT_MEMO_AMOUNT       , 0) = 0 and
6636              nvl(act5.G2_UNBILLED_RECEIVABLES        , 0) = 0 and
6637              nvl(act5.G2_UNEARNED_REVENUE            , 0) = 0 and
6638              nvl(act5.G2_AR_UNAPPR_INVOICE_AMOUNT    , 0) = 0 and
6639              nvl(act5.G2_AR_APPR_INVOICE_AMOUNT      , 0) = 0 and
6640              nvl(act5.G2_AR_AMOUNT_DUE               , 0) = 0 and
6641              nvl(act5.G2_AR_AMOUNT_OVERDUE           , 0) = 0;
6642 
6643     end if;
6644 
6645     insert into PJI_FM_AGGR_ACT5
6646     (
6647       WORKER_ID,
6648       PROJECT_ID,
6649       PROJECT_ORG_ID,
6650       PROJECT_ORGANIZATION_ID,
6651       TIME_ID,
6652       CALENDAR_TYPE,
6653       GL_CALENDAR_ID,
6654       PA_CALENDAR_ID,
6655       TXN_CURRENCY_CODE,
6656       TXN_REVENUE,
6657       TXN_FUNDING,
6658       TXN_INITIAL_FUNDING_AMOUNT,
6659       TXN_ADDITIONAL_FUNDING_AMOUNT,
6660       TXN_CANCELLED_FUNDING_AMOUNT,
6661       TXN_FUNDING_ADJUSTMENT_AMOUNT,
6662       TXN_REVENUE_WRITEOFF,
6663       TXN_AR_INVOICE_AMOUNT,
6664       TXN_AR_CASH_APPLIED_AMOUNT,
6665       TXN_AR_INVOICE_WRITEOFF_AMOUNT,
6666       TXN_AR_CREDIT_MEMO_AMOUNT,
6667       TXN_UNBILLED_RECEIVABLES,
6668       TXN_UNEARNED_REVENUE,
6669       TXN_AR_UNAPPR_INVOICE_AMOUNT,
6670       TXN_AR_APPR_INVOICE_AMOUNT,
6671       TXN_AR_AMOUNT_DUE,
6672       TXN_AR_AMOUNT_OVERDUE,
6673       PRJ_REVENUE,
6674       PRJ_FUNDING,
6675       PRJ_INITIAL_FUNDING_AMOUNT,
6676       PRJ_ADDITIONAL_FUNDING_AMOUNT,
6677       PRJ_CANCELLED_FUNDING_AMOUNT,
6678       PRJ_FUNDING_ADJUSTMENT_AMOUNT,
6679       PRJ_REVENUE_WRITEOFF,
6680       PRJ_AR_INVOICE_AMOUNT,
6681       PRJ_AR_CASH_APPLIED_AMOUNT,
6682       PRJ_AR_INVOICE_WRITEOFF_AMOUNT,
6683       PRJ_AR_CREDIT_MEMO_AMOUNT,
6684       PRJ_UNBILLED_RECEIVABLES,
6685       PRJ_UNEARNED_REVENUE,
6686       PRJ_AR_UNAPPR_INVOICE_AMOUNT,
6687       PRJ_AR_APPR_INVOICE_AMOUNT,
6688       PRJ_AR_AMOUNT_DUE,
6689       PRJ_AR_AMOUNT_OVERDUE,
6690       POU_REVENUE,
6691       POU_FUNDING,
6692       POU_INITIAL_FUNDING_AMOUNT,
6693       POU_ADDITIONAL_FUNDING_AMOUNT,
6694       POU_CANCELLED_FUNDING_AMOUNT,
6695       POU_FUNDING_ADJUSTMENT_AMOUNT,
6696       POU_REVENUE_WRITEOFF,
6697       POU_AR_INVOICE_AMOUNT,
6698       POU_AR_CASH_APPLIED_AMOUNT,
6699       POU_AR_INVOICE_WRITEOFF_AMOUNT,
6700       POU_AR_CREDIT_MEMO_AMOUNT,
6701       POU_UNBILLED_RECEIVABLES,
6702       POU_UNEARNED_REVENUE,
6703       POU_AR_UNAPPR_INVOICE_AMOUNT,
6704       POU_AR_APPR_INVOICE_AMOUNT,
6705       POU_AR_AMOUNT_DUE,
6706       POU_AR_AMOUNT_OVERDUE,
6707       INITIAL_FUNDING_COUNT,
6708       ADDITIONAL_FUNDING_COUNT,
6709       CANCELLED_FUNDING_COUNT,
6710       FUNDING_ADJUSTMENT_COUNT,
6711       AR_INVOICE_COUNT,
6712       AR_CASH_APPLIED_COUNT,
6713       AR_INVOICE_WRITEOFF_COUNT,
6714       AR_CREDIT_MEMO_COUNT,
6715       AR_UNAPPR_INVOICE_COUNT,
6716       AR_APPR_INVOICE_COUNT,
6717       AR_COUNT_DUE,
6718       AR_COUNT_OVERDUE,
6719       G1_REVENUE,
6720       G1_FUNDING,
6721       G1_INITIAL_FUNDING_AMOUNT,
6722       G1_ADDITIONAL_FUNDING_AMOUNT,
6723       G1_CANCELLED_FUNDING_AMOUNT,
6724       G1_FUNDING_ADJUSTMENT_AMOUNT,
6725       G1_REVENUE_WRITEOFF,
6726       G1_AR_INVOICE_AMOUNT,
6727       G1_AR_CASH_APPLIED_AMOUNT,
6728       G1_AR_INVOICE_WRITEOFF_AMOUNT,
6729       G1_AR_CREDIT_MEMO_AMOUNT,
6730       G1_UNBILLED_RECEIVABLES,
6731       G1_UNEARNED_REVENUE,
6732       G1_AR_UNAPPR_INVOICE_AMOUNT,
6733       G1_AR_APPR_INVOICE_AMOUNT,
6734       G1_AR_AMOUNT_DUE,
6735       G1_AR_AMOUNT_OVERDUE,
6736       G2_REVENUE,
6737       G2_FUNDING,
6738       G2_INITIAL_FUNDING_AMOUNT,
6739       G2_ADDITIONAL_FUNDING_AMOUNT,
6740       G2_CANCELLED_FUNDING_AMOUNT,
6741       G2_FUNDING_ADJUSTMENT_AMOUNT,
6742       G2_REVENUE_WRITEOFF,
6743       G2_AR_INVOICE_AMOUNT,
6744       G2_AR_CASH_APPLIED_AMOUNT,
6745       G2_AR_INVOICE_WRITEOFF_AMOUNT,
6746       G2_AR_CREDIT_MEMO_AMOUNT,
6747       G2_UNBILLED_RECEIVABLES,
6748       G2_UNEARNED_REVENUE,
6749       G2_AR_UNAPPR_INVOICE_AMOUNT,
6750       G2_AR_APPR_INVOICE_AMOUNT,
6751       G2_AR_AMOUNT_DUE,
6752       G2_AR_AMOUNT_OVERDUE
6753     )
6754     select  /*+ ordered
6755                 full(tmp2)   use_hash(tmp2)   parallel(tmp2)
6756                 full(invert) use_hash(invert) swap_join_inputs(invert) */
6757       p_worker_id                               WORKER_ID,
6758       tmp2.PROJECT_ID,
6759       tmp2.PROJECT_ORG_ID,
6760       tmp2.PROJECT_ORGANIZATION_ID,
6761       decode(invert.INVERT_ID,
6762              'GL', tmp2.GL_TIME_ID,
6763              'PA', tmp2.PA_TIME_ID)             TIME_ID,
6764       decode(invert.INVERT_ID,
6765              'GL', 'C',
6766              'PA', 'P')                         CALENDAR_TYPE,
6767       tmp2.GL_CALENDAR_ID,
6768       tmp2.PA_CALENDAR_ID,
6769       null                                      TXN_CURRENCY_CODE,
6770       to_number(null)                           TXN_REVENUE,
6771       to_number(null)                           TXN_FUNDING,
6772       to_number(null)                           TXN_INITIAL_FUNDING_AMOUNT,
6773       to_number(null)                           TXN_ADDITIONAL_FUNDING_AMOUNT,
6774       to_number(null)                           TXN_CANCELLED_FUNDING_AMOUNT,
6775       to_number(null)                           TXN_FUNDING_ADJUSTMENT_AMOUNT,
6776       to_number(null)                           TXN_REVENUE_WRITEOFF,
6777       to_number(null)                           TXN_AR_INVOICE_AMOUNT,
6778       to_number(null)                           TXN_AR_CASH_APPLIED_AMOUNT,
6779       to_number(null)                           TXN_AR_INVOICE_WRITEOFF_AMOUNT,
6780       to_number(null)                           TXN_AR_CREDIT_MEMO_AMOUNT,
6781       to_number(null)                           TXN_UNBILLED_RECEIVABLES,
6782       to_number(null)                           TXN_UNEARNED_REVENUE,
6783       to_number(null)                           TXN_AR_UNAPPR_INVOICE_AMOUNT,
6784       to_number(null)                           TXN_AR_APPR_INVOICE_AMOUNT,
6785       to_number(null)                           TXN_AR_AMOUNT_DUE,
6786       to_number(null)                           TXN_AR_AMOUNT_OVERDUE,
6787       sum(tmp2.PRJ_REVENUE)                     PRJ_REVENUE,
6788       sum(tmp2.PRJ_FUNDING)                     PRJ_FUNDING,
6789       sum(tmp2.PRJ_INITIAL_FUNDING_AMOUNT)      PRJ_INITIAL_FUNDING_AMOUNT,
6790       sum(tmp2.PRJ_ADDITIONAL_FUNDING_AMOUNT)   PRJ_ADDITIONAL_FUNDING_AMOUNT,
6791       sum(tmp2.PRJ_CANCELLED_FUNDING_AMOUNT)    PRJ_CANCELLED_FUNDING_AMOUNT,
6792       sum(tmp2.PRJ_FUNDING_ADJUSTMENT_AMOUNT)   PRJ_FUNDING_ADJUSTMENT_AMOUNT,
6793       sum(tmp2.PRJ_REVENUE_WRITEOFF)            PRJ_REVENUE_WRITEOFF,
6794       sum(tmp2.PRJ_AR_INVOICE_AMOUNT)           PRJ_AR_INVOICE_AMOUNT,
6795       sum(tmp2.PRJ_AR_CASH_APPLIED_AMOUNT)      PRJ_AR_CASH_APPLIED_AMOUNT,
6796       sum(tmp2.PRJ_AR_INVOICE_WRITEOFF_AMOUNT)  PRJ_AR_INVOICE_WRITEOFF_AMOUNT,
6797       sum(tmp2.PRJ_AR_CREDIT_MEMO_AMOUNT)       PRJ_AR_CREDIT_MEMO_AMOUNT,
6798       sum(tmp2.PRJ_UNBILLED_RECEIVABLES)        PRJ_UNBILLED_RECEIVABLES,
6799       sum(tmp2.PRJ_UNEARNED_REVENUE)            PRJ_UNEARNED_REVENUE,
6800       sum(tmp2.PRJ_AR_UNAPPR_INVOICE_AMOUNT)    PRJ_AR_UNAPPR_INVOICE_AMOUNT,
6801       sum(tmp2.PRJ_AR_APPR_INVOICE_AMOUNT)      PRJ_AR_APPR_INVOICE_AMOUNT,
6802       sum(tmp2.PRJ_AR_AMOUNT_DUE)               PRJ_AR_AMOUNT_DUE,
6803       sum(tmp2.PRJ_AR_AMOUNT_OVERDUE)           PRJ_AR_AMOUNT_OVERDUE,
6804       sum(tmp2.POU_REVENUE)                     POU_REVENUE,
6805       sum(tmp2.POU_FUNDING)                     POU_FUNDING,
6806       sum(tmp2.POU_INITIAL_FUNDING_AMOUNT)      POU_INITIAL_FUNDING_AMOUNT,
6807       sum(tmp2.POU_ADDITIONAL_FUNDING_AMOUNT)   POU_ADDITIONAL_FUNDING_AMOUNT,
6808       sum(tmp2.POU_CANCELLED_FUNDING_AMOUNT)    POU_CANCELLED_FUNDING_AMOUNT,
6809       sum(tmp2.POU_FUNDING_ADJUSTMENT_AMOUNT)   POU_FUNDING_ADJUSTMENT_AMOUNT,
6810       sum(tmp2.POU_REVENUE_WRITEOFF)            POU_REVENUE_WRITEOFF,
6811       sum(tmp2.POU_AR_INVOICE_AMOUNT)           POU_AR_INVOICE_AMOUNT,
6812       sum(tmp2.POU_AR_CASH_APPLIED_AMOUNT)      POU_AR_CASH_APPLIED_AMOUNT,
6813       sum(tmp2.POU_AR_INVOICE_WRITEOFF_AMOUNT)  POU_AR_INVOICE_WRITEOFF_AMOUNT,
6814       sum(tmp2.POU_AR_CREDIT_MEMO_AMOUNT)       POU_AR_CREDIT_MEMO_AMOUNT,
6815       sum(tmp2.POU_UNBILLED_RECEIVABLES)        POU_UNBILLED_RECEIVABLES,
6816       sum(tmp2.POU_UNEARNED_REVENUE)            POU_UNEARNED_REVENUE,
6817       sum(tmp2.POU_AR_UNAPPR_INVOICE_AMOUNT)    POU_AR_UNAPPR_INVOICE_AMOUNT,
6818       sum(tmp2.POU_AR_APPR_INVOICE_AMOUNT)      POU_AR_APPR_INVOICE_AMOUNT,
6819       sum(tmp2.POU_AR_AMOUNT_DUE)               POU_AR_AMOUNT_DUE,
6820       sum(tmp2.POU_AR_AMOUNT_OVERDUE)           POU_AR_AMOUNT_OVERDUE,
6821       sum(tmp2.INITIAL_FUNDING_COUNT)           INITIAL_FUNDING_COUNT,
6822       sum(tmp2.ADDITIONAL_FUNDING_COUNT)        ADDITIONAL_FUNDING_COUNT,
6823       sum(tmp2.CANCELLED_FUNDING_COUNT)         CANCELLED_FUNDING_COUNT,
6824       sum(tmp2.FUNDING_ADJUSTMENT_COUNT)        FUNDING_ADJUSTMENT_COUNT,
6825       sum(tmp2.AR_INVOICE_COUNT)                AR_INVOICE_COUNT,
6826       sum(tmp2.AR_CASH_APPLIED_COUNT)           AR_CASH_APPLIED_COUNT,
6827       sum(tmp2.AR_INVOICE_WRITEOFF_COUNT)       AR_INVOICE_WRITEOFF_COUNT,
6828       sum(tmp2.AR_CREDIT_MEMO_COUNT)            AR_CREDIT_MEMO_COUNT,
6829       sum(tmp2.AR_UNAPPR_INVOICE_COUNT)         AR_UNAPPR_INVOICE_COUNT,
6830       sum(tmp2.AR_APPR_INVOICE_COUNT)           AR_APPR_INVOICE_COUNT,
6831       sum(tmp2.AR_COUNT_DUE)                    AR_COUNT_DUE,
6832       sum(tmp2.AR_COUNT_OVERDUE)                AR_COUNT_OVERDUE,
6833       sum(decode(invert.INVERT_ID,
6834                  'GL', tmp2.GG_REVENUE,
6835                  'PA', tmp2.GP_REVENUE))        G1_REVENUE,
6836       sum(decode(invert.INVERT_ID,
6837                  'GL', tmp2.GG_FUNDING,
6838                  'PA', tmp2.GP_FUNDING))        G1_FUNDING,
6839       sum(decode(invert.INVERT_ID,
6840                  'GL', tmp2.GG_INITIAL_FUNDING_AMOUNT,
6841                  'PA', tmp2.GP_INITIAL_FUNDING_AMOUNT))
6842                                                 G1_INITIAL_FUNDING_AMOUNT,
6843       sum(decode(invert.INVERT_ID,
6844                  'GL', tmp2.GG_ADDITIONAL_FUNDING_AMOUNT,
6845                  'PA', tmp2.GP_ADDITIONAL_FUNDING_AMOUNT))
6846                                                 G1_ADDITIONAL_FUNDING_AMOUNT,
6847       sum(decode(invert.INVERT_ID,
6848                  'GL', tmp2.GG_CANCELLED_FUNDING_AMOUNT,
6849                  'PA', tmp2.GP_CANCELLED_FUNDING_AMOUNT))
6850                                                 G1_CANCELLED_FUNDING_AMOUNT,
6851       sum(decode(invert.INVERT_ID,
6852                  'GL', tmp2.GG_FUNDING_ADJUSTMENT_AMOUNT,
6853                  'PA', tmp2.GP_FUNDING_ADJUSTMENT_AMOUNT))
6854                                                 G1_FUNDING_ADJUSTMENT_AMOUNT,
6855       sum(decode(invert.INVERT_ID,
6856                  'GL', tmp2.GG_REVENUE_WRITEOFF,
6857                  'PA', tmp2.GP_REVENUE_WRITEOFF))
6858                                                 G1_REVENUE_WRITEOFF,
6859       sum(decode(invert.INVERT_ID,
6860                  'GL', tmp2.GG_AR_INVOICE_AMOUNT,
6861                  'PA', tmp2.GP_AR_INVOICE_AMOUNT))
6862                                                 G1_AR_INVOICE_AMOUNT,
6863       sum(decode(invert.INVERT_ID,
6864                  'GL', tmp2.GG_AR_CASH_APPLIED_AMOUNT,
6865                  'PA', tmp2.GP_AR_CASH_APPLIED_AMOUNT))
6866                                                 G1_AR_CASH_APPLIED_AMOUNT,
6867       sum(decode(invert.INVERT_ID,
6868                  'GL', tmp2.GG_AR_INVOICE_WRITEOFF_AMOUNT,
6869                  'PA', tmp2.GP_AR_INVOICE_WRITEOFF_AMOUNT))
6870                                                 G1_AR_INVOICE_WRITEOFF_AMOUNT,
6871       sum(decode(invert.INVERT_ID,
6872                  'GL', tmp2.GG_AR_CREDIT_MEMO_AMOUNT,
6873                  'PA', tmp2.GP_AR_CREDIT_MEMO_AMOUNT))
6874                                                 G1_AR_CREDIT_MEMO_AMOUNT,
6875       sum(decode(invert.INVERT_ID,
6876                  'GL', tmp2.GG_UNBILLED_RECEIVABLES,
6877                  'PA', tmp2.GP_UNBILLED_RECEIVABLES))
6878                                                 G1_UNBILLED_RECEIVABLES,
6879       sum(decode(invert.INVERT_ID,
6880                  'GL', tmp2.GG_UNEARNED_REVENUE,
6881                  'PA', tmp2.GP_UNEARNED_REVENUE))
6882                                                 G1_UNEARNED_REVENUE,
6883       sum(decode(invert.INVERT_ID,
6884                  'GL', tmp2.GG_AR_UNAPPR_INVOICE_AMOUNT,
6885                  'PA', tmp2.GP_AR_UNAPPR_INVOICE_AMOUNT))
6886                                                 G1_AR_UNAPPR_INVOICE_AMOUNT,
6887       sum(decode(invert.INVERT_ID,
6888                  'GL', tmp2.GG_AR_APPR_INVOICE_AMOUNT,
6889                  'PA', tmp2.GP_AR_APPR_INVOICE_AMOUNT))
6890                                                 G1_AR_APPR_INVOICE_AMOUNT,
6891       sum(decode(invert.INVERT_ID,
6892                  'GL', tmp2.GG_AR_AMOUNT_DUE,
6893                  'PA', tmp2.GP_AR_AMOUNT_DUE))  G1_AR_AMOUNT_DUE,
6894       sum(decode(invert.INVERT_ID,
6895                  'GL', tmp2.GG_AR_AMOUNT_OVERDUE,
6896                  'PA', tmp2.GP_AR_AMOUNT_OVERDUE))
6897                                                 G1_AR_AMOUNT_OVERDUE,
6898       sum(decode(invert.INVERT_ID,
6899                  'GL', tmp2.GG2_REVENUE,
6900                  'PA', tmp2.GP2_REVENUE))       G2_REVENUE,
6901       sum(decode(invert.INVERT_ID,
6902                  'GL', tmp2.GG2_FUNDING,
6903                  'PA', tmp2.GP2_FUNDING))       G2_FUNDING,
6904       sum(decode(invert.INVERT_ID,
6905                  'GL', tmp2.GG2_INITIAL_FUNDING_AMOUNT,
6906                  'PA', tmp2.GP2_INITIAL_FUNDING_AMOUNT))
6907                                                 G2_INITIAL_FUNDING_AMOUNT,
6908       sum(decode(invert.INVERT_ID,
6909                  'GL', tmp2.GG2_ADDITIONAL_FUNDING_AMOUNT,
6910                  'PA', tmp2.GP2_ADDITIONAL_FUNDING_AMOUNT))
6911                                                 G2_ADDITIONAL_FUNDING_AMOUNT,
6912       sum(decode(invert.INVERT_ID,
6913                  'GL', tmp2.GG2_CANCELLED_FUNDING_AMOUNT,
6914                  'PA', tmp2.GP2_CANCELLED_FUNDING_AMOUNT))
6915                                                 G2_CANCELLED_FUNDING_AMOUNT,
6916       sum(decode(invert.INVERT_ID,
6917                  'GL', tmp2.GG2_FUNDING_ADJUSTMENT_AMOUNT,
6918                  'PA', tmp2.GP2_FUNDING_ADJUSTMENT_AMOUNT))
6919                                                 G2_FUNDING_ADJUSTMENT_AMOUNT,
6920       sum(decode(invert.INVERT_ID,
6921                  'GL', tmp2.GG2_REVENUE_WRITEOFF,
6922                  'PA', tmp2.GP2_REVENUE_WRITEOFF))
6923                                                 G2_REVENUE_WRITEOFF,
6924       sum(decode(invert.INVERT_ID,
6925                  'GL', tmp2.GG2_AR_INVOICE_AMOUNT,
6926                  'PA', tmp2.GP2_AR_INVOICE_AMOUNT))
6927                                                 G2_AR_INVOICE_AMOUNT,
6928       sum(decode(invert.INVERT_ID,
6929                  'GL', tmp2.GG2_AR_CASH_APPLIED_AMOUNT,
6930                  'PA', tmp2.GP2_AR_CASH_APPLIED_AMOUNT))
6931                                                 G2_AR_CASH_APPLIED_AMOUNT,
6932       sum(decode(invert.INVERT_ID,
6933                  'GL', tmp2.GG2_AR_INVOICE_WRITEOFF_AMOUNT,
6934                  'PA', tmp2.GP2_AR_INVOICE_WRITEOFF_AMOUNT))
6935                                                 G2_AR_INVOICE_WRITEOFF_AMOUNT,
6936       sum(decode(invert.INVERT_ID,
6937                  'GL', tmp2.GG2_AR_CREDIT_MEMO_AMOUNT,
6938                  'PA', tmp2.GP2_AR_CREDIT_MEMO_AMOUNT))
6939                                                 G2_AR_CREDIT_MEMO_AMOUNT,
6940       sum(decode(invert.INVERT_ID,
6941                  'GL', tmp2.GG2_UNBILLED_RECEIVABLES,
6942                  'PA', tmp2.GP2_UNBILLED_RECEIVABLES))
6943                                                 G2_UNBILLED_RECEIVABLES,
6944       sum(decode(invert.INVERT_ID,
6945                  'GL', tmp2.GG2_UNEARNED_REVENUE,
6946                  'PA', tmp2.GP2_UNEARNED_REVENUE))
6947                                                 G2_UNEARNED_REVENUE,
6948       sum(decode(invert.INVERT_ID,
6949                  'GL', tmp2.GG2_AR_UNAPPR_INVOICE_AMOUNT,
6950                  'PA', tmp2.GP2_AR_UNAPPR_INVOICE_AMOUNT))
6951                                                 G2_AR_UNAPPR_INVOICE_AMOUNT,
6952       sum(decode(invert.INVERT_ID,
6953                  'GL', tmp2.GG2_AR_APPR_INVOICE_AMOUNT,
6954                  'PA', tmp2.GP2_AR_APPR_INVOICE_AMOUNT))
6955                                                 G2_AR_APPR_INVOICE_AMOUNT,
6956       sum(decode(invert.INVERT_ID,
6957                  'GL', tmp2.GG2_AR_AMOUNT_DUE,
6958                  'PA', tmp2.GP2_AR_AMOUNT_DUE))
6959                                                 G2_AR_AMOUNT_DUE,
6960       sum(decode(invert.INVERT_ID,
6961                  'GL', tmp2.GG2_AR_AMOUNT_OVERDUE,
6962                  'PA', tmp2.GP2_AR_AMOUNT_OVERDUE))
6963                                                 G2_AR_AMOUNT_OVERDUE
6964     from
6965       (
6966         select 'GL' INVERT_ID from DUAL union all
6967         select 'PA' INVERT_ID from DUAL
6968       ) invert,
6969       PJI_FM_AGGR_ACT2 tmp2
6970     where
6971       tmp2.WORKER_ID = p_worker_id
6972     group by
6973       tmp2.PROJECT_ID,
6974       tmp2.PROJECT_ORG_ID,
6975       tmp2.PROJECT_ORGANIZATION_ID,
6976       decode(invert.INVERT_ID,
6977              'GL', tmp2.GL_TIME_ID,
6978              'PA', tmp2.PA_TIME_ID),
6979       decode(invert.INVERT_ID,
6980              'GL', 'C',
6981              'PA', 'P'),
6982       tmp2.GL_CALENDAR_ID,
6983       tmp2.PA_CALENDAR_ID,
6984       tmp2.TXN_CURRENCY_CODE;
6985 
6986     PJI_PROCESS_UTIL.REGISTER_STEP_COMPLETION(l_process, 'PJI_FM_SUM_EXTR.AGGREGATE_ACT_SLICES(p_worker_id);');
6987 
6988     -- truncate intermediate tables no longer required
6989     l_schema := PJI_UTILS.GET_PJI_SCHEMA_NAME;
6990     PJI_PROCESS_UTIL.TRUNC_INT_TABLE( l_schema , 'PJI_FM_AGGR_ACT2' , 'NORMAL',null);
6991 
6992     commit;
6993 
6994   end AGGREGATE_ACT_SLICES;
6995 
6996 
6997   -- -----------------------------------------------------
6998   -- procedure FORCE_SUBSEQUENT_RUN
6999   -- -----------------------------------------------------
7000   procedure FORCE_SUBSEQUENT_RUN (p_worker_id in number) is
7001 
7002     l_worker_id                   number;
7003     l_process                     varchar2(30);
7004     l_extraction_type             varchar2(15);
7005 
7006     l_newline                     varchar2(10)   := '
7007 ';
7008     l_no_selection                varchar2(50);
7009 
7010     l_organization_tg             varchar2(40);
7011     l_include_sub_org_tg          varchar2(40);
7012     l_project_operating_unit_tg   varchar2(40);
7013     l_from_project_tg             varchar2(40);
7014     l_to_project_tg               varchar2(40);
7015     l_plan_type_tg                varchar2(40);
7016 
7017     l_organization_id             number;
7018     l_include_sub_org_flag        varchar2(50);
7019     l_operating_unit              number;
7020     l_from_project_num            varchar2(50);
7021     l_to_project_num              varchar2(50);
7022     l_plan_type_id                number;
7023 
7024     l_prtl_schedule               varchar2(1);
7025     l_organization                varchar2(50);
7026     l_include_sub_org             varchar2(50);
7027     l_prtl_financial              varchar2(1);
7028     l_project_operating_unit_name varchar2(240);
7029     l_from_project                varchar2(50);
7030     l_to_project                  varchar2(50);
7031     l_plan_type                   varchar2(200);
7032 
7033   begin
7034 
7035     l_process := PJI_FM_SUM_MAIN.g_process || p_worker_id;
7036 
7037     if (not PJI_PROCESS_UTIL.NEED_TO_RUN_STEP(l_process, 'PJI_FM_SUM_EXTR.FORCE_SUBSEQUENT_RUN(p_worker_id);')) then
7038       return;
7039     end if;
7040 
7041     l_extraction_type := PJI_UTILS.GET_PARAMETER('EXTRACTION_TYPE');
7042 
7043     if (l_extraction_type = 'PARTIAL') then
7044     null;
7045 /* Temporary removal of stage 1 dependency on stage 2.  temptemp
7046       FND_MESSAGE.SET_NAME('PJI', 'PJI_PJP_SUM_NO_SELECTION');
7047 
7048       l_no_selection := FND_MESSAGE.GET;
7049 
7050       FND_MESSAGE.SET_NAME('PJI', 'PJI_PJI_SUM_FORCE_PRTL');
7051 
7052       PJI_UTILS.WRITE2OUT(l_newline       ||
7053                           l_newline       ||
7054                           FND_MESSAGE.GET ||
7055                           l_newline       ||
7056                           l_newline);
7057 
7058       -- -----------------------
7059       -- Stage 2 - RM Parameters
7060       -- -----------------------
7061 
7062       l_organization_id := PJI_PROCESS_UTIL.GET_PROCESS_PARAMETER
7063                            (PJI_FM_SUM_MAIN.g_process, 'ORGANIZATION_ID');
7064 
7065       if (nvl(l_organization_id, -1) = -1) then
7066 
7067         l_organization := l_no_selection;
7068 
7069       else
7070 
7071         select NAME
7072         into   l_organization
7073         from   HR_ALL_ORGANIZATION_UNITS
7074         where  ORGANIZATION_ID = l_organization_id;
7075 
7076       end if;
7077 
7078       FND_MESSAGE.SET_NAME('PJI', 'PJI_PJI_SUM_ORGANIZATION');
7079 
7080       l_organization_tg := substr(FND_MESSAGE.GET, 1, 30);
7081 
7082      -- PJI_UTILS.WRITE2OUT(l_plan_type_tg              ||
7083      --                     PJI_FM_SUM_MAIN.my_pad(30 -
7084      --                                            length(l_organization_tg),
7085      --                                            ' ') ||
7086       --                    ': '                        ||
7087       --                    l_organization              ||
7088       --                    l_newline);
7089 
7090       l_include_sub_org_flag := PJI_PROCESS_UTIL.GET_PROCESS_PARAMETER
7091                                 (PJI_FM_SUM_MAIN.g_process, 'INCLUDE_SUB_ORG');
7092 
7093       if (nvl(l_include_sub_org_flag, 'PJI$NULL') = 'PJI$NULL') then
7094 
7095         l_include_sub_org := l_no_selection;
7096 
7097       else
7098 
7099         l_include_sub_org := l_include_sub_org_flag;
7100 
7101       end if;
7102 
7103       FND_MESSAGE.SET_NAME('PJI', 'PJI_PJI_SUM_INCLUDE_SUB_ORG');
7104 
7105       l_include_sub_org_tg := substr(FND_MESSAGE.GET, 1, 30);
7106 
7107    --   PJI_UTILS.WRITE2OUT(l_plan_type_tg              ||
7108     --                      PJI_FM_SUM_MAIN.my_pad(30 -
7109     --                                             length(l_include_sub_org_tg),
7110     --                                             ' ') ||
7111      --                     ': '                        ||
7112       --                    l_include_sub_org              ||
7113       --                    l_newline);
7114 
7115       -- -----------------------
7116       -- Stage 2 - FM Parameters
7117       -- -----------------------
7118 
7119      l_operating_unit := PJI_PROCESS_UTIL.GET_PROCESS_PARAMETER
7120                           (PJI_FM_SUM_MAIN.g_process,'PROJECT_OPERATING_UNIT');
7121 
7122       if (nvl(l_operating_unit, -1) = -1) then
7123 
7124         l_project_operating_unit_name := l_no_selection;
7125 
7126       else
7127 
7128         select NAME
7129         into   l_project_operating_unit_name
7130         from   HR_OPERATING_UNITS
7131         where  ORGANIZATION_ID = l_operating_unit;
7132 
7133       end if;
7134 
7135       FND_MESSAGE.SET_NAME('PJI', 'PJI_PJP_SUM_PRJ_OP_UNIT');
7136 
7137       l_project_operating_unit_tg := substr(FND_MESSAGE.GET, 1, 30);
7138 
7139       PJI_UTILS.WRITE2OUT(l_project_operating_unit_tg                 ||
7140                           PJI_FM_SUM_MAIN.my_pad(30 -
7141                             length(l_project_operating_unit_tg), ' ') ||
7142                           ': '                                        ||
7143                           l_project_operating_unit_name               ||
7144                           l_newline);
7145 
7146       l_from_project_num := PJI_PROCESS_UTIL.GET_PROCESS_PARAMETER
7147                            (PJI_FM_SUM_MAIN.g_process, 'FROM_PROJECT');
7148 
7149       if (nvl(l_from_project_num,'PJI$NULL') = 'PJI$NULL') then
7150 
7151         l_from_project := l_no_selection;
7152 
7153       else
7154 
7155         l_from_project := l_from_project_num;
7156 
7157       end if;
7158 
7159       FND_MESSAGE.SET_NAME('PJI', 'PJI_PJP_SUM_FROM_PRJ');
7160 
7161       l_from_project_tg := substr(FND_MESSAGE.GET, 1, 30);
7162 
7163       PJI_UTILS.WRITE2OUT(l_from_project_tg           ||
7164                           PJI_FM_SUM_MAIN.my_pad(30-length(l_from_project_tg),
7165                                                  ' ') ||
7166                           ': '                        ||
7167                           l_from_project              ||
7168                           l_newline);
7169 
7170       l_to_project_num := PJI_PROCESS_UTIL.GET_PROCESS_PARAMETER
7171                           (PJI_FM_SUM_MAIN.g_process, 'TO_PROJECT');
7172 
7173       if (nvl(l_to_project_num, 'PJI$NULL') = 'PJI$NULL') then
7174 
7175         l_to_project := l_no_selection;
7176 
7177       else
7178 
7179         l_to_project := l_to_project_num;
7180 
7181       end if;
7182 
7183       FND_MESSAGE.SET_NAME('PJI', 'PJI_PJP_SUM_TO_PRJ');
7184 
7185       l_to_project_tg := substr(FND_MESSAGE.GET, 1, 30);
7186 
7187       PJI_UTILS.WRITE2OUT(l_to_project_tg             ||
7188                           PJI_FM_SUM_MAIN.my_pad(30 - length(l_to_project_tg),
7189                                                  ' ') ||
7190                           ': '                        ||
7191                           l_to_project                ||
7192                           l_newline);
7193 
7194       l_plan_type_id := PJI_PROCESS_UTIL.GET_PROCESS_PARAMETER
7195                         (PJI_FM_SUM_MAIN.g_process, 'PLAN_TYPE_ID');
7196 
7197       if (nvl(l_plan_type_id, -1) = -1) then
7198 
7199         l_plan_type := l_no_selection;
7200 
7201       else
7202 
7203         select NAME
7204         into   l_plan_type
7205         from   PA_FIN_PLAN_TYPES_VL
7206         where  FIN_PLAN_TYPE_ID = l_plan_type_id;
7207 
7208       end if;
7209 
7210       FND_MESSAGE.SET_NAME('PJI', 'PJI_PJP_SUM_PLAN_TYPE');
7211 
7212       l_plan_type_tg := substr(FND_MESSAGE.GET, 1, 30);
7213 
7214       PJI_UTILS.WRITE2OUT(l_plan_type_tg              ||
7215                           PJI_FM_SUM_MAIN.my_pad(30 - length(l_plan_type_tg),
7216                                                  ' ') ||
7217                           ': '                        ||
7218                           l_plan_type                 ||
7219                           l_newline);
7220 
7221       commit;
7222 
7223 
7224       PJI_RM_SUM_MAIN.INIT_PROCESS('P',
7225                                    l_prtl_schedule,
7226                                    l_organization_id,
7227                                    l_include_sub_org,
7228                                    l_prtl_financial,
7229                                    l_operating_unit,
7230                                    l_from_project_num,
7231                                    l_to_project_num,
7232                                    l_plan_type_id);
7233 */
7234 
7235     end if;
7236 
7237     PJI_PROCESS_UTIL.REGISTER_STEP_COMPLETION(l_process, 'PJI_FM_SUM_EXTR.FORCE_SUBSEQUENT_RUN(p_worker_id);');
7238 
7239     commit;
7240 
7241   end FORCE_SUBSEQUENT_RUN;
7242 
7243 
7244   -- -----------------------------------------------------
7245   -- procedure CLEANUP_WORKER
7246   -- -----------------------------------------------------
7247   procedure CLEANUP_WORKER (p_worker_id in number) is
7248 
7249     l_process varchar2(30);
7250     l_schema  varchar2(30);
7251 
7252   begin
7253 
7254     l_process := PJI_FM_SUM_MAIN.g_process || p_worker_id;
7255 
7256     PJI_FM_DEBUG.CLEANUP_HOOK(l_process);
7257 
7258     PJI_FM_EXTR.CLEANUP(p_worker_id);
7259     PJI_FM_SUM_PSI.CLEANUP(p_worker_id);
7260     PJI_FM_SUM_ACT.CLEANUP(p_worker_id);
7261 
7262     l_schema := PJI_UTILS.GET_PJI_SCHEMA_NAME;
7263 
7264     PJI_PROCESS_UTIL.TRUNC_INT_TABLE(l_schema,
7265                                      'PJI_FM_AGGR_FIN1',
7266                                      'NORMAL',
7267                                      null);
7268 
7269     PJI_PROCESS_UTIL.TRUNC_INT_TABLE(l_schema,
7270                                      'PJI_FM_AGGR_FIN2',
7271                                      'NORMAL',
7272                                      null);
7273 
7274     PJI_PROCESS_UTIL.TRUNC_INT_TABLE(l_schema,
7275                                      'PJI_FM_AGGR_ACT1',
7276                                      'NORMAL',
7277                                      null);
7278 
7279     PJI_PROCESS_UTIL.TRUNC_INT_TABLE(l_schema,
7280                                      'PJI_FM_AGGR_ACT2',
7281                                      'NORMAL',
7282                                      null);
7283 
7284     commit;
7285 
7286   end CLEANUP_WORKER;
7287 
7288 
7289   -- -----------------------------------------------------
7290   -- procedure WRAPUP_FAILURE
7291   -- -----------------------------------------------------
7292   procedure WRAPUP_FAILURE is
7293 
7294   begin
7295 
7296     rollback;
7297 
7298     PJI_PROCESS_UTIL.SET_PROCESS_PARAMETER(PJI_FM_SUM_MAIN.g_process, 'PROCESS_RUNNING', 'F');
7299 
7300     commit;
7301 
7302     pji_utils.write2log(sqlerrm, true, 0);
7303 
7304     commit;
7305 
7306   end WRAPUP_FAILURE;
7307 
7308 
7309   -- -----------------------------------------------------
7310   -- procedure WORKER
7311   -- -----------------------------------------------------
7312   procedure WORKER (p_worker_id in number) is
7313 
7314     l_process varchar2(30);
7315 
7316   begin
7317 
7318     l_process := PJI_FM_SUM_MAIN.g_process || p_worker_id;
7319 
7320     PJI_FM_DEBUG.CONC_REQUEST_HOOK(l_process);
7321 
7322     PJI_EXTRACTION_UTIL.SEED_PJI_FM_STATS;
7323 
7324     PJI_PROCESS_UTIL.CLEAN_HELPER_BATCH_TABLE;
7325 
7326     PJI_FM_SUM_EXTR.POPULATE_TIME_DIMENSION(p_worker_id);
7327     PJI_EXTRACTION_UTIL.POPULATE_ORG_EXTR_INFO;
7328 
7329     PJI_FM_EXTR.EXTRACT_BATCH_DREV(p_worker_id);
7330 
7331     PJI_FM_EXTR.MARK_EXTRACTED_DREV_PRE(p_worker_id);
7332     if (not PJI_PROCESS_UTIL.WAIT_FOR_STEP
7333             (PJI_FM_SUM_MAIN.g_process,
7334              'PJI_FM_EXTR.MARK_EXTRACTED_DREV(p_worker_id);',
7335              PJI_FM_SUM_MAIN.g_process_delay)) then
7336       return;
7337     end if;
7338     PJI_FM_EXTR.MARK_EXTRACTED_DREV_POST(p_worker_id);
7339 
7340     PJI_FM_EXTR.EXTRACT_BATCH_CDL_ROWIDS(p_worker_id);
7341 
7342     PJI_FM_EXTR.MARK_EXTRACTED_CDL_ROWS_PRE(p_worker_id);
7343     if (not PJI_PROCESS_UTIL.WAIT_FOR_STEP
7344             (PJI_FM_SUM_MAIN.g_process,
7345              'PJI_FM_EXTR.MARK_EXTRACTED_CDL_ROWS(p_worker_id);',
7346              PJI_FM_SUM_MAIN.g_process_delay)) then
7347       return;
7348     end if;
7349     PJI_FM_EXTR.MARK_EXTRACTED_CDL_ROWS_POST(p_worker_id);
7350 
7351     PJI_FM_EXTR.EXTRACT_BATCH_CDL_CRDL_FULL(p_worker_id);
7352     PJI_FM_EXTR.EXTRACT_BATCH_ERDL_FULL(p_worker_id);
7353     PJI_FM_EXTR.EXTRACT_BATCH_CRDL_ROWIDS(p_worker_id);
7354     PJI_FM_EXTR.EXTRACT_BATCH_ERDL_ROWIDS(p_worker_id);
7355     PJI_FM_EXTR.EXTRACT_BATCH_CDL_AND_CRDL(p_worker_id);
7356     PJI_FM_EXTR.EXTRACT_BATCH_ERDL(p_worker_id);
7357     PJI_FM_EXTR.EXTRACT_BATCH_FND(p_worker_id);
7358 
7359     PJI_FM_EXTR.MARK_EXTRACTED_FND_ROWS_PRE(p_worker_id);
7360     if (not PJI_PROCESS_UTIL.WAIT_FOR_STEP
7361             (PJI_FM_SUM_MAIN.g_process,
7362              'PJI_FM_EXTR.MARK_EXTRACTED_FND_ROWS(p_worker_id);',
7363              PJI_FM_SUM_MAIN.g_process_delay)) then
7364       return;
7365     end if;
7366     PJI_FM_EXTR.MARK_EXTRACTED_FND_ROWS_POST(p_worker_id);
7367 
7368     PJI_FM_EXTR.EXTRACT_BATCH_DINV(p_worker_id);
7369     PJI_FM_EXTR.MARK_EXTRACTED_DINV_ROWS(p_worker_id);
7370     PJI_FM_EXTR.EXTRACT_BATCH_DINVITEM(p_worker_id);
7371     PJI_FM_EXTR.EXTRACT_BATCH_ARINV(p_worker_id);
7372 
7373     PJI_FM_EXTR.MARK_FULLY_PAID_INVOICES_PRE(p_worker_id);
7374     if (not PJI_PROCESS_UTIL.WAIT_FOR_STEP
7375             (PJI_FM_SUM_MAIN.g_process,
7376              'PJI_FM_EXTR.MARK_FULLY_PAID_INVOICES(p_worker_id);',
7377              PJI_FM_SUM_MAIN.g_process_delay)) then
7378       return;
7379     end if;
7380     PJI_FM_EXTR.MARK_FULLY_PAID_INVOICES_POST(p_worker_id);
7381 
7382     PJI_FM_SUM_ACT.BASE_SUMMARY(p_worker_id);
7383 
7384     PJI_FM_CMT_EXTR.REFRESH_PROJPERF_CMT_PRE(p_worker_id);
7385     if (not PJI_PROCESS_UTIL.WAIT_FOR_STEP
7386             (PJI_FM_SUM_MAIN.g_process,
7387              'PJI_FM_CMT_EXTR.REFRESH_PROJPERF_CMT(p_worker_id);',
7388              PJI_FM_SUM_MAIN.g_process_delay)) then
7389       return;
7390     end if;
7391     PJI_FM_CMT_EXTR.REFRESH_PROJPERF_CMT_POST(p_worker_id);
7392 
7393     PJI_FM_SUM_EXTR.ORG_EXTR_INFO_TABLE(p_worker_id);
7394     PJI_FM_SUM_EXTR.CURR_CONV_TABLE(p_worker_id);
7395 
7396     PJI_FM_SUM_EXTR.DANGLING_FIN_ROWS(p_worker_id);
7397     PJI_FM_SUM_EXTR.DANGLING_ACT_ROWS(p_worker_id);
7398     PJI_FM_SUM_EXTR.PURGE_DANGLING_FIN_ROWS(p_worker_id);
7399     PJI_FM_SUM_EXTR.PURGE_DANGLING_ACT_ROWS(p_worker_id);
7400 
7401     PJI_FM_CMT_EXTR.FIN_CMT_SUMMARY(p_worker_id);
7402 
7403     PJI_FM_SUM_EXTR.FIN_SUMMARY(p_worker_id);
7404     PJI_FM_SUM_EXTR.MOVE_DANGLING_FIN_ROWS(p_worker_id);
7405 
7406     PJI_FM_SUM_EXTR.ACT_SUMMARY(p_worker_id);
7407     PJI_FM_SUM_EXTR.MOVE_DANGLING_ACT_ROWS(p_worker_id);
7408 
7409     PJI_FM_SUM_PSI.RESOURCE_LOOKUP_TABLE(p_worker_id);
7410 
7411     PJI_FM_SUM_PSI.PURGE_FP_BALANCES(p_worker_id);
7412     PJI_FM_SUM_PSI.PURGE_CMT_BALANCES(p_worker_id);
7413     PJI_FM_SUM_PSI.PURGE_AC_BALANCES(p_worker_id);
7414 
7415     PJI_FM_SUM_PSI.AGGREGATE_FPR_PERIODS(p_worker_id);
7416     PJI_FM_SUM_PSI.AGGREGATE_ACR_PERIODS(p_worker_id);
7417 
7418     PJI_FM_SUM_PSI.INSERT_NEW_HEADERS(p_worker_id);
7419     PJI_FM_SUM_PSI.BALANCES_INSERT(p_worker_id);
7420     PJI_FM_SUM_PSI.BALANCES_INCR_NEW_PRJ(p_worker_id);
7421     PJI_FM_SUM_PSI.BALANCES_INSERT_CMT(p_worker_id);
7422     PJI_FM_SUM_PSI.BALANCES_INCR_NEW_PRJ_CMT(p_worker_id);
7423 
7424     PJI_FM_SUM_PSI.FORCE_SUBSEQUENT_RUN(p_worker_id);
7425 
7426     PJI_FM_SUM_EXTR.AGGREGATE_RES_SLICES(p_worker_id);
7427     PJI_FM_SUM_EXTR.AGGREGATE_FIN_SLICES(p_worker_id);
7428     PJI_FM_SUM_EXTR.AGGREGATE_ACT_SLICES(p_worker_id);
7429 
7430     PJI_FM_SUM_EXTR.FORCE_SUBSEQUENT_RUN(p_worker_id);
7431 
7432     CLEANUP_WORKER(p_worker_id);
7433 
7434   end WORKER;
7435 
7436 
7437   -- -----------------------------------------------------
7438   -- procedure HELPER
7439   -- -----------------------------------------------------
7440   procedure HELPER
7441   (
7442     errbuf      out nocopy varchar2,
7443     retcode     out nocopy varchar2,
7444     p_worker_id  in        number
7445   ) is
7446 
7447     l_process varchar2(30);
7448 
7449   begin
7450 
7451     -- If this helper's concurrent request ID does not exist in the
7452     -- parameters table, the dispatcher must have kicked off a new
7453     -- helper.  Therefore do nothing.
7454     if (PJI_PROCESS_UTIL.GET_PROCESS_PARAMETER(PJI_FM_SUM_MAIN.g_process,
7455                                                PJI_FM_SUM_MAIN.g_process ||
7456                                                p_worker_id)
7457         <> FND_GLOBAL.CONC_REQUEST_ID) then
7458       pji_utils.write2log('Warning: Helper is already running.');
7459       commit;
7460       retcode := 0;
7461       return;
7462     end if;
7463 
7464     l_process := PJI_FM_SUM_MAIN.g_process || p_worker_id;
7465 
7466     PJI_FM_DEBUG.CONC_REQUEST_HOOK(l_process);
7467 
7468     if (not PJI_PROCESS_UTIL.WAIT_FOR_STEP
7469             (PJI_FM_SUM_MAIN.g_process,
7470              'PJI_FM_EXTR.MARK_EXTRACTED_DREV_PRE(p_worker_id);',
7471              PJI_FM_SUM_MAIN.g_process_delay,
7472              'EVEN_IF_NOT_EXISTS')) then
7473       if (PJI_PROCESS_UTIL.GET_PROCESS_PARAMETER
7474           (PJI_FM_SUM_MAIN.g_process, 'PROCESS_RUNNING') = 'N') then
7475         null;
7476       else
7477         return;
7478       end if;
7479     end if;
7480 
7481     PJI_FM_EXTR.MARK_EXTRACTED_DREV(p_worker_id);
7482 
7483     if (not PJI_PROCESS_UTIL.WAIT_FOR_STEP
7484             (PJI_FM_SUM_MAIN.g_process,
7485              'PJI_FM_EXTR.MARK_EXTRACTED_CDL_ROWS_PRE(p_worker_id);',
7486              PJI_FM_SUM_MAIN.g_process_delay)) then
7487       if (PJI_PROCESS_UTIL.GET_PROCESS_PARAMETER
7488           (PJI_FM_SUM_MAIN.g_process, 'PROCESS_RUNNING') = 'N') then
7489         null;
7490       else
7491         return;
7492       end if;
7493     end if;
7494 
7495     PJI_FM_EXTR.MARK_EXTRACTED_CDL_ROWS(p_worker_id);
7496 
7497     if (not PJI_PROCESS_UTIL.WAIT_FOR_STEP
7498             (PJI_FM_SUM_MAIN.g_process,
7499              'PJI_FM_EXTR.MARK_EXTRACTED_FND_ROWS_PRE(p_worker_id);',
7500              PJI_FM_SUM_MAIN.g_process_delay)) then
7501       if (PJI_PROCESS_UTIL.GET_PROCESS_PARAMETER
7502           (PJI_FM_SUM_MAIN.g_process, 'PROCESS_RUNNING') = 'N') then
7503         null;
7504       else
7505         return;
7506       end if;
7507     end if;
7508 
7509     PJI_FM_EXTR.MARK_EXTRACTED_FND_ROWS(p_worker_id);
7510 
7511     if (not PJI_PROCESS_UTIL.WAIT_FOR_STEP
7512             (PJI_FM_SUM_MAIN.g_process,
7513              'PJI_FM_EXTR.MARK_FULLY_PAID_INVOICES_PRE(p_worker_id);',
7514              PJI_FM_SUM_MAIN.g_process_delay)) then
7515       if (PJI_PROCESS_UTIL.GET_PROCESS_PARAMETER
7516           (PJI_FM_SUM_MAIN.g_process, 'PROCESS_RUNNING') = 'N') then
7517         null;
7518       else
7519         return;
7520       end if;
7521     end if;
7522 
7523     PJI_FM_EXTR.MARK_FULLY_PAID_INVOICES(p_worker_id);
7524 
7525     if (not PJI_PROCESS_UTIL.WAIT_FOR_STEP
7526             (PJI_FM_SUM_MAIN.g_process,
7527              'PJI_FM_CMT_EXTR.REFRESH_PROJPERF_CMT_PRE(p_worker_id);',
7528              PJI_FM_SUM_MAIN.g_process_delay)) then
7529       if (PJI_PROCESS_UTIL.GET_PROCESS_PARAMETER
7530           (PJI_FM_SUM_MAIN.g_process, 'PROCESS_RUNNING') = 'N') then
7531         null;
7532       else
7533         return;
7534       end if;
7535     end if;
7536 
7537     PJI_FM_CMT_EXTR.REFRESH_PROJPERF_CMT(p_worker_id);
7538 
7539     while (PJI_PROCESS_UTIL.GET_PROCESS_PARAMETER
7540            (PJI_FM_SUM_MAIN.g_process, 'PROCESS_RUNNING') = 'Y') loop
7541       PJI_PROCESS_UTIL.SLEEP(PJI_FM_SUM_MAIN.g_process_delay);
7542     end loop;
7543 
7544     if (PJI_PROCESS_UTIL.GET_PROCESS_PARAMETER
7545         (PJI_FM_SUM_MAIN.g_process, 'PROCESS_RUNNING') = 'F') then
7546       return;
7547     end if;
7548 
7549     PJI_PROCESS_UTIL.WRAPUP_PROCESS(l_process);
7550 
7551     commit;
7552 
7553     retcode := 0;
7554 
7555     exception when others then
7556 
7557       WRAPUP_FAILURE;
7558       retcode := 2;
7559       errbuf := sqlerrm;
7560 
7561   end HELPER;
7562 
7563 
7564   -- -----------------------------------------------------
7565   -- procedure START_HELPER
7566   -- -----------------------------------------------------
7567   procedure START_HELPER (p_worker_id in number) is
7568 
7569     l_process varchar2(30);
7570     l_extraction_type varchar2(30);
7571 
7572   begin
7573 
7574     -- If a helper with this concurrent request ID is already running
7575     -- then we do not need to do anything.
7576     if (WORKER_STATUS(p_worker_id, 'RUNNING')) then
7577       return;
7578     end if;
7579 
7580     l_extraction_type := PJI_UTILS.GET_PARAMETER('EXTRACTION_TYPE');
7581 
7582     -- Initialize status tables with worker details
7583 
7584     -- Note that adding a new step will do nothing if the step already
7585     -- exists.  Therefore, no state will be overwritten in the case of
7586     -- error recovery.
7587 
7588     l_process := PJI_FM_SUM_MAIN.g_process || p_worker_id;
7589 
7590     PJI_PROCESS_UTIL.ADD_STEPS(l_process, 'PJI_EXTR_HELPER', l_extraction_type);
7591 
7592     -- Kick off helper
7593 
7594     PJI_PROCESS_UTIL.SET_PROCESS_PARAMETER
7595     (
7596       PJI_FM_SUM_MAIN.g_process,
7597       l_process,
7598       FND_REQUEST.SUBMIT_REQUEST
7599       (
7600         PJI_UTILS.GET_PJI_SCHEMA_NAME,     -- Application name
7601         PJI_FM_SUM_MAIN.g_helper_name,     -- concurrent program name
7602         null,                              -- description (optional)
7603         null,                              -- Start Time  (optional)
7604         false,                             -- called from another conc. request
7605         p_worker_id                        -- first parameter
7606       )
7607     );
7608 
7609     if (nvl(to_number(PJI_PROCESS_UTIL.GET_PROCESS_PARAMETER
7610                       (PJI_FM_SUM_MAIN.g_process, l_process)), 0) = 0) then
7611         fnd_message.set_name('PJI', 'PJI_SUM_NO_SUB_REQ');
7612         dbms_standard.raise_application_error(-20030, fnd_message.get);
7613     end if;
7614 
7615     commit;
7616 
7617   end START_HELPER;
7618 
7619 
7620   -- -----------------------------------------------------
7621   -- function WORKER_STATUS
7622   -- -----------------------------------------------------
7623   function WORKER_STATUS (p_worker_id in number,
7624                           p_mode in varchar2) return boolean is
7625 
7626     l_process         varchar2(30);
7627     l_request_id      number;
7628     l_worker_name     varchar2(255);
7629     l_extraction_type varchar2(30);
7630 
7631   begin
7632 
7633     l_extraction_type := PJI_UTILS.GET_PARAMETER('EXTRACTION_TYPE');
7634 
7635     if (p_worker_id = 1) then
7636 
7637       if (l_extraction_type = 'FULL') then
7638         l_worker_name := PJI_FM_SUM_MAIN.g_full_disp_name;
7639       elsif (l_extraction_type = 'INCREMENTAL') then
7640         l_worker_name := PJI_FM_SUM_MAIN.g_incr_disp_name;
7641       elsif (l_extraction_type = 'PARTIAL') then
7642         l_worker_name := PJI_FM_SUM_MAIN.g_prtl_disp_name;
7643       end if;
7644 
7645       l_request_id := PJI_PROCESS_UTIL.GET_PROCESS_PARAMETER
7646                       (PJI_FM_SUM_MAIN.g_process,
7647                        PJI_FM_SUM_MAIN.g_process);
7648 
7649     else
7650 
7651       l_process := PJI_FM_SUM_MAIN.g_process || p_worker_id;
7652 
7653       l_worker_name := PJI_FM_SUM_MAIN.g_helper_name;
7654 
7655       l_request_id := PJI_PROCESS_UTIL.GET_PROCESS_PARAMETER
7656                       (PJI_FM_SUM_MAIN.g_process, l_process);
7657 
7658     end if;
7659 
7660     return PJI_PROCESS_UTIL.REQUEST_STATUS(p_mode,
7661                                            l_request_id,
7662                                            l_worker_name);
7663 
7664   end WORKER_STATUS;
7665 
7666 
7667   -- -----------------------------------------------------
7668   -- procedure WAIT_FOR_WORKER
7669   -- -----------------------------------------------------
7670   procedure WAIT_FOR_WORKER (p_worker_id in number) is
7671 
7672     l_process    varchar2(30);
7673     l_request_id number;
7674 
7675   begin
7676 
7677     l_process := PJI_FM_SUM_MAIN.g_process || p_worker_id;
7678 
7679     l_request_id :=
7680     PJI_PROCESS_UTIL.GET_PROCESS_PARAMETER
7681     (
7682       PJI_FM_SUM_MAIN.g_process,
7683       l_process
7684     );
7685 
7686     PJI_PROCESS_UTIL.WAIT_FOR_REQUEST(l_request_id,
7687                                       PJI_FM_SUM_MAIN.g_process_delay);
7688 
7689   end WAIT_FOR_WORKER;
7690 
7691 end PJI_FM_SUM_EXTR;