[Home] [Help]
PACKAGE BODY: APPS.PJI_PJP_SUM_ROLLUP
Source
1 package body PJI_PJP_SUM_ROLLUP as
2 /* $Header: PJISP02B.pls 120.75.12010000.5 2008/12/11 10:03:47 vgovvala ship $ */
3
4 g_event_id number(15);
5 g_project_id number(15);
6 g_plan_type_id number(15);
7 g_old_baselined_version number(15);
8 g_new_baselined_version number(15);
9 g_old_original_version number(15);
10 g_new_original_version number(15);
11 g_old_struct_version number(15);
12 g_new_struct_version number(15);
13 g_rbs_version number(15);
14 g_cb_plans constant NUMBER := 2;
15 g_co_plans constant NUMBER := 4;
16 g_lp_plans constant NUMBER := 8;
17 g_wk_plans constant NUMBER := 16;
18 g_latest_plans constant NUMBER := 30;
19 g_all_plans constant NUMBER := 62;
20
21 -- -----------------------------------------------------
22 -- procedure POPULATE_TIME_DIMENSION
23 --
24 -- History
25 -- 19-MAR-2004 SVERMETT Created
26 --
27 -- Internal PJP Summarization API.
28 --
29 -- Called by RBS program
30 --
31 -- -----------------------------------------------------
32 procedure POPULATE_TIME_DIMENSION (p_worker_id in number) is
33
34 l_process varchar2(30);
35
36 l_return_status varchar2(255);
37 l_msg_count number;
38 l_msg_data varchar2(2000);
39
40 begin
41
42 l_process := PJI_PJP_SUM_MAIN.g_process || p_worker_id;
43
44 if (not PJI_PROCESS_UTIL.NEED_TO_RUN_STEP(l_process, 'PJI_PJP_SUM_ROLLUP.POPULATE_TIME_DIMENSION(p_worker_id);')) then
45 return;
46 end if;
47
48 PJI_TIME_C.LOAD(null, null, l_return_status, l_msg_count, l_msg_data);
49
50 PJI_PROCESS_UTIL.REGISTER_STEP_COMPLETION(l_process, 'PJI_PJP_SUM_ROLLUP.POPULATE_TIME_DIMENSION(p_worker_id);');
51
52 commit;
53
54 end POPULATE_TIME_DIMENSION;
55
56
57 -- -----------------------------------------------------
58 -- procedure CREATE_EVENTS_SNAPSHOT
59 --
60 -- History
61 -- 19-MAR-2004 SVERMETT Created
62 --
63 -- Internal PJP Summarization API.
64 --
65 -- Called by RBS program
66 --
67 -- -----------------------------------------------------
68 procedure CREATE_EVENTS_SNAPSHOT (p_worker_id in number) is
69
70 cursor events (p_worker_id in number) is
71 select /*+ ordered index(log PA_PJI_PROJ_EVENTS_LOG_N1) */
72 distinct
73 log.ROWID LOG_ROWID,
74 log.EVENT_TYPE,
75 log.EVENT_ID,
76 log.EVENT_OBJECT,
77 log.OPERATION_TYPE,
78 log.STATUS,
79 log.ATTRIBUTE_CATEGORY,
80 log.ATTRIBUTE1,
81 to_char(decode(log.EVENT_TYPE,
82 'RBS_PRG', ver.RBS_HEADER_ID,
83 'RBS_ASSOC', ver.RBS_HEADER_ID,
84 log.ATTRIBUTE2)) ATTRIBUTE2,
85 log.ATTRIBUTE3,
86 log.ATTRIBUTE4,
87 log.ATTRIBUTE5,
88 log.ATTRIBUTE6,
89 log.ATTRIBUTE7,
90 log.ATTRIBUTE8,
91 log.ATTRIBUTE9,
92 log.ATTRIBUTE10,
93 log.ATTRIBUTE11,
94 log.ATTRIBUTE12,
95 log.ATTRIBUTE13,
96 log.ATTRIBUTE14,
97 log.ATTRIBUTE15,
98 log.ATTRIBUTE16,
99 log.ATTRIBUTE17,
100 log.ATTRIBUTE18,
101 log.ATTRIBUTE19,
102 log.ATTRIBUTE20
103 from
104 PJI_PJP_PROJ_BATCH_MAP map,
105 PA_PJI_PROJ_EVENTS_LOG log,
106 PA_RBS_VERSIONS_B ver
107 where
108 map.WORKER_ID = p_worker_id and
109 log.EVENT_TYPE in (-- 'WBS_CHANGE', -- disable bulk processing
110 -- 'WBS_PUBLISH', -- of WBS events
111 'RBS_ASSOC',
112 'RBS_PRG') and
113 log.ATTRIBUTE1 = map.PROJECT_ID and
114 log.EVENT_OBJECT = ver.RBS_VERSION_ID (+)
115 union all
116 select /*+ ordered index(log PA_PJI_PROJ_EVENTS_LOG_N1) */
117 distinct
118 log.ROWID LOG_ROWID,
119 log.EVENT_TYPE,
120 log.EVENT_ID,
121 log.EVENT_OBJECT,
122 log.OPERATION_TYPE,
123 log.STATUS,
124 log.ATTRIBUTE_CATEGORY,
125 log.ATTRIBUTE1,
126 log.ATTRIBUTE2,
127 log.ATTRIBUTE3,
128 log.ATTRIBUTE4,
129 log.ATTRIBUTE5,
130 log.ATTRIBUTE6,
131 log.ATTRIBUTE7,
132 log.ATTRIBUTE8,
133 log.ATTRIBUTE9,
134 log.ATTRIBUTE10,
135 log.ATTRIBUTE11,
136 log.ATTRIBUTE12,
137 log.ATTRIBUTE13,
138 log.ATTRIBUTE14,
139 log.ATTRIBUTE15,
140 log.ATTRIBUTE16,
141 log.ATTRIBUTE17,
142 log.ATTRIBUTE18,
143 log.ATTRIBUTE19,
144 log.ATTRIBUTE20
145 from
146 PJI_PJP_PROJ_BATCH_MAP map,
147 PA_PJI_PROJ_EVENTS_LOG log
148 where
149 map.WORKER_ID = p_worker_id and
150 log.EVENT_TYPE = 'PRG_CHANGE' and
151 log.EVENT_OBJECT = -1 and
152 log.ATTRIBUTE1 = map.PROJECT_ID;
153
154 cursor prg_change_events (p_worker_id in number) is
155 select /*+ index(log PA_PJI_PROJ_EVENTS_LOG_N1) */
156 log.ROWID LOG_ROWID,
157 log.EVENT_TYPE,
158 log.EVENT_ID,
159 log.EVENT_OBJECT,
160 log.OPERATION_TYPE,
161 log.STATUS,
162 log.ATTRIBUTE_CATEGORY,
163 log.ATTRIBUTE1,
164 log.ATTRIBUTE2,
165 log.ATTRIBUTE3,
166 log.ATTRIBUTE4,
167 log.ATTRIBUTE5,
168 log.ATTRIBUTE6,
169 log.ATTRIBUTE7,
170 log.ATTRIBUTE8,
171 log.ATTRIBUTE9,
172 log.ATTRIBUTE10,
173 log.ATTRIBUTE11,
174 log.ATTRIBUTE12,
175 log.ATTRIBUTE13,
176 log.ATTRIBUTE14,
177 log.ATTRIBUTE15,
178 log.ATTRIBUTE16,
179 log.ATTRIBUTE17,
180 log.ATTRIBUTE18,
181 log.ATTRIBUTE19,
182 log.ATTRIBUTE20
183 from
184 PA_PJI_PROJ_EVENTS_LOG log,
185 (
186 select /*+ ordered index(ver PA_PROJ_ELEMENT_VERSIONS_N3) */
187 distinct
188 ver.PRG_GROUP
189 from
190 PJI_PJP_PROJ_BATCH_MAP map,
191 PA_PROJ_ELEMENT_VERSIONS ver
192 where
193 map.WORKER_ID = p_worker_id and
194 map.PROJECT_ID = ver.PROJECT_ID and
195 ver.PRG_GROUP is not null
196 ) map
197 where
198 log.EVENT_TYPE = 'PRG_CHANGE' and
199 log.EVENT_OBJECT <> -1 and
200 map.PRG_GROUP in (log.EVENT_OBJECT, log.ATTRIBUTE1);
201
202 cursor rbs_push_events (p_worker_id in number,
203 p_rbs_header_id in number) is
204 select /*+ index(log PA_PJI_PROJ_EVENTS_LOG_N1) */
205 distinct
206 log.ROWID LOG_ROWID,
207 log.EVENT_TYPE,
208 log.EVENT_ID,
209 log.EVENT_OBJECT,
210 log.OPERATION_TYPE,
211 log.STATUS,
212 log.ATTRIBUTE_CATEGORY,
213 log.ATTRIBUTE1,
214 nvl(log.ATTRIBUTE2, log.EVENT_OBJECT) ATTRIBUTE2,
215 log.ATTRIBUTE3,
216 log.ATTRIBUTE4,
217 log.ATTRIBUTE5,
218 log.ATTRIBUTE6,
219 log.ATTRIBUTE7,
220 log.ATTRIBUTE8,
221 log.ATTRIBUTE9,
222 log.ATTRIBUTE10,
223 log.ATTRIBUTE11,
224 log.ATTRIBUTE12,
225 log.ATTRIBUTE13,
226 log.ATTRIBUTE14,
227 log.ATTRIBUTE15,
228 'N' ATTRIBUTE16, -- project event flag
229 log.ATTRIBUTE17, -- chain identifier
230 log.ATTRIBUTE18, -- push chain flag
231 log.ATTRIBUTE19, -- project id
232 ver.RBS_HEADER_ID ATTRIBUTE20 -- rbs header
233 from
234 PA_PJI_PROJ_EVENTS_LOG log,
235 (
236 select
237 distinct
238 asg.RBS_HEADER_ID,
239 asg.RBS_VERSION_ID
240 from
241 PJI_PJP_PROJ_BATCH_MAP map,
242 PA_RBS_PRJ_ASSIGNMENTS asg
243 where
244 map.WORKER_ID = p_worker_id and
245 asg.PROJECT_ID = map.PROJECT_ID and
246 asg.RBS_HEADER_ID = nvl(p_rbs_header_id,
247 asg.RBS_HEADER_ID)
248 ) ver
249 where
250 log.EVENT_TYPE = 'RBS_PUSH' and
251 ver.RBS_VERSION_ID in (log.EVENT_OBJECT, log.ATTRIBUTE2);
252
253 cursor rbs_delete_events (p_worker_id in number,
254 p_rbs_header_id in number) is
255 select /*+ index(log PA_PJI_PROJ_EVENTS_LOG_N1) */
256 distinct
257 log.ROWID LOG_ROWID,
258 log.EVENT_TYPE,
259 log.EVENT_ID,
260 log.EVENT_OBJECT,
261 log.OPERATION_TYPE,
262 log.STATUS,
263 log.ATTRIBUTE_CATEGORY,
264 log.ATTRIBUTE1,
265 log.ATTRIBUTE2,
266 log.ATTRIBUTE3,
267 log.ATTRIBUTE4,
268 log.ATTRIBUTE5,
269 log.ATTRIBUTE6,
270 log.ATTRIBUTE7,
271 log.ATTRIBUTE8,
272 log.ATTRIBUTE9,
273 log.ATTRIBUTE10,
274 log.ATTRIBUTE11,
275 log.ATTRIBUTE12,
276 log.ATTRIBUTE13,
277 log.ATTRIBUTE14,
278 log.ATTRIBUTE15,
279 log.ATTRIBUTE16,
280 log.ATTRIBUTE17,
281 log.ATTRIBUTE18,
282 log.ATTRIBUTE19,
283 log.ATTRIBUTE20
284 from
285 PJI_PJP_PROJ_BATCH_MAP map,
286 PA_RBS_PRJ_ASSIGNMENTS asg,
287 PA_PJI_PROJ_EVENTS_LOG log
288 where
289 map.WORKER_ID = p_worker_id and
290 asg.PROJECT_ID = map.PROJECT_ID and
291 asg.RBS_HEADER_ID = nvl(p_rbs_header_id,
292 asg.RBS_HEADER_ID) and
293 log.EVENT_TYPE = 'RBS_DELETE' and
294 log.EVENT_OBJECT = asg.RBS_VERSION_ID;
295
296 l_process varchar2(30);
297 l_extraction_type varchar2(30);
298 l_rbs_header_id number;
299 l_chain_flag varchar2(150);
300 l_last_rbs_link number;
301
302 l_last_update_date date;
303 l_last_updated_by number;
304 l_creation_date date;
305 l_created_by number;
306 l_last_update_login number;
307
308 begin
309
310 l_process := PJI_PJP_SUM_MAIN.g_process || to_char(p_worker_id);
311
312 if (not PJI_PROCESS_UTIL.NEED_TO_RUN_STEP(l_process, 'PJI_PJP_SUM_ROLLUP.CREATE_EVENTS_SNAPSHOT(p_worker_id);')) then
313 return;
314 end if;
315
316 l_extraction_type := PJI_PROCESS_UTIL.GET_PROCESS_PARAMETER(l_process, 'EXTRACTION_TYPE');
317
318 l_last_update_date := sysdate;
319 l_last_updated_by := FND_GLOBAL.USER_ID;
320 l_creation_date := sysdate;
321 l_created_by := FND_GLOBAL.USER_ID;
322 l_last_update_login := FND_GLOBAL.LOGIN_ID;
323
324 if (l_extraction_type = 'FULL') then
325
326 insert into PJI_PA_PROJ_EVENTS_LOG
327 (
328 WORKER_ID,
329 LOG_ROWID,
330 EVENT_TYPE,
331 EVENT_ID,
332 EVENT_OBJECT,
333 OPERATION_TYPE,
334 STATUS,
335 ATTRIBUTE_CATEGORY,
336 ATTRIBUTE1,
337 ATTRIBUTE2,
338 ATTRIBUTE3,
339 ATTRIBUTE4,
340 ATTRIBUTE5,
341 ATTRIBUTE6,
342 ATTRIBUTE7,
343 ATTRIBUTE8,
344 ATTRIBUTE9,
345 ATTRIBUTE10,
346 ATTRIBUTE11,
347 ATTRIBUTE12,
348 ATTRIBUTE13,
349 ATTRIBUTE14,
350 ATTRIBUTE15,
351 ATTRIBUTE16,
352 ATTRIBUTE17,
353 ATTRIBUTE18,
354 ATTRIBUTE19,
355 ATTRIBUTE20
356 )
357 select /*+ ordered index(log PA_PJI_PROJ_EVENTS_LOG_N1)
358 use_hash(log)
359 use_hash(map) */
360 p_worker_id,
361 log.ROWID,
362 log.EVENT_TYPE,
363 log.EVENT_ID,
364 log.EVENT_OBJECT,
365 log.OPERATION_TYPE,
366 log.STATUS,
367 log.ATTRIBUTE_CATEGORY,
368 log.ATTRIBUTE1,
369 log.ATTRIBUTE2,
370 log.ATTRIBUTE3,
371 log.ATTRIBUTE4,
372 log.ATTRIBUTE5,
373 log.ATTRIBUTE6,
374 log.ATTRIBUTE7,
375 log.ATTRIBUTE8,
376 log.ATTRIBUTE9,
377 log.ATTRIBUTE10,
378 log.ATTRIBUTE11,
379 log.ATTRIBUTE12,
380 log.ATTRIBUTE13,
381 log.ATTRIBUTE14,
382 log.ATTRIBUTE15,
383 log.ATTRIBUTE16,
384 log.ATTRIBUTE17,
385 log.ATTRIBUTE18,
386 log.ATTRIBUTE19,
387 log.ATTRIBUTE20
388 from
389 PA_PJI_PROJ_EVENTS_LOG log,
390 PJI_PJP_PROJ_BATCH_MAP map
391 where
392 map.WORKER_ID = p_worker_id and
393 log.EVENT_TYPE = 'PRG_CHANGE' and
394 log.EVENT_OBJECT = -1 and
395 log.ATTRIBUTE1 = map.PROJECT_ID;
396
397 delete
398 from PA_PJI_PROJ_EVENTS_LOG
399 where ROWID in (select LOG_ROWID
400 from PJI_PA_PROJ_EVENTS_LOG
401 where WORKER_ID = p_worker_id);
402
403 elsif (l_extraction_type = 'INCREMENTAL') then
404
405 for c in events(p_worker_id) loop
406
407 insert into PJI_PA_PROJ_EVENTS_LOG
408 (
409 WORKER_ID,
410 LOG_ROWID,
411 EVENT_TYPE,
412 EVENT_ID,
413 EVENT_OBJECT,
414 OPERATION_TYPE,
415 STATUS,
416 ATTRIBUTE_CATEGORY,
417 ATTRIBUTE1,
418 ATTRIBUTE2,
419 ATTRIBUTE3,
420 ATTRIBUTE4,
421 ATTRIBUTE5,
422 ATTRIBUTE6,
423 ATTRIBUTE7,
424 ATTRIBUTE8,
425 ATTRIBUTE9,
426 ATTRIBUTE10,
427 ATTRIBUTE11,
428 ATTRIBUTE12,
429 ATTRIBUTE13,
430 ATTRIBUTE14,
431 ATTRIBUTE15,
432 ATTRIBUTE16,
433 ATTRIBUTE17,
434 ATTRIBUTE18,
435 ATTRIBUTE19,
436 ATTRIBUTE20
437 )
438 values
439 (
440 p_worker_id,
441 c.LOG_ROWID,
442 c.EVENT_TYPE,
443 c.EVENT_ID,
444 c.EVENT_OBJECT,
445 c.OPERATION_TYPE,
446 c.STATUS,
447 c.ATTRIBUTE_CATEGORY,
448 c.ATTRIBUTE1,
449 c.ATTRIBUTE2,
450 c.ATTRIBUTE3,
451 c.ATTRIBUTE4,
452 c.ATTRIBUTE5,
453 c.ATTRIBUTE6,
454 c.ATTRIBUTE7,
455 c.ATTRIBUTE8,
456 c.ATTRIBUTE9,
457 c.ATTRIBUTE10,
458 c.ATTRIBUTE11,
459 c.ATTRIBUTE12,
460 c.ATTRIBUTE13,
461 c.ATTRIBUTE14,
462 c.ATTRIBUTE15,
463 c.ATTRIBUTE16,
464 c.ATTRIBUTE17,
465 c.ATTRIBUTE18,
466 c.ATTRIBUTE19,
467 c.ATTRIBUTE20
468 );
469
470 delete
471 from PA_PJI_PROJ_EVENTS_LOG
472 where ROWID = c.LOG_ROWID;
473
474 end loop;
475
476 for c in prg_change_events(p_worker_id) loop
477
478 insert into PJI_PA_PROJ_EVENTS_LOG
479 (
480 WORKER_ID,
481 LOG_ROWID,
482 EVENT_TYPE,
483 EVENT_ID,
484 EVENT_OBJECT,
485 OPERATION_TYPE,
486 STATUS,
487 ATTRIBUTE_CATEGORY,
488 ATTRIBUTE1,
489 ATTRIBUTE2,
490 ATTRIBUTE3,
491 ATTRIBUTE4,
492 ATTRIBUTE5,
493 ATTRIBUTE6,
494 ATTRIBUTE7,
495 ATTRIBUTE8,
496 ATTRIBUTE9,
497 ATTRIBUTE10,
498 ATTRIBUTE11,
499 ATTRIBUTE12,
500 ATTRIBUTE13,
501 ATTRIBUTE14,
502 ATTRIBUTE15,
503 ATTRIBUTE16,
504 ATTRIBUTE17,
505 ATTRIBUTE18,
506 ATTRIBUTE19,
507 ATTRIBUTE20
508 )
509 values
510 (
511 p_worker_id,
512 c.LOG_ROWID,
513 c.EVENT_TYPE,
514 c.EVENT_ID,
515 c.EVENT_OBJECT,
516 c.OPERATION_TYPE,
517 c.STATUS,
518 c.ATTRIBUTE_CATEGORY,
519 c.ATTRIBUTE1,
520 c.ATTRIBUTE2,
521 c.ATTRIBUTE3,
522 c.ATTRIBUTE4,
523 c.ATTRIBUTE5,
524 c.ATTRIBUTE6,
525 c.ATTRIBUTE7,
526 c.ATTRIBUTE8,
527 c.ATTRIBUTE9,
528 c.ATTRIBUTE10,
529 c.ATTRIBUTE11,
530 c.ATTRIBUTE12,
531 c.ATTRIBUTE13,
532 c.ATTRIBUTE14,
533 c.ATTRIBUTE15,
534 c.ATTRIBUTE16,
535 c.ATTRIBUTE17,
536 c.ATTRIBUTE18,
537 c.ATTRIBUTE19,
538 c.ATTRIBUTE20
539 );
540
541 delete
542 from PA_PJI_PROJ_EVENTS_LOG
543 where ROWID = c.LOG_ROWID;
544
545 end loop;
546
547 -- RBS_PRG events override RBS_ASSOC events
548
549 delete
550 from PJI_PA_PROJ_EVENTS_LOG log1
551 where log1.WORKER_ID = p_worker_id and
552 log1.EVENT_TYPE = 'RBS_ASSOC' and
553 exists (select 1
554 from PJI_PA_PROJ_EVENTS_LOG log2
555 where log2.WORKER_ID = p_worker_id and
556 log2.EVENT_TYPE = 'RBS_PRG' and
557 log2.EVENT_OBJECT = log1.EVENT_OBJECT and
558 log2.ATTRIBUTE1 = log1.ATTRIBUTE1);
559
560 -- convert RBS_PRG events into RBS_ASSOC events
561
562 for c in (select distinct
563 EVENT_OBJECT RBS_VERSION_ID,
564 ATTRIBUTE1 PROJECT_ID,
565 ATTRIBUTE2 RBS_HEADER_ID
566 from PJI_PA_PROJ_EVENTS_LOG
567 where WORKER_ID = p_worker_id and
568 EVENT_TYPE = 'RBS_PRG') loop
569
570 insert into PJI_PA_PROJ_EVENTS_LOG
571 (
572 WORKER_ID,
573 LOG_ROWID,
574 EVENT_TYPE,
575 EVENT_ID,
576 EVENT_OBJECT,
577 OPERATION_TYPE,
578 STATUS,
579 ATTRIBUTE_CATEGORY,
580 ATTRIBUTE1,
581 ATTRIBUTE2,
582 ATTRIBUTE3,
583 ATTRIBUTE4,
584 ATTRIBUTE5,
585 ATTRIBUTE6,
586 ATTRIBUTE7,
587 ATTRIBUTE8,
588 ATTRIBUTE9,
589 ATTRIBUTE10,
590 ATTRIBUTE11,
591 ATTRIBUTE12,
592 ATTRIBUTE13,
593 ATTRIBUTE14,
594 ATTRIBUTE15,
595 ATTRIBUTE16,
596 ATTRIBUTE17,
597 ATTRIBUTE18,
598 ATTRIBUTE19,
599 ATTRIBUTE20
600 )
601 select
602 distinct
603 p_worker_id WORKER_ID,
604 null LOG_ROWID,
605 'RBS_ASSOC' EVENT_TYPE,
606 -1 EVENT_ID,
607 c.RBS_VERSION_ID EVENT_OBJECT,
608 'I' OPERATION_TYPE,
609 'X' STATUS,
610 null ATTRIBUTE_CATEGORY,
611 emt.PROJECT_ID ATTRIBUTE1,
612 c.RBS_HEADER_ID ATTRIBUTE2,
613 null ATTRIBUTE3,
614 null ATTRIBUTE4,
615 null ATTRIBUTE5,
616 null ATTRIBUTE6,
617 null ATTRIBUTE7,
618 null ATTRIBUTE8,
619 null ATTRIBUTE9,
620 null ATTRIBUTE10,
621 null ATTRIBUTE11,
622 null ATTRIBUTE12,
623 null ATTRIBUTE13,
624 null ATTRIBUTE14,
625 null ATTRIBUTE15,
626 null ATTRIBUTE16,
627 c.PROJECT_ID ATTRIBUTE17, -- program's PROJECT_ID
628 decode(prg.SUB_EMT_ID,
629 prg.SUB_ROLLUP_ID, 'Y',
630 'N') ATTRIBUTE18, -- PROG_REP_USAGE_FLAG
631 decode(rbs_hdr.PROJECT_ID,
632 null, null,
633 'MARK_AS_PROG_REP') ATTRIBUTE19, -- update header only
634 'CONVERTED_RBS_PRG_EVENT' ATTRIBUTE20 -- flg converted events
635 from
636 PA_XBS_DENORM prg,
637 PA_PROJ_ELEMENTS emt,
638 PJI_PJP_RBS_HEADER rbs_hdr,
639 PJI_PA_PROJ_EVENTS_LOG log
640 where
641 prg.SUP_PROJECT_ID = c.PROJECT_ID and
642 (prg.SUB_EMT_ID = prg.SUB_ROLLUP_ID or
643 prg.SUP_EMT_ID <> prg.SUB_EMT_ID) and
644 emt.PROJ_ELEMENT_ID = prg.SUB_EMT_ID and
645 emt.PROJECT_ID = rbs_hdr.PROJECT_ID (+) and
646 -1 = rbs_hdr.PLAN_VERSION_ID (+) and
647 c.RBS_VERSION_ID = rbs_hdr.RBS_VERSION_ID (+) and
648 (rbs_hdr.PROJECT_ID is null or
649 prg.SUB_EMT_ID = prg.SUB_ROLLUP_ID) and
650 p_worker_id = log.WORKER_ID (+) and
651 'RBS_ASSOC' = log.EVENT_TYPE (+) and
652 c.RBS_VERSION_ID = log.EVENT_OBJECT (+) and
653 emt.PROJECT_ID = log.ATTRIBUTE1 (+) and
654 log.WORKER_ID is null;
655
656 end loop;
657
658 delete
659 from PJI_PA_PROJ_EVENTS_LOG
660 where WORKER_ID = p_worker_id and
661 EVENT_TYPE = 'RBS_PRG';
662
663 elsif (l_extraction_type = 'PARTIAL') then
664
665 null; -- do not process any events during partial refresh
666
667 elsif (l_extraction_type = 'RBS') then
668
669 l_rbs_header_id := PJI_PROCESS_UTIL.GET_PROCESS_PARAMETER
670 (l_process, 'RBS_HEADER_ID');
671
672 if (l_rbs_header_id = -1) then
673 l_rbs_header_id := null;
674 end if;
675
676 --ensure all RBS_ASSOC and RBS_PRG events point to the latest version
677
678 update PA_PJI_PROJ_EVENTS_LOG log
679 set log.EVENT_OBJECT =
680 (
681 select
682 ver1.RBS_VERSION_ID
683 from
684 (
685 select
686 ver.RBS_VERSION_ID
687 from
688 PA_RBS_VERSIONS_B ver
689 where
690 ver.RBS_HEADER_ID = nvl(l_rbs_header_id,
691 ver.RBS_HEADER_ID) and
692 ver.STATUS_CODE = 'FROZEN'
693 order by
694 ver.VERSION_NUMBER desc
695 ) ver1
696 where
697 ROWNUM = 1
698 )
699 where log.EVENT_TYPE in ('RBS_ASSOC', 'RBS_PRG') and
700 log.EVENT_OBJECT in
701 (
702 select
703 ver.RBS_VERSION_ID
704 from
705 PA_RBS_VERSIONS_B ver
706 where
707 ver.RBS_HEADER_ID = nvl(l_rbs_header_id,
708 ver.RBS_HEADER_ID)
709 ) and
710 log.EVENT_OBJECT not in
711 (
712 select
713 ver1.RBS_VERSION_ID
714 from
715 (
716 select
717 ver.RBS_VERSION_ID
718 from
719 PA_RBS_VERSIONS_B ver
720 where
721 ver.RBS_HEADER_ID = nvl(l_rbs_header_id,
722 ver.RBS_HEADER_ID) and
723 ver.STATUS_CODE = 'FROZEN'
724 order by
725 ver.VERSION_NUMBER desc
726 ) ver1
727 where
728 ROWNUM = 1
729 );
730
731 -- get RBS_PUSH events
732
733 for c in rbs_push_events(p_worker_id, l_rbs_header_id) loop
734
735 if (c.ATTRIBUTE2 is not null) then
736
737 insert into PJI_PA_PROJ_EVENTS_LOG
738 (
739 WORKER_ID,
740 LOG_ROWID,
741 EVENT_TYPE,
742 EVENT_ID,
743 EVENT_OBJECT,
744 OPERATION_TYPE,
745 STATUS,
746 ATTRIBUTE_CATEGORY,
747 ATTRIBUTE1,
748 ATTRIBUTE2,
749 ATTRIBUTE3,
750 ATTRIBUTE4,
751 ATTRIBUTE5,
752 ATTRIBUTE6,
753 ATTRIBUTE7,
754 ATTRIBUTE8,
755 ATTRIBUTE9,
756 ATTRIBUTE10,
757 ATTRIBUTE11,
758 ATTRIBUTE12,
759 ATTRIBUTE13,
760 ATTRIBUTE14,
761 ATTRIBUTE15,
762 ATTRIBUTE16,
763 ATTRIBUTE17,
764 ATTRIBUTE18,
765 ATTRIBUTE19,
766 ATTRIBUTE20
767 )
768 values
769 (
770 p_worker_id,
771 c.LOG_ROWID,
772 c.EVENT_TYPE,
773 c.EVENT_ID,
774 c.EVENT_OBJECT,
775 c.OPERATION_TYPE,
776 c.STATUS,
777 c.ATTRIBUTE_CATEGORY,
778 c.ATTRIBUTE1,
779 c.ATTRIBUTE2,
780 c.ATTRIBUTE3,
781 c.ATTRIBUTE4,
782 c.ATTRIBUTE5,
783 c.ATTRIBUTE6,
784 c.ATTRIBUTE7,
785 c.ATTRIBUTE8,
786 c.ATTRIBUTE9,
787 c.ATTRIBUTE10,
788 c.ATTRIBUTE11,
789 c.ATTRIBUTE12,
790 c.ATTRIBUTE13,
791 c.ATTRIBUTE14,
792 c.ATTRIBUTE15,
793 c.ATTRIBUTE16,
794 c.ATTRIBUTE17,
795 c.ATTRIBUTE18,
796 c.ATTRIBUTE19,
797 c.ATTRIBUTE20
798 );
799
800 end if;
801
802 delete
803 from PA_PJI_PROJ_EVENTS_LOG
804 where ROWID = c.LOG_ROWID;
805
806 end loop;
807
808 -- get RBS_DELETE events
809
810 for c in rbs_delete_events(p_worker_id, l_rbs_header_id) loop
811
812 insert into PJI_PA_PROJ_EVENTS_LOG
813 (
814 WORKER_ID,
815 LOG_ROWID,
816 EVENT_TYPE,
817 EVENT_ID,
818 EVENT_OBJECT,
819 OPERATION_TYPE,
820 STATUS,
821 ATTRIBUTE_CATEGORY,
822 ATTRIBUTE1,
823 ATTRIBUTE2,
824 ATTRIBUTE3,
825 ATTRIBUTE4,
826 ATTRIBUTE5,
827 ATTRIBUTE6,
828 ATTRIBUTE7,
829 ATTRIBUTE8,
830 ATTRIBUTE9,
831 ATTRIBUTE10,
832 ATTRIBUTE11,
833 ATTRIBUTE12,
834 ATTRIBUTE13,
835 ATTRIBUTE14,
836 ATTRIBUTE15,
837 ATTRIBUTE16,
838 ATTRIBUTE17,
839 ATTRIBUTE18,
840 ATTRIBUTE19,
841 ATTRIBUTE20
842 )
843 values
844 (
845 p_worker_id,
846 c.LOG_ROWID,
847 c.EVENT_TYPE,
848 c.EVENT_ID,
849 c.EVENT_OBJECT,
850 c.OPERATION_TYPE,
851 c.STATUS,
852 c.ATTRIBUTE_CATEGORY,
853 c.ATTRIBUTE1,
854 c.ATTRIBUTE2,
855 c.ATTRIBUTE3,
856 c.ATTRIBUTE4,
857 c.ATTRIBUTE5,
858 c.ATTRIBUTE6,
859 c.ATTRIBUTE7,
860 c.ATTRIBUTE8,
861 c.ATTRIBUTE9,
862 c.ATTRIBUTE10,
863 c.ATTRIBUTE11,
864 c.ATTRIBUTE12,
865 c.ATTRIBUTE13,
866 c.ATTRIBUTE14,
867 c.ATTRIBUTE15,
868 c.ATTRIBUTE16,
869 c.ATTRIBUTE17,
870 c.ATTRIBUTE18,
871 c.ATTRIBUTE19,
872 c.ATTRIBUTE20
873 );
874
875 delete
876 from PA_PJI_PROJ_EVENTS_LOG
877 where ROWID = c.LOG_ROWID;
878
879 end loop;
880
881 -- normalize chains of 'RBS_PUSH' events
882
883 for c in (select EVENT_ID
884 from PJI_PA_PROJ_EVENTS_LOG
885 where WORKER_ID = p_worker_id and
886 EVENT_TYPE = 'RBS_PUSH'
887 order by EVENT_ID) loop
888
889 select ATTRIBUTE18
890 into l_chain_flag
891 from PJI_PA_PROJ_EVENTS_LOG
892 where WORKER_ID = p_worker_id and
893 EVENT_TYPE = 'RBS_PUSH' and
894 EVENT_ID = c.EVENT_ID;
895
896 if (l_chain_flag is null) then
897
898 update PJI_PA_PROJ_EVENTS_LOG log1
899 set log1.ATTRIBUTE18 = 'PJI$LIST',
900 log1.ATTRIBUTE17 = c.EVENT_ID
901 where log1.WORKER_ID = p_worker_id and
902 log1.EVENT_TYPE = 'RBS_PUSH' and
903 log1.EVENT_ID in
904 (select
905 log1.EVENT_ID
906 from
907 PJI_PA_PROJ_EVENTS_LOG log1
908 start with
909 log1.WORKER_ID = p_worker_id and
910 log1.EVENT_TYPE = 'RBS_PUSH' and
911 log1.EVENT_ID = c.EVENT_ID and
912 log1.ATTRIBUTE18 is null
913 connect by
914 log1.ATTRIBUTE2 = prior log1.EVENT_OBJECT);
915
916 select log1.EVENT_OBJECT
917 into l_last_rbs_link
918 from PJI_PA_PROJ_EVENTS_LOG log1
919 where log1.WORKER_ID = p_worker_id and
920 log1.EVENT_TYPE = 'RBS_PUSH' and
921 log1.ATTRIBUTE17 = c.EVENT_ID and
922 log1.ATTRIBUTE18 = 'PJI$LIST' and
923 log1.EVENT_ID in (select max(log2.EVENT_ID)
924 from PJI_PA_PROJ_EVENTS_LOG log2
925 where log2.WORKER_ID = p_worker_id and
926 log2.EVENT_TYPE = 'RBS_PUSH' and
927 log2.ATTRIBUTE17 = c.EVENT_ID and
928 log2.ATTRIBUTE18 = 'PJI$LIST');
929
930 update PJI_PA_PROJ_EVENTS_LOG
931 set EVENT_OBJECT = l_last_rbs_link
932 where WORKER_ID = p_worker_id and
933 EVENT_TYPE = 'RBS_PUSH' and
934 ATTRIBUTE17 = c.EVENT_ID and
935 ATTRIBUTE18 = 'PJI$LIST';
936
937 end if;
938
939 end loop;
940
941 -- 'RBS_DELETE' event overrides 'RBS_PUSH' event
942
943 insert into PJI_PA_PROJ_EVENTS_LOG
944 (
945 WORKER_ID,
946 LOG_ROWID,
947 EVENT_TYPE,
948 EVENT_ID,
949 EVENT_OBJECT,
950 OPERATION_TYPE,
951 STATUS,
952 ATTRIBUTE_CATEGORY,
953 ATTRIBUTE1,
954 ATTRIBUTE2,
955 ATTRIBUTE3,
956 ATTRIBUTE4,
957 ATTRIBUTE5,
958 ATTRIBUTE6,
959 ATTRIBUTE7,
960 ATTRIBUTE8,
961 ATTRIBUTE9,
962 ATTRIBUTE10,
963 ATTRIBUTE11,
964 ATTRIBUTE12,
965 ATTRIBUTE13,
966 ATTRIBUTE14,
967 ATTRIBUTE15,
968 ATTRIBUTE16,
969 ATTRIBUTE17,
970 ATTRIBUTE18,
971 ATTRIBUTE19,
972 ATTRIBUTE20
973 )
974 select
975 distinct
976 log_del.WORKER_ID,
977 log_del.LOG_ROWID,
978 log_del.EVENT_TYPE,
979 log_del.EVENT_ID,
980 log_push.ATTRIBUTE2 EVENT_OBJECT,
981 log_del.OPERATION_TYPE,
982 log_del.STATUS,
983 log_del.ATTRIBUTE_CATEGORY,
984 log_del.ATTRIBUTE1,
985 log_del.ATTRIBUTE2,
986 log_del.ATTRIBUTE3,
987 log_del.ATTRIBUTE4,
988 log_del.ATTRIBUTE5,
989 log_del.ATTRIBUTE6,
990 log_del.ATTRIBUTE7,
991 log_del.ATTRIBUTE8,
992 log_del.ATTRIBUTE9,
993 log_del.ATTRIBUTE10,
994 log_del.ATTRIBUTE11,
995 log_del.ATTRIBUTE12,
996 log_del.ATTRIBUTE13,
997 log_del.ATTRIBUTE14,
998 log_del.ATTRIBUTE15,
999 log_del.ATTRIBUTE16,
1000 log_del.ATTRIBUTE17,
1001 log_del.ATTRIBUTE18,
1002 log_del.ATTRIBUTE19,
1003 log_del.ATTRIBUTE20
1004 from
1005 PJI_PA_PROJ_EVENTS_LOG log_del,
1006 PJI_PA_PROJ_EVENTS_LOG log_push
1007 where
1008 log_del.WORKER_ID = p_worker_id and
1009 log_del.EVENT_TYPE = 'RBS_DELETE' and
1010 log_push.WORKER_ID = p_worker_id and
1011 log_push.EVENT_TYPE = 'RBS_PUSH' and
1012 log_push.EVENT_OBJECT = log_del.EVENT_OBJECT;
1013
1014 delete
1015 from PJI_PA_PROJ_EVENTS_LOG log1
1016 where log1.WORKER_ID = p_worker_id and
1017 log1.EVENT_TYPE = 'RBS_PUSH' and
1018 log1.EVENT_OBJECT in (select log2.EVENT_OBJECT
1019 from PJI_PA_PROJ_EVENTS_LOG log2
1020 where log2.WORKER_ID = p_worker_id and
1021 log2.EVENT_TYPE = 'RBS_DELETE');
1022
1023 -- add PROJECT_ID to RBS_PUSH events
1024 /* Midified this insert for bug#6450097 */
1025 insert into PJI_PA_PROJ_EVENTS_LOG
1026 (
1027 WORKER_ID,
1028 LOG_ROWID,
1029 EVENT_TYPE,
1030 EVENT_ID,
1031 EVENT_OBJECT,
1032 OPERATION_TYPE,
1033 STATUS,
1034 ATTRIBUTE_CATEGORY,
1035 ATTRIBUTE1,
1036 ATTRIBUTE2,
1037 ATTRIBUTE3,
1038 ATTRIBUTE4,
1039 ATTRIBUTE5,
1040 ATTRIBUTE6,
1041 ATTRIBUTE7,
1042 ATTRIBUTE8,
1043 ATTRIBUTE9,
1044 ATTRIBUTE10,
1045 ATTRIBUTE11,
1046 ATTRIBUTE12,
1047 ATTRIBUTE13,
1048 ATTRIBUTE14,
1049 ATTRIBUTE15,
1050 ATTRIBUTE16,
1051 ATTRIBUTE17,
1052 ATTRIBUTE18,
1053 ATTRIBUTE19,
1054 ATTRIBUTE20
1055 )
1056 select
1057 distinct
1058 log.WORKER_ID,
1059 log.LOG_ROWID,
1060 log.EVENT_TYPE,
1061 log.EVENT_ID,
1062 log.EVENT_OBJECT,
1063 log.OPERATION_TYPE,
1064 log.STATUS,
1065 log.ATTRIBUTE_CATEGORY,
1066 log.ATTRIBUTE1,
1067 log.ATTRIBUTE2,
1068 log.ATTRIBUTE3,
1069 log.ATTRIBUTE4,
1070 log.ATTRIBUTE5,
1071 log.ATTRIBUTE6,
1072 log.ATTRIBUTE7,
1073 log.ATTRIBUTE8,
1074 log.ATTRIBUTE9,
1075 log.ATTRIBUTE10,
1076 log.ATTRIBUTE11,
1077 log.ATTRIBUTE12,
1078 log.ATTRIBUTE13,
1079 log.ATTRIBUTE14,
1080 log.ATTRIBUTE15,
1081 'Y' ATTRIBUTE16,
1082 log.ATTRIBUTE17,
1083 log.ATTRIBUTE18,
1084 rbs_prj.PROJECT_ID ATTRIBUTE19,
1085 log.ATTRIBUTE20
1086 from
1087 PJI_PA_PROJ_EVENTS_LOG log,
1088 PA_RBS_PRJ_ASSIGNMENTS rbs_prj,
1089 PA_RBS_VERSIONS_B rbs
1090 where
1091 log.WORKER_ID = p_worker_id and
1092 log.EVENT_TYPE = 'RBS_PUSH' and
1093 rbs.RBS_VERSION_ID = log.ATTRIBUTE2 and
1094 rbs.rbs_header_id = rbs_prj.rbs_header_id;
1095
1096 delete
1097 from PJI_PA_PROJ_EVENTS_LOG
1098 where WORKER_ID = p_worker_id and
1099 EVENT_TYPE = 'RBS_PUSH' and
1100 ATTRIBUTE16 = 'N';
1101
1102 end if;
1103
1104 PJI_PROCESS_UTIL.REGISTER_STEP_COMPLETION(l_process, 'PJI_PJP_SUM_ROLLUP.CREATE_EVENTS_SNAPSHOT(p_worker_id);');
1105
1106 commit;
1107
1108 end CREATE_EVENTS_SNAPSHOT;
1109
1110
1111 -- -----------------------------------------------------
1112 -- procedure PROCESS_RBS_CHANGES
1113 --
1114 -- History
1115 -- 19-MAR-2004 SVERMETT Created
1116 --
1117 -- Internal PJP Summarization API.
1118 --
1119 -- Called by RBS program
1120 --
1121 -- -----------------------------------------------------
1122 procedure PROCESS_RBS_CHANGES (p_worker_id in number) is
1123
1124 cursor rbs_events (p_worker_id in number) is
1125 select
1126 distinct
1127 ATTRIBUTE20 RBS_HEADER_ID,
1128 ATTRIBUTE2 OLD_RBS_VERSION_ID,
1129 EVENT_OBJECT NEW_RBS_VERSION_ID
1130 from
1131 PJI_PA_PROJ_EVENTS_LOG
1132 where
1133 WORKER_ID = p_worker_id and
1134 EVENT_TYPE = 'RBS_PUSH';
1135
1136 l_process varchar2(30);
1137 l_extraction_type varchar2(30);
1138
1139 l_return_status varchar2(255);
1140 l_msg_count number;
1141 l_msg_data varchar2(2000);
1142
1143 begin
1144
1145 l_process := PJI_PJP_SUM_MAIN.g_process || to_char(p_worker_id);
1146
1147 if (not PJI_PROCESS_UTIL.NEED_TO_RUN_STEP(l_process, 'PJI_PJP_SUM_ROLLUP.PROCESS_RBS_CHANGES(p_worker_id);')) then
1148 return;
1149 end if;
1150
1151 l_extraction_type := PJI_PROCESS_UTIL.GET_PROCESS_PARAMETER(l_process, 'EXTRACTION_TYPE');
1152
1153 if (l_extraction_type = 'RBS') then
1154
1155 for c in rbs_events(p_worker_id) loop
1156
1157 PA_RBS_UTILS.PROCESS_RBS_CHANGES(c.RBS_HEADER_ID,
1158 c.NEW_RBS_VERSION_ID,
1159 c.OLD_RBS_VERSION_ID,
1160 l_return_status,
1161 l_msg_count,
1162 l_msg_data);
1163
1164 end loop;
1165
1166 end if;
1167
1168 PJI_PROCESS_UTIL.REGISTER_STEP_COMPLETION(l_process, 'PJI_PJP_SUM_ROLLUP.PROCESS_RBS_CHANGES(p_worker_id);');
1169
1170 commit;
1171
1172 end PROCESS_RBS_CHANGES;
1173
1174
1175 -- -----------------------------------------------------
1176 -- procedure CREATE_MAPPING_RULES
1177 --
1178 -- History
1179 -- 19-MAR-2004 SVERMETT Created
1180 --
1181 -- Internal PJP Summarization API.
1182 --
1183 -- Called by RBS program
1184 --
1185 -- -----------------------------------------------------
1186 procedure CREATE_MAPPING_RULES (p_worker_id in number) is
1187
1188 cursor required_rbs (p_worker_id in number) is
1189 select
1190 asg.RBS_VERSION_ID
1191 from
1192 PJI_PJP_PROJ_BATCH_MAP map,
1193 PA_RBS_PRJ_ASSIGNMENTS asg
1194 where
1195 map.WORKER_ID = p_worker_id and
1196 asg.PROJECT_ID = map.PROJECT_ID and
1197 asg.REPORTING_USAGE_FLAG = 'Y';
1198
1199 l_process varchar2(30);
1200 l_extraction_type varchar2(30);
1201
1202 l_return_status varchar2(255);
1203 l_msg_count number;
1204 l_msg_data varchar2(2000);
1205
1206 begin
1207
1208 l_process := PJI_PJP_SUM_MAIN.g_process || to_char(p_worker_id);
1209
1210 if (not PJI_PROCESS_UTIL.NEED_TO_RUN_STEP(l_process, 'PJI_PJP_SUM_ROLLUP.CREATE_MAPPING_RULES(p_worker_id);')) then
1211 return;
1212 end if;
1213
1214 l_extraction_type := PJI_PROCESS_UTIL.GET_PROCESS_PARAMETER(l_process, 'EXTRACTION_TYPE');
1215
1216 for c in required_rbs(p_worker_id) loop
1217
1218 begin
1219 PA_RBS_MAPPING.CREATE_MAPPING_RULES(c.RBS_VERSION_ID,
1220 l_return_status,
1221 l_msg_count,
1222 l_msg_data);
1223 exception when others then
1224 PJI_UTILS.WRITE2LOG('CREATE_MAPPING_RULES:' ||
1225 c.RBS_VERSION_ID || ' : ' || SQLERRM);
1226 end;
1227
1228 end loop;
1229
1230 PJI_PROCESS_UTIL.REGISTER_STEP_COMPLETION(l_process, 'PJI_PJP_SUM_ROLLUP.CREATE_MAPPING_RULES(p_worker_id);');
1231
1232 commit;
1233
1234 end CREATE_MAPPING_RULES;
1235
1236
1237 -- -----------------------------------------------------
1238 -- procedure MAP_RBS_HEADERS
1239 --
1240 -- History
1241 -- 19-MAR-2004 SVERMETT Created
1242 --
1243 -- Internal PJP Summarization API.
1244 --
1245 -- Called by RBS program
1246 --
1247 -- -----------------------------------------------------
1248 procedure MAP_RBS_HEADERS (p_worker_id in number) is
1249
1250 l_process varchar2(30);
1251 l_extraction_type varchar2(30);
1252
1253 l_return_status varchar2(255);
1254 l_msg_count number;
1255 l_msg_data varchar2(2000);
1256
1257 begin
1258
1259 l_process := PJI_PJP_SUM_MAIN.g_process || to_char(p_worker_id);
1260
1261 if (not PJI_PROCESS_UTIL.NEED_TO_RUN_STEP(l_process, 'PJI_PJP_SUM_ROLLUP.MAP_RBS_HEADERS(p_worker_id);')) then
1262 return;
1263 end if;
1264
1265 l_extraction_type := PJI_PROCESS_UTIL.GET_PROCESS_PARAMETER(l_process, 'EXTRACTION_TYPE');
1266
1267 begin
1268 PA_RBS_MAPPING.MAP_RBS_ACTUALS(p_worker_id,
1269 l_return_status,
1270 l_msg_count,
1271 l_msg_data);
1272 exception when others then
1273 PJI_UTILS.WRITE2LOG('MAP_RBS_HEADERS:' || SQLERRM);
1274 end;
1275
1276 PJI_PROCESS_UTIL.REGISTER_STEP_COMPLETION(l_process, 'PJI_PJP_SUM_ROLLUP.MAP_RBS_HEADERS(p_worker_id);');
1277
1278 commit;
1279
1280 end MAP_RBS_HEADERS;
1281
1282
1283 -- -----------------------------------------------------
1284 -- procedure UPDATE_XBS_DENORM_FULL
1285 --
1286 -- History
1287 -- 19-MAR-2004 SVERMETT Created
1288 --
1289 -- Internal PJP Summarization API.
1290 --
1291 -- -----------------------------------------------------
1292 procedure UPDATE_XBS_DENORM_FULL (p_worker_id in number) is
1293
1294 l_process varchar2(30);
1295 l_extraction_type varchar2(30);
1296
1297 l_last_update_date date;
1298 l_last_updated_by number;
1299 l_creation_date date;
1300 l_created_by number;
1301 l_last_update_login number;
1302
1303 l_count number;
1304
1305 begin
1306
1307 l_last_update_date := sysdate;
1308 l_last_updated_by := FND_GLOBAL.USER_ID;
1309 l_creation_date := sysdate;
1310 l_created_by := FND_GLOBAL.USER_ID;
1311 l_last_update_login := FND_GLOBAL.LOGIN_ID;
1312
1313 l_process := PJI_PJP_SUM_MAIN.g_process || to_char(p_worker_id);
1314
1315 if (not PJI_PROCESS_UTIL.NEED_TO_RUN_STEP(l_process, 'PJI_PJP_SUM_ROLLUP.UPDATE_XBS_DENORM_FULL(p_worker_id);')) then
1316 return;
1317 end if;
1318
1319 l_extraction_type := PJI_PROCESS_UTIL.GET_PROCESS_PARAMETER(l_process, 'EXTRACTION_TYPE');
1320
1321 l_count := 0;
1322
1323 if (l_extraction_type = 'FULL') then
1324
1325 insert into PJI_XBS_DENORM den_i
1326 (
1327 STRUCT_TYPE,
1328 PRG_GROUP,
1329 STRUCT_VERSION_ID,
1330 SUP_PROJECT_ID,
1331 SUP_ID,
1332 SUP_EMT_ID,
1333 SUBRO_ID,
1334 SUB_ID,
1335 SUB_EMT_ID,
1336 SUP_LEVEL,
1337 SUB_LEVEL,
1338 SUB_ROLLUP_ID,
1339 SUB_LEAF_FLAG,
1340 RELATIONSHIP_TYPE,
1341 LAST_UPDATE_DATE,
1342 LAST_UPDATED_BY,
1343 CREATION_DATE,
1344 CREATED_BY,
1345 LAST_UPDATE_LOGIN
1346 )
1347 select
1348 pa.STRUCT_TYPE,
1349 pa.PRG_GROUP,
1350 pa.STRUCT_VERSION_ID,
1351 pa.SUP_PROJECT_ID,
1352 pa.SUP_ID,
1353 pa.SUP_EMT_ID,
1354 pa.SUBRO_ID,
1355 pa.SUB_ID,
1356 pa.SUB_EMT_ID,
1357 pa.SUP_LEVEL,
1358 pa.SUB_LEVEL,
1359 pa.SUB_ROLLUP_ID,
1360 pa.SUB_LEAF_FLAG,
1361 pa.RELATIONSHIP_TYPE,
1362 l_last_update_date,
1363 l_last_updated_by,
1364 l_creation_date,
1365 l_created_by,
1366 l_last_update_login
1367 from
1368 PJI_PJP_PROJ_BATCH_MAP map,
1369 PA_XBS_DENORM pa
1370 where
1371 map.WORKER_ID = p_worker_id and
1372 pa.SUP_PROJECT_ID = map.PROJECT_ID and
1373 not exists (select /*+ index(pji, PJI_XBS_DENORM_N3) */
1374 1
1375 from PJI_XBS_DENORM pji
1376 where pji.STRUCT_TYPE = 'PRG' and
1377 pji.SUB_EMT_ID = pji.SUB_ROLLUP_ID and
1378 pji.SUP_PROJECT_ID = pa.SUP_PROJECT_ID);
1379
1380 l_count := l_count + sql%rowcount;
1381
1382 elsif (l_extraction_type = 'INCREMENTAL') then
1383
1384 insert into PJI_XBS_DENORM den_i
1385 (
1386 STRUCT_TYPE,
1387 PRG_GROUP,
1388 STRUCT_VERSION_ID,
1389 SUP_PROJECT_ID,
1390 SUP_ID,
1391 SUP_EMT_ID,
1392 SUBRO_ID,
1393 SUB_ID,
1394 SUB_EMT_ID,
1395 SUP_LEVEL,
1396 SUB_LEVEL,
1397 SUB_ROLLUP_ID,
1398 SUB_LEAF_FLAG,
1399 RELATIONSHIP_TYPE,
1400 LAST_UPDATE_DATE,
1401 LAST_UPDATED_BY,
1402 CREATION_DATE,
1403 CREATED_BY,
1404 LAST_UPDATE_LOGIN
1405 )
1406 select /*+ ordered index(pa PA_XBS_DENORM_N3) */
1407 pa.STRUCT_TYPE,
1408 pa.PRG_GROUP,
1409 pa.STRUCT_VERSION_ID,
1410 pa.SUP_PROJECT_ID,
1411 pa.SUP_ID,
1412 pa.SUP_EMT_ID,
1413 pa.SUBRO_ID,
1414 pa.SUB_ID,
1415 pa.SUB_EMT_ID,
1416 pa.SUP_LEVEL,
1417 pa.SUB_LEVEL,
1418 pa.SUB_ROLLUP_ID,
1419 pa.SUB_LEAF_FLAG,
1420 pa.RELATIONSHIP_TYPE,
1421 l_last_update_date,
1422 l_last_updated_by,
1423 l_creation_date,
1424 l_created_by,
1425 l_last_update_login
1426 from
1427 PJI_PJP_PROJ_BATCH_MAP map,
1428 PA_XBS_DENORM pa
1429 where
1430 map.WORKER_ID = p_worker_id and
1431 pa.SUP_PROJECT_ID = map.PROJECT_ID and
1432 pa.STRUCT_TYPE = 'PRG' and
1433 pa.SUB_EMT_ID = pa.SUB_ROLLUP_ID and
1434 not exists (select /*+ index(pji, PJI_XBS_DENORM_N3) */
1435 1
1436 from PJI_XBS_DENORM pji
1437 where pji.STRUCT_TYPE = 'PRG' and
1438 pji.SUB_EMT_ID = pji.SUB_ROLLUP_ID and
1439 pji.SUP_PROJECT_ID = pa.SUP_PROJECT_ID);
1440
1441 end if;
1442
1443 if (l_count > 0) then
1444
1445 delete
1446 from PJI_REP_XBS_DENORM;
1447 -- where PROJECT_ID in (select map.PROJECT_ID
1448 -- from PJI_PJP_PROJ_BATCH_MAP map
1449 -- where map.WORKER_ID = p_worker_id);
1450
1451 end if;
1452
1453 PJI_PROCESS_UTIL.REGISTER_STEP_COMPLETION(l_process, 'PJI_PJP_SUM_ROLLUP.UPDATE_XBS_DENORM_FULL(p_worker_id);');
1454
1455 commit;
1456
1457 end UPDATE_XBS_DENORM_FULL;
1458
1459
1460 -- -----------------------------------------------------
1461 -- procedure LOCK_HEADERS
1462 --
1463 -- History
1464 -- 19-MAR-2004 SVERMETT Created
1465 --
1466 -- Internal PJP Summarization API.
1467 --
1468 -- Called by RBS program
1469 --
1470 -- -----------------------------------------------------
1471 procedure LOCK_HEADERS (p_worker_id in number) is
1472
1473 l_process varchar2(30);
1474 l_extraction_type varchar2(30);
1475
1476 l_lock_mode varchar2(255);
1477 l_return_status varchar2(255);
1478 l_msg_code varchar2(255);
1479
1480 begin
1481
1482 l_process := PJI_PJP_SUM_MAIN.g_process || to_char(p_worker_id);
1483
1484 if (not PJI_PROCESS_UTIL.NEED_TO_RUN_STEP(l_process, 'PJI_PJP_SUM_ROLLUP.LOCK_HEADERS(p_worker_id);')) then
1485 return;
1486 end if;
1487
1488 l_extraction_type := PJI_PROCESS_UTIL.GET_PROCESS_PARAMETER(l_process, 'EXTRACTION_TYPE');
1489
1490 -- PJI_FM_XBS_ACCUM_MAINT.WBS_LOCK_PVT(p_online_flag => 'N',
1491 -- x_lock_mode => l_lock_mode,
1492 -- x_return_status => l_return_status);
1493
1494 -- SELECT DECODE(l_extraction_type, 'PARTIAL', 'PLANTYPE', l_extraction_type)
1495 -- INTO l_extraction_type
1496 -- FROM DUAL ;
1497
1498 Pji_Fm_Plan_Maint_Pvt.OBTAIN_RELEASE_LOCKS (
1499 p_context => l_extraction_type
1500 , p_lock_mode => 'P'
1501 , x_return_status => l_return_status
1502 , x_msg_code => l_msg_code
1503 );
1504
1505 PJI_PROCESS_UTIL.REGISTER_STEP_COMPLETION(l_process, 'PJI_PJP_SUM_ROLLUP.LOCK_HEADERS(p_worker_id);');
1506
1507 commit;
1508
1509 end LOCK_HEADERS;
1510
1511
1512 -- -----------------------------------------------------
1513 -- procedure UPDATE_PROGRAM_WBS
1514 --
1515 -- History
1516 -- 19-MAR-2004 SVERMETT Created
1517 --
1518 -- Internal PJP Summarization API.
1519 --
1520 -- -----------------------------------------------------
1521 procedure UPDATE_PROGRAM_WBS (p_worker_id in number) is
1522
1523 l_process varchar2(30);
1524 l_extraction_type varchar2(30);
1525
1526 l_last_update_date date;
1527 l_last_updated_by number;
1528 l_creation_date date;
1529 l_created_by number;
1530 l_last_update_login number;
1531
1532 begin
1533
1534 l_process := PJI_PJP_SUM_MAIN.g_process || to_char(p_worker_id);
1535
1536 if (not PJI_PROCESS_UTIL.NEED_TO_RUN_STEP(l_process, 'PJI_PJP_SUM_ROLLUP.UPDATE_PROGRAM_WBS(p_worker_id);')) then
1537 return;
1538 end if;
1539
1540 l_extraction_type := PJI_PROCESS_UTIL.GET_PROCESS_PARAMETER(l_process, 'EXTRACTION_TYPE');
1541
1542 l_last_update_date := sysdate;
1543 l_last_updated_by := FND_GLOBAL.USER_ID;
1544 l_creation_date := sysdate;
1545 l_created_by := FND_GLOBAL.USER_ID;
1546 l_last_update_login := FND_GLOBAL.LOGIN_ID;
1547
1548 if (l_extraction_type = 'FULL') then
1549
1550 insert into PJI_PJP_WBS_HEADER
1551 (
1552 PROJECT_ID,
1553 PLAN_VERSION_ID,
1554 WBS_VERSION_ID,
1555 WP_FLAG,
1556 CB_FLAG,
1557 CO_FLAG,
1558 LOCK_FLAG,
1559 PLAN_TYPE_ID,
1560 MIN_TXN_DATE,
1561 MAX_TXN_DATE,
1562 LAST_UPDATE_DATE,
1563 LAST_UPDATED_BY,
1564 CREATION_DATE,
1565 CREATED_BY,
1566 LAST_UPDATE_LOGIN,
1567 PLAN_TYPE_CODE
1568 )
1569 select
1570 PROJECT_ID,
1571 -1,
1572 PA_PROJECT_STRUCTURE_UTILS.GET_FIN_STRUC_VER_ID(PROJECT_ID),
1573 'N',
1574 null,
1575 null,
1576 'P',
1577 null,
1578 to_date('3000/01/01', 'YYYY/MM/DD') MIN_TXN_DATE,
1579 to_date('0001/01/01', 'YYYY/MM/DD') MAX_TXN_DATE,
1580 l_last_update_date,
1581 l_last_updated_by,
1582 l_creation_date,
1583 l_created_by,
1584 l_last_update_login,
1585 'A'
1586 from
1587 (
1588 select
1589 distinct
1590 prj_emt.PROJECT_ID
1591 from
1592 PJI_PJP_PROJ_BATCH_MAP map,
1593 PA_PROJ_ELEMENTS prj_emt
1594 where
1595 map.WORKER_ID = p_worker_id and
1596 prj_emt.OBJECT_TYPE = 'PA_STRUCTURES' and
1597 prj_emt.PROJECT_ID = map.PROJECT_ID
1598 )
1599 order by
1600 PROJECT_ID;
1601
1602 while (SQL%ROWCOUNT > 0) loop
1603
1604 update PJI_PJP_WBS_HEADER wbs_hdr
1605 set wbs_hdr.WBS_VERSION_ID =
1606 (select /*+ index(log PA_PJI_PROJ_EVENTS_LOG_N1) */
1607 distinct log.ATTRIBUTE2
1608 from PA_PJI_PROJ_EVENTS_LOG log
1609 where log.EVENT_TYPE = 'WBS_PUBLISH' and
1610 log.EVENT_OBJECT = wbs_hdr.WBS_VERSION_ID),
1611 wbs_hdr.LAST_UPDATE_DATE = l_last_update_date,
1612 wbs_hdr.LAST_UPDATED_BY = l_last_updated_by,
1613 wbs_hdr.LAST_UPDATE_LOGIN = l_last_update_login
1614 where wbs_hdr.PROJECT_ID in
1615 (select map.PROJECT_ID
1616 from PJI_PJP_PROJ_BATCH_MAP map
1617 where map.WORKER_ID = p_worker_id) and
1618 wbs_hdr.PLAN_VERSION_ID = -1 and
1619 wbs_hdr.WBS_VERSION_ID in
1620 (select log.EVENT_OBJECT
1621 from PA_PJI_PROJ_EVENTS_LOG log
1622 where log.EVENT_TYPE = 'WBS_PUBLISH');
1623
1624 end loop;
1625
1626 else
1627
1628 update PJI_PJP_WBS_HEADER
1629 set WBS_VERSION_ID =
1630 PA_PROJECT_STRUCTURE_UTILS.GET_FIN_STRUC_VER_ID
1631 (PROJECT_ID),
1632 LOCK_FLAG = 'P',
1633 LAST_UPDATE_DATE = l_last_update_date,
1634 LAST_UPDATED_BY = l_last_updated_by,
1635 LAST_UPDATE_LOGIN = l_last_update_login
1636 where PLAN_VERSION_ID = -1 and
1637 PROJECT_ID in (select EVENT_OBJECT
1638 from PJI_PA_PROJ_EVENTS_LOG
1639 where WORKER_ID = p_worker_id and
1640 EVENT_TYPE in ('WBS_CHANGE',
1641 'WBS_PUBLISH'));
1642
1643 insert into PJI_PJP_WBS_HEADER
1644 (
1645 PROJECT_ID,
1646 PLAN_VERSION_ID,
1647 WBS_VERSION_ID,
1648 WP_FLAG,
1649 CB_FLAG,
1650 CO_FLAG,
1651 LOCK_FLAG,
1652 PLAN_TYPE_ID,
1653 MIN_TXN_DATE,
1654 MAX_TXN_DATE,
1655 LAST_UPDATE_DATE,
1656 LAST_UPDATED_BY,
1657 CREATION_DATE,
1658 CREATED_BY,
1659 LAST_UPDATE_LOGIN,
1660 PLAN_TYPE_CODE
1661 )
1662 select
1663 PROJECT_ID,
1664 -1,
1665 PA_PROJECT_STRUCTURE_UTILS.GET_FIN_STRUC_VER_ID(PROJECT_ID),
1666 'N',
1667 null,
1668 null,
1669 'P',
1670 null,
1671 to_date('3000/01/01', 'YYYY/MM/DD') MIN_TXN_DATE,
1672 to_date('0001/01/01', 'YYYY/MM/DD') MAX_TXN_DATE,
1673 l_last_update_date,
1674 l_last_updated_by,
1675 l_creation_date,
1676 l_created_by,
1677 l_last_update_login,
1678 'A'
1679 from
1680 (
1681 select
1682 distinct
1683 prj_emt.PROJECT_ID
1684 from
1685 PJI_PA_PROJ_EVENTS_LOG log,
1686 PA_PROJ_ELEMENTS prj_emt,
1687 PJI_PJP_WBS_HEADER hdr
1688 where
1689 log.WORKER_ID = p_worker_id and
1690 log.EVENT_TYPE in ('WBS_CHANGE', 'WBS_PUBLISH') and
1691 prj_emt.OBJECT_TYPE = 'PA_STRUCTURES' and
1692 prj_emt.PROJECT_ID = log.EVENT_OBJECT and
1693 -1 = hdr.PLAN_VERSION_ID (+) and
1694 prj_emt.PROJECT_ID = hdr.PROJECT_ID (+) and
1695 hdr.PROJECT_ID is null
1696 )
1697 order by
1698 PROJECT_ID;
1699
1700 end if;
1701
1702 PJI_PROCESS_UTIL.REGISTER_STEP_COMPLETION(l_process, 'PJI_PJP_SUM_ROLLUP.UPDATE_PROGRAM_WBS(p_worker_id);');
1703
1704 commit;
1705
1706 end UPDATE_PROGRAM_WBS;
1707
1708
1709 -- -----------------------------------------------------
1710 -- procedure PURGE_EVENT_DATA
1711 --
1712 -- History
1713 -- 19-MAR-2004 SVERMETT Created
1714 --
1715 -- Internal PJP Summarization API.
1716 --
1717 -- Called by RBS program
1718 --
1719 -- -----------------------------------------------------
1720 procedure PURGE_EVENT_DATA (p_worker_id in number) is
1721
1722 l_process varchar2(30);
1723 l_extraction_type varchar2(30);
1724
1725 begin
1726
1727 l_process := PJI_PJP_SUM_MAIN.g_process || to_char(p_worker_id);
1728
1729 if (not PJI_PROCESS_UTIL.NEED_TO_RUN_STEP(l_process, 'PJI_PJP_SUM_ROLLUP.PURGE_EVENT_DATA(p_worker_id);')) then
1730 return;
1731 end if;
1732
1733 l_extraction_type := PJI_PROCESS_UTIL.GET_PROCESS_PARAMETER(l_process, 'EXTRACTION_TYPE');
1734
1735 if (l_extraction_type = 'INCREMENTAL') then
1736
1737 delete
1738 from PJI_FP_XBS_ACCUM_F
1739 where (RBS_AGGR_LEVEL,
1740 WBS_ROLLUP_FLAG,
1741 PRG_ROLLUP_FLAG) in (('L', 'Y', 'N'),
1742 ('R', 'N', 'N'),
1743 ('R', 'Y', 'N')) and
1744 (PROJECT_ID,
1745 PLAN_VERSION_ID,
1746 decode(PLAN_VERSION_ID,
1747 -3, PLAN_TYPE_ID,
1748 -4, PLAN_TYPE_ID,
1749 -1)) in (select
1750 log.ATTRIBUTE1,
1751 decode(log.EVENT_TYPE,
1752 'WBS_CHANGE', log.ATTRIBUTE3,
1753 'WBS_PUBLISH', log.ATTRIBUTE3,
1754 'PLAN_BASELINE', -3,
1755 'PLAN_ORIGINAL', -4),
1756 decode(log.EVENT_TYPE,
1757 'WBS_CHANGE', -1,
1758 'WBS_PUBLISH', -1,
1759 'PLAN_BASELINE', log.ATTRIBUTE2,
1760 'PLAN_ORIGINAL', log.ATTRIBUTE2)
1761 from
1762 PJI_PA_PROJ_EVENTS_LOG log
1763 where
1764 log.WORKER_ID = p_worker_id and
1765 log.EVENT_TYPE in ('WBS_CHANGE',
1766 'WBS_PUBLISH',
1767 'PLAN_BASELINE',
1768 'PLAN_ORIGINAL'));
1769
1770 elsif (l_extraction_type = 'RBS') then
1771
1772 delete
1773 from PJI_PJP_RBS_HEADER
1774 where RBS_VERSION_ID in (select distinct
1775 log.EVENT_OBJECT
1776 from PJI_PA_PROJ_EVENTS_LOG log
1777 where log.WORKER_ID = p_worker_id and
1778 log.EVENT_TYPE = 'RBS_DELETE');
1779
1780 delete
1781 from PJI_ROLLUP_LEVEL_STATUS
1782 where RBS_VERSION_ID in (select distinct
1783 decode(log.EVENT_TYPE,
1784 'RBS_PUSH', log.ATTRIBUTE2,
1785 'RBS_DELETE', log.EVENT_OBJECT)
1786 from PJI_PA_PROJ_EVENTS_LOG log
1787 where log.WORKER_ID = p_worker_id and
1788 log.EVENT_TYPE in ('RBS_PUSH',
1789 'RBS_DELETE'));
1790
1791 delete
1792 from PJI_FP_XBS_ACCUM_F
1793 where RBS_AGGR_LEVEL in ('L', 'R') and
1794 (PROJECT_ID,
1795 PLAN_VERSION_ID,
1796 RBS_VERSION_ID) in (select distinct
1797 rbs_hdr.PROJECT_ID,
1798 rbs_hdr.PLAN_VERSION_ID,
1799 rbs_hdr.RBS_VERSION_ID
1800 from PJI_PA_PROJ_EVENTS_LOG log,
1801 PJI_PJP_RBS_HEADER rbs_hdr
1802 where log.WORKER_ID = p_worker_id and
1803 log.EVENT_TYPE = 'RBS_PUSH' and
1804 rbs_hdr.RBS_VERSION_ID =
1805 log.ATTRIBUTE2
1806 union
1807 select distinct
1808 rbs_hdr.PROJECT_ID,
1809 rbs_hdr.PLAN_VERSION_ID,
1810 rbs_hdr.RBS_VERSION_ID
1811 from PJI_PA_PROJ_EVENTS_LOG log,
1812 PJI_PJP_RBS_HEADER rbs_hdr
1813 where log.WORKER_ID = p_worker_id and
1814 log.EVENT_TYPE = 'RBS_DELETE' and
1815 rbs_hdr.RBS_VERSION_ID =
1816 log.EVENT_OBJECT);
1817
1818 end if;
1819
1820 PJI_PROCESS_UTIL.REGISTER_STEP_COMPLETION(l_process, 'PJI_PJP_SUM_ROLLUP.PURGE_EVENT_DATA(p_worker_id);');
1821
1822 commit;
1823
1824 end PURGE_EVENT_DATA;
1825
1826
1827 -- -----------------------------------------------------
1828 -- procedure UPDATE_PROGRAM_RBS
1829 --
1830 -- History
1831 -- 19-MAR-2004 SVERMETT Created
1832 --
1833 -- Internal PJP Summarization API.
1834 --
1835 -- Called by RBS program
1836 --
1837 -- -----------------------------------------------------
1838 procedure UPDATE_PROGRAM_RBS (p_worker_id in number) is
1839
1840 cursor rbs_prg_full (p_worker_id in number) is
1841 select
1842 distinct
1843 asg.RBS_HEADER_ID,
1844 asg.RBS_VERSION_ID,
1845 den2.SUP_PROJECT_ID PROJECT_ID,
1846 decode(den1.SUB_EMT_ID,
1847 den1.SUB_ROLLUP_ID, 'Y',
1848 'N') PROG_REP_USAGE_FLAG,
1849 'Y' REPORTING_USAGE_FLAG,
1850 'N' FP_USAGE_FLAG
1851 from
1852 PJI_PJP_PROJ_BATCH_MAP map,
1853 PA_RBS_PRJ_ASSIGNMENTS asg,
1854 PA_XBS_DENORM den1,
1855 PA_XBS_DENORM den2
1856 where
1857 map.WORKER_ID = p_worker_id and
1858 asg.PROJECT_ID = map.PROJECT_ID and
1859 asg.PROG_REP_USAGE_FLAG = 'Y' and
1860 asg.REPORTING_USAGE_FLAG = 'Y' and
1861 den1.STRUCT_TYPE = 'PRG' and
1862 den1.STRUCT_VERSION_ID is null and
1863 den1.SUP_PROJECT_ID = asg.PROJECT_ID and
1864 (den1.SUB_EMT_ID = den1.SUB_ROLLUP_ID or
1865 den1.SUP_EMT_ID <> den1.SUB_EMT_ID) and
1866 den2.STRUCT_TYPE = 'PRG' and
1867 den2.STRUCT_VERSION_ID is null and
1868 den2.SUP_EMT_ID = den2.SUB_EMT_ID and
1869 den2.SUP_EMT_ID = den1.SUB_EMT_ID
1870 order by
1871 asg.RBS_HEADER_ID,
1872 asg.RBS_VERSION_ID;
1873
1874 cursor rbs_prg (p_worker_id in number) is
1875 select
1876 distinct
1877 log.ATTRIBUTE2 RBS_HEADER_ID,
1878 log.EVENT_OBJECT RBS_VERSION_ID,
1879 log.ATTRIBUTE1 PROJECT_ID,
1880 log.ATTRIBUTE17 PROGRAM_ID,
1881 log.ATTRIBUTE18 PROG_REP_USAGE_FLAG,
1882 'Y' REPORTING_USAGE_FLAG,
1883 'N' FP_USAGE_FLAG,
1884 log.ATTRIBUTE19 UPDATE_HEADER_ONLY_FLAG
1885 from
1886 PJI_PA_PROJ_EVENTS_LOG log
1887 where
1888 log.WORKER_ID = p_worker_id and
1889 log.EVENT_TYPE = 'RBS_ASSOC' and
1890 log.ATTRIBUTE20 = 'CONVERTED_RBS_PRG_EVENT'
1891 order by
1892 log.ATTRIBUTE17,
1893 log.ATTRIBUTE2,
1894 log.EVENT_OBJECT;
1895
1896 cursor rbs_assoc (p_worker_id in number) is
1897 select
1898 distinct
1899 log.ATTRIBUTE2 RBS_HEADER_ID,
1900 log.EVENT_OBJECT RBS_VERSION_ID,
1901 log.ATTRIBUTE1 PROJECT_ID,
1902 'N' PROG_REP_USAGE_FLAG,
1903 'Y' REPORTING_USAGE_FLAG,
1904 'N' FP_USAGE_FLAG
1905 from
1906 PJI_PA_PROJ_EVENTS_LOG log
1907 where
1908 log.WORKER_ID = p_worker_id and
1909 log.EVENT_TYPE = 'RBS_ASSOC' and
1910 log.ATTRIBUTE20 is null
1911 order by
1912 log.ATTRIBUTE2,
1913 log.EVENT_OBJECT;
1914
1915 cursor rbs_push (p_worker_id in number) is
1916 select
1917 distinct
1918 log.ATTRIBUTE20 RBS_HEADER_ID,
1919 log.EVENT_OBJECT RBS_VERSION_ID,
1920 log.ATTRIBUTE2 OLD_RBS_VERSION_ID,
1921 log.ATTRIBUTE19 PROJECT_ID,
1922 'N' PROG_REP_USAGE_FLAG,
1923 'Y' REPORTING_USAGE_FLAG,
1924 'N' FP_USAGE_FLAG
1925 from
1926 PJI_PA_PROJ_EVENTS_LOG log
1927 where
1928 log.WORKER_ID = p_worker_id and
1929 log.EVENT_TYPE = 'RBS_PUSH'
1930 order by
1931 log.ATTRIBUTE20,
1932 log.EVENT_OBJECT;
1933
1934 l_process varchar2(30);
1935 l_extraction_type varchar2(30);
1936
1937 l_program_id number;
1938 l_rbs_header_id number;
1939 l_rbs_version_id number;
1940 l_prj_index number;
1941 l_project_id_tbl system.pa_num_tbl_type;
1942 l_count number;
1943 l_rowid rowid;
1944 l_return_status varchar2(255);
1945 l_error_code varchar2(255);
1946
1947 l_last_update_date date;
1948 l_last_updated_by number;
1949 l_creation_date date;
1950 l_created_by number;
1951 l_last_update_login number;
1952
1953 begin
1954
1955 l_process := PJI_PJP_SUM_MAIN.g_process || to_char(p_worker_id);
1956
1957 if (not PJI_PROCESS_UTIL.NEED_TO_RUN_STEP(l_process, 'PJI_PJP_SUM_ROLLUP.UPDATE_PROGRAM_RBS(p_worker_id);')) then
1958 return;
1959 end if;
1960
1961 l_extraction_type := PJI_PROCESS_UTIL.GET_PROCESS_PARAMETER(l_process, 'EXTRACTION_TYPE');
1962
1963 l_last_update_date := sysdate;
1964 l_last_updated_by := FND_GLOBAL.USER_ID;
1965 l_creation_date := sysdate;
1966 l_created_by := FND_GLOBAL.USER_ID;
1967 l_last_update_login := FND_GLOBAL.LOGIN_ID;
1968
1969 if (l_extraction_type = 'FULL') then
1970
1971 l_rbs_header_id := -1;
1972 l_rbs_version_id := -1;
1973 l_prj_index := 1;
1974 l_project_id_tbl := system.pa_num_tbl_type();
1975 l_project_id_tbl.delete;
1976
1977 for c in rbs_prg_full(p_worker_id) loop
1978
1979 l_project_id_tbl.extend(1);
1980 l_project_id_tbl(l_prj_index) := c.PROJECT_ID;
1981 l_prj_index := l_prj_index + 1;
1982
1983 if (l_rbs_header_id = -1 and l_rbs_version_id = -1) then
1984
1985 l_rbs_header_id := c.RBS_HEADER_ID;
1986 l_rbs_version_id := c.RBS_VERSION_ID;
1987
1988 elsif (c.RBS_HEADER_ID <> l_rbs_header_id or
1989 c.RBS_VERSION_ID <> l_rbs_version_id) then
1990
1991 PA_RBS_ASGMT_PVT.ASSOCIATE_RBS_TO_PROGRAM(l_rbs_header_id,
1992 l_rbs_version_id,
1993 l_project_id_tbl,
1994 l_return_status);
1995
1996 l_rbs_header_id := c.RBS_HEADER_ID;
1997 l_rbs_version_id := c.RBS_VERSION_ID;
1998 l_prj_index := 1;
1999 l_project_id_tbl.delete;
2000
2001 end if;
2002
2003 insert into PJI_PJP_RBS_HEADER
2004 (
2005 PROJECT_ID,
2006 PLAN_VERSION_ID,
2007 RBS_VERSION_ID,
2008 REPORTING_USAGE_FLAG,
2009 PROG_REP_USAGE_FLAG,
2010 PLAN_USAGE_FLAG,
2011 LAST_UPDATE_DATE,
2012 LAST_UPDATED_BY,
2013 CREATION_DATE,
2014 CREATED_BY,
2015 LAST_UPDATE_LOGIN,
2016 PLAN_TYPE_CODE
2017 )
2018 select
2019 c.PROJECT_ID,
2020 -1,
2021 c.RBS_VERSION_ID,
2022 c.REPORTING_USAGE_FLAG,
2023 c.PROG_REP_USAGE_FLAG,
2024 c.FP_USAGE_FLAG,
2025 l_last_update_date,
2026 l_last_updated_by,
2027 l_creation_date,
2028 l_created_by,
2029 l_last_update_login,
2030 'A'
2031 from
2032 dual
2033 where
2034 not exists
2035 (
2036 select
2037 1
2038 from
2039 PJI_PJP_RBS_HEADER rbs_hdr
2040 where
2041 rbs_hdr.PROJECT_ID = c.PROJECT_ID and
2042 rbs_hdr.PLAN_VERSION_ID = -1 and
2043 rbs_hdr.RBS_VERSION_ID = c.RBS_VERSION_ID
2044 );
2045
2046 end loop;
2047
2048 if (l_rbs_header_id <> -1 and l_rbs_version_id <> -1) then
2049
2050 PA_RBS_ASGMT_PVT.ASSOCIATE_RBS_TO_PROGRAM(l_rbs_header_id,
2051 l_rbs_version_id,
2052 l_project_id_tbl,
2053 l_return_status);
2054
2055 end if;
2056
2057 insert into PJI_PJP_RBS_HEADER
2058 (
2059 PROJECT_ID,
2060 PLAN_VERSION_ID,
2061 RBS_VERSION_ID,
2062 REPORTING_USAGE_FLAG,
2063 PROG_REP_USAGE_FLAG,
2064 PLAN_USAGE_FLAG,
2065 LAST_UPDATE_DATE,
2066 LAST_UPDATED_BY,
2067 CREATION_DATE,
2068 CREATED_BY,
2069 LAST_UPDATE_LOGIN,
2070 PLAN_TYPE_CODE
2071 )
2072 select
2073 distinct
2074 asg.PROJECT_ID,
2075 -1,
2076 asg.RBS_VERSION_ID,
2077 asg.REPORTING_USAGE_FLAG,
2078 asg.PROG_REP_USAGE_FLAG,
2079 asg.FP_USAGE_FLAG,
2080 l_last_update_date,
2081 l_last_updated_by,
2082 l_creation_date,
2083 l_created_by,
2084 l_last_update_login,
2085 'A'
2086 from
2087 PJI_PJP_PROJ_BATCH_MAP map,
2088 PA_RBS_PRJ_ASSIGNMENTS asg,
2089 PJI_PJP_RBS_HEADER rbs_hdr
2090 where
2091 map.WORKER_ID = p_worker_id and
2092 asg.PROJECT_ID = map.PROJECT_ID and
2093 asg.REPORTING_USAGE_FLAG = 'Y' and
2094 asg.PROJECT_ID = rbs_hdr.PROJECT_ID (+) and
2095 -1 = rbs_hdr.PLAN_VERSION_ID (+) and
2096 asg.RBS_VERSION_ID = rbs_hdr.RBS_VERSION_ID (+) and
2097 rbs_hdr.PROJECT_ID is null;
2098
2099 insert into PJI_PJP_RBS_HEADER
2100 (
2101 PROJECT_ID,
2102 PLAN_VERSION_ID,
2103 RBS_VERSION_ID,
2104 REPORTING_USAGE_FLAG,
2105 PROG_REP_USAGE_FLAG,
2106 PLAN_USAGE_FLAG,
2107 LAST_UPDATE_DATE,
2108 LAST_UPDATED_BY,
2109 CREATION_DATE,
2110 CREATED_BY,
2111 LAST_UPDATE_LOGIN,
2112 PLAN_TYPE_CODE
2113 )
2114 select
2115 map.PROJECT_ID,
2116 -1,
2117 -1,
2118 'N',
2119 'N',
2120 'N',
2121 l_last_update_date,
2122 l_last_updated_by,
2123 l_creation_date,
2124 l_created_by,
2125 l_last_update_login,
2126 'A'
2127 from
2128 PJI_PJP_PROJ_BATCH_MAP map
2129 where
2130 map.WORKER_ID = p_worker_id;
2131
2132 elsif (l_extraction_type = 'INCREMENTAL' or
2133 l_extraction_type = 'PARTIAL') then
2134
2135 -- RBS_PRG
2136
2137 l_program_id := -1;
2138 l_rbs_header_id := -1;
2139 l_rbs_version_id := -1;
2140 l_prj_index := 1;
2141 l_project_id_tbl := system.pa_num_tbl_type();
2142 l_project_id_tbl.delete;
2143
2144 for c in rbs_prg(p_worker_id) loop
2145
2146 if (c.UPDATE_HEADER_ONLY_FLAG is null) then
2147
2148 l_project_id_tbl.extend(1);
2149 l_project_id_tbl(l_prj_index) := c.PROJECT_ID;
2150 l_prj_index := l_prj_index + 1;
2151
2152 if (l_rbs_header_id = -1 and l_rbs_version_id = -1) then
2153
2154 l_program_id := c.PROGRAM_ID;
2155 l_rbs_header_id := c.RBS_HEADER_ID;
2156 l_rbs_version_id := c.RBS_VERSION_ID;
2157
2158 elsif (c.PROGRAM_ID <> l_program_id or
2159 c.RBS_HEADER_ID <> l_rbs_header_id or
2160 c.RBS_VERSION_ID <> l_rbs_version_id) then
2161
2162 PA_RBS_ASGMT_PVT.ASSOCIATE_RBS_TO_PROGRAM(l_rbs_header_id,
2163 l_rbs_version_id,
2164 l_project_id_tbl,
2165 l_return_status);
2166
2167 l_program_id := c.PROGRAM_ID;
2168 l_rbs_header_id := c.RBS_HEADER_ID;
2169 l_rbs_version_id := c.RBS_VERSION_ID;
2170 l_prj_index := 1;
2171 l_project_id_tbl.delete;
2172
2173 end if;
2174
2175 end if;
2176
2177 update PJI_PJP_RBS_HEADER
2178 set RBS_VERSION_ID = c.RBS_VERSION_ID,
2179 REPORTING_USAGE_FLAG = c.REPORTING_USAGE_FLAG,
2180 PROG_REP_USAGE_FLAG = c.PROG_REP_USAGE_FLAG,
2181 LAST_UPDATE_DATE = l_last_update_date,
2182 LAST_UPDATED_BY = l_last_updated_by,
2183 LAST_UPDATE_LOGIN = l_last_update_login
2184 where PROJECT_ID = c.PROJECT_ID and
2185 RBS_VERSION_ID = c.RBS_VERSION_ID and
2186 PLAN_VERSION_ID = -1 and
2187 c.UPDATE_HEADER_ONLY_FLAG = 'MARK_AS_PROG_REP';
2188
2189 if (sql%rowcount = 0) then
2190
2191 insert into PJI_PJP_RBS_HEADER
2192 (
2193 PROJECT_ID,
2194 PLAN_VERSION_ID,
2195 RBS_VERSION_ID,
2196 REPORTING_USAGE_FLAG,
2197 PROG_REP_USAGE_FLAG,
2198 PLAN_USAGE_FLAG,
2199 LAST_UPDATE_DATE,
2200 LAST_UPDATED_BY,
2201 CREATION_DATE,
2202 CREATED_BY,
2203 LAST_UPDATE_LOGIN,
2204 PLAN_TYPE_CODE
2205 )
2206 values
2207 (
2208 c.PROJECT_ID,
2209 -1,
2210 c.RBS_VERSION_ID,
2211 c.REPORTING_USAGE_FLAG,
2212 c.PROG_REP_USAGE_FLAG,
2213 c.FP_USAGE_FLAG,
2214 l_last_update_date,
2215 l_last_updated_by,
2216 l_creation_date,
2217 l_created_by,
2218 l_last_update_login,
2219 'A'
2220 );
2221
2222 insert into PJI_PA_PROJ_EVENTS_LOG
2223 (
2224 WORKER_ID,
2225 EVENT_TYPE,
2226 EVENT_ID,
2227 EVENT_OBJECT,
2228 OPERATION_TYPE,
2229 STATUS
2230 )
2231 select
2232 p_worker_id,
2233 'PJI_RBS_CHANGE',
2234 PA_PJI_PROJ_EVENTS_LOG_S.NEXTVAL,
2235 c.RBS_VERSION_ID,
2236 'I',
2237 'X'
2238 from
2239 DUAL
2240 where
2241 not exists (select 1
2242 from PA_RBS_DENORM rbs
2243 where rbs.STRUCT_VERSION_ID = c.RBS_VERSION_ID);
2244
2245 end if;
2246
2247 end loop;
2248
2249 if (l_rbs_header_id <> -1 and l_rbs_version_id <> -1) then
2250
2251 PA_RBS_ASGMT_PVT.ASSOCIATE_RBS_TO_PROGRAM(l_rbs_header_id,
2252 l_rbs_version_id,
2253 l_project_id_tbl,
2254 l_return_status);
2255
2256 end if;
2257
2258 delete
2259 from PJI_PA_PROJ_EVENTS_LOG
2260 where WORKER_ID = p_worker_id and
2261 EVENT_TYPE = 'RBS_ASSOC' and
2262 ATTRIBUTE19 = 'MARK_AS_PROG_REP';
2263
2264 -- RBS_ASSOC
2265
2266 l_rbs_header_id := -1;
2267 l_rbs_version_id := -1;
2268 l_prj_index := 1;
2269 l_project_id_tbl := system.pa_num_tbl_type();
2270 l_project_id_tbl.delete;
2271
2272 for c in rbs_assoc(p_worker_id) loop
2273
2274 l_project_id_tbl.extend(1);
2275 l_project_id_tbl(l_prj_index) := c.PROJECT_ID;
2276 l_prj_index := l_prj_index + 1;
2277
2278 if (l_rbs_header_id = -1 and l_rbs_version_id = -1) then
2279
2280 l_rbs_header_id := c.RBS_HEADER_ID;
2281 l_rbs_version_id := c.RBS_VERSION_ID;
2282
2283 elsif (c.RBS_HEADER_ID <> l_rbs_header_id or
2284 c.RBS_VERSION_ID <> l_rbs_version_id) then
2285
2286 PA_RBS_ASGMT_PVT.ASSIGN_NEW_VERSION(l_rbs_version_id,
2287 l_project_id_tbl,
2288 l_return_status);
2289
2290 l_rbs_header_id := c.RBS_HEADER_ID;
2291 l_rbs_version_id := c.RBS_VERSION_ID;
2292 l_prj_index := 1;
2293 l_project_id_tbl.delete;
2294
2295 end if;
2296
2297 update PJI_PJP_RBS_HEADER
2298 set RBS_VERSION_ID = c.RBS_VERSION_ID,
2299 LAST_UPDATE_DATE = l_last_update_date,
2300 LAST_UPDATED_BY = l_last_updated_by,
2301 LAST_UPDATE_LOGIN = l_last_update_login
2302 where PROJECT_ID = c.PROJECT_ID and
2303 RBS_VERSION_ID = c.RBS_VERSION_ID and
2304 PLAN_VERSION_ID = -1;
2305
2306 if (sql%rowcount = 0) then
2307
2308 insert into PJI_PJP_RBS_HEADER
2309 (
2310 PROJECT_ID,
2311 PLAN_VERSION_ID,
2312 RBS_VERSION_ID,
2313 REPORTING_USAGE_FLAG,
2314 PROG_REP_USAGE_FLAG,
2315 PLAN_USAGE_FLAG,
2316 LAST_UPDATE_DATE,
2317 LAST_UPDATED_BY,
2318 CREATION_DATE,
2319 CREATED_BY,
2320 LAST_UPDATE_LOGIN,
2321 PLAN_TYPE_CODE
2322 )
2323 values
2324 (
2325 c.PROJECT_ID,
2326 -1,
2327 c.RBS_VERSION_ID,
2328 c.REPORTING_USAGE_FLAG,
2329 c.PROG_REP_USAGE_FLAG,
2330 c.FP_USAGE_FLAG,
2331 l_last_update_date,
2332 l_last_updated_by,
2333 l_creation_date,
2334 l_created_by,
2335 l_last_update_login,
2336 'A'
2337 );
2338
2339 insert into PJI_PA_PROJ_EVENTS_LOG
2340 (
2341 WORKER_ID,
2342 EVENT_TYPE,
2343 EVENT_ID,
2344 EVENT_OBJECT,
2345 OPERATION_TYPE,
2346 STATUS
2347 )
2348 select
2349 p_worker_id,
2350 'PJI_RBS_CHANGE',
2351 PA_PJI_PROJ_EVENTS_LOG_S.NEXTVAL,
2352 c.RBS_VERSION_ID,
2353 'I',
2354 'X'
2355 from
2356 DUAL
2357 where
2358 not exists (select 1
2359 from PA_RBS_DENORM rbs
2360 where rbs.STRUCT_VERSION_ID = c.RBS_VERSION_ID);
2361
2362 end if;
2363
2364 end loop;
2365
2366 if (l_rbs_header_id <> -1 and l_rbs_version_id <> -1) then
2367
2368 PA_RBS_ASGMT_PVT.ASSIGN_NEW_VERSION(l_rbs_version_id,
2369 l_project_id_tbl,
2370 l_return_status);
2371
2372 end if;
2373
2374 elsif (l_extraction_type = 'RBS') then
2375
2376 l_rbs_header_id := -1;
2377 l_rbs_version_id := -1;
2378 l_prj_index := 1;
2379 l_project_id_tbl := system.pa_num_tbl_type();
2380 l_project_id_tbl.delete;
2381
2382 for c in rbs_push(p_worker_id) loop
2383
2384 l_project_id_tbl.extend(1);
2385 l_project_id_tbl(l_prj_index) := c.PROJECT_ID;
2386 l_prj_index := l_prj_index + 1;
2387
2388 if (l_rbs_header_id = -1 and l_rbs_version_id = -1) then
2389
2390 l_rbs_header_id := c.RBS_HEADER_ID;
2391 l_rbs_version_id := c.RBS_VERSION_ID;
2392
2393 elsif (c.RBS_HEADER_ID <> l_rbs_header_id or
2394 c.RBS_VERSION_ID <> l_rbs_version_id) then
2395
2396 PA_RBS_ASGMT_PVT.ASSIGN_NEW_VERSION(l_rbs_version_id,
2397 l_project_id_tbl,
2398 l_return_status);
2399
2400 l_rbs_header_id := c.RBS_HEADER_ID;
2401 l_rbs_version_id := c.RBS_VERSION_ID;
2402 l_prj_index := 1;
2403 l_project_id_tbl.delete;
2404
2405 end if;
2406
2407 update PJI_PJP_RBS_HEADER
2408 set RBS_VERSION_ID = c.RBS_VERSION_ID,
2409 LAST_UPDATE_DATE = l_last_update_date,
2410 LAST_UPDATED_BY = l_last_updated_by,
2411 LAST_UPDATE_LOGIN = l_last_update_login
2412 where PROJECT_ID = c.PROJECT_ID and
2413 RBS_VERSION_ID = c.OLD_RBS_VERSION_ID and
2414 PLAN_VERSION_ID = -1;
2415
2416 insert into PJI_PA_PROJ_EVENTS_LOG
2417 (
2418 WORKER_ID,
2419 EVENT_TYPE,
2420 EVENT_ID,
2421 EVENT_OBJECT,
2422 OPERATION_TYPE,
2423 STATUS
2424 )
2425 select
2426 p_worker_id,
2427 'PJI_RBS_CHANGE',
2428 PA_PJI_PROJ_EVENTS_LOG_S.NEXTVAL,
2429 c.RBS_VERSION_ID,
2430 'I',
2431 'X'
2432 from
2433 DUAL
2434 where
2435 not exists (select 1
2436 from PA_RBS_DENORM rbs
2437 where rbs.STRUCT_VERSION_ID = c.RBS_VERSION_ID);
2438
2439 end loop;
2440
2441 if (l_rbs_header_id <> -1 and l_rbs_version_id <> -1) then
2442
2443 PA_RBS_ASGMT_PVT.ASSIGN_NEW_VERSION(l_rbs_version_id,
2444 l_project_id_tbl,
2445 l_return_status);
2446
2447 end if;
2448
2449 end if;
2450
2451 PJI_PROCESS_UTIL.REGISTER_STEP_COMPLETION(l_process, 'PJI_PJP_SUM_ROLLUP.UPDATE_PROGRAM_RBS(p_worker_id);');
2452
2453 commit;
2454
2455 end UPDATE_PROGRAM_RBS;
2456
2457
2458 -- -----------------------------------------------------
2459 -- procedure SET_ONLINE_CONTEXT
2460 --
2461 -- History
2462 -- 19-MAR-2004 SVERMETT Created
2463 --
2464 -- This API will be called during online processing.
2465 --
2466 -- -----------------------------------------------------
2467 procedure SET_ONLINE_CONTEXT (p_event_id in number,
2468 p_project_id in number,
2469 p_plan_type_id in number,
2470 p_old_baselined_version in number,
2471 p_new_baselined_version in number,
2472 p_old_original_version in number,
2473 p_new_original_version in number,
2474 p_old_struct_version in number,
2475 p_new_struct_version in number,
2476 p_rbs_version in number default null) is
2477
2478 begin
2479
2480 g_event_id := p_event_id;
2481 g_project_id := p_project_id;
2482 g_plan_type_id := p_plan_type_id;
2483 g_old_baselined_version := p_old_baselined_version;
2484 g_new_baselined_version := p_new_baselined_version;
2485 g_old_original_version := p_old_original_version;
2486 g_new_original_version := p_new_original_version;
2487 g_old_struct_version := p_old_struct_version;
2488 g_new_struct_version := p_new_struct_version;
2489 g_rbs_version := p_rbs_version;
2490
2491 end SET_ONLINE_CONTEXT;
2492
2493
2494 -- -----------------------------------------------------
2495 -- procedure POPULATE_XBS_DENORM_DELTA
2496 --
2497 -- History
2498 -- 19-MAR-2004 SVERMETT Created
2499 --
2500 -- This API will be called for both online and bulk processing.
2501 --
2502 -- -----------------------------------------------------
2503 procedure POPULATE_XBS_DENORM_DELTA (p_worker_id in number default null) is
2504
2505 l_process varchar2(30);
2506 l_extraction_type varchar2(30);
2507
2508 l_program_id number;
2509 l_rbs_header_id number;
2510 l_rbs_version_id number;
2511 l_prj_index number;
2512 l_project_id_tbl system.pa_num_tbl_type;
2513 l_count number;
2514 l_rowid rowid;
2515 l_return_status varchar2(255);
2516 l_error_code varchar2(255);
2517
2518 l_last_update_date date;
2519 l_last_updated_by number;
2520 l_creation_date date;
2521 l_created_by number;
2522 l_last_update_login number;
2523
2524 begin
2525
2526 if (p_worker_id is not null) then
2527
2528 l_process := PJI_PJP_SUM_MAIN.g_process || to_char(p_worker_id);
2529
2530 if (not PJI_PROCESS_UTIL.NEED_TO_RUN_STEP(l_process, 'PJI_PJP_SUM_ROLLUP.POPULATE_XBS_DENORM_DELTA(p_worker_id);')) then
2531 return;
2532 end if;
2533
2534 l_last_update_date := sysdate;
2535 l_last_updated_by := FND_GLOBAL.USER_ID;
2536 l_creation_date := sysdate;
2537 l_created_by := FND_GLOBAL.USER_ID;
2538 l_last_update_login := FND_GLOBAL.LOGIN_ID;
2539
2540 l_extraction_type := PJI_PROCESS_UTIL.GET_PROCESS_PARAMETER(l_process, 'EXTRACTION_TYPE');
2541
2542 if (l_extraction_type = 'INCREMENTAL') then
2543
2544 insert into PJI_XBS_DENORM_DELTA delta_i
2545 (
2546 WORKER_ID,
2547 EVENT_ID,
2548 STRUCT_TYPE,
2549 PRG_GROUP,
2550 STRUCT_VERSION_ID,
2551 SUP_PROJECT_ID,
2552 SUP_ID,
2553 SUP_EMT_ID,
2554 SUBRO_ID,
2555 SUB_ID,
2556 SUB_EMT_ID,
2557 SUP_LEVEL,
2558 SUB_LEVEL,
2559 SUB_ROLLUP_ID,
2560 SUB_LEAF_FLAG,
2561 RELATIONSHIP_TYPE,
2562 SIGN
2563 )
2564 select
2565 p_worker_id,
2566 EVENT_ID,
2567 STRUCT_TYPE,
2568 PRG_GROUP,
2569 STRUCT_VERSION_ID,
2570 SUP_PROJECT_ID,
2571 SUP_ID,
2572 SUP_EMT_ID,
2573 SUBRO_ID,
2574 SUB_ID,
2575 SUB_EMT_ID,
2576 decode(sum(SUP_LEVEL_NEW), 0, sum(SUP_LEVEL_OLD),
2577 sum(SUP_LEVEL_NEW)) SUP_LEVEL,
2578 decode(sum(SUB_LEVEL_NEW), 0, sum(SUB_LEVEL_OLD),
2579 sum(SUB_LEVEL_NEW)) SUB_LEVEL,
2580 SUB_ROLLUP_ID,
2581 SUB_LEAF_FLAG,
2582 RELATIONSHIP_TYPE,
2583 sum(SIGN) SIGN
2584 from
2585 (
2586 select
2587 distinct
2588 log.EVENT_ID,
2589 wbs.STRUCT_TYPE,
2590 -1 PRG_GROUP,
2591 wbs.STRUCT_VERSION_ID,
2592 wbs.SUP_PROJECT_ID,
2593 -1 SUP_ID,
2594 wbs.SUP_EMT_ID,
2595 -1 SUBRO_ID,
2596 -1 SUB_ID,
2597 wbs.SUB_EMT_ID,
2598 wbs.SUP_LEVEL SUP_LEVEL_NEW,
2599 wbs.SUB_LEVEL SUB_LEVEL_NEW,
2600 0 SUP_LEVEL_OLD,
2601 0 SUB_LEVEL_OLD,
2602 wbs.SUB_ROLLUP_ID,
2603 'X' SUB_LEAF_FLAG,
2604 'X' RELATIONSHIP_TYPE,
2605 +1 SIGN
2606 from
2607 PA_XBS_DENORM wbs,
2608 PJI_PA_PROJ_EVENTS_LOG log
2609 where
2610 log.WORKER_ID = p_worker_id and
2611 log.EVENT_TYPE in ('WBS_CHANGE', 'WBS_PUBLISH') and
2612 wbs.STRUCT_TYPE = 'WBS' and
2613 wbs.SUP_PROJECT_ID = log.ATTRIBUTE1 and
2614 wbs.STRUCT_VERSION_ID = log.EVENT_OBJECT
2615 union all
2616 select
2617 distinct
2618 log.EVENT_ID,
2619 wbs.STRUCT_TYPE,
2620 -1 PRG_GROUP,
2621 wbs.STRUCT_VERSION_ID,
2622 wbs.SUP_PROJECT_ID,
2623 -1 SUP_ID,
2624 wbs.SUP_EMT_ID,
2625 -1 SUBRO_ID,
2626 -1 SUB_ID,
2627 wbs.SUB_EMT_ID,
2628 0 SUP_LEVEL_NEW,
2629 0 SUB_LEVEL_NEW,
2630 wbs.SUP_LEVEL SUP_LEVEL_OLD,
2631 wbs.SUB_LEVEL SUB_LEVEL_OLD,
2632 wbs.SUB_ROLLUP_ID,
2633 'X' SUB_LEAF_FLAG,
2634 'X' RELATIONSHIP_TYPE,
2635 -1 SIGN
2636 from
2637 PJI_XBS_DENORM wbs,
2638 PJI_PA_PROJ_EVENTS_LOG log
2639 where
2640 log.WORKER_ID = p_worker_id and
2641 log.EVENT_TYPE in ('WBS_CHANGE', 'WBS_PUBLISH') and
2642 wbs.STRUCT_TYPE = 'WBS' and
2643 wbs.SUP_PROJECT_ID = log.ATTRIBUTE1 and
2644 wbs.STRUCT_VERSION_ID = log.ATTRIBUTE2
2645 union all
2646 select
2647 distinct
2648 -1 EVENT_ID,
2649 prg.STRUCT_TYPE,
2650 -1 PRG_GROUP,
2651 -1 STRUCT_VERSION_ID,
2652 prg.SUP_PROJECT_ID,
2653 prg.SUP_ID,
2654 prg.SUP_EMT_ID,
2655 -1 SUBRO_ID,
2656 prg.SUB_ID,
2657 prg.SUB_EMT_ID,
2658 prg.SUP_LEVEL SUP_LEVEL_NEW,
2659 prg.SUB_LEVEL SUB_LEVEL_NEW,
2660 0 SUP_LEVEL_OLD,
2661 0 SUB_LEVEL_OLD,
2662 prg.SUB_ROLLUP_ID,
2663 'X' SUB_LEAF_FLAG,
2664 prg.RELATIONSHIP_TYPE,
2665 +1 SIGN
2666 from
2667 PA_XBS_DENORM prg,
2668 PJI_PA_PROJ_EVENTS_LOG log
2669 where
2670 log.WORKER_ID = p_worker_id and
2671 log.EVENT_TYPE = 'PRG_CHANGE' and
2672 log.EVENT_OBJECT <> -1 and
2673 prg.STRUCT_TYPE = 'PRG' and
2674 prg.PRG_GROUP in (log.EVENT_OBJECT, log.ATTRIBUTE1)
2675 union all
2676 select
2677 distinct
2678 -1 EVENT_ID,
2679 prg.STRUCT_TYPE,
2680 -1 PRG_GROUP,
2681 -1 STRUCT_VERSION_ID,
2682 prg.SUP_PROJECT_ID,
2683 prg.SUP_ID,
2684 prg.SUP_EMT_ID,
2685 -1 SUBRO_ID,
2686 prg.SUB_ID,
2687 prg.SUB_EMT_ID,
2688 0 SUP_LEVEL_NEW,
2689 0 SUB_LEVEL_NEW,
2690 prg.SUP_LEVEL SUP_LEVEL_OLD,
2691 prg.SUB_LEVEL SUB_LEVEL_OLD,
2692 prg.SUB_ROLLUP_ID,
2693 'X' SUB_LEAF_FLAG,
2694 prg.RELATIONSHIP_TYPE,
2695 -1 SIGN
2696 from
2697 PJI_XBS_DENORM prg,
2698 PJI_PA_PROJ_EVENTS_LOG log
2699 where
2700 log.WORKER_ID = p_worker_id and
2701 log.EVENT_TYPE = 'PRG_CHANGE' and
2702 log.EVENT_OBJECT <> -1 and
2703 prg.STRUCT_TYPE = 'PRG' and
2704 prg.PRG_GROUP in (log.EVENT_OBJECT, log.ATTRIBUTE1)
2705 )
2706 group by
2707 EVENT_ID,
2708 STRUCT_TYPE,
2709 PRG_GROUP,
2710 STRUCT_VERSION_ID,
2711 SUP_PROJECT_ID,
2712 SUP_ID,
2713 SUP_EMT_ID,
2714 SUBRO_ID,
2715 SUB_ID,
2716 SUB_EMT_ID,
2717 SUB_ROLLUP_ID,
2718 SUB_LEAF_FLAG,
2719 RELATIONSHIP_TYPE
2720 having
2721 sum(SIGN) <> 0;
2722
2723 -- push down program RBSs across new links
2724
2725 insert into PJI_PA_PROJ_EVENTS_LOG
2726 (
2727 WORKER_ID,
2728 LOG_ROWID,
2729 EVENT_TYPE,
2730 EVENT_ID,
2731 EVENT_OBJECT,
2732 OPERATION_TYPE,
2733 STATUS,
2734 ATTRIBUTE_CATEGORY,
2735 ATTRIBUTE1,
2736 ATTRIBUTE2,
2737 ATTRIBUTE3,
2738 ATTRIBUTE4,
2739 ATTRIBUTE5,
2740 ATTRIBUTE6,
2741 ATTRIBUTE7,
2742 ATTRIBUTE8,
2743 ATTRIBUTE9,
2744 ATTRIBUTE10,
2745 ATTRIBUTE11,
2746 ATTRIBUTE12,
2747 ATTRIBUTE13,
2748 ATTRIBUTE14,
2749 ATTRIBUTE15,
2750 ATTRIBUTE16,
2751 ATTRIBUTE17,
2752 ATTRIBUTE18,
2753 ATTRIBUTE19,
2754 ATTRIBUTE20
2755 )
2756 select
2757 distinct
2758 evt.WORKER_ID,
2759 evt.LOG_ROWID,
2760 evt.EVENT_TYPE,
2761 evt.EVENT_ID,
2762 evt.EVENT_OBJECT,
2763 evt.OPERATION_TYPE,
2764 evt.STATUS,
2765 evt.ATTRIBUTE_CATEGORY,
2766 evt.ATTRIBUTE1,
2767 evt.ATTRIBUTE2,
2768 evt.ATTRIBUTE3,
2769 evt.ATTRIBUTE4,
2770 evt.ATTRIBUTE5,
2771 evt.ATTRIBUTE6,
2772 evt.ATTRIBUTE7,
2773 evt.ATTRIBUTE8,
2774 evt.ATTRIBUTE9,
2775 evt.ATTRIBUTE10,
2776 evt.ATTRIBUTE11,
2777 evt.ATTRIBUTE12,
2778 evt.ATTRIBUTE13,
2779 evt.ATTRIBUTE14,
2780 evt.ATTRIBUTE15,
2781 evt.ATTRIBUTE16,
2782 evt.ATTRIBUTE17,
2783 evt.ATTRIBUTE18,
2784 evt.ATTRIBUTE19,
2785 evt.ATTRIBUTE20
2786 from
2787 (
2788 select
2789 distinct
2790 p_worker_id WORKER_ID,
2791 null LOG_ROWID,
2792 'RBS_ASSOC' EVENT_TYPE,
2793 -1 EVENT_ID,
2794 sup_rbs_hdr.RBS_VERSION_ID EVENT_OBJECT,
2795 'I' OPERATION_TYPE,
2796 'X' STATUS,
2797 null ATTRIBUTE_CATEGORY,
2798 sub_ver.PROJECT_ID ATTRIBUTE1,
2799 hdr.RBS_HEADER_ID ATTRIBUTE2,
2800 null ATTRIBUTE3,
2801 null ATTRIBUTE4,
2802 null ATTRIBUTE5,
2803 null ATTRIBUTE6,
2804 null ATTRIBUTE7,
2805 null ATTRIBUTE8,
2806 null ATTRIBUTE9,
2807 null ATTRIBUTE10,
2808 null ATTRIBUTE11,
2809 null ATTRIBUTE12,
2810 null ATTRIBUTE13,
2811 null ATTRIBUTE14,
2812 null ATTRIBUTE15,
2813 null ATTRIBUTE16,
2814 prg.SUP_PROJECT_ID ATTRIBUTE17, -- program's PROJECT_ID
2815 'N' ATTRIBUTE18, -- PROG_REP_USAGE_FLAG
2816 null ATTRIBUTE19, -- update header only
2817 'NEW_CONVERTED_RBS_PRG_EVENT' ATTRIBUTE20 -- flg converted events
2818 from
2819 PJI_XBS_DENORM_DELTA prg,
2820 PJI_PJP_RBS_HEADER sup_rbs_hdr,
2821 PA_PROJ_ELEMENT_VERSIONS sub_ver,
2822 PA_RBS_VERSIONS_B hdr
2823 where
2824 prg.STRUCT_TYPE = 'PRG' and
2825 prg.SUP_ID <> prg.SUB_ID and
2826 prg.SIGN = 1 and
2827 sup_rbs_hdr.PROJECT_ID = prg.SUP_PROJECT_ID and
2828 sup_rbs_hdr.PLAN_VERSION_ID = -1 and
2829 sup_rbs_hdr.PROG_REP_USAGE_FLAG = 'Y' and
2830 sub_ver.ELEMENT_VERSION_ID = prg.SUB_ID and
2831 hdr.RBS_VERSION_ID = sup_rbs_hdr.RBS_VERSION_ID
2832 ) evt,
2833 PJI_PJP_RBS_HEADER sub_rbs_hdr,
2834 PJI_PA_PROJ_EVENTS_LOG log
2835 where
2836 evt.ATTRIBUTE1 = sub_rbs_hdr.PROJECT_ID (+) and
2837 -1 = sub_rbs_hdr.PLAN_VERSION_ID (+) and
2838 evt.EVENT_OBJECT = sub_rbs_hdr.RBS_VERSION_ID (+) and
2839 sub_rbs_hdr.PROJECT_ID is null and
2840 'RBS_ASSOC' = log.EVENT_TYPE (+) and
2841 evt.ATTRIBUTE1 = log.ATTRIBUTE1 (+) and
2842 evt.EVENT_OBJECT = log.EVENT_OBJECT (+) and
2843 log.EVENT_TYPE is null;
2844
2845 l_program_id := -1;
2846 l_rbs_header_id := -1;
2847 l_rbs_version_id := -1;
2848 l_prj_index := 1;
2849 l_project_id_tbl := system.pa_num_tbl_type();
2850 l_project_id_tbl.delete;
2851
2852 for c in (select
2853 distinct
2854 log.ATTRIBUTE2 RBS_HEADER_ID,
2855 log.EVENT_OBJECT RBS_VERSION_ID,
2856 log.ATTRIBUTE1 PROJECT_ID,
2857 log.ATTRIBUTE17 PROGRAM_ID,
2858 log.ATTRIBUTE18 PROG_REP_USAGE_FLAG,
2859 'Y' REPORTING_USAGE_FLAG,
2860 'N' FP_USAGE_FLAG,
2861 log.ATTRIBUTE19 UPDATE_HEADER_ONLY_FLAG
2862 from
2863 PJI_PA_PROJ_EVENTS_LOG log
2864 where
2865 log.WORKER_ID = p_worker_id and
2866 log.EVENT_TYPE = 'RBS_ASSOC' and
2867 log.ATTRIBUTE20 = 'NEW_CONVERTED_RBS_PRG_EVENT'
2868 order by
2869 log.ATTRIBUTE17,
2870 log.ATTRIBUTE2,
2871 log.EVENT_OBJECT) loop
2872
2873 l_project_id_tbl.extend(1);
2874 l_project_id_tbl(l_prj_index) := c.PROJECT_ID;
2875 l_prj_index := l_prj_index + 1;
2876
2877 if (l_rbs_header_id = -1 and l_rbs_version_id = -1) then
2878
2879 l_program_id := c.PROGRAM_ID;
2880 l_rbs_header_id := c.RBS_HEADER_ID;
2881 l_rbs_version_id := c.RBS_VERSION_ID;
2882
2883 elsif (c.PROGRAM_ID <> l_program_id or
2884 c.RBS_HEADER_ID <> l_rbs_header_id or
2885 c.RBS_VERSION_ID <> l_rbs_version_id) then
2886
2887 PA_RBS_ASGMT_PVT.ASSOCIATE_RBS_TO_PROGRAM(l_rbs_header_id,
2888 l_rbs_version_id,
2889 l_project_id_tbl,
2890 l_return_status);
2891
2892 l_program_id := c.PROGRAM_ID;
2893 l_rbs_header_id := c.RBS_HEADER_ID;
2894 l_rbs_version_id := c.RBS_VERSION_ID;
2895 l_prj_index := 1;
2896 l_project_id_tbl.delete;
2897
2898 end if;
2899
2900 insert into PJI_PJP_RBS_HEADER
2901 (
2902 PROJECT_ID,
2903 PLAN_VERSION_ID,
2904 RBS_VERSION_ID,
2905 REPORTING_USAGE_FLAG,
2906 PROG_REP_USAGE_FLAG,
2907 PLAN_USAGE_FLAG,
2908 LAST_UPDATE_DATE,
2909 LAST_UPDATED_BY,
2910 CREATION_DATE,
2911 CREATED_BY,
2912 LAST_UPDATE_LOGIN,
2913 PLAN_TYPE_CODE
2914 )
2915 values
2916 (
2917 c.PROJECT_ID,
2918 -1,
2919 c.RBS_VERSION_ID,
2920 c.REPORTING_USAGE_FLAG,
2921 c.PROG_REP_USAGE_FLAG,
2922 c.FP_USAGE_FLAG,
2923 l_last_update_date,
2924 l_last_updated_by,
2925 l_creation_date,
2926 l_created_by,
2927 l_last_update_login,
2928 'A'
2929 );
2930
2931 insert into PJI_PA_PROJ_EVENTS_LOG
2932 (
2933 WORKER_ID,
2934 EVENT_TYPE,
2935 EVENT_ID,
2936 EVENT_OBJECT,
2937 OPERATION_TYPE,
2938 STATUS
2939 )
2940 select
2941 p_worker_id,
2942 'PJI_RBS_CHANGE',
2943 PA_PJI_PROJ_EVENTS_LOG_S.NEXTVAL,
2944 c.RBS_VERSION_ID,
2945 'I',
2946 'X'
2947 from
2948 DUAL
2949 where
2950 not exists (select 1
2951 from PA_RBS_DENORM rbs
2952 where rbs.STRUCT_VERSION_ID = c.RBS_VERSION_ID);
2953
2954 end loop;
2955
2956 if (l_rbs_header_id <> -1 and l_rbs_version_id <> -1) then
2957
2958 PA_RBS_ASGMT_PVT.ASSOCIATE_RBS_TO_PROGRAM(l_rbs_header_id,
2959 l_rbs_version_id,
2960 l_project_id_tbl,
2961 l_return_status);
2962
2963 end if;
2964
2965 end if;
2966
2967 PJI_PROCESS_UTIL.REGISTER_STEP_COMPLETION(l_process, 'PJI_PJP_SUM_ROLLUP.POPULATE_XBS_DENORM_DELTA(p_worker_id);');
2968
2969 commit;
2970
2971 else -- online mode
2972
2973 -- get WBS delta for online processing
2974
2975 insert into PJI_XBS_DENORM_DELTA_T
2976 (
2977 WORKER_ID,
2978 STRUCT_TYPE,
2979 PRG_GROUP,
2980 STRUCT_VERSION_ID,
2981 SUP_PROJECT_ID,
2982 SUP_ID,
2983 SUP_EMT_ID,
2984 SUBRO_ID,
2985 SUB_ID,
2986 SUB_EMT_ID,
2987 SUP_LEVEL,
2988 SUB_LEVEL,
2989 SUB_ROLLUP_ID,
2990 SUB_LEAF_FLAG,
2991 RELATIONSHIP_TYPE,
2992 SIGN
2993 )
2994 select
2995 1 WORKER_ID,
2996 -- p_worker_id WORKER_ID,
2997 STRUCT_TYPE,
2998 PRG_GROUP,
2999 STRUCT_VERSION_ID,
3000 SUP_PROJECT_ID,
3001 SUP_ID,
3002 SUP_EMT_ID,
3003 SUBRO_ID,
3004 SUB_ID,
3005 SUB_EMT_ID,
3006 decode(sum(SUP_LEVEL_NEW), 0, sum(SUP_LEVEL_OLD),
3007 sum(SUP_LEVEL_NEW)) SUP_LEVEL,
3008 decode(sum(SUB_LEVEL_NEW), 0, sum(SUB_LEVEL_OLD),
3009 sum(SUB_LEVEL_NEW)) SUB_LEVEL,
3010 SUB_ROLLUP_ID,
3011 SUB_LEAF_FLAG,
3012 RELATIONSHIP_TYPE,
3013 sum(SIGN) SIGN
3014 from
3015 (
3016 select
3017 wbs.STRUCT_TYPE,
3018 -1 PRG_GROUP,
3019 wbs.STRUCT_VERSION_ID,
3020 wbs.SUP_PROJECT_ID,
3021 -1 SUP_ID,
3022 wbs.SUP_EMT_ID,
3023 -1 SUBRO_ID,
3024 -1 SUB_ID,
3025 wbs.SUB_EMT_ID,
3026 wbs.SUP_LEVEL SUP_LEVEL_NEW,
3027 wbs.SUB_LEVEL SUB_LEVEL_NEW,
3028 0 SUP_LEVEL_OLD,
3029 0 SUB_LEVEL_OLD,
3030 wbs.SUB_ROLLUP_ID,
3031 'X' SUB_LEAF_FLAG,
3032 'X' RELATIONSHIP_TYPE,
3033 +1 SIGN
3034 from
3035 PA_XBS_DENORM wbs
3036 where
3037 wbs.STRUCT_TYPE = 'WBS' and
3038 wbs.SUP_PROJECT_ID = g_project_id and
3039 wbs.STRUCT_VERSION_ID in (g_new_struct_version)
3040 union all
3041 select
3042 wbs.STRUCT_TYPE,
3043 -1 PRG_GROUP,
3044 wbs.STRUCT_VERSION_ID,
3045 wbs.SUP_PROJECT_ID,
3046 -1 SUP_ID,
3047 wbs.SUP_EMT_ID,
3048 -1 SUBRO_ID,
3049 -1 SUB_ID,
3050 wbs.SUB_EMT_ID,
3051 0 SUP_LEVEL_NEW,
3052 0 SUB_LEVEL_NEW,
3053 wbs.SUP_LEVEL SUP_LEVEL_OLD,
3054 wbs.SUB_LEVEL SUB_LEVEL_OLD,
3055 wbs.SUB_ROLLUP_ID,
3056 'X' SUB_LEAF_FLAG,
3057 'X' RELATIONSHIP_TYPE,
3058 -1 SIGN
3059 from
3060 PJI_XBS_DENORM wbs
3061 where
3062 wbs.STRUCT_TYPE = 'WBS' and
3063 wbs.SUP_PROJECT_ID = g_project_id and
3064 wbs.STRUCT_VERSION_ID in (g_old_struct_version)
3065 )
3066 group by
3067 STRUCT_TYPE,
3068 PRG_GROUP,
3069 STRUCT_VERSION_ID,
3070 SUP_PROJECT_ID,
3071 SUP_ID,
3072 SUP_EMT_ID,
3073 SUBRO_ID,
3074 SUB_ID,
3075 SUB_EMT_ID,
3076 SUB_ROLLUP_ID,
3077 SUB_LEAF_FLAG,
3078 RELATIONSHIP_TYPE
3079 having
3080 sum(SIGN) <> 0;
3081
3082 end if;
3083
3084 end POPULATE_XBS_DENORM_DELTA;
3085
3086
3087 -- -----------------------------------------------------
3088 -- procedure POPULATE_RBS_DENORM_DELTA
3089 --
3090 -- History
3091 -- 19-MAR-2004 SVERMETT Created
3092 --
3093 -- Internal PJP Summarization API.
3094 --
3095 -- Called by RBS program
3096 --
3097 -- -----------------------------------------------------
3098 procedure POPULATE_RBS_DENORM_DELTA (p_worker_id in number) is
3099
3100 l_process varchar2(30);
3101 l_extraction_type varchar2(30);
3102
3103 begin
3104
3105 l_process := PJI_PJP_SUM_MAIN.g_process || to_char(p_worker_id);
3106
3107 if (not PJI_PROCESS_UTIL.NEED_TO_RUN_STEP(l_process, 'PJI_PJP_SUM_ROLLUP.POPULATE_RBS_DENORM_DELTA(p_worker_id);')) then
3108 return;
3109 end if;
3110
3111 l_extraction_type := PJI_PROCESS_UTIL.GET_PROCESS_PARAMETER(l_process, 'EXTRACTION_TYPE');
3112
3113 if (l_extraction_type = 'RBS') then
3114
3115 insert into PJI_RBS_DENORM_DELTA delta_i
3116 (
3117 WORKER_ID,
3118 STRUCT_VERSION_ID,
3119 SUP_ID,
3120 SUBRO_ID,
3121 SUB_ID,
3122 SUP_LEVEL,
3123 SUB_LEVEL,
3124 SUB_LEAF_FLAG,
3125 SIGN
3126 )
3127 select
3128 p_worker_id,
3129 STRUCT_VERSION_ID,
3130 SUP_ID,
3131 SUBRO_ID,
3132 SUB_ID,
3133 decode(sum(SUP_LEVEL_NEW), 0, sum(SUP_LEVEL_OLD),
3134 sum(SUP_LEVEL_NEW)) SUP_LEVEL,
3135 decode(sum(SUB_LEVEL_NEW), 0, sum(SUB_LEVEL_OLD),
3136 sum(SUB_LEVEL_NEW)) SUB_LEVEL,
3137 SUB_LEAF_FLAG,
3138 sum(SIGN) SIGN
3139 from
3140 (
3141 select
3142 distinct
3143 rbs.STRUCT_VERSION_ID,
3144 rbs.SUP_ID,
3145 -1 SUBRO_ID,
3146 rbs.SUB_ID,
3147 rbs.SUP_LEVEL SUP_LEVEL_NEW,
3148 rbs.SUB_LEVEL SUB_LEVEL_NEW,
3149 0 SUP_LEVEL_OLD,
3150 0 SUB_LEVEL_OLD,
3151 'X' SUB_LEAF_FLAG,
3152 +1 SIGN
3153 from
3154 PA_RBS_DENORM rbs,
3155 PJI_PA_PROJ_EVENTS_LOG log
3156 where
3157 log.WORKER_ID = p_worker_id and
3158 log.EVENT_TYPE = 'RBS_PUSH' and
3159 rbs.STRUCT_VERSION_ID = log.EVENT_OBJECT
3160 union all
3161 select
3162 distinct
3163 rbs.STRUCT_VERSION_ID,
3164 rbs.SUP_ID,
3165 -1 SUBRO_ID,
3166 rbs.SUB_ID,
3167 0 SUP_LEVEL_NEW,
3168 0 SUB_LEVEL_NEW,
3169 rbs.SUP_LEVEL SUP_LEVEL_OLD,
3170 rbs.SUB_LEVEL SUB_LEVEL_OLD,
3171 'X' SUB_LEAF_FLAG,
3172 -1 SIGN
3173 from
3174 PJI_RBS_DENORM rbs,
3175 PJI_PA_PROJ_EVENTS_LOG log
3176 where
3177 log.WORKER_ID = p_worker_id and
3178 log.EVENT_TYPE = 'RBS_PUSH' and
3179 rbs.STRUCT_VERSION_ID = log.ATTRIBUTE2
3180 )
3181 group by
3182 STRUCT_VERSION_ID,
3183 SUP_ID,
3184 SUBRO_ID,
3185 SUB_ID,
3186 SUB_LEAF_FLAG
3187 having
3188 sum(SIGN) <> 0;
3189
3190 end if;
3191
3192 PJI_PROCESS_UTIL.REGISTER_STEP_COMPLETION(l_process, 'PJI_PJP_SUM_ROLLUP.POPULATE_RBS_DENORM_DELTA(p_worker_id);');
3193
3194 commit;
3195
3196 end POPULATE_RBS_DENORM_DELTA;
3197
3198
3199 -- -----------------------------------------------------
3200 -- procedure AGGREGATE_FP_SLICES
3201 --
3202 -- History
3203 -- 19-MAR-2004 SVERMETT Created
3204 --
3205 -- Internal PJP Summarization API.
3206 --
3207 -- Called by RBS program
3208 --
3209 -- -----------------------------------------------------
3210 procedure AGGREGATE_FP_SLICES (p_worker_id in number) is
3211
3212 l_process varchar2(30);
3213 l_extraction_type varchar2(30);
3214
3215 l_txn_currency_flag varchar2(1);
3216 l_g2_currency_flag varchar2(1);
3217
3218 l_g1_currency_code varchar2(30);
3219 l_g2_currency_code varchar2(30);
3220
3221 l_plan_type_id number; -- Bug#5099574
3222 l_refresh_code number;
3223
3224
3225 begin
3226
3227 l_process := PJI_PJP_SUM_MAIN.g_process || to_char(p_worker_id);
3228
3229 if (not PJI_PROCESS_UTIL.NEED_TO_RUN_STEP(l_process, 'PJI_PJP_SUM_ROLLUP.AGGREGATE_FP_SLICES(p_worker_id);')) then
3230 return;
3231 end if;
3232
3233 l_extraction_type := PJI_PROCESS_UTIL.GET_PROCESS_PARAMETER(l_process, 'EXTRACTION_TYPE');
3234
3235 -- Bug#5099574 - Start
3236
3237 l_plan_type_id := PJI_PROCESS_UTIL.GET_PROCESS_PARAMETER (l_process, 'PLAN_TYPE_ID');
3238 l_refresh_code := PJI_PROCESS_UTIL.GET_PROCESS_PARAMETER (l_process, 'REFRESH_CODE');
3239
3240 if (l_plan_type_id = -1) then
3241 l_plan_type_id := null;
3242 end if;
3243
3244 -- If condtion is true then mark the process as completed and return
3245 if ( l_extraction_type='PARTIAL' and ( bitand(l_refresh_code,1) <> 1) ) then
3246 PJI_PROCESS_UTIL.REGISTER_STEP_COMPLETION(l_process, 'PJI_PJP_SUM_ROLLUP.AGGREGATE_FP_SLICES(p_worker_id);');
3247 commit;
3248 return;
3249 end if;
3250
3251 -- Bug#5099574 - End
3252
3253
3254 select
3255 TXN_CURR_FLAG,
3256 GLOBAL_CURR2_FLAG
3257 into
3258 l_txn_currency_flag,
3259 l_g2_currency_flag
3260 from
3261 PJI_SYSTEM_SETTINGS;
3262
3263 l_g1_currency_code := PJI_UTILS.GET_GLOBAL_PRIMARY_CURRENCY;
3264 l_g2_currency_code := PJI_UTILS.GET_GLOBAL_SECONDARY_CURRENCY;
3265
3266 insert into PJI_FP_AGGR_PJP0 pjp0_i
3267 (
3268 WORKER_ID,
3269 TXN_ACCUM_HEADER_ID,
3270 PROJECT_ID,
3271 PROJECT_ORG_ID,
3272 PROJECT_ORGANIZATION_ID,
3273 PROJECT_ELEMENT_ID,
3274 TIME_ID,
3275 PERIOD_TYPE_ID,
3276 CALENDAR_TYPE,
3277 RBS_AGGR_LEVEL,
3278 WBS_ROLLUP_FLAG,
3279 PRG_ROLLUP_FLAG,
3280 CURR_RECORD_TYPE_ID,
3281 CURRENCY_CODE,
3282 RBS_ELEMENT_ID,
3283 RBS_VERSION_ID,
3284 PLAN_VERSION_ID,
3285 PLAN_TYPE_ID,
3286 RAW_COST,
3287 BRDN_COST,
3288 REVENUE,
3289 BILL_RAW_COST,
3290 BILL_BRDN_COST,
3291 BILL_LABOR_RAW_COST,
3292 BILL_LABOR_BRDN_COST,
3293 BILL_LABOR_HRS,
3294 EQUIPMENT_RAW_COST,
3295 EQUIPMENT_BRDN_COST,
3296 CAPITALIZABLE_RAW_COST,
3297 CAPITALIZABLE_BRDN_COST,
3298 LABOR_RAW_COST,
3299 LABOR_BRDN_COST,
3300 LABOR_HRS,
3301 LABOR_REVENUE,
3302 EQUIPMENT_HOURS,
3303 BILLABLE_EQUIPMENT_HOURS,
3304 SUP_INV_COMMITTED_COST,
3305 PO_COMMITTED_COST,
3306 PR_COMMITTED_COST,
3307 OTH_COMMITTED_COST
3308 )
3309 select
3310 src.WORKER_ID,
3311 src.TXN_ACCUM_HEADER_ID,
3312 src.PROJECT_ID,
3313 src.PROJECT_ORG_ID,
3314 src.PROJECT_ORGANIZATION_ID,
3315 src.PROJECT_ELEMENT_ID,
3316 src.TIME_ID,
3317 src.PERIOD_TYPE_ID,
3318 src.CALENDAR_TYPE,
3319 src.RBS_AGGR_LEVEL,
3320 src.WBS_ROLLUP_FLAG,
3321 src.PRG_ROLLUP_FLAG,
3322 src.CURR_RECORD_TYPE_ID,
3323 src.CURRENCY_CODE,
3324 src.RBS_ELEMENT_ID,
3325 src.RBS_VERSION_ID,
3326 src.PLAN_VERSION_ID,
3327 src.PLAN_TYPE_ID,
3328 sum(src.RAW_COST) RAW_COST,
3329 sum(src.BRDN_COST) BRDN_COST,
3330 sum(src.REVENUE) REVENUE,
3331 sum(decode(src.PROJECT_TYPE_CLASS, 'B',
3332 src.BILL_RAW_COST, to_number(null))) BILL_RAW_COST,
3333 sum(decode(src.PROJECT_TYPE_CLASS, 'B',
3334 src.BILL_BRDN_COST, to_number(null)))BILL_BRDN_COST,
3335 sum(decode(src.PROJECT_TYPE_CLASS || '_' ||
3336 cls.RESOURCE_CLASS_CODE, 'B_PEOPLE',
3337 src.BILL_RAW_COST, to_number(null))) BILL_LABOR_RAW_COST,
3338 sum(decode(src.PROJECT_TYPE_CLASS || '_' ||
3339 cls.RESOURCE_CLASS_CODE, 'B_PEOPLE',
3340 src.BILL_BRDN_COST, to_number(null)))BILL_LABOR_BRDN_COST,
3341 sum(decode(src.PROJECT_TYPE_CLASS || '_' ||
3342 cls.RESOURCE_CLASS_CODE, 'B_PEOPLE',
3343 src.BILL_QUANTITY, to_number(null))) BILL_LABOR_HRS,
3344 sum(decode(cls.RESOURCE_CLASS_CODE, 'EQUIPMENT',
3345 src.RAW_COST, to_number(null))) EQUIPMENT_RAW_COST,
3346 sum(decode(cls.RESOURCE_CLASS_CODE, 'EQUIPMENT',
3347 src.BRDN_COST, to_number(null))) EQUIPMENT_BRDN_COST,
3348 sum(decode(src.PROJECT_TYPE_CLASS, 'C',
3349 src.BILL_RAW_COST, to_number(null))) CAPITALIZABLE_RAW_COST,
3350 sum(decode(src.PROJECT_TYPE_CLASS, 'C',
3351 src.BILL_BRDN_COST, to_number(null)))CAPITALIZABLE_BRDN_COST,
3352 sum(decode(cls.RESOURCE_CLASS_CODE, 'PEOPLE',
3353 src.RAW_COST, to_number(null))) LABOR_RAW_COST,
3354 sum(decode(cls.RESOURCE_CLASS_CODE, 'PEOPLE',
3355 src.BRDN_COST, to_number(null))) LABOR_BRDN_COST,
3356 sum(decode(cls.RESOURCE_CLASS_CODE, 'PEOPLE',
3357 src.QUANTITY, to_number(null))) LABOR_HRS,
3358 sum(decode(cls.RESOURCE_CLASS_CODE, 'PEOPLE',
3359 src.REVENUE, to_number(null))) LABOR_REVENUE,
3360 sum(decode(cls.RESOURCE_CLASS_CODE, 'EQUIPMENT',
3361 src.QUANTITY, to_number(null))) EQUIPMENT_HOURS,
3362 sum(decode(cls.RESOURCE_CLASS_CODE, 'EQUIPMENT',
3363 src.BILL_QUANTITY, to_number(null))) BILLABLE_EQUIPMENT_HOURS,
3364 sum(src.SUP_INV_COMMITTED_COST) SUP_INV_COMMITTED_COST,
3365 sum(src.PO_COMMITTED_COST) PO_COMMITTED_COST,
3366 sum(src.PR_COMMITTED_COST) PR_COMMITTED_COST,
3367 sum(src.OTH_COMMITTED_COST) OTH_COMMITTED_COST
3368 from
3369 (
3370 select
3371 src3.WORKER_ID,
3372 src3.TXN_ACCUM_HEADER_ID,
3373 src3.RESOURCE_CLASS_ID,
3374 src3.PROJECT_ID,
3375 src3.PROJECT_ORG_ID,
3376 src3.PROJECT_ORGANIZATION_ID,
3377 src3.PROJECT_TYPE_CLASS,
3378 src3.PROJECT_ELEMENT_ID,
3379 src3.TIME_ID,
3380 src3.PERIOD_TYPE_ID,
3381 src3.CALENDAR_TYPE,
3382 src3.RBS_AGGR_LEVEL,
3383 src3.WBS_ROLLUP_FLAG,
3384 src3.PRG_ROLLUP_FLAG,
3385 sum(src3.CURR_RECORD_TYPE_ID) CURR_RECORD_TYPE_ID,
3386 nvl(src3.CURRENCY_CODE, 'PJI$NULL') CURRENCY_CODE,
3387 src3.RBS_ELEMENT_ID,
3388 src3.RBS_VERSION_ID,
3389 src3.PLAN_VERSION_ID,
3390 src3.PLAN_TYPE_ID,
3391 max(src3.RAW_COST) RAW_COST,
3392 max(src3.BRDN_COST) BRDN_COST,
3393 max(src3.REVENUE) REVENUE,
3394 max(src3.BILL_RAW_COST) BILL_RAW_COST,
3395 max(src3.BILL_BRDN_COST) BILL_BRDN_COST,
3396 max(src3.SUP_INV_COMMITTED_COST) SUP_INV_COMMITTED_COST,
3397 max(src3.PO_COMMITTED_COST) PO_COMMITTED_COST,
3398 max(src3.PR_COMMITTED_COST) PR_COMMITTED_COST,
3399 max(src3.OTH_COMMITTED_COST) OTH_COMMITTED_COST,
3400 max(src3.QUANTITY) QUANTITY,
3401 max(src3.BILL_QUANTITY) BILL_QUANTITY
3402 from
3403 (
3404 select /*+ ordered */
3405 p_worker_id WORKER_ID,
3406 src.TXN_ACCUM_HEADER_ID,
3407 src.RESOURCE_CLASS_ID,
3408 src.PROJECT_ID,
3409 src.PROJECT_ORG_ID,
3410 map.PROJECT_ORGANIZATION_ID,
3411 src.PROJECT_TYPE_CLASS,
3412 decode(src.TASK_ID,
3413 -1, ver.PROJ_ELEMENT_ID,
3414 src.TASK_ID) PROJECT_ELEMENT_ID,
3415 src.RECVR_PERIOD_ID TIME_ID,
3416 32 PERIOD_TYPE_ID,
3417 decode(src.RECVR_PERIOD_TYPE,
3418 'ENT', 'E',
3419 'GL', 'G',
3420 'PA', 'P') CALENDAR_TYPE,
3421 'L' RBS_AGGR_LEVEL,
3422 'N' WBS_ROLLUP_FLAG,
3423 'N' PRG_ROLLUP_FLAG,
3424 invert.INVERT_ID CURR_RECORD_TYPE_ID,
3425 decode(invert.INVERT_ID,
3426 1, l_g1_currency_code,
3427 2, l_g2_currency_code,
3428 4, info.PF_CURRENCY_CODE,
3429 8, map.PRJ_CURRENCY_CODE,
3430 16, src.TXN_CURRENCY_CODE,
3431 32, l_g1_currency_code,
3432 64, l_g2_currency_code,
3433 128, info.PF_CURRENCY_CODE,
3434 256, map.PRJ_CURRENCY_CODE) DIFF_CURRENCY_CODE,
3435 DIFF_ROWNUM DIFF_ROWNUM,
3436 decode(invert.INVERT_ID,
3437 1, l_g1_currency_code,
3438 2, l_g2_currency_code,
3439 4, info.PF_CURRENCY_CODE,
3440 8, map.PRJ_CURRENCY_CODE,
3441 16, src.TXN_CURRENCY_CODE,
3442 32, src.TXN_CURRENCY_CODE,
3443 64, src.TXN_CURRENCY_CODE,
3444 128, src.TXN_CURRENCY_CODE,
3445 256, src.TXN_CURRENCY_CODE) CURRENCY_CODE,
3446 nvl(rbs.ELEMENT_ID, -1) RBS_ELEMENT_ID,
3447 src.RBS_VERSION_ID,
3448 -1 PLAN_VERSION_ID,
3449 -1 PLAN_TYPE_ID,
3450 decode(invert.INVERT_ID,
3451 1, src.G1_RAW_COST,
3452 2, src.G2_RAW_COST,
3453 4, src.POU_RAW_COST,
3454 8, src.PRJ_RAW_COST,
3455 16, src.TXN_RAW_COST,
3456 32, src.G1_RAW_COST,
3457 64, src.G2_RAW_COST,
3458 128, src.POU_RAW_COST,
3459 256, src.PRJ_RAW_COST) RAW_COST,
3460 decode(invert.INVERT_ID,
3461 1, src.G1_BRDN_COST,
3462 2, src.G2_BRDN_COST,
3463 4, src.POU_BRDN_COST,
3464 8, src.PRJ_BRDN_COST,
3465 16, src.TXN_BRDN_COST,
3466 32, src.G1_BRDN_COST,
3467 64, src.G2_BRDN_COST,
3468 128, src.POU_BRDN_COST,
3469 256, src.PRJ_BRDN_COST) BRDN_COST,
3470 decode(invert.INVERT_ID,
3471 1, src.G1_REVENUE,
3472 2, src.G2_REVENUE,
3473 4, src.POU_REVENUE,
3474 8, src.PRJ_REVENUE,
3475 16, src.TXN_REVENUE,
3476 32, src.G1_REVENUE,
3477 64, src.G2_REVENUE,
3478 128, src.POU_REVENUE,
3479 256, src.PRJ_REVENUE) REVENUE,
3480 decode(invert.INVERT_ID,
3481 1, src.G1_BILL_RAW_COST,
3482 2, src.G2_BILL_RAW_COST,
3483 4, src.POU_BILL_RAW_COST,
3484 8, src.PRJ_BILL_RAW_COST,
3485 16, src.TXN_BILL_RAW_COST,
3486 32, src.G1_BILL_RAW_COST,
3487 64, src.G2_BILL_RAW_COST,
3488 128, src.POU_BILL_RAW_COST,
3489 256, src.PRJ_BILL_RAW_COST) BILL_RAW_COST,
3490 decode(invert.INVERT_ID,
3491 1, src.G1_BILL_BRDN_COST,
3492 2, src.G2_BILL_BRDN_COST,
3493 4, src.POU_BILL_BRDN_COST,
3494 8, src.PRJ_BILL_BRDN_COST,
3495 16, src.TXN_BILL_BRDN_COST,
3496 32, src.G1_BILL_BRDN_COST,
3497 64, src.G2_BILL_BRDN_COST,
3498 128, src.POU_BILL_BRDN_COST,
3499 256, src.PRJ_BILL_BRDN_COST) BILL_BRDN_COST,
3500 decode(invert.INVERT_ID,
3501 1, src.G1_SUP_INV_COMMITTED_COST,
3502 2, src.G2_SUP_INV_COMMITTED_COST,
3503 4, src.POU_SUP_INV_COMMITTED_COST,
3504 8, src.PRJ_SUP_INV_COMMITTED_COST,
3505 16, src.TXN_SUP_INV_COMMITTED_COST,
3506 32, src.G1_SUP_INV_COMMITTED_COST,
3507 64, src.G2_SUP_INV_COMMITTED_COST,
3508 128, src.POU_SUP_INV_COMMITTED_COST,
3509 256, src.PRJ_SUP_INV_COMMITTED_COST) SUP_INV_COMMITTED_COST,
3510 decode(invert.INVERT_ID,
3511 1, src.G1_PO_COMMITTED_COST,
3512 2, src.G2_PO_COMMITTED_COST,
3513 4, src.POU_PO_COMMITTED_COST,
3514 8, src.PRJ_PO_COMMITTED_COST,
3515 16, src.TXN_PO_COMMITTED_COST,
3516 32, src.G1_PO_COMMITTED_COST,
3517 64, src.G2_PO_COMMITTED_COST,
3518 128, src.POU_PO_COMMITTED_COST,
3519 256, src.PRJ_PO_COMMITTED_COST) PO_COMMITTED_COST,
3520 decode(invert.INVERT_ID,
3521 1, src.G1_PR_COMMITTED_COST,
3522 2, src.G2_PR_COMMITTED_COST,
3523 4, src.POU_PR_COMMITTED_COST,
3524 8, src.PRJ_PR_COMMITTED_COST,
3525 16, src.TXN_PR_COMMITTED_COST,
3526 32, src.G1_PR_COMMITTED_COST,
3527 64, src.G2_PR_COMMITTED_COST,
3528 128, src.POU_PR_COMMITTED_COST,
3529 256, src.PRJ_PR_COMMITTED_COST) PR_COMMITTED_COST,
3530 decode(invert.INVERT_ID,
3531 1, src.G1_OTH_COMMITTED_COST,
3532 2, src.G2_OTH_COMMITTED_COST,
3533 4, src.POU_OTH_COMMITTED_COST,
3534 8, src.PRJ_OTH_COMMITTED_COST,
3535 16, src.TXN_OTH_COMMITTED_COST,
3536 32, src.G1_OTH_COMMITTED_COST,
3537 64, src.G2_OTH_COMMITTED_COST,
3538 128, src.POU_OTH_COMMITTED_COST,
3539 256, src.PRJ_OTH_COMMITTED_COST) OTH_COMMITTED_COST,
3540 src.QUANTITY,
3541 src.BILL_QUANTITY
3542 from
3543 (
3544 select
3545 ROWNUM DIFF_ROWNUM,
3546 src2.TXN_ACCUM_HEADER_ID,
3547 src2.RESOURCE_CLASS_ID,
3548 src2.PROJECT_ID,
3549 src2.PROJECT_ORG_ID,
3550 src2.PROJECT_ORGANIZATION_ID,
3551 src2.PROJECT_TYPE_CLASS,
3552 src2.TASK_ID,
3553 src2.RECVR_PERIOD_TYPE,
3554 src2.RECVR_PERIOD_ID,
3555 src2.RBS_VERSION_ID,
3556 src2.TXN_CURRENCY_CODE,
3557 src2.TXN_RAW_COST,
3558 src2.TXN_BILL_RAW_COST,
3559 src2.TXN_BRDN_COST,
3560 src2.TXN_BILL_BRDN_COST,
3561 src2.TXN_REVENUE,
3562 src2.TXN_SUP_INV_COMMITTED_COST,
3563 src2.TXN_PO_COMMITTED_COST,
3564 src2.TXN_PR_COMMITTED_COST,
3565 src2.TXN_OTH_COMMITTED_COST,
3566 src2.PRJ_RAW_COST,
3567 src2.PRJ_BILL_RAW_COST,
3568 src2.PRJ_BRDN_COST,
3569 src2.PRJ_BILL_BRDN_COST,
3570 src2.PRJ_REVENUE,
3571 src2.PRJ_SUP_INV_COMMITTED_COST,
3572 src2.PRJ_PO_COMMITTED_COST,
3573 src2.PRJ_PR_COMMITTED_COST,
3574 src2.PRJ_OTH_COMMITTED_COST,
3575 src2.POU_RAW_COST,
3576 src2.POU_BILL_RAW_COST,
3577 src2.POU_BRDN_COST,
3578 src2.POU_BILL_BRDN_COST,
3579 src2.POU_REVENUE,
3580 src2.POU_SUP_INV_COMMITTED_COST,
3581 src2.POU_PO_COMMITTED_COST,
3582 src2.POU_PR_COMMITTED_COST,
3583 src2.POU_OTH_COMMITTED_COST,
3584 src2.EOU_RAW_COST,
3585 src2.EOU_BILL_RAW_COST,
3586 src2.EOU_BRDN_COST,
3587 src2.EOU_BILL_BRDN_COST,
3588 src2.EOU_SUP_INV_COMMITTED_COST,
3589 src2.EOU_PO_COMMITTED_COST,
3590 src2.EOU_PR_COMMITTED_COST,
3591 src2.EOU_OTH_COMMITTED_COST,
3592 src2.G1_RAW_COST,
3593 src2.G1_BILL_RAW_COST,
3594 src2.G1_BRDN_COST,
3595 src2.G1_BILL_BRDN_COST,
3596 src2.G1_REVENUE,
3597 src2.G1_SUP_INV_COMMITTED_COST,
3598 src2.G1_PO_COMMITTED_COST,
3599 src2.G1_PR_COMMITTED_COST,
3600 src2.G1_OTH_COMMITTED_COST,
3601 src2.G2_RAW_COST,
3602 src2.G2_BILL_RAW_COST,
3603 src2.G2_BRDN_COST,
3604 src2.G2_BILL_BRDN_COST,
3605 src2.G2_REVENUE,
3606 src2.G2_SUP_INV_COMMITTED_COST,
3607 src2.G2_PO_COMMITTED_COST,
3608 src2.G2_PR_COMMITTED_COST,
3609 src2.G2_OTH_COMMITTED_COST,
3610 src2.QUANTITY,
3611 src2.BILL_QUANTITY
3612 from
3613 (
3614 select
3615 src1.TXN_ACCUM_HEADER_ID,
3616 src1.RESOURCE_CLASS_ID,
3617 src1.PROJECT_ID,
3618 src1.PROJECT_ORG_ID,
3619 src1.PROJECT_ORGANIZATION_ID,
3620 src1.PROJECT_TYPE_CLASS,
3621 src1.TASK_ID,
3622 src1.RECVR_PERIOD_TYPE,
3623 src1.RECVR_PERIOD_ID,
3624 src1.RBS_VERSION_ID,
3625 src1.TXN_CURRENCY_CODE,
3626 sum(src1.TXN_RAW_COST) TXN_RAW_COST,
3627 sum(src1.TXN_BILL_RAW_COST) TXN_BILL_RAW_COST,
3628 sum(src1.TXN_BRDN_COST) TXN_BRDN_COST,
3629 sum(src1.TXN_BILL_BRDN_COST) TXN_BILL_BRDN_COST,
3630 sum(src1.TXN_REVENUE) TXN_REVENUE,
3631 sum(src1.TXN_SUP_INV_COMMITTED_COST) TXN_SUP_INV_COMMITTED_COST,
3632 sum(src1.TXN_PO_COMMITTED_COST) TXN_PO_COMMITTED_COST,
3633 sum(src1.TXN_PR_COMMITTED_COST) TXN_PR_COMMITTED_COST,
3634 sum(src1.TXN_OTH_COMMITTED_COST) TXN_OTH_COMMITTED_COST,
3635 sum(src1.PRJ_RAW_COST) PRJ_RAW_COST,
3636 sum(src1.PRJ_BILL_RAW_COST) PRJ_BILL_RAW_COST,
3637 sum(src1.PRJ_BRDN_COST) PRJ_BRDN_COST,
3638 sum(src1.PRJ_BILL_BRDN_COST) PRJ_BILL_BRDN_COST,
3639 sum(src1.PRJ_REVENUE) PRJ_REVENUE,
3640 sum(src1.PRJ_SUP_INV_COMMITTED_COST) PRJ_SUP_INV_COMMITTED_COST,
3641 sum(src1.PRJ_PO_COMMITTED_COST) PRJ_PO_COMMITTED_COST,
3642 sum(src1.PRJ_PR_COMMITTED_COST) PRJ_PR_COMMITTED_COST,
3643 sum(src1.PRJ_OTH_COMMITTED_COST) PRJ_OTH_COMMITTED_COST,
3644 sum(src1.POU_RAW_COST) POU_RAW_COST,
3645 sum(src1.POU_BILL_RAW_COST) POU_BILL_RAW_COST,
3646 sum(src1.POU_BRDN_COST) POU_BRDN_COST,
3647 sum(src1.POU_BILL_BRDN_COST) POU_BILL_BRDN_COST,
3648 sum(src1.POU_REVENUE) POU_REVENUE,
3649 sum(src1.POU_SUP_INV_COMMITTED_COST) POU_SUP_INV_COMMITTED_COST,
3650 sum(src1.POU_PO_COMMITTED_COST) POU_PO_COMMITTED_COST,
3651 sum(src1.POU_PR_COMMITTED_COST) POU_PR_COMMITTED_COST,
3652 sum(src1.POU_OTH_COMMITTED_COST) POU_OTH_COMMITTED_COST,
3653 sum(src1.EOU_RAW_COST) EOU_RAW_COST,
3654 sum(src1.EOU_BILL_RAW_COST) EOU_BILL_RAW_COST,
3655 sum(src1.EOU_BRDN_COST) EOU_BRDN_COST,
3656 sum(src1.EOU_BILL_BRDN_COST) EOU_BILL_BRDN_COST,
3657 sum(src1.EOU_SUP_INV_COMMITTED_COST) EOU_SUP_INV_COMMITTED_COST,
3658 sum(src1.EOU_PO_COMMITTED_COST) EOU_PO_COMMITTED_COST,
3659 sum(src1.EOU_PR_COMMITTED_COST) EOU_PR_COMMITTED_COST,
3660 sum(src1.EOU_OTH_COMMITTED_COST) EOU_OTH_COMMITTED_COST,
3661 sum(src1.G1_RAW_COST) G1_RAW_COST,
3662 sum(src1.G1_BILL_RAW_COST) G1_BILL_RAW_COST,
3663 sum(src1.G1_BRDN_COST) G1_BRDN_COST,
3664 sum(src1.G1_BILL_BRDN_COST) G1_BILL_BRDN_COST,
3665 sum(src1.G1_REVENUE) G1_REVENUE,
3666 sum(src1.G1_SUP_INV_COMMITTED_COST) G1_SUP_INV_COMMITTED_COST,
3667 sum(src1.G1_PO_COMMITTED_COST) G1_PO_COMMITTED_COST,
3668 sum(src1.G1_PR_COMMITTED_COST) G1_PR_COMMITTED_COST,
3669 sum(src1.G1_OTH_COMMITTED_COST) G1_OTH_COMMITTED_COST,
3670 sum(src1.G2_RAW_COST) G2_RAW_COST,
3671 sum(src1.G2_BILL_RAW_COST) G2_BILL_RAW_COST,
3672 sum(src1.G2_BRDN_COST) G2_BRDN_COST,
3673 sum(src1.G2_BILL_BRDN_COST) G2_BILL_BRDN_COST,
3674 sum(src1.G2_REVENUE) G2_REVENUE,
3675 sum(src1.G2_SUP_INV_COMMITTED_COST) G2_SUP_INV_COMMITTED_COST,
3676 sum(src1.G2_PO_COMMITTED_COST) G2_PO_COMMITTED_COST,
3677 sum(src1.G2_PR_COMMITTED_COST) G2_PR_COMMITTED_COST,
3678 sum(src1.G2_OTH_COMMITTED_COST) G2_OTH_COMMITTED_COST,
3679 sum(src1.QUANTITY) QUANTITY,
3680 sum(src1.BILL_QUANTITY) BILL_QUANTITY
3681 from
3682 (
3683 select -- initial actuals data
3684 bal.TXN_ACCUM_HEADER_ID,
3685 bal.RESOURCE_CLASS_ID,
3686 bal.PROJECT_ID,
3687 bal.PROJECT_ORG_ID,
3688 bal.PROJECT_ORGANIZATION_ID,
3689 bal.PROJECT_TYPE_CLASS,
3690 nvl(bal.TASK_ID, -1) TASK_ID,
3691 bal.RECVR_PERIOD_TYPE,
3692 bal.RECVR_PERIOD_ID,
3693 nvl(rbs_hdr.RBS_VERSION_ID, -1) RBS_VERSION_ID,
3694 bal.TXN_CURRENCY_CODE,
3695 bal.TXN_RAW_COST,
3696 bal.TXN_BILL_RAW_COST,
3697 bal.TXN_BRDN_COST,
3698 bal.TXN_BILL_BRDN_COST,
3699 bal.TXN_REVENUE,
3700 to_number(null) TXN_SUP_INV_COMMITTED_COST,
3701 to_number(null) TXN_PO_COMMITTED_COST,
3702 to_number(null) TXN_PR_COMMITTED_COST,
3703 to_number(null) TXN_OTH_COMMITTED_COST,
3704 bal.PRJ_RAW_COST,
3705 bal.PRJ_BILL_RAW_COST,
3706 bal.PRJ_BRDN_COST,
3707 bal.PRJ_BILL_BRDN_COST,
3708 bal.PRJ_REVENUE,
3709 to_number(null) PRJ_SUP_INV_COMMITTED_COST,
3710 to_number(null) PRJ_PO_COMMITTED_COST,
3711 to_number(null) PRJ_PR_COMMITTED_COST,
3712 to_number(null) PRJ_OTH_COMMITTED_COST,
3713 bal.POU_RAW_COST,
3714 bal.POU_BILL_RAW_COST,
3715 bal.POU_BRDN_COST,
3716 bal.POU_BILL_BRDN_COST,
3717 bal.POU_REVENUE,
3718 to_number(null) POU_SUP_INV_COMMITTED_COST,
3719 to_number(null) POU_PO_COMMITTED_COST,
3720 to_number(null) POU_PR_COMMITTED_COST,
3721 to_number(null) POU_OTH_COMMITTED_COST,
3722 bal.EOU_RAW_COST,
3723 bal.EOU_BILL_RAW_COST,
3724 bal.EOU_BRDN_COST,
3725 bal.EOU_BILL_BRDN_COST,
3726 to_number(null) EOU_SUP_INV_COMMITTED_COST,
3727 to_number(null) EOU_PO_COMMITTED_COST,
3728 to_number(null) EOU_PR_COMMITTED_COST,
3729 to_number(null) EOU_OTH_COMMITTED_COST,
3730 bal.G1_RAW_COST,
3731 bal.G1_BILL_RAW_COST,
3732 bal.G1_BRDN_COST,
3733 bal.G1_BILL_BRDN_COST,
3734 bal.G1_REVENUE,
3735 to_number(null) G1_SUP_INV_COMMITTED_COST,
3736 to_number(null) G1_PO_COMMITTED_COST,
3737 to_number(null) G1_PR_COMMITTED_COST,
3738 to_number(null) G1_OTH_COMMITTED_COST,
3739 bal.G2_RAW_COST,
3740 bal.G2_BILL_RAW_COST,
3741 bal.G2_BRDN_COST,
3742 bal.G2_BILL_BRDN_COST,
3743 bal.G2_REVENUE,
3744 to_number(null) G2_SUP_INV_COMMITTED_COST,
3745 to_number(null) G2_PO_COMMITTED_COST,
3746 to_number(null) G2_PR_COMMITTED_COST,
3747 to_number(null) G2_OTH_COMMITTED_COST,
3748 bal.QUANTITY,
3749 bal.BILL_QUANTITY
3750 from
3751 PJI_PJP_PROJ_BATCH_MAP map,
3752 PJI_FP_TXN_ACCUM bal,
3753 PJI_PJP_RBS_HEADER rbs_hdr
3754 where
3755 l_extraction_type in ('FULL', 'PARTIAL') and
3756 -- decode(l_extraction_type,'FULL','Y','PARTIAL',decode(bitand(l_refresh_code,1),1,'Y','N'),'N') ='Y' and -- Bug#5099574
3757 -- l_plan_type_id IS NULL and -- Bug#5099574
3758 map.WORKER_ID = p_worker_id and
3759 bal.PROJECT_ID = map.PROJECT_ID and
3760 bal.PROJECT_ID = rbs_hdr.PROJECT_ID and
3761 -1 = rbs_hdr.PLAN_VERSION_ID
3762 union all -- initial commitments data
3763 select
3764 bal.TXN_ACCUM_HEADER_ID,
3765 to_number(null) RESOURCE_CLASS_ID,
3766 bal.PROJECT_ID,
3767 bal.PROJECT_ORG_ID,
3768 bal.PROJECT_ORGANIZATION_ID,
3769 to_char(null) PROJECT_TYPE_CLASS,
3770 nvl(bal.TASK_ID, -1) TASK_ID,
3771 bal.RECVR_PERIOD_TYPE,
3772 bal.RECVR_PERIOD_ID,
3773 nvl(rbs_hdr.RBS_VERSION_ID, -1) RBS_VERSION_ID,
3774 bal.TXN_CURRENCY_CODE,
3775 to_number(null) TXN_RAW_COST,
3776 to_number(null) TXN_BILL_RAW_COST,
3777 to_number(null) TXN_BRDN_COST,
3778 to_number(null) TXN_BILL_BRDN_COST,
3779 to_number(null) TXN_REVENUE,
3780 bal.TXN_SUP_INV_COMMITTED_COST,
3781 bal.TXN_PO_COMMITTED_COST,
3782 bal.TXN_PR_COMMITTED_COST,
3783 bal.TXN_OTH_COMMITTED_COST,
3784 to_number(null) PRJ_RAW_COST,
3785 to_number(null) PRJ_BILL_RAW_COST,
3786 to_number(null) PRJ_BRDN_COST,
3787 to_number(null) PRJ_BILL_BRDN_COST,
3788 to_number(null) PRJ_REVENUE,
3789 bal.PRJ_SUP_INV_COMMITTED_COST,
3790 bal.PRJ_PO_COMMITTED_COST,
3791 bal.PRJ_PR_COMMITTED_COST,
3792 bal.PRJ_OTH_COMMITTED_COST,
3793 to_number(null) POU_RAW_COST,
3794 to_number(null) POU_BILL_RAW_COST,
3795 to_number(null) POU_BRDN_COST,
3796 to_number(null) POU_BILL_BRDN_COST,
3797 to_number(null) POU_REVENUE,
3798 bal.POU_SUP_INV_COMMITTED_COST,
3799 bal.POU_PO_COMMITTED_COST,
3800 bal.POU_PR_COMMITTED_COST,
3801 bal.POU_OTH_COMMITTED_COST,
3802 to_number(null) EOU_RAW_COST,
3803 to_number(null) EOU_BILL_RAW_COST,
3804 to_number(null) EOU_BRDN_COST,
3805 to_number(null) EOU_BILL_BRDN_COST,
3806 bal.EOU_SUP_INV_COMMITTED_COST,
3807 bal.EOU_PO_COMMITTED_COST,
3808 bal.EOU_PR_COMMITTED_COST,
3809 bal.EOU_OTH_COMMITTED_COST,
3810 to_number(null) G1_RAW_COST,
3811 to_number(null) G1_BILL_RAW_COST,
3812 to_number(null) G1_BRDN_COST,
3813 to_number(null) G1_BILL_BRDN_COST,
3814 to_number(null) G1_REVENUE,
3815 bal.G1_SUP_INV_COMMITTED_COST,
3816 bal.G1_PO_COMMITTED_COST,
3817 bal.G1_PR_COMMITTED_COST,
3818 bal.G1_OTH_COMMITTED_COST,
3819 to_number(null) G2_RAW_COST,
3820 to_number(null) G2_BILL_RAW_COST,
3821 to_number(null) G2_BRDN_COST,
3822 to_number(null) G2_BILL_BRDN_COST,
3823 to_number(null) G2_REVENUE,
3824 bal.G2_SUP_INV_COMMITTED_COST,
3825 bal.G2_PO_COMMITTED_COST,
3826 bal.G2_PR_COMMITTED_COST,
3827 bal.G2_OTH_COMMITTED_COST,
3828 to_number(null) QUANTITY,
3829 to_number(null) BILL_QUANTITY
3830 from
3831 PJI_PJP_PROJ_BATCH_MAP map,
3832 PJI_FP_TXN_ACCUM1 bal,
3833 PJI_PJP_RBS_HEADER rbs_hdr
3834 where
3835 l_extraction_type in ('FULL', 'PARTIAL') and
3836 -- decode(l_extraction_type,'FULL','Y','PARTIAL',decode(bitand(l_refresh_code,1),1,'Y','N'),'N') ='Y' and -- Bug#5099574
3837 -- l_plan_type_id IS NULL and -- Bug#5099574
3838 map.WORKER_ID = p_worker_id and
3839 bal.PROJECT_ID = map.PROJECT_ID and
3840 bal.PROJECT_ID = rbs_hdr.PROJECT_ID and
3841 -1 = rbs_hdr.PLAN_VERSION_ID
3842 union all -- incremental data
3843 select
3844 tmp7.TXN_ACCUM_HEADER_ID,
3845 tmp7.RESOURCE_CLASS_ID,
3846 tmp7.PROJECT_ID,
3847 tmp7.PROJECT_ORG_ID,
3848 tmp7.PROJECT_ORGANIZATION_ID,
3849 tmp7.PROJECT_TYPE_CLASS,
3850 nvl(tmp7.TASK_ID, -1) TASK_ID,
3851 tmp7.RECVR_PERIOD_TYPE,
3852 tmp7.RECVR_PERIOD_ID,
3853 nvl(rbs_hdr.RBS_VERSION_ID, -1) RBS_VERSION_ID,
3854 tmp7.TXN_CURRENCY_CODE,
3855 tmp7.TXN_RAW_COST,
3856 tmp7.TXN_BILL_RAW_COST,
3857 tmp7.TXN_BRDN_COST,
3858 tmp7.TXN_BILL_BRDN_COST,
3859 tmp7.TXN_REVENUE,
3860 tmp7.TXN_SUP_INV_COMMITTED_COST,
3861 tmp7.TXN_PO_COMMITTED_COST,
3862 tmp7.TXN_PR_COMMITTED_COST,
3863 tmp7.TXN_OTH_COMMITTED_COST,
3864 tmp7.PRJ_RAW_COST,
3865 tmp7.PRJ_BILL_RAW_COST,
3866 tmp7.PRJ_BRDN_COST,
3867 tmp7.PRJ_BILL_BRDN_COST,
3868 tmp7.PRJ_REVENUE,
3869 tmp7.PRJ_SUP_INV_COMMITTED_COST,
3870 tmp7.PRJ_PO_COMMITTED_COST,
3871 tmp7.PRJ_PR_COMMITTED_COST,
3872 tmp7.PRJ_OTH_COMMITTED_COST,
3873 tmp7.POU_RAW_COST,
3874 tmp7.POU_BILL_RAW_COST,
3875 tmp7.POU_BRDN_COST,
3876 tmp7.POU_BILL_BRDN_COST,
3877 tmp7.POU_REVENUE,
3878 tmp7.POU_SUP_INV_COMMITTED_COST,
3879 tmp7.POU_PO_COMMITTED_COST,
3880 tmp7.POU_PR_COMMITTED_COST,
3881 tmp7.POU_OTH_COMMITTED_COST,
3882 tmp7.EOU_RAW_COST,
3883 tmp7.EOU_BILL_RAW_COST,
3884 tmp7.EOU_BRDN_COST,
3885 tmp7.EOU_BILL_BRDN_COST,
3886 tmp7.EOU_SUP_INV_COMMITTED_COST,
3887 tmp7.EOU_PO_COMMITTED_COST,
3888 tmp7.EOU_PR_COMMITTED_COST,
3889 tmp7.EOU_OTH_COMMITTED_COST,
3890 tmp7.G1_RAW_COST,
3891 tmp7.G1_BILL_RAW_COST,
3892 tmp7.G1_BRDN_COST,
3893 tmp7.G1_BILL_BRDN_COST,
3894 tmp7.G1_REVENUE,
3895 tmp7.G1_SUP_INV_COMMITTED_COST,
3896 tmp7.G1_PO_COMMITTED_COST,
3897 tmp7.G1_PR_COMMITTED_COST,
3898 tmp7.G1_OTH_COMMITTED_COST,
3899 tmp7.G2_RAW_COST,
3900 tmp7.G2_BILL_RAW_COST,
3901 tmp7.G2_BRDN_COST,
3902 tmp7.G2_BILL_BRDN_COST,
3903 tmp7.G2_REVENUE,
3904 tmp7.G2_SUP_INV_COMMITTED_COST,
3905 tmp7.G2_PO_COMMITTED_COST,
3906 tmp7.G2_PR_COMMITTED_COST,
3907 tmp7.G2_OTH_COMMITTED_COST,
3908 tmp7.QUANTITY,
3909 tmp7.BILL_QUANTITY
3910 from
3911 PJI_PJP_RMAP_FPR tmp7_r,
3912 PJI_FM_AGGR_FIN7 tmp7,
3913 PJI_PJP_RBS_HEADER rbs_hdr
3914 where
3915 l_extraction_type = 'INCREMENTAL' and
3916 tmp7_r.WORKER_ID = p_worker_id and
3917 tmp7_r.STG_ROWID = tmp7.ROWID and
3918 tmp7.PROJECT_ID = rbs_hdr.PROJECT_ID and
3919 -1 = rbs_hdr.PLAN_VERSION_ID
3920 union all -- newly associated RBSs for actuals
3921 select
3922 bal.TXN_ACCUM_HEADER_ID,
3923 bal.RESOURCE_CLASS_ID,
3924 bal.PROJECT_ID,
3925 bal.PROJECT_ORG_ID,
3926 bal.PROJECT_ORGANIZATION_ID,
3927 bal.PROJECT_TYPE_CLASS,
3928 nvl(bal.TASK_ID, -1) TASK_ID,
3929 bal.RECVR_PERIOD_TYPE,
3930 bal.RECVR_PERIOD_ID,
3931 log.RBS_VERSION_ID,
3932 bal.TXN_CURRENCY_CODE,
3933 bal.TXN_RAW_COST,
3934 bal.TXN_BILL_RAW_COST,
3935 bal.TXN_BRDN_COST,
3936 bal.TXN_BILL_BRDN_COST,
3937 bal.TXN_REVENUE,
3938 to_number(null) TXN_SUP_INV_COMMITTED_COST,
3939 to_number(null) TXN_PO_COMMITTED_COST,
3940 to_number(null) TXN_PR_COMMITTED_COST,
3941 to_number(null) TXN_OTH_COMMITTED_COST,
3942 bal.PRJ_RAW_COST,
3943 bal.PRJ_BILL_RAW_COST,
3944 bal.PRJ_BRDN_COST,
3945 bal.PRJ_BILL_BRDN_COST,
3946 bal.PRJ_REVENUE,
3947 to_number(null) PRJ_SUP_INV_COMMITTED_COST,
3948 to_number(null) PRJ_PO_COMMITTED_COST,
3949 to_number(null) PRJ_PR_COMMITTED_COST,
3950 to_number(null) PRJ_OTH_COMMITTED_COST,
3951 bal.POU_RAW_COST,
3952 bal.POU_BILL_RAW_COST,
3953 bal.POU_BRDN_COST,
3954 bal.POU_BILL_BRDN_COST,
3955 bal.POU_REVENUE,
3956 to_number(null) POU_SUP_INV_COMMITTED_COST,
3957 to_number(null) POU_PO_COMMITTED_COST,
3958 to_number(null) POU_PR_COMMITTED_COST,
3959 to_number(null) POU_OTH_COMMITTED_COST,
3960 bal.EOU_RAW_COST,
3961 bal.EOU_BILL_RAW_COST,
3962 bal.EOU_BRDN_COST,
3963 bal.EOU_BILL_BRDN_COST,
3964 to_number(null) EOU_SUP_INV_COMMITTED_COST,
3965 to_number(null) EOU_PO_COMMITTED_COST,
3966 to_number(null) EOU_PR_COMMITTED_COST,
3967 to_number(null) EOU_OTH_COMMITTED_COST,
3968 bal.G1_RAW_COST,
3969 bal.G1_BILL_RAW_COST,
3970 bal.G1_BRDN_COST,
3971 bal.G1_BILL_BRDN_COST,
3972 bal.G1_REVENUE,
3973 to_number(null) G1_SUP_INV_COMMITTED_COST,
3974 to_number(null) G1_PO_COMMITTED_COST,
3975 to_number(null) G1_PR_COMMITTED_COST,
3976 to_number(null) G1_OTH_COMMITTED_COST,
3977 bal.G2_RAW_COST,
3978 bal.G2_BILL_RAW_COST,
3979 bal.G2_BRDN_COST,
3980 bal.G2_BILL_BRDN_COST,
3981 bal.G2_REVENUE,
3982 to_number(null) G2_SUP_INV_COMMITTED_COST,
3983 to_number(null) G2_PO_COMMITTED_COST,
3984 to_number(null) G2_PR_COMMITTED_COST,
3985 to_number(null) G2_OTH_COMMITTED_COST,
3986 bal.QUANTITY,
3987 bal.BILL_QUANTITY
3988 from
3989 PJI_FP_TXN_ACCUM bal,
3990 (
3991 select
3992 distinct
3993 to_number(log.EVENT_OBJECT) RBS_VERSION_ID,
3994 to_number(log.ATTRIBUTE1) PROJECT_ID
3995 from
3996 PJI_PA_PROJ_EVENTS_LOG log
3997 where
3998 log.WORKER_ID = p_worker_id and
3999 log.EVENT_TYPE = 'RBS_ASSOC'
4000 ) log
4001 where
4002 l_extraction_type = 'INCREMENTAL' and
4003 bal.PROJECT_ID = log.PROJECT_ID
4004 union all -- newly associated RBSs for commitments
4005 select
4006 bal.TXN_ACCUM_HEADER_ID,
4007 to_number(null) RESOURCE_CLASS_ID,
4008 bal.PROJECT_ID,
4009 bal.PROJECT_ORG_ID,
4010 bal.PROJECT_ORGANIZATION_ID,
4011 to_char(null) PROJECT_TYPE_CLASS,
4012 nvl(bal.TASK_ID, -1) TASK_ID,
4013 bal.RECVR_PERIOD_TYPE,
4014 bal.RECVR_PERIOD_ID,
4015 log.RBS_VERSION_ID,
4016 bal.TXN_CURRENCY_CODE,
4017 to_number(null) TXN_RAW_COST,
4018 to_number(null) TXN_BILL_RAW_COST,
4019 to_number(null) TXN_BRDN_COST,
4020 to_number(null) TXN_BILL_BRDN_COST,
4021 to_number(null) TXN_REVENUE,
4022 bal.TXN_SUP_INV_COMMITTED_COST,
4023 bal.TXN_PO_COMMITTED_COST,
4024 bal.TXN_PR_COMMITTED_COST,
4025 bal.TXN_OTH_COMMITTED_COST,
4026 to_number(null) PRJ_RAW_COST,
4027 to_number(null) PRJ_BILL_RAW_COST,
4028 to_number(null) PRJ_BRDN_COST,
4029 to_number(null) PRJ_BILL_BRDN_COST,
4030 to_number(null) PRJ_REVENUE,
4031 bal.PRJ_SUP_INV_COMMITTED_COST,
4032 bal.PRJ_PO_COMMITTED_COST,
4033 bal.PRJ_PR_COMMITTED_COST,
4034 bal.PRJ_OTH_COMMITTED_COST,
4035 to_number(null) POU_RAW_COST,
4036 to_number(null) POU_BILL_RAW_COST,
4037 to_number(null) POU_BRDN_COST,
4038 to_number(null) POU_BILL_BRDN_COST,
4039 to_number(null) POU_REVENUE,
4040 bal.POU_SUP_INV_COMMITTED_COST,
4041 bal.POU_PO_COMMITTED_COST,
4042 bal.POU_PR_COMMITTED_COST,
4043 bal.POU_OTH_COMMITTED_COST,
4044 to_number(null) EOU_RAW_COST,
4045 to_number(null) EOU_BILL_RAW_COST,
4046 to_number(null) EOU_BRDN_COST,
4047 to_number(null) EOU_BILL_BRDN_COST,
4048 bal.EOU_SUP_INV_COMMITTED_COST,
4049 bal.EOU_PO_COMMITTED_COST,
4050 bal.EOU_PR_COMMITTED_COST,
4051 bal.EOU_OTH_COMMITTED_COST,
4052 to_number(null) G1_RAW_COST,
4053 to_number(null) G1_BILL_RAW_COST,
4054 to_number(null) G1_BRDN_COST,
4055 to_number(null) G1_BILL_BRDN_COST,
4056 to_number(null) G1_REVENUE,
4057 bal.G1_SUP_INV_COMMITTED_COST,
4058 bal.G1_PO_COMMITTED_COST,
4059 bal.G1_PR_COMMITTED_COST,
4060 bal.G1_OTH_COMMITTED_COST,
4061 to_number(null) G2_RAW_COST,
4062 to_number(null) G2_BILL_RAW_COST,
4063 to_number(null) G2_BRDN_COST,
4064 to_number(null) G2_BILL_BRDN_COST,
4065 to_number(null) G2_REVENUE,
4066 bal.G2_SUP_INV_COMMITTED_COST,
4067 bal.G2_PO_COMMITTED_COST,
4068 bal.G2_PR_COMMITTED_COST,
4069 bal.G2_OTH_COMMITTED_COST,
4070 to_number(null) QUANTITY,
4071 to_number(null) BILL_QUANTITY
4072 from
4073 PJI_FP_TXN_ACCUM1 bal,
4074 (
4075 select
4076 distinct
4077 to_number(log.EVENT_OBJECT) RBS_VERSION_ID,
4078 to_numbeR(log.ATTRIBUTE1) PROJECT_ID
4079 from
4080 PJI_PA_PROJ_EVENTS_LOG log
4081 where
4082 log.WORKER_ID = p_worker_id and
4083 log.EVENT_TYPE = 'RBS_ASSOC'
4084 ) log
4085 where
4086 l_extraction_type = 'INCREMENTAL' and
4087 bal.PROJECT_ID = log.PROJECT_ID
4088 union all
4089 select /*+ ordered */ -- RBS change processing actuals
4090 bal.TXN_ACCUM_HEADER_ID,
4091 bal.RESOURCE_CLASS_ID,
4092 bal.PROJECT_ID,
4093 bal.PROJECT_ORG_ID,
4094 bal.PROJECT_ORGANIZATION_ID,
4095 bal.PROJECT_TYPE_CLASS,
4096 nvl(bal.TASK_ID, -1) TASK_ID,
4097 bal.RECVR_PERIOD_TYPE,
4098 bal.RECVR_PERIOD_ID,
4099 nvl(to_number(log.EVENT_OBJECT), -1) RBS_VERSION_ID,
4100 bal.TXN_CURRENCY_CODE,
4101 bal.TXN_RAW_COST,
4102 bal.TXN_BILL_RAW_COST,
4103 bal.TXN_BRDN_COST,
4104 bal.TXN_BILL_BRDN_COST,
4105 bal.TXN_REVENUE,
4106 to_number(null) TXN_SUP_INV_COMMITTED_COST,
4107 to_number(null) TXN_PO_COMMITTED_COST,
4108 to_number(null) TXN_PR_COMMITTED_COST,
4109 to_number(null) TXN_OTH_COMMITTED_COST,
4110 bal.PRJ_RAW_COST,
4111 bal.PRJ_BILL_RAW_COST,
4112 bal.PRJ_BRDN_COST,
4113 bal.PRJ_BILL_BRDN_COST,
4114 bal.PRJ_REVENUE,
4115 to_number(null) PRJ_SUP_INV_COMMITTED_COST,
4116 to_number(null) PRJ_PO_COMMITTED_COST,
4117 to_number(null) PRJ_PR_COMMITTED_COST,
4118 to_number(null) PRJ_OTH_COMMITTED_COST,
4119 bal.POU_RAW_COST,
4120 bal.POU_BILL_RAW_COST,
4121 bal.POU_BRDN_COST,
4122 bal.POU_BILL_BRDN_COST,
4123 bal.POU_REVENUE,
4124 to_number(null) POU_SUP_INV_COMMITTED_COST,
4125 to_number(null) POU_PO_COMMITTED_COST,
4126 to_number(null) POU_PR_COMMITTED_COST,
4127 to_number(null) POU_OTH_COMMITTED_COST,
4128 bal.EOU_RAW_COST,
4129 bal.EOU_BILL_RAW_COST,
4130 bal.EOU_BRDN_COST,
4131 bal.EOU_BILL_BRDN_COST,
4132 to_number(null) EOU_SUP_INV_COMMITTED_COST,
4133 to_number(null) EOU_PO_COMMITTED_COST,
4134 to_number(null) EOU_PR_COMMITTED_COST,
4135 to_number(null) EOU_OTH_COMMITTED_COST,
4136 bal.G1_RAW_COST,
4137 bal.G1_BILL_RAW_COST,
4138 bal.G1_BRDN_COST,
4139 bal.G1_BILL_BRDN_COST,
4140 bal.G1_REVENUE,
4141 to_number(null) G1_SUP_INV_COMMITTED_COST,
4142 to_number(null) G1_PO_COMMITTED_COST,
4143 to_number(null) G1_PR_COMMITTED_COST,
4144 to_number(null) G1_OTH_COMMITTED_COST,
4145 bal.G2_RAW_COST,
4146 bal.G2_BILL_RAW_COST,
4147 bal.G2_BRDN_COST,
4148 bal.G2_BILL_BRDN_COST,
4149 bal.G2_REVENUE,
4150 to_number(null) G2_SUP_INV_COMMITTED_COST,
4151 to_number(null) G2_PO_COMMITTED_COST,
4152 to_number(null) G2_PR_COMMITTED_COST,
4153 to_number(null) G2_OTH_COMMITTED_COST,
4154 bal.QUANTITY,
4155 bal.BILL_QUANTITY
4156 from
4157 PJI_PA_PROJ_EVENTS_LOG log,
4158 PJI_PJP_PROJ_EXTR_STATUS stat,
4159 PJI_FP_TXN_ACCUM bal
4160 where
4161 l_extraction_type = 'RBS' and
4162 log.WORKER_ID = p_worker_id and
4163 log.EVENT_TYPE = 'RBS_PUSH' and
4164 stat.PROJECT_ID = log.ATTRIBUTE19 and
4165 stat.EXTRACTION_STATUS = 'I' and
4166 bal.PROJECT_ID = log.ATTRIBUTE19
4167 union all -- RBS change processing commitments
4168 select
4169 bal.TXN_ACCUM_HEADER_ID,
4170 to_number(null) RESOURCE_CLASS_ID,
4171 bal.PROJECT_ID,
4172 bal.PROJECT_ORG_ID,
4173 bal.PROJECT_ORGANIZATION_ID,
4174 to_char(null) PROJECT_TYPE_CLASS,
4175 nvl(bal.TASK_ID, -1) TASK_ID,
4176 bal.RECVR_PERIOD_TYPE,
4177 bal.RECVR_PERIOD_ID,
4178 nvl(to_number(log.EVENT_OBJECT), -1) RBS_VERSION_ID,
4179 bal.TXN_CURRENCY_CODE,
4180 to_number(null) TXN_RAW_COST,
4181 to_number(null) TXN_BILL_RAW_COST,
4182 to_number(null) TXN_BRDN_COST,
4183 to_number(null) TXN_BILL_BRDN_COST,
4184 to_number(null) TXN_REVENUE,
4185 bal.TXN_SUP_INV_COMMITTED_COST,
4186 bal.TXN_PO_COMMITTED_COST,
4187 bal.TXN_PR_COMMITTED_COST,
4188 bal.TXN_OTH_COMMITTED_COST,
4189 to_number(null) PRJ_RAW_COST,
4190 to_number(null) PRJ_BILL_RAW_COST,
4191 to_number(null) PRJ_BRDN_COST,
4192 to_number(null) PRJ_BILL_BRDN_COST,
4193 to_number(null) PRJ_REVENUE,
4194 bal.PRJ_SUP_INV_COMMITTED_COST,
4195 bal.PRJ_PO_COMMITTED_COST,
4196 bal.PRJ_PR_COMMITTED_COST,
4197 bal.PRJ_OTH_COMMITTED_COST,
4198 to_number(null) POU_RAW_COST,
4199 to_number(null) POU_BILL_RAW_COST,
4200 to_number(null) POU_BRDN_COST,
4201 to_number(null) POU_BILL_BRDN_COST,
4202 to_number(null) POU_REVENUE,
4203 bal.POU_SUP_INV_COMMITTED_COST,
4204 bal.POU_PO_COMMITTED_COST,
4205 bal.POU_PR_COMMITTED_COST,
4206 bal.POU_OTH_COMMITTED_COST,
4207 to_number(null) EOU_RAW_COST,
4208 to_number(null) EOU_BILL_RAW_COST,
4209 to_number(null) EOU_BRDN_COST,
4210 to_number(null) EOU_BILL_BRDN_COST,
4211 bal.EOU_SUP_INV_COMMITTED_COST,
4212 bal.EOU_PO_COMMITTED_COST,
4213 bal.EOU_PR_COMMITTED_COST,
4214 bal.EOU_OTH_COMMITTED_COST,
4215 to_number(null) G1_RAW_COST,
4216 to_number(null) G1_BILL_RAW_COST,
4217 to_number(null) G1_BRDN_COST,
4218 to_number(null) G1_BILL_BRDN_COST,
4219 to_number(null) G1_REVENUE,
4220 bal.G1_SUP_INV_COMMITTED_COST,
4221 bal.G1_PO_COMMITTED_COST,
4222 bal.G1_PR_COMMITTED_COST,
4223 bal.G1_OTH_COMMITTED_COST,
4224 to_number(null) G2_RAW_COST,
4225 to_number(null) G2_BILL_RAW_COST,
4226 to_number(null) G2_BRDN_COST,
4227 to_number(null) G2_BILL_BRDN_COST,
4228 to_number(null) G2_REVENUE,
4229 bal.G2_SUP_INV_COMMITTED_COST,
4230 bal.G2_PO_COMMITTED_COST,
4231 bal.G2_PR_COMMITTED_COST,
4232 bal.G2_OTH_COMMITTED_COST,
4233 to_number(null) QUANTITY,
4234 to_number(null) BILL_QUANTITY
4235 from
4236 PJI_PA_PROJ_EVENTS_LOG log,
4237 PJI_PJP_PROJ_EXTR_STATUS stat,
4238 PJI_FP_TXN_ACCUM1 bal
4239 where
4240 l_extraction_type = 'RBS' and
4241 log.WORKER_ID = p_worker_id and
4242 log.EVENT_TYPE = 'RBS_PUSH' and
4243 stat.PROJECT_ID = log.ATTRIBUTE19 and
4244 stat.EXTRACTION_STATUS = 'I' and
4245 bal.PROJECT_ID = log.ATTRIBUTE19
4246 ) src1
4247 group by
4248 src1.TXN_ACCUM_HEADER_ID,
4249 src1.RESOURCE_CLASS_ID,
4250 src1.PROJECT_ID,
4251 src1.PROJECT_ORG_ID,
4252 src1.PROJECT_ORGANIZATION_ID,
4253 src1.PROJECT_TYPE_CLASS,
4254 src1.TASK_ID,
4255 src1.RECVR_PERIOD_TYPE,
4256 src1.RECVR_PERIOD_ID,
4257 src1.RBS_VERSION_ID,
4258 src1.TXN_CURRENCY_CODE
4259 ) src2
4260 ) src,
4261 PA_RBS_TXN_ACCUM_MAP rbs,
4262 PJI_PJP_PROJ_BATCH_MAP map,
4263 PJI_ORG_EXTR_INFO info,
4264 PJI_PJP_WBS_HEADER wbs_hdr,
4265 PA_PROJ_ELEMENT_VERSIONS ver,
4266 (
4267 select 1 INVERT_ID from dual
4268 where l_g1_currency_code is not null union all
4269 select 2 INVERT_ID from dual
4270 where l_g2_currency_flag = 'Y' and
4271 l_g2_currency_code is not null union all
4272 select 4 INVERT_ID from dual union all
4273 select 8 INVERT_ID from dual union all
4274 select 16 INVERT_ID from dual
4275 where l_txn_currency_flag = 'Y'
4276 -- select 32 INVERT_ID from dual OMIT DETAIL SLICES FOR NOW
4277 -- where l_g1_currency_code is not null union all
4278 -- select 64 INVERT_ID from dual
4279 -- where l_g2_currency_flag = 'Y' and
4280 -- l_g2_currency_code is not null union all
4281 -- select 128 INVERT_ID from dual union all
4282 -- select 256 INVERT_ID from dual
4283 ) invert
4284 where
4285 src.TXN_ACCUM_HEADER_ID = rbs.TXN_ACCUM_HEADER_ID (+) and
4286 src.RBS_VERSION_ID = rbs.STRUCT_VERSION_ID (+) and
4287 map.WORKER_ID = p_worker_id and
4288 src.PROJECT_ID = map.PROJECT_ID and
4289 src.PROJECT_ORG_ID = info.ORG_ID and /*5377133 */
4290 wbs_hdr.PLAN_VERSION_ID = -1 and
4291 src.PROJECT_ID = wbs_hdr.PROJECT_ID and
4292 ver.ELEMENT_VERSION_ID = wbs_hdr.WBS_VERSION_ID
4293 ) src3
4294 group by
4295 src3.WORKER_ID,
4296 src3.TXN_ACCUM_HEADER_ID,
4297 src3.RESOURCE_CLASS_ID,
4298 src3.PROJECT_ID,
4299 src3.PROJECT_ORG_ID,
4300 src3.PROJECT_ORGANIZATION_ID,
4301 src3.PROJECT_TYPE_CLASS,
4302 src3.PROJECT_ELEMENT_ID,
4303 src3.TIME_ID,
4304 src3.PERIOD_TYPE_ID,
4305 src3.CALENDAR_TYPE,
4306 src3.RBS_AGGR_LEVEL,
4307 src3.WBS_ROLLUP_FLAG,
4308 src3.PRG_ROLLUP_FLAG,
4309 src3.DIFF_CURRENCY_CODE,
4310 src3.DIFF_ROWNUM,
4311 nvl(src3.CURRENCY_CODE, 'PJI$NULL'),
4312 src3.RBS_ELEMENT_ID,
4313 src3.RBS_VERSION_ID,
4314 src3.PLAN_VERSION_ID,
4315 src3.PLAN_TYPE_ID
4316 ) src,
4317 PA_RESOURCE_CLASSES_B cls
4318 where
4319 src.RESOURCE_CLASS_ID = cls.RESOURCE_CLASS_ID (+)
4320 group by
4321 src.WORKER_ID,
4322 src.TXN_ACCUM_HEADER_ID,
4323 src.PROJECT_ID,
4324 src.PROJECT_ORG_ID,
4325 src.PROJECT_ORGANIZATION_ID,
4326 src.PROJECT_ELEMENT_ID,
4327 src.TIME_ID,
4328 src.PERIOD_TYPE_ID,
4329 src.CALENDAR_TYPE,
4330 src.RBS_AGGR_LEVEL,
4331 src.WBS_ROLLUP_FLAG,
4332 src.PRG_ROLLUP_FLAG,
4333 src.CURR_RECORD_TYPE_ID,
4334 src.CURRENCY_CODE,
4335 src.RBS_ELEMENT_ID,
4336 src.RBS_VERSION_ID,
4337 src.PLAN_VERSION_ID,
4338 src.PLAN_TYPE_ID;
4339
4340 PJI_PROCESS_UTIL.REGISTER_STEP_COMPLETION(l_process, 'PJI_PJP_SUM_ROLLUP.AGGREGATE_FP_SLICES(p_worker_id);');
4341
4342 commit;
4343
4344 end AGGREGATE_FP_SLICES;
4345
4346
4347 -- -----------------------------------------------------
4348 -- procedure AGGREGATE_AC_SLICES
4349 --
4350 -- History
4351 -- 19-MAR-2004 SVERMETT Created
4352 --
4353 -- Internal PJP Summarization API.
4354 --
4355 -- -----------------------------------------------------
4356 procedure AGGREGATE_AC_SLICES (p_worker_id in number) is
4357
4358 l_process varchar2(30);
4359 l_extraction_type varchar2(30);
4360
4361
4362 l_txn_currency_flag varchar2(1);
4363 l_g2_currency_flag varchar2(1);
4364
4365 l_g1_currency_code varchar2(30);
4366 l_g2_currency_code varchar2(30);
4367
4368 l_plan_type_id number; -- Bug#5099574
4369 l_refresh_code number;
4370
4371
4372 begin
4373
4374 l_process := PJI_PJP_SUM_MAIN.g_process || to_char(p_worker_id);
4375
4376 l_extraction_type := PJI_PROCESS_UTIL.GET_PROCESS_PARAMETER(l_process, 'EXTRACTION_TYPE');
4377
4378 if (not PJI_PROCESS_UTIL.NEED_TO_RUN_STEP(l_process, 'PJI_PJP_SUM_ROLLUP.AGGREGATE_AC_SLICES(p_worker_id);')) then
4379 return;
4380 end if;
4381
4382 -- Bug#5099574 - Start
4383
4384 l_plan_type_id := PJI_PROCESS_UTIL.GET_PROCESS_PARAMETER (l_process, 'PLAN_TYPE_ID');
4385 l_refresh_code := PJI_PROCESS_UTIL.GET_PROCESS_PARAMETER (l_process, 'REFRESH_CODE');
4386
4387 if (l_plan_type_id = -1) then
4388 l_plan_type_id := null;
4389 end if;
4390
4391 -- If the condtion is true then mark the process as completed and return
4392 if ( l_extraction_type='PARTIAL' and ( l_plan_type_id is not null or bitand(l_refresh_code,1) <> 1) ) then
4393 PJI_PROCESS_UTIL.REGISTER_STEP_COMPLETION(l_process, 'PJI_PJP_SUM_ROLLUP.AGGREGATE_AC_SLICES(p_worker_id);');
4394 commit;
4395 return;
4396 end if;
4397
4398 -- Bug#5099574 - End
4399
4400 if (l_extraction_type <> 'RBS') then
4401
4402 select
4403 TXN_CURR_FLAG,
4404 GLOBAL_CURR2_FLAG
4405 into
4406 l_txn_currency_flag,
4407 l_g2_currency_flag
4408 from
4409 PJI_SYSTEM_SETTINGS;
4410
4411 l_g1_currency_code := PJI_UTILS.GET_GLOBAL_PRIMARY_CURRENCY;
4412 l_g2_currency_code := PJI_UTILS.GET_GLOBAL_SECONDARY_CURRENCY;
4413
4414 insert into PJI_AC_AGGR_PJP0 pjp0_i
4415 (
4416 WORKER_ID,
4417 PROJECT_ID,
4418 PROJECT_ORG_ID,
4419 PROJECT_ORGANIZATION_ID,
4420 PROJECT_ELEMENT_ID,
4421 TIME_ID,
4422 PERIOD_TYPE_ID,
4423 CALENDAR_TYPE,
4424 WBS_ROLLUP_FLAG,
4425 PRG_ROLLUP_FLAG,
4426 CURR_RECORD_TYPE_ID,
4427 CURRENCY_CODE,
4428 REVENUE,
4429 INITIAL_FUNDING_AMOUNT,
4430 INITIAL_FUNDING_COUNT,
4431 ADDITIONAL_FUNDING_AMOUNT,
4432 ADDITIONAL_FUNDING_COUNT,
4433 CANCELLED_FUNDING_AMOUNT,
4434 CANCELLED_FUNDING_COUNT,
4435 FUNDING_ADJUSTMENT_AMOUNT,
4436 FUNDING_ADJUSTMENT_COUNT,
4437 REVENUE_WRITEOFF,
4438 AR_INVOICE_AMOUNT,
4439 AR_INVOICE_COUNT,
4440 AR_CASH_APPLIED_AMOUNT,
4441 AR_INVOICE_WRITE_OFF_AMOUNT,
4442 AR_INVOICE_WRITEOFF_COUNT,
4443 AR_CREDIT_MEMO_AMOUNT,
4444 AR_CREDIT_MEMO_COUNT,
4445 UNBILLED_RECEIVABLES,
4446 UNEARNED_REVENUE,
4447 AR_UNAPPR_INVOICE_AMOUNT,
4448 AR_UNAPPR_INVOICE_COUNT,
4449 AR_APPR_INVOICE_AMOUNT,
4450 AR_APPR_INVOICE_COUNT,
4451 AR_AMOUNT_DUE,
4452 AR_COUNT_DUE,
4453 AR_AMOUNT_OVERDUE,
4454 AR_COUNT_OVERDUE
4455 )
4456 select
4457 WORKER_ID,
4458 PROJECT_ID,
4459 PROJECT_ORG_ID,
4460 PROJECT_ORGANIZATION_ID,
4461 PROJECT_ELEMENT_ID,
4462 TIME_ID,
4463 PERIOD_TYPE_ID,
4464 CALENDAR_TYPE,
4465 WBS_ROLLUP_FLAG,
4466 PRG_ROLLUP_FLAG,
4467 sum(CURR_RECORD_TYPE_ID) CURR_RECORD_TYPE_ID,
4468 nvl(CURRENCY_CODE, 'PJI$NULL') CURRENCY_CODE,
4469 max(REVENUE) REVENUE,
4470 max(INITIAL_FUNDING_AMOUNT) INITIAL_FUNDING_AMOUNT,
4471 max(INITIAL_FUNDING_COUNT) INITIAL_FUNDING_COUNT,
4472 max(ADDITIONAL_FUNDING_AMOUNT) ADDITIONAL_FUNDING_AMOUNT,
4473 max(ADDITIONAL_FUNDING_COUNT) ADDITIONAL_FUNDING_COUNT,
4474 max(CANCELLED_FUNDING_AMOUNT) CANCELLED_FUNDING_AMOUNT,
4475 max(CANCELLED_FUNDING_COUNT) CANCELLED_FUNDING_COUNT,
4476 max(FUNDING_ADJUSTMENT_AMOUNT) FUNDING_ADJUSTMENT_AMOUNT,
4477 max(FUNDING_ADJUSTMENT_COUNT) FUNDING_ADJUSTMENT_COUNT,
4478 max(REVENUE_WRITEOFF) REVENUE_WRITEOFF,
4479 max(AR_INVOICE_AMOUNT) AR_INVOICE_AMOUNT,
4480 max(AR_INVOICE_COUNT) AR_INVOICE_COUNT,
4481 max(AR_CASH_APPLIED_AMOUNT) AR_CASH_APPLIED_AMOUNT,
4482 max(AR_INVOICE_WRITE_OFF_AMOUNT) AR_INVOICE_WRITE_OFF_AMOUNT,
4483 max(AR_INVOICE_WRITEOFF_COUNT) AR_INVOICE_WRITEOFF_COUNT,
4484 max(AR_CREDIT_MEMO_AMOUNT) AR_CREDIT_MEMO_AMOUNT,
4485 max(AR_CREDIT_MEMO_COUNT) AR_CREDIT_MEMO_COUNT,
4486 max(UNBILLED_RECEIVABLES) UNBILLED_RECEIVABLES,
4487 max(UNEARNED_REVENUE) UNEARNED_REVENUE,
4488 max(AR_UNAPPR_INVOICE_AMOUNT) AR_UNAPPR_INVOICE_AMOUNT,
4489 max(AR_UNAPPR_INVOICE_COUNT) AR_UNAPPR_INVOICE_COUNT,
4490 max(AR_APPR_INVOICE_AMOUNT) AR_APPR_INVOICE_AMOUNT,
4491 max(AR_APPR_INVOICE_COUNT) AR_APPR_INVOICE_COUNT,
4492 max(AR_AMOUNT_DUE) AR_AMOUNT_DUE,
4493 max(AR_COUNT_DUE) AR_COUNT_DUE,
4494 max(AR_AMOUNT_OVERDUE) AR_AMOUNT_OVERDUE,
4495 max(AR_COUNT_OVERDUE) AR_COUNT_OVERDUE
4496 from
4497 (
4498 select /*+ ordered */
4499 p_worker_id WORKER_ID,
4500 src.PROJECT_ID,
4501 src.PROJECT_ORG_ID,
4502 map.PROJECT_ORGANIZATION_ID,
4503 decode(src.TASK_ID,
4504 -1, ver.PROJ_ELEMENT_ID,
4505 src.TASK_ID) PROJECT_ELEMENT_ID,
4506 src.PERIOD_ID TIME_ID,
4507 32 PERIOD_TYPE_ID,
4508 decode(src.PERIOD_TYPE,
4509 'ENT', 'E',
4510 'GL', 'G',
4511 'PA', 'P') CALENDAR_TYPE,
4512 'N' WBS_ROLLUP_FLAG,
4513 'N' PRG_ROLLUP_FLAG,
4514 invert.INVERT_ID CURR_RECORD_TYPE_ID,
4515 decode(invert.INVERT_ID,
4516 1, l_g1_currency_code,
4517 2, l_g2_currency_code,
4518 4, src.PF_CURRENCY_CODE,
4519 8, src.PRJ_CURRENCY_CODE,
4520 16, src.TXN_CURRENCY_CODE,
4521 32, l_g1_currency_code,
4522 64, l_g2_currency_code,
4523 128, src.PF_CURRENCY_CODE,
4524 256, src.PRJ_CURRENCY_CODE) DIFF_CURRENCY_CODE,
4525 DIFF_ROWNUM DIFF_ROWNUM,
4526 decode(invert.INVERT_ID,
4527 1, l_g1_currency_code,
4528 2, l_g2_currency_code,
4529 4, src.PF_CURRENCY_CODE,
4530 8, src.PRJ_CURRENCY_CODE,
4531 16, src.TXN_CURRENCY_CODE,
4532 32, src.TXN_CURRENCY_CODE,
4533 64, src.TXN_CURRENCY_CODE,
4534 128, src.TXN_CURRENCY_CODE,
4535 256, src.TXN_CURRENCY_CODE) CURRENCY_CODE,
4536 decode(invert.INVERT_ID,
4537 1, src.G1_REVENUE,
4538 2, src.G2_REVENUE,
4539 4, src.POU_REVENUE,
4540 8, src.PRJ_REVENUE,
4541 16, src.TXN_REVENUE,
4542 32, src.G1_REVENUE,
4543 64, src.G2_REVENUE,
4544 128, src.POU_REVENUE,
4545 256, src.PRJ_REVENUE) REVENUE,
4546 decode(invert.INVERT_ID,
4547 1, src.G1_INITIAL_FUNDING_AMOUNT,
4548 2, src.G2_INITIAL_FUNDING_AMOUNT,
4549 4, src.POU_INITIAL_FUNDING_AMOUNT,
4550 8, src.PRJ_INITIAL_FUNDING_AMOUNT,
4551 16, src.TXN_INITIAL_FUNDING_AMOUNT,
4552 32, src.G1_INITIAL_FUNDING_AMOUNT,
4553 64, src.G2_INITIAL_FUNDING_AMOUNT,
4554 128, src.POU_INITIAL_FUNDING_AMOUNT,
4555 256, src.PRJ_INITIAL_FUNDING_AMOUNT)
4556 INITIAL_FUNDING_AMOUNT,
4557 src.INITIAL_FUNDING_COUNT,
4558 decode(invert.INVERT_ID,
4559 1, src.G1_ADDITIONAL_FUNDING_AMOUNT,
4560 2, src.G2_ADDITIONAL_FUNDING_AMOUNT,
4561 4, src.POU_ADDITIONAL_FUNDING_AMOUNT,
4562 8, src.PRJ_ADDITIONAL_FUNDING_AMOUNT,
4563 16, src.TXN_ADDITIONAL_FUNDING_AMOUNT,
4564 32, src.G1_ADDITIONAL_FUNDING_AMOUNT,
4565 64, src.G2_ADDITIONAL_FUNDING_AMOUNT,
4566 128, src.POU_ADDITIONAL_FUNDING_AMOUNT,
4567 256, src.PRJ_ADDITIONAL_FUNDING_AMOUNT)
4568 ADDITIONAL_FUNDING_AMOUNT,
4569 src.ADDITIONAL_FUNDING_COUNT,
4570 decode(invert.INVERT_ID,
4571 1, src.G1_CANCELLED_FUNDING_AMOUNT,
4572 2, src.G2_CANCELLED_FUNDING_AMOUNT,
4573 4, src.POU_CANCELLED_FUNDING_AMOUNT,
4574 8, src.PRJ_CANCELLED_FUNDING_AMOUNT,
4575 16, src.TXN_CANCELLED_FUNDING_AMOUNT,
4576 32, src.G1_CANCELLED_FUNDING_AMOUNT,
4577 64, src.G2_CANCELLED_FUNDING_AMOUNT,
4578 128, src.POU_CANCELLED_FUNDING_AMOUNT,
4579 256, src.PRJ_CANCELLED_FUNDING_AMOUNT)
4580 CANCELLED_FUNDING_AMOUNT,
4581 src.CANCELLED_FUNDING_COUNT,
4582 decode(invert.INVERT_ID,
4583 1, src.G1_FUNDING_ADJUSTMENT_AMOUNT,
4584 2, src.G2_FUNDING_ADJUSTMENT_AMOUNT,
4585 4, src.POU_FUNDING_ADJUSTMENT_AMOUNT,
4586 8, src.PRJ_FUNDING_ADJUSTMENT_AMOUNT,
4587 16, src.TXN_FUNDING_ADJUSTMENT_AMOUNT,
4588 32, src.G1_FUNDING_ADJUSTMENT_AMOUNT,
4589 64, src.G2_FUNDING_ADJUSTMENT_AMOUNT,
4590 128, src.POU_FUNDING_ADJUSTMENT_AMOUNT,
4591 256, src.PRJ_FUNDING_ADJUSTMENT_AMOUNT)
4592 FUNDING_ADJUSTMENT_AMOUNT,
4593 src.FUNDING_ADJUSTMENT_COUNT,
4594 decode(invert.INVERT_ID,
4595 1, src.G1_REVENUE_WRITEOFF,
4596 2, src.G2_REVENUE_WRITEOFF,
4597 4, src.POU_REVENUE_WRITEOFF,
4598 8, src.PRJ_REVENUE_WRITEOFF,
4599 16, src.TXN_REVENUE_WRITEOFF,
4600 32, src.G1_REVENUE_WRITEOFF,
4601 64, src.G2_REVENUE_WRITEOFF,
4602 128, src.POU_REVENUE_WRITEOFF,
4603 256, src.PRJ_REVENUE_WRITEOFF) REVENUE_WRITEOFF,
4604 decode(invert.INVERT_ID,
4605 1, src.G1_AR_INVOICE_AMOUNT,
4606 2, src.G2_AR_INVOICE_AMOUNT,
4607 4, src.POU_AR_INVOICE_AMOUNT,
4608 8, src.PRJ_AR_INVOICE_AMOUNT,
4609 16, src.TXN_AR_INVOICE_AMOUNT,
4610 32, src.G1_AR_INVOICE_AMOUNT,
4611 64, src.G2_AR_INVOICE_AMOUNT,
4612 128, src.POU_AR_INVOICE_AMOUNT,
4613 256, src.PRJ_AR_INVOICE_AMOUNT) AR_INVOICE_AMOUNT,
4614 src.AR_INVOICE_COUNT,
4615 decode(invert.INVERT_ID,
4616 1, src.G1_AR_CASH_APPLIED_AMOUNT,
4617 2, src.G2_AR_CASH_APPLIED_AMOUNT,
4618 4, src.POU_AR_CASH_APPLIED_AMOUNT,
4619 8, src.PRJ_AR_CASH_APPLIED_AMOUNT,
4620 16, src.TXN_AR_CASH_APPLIED_AMOUNT,
4621 32, src.G1_AR_CASH_APPLIED_AMOUNT,
4622 64, src.G2_AR_CASH_APPLIED_AMOUNT,
4623 128, src.POU_AR_CASH_APPLIED_AMOUNT,
4624 256, src.PRJ_AR_CASH_APPLIED_AMOUNT)
4625 AR_CASH_APPLIED_AMOUNT,
4626 decode(invert.INVERT_ID,
4627 1, src.G1_AR_INVOICE_WRITEOFF_AMOUNT,
4628 2, src.G2_AR_INVOICE_WRITEOFF_AMOUNT,
4629 4, src.POU_AR_INVOICE_WRITEOFF_AMOUNT,
4630 8, src.PRJ_AR_INVOICE_WRITEOFF_AMOUNT,
4631 16, src.TXN_AR_INVOICE_WRITEOFF_AMOUNT,
4632 32, src.G1_AR_INVOICE_WRITEOFF_AMOUNT,
4633 64, src.G2_AR_INVOICE_WRITEOFF_AMOUNT,
4634 128, src.POU_AR_INVOICE_WRITEOFF_AMOUNT,
4635 256, src.PRJ_AR_INVOICE_WRITEOFF_AMOUNT)
4636 AR_INVOICE_WRITE_OFF_AMOUNT,
4637 src.AR_INVOICE_WRITEOFF_COUNT,
4638 decode(invert.INVERT_ID,
4639 1, src.G1_AR_CREDIT_MEMO_AMOUNT,
4640 2, src.G2_AR_CREDIT_MEMO_AMOUNT,
4641 4, src.POU_AR_CREDIT_MEMO_AMOUNT,
4642 8, src.PRJ_AR_CREDIT_MEMO_AMOUNT,
4643 16, src.TXN_AR_CREDIT_MEMO_AMOUNT,
4644 32, src.G1_AR_CREDIT_MEMO_AMOUNT,
4645 64, src.G2_AR_CREDIT_MEMO_AMOUNT,
4646 128, src.POU_AR_CREDIT_MEMO_AMOUNT,
4647 256, src.PRJ_AR_CREDIT_MEMO_AMOUNT) AR_CREDIT_MEMO_AMOUNT,
4648 src.AR_CREDIT_MEMO_COUNT,
4649 decode(invert.INVERT_ID,
4650 1, src.G1_UNBILLED_RECEIVABLES,
4651 2, src.G2_UNBILLED_RECEIVABLES,
4652 4, src.POU_UNBILLED_RECEIVABLES,
4653 8, src.PRJ_UNBILLED_RECEIVABLES,
4654 16, src.TXN_UNBILLED_RECEIVABLES,
4655 32, src.G1_UNBILLED_RECEIVABLES,
4656 64, src.G2_UNBILLED_RECEIVABLES,
4657 128, src.POU_UNBILLED_RECEIVABLES,
4658 256, src.PRJ_UNBILLED_RECEIVABLES) UNBILLED_RECEIVABLES,
4659 decode(invert.INVERT_ID,
4660 1, src.G1_UNEARNED_REVENUE,
4661 2, src.G2_UNEARNED_REVENUE,
4662 4, src.POU_UNEARNED_REVENUE,
4663 8, src.PRJ_UNEARNED_REVENUE,
4664 16, src.TXN_UNEARNED_REVENUE,
4665 32, src.G1_UNEARNED_REVENUE,
4666 64, src.G2_UNEARNED_REVENUE,
4667 128, src.POU_UNEARNED_REVENUE,
4668 256, src.PRJ_UNEARNED_REVENUE) UNEARNED_REVENUE,
4669 decode(invert.INVERT_ID,
4670 1, src.G1_AR_UNAPPR_INVOICE_AMOUNT,
4671 2, src.G2_AR_UNAPPR_INVOICE_AMOUNT,
4672 4, src.POU_AR_UNAPPR_INVOICE_AMOUNT,
4673 8, src.PRJ_AR_UNAPPR_INVOICE_AMOUNT,
4674 16, src.TXN_AR_UNAPPR_INVOICE_AMOUNT,
4675 32, src.G1_AR_UNAPPR_INVOICE_AMOUNT,
4676 64, src.G2_AR_UNAPPR_INVOICE_AMOUNT,
4677 128, src.POU_AR_UNAPPR_INVOICE_AMOUNT,
4678 256, src.PRJ_AR_UNAPPR_INVOICE_AMOUNT)
4679 AR_UNAPPR_INVOICE_AMOUNT,
4680 src.AR_UNAPPR_INVOICE_COUNT,
4681 decode(invert.INVERT_ID,
4682 1, src.G1_AR_APPR_INVOICE_AMOUNT,
4683 2, src.G2_AR_APPR_INVOICE_AMOUNT,
4684 4, src.POU_AR_APPR_INVOICE_AMOUNT,
4685 8, src.PRJ_AR_APPR_INVOICE_AMOUNT,
4686 16, src.TXN_AR_APPR_INVOICE_AMOUNT,
4687 32, src.G1_AR_APPR_INVOICE_AMOUNT,
4688 64, src.G2_AR_APPR_INVOICE_AMOUNT,
4689 128, src.POU_AR_APPR_INVOICE_AMOUNT,
4690 256, src.PRJ_AR_APPR_INVOICE_AMOUNT)
4691 AR_APPR_INVOICE_AMOUNT,
4692 src.AR_APPR_INVOICE_COUNT,
4693 decode(invert.INVERT_ID,
4694 1, src.G1_AR_AMOUNT_DUE,
4695 2, src.G2_AR_AMOUNT_DUE,
4696 4, src.POU_AR_AMOUNT_DUE,
4697 8, src.PRJ_AR_AMOUNT_DUE,
4698 16, src.TXN_AR_AMOUNT_DUE,
4699 32, src.G1_AR_AMOUNT_DUE,
4700 64, src.G2_AR_AMOUNT_DUE,
4701 128, src.POU_AR_AMOUNT_DUE,
4702 256, src.PRJ_AR_AMOUNT_DUE) AR_AMOUNT_DUE,
4703 src.AR_COUNT_DUE,
4704 decode(invert.INVERT_ID,
4705 1, src.G1_AR_AMOUNT_OVERDUE,
4706 2, src.G2_AR_AMOUNT_OVERDUE,
4707 4, src.POU_AR_AMOUNT_OVERDUE,
4708 8, src.PRJ_AR_AMOUNT_OVERDUE,
4709 16, src.TXN_AR_AMOUNT_OVERDUE,
4710 32, src.G1_AR_AMOUNT_OVERDUE,
4711 64, src.G2_AR_AMOUNT_OVERDUE,
4712 128, src.POU_AR_AMOUNT_OVERDUE,
4713 256, src.PRJ_AR_AMOUNT_OVERDUE) AR_AMOUNT_OVERDUE,
4714 src.AR_COUNT_OVERDUE
4715 from
4716 (
4717 select
4718 ROWNUM DIFF_ROWNUM,
4719 PROJECT_ID,
4720 PROJECT_ORG_ID,
4721 PROJECT_ORGANIZATION_ID,
4722 TASK_ID,
4723 PERIOD_TYPE,
4724 PERIOD_ID,
4725 PF_CURRENCY_CODE,
4726 PRJ_CURRENCY_CODE,
4727 TXN_CURRENCY_CODE,
4728 TXN_REVENUE,
4729 TXN_FUNDING,
4730 TXN_INITIAL_FUNDING_AMOUNT,
4731 TXN_ADDITIONAL_FUNDING_AMOUNT,
4732 TXN_CANCELLED_FUNDING_AMOUNT,
4733 TXN_FUNDING_ADJUSTMENT_AMOUNT,
4734 TXN_REVENUE_WRITEOFF,
4735 TXN_AR_INVOICE_AMOUNT,
4736 TXN_AR_CASH_APPLIED_AMOUNT,
4737 TXN_AR_INVOICE_WRITEOFF_AMOUNT,
4738 TXN_AR_CREDIT_MEMO_AMOUNT,
4739 TXN_UNBILLED_RECEIVABLES,
4740 TXN_UNEARNED_REVENUE,
4741 TXN_AR_UNAPPR_INVOICE_AMOUNT,
4742 TXN_AR_APPR_INVOICE_AMOUNT,
4743 TXN_AR_AMOUNT_DUE,
4744 TXN_AR_AMOUNT_OVERDUE,
4745 PRJ_REVENUE,
4746 PRJ_FUNDING,
4747 PRJ_INITIAL_FUNDING_AMOUNT,
4748 PRJ_ADDITIONAL_FUNDING_AMOUNT,
4749 PRJ_CANCELLED_FUNDING_AMOUNT,
4750 PRJ_FUNDING_ADJUSTMENT_AMOUNT,
4751 PRJ_REVENUE_WRITEOFF,
4752 PRJ_AR_INVOICE_AMOUNT,
4753 PRJ_AR_CASH_APPLIED_AMOUNT,
4754 PRJ_AR_INVOICE_WRITEOFF_AMOUNT,
4755 PRJ_AR_CREDIT_MEMO_AMOUNT,
4756 PRJ_UNBILLED_RECEIVABLES,
4757 PRJ_UNEARNED_REVENUE,
4758 PRJ_AR_UNAPPR_INVOICE_AMOUNT,
4759 PRJ_AR_APPR_INVOICE_AMOUNT,
4760 PRJ_AR_AMOUNT_DUE,
4761 PRJ_AR_AMOUNT_OVERDUE,
4762 POU_REVENUE,
4763 POU_FUNDING,
4764 POU_INITIAL_FUNDING_AMOUNT,
4765 POU_ADDITIONAL_FUNDING_AMOUNT,
4766 POU_CANCELLED_FUNDING_AMOUNT,
4767 POU_FUNDING_ADJUSTMENT_AMOUNT,
4768 POU_REVENUE_WRITEOFF,
4769 POU_AR_INVOICE_AMOUNT,
4770 POU_AR_CASH_APPLIED_AMOUNT,
4771 POU_AR_INVOICE_WRITEOFF_AMOUNT,
4772 POU_AR_CREDIT_MEMO_AMOUNT,
4773 POU_UNBILLED_RECEIVABLES,
4774 POU_UNEARNED_REVENUE,
4775 POU_AR_UNAPPR_INVOICE_AMOUNT,
4776 POU_AR_APPR_INVOICE_AMOUNT,
4777 POU_AR_AMOUNT_DUE,
4778 POU_AR_AMOUNT_OVERDUE,
4779 INITIAL_FUNDING_COUNT,
4780 ADDITIONAL_FUNDING_COUNT,
4781 CANCELLED_FUNDING_COUNT,
4782 FUNDING_ADJUSTMENT_COUNT,
4783 AR_INVOICE_COUNT,
4784 AR_CASH_APPLIED_COUNT,
4785 AR_INVOICE_WRITEOFF_COUNT,
4786 AR_CREDIT_MEMO_COUNT,
4787 AR_UNAPPR_INVOICE_COUNT,
4788 AR_APPR_INVOICE_COUNT,
4789 AR_COUNT_DUE,
4790 AR_COUNT_OVERDUE,
4791 G1_REVENUE,
4792 G1_FUNDING,
4793 G1_INITIAL_FUNDING_AMOUNT,
4794 G1_ADDITIONAL_FUNDING_AMOUNT,
4795 G1_CANCELLED_FUNDING_AMOUNT,
4796 G1_FUNDING_ADJUSTMENT_AMOUNT,
4797 G1_REVENUE_WRITEOFF,
4798 G1_AR_INVOICE_AMOUNT,
4799 G1_AR_CASH_APPLIED_AMOUNT,
4800 G1_AR_INVOICE_WRITEOFF_AMOUNT,
4801 G1_AR_CREDIT_MEMO_AMOUNT,
4802 G1_UNBILLED_RECEIVABLES,
4803 G1_UNEARNED_REVENUE,
4804 G1_AR_UNAPPR_INVOICE_AMOUNT,
4805 G1_AR_APPR_INVOICE_AMOUNT,
4806 G1_AR_AMOUNT_DUE,
4807 G1_AR_AMOUNT_OVERDUE,
4808 G2_REVENUE,
4809 G2_FUNDING,
4810 G2_INITIAL_FUNDING_AMOUNT,
4811 G2_ADDITIONAL_FUNDING_AMOUNT,
4812 G2_CANCELLED_FUNDING_AMOUNT,
4813 G2_FUNDING_ADJUSTMENT_AMOUNT,
4814 G2_REVENUE_WRITEOFF,
4815 G2_AR_INVOICE_AMOUNT,
4816 G2_AR_CASH_APPLIED_AMOUNT,
4817 G2_AR_INVOICE_WRITEOFF_AMOUNT,
4818 G2_AR_CREDIT_MEMO_AMOUNT,
4819 G2_UNBILLED_RECEIVABLES,
4820 G2_UNEARNED_REVENUE,
4821 G2_AR_UNAPPR_INVOICE_AMOUNT,
4822 G2_AR_APPR_INVOICE_AMOUNT,
4823 G2_AR_AMOUNT_DUE,
4824 G2_AR_AMOUNT_OVERDUE
4825 from
4826 (
4827 select /*+ ordered */
4828 src.PROJECT_ID,
4829 src.PROJECT_ORG_ID,
4830 src.PROJECT_ORGANIZATION_ID,
4831 nvl(src.TASK_ID, -1) TASK_ID,
4832 src.PERIOD_TYPE,
4833 src.PERIOD_ID,
4834 info.PF_CURRENCY_CODE,
4835 prj.PROJECT_CURRENCY_CODE PRJ_CURRENCY_CODE,
4836 src.TXN_CURRENCY_CODE,
4837 sum(src.TXN_REVENUE) TXN_REVENUE,
4838 sum(src.TXN_FUNDING) TXN_FUNDING,
4839 sum(src.TXN_INITIAL_FUNDING_AMOUNT) TXN_INITIAL_FUNDING_AMOUNT,
4840 sum(src.TXN_ADDITIONAL_FUNDING_AMOUNT)TXN_ADDITIONAL_FUNDING_AMOUNT,
4841 sum(src.TXN_CANCELLED_FUNDING_AMOUNT) TXN_CANCELLED_FUNDING_AMOUNT,
4842 sum(src.TXN_FUNDING_ADJUSTMENT_AMOUNT)TXN_FUNDING_ADJUSTMENT_AMOUNT,
4843 sum(src.TXN_REVENUE_WRITEOFF) TXN_REVENUE_WRITEOFF,
4844 sum(src.TXN_AR_INVOICE_AMOUNT) TXN_AR_INVOICE_AMOUNT,
4845 sum(src.TXN_AR_CASH_APPLIED_AMOUNT) TXN_AR_CASH_APPLIED_AMOUNT,
4846 sum(src.TXN_AR_INVOICE_WRITEOFF_AMOUNT)
4847 TXN_AR_INVOICE_WRITEOFF_AMOUNT,
4848 sum(src.TXN_AR_CREDIT_MEMO_AMOUNT) TXN_AR_CREDIT_MEMO_AMOUNT,
4849 sum(src.TXN_UNBILLED_RECEIVABLES) TXN_UNBILLED_RECEIVABLES,
4850 sum(src.TXN_UNEARNED_REVENUE) TXN_UNEARNED_REVENUE,
4851 sum(src.TXN_AR_UNAPPR_INVOICE_AMOUNT) TXN_AR_UNAPPR_INVOICE_AMOUNT,
4852 sum(src.TXN_AR_APPR_INVOICE_AMOUNT) TXN_AR_APPR_INVOICE_AMOUNT,
4853 sum(src.TXN_AR_AMOUNT_DUE) TXN_AR_AMOUNT_DUE,
4854 sum(src.TXN_AR_AMOUNT_OVERDUE) TXN_AR_AMOUNT_OVERDUE,
4855 sum(src.PRJ_REVENUE) PRJ_REVENUE,
4856 sum(src.PRJ_FUNDING) PRJ_FUNDING,
4857 sum(src.PRJ_INITIAL_FUNDING_AMOUNT) PRJ_INITIAL_FUNDING_AMOUNT,
4858 sum(src.PRJ_ADDITIONAL_FUNDING_AMOUNT)PRJ_ADDITIONAL_FUNDING_AMOUNT,
4859 sum(src.PRJ_CANCELLED_FUNDING_AMOUNT) PRJ_CANCELLED_FUNDING_AMOUNT,
4860 sum(src.PRJ_FUNDING_ADJUSTMENT_AMOUNT)PRJ_FUNDING_ADJUSTMENT_AMOUNT,
4861 sum(src.PRJ_REVENUE_WRITEOFF) PRJ_REVENUE_WRITEOFF,
4862 sum(src.PRJ_AR_INVOICE_AMOUNT) PRJ_AR_INVOICE_AMOUNT,
4863 sum(src.PRJ_AR_CASH_APPLIED_AMOUNT) PRJ_AR_CASH_APPLIED_AMOUNT,
4864 sum(src.PRJ_AR_INVOICE_WRITEOFF_AMOUNT)
4865 PRJ_AR_INVOICE_WRITEOFF_AMOUNT,
4866 sum(src.PRJ_AR_CREDIT_MEMO_AMOUNT) PRJ_AR_CREDIT_MEMO_AMOUNT,
4867 sum(src.PRJ_UNBILLED_RECEIVABLES) PRJ_UNBILLED_RECEIVABLES,
4868 sum(src.PRJ_UNEARNED_REVENUE) PRJ_UNEARNED_REVENUE,
4869 sum(src.PRJ_AR_UNAPPR_INVOICE_AMOUNT) PRJ_AR_UNAPPR_INVOICE_AMOUNT,
4870 sum(src.PRJ_AR_APPR_INVOICE_AMOUNT) PRJ_AR_APPR_INVOICE_AMOUNT,
4871 sum(src.PRJ_AR_AMOUNT_DUE) PRJ_AR_AMOUNT_DUE,
4872 sum(src.PRJ_AR_AMOUNT_OVERDUE) PRJ_AR_AMOUNT_OVERDUE,
4873 sum(src.POU_REVENUE) POU_REVENUE,
4874 sum(src.POU_FUNDING) POU_FUNDING,
4875 sum(src.POU_INITIAL_FUNDING_AMOUNT) POU_INITIAL_FUNDING_AMOUNT,
4876 sum(src.POU_ADDITIONAL_FUNDING_AMOUNT)POU_ADDITIONAL_FUNDING_AMOUNT,
4877 sum(src.POU_CANCELLED_FUNDING_AMOUNT) POU_CANCELLED_FUNDING_AMOUNT,
4878 sum(src.POU_FUNDING_ADJUSTMENT_AMOUNT)POU_FUNDING_ADJUSTMENT_AMOUNT,
4879 sum(src.POU_REVENUE_WRITEOFF) POU_REVENUE_WRITEOFF,
4880 sum(src.POU_AR_INVOICE_AMOUNT) POU_AR_INVOICE_AMOUNT,
4881 sum(src.POU_AR_CASH_APPLIED_AMOUNT) POU_AR_CASH_APPLIED_AMOUNT,
4882 sum(src.POU_AR_INVOICE_WRITEOFF_AMOUNT)
4883 POU_AR_INVOICE_WRITEOFF_AMOUNT,
4884 sum(src.POU_AR_CREDIT_MEMO_AMOUNT) POU_AR_CREDIT_MEMO_AMOUNT,
4885 sum(src.POU_UNBILLED_RECEIVABLES) POU_UNBILLED_RECEIVABLES,
4886 sum(src.POU_UNEARNED_REVENUE) POU_UNEARNED_REVENUE,
4887 sum(src.POU_AR_UNAPPR_INVOICE_AMOUNT) POU_AR_UNAPPR_INVOICE_AMOUNT,
4888 sum(src.POU_AR_APPR_INVOICE_AMOUNT) POU_AR_APPR_INVOICE_AMOUNT,
4889 sum(src.POU_AR_AMOUNT_DUE) POU_AR_AMOUNT_DUE,
4890 sum(src.POU_AR_AMOUNT_OVERDUE) POU_AR_AMOUNT_OVERDUE,
4891 sum(src.INITIAL_FUNDING_COUNT) INITIAL_FUNDING_COUNT,
4892 sum(src.ADDITIONAL_FUNDING_COUNT) ADDITIONAL_FUNDING_COUNT,
4893 sum(src.CANCELLED_FUNDING_COUNT) CANCELLED_FUNDING_COUNT,
4894 sum(src.FUNDING_ADJUSTMENT_COUNT) FUNDING_ADJUSTMENT_COUNT,
4895 sum(src.AR_INVOICE_COUNT) AR_INVOICE_COUNT,
4896 sum(src.AR_CASH_APPLIED_COUNT) AR_CASH_APPLIED_COUNT,
4897 sum(src.AR_INVOICE_WRITEOFF_COUNT) AR_INVOICE_WRITEOFF_COUNT,
4898 sum(src.AR_CREDIT_MEMO_COUNT) AR_CREDIT_MEMO_COUNT,
4899 sum(src.AR_UNAPPR_INVOICE_COUNT) AR_UNAPPR_INVOICE_COUNT,
4900 sum(src.AR_APPR_INVOICE_COUNT) AR_APPR_INVOICE_COUNT,
4901 sum(src.AR_COUNT_DUE) AR_COUNT_DUE,
4902 sum(src.AR_COUNT_OVERDUE) AR_COUNT_OVERDUE,
4903 sum(src.G1_REVENUE) G1_REVENUE,
4904 sum(src.G1_FUNDING) G1_FUNDING,
4905 sum(src.G1_INITIAL_FUNDING_AMOUNT) G1_INITIAL_FUNDING_AMOUNT,
4906 sum(src.G1_ADDITIONAL_FUNDING_AMOUNT) G1_ADDITIONAL_FUNDING_AMOUNT,
4907 sum(src.G1_CANCELLED_FUNDING_AMOUNT) G1_CANCELLED_FUNDING_AMOUNT,
4908 sum(src.G1_FUNDING_ADJUSTMENT_AMOUNT) G1_FUNDING_ADJUSTMENT_AMOUNT,
4909 sum(src.G1_REVENUE_WRITEOFF) G1_REVENUE_WRITEOFF,
4910 sum(src.G1_AR_INVOICE_AMOUNT) G1_AR_INVOICE_AMOUNT,
4911 sum(src.G1_AR_CASH_APPLIED_AMOUNT) G1_AR_CASH_APPLIED_AMOUNT,
4912 sum(src.G1_AR_INVOICE_WRITEOFF_AMOUNT)G1_AR_INVOICE_WRITEOFF_AMOUNT,
4913 sum(src.G1_AR_CREDIT_MEMO_AMOUNT) G1_AR_CREDIT_MEMO_AMOUNT,
4914 sum(src.G1_UNBILLED_RECEIVABLES) G1_UNBILLED_RECEIVABLES,
4915 sum(src.G1_UNEARNED_REVENUE) G1_UNEARNED_REVENUE,
4916 sum(src.G1_AR_UNAPPR_INVOICE_AMOUNT) G1_AR_UNAPPR_INVOICE_AMOUNT,
4917 sum(src.G1_AR_APPR_INVOICE_AMOUNT) G1_AR_APPR_INVOICE_AMOUNT,
4918 sum(src.G1_AR_AMOUNT_DUE) G1_AR_AMOUNT_DUE,
4919 sum(src.G1_AR_AMOUNT_OVERDUE) G1_AR_AMOUNT_OVERDUE,
4920 sum(src.G2_REVENUE) G2_REVENUE,
4921 sum(src.G2_FUNDING) G2_FUNDING,
4922 sum(src.G2_INITIAL_FUNDING_AMOUNT) G2_INITIAL_FUNDING_AMOUNT,
4923 sum(src.G2_ADDITIONAL_FUNDING_AMOUNT) G2_ADDITIONAL_FUNDING_AMOUNT,
4924 sum(src.G2_CANCELLED_FUNDING_AMOUNT) G2_CANCELLED_FUNDING_AMOUNT,
4925 sum(src.G2_FUNDING_ADJUSTMENT_AMOUNT) G2_FUNDING_ADJUSTMENT_AMOUNT,
4926 sum(src.G2_REVENUE_WRITEOFF) G2_REVENUE_WRITEOFF,
4927 sum(src.G2_AR_INVOICE_AMOUNT) G2_AR_INVOICE_AMOUNT,
4928 sum(src.G2_AR_CASH_APPLIED_AMOUNT) G2_AR_CASH_APPLIED_AMOUNT,
4929 sum(src.G2_AR_INVOICE_WRITEOFF_AMOUNT)G2_AR_INVOICE_WRITEOFF_AMOUNT,
4930 sum(src.G2_AR_CREDIT_MEMO_AMOUNT) G2_AR_CREDIT_MEMO_AMOUNT,
4931 sum(src.G2_UNBILLED_RECEIVABLES) G2_UNBILLED_RECEIVABLES,
4932 sum(src.G2_UNEARNED_REVENUE) G2_UNEARNED_REVENUE,
4933 sum(src.G2_AR_UNAPPR_INVOICE_AMOUNT) G2_AR_UNAPPR_INVOICE_AMOUNT,
4934 sum(src.G2_AR_APPR_INVOICE_AMOUNT) G2_AR_APPR_INVOICE_AMOUNT,
4935 sum(src.G2_AR_AMOUNT_DUE) G2_AR_AMOUNT_DUE,
4936 sum(src.G2_AR_AMOUNT_OVERDUE) G2_AR_AMOUNT_OVERDUE
4937 from
4938 PJI_PJP_RMAP_ACR src_r,
4939 PJI_FM_AGGR_ACT4 src,
4940 PA_PROJECTS_ALL prj,
4941 PJI_ORG_EXTR_INFO info
4942 where
4943 src_r.WORKER_ID = p_worker_id and
4944 src.ROWID = src_r.STG_ROWID and
4945 src.PROJECT_ID = prj.PROJECT_ID and
4946 prj.ORG_ID = info.ORG_ID /*5377133 */
4947 group by
4948 src.PROJECT_ID,
4949 src.PROJECT_ORG_ID,
4950 src.PROJECT_ORGANIZATION_ID,
4951 nvl(src.TASK_ID, -1),
4952 src.PERIOD_TYPE,
4953 src.PERIOD_ID,
4954 info.PF_CURRENCY_CODE,
4955 prj.PROJECT_CURRENCY_CODE,
4956 src.TXN_CURRENCY_CODE
4957 )
4958 ) src,
4959 PJI_PJP_PROJ_BATCH_MAP map,
4960 PJI_PJP_WBS_HEADER wbs_hdr,
4961 PA_PROJ_ELEMENT_VERSIONS ver,
4962 (
4963 select 1 INVERT_ID from dual
4964 where l_g1_currency_code is not null union all
4965 select 2 INVERT_ID from dual
4966 where l_g2_currency_flag = 'Y' and
4967 l_g2_currency_code is not null union all
4968 select 4 INVERT_ID from dual union all
4969 select 8 INVERT_ID from dual union all
4970 select 16 INVERT_ID from dual
4971 where l_txn_currency_flag = 'Y'
4972 -- select 32 INVERT_ID from dual OMIT DETAIL SLICES FOR NOW
4973 -- where l_g1_currency_code is not null union all
4974 -- select 64 INVERT_ID from dual
4975 -- where l_g2_currency_flag = 'Y' and
4976 -- l_g2_currency_code is not null union all
4977 -- select 128 INVERT_ID from dual union all
4978 -- select 256 INVERT_ID from dual
4979 ) invert
4980 where
4981 map.WORKER_ID = p_worker_id and
4982 src.PROJECT_ID = map.PROJECT_ID and
4983 wbs_hdr.PLAN_VERSION_ID = -1 and
4984 src.PROJECT_ID = wbs_hdr.PROJECT_ID and
4985 ver.ELEMENT_VERSION_ID = wbs_hdr.WBS_VERSION_ID
4986 )
4987 group by
4988 WORKER_ID,
4989 PROJECT_ID,
4990 PROJECT_ORG_ID,
4991 PROJECT_ORGANIZATION_ID,
4992 PROJECT_ELEMENT_ID,
4993 TIME_ID,
4994 PERIOD_TYPE_ID,
4995 CALENDAR_TYPE,
4996 WBS_ROLLUP_FLAG,
4997 PRG_ROLLUP_FLAG,
4998 DIFF_CURRENCY_CODE,
4999 DIFF_ROWNUM,
5000 nvl(CURRENCY_CODE, 'PJI$NULL');
5001
5002 end if;
5003
5004 PJI_PROCESS_UTIL.REGISTER_STEP_COMPLETION(l_process, 'PJI_PJP_SUM_ROLLUP.AGGREGATE_AC_SLICES(p_worker_id);');
5005
5006 commit;
5007
5008 end AGGREGATE_AC_SLICES;
5009
5010
5011 -- -----------------------------------------------------
5012 -- procedure MARK_EXTRACTED_PROJECTS
5013 --
5014 -- History
5015 -- 19-MAR-2004 SVERMETT Created
5016 --
5017 -- Internal PJP Summarization API.
5018 --
5019 -- -----------------------------------------------------
5020 procedure MARK_EXTRACTED_PROJECTS (p_worker_id in number) is
5021
5022 l_process varchar2(30);
5023 l_extraction_type varchar2(30);
5024
5025 l_last_update_date date;
5026 l_last_updated_by number;
5027 l_last_update_login number;
5028
5029 l_return_status varchar2(255) := FND_API.G_RET_STS_SUCCESS;
5030 l_msg_data varchar2(2000);
5031 l_err_msg VARCHAR2(100):= 'Error in PJI_PJP_SUM_ROLLUP.MARK_EXTRACTED_PROJECTS -> PJI_FM_PLAN_MAINT.POPULATE_FIN8';
5032
5033 begin
5034
5035 l_process := PJI_PJP_SUM_MAIN.g_process || to_char(p_worker_id);
5036
5037 if (not PJI_PROCESS_UTIL.NEED_TO_RUN_STEP(l_process, 'PJI_PJP_SUM_ROLLUP.MARK_EXTRACTED_PROJECTS(p_worker_id);')) then
5038 return;
5039 end if;
5040
5041 l_extraction_type := PJI_PROCESS_UTIL.GET_PROCESS_PARAMETER(l_process, 'EXTRACTION_TYPE');
5042
5043 l_last_update_date := sysdate;
5044 l_last_updated_by := FND_GLOBAL.USER_ID;
5045 l_last_update_login := FND_GLOBAL.LOGIN_ID;
5046
5047 update PA_PROJECTS_ALL
5048 set PJI_SOURCE_FLAG = 'Y',
5049 LAST_UPDATE_DATE = l_last_update_date,
5050 LAST_UPDATED_BY = l_last_updated_by,
5051 LAST_UPDATE_LOGIN = l_last_update_login
5052 where nvl(PJI_SOURCE_FLAG, 'X') <> 'Y' and
5053 PROJECT_ID in (select distinct
5054 PROJECT_ID
5055 from PJI_FP_AGGR_PJP0
5056 where WORKER_ID = p_worker_id
5057 union
5058 select distinct
5059 PROJECT_ID
5060 from PJI_AC_AGGR_PJP0
5061 where WORKER_ID = p_worker_id);
5062
5063 if (l_extraction_type = 'PARTIAL' or
5064 l_extraction_type = 'RBS') then
5065
5066 update PJI_PJP_PROJ_BATCH_MAP
5067 set PJI_PROJECT_STATUS = 'Y'
5068 where WORKER_ID = p_worker_id and
5069 PJI_PROJECT_STATUS is null;
5070
5071 elsif (l_extraction_type = 'FULL' or
5072 l_extraction_type = 'INCREMENTAL') then
5073
5074 /*bug#5349102 added the check for FIN8 */
5075 update PJI_PJP_PROJ_BATCH_MAP
5076 set PJI_PROJECT_STATUS = 'Y'
5077 where WORKER_ID = p_worker_id and
5078 PJI_PROJECT_STATUS is null and
5079 PROJECT_ID in (select distinct
5080 PROJECT_ID
5081 from PJI_FP_AGGR_PJP0
5082 where WORKER_ID = p_worker_id
5083 union
5084 select distinct
5085 PROJECT_ID
5086 from PJI_AC_AGGR_PJP0
5087 where WORKER_ID = p_worker_id
5088 union
5089 select distinct
5090 PROJECT_ID
5091 from pji_fm_aggr_fin8
5092 ) and
5093 PROJECT_ID in (select PROJECT_ID
5094 from PA_PROJECTS_ALL
5095 where STRUCTURE_SHARING_CODE = 'SHARE_FULL');
5096
5097 end if;
5098
5099 if (l_extraction_type = 'INCREMENTAL') then
5100
5101 update PJI_PJP_PROJ_BATCH_MAP map
5102 set map.EXTRACTION_TYPE = 'M'
5103 where map.WORKER_ID = p_worker_id and
5104 map.PROJECT_ID in (select fin7.PROJECT_ID
5105 from PJI_PJP_RMAP_FPR fin7_r,
5106 PJI_FM_AGGR_FIN7 fin7
5107 where fin7_r.WORKER_ID = p_worker_id and
5108 fin7_r.RECORD_TYPE = 'M' and
5109 fin7.ROWID = fin7_r.STG_ROWID);
5110
5111 update PJI_PJP_PROJ_BATCH_MAP map
5112 set map.EXTRACTION_TYPE = 'M'
5113 where map.WORKER_ID = p_worker_id and
5114 map.PROJECT_ID not in (select cmt.PROJECT_ID
5115 from PA_COMMITMENT_TXNS cmt);
5116
5117 end if;
5118
5119
5120 --
5121 -- Dev notes: Sadiq 21-Oct-2005
5122 --
5123 -- Populate fin8 was moved from get_planres_actuals to mark_extracted_projects
5124 -- to avoid populating it multiple times in case of a failure in
5125 -- proj perf/progress integration apis that can cause the step to run
5126 -- again. Also, use of savepoint to populate fin8 on a project-by-project basis
5127 -- was considered but not chosen as this solution will not scale. Further this
5128 -- step (mark extr proj) has relatively less processing compared to other steps
5129 -- and is a good place to perform this transaction.
5130 --
5131 -- This change needs to be kept in mind when performing changes to sumz (adding
5132 -- new steps or changing sequences) programs in future.
5133 --
5134
5135 PJI_FM_PLAN_MAINT.POPULATE_FIN8 (p_worker_id => p_worker_id,
5136 p_extraction_type => l_extraction_type,
5137 x_return_status => l_return_status,
5138 x_msg_data => l_msg_data);
5139
5140 IF (l_return_status <> FND_API.G_RET_STS_SUCCESS) THEN
5141 dbms_standard.raise_application_error(-20105, l_err_msg);
5142 END IF;
5143
5144
5145 PJI_PROCESS_UTIL.REGISTER_STEP_COMPLETION(l_process, 'PJI_PJP_SUM_ROLLUP.MARK_EXTRACTED_PROJECTS(p_worker_id);');
5146
5147 commit;
5148
5149 end MARK_EXTRACTED_PROJECTS;
5150
5151
5152 -- -----------------------------------------------------
5153 -- procedure AGGREGATE_FP_CUST_SLICES
5154 --
5155 -- History
5156 -- 19-MAR-2004 SVERMETT Created
5157 --
5158 -- Internal PJP Summarization API.
5159 --
5160 -- Called by RBS program
5161 --
5162 -- -----------------------------------------------------
5163 procedure AGGREGATE_FP_CUST_SLICES (p_worker_id in number) is
5164
5165 l_process varchar2(30);
5166 l_extraction_type varchar2(30);
5167 l_plan_type_id number; -- Bug#5099574
5168 l_refresh_code number;
5169 l_workplan_type_id number;
5170
5171 begin
5172
5173 l_process := PJI_PJP_SUM_MAIN.g_process || to_char(p_worker_id);
5174
5175 l_extraction_type := PJI_PROCESS_UTIL.GET_PROCESS_PARAMETER(l_process, 'EXTRACTION_TYPE');
5176 l_refresh_code := PJI_PROCESS_UTIL.GET_PROCESS_PARAMETER (l_process, 'REFRESH_CODE'); -- Bug#5099574
5177
5178 if (not PJI_PROCESS_UTIL.NEED_TO_RUN_STEP(l_process, 'PJI_PJP_SUM_ROLLUP.AGGREGATE_FP_CUST_SLICES(p_worker_id);')) then
5179 return;
5180 end if;
5181
5182 l_plan_type_id := PJI_PROCESS_UTIL.GET_PROCESS_PARAMETER
5183 (l_process, 'PLAN_TYPE_ID');
5184
5185 if (l_plan_type_id = -1) then
5186 l_plan_type_id := null;
5187 end if;
5188
5189 if (l_extraction_type ='PARTIAL') then -- Partial Refresh Performance Improvement
5190
5191 -- Bug# 5208322 : the workplan plan_type_id is stored in l_workplan_type_id
5192 begin
5193 SELECT fin_plan_type_id into l_workplan_type_id
5194 FROM pa_fin_plan_types_b
5195 WHERE use_for_workplan_flag = 'Y';
5196 exception
5197 when no_data_found then
5198 l_workplan_type_id := NULL;
5199 end;
5200
5201
5202 INSERT INTO pji_fm_extr_plnver3_t
5203 (worker_id,project_id,plan_version_id,time_phased_type_code)
5204 select
5205 map.worker_id,bv.project_id,bv.budget_version_id,
5206 nvl(fpo.all_time_phased_code,nvl(fpo.cost_time_phased_code,fpo.revenue_time_phased_code)) time_phased_code
5207 from
5208 PJI_PJP_PROJ_BATCH_MAP map,
5209 PA_PROJ_FP_OPTIONS fpo,
5210 PA_BUDGET_VERSIONS bv
5211 where
5212 map.WORKER_ID = p_worker_id and
5213 fpo.FIN_PLAN_TYPE_ID = nvl(l_plan_type_id,fpo.FIN_PLAN_TYPE_ID) and
5214 fpo.PROJECT_ID = map.PROJECT_ID and
5215 bv.PROJECT_ID = map.PROJECT_ID and
5216 bv.BUDGET_VERSION_ID = fpo.FIN_PLAN_VERSION_ID and
5217 (
5218 'Y' IN -- Bug#5099574 Pull Reversals for CB / CO if refresh_code < 62 . Else pull for all plans ids >0 if refresh_code>=62
5219 (
5220 Select decode(
5221 bitand(l_refresh_code,g_all_plans),g_all_plans,'Y',
5222 decode( bitand(l_refresh_code,g_cb_plans),g_cb_plans,
5223 decode(decode(bv.baselined_date, NULL, 'N', 'Y')||bv.current_flag,'YY', 'Y', 'N'),'X')) from dual
5224 UNION ALL
5225 Select decode(
5226 bitand(l_refresh_code,g_all_plans),g_all_plans,'Y',
5227 decode( bitand(l_refresh_code,g_co_plans),g_co_plans,bv.current_original_flag,'X')) from dual
5228 )
5229 OR -- Bug#5099574 Pull Reversals for Fin plan Working Versions when l_refresh_code=16,30. ignore if l_refresh_code>=62
5230 (
5231 bv.BUDGET_STATUS_CODE in ('W','S') and
5232 fpo.FIN_PLAN_TYPE_ID <> l_workplan_type_id and -- Bug# 5208322
5233 DECODE(BITAND(l_refresh_code,g_all_plans),g_all_plans,'N',DECODE(BITAND(l_refresh_code,g_wk_plans),g_wk_plans,'Y','N'))='Y'
5234 )
5235 OR --Pull Reversals for Work plan Working Versions / LPub Vers / Baselined Versions when l_refresh_code=2,8,16,30. ignore if l_refresh_code>=62
5236 EXISTS ( select 1 from PA_PROJ_ELEM_VER_STRUCTURE ppevs where
5237 bv.FIN_PLAN_TYPE_ID = l_workplan_type_id and -- Bug# 5208322
5238 bv.PROJECT_STRUCTURE_VERSION_ID = ppevs.ELEMENT_VERSION_ID and
5239 (
5240 decode(BITAND(l_refresh_code,g_all_plans),g_all_plans,'N',
5241 decode(BITAND(l_refresh_code,g_lp_plans),g_lp_plans,LATEST_EFF_PUBLISHED_FLAG,'N'))='Y'
5242 or
5243 decode(BITAND(l_refresh_code,g_all_plans),g_all_plans,'N',
5244 decode(BITAND(l_refresh_code,g_wk_plans),g_wk_plans,STATUS_CODE,'N'))='STRUCTURE_WORKING'
5245 or
5246 decode(BITAND(l_refresh_code,g_all_plans ),g_all_plans ,'N',
5247 decode(BITAND(l_refresh_code,g_cb_plans),g_cb_plans,NVL2(CURRENT_BASELINE_DATE,'Y','N'),'N')) ='Y'
5248
5249 )
5250 )
5251 )
5252 UNION ALL --Pull Reversals for Actuals , CB,CO when l_refresh_code=-1,-3,-4
5253 select
5254 map.worker_id,map.project_id, plan_version_id, 'G' time_phased_code
5255 from
5256 PJI_PJP_PROJ_BATCH_MAP map,
5257 (
5258 select decode (bitand (l_refresh_code,1),1,-1,-999) plan_version_id from dual where l_plan_type_id is null
5259 union all
5260 select decode (bitand (l_refresh_code,g_cb_plans),g_cb_plans,-3,-999) plan_version_id from dual
5261 union all
5262 select decode (bitand (l_refresh_code,g_co_plans),g_co_plans,-4,-999) plan_version_id from dual
5263 )
5264 where map.worker_id=p_worker_id;
5265
5266
5267 end if; -- Partial Refresh Performance Improvement
5268
5269
5270 insert into PJI_FP_AGGR_PJP1 pjp1_i
5271 (
5272 WORKER_ID,
5273 RECORD_TYPE,
5274 PRG_LEVEL,
5275 LINE_TYPE,
5276 PROJECT_ID,
5277 PROJECT_ORG_ID,
5278 PROJECT_ORGANIZATION_ID,
5279 PROJECT_ELEMENT_ID,
5280 TIME_ID,
5281 PERIOD_TYPE_ID,
5282 CALENDAR_TYPE,
5283 RBS_AGGR_LEVEL,
5284 WBS_ROLLUP_FLAG,
5285 PRG_ROLLUP_FLAG,
5286 CURR_RECORD_TYPE_ID,
5287 CURRENCY_CODE,
5288 RBS_ELEMENT_ID,
5289 RBS_VERSION_ID,
5290 PLAN_VERSION_ID,
5291 PLAN_TYPE_ID,
5292 PLAN_TYPE_CODE,
5293 RAW_COST,
5294 BRDN_COST,
5295 REVENUE,
5296 BILL_RAW_COST,
5297 BILL_BRDN_COST,
5298 BILL_LABOR_RAW_COST,
5299 BILL_LABOR_BRDN_COST,
5300 BILL_LABOR_HRS,
5301 EQUIPMENT_RAW_COST,
5302 EQUIPMENT_BRDN_COST,
5303 CAPITALIZABLE_RAW_COST,
5304 CAPITALIZABLE_BRDN_COST,
5305 LABOR_RAW_COST,
5306 LABOR_BRDN_COST,
5307 LABOR_HRS,
5308 LABOR_REVENUE,
5309 EQUIPMENT_HOURS,
5310 BILLABLE_EQUIPMENT_HOURS,
5311 SUP_INV_COMMITTED_COST,
5312 PO_COMMITTED_COST,
5313 PR_COMMITTED_COST,
5314 OTH_COMMITTED_COST,
5315 ACT_LABOR_HRS,
5316 ACT_EQUIP_HRS,
5317 ACT_LABOR_BRDN_COST,
5318 ACT_EQUIP_BRDN_COST,
5319 ACT_BRDN_COST,
5320 ACT_RAW_COST,
5321 ACT_REVENUE,
5322 ACT_LABOR_RAW_COST,
5323 ACT_EQUIP_RAW_COST,
5324 ETC_LABOR_HRS,
5325 ETC_EQUIP_HRS,
5326 ETC_LABOR_BRDN_COST,
5327 ETC_EQUIP_BRDN_COST,
5328 ETC_BRDN_COST,
5329 ETC_RAW_COST,
5330 ETC_LABOR_RAW_COST,
5331 ETC_EQUIP_RAW_COST,
5332 CUSTOM1,
5333 CUSTOM2,
5334 CUSTOM3,
5335 CUSTOM4,
5336 CUSTOM5,
5337 CUSTOM6,
5338 CUSTOM7,
5339 CUSTOM8,
5340 CUSTOM9,
5341 CUSTOM10,
5342 CUSTOM11,
5343 CUSTOM12,
5344 CUSTOM13,
5345 CUSTOM14,
5346 CUSTOM15
5347 )
5348 select
5349 WORKER_ID,
5350 null RECORD_TYPE,
5351 0 PRG_LEVEL,
5352 null LINE_TYPE,
5353 PROJECT_ID,
5354 PROJECT_ORG_ID,
5355 PROJECT_ORGANIZATION_ID,
5356 PROJECT_ELEMENT_ID,
5357 TIME_ID,
5358 PERIOD_TYPE_ID,
5359 CALENDAR_TYPE,
5360 RBS_AGGR_LEVEL,
5361 WBS_ROLLUP_FLAG,
5362 PRG_ROLLUP_FLAG,
5363 CURR_RECORD_TYPE_ID,
5364 CURRENCY_CODE,
5365 RBS_ELEMENT_ID,
5366 RBS_VERSION_ID,
5367 PLAN_VERSION_ID,
5368 PLAN_TYPE_ID,
5369 PLAN_TYPE_CODE,
5370 sum(RAW_COST) RAW_COST,
5371 sum(BRDN_COST) BRDN_COST,
5372 sum(REVENUE) REVENUE,
5373 sum(BILL_RAW_COST) BILL_RAW_COST,
5374 sum(BILL_BRDN_COST) BILL_BRDN_COST,
5375 sum(BILL_LABOR_RAW_COST) BILL_LABOR_RAW_COST,
5376 sum(BILL_LABOR_BRDN_COST) BILL_LABOR_BRDN_COST,
5377 sum(BILL_LABOR_HRS) BILL_LABOR_HRS,
5378 sum(EQUIPMENT_RAW_COST) EQUIPMENT_RAW_COST,
5379 sum(EQUIPMENT_BRDN_COST) EQUIPMENT_BRDN_COST,
5380 sum(CAPITALIZABLE_RAW_COST) CAPITALIZABLE_RAW_COST,
5381 sum(CAPITALIZABLE_BRDN_COST) CAPITALIZABLE_BRDN_COST,
5382 sum(LABOR_RAW_COST) LABOR_RAW_COST,
5383 sum(LABOR_BRDN_COST) LABOR_BRDN_COST,
5384 sum(LABOR_HRS) LABOR_HRS,
5385 sum(LABOR_REVENUE) LABOR_REVENUE,
5386 sum(EQUIPMENT_HOURS) EQUIPMENT_HOURS,
5387 sum(BILLABLE_EQUIPMENT_HOURS) BILLABLE_EQUIPMENT_HOURS,
5388 sum(SUP_INV_COMMITTED_COST) SUP_INV_COMMITTED_COST,
5389 sum(PO_COMMITTED_COST) PO_COMMITTED_COST,
5390 sum(PR_COMMITTED_COST) PR_COMMITTED_COST,
5391 sum(OTH_COMMITTED_COST) OTH_COMMITTED_COST,
5392 sum(ACT_LABOR_HRS) ACT_LABOR_HRS,
5393 sum(ACT_EQUIP_HRS) ACT_EQUIP_HRS,
5394 sum(ACT_LABOR_BRDN_COST) ACT_LABOR_BRDN_COST,
5395 sum(ACT_EQUIP_BRDN_COST) ACT_EQUIP_BRDN_COST,
5396 sum(ACT_BRDN_COST) ACT_BRDN_COST,
5397 sum(ACT_RAW_COST) ACT_RAW_COST,
5398 sum(ACT_REVENUE) ACT_REVENUE,
5399 sum(ACT_LABOR_RAW_COST) ACT_LABOR_RAW_COST,
5400 sum(ACT_EQUIP_RAW_COST) ACT_EQUIP_RAW_COST,
5401 sum(ETC_LABOR_HRS) ETC_LABOR_HRS,
5402 sum(ETC_EQUIP_HRS) ETC_EQUIP_HRS,
5403 sum(ETC_LABOR_BRDN_COST) ETC_LABOR_BRDN_COST,
5404 sum(ETC_EQUIP_BRDN_COST) ETC_EQUIP_BRDN_COST,
5405 sum(ETC_BRDN_COST) ETC_BRDN_COST,
5406 sum(ETC_RAW_COST) ETC_RAW_COST,
5407 sum(ETC_LABOR_RAW_COST) ETC_LABOR_RAW_COST,
5408 sum(ETC_EQUIP_RAW_COST) ETC_EQUIP_RAW_COST,
5409 sum(CUSTOM1) CUSTOM1,
5410 sum(CUSTOM2) CUSTOM2,
5411 sum(CUSTOM3) CUSTOM3,
5412 sum(CUSTOM4) CUSTOM4,
5413 sum(CUSTOM5) CUSTOM5,
5414 sum(CUSTOM6) CUSTOM6,
5415 sum(CUSTOM7) CUSTOM7,
5416 sum(CUSTOM8) CUSTOM8,
5417 sum(CUSTOM9) CUSTOM9,
5418 sum(CUSTOM10) CUSTOM10,
5419 sum(CUSTOM11) CUSTOM11,
5420 sum(CUSTOM12) CUSTOM12,
5421 sum(CUSTOM13) CUSTOM13,
5422 sum(CUSTOM14) CUSTOM14,
5423 sum(CUSTOM15) CUSTOM15
5424 from
5425 (
5426 select
5427 WORKER_ID,
5428 to_char(null) LINE_TYPE,
5429 PROJECT_ID,
5430 PROJECT_ORG_ID,
5431 PROJECT_ORGANIZATION_ID,
5432 PROJECT_ELEMENT_ID,
5433 TIME_ID,
5434 PERIOD_TYPE_ID,
5435 CALENDAR_TYPE,
5436 RBS_AGGR_LEVEL,
5437 WBS_ROLLUP_FLAG,
5438 PRG_ROLLUP_FLAG,
5439 CURR_RECORD_TYPE_ID,
5440 CURRENCY_CODE,
5441 RBS_ELEMENT_ID,
5442 RBS_VERSION_ID,
5443 PLAN_VERSION_ID,
5444 PLAN_TYPE_ID,
5445 'A' PLAN_TYPE_CODE,
5446 RAW_COST,
5447 BRDN_COST,
5448 REVENUE,
5449 BILL_RAW_COST,
5450 BILL_BRDN_COST,
5451 BILL_LABOR_RAW_COST,
5452 BILL_LABOR_BRDN_COST,
5453 BILL_LABOR_HRS,
5454 EQUIPMENT_RAW_COST,
5455 EQUIPMENT_BRDN_COST,
5456 CAPITALIZABLE_RAW_COST,
5457 CAPITALIZABLE_BRDN_COST,
5458 LABOR_RAW_COST,
5459 LABOR_BRDN_COST,
5460 LABOR_HRS,
5461 LABOR_REVENUE,
5462 EQUIPMENT_HOURS,
5463 BILLABLE_EQUIPMENT_HOURS,
5464 SUP_INV_COMMITTED_COST,
5465 PO_COMMITTED_COST,
5466 PR_COMMITTED_COST,
5467 OTH_COMMITTED_COST,
5468 to_number(null) ACT_LABOR_HRS,
5469 to_number(null) ACT_EQUIP_HRS,
5470 to_number(null) ACT_LABOR_BRDN_COST,
5471 to_number(null) ACT_EQUIP_BRDN_COST,
5472 to_number(null) ACT_BRDN_COST,
5473 to_number(null) ACT_RAW_COST,
5474 to_number(null) ACT_REVENUE,
5475 to_number(null) ACT_LABOR_RAW_COST,
5476 to_number(null) ACT_EQUIP_RAW_COST,
5477 to_number(null) ETC_LABOR_HRS,
5478 to_number(null) ETC_EQUIP_HRS,
5479 to_number(null) ETC_LABOR_BRDN_COST,
5480 to_number(null) ETC_EQUIP_BRDN_COST,
5481 to_number(null) ETC_BRDN_COST,
5482 to_number(null) ETC_RAW_COST,
5483 to_number(null) ETC_LABOR_RAW_COST,
5484 to_number(null) ETC_EQUIP_RAW_COST,
5485 to_number(null) CUSTOM1,
5486 to_number(null) CUSTOM2,
5487 to_number(null) CUSTOM3,
5488 to_number(null) CUSTOM4,
5489 to_number(null) CUSTOM5,
5490 to_number(null) CUSTOM6,
5491 to_number(null) CUSTOM7,
5492 to_number(null) CUSTOM8,
5493 to_number(null) CUSTOM9,
5494 to_number(null) CUSTOM10,
5495 to_number(null) CUSTOM11,
5496 to_number(null) CUSTOM12,
5497 to_number(null) CUSTOM13,
5498 to_number(null) CUSTOM14,
5499 to_number(null) CUSTOM15
5500 from
5501 PJI_FP_AGGR_PJP0
5502 where
5503 WORKER_ID = p_worker_id
5504 union all
5505 select
5506 WORKER_ID,
5507 to_char(null) LINE_TYPE,
5508 PROJECT_ID,
5509 PROJECT_ORG_ID,
5510 PROJECT_ORGANIZATION_ID,
5511 PROJECT_ELEMENT_ID,
5512 TIME_ID,
5513 PERIOD_TYPE_ID,
5514 CALENDAR_TYPE,
5515 RBS_AGGR_LEVEL,
5516 WBS_ROLLUP_FLAG,
5517 PRG_ROLLUP_FLAG,
5518 CURR_RECORD_TYPE_ID,
5519 CURRENCY_CODE,
5520 RBS_ELEMENT_ID,
5521 RBS_VERSION_ID,
5522 PLAN_VERSION_ID,
5523 PLAN_TYPE_ID,
5524 'A' PLAN_TYPE_CODE,
5525 to_number(null) RAW_COST,
5526 to_number(null) BRDN_COST,
5527 to_number(null) REVENUE,
5528 to_number(null) BILL_RAW_COST,
5529 to_number(null) BILL_BRDN_COST,
5530 to_number(null) BILL_LABOR_RAW_COST,
5531 to_number(null) BILL_LABOR_BRDN_COST,
5532 to_number(null) BILL_LABOR_HRS,
5533 to_number(null) EQUIPMENT_RAW_COST,
5534 to_number(null) EQUIPMENT_BRDN_COST,
5535 to_number(null) CAPITALIZABLE_RAW_COST,
5536 to_number(null) CAPITALIZABLE_BRDN_COST,
5537 to_number(null) LABOR_RAW_COST,
5538 to_number(null) LABOR_BRDN_COST,
5539 to_number(null) LABOR_HRS,
5540 to_number(null) LABOR_REVENUE,
5541 to_number(null) EQUIPMENT_HOURS,
5542 to_number(null) BILLABLE_EQUIPMENT_HOURS,
5543 to_number(null) SUP_INV_COMMITTED_COST,
5544 to_number(null) PO_COMMITTED_COST,
5545 to_number(null) PR_COMMITTED_COST,
5546 to_number(null) OTH_COMMITTED_COST,
5547 to_number(null) ACT_LABOR_HRS,
5548 to_number(null) ACT_EQUIP_HRS,
5549 to_number(null) ACT_LABOR_BRDN_COST,
5550 to_number(null) ACT_EQUIP_BRDN_COST,
5551 to_number(null) ACT_BRDN_COST,
5552 to_number(null) ACT_RAW_COST,
5553 to_number(null) ACT_REVENUE,
5554 to_number(null) ACT_LABOR_RAW_COST,
5555 to_number(null) ACT_EQUIP_RAW_COST,
5556 to_number(null) ETC_LABOR_HRS,
5557 to_number(null) ETC_EQUIP_HRS,
5558 to_number(null) ETC_LABOR_BRDN_COST,
5559 to_number(null) ETC_EQUIP_BRDN_COST,
5560 to_number(null) ETC_BRDN_COST,
5561 to_number(null) ETC_RAW_COST,
5562 to_number(null) ETC_LABOR_RAW_COST,
5563 to_number(null) ETC_EQUIP_RAW_COST,
5564 CUSTOM1,
5565 CUSTOM2,
5566 CUSTOM3,
5567 CUSTOM4,
5568 CUSTOM5,
5569 CUSTOM6,
5570 CUSTOM7,
5571 CUSTOM8,
5572 CUSTOM9,
5573 CUSTOM10,
5574 CUSTOM11,
5575 CUSTOM12,
5576 CUSTOM13,
5577 CUSTOM14,
5578 CUSTOM15
5579 from
5580 PJI_FP_CUST_PJP0
5581 where
5582 WORKER_ID = p_worker_id
5583 union all -- commitments reversals
5584 select
5585 p_worker_id WORKER_ID,
5586 to_char(null) LINE_TYPE,
5587 fpr.PROJECT_ID,
5588 fpr.PROJECT_ORG_ID,
5589 fpr.PROJECT_ORGANIZATION_ID,
5590 fpr.PROJECT_ELEMENT_ID,
5591 fpr.TIME_ID,
5592 fpr.PERIOD_TYPE_ID,
5593 fpr.CALENDAR_TYPE,
5594 fpr.RBS_AGGR_LEVEL,
5595 fpr.WBS_ROLLUP_FLAG,
5596 fpr.PRG_ROLLUP_FLAG,
5597 fpr.CURR_RECORD_TYPE_ID,
5598 fpr.CURRENCY_CODE,
5599 fpr.RBS_ELEMENT_ID,
5600 fpr.RBS_VERSION_ID,
5601 fpr.PLAN_VERSION_ID,
5602 fpr.PLAN_TYPE_ID,
5603 fpr.PLAN_TYPE_CODE,
5604 to_number(null) RAW_COST,
5605 to_number(null) BRDN_COST,
5606 to_number(null) REVENUE,
5607 to_number(null) BILL_RAW_COST,
5608 to_number(null) BILL_BRDN_COST,
5609 to_number(null) BILL_LABOR_RAW_COST,
5610 to_number(null) BILL_LABOR_BRDN_COST,
5611 to_number(null) BILL_LABOR_HRS,
5612 to_number(null) EQUIPMENT_RAW_COST,
5613 to_number(null) EQUIPMENT_BRDN_COST,
5614 to_number(null) CAPITALIZABLE_RAW_COST,
5615 to_number(null) CAPITALIZABLE_BRDN_COST,
5616 to_number(null) LABOR_RAW_COST,
5617 to_number(null) LABOR_BRDN_COST,
5618 to_number(null) LABOR_HRS,
5619 to_number(null) LABOR_REVENUE,
5620 to_number(null) EQUIPMENT_HOURS,
5621 to_number(null) BILLABLE_EQUIPMENT_HOURS,
5622 - fpr.SUP_INV_COMMITTED_COST,
5623 - fpr.PO_COMMITTED_COST,
5624 - fpr.PR_COMMITTED_COST,
5625 - fpr.OTH_COMMITTED_COST,
5626 to_number(null) ACT_LABOR_HRS,
5627 to_number(null) ACT_EQUIP_HRS,
5628 to_number(null) ACT_LABOR_BRDN_COST,
5629 to_number(null) ACT_EQUIP_BRDN_COST,
5630 to_number(null) ACT_BRDN_COST,
5631 to_number(null) ACT_RAW_COST,
5632 to_number(null) ACT_REVENUE,
5633 to_number(null) ACT_LABOR_RAW_COST,
5634 to_number(null) ACT_EQUIP_RAW_COST,
5635 to_number(null) ETC_LABOR_HRS,
5636 to_number(null) ETC_EQUIP_HRS,
5637 to_number(null) ETC_LABOR_BRDN_COST,
5638 to_number(null) ETC_EQUIP_BRDN_COST,
5639 to_number(null) ETC_BRDN_COST,
5640 to_number(null) ETC_RAW_COST,
5641 to_number(null) ETC_LABOR_RAW_COST,
5642 to_number(null) ETC_EQUIP_RAW_COST,
5643 to_number(null) CUSTOM1,
5644 to_number(null) CUSTOM2,
5645 to_number(null) CUSTOM3,
5646 to_number(null) CUSTOM4,
5647 to_number(null) CUSTOM5,
5648 to_number(null) CUSTOM6,
5649 to_number(null) CUSTOM7,
5650 to_number(null) CUSTOM8,
5651 to_number(null) CUSTOM9,
5652 to_number(null) CUSTOM10,
5653 to_number(null) CUSTOM11,
5654 to_number(null) CUSTOM12,
5655 to_number(null) CUSTOM13,
5656 to_number(null) CUSTOM14,
5657 to_number(null) CUSTOM15
5658 from
5659 PJI_PJP_PROJ_BATCH_MAP map,
5660 PJI_FP_XBS_ACCUM_F fpr
5661 where
5662 l_extraction_type = 'INCREMENTAL' and
5663 map.WORKER_ID = p_worker_id and
5664 map.EXTRACTION_TYPE = 'M' and
5665 fpr.PROJECT_ID = map.PROJECT_ID and
5666 fpr.PERIOD_TYPE_ID = 32 and
5667 fpr.RBS_AGGR_LEVEL = 'L' and
5668 fpr.WBS_ROLLUP_FLAG = 'N' and
5669 fpr.PRG_ROLLUP_FLAG = 'N' and
5670 abs(nvl(fpr.SUP_INV_COMMITTED_COST, 0)) +
5671 abs(nvl(fpr.PO_COMMITTED_COST, 0)) +
5672 abs(nvl(fpr.PR_COMMITTED_COST, 0)) +
5673 abs(nvl(fpr.OTH_COMMITTED_COST, 0)) > 0
5674 union all
5675 select /*+ ordered */
5676 p_worker_id WORKER_ID,
5677 to_char(null) LINE_TYPE,
5678 fpr.PROJECT_ID,
5679 fpr.PROJECT_ORG_ID,
5680 fpr.PROJECT_ORGANIZATION_ID,
5681 fpr.PROJECT_ELEMENT_ID,
5682 fpr.TIME_ID,
5683 fpr.PERIOD_TYPE_ID,
5684 fpr.CALENDAR_TYPE,
5685 fpr.RBS_AGGR_LEVEL,
5686 fpr.WBS_ROLLUP_FLAG,
5687 fpr.PRG_ROLLUP_FLAG,
5688 fpr.CURR_RECORD_TYPE_ID,
5689 fpr.CURRENCY_CODE,
5690 fpr.RBS_ELEMENT_ID,
5691 fpr.RBS_VERSION_ID,
5692 fpr.PLAN_VERSION_ID,
5693 fpr.PLAN_TYPE_ID,
5694 fpr.PLAN_TYPE_CODE,
5695 - fpr.RAW_COST RAW_COST,
5696 - fpr.BRDN_COST BRDN_COST,
5697 - fpr.REVENUE REVENUE,
5698 - fpr.BILL_RAW_COST BILL_RAW_COST,
5699 - fpr.BILL_BRDN_COST BILL_BRDN_COST,
5700 - fpr.BILL_LABOR_RAW_COST BILL_LABOR_RAW_COST,
5701 - fpr.BILL_LABOR_BRDN_COST BILL_LABOR_BRDN_COST,
5702 - fpr.BILL_LABOR_HRS BILL_LABOR_HRS,
5703 - fpr.EQUIPMENT_RAW_COST EQUIPMENT_RAW_COST,
5704 - fpr.EQUIPMENT_BRDN_COST EQUIPMENT_BRDN_COST,
5705 - fpr.CAPITALIZABLE_RAW_COST CAPITALIZABLE_RAW_COST,
5706 - fpr.CAPITALIZABLE_BRDN_COST CAPITALIZABLE_BRDN_COST,
5707 - fpr.LABOR_RAW_COST LABOR_RAW_COST,
5708 - fpr.LABOR_BRDN_COST LABOR_BRDN_COST,
5709 - fpr.LABOR_HRS LABOR_HRS,
5710 - fpr.LABOR_REVENUE LABOR_REVENUE,
5711 - fpr.EQUIPMENT_HOURS EQUIPMENT_HOURS,
5712 - fpr.BILLABLE_EQUIPMENT_HOURS BILLABLE_EQUIPMENT_HOURS,
5713 - fpr.SUP_INV_COMMITTED_COST SUP_INV_COMMITTED_COST,
5714 - fpr.PO_COMMITTED_COST PO_COMMITTED_COST,
5715 - fpr.PR_COMMITTED_COST PR_COMMITTED_COST,
5716 - fpr.OTH_COMMITTED_COST OTH_COMMITTED_COST,
5717 - fpr.ACT_LABOR_HRS ACT_LABOR_HRS,
5718 - fpr.ACT_EQUIP_HRS ACT_EQUIP_HRS,
5719 - fpr.ACT_LABOR_BRDN_COST ACT_LABOR_BRDN_COST,
5720 - fpr.ACT_EQUIP_BRDN_COST ACT_EQUIP_BRDN_COST,
5721 - fpr.ACT_BRDN_COST ACT_BRDN_COST,
5722 - fpr.ACT_RAW_COST ACT_RAW_COST,
5723 - fpr.ACT_REVENUE ACT_REVENUE,
5724 - fpr.ACT_LABOR_RAW_COST ACT_LABOR_RAW_COST,
5725 - fpr.ACT_EQUIP_RAW_COST ACT_EQUIP_RAW_COST,
5726 - fpr.ETC_LABOR_HRS ETC_LABOR_HRS,
5727 - fpr.ETC_EQUIP_HRS ETC_EQUIP_HRS,
5728 - fpr.ETC_LABOR_BRDN_COST ETC_LABOR_BRDN_COST,
5729 - fpr.ETC_EQUIP_BRDN_COST ETC_EQUIP_BRDN_COST,
5730 - fpr.ETC_BRDN_COST ETC_BRDN_COST,
5731 - fpr.ETC_RAW_COST ETC_RAW_COST,
5732 - fpr.ETC_LABOR_RAW_COST ETC_LABOR_RAW_COST,
5733 - fpr.ETC_EQUIP_RAW_COST ETC_EQUIP_RAW_COST,
5734 - fpr.CUSTOM1 CUSTOM1,
5735 - fpr.CUSTOM2 CUSTOM2,
5736 - fpr.CUSTOM3 CUSTOM3,
5737 - fpr.CUSTOM4 CUSTOM4,
5738 - fpr.CUSTOM5 CUSTOM5,
5739 - fpr.CUSTOM6 CUSTOM6,
5740 - fpr.CUSTOM7 CUSTOM7,
5741 - fpr.CUSTOM8 CUSTOM8,
5742 - fpr.CUSTOM9 CUSTOM9,
5743 - fpr.CUSTOM10 CUSTOM10,
5744 - fpr.CUSTOM11 CUSTOM11,
5745 - fpr.CUSTOM12 CUSTOM12,
5746 - fpr.CUSTOM13 CUSTOM13,
5747 - fpr.CUSTOM14 CUSTOM14,
5748 - fpr.CUSTOM15 CUSTOM15
5749 from
5750 PJI_FM_EXTR_PLNVER3_T map,
5751 PJI_FP_XBS_ACCUM_F fpr
5752 where
5753 l_extraction_type = 'PARTIAL' and
5754 map.WORKER_ID = p_worker_id and
5755 fpr.PROJECT_ID = map.PROJECT_ID and
5756 fpr.PLAN_VERSION_ID = map.PLAN_VERSION_ID and
5757 fpr.PERIOD_TYPE_ID = decode(map.time_phased_type_code,
5758 'N', decode(fpr.PERIOD_TYPE_ID,
5759 32, 32,
5760 2048),
5761 32) and
5762 fpr.RBS_AGGR_LEVEL = 'L' and
5763 fpr.WBS_ROLLUP_FLAG = 'N' and
5764 fpr.PRG_ROLLUP_FLAG = 'N'
5765 )
5766 group by
5767 WORKER_ID,
5768 LINE_TYPE,
5769 PROJECT_ID,
5770 PROJECT_ORG_ID,
5771 PROJECT_ORGANIZATION_ID,
5772 PROJECT_ELEMENT_ID,
5773 TIME_ID,
5774 PERIOD_TYPE_ID,
5775 CALENDAR_TYPE,
5776 RBS_AGGR_LEVEL,
5777 WBS_ROLLUP_FLAG,
5778 PRG_ROLLUP_FLAG,
5779 CURR_RECORD_TYPE_ID,
5780 CURRENCY_CODE,
5781 RBS_ELEMENT_ID,
5782 RBS_VERSION_ID,
5783 PLAN_VERSION_ID,
5784 PLAN_TYPE_ID,
5785 PLAN_TYPE_CODE
5786 having not
5787 (nvl(sum(RAW_COST), 0) = 0 and
5788 nvl(sum(BRDN_COST), 0) = 0 and
5789 nvl(sum(REVENUE), 0) = 0 and
5790 nvl(sum(BILL_RAW_COST), 0) = 0 and
5791 nvl(sum(BILL_BRDN_COST), 0) = 0 and
5792 nvl(sum(BILL_LABOR_RAW_COST), 0) = 0 and
5793 nvl(sum(BILL_LABOR_BRDN_COST), 0) = 0 and
5794 nvl(sum(BILL_LABOR_HRS), 0) = 0 and
5795 nvl(sum(EQUIPMENT_RAW_COST), 0) = 0 and
5796 nvl(sum(EQUIPMENT_BRDN_COST), 0) = 0 and
5797 nvl(sum(CAPITALIZABLE_RAW_COST), 0) = 0 and
5798 nvl(sum(CAPITALIZABLE_BRDN_COST), 0) = 0 and
5799 nvl(sum(LABOR_RAW_COST), 0) = 0 and
5800 nvl(sum(LABOR_BRDN_COST), 0) = 0 and
5801 nvl(sum(LABOR_HRS), 0) = 0 and
5802 nvl(sum(LABOR_REVENUE), 0) = 0 and
5803 nvl(sum(EQUIPMENT_HOURS), 0) = 0 and
5804 nvl(sum(BILLABLE_EQUIPMENT_HOURS), 0) = 0 and
5805 nvl(sum(SUP_INV_COMMITTED_COST), 0) = 0 and
5806 nvl(sum(PO_COMMITTED_COST), 0) = 0 and
5807 nvl(sum(PR_COMMITTED_COST), 0) = 0 and
5808 nvl(sum(OTH_COMMITTED_COST), 0) = 0 and
5809 nvl(sum(ACT_LABOR_HRS), 0) = 0 and
5810 nvl(sum(ACT_EQUIP_HRS), 0) = 0 and
5811 nvl(sum(ACT_LABOR_BRDN_COST), 0) = 0 and
5812 nvl(sum(ACT_EQUIP_BRDN_COST), 0) = 0 and
5813 nvl(sum(ACT_BRDN_COST), 0) = 0 and
5814 nvl(sum(ACT_RAW_COST), 0) = 0 and
5815 nvl(sum(ACT_REVENUE), 0) = 0 and
5816 nvl(sum(ACT_LABOR_RAW_COST), 0) = 0 and
5817 nvl(sum(ACT_EQUIP_RAW_COST), 0) = 0 and
5818 nvl(sum(ETC_LABOR_HRS), 0) = 0 and
5819 nvl(sum(ETC_EQUIP_HRS), 0) = 0 and
5820 nvl(sum(ETC_LABOR_BRDN_COST), 0) = 0 and
5821 nvl(sum(ETC_EQUIP_BRDN_COST), 0) = 0 and
5822 nvl(sum(ETC_BRDN_COST), 0) = 0 and
5823 nvl(sum(ETC_RAW_COST), 0) = 0 and
5824 nvl(sum(ETC_LABOR_RAW_COST), 0) = 0 and
5825 nvl(sum(ETC_EQUIP_RAW_COST), 0) = 0 and
5826 nvl(sum(CUSTOM1), 0) = 0 and
5827 nvl(sum(CUSTOM2), 0) = 0 and
5828 nvl(sum(CUSTOM3), 0) = 0 and
5829 nvl(sum(CUSTOM4), 0) = 0 and
5830 nvl(sum(CUSTOM5), 0) = 0 and
5831 nvl(sum(CUSTOM6), 0) = 0 and
5832 nvl(sum(CUSTOM7), 0) = 0 and
5833 nvl(sum(CUSTOM8), 0) = 0 and
5834 nvl(sum(CUSTOM9), 0) = 0 and
5835 nvl(sum(CUSTOM10), 0) = 0 and
5836 nvl(sum(CUSTOM11), 0) = 0 and
5837 nvl(sum(CUSTOM12), 0) = 0 and
5838 nvl(sum(CUSTOM13), 0) = 0 and
5839 nvl(sum(CUSTOM14), 0) = 0 and
5840 nvl(sum(CUSTOM15), 0) = 0);
5841
5842 if ( l_extraction_type = 'PARTIAL' ) then -- Partial Refresh Performance Improvement
5843 delete from PJI_FM_EXTR_PLNVER3_T where worker_id=p_worker_id;
5844 end if;
5845
5846 PJI_PROCESS_UTIL.REGISTER_STEP_COMPLETION(l_process, 'PJI_PJP_SUM_ROLLUP.AGGREGATE_FP_CUST_SLICES(p_worker_id);');
5847
5848 commit;
5849
5850 end AGGREGATE_FP_CUST_SLICES;
5851
5852
5853 -- -----------------------------------------------------
5854 -- procedure AGGREGATE_AC_CUST_SLICES
5855 --
5856 -- History
5857 -- 19-MAR-2004 SVERMETT Created
5858 --
5859 -- Internal PJP Summarization API.
5860 --
5861 -- -----------------------------------------------------
5862 procedure AGGREGATE_AC_CUST_SLICES (p_worker_id in number) is
5863
5864 l_process varchar2(30);
5865 l_extraction_type varchar2(30);
5866 l_refresh_code number; -- Bug#5099574
5867 l_plan_type_id number;
5868 begin
5869
5870 l_process := PJI_PJP_SUM_MAIN.g_process || to_char(p_worker_id);
5871
5872 if (not PJI_PROCESS_UTIL.NEED_TO_RUN_STEP(l_process, 'PJI_PJP_SUM_ROLLUP.AGGREGATE_AC_CUST_SLICES(p_worker_id);')) then
5873 return;
5874 end if;
5875
5876 l_extraction_type := PJI_PROCESS_UTIL.GET_PROCESS_PARAMETER(l_process, 'EXTRACTION_TYPE');
5877
5878 -- Bug#5099574
5879 l_refresh_code := PJI_PROCESS_UTIL.GET_PROCESS_PARAMETER (l_process, 'REFRESH_CODE');
5880 l_plan_type_id := PJI_PROCESS_UTIL.GET_PROCESS_PARAMETER (l_process, 'PLAN_TYPE_ID');
5881
5882 if (l_plan_type_id = -1) then
5883 l_plan_type_id := null;
5884 end if;
5885 /* spliited the SQL to remove unnecessasry hits based on extraction type */
5886 IF l_extraction_type='PARTIAL' THEN -- Bug#5453009 Performance Fix .
5887 -- Sql was split into 2 for Partial and Non Partial Flows
5888
5889 insert into PJI_AC_AGGR_PJP1 pjp1_i
5890 (
5891 WORKER_ID,
5892 RECORD_TYPE,
5893 PRG_LEVEL,
5894 PROJECT_ID,
5895 PROJECT_ORG_ID,
5896 PROJECT_ORGANIZATION_ID,
5897 PROJECT_ELEMENT_ID,
5898 TIME_ID,
5899 PERIOD_TYPE_ID,
5900 CALENDAR_TYPE,
5901 WBS_ROLLUP_FLAG,
5902 PRG_ROLLUP_FLAG,
5903 CURR_RECORD_TYPE_ID,
5904 CURRENCY_CODE,
5905 REVENUE,
5906 INITIAL_FUNDING_AMOUNT,
5907 INITIAL_FUNDING_COUNT,
5908 ADDITIONAL_FUNDING_AMOUNT,
5909 ADDITIONAL_FUNDING_COUNT,
5910 CANCELLED_FUNDING_AMOUNT,
5911 CANCELLED_FUNDING_COUNT,
5912 FUNDING_ADJUSTMENT_AMOUNT,
5913 FUNDING_ADJUSTMENT_COUNT,
5914 REVENUE_WRITEOFF,
5915 AR_INVOICE_AMOUNT,
5916 AR_INVOICE_COUNT,
5917 AR_CASH_APPLIED_AMOUNT,
5918 AR_INVOICE_WRITE_OFF_AMOUNT,
5919 AR_INVOICE_WRITEOFF_COUNT,
5920 AR_CREDIT_MEMO_AMOUNT,
5921 AR_CREDIT_MEMO_COUNT,
5922 UNBILLED_RECEIVABLES,
5923 UNEARNED_REVENUE,
5924 AR_UNAPPR_INVOICE_AMOUNT,
5925 AR_UNAPPR_INVOICE_COUNT,
5926 AR_APPR_INVOICE_AMOUNT,
5927 AR_APPR_INVOICE_COUNT,
5928 AR_AMOUNT_DUE,
5929 AR_COUNT_DUE,
5930 AR_AMOUNT_OVERDUE,
5931 AR_COUNT_OVERDUE,
5932 CUSTOM1,
5933 CUSTOM2,
5934 CUSTOM3,
5935 CUSTOM4,
5936 CUSTOM5,
5937 CUSTOM6,
5938 CUSTOM7,
5939 CUSTOM8,
5940 CUSTOM9,
5941 CUSTOM10,
5942 CUSTOM11,
5943 CUSTOM12,
5944 CUSTOM13,
5945 CUSTOM14,
5946 CUSTOM15
5947 )
5948 select
5949 WORKER_ID,
5950 null RECORD_TYPE,
5951 0 PRG_LEVEL,
5952 PROJECT_ID,
5953 PROJECT_ORG_ID,
5954 PROJECT_ORGANIZATION_ID,
5955 PROJECT_ELEMENT_ID,
5956 TIME_ID,
5957 PERIOD_TYPE_ID,
5958 CALENDAR_TYPE,
5959 WBS_ROLLUP_FLAG,
5960 PRG_ROLLUP_FLAG,
5961 CURR_RECORD_TYPE_ID,
5962 CURRENCY_CODE,
5963 sum(REVENUE) REVENUE,
5964 sum(INITIAL_FUNDING_AMOUNT) INITIAL_FUNDING_AMOUNT,
5965 sum(INITIAL_FUNDING_COUNT) INITIAL_FUNDING_COUNT,
5966 sum(ADDITIONAL_FUNDING_AMOUNT) ADDITIONAL_FUNDING_AMOUNT,
5967 sum(ADDITIONAL_FUNDING_COUNT) ADDITIONAL_FUNDING_COUNT,
5968 sum(CANCELLED_FUNDING_AMOUNT) CANCELLED_FUNDING_AMOUNT,
5969 sum(CANCELLED_FUNDING_COUNT) CANCELLED_FUNDING_COUNT,
5970 sum(FUNDING_ADJUSTMENT_AMOUNT) FUNDING_ADJUSTMENT_AMOUNT,
5971 sum(FUNDING_ADJUSTMENT_COUNT) FUNDING_ADJUSTMENT_COUNT,
5972 sum(REVENUE_WRITEOFF) REVENUE_WRITEOFF,
5973 sum(AR_INVOICE_AMOUNT) AR_INVOICE_AMOUNT,
5974 sum(AR_INVOICE_COUNT) AR_INVOICE_COUNT,
5975 sum(AR_CASH_APPLIED_AMOUNT) AR_CASH_APPLIED_AMOUNT,
5976 sum(AR_INVOICE_WRITE_OFF_AMOUNT) AR_INVOICE_WRITE_OFF_AMOUNT,
5977 sum(AR_INVOICE_WRITEOFF_COUNT) AR_INVOICE_WRITEOFF_COUNT,
5978 sum(AR_CREDIT_MEMO_AMOUNT) AR_CREDIT_MEMO_AMOUNT,
5979 sum(AR_CREDIT_MEMO_COUNT) AR_CREDIT_MEMO_COUNT,
5980 sum(UNBILLED_RECEIVABLES) UNBILLED_RECEIVABLES,
5981 sum(UNEARNED_REVENUE) UNEARNED_REVENUE,
5982 sum(AR_UNAPPR_INVOICE_AMOUNT) AR_UNAPPR_INVOICE_AMOUNT,
5983 sum(AR_UNAPPR_INVOICE_COUNT) AR_UNAPPR_INVOICE_COUNT,
5984 sum(AR_APPR_INVOICE_AMOUNT) AR_APPR_INVOICE_AMOUNT,
5985 sum(AR_APPR_INVOICE_COUNT) AR_APPR_INVOICE_COUNT,
5986 sum(AR_AMOUNT_DUE) AR_AMOUNT_DUE,
5987 sum(AR_COUNT_DUE) AR_COUNT_DUE,
5988 sum(AR_AMOUNT_OVERDUE) AR_AMOUNT_OVERDUE,
5989 sum(AR_COUNT_OVERDUE) AR_COUNT_OVERDUE,
5990 sum(CUSTOM1) CUSTOM1,
5991 sum(CUSTOM2) CUSTOM2,
5992 sum(CUSTOM3) CUSTOM3,
5993 sum(CUSTOM4) CUSTOM4,
5994 sum(CUSTOM5) CUSTOM5,
5995 sum(CUSTOM6) CUSTOM6,
5996 sum(CUSTOM7) CUSTOM7,
5997 sum(CUSTOM8) CUSTOM8,
5998 sum(CUSTOM9) CUSTOM9,
5999 sum(CUSTOM10) CUSTOM10,
6000 sum(CUSTOM11) CUSTOM11,
6001 sum(CUSTOM12) CUSTOM12,
6002 sum(CUSTOM13) CUSTOM13,
6003 sum(CUSTOM14) CUSTOM14,
6004 sum(CUSTOM15) CUSTOM15
6005 from
6006 (
6007 select
6008 WORKER_ID,
6009 PROJECT_ID,
6010 PROJECT_ORG_ID,
6011 PROJECT_ORGANIZATION_ID,
6012 PROJECT_ELEMENT_ID,
6013 TIME_ID,
6014 PERIOD_TYPE_ID,
6015 CALENDAR_TYPE,
6016 WBS_ROLLUP_FLAG,
6017 PRG_ROLLUP_FLAG,
6018 CURR_RECORD_TYPE_ID,
6019 CURRENCY_CODE,
6020 REVENUE,
6021 INITIAL_FUNDING_AMOUNT,
6022 INITIAL_FUNDING_COUNT,
6023 ADDITIONAL_FUNDING_AMOUNT,
6024 ADDITIONAL_FUNDING_COUNT,
6025 CANCELLED_FUNDING_AMOUNT,
6026 CANCELLED_FUNDING_COUNT,
6027 FUNDING_ADJUSTMENT_AMOUNT,
6028 FUNDING_ADJUSTMENT_COUNT,
6029 REVENUE_WRITEOFF,
6030 AR_INVOICE_AMOUNT,
6031 AR_INVOICE_COUNT,
6032 AR_CASH_APPLIED_AMOUNT,
6033 AR_INVOICE_WRITE_OFF_AMOUNT,
6034 AR_INVOICE_WRITEOFF_COUNT,
6035 AR_CREDIT_MEMO_AMOUNT,
6036 AR_CREDIT_MEMO_COUNT,
6037 UNBILLED_RECEIVABLES,
6038 UNEARNED_REVENUE,
6039 AR_UNAPPR_INVOICE_AMOUNT,
6040 AR_UNAPPR_INVOICE_COUNT,
6041 AR_APPR_INVOICE_AMOUNT,
6042 AR_APPR_INVOICE_COUNT,
6043 AR_AMOUNT_DUE,
6044 AR_COUNT_DUE,
6045 AR_AMOUNT_OVERDUE,
6046 AR_COUNT_OVERDUE,
6047 to_number(null) CUSTOM1,
6048 to_number(null) CUSTOM2,
6049 to_number(null) CUSTOM3,
6050 to_number(null) CUSTOM4,
6051 to_number(null) CUSTOM5,
6052 to_number(null) CUSTOM6,
6053 to_number(null) CUSTOM7,
6054 to_number(null) CUSTOM8,
6055 to_number(null) CUSTOM9,
6056 to_number(null) CUSTOM10,
6057 to_number(null) CUSTOM11,
6058 to_number(null) CUSTOM12,
6059 to_number(null) CUSTOM13,
6060 to_number(null) CUSTOM14,
6061 to_number(null) CUSTOM15
6062 from
6063 PJI_AC_AGGR_PJP0
6064 where
6065 WORKER_ID = p_worker_id
6066 union all
6067 select
6068 WORKER_ID,
6069 PROJECT_ID,
6070 PROJECT_ORG_ID,
6071 PROJECT_ORGANIZATION_ID,
6072 PROJECT_ELEMENT_ID,
6073 TIME_ID,
6074 PERIOD_TYPE_ID,
6075 CALENDAR_TYPE,
6076 WBS_ROLLUP_FLAG,
6077 PRG_ROLLUP_FLAG,
6078 CURR_RECORD_TYPE_ID,
6079 CURRENCY_CODE,
6080 to_number(null) REVENUE,
6081 to_number(null) INITIAL_FUNDING_AMOUNT,
6082 to_number(null) INITIAL_FUNDING_COUNT,
6083 to_number(null) ADDITIONAL_FUNDING_AMOUNT,
6084 to_number(null) ADDITIONAL_FUNDING_COUNT,
6085 to_number(null) CANCELLED_FUNDING_AMOUNT,
6086 to_number(null) CANCELLED_FUNDING_COUNT,
6087 to_number(null) FUNDING_ADJUSTMENT_AMOUNT,
6088 to_number(null) FUNDING_ADJUSTMENT_COUNT,
6089 to_number(null) REVENUE_WRITEOFF,
6090 to_number(null) AR_INVOICE_AMOUNT,
6091 to_number(null) AR_INVOICE_COUNT,
6092 to_number(null) AR_CASH_APPLIED_AMOUNT,
6093 to_number(null) AR_INVOICE_WRITE_OFF_AMOUNT,
6094 to_number(null) AR_INVOICE_WRITEOFF_COUNT,
6095 to_number(null) AR_CREDIT_MEMO_AMOUNT,
6096 to_number(null) AR_CREDIT_MEMO_COUNT,
6097 to_number(null) UNBILLED_RECEIVABLES,
6098 to_number(null) UNEARNED_REVENUE,
6099 to_number(null) AR_UNAPPR_INVOICE_AMOUNT,
6100 to_number(null) AR_UNAPPR_INVOICE_COUNT,
6101 to_number(null) AR_APPR_INVOICE_AMOUNT,
6102 to_number(null) AR_APPR_INVOICE_COUNT,
6103 to_number(null) AR_AMOUNT_DUE,
6104 to_number(null) AR_COUNT_DUE,
6105 to_number(null) AR_AMOUNT_OVERDUE,
6106 to_number(null) AR_COUNT_OVERDUE,
6107 CUSTOM1,
6108 CUSTOM2,
6109 CUSTOM3,
6110 CUSTOM4,
6111 CUSTOM5,
6112 CUSTOM6,
6113 CUSTOM7,
6114 CUSTOM8,
6115 CUSTOM9,
6116 CUSTOM10,
6117 CUSTOM11,
6118 CUSTOM12,
6119 CUSTOM13,
6120 CUSTOM14,
6121 CUSTOM15
6122 from
6123 PJI_AC_CUST_PJP0
6124 where
6125 WORKER_ID = p_worker_id
6126 union all -- partial refresh reversals
6127 select /*+ full(map) use_nl(acr) */
6128 p_worker_id WORKER_ID,
6129 acr.PROJECT_ID,
6130 acr.PROJECT_ORG_ID,
6131 acr.PROJECT_ORGANIZATION_ID,
6132 acr.PROJECT_ELEMENT_ID,
6133 acr.TIME_ID,
6134 acr.PERIOD_TYPE_ID,
6135 acr.CALENDAR_TYPE,
6136 acr.WBS_ROLLUP_FLAG,
6137 acr.PRG_ROLLUP_FLAG,
6138 acr.CURR_RECORD_TYPE_ID,
6139 acr.CURRENCY_CODE,
6140 - acr.REVENUE REVENUE,
6141 - acr.INITIAL_FUNDING_AMOUNT INITIAL_FUNDING_AMOUNT,
6142 - acr.INITIAL_FUNDING_COUNT INITIAL_FUNDING_COUNT,
6143 - acr.ADDITIONAL_FUNDING_AMOUNT ADDITIONAL_FUNDING_AMOUNT,
6144 - acr.ADDITIONAL_FUNDING_COUNT ADDITIONAL_FUNDING_COUNT,
6145 - acr.CANCELLED_FUNDING_AMOUNT CANCELLED_FUNDING_AMOUNT,
6146 - acr.CANCELLED_FUNDING_COUNT CANCELLED_FUNDING_COUNT,
6147 - acr.FUNDING_ADJUSTMENT_AMOUNT FUNDING_ADJUSTMENT_AMOUNT,
6148 - acr.FUNDING_ADJUSTMENT_COUNT FUNDING_ADJUSTMENT_COUNT,
6149 - acr.REVENUE_WRITEOFF REVENUE_WRITEOFF,
6150 - acr.AR_INVOICE_AMOUNT AR_INVOICE_AMOUNT,
6151 - acr.AR_INVOICE_COUNT AR_INVOICE_COUNT,
6152 - acr.AR_CASH_APPLIED_AMOUNT AR_CASH_APPLIED_AMOUNT,
6153 - acr.AR_INVOICE_WRITE_OFF_AMOUNT AR_INVOICE_WRITE_OFF_AMOUNT,
6154 - acr.AR_INVOICE_WRITEOFF_COUNT AR_INVOICE_WRITEOFF_COUNT,
6155 - acr.AR_CREDIT_MEMO_AMOUNT AR_CREDIT_MEMO_AMOUNT,
6156 - acr.AR_CREDIT_MEMO_COUNT AR_CREDIT_MEMO_COUNT,
6157 - acr.UNBILLED_RECEIVABLES UNBILLED_RECEIVABLES,
6158 - acr.UNEARNED_REVENUE UNEARNED_REVENUE,
6159 - acr.AR_UNAPPR_INVOICE_AMOUNT AR_UNAPPR_INVOICE_AMOUNT,
6160 - acr.AR_UNAPPR_INVOICE_COUNT AR_UNAPPR_INVOICE_COUNT,
6161 - acr.AR_APPR_INVOICE_AMOUNT AR_APPR_INVOICE_AMOUNT,
6162 - acr.AR_APPR_INVOICE_COUNT AR_APPR_INVOICE_COUNT,
6163 - acr.AR_AMOUNT_DUE AR_AMOUNT_DUE,
6164 - acr.AR_COUNT_DUE AR_COUNT_DUE,
6165 - acr.AR_AMOUNT_OVERDUE AR_AMOUNT_OVERDUE,
6166 - acr.AR_COUNT_OVERDUE AR_COUNT_OVERDUE,
6167 - acr.CUSTOM1 CUSTOM1,
6168 - acr.CUSTOM2 CUSTOM2,
6169 - acr.CUSTOM3 CUSTOM3,
6170 - acr.CUSTOM4 CUSTOM4,
6171 - acr.CUSTOM5 CUSTOM5,
6172 - acr.CUSTOM6 CUSTOM6,
6173 - acr.CUSTOM7 CUSTOM7,
6174 - acr.CUSTOM8 CUSTOM8,
6175 - acr.CUSTOM9 CUSTOM9,
6176 - acr.CUSTOM10 CUSTOM10,
6177 - acr.CUSTOM11 CUSTOM11,
6178 - acr.CUSTOM12 CUSTOM12,
6179 - acr.CUSTOM13 CUSTOM13,
6180 - acr.CUSTOM14 CUSTOM14,
6181 - acr.CUSTOM15 CUSTOM15
6182 from
6183 PJI_PJP_PROJ_BATCH_MAP map,
6184 PJI_AC_XBS_ACCUM_F acr
6185 where
6186 l_extraction_type = 'PARTIAL' and
6187 map.WORKER_ID = p_worker_id and
6188 acr.PROJECT_ID = map.PROJECT_ID and
6189 acr.PERIOD_TYPE_ID = 32 and
6190 acr.WBS_ROLLUP_FLAG = 'N' and
6191 acr.PRG_ROLLUP_FLAG = 'N' and
6192 decode(bitand(l_refresh_code,1),1,'Y','N') ='Y' and -- Bug#5099574
6193 l_plan_type_id is null
6194 )
6195 group by
6196 WORKER_ID,
6197 PROJECT_ID,
6198 PROJECT_ORG_ID,
6199 PROJECT_ORGANIZATION_ID,
6200 PROJECT_ELEMENT_ID,
6201 TIME_ID,
6202 PERIOD_TYPE_ID,
6203 CALENDAR_TYPE,
6204 WBS_ROLLUP_FLAG,
6205 PRG_ROLLUP_FLAG,
6206 CURR_RECORD_TYPE_ID,
6207 CURRENCY_CODE
6208 having not
6209 (nvl(sum(REVENUE), 0) = 0 and
6210 nvl(sum(INITIAL_FUNDING_AMOUNT), 0) = 0 and
6211 nvl(sum(INITIAL_FUNDING_COUNT), 0) = 0 and
6212 nvl(sum(ADDITIONAL_FUNDING_AMOUNT), 0) = 0 and
6213 nvl(sum(ADDITIONAL_FUNDING_COUNT), 0) = 0 and
6214 nvl(sum(CANCELLED_FUNDING_AMOUNT), 0) = 0 and
6215 nvl(sum(CANCELLED_FUNDING_COUNT), 0) = 0 and
6216 nvl(sum(FUNDING_ADJUSTMENT_AMOUNT), 0) = 0 and
6217 nvl(sum(FUNDING_ADJUSTMENT_COUNT), 0) = 0 and
6218 nvl(sum(REVENUE_WRITEOFF), 0) = 0 and
6219 nvl(sum(AR_INVOICE_AMOUNT), 0) = 0 and
6220 nvl(sum(AR_INVOICE_COUNT), 0) = 0 and
6221 nvl(sum(AR_CASH_APPLIED_AMOUNT), 0) = 0 and
6222 nvl(sum(AR_INVOICE_WRITE_OFF_AMOUNT), 0) = 0 and
6223 nvl(sum(AR_INVOICE_WRITEOFF_COUNT), 0) = 0 and
6224 nvl(sum(AR_CREDIT_MEMO_AMOUNT), 0) = 0 and
6225 nvl(sum(AR_CREDIT_MEMO_COUNT), 0) = 0 and
6226 nvl(sum(UNBILLED_RECEIVABLES), 0) = 0 and
6227 nvl(sum(UNEARNED_REVENUE), 0) = 0 and
6228 nvl(sum(AR_UNAPPR_INVOICE_AMOUNT), 0) = 0 and
6229 nvl(sum(AR_UNAPPR_INVOICE_COUNT), 0) = 0 and
6230 nvl(sum(AR_APPR_INVOICE_AMOUNT), 0) = 0 and
6231 nvl(sum(AR_APPR_INVOICE_COUNT), 0) = 0 and
6232 nvl(sum(AR_AMOUNT_DUE), 0) = 0 and
6233 nvl(sum(AR_COUNT_DUE), 0) = 0 and
6234 nvl(sum(AR_AMOUNT_OVERDUE), 0) = 0 and
6235 nvl(sum(AR_COUNT_OVERDUE), 0) = 0 and
6236 nvl(sum(CUSTOM1), 0) = 0 and
6237 nvl(sum(CUSTOM2), 0) = 0 and
6238 nvl(sum(CUSTOM3), 0) = 0 and
6239 nvl(sum(CUSTOM4), 0) = 0 and
6240 nvl(sum(CUSTOM5), 0) = 0 and
6241 nvl(sum(CUSTOM6), 0) = 0 and
6242 nvl(sum(CUSTOM7), 0) = 0 and
6243 nvl(sum(CUSTOM8), 0) = 0 and
6244 nvl(sum(CUSTOM9), 0) = 0 and
6245 nvl(sum(CUSTOM10), 0) = 0 and
6246 nvl(sum(CUSTOM11), 0) = 0 and
6247 nvl(sum(CUSTOM12), 0) = 0 and
6248 nvl(sum(CUSTOM13), 0) = 0 and
6249 nvl(sum(CUSTOM14), 0) = 0 and
6250 nvl(sum(CUSTOM15), 0) = 0);
6251
6252 else
6253 insert into PJI_AC_AGGR_PJP1 pjp1_i
6254 (
6255 WORKER_ID,
6256 RECORD_TYPE,
6257 PRG_LEVEL,
6258 PROJECT_ID,
6259 PROJECT_ORG_ID,
6260 PROJECT_ORGANIZATION_ID,
6261 PROJECT_ELEMENT_ID,
6262 TIME_ID,
6263 PERIOD_TYPE_ID,
6264 CALENDAR_TYPE,
6265 WBS_ROLLUP_FLAG,
6266 PRG_ROLLUP_FLAG,
6267 CURR_RECORD_TYPE_ID,
6268 CURRENCY_CODE,
6269 REVENUE,
6270 INITIAL_FUNDING_AMOUNT,
6271 INITIAL_FUNDING_COUNT,
6272 ADDITIONAL_FUNDING_AMOUNT,
6273 ADDITIONAL_FUNDING_COUNT,
6274 CANCELLED_FUNDING_AMOUNT,
6275 CANCELLED_FUNDING_COUNT,
6276 FUNDING_ADJUSTMENT_AMOUNT,
6277 FUNDING_ADJUSTMENT_COUNT,
6278 REVENUE_WRITEOFF,
6279 AR_INVOICE_AMOUNT,
6280 AR_INVOICE_COUNT,
6281 AR_CASH_APPLIED_AMOUNT,
6282 AR_INVOICE_WRITE_OFF_AMOUNT,
6283 AR_INVOICE_WRITEOFF_COUNT,
6284 AR_CREDIT_MEMO_AMOUNT,
6285 AR_CREDIT_MEMO_COUNT,
6286 UNBILLED_RECEIVABLES,
6287 UNEARNED_REVENUE,
6288 AR_UNAPPR_INVOICE_AMOUNT,
6289 AR_UNAPPR_INVOICE_COUNT,
6290 AR_APPR_INVOICE_AMOUNT,
6291 AR_APPR_INVOICE_COUNT,
6292 AR_AMOUNT_DUE,
6293 AR_COUNT_DUE,
6294 AR_AMOUNT_OVERDUE,
6295 AR_COUNT_OVERDUE,
6296 CUSTOM1,
6297 CUSTOM2,
6298 CUSTOM3,
6299 CUSTOM4,
6300 CUSTOM5,
6301 CUSTOM6,
6302 CUSTOM7,
6303 CUSTOM8,
6304 CUSTOM9,
6305 CUSTOM10,
6306 CUSTOM11,
6307 CUSTOM12,
6308 CUSTOM13,
6309 CUSTOM14,
6310 CUSTOM15
6311 )
6312 select
6313 WORKER_ID,
6314 null RECORD_TYPE,
6315 0 PRG_LEVEL,
6316 PROJECT_ID,
6317 PROJECT_ORG_ID,
6318 PROJECT_ORGANIZATION_ID,
6319 PROJECT_ELEMENT_ID,
6320 TIME_ID,
6321 PERIOD_TYPE_ID,
6322 CALENDAR_TYPE,
6323 WBS_ROLLUP_FLAG,
6324 PRG_ROLLUP_FLAG,
6325 CURR_RECORD_TYPE_ID,
6326 CURRENCY_CODE,
6327 sum(REVENUE) REVENUE,
6328 sum(INITIAL_FUNDING_AMOUNT) INITIAL_FUNDING_AMOUNT,
6329 sum(INITIAL_FUNDING_COUNT) INITIAL_FUNDING_COUNT,
6330 sum(ADDITIONAL_FUNDING_AMOUNT) ADDITIONAL_FUNDING_AMOUNT,
6331 sum(ADDITIONAL_FUNDING_COUNT) ADDITIONAL_FUNDING_COUNT,
6332 sum(CANCELLED_FUNDING_AMOUNT) CANCELLED_FUNDING_AMOUNT,
6333 sum(CANCELLED_FUNDING_COUNT) CANCELLED_FUNDING_COUNT,
6334 sum(FUNDING_ADJUSTMENT_AMOUNT) FUNDING_ADJUSTMENT_AMOUNT,
6335 sum(FUNDING_ADJUSTMENT_COUNT) FUNDING_ADJUSTMENT_COUNT,
6336 sum(REVENUE_WRITEOFF) REVENUE_WRITEOFF,
6337 sum(AR_INVOICE_AMOUNT) AR_INVOICE_AMOUNT,
6338 sum(AR_INVOICE_COUNT) AR_INVOICE_COUNT,
6339 sum(AR_CASH_APPLIED_AMOUNT) AR_CASH_APPLIED_AMOUNT,
6340 sum(AR_INVOICE_WRITE_OFF_AMOUNT) AR_INVOICE_WRITE_OFF_AMOUNT,
6341 sum(AR_INVOICE_WRITEOFF_COUNT) AR_INVOICE_WRITEOFF_COUNT,
6342 sum(AR_CREDIT_MEMO_AMOUNT) AR_CREDIT_MEMO_AMOUNT,
6343 sum(AR_CREDIT_MEMO_COUNT) AR_CREDIT_MEMO_COUNT,
6344 sum(UNBILLED_RECEIVABLES) UNBILLED_RECEIVABLES,
6345 sum(UNEARNED_REVENUE) UNEARNED_REVENUE,
6346 sum(AR_UNAPPR_INVOICE_AMOUNT) AR_UNAPPR_INVOICE_AMOUNT,
6347 sum(AR_UNAPPR_INVOICE_COUNT) AR_UNAPPR_INVOICE_COUNT,
6348 sum(AR_APPR_INVOICE_AMOUNT) AR_APPR_INVOICE_AMOUNT,
6349 sum(AR_APPR_INVOICE_COUNT) AR_APPR_INVOICE_COUNT,
6350 sum(AR_AMOUNT_DUE) AR_AMOUNT_DUE,
6351 sum(AR_COUNT_DUE) AR_COUNT_DUE,
6352 sum(AR_AMOUNT_OVERDUE) AR_AMOUNT_OVERDUE,
6353 sum(AR_COUNT_OVERDUE) AR_COUNT_OVERDUE,
6354 sum(CUSTOM1) CUSTOM1,
6355 sum(CUSTOM2) CUSTOM2,
6356 sum(CUSTOM3) CUSTOM3,
6357 sum(CUSTOM4) CUSTOM4,
6358 sum(CUSTOM5) CUSTOM5,
6359 sum(CUSTOM6) CUSTOM6,
6360 sum(CUSTOM7) CUSTOM7,
6361 sum(CUSTOM8) CUSTOM8,
6362 sum(CUSTOM9) CUSTOM9,
6363 sum(CUSTOM10) CUSTOM10,
6364 sum(CUSTOM11) CUSTOM11,
6365 sum(CUSTOM12) CUSTOM12,
6366 sum(CUSTOM13) CUSTOM13,
6367 sum(CUSTOM14) CUSTOM14,
6368 sum(CUSTOM15) CUSTOM15
6369 from
6370 (
6371 select
6372 WORKER_ID,
6373 PROJECT_ID,
6374 PROJECT_ORG_ID,
6375 PROJECT_ORGANIZATION_ID,
6376 PROJECT_ELEMENT_ID,
6377 TIME_ID,
6378 PERIOD_TYPE_ID,
6379 CALENDAR_TYPE,
6380 WBS_ROLLUP_FLAG,
6381 PRG_ROLLUP_FLAG,
6382 CURR_RECORD_TYPE_ID,
6383 CURRENCY_CODE,
6384 REVENUE,
6385 INITIAL_FUNDING_AMOUNT,
6386 INITIAL_FUNDING_COUNT,
6387 ADDITIONAL_FUNDING_AMOUNT,
6388 ADDITIONAL_FUNDING_COUNT,
6389 CANCELLED_FUNDING_AMOUNT,
6390 CANCELLED_FUNDING_COUNT,
6391 FUNDING_ADJUSTMENT_AMOUNT,
6392 FUNDING_ADJUSTMENT_COUNT,
6393 REVENUE_WRITEOFF,
6394 AR_INVOICE_AMOUNT,
6395 AR_INVOICE_COUNT,
6396 AR_CASH_APPLIED_AMOUNT,
6397 AR_INVOICE_WRITE_OFF_AMOUNT,
6398 AR_INVOICE_WRITEOFF_COUNT,
6399 AR_CREDIT_MEMO_AMOUNT,
6400 AR_CREDIT_MEMO_COUNT,
6401 UNBILLED_RECEIVABLES,
6402 UNEARNED_REVENUE,
6403 AR_UNAPPR_INVOICE_AMOUNT,
6404 AR_UNAPPR_INVOICE_COUNT,
6405 AR_APPR_INVOICE_AMOUNT,
6406 AR_APPR_INVOICE_COUNT,
6407 AR_AMOUNT_DUE,
6408 AR_COUNT_DUE,
6409 AR_AMOUNT_OVERDUE,
6410 AR_COUNT_OVERDUE,
6411 to_number(null) CUSTOM1,
6412 to_number(null) CUSTOM2,
6413 to_number(null) CUSTOM3,
6414 to_number(null) CUSTOM4,
6415 to_number(null) CUSTOM5,
6416 to_number(null) CUSTOM6,
6417 to_number(null) CUSTOM7,
6418 to_number(null) CUSTOM8,
6419 to_number(null) CUSTOM9,
6420 to_number(null) CUSTOM10,
6421 to_number(null) CUSTOM11,
6422 to_number(null) CUSTOM12,
6423 to_number(null) CUSTOM13,
6424 to_number(null) CUSTOM14,
6425 to_number(null) CUSTOM15
6426 from
6427 PJI_AC_AGGR_PJP0
6428 where
6429 WORKER_ID = p_worker_id
6430 union all
6431 select
6432 WORKER_ID,
6433 PROJECT_ID,
6434 PROJECT_ORG_ID,
6435 PROJECT_ORGANIZATION_ID,
6436 PROJECT_ELEMENT_ID,
6437 TIME_ID,
6438 PERIOD_TYPE_ID,
6439 CALENDAR_TYPE,
6440 WBS_ROLLUP_FLAG,
6441 PRG_ROLLUP_FLAG,
6442 CURR_RECORD_TYPE_ID,
6443 CURRENCY_CODE,
6444 to_number(null) REVENUE,
6445 to_number(null) INITIAL_FUNDING_AMOUNT,
6446 to_number(null) INITIAL_FUNDING_COUNT,
6447 to_number(null) ADDITIONAL_FUNDING_AMOUNT,
6448 to_number(null) ADDITIONAL_FUNDING_COUNT,
6449 to_number(null) CANCELLED_FUNDING_AMOUNT,
6450 to_number(null) CANCELLED_FUNDING_COUNT,
6451 to_number(null) FUNDING_ADJUSTMENT_AMOUNT,
6452 to_number(null) FUNDING_ADJUSTMENT_COUNT,
6453 to_number(null) REVENUE_WRITEOFF,
6454 to_number(null) AR_INVOICE_AMOUNT,
6455 to_number(null) AR_INVOICE_COUNT,
6456 to_number(null) AR_CASH_APPLIED_AMOUNT,
6457 to_number(null) AR_INVOICE_WRITE_OFF_AMOUNT,
6458 to_number(null) AR_INVOICE_WRITEOFF_COUNT,
6459 to_number(null) AR_CREDIT_MEMO_AMOUNT,
6460 to_number(null) AR_CREDIT_MEMO_COUNT,
6461 to_number(null) UNBILLED_RECEIVABLES,
6462 to_number(null) UNEARNED_REVENUE,
6463 to_number(null) AR_UNAPPR_INVOICE_AMOUNT,
6464 to_number(null) AR_UNAPPR_INVOICE_COUNT,
6465 to_number(null) AR_APPR_INVOICE_AMOUNT,
6466 to_number(null) AR_APPR_INVOICE_COUNT,
6467 to_number(null) AR_AMOUNT_DUE,
6468 to_number(null) AR_COUNT_DUE,
6469 to_number(null) AR_AMOUNT_OVERDUE,
6470 to_number(null) AR_COUNT_OVERDUE,
6471 CUSTOM1,
6472 CUSTOM2,
6473 CUSTOM3,
6474 CUSTOM4,
6475 CUSTOM5,
6476 CUSTOM6,
6477 CUSTOM7,
6478 CUSTOM8,
6479 CUSTOM9,
6480 CUSTOM10,
6481 CUSTOM11,
6482 CUSTOM12,
6483 CUSTOM13,
6484 CUSTOM14,
6485 CUSTOM15
6486 from
6487 PJI_AC_CUST_PJP0
6488 where
6489 WORKER_ID = p_worker_id
6490 union all -- activity and snapshot reversals - PART 1 - ENT dates
6491 -- Select old ITD amounts for snapshots with
6492 -- reverse sign from base level fact
6493 select /*+ full(map) use_nl(acr) */
6494 distinct -- Bug 6689297
6495 p_worker_id WORKER_ID,
6496 acr.PROJECT_ID,
6497 acr.PROJECT_ORG_ID,
6498 acr.PROJECT_ORGANIZATION_ID,
6499 acr.PROJECT_ELEMENT_ID,
6500 decode(invert.INVERT_ID,
6501 'ACTIVITY', acr.TIME_ID,
6502 'SNAPSHOT', ent.ENT_PERIOD_ID) TIME_ID,
6503 32 PERIOD_TYPE_ID,
6504 'E' CALENDAR_TYPE,
6505 acr.WBS_ROLLUP_FLAG,
6506 acr.PRG_ROLLUP_FLAG,
6507 acr.CURR_RECORD_TYPE_ID,
6508 acr.CURRENCY_CODE,
6509 to_number(null) REVENUE,
6510 to_number(null) INITIAL_FUNDING_AMOUNT,
6511 to_number(null) INITIAL_FUNDING_COUNT,
6512 to_number(null) ADDITIONAL_FUNDING_AMOUNT,
6513 to_number(null) ADDITIONAL_FUNDING_COUNT,
6514 to_number(null) CANCELLED_FUNDING_AMOUNT,
6515 to_number(null) CANCELLED_FUNDING_COUNT,
6516 to_number(null) FUNDING_ADJUSTMENT_AMOUNT,
6517 to_number(null) FUNDING_ADJUSTMENT_COUNT,
6518 to_number(null) REVENUE_WRITEOFF,
6519 to_number(null) AR_INVOICE_AMOUNT, -- Bug 6689297
6520 to_number(null) AR_INVOICE_COUNT, -- Bug 6689297
6521 /* decode(invert.INVERT_ID,
6522 'ACTIVITY', - acr.AR_INVOICE_AMOUNT,
6523 'SNAPSHOT', to_number(null)) AR_INVOICE_AMOUNT,
6524 decode(invert.INVERT_ID,
6525 'ACTIVITY', decode(ent.ENT_PERIOD_ID,
6526 acr.TIME_ID, to_number(null),
6527 - acr.AR_INVOICE_COUNT),
6528 'SNAPSHOT', - acr.AR_INVOICE_COUNT) AR_INVOICE_COUNT, */
6529 decode(invert.INVERT_ID,
6530 'ACTIVITY', to_number(null),
6531 'SNAPSHOT', - acr.AR_CASH_APPLIED_AMOUNT)
6532 AR_CASH_APPLIED_AMOUNT,
6533 decode(invert.INVERT_ID,
6534 'ACTIVITY', - acr.AR_INVOICE_WRITE_OFF_AMOUNT,
6535 'SNAPSHOT', to_number(null)) AR_INVOICE_WRITE_OFF_AMOUNT,
6536 decode(invert.INVERT_ID,
6537 'ACTIVITY', decode(ent.ENT_PERIOD_ID,
6538 acr.TIME_ID, to_number(null),
6539 -acr.AR_INVOICE_WRITEOFF_COUNT),
6540 'SNAPSHOT', - acr.AR_INVOICE_WRITEOFF_COUNT)
6541 AR_INVOICE_WRITEOFF_COUNT,
6542 decode(invert.INVERT_ID,
6543 'ACTIVITY', - acr.AR_CREDIT_MEMO_AMOUNT,
6544 'SNAPSHOT', to_number(null)) AR_CREDIT_MEMO_AMOUNT,
6545 decode(invert.INVERT_ID,
6546 'ACTIVITY', decode(ent.ENT_PERIOD_ID,
6547 acr.TIME_ID, to_number(null),
6548 - acr.AR_CREDIT_MEMO_COUNT),
6549 'SNAPSHOT', - acr.AR_CREDIT_MEMO_COUNT)
6550 AR_CREDIT_MEMO_COUNT,
6551 to_number(null) UNBILLED_RECEIVABLES,
6552 to_number(null) UNEARNED_REVENUE,
6553 decode(invert.INVERT_ID,
6554 'ACTIVITY', to_number(null),
6555 'SNAPSHOT', - acr.AR_UNAPPR_INVOICE_AMOUNT)
6556 AR_UNAPPR_INVOICE_AMOUNT,
6557 decode(invert.INVERT_ID,
6558 'ACTIVITY', decode(ent.ENT_PERIOD_ID,
6559 acr.TIME_ID, to_number(null),
6560 - acr.AR_UNAPPR_INVOICE_COUNT),
6561 'SNAPSHOT', - acr.AR_UNAPPR_INVOICE_COUNT)
6562 AR_UNAPPR_INVOICE_COUNT,
6563 decode(invert.INVERT_ID,
6564 'ACTIVITY', to_number(null),
6565 'SNAPSHOT', - acr.AR_APPR_INVOICE_AMOUNT)
6566 AR_APPR_INVOICE_AMOUNT,
6567 decode(invert.INVERT_ID,
6568 'ACTIVITY', decode(ent.ENT_PERIOD_ID,
6569 acr.TIME_ID, to_number(null),
6570 - acr.AR_APPR_INVOICE_COUNT),
6571 'SNAPSHOT', - acr.AR_APPR_INVOICE_COUNT)
6572 AR_APPR_INVOICE_COUNT,
6573 decode(invert.INVERT_ID,
6574 'ACTIVITY', to_number(null),
6575 'SNAPSHOT', - acr.AR_AMOUNT_DUE) AR_AMOUNT_DUE,
6576 decode(invert.INVERT_ID,
6577 'ACTIVITY', to_number(null),
6578 'SNAPSHOT', - acr.AR_COUNT_DUE) AR_COUNT_DUE,
6579 decode(invert.INVERT_ID,
6580 'ACTIVITY', to_number(null),
6581 'SNAPSHOT', - acr.AR_AMOUNT_OVERDUE)AR_AMOUNT_OVERDUE,
6582 decode(invert.INVERT_ID,
6583 'ACTIVITY', to_number(null),
6584 'SNAPSHOT', - acr.AR_COUNT_OVERDUE) AR_COUNT_OVERDUE,
6585 to_number(null) CUSTOM1,
6586 to_number(null) CUSTOM2,
6587 to_number(null) CUSTOM3,
6588 to_number(null) CUSTOM4,
6589 to_number(null) CUSTOM5,
6590 to_number(null) CUSTOM6,
6591 to_number(null) CUSTOM7,
6592 to_number(null) CUSTOM8,
6593 to_number(null) CUSTOM9,
6594 to_number(null) CUSTOM10,
6595 to_number(null) CUSTOM11,
6596 to_number(null) CUSTOM12,
6597 to_number(null) CUSTOM13,
6598 to_number(null) CUSTOM14,
6599 to_number(null) CUSTOM15
6600 from
6601 PJI_PJP_PROJ_BATCH_MAP map,
6602 PJI_AC_XBS_ACCUM_F acr,
6603 PJI_AC_AGGR_PJP0 pjp0, -- Bug 6689297
6604 PJI_TIME_RPT_STRUCT cal,
6605 PJI_TIME_ENT_PERIOD_V ent,
6606 (
6607 select 'ACTIVITY' INVERT_ID from DUAL union all
6608 select 'SNAPSHOT' INVERT_ID from DUAL
6609 ) invert
6610 where
6611 l_extraction_type <> 'PARTIAL' and
6612 map.WORKER_ID = p_worker_id and
6613 acr.PROJECT_ID = map.PROJECT_ID and
6614 pjp0.WORKER_ID = p_worker_id and -- Bug 6689297
6615 acr.PROJECT_ID = pjp0.PROJECT_ID and -- Bug 6689297
6616 acr.WBS_ROLLUP_FLAG = 'N' and
6617 acr.PRG_ROLLUP_FLAG = 'N' and
6618 cal.REPORT_DATE = trunc(ent.START_DATE, 'J') and
6619 cal.CALENDAR_TYPE = acr.CALENDAR_TYPE and
6620 cal.PERIOD_TYPE_ID = acr.PERIOD_TYPE_ID and
6621 cal.TIME_ID = acr.TIME_ID and
6622 bitand(cal.RECORD_TYPE_ID, 1376) = cal.RECORD_TYPE_ID and
6623 sysdate between ent.START_DATE and ent.END_DATE and
6624 abs(nvl(acr.AR_CASH_APPLIED_AMOUNT,0)) +
6625 abs(nvl(acr.AR_UNAPPR_INVOICE_AMOUNT,0)) +
6626 abs(nvl(acr.AR_APPR_INVOICE_AMOUNT,0)) +
6627 abs(nvl(acr.AR_AMOUNT_DUE,0)) +
6628 abs(nvl(acr.AR_AMOUNT_OVERDUE,0)) +
6629 abs(nvl(acr.AR_UNAPPR_INVOICE_COUNT,0)) +
6630 abs(nvl(acr.AR_APPR_INVOICE_COUNT,0)) +
6631 abs(nvl(acr.AR_COUNT_DUE,0)) +
6632 abs(nvl(acr.AR_COUNT_OVERDUE,0)) > 0
6633 union all -- activity and snapshot reversals - PART 2 - GL dates
6634 -- Select old ITD amounts for snapshots with
6635 -- reverse sign from base level fact
6636 select /*+ full(map) use_nl(acr) full(info) */
6637 distinct -- Bug 6689297
6638 p_worker_id WORKER_ID,
6639 acr.PROJECT_ID,
6640 acr.PROJECT_ORG_ID,
6641 acr.PROJECT_ORGANIZATION_ID,
6642 acr.PROJECT_ELEMENT_ID,
6643 decode(invert.INVERT_ID,
6644 'ACTIVITY', acr.TIME_ID,
6645 'SNAPSHOT', gl_cal.CAL_PERIOD_ID) TIME_ID,
6646 32 PERIOD_TYPE_ID,
6647 'G' CALENDAR_TYPE,
6648 acr.WBS_ROLLUP_FLAG,
6649 acr.PRG_ROLLUP_FLAG,
6650 acr.CURR_RECORD_TYPE_ID,
6651 acr.CURRENCY_CODE,
6652 to_number(null) REVENUE,
6653 to_number(null) INITIAL_FUNDING_AMOUNT,
6654 to_number(null) INITIAL_FUNDING_COUNT,
6655 to_number(null) ADDITIONAL_FUNDING_AMOUNT,
6656 to_number(null) ADDITIONAL_FUNDING_COUNT,
6657 to_number(null) CANCELLED_FUNDING_AMOUNT,
6658 to_number(null) CANCELLED_FUNDING_COUNT,
6659 to_number(null) FUNDING_ADJUSTMENT_AMOUNT,
6660 to_number(null) FUNDING_ADJUSTMENT_COUNT,
6661 to_number(null) REVENUE_WRITEOFF,
6662 to_number(null) AR_INVOICE_AMOUNT, -- Bug 6689297
6663 to_number(null) AR_INVOICE_COUNT, -- Bug 6689297
6664 /* decode(invert.INVERT_ID,
6665 'ACTIVITY', - acr.AR_INVOICE_AMOUNT,
6666 'SNAPSHOT', to_number(null)) AR_INVOICE_AMOUNT,
6667 decode(invert.INVERT_ID,
6668 'ACTIVITY', decode(gl_cal.CAL_PERIOD_ID,
6669 acr.TIME_ID, to_number(null),
6670 - acr.AR_INVOICE_COUNT),
6671 'SNAPSHOT', - acr.AR_INVOICE_COUNT) AR_INVOICE_COUNT, */
6672 decode(invert.INVERT_ID,
6673 'ACTIVITY', to_number(null),
6674 'SNAPSHOT', - acr.AR_CASH_APPLIED_AMOUNT)
6675 AR_CASH_APPLIED_AMOUNT,
6676 decode(invert.INVERT_ID,
6677 'ACTIVITY', - acr.AR_INVOICE_WRITE_OFF_AMOUNT,
6678 'SNAPSHOT', to_number(null)) AR_INVOICE_WRITE_OFF_AMOUNT,
6679 decode(invert.INVERT_ID,
6680 'ACTIVITY', decode(gl_cal.CAL_PERIOD_ID,
6681 acr.TIME_ID, to_number(null),
6682 -acr.AR_INVOICE_WRITEOFF_COUNT),
6683 'SNAPSHOT', - acr.AR_INVOICE_WRITEOFF_COUNT)
6684 AR_INVOICE_WRITEOFF_COUNT,
6685 decode(invert.INVERT_ID,
6686 'ACTIVITY', - acr.AR_CREDIT_MEMO_AMOUNT,
6687 'SNAPSHOT', to_number(null)) AR_CREDIT_MEMO_AMOUNT,
6688 decode(invert.INVERT_ID,
6689 'ACTIVITY', decode(gl_cal.CAL_PERIOD_ID,
6690 acr.TIME_ID, to_number(null),
6691 - acr.AR_CREDIT_MEMO_COUNT),
6692 'SNAPSHOT', - acr.AR_CREDIT_MEMO_COUNT)
6693 AR_CREDIT_MEMO_COUNT,
6694 to_number(null) UNBILLED_RECEIVABLES,
6695 to_number(null) UNEARNED_REVENUE,
6696 decode(invert.INVERT_ID,
6697 'ACTIVITY', to_number(null),
6698 'SNAPSHOT', - acr.AR_UNAPPR_INVOICE_AMOUNT)
6699 AR_UNAPPR_INVOICE_AMOUNT,
6700 decode(invert.INVERT_ID,
6701 'ACTIVITY', decode(gl_cal.CAL_PERIOD_ID,
6702 acr.TIME_ID, to_number(null),
6703 - acr.AR_UNAPPR_INVOICE_COUNT),
6704 'SNAPSHOT', - acr.AR_UNAPPR_INVOICE_COUNT)
6705 AR_UNAPPR_INVOICE_COUNT,
6706 decode(invert.INVERT_ID,
6707 'ACTIVITY', to_number(null),
6708 'SNAPSHOT', - acr.AR_APPR_INVOICE_AMOUNT)
6709 AR_APPR_INVOICE_AMOUNT,
6710 decode(invert.INVERT_ID,
6711 'ACTIVITY', decode(gl_cal.CAL_PERIOD_ID,
6712 acr.TIME_ID, to_number(null),
6713 - acr.AR_APPR_INVOICE_COUNT),
6714 'SNAPSHOT', - acr.AR_APPR_INVOICE_COUNT)
6715 AR_APPR_INVOICE_COUNT,
6716 decode(invert.INVERT_ID,
6717 'ACTIVITY', to_number(null),
6718 'SNAPSHOT', - acr.AR_AMOUNT_DUE) AR_AMOUNT_DUE,
6719 decode(invert.INVERT_ID,
6720 'ACTIVITY', to_number(null),
6721 'SNAPSHOT', - acr.AR_COUNT_DUE) AR_COUNT_DUE,
6722 decode(invert.INVERT_ID,
6723 'ACTIVITY', to_number(null),
6724 'SNAPSHOT', - acr.AR_AMOUNT_OVERDUE)AR_AMOUNT_OVERDUE,
6725 decode(invert.INVERT_ID,
6726 'ACTIVITY', to_number(null),
6727 'SNAPSHOT', - acr.AR_COUNT_OVERDUE) AR_COUNT_OVERDUE,
6728 to_number(null) CUSTOM1,
6729 to_number(null) CUSTOM2,
6730 to_number(null) CUSTOM3,
6731 to_number(null) CUSTOM4,
6732 to_number(null) CUSTOM5,
6733 to_number(null) CUSTOM6,
6734 to_number(null) CUSTOM7,
6735 to_number(null) CUSTOM8,
6736 to_number(null) CUSTOM9,
6737 to_number(null) CUSTOM10,
6738 to_number(null) CUSTOM11,
6739 to_number(null) CUSTOM12,
6740 to_number(null) CUSTOM13,
6741 to_number(null) CUSTOM14,
6742 to_number(null) CUSTOM15
6743 from
6744 PJI_PJP_PROJ_BATCH_MAP map,
6745 PJI_AC_XBS_ACCUM_F acr,
6746 PJI_AC_AGGR_PJP0 pjp0, -- Bug 6689297
6747 PJI_TIME_CAL_RPT_STRUCT cal,
6748 PJI_ORG_EXTR_INFO info,
6749 PJI_TIME_CAL_PERIOD_V gl_cal,
6750 (
6751 select 'ACTIVITY' INVERT_ID from DUAL union all
6752 select 'SNAPSHOT' INVERT_ID from DUAL
6753 ) invert
6754 where
6755 l_extraction_type <> 'PARTIAL' and
6756 map.WORKER_ID = p_worker_id and
6757 acr.PROJECT_ID = map.PROJECT_ID and
6758 pjp0.WORKER_ID = p_worker_id and -- Bug 6689297
6759 acr.PROJECT_ID = pjp0.PROJECT_ID and -- Bug 6689297
6760 acr.WBS_ROLLUP_FLAG = 'N' and
6761 acr.PRG_ROLLUP_FLAG = 'N' and
6762 acr.PROJECT_ORG_ID = info.ORG_ID and /*5377133 */
6763 acr.CALENDAR_TYPE = 'G' and
6764 cal.REPORT_DATE = trunc(gl_cal.START_DATE, 'J') and
6765 cal.CALENDAR_ID = info.GL_CALENDAR_ID and
6766 cal.PERIOD_TYPE_ID = acr.PERIOD_TYPE_ID and
6767 cal.TIME_ID = acr.TIME_ID and
6768 bitand(cal.RECORD_TYPE_ID, 1376) = cal.RECORD_TYPE_ID and
6769 gl_cal.CALENDAR_ID = info.GL_CALENDAR_ID and
6770 sysdate between gl_cal.START_DATE and gl_cal.END_DATE and
6771 abs(nvl(acr.AR_CASH_APPLIED_AMOUNT,0)) +
6772 abs(nvl(acr.AR_UNAPPR_INVOICE_AMOUNT,0)) +
6773 abs(nvl(acr.AR_APPR_INVOICE_AMOUNT,0)) +
6774 abs(nvl(acr.AR_AMOUNT_DUE,0)) +
6775 abs(nvl(acr.AR_AMOUNT_OVERDUE,0)) +
6776 abs(nvl(acr.AR_UNAPPR_INVOICE_COUNT,0)) +
6777 abs(nvl(acr.AR_APPR_INVOICE_COUNT,0)) +
6778 abs(nvl(acr.AR_COUNT_DUE,0)) +
6779 abs(nvl(acr.AR_COUNT_OVERDUE,0)) > 0
6780 union all -- activity and snapshot reversals - PART 3 - PA dates
6781 -- Select old ITD amounts for snapshots with
6782 -- reverse sign from base level fact
6783 select /*+ full(map) use_nl(acr) full(info) */
6784 distinct -- Bug 6689297
6785 p_worker_id WORKER_ID,
6786 acr.PROJECT_ID,
6787 acr.PROJECT_ORG_ID,
6788 acr.PROJECT_ORGANIZATION_ID,
6789 acr.PROJECT_ELEMENT_ID,
6790 decode(invert.INVERT_ID,
6791 'ACTIVITY', acr.TIME_ID,
6792 'SNAPSHOT', pa_cal.CAL_PERIOD_ID) TIME_ID,
6793 32 PERIOD_TYPE_ID,
6794 'P' CALENDAR_TYPE,
6795 acr.WBS_ROLLUP_FLAG,
6796 acr.PRG_ROLLUP_FLAG,
6797 acr.CURR_RECORD_TYPE_ID,
6798 acr.CURRENCY_CODE,
6799 to_number(null) REVENUE,
6800 to_number(null) INITIAL_FUNDING_AMOUNT,
6801 to_number(null) INITIAL_FUNDING_COUNT,
6802 to_number(null) ADDITIONAL_FUNDING_AMOUNT,
6803 to_number(null) ADDITIONAL_FUNDING_COUNT,
6804 to_number(null) CANCELLED_FUNDING_AMOUNT,
6805 to_number(null) CANCELLED_FUNDING_COUNT,
6806 to_number(null) FUNDING_ADJUSTMENT_AMOUNT,
6807 to_number(null) FUNDING_ADJUSTMENT_COUNT,
6808 to_number(null) REVENUE_WRITEOFF,
6809 to_number(null) AR_INVOICE_AMOUNT, -- Bug 6689297
6810 to_number(null) AR_INVOICE_COUNT, -- Bug 6689297
6811 /* decode(invert.INVERT_ID,
6812 'ACTIVITY', - acr.AR_INVOICE_AMOUNT,
6813 'SNAPSHOT', to_number(null)) AR_INVOICE_AMOUNT,
6814 decode(invert.INVERT_ID,
6815 'ACTIVITY', decode(pa_cal.CAL_PERIOD_ID,
6816 acr.TIME_ID, to_number(null),
6817 - acr.AR_INVOICE_COUNT),
6818 'SNAPSHOT', - acr.AR_INVOICE_COUNT) AR_INVOICE_COUNT, */
6819 decode(invert.INVERT_ID,
6820 'ACTIVITY', to_number(null),
6821 'SNAPSHOT', - acr.AR_CASH_APPLIED_AMOUNT)
6822 AR_CASH_APPLIED_AMOUNT,
6823 decode(invert.INVERT_ID,
6824 'ACTIVITY', - acr.AR_INVOICE_WRITE_OFF_AMOUNT,
6825 'SNAPSHOT', to_number(null)) AR_INVOICE_WRITE_OFF_AMOUNT,
6826 decode(invert.INVERT_ID,
6827 'ACTIVITY', decode(pa_cal.CAL_PERIOD_ID,
6828 acr.TIME_ID, to_number(null),
6829 -acr.AR_INVOICE_WRITEOFF_COUNT),
6830 'SNAPSHOT', - acr.AR_INVOICE_WRITEOFF_COUNT)
6831 AR_INVOICE_WRITEOFF_COUNT,
6832 decode(invert.INVERT_ID,
6833 'ACTIVITY', - acr.AR_CREDIT_MEMO_AMOUNT,
6834 'SNAPSHOT', to_number(null)) AR_CREDIT_MEMO_AMOUNT,
6835 decode(invert.INVERT_ID,
6836 'ACTIVITY', decode(pa_cal.CAL_PERIOD_ID,
6837 acr.TIME_ID, to_number(null),
6838 - acr.AR_CREDIT_MEMO_COUNT),
6839 'SNAPSHOT', - acr.AR_CREDIT_MEMO_COUNT)
6840 AR_CREDIT_MEMO_COUNT,
6841 to_number(null) UNBILLED_RECEIVABLES,
6842 to_number(null) UNEARNED_REVENUE,
6843 decode(invert.INVERT_ID,
6844 'ACTIVITY', to_number(null),
6845 'SNAPSHOT', - acr.AR_UNAPPR_INVOICE_AMOUNT)
6846 AR_UNAPPR_INVOICE_AMOUNT,
6847 decode(invert.INVERT_ID,
6848 'ACTIVITY', decode(pa_cal.CAL_PERIOD_ID,
6849 acr.TIME_ID, to_number(null),
6850 - acr.AR_UNAPPR_INVOICE_COUNT),
6851 'SNAPSHOT', - acr.AR_UNAPPR_INVOICE_COUNT)
6852 AR_UNAPPR_INVOICE_COUNT,
6853 decode(invert.INVERT_ID,
6854 'ACTIVITY', to_number(null),
6855 'SNAPSHOT', - acr.AR_APPR_INVOICE_AMOUNT)
6856 AR_APPR_INVOICE_AMOUNT,
6857 decode(invert.INVERT_ID,
6858 'ACTIVITY', decode(pa_cal.CAL_PERIOD_ID,
6859 acr.TIME_ID, to_number(null),
6860 - acr.AR_APPR_INVOICE_COUNT),
6861 'SNAPSHOT', - acr.AR_APPR_INVOICE_COUNT)
6862 AR_APPR_INVOICE_COUNT,
6863 decode(invert.INVERT_ID,
6864 'ACTIVITY', to_number(null),
6865 'SNAPSHOT', - acr.AR_AMOUNT_DUE) AR_AMOUNT_DUE,
6866 decode(invert.INVERT_ID,
6867 'ACTIVITY', to_number(null),
6868 'SNAPSHOT', - acr.AR_COUNT_DUE) AR_COUNT_DUE,
6869 decode(invert.INVERT_ID,
6870 'ACTIVITY', to_number(null),
6871 'SNAPSHOT', - acr.AR_AMOUNT_OVERDUE)AR_AMOUNT_OVERDUE,
6872 decode(invert.INVERT_ID,
6873 'ACTIVITY', to_number(null),
6874 'SNAPSHOT', - acr.AR_COUNT_OVERDUE) AR_COUNT_OVERDUE,
6875 to_number(null) CUSTOM1,
6876 to_number(null) CUSTOM2,
6877 to_number(null) CUSTOM3,
6878 to_number(null) CUSTOM4,
6879 to_number(null) CUSTOM5,
6880 to_number(null) CUSTOM6,
6881 to_number(null) CUSTOM7,
6882 to_number(null) CUSTOM8,
6883 to_number(null) CUSTOM9,
6884 to_number(null) CUSTOM10,
6885 to_number(null) CUSTOM11,
6886 to_number(null) CUSTOM12,
6887 to_number(null) CUSTOM13,
6888 to_number(null) CUSTOM14,
6889 to_number(null) CUSTOM15
6890 from
6891 PJI_PJP_PROJ_BATCH_MAP map,
6892 PJI_AC_XBS_ACCUM_F acr,
6893 PJI_AC_AGGR_PJP0 pjp0, -- Bug 6689297
6894 PJI_TIME_CAL_RPT_STRUCT cal,
6895 PJI_ORG_EXTR_INFO info,
6896 PJI_TIME_CAL_PERIOD_V pa_cal,
6897 (
6898 select 'ACTIVITY' INVERT_ID from DUAL union all
6899 select 'SNAPSHOT' INVERT_ID from DUAL
6900 ) invert
6901 where
6902 l_extraction_type <> 'PARTIAL' and
6903 map.WORKER_ID = p_worker_id and
6904 acr.PROJECT_ID = map.PROJECT_ID and
6905 pjp0.WORKER_ID = p_worker_id and -- Bug 6689297
6906 acr.PROJECT_ID = pjp0.PROJECT_ID and -- Bug 6689297
6907 acr.WBS_ROLLUP_FLAG = 'N' and
6908 acr.PRG_ROLLUP_FLAG = 'N' and
6909 acr.PROJECT_ORG_ID = info.ORG_ID and /*5377133 */
6910 acr.CALENDAR_TYPE = 'P' and
6911 cal.REPORT_DATE = trunc(pa_cal.START_DATE, 'J') and
6912 cal.CALENDAR_ID = info.PA_CALENDAR_ID and
6913 cal.PERIOD_TYPE_ID = acr.PERIOD_TYPE_ID and
6914 cal.TIME_ID = acr.TIME_ID and
6915 bitand(cal.RECORD_TYPE_ID, 1376) = cal.RECORD_TYPE_ID and
6916 pa_cal.CALENDAR_ID = info.PA_CALENDAR_ID and
6917 sysdate between pa_cal.START_DATE and pa_cal.END_DATE and
6918 abs(nvl(acr.AR_CASH_APPLIED_AMOUNT,0)) +
6919 abs(nvl(acr.AR_UNAPPR_INVOICE_AMOUNT,0)) +
6920 abs(nvl(acr.AR_APPR_INVOICE_AMOUNT,0)) +
6921 abs(nvl(acr.AR_AMOUNT_DUE,0)) +
6922 abs(nvl(acr.AR_AMOUNT_OVERDUE,0)) +
6923 abs(nvl(acr.AR_UNAPPR_INVOICE_COUNT,0)) +
6924 abs(nvl(acr.AR_APPR_INVOICE_COUNT,0)) +
6925 abs(nvl(acr.AR_COUNT_DUE,0)) +
6926 abs(nvl(acr.AR_COUNT_OVERDUE,0)) > 0
6927 )
6928 group by
6929 WORKER_ID,
6930 PROJECT_ID,
6931 PROJECT_ORG_ID,
6932 PROJECT_ORGANIZATION_ID,
6933 PROJECT_ELEMENT_ID,
6934 TIME_ID,
6935 PERIOD_TYPE_ID,
6936 CALENDAR_TYPE,
6937 WBS_ROLLUP_FLAG,
6938 PRG_ROLLUP_FLAG,
6939 CURR_RECORD_TYPE_ID,
6940 CURRENCY_CODE
6941 having not
6942 (nvl(sum(REVENUE), 0) = 0 and
6943 nvl(sum(INITIAL_FUNDING_AMOUNT), 0) = 0 and
6944 nvl(sum(INITIAL_FUNDING_COUNT), 0) = 0 and
6945 nvl(sum(ADDITIONAL_FUNDING_AMOUNT), 0) = 0 and
6946 nvl(sum(ADDITIONAL_FUNDING_COUNT), 0) = 0 and
6947 nvl(sum(CANCELLED_FUNDING_AMOUNT), 0) = 0 and
6948 nvl(sum(CANCELLED_FUNDING_COUNT), 0) = 0 and
6949 nvl(sum(FUNDING_ADJUSTMENT_AMOUNT), 0) = 0 and
6950 nvl(sum(FUNDING_ADJUSTMENT_COUNT), 0) = 0 and
6951 nvl(sum(REVENUE_WRITEOFF), 0) = 0 and
6952 nvl(sum(AR_INVOICE_AMOUNT), 0) = 0 and
6953 nvl(sum(AR_INVOICE_COUNT), 0) = 0 and
6954 nvl(sum(AR_CASH_APPLIED_AMOUNT), 0) = 0 and
6955 nvl(sum(AR_INVOICE_WRITE_OFF_AMOUNT), 0) = 0 and
6956 nvl(sum(AR_INVOICE_WRITEOFF_COUNT), 0) = 0 and
6957 nvl(sum(AR_CREDIT_MEMO_AMOUNT), 0) = 0 and
6958 nvl(sum(AR_CREDIT_MEMO_COUNT), 0) = 0 and
6959 nvl(sum(UNBILLED_RECEIVABLES), 0) = 0 and
6960 nvl(sum(UNEARNED_REVENUE), 0) = 0 and
6961 nvl(sum(AR_UNAPPR_INVOICE_AMOUNT), 0) = 0 and
6962 nvl(sum(AR_UNAPPR_INVOICE_COUNT), 0) = 0 and
6963 nvl(sum(AR_APPR_INVOICE_AMOUNT), 0) = 0 and
6964 nvl(sum(AR_APPR_INVOICE_COUNT), 0) = 0 and
6965 nvl(sum(AR_AMOUNT_DUE), 0) = 0 and
6966 nvl(sum(AR_COUNT_DUE), 0) = 0 and
6967 nvl(sum(AR_AMOUNT_OVERDUE), 0) = 0 and
6968 nvl(sum(AR_COUNT_OVERDUE), 0) = 0 and
6969 nvl(sum(CUSTOM1), 0) = 0 and
6970 nvl(sum(CUSTOM2), 0) = 0 and
6971 nvl(sum(CUSTOM3), 0) = 0 and
6972 nvl(sum(CUSTOM4), 0) = 0 and
6973 nvl(sum(CUSTOM5), 0) = 0 and
6974 nvl(sum(CUSTOM6), 0) = 0 and
6975 nvl(sum(CUSTOM7), 0) = 0 and
6976 nvl(sum(CUSTOM8), 0) = 0 and
6977 nvl(sum(CUSTOM9), 0) = 0 and
6978 nvl(sum(CUSTOM10), 0) = 0 and
6979 nvl(sum(CUSTOM11), 0) = 0 and
6980 nvl(sum(CUSTOM12), 0) = 0 and
6981 nvl(sum(CUSTOM13), 0) = 0 and
6982 nvl(sum(CUSTOM14), 0) = 0 and
6983 nvl(sum(CUSTOM15), 0) = 0);
6984 end if;
6985
6986 PJI_PROCESS_UTIL.REGISTER_STEP_COMPLETION(l_process, 'PJI_PJP_SUM_ROLLUP.AGGREGATE_AC_CUST_SLICES(p_worker_id);');
6987
6988 commit;
6989
6990 end AGGREGATE_AC_CUST_SLICES;
6991
6992
6993 -- -----------------------------------------------------
6994 -- procedure PULL_DANGLING_PLANS
6995 --
6996 -- History
6997 -- 19-MAR-2004 SVERMETT Created
6998 --
6999 -- Internal PJP Summarization API.
7000 --
7001 -- -----------------------------------------------------
7002 procedure PULL_DANGLING_PLANS (p_worker_id in number) is
7003
7004 l_process varchar2(30);
7005 l_extraction_type varchar2(30);
7006
7007 l_return_status varchar2(255);
7008 l_msg_count number;
7009 l_msg_data varchar2(2000);
7010
7011 begin
7012
7013 l_process := PJI_PJP_SUM_MAIN.g_process || to_char(p_worker_id);
7014
7015 if (not PJI_PROCESS_UTIL.NEED_TO_RUN_STEP(l_process, 'PJI_PJP_SUM_ROLLUP.PULL_DANGLING_PLANS(p_worker_id);')) then
7016 return;
7017 end if;
7018
7019 l_extraction_type := PJI_PROCESS_UTIL.GET_PROCESS_PARAMETER(l_process, 'EXTRACTION_TYPE');
7020
7021 IF (l_extraction_type = 'INCREMENTAL') THEN
7022 Pji_Fm_Plan_Maint.CREATE_SECONDARY_PVT;
7023 -- PJI_FM_PLAN_MAINT_PVT.PULL_DANGLING_PLANS; -- Removing redundant api nesting.
7024 END IF;
7025
7026 PJI_PROCESS_UTIL.REGISTER_STEP_COMPLETION(l_process, 'PJI_PJP_SUM_ROLLUP.PULL_DANGLING_PLANS(p_worker_id);');
7027
7028 commit;
7029
7030 end PULL_DANGLING_PLANS;
7031
7032
7033 -- -----------------------------------------------------
7034 -- procedure PULL_PLANS_FOR_PR
7035 --
7036 -- History
7037 -- 19-MAR-2004 SVERMETT Created
7038 --
7039 -- Internal PJP Summarization API.
7040 --
7041 -- -----------------------------------------------------
7042 procedure PULL_PLANS_FOR_PR (p_worker_id in number) is
7043
7044 l_process varchar2(30);
7045 l_extraction_type varchar2(30);
7046
7047 l_return_status varchar2(255);
7048 l_msg_code varchar2(255);
7049 l_msg_data varchar2(2000);
7050
7051 l_plan_type_id number;
7052
7053 begin
7054
7055 l_process := PJI_PJP_SUM_MAIN.g_process || to_char(p_worker_id);
7056
7057 if (not PJI_PROCESS_UTIL.NEED_TO_RUN_STEP(l_process, 'PJI_PJP_SUM_ROLLUP.PULL_PLANS_FOR_PR(p_worker_id);')) then
7058 return;
7059 end if;
7060
7061 l_extraction_type := PJI_PROCESS_UTIL.GET_PROCESS_PARAMETER(l_process, 'EXTRACTION_TYPE');
7062
7063 if (l_extraction_type = 'PARTIAL') then
7064
7065 l_plan_type_id := PJI_PROCESS_UTIL.GET_PROCESS_PARAMETER
7066 (l_process, 'PLAN_TYPE_ID');
7067
7068 if (l_plan_type_id = -1) then
7069 l_plan_type_id := null;
7070 end if;
7071
7072 PJI_FM_PLAN_MAINT.PULL_PLANS_FOR_PR(null,
7073 l_plan_type_id,
7074 'PLANTYPE',
7075 l_return_status,
7076 l_msg_code);
7077
7078 end if;
7079
7080 PJI_PROCESS_UTIL.REGISTER_STEP_COMPLETION(l_process, 'PJI_PJP_SUM_ROLLUP.PULL_PLANS_FOR_PR(p_worker_id);');
7081
7082 commit;
7083
7084 end PULL_PLANS_FOR_PR;
7085
7086
7087 -- -----------------------------------------------------
7088 -- procedure PULL_PLANS_FOR_RBS
7089 --
7090 -- History
7091 -- 19-MAR-2004 SVERMETT Created
7092 --
7093 -- Internal PJP Summarization API.
7094 --
7095 -- Called by RBS program
7096 --
7097 -- -----------------------------------------------------
7098 procedure PULL_PLANS_FOR_RBS (p_worker_id in number) is
7099
7100 l_process varchar2(30);
7101 l_extraction_type varchar2(30);
7102
7103 l_return_status varchar2(255);
7104 l_msg_code varchar2(255);
7105 l_msg_data varchar2(2000);
7106
7107 l_rbs_version_id number;
7108
7109 begin
7110
7111 l_process := PJI_PJP_SUM_MAIN.g_process || to_char(p_worker_id);
7112
7113 if (not PJI_PROCESS_UTIL.NEED_TO_RUN_STEP(l_process, 'PJI_PJP_SUM_ROLLUP.PULL_PLANS_FOR_RBS(p_worker_id);')) then
7114 return;
7115 end if;
7116
7117 l_extraction_type := PJI_PROCESS_UTIL.GET_PROCESS_PARAMETER(l_process, 'EXTRACTION_TYPE');
7118
7119 if (l_extraction_type = 'RBS') then
7120
7121 l_rbs_version_id := PJI_PROCESS_UTIL.GET_PROCESS_PARAMETER
7122 (l_process, 'RBS_VERSION_ID');
7123
7124 PJI_FM_PLAN_MAINT.PULL_PLANS_FOR_PR(l_rbs_version_id,
7125 null,
7126 'RBS',
7127 l_return_status,
7128 l_msg_code);
7129
7130 end if;
7131
7132 PJI_PROCESS_UTIL.REGISTER_STEP_COMPLETION(l_process, 'PJI_PJP_SUM_ROLLUP.PULL_PLANS_FOR_RBS(p_worker_id);');
7133
7134 commit;
7135
7136 end PULL_PLANS_FOR_RBS;
7137
7138
7139 -- -----------------------------------------------------
7140 -- procedure ROLLUP_FPR_RBS_TOP
7141 --
7142 -- History
7143 -- 19-MAR-2004 SVERMETT Created
7144 --
7145 -- Internal PJP Summarization API.
7146 --
7147 -- -----------------------------------------------------
7148 procedure ROLLUP_FPR_RBS_TOP (p_worker_id in number) is
7149
7150 l_process varchar2(30);
7151 l_extraction_type varchar2(30);
7152
7153 begin
7154
7155 l_process := PJI_PJP_SUM_MAIN.g_process || to_char(p_worker_id);
7156
7157 if (not PJI_PROCESS_UTIL.NEED_TO_RUN_STEP(l_process, 'PJI_PJP_SUM_ROLLUP.ROLLUP_FPR_RBS_TOP(p_worker_id);')) then
7158 return;
7159 end if;
7160
7161 l_extraction_type := PJI_PROCESS_UTIL.GET_PROCESS_PARAMETER(l_process, 'EXTRACTION_TYPE');
7162
7163 insert into PJI_FP_AGGR_PJP1 pjp1_i
7164 (
7165 WORKER_ID,
7166 RECORD_TYPE,
7167 PRG_LEVEL,
7168 LINE_TYPE,
7169 PROJECT_ID,
7170 PROJECT_ORG_ID,
7171 PROJECT_ORGANIZATION_ID,
7172 PROJECT_ELEMENT_ID,
7173 TIME_ID,
7174 PERIOD_TYPE_ID,
7175 CALENDAR_TYPE,
7176 RBS_AGGR_LEVEL,
7177 WBS_ROLLUP_FLAG,
7178 PRG_ROLLUP_FLAG,
7179 CURR_RECORD_TYPE_ID,
7180 CURRENCY_CODE,
7181 RBS_ELEMENT_ID,
7182 RBS_VERSION_ID,
7183 PLAN_VERSION_ID,
7184 PLAN_TYPE_ID,
7185 PLAN_TYPE_CODE,
7186 RAW_COST,
7187 BRDN_COST,
7188 REVENUE,
7189 BILL_RAW_COST,
7190 BILL_BRDN_COST,
7191 BILL_LABOR_RAW_COST,
7192 BILL_LABOR_BRDN_COST,
7193 BILL_LABOR_HRS,
7194 EQUIPMENT_RAW_COST,
7195 EQUIPMENT_BRDN_COST,
7196 CAPITALIZABLE_RAW_COST,
7197 CAPITALIZABLE_BRDN_COST,
7198 LABOR_RAW_COST,
7199 LABOR_BRDN_COST,
7200 LABOR_HRS,
7201 LABOR_REVENUE,
7202 EQUIPMENT_HOURS,
7203 BILLABLE_EQUIPMENT_HOURS,
7204 SUP_INV_COMMITTED_COST,
7205 PO_COMMITTED_COST,
7206 PR_COMMITTED_COST,
7207 OTH_COMMITTED_COST,
7208 ACT_LABOR_HRS,
7209 ACT_EQUIP_HRS,
7210 ACT_LABOR_BRDN_COST,
7211 ACT_EQUIP_BRDN_COST,
7212 ACT_BRDN_COST,
7213 ACT_RAW_COST,
7214 ACT_REVENUE,
7215 ACT_LABOR_RAW_COST,
7216 ACT_EQUIP_RAW_COST,
7217 ETC_LABOR_HRS,
7218 ETC_EQUIP_HRS,
7219 ETC_LABOR_BRDN_COST,
7220 ETC_EQUIP_BRDN_COST,
7221 ETC_BRDN_COST,
7222 ETC_RAW_COST,
7223 ETC_LABOR_RAW_COST,
7224 ETC_EQUIP_RAW_COST,
7225 CUSTOM1,
7226 CUSTOM2,
7227 CUSTOM3,
7228 CUSTOM4,
7229 CUSTOM5,
7230 CUSTOM6,
7231 CUSTOM7,
7232 CUSTOM8,
7233 CUSTOM9,
7234 CUSTOM10,
7235 CUSTOM11,
7236 CUSTOM12,
7237 CUSTOM13,
7238 CUSTOM14,
7239 CUSTOM15
7240 )
7241 select
7242 p_worker_id WORKER_ID,
7243 null RECORD_TYPE,
7244 pjp1.PRG_LEVEL,
7245 pjp1.LINE_TYPE,
7246 pjp1.PROJECT_ID,
7247 pjp1.PROJECT_ORG_ID,
7248 pjp1.PROJECT_ORGANIZATION_ID,
7249 pjp1.PROJECT_ELEMENT_ID,
7250 pjp1.TIME_ID,
7251 pjp1.PERIOD_TYPE_ID,
7252 pjp1.CALENDAR_TYPE,
7253 pjp1.RBS_AGGR_LEVEL,
7254 pjp1.WBS_ROLLUP_FLAG,
7255 pjp1.PRG_ROLLUP_FLAG,
7256 pjp1.CURR_RECORD_TYPE_ID,
7257 pjp1.CURRENCY_CODE,
7258 pjp1.RBS_ELEMENT_ID,
7259 pjp1.RBS_VERSION_ID,
7260 pjp1.PLAN_VERSION_ID,
7261 pjp1.PLAN_TYPE_ID,
7262 pjp1.PLAN_TYPE_CODE,
7263 sum(pjp1.RAW_COST) RAW_COST,
7264 sum(pjp1.BRDN_COST) BRDN_COST,
7265 sum(pjp1.REVENUE) REVENUE,
7266 sum(pjp1.BILL_RAW_COST) BILL_RAW_COST,
7267 sum(pjp1.BILL_BRDN_COST) BILL_BRDN_COST,
7268 sum(pjp1.BILL_LABOR_RAW_COST) BILL_LABOR_RAW_COST,
7269 sum(pjp1.BILL_LABOR_BRDN_COST) BILL_LABOR_BRDN_COST,
7270 sum(pjp1.BILL_LABOR_HRS) BILL_LABOR_HRS,
7271 sum(pjp1.EQUIPMENT_RAW_COST) EQUIPMENT_RAW_COST,
7272 sum(pjp1.EQUIPMENT_BRDN_COST) EQUIPMENT_BRDN_COST,
7273 sum(pjp1.CAPITALIZABLE_RAW_COST) CAPITALIZABLE_RAW_COST,
7274 sum(pjp1.CAPITALIZABLE_BRDN_COST) CAPITALIZABLE_BRDN_COST,
7275 sum(pjp1.LABOR_RAW_COST) LABOR_RAW_COST,
7276 sum(pjp1.LABOR_BRDN_COST) LABOR_BRDN_COST,
7277 sum(pjp1.LABOR_HRS) LABOR_HRS,
7278 sum(pjp1.LABOR_REVENUE) LABOR_REVENUE,
7279 sum(pjp1.EQUIPMENT_HOURS) EQUIPMENT_HOURS,
7280 sum(pjp1.BILLABLE_EQUIPMENT_HOURS) BILLABLE_EQUIPMENT_HOURS,
7281 sum(pjp1.SUP_INV_COMMITTED_COST) SUP_INV_COMMITTED_COST,
7282 sum(pjp1.PO_COMMITTED_COST) PO_COMMITTED_COST,
7283 sum(pjp1.PR_COMMITTED_COST) PR_COMMITTED_COST,
7284 sum(pjp1.OTH_COMMITTED_COST) OTH_COMMITTED_COST,
7285 sum(pjp1.ACT_LABOR_HRS) ACT_LABOR_HRS,
7286 sum(pjp1.ACT_EQUIP_HRS) ACT_EQUIP_HRS,
7287 sum(pjp1.ACT_LABOR_BRDN_COST) ACT_LABOR_BRDN_COST,
7288 sum(pjp1.ACT_EQUIP_BRDN_COST) ACT_EQUIP_BRDN_COST,
7289 sum(pjp1.ACT_BRDN_COST) ACT_BRDN_COST,
7290 sum(pjp1.ACT_RAW_COST) ACT_RAW_COST,
7291 sum(pjp1.ACT_REVENUE) ACT_REVENUE,
7292 sum(pjp1.ACT_LABOR_RAW_COST) ACT_LABOR_RAW_COST,
7293 sum(pjp1.ACT_EQUIP_RAW_COST) ACT_EQUIP_RAW_COST,
7294 sum(pjp1.ETC_LABOR_HRS) ETC_LABOR_HRS,
7295 sum(pjp1.ETC_EQUIP_HRS) ETC_EQUIP_HRS,
7296 sum(pjp1.ETC_LABOR_BRDN_COST) ETC_LABOR_BRDN_COST,
7297 sum(pjp1.ETC_EQUIP_BRDN_COST) ETC_EQUIP_BRDN_COST,
7298 sum(pjp1.ETC_BRDN_COST) ETC_BRDN_COST,
7299 sum(pjp1.ETC_RAW_COST) ETC_RAW_COST,
7300 sum(pjp1.ETC_LABOR_RAW_COST) ETC_LABOR_RAW_COST,
7301 sum(pjp1.ETC_EQUIP_RAW_COST) ETC_EQUIP_RAW_COST,
7302 sum(pjp1.CUSTOM1) CUSTOM1,
7303 sum(pjp1.CUSTOM2) CUSTOM2,
7304 sum(pjp1.CUSTOM3) CUSTOM3,
7305 sum(pjp1.CUSTOM4) CUSTOM4,
7306 sum(pjp1.CUSTOM5) CUSTOM5,
7307 sum(pjp1.CUSTOM6) CUSTOM6,
7308 sum(pjp1.CUSTOM7) CUSTOM7,
7309 sum(pjp1.CUSTOM8) CUSTOM8,
7310 sum(pjp1.CUSTOM9) CUSTOM9,
7311 sum(pjp1.CUSTOM10) CUSTOM10,
7312 sum(pjp1.CUSTOM11) CUSTOM11,
7313 sum(pjp1.CUSTOM12) CUSTOM12,
7314 sum(pjp1.CUSTOM13) CUSTOM13,
7315 sum(pjp1.CUSTOM14) CUSTOM14,
7316 sum(pjp1.CUSTOM15) CUSTOM15
7317 from
7318 (
7319 select
7320 pjp1.PRG_LEVEL,
7321 pjp1.LINE_TYPE,
7322 pjp1.PROJECT_ID,
7323 pjp1.PROJECT_ORG_ID,
7324 pjp1.PROJECT_ORGANIZATION_ID,
7325 pjp1.PROJECT_ELEMENT_ID,
7326 pjp1.TIME_ID,
7327 pjp1.PERIOD_TYPE_ID,
7328 pjp1.CALENDAR_TYPE,
7329 'T' RBS_AGGR_LEVEL,
7330 pjp1.WBS_ROLLUP_FLAG,
7331 pjp1.PRG_ROLLUP_FLAG,
7332 pjp1.CURR_RECORD_TYPE_ID,
7333 pjp1.CURRENCY_CODE,
7334 pjp1.RBS_ELEMENT_ID,
7335 -1 RBS_VERSION_ID,
7336 pjp1.PLAN_VERSION_ID,
7337 pjp1.PLAN_TYPE_ID,
7338 pjp1.PLAN_TYPE_CODE,
7339 max(pjp1.RAW_COST) RAW_COST,
7340 max(pjp1.BRDN_COST) BRDN_COST,
7341 max(pjp1.REVENUE) REVENUE,
7342 max(pjp1.BILL_RAW_COST) BILL_RAW_COST,
7343 max(pjp1.BILL_BRDN_COST) BILL_BRDN_COST,
7344 max(pjp1.BILL_LABOR_RAW_COST) BILL_LABOR_RAW_COST,
7345 max(pjp1.BILL_LABOR_BRDN_COST) BILL_LABOR_BRDN_COST,
7346 max(pjp1.BILL_LABOR_HRS) BILL_LABOR_HRS,
7347 max(pjp1.EQUIPMENT_RAW_COST) EQUIPMENT_RAW_COST,
7348 max(pjp1.EQUIPMENT_BRDN_COST) EQUIPMENT_BRDN_COST,
7349 max(pjp1.CAPITALIZABLE_RAW_COST) CAPITALIZABLE_RAW_COST,
7350 max(pjp1.CAPITALIZABLE_BRDN_COST) CAPITALIZABLE_BRDN_COST,
7351 max(pjp1.LABOR_RAW_COST) LABOR_RAW_COST,
7352 max(pjp1.LABOR_BRDN_COST) LABOR_BRDN_COST,
7353 max(pjp1.LABOR_HRS) LABOR_HRS,
7354 max(pjp1.LABOR_REVENUE) LABOR_REVENUE,
7355 max(pjp1.EQUIPMENT_HOURS) EQUIPMENT_HOURS,
7356 max(pjp1.BILLABLE_EQUIPMENT_HOURS) BILLABLE_EQUIPMENT_HOURS,
7357 max(pjp1.SUP_INV_COMMITTED_COST) SUP_INV_COMMITTED_COST,
7358 max(pjp1.PO_COMMITTED_COST) PO_COMMITTED_COST,
7359 max(pjp1.PR_COMMITTED_COST) PR_COMMITTED_COST,
7360 max(pjp1.OTH_COMMITTED_COST) OTH_COMMITTED_COST,
7361 max(pjp1.ACT_LABOR_HRS) ACT_LABOR_HRS,
7362 max(pjp1.ACT_EQUIP_HRS) ACT_EQUIP_HRS,
7363 max(pjp1.ACT_LABOR_BRDN_COST) ACT_LABOR_BRDN_COST,
7364 max(pjp1.ACT_EQUIP_BRDN_COST) ACT_EQUIP_BRDN_COST,
7365 max(pjp1.ACT_BRDN_COST) ACT_BRDN_COST,
7366 max(pjp1.ACT_RAW_COST) ACT_RAW_COST,
7367 max(pjp1.ACT_REVENUE) ACT_REVENUE,
7368 max(pjp1.ACT_LABOR_RAW_COST) ACT_LABOR_RAW_COST,
7369 max(pjp1.ACT_EQUIP_RAW_COST) ACT_EQUIP_RAW_COST,
7370 max(pjp1.ETC_LABOR_HRS) ETC_LABOR_HRS,
7371 max(pjp1.ETC_EQUIP_HRS) ETC_EQUIP_HRS,
7372 max(pjp1.ETC_LABOR_BRDN_COST) ETC_LABOR_BRDN_COST,
7373 max(pjp1.ETC_EQUIP_BRDN_COST) ETC_EQUIP_BRDN_COST,
7374 max(pjp1.ETC_BRDN_COST) ETC_BRDN_COST,
7375 max(pjp1.ETC_RAW_COST) ETC_RAW_COST,
7376 max(pjp1.ETC_LABOR_RAW_COST) ETC_LABOR_RAW_COST,
7377 max(pjp1.ETC_EQUIP_RAW_COST) ETC_EQUIP_RAW_COST,
7378 max(pjp1.CUSTOM1) CUSTOM1,
7379 max(pjp1.CUSTOM2) CUSTOM2,
7380 max(pjp1.CUSTOM3) CUSTOM3,
7381 max(pjp1.CUSTOM4) CUSTOM4,
7382 max(pjp1.CUSTOM5) CUSTOM5,
7383 max(pjp1.CUSTOM6) CUSTOM6,
7384 max(pjp1.CUSTOM7) CUSTOM7,
7385 max(pjp1.CUSTOM8) CUSTOM8,
7386 max(pjp1.CUSTOM9) CUSTOM9,
7387 max(pjp1.CUSTOM10) CUSTOM10,
7388 max(pjp1.CUSTOM11) CUSTOM11,
7389 max(pjp1.CUSTOM12) CUSTOM12,
7390 max(pjp1.CUSTOM13) CUSTOM13,
7391 max(pjp1.CUSTOM14) CUSTOM14,
7392 max(pjp1.CUSTOM15) CUSTOM15
7393 from
7394 (
7395 select
7396 pjp1.PRG_LEVEL,
7397 pjp1.LINE_TYPE,
7398 pjp1.PROJECT_ID,
7399 pjp1.PROJECT_ORG_ID,
7400 pjp1.PROJECT_ORGANIZATION_ID,
7401 pjp1.PROJECT_ELEMENT_ID,
7402 pjp1.TIME_ID,
7403 pjp1.PERIOD_TYPE_ID,
7404 pjp1.CALENDAR_TYPE,
7405 pjp1.WBS_ROLLUP_FLAG,
7406 pjp1.PRG_ROLLUP_FLAG,
7407 pjp1.CURR_RECORD_TYPE_ID,
7408 pjp1.CURRENCY_CODE,
7409 -1 RBS_ELEMENT_ID,
7410 pjp1.RBS_VERSION_ID,
7411 pjp1.PLAN_VERSION_ID,
7412 pjp1.PLAN_TYPE_ID,
7413 pjp1.PLAN_TYPE_CODE,
7414 sum(pjp1.RAW_COST) RAW_COST,
7415 sum(pjp1.BRDN_COST) BRDN_COST,
7416 sum(pjp1.REVENUE) REVENUE,
7417 sum(pjp1.BILL_RAW_COST) BILL_RAW_COST,
7418 sum(pjp1.BILL_BRDN_COST) BILL_BRDN_COST,
7419 sum(pjp1.BILL_LABOR_RAW_COST) BILL_LABOR_RAW_COST,
7420 sum(pjp1.BILL_LABOR_BRDN_COST) BILL_LABOR_BRDN_COST,
7421 sum(pjp1.BILL_LABOR_HRS) BILL_LABOR_HRS,
7422 sum(pjp1.EQUIPMENT_RAW_COST) EQUIPMENT_RAW_COST,
7423 sum(pjp1.EQUIPMENT_BRDN_COST) EQUIPMENT_BRDN_COST,
7424 sum(pjp1.CAPITALIZABLE_RAW_COST) CAPITALIZABLE_RAW_COST,
7425 sum(pjp1.CAPITALIZABLE_BRDN_COST) CAPITALIZABLE_BRDN_COST,
7426 sum(pjp1.LABOR_RAW_COST) LABOR_RAW_COST,
7427 sum(pjp1.LABOR_BRDN_COST) LABOR_BRDN_COST,
7428 sum(pjp1.LABOR_HRS) LABOR_HRS,
7429 sum(pjp1.LABOR_REVENUE) LABOR_REVENUE,
7430 sum(pjp1.EQUIPMENT_HOURS) EQUIPMENT_HOURS,
7431 sum(pjp1.BILLABLE_EQUIPMENT_HOURS) BILLABLE_EQUIPMENT_HOURS,
7432 sum(pjp1.SUP_INV_COMMITTED_COST) SUP_INV_COMMITTED_COST,
7433 sum(pjp1.PO_COMMITTED_COST) PO_COMMITTED_COST,
7434 sum(pjp1.PR_COMMITTED_COST) PR_COMMITTED_COST,
7435 sum(pjp1.OTH_COMMITTED_COST) OTH_COMMITTED_COST,
7436 sum(pjp1.ACT_LABOR_HRS) ACT_LABOR_HRS,
7437 sum(pjp1.ACT_EQUIP_HRS) ACT_EQUIP_HRS,
7438 sum(pjp1.ACT_LABOR_BRDN_COST) ACT_LABOR_BRDN_COST,
7439 sum(pjp1.ACT_EQUIP_BRDN_COST) ACT_EQUIP_BRDN_COST,
7440 sum(pjp1.ACT_BRDN_COST) ACT_BRDN_COST,
7441 sum(pjp1.ACT_RAW_COST) ACT_RAW_COST,
7442 sum(pjp1.ACT_REVENUE) ACT_REVENUE,
7443 sum(pjp1.ACT_LABOR_RAW_COST) ACT_LABOR_RAW_COST,
7444 sum(pjp1.ACT_EQUIP_RAW_COST) ACT_EQUIP_RAW_COST,
7445 sum(pjp1.ETC_LABOR_HRS) ETC_LABOR_HRS,
7446 sum(pjp1.ETC_EQUIP_HRS) ETC_EQUIP_HRS,
7447 sum(pjp1.ETC_LABOR_BRDN_COST) ETC_LABOR_BRDN_COST,
7448 sum(pjp1.ETC_EQUIP_BRDN_COST) ETC_EQUIP_BRDN_COST,
7449 sum(pjp1.ETC_BRDN_COST) ETC_BRDN_COST,
7450 sum(pjp1.ETC_RAW_COST) ETC_RAW_COST,
7451 sum(pjp1.ETC_LABOR_RAW_COST) ETC_LABOR_RAW_COST,
7452 sum(pjp1.ETC_EQUIP_RAW_COST) ETC_EQUIP_RAW_COST,
7453 sum(pjp1.CUSTOM1) CUSTOM1,
7454 sum(pjp1.CUSTOM2) CUSTOM2,
7455 sum(pjp1.CUSTOM3) CUSTOM3,
7456 sum(pjp1.CUSTOM4) CUSTOM4,
7457 sum(pjp1.CUSTOM5) CUSTOM5,
7458 sum(pjp1.CUSTOM6) CUSTOM6,
7459 sum(pjp1.CUSTOM7) CUSTOM7,
7460 sum(pjp1.CUSTOM8) CUSTOM8,
7461 sum(pjp1.CUSTOM9) CUSTOM9,
7462 sum(pjp1.CUSTOM10) CUSTOM10,
7463 sum(pjp1.CUSTOM11) CUSTOM11,
7464 sum(pjp1.CUSTOM12) CUSTOM12,
7465 sum(pjp1.CUSTOM13) CUSTOM13,
7466 sum(pjp1.CUSTOM14) CUSTOM14,
7467 sum(pjp1.CUSTOM15) CUSTOM15
7468 from
7469 PJI_FP_AGGR_PJP1 pjp1,
7470 (
7471 select
7472 distinct
7473 to_number(log.EVENT_OBJECT) RBS_VERSION_ID,
7474 to_number(log.ATTRIBUTE1) PROJECT_ID
7475 from
7476 PJI_PA_PROJ_EVENTS_LOG log
7477 where
7478 log.WORKER_ID = p_worker_id and
7479 log.EVENT_TYPE = 'RBS_ASSOC'
7480 ) log
7481 where
7482 pjp1.WORKER_ID = p_worker_id and
7483 pjp1.PROJECT_ID = log.PROJECT_ID (+) and
7484 pjp1.RBS_VERSION_ID = log.RBS_VERSION_ID (+) and
7485 log.PROJECT_ID is null
7486 group by
7487 pjp1.PRG_LEVEL,
7488 pjp1.LINE_TYPE,
7489 pjp1.PROJECT_ID,
7490 pjp1.PROJECT_ORG_ID,
7491 pjp1.PROJECT_ORGANIZATION_ID,
7492 pjp1.PROJECT_ELEMENT_ID,
7493 pjp1.TIME_ID,
7494 pjp1.PERIOD_TYPE_ID,
7495 pjp1.CALENDAR_TYPE,
7496 pjp1.WBS_ROLLUP_FLAG,
7497 pjp1.PRG_ROLLUP_FLAG,
7498 pjp1.CURR_RECORD_TYPE_ID,
7499 pjp1.CURRENCY_CODE,
7500 pjp1.RBS_VERSION_ID,
7501 pjp1.PLAN_VERSION_ID,
7502 pjp1.PLAN_TYPE_ID,
7503 pjp1.PLAN_TYPE_CODE
7504 ) pjp1
7505 group by
7506 pjp1.PRG_LEVEL,
7507 pjp1.LINE_TYPE,
7508 pjp1.PROJECT_ID,
7509 pjp1.PROJECT_ORG_ID,
7510 pjp1.PROJECT_ORGANIZATION_ID,
7511 pjp1.PROJECT_ELEMENT_ID,
7512 pjp1.TIME_ID,
7513 pjp1.PERIOD_TYPE_ID,
7514 pjp1.CALENDAR_TYPE,
7515 pjp1.WBS_ROLLUP_FLAG,
7516 pjp1.PRG_ROLLUP_FLAG,
7517 pjp1.CURR_RECORD_TYPE_ID,
7518 pjp1.CURRENCY_CODE,
7519 pjp1.RBS_ELEMENT_ID,
7520 pjp1.PLAN_VERSION_ID,
7521 pjp1.PLAN_TYPE_ID,
7522 pjp1.PLAN_TYPE_CODE
7523 ) pjp1
7524 group by
7525 pjp1.PRG_LEVEL,
7526 pjp1.LINE_TYPE,
7527 pjp1.PROJECT_ID,
7528 pjp1.PROJECT_ORG_ID,
7529 pjp1.PROJECT_ORGANIZATION_ID,
7530 pjp1.PROJECT_ELEMENT_ID,
7531 pjp1.TIME_ID,
7532 pjp1.PERIOD_TYPE_ID,
7533 pjp1.CALENDAR_TYPE,
7534 pjp1.RBS_AGGR_LEVEL,
7535 pjp1.WBS_ROLLUP_FLAG,
7536 pjp1.PRG_ROLLUP_FLAG,
7537 pjp1.CURR_RECORD_TYPE_ID,
7538 pjp1.CURRENCY_CODE,
7539 pjp1.RBS_ELEMENT_ID,
7540 pjp1.RBS_VERSION_ID,
7541 pjp1.PLAN_VERSION_ID,
7542 pjp1.PLAN_TYPE_ID,
7543 pjp1.PLAN_TYPE_CODE;
7544
7545 PJI_PROCESS_UTIL.REGISTER_STEP_COMPLETION(l_process, 'PJI_PJP_SUM_ROLLUP.ROLLUP_FPR_RBS_TOP(p_worker_id);');
7546
7547 commit;
7548
7549 end ROLLUP_FPR_RBS_TOP;
7550
7551
7552 -- -----------------------------------------------------
7553 -- procedure ROLLUP_FPR_WBS
7554 --
7555 -- History
7556 -- 19-MAR-2004 SVERMETT Created
7557 --
7558 -- This API will be called for both online and bulk processing.
7559 --
7560 -- -----------------------------------------------------
7561 procedure ROLLUP_FPR_WBS (p_worker_id in number default null) is
7562
7563 l_process varchar2(30);
7564 l_extraction_type varchar2(30);
7565 l_fpm_upgrade varchar2(30);
7566 l_max_level number;
7567 l_level number;
7568 l_step_seq number;
7569 l_level_seq number;
7570 l_count number;
7571 l_partial_mode varchar2(30);
7572
7573 begin
7574
7575 if (p_worker_id is not null) then
7576
7577 l_process := PJI_PJP_SUM_MAIN.g_process || to_char(p_worker_id);
7578
7579 if (not PJI_PROCESS_UTIL.NEED_TO_RUN_STEP(l_process, 'PJI_PJP_SUM_ROLLUP.ROLLUP_FPR_WBS(p_worker_id);')) then
7580 return;
7581 end if;
7582
7583 l_extraction_type := PJI_PROCESS_UTIL.GET_PROCESS_PARAMETER(l_process, 'EXTRACTION_TYPE');
7584
7585 l_fpm_upgrade := nvl(PJI_UTILS.GET_PARAMETER('PJI_FPM_UPGRADE'), 'C');
7586
7587 select decode(l_extraction_type,'PARTIAL','PARTIAL',NULL)
7588 into l_partial_mode
7589 from dual;
7590
7591 -- allow recovery after each level is processed
7592
7593 select
7594 STEP_SEQ
7595 into
7596 l_step_seq
7597 from
7598 PJI_SYSTEM_PRC_STATUS
7599 where
7600 PROCESS_NAME = l_process and
7601 STEP_NAME = 'PJI_PJP_SUM_ROLLUP.ROLLUP_FPR_WBS(p_worker_id);';
7602
7603 select
7604 count(*)
7605 into
7606 l_count
7607 from
7608 PJI_SYSTEM_PRC_STATUS
7609 where
7610 PROCESS_NAME = l_process and
7611 STEP_NAME like 'ROLLUP_FPR_WBS%';
7612
7613 if (l_count = 0) then
7614
7615 select /*+ ordered index(den PJI_XBS_DENORM_N3) */
7616 nvl(max(den.SUP_LEVEL), 0)
7617 into
7618 l_level
7619 from
7620 PJI_PJP_PROJ_BATCH_MAP map,
7621 PJI_XBS_DENORM den
7622 where
7623 map.WORKER_ID = p_worker_id and
7624 den.STRUCT_TYPE = 'PRG' and
7625 den.SUB_LEVEL = den.SUP_LEVEL and
7626 den.SUP_PROJECT_ID = map.PROJECT_ID;
7627
7628 PJI_PROCESS_UTIL.SET_PROCESS_PARAMETER(l_process,
7629 'MAX_PROGRAM_LEVEL',
7630 l_level);
7631
7632 for x in 1 .. l_level loop
7633
7634 insert into PJI_SYSTEM_PRC_STATUS
7635 (
7636 PROCESS_NAME,
7637 STEP_SEQ,
7638 STEP_STATUS,
7639 STEP_NAME,
7640 START_DATE,
7641 END_DATE
7642 )
7643 select
7644 l_process PROCESS_NAME,
7645 to_char(l_step_seq + x / 1000) STEP_SEQ,
7646 null STEP_STATUS,
7647 'ROLLUP_FPR_WBS - level ' || to_char(l_level - x + 1) STEP_NAME,
7648 null START_DATE,
7649 null END_DATE
7650 from
7651 DUAL;
7652
7653 end loop;
7654
7655 end if;
7656
7657 l_max_level := PJI_PROCESS_UTIL.GET_PROCESS_PARAMETER
7658 (l_process, 'MAX_PROGRAM_LEVEL');
7659
7660 select
7661 nvl(to_number(min(STEP_SEQ)), 0)
7662 into
7663 l_level_seq
7664 from
7665 PJI_SYSTEM_PRC_STATUS
7666 where
7667 PROCESS_NAME = l_process and
7668 STEP_NAME like 'ROLLUP_FPR_WBS%' and
7669 STEP_STATUS is null;
7670
7671 if (l_level_seq = 0) then
7672 l_level := 0;
7673 else
7674 l_level := l_max_level - ((l_level_seq - l_step_seq) * 1000) + 1;
7675 end if;
7676
7677 while (l_level > 0) loop
7678
7679 update PJI_SYSTEM_PRC_STATUS
7680 set START_DATE = sysdate
7681 where PROCESS_NAME = l_process and
7682 STEP_SEQ = l_level_seq;
7683
7684 -- rollup project hiearchy
7685
7686 insert into PJI_FP_AGGR_PJP1
7687 (
7688 WORKER_ID,
7689 RECORD_TYPE,
7690 PRG_LEVEL,
7691 LINE_TYPE,
7692 PROJECT_ID,
7693 PROJECT_ORG_ID,
7694 PROJECT_ORGANIZATION_ID,
7695 PROJECT_ELEMENT_ID,
7696 TIME_ID,
7697 PERIOD_TYPE_ID,
7698 CALENDAR_TYPE,
7699 RBS_AGGR_LEVEL,
7700 WBS_ROLLUP_FLAG,
7701 PRG_ROLLUP_FLAG,
7702 CURR_RECORD_TYPE_ID,
7703 CURRENCY_CODE,
7704 RBS_ELEMENT_ID,
7705 RBS_VERSION_ID,
7706 PLAN_VERSION_ID,
7707 PLAN_TYPE_ID,
7708 PLAN_TYPE_CODE,
7709 RAW_COST,
7710 BRDN_COST,
7711 REVENUE,
7712 BILL_RAW_COST,
7713 BILL_BRDN_COST,
7714 BILL_LABOR_RAW_COST,
7715 BILL_LABOR_BRDN_COST,
7716 BILL_LABOR_HRS,
7717 EQUIPMENT_RAW_COST,
7718 EQUIPMENT_BRDN_COST,
7719 CAPITALIZABLE_RAW_COST,
7720 CAPITALIZABLE_BRDN_COST,
7721 LABOR_RAW_COST,
7722 LABOR_BRDN_COST,
7723 LABOR_HRS,
7724 LABOR_REVENUE,
7725 EQUIPMENT_HOURS,
7726 BILLABLE_EQUIPMENT_HOURS,
7727 SUP_INV_COMMITTED_COST,
7728 PO_COMMITTED_COST,
7729 PR_COMMITTED_COST,
7730 OTH_COMMITTED_COST,
7731 ACT_LABOR_HRS,
7732 ACT_EQUIP_HRS,
7733 ACT_LABOR_BRDN_COST,
7734 ACT_EQUIP_BRDN_COST,
7735 ACT_BRDN_COST,
7736 ACT_RAW_COST,
7737 ACT_REVENUE,
7738 ACT_LABOR_RAW_COST,
7739 ACT_EQUIP_RAW_COST,
7740 ETC_LABOR_HRS,
7741 ETC_EQUIP_HRS,
7742 ETC_LABOR_BRDN_COST,
7743 ETC_EQUIP_BRDN_COST,
7744 ETC_BRDN_COST,
7745 ETC_RAW_COST,
7746 ETC_LABOR_RAW_COST,
7747 ETC_EQUIP_RAW_COST,
7748 CUSTOM1,
7749 CUSTOM2,
7750 CUSTOM3,
7751 CUSTOM4,
7752 CUSTOM5,
7753 CUSTOM6,
7754 CUSTOM7,
7755 CUSTOM8,
7756 CUSTOM9,
7757 CUSTOM10,
7758 CUSTOM11,
7759 CUSTOM12,
7760 CUSTOM13,
7761 CUSTOM14,
7762 CUSTOM15
7763 )
7764 select
7765 pjp1_i.WORKER_ID,
7766 pjp1_i.RECORD_TYPE,
7767 pjp1_i.PRG_LEVEL,
7768 pjp1_i.LINE_TYPE,
7769 pjp1_i.PROJECT_ID,
7770 pjp1_i.PROJECT_ORG_ID,
7771 pjp1_i.PROJECT_ORGANIZATION_ID,
7772 pjp1_i.PROJECT_ELEMENT_ID,
7773 pjp1_i.TIME_ID,
7774 pjp1_i.PERIOD_TYPE_ID,
7775 pjp1_i.CALENDAR_TYPE,
7776 pjp1_i.RBS_AGGR_LEVEL,
7777 pjp1_i.WBS_ROLLUP_FLAG,
7778 pjp1_i.PRG_ROLLUP_FLAG,
7779 pjp1_i.CURR_RECORD_TYPE_ID,
7780 pjp1_i.CURRENCY_CODE,
7781 pjp1_i.RBS_ELEMENT_ID,
7782 pjp1_i.RBS_VERSION_ID,
7783 pjp1_i.PLAN_VERSION_ID,
7784 pjp1_i.PLAN_TYPE_ID,
7785 pjp1_i.PLAN_TYPE_CODE,
7786 decode(pjp1_i.RELATIONSHIP_TYPE
7787 || '_' || pjp1_i.WBS_ROLLUP_FLAG
7788 || '_' || pjp1_i.PRG_ROLLUP_FLAG
7789 || '_' || pjp1_i.SUB_STATUS_CODE
7790 || '_' || pjp1_i.SUP_STATUS_CODE,
7791 'LW_N_Y__', to_number(null),
7792 decode(pjp1_i.RELATIONSHIP_TYPE
7793 || '_' || pjp1_i.WBS_ROLLUP_FLAG
7794 || '_' || pjp1_i.PRG_ROLLUP_FLAG
7795 || '_' || pjp1_i.SUP_VER_ENABLED
7796 || '_' || l_fpm_upgrade
7797 || '_' || l_partial_mode,
7798 'LW_N_Y_Y_C_', to_number(null),
7799 pjp1_i.RAW_COST)) RAW_COST,
7800 decode(pjp1_i.RELATIONSHIP_TYPE
7801 || '_' || pjp1_i.WBS_ROLLUP_FLAG
7802 || '_' || pjp1_i.PRG_ROLLUP_FLAG
7803 || '_' || pjp1_i.SUB_STATUS_CODE
7804 || '_' || pjp1_i.SUP_STATUS_CODE,
7805 'LW_N_Y__', to_number(null),
7806 decode(pjp1_i.RELATIONSHIP_TYPE
7807 || '_' || pjp1_i.WBS_ROLLUP_FLAG
7808 || '_' || pjp1_i.PRG_ROLLUP_FLAG
7809 || '_' || pjp1_i.SUP_VER_ENABLED
7810 || '_' || l_fpm_upgrade
7811 || '_' || l_partial_mode,
7812 'LW_N_Y_Y_C_', to_number(null),
7813 pjp1_i.BRDN_COST)) BRDN_COST,
7814 decode(pjp1_i.RELATIONSHIP_TYPE
7815 || '_' || pjp1_i.WBS_ROLLUP_FLAG
7816 || '_' || pjp1_i.PRG_ROLLUP_FLAG
7817 || '_' || pjp1_i.SUB_STATUS_CODE
7818 || '_' || pjp1_i.SUP_STATUS_CODE,
7819 'LW_N_Y__', to_number(null),
7820 decode(pjp1_i.RELATIONSHIP_TYPE
7821 || '_' || pjp1_i.WBS_ROLLUP_FLAG
7822 || '_' || pjp1_i.PRG_ROLLUP_FLAG
7823 || '_' || pjp1_i.SUP_VER_ENABLED
7824 || '_' || l_fpm_upgrade
7825 || '_' || l_partial_mode,
7826 'LW_N_Y_Y_C_', to_number(null),
7827 pjp1_i.REVENUE)) REVENUE,
7828 decode(pjp1_i.RELATIONSHIP_TYPE
7829 || '_' || pjp1_i.WBS_ROLLUP_FLAG
7830 || '_' || pjp1_i.PRG_ROLLUP_FLAG
7831 || '_' || pjp1_i.SUB_STATUS_CODE
7832 || '_' || pjp1_i.SUP_STATUS_CODE,
7833 'LW_N_Y__', to_number(null),
7834 decode(pjp1_i.RELATIONSHIP_TYPE
7835 || '_' || pjp1_i.WBS_ROLLUP_FLAG
7836 || '_' || pjp1_i.PRG_ROLLUP_FLAG
7837 || '_' || pjp1_i.SUP_VER_ENABLED
7838 || '_' || l_fpm_upgrade
7839 || '_' || l_partial_mode,
7840 'LW_N_Y_Y_C_', to_number(null),
7841 pjp1_i.BILL_RAW_COST)) BILL_RAW_COST,
7842 decode(pjp1_i.RELATIONSHIP_TYPE
7843 || '_' || pjp1_i.WBS_ROLLUP_FLAG
7844 || '_' || pjp1_i.PRG_ROLLUP_FLAG
7845 || '_' || pjp1_i.SUB_STATUS_CODE
7846 || '_' || pjp1_i.SUP_STATUS_CODE,
7847 'LW_N_Y__', to_number(null),
7848 decode(pjp1_i.RELATIONSHIP_TYPE
7849 || '_' || pjp1_i.WBS_ROLLUP_FLAG
7850 || '_' || pjp1_i.PRG_ROLLUP_FLAG
7851 || '_' || pjp1_i.SUP_VER_ENABLED
7852 || '_' || l_fpm_upgrade
7853 || '_' || l_partial_mode,
7854 'LW_N_Y_Y_C_', to_number(null),
7855 pjp1_i.BILL_BRDN_COST)) BILL_BRDN_COST,
7856 decode(pjp1_i.RELATIONSHIP_TYPE
7857 || '_' || pjp1_i.WBS_ROLLUP_FLAG
7858 || '_' || pjp1_i.PRG_ROLLUP_FLAG
7859 || '_' || pjp1_i.SUB_STATUS_CODE
7860 || '_' || pjp1_i.SUP_STATUS_CODE,
7861 'LW_N_Y__', to_number(null),
7862 decode(pjp1_i.RELATIONSHIP_TYPE
7863 || '_' || pjp1_i.WBS_ROLLUP_FLAG
7864 || '_' || pjp1_i.PRG_ROLLUP_FLAG
7865 || '_' || pjp1_i.SUP_VER_ENABLED
7866 || '_' || l_fpm_upgrade
7867 || '_' || l_partial_mode,
7868 'LW_N_Y_Y_C_', to_number(null),
7869 pjp1_i.BILL_LABOR_RAW_COST)) BILL_LABOR_RAW_COST,
7870 decode(pjp1_i.RELATIONSHIP_TYPE
7871 || '_' || pjp1_i.WBS_ROLLUP_FLAG
7872 || '_' || pjp1_i.PRG_ROLLUP_FLAG
7873 || '_' || pjp1_i.SUB_STATUS_CODE
7874 || '_' || pjp1_i.SUP_STATUS_CODE,
7875 'LW_N_Y__', to_number(null),
7876 decode(pjp1_i.RELATIONSHIP_TYPE
7877 || '_' || pjp1_i.WBS_ROLLUP_FLAG
7878 || '_' || pjp1_i.PRG_ROLLUP_FLAG
7879 || '_' || pjp1_i.SUP_VER_ENABLED
7880 || '_' || l_fpm_upgrade
7881 || '_' || l_partial_mode,
7882 'LW_N_Y_Y_C_', to_number(null),
7883 pjp1_i.BILL_LABOR_BRDN_COST)) BILL_LABOR_BRDN_COST,
7884 decode(pjp1_i.RELATIONSHIP_TYPE
7885 || '_' || pjp1_i.WBS_ROLLUP_FLAG
7886 || '_' || pjp1_i.PRG_ROLLUP_FLAG
7887 || '_' || pjp1_i.SUB_STATUS_CODE
7888 || '_' || pjp1_i.SUP_STATUS_CODE,
7889 'LW_N_Y__', to_number(null),
7890 decode(pjp1_i.RELATIONSHIP_TYPE
7891 || '_' || pjp1_i.WBS_ROLLUP_FLAG
7892 || '_' || pjp1_i.PRG_ROLLUP_FLAG
7893 || '_' || pjp1_i.SUP_VER_ENABLED
7894 || '_' || l_fpm_upgrade
7895 || '_' || l_partial_mode,
7896 'LW_N_Y_Y_C_', to_number(null),
7897 pjp1_i.BILL_LABOR_HRS)) BILL_LABOR_HRS,
7898 decode(pjp1_i.RELATIONSHIP_TYPE
7899 || '_' || pjp1_i.WBS_ROLLUP_FLAG
7900 || '_' || pjp1_i.PRG_ROLLUP_FLAG
7901 || '_' || pjp1_i.SUB_STATUS_CODE
7902 || '_' || pjp1_i.SUP_STATUS_CODE,
7903 'LW_N_Y__', to_number(null),
7904 decode(pjp1_i.RELATIONSHIP_TYPE
7905 || '_' || pjp1_i.WBS_ROLLUP_FLAG
7906 || '_' || pjp1_i.PRG_ROLLUP_FLAG
7907 || '_' || pjp1_i.SUP_VER_ENABLED
7908 || '_' || l_fpm_upgrade
7909 || '_' || l_partial_mode,
7910 'LW_N_Y_Y_C_', to_number(null),
7911 pjp1_i.EQUIPMENT_RAW_COST)) EQUIPMENT_RAW_COST,
7912 decode(pjp1_i.RELATIONSHIP_TYPE
7913 || '_' || pjp1_i.WBS_ROLLUP_FLAG
7914 || '_' || pjp1_i.PRG_ROLLUP_FLAG
7915 || '_' || pjp1_i.SUB_STATUS_CODE
7916 || '_' || pjp1_i.SUP_STATUS_CODE,
7917 'LW_N_Y__', to_number(null),
7918 decode(pjp1_i.RELATIONSHIP_TYPE
7919 || '_' || pjp1_i.WBS_ROLLUP_FLAG
7920 || '_' || pjp1_i.PRG_ROLLUP_FLAG
7921 || '_' || pjp1_i.SUP_VER_ENABLED
7922 || '_' || l_fpm_upgrade
7923 || '_' || l_partial_mode,
7924 'LW_N_Y_Y_C_', to_number(null),
7925 pjp1_i.EQUIPMENT_BRDN_COST)) EQUIPMENT_BRDN_COST,
7926 decode(pjp1_i.RELATIONSHIP_TYPE
7927 || '_' || pjp1_i.WBS_ROLLUP_FLAG
7928 || '_' || pjp1_i.PRG_ROLLUP_FLAG
7929 || '_' || pjp1_i.SUB_STATUS_CODE
7930 || '_' || pjp1_i.SUP_STATUS_CODE,
7931 'LW_N_Y__', to_number(null),
7932 decode(pjp1_i.RELATIONSHIP_TYPE
7933 || '_' || pjp1_i.WBS_ROLLUP_FLAG
7934 || '_' || pjp1_i.PRG_ROLLUP_FLAG
7935 || '_' || pjp1_i.SUP_VER_ENABLED
7936 || '_' || l_fpm_upgrade
7937 || '_' || l_partial_mode,
7938 'LW_N_Y_Y_C_', to_number(null),
7939 pjp1_i.CAPITALIZABLE_RAW_COST)) CAPITALIZABLE_RAW_COST,
7940 decode(pjp1_i.RELATIONSHIP_TYPE
7941 || '_' || pjp1_i.WBS_ROLLUP_FLAG
7942 || '_' || pjp1_i.PRG_ROLLUP_FLAG
7943 || '_' || pjp1_i.SUB_STATUS_CODE
7944 || '_' || pjp1_i.SUP_STATUS_CODE,
7945 'LW_N_Y__', to_number(null),
7946 decode(pjp1_i.RELATIONSHIP_TYPE
7947 || '_' || pjp1_i.WBS_ROLLUP_FLAG
7948 || '_' || pjp1_i.PRG_ROLLUP_FLAG
7949 || '_' || pjp1_i.SUP_VER_ENABLED
7950 || '_' || l_fpm_upgrade
7951 || '_' || l_partial_mode,
7952 'LW_N_Y_Y_C_', to_number(null),
7953 pjp1_i.CAPITALIZABLE_BRDN_COST)) CAPITALIZABLE_BRDN_COST,
7954 decode(pjp1_i.RELATIONSHIP_TYPE
7955 || '_' || pjp1_i.WBS_ROLLUP_FLAG
7956 || '_' || pjp1_i.PRG_ROLLUP_FLAG
7957 || '_' || pjp1_i.SUB_STATUS_CODE
7958 || '_' || pjp1_i.SUP_STATUS_CODE,
7959 'LW_N_Y__', to_number(null),
7960 decode(pjp1_i.RELATIONSHIP_TYPE
7961 || '_' || pjp1_i.WBS_ROLLUP_FLAG
7962 || '_' || pjp1_i.PRG_ROLLUP_FLAG
7963 || '_' || pjp1_i.SUP_VER_ENABLED
7964 || '_' || l_fpm_upgrade
7965 || '_' || l_partial_mode,
7966 'LW_N_Y_Y_C_', to_number(null),
7967 pjp1_i.LABOR_RAW_COST)) LABOR_RAW_COST,
7968 decode(pjp1_i.RELATIONSHIP_TYPE
7969 || '_' || pjp1_i.WBS_ROLLUP_FLAG
7970 || '_' || pjp1_i.PRG_ROLLUP_FLAG
7971 || '_' || pjp1_i.SUB_STATUS_CODE
7972 || '_' || pjp1_i.SUP_STATUS_CODE,
7973 'LW_N_Y__', to_number(null),
7974 decode(pjp1_i.RELATIONSHIP_TYPE
7975 || '_' || pjp1_i.WBS_ROLLUP_FLAG
7976 || '_' || pjp1_i.PRG_ROLLUP_FLAG
7977 || '_' || pjp1_i.SUP_VER_ENABLED
7978 || '_' || l_fpm_upgrade
7979 || '_' || l_partial_mode,
7980 'LW_N_Y_Y_C_', to_number(null),
7981 pjp1_i.LABOR_BRDN_COST)) LABOR_BRDN_COST,
7982 decode(pjp1_i.RELATIONSHIP_TYPE
7983 || '_' || pjp1_i.WBS_ROLLUP_FLAG
7984 || '_' || pjp1_i.PRG_ROLLUP_FLAG
7985 || '_' || pjp1_i.SUB_STATUS_CODE
7986 || '_' || pjp1_i.SUP_STATUS_CODE,
7987 'LW_N_Y__', to_number(null),
7988 decode(pjp1_i.RELATIONSHIP_TYPE
7989 || '_' || pjp1_i.WBS_ROLLUP_FLAG
7990 || '_' || pjp1_i.PRG_ROLLUP_FLAG
7991 || '_' || pjp1_i.SUP_VER_ENABLED
7992 || '_' || l_fpm_upgrade
7993 || '_' || l_partial_mode,
7994 'LW_N_Y_Y_C_', to_number(null),
7995 pjp1_i.LABOR_HRS)) LABOR_HRS,
7996 decode(pjp1_i.RELATIONSHIP_TYPE
7997 || '_' || pjp1_i.WBS_ROLLUP_FLAG
7998 || '_' || pjp1_i.PRG_ROLLUP_FLAG
7999 || '_' || pjp1_i.SUB_STATUS_CODE
8000 || '_' || pjp1_i.SUP_STATUS_CODE,
8001 'LW_N_Y__', to_number(null),
8002 decode(pjp1_i.RELATIONSHIP_TYPE
8003 || '_' || pjp1_i.WBS_ROLLUP_FLAG
8004 || '_' || pjp1_i.PRG_ROLLUP_FLAG
8005 || '_' || pjp1_i.SUP_VER_ENABLED
8006 || '_' || l_fpm_upgrade
8007 || '_' || l_partial_mode,
8008 'LW_N_Y_Y_C_', to_number(null),
8009 pjp1_i.LABOR_REVENUE)) LABOR_REVENUE,
8010 decode(pjp1_i.RELATIONSHIP_TYPE
8011 || '_' || pjp1_i.WBS_ROLLUP_FLAG
8012 || '_' || pjp1_i.PRG_ROLLUP_FLAG
8013 || '_' || pjp1_i.SUB_STATUS_CODE
8014 || '_' || pjp1_i.SUP_STATUS_CODE,
8015 'LW_N_Y__', to_number(null),
8016 decode(pjp1_i.RELATIONSHIP_TYPE
8017 || '_' || pjp1_i.WBS_ROLLUP_FLAG
8018 || '_' || pjp1_i.PRG_ROLLUP_FLAG
8019 || '_' || pjp1_i.SUP_VER_ENABLED
8020 || '_' || l_fpm_upgrade
8021 || '_' || l_partial_mode,
8022 'LW_N_Y_Y_C_', to_number(null),
8023 pjp1_i.EQUIPMENT_HOURS)) EQUIPMENT_HOURS,
8024 decode(pjp1_i.RELATIONSHIP_TYPE
8025 || '_' || pjp1_i.WBS_ROLLUP_FLAG
8026 || '_' || pjp1_i.PRG_ROLLUP_FLAG
8027 || '_' || pjp1_i.SUB_STATUS_CODE
8028 || '_' || pjp1_i.SUP_STATUS_CODE,
8029 'LW_N_Y__', to_number(null),
8030 decode(pjp1_i.RELATIONSHIP_TYPE
8031 || '_' || pjp1_i.WBS_ROLLUP_FLAG
8032 || '_' || pjp1_i.PRG_ROLLUP_FLAG
8033 || '_' || pjp1_i.SUP_VER_ENABLED
8034 || '_' || l_fpm_upgrade
8035 || '_' || l_partial_mode,
8036 'LW_N_Y_Y_C_', to_number(null),
8037 pjp1_i.BILLABLE_EQUIPMENT_HOURS)) BILLABLE_EQUIPMENT_HOURS,
8038 decode(pjp1_i.RELATIONSHIP_TYPE
8039 || '_' || pjp1_i.WBS_ROLLUP_FLAG
8040 || '_' || pjp1_i.PRG_ROLLUP_FLAG
8041 || '_' || pjp1_i.SUB_STATUS_CODE
8042 || '_' || pjp1_i.SUP_STATUS_CODE,
8043 'LW_N_Y__', to_number(null),
8044 decode(pjp1_i.RELATIONSHIP_TYPE
8045 || '_' || pjp1_i.WBS_ROLLUP_FLAG
8046 || '_' || pjp1_i.PRG_ROLLUP_FLAG
8047 || '_' || pjp1_i.SUP_VER_ENABLED
8048 || '_' || l_fpm_upgrade
8049 || '_' || l_partial_mode,
8050 'LW_N_Y_Y_C_', to_number(null),
8051 pjp1_i.SUP_INV_COMMITTED_COST)) SUP_INV_COMMITTED_COST,
8052 decode(pjp1_i.RELATIONSHIP_TYPE
8053 || '_' || pjp1_i.WBS_ROLLUP_FLAG
8054 || '_' || pjp1_i.PRG_ROLLUP_FLAG
8055 || '_' || pjp1_i.SUB_STATUS_CODE
8056 || '_' || pjp1_i.SUP_STATUS_CODE,
8057 'LW_N_Y__', to_number(null),
8058 decode(pjp1_i.RELATIONSHIP_TYPE
8059 || '_' || pjp1_i.WBS_ROLLUP_FLAG
8060 || '_' || pjp1_i.PRG_ROLLUP_FLAG
8061 || '_' || pjp1_i.SUP_VER_ENABLED
8062 || '_' || l_fpm_upgrade
8063 || '_' || l_partial_mode,
8064 'LW_N_Y_Y_C_', to_number(null),
8065 pjp1_i.PO_COMMITTED_COST)) PO_COMMITTED_COST,
8066 decode(pjp1_i.RELATIONSHIP_TYPE
8067 || '_' || pjp1_i.WBS_ROLLUP_FLAG
8068 || '_' || pjp1_i.PRG_ROLLUP_FLAG
8069 || '_' || pjp1_i.SUB_STATUS_CODE
8070 || '_' || pjp1_i.SUP_STATUS_CODE,
8071 'LW_N_Y__', to_number(null),
8072 decode(pjp1_i.RELATIONSHIP_TYPE
8073 || '_' || pjp1_i.WBS_ROLLUP_FLAG
8074 || '_' || pjp1_i.PRG_ROLLUP_FLAG
8075 || '_' || pjp1_i.SUP_VER_ENABLED
8076 || '_' || l_fpm_upgrade
8077 || '_' || l_partial_mode,
8078 'LW_N_Y_Y_C_', to_number(null),
8079 pjp1_i.PR_COMMITTED_COST)) PR_COMMITTED_COST,
8080 decode(pjp1_i.RELATIONSHIP_TYPE
8081 || '_' || pjp1_i.WBS_ROLLUP_FLAG
8082 || '_' || pjp1_i.PRG_ROLLUP_FLAG
8083 || '_' || pjp1_i.SUB_STATUS_CODE
8084 || '_' || pjp1_i.SUP_STATUS_CODE,
8085 'LW_N_Y__', to_number(null),
8086 decode(pjp1_i.RELATIONSHIP_TYPE
8087 || '_' || pjp1_i.WBS_ROLLUP_FLAG
8088 || '_' || pjp1_i.PRG_ROLLUP_FLAG
8089 || '_' || pjp1_i.SUP_VER_ENABLED
8090 || '_' || l_fpm_upgrade
8091 || '_' || l_partial_mode,
8092 'LW_N_Y_Y_C_', to_number(null),
8093 pjp1_i.OTH_COMMITTED_COST)) OTH_COMMITTED_COST,
8094 decode(pjp1_i.RELATIONSHIP_TYPE
8095 || '_' || pjp1_i.WBS_ROLLUP_FLAG
8096 || '_' || pjp1_i.PRG_ROLLUP_FLAG
8097 || '_' || pjp1_i.SUP_STATUS_CODE
8098 || '_' || l_partial_mode,
8099 'LW_N_Y__', to_number(null),
8100 pjp1_i.ACT_LABOR_HRS) ACT_LABOR_HRS,
8101 decode(pjp1_i.RELATIONSHIP_TYPE
8102 || '_' || pjp1_i.WBS_ROLLUP_FLAG
8103 || '_' || pjp1_i.PRG_ROLLUP_FLAG
8104 || '_' || pjp1_i.SUP_STATUS_CODE
8105 || '_' || l_partial_mode,
8106 'LW_N_Y__', to_number(null),
8107 pjp1_i.ACT_EQUIP_HRS) ACT_EQUIP_HRS,
8108 decode(pjp1_i.RELATIONSHIP_TYPE
8109 || '_' || pjp1_i.WBS_ROLLUP_FLAG
8110 || '_' || pjp1_i.PRG_ROLLUP_FLAG
8111 || '_' || pjp1_i.SUP_STATUS_CODE
8112 || '_' || l_partial_mode,
8113 'LW_N_Y__', to_number(null),
8114 pjp1_i.ACT_LABOR_BRDN_COST) ACT_LABOR_BRDN_COST,
8115 decode(pjp1_i.RELATIONSHIP_TYPE
8116 || '_' || pjp1_i.WBS_ROLLUP_FLAG
8117 || '_' || pjp1_i.PRG_ROLLUP_FLAG
8118 || '_' || pjp1_i.SUP_STATUS_CODE
8119 || '_' || l_partial_mode,
8120 'LW_N_Y__', to_number(null),
8121 pjp1_i.ACT_EQUIP_BRDN_COST) ACT_EQUIP_BRDN_COST,
8122 decode(pjp1_i.RELATIONSHIP_TYPE
8123 || '_' || pjp1_i.WBS_ROLLUP_FLAG
8124 || '_' || pjp1_i.PRG_ROLLUP_FLAG
8125 || '_' || pjp1_i.SUP_STATUS_CODE
8126 || '_' || l_partial_mode,
8127 'LW_N_Y__', to_number(null),
8128 pjp1_i.ACT_BRDN_COST) ACT_BRDN_COST,
8129 decode(pjp1_i.RELATIONSHIP_TYPE
8130 || '_' || pjp1_i.WBS_ROLLUP_FLAG
8131 || '_' || pjp1_i.PRG_ROLLUP_FLAG
8132 || '_' || pjp1_i.SUP_STATUS_CODE
8133 || '_' || l_partial_mode,
8134 'LW_N_Y__', to_number(null),
8135 pjp1_i.ACT_RAW_COST) ACT_RAW_COST,
8136 decode(pjp1_i.RELATIONSHIP_TYPE
8137 || '_' || pjp1_i.WBS_ROLLUP_FLAG
8138 || '_' || pjp1_i.PRG_ROLLUP_FLAG
8139 || '_' || pjp1_i.SUP_STATUS_CODE
8140 || '_' || l_partial_mode,
8141 'LW_N_Y__', to_number(null),
8142 pjp1_i.ACT_REVENUE) ACT_REVENUE,
8143 decode(pjp1_i.RELATIONSHIP_TYPE
8144 || '_' || pjp1_i.WBS_ROLLUP_FLAG
8145 || '_' || pjp1_i.PRG_ROLLUP_FLAG
8146 || '_' || pjp1_i.SUP_STATUS_CODE
8147 || '_' || l_partial_mode,
8148 'LW_N_Y__', to_number(null),
8149 pjp1_i.ACT_LABOR_RAW_COST) ACT_LABOR_RAW_COST,
8150 decode(pjp1_i.RELATIONSHIP_TYPE
8151 || '_' || pjp1_i.WBS_ROLLUP_FLAG
8152 || '_' || pjp1_i.PRG_ROLLUP_FLAG
8153 || '_' || pjp1_i.SUP_STATUS_CODE
8154 || '_' || l_partial_mode,
8155 'LW_N_Y__', to_number(null),
8156 pjp1_i.ACT_EQUIP_RAW_COST) ACT_EQUIP_RAW_COST,
8157 decode(pjp1_i.RELATIONSHIP_TYPE
8158 || '_' || pjp1_i.WBS_ROLLUP_FLAG
8159 || '_' || pjp1_i.PRG_ROLLUP_FLAG
8160 || '_' || pjp1_i.SUP_STATUS_CODE
8161 || '_' || l_partial_mode,
8162 'LW_N_Y__', to_number(null),
8163 pjp1_i.ETC_LABOR_HRS) ETC_LABOR_HRS,
8164 decode(pjp1_i.RELATIONSHIP_TYPE
8165 || '_' || pjp1_i.WBS_ROLLUP_FLAG
8166 || '_' || pjp1_i.PRG_ROLLUP_FLAG
8167 || '_' || pjp1_i.SUP_STATUS_CODE
8168 || '_' || l_partial_mode,
8169 'LW_N_Y__', to_number(null),
8170 pjp1_i.ETC_EQUIP_HRS) ETC_EQUIP_HRS,
8171 decode(pjp1_i.RELATIONSHIP_TYPE
8172 || '_' || pjp1_i.WBS_ROLLUP_FLAG
8173 || '_' || pjp1_i.PRG_ROLLUP_FLAG
8174 || '_' || pjp1_i.SUP_STATUS_CODE
8175 || '_' || l_partial_mode,
8176 'LW_N_Y__', to_number(null),
8177 pjp1_i.ETC_LABOR_BRDN_COST) ETC_LABOR_BRDN_COST,
8178 decode(pjp1_i.RELATIONSHIP_TYPE
8179 || '_' || pjp1_i.WBS_ROLLUP_FLAG
8180 || '_' || pjp1_i.PRG_ROLLUP_FLAG
8181 || '_' || pjp1_i.SUP_STATUS_CODE
8182 || '_' || l_partial_mode,
8183 'LW_N_Y__', to_number(null),
8184 pjp1_i.ETC_EQUIP_BRDN_COST) ETC_EQUIP_BRDN_COST,
8185 decode(pjp1_i.RELATIONSHIP_TYPE
8186 || '_' || pjp1_i.WBS_ROLLUP_FLAG
8187 || '_' || pjp1_i.PRG_ROLLUP_FLAG
8188 || '_' || pjp1_i.SUP_STATUS_CODE
8189 || '_' || l_partial_mode,
8190 'LW_N_Y__', to_number(null),
8191 pjp1_i.ETC_BRDN_COST) ETC_BRDN_COST,
8192 decode(pjp1_i.RELATIONSHIP_TYPE
8193 || '_' || pjp1_i.WBS_ROLLUP_FLAG
8194 || '_' || pjp1_i.PRG_ROLLUP_FLAG
8195 || '_' || pjp1_i.SUP_STATUS_CODE
8196 || '_' || l_partial_mode,
8197 'LW_N_Y__', to_number(null),
8198 pjp1_i.ETC_RAW_COST) ETC_RAW_COST,
8199 decode(pjp1_i.RELATIONSHIP_TYPE
8200 || '_' || pjp1_i.WBS_ROLLUP_FLAG
8201 || '_' || pjp1_i.PRG_ROLLUP_FLAG
8202 || '_' || pjp1_i.SUP_STATUS_CODE
8203 || '_' || l_partial_mode,
8204 'LW_N_Y__', to_number(null),
8205 pjp1_i.ETC_LABOR_RAW_COST) ETC_LABOR_RAW_COST,
8206 decode(pjp1_i.RELATIONSHIP_TYPE
8207 || '_' || pjp1_i.WBS_ROLLUP_FLAG
8208 || '_' || pjp1_i.PRG_ROLLUP_FLAG
8209 || '_' || pjp1_i.SUP_STATUS_CODE
8210 || '_' || l_partial_mode,
8211 'LW_N_Y__', to_number(null),
8212 pjp1_i.ETC_EQUIP_RAW_COST) ETC_EQUIP_RAW_COST,
8213 pjp1_i.CUSTOM1,
8214 pjp1_i.CUSTOM2,
8215 pjp1_i.CUSTOM3,
8216 pjp1_i.CUSTOM4,
8217 pjp1_i.CUSTOM5,
8218 pjp1_i.CUSTOM6,
8219 pjp1_i.CUSTOM7,
8220 pjp1_i.CUSTOM8,
8221 pjp1_i.CUSTOM9,
8222 pjp1_i.CUSTOM10,
8223 pjp1_i.CUSTOM11,
8224 pjp1_i.CUSTOM12,
8225 pjp1_i.CUSTOM13,
8226 pjp1_i.CUSTOM14,
8227 pjp1_i.CUSTOM15
8228 from
8229 (
8230 select
8231 decode(nvl(prg.SUB_EMT_ID, -1), nvl(prg.SUB_ROLLUP_ID, -1),
8232 pjp.INSERT_FLAG, 'Y') INSERT_FLAG,
8233 pjp.RELATIONSHIP_TYPE,
8234 decode(nvl(prg.SUB_EMT_ID, -1), nvl(prg.SUB_ROLLUP_ID, -1),
8235 null, sub_ver.STATUS_CODE) SUB_STATUS_CODE,
8236 decode(nvl(prg.SUB_EMT_ID, -1), nvl(prg.SUB_ROLLUP_ID, -1),
8237 null, sup_ver.STATUS_CODE) SUP_STATUS_CODE,
8238 decode(nvl(prg.SUB_EMT_ID, -1), nvl(prg.SUB_ROLLUP_ID, -1),
8239 null, sup_wpa.WP_ENABLE_VERSION_FLAG)SUP_VER_ENABLED,
8240 decode(nvl(prg.SUB_EMT_ID, -1), nvl(prg.SUB_ROLLUP_ID, -1),
8241 null, decode(pjp.PLAN_VERSION_ID,
8242 -1, prg.SUP_ID,
8243 -3, prg.SUP_ID,
8244 -4, prg.SUP_ID,
8245 null)) SUP_ID,
8246 decode(nvl(prg.SUB_EMT_ID, -1), nvl(prg.SUB_ROLLUP_ID, -1),
8247 null, decode(pjp.PLAN_VERSION_ID,
8248 -1, prg.SUP_EMT_ID,
8249 -3, prg.SUP_EMT_ID,
8250 -4, prg.SUP_EMT_ID,
8251 null)) SUP_EMT_ID,
8252 decode(nvl(prg.SUB_EMT_ID, -1), nvl(prg.SUB_ROLLUP_ID, -1),
8253 null, decode(pjp.PLAN_VERSION_ID,
8254 -1, prg.WP_FLAG,
8255 -3, prg.WP_FLAG,
8256 -4, prg.WP_FLAG,
8257 null)) SUP_WP_FLAG,
8258 p_worker_id WORKER_ID,
8259 'W' RECORD_TYPE,
8260 decode(nvl(prg.SUB_EMT_ID, -1), nvl(prg.SUB_ROLLUP_ID, -1),
8261 l_level, prg.SUP_LEVEL) PRG_LEVEL,
8262 pjp.LINE_TYPE,
8263 decode(nvl(prg.SUB_EMT_ID, -1), nvl(prg.SUB_ROLLUP_ID, -1),
8264 pjp.PROJECT_ID, prg.SUP_PROJECT_ID) PROJECT_ID,
8265 decode(nvl(prg.SUB_EMT_ID, -1), nvl(prg.SUB_ROLLUP_ID, -1),
8266 pjp.PROJECT_ORG_ID,
8267 prg.SUP_PROJECT_ORG_ID) PROJECT_ORG_ID,
8268 decode(nvl(prg.SUB_EMT_ID, -1), nvl(prg.SUB_ROLLUP_ID, -1),
8269 pjp.PROJECT_ORGANIZATION_ID,
8270 prg.SUP_PROJECT_ORGANIZATION_ID) PROJECT_ORGANIZATION_ID,
8271 decode(nvl(prg.SUB_EMT_ID, -1), nvl(prg.SUB_ROLLUP_ID, -1),
8272 pjp.PROJECT_ELEMENT_ID,
8273 prg.SUB_ROLLUP_ID) PROJECT_ELEMENT_ID,
8274 pjp.TIME_ID,
8275 pjp.PERIOD_TYPE_ID,
8276 pjp.CALENDAR_TYPE,
8277 pjp.RBS_AGGR_LEVEL,
8278 decode(nvl(prg.SUB_EMT_ID, -1), nvl(prg.SUB_ROLLUP_ID, -1),
8279 pjp.WBS_ROLLUP_FLAG, 'N') WBS_ROLLUP_FLAG,
8280 decode(nvl(prg.SUB_EMT_ID, -1), nvl(prg.SUB_ROLLUP_ID, -1),
8281 pjp.PRG_ROLLUP_FLAG, 'Y') PRG_ROLLUP_FLAG,
8282 pjp.CURR_RECORD_TYPE_ID,
8283 pjp.CURRENCY_CODE,
8284 pjp.RBS_ELEMENT_ID,
8285 pjp.RBS_VERSION_ID,
8286 decode(nvl(prg.SUB_EMT_ID, -1), nvl(prg.SUB_ROLLUP_ID, -1),
8287 pjp.PLAN_VERSION_ID,
8288 decode(pjp.PLAN_VERSION_ID,
8289 -1, pjp.PLAN_VERSION_ID,
8290 -2, pjp.PLAN_VERSION_ID,
8291 -3, pjp.PLAN_VERSION_ID,
8292 -4, pjp.PLAN_VERSION_ID,
8293 wbs_hdr.PLAN_VERSION_ID)) PLAN_VERSION_ID,
8294 decode(nvl(prg.SUB_EMT_ID, -1), nvl(prg.SUB_ROLLUP_ID, -1),
8295 pjp.PLAN_TYPE_ID,
8296 decode(pjp.PLAN_VERSION_ID,
8297 -1, pjp.PLAN_TYPE_ID,
8298 -2, pjp.PLAN_TYPE_ID,
8299 -3, pjp.PLAN_TYPE_ID,
8300 -4, pjp.PLAN_TYPE_ID,
8301 wbs_hdr.PLAN_TYPE_ID)) PLAN_TYPE_ID,
8302 pjp.PLAN_TYPE_CODE,
8303 sum(pjp.RAW_COST) RAW_COST,
8304 sum(pjp.BRDN_COST) BRDN_COST,
8305 sum(pjp.REVENUE) REVENUE,
8306 sum(pjp.BILL_RAW_COST) BILL_RAW_COST,
8307 sum(pjp.BILL_BRDN_COST) BILL_BRDN_COST,
8308 sum(pjp.BILL_LABOR_RAW_COST) BILL_LABOR_RAW_COST,
8309 sum(pjp.BILL_LABOR_BRDN_COST) BILL_LABOR_BRDN_COST,
8310 sum(pjp.BILL_LABOR_HRS) BILL_LABOR_HRS,
8311 sum(pjp.EQUIPMENT_RAW_COST) EQUIPMENT_RAW_COST,
8312 sum(pjp.EQUIPMENT_BRDN_COST) EQUIPMENT_BRDN_COST,
8313 sum(pjp.CAPITALIZABLE_RAW_COST) CAPITALIZABLE_RAW_COST,
8314 sum(pjp.CAPITALIZABLE_BRDN_COST) CAPITALIZABLE_BRDN_COST,
8315 sum(pjp.LABOR_RAW_COST) LABOR_RAW_COST,
8316 sum(pjp.LABOR_BRDN_COST) LABOR_BRDN_COST,
8317 sum(pjp.LABOR_HRS) LABOR_HRS,
8318 sum(pjp.LABOR_REVENUE) LABOR_REVENUE,
8319 sum(pjp.EQUIPMENT_HOURS) EQUIPMENT_HOURS,
8320 sum(pjp.BILLABLE_EQUIPMENT_HOURS) BILLABLE_EQUIPMENT_HOURS,
8321 sum(pjp.SUP_INV_COMMITTED_COST) SUP_INV_COMMITTED_COST,
8322 sum(pjp.PO_COMMITTED_COST) PO_COMMITTED_COST,
8323 sum(pjp.PR_COMMITTED_COST) PR_COMMITTED_COST,
8324 sum(pjp.OTH_COMMITTED_COST) OTH_COMMITTED_COST,
8325 sum(pjp.ACT_LABOR_HRS) ACT_LABOR_HRS,
8326 sum(pjp.ACT_EQUIP_HRS) ACT_EQUIP_HRS,
8327 sum(pjp.ACT_LABOR_BRDN_COST) ACT_LABOR_BRDN_COST,
8328 sum(pjp.ACT_EQUIP_BRDN_COST) ACT_EQUIP_BRDN_COST,
8329 sum(pjp.ACT_BRDN_COST) ACT_BRDN_COST,
8330 sum(pjp.ACT_RAW_COST) ACT_RAW_COST,
8331 sum(pjp.ACT_REVENUE) ACT_REVENUE,
8332 sum(pjp.ACT_LABOR_RAW_COST) ACT_LABOR_RAW_COST,
8333 sum(pjp.ACT_EQUIP_RAW_COST) ACT_EQUIP_RAW_COST,
8334 sum(pjp.ETC_LABOR_HRS) ETC_LABOR_HRS,
8335 sum(pjp.ETC_EQUIP_HRS) ETC_EQUIP_HRS,
8336 sum(pjp.ETC_LABOR_BRDN_COST) ETC_LABOR_BRDN_COST,
8337 sum(pjp.ETC_EQUIP_BRDN_COST) ETC_EQUIP_BRDN_COST,
8338 sum(pjp.ETC_BRDN_COST) ETC_BRDN_COST,
8339 sum(pjp.ETC_RAW_COST) ETC_RAW_COST,
8340 sum(pjp.ETC_LABOR_RAW_COST) ETC_LABOR_RAW_COST,
8341 sum(pjp.ETC_EQUIP_RAW_COST) ETC_EQUIP_RAW_COST,
8342 sum(pjp.CUSTOM1) CUSTOM1,
8343 sum(pjp.CUSTOM2) CUSTOM2,
8344 sum(pjp.CUSTOM3) CUSTOM3,
8345 sum(pjp.CUSTOM4) CUSTOM4,
8346 sum(pjp.CUSTOM5) CUSTOM5,
8347 sum(pjp.CUSTOM6) CUSTOM6,
8348 sum(pjp.CUSTOM7) CUSTOM7,
8349 sum(pjp.CUSTOM8) CUSTOM8,
8350 sum(pjp.CUSTOM9) CUSTOM9,
8351 sum(pjp.CUSTOM10) CUSTOM10,
8352 sum(pjp.CUSTOM11) CUSTOM11,
8353 sum(pjp.CUSTOM12) CUSTOM12,
8354 sum(pjp.CUSTOM13) CUSTOM13,
8355 sum(pjp.CUSTOM14) CUSTOM14,
8356 sum(pjp.CUSTOM15) CUSTOM15
8357 from
8358 (
8359 select /*+ ordered index(wbs PA_XBS_DENORM_N2) */
8360 -- get incremental task level amounts from source and
8361 -- program rollup amounts from interim
8362 to_char(null) LINE_TYPE,
8363 wbs_hdr.WBS_VERSION_ID,
8364 decode(wbs_hdr.WP_FLAG, 'Y', 'LW', 'LF') RELATIONSHIP_TYPE,
8365 decode(wbs_hdr.WP_FLAG
8366 || '_' || to_char(sign(pjp1.PLAN_VERSION_ID))
8367 || '_' || nvl(fin_plan.INVERT_ID, 'PRJ'),
8368 'N_1_PRJ', 'N',
8369 'N_-1_PRG', 'N',
8370 decode(top_slice.INVERT_ID,
8371 'PRJ', 'Y',
8372 decode(wbs.SUB_LEVEL,
8373 1, 'Y', 'N'))) PUSHUP_FLAG,
8374 decode(pjp1.RBS_AGGR_LEVEL,
8375 'L', 'N',
8376 decode(wbs_hdr.WP_FLAG
8377 || '_' || to_char(sign(pjp1.PLAN_VERSION_ID))
8378 || '_' || fin_plan.INVERT_ID,
8379 'N_1_PRG', decode(top_slice.INVERT_ID,
8380 'PRJ', 'Y',
8381 decode(wbs.SUB_LEVEL,
8382 1, 'Y', 'N')),
8383 'N_-1_PRG', 'N',
8384 decode(wbs_hdr.WP_FLAG
8385 || '_' || fin_plan.INVERT_ID
8386 || '_' || fin_plan.CB
8387 || '_' || fin_plan.CO
8388 || '_'
8389 || to_char(fin_plan.PLAN_VERSION_ID),
8390 'N_PRJ_Y_Y_-4', 'N',
8391 'Y'))
8392 ) INSERT_FLAG,
8393 pjp1.PROJECT_ID,
8394 pjp1.PROJECT_ORG_ID,
8395 pjp1.PROJECT_ORGANIZATION_ID,
8396 decode(top_slice.INVERT_ID,
8397 'PRJ', prg.SUP_EMT_ID,
8398 decode(wbs.SUB_LEVEL,
8399 1, prg.SUP_EMT_ID,
8400 wbs.SUP_EMT_ID)) PROJECT_ELEMENT_ID,
8401 pjp1.TIME_ID,
8402 pjp1.PERIOD_TYPE_ID,
8403 pjp1.CALENDAR_TYPE,
8404 pjp1.RBS_AGGR_LEVEL,
8405 'Y' WBS_ROLLUP_FLAG,
8406 pjp1.PRG_ROLLUP_FLAG,
8407 pjp1.CURR_RECORD_TYPE_ID,
8408 pjp1.CURRENCY_CODE,
8409 pjp1.RBS_ELEMENT_ID,
8410 pjp1.RBS_VERSION_ID,
8411 decode(wbs_hdr.WP_FLAG || '_' || fin_plan.INVERT_ID,
8412 'N_PRG', fin_plan.PLAN_VERSION_ID,
8413 pjp1.PLAN_VERSION_ID) PLAN_VERSION_ID,
8414 pjp1.PLAN_TYPE_ID,
8415 pjp1.PLAN_TYPE_CODE,
8416 pjp1.RAW_COST,
8417 pjp1.BRDN_COST,
8418 pjp1.REVENUE,
8419 pjp1.BILL_RAW_COST,
8420 pjp1.BILL_BRDN_COST,
8421 pjp1.BILL_LABOR_RAW_COST,
8422 pjp1.BILL_LABOR_BRDN_COST,
8423 pjp1.BILL_LABOR_HRS,
8424 pjp1.EQUIPMENT_RAW_COST,
8425 pjp1.EQUIPMENT_BRDN_COST,
8426 pjp1.CAPITALIZABLE_RAW_COST,
8427 pjp1.CAPITALIZABLE_BRDN_COST,
8428 pjp1.LABOR_RAW_COST,
8429 pjp1.LABOR_BRDN_COST,
8430 pjp1.LABOR_HRS,
8431 pjp1.LABOR_REVENUE,
8432 pjp1.EQUIPMENT_HOURS,
8433 pjp1.BILLABLE_EQUIPMENT_HOURS,
8434 pjp1.SUP_INV_COMMITTED_COST,
8435 pjp1.PO_COMMITTED_COST,
8436 pjp1.PR_COMMITTED_COST,
8437 pjp1.OTH_COMMITTED_COST,
8438 pjp1.ACT_LABOR_HRS,
8439 pjp1.ACT_EQUIP_HRS,
8440 pjp1.ACT_LABOR_BRDN_COST,
8441 pjp1.ACT_EQUIP_BRDN_COST,
8442 pjp1.ACT_BRDN_COST,
8443 pjp1.ACT_RAW_COST,
8444 pjp1.ACT_REVENUE,
8445 pjp1.ACT_LABOR_RAW_COST,
8446 pjp1.ACT_EQUIP_RAW_COST,
8447 pjp1.ETC_LABOR_HRS,
8448 pjp1.ETC_EQUIP_HRS,
8449 pjp1.ETC_LABOR_BRDN_COST,
8450 pjp1.ETC_EQUIP_BRDN_COST,
8451 pjp1.ETC_BRDN_COST,
8452 pjp1.ETC_RAW_COST,
8453 pjp1.ETC_LABOR_RAW_COST,
8454 pjp1.ETC_EQUIP_RAW_COST,
8455 pjp1.CUSTOM1,
8456 pjp1.CUSTOM2,
8457 pjp1.CUSTOM3,
8458 pjp1.CUSTOM4,
8459 pjp1.CUSTOM5,
8460 pjp1.CUSTOM6,
8461 pjp1.CUSTOM7,
8462 pjp1.CUSTOM8,
8463 pjp1.CUSTOM9,
8464 pjp1.CUSTOM10,
8465 pjp1.CUSTOM11,
8466 pjp1.CUSTOM12,
8467 pjp1.CUSTOM13,
8468 pjp1.CUSTOM14,
8469 pjp1.CUSTOM15
8470 from
8471 PJI_FP_AGGR_PJP1 pjp1,
8472 PJI_PJP_WBS_HEADER wbs_hdr,
8473 PA_XBS_DENORM wbs,
8474 PJI_XBS_DENORM prg,
8475 (
8476 select 'Y' CB, 'N' CO, -3 PLAN_VERSION_ID, 'PRG' INVERT_ID
8477 from DUAL union all
8478 select 'Y' CB, 'N' CO, -3 PLAN_VERSION_ID, 'PRJ' INVERT_ID
8479 from DUAL union all
8480 select 'N' CB, 'Y' CO, -4 PLAN_VERSION_ID, 'PRG' INVERT_ID
8481 from DUAL union all
8482 select 'N' CB, 'Y' CO, -4 PLAN_VERSION_ID, 'PRJ' INVERT_ID
8483 from DUAL union all
8484 select 'Y' CB, 'Y' CO, -3 PLAN_VERSION_ID, 'PRG' INVERT_ID
8485 from DUAL union all
8486 select 'Y' CB, 'Y' CO, -3 PLAN_VERSION_ID, 'PRJ' INVERT_ID
8487 from DUAL union all
8488 select 'Y' CB, 'Y' CO, -4 PLAN_VERSION_ID, 'PRG' INVERT_ID
8489 from DUAL union all
8490 select 'Y' CB, 'Y' CO, -4 PLAN_VERSION_ID, 'PRJ' INVERT_ID
8491 from DUAL
8492 ) fin_plan,
8493 (
8494 select 1 WBS_SUP_LEVEL,
8495 1 WBS_SUB_LEVEL,
8496 'PRJ' INVERT_ID
8497 from DUAL
8498 union all
8499 select 1 WBS_SUP_LEVEL,
8500 1 WBS_SUB_LEVEL,
8501 'WBS' INVERT_ID
8502 from DUAL
8503 ) top_slice
8504 where
8505 prg.STRUCT_TYPE = 'PRG' and
8506 prg.SUP_LEVEL = l_level and
8507 prg.SUB_LEVEL = l_level and
8508 wbs.STRUCT_TYPE = 'WBS' and
8509 ((wbs.SUP_LEVEL = 1 and
8510 wbs.SUB_LEVEL = 1) or
8511 (wbs.SUP_LEVEL <> wbs.SUB_LEVEL)) and
8512 wbs.STRUCT_VERSION_ID = prg.SUP_ID and
8513 wbs.SUP_PROJECT_ID = prg.SUP_PROJECT_ID and
8514 pjp1.WORKER_ID = p_worker_id and
8515 pjp1.PRG_LEVEL in (0, l_level) and
8516 pjp1.RBS_AGGR_LEVEL in ('T', 'L') and
8517 pjp1.WBS_ROLLUP_FLAG = 'N' and
8518 pjp1.PRG_ROLLUP_FLAG in ('Y', 'N') and
8519 pjp1.PROJECT_ID = wbs_hdr.PROJECT_ID and
8520 pjp1.PLAN_VERSION_ID = wbs_hdr.PLAN_VERSION_ID and
8521 pjp1.PLAN_TYPE_CODE = wbs_hdr.PLAN_TYPE_CODE and
8522 decode(pjp1.PLAN_VERSION_ID,
8523 -3, pjp1.PLAN_TYPE_ID,
8524 -4, pjp1.PLAN_TYPE_ID,
8525 -1) = decode(pjp1.PLAN_VERSION_ID,
8526 -3, wbs_hdr.PLAN_TYPE_ID,
8527 -4, wbs_hdr.PLAN_TYPE_ID,
8528 -1) and
8529 wbs.STRUCT_VERSION_ID = wbs_hdr.WBS_VERSION_ID and
8530 pjp1.PROJECT_ELEMENT_ID = wbs.SUB_EMT_ID and
8531 wbs_hdr.CB_FLAG = fin_plan.CB (+) and
8532 wbs_hdr.CO_FLAG = fin_plan.CO (+) and
8533 wbs.SUP_LEVEL = top_slice.WBS_SUP_LEVEL (+) and
8534 wbs.SUB_LEVEL <> top_slice.WBS_SUB_LEVEL (+)
8535 union all
8536 select /*+ ordered */
8537 -- get incremental project level amounts from source
8538 to_char(null) LINE_TYPE,
8539 wbs_hdr.WBS_VERSION_ID,
8540 decode(wbs_hdr.WP_FLAG, 'Y', 'LW', 'LF') RELATIONSHIP_TYPE,
8541 'Y' PUSHUP_FLAG,
8542 decode(pjp1.RBS_AGGR_LEVEL,
8543 'L', 'N',
8544 decode(fin_plan.PLAN_VERSION_ID,
8545 null, 'N', 'Y')) INSERT_FLAG,
8546 pjp1.PROJECT_ID,
8547 pjp1.PROJECT_ORG_ID,
8548 pjp1.PROJECT_ORGANIZATION_ID,
8549 pjp1.PROJECT_ELEMENT_ID,
8550 pjp1.TIME_ID,
8551 pjp1.PERIOD_TYPE_ID,
8552 pjp1.CALENDAR_TYPE,
8553 pjp1.RBS_AGGR_LEVEL,
8554 'Y' WBS_ROLLUP_FLAG,
8555 pjp1.PRG_ROLLUP_FLAG,
8556 pjp1.CURR_RECORD_TYPE_ID,
8557 pjp1.CURRENCY_CODE,
8558 pjp1.RBS_ELEMENT_ID,
8559 pjp1.RBS_VERSION_ID,
8560 decode(wbs_hdr.WP_FLAG,
8561 'N', decode(pjp1.PLAN_VERSION_ID,
8562 -1, pjp1.PLAN_VERSION_ID,
8563 -2, pjp1.PLAN_VERSION_ID,
8564 -3, pjp1.PLAN_VERSION_ID, -- won't exist
8565 -4, pjp1.PLAN_VERSION_ID, -- won't exist
8566 fin_plan.PLAN_VERSION_ID),
8567 pjp1.PLAN_VERSION_ID) PLAN_VERSION_ID,
8568 pjp1.PLAN_TYPE_ID,
8569 pjp1.PLAN_TYPE_CODE,
8570 pjp1.RAW_COST,
8571 pjp1.BRDN_COST,
8572 pjp1.REVENUE,
8573 pjp1.BILL_RAW_COST,
8574 pjp1.BILL_BRDN_COST,
8575 pjp1.BILL_LABOR_RAW_COST,
8576 pjp1.BILL_LABOR_BRDN_COST,
8577 pjp1.BILL_LABOR_HRS,
8578 pjp1.EQUIPMENT_RAW_COST,
8579 pjp1.EQUIPMENT_BRDN_COST,
8580 pjp1.CAPITALIZABLE_RAW_COST,
8581 pjp1.CAPITALIZABLE_BRDN_COST,
8582 pjp1.LABOR_RAW_COST,
8583 pjp1.LABOR_BRDN_COST,
8584 pjp1.LABOR_HRS,
8585 pjp1.LABOR_REVENUE,
8586 pjp1.EQUIPMENT_HOURS,
8587 pjp1.BILLABLE_EQUIPMENT_HOURS,
8588 pjp1.SUP_INV_COMMITTED_COST,
8589 pjp1.PO_COMMITTED_COST,
8590 pjp1.PR_COMMITTED_COST,
8591 pjp1.OTH_COMMITTED_COST,
8592 pjp1.ACT_LABOR_HRS,
8593 pjp1.ACT_EQUIP_HRS,
8594 pjp1.ACT_LABOR_BRDN_COST,
8595 pjp1.ACT_EQUIP_BRDN_COST,
8596 pjp1.ACT_BRDN_COST,
8597 pjp1.ACT_RAW_COST,
8598 pjp1.ACT_REVENUE,
8599 pjp1.ACT_LABOR_RAW_COST,
8600 pjp1.ACT_EQUIP_RAW_COST,
8601 pjp1.ETC_LABOR_HRS,
8602 pjp1.ETC_EQUIP_HRS,
8603 pjp1.ETC_LABOR_BRDN_COST,
8604 pjp1.ETC_EQUIP_BRDN_COST,
8605 pjp1.ETC_BRDN_COST,
8606 pjp1.ETC_RAW_COST,
8607 pjp1.ETC_LABOR_RAW_COST,
8608 pjp1.ETC_EQUIP_RAW_COST,
8609 pjp1.CUSTOM1,
8610 pjp1.CUSTOM2,
8611 pjp1.CUSTOM3,
8612 pjp1.CUSTOM4,
8613 pjp1.CUSTOM5,
8614 pjp1.CUSTOM6,
8615 pjp1.CUSTOM7,
8616 pjp1.CUSTOM8,
8617 pjp1.CUSTOM9,
8618 pjp1.CUSTOM10,
8619 pjp1.CUSTOM11,
8620 pjp1.CUSTOM12,
8621 pjp1.CUSTOM13,
8622 pjp1.CUSTOM14,
8623 pjp1.CUSTOM15
8624 from
8625 PJI_FP_AGGR_PJP1 pjp1,
8626 PJI_PJP_WBS_HEADER wbs_hdr,
8627 PJI_XBS_DENORM prg,
8628 (
8629 select 'Y' CB_FLAG,
8630 'N' CO_FLAG,
8631 -3 PLAN_VERSION_ID
8632 from DUAL union all
8633 select 'N' CB_FLAG,
8634 'Y' CO_FLAG,
8635 -4 PLAN_VERSION_ID
8636 from DUAL union all
8637 select 'Y' CB_FLAG,
8638 'Y' CO_FLAG,
8639 -3 PLAN_VERSION_ID
8640 from DUAL union all
8641 select 'Y' CB_FLAG,
8642 'Y' CO_FLAG,
8643 -4 PLAN_VERSION_ID
8644 from DUAL
8645 ) fin_plan
8646 where
8647 prg.STRUCT_TYPE = 'PRG' and
8648 prg.SUP_LEVEL = l_level and
8649 prg.SUB_LEVEL = l_level and
8650 pjp1.WORKER_ID = p_worker_id and
8651 pjp1.PROJECT_ID = prg.SUP_PROJECT_ID and
8652 pjp1.PROJECT_ELEMENT_ID = prg.SUP_EMT_ID and
8653 pjp1.PRG_LEVEL = 0 and
8654 pjp1.RBS_AGGR_LEVEL in ('T', 'L') and
8655 pjp1.WBS_ROLLUP_FLAG = 'N' and
8656 pjp1.PRG_ROLLUP_FLAG = 'N' and
8657 wbs_hdr.PROJECT_ID = pjp1.PROJECT_ID and
8658 wbs_hdr.PLAN_VERSION_ID = pjp1.PLAN_VERSION_ID and
8659 wbs_hdr.PLAN_TYPE_CODE = pjp1.PLAN_TYPE_CODE and
8660 decode(wbs_hdr.WP_FLAG,
8661 'N', decode(pjp1.PLAN_VERSION_ID,
8662 -1, 'Y',
8663 -2, 'Y',
8664 -3, 'Y', -- won't exist
8665 -4, 'Y', -- won't exist
8666 decode(wbs_hdr.CB_FLAG || '_' ||
8667 wbs_hdr.CO_FLAG,
8668 'Y_Y', 'Y',
8669 'N_Y', 'Y',
8670 'Y_N', 'Y',
8671 'N')),
8672 'Y') = 'Y' and
8673 wbs_hdr.WBS_VERSION_ID = prg.SUP_ID and
8674 wbs_hdr.CB_FLAG = fin_plan.CB_FLAG (+) and
8675 wbs_hdr.CO_FLAG = fin_plan.CO_FLAG (+)
8676 union all
8677 select /*+ ordered
8678 index(fpr PJI_FP_XBS_ACCUM_F_N1) */
8679 -- get delta task level amounts from Reporting Lines
8680 to_char(null) LINE_TYPE,
8681 wbs_hdr.WBS_VERSION_ID,
8682 decode(wbs_hdr.WP_FLAG, 'Y', 'LW', 'LF') RELATIONSHIP_TYPE,
8683 decode(log.EVENT_TYPE,
8684 'WBS_CHANGE', 'Y',
8685 'WBS_PUBLISH', 'N') PUSHUP_FLAG,
8686 decode(wbs_hdr.WP_FLAG || '_' || fin_plan.INVERT_ID,
8687 'N_PRG', decode(top_slice.INVERT_ID,
8688 'PRJ', 'Y',
8689 decode(wbs.SUB_LEVEL,
8690 1, 'Y', 'N')),
8691 decode(wbs_hdr.WP_FLAG
8692 || '_' || fin_plan.INVERT_ID
8693 || '_' || fin_plan.CB
8694 || '_' || fin_plan.CO
8695 || '_' || to_char(fin_plan.PLAN_VERSION_ID),
8696 'N_PRJ_Y_Y_-4', 'N',
8697 'Y')) INSERT_FLAG,
8698 fpr.PROJECT_ID,
8699 fpr.PROJECT_ORG_ID,
8700 fpr.PROJECT_ORGANIZATION_ID,
8701 decode(top_slice.INVERT_ID,
8702 'PRJ', prg.SUP_EMT_ID,
8703 decode(wbs.SUB_LEVEL,
8704 1, prg.SUP_EMT_ID,
8705 wbs.SUP_EMT_ID)) PROJECT_ELEMENT_ID,
8706 fpr.TIME_ID,
8707 fpr.PERIOD_TYPE_ID,
8708 fpr.CALENDAR_TYPE,
8709 fpr.RBS_AGGR_LEVEL,
8710 'Y' WBS_ROLLUP_FLAG,
8711 fpr.PRG_ROLLUP_FLAG,
8712 fpr.CURR_RECORD_TYPE_ID,
8713 fpr.CURRENCY_CODE,
8714 fpr.RBS_ELEMENT_ID,
8715 fpr.RBS_VERSION_ID,
8716 decode(wbs_hdr.WP_FLAG || '_' || fin_plan.INVERT_ID,
8717 'N_PRG', fin_plan.PLAN_VERSION_ID,
8718 fpr.PLAN_VERSION_ID) PLAN_VERSION_ID,
8719 fpr.PLAN_TYPE_ID,
8720 fpr.PLAN_TYPE_CODE,
8721 wbs.SIGN * fpr.RAW_COST RAW_COST,
8722 wbs.SIGN * fpr.BRDN_COST BRDN_COST,
8723 wbs.SIGN * fpr.REVENUE REVENUE,
8724 wbs.SIGN * fpr.BILL_RAW_COST BILL_RAW_COST,
8725 wbs.SIGN * fpr.BILL_BRDN_COST BILL_BRDN_COST,
8726 wbs.SIGN * fpr.BILL_LABOR_RAW_COST BILL_LABOR_RAW_COST,
8727 wbs.SIGN * fpr.BILL_LABOR_BRDN_COST BILL_LABOR_BRDN_COST,
8728 wbs.SIGN * fpr.BILL_LABOR_HRS BILL_LABOR_HRS,
8729 wbs.SIGN * fpr.EQUIPMENT_RAW_COST EQUIPMENT_RAW_COST,
8730 wbs.SIGN * fpr.EQUIPMENT_BRDN_COST EQUIPMENT_BRDN_COST,
8731 wbs.SIGN * fpr.CAPITALIZABLE_RAW_COST CAPITALIZABLE_RAW_COST,
8732 wbs.SIGN * fpr.CAPITALIZABLE_BRDN_COST CAPITALIZABLE_BRDN_COST,
8733 wbs.SIGN * fpr.LABOR_RAW_COST LABOR_RAW_COST,
8734 wbs.SIGN * fpr.LABOR_BRDN_COST LABOR_BRDN_COST,
8735 wbs.SIGN * fpr.LABOR_HRS LABOR_HRS,
8736 wbs.SIGN * fpr.LABOR_REVENUE LABOR_REVENUE,
8737 wbs.SIGN * fpr.EQUIPMENT_HOURS EQUIPMENT_HOURS,
8738 wbs.SIGN * fpr.BILLABLE_EQUIPMENT_HOURS BILLABLE_EQUIPMENT_HOURS,
8739 wbs.SIGN * fpr.SUP_INV_COMMITTED_COST SUP_INV_COMMITTED_COST,
8740 wbs.SIGN * fpr.PO_COMMITTED_COST PO_COMMITTED_COST,
8741 wbs.SIGN * fpr.PR_COMMITTED_COST PR_COMMITTED_COST,
8742 wbs.SIGN * fpr.OTH_COMMITTED_COST OTH_COMMITTED_COST,
8743 wbs.SIGN * fpr.ACT_LABOR_HRS ACT_LABOR_HRS,
8744 wbs.SIGN * fpr.ACT_EQUIP_HRS ACT_EQUIP_HRS,
8745 wbs.SIGN * fpr.ACT_LABOR_BRDN_COST ACT_LABOR_BRDN_COST,
8746 wbs.SIGN * fpr.ACT_EQUIP_BRDN_COST ACT_EQUIP_BRDN_COST,
8747 wbs.SIGN * fpr.ACT_BRDN_COST ACT_BRDN_COST,
8748 wbs.SIGN * fpr.ACT_RAW_COST ACT_RAW_COST,
8749 wbs.SIGN * fpr.ACT_REVENUE ACT_REVENUE,
8750 wbs.SIGN * fpr.ACT_LABOR_RAW_COST ACT_LABOR_RAW_COST,
8751 wbs.SIGN * fpr.ACT_EQUIP_RAW_COST ACT_EQUIP_RAW_COST,
8752 wbs.SIGN * fpr.ETC_LABOR_HRS ETC_LABOR_HRS,
8753 wbs.SIGN * fpr.ETC_EQUIP_HRS ETC_EQUIP_HRS,
8754 wbs.SIGN * fpr.ETC_LABOR_BRDN_COST ETC_LABOR_BRDN_COST,
8755 wbs.SIGN * fpr.ETC_EQUIP_BRDN_COST ETC_EQUIP_BRDN_COST,
8756 wbs.SIGN * fpr.ETC_BRDN_COST ETC_BRDN_COST,
8757 wbs.SIGN * fpr.ETC_RAW_COST ETC_RAW_COST,
8758 wbs.SIGN * fpr.ETC_LABOR_RAW_COST ETC_LABOR_RAW_COST,
8759 wbs.SIGN * fpr.ETC_EQUIP_RAW_COST ETC_EQUIP_RAW_COST,
8760 wbs.SIGN * fpr.CUSTOM1 CUSTOM1,
8761 wbs.SIGN * fpr.CUSTOM2 CUSTOM2,
8762 wbs.SIGN * fpr.CUSTOM3 CUSTOM3,
8763 wbs.SIGN * fpr.CUSTOM4 CUSTOM4,
8764 wbs.SIGN * fpr.CUSTOM5 CUSTOM5,
8765 wbs.SIGN * fpr.CUSTOM6 CUSTOM6,
8766 wbs.SIGN * fpr.CUSTOM7 CUSTOM7,
8767 wbs.SIGN * fpr.CUSTOM8 CUSTOM8,
8768 wbs.SIGN * fpr.CUSTOM9 CUSTOM9,
8769 wbs.SIGN * fpr.CUSTOM10 CUSTOM10,
8770 wbs.SIGN * fpr.CUSTOM11 CUSTOM11,
8771 wbs.SIGN * fpr.CUSTOM12 CUSTOM12,
8772 wbs.SIGN * fpr.CUSTOM13 CUSTOM13,
8773 wbs.SIGN * fpr.CUSTOM14 CUSTOM14,
8774 wbs.SIGN * fpr.CUSTOM15 CUSTOM15
8775 from
8776 PJI_PA_PROJ_EVENTS_LOG log,
8777 PJI_PJP_WBS_HEADER wbs_hdr,
8778 PJI_XBS_DENORM_DELTA wbs,
8779 PJI_XBS_DENORM prg,
8780 PJI_FP_XBS_ACCUM_F fpr,
8781 (
8782 select 'Y' CB, 'N' CO, -3 PLAN_VERSION_ID, 'PRG' INVERT_ID
8783 from DUAL union all
8784 select 'Y' CB, 'N' CO, -3 PLAN_VERSION_ID, 'PRJ' INVERT_ID
8785 from DUAL union all
8786 select 'N' CB, 'Y' CO, -4 PLAN_VERSION_ID, 'PRG' INVERT_ID
8787 from DUAL union all
8788 select 'N' CB, 'Y' CO, -4 PLAN_VERSION_ID, 'PRJ' INVERT_ID
8789 from DUAL union all
8790 select 'Y' CB, 'Y' CO, -3 PLAN_VERSION_ID, 'PRG' INVERT_ID
8791 from DUAL union all
8792 select 'Y' CB, 'Y' CO, -3 PLAN_VERSION_ID, 'PRJ' INVERT_ID
8793 from DUAL union all
8794 select 'Y' CB, 'Y' CO, -4 PLAN_VERSION_ID, 'PRG' INVERT_ID
8795 from DUAL union all
8796 select 'Y' CB, 'Y' CO, -4 PLAN_VERSION_ID, 'PRJ' INVERT_ID
8797 from DUAL
8798 ) fin_plan,
8799 (
8800 select 1 WBS_SUP_LEVEL,
8801 1 WBS_SUB_LEVEL,
8802 'PRJ' INVERT_ID
8803 from DUAL
8804 union all
8805 select 1 WBS_SUP_LEVEL,
8806 1 WBS_SUB_LEVEL,
8807 'WBS' INVERT_ID
8808 from DUAL
8809 ) top_slice
8810 where
8811 prg.STRUCT_TYPE = 'PRG' and
8812 prg.SUP_LEVEL = l_level and
8813 prg.SUB_LEVEL = l_level and
8814 wbs.WORKER_ID = p_worker_id and
8815 wbs.STRUCT_TYPE = 'WBS' and
8816 wbs.SUP_PROJECT_ID = prg.SUP_PROJECT_ID and
8817 log.WORKER_ID = p_worker_id and
8818 log.EVENT_ID = wbs.EVENT_ID and
8819 log.EVENT_TYPE in ('WBS_CHANGE',
8820 'WBS_PUBLISH') and
8821 wbs_hdr.PROJECT_ID = log.ATTRIBUTE1 and
8822 wbs_hdr.PLAN_VERSION_ID = log.ATTRIBUTE3 and
8823 wbs_hdr.WBS_VERSION_ID = wbs.STRUCT_VERSION_ID and
8824 wbs_hdr.PROJECT_ID = prg.SUP_PROJECT_ID and
8825 wbs_hdr.WBS_VERSION_ID = prg.SUP_ID and
8826 fpr.RBS_AGGR_LEVEL = 'T' and
8827 fpr.WBS_ROLLUP_FLAG = 'N' and
8828 fpr.PRG_ROLLUP_FLAG in ('Y', 'N') and
8829 fpr.PROJECT_ID = wbs.SUP_PROJECT_ID and
8830 fpr.PROJECT_ELEMENT_ID = wbs.SUB_EMT_ID and
8831 fpr.PROJECT_ID = wbs_hdr.PROJECT_ID and
8832 fpr.PLAN_VERSION_ID = wbs_hdr.PLAN_VERSION_ID and
8833 fpr.PLAN_TYPE_CODE = wbs_hdr.PLAN_TYPE_CODE and
8834 decode(fpr.PLAN_VERSION_ID,
8835 -3, fpr.PLAN_TYPE_ID,
8836 -4, fpr.PLAN_TYPE_ID,
8837 -1) = decode(fpr.PLAN_VERSION_ID,
8838 -3, wbs_hdr.PLAN_TYPE_ID,
8839 -4, wbs_hdr.PLAN_TYPE_ID,
8840 -1) and
8841 wbs_hdr.CB_FLAG = fin_plan.CB (+) and
8842 wbs_hdr.CO_FLAG = fin_plan.CO (+) and
8843 wbs.SUP_LEVEL = top_slice.WBS_SUP_LEVEL (+) and
8844 wbs.SUB_LEVEL <> top_slice.WBS_SUB_LEVEL (+) and
8845 (wbs.SUP_LEVEL <> wbs.SUB_LEVEL or
8846 (wbs.SUP_LEVEL = 1 and
8847 wbs.SUB_LEVEL = 1))
8848 ) pjp,
8849 (
8850 select /*+ ordered */
8851 prg.SUP_PROJECT_ID,
8852 map.PROJECT_ORG_ID SUP_PROJECT_ORG_ID,
8853 map.PROJECT_ORGANIZATION_ID SUP_PROJECT_ORGANIZATION_ID,
8854 prg.SUP_ID,
8855 prg.SUP_EMT_ID,
8856 prg.SUP_LEVEL,
8857 prg.SUB_ID,
8858 prg.SUB_EMT_ID,
8859 prg.SUB_ROLLUP_ID,
8860 invert.INVERT_VALUE RELATIONSHIP_TYPE,
8861 decode(prg.RELATIONSHIP_TYPE,
8862 'LW', 'Y',
8863 'LF', 'N') WP_FLAG,
8864 'Y' PUSHUP_FLAG
8865 from
8866 PJI_PJP_PROJ_BATCH_MAP map,
8867 PJI_XBS_DENORM prg,
8868 (
8869 select 'LF' INVERT_ID, 'LF' INVERT_VALUE from dual union all
8870 select 'LW' INVERT_ID, 'LW' INVERT_VALUE from dual union all
8871 select 'A' INVERT_ID, 'LF' INVERT_VALUE from dual union all
8872 select 'A' INVERT_ID, 'LW' INVERT_VALUE from dual
8873 ) invert,
8874 PJI_XBS_DENORM_DELTA prg_delta
8875 where
8876 prg.STRUCT_TYPE = 'PRG' and
8877 prg.SUB_ROLLUP_ID is not null and
8878 prg.SUB_LEVEL = l_level and
8879 map.WORKER_ID = p_worker_id and
8880 map.PROJECT_ID = prg.SUP_PROJECT_ID and
8881 decode(prg.SUB_LEVEL,
8882 prg.SUP_LEVEL, 'A',
8883 prg.RELATIONSHIP_TYPE) = invert.INVERT_ID and
8884 p_worker_id = prg_delta.WORKER_ID (+) and
8885 prg.STRUCT_TYPE = prg_delta.STRUCT_TYPE (+) and
8886 prg.SUP_PROJECT_ID = prg_delta.SUP_PROJECT_ID (+) and
8887 prg.SUP_LEVEL = prg_delta.SUP_LEVEL (+) and
8888 prg.SUP_ID = prg_delta.SUP_ID (+) and
8889 prg.SUB_LEVEL = prg_delta.SUB_LEVEL (+) and
8890 prg.SUB_ID = prg_delta.SUB_ID (+) and
8891 prg.RELATIONSHIP_TYPE = prg_delta.RELATIONSHIP_TYPE (+) and
8892 -1 = prg_delta.SIGN (+) and
8893 prg_delta.SUP_PROJECT_ID is null
8894 ) prg,
8895 PJI_PJP_WBS_HEADER wbs_hdr,
8896 PA_PROJ_ELEM_VER_STRUCTURE sub_ver,
8897 PA_PROJ_ELEM_VER_STRUCTURE sup_ver,
8898 PA_PROJ_WORKPLAN_ATTR sup_wpa
8899 where
8900 pjp.PROJECT_ID = sub_ver.PROJECT_ID (+) and
8901 pjp.WBS_VERSION_ID = sub_ver.ELEMENT_VERSION_ID (+) and
8902 'STRUCTURE_PUBLISHED' = sub_ver.STATUS_CODE (+) and
8903 pjp.WBS_VERSION_ID = prg.SUB_ID (+) and
8904 pjp.RELATIONSHIP_TYPE = prg.RELATIONSHIP_TYPE (+) and
8905 pjp.PUSHUP_FLAG = prg.PUSHUP_FLAG (+) and
8906 prg.SUP_PROJECT_ID = wbs_hdr.PROJECT_ID (+) and
8907 prg.SUP_ID = wbs_hdr.WBS_VERSION_ID (+) and
8908 prg.WP_FLAG = wbs_hdr.WP_FLAG (+) and
8909 'Y' = wbs_hdr.WP_FLAG (+) and
8910 wbs_hdr.PROJECT_ID = sup_ver.PROJECT_ID (+) and
8911 wbs_hdr.WBS_VERSION_ID = sup_ver.ELEMENT_VERSION_ID (+) and
8912 'STRUCTURE_PUBLISHED' = sup_ver.STATUS_CODE (+) and
8913 'Y' = sup_ver.LATEST_EFF_PUBLISHED_FLAG (+) and
8914 prg.SUP_EMT_ID = sup_wpa.PROJ_ELEMENT_ID (+)
8915 group by
8916 decode(nvl(prg.SUB_EMT_ID, -1), nvl(prg.SUB_ROLLUP_ID, -1),
8917 pjp.INSERT_FLAG, 'Y'),
8918 pjp.RELATIONSHIP_TYPE,
8919 decode(nvl(prg.SUB_EMT_ID, -1), nvl(prg.SUB_ROLLUP_ID, -1),
8920 null, sub_ver.STATUS_CODE),
8921 decode(nvl(prg.SUB_EMT_ID, -1), nvl(prg.SUB_ROLLUP_ID, -1),
8922 null, sup_ver.STATUS_CODE),
8923 decode(nvl(prg.SUB_EMT_ID, -1), nvl(prg.SUB_ROLLUP_ID, -1),
8924 null, sup_wpa.WP_ENABLE_VERSION_FLAG),
8925 decode(nvl(prg.SUB_EMT_ID, -1), nvl(prg.SUB_ROLLUP_ID, -1),
8926 null, decode(pjp.PLAN_VERSION_ID,
8927 -1, prg.SUP_ID,
8928 -3, prg.SUP_ID,
8929 -4, prg.SUP_ID,
8930 null)),
8931 decode(nvl(prg.SUB_EMT_ID, -1), nvl(prg.SUB_ROLLUP_ID, -1),
8932 null, decode(pjp.PLAN_VERSION_ID,
8933 -1, prg.SUP_EMT_ID,
8934 -3, prg.SUP_EMT_ID,
8935 -4, prg.SUP_EMT_ID,
8936 null)),
8937 decode(nvl(prg.SUB_EMT_ID, -1), nvl(prg.SUB_ROLLUP_ID, -1),
8938 null, decode(pjp.PLAN_VERSION_ID,
8939 -1, prg.WP_FLAG,
8940 -3, prg.WP_FLAG,
8941 -4, prg.WP_FLAG,
8942 null)),
8943 decode(nvl(prg.SUB_EMT_ID, -1), nvl(prg.SUB_ROLLUP_ID, -1),
8944 l_level, prg.SUP_LEVEL),
8945 pjp.LINE_TYPE,
8946 decode(nvl(prg.SUB_EMT_ID, -1), nvl(prg.SUB_ROLLUP_ID, -1),
8947 pjp.PROJECT_ID, prg.SUP_PROJECT_ID),
8948 decode(nvl(prg.SUB_EMT_ID, -1), nvl(prg.SUB_ROLLUP_ID, -1),
8949 pjp.PROJECT_ORG_ID,
8950 prg.SUP_PROJECT_ORG_ID),
8951 decode(nvl(prg.SUB_EMT_ID, -1), nvl(prg.SUB_ROLLUP_ID, -1),
8952 pjp.PROJECT_ORGANIZATION_ID,
8953 prg.SUP_PROJECT_ORGANIZATION_ID),
8954 decode(nvl(prg.SUB_EMT_ID, -1), nvl(prg.SUB_ROLLUP_ID, -1),
8955 pjp.PROJECT_ELEMENT_ID,
8956 prg.SUB_ROLLUP_ID),
8957 pjp.TIME_ID,
8958 pjp.PERIOD_TYPE_ID,
8959 pjp.CALENDAR_TYPE,
8960 pjp.RBS_AGGR_LEVEL,
8961 decode(nvl(prg.SUB_EMT_ID, -1), nvl(prg.SUB_ROLLUP_ID, -1),
8962 pjp.WBS_ROLLUP_FLAG, 'N'),
8963 decode(nvl(prg.SUB_EMT_ID, -1), nvl(prg.SUB_ROLLUP_ID, -1),
8964 pjp.PRG_ROLLUP_FLAG, 'Y'),
8965 pjp.CURR_RECORD_TYPE_ID,
8966 pjp.CURRENCY_CODE,
8967 pjp.RBS_ELEMENT_ID,
8968 pjp.RBS_VERSION_ID,
8969 decode(nvl(prg.SUB_EMT_ID, -1), nvl(prg.SUB_ROLLUP_ID, -1),
8970 pjp.PLAN_VERSION_ID,
8971 decode(pjp.PLAN_VERSION_ID,
8972 -1, pjp.PLAN_VERSION_ID,
8973 -2, pjp.PLAN_VERSION_ID,
8974 -3, pjp.PLAN_VERSION_ID,
8975 -4, pjp.PLAN_VERSION_ID,
8976 wbs_hdr.PLAN_VERSION_ID)),
8977 decode(nvl(prg.SUB_EMT_ID, -1), nvl(prg.SUB_ROLLUP_ID, -1),
8978 pjp.PLAN_TYPE_ID,
8979 decode(pjp.PLAN_VERSION_ID,
8980 -1, pjp.PLAN_TYPE_ID,
8981 -2, pjp.PLAN_TYPE_ID,
8982 -3, pjp.PLAN_TYPE_ID,
8983 -4, pjp.PLAN_TYPE_ID,
8984 wbs_hdr.PLAN_TYPE_ID)),
8985 pjp.PLAN_TYPE_CODE
8986 ) pjp1_i,
8987 PA_PROJ_ELEM_VER_STRUCTURE sup_fin_ver,
8988 PA_PROJ_WORKPLAN_ATTR sup_wpa
8989 where
8990 pjp1_i.INSERT_FLAG = 'Y' and
8991 pjp1_i.PROJECT_ID = sup_fin_ver.PROJECT_ID (+) and
8992 pjp1_i.SUP_ID = sup_fin_ver.ELEMENT_VERSION_ID (+) and
8993 'STRUCTURE_WORKING' = sup_fin_ver.STATUS_CODE (+) and
8994 pjp1_i.SUP_EMT_ID = sup_wpa.PROJ_ELEMENT_ID (+) and
8995 'N' = sup_wpa.WP_ENABLE_VERSION_FLAG (+) and
8996 (pjp1_i.SUP_ID is null or
8997 (pjp1_i.SUP_ID is not null and
8998 (sup_fin_ver.PROJECT_ID is not null or
8999 sup_wpa.PROJ_ELEMENT_ID is not null)));
9000
9001 update PJI_SYSTEM_PRC_STATUS
9002 set STEP_STATUS = 'C',
9003 END_DATE = sysdate
9004 where PROCESS_NAME = l_process and
9005 STEP_SEQ = l_level_seq;
9006
9007 commit;
9008
9009 select
9010 nvl(to_number(min(STEP_SEQ)), 0)
9011 into
9012 l_level_seq
9013 from
9014 PJI_SYSTEM_PRC_STATUS
9015 where
9016 PROCESS_NAME = l_process and
9017 STEP_NAME like 'ROLLUP_FPR_WBS%' and
9018 STEP_STATUS is null;
9019
9020 if (l_level_seq = 0) then
9021 l_level := 0;
9022 else
9023 l_level := l_max_level - ((l_level_seq - l_step_seq) * 1000) + 1;
9024 end if;
9025
9026 end loop;
9027
9028 PJI_PROCESS_UTIL.REGISTER_STEP_COMPLETION(l_process, 'PJI_PJP_SUM_ROLLUP.ROLLUP_FPR_WBS(p_worker_id);');
9029
9030 commit;
9031
9032 else -- online mode
9033
9034 -- rollup just WBS for online processing
9035
9036 select /*+ ordered use_nl(den) index(den PJI_XBS_DENORM_N3) */
9037 nvl(max(den.SUP_LEVEL), 0)
9038 into
9039 l_level
9040 from
9041 PJI_FM_EXTR_PLNVER3_T ver3,
9042 PJI_XBS_DENORM den
9043 where
9044 den.STRUCT_TYPE = 'PRG' and
9045 den.SUB_LEVEL = den.SUP_LEVEL and
9046 den.SUP_PROJECT_ID = ver3.PROJECT_ID;
9047
9048 while (l_level > 0) loop
9049
9050 -- rollup project hiearchy
9051
9052 insert into PJI_FP_AGGR_PJP1_T
9053 (
9054 WORKER_ID,
9055 RECORD_TYPE,
9056 PRG_LEVEL,
9057 LINE_TYPE,
9058 PROJECT_ID,
9059 PROJECT_ORG_ID,
9060 PROJECT_ORGANIZATION_ID,
9061 PROJECT_ELEMENT_ID,
9062 TIME_ID,
9063 PERIOD_TYPE_ID,
9064 CALENDAR_TYPE,
9065 RBS_AGGR_LEVEL,
9066 WBS_ROLLUP_FLAG,
9067 PRG_ROLLUP_FLAG,
9068 CURR_RECORD_TYPE_ID,
9069 CURRENCY_CODE,
9070 RBS_ELEMENT_ID,
9071 RBS_VERSION_ID,
9072 PLAN_VERSION_ID,
9073 PLAN_TYPE_ID,
9074 PLAN_TYPE_CODE,
9075 RAW_COST,
9076 BRDN_COST,
9077 REVENUE,
9078 BILL_RAW_COST,
9079 BILL_BRDN_COST,
9080 BILL_LABOR_RAW_COST,
9081 BILL_LABOR_BRDN_COST,
9082 BILL_LABOR_HRS,
9083 EQUIPMENT_RAW_COST,
9084 EQUIPMENT_BRDN_COST,
9085 CAPITALIZABLE_RAW_COST,
9086 CAPITALIZABLE_BRDN_COST,
9087 LABOR_RAW_COST,
9088 LABOR_BRDN_COST,
9089 LABOR_HRS,
9090 LABOR_REVENUE,
9091 EQUIPMENT_HOURS,
9092 BILLABLE_EQUIPMENT_HOURS,
9093 SUP_INV_COMMITTED_COST,
9094 PO_COMMITTED_COST,
9095 PR_COMMITTED_COST,
9096 OTH_COMMITTED_COST,
9097 ACT_LABOR_HRS,
9098 ACT_EQUIP_HRS,
9099 ACT_LABOR_BRDN_COST,
9100 ACT_EQUIP_BRDN_COST,
9101 ACT_BRDN_COST,
9102 ACT_RAW_COST,
9103 ACT_REVENUE,
9104 ACT_LABOR_RAW_COST,
9105 ACT_EQUIP_RAW_COST,
9106 ETC_LABOR_HRS,
9107 ETC_EQUIP_HRS,
9108 ETC_LABOR_BRDN_COST,
9109 ETC_EQUIP_BRDN_COST,
9110 ETC_BRDN_COST,
9111 ETC_RAW_COST,
9112 ETC_LABOR_RAW_COST,
9113 ETC_EQUIP_RAW_COST,
9114 CUSTOM1,
9115 CUSTOM2,
9116 CUSTOM3,
9117 CUSTOM4,
9118 CUSTOM5,
9119 CUSTOM6,
9120 CUSTOM7,
9121 CUSTOM8,
9122 CUSTOM9,
9123 CUSTOM10,
9124 CUSTOM11,
9125 CUSTOM12,
9126 CUSTOM13,
9127 CUSTOM14,
9128 CUSTOM15
9129 )
9130 select
9131 pjp1_i.WORKER_ID,
9132 pjp1_i.RECORD_TYPE,
9133 pjp1_i.PRG_LEVEL,
9134 pjp1_i.LINE_TYPE,
9135 pjp1_i.PROJECT_ID,
9136 pjp1_i.PROJECT_ORG_ID,
9137 pjp1_i.PROJECT_ORGANIZATION_ID,
9138 pjp1_i.PROJECT_ELEMENT_ID,
9139 pjp1_i.TIME_ID,
9140 pjp1_i.PERIOD_TYPE_ID,
9141 pjp1_i.CALENDAR_TYPE,
9142 pjp1_i.RBS_AGGR_LEVEL,
9143 pjp1_i.WBS_ROLLUP_FLAG,
9144 pjp1_i.PRG_ROLLUP_FLAG,
9145 pjp1_i.CURR_RECORD_TYPE_ID,
9146 pjp1_i.CURRENCY_CODE,
9147 pjp1_i.RBS_ELEMENT_ID,
9148 pjp1_i.RBS_VERSION_ID,
9149 pjp1_i.PLAN_VERSION_ID,
9150 pjp1_i.PLAN_TYPE_ID,
9151 pjp1_i.PLAN_TYPE_CODE,
9152 decode(pjp1_i.RELATIONSHIP_TYPE
9153 || '_' || pjp1_i.WBS_ROLLUP_FLAG
9154 || '_' || pjp1_i.PRG_ROLLUP_FLAG
9155 || '_' || pjp1_i.SUB_STATUS_CODE
9156 || '_' || pjp1_i.SUP_STATUS_CODE,
9157 'LW_N_Y__', to_number(null),
9158 decode(pjp1_i.RELATIONSHIP_TYPE
9159 || '_' || pjp1_i.WBS_ROLLUP_FLAG
9160 || '_' || pjp1_i.PRG_ROLLUP_FLAG
9161 || '_' || pjp1_i.SUP_VER_ENABLED,
9162 'LW_N_Y_Y', to_number(null),
9163 pjp1_i.RAW_COST)) RAW_COST,
9164 decode(pjp1_i.RELATIONSHIP_TYPE
9165 || '_' || pjp1_i.WBS_ROLLUP_FLAG
9166 || '_' || pjp1_i.PRG_ROLLUP_FLAG
9167 || '_' || pjp1_i.SUB_STATUS_CODE
9168 || '_' || pjp1_i.SUP_STATUS_CODE,
9169 'LW_N_Y__', to_number(null),
9170 decode(pjp1_i.RELATIONSHIP_TYPE
9171 || '_' || pjp1_i.WBS_ROLLUP_FLAG
9172 || '_' || pjp1_i.PRG_ROLLUP_FLAG
9173 || '_' || pjp1_i.SUP_VER_ENABLED,
9174 'LW_N_Y_Y', to_number(null),
9175 pjp1_i.BRDN_COST)) BRDN_COST,
9176 decode(pjp1_i.RELATIONSHIP_TYPE
9177 || '_' || pjp1_i.WBS_ROLLUP_FLAG
9178 || '_' || pjp1_i.PRG_ROLLUP_FLAG
9179 || '_' || pjp1_i.SUB_STATUS_CODE
9180 || '_' || pjp1_i.SUP_STATUS_CODE,
9181 'LW_N_Y__', to_number(null),
9182 decode(pjp1_i.RELATIONSHIP_TYPE
9183 || '_' || pjp1_i.WBS_ROLLUP_FLAG
9184 || '_' || pjp1_i.PRG_ROLLUP_FLAG
9185 || '_' || pjp1_i.SUP_VER_ENABLED,
9186 'LW_N_Y_Y', to_number(null),
9187 pjp1_i.REVENUE)) REVENUE,
9188 decode(pjp1_i.RELATIONSHIP_TYPE
9189 || '_' || pjp1_i.WBS_ROLLUP_FLAG
9190 || '_' || pjp1_i.PRG_ROLLUP_FLAG
9191 || '_' || pjp1_i.SUB_STATUS_CODE
9192 || '_' || pjp1_i.SUP_STATUS_CODE,
9193 'LW_N_Y__', to_number(null),
9194 decode(pjp1_i.RELATIONSHIP_TYPE
9195 || '_' || pjp1_i.WBS_ROLLUP_FLAG
9196 || '_' || pjp1_i.PRG_ROLLUP_FLAG
9197 || '_' || pjp1_i.SUP_VER_ENABLED,
9198 'LW_N_Y_Y', to_number(null),
9199 pjp1_i.BILL_RAW_COST)) BILL_RAW_COST,
9200 decode(pjp1_i.RELATIONSHIP_TYPE
9201 || '_' || pjp1_i.WBS_ROLLUP_FLAG
9202 || '_' || pjp1_i.PRG_ROLLUP_FLAG
9203 || '_' || pjp1_i.SUB_STATUS_CODE
9204 || '_' || pjp1_i.SUP_STATUS_CODE,
9205 'LW_N_Y__', to_number(null),
9206 decode(pjp1_i.RELATIONSHIP_TYPE
9207 || '_' || pjp1_i.WBS_ROLLUP_FLAG
9208 || '_' || pjp1_i.PRG_ROLLUP_FLAG
9209 || '_' || pjp1_i.SUP_VER_ENABLED,
9210 'LW_N_Y_Y', to_number(null),
9211 pjp1_i.BILL_BRDN_COST)) BILL_BRDN_COST,
9212 decode(pjp1_i.RELATIONSHIP_TYPE
9213 || '_' || pjp1_i.WBS_ROLLUP_FLAG
9214 || '_' || pjp1_i.PRG_ROLLUP_FLAG
9215 || '_' || pjp1_i.SUB_STATUS_CODE
9216 || '_' || pjp1_i.SUP_STATUS_CODE,
9217 'LW_N_Y__', to_number(null),
9218 decode(pjp1_i.RELATIONSHIP_TYPE
9219 || '_' || pjp1_i.WBS_ROLLUP_FLAG
9220 || '_' || pjp1_i.PRG_ROLLUP_FLAG
9221 || '_' || pjp1_i.SUP_VER_ENABLED,
9222 'LW_N_Y_Y', to_number(null),
9223 pjp1_i.BILL_LABOR_RAW_COST)) BILL_LABOR_RAW_COST,
9224 decode(pjp1_i.RELATIONSHIP_TYPE
9225 || '_' || pjp1_i.WBS_ROLLUP_FLAG
9226 || '_' || pjp1_i.PRG_ROLLUP_FLAG
9227 || '_' || pjp1_i.SUB_STATUS_CODE
9228 || '_' || pjp1_i.SUP_STATUS_CODE,
9229 'LW_N_Y__', to_number(null),
9230 decode(pjp1_i.RELATIONSHIP_TYPE
9231 || '_' || pjp1_i.WBS_ROLLUP_FLAG
9232 || '_' || pjp1_i.PRG_ROLLUP_FLAG
9233 || '_' || pjp1_i.SUP_VER_ENABLED,
9234 'LW_N_Y_Y', to_number(null),
9235 pjp1_i.BILL_LABOR_BRDN_COST)) BILL_LABOR_BRDN_COST,
9236 decode(pjp1_i.RELATIONSHIP_TYPE
9237 || '_' || pjp1_i.WBS_ROLLUP_FLAG
9238 || '_' || pjp1_i.PRG_ROLLUP_FLAG
9239 || '_' || pjp1_i.SUB_STATUS_CODE
9240 || '_' || pjp1_i.SUP_STATUS_CODE,
9241 'LW_N_Y__', to_number(null),
9242 decode(pjp1_i.RELATIONSHIP_TYPE
9243 || '_' || pjp1_i.WBS_ROLLUP_FLAG
9244 || '_' || pjp1_i.PRG_ROLLUP_FLAG
9245 || '_' || pjp1_i.SUP_VER_ENABLED,
9246 'LW_N_Y_Y', to_number(null),
9247 pjp1_i.BILL_LABOR_HRS)) BILL_LABOR_HRS,
9248 decode(pjp1_i.RELATIONSHIP_TYPE
9249 || '_' || pjp1_i.WBS_ROLLUP_FLAG
9250 || '_' || pjp1_i.PRG_ROLLUP_FLAG
9251 || '_' || pjp1_i.SUB_STATUS_CODE
9252 || '_' || pjp1_i.SUP_STATUS_CODE,
9253 'LW_N_Y__', to_number(null),
9254 decode(pjp1_i.RELATIONSHIP_TYPE
9255 || '_' || pjp1_i.WBS_ROLLUP_FLAG
9256 || '_' || pjp1_i.PRG_ROLLUP_FLAG
9257 || '_' || pjp1_i.SUP_VER_ENABLED,
9258 'LW_N_Y_Y', to_number(null),
9259 pjp1_i.EQUIPMENT_RAW_COST)) EQUIPMENT_RAW_COST,
9260 decode(pjp1_i.RELATIONSHIP_TYPE
9261 || '_' || pjp1_i.WBS_ROLLUP_FLAG
9262 || '_' || pjp1_i.PRG_ROLLUP_FLAG
9263 || '_' || pjp1_i.SUB_STATUS_CODE
9264 || '_' || pjp1_i.SUP_STATUS_CODE,
9265 'LW_N_Y__', to_number(null),
9266 decode(pjp1_i.RELATIONSHIP_TYPE
9267 || '_' || pjp1_i.WBS_ROLLUP_FLAG
9268 || '_' || pjp1_i.PRG_ROLLUP_FLAG
9269 || '_' || pjp1_i.SUP_VER_ENABLED,
9270 'LW_N_Y_Y', to_number(null),
9271 pjp1_i.EQUIPMENT_BRDN_COST)) EQUIPMENT_BRDN_COST,
9272 decode(pjp1_i.RELATIONSHIP_TYPE
9273 || '_' || pjp1_i.WBS_ROLLUP_FLAG
9274 || '_' || pjp1_i.PRG_ROLLUP_FLAG
9275 || '_' || pjp1_i.SUB_STATUS_CODE
9276 || '_' || pjp1_i.SUP_STATUS_CODE,
9277 'LW_N_Y__', to_number(null),
9278 decode(pjp1_i.RELATIONSHIP_TYPE
9279 || '_' || pjp1_i.WBS_ROLLUP_FLAG
9280 || '_' || pjp1_i.PRG_ROLLUP_FLAG
9281 || '_' || pjp1_i.SUP_VER_ENABLED,
9282 'LW_N_Y_Y', to_number(null),
9283 pjp1_i.CAPITALIZABLE_RAW_COST)) CAPITALIZABLE_RAW_COST,
9284 decode(pjp1_i.RELATIONSHIP_TYPE
9285 || '_' || pjp1_i.WBS_ROLLUP_FLAG
9286 || '_' || pjp1_i.PRG_ROLLUP_FLAG
9287 || '_' || pjp1_i.SUB_STATUS_CODE
9288 || '_' || pjp1_i.SUP_STATUS_CODE,
9289 'LW_N_Y__', to_number(null),
9290 decode(pjp1_i.RELATIONSHIP_TYPE
9291 || '_' || pjp1_i.WBS_ROLLUP_FLAG
9292 || '_' || pjp1_i.PRG_ROLLUP_FLAG
9293 || '_' || pjp1_i.SUP_VER_ENABLED,
9294 'LW_N_Y_Y', to_number(null),
9295 pjp1_i.CAPITALIZABLE_BRDN_COST)) CAPITALIZABLE_BRDN_COST,
9296 decode(pjp1_i.RELATIONSHIP_TYPE
9297 || '_' || pjp1_i.WBS_ROLLUP_FLAG
9298 || '_' || pjp1_i.PRG_ROLLUP_FLAG
9299 || '_' || pjp1_i.SUB_STATUS_CODE
9300 || '_' || pjp1_i.SUP_STATUS_CODE,
9301 'LW_N_Y__', to_number(null),
9302 decode(pjp1_i.RELATIONSHIP_TYPE
9303 || '_' || pjp1_i.WBS_ROLLUP_FLAG
9304 || '_' || pjp1_i.PRG_ROLLUP_FLAG
9305 || '_' || pjp1_i.SUP_VER_ENABLED,
9306 'LW_N_Y_Y', to_number(null),
9307 pjp1_i.LABOR_RAW_COST)) LABOR_RAW_COST,
9308 decode(pjp1_i.RELATIONSHIP_TYPE
9309 || '_' || pjp1_i.WBS_ROLLUP_FLAG
9310 || '_' || pjp1_i.PRG_ROLLUP_FLAG
9311 || '_' || pjp1_i.SUB_STATUS_CODE
9312 || '_' || pjp1_i.SUP_STATUS_CODE,
9313 'LW_N_Y__', to_number(null),
9314 decode(pjp1_i.RELATIONSHIP_TYPE
9315 || '_' || pjp1_i.WBS_ROLLUP_FLAG
9316 || '_' || pjp1_i.PRG_ROLLUP_FLAG
9317 || '_' || pjp1_i.SUP_VER_ENABLED,
9318 'LW_N_Y_Y', to_number(null),
9319 pjp1_i.LABOR_BRDN_COST)) LABOR_BRDN_COST,
9320 decode(pjp1_i.RELATIONSHIP_TYPE
9321 || '_' || pjp1_i.WBS_ROLLUP_FLAG
9322 || '_' || pjp1_i.PRG_ROLLUP_FLAG
9323 || '_' || pjp1_i.SUB_STATUS_CODE
9324 || '_' || pjp1_i.SUP_STATUS_CODE,
9325 'LW_N_Y__', to_number(null),
9326 decode(pjp1_i.RELATIONSHIP_TYPE
9327 || '_' || pjp1_i.WBS_ROLLUP_FLAG
9328 || '_' || pjp1_i.PRG_ROLLUP_FLAG
9329 || '_' || pjp1_i.SUP_VER_ENABLED,
9330 'LW_N_Y_Y', to_number(null),
9331 pjp1_i.LABOR_HRS)) LABOR_HRS,
9332 decode(pjp1_i.RELATIONSHIP_TYPE
9333 || '_' || pjp1_i.WBS_ROLLUP_FLAG
9334 || '_' || pjp1_i.PRG_ROLLUP_FLAG
9335 || '_' || pjp1_i.SUB_STATUS_CODE
9336 || '_' || pjp1_i.SUP_STATUS_CODE,
9337 'LW_N_Y__', to_number(null),
9338 decode(pjp1_i.RELATIONSHIP_TYPE
9339 || '_' || pjp1_i.WBS_ROLLUP_FLAG
9340 || '_' || pjp1_i.PRG_ROLLUP_FLAG
9341 || '_' || pjp1_i.SUP_VER_ENABLED,
9342 'LW_N_Y_Y', to_number(null),
9343 pjp1_i.LABOR_REVENUE)) LABOR_REVENUE,
9344 decode(pjp1_i.RELATIONSHIP_TYPE
9345 || '_' || pjp1_i.WBS_ROLLUP_FLAG
9346 || '_' || pjp1_i.PRG_ROLLUP_FLAG
9347 || '_' || pjp1_i.SUB_STATUS_CODE
9348 || '_' || pjp1_i.SUP_STATUS_CODE,
9349 'LW_N_Y__', to_number(null),
9350 decode(pjp1_i.RELATIONSHIP_TYPE
9351 || '_' || pjp1_i.WBS_ROLLUP_FLAG
9352 || '_' || pjp1_i.PRG_ROLLUP_FLAG
9353 || '_' || pjp1_i.SUP_VER_ENABLED,
9354 'LW_N_Y_Y', to_number(null),
9355 pjp1_i.EQUIPMENT_HOURS)) EQUIPMENT_HOURS,
9356 decode(pjp1_i.RELATIONSHIP_TYPE
9357 || '_' || pjp1_i.WBS_ROLLUP_FLAG
9358 || '_' || pjp1_i.PRG_ROLLUP_FLAG
9359 || '_' || pjp1_i.SUB_STATUS_CODE
9360 || '_' || pjp1_i.SUP_STATUS_CODE,
9361 'LW_N_Y__', to_number(null),
9362 decode(pjp1_i.RELATIONSHIP_TYPE
9363 || '_' || pjp1_i.WBS_ROLLUP_FLAG
9364 || '_' || pjp1_i.PRG_ROLLUP_FLAG
9365 || '_' || pjp1_i.SUP_VER_ENABLED,
9366 'LW_N_Y_Y', to_number(null),
9367 pjp1_i.BILLABLE_EQUIPMENT_HOURS)) BILLABLE_EQUIPMENT_HOURS,
9368 decode(pjp1_i.RELATIONSHIP_TYPE
9369 || '_' || pjp1_i.WBS_ROLLUP_FLAG
9370 || '_' || pjp1_i.PRG_ROLLUP_FLAG
9371 || '_' || pjp1_i.SUB_STATUS_CODE
9372 || '_' || pjp1_i.SUP_STATUS_CODE,
9373 'LW_N_Y__', to_number(null),
9374 decode(pjp1_i.RELATIONSHIP_TYPE
9375 || '_' || pjp1_i.WBS_ROLLUP_FLAG
9376 || '_' || pjp1_i.PRG_ROLLUP_FLAG
9377 || '_' || pjp1_i.SUP_VER_ENABLED,
9378 'LW_N_Y_Y', to_number(null),
9379 pjp1_i.SUP_INV_COMMITTED_COST)) SUP_INV_COMMITTED_COST,
9380 decode(pjp1_i.RELATIONSHIP_TYPE
9381 || '_' || pjp1_i.WBS_ROLLUP_FLAG
9382 || '_' || pjp1_i.PRG_ROLLUP_FLAG
9383 || '_' || pjp1_i.SUB_STATUS_CODE
9384 || '_' || pjp1_i.SUP_STATUS_CODE,
9385 'LW_N_Y__', to_number(null),
9386 decode(pjp1_i.RELATIONSHIP_TYPE
9387 || '_' || pjp1_i.WBS_ROLLUP_FLAG
9388 || '_' || pjp1_i.PRG_ROLLUP_FLAG
9389 || '_' || pjp1_i.SUP_VER_ENABLED,
9390 'LW_N_Y_Y', to_number(null),
9391 pjp1_i.PO_COMMITTED_COST)) PO_COMMITTED_COST,
9392 decode(pjp1_i.RELATIONSHIP_TYPE
9393 || '_' || pjp1_i.WBS_ROLLUP_FLAG
9394 || '_' || pjp1_i.PRG_ROLLUP_FLAG
9395 || '_' || pjp1_i.SUB_STATUS_CODE
9396 || '_' || pjp1_i.SUP_STATUS_CODE,
9397 'LW_N_Y__', to_number(null),
9398 decode(pjp1_i.RELATIONSHIP_TYPE
9399 || '_' || pjp1_i.WBS_ROLLUP_FLAG
9400 || '_' || pjp1_i.PRG_ROLLUP_FLAG
9401 || '_' || pjp1_i.SUP_VER_ENABLED,
9402 'LW_N_Y_Y', to_number(null),
9403 pjp1_i.PR_COMMITTED_COST)) PR_COMMITTED_COST,
9404 decode(pjp1_i.RELATIONSHIP_TYPE
9405 || '_' || pjp1_i.WBS_ROLLUP_FLAG
9406 || '_' || pjp1_i.PRG_ROLLUP_FLAG
9407 || '_' || pjp1_i.SUB_STATUS_CODE
9408 || '_' || pjp1_i.SUP_STATUS_CODE,
9409 'LW_N_Y__', to_number(null),
9410 decode(pjp1_i.RELATIONSHIP_TYPE
9411 || '_' || pjp1_i.WBS_ROLLUP_FLAG
9412 || '_' || pjp1_i.PRG_ROLLUP_FLAG
9413 || '_' || pjp1_i.SUP_VER_ENABLED,
9414 'LW_N_Y_Y', to_number(null),
9415 pjp1_i.OTH_COMMITTED_COST)) OTH_COMMITTED_COST,
9416 decode(pjp1_i.RELATIONSHIP_TYPE
9417 || '_' || pjp1_i.WBS_ROLLUP_FLAG
9418 || '_' || pjp1_i.PRG_ROLLUP_FLAG
9419 || '_' || pjp1_i.SUP_STATUS_CODE,
9420 'LW_N_Y_', to_number(null),
9421 pjp1_i.ACT_LABOR_HRS) ACT_LABOR_HRS,
9422 decode(pjp1_i.RELATIONSHIP_TYPE
9423 || '_' || pjp1_i.WBS_ROLLUP_FLAG
9424 || '_' || pjp1_i.PRG_ROLLUP_FLAG
9425 || '_' || pjp1_i.SUP_STATUS_CODE,
9426 'LW_N_Y_', to_number(null),
9427 pjp1_i.ACT_EQUIP_HRS) ACT_EQUIP_HRS,
9428 decode(pjp1_i.RELATIONSHIP_TYPE
9429 || '_' || pjp1_i.WBS_ROLLUP_FLAG
9430 || '_' || pjp1_i.PRG_ROLLUP_FLAG
9431 || '_' || pjp1_i.SUP_STATUS_CODE,
9432 'LW_N_Y_', to_number(null),
9433 pjp1_i.ACT_LABOR_BRDN_COST) ACT_LABOR_BRDN_COST,
9434 decode(pjp1_i.RELATIONSHIP_TYPE
9435 || '_' || pjp1_i.WBS_ROLLUP_FLAG
9436 || '_' || pjp1_i.PRG_ROLLUP_FLAG
9437 || '_' || pjp1_i.SUP_STATUS_CODE,
9438 'LW_N_Y_', to_number(null),
9439 pjp1_i.ACT_EQUIP_BRDN_COST) ACT_EQUIP_BRDN_COST,
9440 decode(pjp1_i.RELATIONSHIP_TYPE
9441 || '_' || pjp1_i.WBS_ROLLUP_FLAG
9442 || '_' || pjp1_i.PRG_ROLLUP_FLAG
9443 || '_' || pjp1_i.SUP_STATUS_CODE,
9444 'LW_N_Y_', to_number(null),
9445 pjp1_i.ACT_BRDN_COST) ACT_BRDN_COST,
9446 decode(pjp1_i.RELATIONSHIP_TYPE
9447 || '_' || pjp1_i.WBS_ROLLUP_FLAG
9448 || '_' || pjp1_i.PRG_ROLLUP_FLAG
9449 || '_' || pjp1_i.SUP_STATUS_CODE,
9450 'LW_N_Y_', to_number(null),
9451 pjp1_i.ACT_RAW_COST) ACT_RAW_COST,
9452 decode(pjp1_i.RELATIONSHIP_TYPE
9453 || '_' || pjp1_i.WBS_ROLLUP_FLAG
9454 || '_' || pjp1_i.PRG_ROLLUP_FLAG
9455 || '_' || pjp1_i.SUP_STATUS_CODE,
9456 'LW_N_Y_', to_number(null),
9457 pjp1_i.ACT_REVENUE) ACT_REVENUE,
9458 decode(pjp1_i.RELATIONSHIP_TYPE
9459 || '_' || pjp1_i.WBS_ROLLUP_FLAG
9460 || '_' || pjp1_i.PRG_ROLLUP_FLAG
9461 || '_' || pjp1_i.SUP_STATUS_CODE,
9462 'LW_N_Y_', to_number(null),
9463 pjp1_i.ACT_LABOR_RAW_COST) ACT_LABOR_RAW_COST,
9464 decode(pjp1_i.RELATIONSHIP_TYPE
9465 || '_' || pjp1_i.WBS_ROLLUP_FLAG
9466 || '_' || pjp1_i.PRG_ROLLUP_FLAG
9467 || '_' || pjp1_i.SUP_STATUS_CODE,
9468 'LW_N_Y_', to_number(null),
9469 pjp1_i.ACT_EQUIP_RAW_COST) ACT_EQUIP_RAW_COST,
9470 decode(pjp1_i.RELATIONSHIP_TYPE
9471 || '_' || pjp1_i.WBS_ROLLUP_FLAG
9472 || '_' || pjp1_i.PRG_ROLLUP_FLAG
9473 || '_' || pjp1_i.SUP_STATUS_CODE,
9474 'LW_N_Y_', to_number(null),
9475 pjp1_i.ETC_LABOR_HRS) ETC_LABOR_HRS,
9476 decode(pjp1_i.RELATIONSHIP_TYPE
9477 || '_' || pjp1_i.WBS_ROLLUP_FLAG
9478 || '_' || pjp1_i.PRG_ROLLUP_FLAG
9479 || '_' || pjp1_i.SUP_STATUS_CODE,
9480 'LW_N_Y_', to_number(null),
9481 pjp1_i.ETC_EQUIP_HRS) ETC_EQUIP_HRS,
9482 decode(pjp1_i.RELATIONSHIP_TYPE
9483 || '_' || pjp1_i.WBS_ROLLUP_FLAG
9484 || '_' || pjp1_i.PRG_ROLLUP_FLAG
9485 || '_' || pjp1_i.SUP_STATUS_CODE,
9486 'LW_N_Y_', to_number(null),
9487 pjp1_i.ETC_LABOR_BRDN_COST) ETC_LABOR_BRDN_COST,
9488 decode(pjp1_i.RELATIONSHIP_TYPE
9489 || '_' || pjp1_i.WBS_ROLLUP_FLAG
9490 || '_' || pjp1_i.PRG_ROLLUP_FLAG
9491 || '_' || pjp1_i.SUP_STATUS_CODE,
9492 'LW_N_Y_', to_number(null),
9493 pjp1_i.ETC_EQUIP_BRDN_COST) ETC_EQUIP_BRDN_COST,
9494 decode(pjp1_i.RELATIONSHIP_TYPE
9495 || '_' || pjp1_i.WBS_ROLLUP_FLAG
9496 || '_' || pjp1_i.PRG_ROLLUP_FLAG
9497 || '_' || pjp1_i.SUP_STATUS_CODE,
9498 'LW_N_Y_', to_number(null),
9499 pjp1_i.ETC_BRDN_COST) ETC_BRDN_COST,
9500 decode(pjp1_i.RELATIONSHIP_TYPE
9501 || '_' || pjp1_i.WBS_ROLLUP_FLAG
9502 || '_' || pjp1_i.PRG_ROLLUP_FLAG
9503 || '_' || pjp1_i.SUP_STATUS_CODE,
9504 'LW_N_Y_', to_number(null),
9505 pjp1_i.ETC_RAW_COST) ETC_RAW_COST,
9506 decode(pjp1_i.RELATIONSHIP_TYPE
9507 || '_' || pjp1_i.WBS_ROLLUP_FLAG
9508 || '_' || pjp1_i.PRG_ROLLUP_FLAG
9509 || '_' || pjp1_i.SUP_STATUS_CODE,
9510 'LW_N_Y_', to_number(null),
9511 pjp1_i.ETC_LABOR_RAW_COST) ETC_LABOR_RAW_COST,
9512 decode(pjp1_i.RELATIONSHIP_TYPE
9513 || '_' || pjp1_i.WBS_ROLLUP_FLAG
9514 || '_' || pjp1_i.PRG_ROLLUP_FLAG
9515 || '_' || pjp1_i.SUP_STATUS_CODE,
9516 'LW_N_Y_', to_number(null),
9517 pjp1_i.ETC_EQUIP_RAW_COST) ETC_EQUIP_RAW_COST,
9518 pjp1_i.CUSTOM1,
9519 pjp1_i.CUSTOM2,
9520 pjp1_i.CUSTOM3,
9521 pjp1_i.CUSTOM4,
9522 pjp1_i.CUSTOM5,
9523 pjp1_i.CUSTOM6,
9524 pjp1_i.CUSTOM7,
9525 pjp1_i.CUSTOM8,
9526 pjp1_i.CUSTOM9,
9527 pjp1_i.CUSTOM10,
9528 pjp1_i.CUSTOM11,
9529 pjp1_i.CUSTOM12,
9530 pjp1_i.CUSTOM13,
9531 pjp1_i.CUSTOM14,
9532 pjp1_i.CUSTOM15
9533 from
9534 (
9535 select
9536 decode(nvl(prg.SUB_EMT_ID, -1), nvl(prg.SUB_ROLLUP_ID, -1),
9537 pjp.INSERT_FLAG, 'Y') INSERT_FLAG,
9538 pjp.RELATIONSHIP_TYPE,
9539 decode(nvl(prg.SUB_EMT_ID, -1), nvl(prg.SUB_ROLLUP_ID, -1),
9540 null, sub_ver.STATUS_CODE) SUB_STATUS_CODE,
9541 decode(nvl(prg.SUB_EMT_ID, -1), nvl(prg.SUB_ROLLUP_ID, -1),
9542 null, sup_ver.STATUS_CODE) SUP_STATUS_CODE,
9543 decode(nvl(prg.SUB_EMT_ID, -1), nvl(prg.SUB_ROLLUP_ID, -1),
9544 null, sup_wpa.WP_ENABLE_VERSION_FLAG)SUP_VER_ENABLED,
9545 decode(nvl(prg.SUB_EMT_ID, -1), nvl(prg.SUB_ROLLUP_ID, -1),
9546 null, decode(pjp.PLAN_VERSION_ID,
9547 -1, prg.SUP_ID,
9548 -3, prg.SUP_ID,
9549 -4, prg.SUP_ID,
9550 null)) SUP_ID,
9551 decode(nvl(prg.SUB_EMT_ID, -1), nvl(prg.SUB_ROLLUP_ID, -1),
9552 null, decode(pjp.PLAN_VERSION_ID,
9553 -1, prg.SUP_EMT_ID,
9554 -3, prg.SUP_EMT_ID,
9555 -4, prg.SUP_EMT_ID,
9556 null)) SUP_EMT_ID,
9557 decode(nvl(prg.SUB_EMT_ID, -1), nvl(prg.SUB_ROLLUP_ID, -1),
9558 null, decode(pjp.PLAN_VERSION_ID,
9559 -1, prg.WP_FLAG,
9560 -3, prg.WP_FLAG,
9561 -4, prg.WP_FLAG,
9562 null)) SUP_WP_FLAG,
9563 1 WORKER_ID,
9564 -- p_worker_id WORKER_ID,
9565 'W' RECORD_TYPE,
9566 decode(nvl(prg.SUB_EMT_ID, -1), nvl(prg.SUB_ROLLUP_ID, -1),
9567 l_level, prg.SUP_LEVEL) PRG_LEVEL,
9568 pjp.LINE_TYPE,
9569 decode(nvl(prg.SUB_EMT_ID, -1), nvl(prg.SUB_ROLLUP_ID, -1),
9570 pjp.PROJECT_ID, prg.SUP_PROJECT_ID) PROJECT_ID,
9571 decode(nvl(prg.SUB_EMT_ID, -1), nvl(prg.SUB_ROLLUP_ID, -1),
9572 pjp.PROJECT_ORG_ID,
9573 prg.SUP_PROJECT_ORG_ID) PROJECT_ORG_ID,
9574 decode(nvl(prg.SUB_EMT_ID, -1), nvl(prg.SUB_ROLLUP_ID, -1),
9575 pjp.PROJECT_ORGANIZATION_ID,
9576 prg.SUP_PROJECT_ORGANIZATION_ID) PROJECT_ORGANIZATION_ID,
9577 decode(nvl(prg.SUB_EMT_ID, -1), nvl(prg.SUB_ROLLUP_ID, -1),
9578 pjp.PROJECT_ELEMENT_ID,
9579 prg.SUB_ROLLUP_ID) PROJECT_ELEMENT_ID,
9580 pjp.TIME_ID,
9581 pjp.PERIOD_TYPE_ID,
9582 pjp.CALENDAR_TYPE,
9583 pjp.RBS_AGGR_LEVEL,
9584 decode(nvl(prg.SUB_EMT_ID, -1), nvl(prg.SUB_ROLLUP_ID, -1),
9585 pjp.WBS_ROLLUP_FLAG, 'N') WBS_ROLLUP_FLAG,
9586 decode(nvl(prg.SUB_EMT_ID, -1), nvl(prg.SUB_ROLLUP_ID, -1),
9587 pjp.PRG_ROLLUP_FLAG, 'Y') PRG_ROLLUP_FLAG,
9588 pjp.CURR_RECORD_TYPE_ID,
9589 pjp.CURRENCY_CODE,
9590 pjp.RBS_ELEMENT_ID,
9591 pjp.RBS_VERSION_ID,
9592 decode(nvl(prg.SUB_EMT_ID, -1), nvl(prg.SUB_ROLLUP_ID, -1),
9593 pjp.PLAN_VERSION_ID,
9594 decode(pjp.PLAN_VERSION_ID,
9595 -1, pjp.PLAN_VERSION_ID,
9596 -2, pjp.PLAN_VERSION_ID,
9597 -3, pjp.PLAN_VERSION_ID,
9598 -4, pjp.PLAN_VERSION_ID,
9599 wbs_hdr.PLAN_VERSION_ID)) PLAN_VERSION_ID,
9600 decode(nvl(prg.SUB_EMT_ID, -1), nvl(prg.SUB_ROLLUP_ID, -1),
9601 pjp.PLAN_TYPE_ID,
9602 decode(pjp.PLAN_VERSION_ID,
9603 -1, pjp.PLAN_TYPE_ID,
9604 -2, pjp.PLAN_TYPE_ID,
9605 -3, pjp.PLAN_TYPE_ID,
9606 -4, pjp.PLAN_TYPE_ID,
9607 wbs_hdr.PLAN_TYPE_ID)) PLAN_TYPE_ID,
9608 pjp.PLAN_TYPE_CODE,
9609 sum(pjp.RAW_COST) RAW_COST,
9610 sum(pjp.BRDN_COST) BRDN_COST,
9611 sum(pjp.REVENUE) REVENUE,
9612 sum(pjp.BILL_RAW_COST) BILL_RAW_COST,
9613 sum(pjp.BILL_BRDN_COST) BILL_BRDN_COST,
9614 sum(pjp.BILL_LABOR_RAW_COST) BILL_LABOR_RAW_COST,
9615 sum(pjp.BILL_LABOR_BRDN_COST) BILL_LABOR_BRDN_COST,
9616 sum(pjp.BILL_LABOR_HRS) BILL_LABOR_HRS,
9617 sum(pjp.EQUIPMENT_RAW_COST) EQUIPMENT_RAW_COST,
9618 sum(pjp.EQUIPMENT_BRDN_COST) EQUIPMENT_BRDN_COST,
9619 sum(pjp.CAPITALIZABLE_RAW_COST) CAPITALIZABLE_RAW_COST,
9620 sum(pjp.CAPITALIZABLE_BRDN_COST) CAPITALIZABLE_BRDN_COST,
9621 sum(pjp.LABOR_RAW_COST) LABOR_RAW_COST,
9622 sum(pjp.LABOR_BRDN_COST) LABOR_BRDN_COST,
9623 sum(pjp.LABOR_HRS) LABOR_HRS,
9624 sum(pjp.LABOR_REVENUE) LABOR_REVENUE,
9625 sum(pjp.EQUIPMENT_HOURS) EQUIPMENT_HOURS,
9626 sum(pjp.BILLABLE_EQUIPMENT_HOURS) BILLABLE_EQUIPMENT_HOURS,
9627 sum(pjp.SUP_INV_COMMITTED_COST) SUP_INV_COMMITTED_COST,
9628 sum(pjp.PO_COMMITTED_COST) PO_COMMITTED_COST,
9629 sum(pjp.PR_COMMITTED_COST) PR_COMMITTED_COST,
9630 sum(pjp.OTH_COMMITTED_COST) OTH_COMMITTED_COST,
9631 sum(pjp.ACT_LABOR_HRS) ACT_LABOR_HRS,
9632 sum(pjp.ACT_EQUIP_HRS) ACT_EQUIP_HRS,
9633 sum(pjp.ACT_LABOR_BRDN_COST) ACT_LABOR_BRDN_COST,
9634 sum(pjp.ACT_EQUIP_BRDN_COST) ACT_EQUIP_BRDN_COST,
9635 sum(pjp.ACT_BRDN_COST) ACT_BRDN_COST,
9636 sum(pjp.ACT_RAW_COST) ACT_RAW_COST,
9637 sum(pjp.ACT_REVENUE) ACT_REVENUE,
9638 sum(pjp.ACT_LABOR_RAW_COST) ACT_LABOR_RAW_COST,
9639 sum(pjp.ACT_EQUIP_RAW_COST) ACT_EQUIP_RAW_COST,
9640 sum(pjp.ETC_LABOR_HRS) ETC_LABOR_HRS,
9641 sum(pjp.ETC_EQUIP_HRS) ETC_EQUIP_HRS,
9642 sum(pjp.ETC_LABOR_BRDN_COST) ETC_LABOR_BRDN_COST,
9643 sum(pjp.ETC_EQUIP_BRDN_COST) ETC_EQUIP_BRDN_COST,
9644 sum(pjp.ETC_BRDN_COST) ETC_BRDN_COST,
9645 sum(pjp.ETC_RAW_COST) ETC_RAW_COST,
9646 sum(pjp.ETC_LABOR_RAW_COST) ETC_LABOR_RAW_COST,
9647 sum(pjp.ETC_EQUIP_RAW_COST) ETC_EQUIP_RAW_COST,
9648 sum(pjp.CUSTOM1) CUSTOM1,
9649 sum(pjp.CUSTOM2) CUSTOM2,
9650 sum(pjp.CUSTOM3) CUSTOM3,
9651 sum(pjp.CUSTOM4) CUSTOM4,
9652 sum(pjp.CUSTOM5) CUSTOM5,
9653 sum(pjp.CUSTOM6) CUSTOM6,
9654 sum(pjp.CUSTOM7) CUSTOM7,
9655 sum(pjp.CUSTOM8) CUSTOM8,
9656 sum(pjp.CUSTOM9) CUSTOM9,
9657 sum(pjp.CUSTOM10) CUSTOM10,
9658 sum(pjp.CUSTOM11) CUSTOM11,
9659 sum(pjp.CUSTOM12) CUSTOM12,
9660 sum(pjp.CUSTOM13) CUSTOM13,
9661 sum(pjp.CUSTOM14) CUSTOM14,
9662 sum(pjp.CUSTOM15) CUSTOM15
9663 from
9664 (
9665 select /*+ ordered index(wbs PA_XBS_DENORM_N2) */
9666 -- get incremental task level amounts from source and
9667 -- program rollup amounts from interim
9668 to_char(null) LINE_TYPE,
9669 wbs_hdr.WBS_VERSION_ID,
9670 decode(wbs_hdr.WP_FLAG, 'Y', 'LW', 'LF') RELATIONSHIP_TYPE,
9671 decode(wbs_hdr.WP_FLAG
9672 || '_' || to_char(sign(pjp1.PLAN_VERSION_ID))
9673 || '_' || nvl(fin_plan.INVERT_ID, 'PRJ'),
9674 'N_1_PRJ', 'N',
9675 'N_-1_PRG', 'N',
9676 decode(top_slice.INVERT_ID,
9677 'PRJ', 'Y',
9678 decode(wbs.SUB_LEVEL,
9679 1, 'Y', 'N'))) PUSHUP_FLAG,
9680 decode(pjp1.RBS_AGGR_LEVEL,
9681 'L', 'N',
9682 decode(wbs_hdr.WP_FLAG
9683 || '_' || to_char(sign(pjp1.PLAN_VERSION_ID))
9684 || '_' || fin_plan.INVERT_ID,
9685 'N_1_PRG', decode(top_slice.INVERT_ID,
9686 'PRJ', 'Y',
9687 decode(wbs.SUB_LEVEL,
9688 1, 'Y', 'N')),
9689 'N_-1_PRG', 'N',
9690 decode(wbs_hdr.WP_FLAG
9691 || '_' || fin_plan.INVERT_ID
9692 || '_' || fin_plan.CB
9693 || '_' || fin_plan.CO
9694 || '_'
9695 || to_char(fin_plan.PLAN_VERSION_ID),
9696 'N_PRJ_Y_Y_-4', 'N',
9697 'Y'))
9698 ) INSERT_FLAG,
9699 pjp1.PROJECT_ID,
9700 pjp1.PROJECT_ORG_ID,
9701 pjp1.PROJECT_ORGANIZATION_ID,
9702 decode(top_slice.INVERT_ID,
9703 'PRJ', prg.SUP_EMT_ID,
9704 decode(wbs.SUB_LEVEL,
9705 1, prg.SUP_EMT_ID,
9706 wbs.SUP_EMT_ID)) PROJECT_ELEMENT_ID,
9707 pjp1.TIME_ID,
9708 pjp1.PERIOD_TYPE_ID,
9709 pjp1.CALENDAR_TYPE,
9710 pjp1.RBS_AGGR_LEVEL,
9711 'Y' WBS_ROLLUP_FLAG,
9712 pjp1.PRG_ROLLUP_FLAG,
9713 pjp1.CURR_RECORD_TYPE_ID,
9714 pjp1.CURRENCY_CODE,
9715 pjp1.RBS_ELEMENT_ID,
9716 pjp1.RBS_VERSION_ID,
9717 decode(wbs_hdr.WP_FLAG || '_' || fin_plan.INVERT_ID,
9718 'N_PRG', fin_plan.PLAN_VERSION_ID,
9719 pjp1.PLAN_VERSION_ID) PLAN_VERSION_ID,
9720 pjp1.PLAN_TYPE_ID,
9721 pjp1.PLAN_TYPE_CODE,
9722 pjp1.RAW_COST,
9723 pjp1.BRDN_COST,
9724 pjp1.REVENUE,
9725 pjp1.BILL_RAW_COST,
9726 pjp1.BILL_BRDN_COST,
9727 pjp1.BILL_LABOR_RAW_COST,
9728 pjp1.BILL_LABOR_BRDN_COST,
9729 pjp1.BILL_LABOR_HRS,
9730 pjp1.EQUIPMENT_RAW_COST,
9731 pjp1.EQUIPMENT_BRDN_COST,
9732 pjp1.CAPITALIZABLE_RAW_COST,
9733 pjp1.CAPITALIZABLE_BRDN_COST,
9734 pjp1.LABOR_RAW_COST,
9735 pjp1.LABOR_BRDN_COST,
9736 pjp1.LABOR_HRS,
9737 pjp1.LABOR_REVENUE,
9738 pjp1.EQUIPMENT_HOURS,
9739 pjp1.BILLABLE_EQUIPMENT_HOURS,
9740 pjp1.SUP_INV_COMMITTED_COST,
9741 pjp1.PO_COMMITTED_COST,
9742 pjp1.PR_COMMITTED_COST,
9743 pjp1.OTH_COMMITTED_COST,
9744 pjp1.ACT_LABOR_HRS,
9745 pjp1.ACT_EQUIP_HRS,
9746 pjp1.ACT_LABOR_BRDN_COST,
9747 pjp1.ACT_EQUIP_BRDN_COST,
9748 pjp1.ACT_BRDN_COST,
9749 pjp1.ACT_RAW_COST,
9750 pjp1.ACT_REVENUE,
9751 pjp1.ACT_LABOR_RAW_COST,
9752 pjp1.ACT_EQUIP_RAW_COST,
9753 pjp1.ETC_LABOR_HRS,
9754 pjp1.ETC_EQUIP_HRS,
9755 pjp1.ETC_LABOR_BRDN_COST,
9756 pjp1.ETC_EQUIP_BRDN_COST,
9757 pjp1.ETC_BRDN_COST,
9758 pjp1.ETC_RAW_COST,
9759 pjp1.ETC_LABOR_RAW_COST,
9760 pjp1.ETC_EQUIP_RAW_COST,
9761 pjp1.CUSTOM1,
9762 pjp1.CUSTOM2,
9763 pjp1.CUSTOM3,
9764 pjp1.CUSTOM4,
9765 pjp1.CUSTOM5,
9766 pjp1.CUSTOM6,
9767 pjp1.CUSTOM7,
9768 pjp1.CUSTOM8,
9769 pjp1.CUSTOM9,
9770 pjp1.CUSTOM10,
9771 pjp1.CUSTOM11,
9772 pjp1.CUSTOM12,
9773 pjp1.CUSTOM13,
9774 pjp1.CUSTOM14,
9775 pjp1.CUSTOM15
9776 from
9777 PJI_FP_AGGR_PJP1_T pjp1,
9778 PJI_PJP_WBS_HEADER wbs_hdr,
9779 PA_XBS_DENORM wbs,
9780 PJI_XBS_DENORM prg,
9781 (
9782 select 'Y' CB, 'N' CO, -3 PLAN_VERSION_ID, 'PRG' INVERT_ID
9783 from DUAL union all
9784 select 'Y' CB, 'N' CO, -3 PLAN_VERSION_ID, 'PRJ' INVERT_ID
9785 from DUAL union all
9786 select 'N' CB, 'Y' CO, -4 PLAN_VERSION_ID, 'PRG' INVERT_ID
9787 from DUAL union all
9788 select 'N' CB, 'Y' CO, -4 PLAN_VERSION_ID, 'PRJ' INVERT_ID
9789 from DUAL union all
9790 select 'Y' CB, 'Y' CO, -3 PLAN_VERSION_ID, 'PRG' INVERT_ID
9791 from DUAL union all
9792 select 'Y' CB, 'Y' CO, -3 PLAN_VERSION_ID, 'PRJ' INVERT_ID
9793 from DUAL union all
9794 select 'Y' CB, 'Y' CO, -4 PLAN_VERSION_ID, 'PRG' INVERT_ID
9795 from DUAL union all
9796 select 'Y' CB, 'Y' CO, -4 PLAN_VERSION_ID, 'PRJ' INVERT_ID
9797 from DUAL
9798 ) fin_plan,
9799 (
9800 select 1 WBS_SUP_LEVEL,
9801 1 WBS_SUB_LEVEL,
9802 'PRJ' INVERT_ID
9803 from DUAL
9804 union all
9805 select 1 WBS_SUP_LEVEL,
9806 1 WBS_SUB_LEVEL,
9807 'WBS' INVERT_ID
9808 from DUAL
9809 ) top_slice
9810 where
9811 prg.STRUCT_TYPE = 'PRG' and
9812 prg.SUP_LEVEL = l_level and
9813 prg.SUB_LEVEL = l_level and
9814 wbs.STRUCT_TYPE = 'WBS' and
9815 ((wbs.SUP_LEVEL = 1 and
9816 wbs.SUB_LEVEL = 1) or
9817 (wbs.SUP_LEVEL <> wbs.SUB_LEVEL)) and
9818 wbs.STRUCT_VERSION_ID = prg.SUP_ID and
9819 wbs.SUP_PROJECT_ID = prg.SUP_PROJECT_ID and
9820 -- pjp1.WORKER_ID = p_worker_id and
9821 pjp1.PRG_LEVEL in (0, l_level) and
9822 pjp1.RBS_AGGR_LEVEL in ('T', 'L') and
9823 pjp1.WBS_ROLLUP_FLAG = 'N' and
9824 pjp1.PRG_ROLLUP_FLAG in ('Y', 'N') and
9825 pjp1.PROJECT_ID = wbs_hdr.PROJECT_ID and
9826 pjp1.PLAN_VERSION_ID = wbs_hdr.PLAN_VERSION_ID and
9827 pjp1.PLAN_TYPE_CODE = wbs_hdr.PLAN_TYPE_CODE and
9828 decode(pjp1.PLAN_VERSION_ID,
9829 -3, pjp1.PLAN_TYPE_ID,
9830 -4, pjp1.PLAN_TYPE_ID,
9831 -1) = decode(pjp1.PLAN_VERSION_ID,
9832 -3, wbs_hdr.PLAN_TYPE_ID,
9833 -4, wbs_hdr.PLAN_TYPE_ID,
9834 -1) and
9835 wbs.STRUCT_VERSION_ID = wbs_hdr.WBS_VERSION_ID and
9836 pjp1.PROJECT_ELEMENT_ID = wbs.SUB_EMT_ID and
9837 wbs_hdr.CB_FLAG = fin_plan.CB (+) and
9838 wbs_hdr.CO_FLAG = fin_plan.CO (+) and
9839 wbs.SUP_LEVEL = top_slice.WBS_SUP_LEVEL (+) and
9840 wbs.SUB_LEVEL <> top_slice.WBS_SUB_LEVEL (+)
9841 union all
9842 select /*+ ordered */
9843 -- get incremental project level amounts from source
9844 to_char(null) LINE_TYPE,
9845 wbs_hdr.WBS_VERSION_ID,
9846 decode(wbs_hdr.WP_FLAG, 'Y', 'LW', 'LF') RELATIONSHIP_TYPE,
9847 'Y' PUSHUP_FLAG,
9848 decode(pjp1.RBS_AGGR_LEVEL,
9849 'L', 'N',
9850 decode(fin_plan.PLAN_VERSION_ID,
9851 null, 'N', 'Y')) INSERT_FLAG,
9852 pjp1.PROJECT_ID,
9853 pjp1.PROJECT_ORG_ID,
9854 pjp1.PROJECT_ORGANIZATION_ID,
9855 pjp1.PROJECT_ELEMENT_ID,
9856 pjp1.TIME_ID,
9857 pjp1.PERIOD_TYPE_ID,
9858 pjp1.CALENDAR_TYPE,
9859 pjp1.RBS_AGGR_LEVEL,
9860 'Y' WBS_ROLLUP_FLAG,
9861 pjp1.PRG_ROLLUP_FLAG,
9862 pjp1.CURR_RECORD_TYPE_ID,
9863 pjp1.CURRENCY_CODE,
9864 pjp1.RBS_ELEMENT_ID,
9865 pjp1.RBS_VERSION_ID,
9866 decode(wbs_hdr.WP_FLAG,
9867 'N', decode(pjp1.PLAN_VERSION_ID,
9868 -1, pjp1.PLAN_VERSION_ID,
9869 -2, pjp1.PLAN_VERSION_ID,
9870 -3, pjp1.PLAN_VERSION_ID, -- won't exist
9871 -4, pjp1.PLAN_VERSION_ID, -- won't exist
9872 fin_plan.PLAN_VERSION_ID),
9873 pjp1.PLAN_VERSION_ID) PLAN_VERSION_ID,
9874 pjp1.PLAN_TYPE_ID,
9875 pjp1.PLAN_TYPE_CODE,
9876 pjp1.RAW_COST,
9877 pjp1.BRDN_COST,
9878 pjp1.REVENUE,
9879 pjp1.BILL_RAW_COST,
9880 pjp1.BILL_BRDN_COST,
9881 pjp1.BILL_LABOR_RAW_COST,
9882 pjp1.BILL_LABOR_BRDN_COST,
9883 pjp1.BILL_LABOR_HRS,
9884 pjp1.EQUIPMENT_RAW_COST,
9885 pjp1.EQUIPMENT_BRDN_COST,
9886 pjp1.CAPITALIZABLE_RAW_COST,
9887 pjp1.CAPITALIZABLE_BRDN_COST,
9888 pjp1.LABOR_RAW_COST,
9889 pjp1.LABOR_BRDN_COST,
9890 pjp1.LABOR_HRS,
9891 pjp1.LABOR_REVENUE,
9892 pjp1.EQUIPMENT_HOURS,
9893 pjp1.BILLABLE_EQUIPMENT_HOURS,
9894 pjp1.SUP_INV_COMMITTED_COST,
9895 pjp1.PO_COMMITTED_COST,
9896 pjp1.PR_COMMITTED_COST,
9897 pjp1.OTH_COMMITTED_COST,
9898 pjp1.ACT_LABOR_HRS,
9899 pjp1.ACT_EQUIP_HRS,
9900 pjp1.ACT_LABOR_BRDN_COST,
9901 pjp1.ACT_EQUIP_BRDN_COST,
9902 pjp1.ACT_BRDN_COST,
9903 pjp1.ACT_RAW_COST,
9904 pjp1.ACT_REVENUE,
9905 pjp1.ACT_LABOR_RAW_COST,
9906 pjp1.ACT_EQUIP_RAW_COST,
9907 pjp1.ETC_LABOR_HRS,
9908 pjp1.ETC_EQUIP_HRS,
9909 pjp1.ETC_LABOR_BRDN_COST,
9910 pjp1.ETC_EQUIP_BRDN_COST,
9911 pjp1.ETC_BRDN_COST,
9912 pjp1.ETC_RAW_COST,
9913 pjp1.ETC_LABOR_RAW_COST,
9914 pjp1.ETC_EQUIP_RAW_COST,
9915 pjp1.CUSTOM1,
9916 pjp1.CUSTOM2,
9917 pjp1.CUSTOM3,
9918 pjp1.CUSTOM4,
9919 pjp1.CUSTOM5,
9920 pjp1.CUSTOM6,
9921 pjp1.CUSTOM7,
9922 pjp1.CUSTOM8,
9923 pjp1.CUSTOM9,
9924 pjp1.CUSTOM10,
9925 pjp1.CUSTOM11,
9926 pjp1.CUSTOM12,
9927 pjp1.CUSTOM13,
9928 pjp1.CUSTOM14,
9929 pjp1.CUSTOM15
9930 from
9931 PJI_FP_AGGR_PJP1_T pjp1,
9932 PJI_PJP_WBS_HEADER wbs_hdr,
9933 PJI_XBS_DENORM prg,
9934 (
9935 select 'Y' CB_FLAG,
9936 'N' CO_FLAG,
9937 -3 PLAN_VERSION_ID
9938 from DUAL union all
9939 select 'N' CB_FLAG,
9940 'Y' CO_FLAG,
9941 -4 PLAN_VERSION_ID
9942 from DUAL union all
9943 select 'Y' CB_FLAG,
9944 'Y' CO_FLAG,
9945 -3 PLAN_VERSION_ID
9946 from DUAL union all
9947 select 'Y' CB_FLAG,
9948 'Y' CO_FLAG,
9949 -4 PLAN_VERSION_ID
9950 from DUAL
9951 ) fin_plan
9952 where
9953 prg.STRUCT_TYPE = 'PRG' and
9954 prg.SUP_LEVEL = l_level and
9955 prg.SUB_LEVEL = l_level and
9956 -- pjp1.WORKER_ID = p_worker_id and
9957 pjp1.PROJECT_ID = prg.SUP_PROJECT_ID and
9958 pjp1.PROJECT_ELEMENT_ID = prg.SUP_EMT_ID and
9959 pjp1.PRG_LEVEL = 0 and
9960 pjp1.RBS_AGGR_LEVEL in ('T', 'L') and
9961 pjp1.WBS_ROLLUP_FLAG = 'N' and
9962 pjp1.PRG_ROLLUP_FLAG = 'N' and
9963 wbs_hdr.PROJECT_ID = pjp1.PROJECT_ID and
9964 wbs_hdr.PLAN_VERSION_ID = pjp1.PLAN_VERSION_ID and
9965 wbs_hdr.PLAN_TYPE_CODE = pjp1.PLAN_TYPE_CODE and
9966 decode(wbs_hdr.WP_FLAG,
9967 'N', decode(pjp1.PLAN_VERSION_ID,
9968 -1, 'Y',
9969 -2, 'Y',
9970 -3, 'Y', -- won't exist
9971 -4, 'Y', -- won't exist
9972 decode(wbs_hdr.CB_FLAG || '_' ||
9973 wbs_hdr.CO_FLAG,
9974 'Y_Y', 'Y',
9975 'N_Y', 'Y',
9976 'Y_N', 'Y',
9977 'N')),
9978 'Y') = 'Y' and
9979 wbs_hdr.WBS_VERSION_ID = prg.SUP_ID and
9980 wbs_hdr.CB_FLAG = fin_plan.CB_FLAG (+) and
9981 wbs_hdr.CO_FLAG = fin_plan.CO_FLAG (+)
9982 union all
9983 select /*+ ordered
9984 index(log PA_PJI_PROJ_EVENTS_LOG_N2)
9985 index(fpr PJI_FP_XBS_ACCUM_F_N1) */
9986 -- get delta task level amounts from Reporting Lines
9987 to_char(null) LINE_TYPE,
9988 wbs_hdr.WBS_VERSION_ID,
9989 decode(wbs_hdr.WP_FLAG, 'Y', 'LW', 'LF') RELATIONSHIP_TYPE,
9990 decode(log.EVENT_TYPE,
9991 'WBS_CHANGE', 'Y',
9992 'WBS_PUBLISH', 'N') PUSHUP_FLAG,
9993 decode(wbs_hdr.WP_FLAG || '_' || fin_plan.INVERT_ID,
9994 'N_PRG', decode(top_slice.INVERT_ID,
9995 'PRJ', 'Y',
9996 decode(wbs.SUB_LEVEL,
9997 1, 'Y', 'N')),
9998 decode(wbs_hdr.WP_FLAG
9999 || '_' || fin_plan.INVERT_ID
10000 || '_' || fin_plan.CB
10001 || '_' || fin_plan.CO
10002 || '_' || to_char(fin_plan.PLAN_VERSION_ID),
10003 'N_PRJ_Y_Y_-4', 'N',
10004 'Y')) INSERT_FLAG,
10005 fpr.PROJECT_ID,
10006 fpr.PROJECT_ORG_ID,
10007 fpr.PROJECT_ORGANIZATION_ID,
10008 decode(top_slice.INVERT_ID,
10009 'PRJ', prg.SUP_EMT_ID,
10010 decode(wbs.SUB_LEVEL,
10011 1, prg.SUP_EMT_ID,
10012 wbs.SUP_EMT_ID)) PROJECT_ELEMENT_ID,
10013 fpr.TIME_ID,
10014 fpr.PERIOD_TYPE_ID,
10015 fpr.CALENDAR_TYPE,
10016 fpr.RBS_AGGR_LEVEL,
10017 'Y' WBS_ROLLUP_FLAG,
10018 fpr.PRG_ROLLUP_FLAG,
10019 fpr.CURR_RECORD_TYPE_ID,
10020 fpr.CURRENCY_CODE,
10021 fpr.RBS_ELEMENT_ID,
10022 fpr.RBS_VERSION_ID,
10023 decode(wbs_hdr.WP_FLAG || '_' || fin_plan.INVERT_ID,
10024 'N_PRG', fin_plan.PLAN_VERSION_ID,
10025 fpr.PLAN_VERSION_ID) PLAN_VERSION_ID,
10026 fpr.PLAN_TYPE_ID,
10027 fpr.PLAN_TYPE_CODE,
10028 wbs.SIGN * fpr.RAW_COST RAW_COST,
10029 wbs.SIGN * fpr.BRDN_COST BRDN_COST,
10030 wbs.SIGN * fpr.REVENUE REVENUE,
10031 wbs.SIGN * fpr.BILL_RAW_COST BILL_RAW_COST,
10032 wbs.SIGN * fpr.BILL_BRDN_COST BILL_BRDN_COST,
10033 wbs.SIGN * fpr.BILL_LABOR_RAW_COST BILL_LABOR_RAW_COST,
10034 wbs.SIGN * fpr.BILL_LABOR_BRDN_COST BILL_LABOR_BRDN_COST,
10035 wbs.SIGN * fpr.BILL_LABOR_HRS BILL_LABOR_HRS,
10036 wbs.SIGN * fpr.EQUIPMENT_RAW_COST EQUIPMENT_RAW_COST,
10037 wbs.SIGN * fpr.EQUIPMENT_BRDN_COST EQUIPMENT_BRDN_COST,
10038 wbs.SIGN * fpr.CAPITALIZABLE_RAW_COST CAPITALIZABLE_RAW_COST,
10039 wbs.SIGN * fpr.CAPITALIZABLE_BRDN_COST CAPITALIZABLE_BRDN_COST,
10040 wbs.SIGN * fpr.LABOR_RAW_COST LABOR_RAW_COST,
10041 wbs.SIGN * fpr.LABOR_BRDN_COST LABOR_BRDN_COST,
10042 wbs.SIGN * fpr.LABOR_HRS LABOR_HRS,
10043 wbs.SIGN * fpr.LABOR_REVENUE LABOR_REVENUE,
10044 wbs.SIGN * fpr.EQUIPMENT_HOURS EQUIPMENT_HOURS,
10045 wbs.SIGN * fpr.BILLABLE_EQUIPMENT_HOURS BILLABLE_EQUIPMENT_HOURS,
10046 wbs.SIGN * fpr.SUP_INV_COMMITTED_COST SUP_INV_COMMITTED_COST,
10047 wbs.SIGN * fpr.PO_COMMITTED_COST PO_COMMITTED_COST,
10048 wbs.SIGN * fpr.PR_COMMITTED_COST PR_COMMITTED_COST,
10049 wbs.SIGN * fpr.OTH_COMMITTED_COST OTH_COMMITTED_COST,
10050 wbs.SIGN * fpr.ACT_LABOR_HRS ACT_LABOR_HRS,
10051 wbs.SIGN * fpr.ACT_EQUIP_HRS ACT_EQUIP_HRS,
10052 wbs.SIGN * fpr.ACT_LABOR_BRDN_COST ACT_LABOR_BRDN_COST,
10053 wbs.SIGN * fpr.ACT_EQUIP_BRDN_COST ACT_EQUIP_BRDN_COST,
10054 wbs.SIGN * fpr.ACT_BRDN_COST ACT_BRDN_COST,
10055 wbs.SIGN * fpr.ACT_RAW_COST ACT_RAW_COST,
10056 wbs.SIGN * fpr.ACT_REVENUE ACT_REVENUE,
10057 wbs.SIGN * fpr.ACT_LABOR_RAW_COST ACT_LABOR_RAW_COST,
10058 wbs.SIGN * fpr.ACT_EQUIP_RAW_COST ACT_EQUIP_RAW_COST,
10059 wbs.SIGN * fpr.ETC_LABOR_HRS ETC_LABOR_HRS,
10060 wbs.SIGN * fpr.ETC_EQUIP_HRS ETC_EQUIP_HRS,
10061 wbs.SIGN * fpr.ETC_LABOR_BRDN_COST ETC_LABOR_BRDN_COST,
10062 wbs.SIGN * fpr.ETC_EQUIP_BRDN_COST ETC_EQUIP_BRDN_COST,
10063 wbs.SIGN * fpr.ETC_BRDN_COST ETC_BRDN_COST,
10064 wbs.SIGN * fpr.ETC_RAW_COST ETC_RAW_COST,
10065 wbs.SIGN * fpr.ETC_LABOR_RAW_COST ETC_LABOR_RAW_COST,
10066 wbs.SIGN * fpr.ETC_EQUIP_RAW_COST ETC_EQUIP_RAW_COST,
10067 wbs.SIGN * fpr.CUSTOM1 CUSTOM1,
10068 wbs.SIGN * fpr.CUSTOM2 CUSTOM2,
10069 wbs.SIGN * fpr.CUSTOM3 CUSTOM3,
10070 wbs.SIGN * fpr.CUSTOM4 CUSTOM4,
10071 wbs.SIGN * fpr.CUSTOM5 CUSTOM5,
10072 wbs.SIGN * fpr.CUSTOM6 CUSTOM6,
10073 wbs.SIGN * fpr.CUSTOM7 CUSTOM7,
10074 wbs.SIGN * fpr.CUSTOM8 CUSTOM8,
10075 wbs.SIGN * fpr.CUSTOM9 CUSTOM9,
10076 wbs.SIGN * fpr.CUSTOM10 CUSTOM10,
10077 wbs.SIGN * fpr.CUSTOM11 CUSTOM11,
10078 wbs.SIGN * fpr.CUSTOM12 CUSTOM12,
10079 wbs.SIGN * fpr.CUSTOM13 CUSTOM13,
10080 wbs.SIGN * fpr.CUSTOM14 CUSTOM14,
10081 wbs.SIGN * fpr.CUSTOM15 CUSTOM15
10082 from
10083 PA_PJI_PROJ_EVENTS_LOG log,
10084 PJI_PJP_WBS_HEADER wbs_hdr,
10085 PJI_XBS_DENORM_DELTA_T wbs,
10086 PJI_XBS_DENORM prg,
10087 PJI_FP_XBS_ACCUM_F fpr,
10088 (
10089 select 'Y' CB, 'N' CO, -3 PLAN_VERSION_ID, 'PRG' INVERT_ID
10090 from DUAL union all
10091 select 'Y' CB, 'N' CO, -3 PLAN_VERSION_ID, 'PRJ' INVERT_ID
10092 from DUAL union all
10093 select 'N' CB, 'Y' CO, -4 PLAN_VERSION_ID, 'PRG' INVERT_ID
10094 from DUAL union all
10095 select 'N' CB, 'Y' CO, -4 PLAN_VERSION_ID, 'PRJ' INVERT_ID
10096 from DUAL union all
10097 select 'Y' CB, 'Y' CO, -3 PLAN_VERSION_ID, 'PRG' INVERT_ID
10098 from DUAL union all
10099 select 'Y' CB, 'Y' CO, -3 PLAN_VERSION_ID, 'PRJ' INVERT_ID
10100 from DUAL union all
10101 select 'Y' CB, 'Y' CO, -4 PLAN_VERSION_ID, 'PRG' INVERT_ID
10102 from DUAL union all
10103 select 'Y' CB, 'Y' CO, -4 PLAN_VERSION_ID, 'PRJ' INVERT_ID
10104 from DUAL
10105 ) fin_plan,
10106 (
10107 select 1 WBS_SUP_LEVEL,
10108 1 WBS_SUB_LEVEL,
10109 'PRJ' INVERT_ID
10110 from DUAL
10111 union all
10112 select 1 WBS_SUP_LEVEL,
10113 1 WBS_SUB_LEVEL,
10114 'WBS' INVERT_ID
10115 from DUAL
10116 ) top_slice
10117 where
10118 prg.STRUCT_TYPE = 'PRG' and
10119 prg.SUP_LEVEL = l_level and
10120 prg.SUB_LEVEL = l_level and
10121 -- wbs.WORKER_ID = p_worker_id and
10122 wbs.STRUCT_TYPE = 'WBS' and
10123 wbs.SUP_PROJECT_ID = prg.SUP_PROJECT_ID and
10124 -- log.WORKER_ID = p_worker_id and
10125 log.EVENT_ID = g_event_id and
10126 log.EVENT_TYPE in ('WBS_CHANGE',
10127 'WBS_PUBLISH') and
10128 wbs_hdr.PROJECT_ID = log.ATTRIBUTE1 and
10129 wbs_hdr.PLAN_VERSION_ID = log.ATTRIBUTE3 and
10130 wbs_hdr.WBS_VERSION_ID = wbs.STRUCT_VERSION_ID and
10131 wbs_hdr.PROJECT_ID = prg.SUP_PROJECT_ID and
10132 wbs_hdr.WBS_VERSION_ID = prg.SUP_ID and
10133 fpr.RBS_AGGR_LEVEL = 'T' and
10134 fpr.WBS_ROLLUP_FLAG = 'N' and
10135 fpr.PRG_ROLLUP_FLAG in ('Y', 'N') and
10136 fpr.PROJECT_ID = wbs.SUP_PROJECT_ID and
10137 fpr.PROJECT_ELEMENT_ID = wbs.SUB_EMT_ID and
10138 fpr.PROJECT_ID = wbs_hdr.PROJECT_ID and
10139 fpr.PLAN_VERSION_ID = wbs_hdr.PLAN_VERSION_ID and
10140 fpr.PLAN_TYPE_CODE = wbs_hdr.PLAN_TYPE_CODE and
10141 decode(fpr.PLAN_VERSION_ID,
10142 -3, fpr.PLAN_TYPE_ID,
10143 -4, fpr.PLAN_TYPE_ID,
10144 -1) = decode(fpr.PLAN_VERSION_ID,
10145 -3, wbs_hdr.PLAN_TYPE_ID,
10146 -4, wbs_hdr.PLAN_TYPE_ID,
10147 -1) and
10148 wbs_hdr.CB_FLAG = fin_plan.CB (+) and
10149 wbs_hdr.CO_FLAG = fin_plan.CO (+) and
10150 wbs.SUP_LEVEL = top_slice.WBS_SUP_LEVEL (+) and
10151 wbs.SUB_LEVEL <> top_slice.WBS_SUB_LEVEL (+) and
10152 (wbs.SUP_LEVEL <> wbs.SUB_LEVEL or
10153 (wbs.SUP_LEVEL = 1 and
10154 wbs.SUB_LEVEL = 1))
10155 union all
10156 select /*+ ordered
10157 index(log PA_PJI_PROJ_EVENTS_LOG_N2)
10158 index(fpr PJI_FP_XBS_ACCUM_F_N1) */
10159 -- Baseline reversals and fact amounts (-3 slice)
10160 -- Current Original reversals and fact amounts (-4 slice)
10161 -- Part 1
10162 to_char(null) LINE_TYPE,
10163 wbs_hdr.WBS_VERSION_ID,
10164 'LF' RELATIONSHIP_TYPE,
10165 'Y' PUSHUP_FLAG,
10166 decode(fpr.RBS_AGGR_LEVEL,
10167 'L', 'N', 'Y') INSERT_FLAG,
10168 fpr.PROJECT_ID,
10169 fpr.PROJECT_ORG_ID,
10170 fpr.PROJECT_ORGANIZATION_ID,
10171 prg.SUP_EMT_ID PROJECT_ELEMENT_ID,
10172 fpr.TIME_ID,
10173 fpr.PERIOD_TYPE_ID,
10174 fpr.CALENDAR_TYPE,
10175 fpr.RBS_AGGR_LEVEL,
10176 'Y' WBS_ROLLUP_FLAG,
10177 fpr.PRG_ROLLUP_FLAG,
10178 fpr.CURR_RECORD_TYPE_ID,
10179 fpr.CURRENCY_CODE,
10180 fpr.RBS_ELEMENT_ID,
10181 fpr.RBS_VERSION_ID,
10182 decode(log.EVENT_TYPE,
10183 'PLAN_BASELINE', -3,
10184 'PLAN_ORIGINAL', -4) PLAN_VERSION_ID,
10185 fpr.PLAN_TYPE_ID,
10186 fpr.PLAN_TYPE_CODE,
10187 decode(fpr.PLAN_VERSION_ID,
10188 log.ATTRIBUTE3, -1,
10189 log.EVENT_OBJECT, 1,
10190 -3, -1,
10191 -4, -1)
10192 * fpr.RAW_COST RAW_COST,
10193 decode(fpr.PLAN_VERSION_ID,
10194 log.ATTRIBUTE3, -1,
10195 log.EVENT_OBJECT, 1,
10196 -3, -1,
10197 -4, -1)
10198 * fpr.BRDN_COST BRDN_COST,
10199 decode(fpr.PLAN_VERSION_ID,
10200 log.ATTRIBUTE3, -1,
10201 log.EVENT_OBJECT, 1,
10202 -3, -1,
10203 -4, -1)
10204 * fpr.REVENUE REVENUE,
10205 decode(fpr.PLAN_VERSION_ID,
10206 log.ATTRIBUTE3, -1,
10207 log.EVENT_OBJECT, 1,
10208 -3, -1,
10209 -4, -1)
10210 * fpr.BILL_RAW_COST BILL_RAW_COST,
10211 decode(fpr.PLAN_VERSION_ID,
10212 log.ATTRIBUTE3, -1,
10213 log.EVENT_OBJECT, 1,
10214 -3, -1,
10215 -4, -1)
10216 * fpr.BILL_BRDN_COST BILL_BRDN_COST,
10217 decode(fpr.PLAN_VERSION_ID,
10218 log.ATTRIBUTE3, -1,
10219 log.EVENT_OBJECT, 1,
10220 -3, -1,
10221 -4, -1)
10222 * fpr.BILL_LABOR_RAW_COST BILL_LABOR_RAW_COST,
10223 decode(fpr.PLAN_VERSION_ID,
10224 log.ATTRIBUTE3, -1,
10225 log.EVENT_OBJECT, 1,
10226 -3, -1,
10227 -4, -1)
10228 * fpr.BILL_LABOR_BRDN_COST BILL_LABOR_BRDN_COST,
10229 decode(fpr.PLAN_VERSION_ID,
10230 log.ATTRIBUTE3, -1,
10231 log.EVENT_OBJECT, 1,
10232 -3, -1,
10233 -4, -1)
10234 * fpr.BILL_LABOR_HRS BILL_LABOR_HRS,
10235 decode(fpr.PLAN_VERSION_ID,
10236 log.ATTRIBUTE3, -1,
10237 log.EVENT_OBJECT, 1,
10238 -3, -1,
10239 -4, -1)
10240 * fpr.EQUIPMENT_RAW_COST EQUIPMENT_RAW_COST,
10241 decode(fpr.PLAN_VERSION_ID,
10242 log.ATTRIBUTE3, -1,
10243 log.EVENT_OBJECT, 1,
10244 -3, -1,
10245 -4, -1)
10246 * fpr.EQUIPMENT_BRDN_COST EQUIPMENT_BRDN_COST,
10247 decode(fpr.PLAN_VERSION_ID,
10248 log.ATTRIBUTE3, -1,
10249 log.EVENT_OBJECT, 1,
10250 -3, -1,
10251 -4, -1)
10252 * fpr.CAPITALIZABLE_RAW_COST CAPITALIZABLE_RAW_COST,
10253 decode(fpr.PLAN_VERSION_ID,
10254 log.ATTRIBUTE3, -1,
10255 log.EVENT_OBJECT, 1,
10256 -3, -1,
10257 -4, -1)
10258 * fpr.CAPITALIZABLE_BRDN_COST CAPITALIZABLE_BRDN_COST,
10259 decode(fpr.PLAN_VERSION_ID,
10260 log.ATTRIBUTE3, -1,
10261 log.EVENT_OBJECT, 1,
10262 -3, -1,
10263 -4, -1)
10264 * fpr.LABOR_RAW_COST LABOR_RAW_COST,
10265 decode(fpr.PLAN_VERSION_ID,
10266 log.ATTRIBUTE3, -1,
10267 log.EVENT_OBJECT, 1,
10268 -3, -1,
10269 -4, -1)
10270 * fpr.LABOR_BRDN_COST LABOR_BRDN_COST,
10271 decode(fpr.PLAN_VERSION_ID,
10272 log.ATTRIBUTE3, -1,
10273 log.EVENT_OBJECT, 1,
10274 -3, -1,
10275 -4, -1)
10276 * fpr.LABOR_HRS LABOR_HRS,
10277 decode(fpr.PLAN_VERSION_ID,
10278 log.ATTRIBUTE3, -1,
10279 log.EVENT_OBJECT, 1,
10280 -3, -1,
10281 -4, -1)
10282 * fpr.LABOR_REVENUE LABOR_REVENUE,
10283 decode(fpr.PLAN_VERSION_ID,
10284 log.ATTRIBUTE3, -1,
10285 log.EVENT_OBJECT, 1,
10286 -3, -1,
10287 -4, -1)
10288 * fpr.EQUIPMENT_HOURS EQUIPMENT_HOURS,
10289 decode(fpr.PLAN_VERSION_ID,
10290 log.ATTRIBUTE3, -1,
10291 log.EVENT_OBJECT, 1,
10292 -3, -1,
10293 -4, -1)
10294 * fpr.BILLABLE_EQUIPMENT_HOURS BILLABLE_EQUIPMENT_HOURS,
10295 decode(fpr.PLAN_VERSION_ID,
10296 log.ATTRIBUTE3, -1,
10297 log.EVENT_OBJECT, 1,
10298 -3, -1,
10299 -4, -1)
10300 * fpr.SUP_INV_COMMITTED_COST SUP_INV_COMMITTED_COST,
10301 decode(fpr.PLAN_VERSION_ID,
10302 log.ATTRIBUTE3, -1,
10303 log.EVENT_OBJECT, 1,
10304 -3, -1,
10305 -4, -1)
10306 * fpr.PO_COMMITTED_COST PO_COMMITTED_COST,
10307 decode(fpr.PLAN_VERSION_ID,
10308 log.ATTRIBUTE3, -1,
10309 log.EVENT_OBJECT, 1,
10310 -3, -1,
10311 -4, -1)
10312 * fpr.PR_COMMITTED_COST PR_COMMITTED_COST,
10313 decode(fpr.PLAN_VERSION_ID,
10314 log.ATTRIBUTE3, -1,
10315 log.EVENT_OBJECT, 1,
10316 -3, -1,
10317 -4, -1)
10318 * fpr.OTH_COMMITTED_COST OTH_COMMITTED_COST,
10319 decode(fpr.PLAN_VERSION_ID,
10320 log.ATTRIBUTE3, -1,
10321 log.EVENT_OBJECT, 1,
10322 -3, -1,
10323 -4, -1)
10324 * fpr.ACT_LABOR_HRS ACT_LABOR_HRS,
10325 decode(fpr.PLAN_VERSION_ID,
10326 log.ATTRIBUTE3, -1,
10327 log.EVENT_OBJECT, 1,
10328 -3, -1,
10329 -4, -1)
10330 * fpr.ACT_EQUIP_HRS ACT_EQUIP_HRS,
10331 decode(fpr.PLAN_VERSION_ID,
10332 log.ATTRIBUTE3, -1,
10333 log.EVENT_OBJECT, 1,
10334 -3, -1,
10335 -4, -1)
10336 * fpr.ACT_LABOR_BRDN_COST ACT_LABOR_BRDN_COST,
10337 decode(fpr.PLAN_VERSION_ID,
10338 log.ATTRIBUTE3, -1,
10339 log.EVENT_OBJECT, 1,
10340 -3, -1,
10341 -4, -1)
10342 * fpr.ACT_EQUIP_BRDN_COST ACT_EQUIP_BRDN_COST,
10343 decode(fpr.PLAN_VERSION_ID,
10344 log.ATTRIBUTE3, -1,
10345 log.EVENT_OBJECT, 1,
10346 -3, -1,
10347 -4, -1)
10348 * fpr.ACT_BRDN_COST ACT_BRDN_COST,
10349 decode(fpr.PLAN_VERSION_ID,
10350 log.ATTRIBUTE3, -1,
10351 log.EVENT_OBJECT, 1,
10352 -3, -1,
10353 -4, -1)
10354 * fpr.ACT_RAW_COST ACT_RAW_COST,
10355 decode(fpr.PLAN_VERSION_ID,
10356 log.ATTRIBUTE3, -1,
10357 log.EVENT_OBJECT, 1,
10358 -3, -1,
10359 -4, -1)
10360 * fpr.ACT_REVENUE ACT_REVENUE,
10361 decode(fpr.PLAN_VERSION_ID,
10362 log.ATTRIBUTE3, -1,
10363 log.EVENT_OBJECT, 1,
10364 -3, -1,
10365 -4, -1)
10366 * fpr.ACT_LABOR_RAW_COST ACT_LABOR_RAW_COST,
10367 decode(fpr.PLAN_VERSION_ID,
10368 log.ATTRIBUTE3, -1,
10369 log.EVENT_OBJECT, 1,
10370 -3, -1,
10371 -4, -1)
10372 * fpr.ACT_EQUIP_RAW_COST ACT_EQUIP_RAW_COST,
10373 decode(fpr.PLAN_VERSION_ID,
10374 log.ATTRIBUTE3, -1,
10375 log.EVENT_OBJECT, 1,
10376 -3, -1,
10377 -4, -1)
10378 * fpr.ETC_LABOR_HRS ETC_LABOR_HRS,
10379 decode(fpr.PLAN_VERSION_ID,
10380 log.ATTRIBUTE3, -1,
10381 log.EVENT_OBJECT, 1,
10382 -3, -1,
10383 -4, -1)
10384 * fpr.ETC_EQUIP_HRS ETC_EQUIP_HRS,
10385 decode(fpr.PLAN_VERSION_ID,
10386 log.ATTRIBUTE3, -1,
10387 log.EVENT_OBJECT, 1,
10388 -3, -1,
10389 -4, -1)
10390 * fpr.ETC_LABOR_BRDN_COST ETC_LABOR_BRDN_COST,
10391 decode(fpr.PLAN_VERSION_ID,
10392 log.ATTRIBUTE3, -1,
10393 log.EVENT_OBJECT, 1,
10394 -3, -1,
10395 -4, -1)
10396 * fpr.ETC_EQUIP_BRDN_COST ETC_EQUIP_BRDN_COST,
10397 decode(fpr.PLAN_VERSION_ID,
10398 log.ATTRIBUTE3, -1,
10399 log.EVENT_OBJECT, 1,
10400 -3, -1,
10401 -4, -1)
10402 * fpr.ETC_BRDN_COST ETC_BRDN_COST,
10403 decode(fpr.PLAN_VERSION_ID,
10404 log.ATTRIBUTE3, -1,
10405 log.EVENT_OBJECT, 1,
10406 -3, -1,
10407 -4, -1)
10408 * fpr.ETC_RAW_COST ETC_RAW_COST,
10409 decode(fpr.PLAN_VERSION_ID,
10410 log.ATTRIBUTE3, -1,
10411 log.EVENT_OBJECT, 1,
10412 -3, -1,
10413 -4, -1)
10414 * fpr.ETC_LABOR_RAW_COST ETC_LABOR_RAW_COST,
10415 decode(fpr.PLAN_VERSION_ID,
10416 log.ATTRIBUTE3, -1,
10417 log.EVENT_OBJECT, 1,
10418 -3, -1,
10419 -4, -1)
10420 * fpr.ETC_EQUIP_RAW_COST ETC_EQUIP_RAW_COST,
10421 decode(fpr.PLAN_VERSION_ID,
10422 log.ATTRIBUTE3, -1,
10423 log.EVENT_OBJECT, 1,
10424 -3, -1,
10425 -4, -1)
10426 * fpr.CUSTOM1 CUSTOM1,
10427 decode(fpr.PLAN_VERSION_ID,
10428 log.ATTRIBUTE3, -1,
10429 log.EVENT_OBJECT, 1,
10430 -3, -1,
10431 -4, -1)
10432 * fpr.CUSTOM2 CUSTOM2,
10433 decode(fpr.PLAN_VERSION_ID,
10434 log.ATTRIBUTE3, -1,
10435 log.EVENT_OBJECT, 1,
10436 -3, -1,
10437 -4, -1)
10438 * fpr.CUSTOM3 CUSTOM3,
10439 decode(fpr.PLAN_VERSION_ID,
10440 log.ATTRIBUTE3, -1,
10441 log.EVENT_OBJECT, 1,
10442 -3, -1,
10443 -4, -1)
10444 * fpr.CUSTOM4 CUSTOM4,
10445 decode(fpr.PLAN_VERSION_ID,
10446 log.ATTRIBUTE3, -1,
10447 log.EVENT_OBJECT, 1,
10448 -3, -1,
10449 -4, -1)
10450 * fpr.CUSTOM5 CUSTOM5,
10451 decode(fpr.PLAN_VERSION_ID,
10452 log.ATTRIBUTE3, -1,
10453 log.EVENT_OBJECT, 1,
10454 -3, -1,
10455 -4, -1)
10456 * fpr.CUSTOM6 CUSTOM6,
10457 decode(fpr.PLAN_VERSION_ID,
10458 log.ATTRIBUTE3, -1,
10459 log.EVENT_OBJECT, 1,
10460 -3, -1,
10461 -4, -1)
10462 * fpr.CUSTOM7 CUSTOM7,
10463 decode(fpr.PLAN_VERSION_ID,
10464 log.ATTRIBUTE3, -1,
10465 log.EVENT_OBJECT, 1,
10466 -3, -1,
10467 -4, -1)
10468 * fpr.CUSTOM8 CUSTOM8,
10469 decode(fpr.PLAN_VERSION_ID,
10470 log.ATTRIBUTE3, -1,
10471 log.EVENT_OBJECT, 1,
10472 -3, -1,
10473 -4, -1)
10474 * fpr.CUSTOM9 CUSTOM9,
10475 decode(fpr.PLAN_VERSION_ID,
10476 log.ATTRIBUTE3, -1,
10477 log.EVENT_OBJECT, 1,
10478 -3, -1,
10479 -4, -1)
10480 * fpr.CUSTOM10 CUSTOM10,
10481 decode(fpr.PLAN_VERSION_ID,
10482 log.ATTRIBUTE3, -1,
10483 log.EVENT_OBJECT, 1,
10484 -3, -1,
10485 -4, -1)
10486 * fpr.CUSTOM11 CUSTOM11,
10487 decode(fpr.PLAN_VERSION_ID,
10488 log.ATTRIBUTE3, -1,
10489 log.EVENT_OBJECT, 1,
10490 -3, -1,
10491 -4, -1)
10492 * fpr.CUSTOM12 CUSTOM12,
10493 decode(fpr.PLAN_VERSION_ID,
10494 log.ATTRIBUTE3, -1,
10495 log.EVENT_OBJECT, 1,
10496 -3, -1,
10497 -4, -1)
10498 * fpr.CUSTOM13 CUSTOM13,
10499 decode(fpr.PLAN_VERSION_ID,
10500 log.ATTRIBUTE3, -1,
10501 log.EVENT_OBJECT, 1,
10502 -3, -1,
10503 -4, -1)
10504 * fpr.CUSTOM14 CUSTOM14,
10505 decode(fpr.PLAN_VERSION_ID,
10506 log.ATTRIBUTE3, -1,
10507 log.EVENT_OBJECT, 1,
10508 -3, -1,
10509 -4, -1)
10510 * fpr.CUSTOM15 CUSTOM15
10511 from
10512 PA_PJI_PROJ_EVENTS_LOG log,
10513 PJI_PJP_WBS_HEADER wbs_hdr,
10514 -- Changes done for bug 7354982.
10515 --PJI_XBS_DENORM prg,
10516 PJI_FP_XBS_ACCUM_F fpr,
10517 PJI_XBS_DENORM prg
10518 where
10519 prg.STRUCT_TYPE = 'PRG' and
10520 prg.SUP_LEVEL = l_level and
10521 prg.SUB_LEVEL = l_level and
10522 log.EVENT_ID = g_event_id and
10523 log.EVENT_TYPE in ('PLAN_BASELINE',
10524 'PLAN_ORIGINAL') and
10525 fpr.PROJECT_ID = log.ATTRIBUTE1 and
10526 fpr.PROJECT_ID = prg.SUP_PROJECT_ID and
10527 fpr.PLAN_TYPE_ID = log.ATTRIBUTE2 and
10528 fpr.PLAN_VERSION_ID in (decode(log.EVENT_TYPE,
10529 'PLAN_BASELINE', -3,
10530 'PLAN_ORIGINAL', -4),
10531 log.EVENT_OBJECT) and
10532 (fpr.RBS_AGGR_LEVEL,
10533 fpr.WBS_ROLLUP_FLAG,
10534 fpr.PRG_ROLLUP_FLAG) in (('T', 'Y', 'N'),
10535 ('T', 'N', 'N'),
10536 ('L', 'N', 'N')) and
10537 fpr.PROJECT_ELEMENT_ID = prg.SUB_EMT_ID and
10538 wbs_hdr.PROJECT_ID = fpr.PROJECT_ID and
10539 wbs_hdr.PROJECT_ID = log.ATTRIBUTE1 and
10540 wbs_hdr.PLAN_VERSION_ID in (log.ATTRIBUTE3,
10541 log.EVENT_OBJECT) and
10542 wbs_hdr.PLAN_VERSION_ID = decode(sign(fpr.PLAN_VERSION_ID),
10543 -1, log.ATTRIBUTE3,
10544 log.EVENT_OBJECT) and
10545 wbs_hdr.PLAN_TYPE_ID = log.ATTRIBUTE2 and
10546 wbs_hdr.PLAN_TYPE_CODE = fpr.PLAN_TYPE_CODE and
10547 wbs_hdr.WBS_VERSION_ID = prg.SUP_ID and
10548 prg.struct_version_id is NULL -- added for bug 5882260
10549 union all
10550 select /*+ ordered
10551 index(log PA_PJI_PROJ_EVENTS_LOG_N2)
10552 index(fpr PJI_FP_XBS_ACCUM_F_N1) */
10553 -- Baseline reversals and fact amounts (-3 slice)
10554 -- Current Original reversals and fact amounts (-4 slice)
10555 -- Part 2
10556 to_char(null) LINE_TYPE,
10557 wbs_hdr.WBS_VERSION_ID,
10558 'LF' RELATIONSHIP_TYPE,
10559 'Y' PUSHUP_FLAG,
10560 decode(fpr.RBS_AGGR_LEVEL,
10561 'L', 'N', 'Y') INSERT_FLAG,
10562 fpr.PROJECT_ID,
10563 fpr.PROJECT_ORG_ID,
10564 fpr.PROJECT_ORGANIZATION_ID,
10565 prg.SUP_EMT_ID PROJECT_ELEMENT_ID,
10566 fpr.TIME_ID,
10567 fpr.PERIOD_TYPE_ID,
10568 fpr.CALENDAR_TYPE,
10569 fpr.RBS_AGGR_LEVEL,
10570 'Y' WBS_ROLLUP_FLAG,
10571 fpr.PRG_ROLLUP_FLAG,
10572 fpr.CURR_RECORD_TYPE_ID,
10573 fpr.CURRENCY_CODE,
10574 fpr.RBS_ELEMENT_ID,
10575 fpr.RBS_VERSION_ID,
10576 decode(log.EVENT_TYPE,
10577 'PLAN_BASELINE', -3,
10578 'PLAN_ORIGINAL', -4) PLAN_VERSION_ID,
10579 fpr.PLAN_TYPE_ID,
10580 fpr.PLAN_TYPE_CODE,
10581 decode(fpr.PLAN_VERSION_ID,
10582 log.ATTRIBUTE3, -1,
10583 log.EVENT_OBJECT, 1,
10584 -3, -1,
10585 -4, -1)
10586 * fpr.RAW_COST RAW_COST,
10587 decode(fpr.PLAN_VERSION_ID,
10588 log.ATTRIBUTE3, -1,
10589 log.EVENT_OBJECT, 1,
10590 -3, -1,
10591 -4, -1)
10592 * fpr.BRDN_COST BRDN_COST,
10593 decode(fpr.PLAN_VERSION_ID,
10594 log.ATTRIBUTE3, -1,
10595 log.EVENT_OBJECT, 1,
10596 -3, -1,
10597 -4, -1)
10598 * fpr.REVENUE REVENUE,
10599 decode(fpr.PLAN_VERSION_ID,
10600 log.ATTRIBUTE3, -1,
10601 log.EVENT_OBJECT, 1,
10602 -3, -1,
10603 -4, -1)
10604 * fpr.BILL_RAW_COST BILL_RAW_COST,
10605 decode(fpr.PLAN_VERSION_ID,
10606 log.ATTRIBUTE3, -1,
10607 log.EVENT_OBJECT, 1,
10608 -3, -1,
10609 -4, -1)
10610 * fpr.BILL_BRDN_COST BILL_BRDN_COST,
10611 decode(fpr.PLAN_VERSION_ID,
10612 log.ATTRIBUTE3, -1,
10613 log.EVENT_OBJECT, 1,
10614 -3, -1,
10615 -4, -1)
10616 * fpr.BILL_LABOR_RAW_COST BILL_LABOR_RAW_COST,
10617 decode(fpr.PLAN_VERSION_ID,
10618 log.ATTRIBUTE3, -1,
10619 log.EVENT_OBJECT, 1,
10620 -3, -1,
10621 -4, -1)
10622 * fpr.BILL_LABOR_BRDN_COST BILL_LABOR_BRDN_COST,
10623 decode(fpr.PLAN_VERSION_ID,
10624 log.ATTRIBUTE3, -1,
10625 log.EVENT_OBJECT, 1,
10626 -3, -1,
10627 -4, -1)
10628 * fpr.BILL_LABOR_HRS BILL_LABOR_HRS,
10629 decode(fpr.PLAN_VERSION_ID,
10630 log.ATTRIBUTE3, -1,
10631 log.EVENT_OBJECT, 1,
10632 -3, -1,
10633 -4, -1)
10634 * fpr.EQUIPMENT_RAW_COST EQUIPMENT_RAW_COST,
10635 decode(fpr.PLAN_VERSION_ID,
10636 log.ATTRIBUTE3, -1,
10637 log.EVENT_OBJECT, 1,
10638 -3, -1,
10639 -4, -1)
10640 * fpr.EQUIPMENT_BRDN_COST EQUIPMENT_BRDN_COST,
10641 decode(fpr.PLAN_VERSION_ID,
10642 log.ATTRIBUTE3, -1,
10643 log.EVENT_OBJECT, 1,
10644 -3, -1,
10645 -4, -1)
10646 * fpr.CAPITALIZABLE_RAW_COST CAPITALIZABLE_RAW_COST,
10647 decode(fpr.PLAN_VERSION_ID,
10648 log.ATTRIBUTE3, -1,
10649 log.EVENT_OBJECT, 1,
10650 -3, -1,
10651 -4, -1)
10652 * fpr.CAPITALIZABLE_BRDN_COST CAPITALIZABLE_BRDN_COST,
10653 decode(fpr.PLAN_VERSION_ID,
10654 log.ATTRIBUTE3, -1,
10655 log.EVENT_OBJECT, 1,
10656 -3, -1,
10657 -4, -1)
10658 * fpr.LABOR_RAW_COST LABOR_RAW_COST,
10659 decode(fpr.PLAN_VERSION_ID,
10660 log.ATTRIBUTE3, -1,
10661 log.EVENT_OBJECT, 1,
10662 -3, -1,
10663 -4, -1)
10664 * fpr.LABOR_BRDN_COST LABOR_BRDN_COST,
10665 decode(fpr.PLAN_VERSION_ID,
10666 log.ATTRIBUTE3, -1,
10667 log.EVENT_OBJECT, 1,
10668 -3, -1,
10669 -4, -1)
10670 * fpr.LABOR_HRS LABOR_HRS,
10671 decode(fpr.PLAN_VERSION_ID,
10672 log.ATTRIBUTE3, -1,
10673 log.EVENT_OBJECT, 1,
10674 -3, -1,
10675 -4, -1)
10676 * fpr.LABOR_REVENUE LABOR_REVENUE,
10677 decode(fpr.PLAN_VERSION_ID,
10678 log.ATTRIBUTE3, -1,
10679 log.EVENT_OBJECT, 1,
10680 -3, -1,
10681 -4, -1)
10682 * fpr.EQUIPMENT_HOURS EQUIPMENT_HOURS,
10683 decode(fpr.PLAN_VERSION_ID,
10684 log.ATTRIBUTE3, -1,
10685 log.EVENT_OBJECT, 1,
10686 -3, -1,
10687 -4, -1)
10688 * fpr.BILLABLE_EQUIPMENT_HOURS BILLABLE_EQUIPMENT_HOURS,
10689 decode(fpr.PLAN_VERSION_ID,
10690 log.ATTRIBUTE3, -1,
10691 log.EVENT_OBJECT, 1,
10692 -3, -1,
10693 -4, -1)
10694 * fpr.SUP_INV_COMMITTED_COST SUP_INV_COMMITTED_COST,
10695 decode(fpr.PLAN_VERSION_ID,
10696 log.ATTRIBUTE3, -1,
10697 log.EVENT_OBJECT, 1,
10698 -3, -1,
10699 -4, -1)
10700 * fpr.PO_COMMITTED_COST PO_COMMITTED_COST,
10701 decode(fpr.PLAN_VERSION_ID,
10702 log.ATTRIBUTE3, -1,
10703 log.EVENT_OBJECT, 1,
10704 -3, -1,
10705 -4, -1)
10706 * fpr.PR_COMMITTED_COST PR_COMMITTED_COST,
10707 decode(fpr.PLAN_VERSION_ID,
10708 log.ATTRIBUTE3, -1,
10709 log.EVENT_OBJECT, 1,
10710 -3, -1,
10711 -4, -1)
10712 * fpr.OTH_COMMITTED_COST OTH_COMMITTED_COST,
10713 decode(fpr.PLAN_VERSION_ID,
10714 log.ATTRIBUTE3, -1,
10715 log.EVENT_OBJECT, 1,
10716 -3, -1,
10717 -4, -1)
10718 * fpr.ACT_LABOR_HRS ACT_LABOR_HRS,
10719 decode(fpr.PLAN_VERSION_ID,
10720 log.ATTRIBUTE3, -1,
10721 log.EVENT_OBJECT, 1,
10722 -3, -1,
10723 -4, -1)
10724 * fpr.ACT_EQUIP_HRS ACT_EQUIP_HRS,
10725 decode(fpr.PLAN_VERSION_ID,
10726 log.ATTRIBUTE3, -1,
10727 log.EVENT_OBJECT, 1,
10728 -3, -1,
10729 -4, -1)
10730 * fpr.ACT_LABOR_BRDN_COST ACT_LABOR_BRDN_COST,
10731 decode(fpr.PLAN_VERSION_ID,
10732 log.ATTRIBUTE3, -1,
10733 log.EVENT_OBJECT, 1,
10734 -3, -1,
10735 -4, -1)
10736 * fpr.ACT_EQUIP_BRDN_COST ACT_EQUIP_BRDN_COST,
10737 decode(fpr.PLAN_VERSION_ID,
10738 log.ATTRIBUTE3, -1,
10739 log.EVENT_OBJECT, 1,
10740 -3, -1,
10741 -4, -1)
10742 * fpr.ACT_BRDN_COST ACT_BRDN_COST,
10743 decode(fpr.PLAN_VERSION_ID,
10744 log.ATTRIBUTE3, -1,
10745 log.EVENT_OBJECT, 1,
10746 -3, -1,
10747 -4, -1)
10748 * fpr.ACT_RAW_COST ACT_RAW_COST,
10749 decode(fpr.PLAN_VERSION_ID,
10750 log.ATTRIBUTE3, -1,
10751 log.EVENT_OBJECT, 1,
10752 -3, -1,
10753 -4, -1)
10754 * fpr.ACT_REVENUE ACT_REVENUE,
10755 decode(fpr.PLAN_VERSION_ID,
10756 log.ATTRIBUTE3, -1,
10757 log.EVENT_OBJECT, 1,
10758 -3, -1,
10759 -4, -1)
10760 * fpr.ACT_LABOR_RAW_COST ACT_LABOR_RAW_COST,
10761 decode(fpr.PLAN_VERSION_ID,
10762 log.ATTRIBUTE3, -1,
10763 log.EVENT_OBJECT, 1,
10764 -3, -1,
10765 -4, -1)
10766 * fpr.ACT_EQUIP_RAW_COST ACT_EQUIP_RAW_COST,
10767 decode(fpr.PLAN_VERSION_ID,
10768 log.ATTRIBUTE3, -1,
10769 log.EVENT_OBJECT, 1,
10770 -3, -1,
10771 -4, -1)
10772 * fpr.ETC_LABOR_HRS ETC_LABOR_HRS,
10773 decode(fpr.PLAN_VERSION_ID,
10774 log.ATTRIBUTE3, -1,
10775 log.EVENT_OBJECT, 1,
10776 -3, -1,
10777 -4, -1)
10778 * fpr.ETC_EQUIP_HRS ETC_EQUIP_HRS,
10779 decode(fpr.PLAN_VERSION_ID,
10780 log.ATTRIBUTE3, -1,
10781 log.EVENT_OBJECT, 1,
10782 -3, -1,
10783 -4, -1)
10784 * fpr.ETC_LABOR_BRDN_COST ETC_LABOR_BRDN_COST,
10785 decode(fpr.PLAN_VERSION_ID,
10786 log.ATTRIBUTE3, -1,
10787 log.EVENT_OBJECT, 1,
10788 -3, -1,
10789 -4, -1)
10790 * fpr.ETC_EQUIP_BRDN_COST ETC_EQUIP_BRDN_COST,
10791 decode(fpr.PLAN_VERSION_ID,
10792 log.ATTRIBUTE3, -1,
10793 log.EVENT_OBJECT, 1,
10794 -3, -1,
10795 -4, -1)
10796 * fpr.ETC_BRDN_COST ETC_BRDN_COST,
10797 decode(fpr.PLAN_VERSION_ID,
10798 log.ATTRIBUTE3, -1,
10799 log.EVENT_OBJECT, 1,
10800 -3, -1,
10801 -4, -1)
10802 * fpr.ETC_RAW_COST ETC_RAW_COST,
10803 decode(fpr.PLAN_VERSION_ID,
10804 log.ATTRIBUTE3, -1,
10805 log.EVENT_OBJECT, 1,
10806 -3, -1,
10807 -4, -1)
10808 * fpr.ETC_LABOR_RAW_COST ETC_LABOR_RAW_COST,
10809 decode(fpr.PLAN_VERSION_ID,
10810 log.ATTRIBUTE3, -1,
10811 log.EVENT_OBJECT, 1,
10812 -3, -1,
10813 -4, -1)
10814 * fpr.ETC_EQUIP_RAW_COST ETC_EQUIP_RAW_COST,
10815 decode(fpr.PLAN_VERSION_ID,
10816 log.ATTRIBUTE3, -1,
10817 log.EVENT_OBJECT, 1,
10818 -3, -1,
10819 -4, -1)
10820 * fpr.CUSTOM1 CUSTOM1,
10821 decode(fpr.PLAN_VERSION_ID,
10822 log.ATTRIBUTE3, -1,
10823 log.EVENT_OBJECT, 1,
10824 -3, -1,
10825 -4, -1)
10826 * fpr.CUSTOM2 CUSTOM2,
10827 decode(fpr.PLAN_VERSION_ID,
10828 log.ATTRIBUTE3, -1,
10829 log.EVENT_OBJECT, 1,
10830 -3, -1,
10831 -4, -1)
10832 * fpr.CUSTOM3 CUSTOM3,
10833 decode(fpr.PLAN_VERSION_ID,
10834 log.ATTRIBUTE3, -1,
10835 log.EVENT_OBJECT, 1,
10836 -3, -1,
10837 -4, -1)
10838 * fpr.CUSTOM4 CUSTOM4,
10839 decode(fpr.PLAN_VERSION_ID,
10840 log.ATTRIBUTE3, -1,
10841 log.EVENT_OBJECT, 1,
10842 -3, -1,
10843 -4, -1)
10844 * fpr.CUSTOM5 CUSTOM5,
10845 decode(fpr.PLAN_VERSION_ID,
10846 log.ATTRIBUTE3, -1,
10847 log.EVENT_OBJECT, 1,
10848 -3, -1,
10849 -4, -1)
10850 * fpr.CUSTOM6 CUSTOM6,
10851 decode(fpr.PLAN_VERSION_ID,
10852 log.ATTRIBUTE3, -1,
10853 log.EVENT_OBJECT, 1,
10854 -3, -1,
10855 -4, -1)
10856 * fpr.CUSTOM7 CUSTOM7,
10857 decode(fpr.PLAN_VERSION_ID,
10858 log.ATTRIBUTE3, -1,
10859 log.EVENT_OBJECT, 1,
10860 -3, -1,
10861 -4, -1)
10862 * fpr.CUSTOM8 CUSTOM8,
10863 decode(fpr.PLAN_VERSION_ID,
10864 log.ATTRIBUTE3, -1,
10865 log.EVENT_OBJECT, 1,
10866 -3, -1,
10867 -4, -1)
10868 * fpr.CUSTOM9 CUSTOM9,
10869 decode(fpr.PLAN_VERSION_ID,
10870 log.ATTRIBUTE3, -1,
10871 log.EVENT_OBJECT, 1,
10872 -3, -1,
10873 -4, -1)
10874 * fpr.CUSTOM10 CUSTOM10,
10875 decode(fpr.PLAN_VERSION_ID,
10876 log.ATTRIBUTE3, -1,
10877 log.EVENT_OBJECT, 1,
10878 -3, -1,
10879 -4, -1)
10880 * fpr.CUSTOM11 CUSTOM11,
10881 decode(fpr.PLAN_VERSION_ID,
10882 log.ATTRIBUTE3, -1,
10883 log.EVENT_OBJECT, 1,
10884 -3, -1,
10885 -4, -1)
10886 * fpr.CUSTOM12 CUSTOM12,
10887 decode(fpr.PLAN_VERSION_ID,
10888 log.ATTRIBUTE3, -1,
10889 log.EVENT_OBJECT, 1,
10890 -3, -1,
10891 -4, -1)
10892 * fpr.CUSTOM13 CUSTOM13,
10893 decode(fpr.PLAN_VERSION_ID,
10894 log.ATTRIBUTE3, -1,
10895 log.EVENT_OBJECT, 1,
10896 -3, -1,
10897 -4, -1)
10898 * fpr.CUSTOM14 CUSTOM14,
10899 decode(fpr.PLAN_VERSION_ID,
10900 log.ATTRIBUTE3, -1,
10901 log.EVENT_OBJECT, 1,
10902 -3, -1,
10903 -4, -1)
10904 * fpr.CUSTOM15 CUSTOM15
10905 from
10906 PA_PJI_PROJ_EVENTS_LOG log,
10907 PJI_PJP_WBS_HEADER wbs_hdr,
10908 -- Changes done for bug 7354982.
10909 --PJI_XBS_DENORM prg,
10910 PJI_FP_XBS_ACCUM_F fpr,
10911 PJI_XBS_DENORM prg
10912 where
10913 prg.STRUCT_TYPE = 'PRG' and
10914 prg.SUP_LEVEL = l_level and
10915 prg.SUB_LEVEL = l_level and
10916 log.EVENT_ID = g_event_id and
10917 log.EVENT_TYPE in ('PLAN_BASELINE',
10918 'PLAN_ORIGINAL') and
10919 fpr.PROJECT_ID = log.ATTRIBUTE1 and
10920 fpr.PROJECT_ID = prg.SUP_PROJECT_ID and
10921 fpr.PLAN_TYPE_ID = log.ATTRIBUTE2 and
10922 fpr.PLAN_VERSION_ID in (log.ATTRIBUTE3,
10923 log.EVENT_OBJECT) and
10924 (fpr.RBS_AGGR_LEVEL,
10925 fpr.WBS_ROLLUP_FLAG,
10926 fpr.PRG_ROLLUP_FLAG) in (('L', 'N', 'N')) and
10927 fpr.PROJECT_ELEMENT_ID <> prg.SUB_EMT_ID and
10928 wbs_hdr.PROJECT_ID = fpr.PROJECT_ID and
10929 wbs_hdr.PROJECT_ID = log.ATTRIBUTE1 and
10930 wbs_hdr.PLAN_VERSION_ID in (log.ATTRIBUTE3,
10931 log.EVENT_OBJECT) and
10932 wbs_hdr.PLAN_VERSION_ID = decode(sign(fpr.PLAN_VERSION_ID),
10933 -1, log.ATTRIBUTE3,
10934 log.EVENT_OBJECT) and
10935 wbs_hdr.PLAN_TYPE_ID = log.ATTRIBUTE2 and
10936 wbs_hdr.PLAN_TYPE_CODE = fpr.PLAN_TYPE_CODE and
10937 wbs_hdr.WBS_VERSION_ID = prg.SUP_ID and
10938 prg.struct_version_id is NULL -- added for bug 5882260
10939 ) pjp,
10940 (
10941 select /*+ ordered
10942 index(prg PJI_XBS_DENORM_N3)
10943 index(prj PA_PROJECTS_U1) */
10944 prg.SUP_PROJECT_ID,
10945 prj.ORG_ID SUP_PROJECT_ORG_ID,
10946 prj.CARRYING_OUT_ORGANIZATION_ID SUP_PROJECT_ORGANIZATION_ID,
10947 prg.SUP_ID,
10948 prg.SUP_EMT_ID,
10949 prg.SUP_LEVEL,
10950 prg.SUB_ID,
10951 prg.SUB_EMT_ID,
10952 prg.SUB_ROLLUP_ID,
10953 invert.INVERT_VALUE RELATIONSHIP_TYPE,
10954 decode(prg.RELATIONSHIP_TYPE,
10955 'LW', 'Y',
10956 'LF', 'N') WP_FLAG,
10957 'Y' PUSHUP_FLAG
10958 from
10959 PJI_XBS_DENORM prg,
10960 PA_PROJECTS_ALL prj,
10961 (
10962 select 'LF' INVERT_ID, 'LF' INVERT_VALUE from dual union all
10963 select 'LW' INVERT_ID, 'LW' INVERT_VALUE from dual union all
10964 select 'A' INVERT_ID, 'LF' INVERT_VALUE from dual union all
10965 select 'A' INVERT_ID, 'LW' INVERT_VALUE from dual
10966 ) invert
10967 where
10968 l_level > 1 and
10969 prg.STRUCT_TYPE = 'PRG' and
10970 prg.SUB_ROLLUP_ID is not null and
10971 prg.SUB_LEVEL = l_level and
10972 -- map.WORKER_ID = p_worker_id and
10973 prj.PROJECT_ID = prg.SUP_PROJECT_ID and
10974 decode(prg.SUB_LEVEL,
10975 prg.SUP_LEVEL, 'A',
10976 prg.RELATIONSHIP_TYPE) = invert.INVERT_ID
10977 ) prg,
10978 PJI_PJP_WBS_HEADER wbs_hdr,
10979 PA_PROJ_ELEM_VER_STRUCTURE sub_ver,
10980 PA_PROJ_ELEM_VER_STRUCTURE sup_ver,
10981 PA_PROJ_WORKPLAN_ATTR sup_wpa
10982 where
10983 pjp.PROJECT_ID = sub_ver.PROJECT_ID (+) and
10984 pjp.WBS_VERSION_ID = sub_ver.ELEMENT_VERSION_ID (+) and
10985 'STRUCTURE_PUBLISHED' = sub_ver.STATUS_CODE (+) and
10986 pjp.WBS_VERSION_ID = prg.SUB_ID (+) and
10987 pjp.RELATIONSHIP_TYPE = prg.RELATIONSHIP_TYPE (+) and
10988 pjp.PUSHUP_FLAG = prg.PUSHUP_FLAG (+) and
10989 prg.SUP_PROJECT_ID = wbs_hdr.PROJECT_ID (+) and
10990 prg.SUP_ID = wbs_hdr.WBS_VERSION_ID (+) and
10991 prg.WP_FLAG = wbs_hdr.WP_FLAG (+) and
10992 'Y' = wbs_hdr.WP_FLAG (+) and
10993 wbs_hdr.PROJECT_ID = sup_ver.PROJECT_ID (+) and
10994 wbs_hdr.WBS_VERSION_ID = sup_ver.ELEMENT_VERSION_ID (+) and
10995 'STRUCTURE_PUBLISHED' = sup_ver.STATUS_CODE (+) and
10996 'Y' = sup_ver.LATEST_EFF_PUBLISHED_FLAG (+) and
10997 prg.SUP_EMT_ID = sup_wpa.PROJ_ELEMENT_ID (+)
10998 group by
10999 decode(nvl(prg.SUB_EMT_ID, -1), nvl(prg.SUB_ROLLUP_ID, -1),
11000 pjp.INSERT_FLAG, 'Y'),
11001 pjp.RELATIONSHIP_TYPE,
11002 decode(nvl(prg.SUB_EMT_ID, -1), nvl(prg.SUB_ROLLUP_ID, -1),
11003 null, sub_ver.STATUS_CODE),
11004 decode(nvl(prg.SUB_EMT_ID, -1), nvl(prg.SUB_ROLLUP_ID, -1),
11005 null, sup_ver.STATUS_CODE),
11006 decode(nvl(prg.SUB_EMT_ID, -1), nvl(prg.SUB_ROLLUP_ID, -1),
11007 null, sup_wpa.WP_ENABLE_VERSION_FLAG),
11008 decode(nvl(prg.SUB_EMT_ID, -1), nvl(prg.SUB_ROLLUP_ID, -1),
11009 null, decode(pjp.PLAN_VERSION_ID,
11010 -1, prg.SUP_ID,
11011 -3, prg.SUP_ID,
11012 -4, prg.SUP_ID,
11013 null)),
11014 decode(nvl(prg.SUB_EMT_ID, -1), nvl(prg.SUB_ROLLUP_ID, -1),
11015 null, decode(pjp.PLAN_VERSION_ID,
11016 -1, prg.SUP_EMT_ID,
11017 -3, prg.SUP_EMT_ID,
11018 -4, prg.SUP_EMT_ID,
11019 null)),
11020 decode(nvl(prg.SUB_EMT_ID, -1), nvl(prg.SUB_ROLLUP_ID, -1),
11021 null, decode(pjp.PLAN_VERSION_ID,
11022 -1, prg.WP_FLAG,
11023 -3, prg.WP_FLAG,
11024 -4, prg.WP_FLAG,
11025 null)),
11026 decode(nvl(prg.SUB_EMT_ID, -1), nvl(prg.SUB_ROLLUP_ID, -1),
11027 l_level, prg.SUP_LEVEL),
11028 pjp.LINE_TYPE,
11029 decode(nvl(prg.SUB_EMT_ID, -1), nvl(prg.SUB_ROLLUP_ID, -1),
11030 pjp.PROJECT_ID, prg.SUP_PROJECT_ID),
11031 decode(nvl(prg.SUB_EMT_ID, -1), nvl(prg.SUB_ROLLUP_ID, -1),
11032 pjp.PROJECT_ORG_ID,
11033 prg.SUP_PROJECT_ORG_ID),
11034 decode(nvl(prg.SUB_EMT_ID, -1), nvl(prg.SUB_ROLLUP_ID, -1),
11035 pjp.PROJECT_ORGANIZATION_ID,
11036 prg.SUP_PROJECT_ORGANIZATION_ID),
11037 decode(nvl(prg.SUB_EMT_ID, -1), nvl(prg.SUB_ROLLUP_ID, -1),
11038 pjp.PROJECT_ELEMENT_ID,
11039 prg.SUB_ROLLUP_ID),
11040 pjp.TIME_ID,
11041 pjp.PERIOD_TYPE_ID,
11042 pjp.CALENDAR_TYPE,
11043 pjp.RBS_AGGR_LEVEL,
11044 decode(nvl(prg.SUB_EMT_ID, -1), nvl(prg.SUB_ROLLUP_ID, -1),
11045 pjp.WBS_ROLLUP_FLAG, 'N'),
11046 decode(nvl(prg.SUB_EMT_ID, -1), nvl(prg.SUB_ROLLUP_ID, -1),
11047 pjp.PRG_ROLLUP_FLAG, 'Y'),
11048 pjp.CURR_RECORD_TYPE_ID,
11049 pjp.CURRENCY_CODE,
11050 pjp.RBS_ELEMENT_ID,
11051 pjp.RBS_VERSION_ID,
11052 decode(nvl(prg.SUB_EMT_ID, -1), nvl(prg.SUB_ROLLUP_ID, -1),
11053 pjp.PLAN_VERSION_ID,
11054 decode(pjp.PLAN_VERSION_ID,
11055 -1, pjp.PLAN_VERSION_ID,
11056 -2, pjp.PLAN_VERSION_ID,
11057 -3, pjp.PLAN_VERSION_ID,
11058 -4, pjp.PLAN_VERSION_ID,
11059 wbs_hdr.PLAN_VERSION_ID)),
11060 decode(nvl(prg.SUB_EMT_ID, -1), nvl(prg.SUB_ROLLUP_ID, -1),
11061 pjp.PLAN_TYPE_ID,
11062 decode(pjp.PLAN_VERSION_ID,
11063 -1, pjp.PLAN_TYPE_ID,
11064 -2, pjp.PLAN_TYPE_ID,
11065 -3, pjp.PLAN_TYPE_ID,
11066 -4, pjp.PLAN_TYPE_ID,
11067 wbs_hdr.PLAN_TYPE_ID)),
11068 pjp.PLAN_TYPE_CODE
11069 ) pjp1_i,
11070 PA_PROJ_ELEM_VER_STRUCTURE sup_fin_ver,
11071 PA_PROJ_WORKPLAN_ATTR sup_wpa
11072 where
11073 pjp1_i.INSERT_FLAG = 'Y' and
11074 pjp1_i.PROJECT_ID = sup_fin_ver.PROJECT_ID (+) and
11075 pjp1_i.SUP_ID = sup_fin_ver.ELEMENT_VERSION_ID (+) and
11076 'STRUCTURE_WORKING' = sup_fin_ver.STATUS_CODE (+) and
11077 pjp1_i.SUP_EMT_ID = sup_wpa.PROJ_ELEMENT_ID (+) and
11078 'N' = sup_wpa.WP_ENABLE_VERSION_FLAG (+) and
11079 (pjp1_i.SUP_ID is null or
11080 (pjp1_i.SUP_ID is not null and
11081 (sup_fin_ver.PROJECT_ID is not null or
11082 sup_wpa.PROJ_ELEMENT_ID is not null)));
11083
11084 l_level := l_level - 1;
11085
11086 end loop;
11087
11088 end if;
11089
11090 end ROLLUP_FPR_WBS;
11091
11092
11093 -- -----------------------------------------------------
11094 -- procedure ROLLUP_FPR_RBS_SMART_SLICES
11095 --
11096 -- History
11097 -- 19-MAR-2004 SVERMETT Created
11098 --
11099 -- This API will be called for both online and bulk processing.
11100 --
11101 -- -----------------------------------------------------
11102 procedure ROLLUP_FPR_RBS_SMART_SLICES (p_worker_id in number default null) is
11103
11104 l_process varchar2(30);
11105 l_extraction_type varchar2(30);
11106
11107 begin
11108
11109 if (p_worker_id is not null) then
11110
11111 l_process := PJI_PJP_SUM_MAIN.g_process || to_char(p_worker_id);
11112
11113 if (not PJI_PROCESS_UTIL.NEED_TO_RUN_STEP(l_process, 'PJI_PJP_SUM_ROLLUP.ROLLUP_FPR_RBS_SMART_SLICES(p_worker_id);')) then
11114 return;
11115 end if;
11116
11117 l_extraction_type := PJI_PROCESS_UTIL.GET_PROCESS_PARAMETER(l_process, 'EXTRACTION_TYPE');
11118
11119 insert into PJI_FP_AGGR_PJP1 pjp1_i
11120 (
11121 WORKER_ID,
11122 RECORD_TYPE,
11123 PRG_LEVEL,
11124 LINE_TYPE,
11125 PROJECT_ID,
11126 PROJECT_ORG_ID,
11127 PROJECT_ORGANIZATION_ID,
11128 PROJECT_ELEMENT_ID,
11129 TIME_ID,
11130 PERIOD_TYPE_ID,
11131 CALENDAR_TYPE,
11132 RBS_AGGR_LEVEL,
11133 WBS_ROLLUP_FLAG,
11134 PRG_ROLLUP_FLAG,
11135 CURR_RECORD_TYPE_ID,
11136 CURRENCY_CODE,
11137 RBS_ELEMENT_ID,
11138 RBS_VERSION_ID,
11139 PLAN_VERSION_ID,
11140 PLAN_TYPE_ID,
11141 PLAN_TYPE_CODE,
11142 RAW_COST,
11143 BRDN_COST,
11144 REVENUE,
11145 BILL_RAW_COST,
11146 BILL_BRDN_COST,
11147 BILL_LABOR_RAW_COST,
11148 BILL_LABOR_BRDN_COST,
11149 BILL_LABOR_HRS,
11150 EQUIPMENT_RAW_COST,
11151 EQUIPMENT_BRDN_COST,
11152 CAPITALIZABLE_RAW_COST,
11153 CAPITALIZABLE_BRDN_COST,
11154 LABOR_RAW_COST,
11155 LABOR_BRDN_COST,
11156 LABOR_HRS,
11157 LABOR_REVENUE,
11158 EQUIPMENT_HOURS,
11159 BILLABLE_EQUIPMENT_HOURS,
11160 SUP_INV_COMMITTED_COST,
11161 PO_COMMITTED_COST,
11162 PR_COMMITTED_COST,
11163 OTH_COMMITTED_COST,
11164 ACT_LABOR_HRS,
11165 ACT_EQUIP_HRS,
11166 ACT_LABOR_BRDN_COST,
11167 ACT_EQUIP_BRDN_COST,
11168 ACT_BRDN_COST,
11169 ACT_RAW_COST,
11170 ACT_REVENUE,
11171 ACT_LABOR_RAW_COST,
11172 ACT_EQUIP_RAW_COST,
11173 ETC_LABOR_HRS,
11174 ETC_EQUIP_HRS,
11175 ETC_LABOR_BRDN_COST,
11176 ETC_EQUIP_BRDN_COST,
11177 ETC_BRDN_COST,
11178 ETC_RAW_COST,
11179 ETC_LABOR_RAW_COST,
11180 ETC_EQUIP_RAW_COST,
11181 CUSTOM1,
11182 CUSTOM2,
11183 CUSTOM3,
11184 CUSTOM4,
11185 CUSTOM5,
11186 CUSTOM6,
11187 CUSTOM7,
11188 CUSTOM8,
11189 CUSTOM9,
11190 CUSTOM10,
11191 CUSTOM11,
11192 CUSTOM12,
11193 CUSTOM13,
11194 CUSTOM14,
11195 CUSTOM15
11196 )
11197 select
11198 p_worker_id WORKER_ID,
11199 'R' RECORD_TYPE,
11200 pjp1.PRG_LEVEL,
11201 pjp1.LINE_TYPE,
11202 pjp1.PROJECT_ID,
11203 pjp1.PROJECT_ORG_ID,
11204 pjp1.PROJECT_ORGANIZATION_ID,
11205 pjp1.PROJECT_ELEMENT_ID,
11206 pjp1.TIME_ID,
11207 pjp1.PERIOD_TYPE_ID,
11208 pjp1.CALENDAR_TYPE,
11209 pjp1.RBS_AGGR_LEVEL,
11210 pjp1.WBS_ROLLUP_FLAG,
11211 pjp1.PRG_ROLLUP_FLAG,
11212 pjp1.CURR_RECORD_TYPE_ID,
11213 pjp1.CURRENCY_CODE,
11214 pjp1.RBS_ELEMENT_ID,
11215 pjp1.RBS_VERSION_ID,
11216 pjp1.PLAN_VERSION_ID,
11217 pjp1.PLAN_TYPE_ID,
11218 pjp1.PLAN_TYPE_CODE,
11219 sum(pjp1.RAW_COST) RAW_COST,
11220 sum(pjp1.BRDN_COST) BRDN_COST,
11221 sum(pjp1.REVENUE) REVENUE,
11222 sum(pjp1.BILL_RAW_COST) BILL_RAW_COST,
11223 sum(pjp1.BILL_BRDN_COST) BILL_BRDN_COST,
11224 sum(pjp1.BILL_LABOR_RAW_COST) BILL_LABOR_RAW_COST,
11225 sum(pjp1.BILL_LABOR_BRDN_COST) BILL_LABOR_BRDN_COST,
11226 sum(pjp1.BILL_LABOR_HRS) BILL_LABOR_HRS,
11227 sum(pjp1.EQUIPMENT_RAW_COST) EQUIPMENT_RAW_COST,
11228 sum(pjp1.EQUIPMENT_BRDN_COST) EQUIPMENT_BRDN_COST,
11229 sum(pjp1.CAPITALIZABLE_RAW_COST) CAPITALIZABLE_RAW_COST,
11230 sum(pjp1.CAPITALIZABLE_BRDN_COST) CAPITALIZABLE_BRDN_COST,
11231 sum(pjp1.LABOR_RAW_COST) LABOR_RAW_COST,
11232 sum(pjp1.LABOR_BRDN_COST) LABOR_BRDN_COST,
11233 sum(pjp1.LABOR_HRS) LABOR_HRS,
11234 sum(pjp1.LABOR_REVENUE) LABOR_REVENUE,
11235 sum(pjp1.EQUIPMENT_HOURS) EQUIPMENT_HOURS,
11236 sum(pjp1.BILLABLE_EQUIPMENT_HOURS) BILLABLE_EQUIPMENT_HOURS,
11237 sum(pjp1.SUP_INV_COMMITTED_COST) SUP_INV_COMMITTED_COST,
11238 sum(pjp1.PO_COMMITTED_COST) PO_COMMITTED_COST,
11239 sum(pjp1.PR_COMMITTED_COST) PR_COMMITTED_COST,
11240 sum(pjp1.OTH_COMMITTED_COST) OTH_COMMITTED_COST,
11241 sum(pjp1.ACT_LABOR_HRS) ACT_LABOR_HRS,
11242 sum(pjp1.ACT_EQUIP_HRS) ACT_EQUIP_HRS,
11243 sum(pjp1.ACT_LABOR_BRDN_COST) ACT_LABOR_BRDN_COST,
11244 sum(pjp1.ACT_EQUIP_BRDN_COST) ACT_EQUIP_BRDN_COST,
11245 sum(pjp1.ACT_BRDN_COST) ACT_BRDN_COST,
11246 sum(pjp1.ACT_RAW_COST) ACT_RAW_COST,
11247 sum(pjp1.ACT_REVENUE) ACT_REVENUE,
11248 sum(pjp1.ACT_LABOR_RAW_COST) ACT_LABOR_RAW_COST,
11249 sum(pjp1.ACT_EQUIP_RAW_COST) ACT_EQUIP_RAW_COST,
11250 sum(pjp1.ETC_LABOR_HRS) ETC_LABOR_HRS,
11251 sum(pjp1.ETC_EQUIP_HRS) ETC_EQUIP_HRS,
11252 sum(pjp1.ETC_LABOR_BRDN_COST) ETC_LABOR_BRDN_COST,
11253 sum(pjp1.ETC_EQUIP_BRDN_COST) ETC_EQUIP_BRDN_COST,
11254 sum(pjp1.ETC_BRDN_COST) ETC_BRDN_COST,
11255 sum(pjp1.ETC_RAW_COST) ETC_RAW_COST,
11256 sum(pjp1.ETC_LABOR_RAW_COST) ETC_LABOR_RAW_COST,
11257 sum(pjp1.ETC_EQUIP_RAW_COST) ETC_EQUIP_RAW_COST,
11258 sum(pjp1.CUSTOM1) CUSTOM1,
11259 sum(pjp1.CUSTOM2) CUSTOM2,
11260 sum(pjp1.CUSTOM3) CUSTOM3,
11261 sum(pjp1.CUSTOM4) CUSTOM4,
11262 sum(pjp1.CUSTOM5) CUSTOM5,
11263 sum(pjp1.CUSTOM6) CUSTOM6,
11264 sum(pjp1.CUSTOM7) CUSTOM7,
11265 sum(pjp1.CUSTOM8) CUSTOM8,
11266 sum(pjp1.CUSTOM9) CUSTOM9,
11267 sum(pjp1.CUSTOM10) CUSTOM10,
11268 sum(pjp1.CUSTOM11) CUSTOM11,
11269 sum(pjp1.CUSTOM12) CUSTOM12,
11270 sum(pjp1.CUSTOM13) CUSTOM13,
11271 sum(pjp1.CUSTOM14) CUSTOM14,
11272 sum(pjp1.CUSTOM15) CUSTOM15
11273 from
11274 (
11275 select /*+ ordered index(wbs PA_XBS_DENORM_N2) */ -- smart slices
11276 decode(pjp1.RBS_AGGR_LEVEL ||
11277 decode(top_slice.INVERT_ID,
11278 'PRJ', 'Y',
11279 decode(wbs.SUP_EMT_ID,
11280 wbs.SUB_EMT_ID, 'N', 'Y')),
11281 'LN', 'X', null) RECORD_TYPE,
11282 pjp1.PRG_LEVEL,
11283 pjp1.LINE_TYPE,
11284 pjp1.PROJECT_ID,
11285 pjp1.PROJECT_ORG_ID,
11286 pjp1.PROJECT_ORGANIZATION_ID,
11287 decode(top_slice.INVERT_ID,
11288 'PRJ', wbs.STRUCT_EMT_ID,
11289 nvl(wbs.SUP_EMT_ID,
11290 pjp1.PROJECT_ELEMENT_ID)) PROJECT_ELEMENT_ID,
11291 pjp1.TIME_ID,
11292 pjp1.PERIOD_TYPE_ID,
11293 pjp1.CALENDAR_TYPE,
11294 pjp1.RBS_AGGR_LEVEL,
11295 decode(top_slice.INVERT_ID,
11296 'PRJ', 'Y',
11297 decode(wbs.SUP_EMT_ID,
11298 wbs.SUB_EMT_ID, 'N', 'Y')) WBS_ROLLUP_FLAG,
11299 pjp1.PRG_ROLLUP_FLAG,
11300 pjp1.CURR_RECORD_TYPE_ID,
11301 pjp1.CURRENCY_CODE,
11302 pjp1.RBS_ELEMENT_ID,
11303 pjp1.RBS_VERSION_ID,
11304 pjp1.PLAN_VERSION_ID,
11305 pjp1.PLAN_TYPE_ID,
11306 pjp1.PLAN_TYPE_CODE,
11307 sum(pjp1.RAW_COST) RAW_COST,
11308 sum(pjp1.BRDN_COST) BRDN_COST,
11309 sum(pjp1.REVENUE) REVENUE,
11310 sum(pjp1.BILL_RAW_COST) BILL_RAW_COST,
11311 sum(pjp1.BILL_BRDN_COST) BILL_BRDN_COST,
11312 sum(pjp1.BILL_LABOR_RAW_COST) BILL_LABOR_RAW_COST,
11313 sum(pjp1.BILL_LABOR_BRDN_COST) BILL_LABOR_BRDN_COST,
11314 sum(pjp1.BILL_LABOR_HRS) BILL_LABOR_HRS,
11315 sum(pjp1.EQUIPMENT_RAW_COST) EQUIPMENT_RAW_COST,
11316 sum(pjp1.EQUIPMENT_BRDN_COST) EQUIPMENT_BRDN_COST,
11317 sum(pjp1.CAPITALIZABLE_RAW_COST) CAPITALIZABLE_RAW_COST,
11318 sum(pjp1.CAPITALIZABLE_BRDN_COST) CAPITALIZABLE_BRDN_COST,
11319 sum(pjp1.LABOR_RAW_COST) LABOR_RAW_COST,
11320 sum(pjp1.LABOR_BRDN_COST) LABOR_BRDN_COST,
11321 sum(pjp1.LABOR_HRS) LABOR_HRS,
11322 sum(pjp1.LABOR_REVENUE) LABOR_REVENUE,
11323 sum(pjp1.EQUIPMENT_HOURS) EQUIPMENT_HOURS,
11324 sum(pjp1.BILLABLE_EQUIPMENT_HOURS) BILLABLE_EQUIPMENT_HOURS,
11325 sum(pjp1.SUP_INV_COMMITTED_COST) SUP_INV_COMMITTED_COST,
11326 sum(pjp1.PO_COMMITTED_COST) PO_COMMITTED_COST,
11327 sum(pjp1.PR_COMMITTED_COST) PR_COMMITTED_COST,
11328 sum(pjp1.OTH_COMMITTED_COST) OTH_COMMITTED_COST,
11329 sum(pjp1.ACT_LABOR_HRS) ACT_LABOR_HRS,
11330 sum(pjp1.ACT_EQUIP_HRS) ACT_EQUIP_HRS,
11331 sum(pjp1.ACT_LABOR_BRDN_COST) ACT_LABOR_BRDN_COST,
11332 sum(pjp1.ACT_EQUIP_BRDN_COST) ACT_EQUIP_BRDN_COST,
11333 sum(pjp1.ACT_BRDN_COST) ACT_BRDN_COST,
11334 sum(pjp1.ACT_RAW_COST) ACT_RAW_COST,
11335 sum(pjp1.ACT_REVENUE) ACT_REVENUE,
11336 sum(pjp1.ACT_LABOR_RAW_COST) ACT_LABOR_RAW_COST,
11337 sum(pjp1.ACT_EQUIP_RAW_COST) ACT_EQUIP_RAW_COST,
11338 sum(pjp1.ETC_LABOR_HRS) ETC_LABOR_HRS,
11339 sum(pjp1.ETC_EQUIP_HRS) ETC_EQUIP_HRS,
11340 sum(pjp1.ETC_LABOR_BRDN_COST) ETC_LABOR_BRDN_COST,
11341 sum(pjp1.ETC_EQUIP_BRDN_COST) ETC_EQUIP_BRDN_COST,
11342 sum(pjp1.ETC_BRDN_COST) ETC_BRDN_COST,
11343 sum(pjp1.ETC_RAW_COST) ETC_RAW_COST,
11344 sum(pjp1.ETC_LABOR_RAW_COST) ETC_LABOR_RAW_COST,
11345 sum(pjp1.ETC_EQUIP_RAW_COST) ETC_EQUIP_RAW_COST,
11346 sum(pjp1.CUSTOM1) CUSTOM1,
11347 sum(pjp1.CUSTOM2) CUSTOM2,
11348 sum(pjp1.CUSTOM3) CUSTOM3,
11349 sum(pjp1.CUSTOM4) CUSTOM4,
11350 sum(pjp1.CUSTOM5) CUSTOM5,
11351 sum(pjp1.CUSTOM6) CUSTOM6,
11352 sum(pjp1.CUSTOM7) CUSTOM7,
11353 sum(pjp1.CUSTOM8) CUSTOM8,
11354 sum(pjp1.CUSTOM9) CUSTOM9,
11355 sum(pjp1.CUSTOM10) CUSTOM10,
11356 sum(pjp1.CUSTOM11) CUSTOM11,
11357 sum(pjp1.CUSTOM12) CUSTOM12,
11358 sum(pjp1.CUSTOM13) CUSTOM13,
11359 sum(pjp1.CUSTOM14) CUSTOM14,
11360 sum(pjp1.CUSTOM15) CUSTOM15
11361 from
11362 (
11363 select /*+ ordered */
11364 wbs_hdr.WBS_VERSION_ID,
11365 pjp1.PRG_LEVEL,
11366 pjp1.LINE_TYPE,
11367 pjp1.PROJECT_ID,
11368 pjp1.PROJECT_ORG_ID,
11369 pjp1.PROJECT_ORGANIZATION_ID,
11370 pjp1.PROJECT_ELEMENT_ID,
11371 pjp1.TIME_ID,
11372 pjp1.PERIOD_TYPE_ID,
11373 pjp1.CALENDAR_TYPE,
11374 decode(rbs.SUP_LEVEL,
11375 rbs.SUB_LEVEL, 'L', 'R') RBS_AGGR_LEVEL,
11376 pjp1.WBS_ROLLUP_FLAG,
11377 pjp1.PRG_ROLLUP_FLAG,
11378 pjp1.CURR_RECORD_TYPE_ID,
11379 pjp1.CURRENCY_CODE,
11380 rbs.SUP_ID RBS_ELEMENT_ID,
11381 pjp1.RBS_VERSION_ID,
11382 pjp1.PLAN_VERSION_ID,
11383 pjp1.PLAN_TYPE_ID,
11384 pjp1.PLAN_TYPE_CODE,
11385 sum(pjp1.RAW_COST) RAW_COST,
11386 sum(pjp1.BRDN_COST) BRDN_COST,
11387 sum(pjp1.REVENUE) REVENUE,
11388 sum(pjp1.BILL_RAW_COST) BILL_RAW_COST,
11389 sum(pjp1.BILL_BRDN_COST) BILL_BRDN_COST,
11390 sum(pjp1.BILL_LABOR_RAW_COST) BILL_LABOR_RAW_COST,
11391 sum(pjp1.BILL_LABOR_BRDN_COST) BILL_LABOR_BRDN_COST,
11392 sum(pjp1.BILL_LABOR_HRS) BILL_LABOR_HRS,
11393 sum(pjp1.EQUIPMENT_RAW_COST) EQUIPMENT_RAW_COST,
11394 sum(pjp1.EQUIPMENT_BRDN_COST) EQUIPMENT_BRDN_COST,
11395 sum(pjp1.CAPITALIZABLE_RAW_COST) CAPITALIZABLE_RAW_COST,
11396 sum(pjp1.CAPITALIZABLE_BRDN_COST) CAPITALIZABLE_BRDN_COST,
11397 sum(pjp1.LABOR_RAW_COST) LABOR_RAW_COST,
11398 sum(pjp1.LABOR_BRDN_COST) LABOR_BRDN_COST,
11399 sum(pjp1.LABOR_HRS) LABOR_HRS,
11400 sum(pjp1.LABOR_REVENUE) LABOR_REVENUE,
11401 sum(pjp1.EQUIPMENT_HOURS) EQUIPMENT_HOURS,
11402 sum(pjp1.BILLABLE_EQUIPMENT_HOURS) BILLABLE_EQUIPMENT_HOURS,
11403 sum(pjp1.SUP_INV_COMMITTED_COST) SUP_INV_COMMITTED_COST,
11404 sum(pjp1.PO_COMMITTED_COST) PO_COMMITTED_COST,
11405 sum(pjp1.PR_COMMITTED_COST) PR_COMMITTED_COST,
11406 sum(pjp1.OTH_COMMITTED_COST) OTH_COMMITTED_COST,
11407 sum(pjp1.ACT_LABOR_HRS) ACT_LABOR_HRS,
11408 sum(pjp1.ACT_EQUIP_HRS) ACT_EQUIP_HRS,
11409 sum(pjp1.ACT_LABOR_BRDN_COST) ACT_LABOR_BRDN_COST,
11410 sum(pjp1.ACT_EQUIP_BRDN_COST) ACT_EQUIP_BRDN_COST,
11411 sum(pjp1.ACT_BRDN_COST) ACT_BRDN_COST,
11412 sum(pjp1.ACT_RAW_COST) ACT_RAW_COST,
11413 sum(pjp1.ACT_REVENUE) ACT_REVENUE,
11414 sum(pjp1.ACT_LABOR_RAW_COST) ACT_LABOR_RAW_COST,
11415 sum(pjp1.ACT_EQUIP_RAW_COST) ACT_EQUIP_RAW_COST,
11416 sum(pjp1.ETC_LABOR_HRS) ETC_LABOR_HRS,
11417 sum(pjp1.ETC_EQUIP_HRS) ETC_EQUIP_HRS,
11418 sum(pjp1.ETC_LABOR_BRDN_COST) ETC_LABOR_BRDN_COST,
11419 sum(pjp1.ETC_EQUIP_BRDN_COST) ETC_EQUIP_BRDN_COST,
11420 sum(pjp1.ETC_BRDN_COST) ETC_BRDN_COST,
11421 sum(pjp1.ETC_RAW_COST) ETC_RAW_COST,
11422 sum(pjp1.ETC_LABOR_RAW_COST) ETC_LABOR_RAW_COST,
11423 sum(pjp1.ETC_EQUIP_RAW_COST) ETC_EQUIP_RAW_COST,
11424 sum(pjp1.CUSTOM1) CUSTOM1,
11425 sum(pjp1.CUSTOM2) CUSTOM2,
11426 sum(pjp1.CUSTOM3) CUSTOM3,
11427 sum(pjp1.CUSTOM4) CUSTOM4,
11428 sum(pjp1.CUSTOM5) CUSTOM5,
11429 sum(pjp1.CUSTOM6) CUSTOM6,
11430 sum(pjp1.CUSTOM7) CUSTOM7,
11431 sum(pjp1.CUSTOM8) CUSTOM8,
11432 sum(pjp1.CUSTOM9) CUSTOM9,
11433 sum(pjp1.CUSTOM10) CUSTOM10,
11434 sum(pjp1.CUSTOM11) CUSTOM11,
11435 sum(pjp1.CUSTOM12) CUSTOM12,
11436 sum(pjp1.CUSTOM13) CUSTOM13,
11437 sum(pjp1.CUSTOM14) CUSTOM14,
11438 sum(pjp1.CUSTOM15) CUSTOM15
11439 from
11440 PJI_FP_AGGR_PJP1 pjp1,
11441 PJI_ROLLUP_LEVEL_STATUS ss,
11442 PJI_PJP_RBS_HEADER rbs_hdr,
11443 PJI_PJP_WBS_HEADER wbs_hdr,
11444 PA_RBS_DENORM rbs
11445 where
11446 l_extraction_type <> 'RBS' and
11447 rbs.STRUCT_VERSION_ID = ss.RBS_VERSION_ID and
11448 pjp1.WORKER_ID = p_worker_id and
11449 pjp1.RBS_AGGR_LEVEL = 'L' and
11450 pjp1.WBS_ROLLUP_FLAG = 'N' and
11451 pjp1.PRG_ROLLUP_FLAG in ('Y', 'N') and
11452 pjp1.PROJECT_ID = ss.PROJECT_ID and
11453 pjp1.RBS_VERSION_ID = ss.RBS_VERSION_ID and
11454 pjp1.RBS_ELEMENT_ID = rbs.SUB_ID and
11455 pjp1.PLAN_VERSION_ID = ss.PLAN_VERSION_ID and
11456 pjp1.PLAN_TYPE_CODE = ss.PLAN_TYPE_CODE and
11457 pjp1.PROJECT_ID = rbs_hdr.PROJECT_ID and
11458 pjp1.PLAN_VERSION_ID = rbs_hdr.PLAN_VERSION_ID and
11459 pjp1.PLAN_TYPE_CODE = rbs_hdr.PLAN_TYPE_CODE and
11460 pjp1.RBS_VERSION_ID = rbs_hdr.RBS_VERSION_ID and
11461 pjp1.PROJECT_ID = wbs_hdr.PROJECT_ID and
11462 pjp1.PLAN_VERSION_ID = wbs_hdr.PLAN_VERSION_ID and
11463 pjp1.PLAN_TYPE_CODE = wbs_hdr.PLAN_TYPE_CODE and
11464 decode(pjp1.PLAN_VERSION_ID,
11465 -3, pjp1.PLAN_TYPE_ID,
11466 -4, pjp1.PLAN_TYPE_ID,
11467 -1) = decode(pjp1.PLAN_VERSION_ID,
11468 -3, wbs_hdr.PLAN_TYPE_ID,
11469 -4, wbs_hdr.PLAN_TYPE_ID,
11470 -1)
11471 group by
11472 wbs_hdr.WBS_VERSION_ID,
11473 pjp1.PRG_LEVEL,
11474 pjp1.LINE_TYPE,
11475 pjp1.PROJECT_ID,
11476 pjp1.PROJECT_ORG_ID,
11477 pjp1.PROJECT_ORGANIZATION_ID,
11478 pjp1.PROJECT_ELEMENT_ID,
11479 pjp1.TIME_ID,
11480 pjp1.PERIOD_TYPE_ID,
11481 pjp1.CALENDAR_TYPE,
11482 decode(rbs.SUP_LEVEL,
11483 rbs.SUB_LEVEL, 'L', 'R'),
11484 pjp1.WBS_ROLLUP_FLAG,
11485 pjp1.PRG_ROLLUP_FLAG,
11486 pjp1.CURR_RECORD_TYPE_ID,
11487 pjp1.CURRENCY_CODE,
11488 rbs.SUP_ID,
11489 pjp1.RBS_VERSION_ID,
11490 pjp1.PLAN_VERSION_ID,
11491 pjp1.PLAN_TYPE_ID,
11492 pjp1.PLAN_TYPE_CODE
11493 ) pjp1,
11494 PA_XBS_DENORM wbs,
11495 (
11496 select 1 WBS_SUP_LEVEL,
11497 'PRJ' INVERT_ID
11498 from DUAL
11499 union all
11500 select 1 WBS_SUP_LEVEL,
11501 'WBS' INVERT_ID
11502 from DUAL
11503 ) top_slice
11504 where
11505 l_extraction_type <> 'RBS' and
11506 'WBS' = wbs.STRUCT_TYPE (+) and
11507 pjp1.PROJECT_ID = wbs.SUP_PROJECT_ID (+) and
11508 pjp1.WBS_VERSION_ID = wbs.STRUCT_VERSION_ID (+) and
11509 pjp1.PROJECT_ELEMENT_ID = wbs.SUB_EMT_ID (+) and
11510 wbs.SUP_LEVEL = top_slice.WBS_SUP_LEVEL (+)
11511 group by
11512 decode(pjp1.RBS_AGGR_LEVEL ||
11513 decode(top_slice.INVERT_ID,
11514 'PRJ', 'Y',
11515 decode(wbs.SUP_EMT_ID,
11516 wbs.SUB_EMT_ID, 'N', 'Y')),
11517 'LN', 'X', null),
11518 pjp1.PRG_LEVEL,
11519 pjp1.LINE_TYPE,
11520 pjp1.PROJECT_ID,
11521 pjp1.PROJECT_ORG_ID,
11522 pjp1.PROJECT_ORGANIZATION_ID,
11523 decode(top_slice.INVERT_ID,
11524 'PRJ', wbs.STRUCT_EMT_ID,
11525 nvl(wbs.SUP_EMT_ID,
11526 pjp1.PROJECT_ELEMENT_ID)),
11527 pjp1.TIME_ID,
11528 pjp1.PERIOD_TYPE_ID,
11529 pjp1.CALENDAR_TYPE,
11530 pjp1.RBS_AGGR_LEVEL,
11531 decode(top_slice.INVERT_ID,
11532 'PRJ', 'Y',
11533 decode(wbs.SUP_EMT_ID,
11534 wbs.SUB_EMT_ID, 'N', 'Y')),
11535 pjp1.PRG_ROLLUP_FLAG,
11536 pjp1.CURR_RECORD_TYPE_ID,
11537 pjp1.CURRENCY_CODE,
11538 pjp1.RBS_ELEMENT_ID,
11539 pjp1.RBS_VERSION_ID,
11540 pjp1.PLAN_VERSION_ID,
11541 pjp1.PLAN_TYPE_ID,
11542 pjp1.PLAN_TYPE_CODE
11543 ) pjp1
11544 where
11545 nvl(pjp1.RECORD_TYPE, 'Y') = 'Y'
11546 group by
11547 pjp1.PRG_LEVEL,
11548 pjp1.LINE_TYPE,
11549 pjp1.PROJECT_ID,
11550 pjp1.PROJECT_ORG_ID,
11551 pjp1.PROJECT_ORGANIZATION_ID,
11552 pjp1.PROJECT_ELEMENT_ID,
11553 pjp1.TIME_ID,
11554 pjp1.PERIOD_TYPE_ID,
11555 pjp1.CALENDAR_TYPE,
11556 pjp1.RBS_AGGR_LEVEL,
11557 pjp1.WBS_ROLLUP_FLAG,
11558 pjp1.PRG_ROLLUP_FLAG,
11559 pjp1.CURR_RECORD_TYPE_ID,
11560 pjp1.CURRENCY_CODE,
11561 pjp1.RBS_ELEMENT_ID,
11562 pjp1.RBS_VERSION_ID,
11563 pjp1.PLAN_VERSION_ID,
11564 pjp1.PLAN_TYPE_ID,
11565 pjp1.PLAN_TYPE_CODE;
11566
11567 PJI_PROCESS_UTIL.REGISTER_STEP_COMPLETION(l_process, 'PJI_PJP_SUM_ROLLUP.ROLLUP_FPR_RBS_SMART_SLICES(p_worker_id);');
11568
11569 commit;
11570
11571 else -- online mode
11572
11573 insert into PJI_FP_AGGR_PJP1_T pjp1_i
11574 (
11575 WORKER_ID,
11576 RECORD_TYPE,
11577 PRG_LEVEL,
11578 LINE_TYPE,
11579 PROJECT_ID,
11580 PROJECT_ORG_ID,
11581 PROJECT_ORGANIZATION_ID,
11582 PROJECT_ELEMENT_ID,
11583 TIME_ID,
11584 PERIOD_TYPE_ID,
11585 CALENDAR_TYPE,
11586 RBS_AGGR_LEVEL,
11587 WBS_ROLLUP_FLAG,
11588 PRG_ROLLUP_FLAG,
11589 CURR_RECORD_TYPE_ID,
11590 CURRENCY_CODE,
11591 RBS_ELEMENT_ID,
11592 RBS_VERSION_ID,
11593 PLAN_VERSION_ID,
11594 PLAN_TYPE_ID,
11595 PLAN_TYPE_CODE,
11596 RAW_COST,
11597 BRDN_COST,
11598 REVENUE,
11599 BILL_RAW_COST,
11600 BILL_BRDN_COST,
11601 BILL_LABOR_RAW_COST,
11602 BILL_LABOR_BRDN_COST,
11603 BILL_LABOR_HRS,
11604 EQUIPMENT_RAW_COST,
11605 EQUIPMENT_BRDN_COST,
11606 CAPITALIZABLE_RAW_COST,
11607 CAPITALIZABLE_BRDN_COST,
11608 LABOR_RAW_COST,
11609 LABOR_BRDN_COST,
11610 LABOR_HRS,
11611 LABOR_REVENUE,
11612 EQUIPMENT_HOURS,
11613 BILLABLE_EQUIPMENT_HOURS,
11614 SUP_INV_COMMITTED_COST,
11615 PO_COMMITTED_COST,
11616 PR_COMMITTED_COST,
11617 OTH_COMMITTED_COST,
11618 ACT_LABOR_HRS,
11619 ACT_EQUIP_HRS,
11620 ACT_LABOR_BRDN_COST,
11621 ACT_EQUIP_BRDN_COST,
11622 ACT_BRDN_COST,
11623 ACT_RAW_COST,
11624 ACT_REVENUE,
11625 ACT_LABOR_RAW_COST,
11626 ACT_EQUIP_RAW_COST,
11627 ETC_LABOR_HRS,
11628 ETC_EQUIP_HRS,
11629 ETC_LABOR_BRDN_COST,
11630 ETC_EQUIP_BRDN_COST,
11631 ETC_BRDN_COST,
11632 ETC_RAW_COST,
11633 ETC_LABOR_RAW_COST,
11634 ETC_EQUIP_RAW_COST,
11635 CUSTOM1,
11636 CUSTOM2,
11637 CUSTOM3,
11638 CUSTOM4,
11639 CUSTOM5,
11640 CUSTOM6,
11641 CUSTOM7,
11642 CUSTOM8,
11643 CUSTOM9,
11644 CUSTOM10,
11645 CUSTOM11,
11646 CUSTOM12,
11647 CUSTOM13,
11648 CUSTOM14,
11649 CUSTOM15
11650 )
11651 select
11652 1 WORKER_ID,
11653 -- p_worker_id WORKER_ID,
11654 'R' RECORD_TYPE,
11655 pjp1.PRG_LEVEL,
11656 pjp1.LINE_TYPE,
11657 pjp1.PROJECT_ID,
11658 pjp1.PROJECT_ORG_ID,
11659 pjp1.PROJECT_ORGANIZATION_ID,
11660 pjp1.PROJECT_ELEMENT_ID,
11661 pjp1.TIME_ID,
11662 pjp1.PERIOD_TYPE_ID,
11663 pjp1.CALENDAR_TYPE,
11664 pjp1.RBS_AGGR_LEVEL,
11665 pjp1.WBS_ROLLUP_FLAG,
11666 pjp1.PRG_ROLLUP_FLAG,
11667 pjp1.CURR_RECORD_TYPE_ID,
11668 pjp1.CURRENCY_CODE,
11669 pjp1.RBS_ELEMENT_ID,
11670 pjp1.RBS_VERSION_ID,
11671 pjp1.PLAN_VERSION_ID,
11672 pjp1.PLAN_TYPE_ID,
11673 pjp1.PLAN_TYPE_CODE,
11674 sum(pjp1.RAW_COST) RAW_COST,
11675 sum(pjp1.BRDN_COST) BRDN_COST,
11676 sum(pjp1.REVENUE) REVENUE,
11677 sum(pjp1.BILL_RAW_COST) BILL_RAW_COST,
11678 sum(pjp1.BILL_BRDN_COST) BILL_BRDN_COST,
11679 sum(pjp1.BILL_LABOR_RAW_COST) BILL_LABOR_RAW_COST,
11680 sum(pjp1.BILL_LABOR_BRDN_COST) BILL_LABOR_BRDN_COST,
11681 sum(pjp1.BILL_LABOR_HRS) BILL_LABOR_HRS,
11682 sum(pjp1.EQUIPMENT_RAW_COST) EQUIPMENT_RAW_COST,
11683 sum(pjp1.EQUIPMENT_BRDN_COST) EQUIPMENT_BRDN_COST,
11684 sum(pjp1.CAPITALIZABLE_RAW_COST) CAPITALIZABLE_RAW_COST,
11685 sum(pjp1.CAPITALIZABLE_BRDN_COST) CAPITALIZABLE_BRDN_COST,
11686 sum(pjp1.LABOR_RAW_COST) LABOR_RAW_COST,
11687 sum(pjp1.LABOR_BRDN_COST) LABOR_BRDN_COST,
11688 sum(pjp1.LABOR_HRS) LABOR_HRS,
11689 sum(pjp1.LABOR_REVENUE) LABOR_REVENUE,
11690 sum(pjp1.EQUIPMENT_HOURS) EQUIPMENT_HOURS,
11691 sum(pjp1.BILLABLE_EQUIPMENT_HOURS) BILLABLE_EQUIPMENT_HOURS,
11692 sum(pjp1.SUP_INV_COMMITTED_COST) SUP_INV_COMMITTED_COST,
11693 sum(pjp1.PO_COMMITTED_COST) PO_COMMITTED_COST,
11694 sum(pjp1.PR_COMMITTED_COST) PR_COMMITTED_COST,
11695 sum(pjp1.OTH_COMMITTED_COST) OTH_COMMITTED_COST,
11696 sum(pjp1.ACT_LABOR_HRS) ACT_LABOR_HRS,
11697 sum(pjp1.ACT_EQUIP_HRS) ACT_EQUIP_HRS,
11698 sum(pjp1.ACT_LABOR_BRDN_COST) ACT_LABOR_BRDN_COST,
11699 sum(pjp1.ACT_EQUIP_BRDN_COST) ACT_EQUIP_BRDN_COST,
11700 sum(pjp1.ACT_BRDN_COST) ACT_BRDN_COST,
11701 sum(pjp1.ACT_RAW_COST) ACT_RAW_COST,
11702 sum(pjp1.ACT_REVENUE) ACT_REVENUE,
11703 sum(pjp1.ACT_LABOR_RAW_COST) ACT_LABOR_RAW_COST,
11704 sum(pjp1.ACT_EQUIP_RAW_COST) ACT_EQUIP_RAW_COST,
11705 sum(pjp1.ETC_LABOR_HRS) ETC_LABOR_HRS,
11706 sum(pjp1.ETC_EQUIP_HRS) ETC_EQUIP_HRS,
11707 sum(pjp1.ETC_LABOR_BRDN_COST) ETC_LABOR_BRDN_COST,
11708 sum(pjp1.ETC_EQUIP_BRDN_COST) ETC_EQUIP_BRDN_COST,
11709 sum(pjp1.ETC_BRDN_COST) ETC_BRDN_COST,
11710 sum(pjp1.ETC_RAW_COST) ETC_RAW_COST,
11711 sum(pjp1.ETC_LABOR_RAW_COST) ETC_LABOR_RAW_COST,
11712 sum(pjp1.ETC_EQUIP_RAW_COST) ETC_EQUIP_RAW_COST,
11713 sum(pjp1.CUSTOM1) CUSTOM1,
11714 sum(pjp1.CUSTOM2) CUSTOM2,
11715 sum(pjp1.CUSTOM3) CUSTOM3,
11716 sum(pjp1.CUSTOM4) CUSTOM4,
11717 sum(pjp1.CUSTOM5) CUSTOM5,
11718 sum(pjp1.CUSTOM6) CUSTOM6,
11719 sum(pjp1.CUSTOM7) CUSTOM7,
11720 sum(pjp1.CUSTOM8) CUSTOM8,
11721 sum(pjp1.CUSTOM9) CUSTOM9,
11722 sum(pjp1.CUSTOM10) CUSTOM10,
11723 sum(pjp1.CUSTOM11) CUSTOM11,
11724 sum(pjp1.CUSTOM12) CUSTOM12,
11725 sum(pjp1.CUSTOM13) CUSTOM13,
11726 sum(pjp1.CUSTOM14) CUSTOM14,
11727 sum(pjp1.CUSTOM15) CUSTOM15
11728 from
11729 (
11730 select /*+ ordered index(wbs PA_XBS_DENORM_N2) */ -- smart slices
11731 decode(pjp1.RBS_AGGR_LEVEL ||
11732 decode(top_slice.INVERT_ID,
11733 'PRJ', 'Y',
11734 decode(wbs.SUP_EMT_ID,
11735 wbs.SUB_EMT_ID, 'N', 'Y')),
11736 'LN', 'X', null) RECORD_TYPE,
11737 pjp1.PRG_LEVEL,
11738 pjp1.LINE_TYPE,
11739 pjp1.PROJECT_ID,
11740 pjp1.PROJECT_ORG_ID,
11741 pjp1.PROJECT_ORGANIZATION_ID,
11742 decode(top_slice.INVERT_ID,
11743 'PRJ', wbs.STRUCT_EMT_ID,
11744 nvl(wbs.SUP_EMT_ID,
11745 pjp1.PROJECT_ELEMENT_ID)) PROJECT_ELEMENT_ID,
11746 pjp1.TIME_ID,
11747 pjp1.PERIOD_TYPE_ID,
11748 pjp1.CALENDAR_TYPE,
11749 pjp1.RBS_AGGR_LEVEL,
11750 decode(top_slice.INVERT_ID,
11751 'PRJ', 'Y',
11752 decode(wbs.SUP_EMT_ID,
11753 wbs.SUB_EMT_ID, 'N', 'Y')) WBS_ROLLUP_FLAG,
11754 pjp1.PRG_ROLLUP_FLAG,
11755 pjp1.CURR_RECORD_TYPE_ID,
11756 pjp1.CURRENCY_CODE,
11757 pjp1.RBS_ELEMENT_ID,
11758 pjp1.RBS_VERSION_ID,
11759 pjp1.PLAN_VERSION_ID,
11760 pjp1.PLAN_TYPE_ID,
11761 pjp1.PLAN_TYPE_CODE,
11762 sum(pjp1.RAW_COST) RAW_COST,
11763 sum(pjp1.BRDN_COST) BRDN_COST,
11764 sum(pjp1.REVENUE) REVENUE,
11765 sum(pjp1.BILL_RAW_COST) BILL_RAW_COST,
11766 sum(pjp1.BILL_BRDN_COST) BILL_BRDN_COST,
11767 sum(pjp1.BILL_LABOR_RAW_COST) BILL_LABOR_RAW_COST,
11768 sum(pjp1.BILL_LABOR_BRDN_COST) BILL_LABOR_BRDN_COST,
11769 sum(pjp1.BILL_LABOR_HRS) BILL_LABOR_HRS,
11770 sum(pjp1.EQUIPMENT_RAW_COST) EQUIPMENT_RAW_COST,
11771 sum(pjp1.EQUIPMENT_BRDN_COST) EQUIPMENT_BRDN_COST,
11772 sum(pjp1.CAPITALIZABLE_RAW_COST) CAPITALIZABLE_RAW_COST,
11773 sum(pjp1.CAPITALIZABLE_BRDN_COST) CAPITALIZABLE_BRDN_COST,
11774 sum(pjp1.LABOR_RAW_COST) LABOR_RAW_COST,
11775 sum(pjp1.LABOR_BRDN_COST) LABOR_BRDN_COST,
11776 sum(pjp1.LABOR_HRS) LABOR_HRS,
11777 sum(pjp1.LABOR_REVENUE) LABOR_REVENUE,
11778 sum(pjp1.EQUIPMENT_HOURS) EQUIPMENT_HOURS,
11779 sum(pjp1.BILLABLE_EQUIPMENT_HOURS) BILLABLE_EQUIPMENT_HOURS,
11780 sum(pjp1.SUP_INV_COMMITTED_COST) SUP_INV_COMMITTED_COST,
11781 sum(pjp1.PO_COMMITTED_COST) PO_COMMITTED_COST,
11782 sum(pjp1.PR_COMMITTED_COST) PR_COMMITTED_COST,
11783 sum(pjp1.OTH_COMMITTED_COST) OTH_COMMITTED_COST,
11784 sum(pjp1.ACT_LABOR_HRS) ACT_LABOR_HRS,
11785 sum(pjp1.ACT_EQUIP_HRS) ACT_EQUIP_HRS,
11786 sum(pjp1.ACT_LABOR_BRDN_COST) ACT_LABOR_BRDN_COST,
11787 sum(pjp1.ACT_EQUIP_BRDN_COST) ACT_EQUIP_BRDN_COST,
11788 sum(pjp1.ACT_BRDN_COST) ACT_BRDN_COST,
11789 sum(pjp1.ACT_RAW_COST) ACT_RAW_COST,
11790 sum(pjp1.ACT_REVENUE) ACT_REVENUE,
11791 sum(pjp1.ACT_LABOR_RAW_COST) ACT_LABOR_RAW_COST,
11792 sum(pjp1.ACT_EQUIP_RAW_COST) ACT_EQUIP_RAW_COST,
11793 sum(pjp1.ETC_LABOR_HRS) ETC_LABOR_HRS,
11794 sum(pjp1.ETC_EQUIP_HRS) ETC_EQUIP_HRS,
11795 sum(pjp1.ETC_LABOR_BRDN_COST) ETC_LABOR_BRDN_COST,
11796 sum(pjp1.ETC_EQUIP_BRDN_COST) ETC_EQUIP_BRDN_COST,
11797 sum(pjp1.ETC_BRDN_COST) ETC_BRDN_COST,
11798 sum(pjp1.ETC_RAW_COST) ETC_RAW_COST,
11799 sum(pjp1.ETC_LABOR_RAW_COST) ETC_LABOR_RAW_COST,
11800 sum(pjp1.ETC_EQUIP_RAW_COST) ETC_EQUIP_RAW_COST,
11801 sum(pjp1.CUSTOM1) CUSTOM1,
11802 sum(pjp1.CUSTOM2) CUSTOM2,
11803 sum(pjp1.CUSTOM3) CUSTOM3,
11804 sum(pjp1.CUSTOM4) CUSTOM4,
11805 sum(pjp1.CUSTOM5) CUSTOM5,
11806 sum(pjp1.CUSTOM6) CUSTOM6,
11807 sum(pjp1.CUSTOM7) CUSTOM7,
11808 sum(pjp1.CUSTOM8) CUSTOM8,
11809 sum(pjp1.CUSTOM9) CUSTOM9,
11810 sum(pjp1.CUSTOM10) CUSTOM10,
11811 sum(pjp1.CUSTOM11) CUSTOM11,
11812 sum(pjp1.CUSTOM12) CUSTOM12,
11813 sum(pjp1.CUSTOM13) CUSTOM13,
11814 sum(pjp1.CUSTOM14) CUSTOM14,
11815 sum(pjp1.CUSTOM15) CUSTOM15
11816 from
11817 (
11818 select /*+ ordered */
11819 wbs_hdr.WBS_VERSION_ID,
11820 pjp1.PRG_LEVEL,
11821 pjp1.LINE_TYPE,
11822 pjp1.PROJECT_ID,
11823 pjp1.PROJECT_ORG_ID,
11824 pjp1.PROJECT_ORGANIZATION_ID,
11825 pjp1.PROJECT_ELEMENT_ID,
11826 pjp1.TIME_ID,
11827 pjp1.PERIOD_TYPE_ID,
11828 pjp1.CALENDAR_TYPE,
11829 decode(rbs.SUP_LEVEL,
11830 rbs.SUB_LEVEL, 'L', 'R') RBS_AGGR_LEVEL,
11831 pjp1.WBS_ROLLUP_FLAG,
11832 pjp1.PRG_ROLLUP_FLAG,
11833 pjp1.CURR_RECORD_TYPE_ID,
11834 pjp1.CURRENCY_CODE,
11835 rbs.SUP_ID RBS_ELEMENT_ID,
11836 pjp1.RBS_VERSION_ID,
11837 pjp1.PLAN_VERSION_ID,
11838 pjp1.PLAN_TYPE_ID,
11839 pjp1.PLAN_TYPE_CODE,
11840 sum(pjp1.RAW_COST) RAW_COST,
11841 sum(pjp1.BRDN_COST) BRDN_COST,
11842 sum(pjp1.REVENUE) REVENUE,
11843 sum(pjp1.BILL_RAW_COST) BILL_RAW_COST,
11844 sum(pjp1.BILL_BRDN_COST) BILL_BRDN_COST,
11845 sum(pjp1.BILL_LABOR_RAW_COST) BILL_LABOR_RAW_COST,
11846 sum(pjp1.BILL_LABOR_BRDN_COST) BILL_LABOR_BRDN_COST,
11847 sum(pjp1.BILL_LABOR_HRS) BILL_LABOR_HRS,
11848 sum(pjp1.EQUIPMENT_RAW_COST) EQUIPMENT_RAW_COST,
11849 sum(pjp1.EQUIPMENT_BRDN_COST) EQUIPMENT_BRDN_COST,
11850 sum(pjp1.CAPITALIZABLE_RAW_COST) CAPITALIZABLE_RAW_COST,
11851 sum(pjp1.CAPITALIZABLE_BRDN_COST) CAPITALIZABLE_BRDN_COST,
11852 sum(pjp1.LABOR_RAW_COST) LABOR_RAW_COST,
11853 sum(pjp1.LABOR_BRDN_COST) LABOR_BRDN_COST,
11854 sum(pjp1.LABOR_HRS) LABOR_HRS,
11855 sum(pjp1.LABOR_REVENUE) LABOR_REVENUE,
11856 sum(pjp1.EQUIPMENT_HOURS) EQUIPMENT_HOURS,
11857 sum(pjp1.BILLABLE_EQUIPMENT_HOURS) BILLABLE_EQUIPMENT_HOURS,
11858 sum(pjp1.SUP_INV_COMMITTED_COST) SUP_INV_COMMITTED_COST,
11859 sum(pjp1.PO_COMMITTED_COST) PO_COMMITTED_COST,
11860 sum(pjp1.PR_COMMITTED_COST) PR_COMMITTED_COST,
11861 sum(pjp1.OTH_COMMITTED_COST) OTH_COMMITTED_COST,
11862 sum(pjp1.ACT_LABOR_HRS) ACT_LABOR_HRS,
11863 sum(pjp1.ACT_EQUIP_HRS) ACT_EQUIP_HRS,
11864 sum(pjp1.ACT_LABOR_BRDN_COST) ACT_LABOR_BRDN_COST,
11865 sum(pjp1.ACT_EQUIP_BRDN_COST) ACT_EQUIP_BRDN_COST,
11866 sum(pjp1.ACT_BRDN_COST) ACT_BRDN_COST,
11867 sum(pjp1.ACT_RAW_COST) ACT_RAW_COST,
11868 sum(pjp1.ACT_REVENUE) ACT_REVENUE,
11869 sum(pjp1.ACT_LABOR_RAW_COST) ACT_LABOR_RAW_COST,
11870 sum(pjp1.ACT_EQUIP_RAW_COST) ACT_EQUIP_RAW_COST,
11871 sum(pjp1.ETC_LABOR_HRS) ETC_LABOR_HRS,
11872 sum(pjp1.ETC_EQUIP_HRS) ETC_EQUIP_HRS,
11873 sum(pjp1.ETC_LABOR_BRDN_COST) ETC_LABOR_BRDN_COST,
11874 sum(pjp1.ETC_EQUIP_BRDN_COST) ETC_EQUIP_BRDN_COST,
11875 sum(pjp1.ETC_BRDN_COST) ETC_BRDN_COST,
11876 sum(pjp1.ETC_RAW_COST) ETC_RAW_COST,
11877 sum(pjp1.ETC_LABOR_RAW_COST) ETC_LABOR_RAW_COST,
11878 sum(pjp1.ETC_EQUIP_RAW_COST) ETC_EQUIP_RAW_COST,
11879 sum(pjp1.CUSTOM1) CUSTOM1,
11880 sum(pjp1.CUSTOM2) CUSTOM2,
11881 sum(pjp1.CUSTOM3) CUSTOM3,
11882 sum(pjp1.CUSTOM4) CUSTOM4,
11883 sum(pjp1.CUSTOM5) CUSTOM5,
11884 sum(pjp1.CUSTOM6) CUSTOM6,
11885 sum(pjp1.CUSTOM7) CUSTOM7,
11886 sum(pjp1.CUSTOM8) CUSTOM8,
11887 sum(pjp1.CUSTOM9) CUSTOM9,
11888 sum(pjp1.CUSTOM10) CUSTOM10,
11889 sum(pjp1.CUSTOM11) CUSTOM11,
11890 sum(pjp1.CUSTOM12) CUSTOM12,
11891 sum(pjp1.CUSTOM13) CUSTOM13,
11892 sum(pjp1.CUSTOM14) CUSTOM14,
11893 sum(pjp1.CUSTOM15) CUSTOM15
11894 from
11895 PJI_FP_AGGR_PJP1_T pjp1,
11896 PJI_ROLLUP_LEVEL_STATUS ss,
11897 PJI_PJP_RBS_HEADER rbs_hdr,
11898 PJI_PJP_WBS_HEADER wbs_hdr,
11899 PA_RBS_DENORM rbs
11900 where
11901 -- l_extraction_type <> 'RBS' and
11902 rbs.STRUCT_VERSION_ID = ss.RBS_VERSION_ID and
11903 -- pjp1.WORKER_ID = p_worker_id and
11904 pjp1.RBS_AGGR_LEVEL = 'L' and
11905 pjp1.WBS_ROLLUP_FLAG = 'N' and
11906 pjp1.PRG_ROLLUP_FLAG in ('Y', 'N') and
11907 pjp1.PROJECT_ID = ss.PROJECT_ID and
11908 pjp1.RBS_VERSION_ID = ss.RBS_VERSION_ID and
11909 pjp1.RBS_ELEMENT_ID = rbs.SUB_ID and
11910 pjp1.PLAN_VERSION_ID = ss.PLAN_VERSION_ID and
11911 pjp1.PLAN_TYPE_CODE = ss.PLAN_TYPE_CODE and
11912 pjp1.PROJECT_ID = rbs_hdr.PROJECT_ID and
11913 pjp1.PLAN_VERSION_ID = rbs_hdr.PLAN_VERSION_ID and
11914 pjp1.PLAN_TYPE_CODE = rbs_hdr.PLAN_TYPE_CODE and
11915 pjp1.RBS_VERSION_ID = rbs_hdr.RBS_VERSION_ID and
11916 pjp1.PROJECT_ID = wbs_hdr.PROJECT_ID and
11917 pjp1.PLAN_VERSION_ID = wbs_hdr.PLAN_VERSION_ID and
11918 pjp1.PLAN_TYPE_CODE = wbs_hdr.PLAN_TYPE_CODE and
11919 decode(pjp1.PLAN_VERSION_ID,
11920 -3, pjp1.PLAN_TYPE_ID,
11921 -4, pjp1.PLAN_TYPE_ID,
11922 -1) = decode(pjp1.PLAN_VERSION_ID,
11923 -3, wbs_hdr.PLAN_TYPE_ID,
11924 -4, wbs_hdr.PLAN_TYPE_ID,
11925 -1)
11926 group by
11927 wbs_hdr.WBS_VERSION_ID,
11928 pjp1.PRG_LEVEL,
11929 pjp1.LINE_TYPE,
11930 pjp1.PROJECT_ID,
11931 pjp1.PROJECT_ORG_ID,
11932 pjp1.PROJECT_ORGANIZATION_ID,
11933 pjp1.PROJECT_ELEMENT_ID,
11934 pjp1.TIME_ID,
11935 pjp1.PERIOD_TYPE_ID,
11936 pjp1.CALENDAR_TYPE,
11937 decode(rbs.SUP_LEVEL,
11938 rbs.SUB_LEVEL, 'L', 'R'),
11939 pjp1.WBS_ROLLUP_FLAG,
11940 pjp1.PRG_ROLLUP_FLAG,
11941 pjp1.CURR_RECORD_TYPE_ID,
11942 pjp1.CURRENCY_CODE,
11943 rbs.SUP_ID,
11944 pjp1.RBS_VERSION_ID,
11945 pjp1.PLAN_VERSION_ID,
11946 pjp1.PLAN_TYPE_ID,
11947 pjp1.PLAN_TYPE_CODE
11948 ) pjp1,
11949 PA_XBS_DENORM wbs,
11950 (
11951 select 1 WBS_SUP_LEVEL,
11952 'PRJ' INVERT_ID
11953 from DUAL
11954 union all
11955 select 1 WBS_SUP_LEVEL,
11956 'WBS' INVERT_ID
11957 from DUAL
11958 ) top_slice
11959 where
11960 -- l_extraction_type <> 'RBS' and
11961 'WBS' = wbs.STRUCT_TYPE (+) and
11962 pjp1.PROJECT_ID = wbs.SUP_PROJECT_ID (+) and
11963 pjp1.WBS_VERSION_ID = wbs.STRUCT_VERSION_ID (+) and
11964 pjp1.PROJECT_ELEMENT_ID = wbs.SUB_EMT_ID (+) and
11965 wbs.SUP_LEVEL = top_slice.WBS_SUP_LEVEL (+)
11966 group by
11967 decode(pjp1.RBS_AGGR_LEVEL ||
11968 decode(top_slice.INVERT_ID,
11969 'PRJ', 'Y',
11970 decode(wbs.SUP_EMT_ID,
11971 wbs.SUB_EMT_ID, 'N', 'Y')),
11972 'LN', 'X', null),
11973 pjp1.PRG_LEVEL,
11974 pjp1.LINE_TYPE,
11975 pjp1.PROJECT_ID,
11976 pjp1.PROJECT_ORG_ID,
11977 pjp1.PROJECT_ORGANIZATION_ID,
11978 decode(top_slice.INVERT_ID,
11979 'PRJ', wbs.STRUCT_EMT_ID,
11980 nvl(wbs.SUP_EMT_ID,
11981 pjp1.PROJECT_ELEMENT_ID)),
11982 pjp1.TIME_ID,
11983 pjp1.PERIOD_TYPE_ID,
11984 pjp1.CALENDAR_TYPE,
11985 pjp1.RBS_AGGR_LEVEL,
11986 decode(top_slice.INVERT_ID,
11987 'PRJ', 'Y',
11988 decode(wbs.SUP_EMT_ID,
11989 wbs.SUB_EMT_ID, 'N', 'Y')),
11990 pjp1.PRG_ROLLUP_FLAG,
11991 pjp1.CURR_RECORD_TYPE_ID,
11992 pjp1.CURRENCY_CODE,
11993 pjp1.RBS_ELEMENT_ID,
11994 pjp1.RBS_VERSION_ID,
11995 pjp1.PLAN_VERSION_ID,
11996 pjp1.PLAN_TYPE_ID,
11997 pjp1.PLAN_TYPE_CODE
11998 ) pjp1
11999 where
12000 nvl(pjp1.RECORD_TYPE, 'Y') = 'Y'
12001 group by
12002 pjp1.PRG_LEVEL,
12003 pjp1.LINE_TYPE,
12004 pjp1.PROJECT_ID,
12005 pjp1.PROJECT_ORG_ID,
12006 pjp1.PROJECT_ORGANIZATION_ID,
12007 pjp1.PROJECT_ELEMENT_ID,
12008 pjp1.TIME_ID,
12009 pjp1.PERIOD_TYPE_ID,
12010 pjp1.CALENDAR_TYPE,
12011 pjp1.RBS_AGGR_LEVEL,
12012 pjp1.WBS_ROLLUP_FLAG,
12013 pjp1.PRG_ROLLUP_FLAG,
12014 pjp1.CURR_RECORD_TYPE_ID,
12015 pjp1.CURRENCY_CODE,
12016 pjp1.RBS_ELEMENT_ID,
12017 pjp1.RBS_VERSION_ID,
12018 pjp1.PLAN_VERSION_ID,
12019 pjp1.PLAN_TYPE_ID,
12020 pjp1.PLAN_TYPE_CODE;
12021
12022 end if;
12023
12024 end ROLLUP_FPR_RBS_SMART_SLICES;
12025
12026
12027 -- -----------------------------------------------------
12028 -- procedure ROLLUP_ACR_WBS
12029 --
12030 -- History
12031 -- 19-MAR-2004 SVERMETT Created
12032 --
12033 -- This API will be called for both online and bulk processing.
12034 --
12035 -- -----------------------------------------------------
12036 procedure ROLLUP_ACR_WBS (p_worker_id in number default null) is
12037
12038 l_process varchar2(30);
12039 l_extraction_type varchar2(30);
12040 l_level number;
12041 l_max_level number;
12042 l_step_seq number;
12043 l_level_seq number;
12044 l_count number;
12045
12046 begin
12047
12048 if (p_worker_id is not null) then
12049
12050 l_process := PJI_PJP_SUM_MAIN.g_process || to_char(p_worker_id);
12051
12052 if (not PJI_PROCESS_UTIL.NEED_TO_RUN_STEP(l_process, 'PJI_PJP_SUM_ROLLUP.ROLLUP_ACR_WBS(p_worker_id);')) then
12053 return;
12054 end if;
12055
12056 l_extraction_type := PJI_PROCESS_UTIL.GET_PROCESS_PARAMETER(l_process, 'EXTRACTION_TYPE');
12057
12058 -- allow recovery after each level is processed
12059
12060 select
12061 STEP_SEQ
12062 into
12063 l_step_seq
12064 from
12065 PJI_SYSTEM_PRC_STATUS
12066 where
12067 PROCESS_NAME = l_process and
12068 STEP_NAME = 'PJI_PJP_SUM_ROLLUP.ROLLUP_ACR_WBS(p_worker_id);';
12069
12070 select
12071 count(*)
12072 into
12073 l_count
12074 from
12075 PJI_SYSTEM_PRC_STATUS
12076 where
12077 PROCESS_NAME = l_process and
12078 STEP_NAME like 'ROLLUP_ACR_WBS%';
12079
12080 if (l_count = 0) then
12081
12082 select /*+ ordered index(den PJI_XBS_DENORM_N3) */
12083 nvl(max(den.SUP_LEVEL), 0)
12084 into
12085 l_level
12086 from
12087 PJI_PJP_PROJ_BATCH_MAP map,
12088 PJI_XBS_DENORM den
12089 where
12090 map.WORKER_ID = p_worker_id and
12091 den.STRUCT_TYPE = 'PRG' and
12092 den.SUB_LEVEL = den.SUP_LEVEL and
12093 den.SUP_PROJECT_ID = map.PROJECT_ID;
12094
12095 PJI_PROCESS_UTIL.SET_PROCESS_PARAMETER(l_process,
12096 'MAX_PROGRAM_LEVEL',
12097 l_level);
12098
12099 for x in 1 .. l_level loop
12100
12101 insert into PJI_SYSTEM_PRC_STATUS
12102 (
12103 PROCESS_NAME,
12104 STEP_SEQ,
12105 STEP_STATUS,
12106 STEP_NAME,
12107 START_DATE,
12108 END_DATE
12109 )
12110 select
12111 l_process PROCESS_NAME,
12112 to_char(l_step_seq + x / 1000) STEP_SEQ,
12113 null STEP_STATUS,
12114 'ROLLUP_ACR_WBS - level ' || to_char(l_level - x + 1) STEP_NAME,
12115 null START_DATE,
12116 null END_DATE
12117 from
12118 DUAL;
12119
12120 end loop;
12121
12122 end if;
12123
12124 l_max_level := PJI_PROCESS_UTIL.GET_PROCESS_PARAMETER
12125 (l_process, 'MAX_PROGRAM_LEVEL');
12126
12127 select
12128 nvl(to_number(min(STEP_SEQ)), 0)
12129 into
12130 l_level_seq
12131 from
12132 PJI_SYSTEM_PRC_STATUS
12133 where
12134 PROCESS_NAME = l_process and
12135 STEP_NAME like 'ROLLUP_ACR_WBS%' and
12136 STEP_STATUS is null;
12137
12138 if (l_level_seq = 0) then
12139 l_level := 0;
12140 else
12141 l_level := l_max_level - ((l_level_seq - l_step_seq) * 1000) + 1;
12142 end if;
12143
12144 while (l_level > 0) loop
12145
12146 update PJI_SYSTEM_PRC_STATUS
12147 set START_DATE = sysdate
12148 where PROCESS_NAME = l_process and
12149 STEP_SEQ = l_level_seq;
12150
12151 -- rollup project hiearchy
12152
12153 insert into PJI_AC_AGGR_PJP1
12154 (
12155 WORKER_ID,
12156 RECORD_TYPE,
12157 PRG_LEVEL,
12158 PROJECT_ID,
12159 PROJECT_ORG_ID,
12160 PROJECT_ORGANIZATION_ID,
12161 PROJECT_ELEMENT_ID,
12162 TIME_ID,
12163 PERIOD_TYPE_ID,
12164 CALENDAR_TYPE,
12165 WBS_ROLLUP_FLAG,
12166 PRG_ROLLUP_FLAG,
12167 CURR_RECORD_TYPE_ID,
12168 CURRENCY_CODE,
12169 REVENUE,
12170 INITIAL_FUNDING_AMOUNT,
12171 INITIAL_FUNDING_COUNT,
12172 ADDITIONAL_FUNDING_AMOUNT,
12173 ADDITIONAL_FUNDING_COUNT,
12174 CANCELLED_FUNDING_AMOUNT,
12175 CANCELLED_FUNDING_COUNT,
12176 FUNDING_ADJUSTMENT_AMOUNT,
12177 FUNDING_ADJUSTMENT_COUNT,
12178 REVENUE_WRITEOFF,
12179 AR_INVOICE_AMOUNT,
12180 AR_INVOICE_COUNT,
12181 AR_CASH_APPLIED_AMOUNT,
12182 AR_INVOICE_WRITE_OFF_AMOUNT,
12183 AR_INVOICE_WRITEOFF_COUNT,
12184 AR_CREDIT_MEMO_AMOUNT,
12185 AR_CREDIT_MEMO_COUNT,
12186 UNBILLED_RECEIVABLES,
12187 UNEARNED_REVENUE,
12188 AR_UNAPPR_INVOICE_AMOUNT,
12189 AR_UNAPPR_INVOICE_COUNT,
12190 AR_APPR_INVOICE_AMOUNT,
12191 AR_APPR_INVOICE_COUNT,
12192 AR_AMOUNT_DUE,
12193 AR_COUNT_DUE,
12194 AR_AMOUNT_OVERDUE,
12195 AR_COUNT_OVERDUE,
12196 CUSTOM1,
12197 CUSTOM2,
12198 CUSTOM3,
12199 CUSTOM4,
12200 CUSTOM5,
12201 CUSTOM6,
12202 CUSTOM7,
12203 CUSTOM8,
12204 CUSTOM9,
12205 CUSTOM10,
12206 CUSTOM11,
12207 CUSTOM12,
12208 CUSTOM13,
12209 CUSTOM14,
12210 CUSTOM15
12211 )
12212 select
12213 pjp1_i.WORKER_ID,
12214 pjp1_i.RECORD_TYPE,
12215 pjp1_i.PRG_LEVEL,
12216 pjp1_i.PROJECT_ID,
12217 pjp1_i.PROJECT_ORG_ID,
12218 pjp1_i.PROJECT_ORGANIZATION_ID,
12219 pjp1_i.PROJECT_ELEMENT_ID,
12220 pjp1_i.TIME_ID,
12221 pjp1_i.PERIOD_TYPE_ID,
12222 pjp1_i.CALENDAR_TYPE,
12223 pjp1_i.WBS_ROLLUP_FLAG,
12224 pjp1_i.PRG_ROLLUP_FLAG,
12225 pjp1_i.CURR_RECORD_TYPE_ID,
12226 pjp1_i.CURRENCY_CODE,
12227 pjp1_i.REVENUE,
12228 pjp1_i.INITIAL_FUNDING_AMOUNT,
12229 pjp1_i.INITIAL_FUNDING_COUNT,
12230 pjp1_i.ADDITIONAL_FUNDING_AMOUNT,
12231 pjp1_i.ADDITIONAL_FUNDING_COUNT,
12232 pjp1_i.CANCELLED_FUNDING_AMOUNT,
12233 pjp1_i.CANCELLED_FUNDING_COUNT,
12234 pjp1_i.FUNDING_ADJUSTMENT_AMOUNT,
12235 pjp1_i.FUNDING_ADJUSTMENT_COUNT,
12236 pjp1_i.REVENUE_WRITEOFF,
12237 pjp1_i.AR_INVOICE_AMOUNT,
12238 pjp1_i.AR_INVOICE_COUNT,
12239 pjp1_i.AR_CASH_APPLIED_AMOUNT,
12240 pjp1_i.AR_INVOICE_WRITE_OFF_AMOUNT,
12241 pjp1_i.AR_INVOICE_WRITEOFF_COUNT,
12242 pjp1_i.AR_CREDIT_MEMO_AMOUNT,
12243 pjp1_i.AR_CREDIT_MEMO_COUNT,
12244 pjp1_i.UNBILLED_RECEIVABLES,
12245 pjp1_i.UNEARNED_REVENUE,
12246 pjp1_i.AR_UNAPPR_INVOICE_AMOUNT,
12247 pjp1_i.AR_UNAPPR_INVOICE_COUNT,
12248 pjp1_i.AR_APPR_INVOICE_AMOUNT,
12249 pjp1_i.AR_APPR_INVOICE_COUNT,
12250 pjp1_i.AR_AMOUNT_DUE,
12251 pjp1_i.AR_COUNT_DUE,
12252 pjp1_i.AR_AMOUNT_OVERDUE,
12253 pjp1_i.AR_COUNT_OVERDUE,
12254 pjp1_i.CUSTOM1,
12255 pjp1_i.CUSTOM2,
12256 pjp1_i.CUSTOM3,
12257 pjp1_i.CUSTOM4,
12258 pjp1_i.CUSTOM5,
12259 pjp1_i.CUSTOM6,
12260 pjp1_i.CUSTOM7,
12261 pjp1_i.CUSTOM8,
12262 pjp1_i.CUSTOM9,
12263 pjp1_i.CUSTOM10,
12264 pjp1_i.CUSTOM11,
12265 pjp1_i.CUSTOM12,
12266 pjp1_i.CUSTOM13,
12267 pjp1_i.CUSTOM14,
12268 pjp1_i.CUSTOM15
12269 from
12270 (
12271 select
12272 decode(nvl(prg.SUB_EMT_ID, -1), nvl(prg.SUB_ROLLUP_ID, -1),
12273 pjp.INSERT_FLAG, 'Y') INSERT_FLAG,
12274 decode(nvl(prg.SUB_EMT_ID, -1), nvl(prg.SUB_ROLLUP_ID, -1),
12275 null, prg.SUP_ID) SUP_ID,
12276 decode(nvl(prg.SUB_EMT_ID, -1), nvl(prg.SUB_ROLLUP_ID, -1),
12277 null, prg.SUP_EMT_ID) SUP_EMT_ID,
12278 p_worker_id WORKER_ID,
12279 'W' RECORD_TYPE,
12280 decode(nvl(prg.SUB_EMT_ID, -1), nvl(prg.SUB_ROLLUP_ID, -1),
12281 l_level, prg.SUP_LEVEL) PRG_LEVEL,
12282 decode(nvl(prg.SUB_EMT_ID, -1), nvl(prg.SUB_ROLLUP_ID, -1),
12283 pjp.PROJECT_ID,
12284 prg.SUP_PROJECT_ID) PROJECT_ID,
12285 decode(nvl(prg.SUB_EMT_ID, -1), nvl(prg.SUB_ROLLUP_ID, -1),
12286 pjp.PROJECT_ORG_ID,
12287 prg.SUP_PROJECT_ORG_ID) PROJECT_ORG_ID,
12288 decode(nvl(prg.SUB_EMT_ID, -1), nvl(prg.SUB_ROLLUP_ID, -1),
12289 pjp.PROJECT_ORGANIZATION_ID,
12290 prg.SUP_PROJECT_ORGANIZATION_ID) PROJECT_ORGANIZATION_ID,
12291 decode(nvl(prg.SUB_EMT_ID, -1), nvl(prg.SUB_ROLLUP_ID, -1),
12292 pjp.PROJECT_ELEMENT_ID,
12293 prg.SUB_ROLLUP_ID) PROJECT_ELEMENT_ID,
12294 pjp.TIME_ID,
12295 pjp.PERIOD_TYPE_ID,
12296 pjp.CALENDAR_TYPE,
12297 decode(nvl(prg.SUB_EMT_ID, -1), nvl(prg.SUB_ROLLUP_ID, -1),
12298 pjp.WBS_ROLLUP_FLAG, 'N') WBS_ROLLUP_FLAG,
12299 decode(nvl(prg.SUB_EMT_ID, -1), nvl(prg.SUB_ROLLUP_ID, -1),
12300 pjp.PRG_ROLLUP_FLAG, 'Y') PRG_ROLLUP_FLAG,
12301 pjp.CURR_RECORD_TYPE_ID,
12302 pjp.CURRENCY_CODE,
12303 sum(pjp.REVENUE) REVENUE,
12304 sum(pjp.INITIAL_FUNDING_AMOUNT) INITIAL_FUNDING_AMOUNT,
12305 sum(pjp.INITIAL_FUNDING_COUNT) INITIAL_FUNDING_COUNT,
12306 sum(pjp.ADDITIONAL_FUNDING_AMOUNT) ADDITIONAL_FUNDING_AMOUNT,
12307 sum(pjp.ADDITIONAL_FUNDING_COUNT) ADDITIONAL_FUNDING_COUNT,
12308 sum(pjp.CANCELLED_FUNDING_AMOUNT) CANCELLED_FUNDING_AMOUNT,
12309 sum(pjp.CANCELLED_FUNDING_COUNT) CANCELLED_FUNDING_COUNT,
12310 sum(pjp.FUNDING_ADJUSTMENT_AMOUNT) FUNDING_ADJUSTMENT_AMOUNT,
12311 sum(pjp.FUNDING_ADJUSTMENT_COUNT) FUNDING_ADJUSTMENT_COUNT,
12312 sum(pjp.REVENUE_WRITEOFF) REVENUE_WRITEOFF,
12313 sum(pjp.AR_INVOICE_AMOUNT) AR_INVOICE_AMOUNT,
12314 sum(pjp.AR_INVOICE_COUNT) AR_INVOICE_COUNT,
12315 sum(pjp.AR_CASH_APPLIED_AMOUNT) AR_CASH_APPLIED_AMOUNT,
12316 sum(pjp.AR_INVOICE_WRITE_OFF_AMOUNT) AR_INVOICE_WRITE_OFF_AMOUNT,
12317 sum(pjp.AR_INVOICE_WRITEOFF_COUNT) AR_INVOICE_WRITEOFF_COUNT,
12318 sum(pjp.AR_CREDIT_MEMO_AMOUNT) AR_CREDIT_MEMO_AMOUNT,
12319 sum(pjp.AR_CREDIT_MEMO_COUNT) AR_CREDIT_MEMO_COUNT,
12320 sum(pjp.UNBILLED_RECEIVABLES) UNBILLED_RECEIVABLES,
12321 sum(pjp.UNEARNED_REVENUE) UNEARNED_REVENUE,
12322 sum(pjp.AR_UNAPPR_INVOICE_AMOUNT) AR_UNAPPR_INVOICE_AMOUNT,
12323 sum(pjp.AR_UNAPPR_INVOICE_COUNT) AR_UNAPPR_INVOICE_COUNT,
12324 sum(pjp.AR_APPR_INVOICE_AMOUNT) AR_APPR_INVOICE_AMOUNT,
12325 sum(pjp.AR_APPR_INVOICE_COUNT) AR_APPR_INVOICE_COUNT,
12326 sum(pjp.AR_AMOUNT_DUE) AR_AMOUNT_DUE,
12327 sum(pjp.AR_COUNT_DUE) AR_COUNT_DUE,
12328 sum(pjp.AR_AMOUNT_OVERDUE) AR_AMOUNT_OVERDUE,
12329 sum(pjp.AR_COUNT_OVERDUE) AR_COUNT_OVERDUE,
12330 sum(pjp.CUSTOM1) CUSTOM1,
12331 sum(pjp.CUSTOM2) CUSTOM2,
12332 sum(pjp.CUSTOM3) CUSTOM3,
12333 sum(pjp.CUSTOM4) CUSTOM4,
12334 sum(pjp.CUSTOM5) CUSTOM5,
12335 sum(pjp.CUSTOM6) CUSTOM6,
12336 sum(pjp.CUSTOM7) CUSTOM7,
12337 sum(pjp.CUSTOM8) CUSTOM8,
12338 sum(pjp.CUSTOM9) CUSTOM9,
12339 sum(pjp.CUSTOM10) CUSTOM10,
12340 sum(pjp.CUSTOM11) CUSTOM11,
12341 sum(pjp.CUSTOM12) CUSTOM12,
12342 sum(pjp.CUSTOM13) CUSTOM13,
12343 sum(pjp.CUSTOM14) CUSTOM14,
12344 sum(pjp.CUSTOM15) CUSTOM15
12345 from
12346 (
12347 select /*+ ordered index(wbs PA_XBS_DENORM_N2) */
12348 -- get incremental task level amounts from source and
12349 -- program rollup amounts from interim
12350 wbs_hdr.WBS_VERSION_ID,
12351 'LF' RELATIONSHIP_TYPE,
12352 decode(top_slice.INVERT_ID,
12353 'PRJ', 'Y',
12354 decode(wbs.SUB_LEVEL,
12355 1, 'Y', 'N')) PUSHUP_FLAG,
12356 'Y' INSERT_FLAG,
12357 pjp1.PROJECT_ID,
12358 pjp1.PROJECT_ORG_ID,
12359 pjp1.PROJECT_ORGANIZATION_ID,
12360 decode(top_slice.INVERT_ID,
12361 'PRJ', prg.SUP_EMT_ID,
12362 decode(wbs.SUB_LEVEL,
12363 1, prg.SUP_EMT_ID,
12364 wbs.SUP_EMT_ID)) PROJECT_ELEMENT_ID,
12365 pjp1.TIME_ID,
12366 pjp1.PERIOD_TYPE_ID,
12367 pjp1.CALENDAR_TYPE,
12368 'Y' WBS_ROLLUP_FLAG,
12369 pjp1.PRG_ROLLUP_FLAG,
12370 pjp1.CURR_RECORD_TYPE_ID,
12371 pjp1.CURRENCY_CODE,
12372 pjp1.REVENUE,
12373 pjp1.INITIAL_FUNDING_AMOUNT,
12374 pjp1.INITIAL_FUNDING_COUNT,
12375 pjp1.ADDITIONAL_FUNDING_AMOUNT,
12376 pjp1.ADDITIONAL_FUNDING_COUNT,
12377 pjp1.CANCELLED_FUNDING_AMOUNT,
12378 pjp1.CANCELLED_FUNDING_COUNT,
12379 pjp1.FUNDING_ADJUSTMENT_AMOUNT,
12380 pjp1.FUNDING_ADJUSTMENT_COUNT,
12381 pjp1.REVENUE_WRITEOFF,
12382 pjp1.AR_INVOICE_AMOUNT,
12383 pjp1.AR_INVOICE_COUNT,
12384 pjp1.AR_CASH_APPLIED_AMOUNT,
12385 pjp1.AR_INVOICE_WRITE_OFF_AMOUNT,
12386 pjp1.AR_INVOICE_WRITEOFF_COUNT,
12387 pjp1.AR_CREDIT_MEMO_AMOUNT,
12388 pjp1.AR_CREDIT_MEMO_COUNT,
12389 pjp1.UNBILLED_RECEIVABLES,
12390 pjp1.UNEARNED_REVENUE,
12391 pjp1.AR_UNAPPR_INVOICE_AMOUNT,
12392 pjp1.AR_UNAPPR_INVOICE_COUNT,
12393 pjp1.AR_APPR_INVOICE_AMOUNT,
12394 pjp1.AR_APPR_INVOICE_COUNT,
12395 pjp1.AR_AMOUNT_DUE,
12396 pjp1.AR_COUNT_DUE,
12397 pjp1.AR_AMOUNT_OVERDUE,
12398 pjp1.AR_COUNT_OVERDUE,
12399 pjp1.CUSTOM1,
12400 pjp1.CUSTOM2,
12401 pjp1.CUSTOM3,
12402 pjp1.CUSTOM4,
12403 pjp1.CUSTOM5,
12404 pjp1.CUSTOM6,
12405 pjp1.CUSTOM7,
12406 pjp1.CUSTOM8,
12407 pjp1.CUSTOM9,
12408 pjp1.CUSTOM10,
12409 pjp1.CUSTOM11,
12410 pjp1.CUSTOM12,
12411 pjp1.CUSTOM13,
12412 pjp1.CUSTOM14,
12413 pjp1.CUSTOM15
12414 from
12415 PJI_AC_AGGR_PJP1 pjp1,
12416 PJI_PJP_WBS_HEADER wbs_hdr,
12417 PA_XBS_DENORM wbs,
12418 PJI_XBS_DENORM prg,
12419 (
12420 select 1 WBS_SUP_LEVEL,
12421 1 WBS_SUB_LEVEL,
12422 'PRJ' INVERT_ID
12423 from DUAL
12424 union all
12425 select 1 WBS_SUP_LEVEL,
12426 1 WBS_SUB_LEVEL,
12427 'WBS' INVERT_ID
12428 from DUAL
12429 ) top_slice
12430 where
12431 prg.STRUCT_TYPE = 'PRG' and
12432 prg.SUP_LEVEL = l_level and
12433 prg.SUB_LEVEL = l_level and
12434 wbs.STRUCT_TYPE = 'WBS' and
12435 ((wbs.SUP_LEVEL = 1 and
12436 wbs.SUB_LEVEL = 1) or
12437 (wbs.SUP_LEVEL <> wbs.SUB_LEVEL)) and
12438 wbs.STRUCT_VERSION_ID = prg.SUP_ID and
12439 wbs.SUP_PROJECT_ID = prg.SUP_PROJECT_ID and
12440 pjp1.WORKER_ID = p_worker_id and
12441 pjp1.PRG_LEVEL in (0, l_level) and
12442 pjp1.WBS_ROLLUP_FLAG = 'N' and
12443 pjp1.PRG_ROLLUP_FLAG in ('Y', 'N') and
12444 wbs_hdr.PLAN_VERSION_ID = -1 and
12445 pjp1.PROJECT_ID = wbs_hdr.PROJECT_ID and
12446 wbs.STRUCT_VERSION_ID = wbs_hdr.WBS_VERSION_ID and
12447 pjp1.PROJECT_ELEMENT_ID = wbs.SUB_EMT_ID and
12448 wbs.SUP_LEVEL = top_slice.WBS_SUP_LEVEL (+) and
12449 wbs.SUB_LEVEL <> top_slice.WBS_SUB_LEVEL (+)
12450 union all
12451 select /*+ ordered */
12452 -- get incremental project level amounts from source
12453 wbs_hdr.WBS_VERSION_ID,
12454 'LF' RELATIONSHIP_TYPE,
12455 'Y' PUSHUP_FLAG,
12456 'N' INSERT_FLAG,
12457 pjp1.PROJECT_ID,
12458 pjp1.PROJECT_ORG_ID,
12459 pjp1.PROJECT_ORGANIZATION_ID,
12460 pjp1.PROJECT_ELEMENT_ID,
12461 pjp1.TIME_ID,
12462 pjp1.PERIOD_TYPE_ID,
12463 pjp1.CALENDAR_TYPE,
12464 'Y' WBS_ROLLUP_FLAG,
12465 pjp1.PRG_ROLLUP_FLAG,
12466 pjp1.CURR_RECORD_TYPE_ID,
12467 pjp1.CURRENCY_CODE,
12468 pjp1.REVENUE,
12469 pjp1.INITIAL_FUNDING_AMOUNT,
12470 pjp1.INITIAL_FUNDING_COUNT,
12471 pjp1.ADDITIONAL_FUNDING_AMOUNT,
12472 pjp1.ADDITIONAL_FUNDING_COUNT,
12473 pjp1.CANCELLED_FUNDING_AMOUNT,
12474 pjp1.CANCELLED_FUNDING_COUNT,
12475 pjp1.FUNDING_ADJUSTMENT_AMOUNT,
12476 pjp1.FUNDING_ADJUSTMENT_COUNT,
12477 pjp1.REVENUE_WRITEOFF,
12478 pjp1.AR_INVOICE_AMOUNT,
12479 pjp1.AR_INVOICE_COUNT,
12480 pjp1.AR_CASH_APPLIED_AMOUNT,
12481 pjp1.AR_INVOICE_WRITE_OFF_AMOUNT,
12482 pjp1.AR_INVOICE_WRITEOFF_COUNT,
12483 pjp1.AR_CREDIT_MEMO_AMOUNT,
12484 pjp1.AR_CREDIT_MEMO_COUNT,
12485 pjp1.UNBILLED_RECEIVABLES,
12486 pjp1.UNEARNED_REVENUE,
12487 pjp1.AR_UNAPPR_INVOICE_AMOUNT,
12488 pjp1.AR_UNAPPR_INVOICE_COUNT,
12489 pjp1.AR_APPR_INVOICE_AMOUNT,
12490 pjp1.AR_APPR_INVOICE_COUNT,
12491 pjp1.AR_AMOUNT_DUE,
12492 pjp1.AR_COUNT_DUE,
12493 pjp1.AR_AMOUNT_OVERDUE,
12494 pjp1.AR_COUNT_OVERDUE,
12495 pjp1.CUSTOM1,
12496 pjp1.CUSTOM2,
12497 pjp1.CUSTOM3,
12498 pjp1.CUSTOM4,
12499 pjp1.CUSTOM5,
12500 pjp1.CUSTOM6,
12501 pjp1.CUSTOM7,
12502 pjp1.CUSTOM8,
12503 pjp1.CUSTOM9,
12504 pjp1.CUSTOM10,
12505 pjp1.CUSTOM11,
12506 pjp1.CUSTOM12,
12507 pjp1.CUSTOM13,
12508 pjp1.CUSTOM14,
12509 pjp1.CUSTOM15
12510 from
12511 PJI_AC_AGGR_PJP1 pjp1,
12512 PJI_PJP_WBS_HEADER wbs_hdr,
12513 PJI_XBS_DENORM prg
12514 where
12515 prg.STRUCT_TYPE = 'PRG' and
12516 prg.SUP_LEVEL = l_level and
12517 prg.SUB_LEVEL = l_level and
12518 pjp1.WORKER_ID = p_worker_id and
12519 pjp1.PROJECT_ID = prg.SUP_PROJECT_ID and
12520 pjp1.PROJECT_ELEMENT_ID = prg.SUP_EMT_ID and
12521 pjp1.PRG_LEVEL = 0 and
12522 pjp1.WBS_ROLLUP_FLAG = 'N' and
12523 pjp1.PRG_ROLLUP_FLAG = 'N' and
12524 wbs_hdr.PROJECT_ID = pjp1.PROJECT_ID and
12525 wbs_hdr.PLAN_VERSION_ID = -1 and
12526 wbs_hdr.WBS_VERSION_ID = prg.SUP_ID
12527 union all
12528 select /*+ ordered
12529 index(fpr PJI_AC_XBR_ACCUM_F_N1) */
12530 -- get delta task level amounts from Reporting Lines
12531 wbs_hdr.WBS_VERSION_ID,
12532 'LF' RELATIONSHIP_TYPE,
12533 decode(log.EVENT_TYPE,
12534 'WBS_CHANGE', 'Y',
12535 'WBS_PUBLISH', 'N') PUSHUP_FLAG,
12536 'Y' INSERT_FLAG,
12537 acr.PROJECT_ID,
12538 acr.PROJECT_ORG_ID,
12539 acr.PROJECT_ORGANIZATION_ID,
12540 decode(top_slice.INVERT_ID,
12541 'PRJ', prg.SUP_EMT_ID,
12542 decode(wbs.SUB_LEVEL,
12543 1, prg.SUP_EMT_ID,
12544 wbs.SUP_EMT_ID))
12545 PROJECT_ELEMENT_ID,
12546 acr.TIME_ID,
12547 acr.PERIOD_TYPE_ID,
12548 acr.CALENDAR_TYPE,
12549 'Y' WBS_ROLLUP_FLAG,
12550 acr.PRG_ROLLUP_FLAG,
12551 acr.CURR_RECORD_TYPE_ID,
12552 acr.CURRENCY_CODE,
12553 wbs.SIGN * acr.REVENUE REVENUE,
12554 wbs.SIGN * acr.INITIAL_FUNDING_AMOUNT INITIAL_FUNDING_AMOUNT,
12555 wbs.SIGN * acr.INITIAL_FUNDING_COUNT INITIAL_FUNDING_COUNT,
12556 wbs.SIGN * acr.ADDITIONAL_FUNDING_AMOUNT
12557 ADDITIONAL_FUNDING_AMOUNT,
12558 wbs.SIGN * acr.ADDITIONAL_FUNDING_COUNT
12559 ADDITIONAL_FUNDING_COUNT,
12560 wbs.SIGN * acr.CANCELLED_FUNDING_AMOUNT
12561 CANCELLED_FUNDING_AMOUNT,
12562 wbs.SIGN * acr.CANCELLED_FUNDING_COUNT CANCELLED_FUNDING_COUNT,
12563 wbs.SIGN * acr.FUNDING_ADJUSTMENT_AMOUNT
12564 FUNDING_ADJUSTMENT_AMOUNT,
12565 wbs.SIGN * acr.FUNDING_ADJUSTMENT_COUNT
12566 FUNDING_ADJUSTMENT_COUNT,
12567 wbs.SIGN * acr.REVENUE_WRITEOFF REVENUE_WRITEOFF,
12568 wbs.SIGN * acr.AR_INVOICE_AMOUNT AR_INVOICE_AMOUNT,
12569 wbs.SIGN * acr.AR_INVOICE_COUNT AR_INVOICE_COUNT,
12570 wbs.SIGN * acr.AR_CASH_APPLIED_AMOUNT AR_CASH_APPLIED_AMOUNT,
12571 wbs.SIGN * acr.AR_INVOICE_WRITE_OFF_AMOUNT
12572 AR_INVOICE_WRITE_OFF_AMOUNT,
12573 wbs.SIGN * acr.AR_INVOICE_WRITEOFF_COUNT
12574 AR_INVOICE_WRITEOFF_COUNT,
12575 wbs.SIGN * acr.AR_CREDIT_MEMO_AMOUNT AR_CREDIT_MEMO_AMOUNT,
12576 wbs.SIGN * acr.AR_CREDIT_MEMO_COUNT AR_CREDIT_MEMO_COUNT,
12577 wbs.SIGN * acr.UNBILLED_RECEIVABLES UNBILLED_RECEIVABLES,
12578 wbs.SIGN * acr.UNEARNED_REVENUE UNEARNED_REVENUE,
12579 wbs.SIGN * acr.AR_UNAPPR_INVOICE_AMOUNT
12580 AR_UNAPPR_INVOICE_AMOUNT,
12581 wbs.SIGN * acr.AR_UNAPPR_INVOICE_COUNT AR_UNAPPR_INVOICE_COUNT,
12582 wbs.SIGN * acr.AR_APPR_INVOICE_AMOUNT AR_APPR_INVOICE_AMOUNT,
12583 wbs.SIGN * acr.AR_APPR_INVOICE_COUNT AR_APPR_INVOICE_COUNT,
12584 wbs.SIGN * acr.AR_AMOUNT_DUE AR_AMOUNT_DUE,
12585 wbs.SIGN * acr.AR_COUNT_DUE AR_COUNT_DUE,
12586 wbs.SIGN * acr.AR_AMOUNT_OVERDUE AR_AMOUNT_OVERDUE,
12587 wbs.SIGN * acr.AR_COUNT_OVERDUE AR_COUNT_OVERDUE,
12588 wbs.SIGN * acr.CUSTOM1 CUSTOM1,
12589 wbs.SIGN * acr.CUSTOM2 CUSTOM2,
12590 wbs.SIGN * acr.CUSTOM3 CUSTOM3,
12591 wbs.SIGN * acr.CUSTOM4 CUSTOM4,
12592 wbs.SIGN * acr.CUSTOM5 CUSTOM5,
12593 wbs.SIGN * acr.CUSTOM6 CUSTOM6,
12594 wbs.SIGN * acr.CUSTOM7 CUSTOM7,
12595 wbs.SIGN * acr.CUSTOM8 CUSTOM8,
12596 wbs.SIGN * acr.CUSTOM9 CUSTOM9,
12597 wbs.SIGN * acr.CUSTOM10 CUSTOM10,
12598 wbs.SIGN * acr.CUSTOM11 CUSTOM11,
12599 wbs.SIGN * acr.CUSTOM12 CUSTOM12,
12600 wbs.SIGN * acr.CUSTOM13 CUSTOM13,
12601 wbs.SIGN * acr.CUSTOM14 CUSTOM14,
12602 wbs.SIGN * acr.CUSTOM15 CUSTOM15
12603 from
12604 PJI_PA_PROJ_EVENTS_LOG log,
12605 PJI_PJP_WBS_HEADER wbs_hdr,
12606 PJI_XBS_DENORM_DELTA wbs,
12607 PJI_XBS_DENORM prg,
12608 PJI_AC_XBS_ACCUM_F acr,
12609 (
12610 select 1 WBS_SUP_LEVEL,
12611 1 WBS_SUB_LEVEL,
12612 'PRJ' INVERT_ID
12613 from DUAL
12614 union all
12615 select 1 WBS_SUP_LEVEL,
12616 1 WBS_SUB_LEVEL,
12617 'WBS' INVERT_ID
12618 from DUAL
12619 ) top_slice
12620 where
12621 prg.STRUCT_TYPE = 'PRG' and
12622 prg.SUP_LEVEL = l_level and
12623 prg.SUB_LEVEL = l_level and
12624 wbs.WORKER_ID = p_worker_id and
12625 wbs.STRUCT_TYPE = 'WBS' and
12626 wbs.SUP_PROJECT_ID = prg.SUP_PROJECT_ID and
12627 log.WORKER_ID = p_worker_id and
12628 log.EVENT_ID = wbs.EVENT_ID and
12629 log.EVENT_TYPE in ('WBS_CHANGE',
12630 'WBS_PUBLISH') and
12631 wbs_hdr.PROJECT_ID = log.ATTRIBUTE1 and
12632 wbs_hdr.PLAN_VERSION_ID = log.ATTRIBUTE3 and
12633 wbs_hdr.PLAN_VERSION_ID = -1 and
12634 wbs_hdr.WBS_VERSION_ID = wbs.STRUCT_VERSION_ID and
12635 wbs_hdr.PROJECT_ID = prg.SUP_PROJECT_ID and
12636 wbs_hdr.WBS_VERSION_ID = prg.SUP_ID and
12637 acr.WBS_ROLLUP_FLAG = 'N' and
12638 acr.PRG_ROLLUP_FLAG = 'N' and
12639 acr.PROJECT_ID = wbs.SUP_PROJECT_ID and
12640 acr.PROJECT_ELEMENT_ID = wbs.SUB_EMT_ID and
12641 acr.PROJECT_ID = wbs_hdr.PROJECT_ID and
12642 wbs.SUP_LEVEL = top_slice.WBS_SUP_LEVEL (+) and
12643 wbs.SUB_LEVEL <> top_slice.WBS_SUB_LEVEL (+) and
12644 (wbs.SUP_LEVEL <> wbs.SUB_LEVEL or
12645 (wbs.SUP_LEVEL = 1 and
12646 wbs.SUB_LEVEL = 1))
12647 ) pjp,
12648 (
12649 select /*+ ordered */
12650 prg.SUP_PROJECT_ID,
12651 map.PROJECT_ORG_ID SUP_PROJECT_ORG_ID,
12652 map.PROJECT_ORGANIZATION_ID SUP_PROJECT_ORGANIZATION_ID,
12653 prg.SUP_ID,
12654 prg.SUP_EMT_ID,
12655 prg.SUP_LEVEL,
12656 prg.SUB_ID,
12657 prg.SUB_EMT_ID,
12658 prg.SUB_ROLLUP_ID,
12659 prg.RELATIONSHIP_TYPE RELATIONSHIP_TYPE,
12660 'Y' PUSHUP_FLAG
12661 from
12662 PJI_PJP_PROJ_BATCH_MAP map,
12663 PJI_XBS_DENORM prg,
12664 PJI_XBS_DENORM_DELTA prg_delta
12665 where
12666 prg.STRUCT_TYPE = 'PRG' and
12667 prg.RELATIONSHIP_TYPE = 'LF' and
12668 prg.SUB_ROLLUP_ID is not null and
12669 prg.SUB_LEVEL = l_level and
12670 map.WORKER_ID = p_worker_id and
12671 map.PROJECT_ID = prg.SUP_PROJECT_ID and
12672 p_worker_id = prg_delta.WORKER_ID (+) and
12673 prg.STRUCT_TYPE = prg_delta.STRUCT_TYPE (+) and
12674 prg.SUP_PROJECT_ID = prg_delta.SUP_PROJECT_ID (+) and
12675 prg.SUP_LEVEL = prg_delta.SUP_LEVEL (+) and
12676 prg.SUP_ID = prg_delta.SUP_ID (+) and
12677 prg.SUB_LEVEL = prg_delta.SUB_LEVEL (+) and
12678 prg.SUB_ID = prg_delta.SUB_ID (+) and
12679 prg.RELATIONSHIP_TYPE = prg_delta.RELATIONSHIP_TYPE (+) and
12680 -1 = prg_delta.SIGN (+) and
12681 prg_delta.SUP_PROJECT_ID is null
12682 ) prg
12683 where
12684 pjp.WBS_VERSION_ID = prg.SUB_ID (+) and
12685 pjp.RELATIONSHIP_TYPE = prg.RELATIONSHIP_TYPE (+) and
12686 pjp.PUSHUP_FLAG = prg.PUSHUP_FLAG (+)
12687 group by
12688 decode(nvl(prg.SUB_EMT_ID, -1), nvl(prg.SUB_ROLLUP_ID, -1),
12689 pjp.INSERT_FLAG, 'Y'),
12690 decode(nvl(prg.SUB_EMT_ID, -1), nvl(prg.SUB_ROLLUP_ID, -1),
12691 null, prg.SUP_ID),
12692 decode(nvl(prg.SUB_EMT_ID, -1), nvl(prg.SUB_ROLLUP_ID, -1),
12693 null, prg.SUP_EMT_ID),
12694 decode(nvl(prg.SUB_EMT_ID, -1), nvl(prg.SUB_ROLLUP_ID, -1),
12695 l_level, prg.SUP_LEVEL),
12696 decode(nvl(prg.SUB_EMT_ID, -1), nvl(prg.SUB_ROLLUP_ID, -1),
12697 pjp.PROJECT_ID,
12698 prg.SUP_PROJECT_ID),
12699 decode(nvl(prg.SUB_EMT_ID, -1), nvl(prg.SUB_ROLLUP_ID, -1),
12700 pjp.PROJECT_ORG_ID,
12701 prg.SUP_PROJECT_ORG_ID),
12702 decode(nvl(prg.SUB_EMT_ID, -1), nvl(prg.SUB_ROLLUP_ID, -1),
12703 pjp.PROJECT_ORGANIZATION_ID,
12704 prg.SUP_PROJECT_ORGANIZATION_ID),
12705 decode(nvl(prg.SUB_EMT_ID, -1), nvl(prg.SUB_ROLLUP_ID, -1),
12706 pjp.PROJECT_ELEMENT_ID,
12707 prg.SUB_ROLLUP_ID),
12708 pjp.TIME_ID,
12709 pjp.PERIOD_TYPE_ID,
12710 pjp.CALENDAR_TYPE,
12711 decode(nvl(prg.SUB_EMT_ID, -1), nvl(prg.SUB_ROLLUP_ID, -1),
12712 pjp.WBS_ROLLUP_FLAG, 'N'),
12713 decode(nvl(prg.SUB_EMT_ID, -1), nvl(prg.SUB_ROLLUP_ID, -1),
12714 pjp.PRG_ROLLUP_FLAG, 'Y'),
12715 pjp.CURR_RECORD_TYPE_ID,
12716 pjp.CURRENCY_CODE
12717 ) pjp1_i,
12718 PA_PROJ_ELEM_VER_STRUCTURE sup_fin_ver,
12719 PA_PROJ_WORKPLAN_ATTR sup_wpa
12720 where
12721 pjp1_i.INSERT_FLAG = 'Y' and
12722 pjp1_i.PROJECT_ID = sup_fin_ver.PROJECT_ID (+) and
12723 pjp1_i.SUP_ID = sup_fin_ver.ELEMENT_VERSION_ID (+) and
12724 'STRUCTURE_WORKING' = sup_fin_ver.STATUS_CODE (+) and
12725 pjp1_i.SUP_EMT_ID = sup_wpa.PROJ_ELEMENT_ID (+) and
12726 'N' = sup_wpa.WP_ENABLE_VERSION_FLAG (+) and
12727 (pjp1_i.SUP_ID is null or
12728 (pjp1_i.SUP_ID is not null and
12729 (sup_fin_ver.PROJECT_ID is not null or
12730 sup_wpa.PROJ_ELEMENT_ID is not null)));
12731
12732 update PJI_SYSTEM_PRC_STATUS
12733 set STEP_STATUS = 'C',
12734 END_DATE = sysdate
12735 where PROCESS_NAME = l_process and
12736 STEP_SEQ = l_level_seq;
12737
12738 commit;
12739
12740 select
12741 nvl(to_number(min(STEP_SEQ)), 0)
12742 into
12743 l_level_seq
12744 from
12745 PJI_SYSTEM_PRC_STATUS
12746 where
12747 PROCESS_NAME = l_process and
12748 STEP_NAME like 'ROLLUP_ACR_WBS%' and
12749 STEP_STATUS is null;
12750
12751 if (l_level_seq = 0) then
12752 l_level := 0;
12753 else
12754 l_level := l_max_level - ((l_level_seq - l_step_seq) * 1000) + 1;
12755 end if;
12756
12757 end loop;
12758
12759 PJI_PROCESS_UTIL.REGISTER_STEP_COMPLETION(l_process, 'PJI_PJP_SUM_ROLLUP.ROLLUP_ACR_WBS(p_worker_id);');
12760
12761 commit;
12762
12763 else -- online mode
12764
12765 -- rollup just WBS for online processing
12766
12767 select /*+ ordered use_nl(den) index(den PJI_XBS_DENORM_N3) */
12768 nvl(max(den.SUP_LEVEL), 0)
12769 into
12770 l_level
12771 from
12772 PJI_FM_EXTR_PLNVER3_T ver3,
12773 PJI_XBS_DENORM den
12774 where
12775 den.STRUCT_TYPE = 'PRG' and
12776 den.SUB_LEVEL = den.SUP_LEVEL and
12777 den.SUP_PROJECT_ID = ver3.PROJECT_ID;
12778
12779 while (l_level > 0) loop
12780
12781 -- rollup project hiearchy
12782
12783 insert into PJI_AC_AGGR_PJP1_T
12784 (
12785 WORKER_ID,
12786 RECORD_TYPE,
12787 PRG_LEVEL,
12788 PROJECT_ID,
12789 PROJECT_ORG_ID,
12790 PROJECT_ORGANIZATION_ID,
12791 PROJECT_ELEMENT_ID,
12792 TIME_ID,
12793 PERIOD_TYPE_ID,
12794 CALENDAR_TYPE,
12795 WBS_ROLLUP_FLAG,
12796 PRG_ROLLUP_FLAG,
12797 CURR_RECORD_TYPE_ID,
12798 CURRENCY_CODE,
12799 REVENUE,
12800 INITIAL_FUNDING_AMOUNT,
12801 INITIAL_FUNDING_COUNT,
12802 ADDITIONAL_FUNDING_AMOUNT,
12803 ADDITIONAL_FUNDING_COUNT,
12804 CANCELLED_FUNDING_AMOUNT,
12805 CANCELLED_FUNDING_COUNT,
12806 FUNDING_ADJUSTMENT_AMOUNT,
12807 FUNDING_ADJUSTMENT_COUNT,
12808 REVENUE_WRITEOFF,
12809 AR_INVOICE_AMOUNT,
12810 AR_INVOICE_COUNT,
12811 AR_CASH_APPLIED_AMOUNT,
12812 AR_INVOICE_WRITE_OFF_AMOUNT,
12813 AR_INVOICE_WRITEOFF_COUNT,
12814 AR_CREDIT_MEMO_AMOUNT,
12815 AR_CREDIT_MEMO_COUNT,
12816 UNBILLED_RECEIVABLES,
12817 UNEARNED_REVENUE,
12818 AR_UNAPPR_INVOICE_AMOUNT,
12819 AR_UNAPPR_INVOICE_COUNT,
12820 AR_APPR_INVOICE_AMOUNT,
12821 AR_APPR_INVOICE_COUNT,
12822 AR_AMOUNT_DUE,
12823 AR_COUNT_DUE,
12824 AR_AMOUNT_OVERDUE,
12825 AR_COUNT_OVERDUE,
12826 CUSTOM1,
12827 CUSTOM2,
12828 CUSTOM3,
12829 CUSTOM4,
12830 CUSTOM5,
12831 CUSTOM6,
12832 CUSTOM7,
12833 CUSTOM8,
12834 CUSTOM9,
12835 CUSTOM10,
12836 CUSTOM11,
12837 CUSTOM12,
12838 CUSTOM13,
12839 CUSTOM14,
12840 CUSTOM15
12841 )
12842 select
12843 pjp1_i.WORKER_ID,
12844 pjp1_i.RECORD_TYPE,
12845 pjp1_i.PRG_LEVEL,
12846 pjp1_i.PROJECT_ID,
12847 pjp1_i.PROJECT_ORG_ID,
12848 pjp1_i.PROJECT_ORGANIZATION_ID,
12849 pjp1_i.PROJECT_ELEMENT_ID,
12850 pjp1_i.TIME_ID,
12851 pjp1_i.PERIOD_TYPE_ID,
12852 pjp1_i.CALENDAR_TYPE,
12853 pjp1_i.WBS_ROLLUP_FLAG,
12854 pjp1_i.PRG_ROLLUP_FLAG,
12855 pjp1_i.CURR_RECORD_TYPE_ID,
12856 pjp1_i.CURRENCY_CODE,
12857 pjp1_i.REVENUE,
12858 pjp1_i.INITIAL_FUNDING_AMOUNT,
12859 pjp1_i.INITIAL_FUNDING_COUNT,
12860 pjp1_i.ADDITIONAL_FUNDING_AMOUNT,
12861 pjp1_i.ADDITIONAL_FUNDING_COUNT,
12862 pjp1_i.CANCELLED_FUNDING_AMOUNT,
12863 pjp1_i.CANCELLED_FUNDING_COUNT,
12864 pjp1_i.FUNDING_ADJUSTMENT_AMOUNT,
12865 pjp1_i.FUNDING_ADJUSTMENT_COUNT,
12866 pjp1_i.REVENUE_WRITEOFF,
12867 pjp1_i.AR_INVOICE_AMOUNT,
12868 pjp1_i.AR_INVOICE_COUNT,
12869 pjp1_i.AR_CASH_APPLIED_AMOUNT,
12870 pjp1_i.AR_INVOICE_WRITE_OFF_AMOUNT,
12871 pjp1_i.AR_INVOICE_WRITEOFF_COUNT,
12872 pjp1_i.AR_CREDIT_MEMO_AMOUNT,
12873 pjp1_i.AR_CREDIT_MEMO_COUNT,
12874 pjp1_i.UNBILLED_RECEIVABLES,
12875 pjp1_i.UNEARNED_REVENUE,
12876 pjp1_i.AR_UNAPPR_INVOICE_AMOUNT,
12877 pjp1_i.AR_UNAPPR_INVOICE_COUNT,
12878 pjp1_i.AR_APPR_INVOICE_AMOUNT,
12879 pjp1_i.AR_APPR_INVOICE_COUNT,
12880 pjp1_i.AR_AMOUNT_DUE,
12881 pjp1_i.AR_COUNT_DUE,
12882 pjp1_i.AR_AMOUNT_OVERDUE,
12883 pjp1_i.AR_COUNT_OVERDUE,
12884 pjp1_i.CUSTOM1,
12885 pjp1_i.CUSTOM2,
12886 pjp1_i.CUSTOM3,
12887 pjp1_i.CUSTOM4,
12888 pjp1_i.CUSTOM5,
12889 pjp1_i.CUSTOM6,
12890 pjp1_i.CUSTOM7,
12891 pjp1_i.CUSTOM8,
12892 pjp1_i.CUSTOM9,
12893 pjp1_i.CUSTOM10,
12894 pjp1_i.CUSTOM11,
12895 pjp1_i.CUSTOM12,
12896 pjp1_i.CUSTOM13,
12897 pjp1_i.CUSTOM14,
12898 pjp1_i.CUSTOM15
12899 from
12900 (
12901 select
12902 decode(nvl(prg.SUB_EMT_ID, -1), nvl(prg.SUB_ROLLUP_ID, -1),
12903 pjp.INSERT_FLAG, 'Y') INSERT_FLAG,
12904 decode(nvl(prg.SUB_EMT_ID, -1), nvl(prg.SUB_ROLLUP_ID, -1),
12905 null, prg.SUP_ID) SUP_ID,
12906 decode(nvl(prg.SUB_EMT_ID, -1), nvl(prg.SUB_ROLLUP_ID, -1),
12907 null, prg.SUP_EMT_ID) SUP_EMT_ID,
12908 1 WORKER_ID,
12909 -- p_worker_id WORKER_ID,
12910 'W' RECORD_TYPE,
12911 decode(nvl(prg.SUB_EMT_ID, -1), nvl(prg.SUB_ROLLUP_ID, -1),
12912 l_level, prg.SUP_LEVEL) PRG_LEVEL,
12913 decode(nvl(prg.SUB_EMT_ID, -1), nvl(prg.SUB_ROLLUP_ID, -1),
12914 pjp.PROJECT_ID,
12915 prg.SUP_PROJECT_ID) PROJECT_ID,
12916 decode(nvl(prg.SUB_EMT_ID, -1), nvl(prg.SUB_ROLLUP_ID, -1),
12917 pjp.PROJECT_ORG_ID,
12918 prg.SUP_PROJECT_ORG_ID) PROJECT_ORG_ID,
12919 decode(nvl(prg.SUB_EMT_ID, -1), nvl(prg.SUB_ROLLUP_ID, -1),
12920 pjp.PROJECT_ORGANIZATION_ID,
12921 prg.SUP_PROJECT_ORGANIZATION_ID) PROJECT_ORGANIZATION_ID,
12922 decode(nvl(prg.SUB_EMT_ID, -1), nvl(prg.SUB_ROLLUP_ID, -1),
12923 pjp.PROJECT_ELEMENT_ID,
12924 prg.SUB_ROLLUP_ID) PROJECT_ELEMENT_ID,
12925 pjp.TIME_ID,
12926 pjp.PERIOD_TYPE_ID,
12927 pjp.CALENDAR_TYPE,
12928 decode(nvl(prg.SUB_EMT_ID, -1), nvl(prg.SUB_ROLLUP_ID, -1),
12929 pjp.WBS_ROLLUP_FLAG, 'N') WBS_ROLLUP_FLAG,
12930 decode(nvl(prg.SUB_EMT_ID, -1), nvl(prg.SUB_ROLLUP_ID, -1),
12931 pjp.PRG_ROLLUP_FLAG, 'Y') PRG_ROLLUP_FLAG,
12932 pjp.CURR_RECORD_TYPE_ID,
12933 pjp.CURRENCY_CODE,
12934 sum(pjp.REVENUE) REVENUE,
12935 sum(pjp.INITIAL_FUNDING_AMOUNT) INITIAL_FUNDING_AMOUNT,
12936 sum(pjp.INITIAL_FUNDING_COUNT) INITIAL_FUNDING_COUNT,
12937 sum(pjp.ADDITIONAL_FUNDING_AMOUNT) ADDITIONAL_FUNDING_AMOUNT,
12938 sum(pjp.ADDITIONAL_FUNDING_COUNT) ADDITIONAL_FUNDING_COUNT,
12939 sum(pjp.CANCELLED_FUNDING_AMOUNT) CANCELLED_FUNDING_AMOUNT,
12940 sum(pjp.CANCELLED_FUNDING_COUNT) CANCELLED_FUNDING_COUNT,
12941 sum(pjp.FUNDING_ADJUSTMENT_AMOUNT) FUNDING_ADJUSTMENT_AMOUNT,
12942 sum(pjp.FUNDING_ADJUSTMENT_COUNT) FUNDING_ADJUSTMENT_COUNT,
12943 sum(pjp.REVENUE_WRITEOFF) REVENUE_WRITEOFF,
12944 sum(pjp.AR_INVOICE_AMOUNT) AR_INVOICE_AMOUNT,
12945 sum(pjp.AR_INVOICE_COUNT) AR_INVOICE_COUNT,
12946 sum(pjp.AR_CASH_APPLIED_AMOUNT) AR_CASH_APPLIED_AMOUNT,
12947 sum(pjp.AR_INVOICE_WRITE_OFF_AMOUNT) AR_INVOICE_WRITE_OFF_AMOUNT,
12948 sum(pjp.AR_INVOICE_WRITEOFF_COUNT) AR_INVOICE_WRITEOFF_COUNT,
12949 sum(pjp.AR_CREDIT_MEMO_AMOUNT) AR_CREDIT_MEMO_AMOUNT,
12950 sum(pjp.AR_CREDIT_MEMO_COUNT) AR_CREDIT_MEMO_COUNT,
12951 sum(pjp.UNBILLED_RECEIVABLES) UNBILLED_RECEIVABLES,
12952 sum(pjp.UNEARNED_REVENUE) UNEARNED_REVENUE,
12953 sum(pjp.AR_UNAPPR_INVOICE_AMOUNT) AR_UNAPPR_INVOICE_AMOUNT,
12954 sum(pjp.AR_UNAPPR_INVOICE_COUNT) AR_UNAPPR_INVOICE_COUNT,
12955 sum(pjp.AR_APPR_INVOICE_AMOUNT) AR_APPR_INVOICE_AMOUNT,
12956 sum(pjp.AR_APPR_INVOICE_COUNT) AR_APPR_INVOICE_COUNT,
12957 sum(pjp.AR_AMOUNT_DUE) AR_AMOUNT_DUE,
12958 sum(pjp.AR_COUNT_DUE) AR_COUNT_DUE,
12959 sum(pjp.AR_AMOUNT_OVERDUE) AR_AMOUNT_OVERDUE,
12960 sum(pjp.AR_COUNT_OVERDUE) AR_COUNT_OVERDUE,
12961 sum(pjp.CUSTOM1) CUSTOM1,
12962 sum(pjp.CUSTOM2) CUSTOM2,
12963 sum(pjp.CUSTOM3) CUSTOM3,
12964 sum(pjp.CUSTOM4) CUSTOM4,
12965 sum(pjp.CUSTOM5) CUSTOM5,
12966 sum(pjp.CUSTOM6) CUSTOM6,
12967 sum(pjp.CUSTOM7) CUSTOM7,
12968 sum(pjp.CUSTOM8) CUSTOM8,
12969 sum(pjp.CUSTOM9) CUSTOM9,
12970 sum(pjp.CUSTOM10) CUSTOM10,
12971 sum(pjp.CUSTOM11) CUSTOM11,
12972 sum(pjp.CUSTOM12) CUSTOM12,
12973 sum(pjp.CUSTOM13) CUSTOM13,
12974 sum(pjp.CUSTOM14) CUSTOM14,
12975 sum(pjp.CUSTOM15) CUSTOM15
12976 from
12977 (
12978 select /*+ ordered index(wbs PA_XBS_DENORM_N2) */
12979 -- get incremental task level amounts from source and
12980 -- program rollup amounts from interim
12981 wbs_hdr.WBS_VERSION_ID,
12982 'LF' RELATIONSHIP_TYPE,
12983 decode(top_slice.INVERT_ID,
12984 'PRJ', 'Y',
12985 decode(wbs.SUB_LEVEL,
12986 1, 'Y', 'N')) PUSHUP_FLAG,
12987 'Y' INSERT_FLAG,
12988 pjp1.PROJECT_ID,
12989 pjp1.PROJECT_ORG_ID,
12990 pjp1.PROJECT_ORGANIZATION_ID,
12991 decode(top_slice.INVERT_ID,
12992 'PRJ', prg.SUP_EMT_ID,
12993 decode(wbs.SUB_LEVEL,
12994 1, prg.SUP_EMT_ID,
12995 wbs.SUP_EMT_ID)) PROJECT_ELEMENT_ID,
12996 pjp1.TIME_ID,
12997 pjp1.PERIOD_TYPE_ID,
12998 pjp1.CALENDAR_TYPE,
12999 'Y' WBS_ROLLUP_FLAG,
13000 pjp1.PRG_ROLLUP_FLAG,
13001 pjp1.CURR_RECORD_TYPE_ID,
13002 pjp1.CURRENCY_CODE,
13003 pjp1.REVENUE,
13004 pjp1.INITIAL_FUNDING_AMOUNT,
13005 pjp1.INITIAL_FUNDING_COUNT,
13006 pjp1.ADDITIONAL_FUNDING_AMOUNT,
13007 pjp1.ADDITIONAL_FUNDING_COUNT,
13008 pjp1.CANCELLED_FUNDING_AMOUNT,
13009 pjp1.CANCELLED_FUNDING_COUNT,
13010 pjp1.FUNDING_ADJUSTMENT_AMOUNT,
13011 pjp1.FUNDING_ADJUSTMENT_COUNT,
13012 pjp1.REVENUE_WRITEOFF,
13013 pjp1.AR_INVOICE_AMOUNT,
13014 pjp1.AR_INVOICE_COUNT,
13015 pjp1.AR_CASH_APPLIED_AMOUNT,
13016 pjp1.AR_INVOICE_WRITE_OFF_AMOUNT,
13017 pjp1.AR_INVOICE_WRITEOFF_COUNT,
13018 pjp1.AR_CREDIT_MEMO_AMOUNT,
13019 pjp1.AR_CREDIT_MEMO_COUNT,
13020 pjp1.UNBILLED_RECEIVABLES,
13021 pjp1.UNEARNED_REVENUE,
13022 pjp1.AR_UNAPPR_INVOICE_AMOUNT,
13023 pjp1.AR_UNAPPR_INVOICE_COUNT,
13024 pjp1.AR_APPR_INVOICE_AMOUNT,
13025 pjp1.AR_APPR_INVOICE_COUNT,
13026 pjp1.AR_AMOUNT_DUE,
13027 pjp1.AR_COUNT_DUE,
13028 pjp1.AR_AMOUNT_OVERDUE,
13029 pjp1.AR_COUNT_OVERDUE,
13030 pjp1.CUSTOM1,
13031 pjp1.CUSTOM2,
13032 pjp1.CUSTOM3,
13033 pjp1.CUSTOM4,
13034 pjp1.CUSTOM5,
13035 pjp1.CUSTOM6,
13036 pjp1.CUSTOM7,
13037 pjp1.CUSTOM8,
13038 pjp1.CUSTOM9,
13039 pjp1.CUSTOM10,
13040 pjp1.CUSTOM11,
13041 pjp1.CUSTOM12,
13042 pjp1.CUSTOM13,
13043 pjp1.CUSTOM14,
13044 pjp1.CUSTOM15
13045 from
13046 PJI_AC_AGGR_PJP1_T pjp1,
13047 PJI_PJP_WBS_HEADER wbs_hdr,
13048 PA_XBS_DENORM wbs,
13049 PJI_XBS_DENORM prg,
13050 (
13051 select 1 WBS_SUP_LEVEL,
13052 1 WBS_SUB_LEVEL,
13053 'PRJ' INVERT_ID
13054 from DUAL
13055 union all
13056 select 1 WBS_SUP_LEVEL,
13057 1 WBS_SUB_LEVEL,
13058 'WBS' INVERT_ID
13059 from DUAL
13060 ) top_slice
13061 where
13062 prg.STRUCT_TYPE = 'PRG' and
13063 prg.SUP_LEVEL = l_level and
13064 prg.SUB_LEVEL = l_level and
13065 wbs.STRUCT_TYPE = 'WBS' and
13066 ((wbs.SUP_LEVEL = 1 and
13067 wbs.SUB_LEVEL = 1) or
13068 (wbs.SUP_LEVEL <> wbs.SUB_LEVEL)) and
13069 wbs.STRUCT_VERSION_ID = prg.SUP_ID and
13070 wbs.SUP_PROJECT_ID = prg.SUP_PROJECT_ID and
13071 -- pjp1.WORKER_ID = p_worker_id and
13072 pjp1.PRG_LEVEL in (0, l_level) and
13073 pjp1.WBS_ROLLUP_FLAG = 'N' and
13074 pjp1.PRG_ROLLUP_FLAG in ('Y', 'N') and
13075 wbs_hdr.PLAN_VERSION_ID = -1 and
13076 pjp1.PROJECT_ID = wbs_hdr.PROJECT_ID and
13077 wbs.STRUCT_VERSION_ID = wbs_hdr.WBS_VERSION_ID and
13078 pjp1.PROJECT_ELEMENT_ID = wbs.SUB_EMT_ID and
13079 wbs.SUP_LEVEL = top_slice.WBS_SUP_LEVEL (+) and
13080 wbs.SUB_LEVEL <> top_slice.WBS_SUB_LEVEL (+)
13081 union all
13082 select /*+ ordered */
13083 -- get incremental project level amounts from source
13084 wbs_hdr.WBS_VERSION_ID,
13085 'LF' RELATIONSHIP_TYPE,
13086 'Y' PUSHUP_FLAG,
13087 'N' INSERT_FLAG,
13088 pjp1.PROJECT_ID,
13089 pjp1.PROJECT_ORG_ID,
13090 pjp1.PROJECT_ORGANIZATION_ID,
13091 pjp1.PROJECT_ELEMENT_ID,
13092 pjp1.TIME_ID,
13093 pjp1.PERIOD_TYPE_ID,
13094 pjp1.CALENDAR_TYPE,
13095 'Y' WBS_ROLLUP_FLAG,
13096 pjp1.PRG_ROLLUP_FLAG,
13097 pjp1.CURR_RECORD_TYPE_ID,
13098 pjp1.CURRENCY_CODE,
13099 pjp1.REVENUE,
13100 pjp1.INITIAL_FUNDING_AMOUNT,
13101 pjp1.INITIAL_FUNDING_COUNT,
13102 pjp1.ADDITIONAL_FUNDING_AMOUNT,
13103 pjp1.ADDITIONAL_FUNDING_COUNT,
13104 pjp1.CANCELLED_FUNDING_AMOUNT,
13105 pjp1.CANCELLED_FUNDING_COUNT,
13106 pjp1.FUNDING_ADJUSTMENT_AMOUNT,
13107 pjp1.FUNDING_ADJUSTMENT_COUNT,
13108 pjp1.REVENUE_WRITEOFF,
13109 pjp1.AR_INVOICE_AMOUNT,
13110 pjp1.AR_INVOICE_COUNT,
13111 pjp1.AR_CASH_APPLIED_AMOUNT,
13112 pjp1.AR_INVOICE_WRITE_OFF_AMOUNT,
13113 pjp1.AR_INVOICE_WRITEOFF_COUNT,
13114 pjp1.AR_CREDIT_MEMO_AMOUNT,
13115 pjp1.AR_CREDIT_MEMO_COUNT,
13116 pjp1.UNBILLED_RECEIVABLES,
13117 pjp1.UNEARNED_REVENUE,
13118 pjp1.AR_UNAPPR_INVOICE_AMOUNT,
13119 pjp1.AR_UNAPPR_INVOICE_COUNT,
13120 pjp1.AR_APPR_INVOICE_AMOUNT,
13121 pjp1.AR_APPR_INVOICE_COUNT,
13122 pjp1.AR_AMOUNT_DUE,
13123 pjp1.AR_COUNT_DUE,
13124 pjp1.AR_AMOUNT_OVERDUE,
13125 pjp1.AR_COUNT_OVERDUE,
13126 pjp1.CUSTOM1,
13127 pjp1.CUSTOM2,
13128 pjp1.CUSTOM3,
13129 pjp1.CUSTOM4,
13130 pjp1.CUSTOM5,
13131 pjp1.CUSTOM6,
13132 pjp1.CUSTOM7,
13133 pjp1.CUSTOM8,
13134 pjp1.CUSTOM9,
13135 pjp1.CUSTOM10,
13136 pjp1.CUSTOM11,
13137 pjp1.CUSTOM12,
13138 pjp1.CUSTOM13,
13139 pjp1.CUSTOM14,
13140 pjp1.CUSTOM15
13141 from
13142 PJI_AC_AGGR_PJP1_T pjp1,
13143 PJI_PJP_WBS_HEADER wbs_hdr,
13144 PJI_XBS_DENORM prg
13145 where
13146 prg.STRUCT_TYPE = 'PRG' and
13147 prg.SUP_LEVEL = l_level and
13148 prg.SUB_LEVEL = l_level and
13149 -- pjp1.WORKER_ID = p_worker_id and
13150 pjp1.PROJECT_ID = prg.SUP_PROJECT_ID and
13151 pjp1.PROJECT_ELEMENT_ID = prg.SUP_EMT_ID and
13152 pjp1.PRG_LEVEL = 0 and
13153 pjp1.WBS_ROLLUP_FLAG = 'N' and
13154 pjp1.PRG_ROLLUP_FLAG = 'N' and
13155 wbs_hdr.PROJECT_ID = pjp1.PROJECT_ID and
13156 wbs_hdr.PLAN_VERSION_ID = -1 and
13157 wbs_hdr.WBS_VERSION_ID = prg.SUP_ID
13158 union all
13159 select /*+ ordered
13160 index(log PA_PJI_PROJ_EVENTS_LOG_N2)
13161 index(fpr PJI_AC_XBR_ACCUM_F_N1) */
13162 -- get delta task level amounts from Reporting Lines
13163 wbs_hdr.WBS_VERSION_ID,
13164 'LF' RELATIONSHIP_TYPE,
13165 decode(log.EVENT_TYPE,
13166 'WBS_CHANGE', 'Y',
13167 'WBS_PUBLISH', 'N') PUSHUP_FLAG,
13168 'Y' INSERT_FLAG,
13169 acr.PROJECT_ID,
13170 acr.PROJECT_ORG_ID,
13171 acr.PROJECT_ORGANIZATION_ID,
13172 decode(top_slice.INVERT_ID,
13173 'PRJ', prg.SUP_EMT_ID,
13174 decode(wbs.SUB_LEVEL,
13175 1, prg.SUP_EMT_ID,
13176 wbs.SUP_EMT_ID))
13177 PROJECT_ELEMENT_ID,
13178 acr.TIME_ID,
13179 acr.PERIOD_TYPE_ID,
13180 acr.CALENDAR_TYPE,
13181 'Y' WBS_ROLLUP_FLAG,
13182 acr.PRG_ROLLUP_FLAG,
13183 acr.CURR_RECORD_TYPE_ID,
13184 acr.CURRENCY_CODE,
13185 wbs.SIGN * acr.REVENUE REVENUE,
13186 wbs.SIGN * acr.INITIAL_FUNDING_AMOUNT INITIAL_FUNDING_AMOUNT,
13187 wbs.SIGN * acr.INITIAL_FUNDING_COUNT INITIAL_FUNDING_COUNT,
13188 wbs.SIGN * acr.ADDITIONAL_FUNDING_AMOUNT
13189 ADDITIONAL_FUNDING_AMOUNT,
13190 wbs.SIGN * acr.ADDITIONAL_FUNDING_COUNT
13191 ADDITIONAL_FUNDING_COUNT,
13192 wbs.SIGN * acr.CANCELLED_FUNDING_AMOUNT
13193 CANCELLED_FUNDING_AMOUNT,
13194 wbs.SIGN * acr.CANCELLED_FUNDING_COUNT CANCELLED_FUNDING_COUNT,
13195 wbs.SIGN * acr.FUNDING_ADJUSTMENT_AMOUNT
13196 FUNDING_ADJUSTMENT_AMOUNT,
13197 wbs.SIGN * acr.FUNDING_ADJUSTMENT_COUNT
13198 FUNDING_ADJUSTMENT_COUNT,
13199 wbs.SIGN * acr.REVENUE_WRITEOFF REVENUE_WRITEOFF,
13200 wbs.SIGN * acr.AR_INVOICE_AMOUNT AR_INVOICE_AMOUNT,
13201 wbs.SIGN * acr.AR_INVOICE_COUNT AR_INVOICE_COUNT,
13202 wbs.SIGN * acr.AR_CASH_APPLIED_AMOUNT AR_CASH_APPLIED_AMOUNT,
13203 wbs.SIGN * acr.AR_INVOICE_WRITE_OFF_AMOUNT
13204 AR_INVOICE_WRITE_OFF_AMOUNT,
13205 wbs.SIGN * acr.AR_INVOICE_WRITEOFF_COUNT
13206 AR_INVOICE_WRITEOFF_COUNT,
13207 wbs.SIGN * acr.AR_CREDIT_MEMO_AMOUNT AR_CREDIT_MEMO_AMOUNT,
13208 wbs.SIGN * acr.AR_CREDIT_MEMO_COUNT AR_CREDIT_MEMO_COUNT,
13209 wbs.SIGN * acr.UNBILLED_RECEIVABLES UNBILLED_RECEIVABLES,
13210 wbs.SIGN * acr.UNEARNED_REVENUE UNEARNED_REVENUE,
13211 wbs.SIGN * acr.AR_UNAPPR_INVOICE_AMOUNT
13212 AR_UNAPPR_INVOICE_AMOUNT,
13213 wbs.SIGN * acr.AR_UNAPPR_INVOICE_COUNT AR_UNAPPR_INVOICE_COUNT,
13214 wbs.SIGN * acr.AR_APPR_INVOICE_AMOUNT AR_APPR_INVOICE_AMOUNT,
13215 wbs.SIGN * acr.AR_APPR_INVOICE_COUNT AR_APPR_INVOICE_COUNT,
13216 wbs.SIGN * acr.AR_AMOUNT_DUE AR_AMOUNT_DUE,
13217 wbs.SIGN * acr.AR_COUNT_DUE AR_COUNT_DUE,
13218 wbs.SIGN * acr.AR_AMOUNT_OVERDUE AR_AMOUNT_OVERDUE,
13219 wbs.SIGN * acr.AR_COUNT_OVERDUE AR_COUNT_OVERDUE,
13220 wbs.SIGN * acr.CUSTOM1 CUSTOM1,
13221 wbs.SIGN * acr.CUSTOM2 CUSTOM2,
13222 wbs.SIGN * acr.CUSTOM3 CUSTOM3,
13223 wbs.SIGN * acr.CUSTOM4 CUSTOM4,
13224 wbs.SIGN * acr.CUSTOM5 CUSTOM5,
13225 wbs.SIGN * acr.CUSTOM6 CUSTOM6,
13226 wbs.SIGN * acr.CUSTOM7 CUSTOM7,
13227 wbs.SIGN * acr.CUSTOM8 CUSTOM8,
13228 wbs.SIGN * acr.CUSTOM9 CUSTOM9,
13229 wbs.SIGN * acr.CUSTOM10 CUSTOM10,
13230 wbs.SIGN * acr.CUSTOM11 CUSTOM11,
13231 wbs.SIGN * acr.CUSTOM12 CUSTOM12,
13232 wbs.SIGN * acr.CUSTOM13 CUSTOM13,
13233 wbs.SIGN * acr.CUSTOM14 CUSTOM14,
13234 wbs.SIGN * acr.CUSTOM15 CUSTOM15
13235 from
13236 PA_PJI_PROJ_EVENTS_LOG log,
13237 PJI_PJP_WBS_HEADER wbs_hdr,
13238 PJI_XBS_DENORM_DELTA_T wbs,
13239 PJI_XBS_DENORM prg,
13240 PJI_AC_XBS_ACCUM_F acr,
13241 (
13242 select 1 WBS_SUP_LEVEL,
13243 1 WBS_SUB_LEVEL,
13244 'PRJ' INVERT_ID
13245 from DUAL
13246 union all
13247 select 1 WBS_SUP_LEVEL,
13248 1 WBS_SUB_LEVEL,
13249 'WBS' INVERT_ID
13250 from DUAL
13251 ) top_slice
13252 where
13253 prg.STRUCT_TYPE = 'PRG' and
13254 prg.SUP_LEVEL = l_level and
13255 prg.SUB_LEVEL = l_level and
13256 wbs.WORKER_ID = p_worker_id and
13257 wbs.STRUCT_TYPE = 'WBS' and
13258 wbs.SUP_PROJECT_ID = prg.SUP_PROJECT_ID and
13259 -- log.WORKER_ID = p_worker_id and
13260 log.EVENT_ID = g_event_id and
13261 log.EVENT_TYPE in ('WBS_CHANGE',
13262 'WBS_PUBLISH') and
13263 wbs_hdr.PROJECT_ID = log.ATTRIBUTE1 and
13264 wbs_hdr.PLAN_VERSION_ID = log.ATTRIBUTE3 and
13265 wbs_hdr.PLAN_VERSION_ID = -1 and
13266 wbs_hdr.WBS_VERSION_ID = wbs.STRUCT_VERSION_ID and
13267 wbs_hdr.PROJECT_ID = prg.SUP_PROJECT_ID and
13268 wbs_hdr.WBS_VERSION_ID = prg.SUP_ID and
13269 acr.WBS_ROLLUP_FLAG = 'N' and
13270 acr.PRG_ROLLUP_FLAG = 'N' and
13271 acr.PROJECT_ID = wbs.SUP_PROJECT_ID and
13272 acr.PROJECT_ELEMENT_ID = wbs.SUB_EMT_ID and
13273 acr.PROJECT_ID = wbs_hdr.PROJECT_ID and
13274 wbs.SUP_LEVEL = top_slice.WBS_SUP_LEVEL (+) and
13275 wbs.SUB_LEVEL <> top_slice.WBS_SUB_LEVEL (+) and
13276 (wbs.SUP_LEVEL <> wbs.SUB_LEVEL or
13277 (wbs.SUP_LEVEL = 1 and
13278 wbs.SUB_LEVEL = 1))
13279 ) pjp,
13280 (
13281 select
13282 prg.SUP_PROJECT_ID,
13283 map.ORG_ID SUP_PROJECT_ORG_ID,
13284 map.CARRYING_OUT_ORGANIZATION_ID SUP_PROJECT_ORGANIZATION_ID,
13285 prg.SUP_ID,
13286 prg.SUP_EMT_ID,
13287 prg.SUP_LEVEL,
13288 prg.SUB_ID,
13289 prg.SUB_EMT_ID,
13290 prg.SUB_ROLLUP_ID,
13291 prg.RELATIONSHIP_TYPE RELATIONSHIP_TYPE,
13292 'Y' PUSHUP_FLAG
13293 from
13294 PJI_XBS_DENORM prg,
13295 PA_PROJECTS_ALL map
13296 where
13297 l_level > 1 and
13298 prg.STRUCT_TYPE = 'PRG' and
13299 prg.RELATIONSHIP_TYPE = 'LF' and
13300 prg.SUB_ROLLUP_ID is not null and
13301 prg.SUB_LEVEL = l_level and
13302 -- map.WORKER_ID = p_worker_id and
13303 map.PROJECT_ID = prg.SUP_PROJECT_ID
13304 ) prg
13305 where
13306 pjp.WBS_VERSION_ID = prg.SUB_ID (+) and
13307 pjp.RELATIONSHIP_TYPE = prg.RELATIONSHIP_TYPE (+) and
13308 pjp.PUSHUP_FLAG = prg.PUSHUP_FLAG (+)
13309 group by
13310 decode(nvl(prg.SUB_EMT_ID, -1), nvl(prg.SUB_ROLLUP_ID, -1),
13311 pjp.INSERT_FLAG, 'Y'),
13312 decode(nvl(prg.SUB_EMT_ID, -1), nvl(prg.SUB_ROLLUP_ID, -1),
13313 null, prg.SUP_ID),
13314 decode(nvl(prg.SUB_EMT_ID, -1), nvl(prg.SUB_ROLLUP_ID, -1),
13315 null, prg.SUP_EMT_ID),
13316 decode(nvl(prg.SUB_EMT_ID, -1), nvl(prg.SUB_ROLLUP_ID, -1),
13317 l_level, prg.SUP_LEVEL),
13318 decode(nvl(prg.SUB_EMT_ID, -1), nvl(prg.SUB_ROLLUP_ID, -1),
13319 pjp.PROJECT_ID,
13320 prg.SUP_PROJECT_ID),
13321 decode(nvl(prg.SUB_EMT_ID, -1), nvl(prg.SUB_ROLLUP_ID, -1),
13322 pjp.PROJECT_ORG_ID,
13323 prg.SUP_PROJECT_ORG_ID),
13324 decode(nvl(prg.SUB_EMT_ID, -1), nvl(prg.SUB_ROLLUP_ID, -1),
13325 pjp.PROJECT_ORGANIZATION_ID,
13326 prg.SUP_PROJECT_ORGANIZATION_ID),
13327 decode(nvl(prg.SUB_EMT_ID, -1), nvl(prg.SUB_ROLLUP_ID, -1),
13328 pjp.PROJECT_ELEMENT_ID,
13329 prg.SUB_ROLLUP_ID),
13330 pjp.TIME_ID,
13331 pjp.PERIOD_TYPE_ID,
13332 pjp.CALENDAR_TYPE,
13333 decode(nvl(prg.SUB_EMT_ID, -1), nvl(prg.SUB_ROLLUP_ID, -1),
13334 pjp.WBS_ROLLUP_FLAG, 'N'),
13335 decode(nvl(prg.SUB_EMT_ID, -1), nvl(prg.SUB_ROLLUP_ID, -1),
13336 pjp.PRG_ROLLUP_FLAG, 'Y'),
13337 pjp.CURR_RECORD_TYPE_ID,
13338 pjp.CURRENCY_CODE
13339 ) pjp1_i,
13340 PA_PROJ_ELEM_VER_STRUCTURE sup_fin_ver,
13341 PA_PROJ_WORKPLAN_ATTR sup_wpa
13342 where
13343 pjp1_i.INSERT_FLAG = 'Y' and
13344 pjp1_i.PROJECT_ID = sup_fin_ver.PROJECT_ID (+) and
13345 pjp1_i.SUP_ID = sup_fin_ver.ELEMENT_VERSION_ID (+) and
13346 'STRUCTURE_WORKING' = sup_fin_ver.STATUS_CODE (+) and
13347 pjp1_i.SUP_EMT_ID = sup_wpa.PROJ_ELEMENT_ID (+) and
13348 'N' = sup_wpa.WP_ENABLE_VERSION_FLAG (+) and
13349 (pjp1_i.SUP_ID is null or
13350 (pjp1_i.SUP_ID is not null and
13351 (sup_fin_ver.PROJECT_ID is not null or
13352 sup_wpa.PROJ_ELEMENT_ID is not null)));
13353
13354 l_level := l_level - 1;
13355
13356 end loop;
13357
13358 end if;
13359
13360 end ROLLUP_ACR_WBS;
13361
13362
13363 -- -----------------------------------------------------
13364 -- procedure ROLLUP_FPR_PRG
13365 --
13366 -- History
13367 -- 19-MAR-2004 SVERMETT Created
13368 --
13369 -- Internal PJP Summarization API.
13370 --
13371 -- -----------------------------------------------------
13372 procedure ROLLUP_FPR_PRG (p_worker_id in number) is
13373
13374 l_process varchar2(30);
13375 l_prg_exists varchar2(25);
13376 l_extraction_type varchar2(30);
13377 l_level number;
13378 l_max_level number;
13379 l_step_seq number;
13380 l_level_seq number;
13381 l_count number;
13382
13383 begin
13384
13385 l_process := PJI_PJP_SUM_MAIN.g_process || to_char(p_worker_id);
13386
13387 if (not PJI_PROCESS_UTIL.NEED_TO_RUN_STEP(l_process, 'PJI_PJP_SUM_ROLLUP.ROLLUP_FPR_PRG(p_worker_id);')) then
13388 return;
13389 end if;
13390
13391 l_prg_exists := PJI_PROCESS_UTIL.GET_PROCESS_PARAMETER
13392 (l_process, 'PROGRAM_EXISTS');
13393
13394 if (l_prg_exists = 'N') then
13395 PJI_PROCESS_UTIL.REGISTER_STEP_COMPLETION(l_process,
13396 'PJI_PJP_SUM_ROLLUP.ROLLUP_FPR_PRG(p_worker_id);');
13397 commit;
13398 return;
13399 end if;
13400
13401 l_extraction_type := PJI_PROCESS_UTIL.GET_PROCESS_PARAMETER(l_process, 'EXTRACTION_TYPE');
13402
13403 -- allow recovery after each level is processed
13404
13405 select
13406 STEP_SEQ
13407 into
13408 l_step_seq
13409 from
13410 PJI_SYSTEM_PRC_STATUS
13411 where
13412 PROCESS_NAME = l_process and
13413 STEP_NAME = 'PJI_PJP_SUM_ROLLUP.ROLLUP_FPR_PRG(p_worker_id);';
13414
13415 select
13416 count(*)
13417 into
13418 l_count
13419 from
13420 PJI_SYSTEM_PRC_STATUS
13421 where
13422 PROCESS_NAME = l_process and
13423 STEP_NAME like 'ROLLUP_FPR_PRG%';
13424
13425 if (l_count = 0) then
13426
13427 select
13428 nvl(max(den.SUP_LEVEL), 0)
13429 into
13430 l_level
13431 from
13432 PJI_XBS_DENORM_DELTA den
13433 where
13434 den.WORKER_ID = p_worker_id and
13435 den.STRUCT_TYPE = 'PRG';
13436
13437 PJI_PROCESS_UTIL.SET_PROCESS_PARAMETER(l_process,
13438 'MAX_PROGRAM_LEVEL',
13439 l_level);
13440
13441 insert into PJI_SYSTEM_PRC_STATUS
13442 (
13443 PROCESS_NAME,
13444 STEP_SEQ,
13445 STEP_STATUS,
13446 STEP_NAME,
13447 START_DATE,
13448 END_DATE
13449 )
13450 select
13451 l_process PROCESS_NAME,
13452 to_char(l_step_seq + SUP_LEVEL / 1000) STEP_SEQ,
13453 null STEP_STATUS,
13454 'ROLLUP_FPR_PRG - level ' ||
13455 to_char(l_level - SUP_LEVEL + 1) STEP_NAME,
13456 null START_DATE,
13457 null END_DATE
13458 from
13459 (
13460 select
13461 SUP_LEVEL
13462 from
13463 PJI_XBS_DENORM_DELTA
13464 where
13465 worker_id = p_worker_id and
13466 STRUCT_TYPE = 'PRG'
13467 union all
13468 select
13469 SUP_LEVEL
13470 from
13471 PA_XBS_DENORM den,
13472 PJI_PJP_PROJ_BATCH_MAP map
13473 where
13474 map.WORKER_ID = p_worker_id and
13475 den.STRUCT_TYPE = 'PRG' and
13476 den.SUP_PROJECT_ID = map.PROJECT_ID
13477 )
13478 where
13479 exists
13480 (
13481 select
13482 1
13483 from
13484 PJI_XBS_DENORM_DELTA
13485 where
13486 WORKER_ID = p_worker_id and
13487 ROWNUM = 1
13488 )
13489 group by
13490 SUP_LEVEL
13491 order by
13492 SUP_LEVEL desc;
13493
13494 end if;
13495
13496 l_max_level := PJI_PROCESS_UTIL.GET_PROCESS_PARAMETER
13497 (l_process, 'MAX_PROGRAM_LEVEL');
13498
13499 select
13500 nvl(to_number(min(STEP_SEQ)), 0)
13501 into
13502 l_level_seq
13503 from
13504 PJI_SYSTEM_PRC_STATUS
13505 where
13506 PROCESS_NAME = l_process and
13507 STEP_NAME like 'ROLLUP_FPR_PRG%' and
13508 STEP_STATUS is null;
13509
13510 if (l_level_seq = 0) then
13511 l_level := 0;
13512 else
13513 l_level := l_max_level - ((l_level_seq - l_step_seq) * 1000) + 1;
13514 end if;
13515
13516 while (l_level > 0) loop
13517
13518 update PJI_SYSTEM_PRC_STATUS
13519 set START_DATE = sysdate
13520 where PROCESS_NAME = l_process and
13521 STEP_SEQ = l_level_seq;
13522
13523 -- rollup project hiearchy
13524
13525 insert into PJI_FP_AGGR_PJP1 pjp1_i
13526 (
13527 WORKER_ID,
13528 RECORD_TYPE,
13529 PRG_LEVEL,
13530 LINE_TYPE,
13531 PROJECT_ID,
13532 PROJECT_ORG_ID,
13533 PROJECT_ORGANIZATION_ID,
13534 PROJECT_ELEMENT_ID,
13535 TIME_ID,
13536 PERIOD_TYPE_ID,
13537 CALENDAR_TYPE,
13538 RBS_AGGR_LEVEL,
13539 WBS_ROLLUP_FLAG,
13540 PRG_ROLLUP_FLAG,
13541 CURR_RECORD_TYPE_ID,
13542 CURRENCY_CODE,
13543 RBS_ELEMENT_ID,
13544 RBS_VERSION_ID,
13545 PLAN_VERSION_ID,
13546 PLAN_TYPE_ID,
13547 PLAN_TYPE_CODE,
13548 RAW_COST,
13549 BRDN_COST,
13550 REVENUE,
13551 BILL_RAW_COST,
13552 BILL_BRDN_COST,
13553 BILL_LABOR_RAW_COST,
13554 BILL_LABOR_BRDN_COST,
13555 BILL_LABOR_HRS,
13556 EQUIPMENT_RAW_COST,
13557 EQUIPMENT_BRDN_COST,
13558 CAPITALIZABLE_RAW_COST,
13559 CAPITALIZABLE_BRDN_COST,
13560 LABOR_RAW_COST,
13561 LABOR_BRDN_COST,
13562 LABOR_HRS,
13563 LABOR_REVENUE,
13564 EQUIPMENT_HOURS,
13565 BILLABLE_EQUIPMENT_HOURS,
13566 SUP_INV_COMMITTED_COST,
13567 PO_COMMITTED_COST,
13568 PR_COMMITTED_COST,
13569 OTH_COMMITTED_COST,
13570 ACT_LABOR_HRS,
13571 ACT_EQUIP_HRS,
13572 ACT_LABOR_BRDN_COST,
13573 ACT_EQUIP_BRDN_COST,
13574 ACT_BRDN_COST,
13575 ACT_RAW_COST,
13576 ACT_REVENUE,
13577 ACT_LABOR_RAW_COST,
13578 ACT_EQUIP_RAW_COST,
13579 ETC_LABOR_HRS,
13580 ETC_EQUIP_HRS,
13581 ETC_LABOR_BRDN_COST,
13582 ETC_EQUIP_BRDN_COST,
13583 ETC_BRDN_COST,
13584 ETC_RAW_COST,
13585 ETC_LABOR_RAW_COST,
13586 ETC_EQUIP_RAW_COST,
13587 CUSTOM1,
13588 CUSTOM2,
13589 CUSTOM3,
13590 CUSTOM4,
13591 CUSTOM5,
13592 CUSTOM6,
13593 CUSTOM7,
13594 CUSTOM8,
13595 CUSTOM9,
13596 CUSTOM10,
13597 CUSTOM11,
13598 CUSTOM12,
13599 CUSTOM13,
13600 CUSTOM14,
13601 CUSTOM15
13602 )
13603 select /*+ no_merge(pjp) */
13604 p_worker_id WORKER_ID,
13605 'P' RECORD_TYPE,
13606 l_level PRG_LEVEL,
13607 pjp.LINE_TYPE,
13608 pjp.SUP_PROJECT_ID PROJECT_ID,
13609 map.PROJECT_ORG_ID,
13610 map.PROJECT_ORGANIZATION_ID,
13611 decode(pjp.STRUCT_TYPE,
13612 'DO_NOT_ROLLUP', pjp.SUB_ROLLUP_ID,
13613 decode(top_slice.INVERT_ID,
13614 'PRJ', pjp.SUP_EMT_ID, wbs.SUP_EMT_ID)
13615 ) PROJECT_ELEMENT_ID,
13616 pjp.TIME_ID,
13617 pjp.PERIOD_TYPE_ID,
13618 pjp.CALENDAR_TYPE,
13619 pjp.RBS_AGGR_LEVEL,
13620 decode(pjp.STRUCT_TYPE,
13621 'DO_NOT_ROLLUP', 'N',
13622 decode(top_slice.INVERT_ID,
13623 'PRJ', 'Y', decode(pjp.SUB_ROLLUP_ID,
13624 wbs.SUP_EMT_ID,
13625 'N', 'Y'))
13626 ) WBS_ROLLUP_FLAG,
13627 'Y' PRG_ROLLUP_FLAG,
13628 pjp.CURR_RECORD_TYPE_ID,
13629 pjp.CURRENCY_CODE,
13630 pjp.RBS_ELEMENT_ID,
13631 pjp.RBS_VERSION_ID,
13632 pjp.PLAN_VERSION_ID,
13633 pjp.PLAN_TYPE_ID,
13634 pjp.PLAN_TYPE_CODE,
13635 sum(pjp.RAW_COST) RAW_COST,
13636 sum(pjp.BRDN_COST) BRDN_COST,
13637 sum(pjp.REVENUE) REVENUE,
13638 sum(pjp.BILL_RAW_COST) BILL_RAW_COST,
13639 sum(pjp.BILL_BRDN_COST) BILL_BRDN_COST,
13640 sum(pjp.BILL_LABOR_RAW_COST) BILL_LABOR_RAW_COST,
13641 sum(pjp.BILL_LABOR_BRDN_COST) BILL_LABOR_BRDN_COST,
13642 sum(pjp.BILL_LABOR_HRS) BILL_LABOR_HRS,
13643 sum(pjp.EQUIPMENT_RAW_COST) EQUIPMENT_RAW_COST,
13644 sum(pjp.EQUIPMENT_BRDN_COST) EQUIPMENT_BRDN_COST,
13645 sum(pjp.CAPITALIZABLE_RAW_COST) CAPITALIZABLE_RAW_COST,
13646 sum(pjp.CAPITALIZABLE_BRDN_COST) CAPITALIZABLE_BRDN_COST,
13647 sum(pjp.LABOR_RAW_COST) LABOR_RAW_COST,
13648 sum(pjp.LABOR_BRDN_COST) LABOR_BRDN_COST,
13649 sum(pjp.LABOR_HRS) LABOR_HRS,
13650 sum(pjp.LABOR_REVENUE) LABOR_REVENUE,
13651 sum(pjp.EQUIPMENT_HOURS) EQUIPMENT_HOURS,
13652 sum(pjp.BILLABLE_EQUIPMENT_HOURS) BILLABLE_EQUIPMENT_HOURS,
13653 sum(pjp.SUP_INV_COMMITTED_COST) SUP_INV_COMMITTED_COST,
13654 sum(pjp.PO_COMMITTED_COST) PO_COMMITTED_COST,
13655 sum(pjp.PR_COMMITTED_COST) PR_COMMITTED_COST,
13656 sum(pjp.OTH_COMMITTED_COST) OTH_COMMITTED_COST,
13657 sum(pjp.ACT_LABOR_HRS) ACT_LABOR_HRS,
13658 sum(pjp.ACT_EQUIP_HRS) ACT_EQUIP_HRS,
13659 sum(pjp.ACT_LABOR_BRDN_COST) ACT_LABOR_BRDN_COST,
13660 sum(pjp.ACT_EQUIP_BRDN_COST) ACT_EQUIP_BRDN_COST,
13661 sum(pjp.ACT_BRDN_COST) ACT_BRDN_COST,
13662 sum(pjp.ACT_RAW_COST) ACT_RAW_COST,
13663 sum(pjp.ACT_REVENUE) ACT_REVENUE,
13664 sum(pjp.ACT_LABOR_RAW_COST) ACT_LABOR_RAW_COST,
13665 sum(pjp.ACT_EQUIP_RAW_COST) ACT_EQUIP_RAW_COST,
13666 sum(pjp.ETC_LABOR_HRS) ETC_LABOR_HRS,
13667 sum(pjp.ETC_EQUIP_HRS) ETC_EQUIP_HRS,
13668 sum(pjp.ETC_LABOR_BRDN_COST) ETC_LABOR_BRDN_COST,
13669 sum(pjp.ETC_EQUIP_BRDN_COST) ETC_EQUIP_BRDN_COST,
13670 sum(pjp.ETC_BRDN_COST) ETC_BRDN_COST,
13671 sum(pjp.ETC_RAW_COST) ETC_RAW_COST,
13672 sum(pjp.ETC_LABOR_RAW_COST) ETC_LABOR_RAW_COST,
13673 sum(pjp.ETC_EQUIP_RAW_COST) ETC_EQUIP_RAW_COST,
13674 sum(pjp.CUSTOM1) CUSTOM1,
13675 sum(pjp.CUSTOM2) CUSTOM2,
13676 sum(pjp.CUSTOM3) CUSTOM3,
13677 sum(pjp.CUSTOM4) CUSTOM4,
13678 sum(pjp.CUSTOM5) CUSTOM5,
13679 sum(pjp.CUSTOM6) CUSTOM6,
13680 sum(pjp.CUSTOM7) CUSTOM7,
13681 sum(pjp.CUSTOM8) CUSTOM8,
13682 sum(pjp.CUSTOM9) CUSTOM9,
13683 sum(pjp.CUSTOM10) CUSTOM10,
13684 sum(pjp.CUSTOM11) CUSTOM11,
13685 sum(pjp.CUSTOM12) CUSTOM12,
13686 sum(pjp.CUSTOM13) CUSTOM13,
13687 sum(pjp.CUSTOM14) CUSTOM14,
13688 sum(pjp.CUSTOM15) CUSTOM15
13689 from
13690 (
13691 select /*+ ordered index(fpr PJI_FP_XBS_ACCUM_F_N1) */
13692 -- get structure level amounts from Reporting Lines
13693 decode(fpr.RBS_AGGR_LEVEL,
13694 'L', 'DO_NOT_ROLLUP',
13695 'WBS') STRUCT_TYPE,
13696 to_char(null) LINE_TYPE,
13697 prg.SUP_PROJECT_ID,
13698 prg.SUP_ID,
13699 prg.SUP_EMT_ID,
13700 prg.SUB_EMT_ID,
13701 prg.SUB_ROLLUP_ID,
13702 'FPR' LINE_SOURCE,
13703 decode(fpr.PLAN_VERSION_ID,
13704 -1, prg.SUB_ID,
13705 -3, prg.SUB_ID,
13706 -4, prg.SUB_ID,
13707 decode(fin_plan.PLAN_VERSION_ID,
13708 null, null,
13709 prg.SUB_ID)) SUB_ID,
13710 decode(fpr.PLAN_VERSION_ID,
13711 -1, 'N',
13712 -3, 'N',
13713 -4, 'N',
13714 decode(fin_plan.PLAN_VERSION_ID,
13715 null, null,
13716 'N')) SUP_WP_FLAG,
13717 decode(fpr.PLAN_VERSION_ID,
13718 -1, fpr.PLAN_VERSION_ID,
13719 -3, fpr.PLAN_VERSION_ID,
13720 -4, fpr.PLAN_VERSION_ID,
13721 decode(fin_plan.PLAN_VERSION_ID,
13722 null, null,
13723 fin_plan.PLAN_VERSION_ID)
13724 ) SUB_PLAN_VERSION_ID,
13725 decode(fpr.PLAN_VERSION_ID,
13726 -1, fpr.PLAN_TYPE_ID,
13727 -3, fpr.PLAN_TYPE_ID,
13728 -4, fpr.PLAN_TYPE_ID,
13729 decode(fin_plan.PLAN_VERSION_ID,
13730 null, null,
13731 fpr.PLAN_TYPE_ID)) SUB_PLAN_TYPE_ID,
13732 fpr.TIME_ID,
13733 fpr.PERIOD_TYPE_ID,
13734 fpr.CALENDAR_TYPE,
13735 fpr.RBS_AGGR_LEVEL,
13736 fpr.CURR_RECORD_TYPE_ID,
13737 fpr.CURRENCY_CODE,
13738 fpr.RBS_ELEMENT_ID,
13739 fpr.RBS_VERSION_ID,
13740 decode(wbs_hdr.WP_FLAG,
13741 'N', decode(wbs_hdr.PLAN_VERSION_ID,
13742 -1, fpr.PLAN_VERSION_ID,
13743 fin_plan.PLAN_VERSION_ID),
13744 sup_wbs_hdr.PLAN_VERSION_ID) PLAN_VERSION_ID,
13745 decode(wbs_hdr.WP_FLAG,
13746 'N', fpr.PLAN_TYPE_ID,
13747 sup_wbs_hdr.PLAN_TYPE_ID) PLAN_TYPE_ID,
13748 fpr.PLAN_TYPE_CODE,
13749 decode(wbs_hdr.WP_FLAG
13750 || '_' || sup_wbs_hdr.WP_FLAG
13751 || '_' || sub_ver.STATUS_CODE
13752 || '_' || sup_ver.STATUS_CODE,
13753 'Y_Y__', to_number(null),
13754 'Y_Y__STRUCTURE_PUBLISHED', to_number(null),
13755 prg.SIGN * fpr.RAW_COST) RAW_COST,
13756 decode(wbs_hdr.WP_FLAG
13757 || '_' || sup_wbs_hdr.WP_FLAG
13758 || '_' || sub_ver.STATUS_CODE
13759 || '_' || sup_ver.STATUS_CODE,
13760 'Y_Y__', to_number(null),
13761 'Y_Y__STRUCTURE_PUBLISHED', to_number(null),
13762 prg.SIGN * fpr.BRDN_COST) BRDN_COST,
13763 decode(wbs_hdr.WP_FLAG
13764 || '_' || sup_wbs_hdr.WP_FLAG
13765 || '_' || sub_ver.STATUS_CODE
13766 || '_' || sup_ver.STATUS_CODE,
13767 'Y_Y__', to_number(null),
13768 'Y_Y__STRUCTURE_PUBLISHED', to_number(null),
13769 prg.SIGN * fpr.REVENUE) REVENUE,
13770 decode(wbs_hdr.WP_FLAG
13771 || '_' || sup_wbs_hdr.WP_FLAG
13772 || '_' || sub_ver.STATUS_CODE
13773 || '_' || sup_ver.STATUS_CODE,
13774 'Y_Y__', to_number(null),
13775 'Y_Y__STRUCTURE_PUBLISHED', to_number(null),
13776 prg.SIGN * fpr.BILL_RAW_COST) BILL_RAW_COST,
13777 decode(wbs_hdr.WP_FLAG
13778 || '_' || sup_wbs_hdr.WP_FLAG
13779 || '_' || sub_ver.STATUS_CODE
13780 || '_' || sup_ver.STATUS_CODE,
13781 'Y_Y__', to_number(null),
13782 'Y_Y__STRUCTURE_PUBLISHED', to_number(null),
13783 prg.SIGN * fpr.BILL_BRDN_COST) BILL_BRDN_COST,
13784 decode(wbs_hdr.WP_FLAG
13785 || '_' || sup_wbs_hdr.WP_FLAG
13786 || '_' || sub_ver.STATUS_CODE
13787 || '_' || sup_ver.STATUS_CODE,
13788 'Y_Y__', to_number(null),
13789 'Y_Y__STRUCTURE_PUBLISHED', to_number(null),
13790 prg.SIGN * fpr.BILL_LABOR_RAW_COST) BILL_LABOR_RAW_COST,
13791 decode(wbs_hdr.WP_FLAG
13792 || '_' || sup_wbs_hdr.WP_FLAG
13793 || '_' || sub_ver.STATUS_CODE
13794 || '_' || sup_ver.STATUS_CODE,
13795 'Y_Y__', to_number(null),
13796 'Y_Y__STRUCTURE_PUBLISHED', to_number(null),
13797 prg.SIGN * fpr.BILL_LABOR_BRDN_COST) BILL_LABOR_BRDN_COST,
13798 decode(wbs_hdr.WP_FLAG
13799 || '_' || sup_wbs_hdr.WP_FLAG
13800 || '_' || sub_ver.STATUS_CODE
13801 || '_' || sup_ver.STATUS_CODE,
13802 'Y_Y__', to_number(null),
13803 'Y_Y__STRUCTURE_PUBLISHED', to_number(null),
13804 prg.SIGN * fpr.BILL_LABOR_HRS) BILL_LABOR_HRS,
13805 decode(wbs_hdr.WP_FLAG
13806 || '_' || sup_wbs_hdr.WP_FLAG
13807 || '_' || sub_ver.STATUS_CODE
13808 || '_' || sup_ver.STATUS_CODE,
13809 'Y_Y__', to_number(null),
13810 'Y_Y__STRUCTURE_PUBLISHED', to_number(null),
13811 prg.SIGN * fpr.EQUIPMENT_RAW_COST) EQUIPMENT_RAW_COST,
13812 decode(wbs_hdr.WP_FLAG
13813 || '_' || sup_wbs_hdr.WP_FLAG
13814 || '_' || sub_ver.STATUS_CODE
13815 || '_' || sup_ver.STATUS_CODE,
13816 'Y_Y__', to_number(null),
13817 'Y_Y__STRUCTURE_PUBLISHED', to_number(null),
13818 prg.SIGN * fpr.EQUIPMENT_BRDN_COST) EQUIPMENT_BRDN_COST,
13819 decode(wbs_hdr.WP_FLAG
13820 || '_' || sup_wbs_hdr.WP_FLAG
13821 || '_' || sub_ver.STATUS_CODE
13822 || '_' || sup_ver.STATUS_CODE,
13823 'Y_Y__', to_number(null),
13824 'Y_Y__STRUCTURE_PUBLISHED', to_number(null),
13825 prg.SIGN * fpr.CAPITALIZABLE_RAW_COST)
13826 CAPITALIZABLE_RAW_COST,
13827 decode(wbs_hdr.WP_FLAG
13828 || '_' || sup_wbs_hdr.WP_FLAG
13829 || '_' || sub_ver.STATUS_CODE
13830 || '_' || sup_ver.STATUS_CODE,
13831 'Y_Y__', to_number(null),
13832 'Y_Y__STRUCTURE_PUBLISHED', to_number(null),
13833 prg.SIGN * fpr.CAPITALIZABLE_BRDN_COST)
13834 CAPITALIZABLE_BRDN_COST,
13835 decode(wbs_hdr.WP_FLAG
13836 || '_' || sup_wbs_hdr.WP_FLAG
13837 || '_' || sub_ver.STATUS_CODE
13838 || '_' || sup_ver.STATUS_CODE,
13839 'Y_Y__', to_number(null),
13840 'Y_Y__STRUCTURE_PUBLISHED', to_number(null),
13841 prg.SIGN * fpr.LABOR_RAW_COST) LABOR_RAW_COST,
13842 decode(wbs_hdr.WP_FLAG
13843 || '_' || sup_wbs_hdr.WP_FLAG
13844 || '_' || sub_ver.STATUS_CODE
13845 || '_' || sup_ver.STATUS_CODE,
13846 'Y_Y__', to_number(null),
13847 'Y_Y__STRUCTURE_PUBLISHED', to_number(null),
13848 prg.SIGN * fpr.LABOR_BRDN_COST) LABOR_BRDN_COST,
13849 decode(wbs_hdr.WP_FLAG
13850 || '_' || sup_wbs_hdr.WP_FLAG
13851 || '_' || sub_ver.STATUS_CODE
13852 || '_' || sup_ver.STATUS_CODE,
13853 'Y_Y__', to_number(null),
13854 'Y_Y__STRUCTURE_PUBLISHED', to_number(null),
13855 prg.SIGN * fpr.LABOR_HRS) LABOR_HRS,
13856 decode(wbs_hdr.WP_FLAG
13857 || '_' || sup_wbs_hdr.WP_FLAG
13858 || '_' || sub_ver.STATUS_CODE
13859 || '_' || sup_ver.STATUS_CODE,
13860 'Y_Y__', to_number(null),
13861 'Y_Y__STRUCTURE_PUBLISHED', to_number(null),
13862 prg.SIGN * fpr.LABOR_REVENUE) LABOR_REVENUE,
13863 decode(wbs_hdr.WP_FLAG
13864 || '_' || sup_wbs_hdr.WP_FLAG
13865 || '_' || sub_ver.STATUS_CODE
13866 || '_' || sup_ver.STATUS_CODE,
13867 'Y_Y__', to_number(null),
13868 'Y_Y__STRUCTURE_PUBLISHED', to_number(null),
13869 prg.SIGN * fpr.EQUIPMENT_HOURS) EQUIPMENT_HOURS,
13870 decode(wbs_hdr.WP_FLAG
13871 || '_' || sup_wbs_hdr.WP_FLAG
13872 || '_' || sub_ver.STATUS_CODE
13873 || '_' || sup_ver.STATUS_CODE,
13874 'Y_Y__', to_number(null),
13875 'Y_Y__STRUCTURE_PUBLISHED', to_number(null),
13876 prg.SIGN * fpr.BILLABLE_EQUIPMENT_HOURS)
13877 BILLABLE_EQUIPMENT_HOURS,
13878 decode(wbs_hdr.WP_FLAG
13879 || '_' || sup_wbs_hdr.WP_FLAG
13880 || '_' || sub_ver.STATUS_CODE
13881 || '_' || sup_ver.STATUS_CODE,
13882 'Y_Y__', to_number(null),
13883 'Y_Y__STRUCTURE_PUBLISHED', to_number(null),
13884 prg.SIGN * fpr.SUP_INV_COMMITTED_COST)
13885 SUP_INV_COMMITTED_COST,
13886 decode(wbs_hdr.WP_FLAG
13887 || '_' || sup_wbs_hdr.WP_FLAG
13888 || '_' || sub_ver.STATUS_CODE
13889 || '_' || sup_ver.STATUS_CODE,
13890 'Y_Y__', to_number(null),
13891 'Y_Y__STRUCTURE_PUBLISHED', to_number(null),
13892 prg.SIGN * fpr.PO_COMMITTED_COST) PO_COMMITTED_COST,
13893 decode(wbs_hdr.WP_FLAG
13894 || '_' || sup_wbs_hdr.WP_FLAG
13895 || '_' || sub_ver.STATUS_CODE
13896 || '_' || sup_ver.STATUS_CODE,
13897 'Y_Y__', to_number(null),
13898 'Y_Y__STRUCTURE_PUBLISHED', to_number(null),
13899 prg.SIGN * fpr.PR_COMMITTED_COST) PR_COMMITTED_COST,
13900 decode(wbs_hdr.WP_FLAG
13901 || '_' || sup_wbs_hdr.WP_FLAG
13902 || '_' || sub_ver.STATUS_CODE
13903 || '_' || sup_ver.STATUS_CODE,
13904 'Y_Y__', to_number(null),
13905 'Y_Y__STRUCTURE_PUBLISHED', to_number(null),
13906 prg.SIGN * fpr.OTH_COMMITTED_COST) OTH_COMMITTED_COST,
13907 decode(wbs_hdr.WP_FLAG
13908 || '_' || sup_wbs_hdr.WP_FLAG
13909 || '_' || sup_ver.STATUS_CODE,
13910 'Y_Y_', to_number(null),
13911 prg.SIGN * fpr.ACT_LABOR_HRS) ACT_LABOR_HRS,
13912 decode(wbs_hdr.WP_FLAG
13913 || '_' || sup_wbs_hdr.WP_FLAG
13914 || '_' || sup_ver.STATUS_CODE,
13915 'Y_Y_', to_number(null),
13916 prg.SIGN * fpr.ACT_EQUIP_HRS) ACT_EQUIP_HRS,
13917 decode(wbs_hdr.WP_FLAG
13918 || '_' || sup_wbs_hdr.WP_FLAG
13919 || '_' || sup_ver.STATUS_CODE,
13920 'Y_Y_', to_number(null),
13921 prg.SIGN * fpr.ACT_LABOR_BRDN_COST) ACT_LABOR_BRDN_COST,
13922 decode(wbs_hdr.WP_FLAG
13923 || '_' || sup_wbs_hdr.WP_FLAG
13924 || '_' || sup_ver.STATUS_CODE,
13925 'Y_Y_', to_number(null),
13926 prg.SIGN * fpr.ACT_EQUIP_BRDN_COST) ACT_EQUIP_BRDN_COST,
13927 decode(wbs_hdr.WP_FLAG
13928 || '_' || sup_wbs_hdr.WP_FLAG
13929 || '_' || sup_ver.STATUS_CODE,
13930 'Y_Y_', to_number(null),
13931 prg.SIGN * fpr.ACT_BRDN_COST) ACT_BRDN_COST,
13932 decode(wbs_hdr.WP_FLAG
13933 || '_' || sup_wbs_hdr.WP_FLAG
13934 || '_' || sup_ver.STATUS_CODE,
13935 'Y_Y_', to_number(null),
13936 prg.SIGN * fpr.ACT_RAW_COST) ACT_RAW_COST,
13937 decode(wbs_hdr.WP_FLAG
13938 || '_' || sup_wbs_hdr.WP_FLAG
13939 || '_' || sup_ver.STATUS_CODE,
13940 'Y_Y_', to_number(null),
13941 prg.SIGN * fpr.ACT_REVENUE) ACT_REVENUE,
13942 decode(wbs_hdr.WP_FLAG
13943 || '_' || sup_wbs_hdr.WP_FLAG
13944 || '_' || sup_ver.STATUS_CODE,
13945 'Y_Y_', to_number(null),
13946 prg.SIGN * fpr.ACT_LABOR_RAW_COST) ACT_LABOR_RAW_COST,
13947 decode(wbs_hdr.WP_FLAG
13948 || '_' || sup_wbs_hdr.WP_FLAG
13949 || '_' || sup_ver.STATUS_CODE,
13950 'Y_Y_', to_number(null),
13951 prg.SIGN * fpr.ACT_EQUIP_RAW_COST) ACT_EQUIP_RAW_COST,
13952 decode(wbs_hdr.WP_FLAG
13953 || '_' || sup_wbs_hdr.WP_FLAG
13954 || '_' || sup_ver.STATUS_CODE,
13955 'Y_Y_', to_number(null),
13956 prg.SIGN * fpr.ETC_LABOR_HRS) ETC_LABOR_HRS,
13957 decode(wbs_hdr.WP_FLAG
13958 || '_' || sup_wbs_hdr.WP_FLAG
13959 || '_' || sup_ver.STATUS_CODE,
13960 'Y_Y_', to_number(null),
13961 prg.SIGN * fpr.ETC_EQUIP_HRS) ETC_EQUIP_HRS,
13962 decode(wbs_hdr.WP_FLAG
13963 || '_' || sup_wbs_hdr.WP_FLAG
13964 || '_' || sup_ver.STATUS_CODE,
13965 'Y_Y_', to_number(null),
13966 prg.SIGN * fpr.ETC_LABOR_BRDN_COST) ETC_LABOR_BRDN_COST,
13967 decode(wbs_hdr.WP_FLAG
13968 || '_' || sup_wbs_hdr.WP_FLAG
13969 || '_' || sup_ver.STATUS_CODE,
13970 'Y_Y_', to_number(null),
13971 prg.SIGN * fpr.ETC_EQUIP_BRDN_COST) ETC_EQUIP_BRDN_COST,
13972 decode(wbs_hdr.WP_FLAG
13973 || '_' || sup_wbs_hdr.WP_FLAG
13974 || '_' || sup_ver.STATUS_CODE,
13975 'Y_Y_', to_number(null),
13976 prg.SIGN * fpr.ETC_BRDN_COST) ETC_BRDN_COST,
13977 decode(wbs_hdr.WP_FLAG
13978 || '_' || sup_wbs_hdr.WP_FLAG
13979 || '_' || sup_ver.STATUS_CODE,
13980 'Y_Y_', to_number(null),
13981 prg.SIGN * fpr.ETC_RAW_COST) ETC_RAW_COST,
13982 decode(wbs_hdr.WP_FLAG
13983 || '_' || sup_wbs_hdr.WP_FLAG
13984 || '_' || sup_ver.STATUS_CODE,
13985 'Y_Y_', to_number(null),
13986 prg.SIGN * fpr.ETC_LABOR_RAW_COST) ETC_LABOR_RAW_COST,
13987 decode(wbs_hdr.WP_FLAG
13988 || '_' || sup_wbs_hdr.WP_FLAG
13989 || '_' || sup_ver.STATUS_CODE,
13990 'Y_Y_', to_number(null),
13991 prg.SIGN * fpr.ETC_EQUIP_RAW_COST) ETC_EQUIP_RAW_COST,
13992 prg.SIGN * fpr.CUSTOM1 CUSTOM1,
13993 prg.SIGN * fpr.CUSTOM2 CUSTOM2,
13994 prg.SIGN * fpr.CUSTOM3 CUSTOM3,
13995 prg.SIGN * fpr.CUSTOM4 CUSTOM4,
13996 prg.SIGN * fpr.CUSTOM5 CUSTOM5,
13997 prg.SIGN * fpr.CUSTOM6 CUSTOM6,
13998 prg.SIGN * fpr.CUSTOM7 CUSTOM7,
13999 prg.SIGN * fpr.CUSTOM8 CUSTOM8,
14000 prg.SIGN * fpr.CUSTOM9 CUSTOM9,
14001 prg.SIGN * fpr.CUSTOM10 CUSTOM10,
14002 prg.SIGN * fpr.CUSTOM11 CUSTOM11,
14003 prg.SIGN * fpr.CUSTOM12 CUSTOM12,
14004 prg.SIGN * fpr.CUSTOM13 CUSTOM13,
14005 prg.SIGN * fpr.CUSTOM14 CUSTOM14,
14006 prg.SIGN * fpr.CUSTOM15 CUSTOM15
14007 from
14008 PJI_XBS_DENORM_DELTA prg,
14009 PA_PROJ_ELEMENTS prj_emt,
14010 PJI_PJP_WBS_HEADER wbs_hdr,
14011 PJI_FP_XBS_ACCUM_F fpr,
14012 PJI_PJP_WBS_HEADER sup_wbs_hdr,
14013 PA_PROJ_ELEM_VER_STRUCTURE sub_ver,
14014 PA_PROJ_ELEM_VER_STRUCTURE sup_ver,
14015 (
14016 select 'Y' CB, 'N' CO, -3 PLAN_VERSION_ID
14017 from DUAL union all
14018 select 'N' CB, 'Y' CO, -4 PLAN_VERSION_ID
14019 from DUAL union all
14020 select 'Y' CB, 'Y' CO, -3 PLAN_VERSION_ID
14021 from DUAL union all
14022 select 'Y' CB, 'Y' CO, -4 PLAN_VERSION_ID
14023 from DUAL
14024 ) fin_plan
14025 where
14026 prg.WORKER_ID = p_worker_id and
14027 prg.STRUCT_TYPE = 'PRG' and
14028 prg.SUP_LEVEL = l_level and
14029 nvl(prg.SUB_ROLLUP_ID,
14030 prg.SUP_EMT_ID) <> prg.SUP_EMT_ID and
14031 fpr.PROJECT_ID = prj_emt.PROJECT_ID and
14032 (((fpr.RBS_AGGR_LEVEL,
14033 fpr.WBS_ROLLUP_FLAG,
14034 fpr.PRG_ROLLUP_FLAG) in (('T', 'Y', 'Y'),
14035 ('T', 'Y', 'N'),
14036 ('T', 'N', 'Y'),
14037 ('T', 'N', 'N'),
14038 ('L', 'N', 'N')) and
14039 fpr.PROJECT_ELEMENT_ID = prg.SUB_EMT_ID) or
14040 ((fpr.RBS_AGGR_LEVEL,
14041 fpr.WBS_ROLLUP_FLAG,
14042 fpr.PRG_ROLLUP_FLAG) in (('L', 'N', 'Y'),
14043 ('L', 'N', 'N')) and
14044 fpr.PROJECT_ELEMENT_ID <> prg.SUB_EMT_ID)) and
14045 decode(fpr.PLAN_VERSION_ID,
14046 -1, 'LF',
14047 -2, 'LF',
14048 -3, 'LF',
14049 -4, 'LF',
14050 decode(wbs_hdr.WP_FLAG,
14051 'N', 'LF',
14052 'LW')) = prg.RELATIONSHIP_TYPE and
14053 prj_emt.PROJ_ELEMENT_ID = prg.SUB_EMT_ID and
14054 wbs_hdr.PROJECT_ID = prj_emt.PROJECT_ID and
14055 decode(wbs_hdr.WP_FLAG,
14056 'Y', wbs_hdr.WBS_VERSION_ID,
14057 -1) = decode(wbs_hdr.WP_FLAG,
14058 'Y', prg.SUB_ID,
14059 -1) and
14060 wbs_hdr.PLAN_VERSION_ID = fpr.PLAN_VERSION_ID and
14061 wbs_hdr.PLAN_TYPE_CODE = fpr.PLAN_TYPE_CODE and
14062 decode(fpr.PLAN_VERSION_ID,
14063 -3, fpr.PLAN_TYPE_ID,
14064 -4, fpr.PLAN_TYPE_ID,
14065 -1) = decode(fpr.PLAN_VERSION_ID,
14066 -3, wbs_hdr.PLAN_TYPE_ID,
14067 -4, wbs_hdr.PLAN_TYPE_ID,
14068 -1) and
14069 decode(wbs_hdr.WP_FLAG,
14070 'N', decode(fpr.PLAN_VERSION_ID,
14071 -1, 'Y',
14072 -2, 'Y',
14073 -3, 'Y',
14074 -4, 'Y',
14075 decode(fpr.RBS_AGGR_LEVEL
14076 || '_' || wbs_hdr.CB_FLAG
14077 || '_' || wbs_hdr.CO_FLAG,
14078 'L_Y_Y', 'Y',
14079 'L_N_Y', 'Y',
14080 'L_Y_N', 'Y',
14081 'N')),
14082 'Y') = 'Y' and
14083 prg.SUP_PROJECT_ID = sup_wbs_hdr.PROJECT_ID (+) and
14084 prg.SUP_ID = sup_wbs_hdr.WBS_VERSION_ID (+) and
14085 'Y' = sup_wbs_hdr.WP_FLAG (+) and
14086 wbs_hdr.PROJECT_ID = sub_ver.PROJECT_ID (+) and
14087 wbs_hdr.WBS_VERSION_ID = sub_ver.ELEMENT_VERSION_ID (+) and
14088 'STRUCTURE_PUBLISHED' = sub_ver.STATUS_CODE (+) and
14089 sup_wbs_hdr.PROJECT_ID = sup_ver.PROJECT_ID (+) and
14090 sup_wbs_hdr.WBS_VERSION_ID = sup_ver.ELEMENT_VERSION_ID (+) and
14091 'STRUCTURE_PUBLISHED' = sup_ver.STATUS_CODE (+) and
14092 wbs_hdr.CB_FLAG = fin_plan.CB (+) and
14093 wbs_hdr.CO_FLAG = fin_plan.CO (+)
14094 union all
14095 select /*+ ordered */
14096 -- get structure level amounts from interim
14097 decode(pjp1.RBS_AGGR_LEVEL,
14098 'L', 'DO_NOT_ROLLUP',
14099 'WBS') STRUCT_TYPE,
14100 to_char(null) LINE_TYPE,
14101 prg.SUP_PROJECT_ID,
14102 prg.SUP_ID,
14103 prg.SUP_EMT_ID,
14104 prg.SUB_EMT_ID,
14105 prg.SUB_ROLLUP_ID,
14106 'PJP1' LINE_SOURCE,
14107 decode(pjp1.PLAN_VERSION_ID,
14108 -1, prg.SUB_ID,
14109 -3, prg.SUB_ID,
14110 -4, prg.SUB_ID,
14111 decode(fin_plan.PLAN_VERSION_ID,
14112 null, null,
14113 prg.SUB_ID)) SUB_ID,
14114 decode(pjp1.PLAN_VERSION_ID,
14115 -1, 'N',
14116 -3, 'N',
14117 -4, 'N',
14118 decode(fin_plan.PLAN_VERSION_ID,
14119 null, null,
14120 'N')) SUP_WP_FLAG,
14121 decode(pjp1.PLAN_VERSION_ID,
14122 -1, pjp1.PLAN_VERSION_ID,
14123 -3, pjp1.PLAN_VERSION_ID,
14124 -4, pjp1.PLAN_VERSION_ID,
14125 decode(fin_plan.PLAN_VERSION_ID,
14126 null, null,
14127 fin_plan.PLAN_VERSION_ID)
14128 ) SUB_PLAN_VERSION_ID,
14129 decode(pjp1.PLAN_VERSION_ID,
14130 -1, pjp1.PLAN_TYPE_ID,
14131 -3, pjp1.PLAN_TYPE_ID,
14132 -4, pjp1.PLAN_TYPE_ID,
14133 decode(fin_plan.PLAN_VERSION_ID,
14134 null, null,
14135 pjp1.PLAN_TYPE_ID)) SUB_PLAN_TYPE_ID,
14136 pjp1.TIME_ID,
14137 pjp1.PERIOD_TYPE_ID,
14138 pjp1.CALENDAR_TYPE,
14139 pjp1.RBS_AGGR_LEVEL,
14140 pjp1.CURR_RECORD_TYPE_ID,
14141 pjp1.CURRENCY_CODE,
14142 pjp1.RBS_ELEMENT_ID,
14143 pjp1.RBS_VERSION_ID,
14144 decode(wbs_hdr.WP_FLAG,
14145 'N', decode(wbs_hdr.PLAN_VERSION_ID,
14146 -1, pjp1.PLAN_VERSION_ID,
14147 fin_plan.PLAN_VERSION_ID),
14148 sup_wbs_hdr.PLAN_VERSION_ID) PLAN_VERSION_ID,
14149 decode(wbs_hdr.WP_FLAG,
14150 'N', pjp1.PLAN_TYPE_ID,
14151 sup_wbs_hdr.PLAN_TYPE_ID) PLAN_TYPE_ID,
14152 pjp1.PLAN_TYPE_CODE,
14153 decode(wbs_hdr.WP_FLAG
14154 || '_' || sup_wbs_hdr.WP_FLAG
14155 || '_' || sub_ver.STATUS_CODE
14156 || '_' || sup_ver.STATUS_CODE,
14157 'Y_Y__', to_number(null),
14158 'Y_Y__STRUCTURE_PUBLISHED', to_number(null),
14159 pjp1.RAW_COST) RAW_COST,
14160 decode(wbs_hdr.WP_FLAG
14161 || '_' || sup_wbs_hdr.WP_FLAG
14162 || '_' || sub_ver.STATUS_CODE
14163 || '_' || sup_ver.STATUS_CODE,
14164 'Y_Y__', to_number(null),
14165 'Y_Y__STRUCTURE_PUBLISHED', to_number(null),
14166 pjp1.BRDN_COST) BRDN_COST,
14167 decode(wbs_hdr.WP_FLAG
14168 || '_' || sup_wbs_hdr.WP_FLAG
14169 || '_' || sub_ver.STATUS_CODE
14170 || '_' || sup_ver.STATUS_CODE,
14171 'Y_Y__', to_number(null),
14172 'Y_Y__STRUCTURE_PUBLISHED', to_number(null),
14173 pjp1.REVENUE) REVENUE,
14174 decode(wbs_hdr.WP_FLAG
14175 || '_' || sup_wbs_hdr.WP_FLAG
14176 || '_' || sub_ver.STATUS_CODE
14177 || '_' || sup_ver.STATUS_CODE,
14178 'Y_Y__', to_number(null),
14179 'Y_Y__STRUCTURE_PUBLISHED', to_number(null),
14180 pjp1.BILL_RAW_COST) BILL_RAW_COST,
14181 decode(wbs_hdr.WP_FLAG
14182 || '_' || sup_wbs_hdr.WP_FLAG
14183 || '_' || sub_ver.STATUS_CODE
14184 || '_' || sup_ver.STATUS_CODE,
14185 'Y_Y__', to_number(null),
14186 'Y_Y__STRUCTURE_PUBLISHED', to_number(null),
14187 pjp1.BILL_BRDN_COST) BILL_BRDN_COST,
14188 decode(wbs_hdr.WP_FLAG
14189 || '_' || sup_wbs_hdr.WP_FLAG
14190 || '_' || sub_ver.STATUS_CODE
14191 || '_' || sup_ver.STATUS_CODE,
14192 'Y_Y__', to_number(null),
14193 'Y_Y__STRUCTURE_PUBLISHED', to_number(null),
14194 pjp1.BILL_LABOR_RAW_COST) BILL_LABOR_RAW_COST,
14195 decode(wbs_hdr.WP_FLAG
14196 || '_' || sup_wbs_hdr.WP_FLAG
14197 || '_' || sub_ver.STATUS_CODE
14198 || '_' || sup_ver.STATUS_CODE,
14199 'Y_Y__', to_number(null),
14200 'Y_Y__STRUCTURE_PUBLISHED', to_number(null),
14201 pjp1.BILL_LABOR_BRDN_COST) BILL_LABOR_BRDN_COST,
14202 decode(wbs_hdr.WP_FLAG
14203 || '_' || sup_wbs_hdr.WP_FLAG
14204 || '_' || sub_ver.STATUS_CODE
14205 || '_' || sup_ver.STATUS_CODE,
14206 'Y_Y__', to_number(null),
14207 'Y_Y__STRUCTURE_PUBLISHED', to_number(null),
14208 pjp1.BILL_LABOR_HRS) BILL_LABOR_HRS,
14209 decode(wbs_hdr.WP_FLAG
14210 || '_' || sup_wbs_hdr.WP_FLAG
14211 || '_' || sub_ver.STATUS_CODE
14212 || '_' || sup_ver.STATUS_CODE,
14213 'Y_Y__', to_number(null),
14214 'Y_Y__STRUCTURE_PUBLISHED', to_number(null),
14215 pjp1.EQUIPMENT_RAW_COST) EQUIPMENT_RAW_COST,
14216 decode(wbs_hdr.WP_FLAG
14217 || '_' || sup_wbs_hdr.WP_FLAG
14218 || '_' || sub_ver.STATUS_CODE
14219 || '_' || sup_ver.STATUS_CODE,
14220 'Y_Y__', to_number(null),
14221 'Y_Y__STRUCTURE_PUBLISHED', to_number(null),
14222 pjp1.EQUIPMENT_BRDN_COST) EQUIPMENT_BRDN_COST,
14223 decode(wbs_hdr.WP_FLAG
14224 || '_' || sup_wbs_hdr.WP_FLAG
14225 || '_' || sub_ver.STATUS_CODE
14226 || '_' || sup_ver.STATUS_CODE,
14227 'Y_Y__', to_number(null),
14228 'Y_Y__STRUCTURE_PUBLISHED', to_number(null),
14229 pjp1.CAPITALIZABLE_RAW_COST) CAPITALIZABLE_RAW_COST,
14230 decode(wbs_hdr.WP_FLAG
14231 || '_' || sup_wbs_hdr.WP_FLAG
14232 || '_' || sub_ver.STATUS_CODE
14233 || '_' || sup_ver.STATUS_CODE,
14234 'Y_Y__', to_number(null),
14235 'Y_Y__STRUCTURE_PUBLISHED', to_number(null),
14236 pjp1.CAPITALIZABLE_BRDN_COST) CAPITALIZABLE_BRDN_COST,
14237 decode(wbs_hdr.WP_FLAG
14238 || '_' || sup_wbs_hdr.WP_FLAG
14239 || '_' || sub_ver.STATUS_CODE
14240 || '_' || sup_ver.STATUS_CODE,
14241 'Y_Y__', to_number(null),
14242 'Y_Y__STRUCTURE_PUBLISHED', to_number(null),
14243 pjp1.LABOR_RAW_COST) LABOR_RAW_COST,
14244 decode(wbs_hdr.WP_FLAG
14245 || '_' || sup_wbs_hdr.WP_FLAG
14246 || '_' || sub_ver.STATUS_CODE
14247 || '_' || sup_ver.STATUS_CODE,
14248 'Y_Y__', to_number(null),
14249 'Y_Y__STRUCTURE_PUBLISHED', to_number(null),
14250 pjp1.LABOR_BRDN_COST) LABOR_BRDN_COST,
14251 decode(wbs_hdr.WP_FLAG
14252 || '_' || sup_wbs_hdr.WP_FLAG
14253 || '_' || sub_ver.STATUS_CODE
14254 || '_' || sup_ver.STATUS_CODE,
14255 'Y_Y__', to_number(null),
14256 'Y_Y__STRUCTURE_PUBLISHED', to_number(null),
14257 pjp1.LABOR_HRS) LABOR_HRS,
14258 decode(wbs_hdr.WP_FLAG
14259 || '_' || sup_wbs_hdr.WP_FLAG
14260 || '_' || sub_ver.STATUS_CODE
14261 || '_' || sup_ver.STATUS_CODE,
14262 'Y_Y__', to_number(null),
14263 'Y_Y__STRUCTURE_PUBLISHED', to_number(null),
14264 pjp1.LABOR_REVENUE) LABOR_REVENUE,
14265 decode(wbs_hdr.WP_FLAG
14266 || '_' || sup_wbs_hdr.WP_FLAG
14267 || '_' || sub_ver.STATUS_CODE
14268 || '_' || sup_ver.STATUS_CODE,
14269 'Y_Y__', to_number(null),
14270 'Y_Y__STRUCTURE_PUBLISHED', to_number(null),
14271 pjp1.EQUIPMENT_HOURS) EQUIPMENT_HOURS,
14272 decode(wbs_hdr.WP_FLAG
14273 || '_' || sup_wbs_hdr.WP_FLAG
14274 || '_' || sub_ver.STATUS_CODE
14275 || '_' || sup_ver.STATUS_CODE,
14276 'Y_Y__', to_number(null),
14277 'Y_Y__STRUCTURE_PUBLISHED', to_number(null),
14278 pjp1.BILLABLE_EQUIPMENT_HOURS) BILLABLE_EQUIPMENT_HOURS,
14279 decode(wbs_hdr.WP_FLAG
14280 || '_' || sup_wbs_hdr.WP_FLAG
14281 || '_' || sub_ver.STATUS_CODE
14282 || '_' || sup_ver.STATUS_CODE,
14283 'Y_Y__', to_number(null),
14284 'Y_Y__STRUCTURE_PUBLISHED', to_number(null),
14285 pjp1.SUP_INV_COMMITTED_COST) SUP_INV_COMMITTED_COST,
14286 decode(wbs_hdr.WP_FLAG
14287 || '_' || sup_wbs_hdr.WP_FLAG
14288 || '_' || sub_ver.STATUS_CODE
14289 || '_' || sup_ver.STATUS_CODE,
14290 'Y_Y__', to_number(null),
14291 'Y_Y__STRUCTURE_PUBLISHED', to_number(null),
14292 pjp1.PO_COMMITTED_COST) PO_COMMITTED_COST,
14293 decode(wbs_hdr.WP_FLAG
14294 || '_' || sup_wbs_hdr.WP_FLAG
14295 || '_' || sub_ver.STATUS_CODE
14296 || '_' || sup_ver.STATUS_CODE,
14297 'Y_Y__', to_number(null),
14298 'Y_Y__STRUCTURE_PUBLISHED', to_number(null),
14299 pjp1.PR_COMMITTED_COST) PR_COMMITTED_COST,
14300 decode(wbs_hdr.WP_FLAG
14301 || '_' || sup_wbs_hdr.WP_FLAG
14302 || '_' || sub_ver.STATUS_CODE
14303 || '_' || sup_ver.STATUS_CODE,
14304 'Y_Y__', to_number(null),
14305 'Y_Y__STRUCTURE_PUBLISHED', to_number(null),
14306 pjp1.OTH_COMMITTED_COST) OTH_COMMITTED_COST,
14307 decode(wbs_hdr.WP_FLAG
14308 || '_' || sup_wbs_hdr.WP_FLAG
14309 || '_' || sup_ver.STATUS_CODE,
14310 'Y_Y_', to_number(null),
14311 pjp1.ACT_LABOR_HRS) ACT_LABOR_HRS,
14312 decode(wbs_hdr.WP_FLAG
14313 || '_' || sup_wbs_hdr.WP_FLAG
14314 || '_' || sup_ver.STATUS_CODE,
14315 'Y_Y_', to_number(null),
14316 pjp1.ACT_EQUIP_HRS) ACT_EQUIP_HRS,
14317 decode(wbs_hdr.WP_FLAG
14318 || '_' || sup_wbs_hdr.WP_FLAG
14319 || '_' || sup_ver.STATUS_CODE,
14320 'Y_Y_', to_number(null),
14321 pjp1.ACT_LABOR_BRDN_COST) ACT_LABOR_BRDN_COST,
14322 decode(wbs_hdr.WP_FLAG
14323 || '_' || sup_wbs_hdr.WP_FLAG
14324 || '_' || sup_ver.STATUS_CODE,
14325 'Y_Y_', to_number(null),
14326 pjp1.ACT_EQUIP_BRDN_COST) ACT_EQUIP_BRDN_COST,
14327 decode(wbs_hdr.WP_FLAG
14328 || '_' || sup_wbs_hdr.WP_FLAG
14329 || '_' || sup_ver.STATUS_CODE,
14330 'Y_Y_', to_number(null),
14331 pjp1.ACT_BRDN_COST) ACT_BRDN_COST,
14332 decode(wbs_hdr.WP_FLAG
14333 || '_' || sup_wbs_hdr.WP_FLAG
14334 || '_' || sup_ver.STATUS_CODE,
14335 'Y_Y_', to_number(null),
14336 pjp1.ACT_RAW_COST) ACT_RAW_COST,
14337 decode(wbs_hdr.WP_FLAG
14338 || '_' || sup_wbs_hdr.WP_FLAG
14339 || '_' || sup_ver.STATUS_CODE,
14340 'Y_Y_', to_number(null),
14341 pjp1.ACT_REVENUE) ACT_REVENUE,
14342 decode(wbs_hdr.WP_FLAG
14343 || '_' || sup_wbs_hdr.WP_FLAG
14344 || '_' || sup_ver.STATUS_CODE,
14345 'Y_Y_', to_number(null),
14346 pjp1.ACT_LABOR_RAW_COST) ACT_LABOR_RAW_COST,
14347 decode(wbs_hdr.WP_FLAG
14348 || '_' || sup_wbs_hdr.WP_FLAG
14349 || '_' || sup_ver.STATUS_CODE,
14350 'Y_Y_', to_number(null),
14351 pjp1.ACT_EQUIP_RAW_COST) ACT_EQUIP_RAW_COST,
14352 decode(wbs_hdr.WP_FLAG
14353 || '_' || sup_wbs_hdr.WP_FLAG
14354 || '_' || sup_ver.STATUS_CODE,
14355 'Y_Y_', to_number(null),
14356 pjp1.ETC_LABOR_HRS) ETC_LABOR_HRS,
14357 decode(wbs_hdr.WP_FLAG
14358 || '_' || sup_wbs_hdr.WP_FLAG
14359 || '_' || sup_ver.STATUS_CODE,
14360 'Y_Y_', to_number(null),
14361 pjp1.ETC_EQUIP_HRS) ETC_EQUIP_HRS,
14362 decode(wbs_hdr.WP_FLAG
14363 || '_' || sup_wbs_hdr.WP_FLAG
14364 || '_' || sup_ver.STATUS_CODE,
14365 'Y_Y_', to_number(null),
14366 pjp1.ETC_LABOR_BRDN_COST) ETC_LABOR_BRDN_COST,
14367 decode(wbs_hdr.WP_FLAG
14368 || '_' || sup_wbs_hdr.WP_FLAG
14369 || '_' || sup_ver.STATUS_CODE,
14370 'Y_Y_', to_number(null),
14371 pjp1.ETC_EQUIP_BRDN_COST) ETC_EQUIP_BRDN_COST,
14372 decode(wbs_hdr.WP_FLAG
14373 || '_' || sup_wbs_hdr.WP_FLAG
14374 || '_' || sup_ver.STATUS_CODE,
14375 'Y_Y_', to_number(null),
14376 pjp1.ETC_BRDN_COST) ETC_BRDN_COST,
14377 decode(wbs_hdr.WP_FLAG
14378 || '_' || sup_wbs_hdr.WP_FLAG
14379 || '_' || sup_ver.STATUS_CODE,
14380 'Y_Y_', to_number(null),
14381 pjp1.ETC_RAW_COST) ETC_RAW_COST,
14382 decode(wbs_hdr.WP_FLAG
14383 || '_' || sup_wbs_hdr.WP_FLAG
14384 || '_' || sup_ver.STATUS_CODE,
14385 'Y_Y_', to_number(null),
14386 pjp1.ETC_LABOR_RAW_COST) ETC_LABOR_RAW_COST,
14387 decode(wbs_hdr.WP_FLAG
14388 || '_' || sup_wbs_hdr.WP_FLAG
14389 || '_' || sup_ver.STATUS_CODE,
14390 'Y_Y_', to_number(null),
14391 pjp1.ETC_EQUIP_RAW_COST) ETC_EQUIP_RAW_COST,
14392 pjp1.CUSTOM1,
14393 pjp1.CUSTOM2,
14394 pjp1.CUSTOM3,
14395 pjp1.CUSTOM4,
14396 pjp1.CUSTOM5,
14397 pjp1.CUSTOM6,
14398 pjp1.CUSTOM7,
14399 pjp1.CUSTOM8,
14400 pjp1.CUSTOM9,
14401 pjp1.CUSTOM10,
14402 pjp1.CUSTOM11,
14403 pjp1.CUSTOM12,
14404 pjp1.CUSTOM13,
14405 pjp1.CUSTOM14,
14406 pjp1.CUSTOM15
14407 from
14408 PJI_FP_AGGR_PJP1 pjp1,
14409 PJI_PJP_WBS_HEADER wbs_hdr,
14410 PA_PROJ_ELEMENTS prj_emt,
14411 PA_XBS_DENORM prg,
14412 PJI_XBS_DENORM_DELTA prg_delta,
14413 PJI_PJP_WBS_HEADER sup_wbs_hdr,
14414 PA_PROJ_ELEM_VER_STRUCTURE sub_ver,
14415 PA_PROJ_ELEM_VER_STRUCTURE sup_ver,
14416 (
14417 select 'Y' CB, 'N' CO, -3 PLAN_VERSION_ID
14418 from DUAL union all
14419 select 'N' CB, 'Y' CO, -4 PLAN_VERSION_ID
14420 from DUAL union all
14421 select 'Y' CB, 'Y' CO, -3 PLAN_VERSION_ID
14422 from DUAL union all
14423 select 'Y' CB, 'Y' CO, -4 PLAN_VERSION_ID
14424 from DUAL
14425 ) fin_plan
14426 where
14427 prg.STRUCT_TYPE = 'PRG' and
14428 prg.SUP_LEVEL = l_level and
14429 nvl(prg.SUB_ROLLUP_ID,
14430 prg.SUP_EMT_ID) <> prg.SUP_EMT_ID and
14431 p_worker_id = prg_delta.WORKER_ID (+) and
14432 prg.STRUCT_TYPE = prg_delta.STRUCT_TYPE (+) and
14433 prg.SUP_PROJECT_ID = prg_delta.SUP_PROJECT_ID (+) and
14434 prg.SUP_LEVEL = prg_delta.SUP_LEVEL (+) and
14435 prg.SUP_ID = prg_delta.SUP_ID (+) and
14436 prg.SUB_LEVEL = prg_delta.SUB_LEVEL (+) and
14437 prg.SUB_ID = prg_delta.SUB_ID (+) and
14438 prg.RELATIONSHIP_TYPE = prg_delta.RELATIONSHIP_TYPE (+) and
14439 1 = prg_delta.SIGN (+) and
14440 (prg_delta.SUP_PROJECT_ID is not null or
14441 (prg_delta.SUP_PROJECT_ID is null and
14442 pjp1.RECORD_TYPE = 'P')) and
14443 pjp1.WORKER_ID = p_worker_id and
14444 pjp1.PRG_LEVEL in (0, prg.SUB_LEVEL) and
14445 pjp1.PROJECT_ID = prj_emt.PROJECT_ID and
14446 (((pjp1.RBS_AGGR_LEVEL,
14447 pjp1.WBS_ROLLUP_FLAG,
14448 pjp1.PRG_ROLLUP_FLAG) in (('T', 'Y', 'Y'),
14449 ('T', 'Y', 'N'),
14450 ('T', 'N', 'Y'),
14451 ('T', 'N', 'N'),
14452 ('L', 'N', 'N')) and
14453 pjp1.PROJECT_ELEMENT_ID = prg.SUB_EMT_ID) or
14454 ((pjp1.RBS_AGGR_LEVEL,
14455 pjp1.WBS_ROLLUP_FLAG,
14456 pjp1.PRG_ROLLUP_FLAG) in (('L', 'N', 'Y'),
14457 ('L', 'N', 'N')) and
14458 pjp1.PROJECT_ELEMENT_ID <> prg.SUB_EMT_ID)) and
14459 decode(pjp1.PLAN_VERSION_ID,
14460 -1, 'LF',
14461 -2, 'LF',
14462 -3, 'LF',
14463 -4, 'LF',
14464 decode(wbs_hdr.WP_FLAG,
14465 'N', 'LF',
14466 'LW')) = prg.RELATIONSHIP_TYPE and
14467 prg.STRUCT_VERSION_ID is null and
14468 prj_emt.OBJECT_TYPE = 'PA_STRUCTURES' and
14469 prj_emt.PROJ_ELEMENT_ID = prg.SUB_EMT_ID and
14470 wbs_hdr.PROJECT_ID = prj_emt.PROJECT_ID and
14471 wbs_hdr.WBS_VERSION_ID = prg.SUB_ID and
14472 wbs_hdr.PROJECT_ID = pjp1.PROJECT_ID and
14473 wbs_hdr.PLAN_VERSION_ID = pjp1.PLAN_VERSION_ID and
14474 wbs_hdr.PLAN_TYPE_CODE = pjp1.PLAN_TYPE_CODE and
14475 decode(pjp1.PLAN_VERSION_ID,
14476 -3, pjp1.PLAN_TYPE_ID,
14477 -4, pjp1.PLAN_TYPE_ID,
14478 -1) = decode(pjp1.PLAN_VERSION_ID,
14479 -3, wbs_hdr.PLAN_TYPE_ID,
14480 -4, wbs_hdr.PLAN_TYPE_ID,
14481 -1) and
14482 decode(wbs_hdr.WP_FLAG,
14483 'N', decode(pjp1.PLAN_VERSION_ID,
14484 -1, 'Y',
14485 -2, 'Y',
14486 -3, 'Y',
14487 -4, 'Y',
14488 decode(pjp1.RBS_AGGR_LEVEL
14489 || '_' || wbs_hdr.CB_FLAG
14490 || '_' || wbs_hdr.CO_FLAG,
14491 'L_Y_Y', 'Y',
14492 'L_N_Y', 'Y',
14493 'L_Y_N', 'Y',
14494 'N')),
14495 'Y') = 'Y' and
14496 prg.SUP_PROJECT_ID = sup_wbs_hdr.PROJECT_ID (+) and
14497 prg.SUP_ID = sup_wbs_hdr.WBS_VERSION_ID (+) and
14498 'Y' = sup_wbs_hdr.WP_FLAG (+) and
14499 wbs_hdr.PROJECT_ID = sub_ver.PROJECT_ID (+) and
14500 wbs_hdr.WBS_VERSION_ID = sub_ver.ELEMENT_VERSION_ID (+) and
14501 'STRUCTURE_PUBLISHED' = sub_ver.STATUS_CODE (+) and
14502 sup_wbs_hdr.PROJECT_ID = sup_ver.PROJECT_ID (+) and
14503 sup_wbs_hdr.WBS_VERSION_ID = sup_ver.ELEMENT_VERSION_ID (+) and
14504 'STRUCTURE_PUBLISHED' = sup_ver.STATUS_CODE (+) and
14505 wbs_hdr.CB_FLAG = fin_plan.CB (+) and
14506 wbs_hdr.CO_FLAG = fin_plan.CO (+)
14507 ) pjp,
14508 PJI_PJP_PROJ_BATCH_MAP map,
14509 PA_PROJ_WORKPLAN_ATTR sup_wpa,
14510 PA_PROJ_ELEM_VER_STRUCTURE sup_fin_ver,
14511 PA_XBS_DENORM wbs,
14512 (
14513 select 1 WBS_SUP_LEVEL,
14514 'PRJ' INVERT_ID
14515 from DUAL
14516 union all
14517 select 1 WBS_SUP_LEVEL,
14518 'WBS' INVERT_ID
14519 from DUAL
14520 ) top_slice
14521 where
14522 map.WORKER_ID = p_worker_id and
14523 map.PROJECT_ID = pjp.SUP_PROJECT_ID and
14524 pjp.SUP_EMT_ID = sup_wpa.PROJ_ELEMENT_ID and
14525 pjp.SUP_PROJECT_ID = sup_fin_ver.PROJECT_ID (+) and
14526 pjp.SUP_ID = sup_fin_ver.ELEMENT_VERSION_ID (+) and
14527 'STRUCTURE_WORKING' = sup_fin_ver.STATUS_CODE (+) and
14528 (pjp.SUP_WP_FLAG is null or
14529 (pjp.SUP_WP_FLAG is not null and
14530 (sup_fin_ver.PROJECT_ID is not null or
14531 sup_wpa.WP_ENABLE_VERSION_FLAG = 'N'))) and
14532 'WBS' = wbs.STRUCT_TYPE (+) and
14533 pjp.STRUCT_TYPE = wbs.STRUCT_TYPE (+) and
14534 pjp.SUP_PROJECT_ID = wbs.SUP_PROJECT_ID (+) and
14535 pjp.SUP_ID = wbs.STRUCT_VERSION_ID (+) and
14536 pjp.SUB_ROLLUP_ID = wbs.SUB_EMT_ID (+) and
14537 wbs.SUP_LEVEL = top_slice.WBS_SUP_LEVEL (+)
14538 group by
14539 pjp.LINE_TYPE,
14540 pjp.SUP_PROJECT_ID,
14541 map.PROJECT_ORG_ID,
14542 map.PROJECT_ORGANIZATION_ID,
14543 decode(pjp.STRUCT_TYPE,
14544 'DO_NOT_ROLLUP', pjp.SUB_ROLLUP_ID,
14545 decode(top_slice.INVERT_ID,
14546 'PRJ', pjp.SUP_EMT_ID, wbs.SUP_EMT_ID)
14547 ),
14548 pjp.TIME_ID,
14549 pjp.PERIOD_TYPE_ID,
14550 pjp.CALENDAR_TYPE,
14551 pjp.RBS_AGGR_LEVEL,
14552 decode(pjp.STRUCT_TYPE,
14553 'DO_NOT_ROLLUP', 'N',
14554 decode(top_slice.INVERT_ID,
14555 'PRJ', 'Y', decode(pjp.SUB_ROLLUP_ID,
14556 wbs.SUP_EMT_ID,
14557 'N', 'Y'))
14558 ),
14559 pjp.CURR_RECORD_TYPE_ID,
14560 pjp.CURRENCY_CODE,
14561 pjp.RBS_ELEMENT_ID,
14562 pjp.RBS_VERSION_ID,
14563 pjp.PLAN_VERSION_ID,
14564 pjp.PLAN_TYPE_ID,
14565 pjp.PLAN_TYPE_CODE;
14566
14567 update PJI_SYSTEM_PRC_STATUS
14568 set STEP_STATUS = 'C',
14569 END_DATE = sysdate
14570 where PROCESS_NAME = l_process and
14571 STEP_SEQ = l_level_seq;
14572
14573 commit;
14574
14575 select
14576 nvl(to_number(min(STEP_SEQ)), 0)
14577 into
14578 l_level_seq
14579 from
14580 PJI_SYSTEM_PRC_STATUS
14581 where
14582 PROCESS_NAME = l_process and
14583 STEP_NAME like 'ROLLUP_FPR_PRG%' and
14584 STEP_STATUS is null;
14585
14586 if (l_level_seq = 0) then
14587 l_level := 0;
14588 else
14589 l_level := l_max_level - ((l_level_seq - l_step_seq) * 1000) + 1;
14590 end if;
14591
14592 end loop;
14593
14594 PJI_PROCESS_UTIL.REGISTER_STEP_COMPLETION(l_process, 'PJI_PJP_SUM_ROLLUP.ROLLUP_FPR_PRG(p_worker_id);');
14595
14596 commit;
14597
14598 end ROLLUP_FPR_PRG;
14599
14600
14601 -- -----------------------------------------------------
14602 -- procedure ROLLUP_ACR_PRG
14603 --
14604 -- History
14605 -- 19-MAR-2004 SVERMETT Created
14606 --
14607 -- Internal PJP Summarization API.
14608 --
14609 -- -----------------------------------------------------
14610 procedure ROLLUP_ACR_PRG (p_worker_id in number) is
14611
14612 l_process varchar2(30);
14613 l_prg_exists varchar2(25);
14614 l_extraction_type varchar2(30);
14615 l_level number;
14616 l_max_level number;
14617 l_step_seq number;
14618 l_level_seq number;
14619 l_count number;
14620
14621 begin
14622
14623 l_process := PJI_PJP_SUM_MAIN.g_process || to_char(p_worker_id);
14624
14625 if (not PJI_PROCESS_UTIL.NEED_TO_RUN_STEP(l_process, 'PJI_PJP_SUM_ROLLUP.ROLLUP_ACR_PRG(p_worker_id);')) then
14626 return;
14627 end if;
14628
14629 l_prg_exists := PJI_PROCESS_UTIL.GET_PROCESS_PARAMETER
14630 (l_process, 'PROGRAM_EXISTS');
14631
14632 if (l_prg_exists = 'N') then
14633 PJI_PROCESS_UTIL.REGISTER_STEP_COMPLETION(l_process,
14634 'PJI_PJP_SUM_ROLLUP.ROLLUP_ACR_PRG(p_worker_id);');
14635 commit;
14636 return;
14637 end if;
14638
14639 l_extraction_type := PJI_PROCESS_UTIL.GET_PROCESS_PARAMETER(l_process, 'EXTRACTION_TYPE');
14640
14641 -- allow recovery after each level is processed
14642
14643 select
14644 STEP_SEQ
14645 into
14646 l_step_seq
14647 from
14648 PJI_SYSTEM_PRC_STATUS
14649 where
14650 PROCESS_NAME = l_process and
14651 STEP_NAME = 'PJI_PJP_SUM_ROLLUP.ROLLUP_ACR_PRG(p_worker_id);';
14652
14653 select
14654 count(*)
14655 into
14656 l_count
14657 from
14658 PJI_SYSTEM_PRC_STATUS
14659 where
14660 PROCESS_NAME = l_process and
14661 STEP_NAME like 'ROLLUP_ACR_PRG%';
14662
14663 if (l_count = 0) then
14664
14665 select
14666 nvl(max(den.SUP_LEVEL), 0)
14667 into
14668 l_level
14669 from
14670 PJI_XBS_DENORM_DELTA den
14671 where
14672 den.WORKER_ID = p_worker_id and
14673 den.STRUCT_TYPE = 'PRG';
14674
14675 PJI_PROCESS_UTIL.SET_PROCESS_PARAMETER(l_process,
14676 'MAX_PROGRAM_LEVEL',
14677 l_level);
14678
14679 insert into PJI_SYSTEM_PRC_STATUS
14680 (
14681 PROCESS_NAME,
14682 STEP_SEQ,
14683 STEP_STATUS,
14684 STEP_NAME,
14685 START_DATE,
14686 END_DATE
14687 )
14688 select
14689 l_process PROCESS_NAME,
14690 to_char(l_step_seq + SUP_LEVEL / 1000) STEP_SEQ,
14691 null STEP_STATUS,
14692 'ROLLUP_ACR_PRG - level ' ||
14693 to_char(l_level - SUP_LEVEL + 1) STEP_NAME,
14694 null START_DATE,
14695 null END_DATE
14696 from
14697 (
14698 select
14699 SUP_LEVEL
14700 from
14701 PJI_XBS_DENORM_DELTA
14702 where
14703 worker_id = p_worker_id and
14704 STRUCT_TYPE = 'PRG'
14705 union all
14706 select
14707 SUP_LEVEL
14708 from
14709 PA_XBS_DENORM den,
14710 PJI_PJP_PROJ_BATCH_MAP map
14711 where
14712 map.WORKER_ID = p_worker_id and
14713 den.STRUCT_TYPE = 'PRG' and
14714 den.SUP_PROJECT_ID = map.PROJECT_ID
14715 )
14716 where
14717 exists
14718 (
14719 select
14720 1
14721 from
14722 PJI_XBS_DENORM_DELTA
14723 where
14724 WORKER_ID = p_worker_id and
14725 ROWNUM = 1
14726 )
14727 group by
14728 SUP_LEVEL
14729 order by
14730 SUP_LEVEL desc;
14731
14732 end if;
14733
14734 l_max_level := PJI_PROCESS_UTIL.GET_PROCESS_PARAMETER
14735 (l_process, 'MAX_PROGRAM_LEVEL');
14736
14737 select
14738 nvl(to_number(min(STEP_SEQ)), 0)
14739 into
14740 l_level_seq
14741 from
14742 PJI_SYSTEM_PRC_STATUS
14743 where
14744 PROCESS_NAME = l_process and
14745 STEP_NAME like 'ROLLUP_ACR_PRG%' and
14746 STEP_STATUS is null;
14747
14748 if (l_level_seq = 0) then
14749 l_level := 0;
14750 else
14751 l_level := l_max_level - ((l_level_seq - l_step_seq) * 1000) + 1;
14752 end if;
14753
14754 while (l_level > 0) loop
14755
14756 update PJI_SYSTEM_PRC_STATUS
14757 set START_DATE = sysdate
14758 where PROCESS_NAME = l_process and
14759 STEP_SEQ = l_level_seq;
14760
14761 -- rollup project hiearchy
14762
14763 insert into PJI_AC_AGGR_PJP1 pjp1_i
14764 (
14765 WORKER_ID,
14766 RECORD_TYPE,
14767 PRG_LEVEL,
14768 PROJECT_ID,
14769 PROJECT_ORG_ID,
14770 PROJECT_ORGANIZATION_ID,
14771 PROJECT_ELEMENT_ID,
14772 TIME_ID,
14773 PERIOD_TYPE_ID,
14774 CALENDAR_TYPE,
14775 WBS_ROLLUP_FLAG,
14776 PRG_ROLLUP_FLAG,
14777 CURR_RECORD_TYPE_ID,
14778 CURRENCY_CODE,
14779 REVENUE,
14780 INITIAL_FUNDING_AMOUNT,
14781 INITIAL_FUNDING_COUNT,
14782 ADDITIONAL_FUNDING_AMOUNT,
14783 ADDITIONAL_FUNDING_COUNT,
14784 CANCELLED_FUNDING_AMOUNT,
14785 CANCELLED_FUNDING_COUNT,
14786 FUNDING_ADJUSTMENT_AMOUNT,
14787 FUNDING_ADJUSTMENT_COUNT,
14788 REVENUE_WRITEOFF,
14789 AR_INVOICE_AMOUNT,
14790 AR_INVOICE_COUNT,
14791 AR_CASH_APPLIED_AMOUNT,
14792 AR_INVOICE_WRITE_OFF_AMOUNT,
14793 AR_INVOICE_WRITEOFF_COUNT,
14794 AR_CREDIT_MEMO_AMOUNT,
14795 AR_CREDIT_MEMO_COUNT,
14796 UNBILLED_RECEIVABLES,
14797 UNEARNED_REVENUE,
14798 AR_UNAPPR_INVOICE_AMOUNT,
14799 AR_UNAPPR_INVOICE_COUNT,
14800 AR_APPR_INVOICE_AMOUNT,
14801 AR_APPR_INVOICE_COUNT,
14802 AR_AMOUNT_DUE,
14803 AR_COUNT_DUE,
14804 AR_AMOUNT_OVERDUE,
14805 AR_COUNT_OVERDUE,
14806 CUSTOM1,
14807 CUSTOM2,
14808 CUSTOM3,
14809 CUSTOM4,
14810 CUSTOM5,
14811 CUSTOM6,
14812 CUSTOM7,
14813 CUSTOM8,
14814 CUSTOM9,
14815 CUSTOM10,
14816 CUSTOM11,
14817 CUSTOM12,
14818 CUSTOM13,
14819 CUSTOM14,
14820 CUSTOM15
14821 )
14822 select /*+ no_merge(pjp) */
14823 p_worker_id WORKER_ID,
14824 'P' RECORD_TYPE,
14825 l_level PRG_LEVEL,
14826 pjp.SUP_PROJECT_ID PROJECT_ID,
14827 map.PROJECT_ORG_ID,
14828 map.PROJECT_ORGANIZATION_ID,
14829 decode(top_slice.INVERT_ID,
14830 'PRJ', pjp.SUP_EMT_ID,
14831 wbs.SUP_EMT_ID) PROJECT_ELEMENT_ID,
14832 pjp.TIME_ID,
14833 pjp.PERIOD_TYPE_ID,
14834 pjp.CALENDAR_TYPE,
14835 decode(top_slice.INVERT_ID,
14836 'PRJ', 'Y', decode(pjp.SUB_ROLLUP_ID,
14837 wbs.SUP_EMT_ID,
14838 'N', 'Y')) WBS_ROLLUP_FLAG,
14839 'Y' PRG_ROLLUP_FLAG,
14840 pjp.CURR_RECORD_TYPE_ID,
14841 pjp.CURRENCY_CODE,
14842 sum(pjp.REVENUE) REVENUE,
14843 sum(pjp.INITIAL_FUNDING_AMOUNT) INITIAL_FUNDING_AMOUNT,
14844 sum(pjp.INITIAL_FUNDING_COUNT) INITIAL_FUNDING_COUNT,
14845 sum(pjp.ADDITIONAL_FUNDING_AMOUNT) ADDITIONAL_FUNDING_AMOUNT,
14846 sum(pjp.ADDITIONAL_FUNDING_COUNT) ADDITIONAL_FUNDING_COUNT,
14847 sum(pjp.CANCELLED_FUNDING_AMOUNT) CANCELLED_FUNDING_AMOUNT,
14848 sum(pjp.CANCELLED_FUNDING_COUNT) CANCELLED_FUNDING_COUNT,
14849 sum(pjp.FUNDING_ADJUSTMENT_AMOUNT) FUNDING_ADJUSTMENT_AMOUNT,
14850 sum(pjp.FUNDING_ADJUSTMENT_COUNT) FUNDING_ADJUSTMENT_COUNT,
14851 sum(pjp.REVENUE_WRITEOFF) REVENUE_WRITEOFF,
14852 sum(pjp.AR_INVOICE_AMOUNT) AR_INVOICE_AMOUNT,
14853 sum(pjp.AR_INVOICE_COUNT) AR_INVOICE_COUNT,
14854 sum(pjp.AR_CASH_APPLIED_AMOUNT) AR_CASH_APPLIED_AMOUNT,
14855 sum(pjp.AR_INVOICE_WRITE_OFF_AMOUNT) AR_INVOICE_WRITE_OFF_AMOUNT,
14856 sum(pjp.AR_INVOICE_WRITEOFF_COUNT) AR_INVOICE_WRITEOFF_COUNT,
14857 sum(pjp.AR_CREDIT_MEMO_AMOUNT) AR_CREDIT_MEMO_AMOUNT,
14858 sum(pjp.AR_CREDIT_MEMO_COUNT) AR_CREDIT_MEMO_COUNT,
14859 sum(pjp.UNBILLED_RECEIVABLES) UNBILLED_RECEIVABLES,
14860 sum(pjp.UNEARNED_REVENUE) UNEARNED_REVENUE,
14861 sum(pjp.AR_UNAPPR_INVOICE_AMOUNT) AR_UNAPPR_INVOICE_AMOUNT,
14862 sum(pjp.AR_UNAPPR_INVOICE_COUNT) AR_UNAPPR_INVOICE_COUNT,
14863 sum(pjp.AR_APPR_INVOICE_AMOUNT) AR_APPR_INVOICE_AMOUNT,
14864 sum(pjp.AR_APPR_INVOICE_COUNT) AR_APPR_INVOICE_COUNT,
14865 sum(pjp.AR_AMOUNT_DUE) AR_AMOUNT_DUE,
14866 sum(pjp.AR_COUNT_DUE) AR_COUNT_DUE,
14867 sum(pjp.AR_AMOUNT_OVERDUE) AR_AMOUNT_OVERDUE,
14868 sum(pjp.AR_COUNT_OVERDUE) AR_COUNT_OVERDUE,
14869 sum(pjp.CUSTOM1) CUSTOM1,
14870 sum(pjp.CUSTOM2) CUSTOM2,
14871 sum(pjp.CUSTOM3) CUSTOM3,
14872 sum(pjp.CUSTOM4) CUSTOM4,
14873 sum(pjp.CUSTOM5) CUSTOM5,
14874 sum(pjp.CUSTOM6) CUSTOM6,
14875 sum(pjp.CUSTOM7) CUSTOM7,
14876 sum(pjp.CUSTOM8) CUSTOM8,
14877 sum(pjp.CUSTOM9) CUSTOM9,
14878 sum(pjp.CUSTOM10) CUSTOM10,
14879 sum(pjp.CUSTOM11) CUSTOM11,
14880 sum(pjp.CUSTOM12) CUSTOM12,
14881 sum(pjp.CUSTOM13) CUSTOM13,
14882 sum(pjp.CUSTOM14) CUSTOM14,
14883 sum(pjp.CUSTOM15) CUSTOM15
14884 from
14885 (
14886 select /*+ ordered index(acr PJI_AC_XBS_ACCUM_F_N1) */
14887 -- get structure level amounts from Reporting Lines
14888 prg.SUP_PROJECT_ID,
14889 prg.SUP_ID,
14890 prg.SUP_EMT_ID,
14891 prg.SUB_EMT_ID,
14892 prg.SUB_ROLLUP_ID,
14893 'ACR' LINE_SOURCE,
14894 prg.SUB_ID,
14895 acr.TIME_ID,
14896 acr.PERIOD_TYPE_ID,
14897 acr.CALENDAR_TYPE,
14898 acr.CURR_RECORD_TYPE_ID,
14899 acr.CURRENCY_CODE,
14900 prg.SIGN * acr.REVENUE REVENUE,
14901 prg.SIGN * acr.INITIAL_FUNDING_AMOUNT INITIAL_FUNDING_AMOUNT,
14902 prg.SIGN * acr.INITIAL_FUNDING_COUNT INITIAL_FUNDING_COUNT,
14903 prg.SIGN * acr.ADDITIONAL_FUNDING_AMOUNT ADDITIONAL_FUNDING_AMOUNT,
14904 prg.SIGN * acr.ADDITIONAL_FUNDING_COUNT ADDITIONAL_FUNDING_COUNT,
14905 prg.SIGN * acr.CANCELLED_FUNDING_AMOUNT CANCELLED_FUNDING_AMOUNT,
14906 prg.SIGN * acr.CANCELLED_FUNDING_COUNT CANCELLED_FUNDING_COUNT,
14907 prg.SIGN * acr.FUNDING_ADJUSTMENT_AMOUNT FUNDING_ADJUSTMENT_AMOUNT,
14908 prg.SIGN * acr.FUNDING_ADJUSTMENT_COUNT FUNDING_ADJUSTMENT_COUNT,
14909 prg.SIGN * acr.REVENUE_WRITEOFF REVENUE_WRITEOFF,
14910 prg.SIGN * acr.AR_INVOICE_AMOUNT AR_INVOICE_AMOUNT,
14911 prg.SIGN * acr.AR_INVOICE_COUNT AR_INVOICE_COUNT,
14912 prg.SIGN * acr.AR_CASH_APPLIED_AMOUNT AR_CASH_APPLIED_AMOUNT,
14913 prg.SIGN *
14914 acr.AR_INVOICE_WRITE_OFF_AMOUNT AR_INVOICE_WRITE_OFF_AMOUNT,
14915 prg.SIGN * acr.AR_INVOICE_WRITEOFF_COUNT AR_INVOICE_WRITEOFF_COUNT,
14916 prg.SIGN * acr.AR_CREDIT_MEMO_AMOUNT AR_CREDIT_MEMO_AMOUNT,
14917 prg.SIGN * acr.AR_CREDIT_MEMO_COUNT AR_CREDIT_MEMO_COUNT,
14918 prg.SIGN * acr.UNBILLED_RECEIVABLES UNBILLED_RECEIVABLES,
14919 prg.SIGN * acr.UNEARNED_REVENUE UNEARNED_REVENUE,
14920 prg.SIGN * acr.AR_UNAPPR_INVOICE_AMOUNT AR_UNAPPR_INVOICE_AMOUNT,
14921 prg.SIGN * acr.AR_UNAPPR_INVOICE_COUNT AR_UNAPPR_INVOICE_COUNT,
14922 prg.SIGN * acr.AR_APPR_INVOICE_AMOUNT AR_APPR_INVOICE_AMOUNT,
14923 prg.SIGN * acr.AR_APPR_INVOICE_COUNT AR_APPR_INVOICE_COUNT,
14924 prg.SIGN * acr.AR_AMOUNT_DUE AR_AMOUNT_DUE,
14925 prg.SIGN * acr.AR_COUNT_DUE AR_COUNT_DUE,
14926 prg.SIGN * acr.AR_AMOUNT_OVERDUE AR_AMOUNT_OVERDUE,
14927 prg.SIGN * acr.AR_COUNT_OVERDUE AR_COUNT_OVERDUE,
14928 prg.SIGN * acr.CUSTOM1 CUSTOM1,
14929 prg.SIGN * acr.CUSTOM2 CUSTOM2,
14930 prg.SIGN * acr.CUSTOM3 CUSTOM3,
14931 prg.SIGN * acr.CUSTOM4 CUSTOM4,
14932 prg.SIGN * acr.CUSTOM5 CUSTOM5,
14933 prg.SIGN * acr.CUSTOM6 CUSTOM6,
14934 prg.SIGN * acr.CUSTOM7 CUSTOM7,
14935 prg.SIGN * acr.CUSTOM8 CUSTOM8,
14936 prg.SIGN * acr.CUSTOM9 CUSTOM9,
14937 prg.SIGN * acr.CUSTOM10 CUSTOM10,
14938 prg.SIGN * acr.CUSTOM11 CUSTOM11,
14939 prg.SIGN * acr.CUSTOM12 CUSTOM12,
14940 prg.SIGN * acr.CUSTOM13 CUSTOM13,
14941 prg.SIGN * acr.CUSTOM14 CUSTOM14,
14942 prg.SIGN * acr.CUSTOM15 CUSTOM15
14943 from
14944 PJI_XBS_DENORM_DELTA prg,
14945 PA_PROJ_ELEMENTS prj_emt,
14946 PJI_PJP_WBS_HEADER wbs_hdr,
14947 PJI_AC_XBS_ACCUM_F acr
14948 where
14949 prg.WORKER_ID = p_worker_id and
14950 prg.STRUCT_TYPE = 'PRG' and
14951 prg.RELATIONSHIP_TYPE = 'LF' and
14952 prg.SUP_LEVEL = l_level and
14953 nvl(prg.SUB_ROLLUP_ID,
14954 prg.SUP_EMT_ID) <> prg.SUP_EMT_ID and
14955 acr.WBS_ROLLUP_FLAG in ('Y', 'N') and
14956 acr.PRG_ROLLUP_FLAG in ('Y', 'N') and
14957 acr.PROJECT_ID = prj_emt.PROJECT_ID and
14958 acr.PROJECT_ELEMENT_ID = prg.SUB_EMT_ID and
14959 prj_emt.PROJ_ELEMENT_ID = prg.SUB_EMT_ID and
14960 wbs_hdr.PROJECT_ID = prj_emt.PROJECT_ID and
14961 wbs_hdr.PLAN_VERSION_ID = -1
14962 union all
14963 select /*+ ordered */
14964 -- get program rollup amounts
14965 prg.SUP_PROJECT_ID,
14966 prg.SUP_ID,
14967 prg.SUP_EMT_ID,
14968 prg.SUB_EMT_ID,
14969 prg.SUB_ROLLUP_ID,
14970 'PJP1' LINE_SOURCE,
14971 prg.SUB_ID,
14972 pjp1.TIME_ID,
14973 pjp1.PERIOD_TYPE_ID,
14974 pjp1.CALENDAR_TYPE,
14975 pjp1.CURR_RECORD_TYPE_ID,
14976 pjp1.CURRENCY_CODE,
14977 pjp1.REVENUE,
14978 pjp1.INITIAL_FUNDING_AMOUNT,
14979 pjp1.INITIAL_FUNDING_COUNT,
14980 pjp1.ADDITIONAL_FUNDING_AMOUNT,
14981 pjp1.ADDITIONAL_FUNDING_COUNT,
14982 pjp1.CANCELLED_FUNDING_AMOUNT,
14983 pjp1.CANCELLED_FUNDING_COUNT,
14984 pjp1.FUNDING_ADJUSTMENT_AMOUNT,
14985 pjp1.FUNDING_ADJUSTMENT_COUNT,
14986 pjp1.REVENUE_WRITEOFF,
14987 pjp1.AR_INVOICE_AMOUNT,
14988 pjp1.AR_INVOICE_COUNT,
14989 pjp1.AR_CASH_APPLIED_AMOUNT,
14990 pjp1.AR_INVOICE_WRITE_OFF_AMOUNT,
14991 pjp1.AR_INVOICE_WRITEOFF_COUNT,
14992 pjp1.AR_CREDIT_MEMO_AMOUNT,
14993 pjp1.AR_CREDIT_MEMO_COUNT,
14994 pjp1.UNBILLED_RECEIVABLES,
14995 pjp1.UNEARNED_REVENUE,
14996 pjp1.AR_UNAPPR_INVOICE_AMOUNT,
14997 pjp1.AR_UNAPPR_INVOICE_COUNT,
14998 pjp1.AR_APPR_INVOICE_AMOUNT,
14999 pjp1.AR_APPR_INVOICE_COUNT,
15000 pjp1.AR_AMOUNT_DUE,
15001 pjp1.AR_COUNT_DUE,
15002 pjp1.AR_AMOUNT_OVERDUE,
15003 pjp1.AR_COUNT_OVERDUE,
15004 pjp1.CUSTOM1,
15005 pjp1.CUSTOM2,
15006 pjp1.CUSTOM3,
15007 pjp1.CUSTOM4,
15008 pjp1.CUSTOM5,
15009 pjp1.CUSTOM6,
15010 pjp1.CUSTOM7,
15011 pjp1.CUSTOM8,
15012 pjp1.CUSTOM9,
15013 pjp1.CUSTOM10,
15014 pjp1.CUSTOM11,
15015 pjp1.CUSTOM12,
15016 pjp1.CUSTOM13,
15017 pjp1.CUSTOM14,
15018 pjp1.CUSTOM15
15019 from
15020 PJI_AC_AGGR_PJP1 pjp1,
15021 PJI_PJP_WBS_HEADER wbs_hdr,
15022 PA_PROJ_ELEMENTS prj_emt,
15023 PA_XBS_DENORM prg,
15024 PJI_XBS_DENORM_DELTA prg_delta
15025 where
15026 prg.STRUCT_TYPE = 'PRG' and
15027 prg.SUP_LEVEL = l_level and
15028 nvl(prg.SUB_ROLLUP_ID,
15029 prg.SUP_EMT_ID) <> prg.SUP_EMT_ID and
15030 prg.RELATIONSHIP_TYPE = 'LF' and
15031 p_worker_id = prg_delta.WORKER_ID (+) and
15032 prg.STRUCT_TYPE = prg_delta.STRUCT_TYPE (+) and
15033 prg.SUP_PROJECT_ID = prg_delta.SUP_PROJECT_ID (+) and
15034 prg.SUP_LEVEL = prg_delta.SUP_LEVEL (+) and
15035 prg.SUP_ID = prg_delta.SUP_ID (+) and
15036 prg.SUB_LEVEL = prg_delta.SUB_LEVEL (+) and
15037 prg.SUB_ID = prg_delta.SUB_ID (+) and
15038 prg.RELATIONSHIP_TYPE = prg_delta.RELATIONSHIP_TYPE (+) and
15039 1 = prg_delta.SIGN (+) and
15040 (prg_delta.SUP_PROJECT_ID is not null or
15041 (prg_delta.SUP_PROJECT_ID is null and
15042 pjp1.RECORD_TYPE = 'P')) and
15043 pjp1.WORKER_ID = p_worker_id and
15044 pjp1.PRG_LEVEL in (0, prg.SUB_LEVEL) and
15045 pjp1.WBS_ROLLUP_FLAG in ('Y', 'N') and
15046 pjp1.PRG_ROLLUP_FLAG in ('Y', 'N') and
15047 pjp1.PROJECT_ID = prj_emt.PROJECT_ID and
15048 pjp1.PROJECT_ELEMENT_ID = prg.SUB_EMT_ID and
15049 prg.STRUCT_VERSION_ID is null and
15050 prj_emt.OBJECT_TYPE = 'PA_STRUCTURES' and
15051 prj_emt.PROJ_ELEMENT_ID = prg.SUB_EMT_ID and
15052 wbs_hdr.PROJECT_ID = prj_emt.PROJECT_ID and
15053 wbs_hdr.WBS_VERSION_ID = prg.SUB_ID and
15054 wbs_hdr.PROJECT_ID = pjp1.PROJECT_ID and
15055 wbs_hdr.PLAN_VERSION_ID = -1
15056 ) pjp,
15057 PJI_PJP_PROJ_BATCH_MAP map,
15058 PA_PROJ_WORKPLAN_ATTR sup_wpa,
15059 PA_PROJ_ELEM_VER_STRUCTURE sup_fin_ver,
15060 PA_XBS_DENORM wbs,
15061 (
15062 select 1 WBS_SUP_LEVEL,
15063 'PRJ' INVERT_ID
15064 from DUAL
15065 union all
15066 select 1 WBS_SUP_LEVEL,
15067 'WBS' INVERT_ID
15068 from DUAL
15069 ) top_slice
15070 where
15071 map.WORKER_ID = p_worker_id and
15072 map.PROJECT_ID = pjp.SUP_PROJECT_ID and
15073 pjp.SUP_EMT_ID = sup_wpa.PROJ_ELEMENT_ID and
15074 pjp.SUP_PROJECT_ID = sup_fin_ver.PROJECT_ID (+) and
15075 pjp.SUP_ID = sup_fin_ver.ELEMENT_VERSION_ID (+) and
15076 'STRUCTURE_WORKING' = sup_fin_ver.STATUS_CODE (+) and
15077 (sup_fin_ver.PROJECT_ID is not null or
15078 sup_wpa.WP_ENABLE_VERSION_FLAG = 'N') and
15079 wbs.STRUCT_TYPE = 'WBS' and
15080 wbs.SUP_PROJECT_ID = map.PROJECT_ID and
15081 wbs.SUP_PROJECT_ID = pjp.SUP_PROJECT_ID and
15082 wbs.STRUCT_VERSION_ID = pjp.SUP_ID and
15083 wbs.SUB_EMT_ID = pjp.SUB_ROLLUP_ID and
15084 wbs.SUP_LEVEL = top_slice.WBS_SUP_LEVEL (+)
15085 group by
15086 pjp.SUP_PROJECT_ID,
15087 map.PROJECT_ORG_ID,
15088 map.PROJECT_ORGANIZATION_ID,
15089 decode(top_slice.INVERT_ID,
15090 'PRJ', pjp.SUP_EMT_ID,
15091 wbs.SUP_EMT_ID),
15092 pjp.TIME_ID,
15093 pjp.PERIOD_TYPE_ID,
15094 pjp.CALENDAR_TYPE,
15095 decode(top_slice.INVERT_ID,
15096 'PRJ', 'Y', decode(pjp.SUB_ROLLUP_ID,
15097 wbs.SUP_EMT_ID,
15098 'N', 'Y')),
15099 pjp.CURR_RECORD_TYPE_ID,
15100 pjp.CURRENCY_CODE;
15101
15102 update PJI_SYSTEM_PRC_STATUS
15103 set STEP_STATUS = 'C',
15104 END_DATE = sysdate
15105 where PROCESS_NAME = l_process and
15106 STEP_SEQ = l_level_seq;
15107
15108 commit;
15109
15110 select
15111 nvl(to_number(min(STEP_SEQ)), 0)
15112 into
15113 l_level_seq
15114 from
15115 PJI_SYSTEM_PRC_STATUS
15116 where
15117 PROCESS_NAME = l_process and
15118 STEP_NAME like 'ROLLUP_ACR_PRG%' and
15119 STEP_STATUS is null;
15120
15121 if (l_level_seq = 0) then
15122 l_level := 0;
15123 else
15124 l_level := l_max_level - ((l_level_seq - l_step_seq) * 1000) + 1;
15125 end if;
15126
15127 end loop;
15128
15129 PJI_PROCESS_UTIL.REGISTER_STEP_COMPLETION(l_process, 'PJI_PJP_SUM_ROLLUP.ROLLUP_ACR_PRG(p_worker_id);');
15130
15131 commit;
15132
15133 end ROLLUP_ACR_PRG;
15134
15135
15136 -- -----------------------------------------------------
15137 -- procedure ROLLUP_FPR_CAL_NONTP
15138 --
15139 -- History
15140 -- 19-MAR-2004 SVERMETT Created
15141 --
15142 -- Internal PJP Summarization API.
15143 --
15144 -- Called by RBS program
15145 --
15146 -- -----------------------------------------------------
15147 procedure ROLLUP_FPR_CAL_NONTP (p_worker_id in number) is
15148
15149 l_process varchar2(30);
15150 l_extraction_type varchar2(30);
15151
15152 l_return_status varchar2(255);
15153 l_msg_count number;
15154 l_msg_data varchar2(2000);
15155
15156 begin
15157
15158 l_process := PJI_PJP_SUM_MAIN.g_process || to_char(p_worker_id);
15159
15160 if (not PJI_PROCESS_UTIL.NEED_TO_RUN_STEP(l_process, 'PJI_PJP_SUM_ROLLUP.ROLLUP_FPR_CAL_NONTP(p_worker_id);')) then
15161 return;
15162 end if;
15163
15164 l_extraction_type := PJI_PROCESS_UTIL.GET_PROCESS_PARAMETER(l_process, 'EXTRACTION_TYPE');
15165
15166 PJI_FM_PLAN_CAL_RLPS.CREATE_FP_NONTP_ROLLUP;
15167
15168 PJI_PROCESS_UTIL.REGISTER_STEP_COMPLETION(l_process, 'PJI_PJP_SUM_ROLLUP.ROLLUP_FPR_CAL_NONTP(p_worker_id);');
15169
15170 commit;
15171
15172 end ROLLUP_FPR_CAL_NONTP;
15173
15174
15175 -- -----------------------------------------------------
15176 -- procedure ROLLUP_FPR_CAL_PA
15177 --
15178 -- History
15179 -- 19-MAR-2004 SVERMETT Created
15180 --
15181 -- Internal PJP Summarization API.
15182 --
15183 -- Called by RBS program
15184 --
15185 -- -----------------------------------------------------
15186 procedure ROLLUP_FPR_CAL_PA (p_worker_id in number) is
15187
15188 l_process varchar2(30);
15189 l_extraction_type varchar2(30);
15190
15191 l_return_status varchar2(255);
15192 l_msg_count number;
15193 l_msg_data varchar2(2000);
15194
15195 begin
15196
15197 l_process := PJI_PJP_SUM_MAIN.g_process || to_char(p_worker_id);
15198
15199 if (not PJI_PROCESS_UTIL.NEED_TO_RUN_STEP(l_process, 'PJI_PJP_SUM_ROLLUP.ROLLUP_FPR_CAL_PA(p_worker_id);')) then
15200 return;
15201 end if;
15202
15203 l_extraction_type := PJI_PROCESS_UTIL.GET_PROCESS_PARAMETER(l_process, 'EXTRACTION_TYPE');
15204
15205 PJI_FM_PLAN_CAL_RLPS.CREATE_FP_PA_ROLLUP;
15206
15207 PJI_PROCESS_UTIL.REGISTER_STEP_COMPLETION(l_process, 'PJI_PJP_SUM_ROLLUP.ROLLUP_FPR_CAL_PA(p_worker_id);');
15208
15209 commit;
15210
15211 end ROLLUP_FPR_CAL_PA;
15212
15213
15214 -- -----------------------------------------------------
15215 -- procedure ROLLUP_FPR_CAL_GL
15216 --
15217 -- History
15218 -- 19-MAR-2004 SVERMETT Created
15219 --
15220 -- Internal PJP Summarization API.
15221 --
15222 -- Called by RBS program
15223 --
15224 -- -----------------------------------------------------
15225 procedure ROLLUP_FPR_CAL_GL (p_worker_id in number) is
15226
15227 l_process varchar2(30);
15228 l_extraction_type varchar2(30);
15229
15230 l_return_status varchar2(255);
15231 l_msg_count number;
15232 l_msg_data varchar2(2000);
15233
15234 begin
15235
15236 l_process := PJI_PJP_SUM_MAIN.g_process || to_char(p_worker_id);
15237
15238 if (not PJI_PROCESS_UTIL.NEED_TO_RUN_STEP(l_process, 'PJI_PJP_SUM_ROLLUP.ROLLUP_FPR_CAL_GL(p_worker_id);')) then
15239 return;
15240 end if;
15241
15242 l_extraction_type := PJI_PROCESS_UTIL.GET_PROCESS_PARAMETER(l_process, 'EXTRACTION_TYPE');
15243
15244 PJI_FM_PLAN_CAL_RLPS.CREATE_FP_GL_ROLLUP;
15245
15246 PJI_PROCESS_UTIL.REGISTER_STEP_COMPLETION(l_process, 'PJI_PJP_SUM_ROLLUP.ROLLUP_FPR_CAL_GL(p_worker_id);');
15247
15248 commit;
15249
15250 end ROLLUP_FPR_CAL_GL;
15251
15252
15253 -- -----------------------------------------------------
15254 -- procedure ROLLUP_FPR_CAL_EN
15255 --
15256 -- History
15257 -- 19-MAR-2004 SVERMETT Created
15258 --
15259 -- Internal PJP Summarization API.
15260 --
15261 -- Called by RBS program
15262 --
15263 -- -----------------------------------------------------
15264 procedure ROLLUP_FPR_CAL_EN (p_worker_id in number) is
15265
15266 l_process varchar2(30);
15267 l_extraction_type varchar2(30);
15268
15269 l_return_status varchar2(255);
15270 l_msg_count number;
15271 l_msg_data varchar2(2000);
15272
15273 begin
15274
15275 l_process := PJI_PJP_SUM_MAIN.g_process || to_char(p_worker_id);
15276
15277 if (not PJI_PROCESS_UTIL.NEED_TO_RUN_STEP(l_process, 'PJI_PJP_SUM_ROLLUP.ROLLUP_FPR_CAL_EN(p_worker_id);')) then
15278 return;
15279 end if;
15280
15281 l_extraction_type := PJI_PROCESS_UTIL.GET_PROCESS_PARAMETER(l_process, 'EXTRACTION_TYPE');
15282
15283 PJI_FM_PLAN_CAL_RLPS.CREATE_FP_ENT_ROLLUP;
15284
15285 PJI_PROCESS_UTIL.REGISTER_STEP_COMPLETION(l_process, 'PJI_PJP_SUM_ROLLUP.ROLLUP_FPR_CAL_EN(p_worker_id);');
15286
15287 commit;
15288
15289 end ROLLUP_FPR_CAL_EN;
15290
15291
15292 -- -----------------------------------------------------
15293 -- procedure ROLLUP_FPR_CAL_ALL
15294 --
15295 -- History
15296 -- 19-MAR-2004 SVERMETT Created
15297 --
15298 -- Internal PJP Summarization API.
15299 --
15300 -- Called by RBS program
15301 --
15302 -- -----------------------------------------------------
15303 procedure ROLLUP_FPR_CAL_ALL (p_worker_id in number) is
15304
15305 l_process varchar2(30);
15306 l_extraction_type varchar2(30);
15307
15308 l_return_status varchar2(255);
15309 l_msg_count number;
15310 l_msg_data varchar2(2000);
15311
15312 begin
15313
15314 l_process := PJI_PJP_SUM_MAIN.g_process || to_char(p_worker_id);
15315
15316 if (not PJI_PROCESS_UTIL.NEED_TO_RUN_STEP(l_process, 'PJI_PJP_SUM_ROLLUP.ROLLUP_FPR_CAL_ALL(p_worker_id);')) then
15317 return;
15318 end if;
15319
15320 l_extraction_type := PJI_PROCESS_UTIL.GET_PROCESS_PARAMETER(l_process, 'EXTRACTION_TYPE');
15321
15322 -- Changes done for bug 6381284
15323 --PJI_FM_PLAN_CAL_RLPS.CREATE_FP_ALL_T_PRI_ROLLUP('G');
15324 PJI_FM_PLAN_CAL_RLPS.CREATE_FP_ALL_T_PRI_ROLLUP('C');
15325
15326 PJI_PROCESS_UTIL.REGISTER_STEP_COMPLETION(l_process, 'PJI_PJP_SUM_ROLLUP.ROLLUP_FPR_CAL_ALL(p_worker_id);');
15327
15328 commit;
15329
15330 end ROLLUP_FPR_CAL_ALL;
15331
15332
15333 -- -----------------------------------------------------
15334 -- procedure ROLLUP_ACR_CAL_PA
15335 --
15336 -- History
15337 -- 19-MAR-2004 SVERMETT Created
15338 --
15339 -- Internal PJP Summarization API.
15340 --
15341 -- -----------------------------------------------------
15342 procedure ROLLUP_ACR_CAL_PA (p_worker_id in number) is
15343
15344 l_process varchar2(30);
15345 l_extraction_type varchar2(30);
15346
15347 l_return_status varchar2(255);
15348 l_msg_count number;
15349 l_msg_data varchar2(2000);
15350
15351 begin
15352
15353 l_process := PJI_PJP_SUM_MAIN.g_process || to_char(p_worker_id);
15354
15355 if (not PJI_PROCESS_UTIL.NEED_TO_RUN_STEP(l_process, 'PJI_PJP_SUM_ROLLUP.ROLLUP_ACR_CAL_PA(p_worker_id);')) then
15356 return;
15357 end if;
15358
15359 l_extraction_type := PJI_PROCESS_UTIL.GET_PROCESS_PARAMETER(l_process, 'EXTRACTION_TYPE');
15360
15361 PJI_FM_PLAN_CAL_RLPS.CREATE_AC_PA_ROLLUP;
15362
15363 PJI_PROCESS_UTIL.REGISTER_STEP_COMPLETION(l_process, 'PJI_PJP_SUM_ROLLUP.ROLLUP_ACR_CAL_PA(p_worker_id);');
15364
15365 commit;
15366
15367 end ROLLUP_ACR_CAL_PA;
15368
15369
15370 -- -----------------------------------------------------
15371 -- procedure ROLLUP_ACR_CAL_GL
15372 --
15373 -- History
15374 -- 19-MAR-2004 SVERMETT Created
15375 --
15376 -- Internal PJP Summarization API.
15377 --
15378 -- -----------------------------------------------------
15379 procedure ROLLUP_ACR_CAL_GL (p_worker_id in number) is
15380
15381 l_process varchar2(30);
15382 l_extraction_type varchar2(30);
15383
15384 l_return_status varchar2(255);
15385 l_msg_count number;
15386 l_msg_data varchar2(2000);
15387
15388 begin
15389
15390 l_process := PJI_PJP_SUM_MAIN.g_process || to_char(p_worker_id);
15391
15392 if (not PJI_PROCESS_UTIL.NEED_TO_RUN_STEP(l_process, 'PJI_PJP_SUM_ROLLUP.ROLLUP_ACR_CAL_GL(p_worker_id);')) then
15393 return;
15394 end if;
15395
15396 l_extraction_type := PJI_PROCESS_UTIL.GET_PROCESS_PARAMETER(l_process, 'EXTRACTION_TYPE');
15397
15398 PJI_FM_PLAN_CAL_RLPS.CREATE_AC_GL_ROLLUP;
15399
15400 PJI_PROCESS_UTIL.REGISTER_STEP_COMPLETION(l_process, 'PJI_PJP_SUM_ROLLUP.ROLLUP_ACR_CAL_GL(p_worker_id);');
15401
15402 commit;
15403
15404 end ROLLUP_ACR_CAL_GL;
15405
15406
15407 -- -----------------------------------------------------
15408 -- procedure ROLLUP_ACR_CAL_EN
15409 --
15410 -- History
15411 -- 19-MAR-2004 SVERMETT Created
15412 --
15413 -- Internal PJP Summarization API.
15414 --
15415 -- -----------------------------------------------------
15416 procedure ROLLUP_ACR_CAL_EN (p_worker_id in number) is
15417
15418 l_process varchar2(30);
15419 l_extraction_type varchar2(30);
15420
15421 l_return_status varchar2(255);
15422 l_msg_count number;
15423 l_msg_data varchar2(2000);
15424
15425 begin
15426
15427 l_process := PJI_PJP_SUM_MAIN.g_process || to_char(p_worker_id);
15428
15429 if (not PJI_PROCESS_UTIL.NEED_TO_RUN_STEP(l_process, 'PJI_PJP_SUM_ROLLUP.ROLLUP_ACR_CAL_EN(p_worker_id);')) then
15430 return;
15431 end if;
15432
15433 l_extraction_type := PJI_PROCESS_UTIL.GET_PROCESS_PARAMETER(l_process, 'EXTRACTION_TYPE');
15434
15435 PJI_FM_PLAN_CAL_RLPS.CREATE_AC_ENT_ROLLUP;
15436
15437 PJI_PROCESS_UTIL.REGISTER_STEP_COMPLETION(l_process, 'PJI_PJP_SUM_ROLLUP.ROLLUP_ACR_CAL_EN(p_worker_id);');
15438
15439 commit;
15440
15441 end ROLLUP_ACR_CAL_EN;
15442
15443
15444 -- -----------------------------------------------------
15445 -- procedure ROLLUP_ACR_CAL_ALL
15446 --
15447 -- History
15448 -- 19-MAR-2004 SVERMETT Created
15449 --
15450 -- Internal PJP Summarization API.
15451 --
15452 -- -----------------------------------------------------
15453 procedure ROLLUP_ACR_CAL_ALL (p_worker_id in number) is
15454
15455 l_process varchar2(30);
15456 l_extraction_type varchar2(30);
15457
15458 l_return_status varchar2(255);
15459 l_msg_count number;
15460 l_msg_data varchar2(2000);
15461
15462 begin
15463
15464 l_process := PJI_PJP_SUM_MAIN.g_process || to_char(p_worker_id);
15465
15466 if (not PJI_PROCESS_UTIL.NEED_TO_RUN_STEP(l_process, 'PJI_PJP_SUM_ROLLUP.ROLLUP_ACR_CAL_ALL(p_worker_id);')) then
15467 return;
15468 end if;
15469
15470 l_extraction_type := PJI_PROCESS_UTIL.GET_PROCESS_PARAMETER(l_process, 'EXTRACTION_TYPE');
15471
15472 PJI_FM_PLAN_CAL_RLPS.CREATE_AC_ALL_T_PRI_ROLLUP('G');
15473
15474 PJI_PROCESS_UTIL.REGISTER_STEP_COMPLETION(l_process, 'PJI_PJP_SUM_ROLLUP.ROLLUP_ACR_CAL_ALL(p_worker_id);');
15475
15476 commit;
15477
15478 end ROLLUP_ACR_CAL_ALL;
15479
15480
15481
15482 -- -----------------------------------------------------
15483 -- procedure AGGREGATE_PLAN_DATA
15484 --
15485 -- History
15486 -- 21-OCT-2004 SVERMETT Created
15487 --
15488 -- Internal PJP Summarization API.
15489 --
15490 -- Called by RBS program
15491 --
15492 -- -----------------------------------------------------
15493 procedure AGGREGATE_PLAN_DATA (p_worker_id in number) is
15494
15495 l_process varchar2(30);
15496 l_extraction_type varchar2(30);
15497
15498 begin
15499
15500 l_process := PJI_PJP_SUM_MAIN.g_process || to_char(p_worker_id);
15501
15502 if (not PJI_PROCESS_UTIL.NEED_TO_RUN_STEP(l_process, 'PJI_PJP_SUM_ROLLUP.AGGREGATE_PLAN_DATA(p_worker_id);')) then
15503 return;
15504 end if;
15505
15506 l_extraction_type := PJI_PROCESS_UTIL.GET_PROCESS_PARAMETER(l_process, 'EXTRACTION_TYPE');
15507
15508 IF (l_extraction_type IN ('PARTIAL', 'RBS', 'INCREMENTAL', 'FULL')) THEN
15509
15510 insert into PJI_FP_AGGR_PJP1 pjp1_i
15511 (
15512 WORKER_ID,
15513 RECORD_TYPE,
15514 PRG_LEVEL,
15515 LINE_TYPE,
15516 PROJECT_ID,
15517 PROJECT_ORG_ID,
15518 PROJECT_ORGANIZATION_ID,
15519 PROJECT_ELEMENT_ID,
15520 TIME_ID,
15521 PERIOD_TYPE_ID,
15522 CALENDAR_TYPE,
15523 RBS_AGGR_LEVEL,
15524 WBS_ROLLUP_FLAG,
15525 PRG_ROLLUP_FLAG,
15526 CURR_RECORD_TYPE_ID,
15527 CURRENCY_CODE,
15528 RBS_ELEMENT_ID,
15529 RBS_VERSION_ID,
15530 PLAN_VERSION_ID,
15531 PLAN_TYPE_ID,
15532 PLAN_TYPE_CODE,
15533 RAW_COST,
15534 BRDN_COST,
15535 REVENUE,
15536 BILL_RAW_COST,
15537 BILL_BRDN_COST,
15538 BILL_LABOR_RAW_COST,
15539 BILL_LABOR_BRDN_COST,
15540 BILL_LABOR_HRS,
15541 EQUIPMENT_RAW_COST,
15542 EQUIPMENT_BRDN_COST,
15543 CAPITALIZABLE_RAW_COST,
15544 CAPITALIZABLE_BRDN_COST,
15545 LABOR_RAW_COST,
15546 LABOR_BRDN_COST,
15547 LABOR_HRS,
15548 LABOR_REVENUE,
15549 EQUIPMENT_HOURS,
15550 BILLABLE_EQUIPMENT_HOURS,
15551 SUP_INV_COMMITTED_COST,
15552 PO_COMMITTED_COST,
15553 PR_COMMITTED_COST,
15554 OTH_COMMITTED_COST,
15555 ACT_LABOR_HRS,
15556 ACT_EQUIP_HRS,
15557 ACT_LABOR_BRDN_COST,
15558 ACT_EQUIP_BRDN_COST,
15559 ACT_BRDN_COST,
15560 ACT_RAW_COST,
15561 ACT_REVENUE,
15562 ACT_LABOR_RAW_COST,
15563 ACT_EQUIP_RAW_COST,
15564 ETC_LABOR_HRS,
15565 ETC_EQUIP_HRS,
15566 ETC_LABOR_BRDN_COST,
15567 ETC_EQUIP_BRDN_COST,
15568 ETC_BRDN_COST,
15569 ETC_RAW_COST,
15570 ETC_LABOR_RAW_COST,
15571 ETC_EQUIP_RAW_COST,
15572 CUSTOM1,
15573 CUSTOM2,
15574 CUSTOM3,
15575 CUSTOM4,
15576 CUSTOM5,
15577 CUSTOM6,
15578 CUSTOM7,
15579 CUSTOM8,
15580 CUSTOM9,
15581 CUSTOM10,
15582 CUSTOM11,
15583 CUSTOM12,
15584 CUSTOM13,
15585 CUSTOM14,
15586 CUSTOM15
15587 )
15588 select
15589 pjp1.WORKER_ID,
15590 'A' RECORD_TYPE,
15591 pjp1.PRG_LEVEL,
15592 'AGGR_PLAN' LINE_TYPE,
15593 pjp1.PROJECT_ID,
15594 pjp1.PROJECT_ORG_ID,
15595 pjp1.PROJECT_ORGANIZATION_ID,
15596 pjp1.PROJECT_ELEMENT_ID,
15597 pjp1.TIME_ID,
15598 pjp1.PERIOD_TYPE_ID,
15599 pjp1.CALENDAR_TYPE,
15600 pjp1.RBS_AGGR_LEVEL,
15601 pjp1.WBS_ROLLUP_FLAG,
15602 pjp1.PRG_ROLLUP_FLAG,
15603 pjp1.CURR_RECORD_TYPE_ID,
15604 pjp1.CURRENCY_CODE,
15605 pjp1.RBS_ELEMENT_ID,
15606 pjp1.RBS_VERSION_ID,
15607 pjp1.PLAN_VERSION_ID,
15608 pjp1.PLAN_TYPE_ID,
15609 pjp1.PLAN_TYPE_CODE,
15610 sum(pjp1.RAW_COST) RAW_COST,
15611 sum(pjp1.BRDN_COST) BRDN_COST,
15612 sum(pjp1.REVENUE) REVENUE,
15613 sum(pjp1.BILL_RAW_COST) BILL_RAW_COST,
15614 sum(pjp1.BILL_BRDN_COST) BILL_BRDN_COST,
15615 sum(pjp1.BILL_LABOR_RAW_COST) BILL_LABOR_RAW_COST,
15616 sum(pjp1.BILL_LABOR_BRDN_COST) BILL_LABOR_BRDN_COST,
15617 sum(pjp1.BILL_LABOR_HRS) BILL_LABOR_HRS,
15618 sum(pjp1.EQUIPMENT_RAW_COST) EQUIPMENT_RAW_COST,
15619 sum(pjp1.EQUIPMENT_BRDN_COST) EQUIPMENT_BRDN_COST,
15620 sum(pjp1.CAPITALIZABLE_RAW_COST) CAPITALIZABLE_RAW_COST,
15621 sum(pjp1.CAPITALIZABLE_BRDN_COST) CAPITALIZABLE_BRDN_COST,
15622 sum(pjp1.LABOR_RAW_COST) LABOR_RAW_COST,
15623 sum(pjp1.LABOR_BRDN_COST) LABOR_BRDN_COST,
15624 sum(pjp1.LABOR_HRS) LABOR_HRS,
15625 sum(pjp1.LABOR_REVENUE) LABOR_REVENUE,
15626 sum(pjp1.EQUIPMENT_HOURS) EQUIPMENT_HOURS,
15627 sum(pjp1.BILLABLE_EQUIPMENT_HOURS) BILLABLE_EQUIPMENT_HOURS,
15628 sum(pjp1.SUP_INV_COMMITTED_COST) SUP_INV_COMMITTED_COST,
15629 sum(pjp1.PO_COMMITTED_COST) PO_COMMITTED_COST,
15630 sum(pjp1.PR_COMMITTED_COST) PR_COMMITTED_COST,
15631 sum(pjp1.OTH_COMMITTED_COST) OTH_COMMITTED_COST,
15632 sum(pjp1.ACT_LABOR_HRS) ACT_LABOR_HRS,
15633 sum(pjp1.ACT_EQUIP_HRS) ACT_EQUIP_HRS,
15634 sum(pjp1.ACT_LABOR_BRDN_COST) ACT_LABOR_BRDN_COST,
15635 sum(pjp1.ACT_EQUIP_BRDN_COST) ACT_EQUIP_BRDN_COST,
15636 sum(pjp1.ACT_BRDN_COST) ACT_BRDN_COST,
15637 sum(pjp1.ACT_RAW_COST) ACT_RAW_COST,
15638 sum(pjp1.ACT_REVENUE) ACT_REVENUE,
15639 sum(pjp1.ACT_LABOR_RAW_COST) ACT_LABOR_RAW_COST,
15640 sum(pjp1.ACT_EQUIP_RAW_COST) ACT_EQUIP_RAW_COST,
15641 sum(pjp1.ETC_LABOR_HRS) ETC_LABOR_HRS,
15642 sum(pjp1.ETC_EQUIP_HRS) ETC_EQUIP_HRS,
15643 sum(pjp1.ETC_LABOR_BRDN_COST) ETC_LABOR_BRDN_COST,
15644 sum(pjp1.ETC_EQUIP_BRDN_COST) ETC_EQUIP_BRDN_COST,
15645 sum(pjp1.ETC_BRDN_COST) ETC_BRDN_COST,
15646 sum(pjp1.ETC_RAW_COST) ETC_RAW_COST,
15647 sum(pjp1.ETC_LABOR_RAW_COST) ETC_LABOR_RAW_COST,
15648 sum(pjp1.ETC_EQUIP_RAW_COST) ETC_EQUIP_RAW_COST,
15649 sum(pjp1.CUSTOM1) CUSTOM1,
15650 sum(pjp1.CUSTOM2) CUSTOM2,
15651 sum(pjp1.CUSTOM3) CUSTOM3,
15652 sum(pjp1.CUSTOM4) CUSTOM4,
15653 sum(pjp1.CUSTOM5) CUSTOM5,
15654 sum(pjp1.CUSTOM6) CUSTOM6,
15655 sum(pjp1.CUSTOM7) CUSTOM7,
15656 sum(pjp1.CUSTOM8) CUSTOM8,
15657 sum(pjp1.CUSTOM9) CUSTOM9,
15658 sum(pjp1.CUSTOM10) CUSTOM10,
15659 sum(pjp1.CUSTOM11) CUSTOM11,
15660 sum(pjp1.CUSTOM12) CUSTOM12,
15661 sum(pjp1.CUSTOM13) CUSTOM13,
15662 sum(pjp1.CUSTOM14) CUSTOM14,
15663 sum(pjp1.CUSTOM15) CUSTOM15
15664 from
15665 PJI_FP_AGGR_PJP1 pjp1
15666 where
15667 pjp1.WORKER_ID = p_worker_id
15668 group by
15669 pjp1.WORKER_ID,
15670 pjp1.PRG_LEVEL,
15671 pjp1.PROJECT_ID,
15672 pjp1.PROJECT_ORG_ID,
15673 pjp1.PROJECT_ORGANIZATION_ID,
15674 pjp1.PROJECT_ELEMENT_ID,
15675 pjp1.TIME_ID,
15676 pjp1.PERIOD_TYPE_ID,
15677 pjp1.CALENDAR_TYPE,
15678 pjp1.RBS_AGGR_LEVEL,
15679 pjp1.WBS_ROLLUP_FLAG,
15680 pjp1.PRG_ROLLUP_FLAG,
15681 pjp1.CURR_RECORD_TYPE_ID,
15682 pjp1.CURRENCY_CODE,
15683 pjp1.RBS_ELEMENT_ID,
15684 pjp1.RBS_VERSION_ID,
15685 pjp1.PLAN_VERSION_ID,
15686 pjp1.PLAN_TYPE_ID,
15687 pjp1.PLAN_TYPE_CODE
15688 having not
15689 (nvl(sum(pjp1.RAW_COST), 0) = 0 and
15690 nvl(sum(pjp1.BRDN_COST), 0) = 0 and
15691 nvl(sum(pjp1.REVENUE), 0) = 0 and
15692 nvl(sum(pjp1.BILL_RAW_COST), 0) = 0 and
15693 nvl(sum(pjp1.BILL_BRDN_COST), 0) = 0 and
15694 nvl(sum(pjp1.BILL_LABOR_RAW_COST), 0) = 0 and
15695 nvl(sum(pjp1.BILL_LABOR_BRDN_COST), 0) = 0 and
15696 nvl(sum(pjp1.BILL_LABOR_HRS), 0) = 0 and
15697 nvl(sum(pjp1.EQUIPMENT_RAW_COST), 0) = 0 and
15698 nvl(sum(pjp1.EQUIPMENT_BRDN_COST), 0) = 0 and
15699 nvl(sum(pjp1.CAPITALIZABLE_RAW_COST), 0) = 0 and
15700 nvl(sum(pjp1.CAPITALIZABLE_BRDN_COST), 0) = 0 and
15701 nvl(sum(pjp1.LABOR_RAW_COST), 0) = 0 and
15702 nvl(sum(pjp1.LABOR_BRDN_COST), 0) = 0 and
15703 nvl(sum(pjp1.LABOR_HRS), 0) = 0 and
15704 nvl(sum(pjp1.LABOR_REVENUE), 0) = 0 and
15705 nvl(sum(pjp1.EQUIPMENT_HOURS), 0) = 0 and
15706 nvl(sum(pjp1.BILLABLE_EQUIPMENT_HOURS), 0) = 0 and
15707 nvl(sum(pjp1.SUP_INV_COMMITTED_COST), 0) = 0 and
15708 nvl(sum(pjp1.PO_COMMITTED_COST), 0) = 0 and
15709 nvl(sum(pjp1.PR_COMMITTED_COST), 0) = 0 and
15710 nvl(sum(pjp1.OTH_COMMITTED_COST), 0) = 0 and
15711 nvl(sum(pjp1.ACT_LABOR_HRS), 0) = 0 and
15712 nvl(sum(pjp1.ACT_EQUIP_HRS), 0) = 0 and
15713 nvl(sum(pjp1.ACT_LABOR_BRDN_COST), 0) = 0 and
15714 nvl(sum(pjp1.ACT_EQUIP_BRDN_COST), 0) = 0 and
15715 nvl(sum(pjp1.ACT_BRDN_COST), 0) = 0 and
15716 nvl(sum(pjp1.ACT_RAW_COST), 0) = 0 and
15717 nvl(sum(pjp1.ACT_REVENUE), 0) = 0 and
15718 nvl(sum(pjp1.ACT_LABOR_RAW_COST), 0) = 0 and
15719 nvl(sum(pjp1.ACT_EQUIP_RAW_COST), 0) = 0 and
15720 nvl(sum(pjp1.ETC_LABOR_HRS), 0) = 0 and
15721 nvl(sum(pjp1.ETC_EQUIP_HRS), 0) = 0 and
15722 nvl(sum(pjp1.ETC_LABOR_BRDN_COST), 0) = 0 and
15723 nvl(sum(pjp1.ETC_EQUIP_BRDN_COST), 0) = 0 and
15724 nvl(sum(pjp1.ETC_BRDN_COST), 0) = 0 and
15725 nvl(sum(pjp1.ETC_RAW_COST), 0) = 0 and
15726 nvl(sum(pjp1.ETC_LABOR_RAW_COST), 0) = 0 and
15727 nvl(sum(pjp1.ETC_EQUIP_RAW_COST), 0) = 0 and
15728 nvl(sum(pjp1.CUSTOM1), 0) = 0 and
15729 nvl(sum(pjp1.CUSTOM2), 0) = 0 and
15730 nvl(sum(pjp1.CUSTOM3), 0) = 0 and
15731 nvl(sum(pjp1.CUSTOM4), 0) = 0 and
15732 nvl(sum(pjp1.CUSTOM5), 0) = 0 and
15733 nvl(sum(pjp1.CUSTOM6), 0) = 0 and
15734 nvl(sum(pjp1.CUSTOM7), 0) = 0 and
15735 nvl(sum(pjp1.CUSTOM8), 0) = 0 and
15736 nvl(sum(pjp1.CUSTOM9), 0) = 0 and
15737 nvl(sum(pjp1.CUSTOM10), 0) = 0 and
15738 nvl(sum(pjp1.CUSTOM11), 0) = 0 and
15739 nvl(sum(pjp1.CUSTOM12), 0) = 0 and
15740 nvl(sum(pjp1.CUSTOM13), 0) = 0 and
15741 nvl(sum(pjp1.CUSTOM14), 0) = 0 and
15742 nvl(sum(pjp1.CUSTOM15), 0) = 0);
15743
15744 insert into PJI_AC_AGGR_PJP1 pjp1_i
15745 (
15746 WORKER_ID,
15747 RECORD_TYPE,
15748 PRG_LEVEL,
15749 PROJECT_ID,
15750 PROJECT_ORG_ID,
15751 PROJECT_ORGANIZATION_ID,
15752 PROJECT_ELEMENT_ID,
15753 TIME_ID,
15754 PERIOD_TYPE_ID,
15755 CALENDAR_TYPE,
15756 WBS_ROLLUP_FLAG,
15757 PRG_ROLLUP_FLAG,
15758 CURR_RECORD_TYPE_ID,
15759 CURRENCY_CODE,
15760 REVENUE,
15761 INITIAL_FUNDING_AMOUNT,
15762 INITIAL_FUNDING_COUNT,
15763 ADDITIONAL_FUNDING_AMOUNT,
15764 ADDITIONAL_FUNDING_COUNT,
15765 CANCELLED_FUNDING_AMOUNT,
15766 CANCELLED_FUNDING_COUNT,
15767 FUNDING_ADJUSTMENT_AMOUNT,
15768 FUNDING_ADJUSTMENT_COUNT,
15769 REVENUE_WRITEOFF,
15770 AR_INVOICE_AMOUNT,
15771 AR_INVOICE_COUNT,
15772 AR_CASH_APPLIED_AMOUNT,
15773 AR_INVOICE_WRITE_OFF_AMOUNT,
15774 AR_INVOICE_WRITEOFF_COUNT,
15775 AR_CREDIT_MEMO_AMOUNT,
15776 AR_CREDIT_MEMO_COUNT,
15777 UNBILLED_RECEIVABLES,
15778 UNEARNED_REVENUE,
15779 AR_UNAPPR_INVOICE_AMOUNT,
15780 AR_UNAPPR_INVOICE_COUNT,
15781 AR_APPR_INVOICE_AMOUNT,
15782 AR_APPR_INVOICE_COUNT,
15783 AR_AMOUNT_DUE,
15784 AR_COUNT_DUE,
15785 AR_AMOUNT_OVERDUE,
15786 AR_COUNT_OVERDUE,
15787 CUSTOM1,
15788 CUSTOM2,
15789 CUSTOM3,
15790 CUSTOM4,
15791 CUSTOM5,
15792 CUSTOM6,
15793 CUSTOM7,
15794 CUSTOM8,
15795 CUSTOM9,
15796 CUSTOM10,
15797 CUSTOM11,
15798 CUSTOM12,
15799 CUSTOM13,
15800 CUSTOM14,
15801 CUSTOM15
15802 )
15803 select
15804 pjp1.WORKER_ID,
15805 'A' RECORD_TYPE,
15806 pjp1.PRG_LEVEL,
15807 pjp1.PROJECT_ID,
15808 pjp1.PROJECT_ORG_ID,
15809 pjp1.PROJECT_ORGANIZATION_ID,
15810 pjp1.PROJECT_ELEMENT_ID,
15811 pjp1.TIME_ID,
15812 pjp1.PERIOD_TYPE_ID,
15813 pjp1.CALENDAR_TYPE,
15814 pjp1.WBS_ROLLUP_FLAG,
15815 pjp1.PRG_ROLLUP_FLAG,
15816 pjp1.CURR_RECORD_TYPE_ID,
15817 pjp1.CURRENCY_CODE,
15818 sum(pjp1.REVENUE) REVENUE,
15819 sum(pjp1.INITIAL_FUNDING_AMOUNT) INITIAL_FUNDING_AMOUNT,
15820 sum(pjp1.INITIAL_FUNDING_COUNT) INITIAL_FUNDING_COUNT,
15821 sum(pjp1.ADDITIONAL_FUNDING_AMOUNT) ADDITIONAL_FUNDING_AMOUNT,
15822 sum(pjp1.ADDITIONAL_FUNDING_COUNT) ADDITIONAL_FUNDING_COUNT,
15823 sum(pjp1.CANCELLED_FUNDING_AMOUNT) CANCELLED_FUNDING_AMOUNT,
15824 sum(pjp1.CANCELLED_FUNDING_COUNT) CANCELLED_FUNDING_COUNT,
15825 sum(pjp1.FUNDING_ADJUSTMENT_AMOUNT) FUNDING_ADJUSTMENT_AMOUNT,
15826 sum(pjp1.FUNDING_ADJUSTMENT_COUNT) FUNDING_ADJUSTMENT_COUNT,
15827 sum(pjp1.REVENUE_WRITEOFF) REVENUE_WRITEOFF,
15828 sum(pjp1.AR_INVOICE_AMOUNT) AR_INVOICE_AMOUNT,
15829 sum(pjp1.AR_INVOICE_COUNT) AR_INVOICE_COUNT,
15830 sum(pjp1.AR_CASH_APPLIED_AMOUNT) AR_CASH_APPLIED_AMOUNT,
15831 sum(pjp1.AR_INVOICE_WRITE_OFF_AMOUNT) AR_INVOICE_WRITE_OFF_AMOUNT,
15832 sum(pjp1.AR_INVOICE_WRITEOFF_COUNT) AR_INVOICE_WRITEOFF_COUNT,
15833 sum(pjp1.AR_CREDIT_MEMO_AMOUNT) AR_CREDIT_MEMO_AMOUNT,
15834 sum(pjp1.AR_CREDIT_MEMO_COUNT) AR_CREDIT_MEMO_COUNT,
15835 sum(pjp1.UNBILLED_RECEIVABLES) UNBILLED_RECEIVABLES,
15836 sum(pjp1.UNEARNED_REVENUE) UNEARNED_REVENUE,
15837 sum(pjp1.AR_UNAPPR_INVOICE_AMOUNT) AR_UNAPPR_INVOICE_AMOUNT,
15838 sum(pjp1.AR_UNAPPR_INVOICE_COUNT) AR_UNAPPR_INVOICE_COUNT,
15839 sum(pjp1.AR_APPR_INVOICE_AMOUNT) AR_APPR_INVOICE_AMOUNT,
15840 sum(pjp1.AR_APPR_INVOICE_COUNT) AR_APPR_INVOICE_COUNT,
15841 sum(pjp1.AR_AMOUNT_DUE) AR_AMOUNT_DUE,
15842 sum(pjp1.AR_COUNT_DUE) AR_COUNT_DUE,
15843 sum(pjp1.AR_AMOUNT_OVERDUE) AR_AMOUNT_OVERDUE,
15844 sum(pjp1.AR_COUNT_OVERDUE) AR_COUNT_OVERDUE,
15845 sum(pjp1.CUSTOM1) CUSTOM1,
15846 sum(pjp1.CUSTOM2) CUSTOM2,
15847 sum(pjp1.CUSTOM3) CUSTOM3,
15848 sum(pjp1.CUSTOM4) CUSTOM4,
15849 sum(pjp1.CUSTOM5) CUSTOM5,
15850 sum(pjp1.CUSTOM6) CUSTOM6,
15851 sum(pjp1.CUSTOM7) CUSTOM7,
15852 sum(pjp1.CUSTOM8) CUSTOM8,
15853 sum(pjp1.CUSTOM9) CUSTOM9,
15854 sum(pjp1.CUSTOM10) CUSTOM10,
15855 sum(pjp1.CUSTOM11) CUSTOM11,
15856 sum(pjp1.CUSTOM12) CUSTOM12,
15857 sum(pjp1.CUSTOM13) CUSTOM13,
15858 sum(pjp1.CUSTOM14) CUSTOM14,
15859 sum(pjp1.CUSTOM15) CUSTOM15
15860 from
15861 PJI_AC_AGGR_PJP1 pjp1
15862 where
15863 pjp1.WORKER_ID = p_worker_id
15864 group by
15865 pjp1.WORKER_ID,
15866 pjp1.PRG_LEVEL,
15867 pjp1.PROJECT_ID,
15868 pjp1.PROJECT_ORG_ID,
15869 pjp1.PROJECT_ORGANIZATION_ID,
15870 pjp1.PROJECT_ELEMENT_ID,
15871 pjp1.TIME_ID,
15872 pjp1.PERIOD_TYPE_ID,
15873 pjp1.CALENDAR_TYPE,
15874 pjp1.WBS_ROLLUP_FLAG,
15875 pjp1.PRG_ROLLUP_FLAG,
15876 pjp1.CURR_RECORD_TYPE_ID,
15877 pjp1.CURRENCY_CODE
15878 having not
15879 (nvl(sum(REVENUE), 0) = 0 and
15880 nvl(sum(INITIAL_FUNDING_AMOUNT), 0) = 0 and
15881 nvl(sum(INITIAL_FUNDING_COUNT), 0) = 0 and
15882 nvl(sum(ADDITIONAL_FUNDING_AMOUNT), 0) = 0 and
15883 nvl(sum(ADDITIONAL_FUNDING_COUNT), 0) = 0 and
15884 nvl(sum(CANCELLED_FUNDING_AMOUNT), 0) = 0 and
15885 nvl(sum(CANCELLED_FUNDING_COUNT), 0) = 0 and
15886 nvl(sum(FUNDING_ADJUSTMENT_AMOUNT), 0) = 0 and
15887 nvl(sum(FUNDING_ADJUSTMENT_COUNT), 0) = 0 and
15888 nvl(sum(REVENUE_WRITEOFF), 0) = 0 and
15889 nvl(sum(AR_INVOICE_AMOUNT), 0) = 0 and
15890 nvl(sum(AR_INVOICE_COUNT), 0) = 0 and
15891 nvl(sum(AR_CASH_APPLIED_AMOUNT), 0) = 0 and
15892 nvl(sum(AR_INVOICE_WRITE_OFF_AMOUNT), 0) = 0 and
15893 nvl(sum(AR_INVOICE_WRITEOFF_COUNT), 0) = 0 and
15894 nvl(sum(AR_CREDIT_MEMO_AMOUNT), 0) = 0 and
15895 nvl(sum(AR_CREDIT_MEMO_COUNT), 0) = 0 and
15896 nvl(sum(UNBILLED_RECEIVABLES), 0) = 0 and
15897 nvl(sum(UNEARNED_REVENUE), 0) = 0 and
15898 nvl(sum(AR_UNAPPR_INVOICE_AMOUNT), 0) = 0 and
15899 nvl(sum(AR_UNAPPR_INVOICE_COUNT), 0) = 0 and
15900 nvl(sum(AR_APPR_INVOICE_AMOUNT), 0) = 0 and
15901 nvl(sum(AR_APPR_INVOICE_COUNT), 0) = 0 and
15902 nvl(sum(AR_AMOUNT_DUE), 0) = 0 and
15903 nvl(sum(AR_COUNT_DUE), 0) = 0 and
15904 nvl(sum(AR_AMOUNT_OVERDUE), 0) = 0 and
15905 nvl(sum(AR_COUNT_OVERDUE), 0) = 0 and
15906 nvl(sum(CUSTOM1), 0) = 0 and
15907 nvl(sum(CUSTOM2), 0) = 0 and
15908 nvl(sum(CUSTOM3), 0) = 0 and
15909 nvl(sum(CUSTOM4), 0) = 0 and
15910 nvl(sum(CUSTOM5), 0) = 0 and
15911 nvl(sum(CUSTOM6), 0) = 0 and
15912 nvl(sum(CUSTOM7), 0) = 0 and
15913 nvl(sum(CUSTOM8), 0) = 0 and
15914 nvl(sum(CUSTOM9), 0) = 0 and
15915 nvl(sum(CUSTOM10), 0) = 0 and
15916 nvl(sum(CUSTOM11), 0) = 0 and
15917 nvl(sum(CUSTOM12), 0) = 0 and
15918 nvl(sum(CUSTOM13), 0) = 0 and
15919 nvl(sum(CUSTOM14), 0) = 0 and
15920 nvl(sum(CUSTOM15), 0) = 0);
15921
15922 end if;
15923
15924 PJI_PROCESS_UTIL.REGISTER_STEP_COMPLETION(l_process, 'PJI_PJP_SUM_ROLLUP.AGGREGATE_PLAN_DATA(p_worker_id);');
15925
15926 commit;
15927
15928 end AGGREGATE_PLAN_DATA;
15929
15930
15931 -- -----------------------------------------------------
15932 -- procedure PURGE_PLAN_DATA
15933 --
15934 -- History
15935 -- 21-OCT-2004 SVERMETT Created
15936 --
15937 -- Internal PJP Summarization API.
15938 --
15939 -- Called by RBS program
15940 --
15941 -- -----------------------------------------------------
15942 procedure PURGE_PLAN_DATA (p_worker_id in number) is
15943
15944 l_process varchar2(30);
15945 l_extraction_type varchar2(30);
15946
15947 begin
15948
15949 l_process := PJI_PJP_SUM_MAIN.g_process || to_char(p_worker_id);
15950
15951 if (not PJI_PROCESS_UTIL.NEED_TO_RUN_STEP(l_process, 'PJI_PJP_SUM_ROLLUP.PURGE_PLAN_DATA(p_worker_id);')) then
15952 return;
15953 end if;
15954
15955 l_extraction_type := PJI_PROCESS_UTIL.GET_PROCESS_PARAMETER(l_process, 'EXTRACTION_TYPE');
15956
15957 IF (l_extraction_type IN ('PARTIAL', 'RBS', 'INCREMENTAL', 'FULL')) THEN
15958
15959 delete
15960 from PJI_FP_AGGR_PJP1 pjp1
15961 where pjp1.WORKER_ID = p_worker_id and
15962 nvl(pjp1.LINE_TYPE, 'X') <> 'AGGR_PLAN';
15963
15964 delete
15965 from PJI_AC_AGGR_PJP1 pjp1
15966 where pjp1.WORKER_ID = p_worker_id and
15967 nvl(pjp1.RECORD_TYPE, 'X') <> 'A';
15968
15969 end if;
15970
15971 PJI_PROCESS_UTIL.REGISTER_STEP_COMPLETION(l_process, 'PJI_PJP_SUM_ROLLUP.PURGE_PLAN_DATA(p_worker_id);');
15972
15973 commit;
15974
15975 end PURGE_PLAN_DATA;
15976
15977
15978 -- -----------------------------------------------------
15979 -- procedure GET_FPR_ROWIDS
15980 --
15981 -- History
15982 -- 19-MAR-2004 SVERMETT Created
15983 --
15984 -- Internal PJP Summarization API.
15985 --
15986 -- Called by RBS program
15987 --
15988 -- -----------------------------------------------------
15989 procedure GET_FPR_ROWIDS (p_worker_id in number) is
15990
15991 l_process varchar2(30);
15992 l_extraction_type varchar2(30);
15993
15994 l_return_status varchar2(255);
15995 l_msg_count number;
15996 l_msg_data varchar2(2000);
15997
15998 begin
15999
16000 l_process := PJI_PJP_SUM_MAIN.g_process || to_char(p_worker_id);
16001
16002 if (not PJI_PROCESS_UTIL.NEED_TO_RUN_STEP(l_process, 'PJI_PJP_SUM_ROLLUP.GET_FPR_ROWIDS(p_worker_id);')) then
16003 return;
16004 end if;
16005
16006 l_extraction_type := PJI_PROCESS_UTIL.GET_PROCESS_PARAMETER(l_process, 'EXTRACTION_TYPE');
16007
16008 PJI_FM_PLAN_MAINT_PVT.GET_FP_ROW_IDS;
16009
16010 PJI_PROCESS_UTIL.REGISTER_STEP_COMPLETION(l_process, 'PJI_PJP_SUM_ROLLUP.GET_FPR_ROWIDS(p_worker_id);');
16011
16012 commit;
16013
16014 end GET_FPR_ROWIDS;
16015
16016
16017 -- -----------------------------------------------------
16018 -- procedure UPDATE_FPR_ROWS
16019 --
16020 -- History
16021 -- 19-MAR-2004 SVERMETT Created
16022 --
16023 -- Internal PJP Summarization API.
16024 --
16025 -- Called by RBS program
16026 --
16027 -- -----------------------------------------------------
16028 procedure UPDATE_FPR_ROWS (p_worker_id in number) is
16029
16030 l_process varchar2(30);
16031 l_extraction_type varchar2(30);
16032
16033 l_return_status varchar2(255);
16034 l_msg_count number;
16035 l_msg_data varchar2(2000);
16036
16037 begin
16038
16039 l_process := PJI_PJP_SUM_MAIN.g_process || to_char(p_worker_id);
16040
16041 if (not PJI_PROCESS_UTIL.NEED_TO_RUN_STEP(l_process, 'PJI_PJP_SUM_ROLLUP.UPDATE_FPR_ROWS(p_worker_id);')) then
16042 return;
16043 end if;
16044
16045 l_extraction_type := PJI_PROCESS_UTIL.GET_PROCESS_PARAMETER(l_process, 'EXTRACTION_TYPE');
16046
16047 PJI_FM_PLAN_MAINT_PVT.UPDATE_FP_ROWS;
16048
16049 PJI_PROCESS_UTIL.REGISTER_STEP_COMPLETION(l_process, 'PJI_PJP_SUM_ROLLUP.UPDATE_FPR_ROWS(p_worker_id);');
16050
16051 commit;
16052
16053 end UPDATE_FPR_ROWS;
16054
16055
16056 -- -----------------------------------------------------
16057 -- procedure INSERT_FPR_ROWS
16058 --
16059 -- History
16060 -- 19-MAR-2004 SVERMETT Created
16061 --
16062 -- Internal PJP Summarization API.
16063 --
16064 -- Called by RBS program
16065 --
16066 -- -----------------------------------------------------
16067 procedure INSERT_FPR_ROWS (p_worker_id in number) is
16068
16069 l_process varchar2(30);
16070 l_extraction_type varchar2(30);
16071
16072 l_return_status varchar2(255);
16073 l_msg_count number;
16074 l_msg_data varchar2(2000);
16075
16076 begin
16077
16078 l_process := PJI_PJP_SUM_MAIN.g_process || to_char(p_worker_id);
16079
16080 if (not PJI_PROCESS_UTIL.NEED_TO_RUN_STEP(l_process, 'PJI_PJP_SUM_ROLLUP.INSERT_FPR_ROWS(p_worker_id);')) then
16081 return;
16082 end if;
16083
16084 l_extraction_type := PJI_PROCESS_UTIL.GET_PROCESS_PARAMETER(l_process, 'EXTRACTION_TYPE');
16085
16086 PJI_FM_PLAN_MAINT_PVT.INSERT_FP_ROWS;
16087
16088 PJI_PROCESS_UTIL.REGISTER_STEP_COMPLETION(l_process, 'PJI_PJP_SUM_ROLLUP.INSERT_FPR_ROWS(p_worker_id);');
16089
16090 commit;
16091
16092 end INSERT_FPR_ROWS;
16093
16094
16095 -- -----------------------------------------------------
16096 -- procedure CLEANUP_FPR_ROWID_TABLE
16097 --
16098 -- History
16099 -- 19-MAR-2004 SVERMETT Created
16100 --
16101 -- Internal PJP Summarization API.
16102 --
16103 -- Called by RBS program
16104 --
16105 -- -----------------------------------------------------
16106 procedure CLEANUP_FPR_ROWID_TABLE (p_worker_id in number) is
16107
16108 l_process varchar2(30);
16109 l_extraction_type varchar2(30);
16110
16111 l_return_status varchar2(255);
16112 l_msg_count number;
16113 l_msg_data varchar2(2000);
16114
16115 begin
16116
16117 l_process := PJI_PJP_SUM_MAIN.g_process || to_char(p_worker_id);
16118
16119 if (not PJI_PROCESS_UTIL.NEED_TO_RUN_STEP(l_process, 'PJI_PJP_SUM_ROLLUP.CLEANUP_FPR_ROWID_TABLE(p_worker_id);')) then
16120 return;
16121 end if;
16122
16123 l_extraction_type := PJI_PROCESS_UTIL.GET_PROCESS_PARAMETER(l_process, 'EXTRACTION_TYPE');
16124
16125 -- PJI_FM_PLAN_MAINT_PVT.CLEANUP_FP_RMAP_FPR;
16126
16127 PJI_PROCESS_UTIL.REGISTER_STEP_COMPLETION(l_process, 'PJI_PJP_SUM_ROLLUP.CLEANUP_FPR_ROWID_TABLE(p_worker_id);');
16128
16129 commit;
16130
16131 end CLEANUP_FPR_ROWID_TABLE;
16132
16133
16134 -- -----------------------------------------------------
16135 -- procedure GET_ACR_ROWIDS
16136 --
16137 -- History
16138 -- 19-MAR-2004 SVERMETT Created
16139 --
16140 -- Internal PJP Summarization API.
16141 --
16142 -- -----------------------------------------------------
16143 procedure GET_ACR_ROWIDS (p_worker_id in number) is
16144
16145 l_process varchar2(30);
16146 l_extraction_type varchar2(30);
16147
16148 l_return_status varchar2(255);
16149 l_msg_count number;
16150 l_msg_data varchar2(2000);
16151
16152 begin
16153
16154 l_process := PJI_PJP_SUM_MAIN.g_process || to_char(p_worker_id);
16155
16156 if (not PJI_PROCESS_UTIL.NEED_TO_RUN_STEP(l_process, 'PJI_PJP_SUM_ROLLUP.GET_ACR_ROWIDS(p_worker_id);')) then
16157 return;
16158 end if;
16159
16160 l_extraction_type := PJI_PROCESS_UTIL.GET_PROCESS_PARAMETER(l_process, 'EXTRACTION_TYPE');
16161
16162 if (l_extraction_type = 'INCREMENTAL' or
16163 l_extraction_type = 'PARTIAL' or
16164 l_extraction_type = 'RBS') then
16165
16166 PJI_FM_PLAN_MAINT_PVT.GET_AC_ROW_IDS;
16167
16168 end if;
16169
16170 PJI_PROCESS_UTIL.REGISTER_STEP_COMPLETION(l_process, 'PJI_PJP_SUM_ROLLUP.GET_ACR_ROWIDS(p_worker_id);');
16171
16172 commit;
16173
16174 end GET_ACR_ROWIDS;
16175
16176
16177 -- -----------------------------------------------------
16178 -- procedure UPDATE_ACR_ROWS
16179 --
16180 -- History
16181 -- 19-MAR-2004 SVERMETT Created
16182 --
16183 -- Internal PJP Summarization API.
16184 --
16185 -- -----------------------------------------------------
16186 procedure UPDATE_ACR_ROWS (p_worker_id in number) is
16187
16188 l_process varchar2(30);
16189 l_extraction_type varchar2(30);
16190
16191 l_return_status varchar2(255);
16192 l_msg_count number;
16193 l_msg_data varchar2(2000);
16194
16195 begin
16196
16197 l_process := PJI_PJP_SUM_MAIN.g_process || to_char(p_worker_id);
16198
16199 if (not PJI_PROCESS_UTIL.NEED_TO_RUN_STEP(l_process, 'PJI_PJP_SUM_ROLLUP.UPDATE_ACR_ROWS(p_worker_id);')) then
16200 return;
16201 end if;
16202
16203 l_extraction_type := PJI_PROCESS_UTIL.GET_PROCESS_PARAMETER(l_process, 'EXTRACTION_TYPE');
16204
16205 if (l_extraction_type = 'INCREMENTAL' or
16206 l_extraction_type = 'PARTIAL' or
16207 l_extraction_type = 'RBS') then
16208
16209 PJI_FM_PLAN_MAINT_PVT.UPDATE_AC_ROWS;
16210
16211 end if;
16212
16213 PJI_PROCESS_UTIL.REGISTER_STEP_COMPLETION(l_process, 'PJI_PJP_SUM_ROLLUP.UPDATE_ACR_ROWS(p_worker_id);');
16214
16215 commit;
16216
16217 end UPDATE_ACR_ROWS;
16218
16219
16220 -- -----------------------------------------------------
16221 -- procedure INSERT_ACR_ROWS
16222 --
16223 -- History
16224 -- 19-MAR-2004 SVERMETT Created
16225 --
16226 -- Internal PJP Summarization API.
16227 --
16228 -- -----------------------------------------------------
16229 procedure INSERT_ACR_ROWS (p_worker_id in number) is
16230
16231 l_process varchar2(30);
16232 l_extraction_type varchar2(30);
16233
16234 l_return_status varchar2(255);
16235 l_msg_count number;
16236 l_msg_data varchar2(2000);
16237
16238 begin
16239
16240 l_process := PJI_PJP_SUM_MAIN.g_process || to_char(p_worker_id);
16241
16242 if (not PJI_PROCESS_UTIL.NEED_TO_RUN_STEP(l_process, 'PJI_PJP_SUM_ROLLUP.INSERT_ACR_ROWS(p_worker_id);')) then
16243 return;
16244 end if;
16245
16246 l_extraction_type := PJI_PROCESS_UTIL.GET_PROCESS_PARAMETER(l_process, 'EXTRACTION_TYPE');
16247
16248 if (l_extraction_type = 'FULL') then
16249
16250 PJI_FM_PLAN_MAINT_PVT.INSERT_INTO_AC_FACT;
16251
16252 elsif (l_extraction_type = 'INCREMENTAL' or
16253 l_extraction_type = 'PARTIAL' or
16254 l_extraction_type = 'RBS') then
16255
16256 PJI_FM_PLAN_MAINT_PVT.INSERT_AC_ROWS;
16257
16258 end if;
16259
16260 PJI_PROCESS_UTIL.REGISTER_STEP_COMPLETION(l_process, 'PJI_PJP_SUM_ROLLUP.INSERT_ACR_ROWS(p_worker_id);');
16261
16262 commit;
16263
16264 end INSERT_ACR_ROWS;
16265
16266
16267 -- -----------------------------------------------------
16268 -- procedure CLEANUP_ACR_ROWID_TABLE
16269 --
16270 -- History
16271 -- 19-MAR-2004 SVERMETT Created
16272 --
16273 -- Internal PJP Summarization API.
16274 --
16275 -- -----------------------------------------------------
16276 procedure CLEANUP_ACR_ROWID_TABLE (p_worker_id in number) is
16277
16278 l_process varchar2(30);
16279 l_extraction_type varchar2(30);
16280
16281 l_return_status varchar2(255);
16282 l_msg_count number;
16283 l_msg_data varchar2(2000);
16284
16285 begin
16286
16287 l_process := PJI_PJP_SUM_MAIN.g_process || to_char(p_worker_id);
16288
16289 if (not PJI_PROCESS_UTIL.NEED_TO_RUN_STEP(l_process, 'PJI_PJP_SUM_ROLLUP.CLEANUP_ACR_ROWID_TABLE(p_worker_id);')) then
16290 return;
16291 end if;
16292
16293 l_extraction_type := PJI_PROCESS_UTIL.GET_PROCESS_PARAMETER(l_process, 'EXTRACTION_TYPE');
16294
16295 -- if (l_extraction_type = 'INCREMENTAL' or
16296 -- l_extraction_type = 'PARTIAL' or
16297 -- l_extraction_type = 'RBS') then
16298 --
16299 -- PJI_FM_PLAN_MAINT_PVT.CLEANUP_AC_RMAP_FPR;
16300 --
16301 -- end if;
16302
16303 PJI_PROCESS_UTIL.REGISTER_STEP_COMPLETION(l_process, 'PJI_PJP_SUM_ROLLUP.CLEANUP_ACR_ROWID_TABLE(p_worker_id);');
16304
16305 commit;
16306
16307 end CLEANUP_ACR_ROWID_TABLE;
16308
16309
16310 -- -----------------------------------------------------
16311 -- procedure UPDATE_XBS_DENORM
16312 --
16313 -- History
16314 -- 19-MAR-2004 SVERMETT Created
16315 --
16316 -- This API will be called for both online and bulk processing.
16317 --
16318 -- -----------------------------------------------------
16319 procedure UPDATE_XBS_DENORM (p_worker_id in number default null) is
16320
16321 l_process varchar2(30);
16322 l_extraction_type varchar2(30);
16323
16324 l_last_update_date date;
16325 l_last_updated_by number;
16326 l_creation_date date;
16327 l_created_by number;
16328 l_last_update_login number;
16329
16330 l_count number;
16331 l_wbs_version_id_tbl SYSTEM.pa_num_tbl_type := SYSTEM.pa_num_tbl_type();
16332
16333 begin
16334
16335 l_last_update_date := sysdate;
16336 l_last_updated_by := FND_GLOBAL.USER_ID;
16337 l_creation_date := sysdate;
16338 l_created_by := FND_GLOBAL.USER_ID;
16339 l_last_update_login := FND_GLOBAL.LOGIN_ID;
16340
16341 if (p_worker_id is not null) then
16342
16343 l_process := PJI_PJP_SUM_MAIN.g_process || to_char(p_worker_id);
16344
16345 if (not PJI_PROCESS_UTIL.NEED_TO_RUN_STEP(l_process, 'PJI_PJP_SUM_ROLLUP.UPDATE_XBS_DENORM(p_worker_id);')) then
16346 return;
16347 end if;
16348
16349 l_extraction_type := PJI_PROCESS_UTIL.GET_PROCESS_PARAMETER(l_process, 'EXTRACTION_TYPE');
16350
16351 l_count := 0;
16352
16353 if (l_extraction_type = 'INCREMENTAL') then
16354
16355
16356 BEGIN
16357 select distinct struct_version_id bulk collect
16358 into l_wbs_version_id_tbl
16359 from (
16360 select ver.element_version_id struct_version_id
16361 from PA_PROJ_ELEMENT_VERSIONS ver
16362 where ver.OBJECT_TYPE = 'PA_STRUCTURES' and
16363 ver.PRG_GROUP in
16364 (select
16365 decode(invert.INVERT_ID,
16366 1, log.EVENT_OBJECT,
16367 2, log.ATTRIBUTE1) PRG_GROUP
16368 from
16369 PJI_PA_PROJ_EVENTS_LOG log,
16370 (
16371 select 1 INVERT_ID from DUAL union all
16372 select 2 INVERT_ID from DUAL
16373 ) invert
16374 where
16375 log.WORKER_ID = p_worker_id and
16376 log.EVENT_TYPE = 'PRG_CHANGE' and
16377 log.EVENT_OBJECT <> -1)
16378 union all
16379 select ver.wbs_version_id
16380 from PJI_PA_PROJ_EVENTS_LOG log,Pji_pjp_wbs_header ver
16381 where ver.project_id=to_number(log.ATTRIBUTE1) and
16382 log.WORKER_ID = p_worker_id and
16383 log.EVENT_TYPE = 'PRG_CHANGE' and
16384 log.EVENT_OBJECT = -1
16385 union all
16386 select to_number(decode(invert.INVERT_ID,
16387 1, log.EVENT_OBJECT,
16388 2, log.ATTRIBUTE2)) struct_version_id
16389 from PJI_PA_PROJ_EVENTS_LOG log,
16390 (
16391 select 1 INVERT_ID from DUAL union all
16392 select 2 INVERT_ID from DUAL
16393 ) invert
16394 where
16395 log.WORKER_ID = p_worker_id and
16396 log.EVENT_TYPE in ('WBS_CHANGE', 'WBS_PUBLISH'));
16397 EXCEPTION
16398 WHEN NO_DATA_FOUND then null;
16399 END;
16400
16401
16402
16403 delete from PJI_XBS_DENORM
16404 where SUP_PROJECT_ID in
16405 (select
16406 ver.PROJECT_ID
16407 from
16408 PA_PROJ_ELEMENT_VERSIONS ver
16409 where
16410 ver.OBJECT_TYPE = 'PA_STRUCTURES' and
16411 ver.PRG_GROUP in
16412 (select
16413 decode(invert.INVERT_ID,
16414 1, log.EVENT_OBJECT,
16415 2, log.ATTRIBUTE1) PRG_GROUP
16416 from
16417 PJI_PA_PROJ_EVENTS_LOG log,
16418 (
16419 select 1 INVERT_ID from DUAL union all
16420 select 2 INVERT_ID from DUAL
16421 ) invert
16422 where
16423 log.WORKER_ID = p_worker_id and
16424 log.EVENT_TYPE = 'PRG_CHANGE' and
16425 log.EVENT_OBJECT <> -1));
16426
16427 l_count := l_count + sql%rowcount;
16428
16429 delete from PJI_XBS_DENORM
16430 where SUP_PROJECT_ID in (select log.ATTRIBUTE1
16431 from PJI_PA_PROJ_EVENTS_LOG log
16432 where log.WORKER_ID = p_worker_id and
16433 log.EVENT_TYPE = 'PRG_CHANGE' and
16434 log.EVENT_OBJECT = -1);
16435
16436 l_count := l_count + sql%rowcount;
16437
16438 delete from PJI_XBS_DENORM
16439 where STRUCT_TYPE in ('WBS', 'XBS') and
16440 STRUCT_VERSION_ID in (select
16441 decode(invert.INVERT_ID,
16442 1, log.EVENT_OBJECT,
16443 2, log.ATTRIBUTE2)
16444 from
16445 PJI_PA_PROJ_EVENTS_LOG log,
16446 (
16447 select 1 INVERT_ID from DUAL union all
16448 select 2 INVERT_ID from DUAL
16449 ) invert
16450 where
16451 log.WORKER_ID = p_worker_id and
16452 log.EVENT_TYPE in ('WBS_CHANGE',
16453 'WBS_PUBLISH'));
16454
16455 l_count := l_count + sql%rowcount;
16456
16457 insert into PJI_XBS_DENORM
16458 (
16459 STRUCT_TYPE,
16460 PRG_GROUP,
16461 STRUCT_VERSION_ID,
16462 SUP_PROJECT_ID,
16463 SUP_ID,
16464 SUP_EMT_ID,
16465 SUBRO_ID,
16466 SUB_ID,
16467 SUB_EMT_ID,
16468 SUP_LEVEL,
16469 SUB_LEVEL,
16470 SUB_ROLLUP_ID,
16471 SUB_LEAF_FLAG,
16472 RELATIONSHIP_TYPE,
16473 LAST_UPDATE_DATE,
16474 LAST_UPDATED_BY,
16475 CREATION_DATE,
16476 CREATED_BY,
16477 LAST_UPDATE_LOGIN
16478 )
16479 select
16480 den.STRUCT_TYPE,
16481 den.PRG_GROUP,
16482 den.STRUCT_VERSION_ID,
16483 den.SUP_PROJECT_ID,
16484 den.SUP_ID,
16485 den.SUP_EMT_ID,
16486 den.SUBRO_ID,
16487 den.SUB_ID,
16488 den.SUB_EMT_ID,
16489 den.SUP_LEVEL,
16490 den.SUB_LEVEL,
16491 den.SUB_ROLLUP_ID,
16492 den.SUB_LEAF_FLAG,
16493 den.RELATIONSHIP_TYPE,
16494 l_last_update_date,
16495 l_last_updated_by,
16496 l_creation_date,
16497 l_created_by,
16498 l_last_update_login
16499 from
16500 PA_XBS_DENORM den
16501 where
16502 den.SUP_PROJECT_ID in
16503 (select
16504 ver.PROJECT_ID
16505 from
16506 PA_PROJ_ELEMENT_VERSIONS ver
16507 where
16508 ver.OBJECT_TYPE = 'PA_STRUCTURES' and
16509 ver.PRG_GROUP in
16510 (select
16511 decode(invert.INVERT_ID,
16512 1, log.EVENT_OBJECT,
16513 2, log.ATTRIBUTE1) PRG_GROUP
16514 from
16515 PJI_PA_PROJ_EVENTS_LOG log,
16516 (
16517 select 1 INVERT_ID from DUAL union all
16518 select 2 INVERT_ID from DUAL
16519 ) invert
16520 where
16521 log.WORKER_ID = p_worker_id and
16522 log.EVENT_TYPE = 'PRG_CHANGE' and
16523 log.EVENT_OBJECT <> -1)
16524 union
16525 select to_number(log.ATTRIBUTE1) PROJECT_ID
16526 from PJI_PA_PROJ_EVENTS_LOG log
16527 where log.WORKER_ID = p_worker_id and
16528 log.EVENT_TYPE = 'PRG_CHANGE' and
16529 log.EVENT_OBJECT = -1)
16530 union all
16531 select
16532 den.STRUCT_TYPE,
16533 den.PRG_GROUP,
16534 den.STRUCT_VERSION_ID,
16535 den.SUP_PROJECT_ID,
16536 den.SUP_ID,
16537 den.SUP_EMT_ID,
16538 den.SUBRO_ID,
16539 den.SUB_ID,
16540 den.SUB_EMT_ID,
16541 den.SUP_LEVEL,
16542 den.SUB_LEVEL,
16543 den.SUB_ROLLUP_ID,
16544 den.SUB_LEAF_FLAG,
16545 den.RELATIONSHIP_TYPE,
16546 l_last_update_date,
16547 l_last_updated_by,
16548 l_creation_date,
16549 l_created_by,
16550 l_last_update_login
16551 from
16552 PA_XBS_DENORM den,
16553 (
16554 select
16555 distinct
16556 EVENT_OBJECT,
16557 ATTRIBUTE2
16558 from
16559 PJI_PA_PROJ_EVENTS_LOG
16560 where
16561 WORKER_ID = p_worker_id and
16562 EVENT_TYPE in ('WBS_CHANGE', 'WBS_PUBLISH')
16563 ) log
16564 where
16565 den.STRUCT_TYPE in ('WBS', 'XBS') and
16566 (log.EVENT_OBJECT = den.STRUCT_VERSION_ID or
16567 log.ATTRIBUTE2 = den.STRUCT_VERSION_ID);
16568
16569 l_count := l_count + sql%rowcount;
16570
16571 elsif (l_extraction_type = 'PARTIAL') then
16572
16573 BEGIN
16574 select distinct ver.wbs_version_id bulk collect
16575 into l_wbs_version_id_tbl
16576 from PJI_PJP_PROJ_BATCH_MAP map,Pji_pjp_wbs_header ver
16577 where map.PROJECT_ID=ver.project_id
16578 and map.WORKER_ID = p_worker_id;
16579 EXCEPTION
16580 WHEN NO_DATA_FOUND then null;
16581 END;
16582
16583 delete
16584 from PJI_XBS_DENORM
16585 where SUP_PROJECT_ID in (select map.PROJECT_ID
16586 from PJI_PJP_PROJ_BATCH_MAP map
16587 where WORKER_ID = p_worker_id);
16588
16589 l_count := l_count + sql%rowcount;
16590
16591 insert into PJI_XBS_DENORM
16592 (
16593 STRUCT_TYPE,
16594 PRG_GROUP,
16595 STRUCT_VERSION_ID,
16596 SUP_PROJECT_ID,
16597 SUP_ID,
16598 SUP_EMT_ID,
16599 SUBRO_ID,
16600 SUB_ID,
16601 SUB_EMT_ID,
16602 SUP_LEVEL,
16603 SUB_LEVEL,
16604 SUB_ROLLUP_ID,
16605 SUB_LEAF_FLAG,
16606 RELATIONSHIP_TYPE,
16607 LAST_UPDATE_DATE,
16608 LAST_UPDATED_BY,
16609 CREATION_DATE,
16610 CREATED_BY,
16611 LAST_UPDATE_LOGIN
16612 )
16613 select
16614 den.STRUCT_TYPE,
16615 den.PRG_GROUP,
16616 den.STRUCT_VERSION_ID,
16617 den.SUP_PROJECT_ID,
16618 den.SUP_ID,
16619 den.SUP_EMT_ID,
16620 den.SUBRO_ID,
16621 den.SUB_ID,
16622 den.SUB_EMT_ID,
16623 den.SUP_LEVEL,
16624 den.SUB_LEVEL,
16625 den.SUB_ROLLUP_ID,
16626 den.SUB_LEAF_FLAG,
16627 den.RELATIONSHIP_TYPE,
16628 l_last_update_date,
16629 l_last_updated_by,
16630 l_creation_date,
16631 l_created_by,
16632 l_last_update_login
16633 from
16634 PJI_PJP_PROJ_BATCH_MAP map,
16635 PA_XBS_DENORM den
16636 where
16637 map.WORKER_ID = p_worker_id and
16638 den.SUP_PROJECT_ID = map.PROJECT_ID;
16639
16640 l_count := l_count + sql%rowcount;
16641
16642 end if;
16643
16644 if (l_count > 0) then
16645
16646 -- delete from PJI_REP_XBS_DENORM;
16647 pji_rep_util.Log_Struct_Change_Event(l_wbs_version_id_tbl);
16648 -- where PROJECT_ID in (select map.PROJECT_ID
16649 -- from PJI_PJP_PROJ_BATCH_MAP map
16650 -- where map.WORKER_ID = p_worker_id);
16651
16652 end if;
16653
16654 PJI_PROCESS_UTIL.REGISTER_STEP_COMPLETION(l_process, 'PJI_PJP_SUM_ROLLUP.UPDATE_XBS_DENORM(p_worker_id);');
16655
16656 commit;
16657
16658 else -- online mode
16659
16660 IF g_old_struct_version IS NOT NULL THEN
16661 l_wbs_version_id_tbl.EXTEND;
16662 l_wbs_version_id_tbl(1) :=g_old_struct_version ;
16663 IF g_new_struct_version IS NOT NULL and g_old_struct_version<>g_new_struct_version THEN
16664 l_wbs_version_id_tbl.EXTEND;
16665 l_wbs_version_id_tbl(2) :=g_new_struct_version ;
16666 END IF;
16667 else
16668 IF g_new_struct_version IS NOT NULL THEN
16669 l_wbs_version_id_tbl.EXTEND;
16670 l_wbs_version_id_tbl(1) :=g_new_struct_version ;
16671 END IF;
16672 END IF;
16673
16674 -- online mode, refresh denorm table for a single WBS version ID
16675
16676 l_count := 0;
16677
16678 delete /*+ index(den PJI_XBS_DENORM_N2) */
16679 from PJI_XBS_DENORM den
16680 where den.STRUCT_TYPE in ('WBS', 'XBS') and
16681 den.SUP_PROJECT_ID = g_project_id and
16682 den.STRUCT_VERSION_ID in (g_old_struct_version,
16683 g_new_struct_version);
16684
16685 l_count := l_count + sql%rowcount;
16686
16687 delete /*+ index(den PJI_XBS_DENORM_N3) */
16688 from PJI_XBS_DENORM den
16689 where den.STRUCT_TYPE = 'PRG' and
16690 den.SUP_PROJECT_ID in (select prg.SUP_PROJECT_ID
16691 from PJI_FP_AGGR_XBS_T prg
16692 where prg.STRUCT_TYPE = 'PRG');
16693
16694 l_count := l_count + sql%rowcount;
16695
16696 insert into PJI_XBS_DENORM
16697 (
16698 STRUCT_TYPE,
16699 PRG_GROUP,
16700 STRUCT_VERSION_ID,
16701 SUP_PROJECT_ID,
16702 SUP_ID,
16703 SUP_EMT_ID,
16704 SUBRO_ID,
16705 SUB_ID,
16706 SUB_EMT_ID,
16707 SUP_LEVEL,
16708 SUB_LEVEL,
16709 SUB_ROLLUP_ID,
16710 SUB_LEAF_FLAG,
16711 RELATIONSHIP_TYPE,
16712 LAST_UPDATE_DATE,
16713 LAST_UPDATED_BY,
16714 CREATION_DATE,
16715 CREATED_BY,
16716 LAST_UPDATE_LOGIN
16717 )
16718 select /*+ index(den PA_XBS_DENORM_N2) */
16719 den.STRUCT_TYPE,
16720 den.PRG_GROUP,
16721 den.STRUCT_VERSION_ID,
16722 den.SUP_PROJECT_ID,
16723 den.SUP_ID,
16724 den.SUP_EMT_ID,
16725 den.SUBRO_ID,
16726 den.SUB_ID,
16727 den.SUB_EMT_ID,
16728 den.SUP_LEVEL,
16729 den.SUB_LEVEL,
16730 den.SUB_ROLLUP_ID,
16731 den.SUB_LEAF_FLAG,
16732 den.RELATIONSHIP_TYPE,
16733 l_last_update_date,
16734 l_last_updated_by,
16735 l_creation_date,
16736 l_created_by,
16737 l_last_update_login
16738 from
16739 PA_XBS_DENORM den
16740 where
16741 den.STRUCT_TYPE in ('WBS', 'XBS') and
16742 den.SUP_PROJECT_ID = g_project_id and
16743 den.STRUCT_VERSION_ID in (g_old_struct_version,
16744 g_new_struct_version)
16745 union all
16746 select /*+ index(den PA_XBS_DENORM_N3) */
16747 den.STRUCT_TYPE,
16748 den.PRG_GROUP,
16749 den.STRUCT_VERSION_ID,
16750 den.SUP_PROJECT_ID,
16751 den.SUP_ID,
16752 den.SUP_EMT_ID,
16753 den.SUBRO_ID,
16754 den.SUB_ID,
16755 den.SUB_EMT_ID,
16756 den.SUP_LEVEL,
16757 den.SUB_LEVEL,
16758 den.SUB_ROLLUP_ID,
16759 den.SUB_LEAF_FLAG,
16760 den.RELATIONSHIP_TYPE,
16761 l_last_update_date,
16762 l_last_updated_by,
16763 l_creation_date,
16764 l_created_by,
16765 l_last_update_login
16766 from
16767 PA_XBS_DENORM den
16768 where
16769 den.STRUCT_TYPE = 'PRG' and
16770 den.SUP_PROJECT_ID in (select prg.SUP_PROJECT_ID
16771 from PJI_FP_AGGR_XBS_T prg
16772 where prg.STRUCT_TYPE = 'PRG');
16773
16774 if (l_count > 0) then
16775
16776 --delete from PJI_REP_XBS_DENORM;
16777 pji_rep_util.Log_Struct_Change_Event(l_wbs_version_id_tbl);
16778 -- where PROJECT_ID = g_project_id and
16779 -- OWNER_WBS_VERSION_ID in (g_old_struct_version,
16780 -- g_new_struct_version);
16781
16782 end if;
16783
16784 delete from PJI_XBS_DENORM_DELTA_T;
16785
16786 end if;
16787
16788 end UPDATE_XBS_DENORM;
16789
16790
16791 -- -----------------------------------------------------
16792 -- procedure UPDATE_RBS_DENORM
16793 --
16794 -- History
16795 -- 19-MAR-2004 SVERMETT Created
16796 --
16797 -- Internal PJP Summarization API.
16798 --
16799 -- Called by RBS program
16800 --
16801 -- This API will be called for both online and bulk processing.
16802 --
16803 -- -----------------------------------------------------
16804 procedure UPDATE_RBS_DENORM (p_worker_id in number default null) is
16805
16806 l_process varchar2(30);
16807 l_extraction_type varchar2(30);
16808
16809 l_last_update_date date;
16810 l_last_updated_by number;
16811 l_creation_date date;
16812 l_created_by number;
16813 l_last_update_login number;
16814
16815 l_fpm_upgrade varchar2(30);
16816
16817 begin
16818
16819 l_last_update_date := sysdate;
16820 l_last_updated_by := FND_GLOBAL.USER_ID;
16821 l_creation_date := sysdate;
16822 l_created_by := FND_GLOBAL.USER_ID;
16823 l_last_update_login := FND_GLOBAL.LOGIN_ID;
16824
16825 l_fpm_upgrade := PJI_UTILS.GET_PARAMETER('PJI_FPM_UPGRADE');
16826
16827 if (p_worker_id is not null) then
16828
16829 l_process := PJI_PJP_SUM_MAIN.g_process || to_char(p_worker_id);
16830
16831 if (not PJI_PROCESS_UTIL.NEED_TO_RUN_STEP(l_process, 'PJI_PJP_SUM_ROLLUP.UPDATE_RBS_DENORM(p_worker_id);')) then
16832 return;
16833 end if;
16834
16835 l_extraction_type := PJI_PROCESS_UTIL.GET_PROCESS_PARAMETER(l_process, 'EXTRACTION_TYPE');
16836
16837 if (nvl(l_fpm_upgrade, 'P') <> 'C' and
16838 l_extraction_type = 'FULL') then
16839
16840 insert into PJI_RBS_DENORM den_i
16841 (
16842 STRUCT_VERSION_ID,
16843 SUP_ID,
16844 SUBRO_ID,
16845 SUB_ID,
16846 SUP_LEVEL,
16847 SUB_LEVEL,
16848 SUB_LEAF_FLAG,
16849 LAST_UPDATE_DATE,
16850 LAST_UPDATED_BY,
16851 CREATION_DATE,
16852 CREATED_BY,
16853 LAST_UPDATE_LOGIN
16854 )
16855 select
16856 pa.STRUCT_VERSION_ID,
16857 pa.SUP_ID,
16858 pa.SUBRO_ID,
16859 pa.SUB_ID,
16860 pa.SUP_LEVEL,
16861 pa.SUB_LEVEL,
16862 pa.SUB_LEAF_FLAG,
16863 l_last_update_date,
16864 l_last_updated_by,
16865 l_creation_date,
16866 l_created_by,
16867 l_last_update_login
16868 from
16869 PA_RBS_DENORM pa,
16870 PJI_RBS_DENORM pji
16871 where
16872 nvl(pa.STRUCT_VERSION_ID, -1)
16873 = nvl(pji.STRUCT_VERSION_ID (+), -1) and
16874 nvl(pa.SUP_ID, -1) = nvl(pji.SUP_ID (+), -1) and
16875 nvl(pa.SUBRO_ID, -1) = nvl(pji.SUBRO_ID (+), -1) and
16876 nvl(pa.SUB_ID, -1) = nvl(pji.SUB_ID (+), -1) and
16877 nvl(pa.SUP_LEVEL, -1) = nvl(pji.SUP_LEVEL (+), -1) and
16878 nvl(pa.SUB_LEVEL, -1) = nvl(pji.SUB_LEVEL (+), -1) and
16879 nvl(pa.SUB_LEAF_FLAG, 'PJI$NULL')
16880 = nvl(pji.SUB_LEAF_FLAG (+), 'PJI$NULL') and
16881 pji.STRUCT_VERSION_ID is null;
16882
16883 elsif (l_extraction_type = 'INCREMENTAL' or
16884 (nvl(l_fpm_upgrade, 'P') = 'C' and
16885 l_extraction_type = 'FULL')) then
16886
16887 delete from PJI_RBS_DENORM
16888 where STRUCT_VERSION_ID in (select log.EVENT_OBJECT
16889 from PJI_PA_PROJ_EVENTS_LOG log
16890 where log.WORKER_ID = p_worker_id and
16891 log.EVENT_TYPE = 'PJI_RBS_CHANGE');
16892
16893 insert into PJI_RBS_DENORM
16894 (
16895 STRUCT_VERSION_ID,
16896 SUP_ID,
16897 SUBRO_ID,
16898 SUB_ID,
16899 SUP_LEVEL,
16900 SUB_LEVEL,
16901 SUB_LEAF_FLAG,
16902 LAST_UPDATE_DATE,
16903 LAST_UPDATED_BY,
16904 CREATION_DATE,
16905 CREATED_BY,
16906 LAST_UPDATE_LOGIN
16907 )
16908 select
16909 den.STRUCT_VERSION_ID,
16910 den.SUP_ID,
16911 den.SUBRO_ID,
16912 den.SUB_ID,
16913 den.SUP_LEVEL,
16914 den.SUB_LEVEL,
16915 den.SUB_LEAF_FLAG,
16916 l_last_update_date,
16917 l_last_updated_by,
16918 l_creation_date,
16919 l_created_by,
16920 l_last_update_login
16921 from
16922 PA_RBS_DENORM den,
16923 (
16924 select
16925 distinct
16926 log.EVENT_OBJECT
16927 from
16928 PJI_PA_PROJ_EVENTS_LOG log
16929 where
16930 log.WORKER_ID = p_worker_id and
16931 log.EVENT_TYPE in ('PJI_RBS_CHANGE')
16932 ) log
16933 where
16934 den.STRUCT_VERSION_ID = log.EVENT_OBJECT;
16935
16936 elsif (l_extraction_type = 'RBS') then
16937
16938 delete from PJI_RBS_DENORM
16939 where STRUCT_VERSION_ID in (select
16940 decode(log.EVENT_TYPE,
16941 'RBS_PUSH',
16942 decode(invert.INVERT_ID,
16943 1, log.EVENT_OBJECT,
16944 2, log.ATTRIBUTE2),
16945 'RBS_DELETE', log.EVENT_OBJECT)
16946 from
16947 PJI_PA_PROJ_EVENTS_LOG log,
16948 (
16949 select 1 INVERT_ID from DUAL union all
16950 select 2 INVERT_ID from DUAL
16951 ) invert
16952 where
16953 log.WORKER_ID = p_worker_id and
16954 log.EVENT_TYPE in ('RBS_PUSH',
16955 'RBS_DELETE'));
16956
16957 insert into PJI_RBS_DENORM
16958 (
16959 STRUCT_VERSION_ID,
16960 SUP_ID,
16961 SUBRO_ID,
16962 SUB_ID,
16963 SUP_LEVEL,
16964 SUB_LEVEL,
16965 SUB_LEAF_FLAG,
16966 LAST_UPDATE_DATE,
16967 LAST_UPDATED_BY,
16968 CREATION_DATE,
16969 CREATED_BY,
16970 LAST_UPDATE_LOGIN
16971 )
16972 select
16973 den.STRUCT_VERSION_ID,
16974 den.SUP_ID,
16975 den.SUBRO_ID,
16976 den.SUB_ID,
16977 den.SUP_LEVEL,
16978 den.SUB_LEVEL,
16979 den.SUB_LEAF_FLAG,
16980 l_last_update_date,
16981 l_last_updated_by,
16982 l_creation_date,
16983 l_created_by,
16984 l_last_update_login
16985 from
16986 PA_RBS_DENORM den,
16987 (
16988 select
16989 distinct
16990 EVENT_OBJECT,
16991 ATTRIBUTE2
16992 from
16993 PJI_PA_PROJ_EVENTS_LOG
16994 where
16995 WORKER_ID = p_worker_id and
16996 EVENT_TYPE = 'RBS_PUSH'
16997 ) log
16998 where
16999 den.STRUCT_VERSION_ID = log.EVENT_OBJECT;
17000
17001 end if;
17002
17003 PJI_PROCESS_UTIL.REGISTER_STEP_COMPLETION(l_process, 'PJI_PJP_SUM_ROLLUP.UPDATE_RBS_DENORM(p_worker_id);');
17004
17005 commit;
17006
17007 else -- online mode
17008
17009 delete from PJI_RBS_DENORM
17010 where STRUCT_VERSION_ID = g_rbs_version;
17011
17012 insert into PJI_RBS_DENORM
17013 (
17014 STRUCT_VERSION_ID,
17015 SUP_ID,
17016 SUBRO_ID,
17017 SUB_ID,
17018 SUP_LEVEL,
17019 SUB_LEVEL,
17020 SUB_LEAF_FLAG,
17021 LAST_UPDATE_DATE,
17022 LAST_UPDATED_BY,
17023 CREATION_DATE,
17024 CREATED_BY,
17025 LAST_UPDATE_LOGIN
17026 )
17027 select
17028 den.STRUCT_VERSION_ID,
17029 den.SUP_ID,
17030 den.SUBRO_ID,
17031 den.SUB_ID,
17032 den.SUP_LEVEL,
17033 den.SUB_LEVEL,
17034 den.SUB_LEAF_FLAG,
17035 l_last_update_date,
17036 l_last_updated_by,
17037 l_creation_date,
17038 l_created_by,
17039 l_last_update_login
17040 from
17041 PA_RBS_DENORM den
17042 where
17043 den.STRUCT_VERSION_ID = g_rbs_version;
17044
17045 -- delete from PJI_RBS_DENORM_DELTA_T;
17046
17047 end if;
17048
17049 end UPDATE_RBS_DENORM;
17050
17051
17052 -- -----------------------------------------------------
17053 -- procedure PROCESS_PENDING_EVENTS
17054 --
17055 -- History
17056 -- 19-MAR-2004 SVERMETT Created
17057 --
17058 -- Internal PJP Summarization API.
17059 --
17060 -- -----------------------------------------------------
17061 procedure PROCESS_PENDING_EVENTS (p_worker_id in number) is
17062
17063 l_process varchar2(30);
17064 l_extraction_type varchar2(30);
17065
17066 l_return_status varchar2(255);
17067 l_msg_count number;
17068 l_msg_data varchar2(2000);
17069
17070 begin
17071
17072 l_process := PJI_PJP_SUM_MAIN.g_process || to_char(p_worker_id);
17073
17074 if (not PJI_PROCESS_UTIL.NEED_TO_RUN_STEP(l_process, 'PJI_PJP_SUM_ROLLUP.PROCESS_PENDING_EVENTS(p_worker_id);')) then
17075 return;
17076 end if;
17077
17078 l_extraction_type := PJI_PROCESS_UTIL.GET_PROCESS_PARAMETER(l_process, 'EXTRACTION_TYPE');
17079
17080 begin
17081 PJI_FM_XBS_ACCUM_MAINT.PROCESS_PENDING_EVENTS(l_return_status,
17082 l_msg_data);
17083 exception when others then
17084 PJI_UTILS.WRITE2LOG('PROCESS_PENDING_EVENTS:' || SQLERRM);
17085 end;
17086
17087 PJI_PROCESS_UTIL.REGISTER_STEP_COMPLETION(l_process, 'PJI_PJP_SUM_ROLLUP.PROCESS_PENDING_EVENTS(p_worker_id);');
17088
17089 commit;
17090
17091 end PROCESS_PENDING_EVENTS;
17092
17093
17094 -- -----------------------------------------------------
17095 -- procedure PROCESS_PENDING_PLAN_UPDATES
17096 --
17097 -- History
17098 -- 19-MAR-2004 SVERMETT Created
17099 --
17100 -- Internal PJP Summarization API.
17101 --
17102 -- -----------------------------------------------------
17103 procedure PROCESS_PENDING_PLAN_UPDATES (p_worker_id in number) is
17104
17105 l_process varchar2(30);
17106 l_extraction_type varchar2(30);
17107
17108 l_return_status varchar2(255);
17109 l_msg_count number;
17110 l_msg_data varchar2(2000);
17111
17112 begin
17113
17114 l_process := PJI_PJP_SUM_MAIN.g_process || to_char(p_worker_id);
17115
17116 if (not PJI_PROCESS_UTIL.NEED_TO_RUN_STEP(l_process, 'PJI_PJP_SUM_ROLLUP.PROCESS_PENDING_PLAN_UPDATES(p_worker_id);')) then
17117 return;
17118 end if;
17119
17120 l_extraction_type := PJI_PROCESS_UTIL.GET_PROCESS_PARAMETER(l_process, 'EXTRACTION_TYPE');
17121
17122 PJI_FM_PLAN_MAINT_PVT.PROCESS_PENDING_PLAN_UPDATES(l_extraction_type,
17123 l_return_status,
17124 l_msg_data);
17125
17126 PJI_PROCESS_UTIL.REGISTER_STEP_COMPLETION(l_process, 'PJI_PJP_SUM_ROLLUP.PROCESS_PENDING_PLAN_UPDATES(p_worker_id);');
17127
17128 commit;
17129
17130 end PROCESS_PENDING_PLAN_UPDATES;
17131
17132
17133 -- -----------------------------------------------------
17134 -- procedure GET_PLANRES_ACTUALS
17135 --
17136 -- History
17137 -- 26-JAN-2004 SASHAIK Created
17138 --
17139 -- Internal PJP Summarization API.
17140 --
17141 -- -----------------------------------------------------
17142 procedure GET_PLANRES_ACTUALS (p_worker_id in number) is
17143
17144 cursor project_list (p_worker_id in number) is
17145 select
17146 ROWNUM,
17147 PROJECT_ID
17148 from
17149 PJI_PJP_PROJ_BATCH_MAP
17150 where
17151 WORKER_ID = p_worker_id and
17152 PJI_PROJECT_STATUS = 'Y' and
17153 rownum <= G_PROGRESS_COMMIT_SIZE;
17154
17155 l_process varchar2(30);
17156 l_extraction_type varchar2(30);
17157 l_extraction_type_wp varchar2(30);
17158
17159 l_project_id_tbl system.pa_num_tbl_type;
17160 l_prj_index number;
17161 l_return_status varchar2(255);
17162 l_msg_count number;
17163 l_msg_data varchar2(2000);
17164 l_ret_msg_data varchar2(2000);
17165 l_ret_status varchar2(255);
17166 l_success varchar2(1) := 'Y';
17167 l_err_msg1 VARCHAR2(100):= 'Error in PJI_PJP_SUM_ROLLUP.GET_PLANRES_ACTUALS -> PA_PROGRESS_PUB.GET_SUMMARIZED_ACTUALS';
17168 l_err_msg2 VARCHAR2(100):= 'Error in PJI_PJP_SUM_ROLLUP.GET_PLANRES_ACTUALS -> PJI_FM_PLAN_MAINT.GET_ACTUALS_SUMM';
17169
17170 begin
17171
17172 l_process := PJI_PJP_SUM_MAIN.g_process || to_char(p_worker_id);
17173 l_ret_status := FND_API.G_RET_STS_SUCCESS;
17174
17175 if (not PJI_PROCESS_UTIL.NEED_TO_RUN_STEP(l_process, 'PJI_PJP_SUM_ROLLUP.GET_PLANRES_ACTUALS(p_worker_id);')) then
17176 return;
17177 end if;
17178
17179 l_extraction_type := PJI_PROCESS_UTIL.GET_PROCESS_PARAMETER(l_process, 'EXTRACTION_TYPE');
17180
17181 -- Incr-Incr, Full-Initial, rbs-full, pr-full.
17182 SELECT DECODE(l_extraction_type, 'INCREMENTAL', 'INCREMENTAL', 'FULL', 'INITIAL', 'FULL')
17183 INTO l_extraction_type_wp
17184 FROM DUAL;
17185
17186 LOOP
17187
17188 l_project_id_tbl := system.pa_num_tbl_type();
17189 l_project_id_tbl.delete;
17190 l_prj_index := 1;
17191
17192 for c in project_list(p_worker_id) loop
17193 l_project_id_tbl.extend(1);
17194 l_project_id_tbl(l_prj_index) := c.PROJECT_ID;
17195 l_prj_index := l_prj_index + 1;
17196 end loop;
17197
17198 EXIT WHEN l_project_id_tbl.COUNT = 0;
17199
17200 if (l_prj_index > 1) then
17201
17202 Pa_Task_Pub1.G_CALL_PJI_ROLLUP := 'N';
17203
17204 savepoint S_PROGRESS_ROLLUP;
17205
17206 PA_PROGRESS_PUB.GET_SUMMARIZED_ACTUALS(p_project_id_list => l_project_id_tbl,
17207 p_extraction_type => l_extraction_type_wp,
17208 p_plan_res_level => 'Y',
17209 x_return_status => l_return_status,
17210 x_msg_count => l_msg_count,
17211 x_msg_data => l_msg_data);
17212
17213
17214 if (l_return_status <> FND_API.G_RET_STS_SUCCESS) then
17215 FND_MESSAGE.SET_NAME('PA', l_msg_data);
17216 l_ret_msg_data := FND_MESSAGE.GET;
17217 rollback to S_PROGRESS_ROLLUP;
17218 l_success := 'Y';
17219 end if;
17220
17221 -- l_success := 'N'; -- NOTE!!! This condition is present only to simulate failure
17222 -- condition. It is to be commented at all times in checked
17223 -- in code.
17224
17225 forall j in 1..l_project_id_tbl.COUNT
17226 update PJI_PJP_PROJ_BATCH_MAP
17227 set pji_project_status =
17228 decode(l_return_status
17229 , FND_API.G_RET_STS_SUCCESS
17230 , 'S' -- Success
17231 , 'S' -- keeping this for future requirement Pending processing as actuals did not get returned for this project.
17232 ),
17233 act_err_msg= decode(l_return_status
17234 , FND_API.G_RET_STS_SUCCESS
17235 , act_err_msg
17236 , l_ret_msg_data
17237 )
17238 where WORKER_ID = p_worker_id and
17239 project_id = l_project_id_tbl(j);
17240
17241 COMMIT;
17242
17243 end if;
17244
17245 END LOOP;
17246
17247 if l_success <> 'Y' then
17248
17249 update pji_pjp_proj_batch_map -- Process the pending projects in the next sumz run.
17250 set pji_project_status = 'Y'
17251 where
17252 WORKER_ID = p_worker_id and
17253 pji_project_status = 'P';
17254
17255 commit;
17256 dbms_standard.raise_application_error(-20110, l_err_msg1);
17257
17258 end if;
17259
17260 -- Reset flags. 'N' means actuals don't exist for this project.
17261 -- Reset flags for only those projects for which actuals exist.
17262 update pji_pjp_proj_batch_map
17263 set pji_project_status = 'Y'
17264 where
17265 WORKER_ID = p_worker_id and
17266 pji_project_status <> 'N';
17267
17268
17269 PJI_FM_PLAN_MAINT.GET_ACTUALS_SUMM (
17270 p_extr_type => l_extraction_type
17271 , x_return_status => l_return_status
17272 , x_msg_code => l_msg_data ) ;
17273
17274 IF (l_return_status <> FND_API.G_RET_STS_SUCCESS) THEN
17275 dbms_standard.raise_application_error(-20120, l_err_msg2);
17276 END IF;
17277
17278 PJI_PROCESS_UTIL.REGISTER_STEP_COMPLETION(l_process, 'PJI_PJP_SUM_ROLLUP.GET_PLANRES_ACTUALS(p_worker_id);');
17279
17280 commit;
17281
17282 end GET_PLANRES_ACTUALS;
17283
17284
17285 -- -----------------------------------------------------
17286 -- procedure GET_TASK_ROLLUP_ACTUALS
17287 --
17288 -- History
17289 -- 26-JAN-2004 SASHAIK Created
17290 --
17291 -- Internal PJP Summarization API.
17292 --
17293 -- -----------------------------------------------------
17294 procedure GET_TASK_ROLLUP_ACTUALS (p_worker_id in number) is
17295
17296 cursor project_list (p_worker_id in number) is
17297 SELECT nvl(ver.PRG_LEVEL,1) PRG_LEVEL,
17298 ver.PROJECT_ID
17299 FROM
17300 pji_pjp_proj_batch_map map,
17301 pa_proj_element_versions ver,
17302 pa_proj_structure_types typ,
17303 pa_proj_elem_ver_structure str
17304 WHERE
17305 typ.STRUCTURE_TYPE_ID = 1
17306 AND typ.PROJ_ELEMENT_ID = str.PROJ_ELEMENT_ID
17307 AND str.LATEST_EFF_PUBLISHED_FLAG = 'Y'
17308 AND str.ELEMENT_VERSION_ID = ver.ELEMENT_VERSION_ID
17309 AND str.PROJ_ELEMENT_ID = ver.PROJ_ELEMENT_ID
17310 AND str.PROJECT_ID = ver.PROJECT_ID
17311 AND ver.OBJECT_TYPE = 'PA_STRUCTURES'
17312 AND ver.PROJECT_ID = map.PROJECT_ID
17313 AND map.WORKER_ID = p_worker_id
17314 AND map.PJI_PROJECT_STATUS = 'Y'
17315 ORDER BY ver.PRG_LEVEL DESC NULLS FIRST;
17316
17317 l_process varchar2(30);
17318 l_extraction_type varchar2(30);
17319
17320 l_project_id_tbl system.pa_num_tbl_type;
17321 l_prg_level_tbl system.pa_num_tbl_type;
17322 l_prj_index number;
17323 l_return_status varchar2(255);
17324 l_msg_count number;
17325 l_msg_data varchar2(2000);
17326
17327 begin
17328
17329
17330 l_process := PJI_PJP_SUM_MAIN.g_process || to_char(p_worker_id);
17331
17332 if (not PJI_PROCESS_UTIL.NEED_TO_RUN_STEP(l_process, 'PJI_PJP_SUM_ROLLUP.GET_TASK_ROLLUP_ACTUALS(p_worker_id);')) then
17333 return;
17334 end if;
17335
17336 l_extraction_type := PJI_PROCESS_UTIL.GET_PROCESS_PARAMETER(l_process, 'EXTRACTION_TYPE');
17337
17338 if (l_extraction_type = 'FULL' or
17339 l_extraction_type = 'INCREMENTAL') then
17340
17341 update PJI_PJP_PROJ_BATCH_MAP
17342 set PJI_PROJECT_STATUS = 'Y'
17343 where WORKER_ID = p_worker_id and
17344 PJI_PROJECT_STATUS is null and
17345 PROJECT_ID in (select distinct
17346 PROJECT_ID
17347 from PJI_FP_AGGR_PJP1
17348 where WORKER_ID = p_worker_id
17349 and PLAN_VERSION_ID = -1);
17350
17351 end if;
17352
17353 l_project_id_tbl := system.pa_num_tbl_type();
17354 l_project_id_tbl.delete;
17355 l_prg_level_tbl := system.pa_num_tbl_type();
17356 l_prg_level_tbl.delete;
17357 l_prj_index := 1;
17358
17359 for c in project_list(p_worker_id) loop
17360 l_project_id_tbl.extend(1);
17361 l_project_id_tbl(l_prj_index) := c.PROJECT_ID;
17362 l_prg_level_tbl.extend(1);
17363 l_prg_level_tbl(l_prj_index) := c.PRG_LEVEL;
17364 l_prj_index := l_prj_index + 1;
17365 end loop;
17366
17367
17368
17369 if (l_prj_index > 1) then
17370
17371 PA_PROGRESS_PUB.GET_SUMMARIZED_ACTUALS(p_project_id_list => l_project_id_tbl,
17372 p_extraction_type => l_extraction_type,
17373 p_plan_res_level => 'N',
17374 p_proj_pgm_level => l_prg_level_tbl,
17375 x_return_status => l_return_status,
17376 x_msg_count => l_msg_count,
17377 x_msg_data => l_msg_data);
17378
17379
17380 if (l_return_status <> FND_API.G_RET_STS_SUCCESS) then
17381 dbms_standard.raise_application_error(-20130, 'Error in PJI_PJP_SUM_ROLLUP.GET_TASK_ROLLUP_ACTUALS -> PA_PROGRESS_PUB.GET_SUMMARIZED_ACTUALS');
17382 end if;
17383
17384 end if;
17385
17386 PJI_PROCESS_UTIL.REGISTER_STEP_COMPLETION(l_process, 'PJI_PJP_SUM_ROLLUP.GET_TASK_ROLLUP_ACTUALS(p_worker_id);');
17387
17388 commit;
17389
17390 end GET_TASK_ROLLUP_ACTUALS;
17391
17392
17393 -- -----------------------------------------------------
17394 -- procedure UNLOCK_ALL_HEADERS
17395 --
17396 -- History
17397 -- 19-MAR-2004 SVERMETT Created
17398 --
17399 -- Internal PJP Summarization API.
17400 --
17401 -- -----------------------------------------------------
17402 procedure UNLOCK_ALL_HEADERS (p_worker_id in number) is
17403
17404 l_process varchar2(30);
17405 l_extraction_type varchar2(30);
17406
17407 l_return_status varchar2(255);
17408 l_msg_count number;
17409 l_msg_data varchar2(2000);
17410 l_msg_code varchar2(255);
17411
17412 begin
17413
17414 l_process := PJI_PJP_SUM_MAIN.g_process || to_char(p_worker_id);
17415
17416 if (not PJI_PROCESS_UTIL.NEED_TO_RUN_STEP(l_process, 'PJI_PJP_SUM_ROLLUP.UNLOCK_ALL_HEADERS(p_worker_id);')) then
17417 return;
17418 end if;
17419
17420 l_extraction_type := PJI_PROCESS_UTIL.GET_PROCESS_PARAMETER(l_process, 'EXTRACTION_TYPE');
17421
17422 update PJI_PJP_WBS_HEADER
17423 set LOCK_FLAG = null
17424 where LOCK_FLAG is not null
17425 and project_id IN
17426 ( SELECT project_id
17427 FROM pji_pjp_proj_batch_map
17428 WHERE worker_id = p_worker_id );
17429
17430 -- SELECT DECODE(l_extraction_type, 'PARTIAL', 'PLANTYPE', l_extraction_type)
17431 -- INTO l_extraction_type
17432 -- FROM DUAL ;
17433
17434 Pji_Fm_Plan_Maint_Pvt.OBTAIN_RELEASE_LOCKS (
17435 p_context => l_extraction_type
17436 , p_lock_mode => NULL
17437 , x_return_status => l_return_status
17438 , x_msg_code => l_msg_code
17439 );
17440
17441 PJI_FM_PLAN_MAINT_PVT.DELETE_PLAN_LINES ( x_return_status => l_return_status );
17442
17443 -- Pji_Fm_Plan_Maint_Pvt.MARK_EXTRACTED_PLANS('SEC');
17444 -- Back to CREATE_SECONDARY_PVT due to issue 5155692
17445
17446 PJI_PROCESS_UTIL.REGISTER_STEP_COMPLETION(l_process, 'PJI_PJP_SUM_ROLLUP.UNLOCK_ALL_HEADERS(p_worker_id);');
17447
17448 commit;
17449
17450 end UNLOCK_ALL_HEADERS;
17451
17452
17453 -- -----------------------------------------------------
17454 -- procedure EXTRACT_FIN_PLAN_VERS_BULK
17455 --
17456 -- History
17457 -- 19-MAR-2004 SVERMETT Created
17458 --
17459 -- Used solely for FP.M Upgrade
17460 --
17461 -- -----------------------------------------------------
17462 procedure EXTRACT_FIN_PLAN_VERS_BULK (p_worker_id in number) is
17463
17464 l_process varchar2(30);
17465 l_extraction_type varchar2(30);
17466
17467 l_return_status varchar2(255);
17468 l_msg_count number;
17469 l_msg_data varchar2(2000);
17470
17471 begin
17472
17473 l_process := PJI_PJP_SUM_MAIN.g_process || to_char(p_worker_id);
17474
17475 if (not PJI_PROCESS_UTIL.NEED_TO_RUN_STEP(l_process, 'PJI_PJP_SUM_ROLLUP.EXTRACT_FIN_PLAN_VERS_BULK(p_worker_id);')) then
17476 return;
17477 end if;
17478
17479 l_extraction_type := PJI_PROCESS_UTIL.GET_PROCESS_PARAMETER(l_process, 'EXTRACTION_TYPE');
17480
17481 PJI_FM_PLAN_MAINT_PVT.EXTRACT_FIN_PLAN_VERS_BULK(p_slice_type => 'PRI');
17482
17483 PJI_PROCESS_UTIL.REGISTER_STEP_COMPLETION(l_process, 'PJI_PJP_SUM_ROLLUP.EXTRACT_FIN_PLAN_VERS_BULK(p_worker_id);');
17484
17485 commit;
17486
17487 end EXTRACT_FIN_PLAN_VERS_BULK;
17488
17489
17490 -- -----------------------------------------------------
17491 -- procedure POPULATE_WBS_HDR
17492 --
17493 -- History
17494 -- 19-MAR-2004 SVERMETT Created
17495 --
17496 -- Used solely for FP.M Upgrade
17497 --
17498 -- -----------------------------------------------------
17499 procedure POPULATE_WBS_HDR (p_worker_id in number) is
17500
17501 l_process varchar2(30);
17502 l_extraction_type varchar2(30);
17503
17504 l_return_status varchar2(255);
17505 l_msg_count number;
17506 l_msg_data varchar2(2000);
17507
17508 begin
17509
17510 l_process := PJI_PJP_SUM_MAIN.g_process || to_char(p_worker_id);
17511
17512 if (not PJI_PROCESS_UTIL.NEED_TO_RUN_STEP(l_process, 'PJI_PJP_SUM_ROLLUP.POPULATE_WBS_HDR(p_worker_id);')) then
17513 return;
17514 end if;
17515
17516 l_extraction_type := PJI_PROCESS_UTIL.GET_PROCESS_PARAMETER(l_process, 'EXTRACTION_TYPE');
17517
17518 PJI_FM_PLAN_MAINT_PVT.POPULATE_WBS_HDR;
17519
17520 PJI_PROCESS_UTIL.REGISTER_STEP_COMPLETION(l_process, 'PJI_PJP_SUM_ROLLUP.POPULATE_WBS_HDR(p_worker_id);');
17521
17522 commit;
17523
17524 end POPULATE_WBS_HDR;
17525
17526
17527 -- -----------------------------------------------------
17528 -- procedure UPDATE_WBS_HDR
17529 --
17530 -- History
17531 -- 19-MAR-2004 SASHAIK Created
17532 --
17533 -- Used solely for FP.M Upgrade
17534 --
17535 -- -----------------------------------------------------
17536 procedure UPDATE_WBS_HDR (p_worker_id in number) is
17537
17538 l_process varchar2(30);
17539 l_extraction_type varchar2(30);
17540
17541 l_return_status varchar2(255);
17542 l_msg_count number;
17543 l_msg_data varchar2(2000);
17544
17545 begin
17546
17547 l_process := PJI_PJP_SUM_MAIN.g_process || to_char(p_worker_id);
17548
17549 if (not PJI_PROCESS_UTIL.NEED_TO_RUN_STEP(l_process, 'PJI_PJP_SUM_ROLLUP.UPDATE_WBS_HDR(p_worker_id);')) then
17550 return;
17551 end if;
17552
17553 l_extraction_type := PJI_PROCESS_UTIL.GET_PROCESS_PARAMETER(l_process, 'EXTRACTION_TYPE');
17554
17555 -- PJI_FM_PLAN_MAINT_PVT.UPDATE_WBS_HDR;
17556 PJI_FM_PLAN_MAINT_PVT.UPDATE_WBS_HDR(p_worker_id);
17557
17558 PJI_PROCESS_UTIL.REGISTER_STEP_COMPLETION(l_process, 'PJI_PJP_SUM_ROLLUP.UPDATE_WBS_HDR(p_worker_id);');
17559
17560 commit;
17561
17562 end UPDATE_WBS_HDR;
17563
17564
17565 -- -----------------------------------------------------
17566 -- procedure POPULATE_RBS_HDR
17567 --
17568 -- History
17569 -- 19-MAR-2004 SVERMETT Created
17570 --
17571 -- Used solely for FP.M Upgrade
17572 --
17573 -- -----------------------------------------------------
17574 procedure POPULATE_RBS_HDR (p_worker_id in number) is
17575
17576 l_process varchar2(30);
17577 l_extraction_type varchar2(30);
17578
17579 l_return_status varchar2(255);
17580 l_msg_count number;
17581 l_msg_data varchar2(2000);
17582
17583 begin
17584
17585 l_process := PJI_PJP_SUM_MAIN.g_process || to_char(p_worker_id);
17586
17587 if (not PJI_PROCESS_UTIL.NEED_TO_RUN_STEP(l_process, 'PJI_PJP_SUM_ROLLUP.POPULATE_RBS_HDR(p_worker_id);')) then
17588 return;
17589 end if;
17590
17591 l_extraction_type := PJI_PROCESS_UTIL.GET_PROCESS_PARAMETER(l_process, 'EXTRACTION_TYPE');
17592
17593 PJI_FM_PLAN_MAINT_PVT.POPULATE_RBS_HDR;
17594
17595 PJI_PROCESS_UTIL.REGISTER_STEP_COMPLETION(l_process, 'PJI_PJP_SUM_ROLLUP.POPULATE_RBS_HDR(p_worker_id);');
17596
17597 commit;
17598
17599 end POPULATE_RBS_HDR;
17600
17601
17602 -- -----------------------------------------------------
17603 -- procedure EXTRACT_PLAN_AMOUNTS_PRIRBS
17604 --
17605 -- History
17606 -- 19-MAR-2004 SVERMETT Created
17607 --
17608 -- Used solely for FP.M Upgrade
17609 --
17610 -- -----------------------------------------------------
17611 procedure EXTRACT_PLAN_AMOUNTS_PRIRBS (p_worker_id in number) is
17612
17613 l_process varchar2(30);
17614 l_extraction_type varchar2(30);
17615
17616 l_return_status varchar2(255);
17617 l_msg_count number;
17618 l_msg_data varchar2(2000);
17619
17620 begin
17621
17622 l_process := PJI_PJP_SUM_MAIN.g_process || to_char(p_worker_id);
17623
17624 if (not PJI_PROCESS_UTIL.NEED_TO_RUN_STEP(l_process, 'PJI_PJP_SUM_ROLLUP.EXTRACT_PLAN_AMOUNTS_PRIRBS(p_worker_id);')) then
17625 return;
17626 end if;
17627
17628 l_extraction_type := PJI_PROCESS_UTIL.GET_PROCESS_PARAMETER(l_process, 'EXTRACTION_TYPE');
17629
17630 PJI_FM_PLAN_MAINT_PVT.EXTRACT_PLAN_AMOUNTS_PRIRBS;
17631
17632 PJI_PROCESS_UTIL.REGISTER_STEP_COMPLETION(l_process, 'PJI_PJP_SUM_ROLLUP.EXTRACT_PLAN_AMOUNTS_PRIRBS(p_worker_id);');
17633
17634 commit;
17635
17636 end EXTRACT_PLAN_AMOUNTS_PRIRBS;
17637
17638
17639 -- -----------------------------------------------------
17640 -- procedure ROLLUP_FPR_RBS_T_SLICE
17641 --
17642 -- History
17643 -- 19-MAR-2004 SVERMETT Created
17644 --
17645 -- Used solely for FP.M Upgrade
17646 --
17647 -- -----------------------------------------------------
17648 procedure ROLLUP_FPR_RBS_T_SLICE (p_worker_id in number) is
17649
17650 l_process varchar2(30);
17651 l_extraction_type varchar2(30);
17652
17653 l_return_status varchar2(255);
17654 l_msg_count number;
17655 l_msg_data varchar2(2000);
17656
17657 begin
17658
17659 l_process := PJI_PJP_SUM_MAIN.g_process || to_char(p_worker_id);
17660
17661 if (not PJI_PROCESS_UTIL.NEED_TO_RUN_STEP(l_process, 'PJI_PJP_SUM_ROLLUP.ROLLUP_FPR_RBS_T_SLICE(p_worker_id);')) then
17662 return;
17663 end if;
17664
17665 l_extraction_type := PJI_PROCESS_UTIL.GET_PROCESS_PARAMETER(l_process, 'EXTRACTION_TYPE');
17666
17667 PJI_FM_PLAN_MAINT_PVT.ROLLUP_FPR_RBS_T_SLICE;
17668
17669 PJI_PROCESS_UTIL.REGISTER_STEP_COMPLETION(l_process, 'PJI_PJP_SUM_ROLLUP.ROLLUP_FPR_RBS_T_SLICE(p_worker_id);');
17670
17671 commit;
17672
17673 end ROLLUP_FPR_RBS_T_SLICE;
17674
17675
17676 -- -----------------------------------------------------
17677 -- procedure CREATE_FP_PA_PRI_ROLLUP
17678 --
17679 -- History
17680 -- 19-MAR-2004 SVERMETT Created
17681 --
17682 -- Used solely for FP.M Upgrade
17683 --
17684 -- -----------------------------------------------------
17685 procedure CREATE_FP_PA_PRI_ROLLUP (p_worker_id in number) is
17686
17687 l_process varchar2(30);
17688 l_extraction_type varchar2(30);
17689
17690 l_return_status varchar2(255);
17691 l_msg_count number;
17692 l_msg_data varchar2(2000);
17693
17694 begin
17695
17696 l_process := PJI_PJP_SUM_MAIN.g_process || to_char(p_worker_id);
17697
17698 if (not PJI_PROCESS_UTIL.NEED_TO_RUN_STEP(l_process, 'PJI_PJP_SUM_ROLLUP.CREATE_FP_PA_PRI_ROLLUP(p_worker_id);')) then
17699 return;
17700 end if;
17701
17702 l_extraction_type := PJI_PROCESS_UTIL.GET_PROCESS_PARAMETER(l_process, 'EXTRACTION_TYPE');
17703
17704 PJI_FM_PLAN_CAL_RLPS.CREATE_FP_PA_PRI_ROLLUP;
17705
17706 PJI_PROCESS_UTIL.REGISTER_STEP_COMPLETION(l_process, 'PJI_PJP_SUM_ROLLUP.CREATE_FP_PA_PRI_ROLLUP(p_worker_id);');
17707
17708 commit;
17709
17710 end CREATE_FP_PA_PRI_ROLLUP;
17711
17712
17713 -- -----------------------------------------------------
17714 -- procedure CREATE_FP_GL_PRI_ROLLUP
17715 --
17716 -- History
17717 -- 19-MAR-2004 SVERMETT Created
17718 --
17719 -- Used solely for FP.M Upgrade
17720 --
17721 -- -----------------------------------------------------
17722 procedure CREATE_FP_GL_PRI_ROLLUP (p_worker_id in number) is
17723
17724 l_process varchar2(30);
17725 l_extraction_type varchar2(30);
17726
17727 l_return_status varchar2(255);
17728 l_msg_count number;
17729 l_msg_data varchar2(2000);
17730
17731 begin
17732
17733 l_process := PJI_PJP_SUM_MAIN.g_process || to_char(p_worker_id);
17734
17735 if (not PJI_PROCESS_UTIL.NEED_TO_RUN_STEP(l_process, 'PJI_PJP_SUM_ROLLUP.CREATE_FP_GL_PRI_ROLLUP(p_worker_id);')) then
17736 return;
17737 end if;
17738
17739 l_extraction_type := PJI_PROCESS_UTIL.GET_PROCESS_PARAMETER(l_process, 'EXTRACTION_TYPE');
17740
17741 PJI_FM_PLAN_CAL_RLPS.CREATE_FP_GL_PRI_ROLLUP;
17742
17743 PJI_PROCESS_UTIL.REGISTER_STEP_COMPLETION(l_process, 'PJI_PJP_SUM_ROLLUP.CREATE_FP_GL_PRI_ROLLUP(p_worker_id);');
17744
17745 commit;
17746
17747 end CREATE_FP_GL_PRI_ROLLUP;
17748
17749
17750 -- -----------------------------------------------------
17751 -- procedure CREATE_FP_ALL_PRI_ROLLUP
17752 --
17753 -- History
17754 -- 19-MAR-2004 SVERMETT Created
17755 --
17756 -- Used solely for FP.M Upgrade
17757 --
17758 -- -----------------------------------------------------
17759 procedure CREATE_FP_ALL_PRI_ROLLUP (p_worker_id in number) is
17760
17761 l_process varchar2(30);
17762 l_extraction_type varchar2(30);
17763
17764 l_return_status varchar2(255);
17765 l_msg_count number;
17766 l_msg_data varchar2(2000);
17767
17768 begin
17769
17770 l_process := PJI_PJP_SUM_MAIN.g_process || to_char(p_worker_id);
17771
17772 if (not PJI_PROCESS_UTIL.NEED_TO_RUN_STEP(l_process, 'PJI_PJP_SUM_ROLLUP.CREATE_FP_ALL_PRI_ROLLUP(p_worker_id);')) then
17773 return;
17774 end if;
17775
17776 l_extraction_type := PJI_PROCESS_UTIL.GET_PROCESS_PARAMETER(l_process, 'EXTRACTION_TYPE');
17777
17778 PJI_FM_PLAN_CAL_RLPS.CREATE_FP_ALL_T_PRI_ROLLUP('G');
17779
17780 PJI_FM_PLAN_CAL_RLPS.CREATE_FP_ALL_T_PRI_ROLLUP('P');
17781
17782 PJI_PROCESS_UTIL.REGISTER_STEP_COMPLETION(l_process, 'PJI_PJP_SUM_ROLLUP.CREATE_FP_ALL_PRI_ROLLUP(p_worker_id);');
17783
17784 commit;
17785
17786 end CREATE_FP_ALL_PRI_ROLLUP;
17787
17788
17789 -- -----------------------------------------------------
17790 -- procedure INSERT_INTO_FP_FACT
17791 --
17792 -- History
17793 -- 19-MAR-2004 SVERMETT Created
17794 --
17795 -- Used solely for FP.M Upgrade
17796 --
17797 -- -----------------------------------------------------
17798 procedure INSERT_INTO_FP_FACT (p_worker_id in number) is
17799
17800 l_process varchar2(30);
17801 l_extraction_type varchar2(30);
17802
17803 l_return_status varchar2(255);
17804 l_msg_count number;
17805 l_msg_data varchar2(2000);
17806
17807 begin
17808
17809 l_process := PJI_PJP_SUM_MAIN.g_process || to_char(p_worker_id);
17810
17811 if (not PJI_PROCESS_UTIL.NEED_TO_RUN_STEP(l_process, 'PJI_PJP_SUM_ROLLUP.INSERT_INTO_FP_FACT(p_worker_id);')) then
17812 return;
17813 end if;
17814
17815 l_extraction_type := PJI_PROCESS_UTIL.GET_PROCESS_PARAMETER(l_process, 'EXTRACTION_TYPE');
17816
17817 PJI_FM_PLAN_MAINT_PVT.INSERT_INTO_FP_FACT;
17818
17819 PJI_PROCESS_UTIL.REGISTER_STEP_COMPLETION(l_process, 'PJI_PJP_SUM_ROLLUP.INSERT_INTO_FP_FACT(p_worker_id);');
17820
17821 commit;
17822
17823 end INSERT_INTO_FP_FACT;
17824
17825
17826 -- -----------------------------------------------------
17827 -- procedure MARK_EXTRACTED_PLANS
17828 --
17829 -- History
17830 -- 19-MAR-2004 SVERMETT Created
17831 --
17832 -- Used solely for FP.M Upgrade
17833 --
17834 -- -----------------------------------------------------
17835 procedure MARK_EXTRACTED_PLANS (p_worker_id in number) is
17836
17837 l_process varchar2(30);
17838 l_extraction_type varchar2(30);
17839
17840 l_return_status varchar2(255);
17841 l_msg_count number;
17842 l_msg_data varchar2(2000);
17843
17844 begin
17845
17846 l_process := PJI_PJP_SUM_MAIN.g_process || to_char(p_worker_id);
17847
17848 if (not PJI_PROCESS_UTIL.NEED_TO_RUN_STEP(l_process, 'PJI_PJP_SUM_ROLLUP.MARK_EXTRACTED_PLANS(p_worker_id);')) then
17849 return;
17850 end if;
17851
17852 l_extraction_type := PJI_PROCESS_UTIL.GET_PROCESS_PARAMETER(l_process, 'EXTRACTION_TYPE');
17853
17854 PJI_FM_PLAN_MAINT_PVT.MARK_EXTRACTED_PLANS('PRI');
17855
17856 PJI_PROCESS_UTIL.REGISTER_STEP_COMPLETION(l_process, 'PJI_PJP_SUM_ROLLUP.MARK_EXTRACTED_PLANS(p_worker_id);');
17857
17858 commit;
17859
17860 end MARK_EXTRACTED_PLANS;
17861
17862
17863 procedure REMAP_RBS_TXN_ACCUM_HDRS (p_worker_id in number) is
17864
17865 l_process varchar2(30);
17866 l_extraction_type varchar2(30);
17867
17868 l_return_status varchar2(255);
17869 l_msg_count number;
17870 l_msg_data varchar2(2000);
17871
17872 begin
17873
17874 l_process := PJI_PJP_SUM_MAIN.g_process || to_char(p_worker_id);
17875
17876 if (not PJI_PROCESS_UTIL.NEED_TO_RUN_STEP(l_process, 'PJI_PJP_SUM_ROLLUP.REMAP_RBS_TXN_ACCUM_HDRS(p_worker_id);')) then
17877 return;
17878 end if;
17879
17880 l_extraction_type := PJI_PROCESS_UTIL.GET_PROCESS_PARAMETER(l_process, 'EXTRACTION_TYPE');
17881 -- Extraction type is not needed for this step.
17882 -- Retaining it to maintain coding style as well as for potential future use.
17883
17884 PJI_FM_XBS_ACCUM_UTILS.REMAP_RBS_TXN_ACCUM_HDRS (
17885 x_return_status => l_return_status
17886 ,x_msg_data => l_msg_data
17887 ,x_msg_count => l_msg_count );
17888
17889 PJI_PROCESS_UTIL.REGISTER_STEP_COMPLETION(l_process, 'PJI_PJP_SUM_ROLLUP.REMAP_RBS_TXN_ACCUM_HDRS(p_worker_id);');
17890
17891 commit;
17892
17893 end REMAP_RBS_TXN_ACCUM_HDRS ;
17894
17895
17896 procedure RETRIEVE_OVERRIDDEN_WP_ETC (p_worker_id in number) is
17897
17898 l_process varchar2(30);
17899 l_extraction_type varchar2(30);
17900
17901 l_return_status varchar2(255);
17902 l_msg_count number;
17903 l_msg_data varchar2(2000);
17904
17905 begin
17906
17907 l_process := PJI_PJP_SUM_MAIN.g_process || to_char(p_worker_id);
17908
17909 if (not PJI_PROCESS_UTIL.NEED_TO_RUN_STEP(l_process, 'PJI_PJP_SUM_ROLLUP.RETRIEVE_OVERRIDDEN_WP_ETC(p_worker_id);')) then
17910 return;
17911 end if;
17912
17913 l_extraction_type := PJI_PROCESS_UTIL.GET_PROCESS_PARAMETER(l_process, 'EXTRACTION_TYPE');
17914 -- Extraction type is not needed for this step.
17915 -- Retaining it to maintain coding style as well as for potential future use.
17916
17917 PJI_FM_PLAN_MAINT_PVT.RETRIEVE_OVERRIDDEN_WP_ETC;
17918
17919 PJI_PROCESS_UTIL.REGISTER_STEP_COMPLETION(l_process, 'PJI_PJP_SUM_ROLLUP.RETRIEVE_OVERRIDDEN_WP_ETC(p_worker_id);');
17920
17921 commit;
17922
17923 end RETRIEVE_OVERRIDDEN_WP_ETC ;
17924
17925
17926 procedure EXTRACT_PLAN_ETC_PRIRBS (p_worker_id in number) is
17927
17928 l_process varchar2(30);
17929 l_extraction_type varchar2(30);
17930
17931 l_return_status varchar2(255);
17932 l_msg_count number;
17933 l_msg_data varchar2(2000);
17934
17935 begin
17936
17937 l_process := PJI_PJP_SUM_MAIN.g_process || to_char(p_worker_id);
17938
17939 if (not PJI_PROCESS_UTIL.NEED_TO_RUN_STEP(l_process, 'PJI_PJP_SUM_ROLLUP.EXTRACT_PLAN_ETC_PRIRBS(p_worker_id);')) then
17940 return;
17941 end if;
17942
17943 l_extraction_type := PJI_PROCESS_UTIL.GET_PROCESS_PARAMETER(l_process, 'EXTRACTION_TYPE');
17944 -- Extraction type is not needed for this step.
17945 -- Retaining it to maintain coding style as well as for potential future use.
17946
17947 PJI_FM_PLAN_MAINT_PVT.EXTRACT_PLAN_ETC_PRIRBS(p_slice_type => 'SEC');
17948
17949 PJI_PROCESS_UTIL.REGISTER_STEP_COMPLETION(l_process, 'PJI_PJP_SUM_ROLLUP.EXTRACT_PLAN_ETC_PRIRBS(p_worker_id);');
17950
17951 commit;
17952
17953 end EXTRACT_PLAN_ETC_PRIRBS ;
17954
17955
17956 -- -----------------------------------------------------
17957 -- procedure CLEANUP
17958 --
17959 -- History
17960 -- 19-MAR-2004 SVERMETT Created
17961 --
17962 -- Internal PJP Summarization API.
17963 --
17964 -- -----------------------------------------------------
17965 procedure CLEANUP (p_worker_id in number default null) is
17966
17967 l_process varchar2(30);
17968 l_schema varchar2(30);
17969
17970 begin
17971
17972 if (p_worker_id is not null) then
17973
17974 l_process := PJI_PJP_SUM_MAIN.g_process || to_char(p_worker_id);
17975
17976 /* 5755229 Because No step entry in the delete process FPM Upgrade
17977 if (not PJI_PROCESS_UTIL.NEED_TO_RUN_STEP(l_process, 'PJI_PJP_SUM_ROLLUP.CLEANUP(p_worker_id);')) then -- Bug#5171542
17978 return;
17979 end if;
17980 5755229 */
17981
17982 l_schema := PJI_UTILS.GET_PJI_SCHEMA_NAME;
17983
17984 PJI_PROCESS_UTIL.TRUNC_INT_TABLE(l_schema,
17985 'PJI_PJP_RMAP_FPR',
17986 'PARTITION',
17987 'P' || p_worker_id);
17988
17989 PJI_PROCESS_UTIL.TRUNC_INT_TABLE(l_schema,
17990 'PJI_PJP_RMAP_ACR',
17991 'PARTITION',
17992 'P' || p_worker_id);
17993
17994 PJI_PROCESS_UTIL.TRUNC_INT_TABLE(l_schema,
17995 'PJI_FP_AGGR_PJP0',
17996 'PARTITION',
17997 'P' || p_worker_id);
17998
17999 PJI_PROCESS_UTIL.TRUNC_INT_TABLE(l_schema,
18000 'PJI_AC_AGGR_PJP0',
18001 'PARTITION',
18002 'P' || p_worker_id);
18003
18004 PJI_PROCESS_UTIL.TRUNC_INT_TABLE(l_schema,
18005 'PJI_FP_CUST_PJP0',
18006 'PARTITION',
18007 'P' || p_worker_id);
18008
18009 PJI_PROCESS_UTIL.TRUNC_INT_TABLE(l_schema,
18010 'PJI_AC_CUST_PJP0',
18011 'PARTITION',
18012 'P' || p_worker_id);
18013
18014 PJI_PROCESS_UTIL.TRUNC_INT_TABLE(l_schema,
18015 'PJI_FM_EXTR_PLNVER4',
18016 'PARTITION',
18017 'P' || p_worker_id);
18018
18019 PJI_PROCESS_UTIL.TRUNC_INT_TABLE(l_schema,
18020 'PJI_FP_AGGR_PJP1',
18021 'PARTITION',
18022 'P' || p_worker_id);
18023
18024 PJI_PROCESS_UTIL.TRUNC_INT_TABLE(l_schema,
18025 'PJI_AC_AGGR_PJP1',
18026 'PARTITION',
18027 'P' || p_worker_id);
18028
18029 PJI_PROCESS_UTIL.TRUNC_INT_TABLE(l_schema,
18030 'PJI_FP_AGGR_XBS',
18031 'PARTITION',
18032 'P' || p_worker_id);
18033
18034 PJI_PROCESS_UTIL.TRUNC_INT_TABLE(l_schema,
18035 'PJI_FP_AGGR_RBS',
18036 'PARTITION',
18037 'P' || p_worker_id);
18038
18039 PJI_PROCESS_UTIL.TRUNC_INT_TABLE(l_schema,
18040 'PJI_XBS_DENORM_DELTA',
18041 'PARTITION',
18042 'P' || p_worker_id);
18043
18044 PJI_PROCESS_UTIL.TRUNC_INT_TABLE(l_schema,
18045 'PJI_RBS_DENORM_DELTA',
18046 'PARTITION',
18047 'P' || p_worker_id);
18048
18049 PJI_PROCESS_UTIL.TRUNC_INT_TABLE(l_schema,
18050 'PJI_FP_RMAP_FPR',
18051 'PARTITION',
18052 'P' || p_worker_id);
18053
18054 PJI_PROCESS_UTIL.TRUNC_INT_TABLE(l_schema,
18055 'PJI_AC_RMAP_ACR',
18056 'PARTITION',
18057 'P' || p_worker_id);
18058
18059 PJI_PROCESS_UTIL.TRUNC_INT_TABLE(l_schema,
18060 'PJI_PA_PROJ_EVENTS_LOG',
18061 'PARTITION',
18062 'P' || p_worker_id);
18063
18064 PJI_PROCESS_UTIL.REGISTER_STEP_COMPLETION(l_process, 'PJI_PJP_SUM_ROLLUP.CLEANUP(p_worker_id);'); -- Bug#5171542
18065 commit;
18066
18067 else -- online mode
18068
18069 delete from PJI_XBS_DENORM_DELTA_T;
18070
18071 delete from PJI_FP_AGGR_PJP1_T;
18072
18073 delete from PJI_AC_AGGR_PJP1_T;
18074
18075 end if;
18076
18077 end CLEANUP;
18078 -- bug 6520936
18079 Procedure MERGE_INTO_FP_FACTS (p_worker_id in number) is
18080
18081 l_process varchar2(30);
18082 l_extraction_type varchar2(30);
18083
18084 l_return_status varchar2(255);
18085 l_msg_count number;
18086 l_msg_data varchar2(2000);
18087
18088 begin
18089
18090 l_process := PJI_PJP_SUM_MAIN.g_process || to_char(p_worker_id);
18091
18092 if (not PJI_PROCESS_UTIL.NEED_TO_RUN_STEP(l_process, 'PJI_PJP_SUM_ROLLUP.MERGE_INTO_FP_FACT(p_worker_id);')) then
18093 return;
18094 end if;
18095
18096 l_extraction_type := PJI_PROCESS_UTIL.GET_PROCESS_PARAMETER(l_process, 'EXTRACTION_TYPE');
18097
18098 PJI_FM_PLAN_MAINT_PVT.MERGE_INTO_FP_FACTS;
18099
18100 PJI_PROCESS_UTIL.REGISTER_STEP_COMPLETION(l_process, 'PJI_PJP_SUM_ROLLUP.MERGE_INTO_FP_FACT(p_worker_id);');
18101
18102 commit;
18103
18104 end MERGE_INTO_FP_FACTS;
18105 -- bug 6520936
18106
18107
18108 end PJI_PJP_SUM_ROLLUP;