[Home] [Help]
PACKAGE BODY: APPS.PJI_PJP_SUM_ROLLUP
Source
1 package body PJI_PJP_SUM_ROLLUP as
2 /* $Header: PJISP02B.pls 120.108.12020000.20 2013/04/17 18:55:00 sachandr 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 -- Begin Bug# 9904361
22 procedure ROLLUP_FPR_WBS_PARTIAL
23 ( p_worker_id in number default null,
24 l_process in varchar2,
25 l_extraction_type in varchar2,
26 l_fpm_upgrade in varchar2,
27 l_max_level in number,
28 l_level in number,
29 l_step_seq in number,
30 l_level_seq in number,
31 l_count in number,
32 l_partial_mode in varchar2
33 ) is
34 lv_level_seq number := l_level_seq;
35 lv_level number := l_level;
36
37 begin
38
39 insert into PJI_PJP_WBS_HEADER_T
40 (
41 PROJECT_ID,
42 PLAN_VERSION_ID,
43 WBS_VERSION_ID,
44 WP_FLAG,
45 CB_FLAG,
46 CO_FLAG,
47 LOCK_FLAG,
48 PLAN_TYPE_ID,
49 MIN_TXN_DATE,
50 MAX_TXN_DATE,
51 LAST_UPDATE_DATE ,
52 LAST_UPDATED_BY ,
53 CREATION_DATE,
54 CREATED_BY,
55 LAST_UPDATE_LOGIN,
56 PLAN_TYPE_CODE)
57 select
58 PROJECT_ID,
59 PLAN_VERSION_ID,
60 WBS_VERSION_ID,
61 WP_FLAG,
62 CB_FLAG,
63 CO_FLAG,
64 LOCK_FLAG,
65 PLAN_TYPE_ID,
66 MIN_TXN_DATE,
67 MAX_TXN_DATE,
68 LAST_UPDATE_DATE ,
69 LAST_UPDATED_BY ,
70 CREATION_DATE,
71 CREATED_BY,
72 LAST_UPDATE_LOGIN,
73 PLAN_TYPE_CODE
74 from PJI_PJP_WBS_HEADER a
75 where a.project_id in ( select b.project_id from PJI_PJP_PROJ_BATCH_MAP b
76 where b.worker_id = p_worker_id );
77
78 insert into PJI_PA_XBS_DENORM_T
79 (STRUCT_TYPE,
80 PRG_GROUP,
81 STRUCT_VERSION_ID,
82 SUP_PROJECT_ID,
83 SUP_ID,
84 SUP_EMT_ID,
85 SUBRO_ID,
86 SUB_ID,
87 SUB_EMT_ID,
88 SUP_LEVEL,
89 SUB_LEVEL,
90 SUB_ROLLUP_ID,
91 SUB_LEAF_FLAG,
92 LAST_UPDATE_DATE,
93 LAST_UPDATED_BY,
94 CREATION_DATE,
95 CREATED_BY,
96 LAST_UPDATE_LOGIN,
97 STRUCT_EMT_ID,
98 RELATIONSHIP_TYPE)
99 select
100 STRUCT_TYPE,
101 PRG_GROUP,
102 STRUCT_VERSION_ID,
103 SUP_PROJECT_ID,
104 SUP_ID,
105 SUP_EMT_ID,
106 SUBRO_ID,
107 SUB_ID,
108 SUB_EMT_ID,
109 SUP_LEVEL,
110 SUB_LEVEL,
111 SUB_ROLLUP_ID,
112 SUB_LEAF_FLAG,
113 LAST_UPDATE_DATE,
114 LAST_UPDATED_BY,
115 CREATION_DATE,
116 CREATED_BY,
117 LAST_UPDATE_LOGIN,
118 STRUCT_EMT_ID,
119 RELATIONSHIP_TYPE
120 from PA_XBS_DENORM a
121 -- Bug 12763391 - a.struct_type join should be outside the bracket
122 -- join to PJI_PJP_PROJ_BATCH_MAP is not needed since PJI_PJP_WBS_HEADER_T has
123 -- the rows filtered based on join to PJI_PJP_PROJ_BATCH_MAP and the worker_id
124 where a.STRUCT_VERSION_ID in ( select b.wbs_VERSION_ID
125 from PJI_PJP_WBS_HEADER_T b
126 )
127 and a.struct_type||'' = 'WBS'||'';
128 -- End Bug 12763391
129
130 insert into PJI_XBS_DENORM_T
131 (STRUCT_TYPE,
132 PRG_GROUP,
133 STRUCT_VERSION_ID,
134 SUP_PROJECT_ID,
135 SUP_ID,
136 SUP_EMT_ID,
137 SUBRO_ID,
138 SUB_ID,
139 SUB_EMT_ID,
140 SUP_LEVEL,
141 SUB_LEVEL,
142 SUB_ROLLUP_ID,
143 SUB_LEAF_FLAG,
144 LAST_UPDATE_DATE,
145 LAST_UPDATED_BY,
146 CREATION_DATE,
147 CREATED_BY,
148 LAST_UPDATE_LOGIN,
149 STRUCT_EMT_ID,
150 RELATIONSHIP_TYPE)
151 select
152 STRUCT_TYPE,
153 PRG_GROUP,
154 STRUCT_VERSION_ID,
155 SUP_PROJECT_ID,
156 SUP_ID,
157 SUP_EMT_ID,
158 SUBRO_ID,
159 SUB_ID,
160 SUB_EMT_ID,
161 SUP_LEVEL,
162 SUB_LEVEL,
163 SUB_ROLLUP_ID,
164 SUB_LEAF_FLAG,
165 LAST_UPDATE_DATE,
166 LAST_UPDATED_BY,
167 CREATION_DATE,
168 CREATED_BY,
169 LAST_UPDATE_LOGIN,
170 STRUCT_EMT_ID,
171 RELATIONSHIP_TYPE
172 from PJI_XBS_DENORM a
173 where a.SUP_PROJECT_ID in ( select distinct b.SUP_PROJECT_ID
174 from PJI_PA_XBS_DENORM_T b, PJI_PJP_PROJ_BATCH_MAP c
175 where c.worker_id = p_worker_id
176 and b.sup_project_id = c.project_id);
177
178 insert into PJI_XBS_DENORM_T
179 (STRUCT_TYPE,
180 PRG_GROUP,
181 STRUCT_VERSION_ID,
182 SUP_PROJECT_ID,
183 SUP_ID,
184 SUP_EMT_ID,
185 SUBRO_ID,
186 SUB_ID,
187 SUB_EMT_ID,
188 SUP_LEVEL,
189 SUB_LEVEL,
190 SUB_ROLLUP_ID,
191 SUB_LEAF_FLAG,
192 LAST_UPDATE_DATE,
193 LAST_UPDATED_BY,
194 CREATION_DATE,
195 CREATED_BY,
196 LAST_UPDATE_LOGIN,
197 STRUCT_EMT_ID,
198 RELATIONSHIP_TYPE)
199 select
200 STRUCT_TYPE,
201 PRG_GROUP,
202 STRUCT_VERSION_ID,
203 SUP_PROJECT_ID,
204 SUP_ID,
205 SUP_EMT_ID,
206 SUBRO_ID,
207 SUB_ID,
208 SUB_EMT_ID,
209 SUP_LEVEL,
210 SUB_LEVEL,
211 SUB_ROLLUP_ID,
212 SUB_LEAF_FLAG,
213 LAST_UPDATE_DATE,
214 LAST_UPDATED_BY,
215 CREATION_DATE,
216 CREATED_BY,
217 LAST_UPDATE_LOGIN,
218 STRUCT_EMT_ID,
219 RELATIONSHIP_TYPE
220 from PJI_XBS_DENORM a
221 where a.SUP_PROJECT_ID in ( select b.PROJECT_ID
222 from PJI_PJP_PROJ_BATCH_MAP b
223 where b.worker_id = p_worker_id )
224 and not exists ( select 'x' from PJI_PJP_PROJ_BATCH_MAP c
225 where c.worker_id = p_worker_id and c.project_id = a.sup_project_id );
226
227 while (lv_level > 0) loop
228
229 update PJI_SYSTEM_PRC_STATUS
230 set START_DATE = sysdate
231 where PROCESS_NAME = l_process and
232 STEP_SEQ = lv_level_seq;
233
234
235 -- rollup project hiearchy
236
237 insert into PJI_FP_AGGR_PJP1
238 (
239 WORKER_ID,
240 RECORD_TYPE,
241 PRG_LEVEL,
242 LINE_TYPE,
243 PROJECT_ID,
244 PROJECT_ORG_ID,
245 PROJECT_ORGANIZATION_ID,
246 PROJECT_ELEMENT_ID,
247 TIME_ID,
248 PERIOD_TYPE_ID,
249 CALENDAR_TYPE,
250 RBS_AGGR_LEVEL,
251 WBS_ROLLUP_FLAG,
252 PRG_ROLLUP_FLAG,
253 CURR_RECORD_TYPE_ID,
254 CURRENCY_CODE,
255 RBS_ELEMENT_ID,
256 RBS_VERSION_ID,
257 PLAN_VERSION_ID,
258 PLAN_TYPE_ID,
259 PLAN_TYPE_CODE,
260 RAW_COST,
261 BRDN_COST,
262 REVENUE,
263 BILL_RAW_COST,
264 BILL_BRDN_COST,
265 BILL_LABOR_RAW_COST,
266 BILL_LABOR_BRDN_COST,
267 BILL_LABOR_HRS,
268 EQUIPMENT_RAW_COST,
269 EQUIPMENT_BRDN_COST,
270 CAPITALIZABLE_RAW_COST,
271 CAPITALIZABLE_BRDN_COST,
272 LABOR_RAW_COST,
273 LABOR_BRDN_COST,
274 LABOR_HRS,
275 LABOR_REVENUE,
276 EQUIPMENT_HOURS,
277 BILLABLE_EQUIPMENT_HOURS,
278 SUP_INV_COMMITTED_COST,
279 PO_COMMITTED_COST,
280 PR_COMMITTED_COST,
281 OTH_COMMITTED_COST,
282 ACT_LABOR_HRS,
283 ACT_EQUIP_HRS,
284 ACT_LABOR_BRDN_COST,
285 ACT_EQUIP_BRDN_COST,
286 ACT_BRDN_COST,
287 ACT_RAW_COST,
288 ACT_REVENUE,
289 ACT_LABOR_RAW_COST,
290 ACT_EQUIP_RAW_COST,
291 ETC_LABOR_HRS,
292 ETC_EQUIP_HRS,
293 ETC_LABOR_BRDN_COST,
294 ETC_EQUIP_BRDN_COST,
295 ETC_BRDN_COST,
296 ETC_RAW_COST,
297 ETC_LABOR_RAW_COST,
298 ETC_EQUIP_RAW_COST,
299 CUSTOM1,
300 CUSTOM2,
301 CUSTOM3,
302 CUSTOM4,
303 CUSTOM5,
304 CUSTOM6,
305 CUSTOM7,
306 CUSTOM8,
307 CUSTOM9,
308 CUSTOM10,
309 CUSTOM11,
310 CUSTOM12,
311 CUSTOM13,
312 CUSTOM14,
313 CUSTOM15
314 )
315 select
316 pjp1_i.WORKER_ID,
317 pjp1_i.RECORD_TYPE,
318 pjp1_i.PRG_LEVEL,
319 pjp1_i.LINE_TYPE,
320 pjp1_i.PROJECT_ID,
321 pjp1_i.PROJECT_ORG_ID,
322 pjp1_i.PROJECT_ORGANIZATION_ID,
323 pjp1_i.PROJECT_ELEMENT_ID,
324 pjp1_i.TIME_ID,
325 pjp1_i.PERIOD_TYPE_ID,
326 pjp1_i.CALENDAR_TYPE,
327 pjp1_i.RBS_AGGR_LEVEL,
328 pjp1_i.WBS_ROLLUP_FLAG,
329 pjp1_i.PRG_ROLLUP_FLAG,
330 pjp1_i.CURR_RECORD_TYPE_ID,
331 pjp1_i.CURRENCY_CODE,
332 pjp1_i.RBS_ELEMENT_ID,
333 pjp1_i.RBS_VERSION_ID,
334 pjp1_i.PLAN_VERSION_ID,
335 pjp1_i.PLAN_TYPE_ID,
336 pjp1_i.PLAN_TYPE_CODE,
337 decode(pjp1_i.RELATIONSHIP_TYPE
338 || '_' || pjp1_i.WBS_ROLLUP_FLAG
339 || '_' || pjp1_i.PRG_ROLLUP_FLAG
340 || '_' || pjp1_i.SUB_STATUS_CODE
341 || '_' || pjp1_i.SUP_STATUS_CODE,
342 'LW_N_Y__', to_number(null),
343 decode(pjp1_i.RELATIONSHIP_TYPE
344 || '_' || pjp1_i.WBS_ROLLUP_FLAG
345 || '_' || pjp1_i.PRG_ROLLUP_FLAG
346 || '_' || pjp1_i.SUP_VER_ENABLED
347 || '_' || l_fpm_upgrade
348 || '_' || l_partial_mode,
349 'LW_N_Y_Y_C_', to_number(null),
350 pjp1_i.RAW_COST)) RAW_COST,
351 decode(pjp1_i.RELATIONSHIP_TYPE
352 || '_' || pjp1_i.WBS_ROLLUP_FLAG
353 || '_' || pjp1_i.PRG_ROLLUP_FLAG
354 || '_' || pjp1_i.SUB_STATUS_CODE
355 || '_' || pjp1_i.SUP_STATUS_CODE,
356 'LW_N_Y__', to_number(null),
357 decode(pjp1_i.RELATIONSHIP_TYPE
358 || '_' || pjp1_i.WBS_ROLLUP_FLAG
359 || '_' || pjp1_i.PRG_ROLLUP_FLAG
360 || '_' || pjp1_i.SUP_VER_ENABLED
361 || '_' || l_fpm_upgrade
362 || '_' || l_partial_mode,
363 'LW_N_Y_Y_C_', to_number(null),
364 pjp1_i.BRDN_COST)) BRDN_COST,
365 decode(pjp1_i.RELATIONSHIP_TYPE
366 || '_' || pjp1_i.WBS_ROLLUP_FLAG
367 || '_' || pjp1_i.PRG_ROLLUP_FLAG
368 || '_' || pjp1_i.SUB_STATUS_CODE
369 || '_' || pjp1_i.SUP_STATUS_CODE,
370 'LW_N_Y__', to_number(null),
371 decode(pjp1_i.RELATIONSHIP_TYPE
372 || '_' || pjp1_i.WBS_ROLLUP_FLAG
373 || '_' || pjp1_i.PRG_ROLLUP_FLAG
374 || '_' || pjp1_i.SUP_VER_ENABLED
375 || '_' || l_fpm_upgrade
376 || '_' || l_partial_mode,
377 'LW_N_Y_Y_C_', to_number(null),
378 pjp1_i.REVENUE)) REVENUE,
379 decode(pjp1_i.RELATIONSHIP_TYPE
380 || '_' || pjp1_i.WBS_ROLLUP_FLAG
381 || '_' || pjp1_i.PRG_ROLLUP_FLAG
382 || '_' || pjp1_i.SUB_STATUS_CODE
383 || '_' || pjp1_i.SUP_STATUS_CODE,
384 'LW_N_Y__', to_number(null),
385 decode(pjp1_i.RELATIONSHIP_TYPE
386 || '_' || pjp1_i.WBS_ROLLUP_FLAG
387 || '_' || pjp1_i.PRG_ROLLUP_FLAG
388 || '_' || pjp1_i.SUP_VER_ENABLED
389 || '_' || l_fpm_upgrade
390 || '_' || l_partial_mode,
391 'LW_N_Y_Y_C_', to_number(null),
392 pjp1_i.BILL_RAW_COST)) BILL_RAW_COST,
393 decode(pjp1_i.RELATIONSHIP_TYPE
394 || '_' || pjp1_i.WBS_ROLLUP_FLAG
395 || '_' || pjp1_i.PRG_ROLLUP_FLAG
396 || '_' || pjp1_i.SUB_STATUS_CODE
397 || '_' || pjp1_i.SUP_STATUS_CODE,
398 'LW_N_Y__', to_number(null),
399 decode(pjp1_i.RELATIONSHIP_TYPE
400 || '_' || pjp1_i.WBS_ROLLUP_FLAG
401 || '_' || pjp1_i.PRG_ROLLUP_FLAG
402 || '_' || pjp1_i.SUP_VER_ENABLED
403 || '_' || l_fpm_upgrade
404 || '_' || l_partial_mode,
405 'LW_N_Y_Y_C_', to_number(null),
406 pjp1_i.BILL_BRDN_COST)) BILL_BRDN_COST,
407 decode(pjp1_i.RELATIONSHIP_TYPE
408 || '_' || pjp1_i.WBS_ROLLUP_FLAG
409 || '_' || pjp1_i.PRG_ROLLUP_FLAG
410 || '_' || pjp1_i.SUB_STATUS_CODE
411 || '_' || pjp1_i.SUP_STATUS_CODE,
412 'LW_N_Y__', to_number(null),
413 decode(pjp1_i.RELATIONSHIP_TYPE
414 || '_' || pjp1_i.WBS_ROLLUP_FLAG
415 || '_' || pjp1_i.PRG_ROLLUP_FLAG
416 || '_' || pjp1_i.SUP_VER_ENABLED
417 || '_' || l_fpm_upgrade
418 || '_' || l_partial_mode,
419 'LW_N_Y_Y_C_', to_number(null),
420 pjp1_i.BILL_LABOR_RAW_COST)) BILL_LABOR_RAW_COST,
421 decode(pjp1_i.RELATIONSHIP_TYPE
422 || '_' || pjp1_i.WBS_ROLLUP_FLAG
423 || '_' || pjp1_i.PRG_ROLLUP_FLAG
424 || '_' || pjp1_i.SUB_STATUS_CODE
425 || '_' || pjp1_i.SUP_STATUS_CODE,
426 'LW_N_Y__', to_number(null),
427 decode(pjp1_i.RELATIONSHIP_TYPE
428 || '_' || pjp1_i.WBS_ROLLUP_FLAG
429 || '_' || pjp1_i.PRG_ROLLUP_FLAG
430 || '_' || pjp1_i.SUP_VER_ENABLED
431 || '_' || l_fpm_upgrade
432 || '_' || l_partial_mode,
433 'LW_N_Y_Y_C_', to_number(null),
434 pjp1_i.BILL_LABOR_BRDN_COST)) BILL_LABOR_BRDN_COST,
435 decode(pjp1_i.RELATIONSHIP_TYPE
436 || '_' || pjp1_i.WBS_ROLLUP_FLAG
437 || '_' || pjp1_i.PRG_ROLLUP_FLAG
438 || '_' || pjp1_i.SUB_STATUS_CODE
439 || '_' || pjp1_i.SUP_STATUS_CODE,
440 'LW_N_Y__', to_number(null),
441 decode(pjp1_i.RELATIONSHIP_TYPE
442 || '_' || pjp1_i.WBS_ROLLUP_FLAG
443 || '_' || pjp1_i.PRG_ROLLUP_FLAG
444 || '_' || pjp1_i.SUP_VER_ENABLED
445 || '_' || l_fpm_upgrade
446 || '_' || l_partial_mode,
447 'LW_N_Y_Y_C_', to_number(null),
448 pjp1_i.BILL_LABOR_HRS)) BILL_LABOR_HRS,
449 decode(pjp1_i.RELATIONSHIP_TYPE
450 || '_' || pjp1_i.WBS_ROLLUP_FLAG
451 || '_' || pjp1_i.PRG_ROLLUP_FLAG
452 || '_' || pjp1_i.SUB_STATUS_CODE
453 || '_' || pjp1_i.SUP_STATUS_CODE,
454 'LW_N_Y__', to_number(null),
455 decode(pjp1_i.RELATIONSHIP_TYPE
456 || '_' || pjp1_i.WBS_ROLLUP_FLAG
457 || '_' || pjp1_i.PRG_ROLLUP_FLAG
458 || '_' || pjp1_i.SUP_VER_ENABLED
459 || '_' || l_fpm_upgrade
460 || '_' || l_partial_mode,
461 'LW_N_Y_Y_C_', to_number(null),
462 pjp1_i.EQUIPMENT_RAW_COST)) EQUIPMENT_RAW_COST,
463 decode(pjp1_i.RELATIONSHIP_TYPE
464 || '_' || pjp1_i.WBS_ROLLUP_FLAG
465 || '_' || pjp1_i.PRG_ROLLUP_FLAG
466 || '_' || pjp1_i.SUB_STATUS_CODE
467 || '_' || pjp1_i.SUP_STATUS_CODE,
468 'LW_N_Y__', to_number(null),
469 decode(pjp1_i.RELATIONSHIP_TYPE
470 || '_' || pjp1_i.WBS_ROLLUP_FLAG
471 || '_' || pjp1_i.PRG_ROLLUP_FLAG
472 || '_' || pjp1_i.SUP_VER_ENABLED
473 || '_' || l_fpm_upgrade
474 || '_' || l_partial_mode,
475 'LW_N_Y_Y_C_', to_number(null),
476 pjp1_i.EQUIPMENT_BRDN_COST)) EQUIPMENT_BRDN_COST,
477 decode(pjp1_i.RELATIONSHIP_TYPE
478 || '_' || pjp1_i.WBS_ROLLUP_FLAG
479 || '_' || pjp1_i.PRG_ROLLUP_FLAG
480 || '_' || pjp1_i.SUB_STATUS_CODE
481 || '_' || pjp1_i.SUP_STATUS_CODE,
482 'LW_N_Y__', to_number(null),
483 decode(pjp1_i.RELATIONSHIP_TYPE
484 || '_' || pjp1_i.WBS_ROLLUP_FLAG
485 || '_' || pjp1_i.PRG_ROLLUP_FLAG
486 || '_' || pjp1_i.SUP_VER_ENABLED
487 || '_' || l_fpm_upgrade
488 || '_' || l_partial_mode,
489 'LW_N_Y_Y_C_', to_number(null),
490 pjp1_i.CAPITALIZABLE_RAW_COST)) CAPITALIZABLE_RAW_COST,
491 decode(pjp1_i.RELATIONSHIP_TYPE
492 || '_' || pjp1_i.WBS_ROLLUP_FLAG
493 || '_' || pjp1_i.PRG_ROLLUP_FLAG
494 || '_' || pjp1_i.SUB_STATUS_CODE
495 || '_' || pjp1_i.SUP_STATUS_CODE,
496 'LW_N_Y__', to_number(null),
497 decode(pjp1_i.RELATIONSHIP_TYPE
498 || '_' || pjp1_i.WBS_ROLLUP_FLAG
499 || '_' || pjp1_i.PRG_ROLLUP_FLAG
500 || '_' || pjp1_i.SUP_VER_ENABLED
501 || '_' || l_fpm_upgrade
502 || '_' || l_partial_mode,
503 'LW_N_Y_Y_C_', to_number(null),
504 pjp1_i.CAPITALIZABLE_BRDN_COST)) CAPITALIZABLE_BRDN_COST,
505 decode(pjp1_i.RELATIONSHIP_TYPE
506 || '_' || pjp1_i.WBS_ROLLUP_FLAG
507 || '_' || pjp1_i.PRG_ROLLUP_FLAG
508 || '_' || pjp1_i.SUB_STATUS_CODE
509 || '_' || pjp1_i.SUP_STATUS_CODE,
510 'LW_N_Y__', to_number(null),
511 decode(pjp1_i.RELATIONSHIP_TYPE
512 || '_' || pjp1_i.WBS_ROLLUP_FLAG
513 || '_' || pjp1_i.PRG_ROLLUP_FLAG
514 || '_' || pjp1_i.SUP_VER_ENABLED
515 || '_' || l_fpm_upgrade
516 || '_' || l_partial_mode,
517 'LW_N_Y_Y_C_', to_number(null),
518 pjp1_i.LABOR_RAW_COST)) LABOR_RAW_COST,
519 decode(pjp1_i.RELATIONSHIP_TYPE
520 || '_' || pjp1_i.WBS_ROLLUP_FLAG
521 || '_' || pjp1_i.PRG_ROLLUP_FLAG
522 || '_' || pjp1_i.SUB_STATUS_CODE
523 || '_' || pjp1_i.SUP_STATUS_CODE,
524 'LW_N_Y__', to_number(null),
525 decode(pjp1_i.RELATIONSHIP_TYPE
526 || '_' || pjp1_i.WBS_ROLLUP_FLAG
527 || '_' || pjp1_i.PRG_ROLLUP_FLAG
528 || '_' || pjp1_i.SUP_VER_ENABLED
529 || '_' || l_fpm_upgrade
530 || '_' || l_partial_mode,
531 'LW_N_Y_Y_C_', to_number(null),
532 pjp1_i.LABOR_BRDN_COST)) LABOR_BRDN_COST,
533 decode(pjp1_i.RELATIONSHIP_TYPE
534 || '_' || pjp1_i.WBS_ROLLUP_FLAG
535 || '_' || pjp1_i.PRG_ROLLUP_FLAG
536 || '_' || pjp1_i.SUB_STATUS_CODE
537 || '_' || pjp1_i.SUP_STATUS_CODE,
538 'LW_N_Y__', to_number(null),
539 decode(pjp1_i.RELATIONSHIP_TYPE
540 || '_' || pjp1_i.WBS_ROLLUP_FLAG
541 || '_' || pjp1_i.PRG_ROLLUP_FLAG
542 || '_' || pjp1_i.SUP_VER_ENABLED
543 || '_' || l_fpm_upgrade
544 || '_' || l_partial_mode,
545 'LW_N_Y_Y_C_', to_number(null),
546 pjp1_i.LABOR_HRS)) LABOR_HRS,
547 decode(pjp1_i.RELATIONSHIP_TYPE
548 || '_' || pjp1_i.WBS_ROLLUP_FLAG
549 || '_' || pjp1_i.PRG_ROLLUP_FLAG
550 || '_' || pjp1_i.SUB_STATUS_CODE
551 || '_' || pjp1_i.SUP_STATUS_CODE,
552 'LW_N_Y__', to_number(null),
553 decode(pjp1_i.RELATIONSHIP_TYPE
554 || '_' || pjp1_i.WBS_ROLLUP_FLAG
555 || '_' || pjp1_i.PRG_ROLLUP_FLAG
556 || '_' || pjp1_i.SUP_VER_ENABLED
557 || '_' || l_fpm_upgrade
558 || '_' || l_partial_mode,
559 'LW_N_Y_Y_C_', to_number(null),
560 pjp1_i.LABOR_REVENUE)) LABOR_REVENUE,
561 decode(pjp1_i.RELATIONSHIP_TYPE
562 || '_' || pjp1_i.WBS_ROLLUP_FLAG
563 || '_' || pjp1_i.PRG_ROLLUP_FLAG
564 || '_' || pjp1_i.SUB_STATUS_CODE
565 || '_' || pjp1_i.SUP_STATUS_CODE,
566 'LW_N_Y__', to_number(null),
567 decode(pjp1_i.RELATIONSHIP_TYPE
568 || '_' || pjp1_i.WBS_ROLLUP_FLAG
569 || '_' || pjp1_i.PRG_ROLLUP_FLAG
570 || '_' || pjp1_i.SUP_VER_ENABLED
571 || '_' || l_fpm_upgrade
572 || '_' || l_partial_mode,
573 'LW_N_Y_Y_C_', to_number(null),
574 pjp1_i.EQUIPMENT_HOURS)) EQUIPMENT_HOURS,
575 decode(pjp1_i.RELATIONSHIP_TYPE
576 || '_' || pjp1_i.WBS_ROLLUP_FLAG
577 || '_' || pjp1_i.PRG_ROLLUP_FLAG
578 || '_' || pjp1_i.SUB_STATUS_CODE
579 || '_' || pjp1_i.SUP_STATUS_CODE,
580 'LW_N_Y__', to_number(null),
581 decode(pjp1_i.RELATIONSHIP_TYPE
582 || '_' || pjp1_i.WBS_ROLLUP_FLAG
583 || '_' || pjp1_i.PRG_ROLLUP_FLAG
584 || '_' || pjp1_i.SUP_VER_ENABLED
585 || '_' || l_fpm_upgrade
586 || '_' || l_partial_mode,
587 'LW_N_Y_Y_C_', to_number(null),
588 pjp1_i.BILLABLE_EQUIPMENT_HOURS)) BILLABLE_EQUIPMENT_HOURS,
589 decode(pjp1_i.RELATIONSHIP_TYPE
590 || '_' || pjp1_i.WBS_ROLLUP_FLAG
591 || '_' || pjp1_i.PRG_ROLLUP_FLAG
592 || '_' || pjp1_i.SUB_STATUS_CODE
593 || '_' || pjp1_i.SUP_STATUS_CODE,
594 'LW_N_Y__', to_number(null),
595 decode(pjp1_i.RELATIONSHIP_TYPE
596 || '_' || pjp1_i.WBS_ROLLUP_FLAG
597 || '_' || pjp1_i.PRG_ROLLUP_FLAG
598 || '_' || pjp1_i.SUP_VER_ENABLED
599 || '_' || l_fpm_upgrade
600 || '_' || l_partial_mode,
601 'LW_N_Y_Y_C_', to_number(null),
602 pjp1_i.SUP_INV_COMMITTED_COST)) SUP_INV_COMMITTED_COST,
603 decode(pjp1_i.RELATIONSHIP_TYPE
604 || '_' || pjp1_i.WBS_ROLLUP_FLAG
605 || '_' || pjp1_i.PRG_ROLLUP_FLAG
606 || '_' || pjp1_i.SUB_STATUS_CODE
607 || '_' || pjp1_i.SUP_STATUS_CODE,
608 'LW_N_Y__', to_number(null),
609 decode(pjp1_i.RELATIONSHIP_TYPE
610 || '_' || pjp1_i.WBS_ROLLUP_FLAG
611 || '_' || pjp1_i.PRG_ROLLUP_FLAG
612 || '_' || pjp1_i.SUP_VER_ENABLED
613 || '_' || l_fpm_upgrade
614 || '_' || l_partial_mode,
615 'LW_N_Y_Y_C_', to_number(null),
616 pjp1_i.PO_COMMITTED_COST)) PO_COMMITTED_COST,
617 decode(pjp1_i.RELATIONSHIP_TYPE
618 || '_' || pjp1_i.WBS_ROLLUP_FLAG
619 || '_' || pjp1_i.PRG_ROLLUP_FLAG
620 || '_' || pjp1_i.SUB_STATUS_CODE
621 || '_' || pjp1_i.SUP_STATUS_CODE,
622 'LW_N_Y__', to_number(null),
623 decode(pjp1_i.RELATIONSHIP_TYPE
624 || '_' || pjp1_i.WBS_ROLLUP_FLAG
625 || '_' || pjp1_i.PRG_ROLLUP_FLAG
626 || '_' || pjp1_i.SUP_VER_ENABLED
627 || '_' || l_fpm_upgrade
628 || '_' || l_partial_mode,
629 'LW_N_Y_Y_C_', to_number(null),
630 pjp1_i.PR_COMMITTED_COST)) PR_COMMITTED_COST,
631 decode(pjp1_i.RELATIONSHIP_TYPE
632 || '_' || pjp1_i.WBS_ROLLUP_FLAG
633 || '_' || pjp1_i.PRG_ROLLUP_FLAG
634 || '_' || pjp1_i.SUB_STATUS_CODE
635 || '_' || pjp1_i.SUP_STATUS_CODE,
636 'LW_N_Y__', to_number(null),
637 decode(pjp1_i.RELATIONSHIP_TYPE
638 || '_' || pjp1_i.WBS_ROLLUP_FLAG
639 || '_' || pjp1_i.PRG_ROLLUP_FLAG
640 || '_' || pjp1_i.SUP_VER_ENABLED
641 || '_' || l_fpm_upgrade
642 || '_' || l_partial_mode,
643 'LW_N_Y_Y_C_', to_number(null),
644 pjp1_i.OTH_COMMITTED_COST)) OTH_COMMITTED_COST,
645 decode(pjp1_i.RELATIONSHIP_TYPE
646 || '_' || pjp1_i.WBS_ROLLUP_FLAG
647 || '_' || pjp1_i.PRG_ROLLUP_FLAG
648 || '_' || pjp1_i.SUP_STATUS_CODE
649 || '_' || l_partial_mode,
650 'LW_N_Y__', to_number(null),
651 pjp1_i.ACT_LABOR_HRS) ACT_LABOR_HRS,
652 decode(pjp1_i.RELATIONSHIP_TYPE
653 || '_' || pjp1_i.WBS_ROLLUP_FLAG
654 || '_' || pjp1_i.PRG_ROLLUP_FLAG
655 || '_' || pjp1_i.SUP_STATUS_CODE
656 || '_' || l_partial_mode,
657 'LW_N_Y__', to_number(null),
658 pjp1_i.ACT_EQUIP_HRS) ACT_EQUIP_HRS,
659 decode(pjp1_i.RELATIONSHIP_TYPE
660 || '_' || pjp1_i.WBS_ROLLUP_FLAG
661 || '_' || pjp1_i.PRG_ROLLUP_FLAG
662 || '_' || pjp1_i.SUP_STATUS_CODE
663 || '_' || l_partial_mode,
664 'LW_N_Y__', to_number(null),
665 pjp1_i.ACT_LABOR_BRDN_COST) ACT_LABOR_BRDN_COST,
666 decode(pjp1_i.RELATIONSHIP_TYPE
667 || '_' || pjp1_i.WBS_ROLLUP_FLAG
668 || '_' || pjp1_i.PRG_ROLLUP_FLAG
669 || '_' || pjp1_i.SUP_STATUS_CODE
670 || '_' || l_partial_mode,
671 'LW_N_Y__', to_number(null),
672 pjp1_i.ACT_EQUIP_BRDN_COST) ACT_EQUIP_BRDN_COST,
673 decode(pjp1_i.RELATIONSHIP_TYPE
674 || '_' || pjp1_i.WBS_ROLLUP_FLAG
675 || '_' || pjp1_i.PRG_ROLLUP_FLAG
676 || '_' || pjp1_i.SUP_STATUS_CODE
677 || '_' || l_partial_mode,
678 'LW_N_Y__', to_number(null),
679 pjp1_i.ACT_BRDN_COST) ACT_BRDN_COST,
680 decode(pjp1_i.RELATIONSHIP_TYPE
681 || '_' || pjp1_i.WBS_ROLLUP_FLAG
682 || '_' || pjp1_i.PRG_ROLLUP_FLAG
683 || '_' || pjp1_i.SUP_STATUS_CODE
684 || '_' || l_partial_mode,
685 'LW_N_Y__', to_number(null),
686 pjp1_i.ACT_RAW_COST) ACT_RAW_COST,
687 decode(pjp1_i.RELATIONSHIP_TYPE
688 || '_' || pjp1_i.WBS_ROLLUP_FLAG
689 || '_' || pjp1_i.PRG_ROLLUP_FLAG
690 || '_' || pjp1_i.SUP_STATUS_CODE
691 || '_' || l_partial_mode,
692 'LW_N_Y__', to_number(null),
693 pjp1_i.ACT_REVENUE) ACT_REVENUE,
694 decode(pjp1_i.RELATIONSHIP_TYPE
695 || '_' || pjp1_i.WBS_ROLLUP_FLAG
696 || '_' || pjp1_i.PRG_ROLLUP_FLAG
697 || '_' || pjp1_i.SUP_STATUS_CODE
698 || '_' || l_partial_mode,
699 'LW_N_Y__', to_number(null),
700 pjp1_i.ACT_LABOR_RAW_COST) ACT_LABOR_RAW_COST,
701 decode(pjp1_i.RELATIONSHIP_TYPE
702 || '_' || pjp1_i.WBS_ROLLUP_FLAG
703 || '_' || pjp1_i.PRG_ROLLUP_FLAG
704 || '_' || pjp1_i.SUP_STATUS_CODE
705 || '_' || l_partial_mode,
706 'LW_N_Y__', to_number(null),
707 pjp1_i.ACT_EQUIP_RAW_COST) ACT_EQUIP_RAW_COST,
708 decode(pjp1_i.RELATIONSHIP_TYPE
709 || '_' || pjp1_i.WBS_ROLLUP_FLAG
710 || '_' || pjp1_i.PRG_ROLLUP_FLAG
711 || '_' || pjp1_i.SUP_STATUS_CODE
712 || '_' || l_partial_mode,
713 'LW_N_Y__', to_number(null),
714 pjp1_i.ETC_LABOR_HRS) ETC_LABOR_HRS,
715 decode(pjp1_i.RELATIONSHIP_TYPE
716 || '_' || pjp1_i.WBS_ROLLUP_FLAG
717 || '_' || pjp1_i.PRG_ROLLUP_FLAG
718 || '_' || pjp1_i.SUP_STATUS_CODE
719 || '_' || l_partial_mode,
720 'LW_N_Y__', to_number(null),
721 pjp1_i.ETC_EQUIP_HRS) ETC_EQUIP_HRS,
722 decode(pjp1_i.RELATIONSHIP_TYPE
723 || '_' || pjp1_i.WBS_ROLLUP_FLAG
724 || '_' || pjp1_i.PRG_ROLLUP_FLAG
725 || '_' || pjp1_i.SUP_STATUS_CODE
726 || '_' || l_partial_mode,
727 'LW_N_Y__', to_number(null),
728 pjp1_i.ETC_LABOR_BRDN_COST) ETC_LABOR_BRDN_COST,
729 decode(pjp1_i.RELATIONSHIP_TYPE
730 || '_' || pjp1_i.WBS_ROLLUP_FLAG
731 || '_' || pjp1_i.PRG_ROLLUP_FLAG
732 || '_' || pjp1_i.SUP_STATUS_CODE
733 || '_' || l_partial_mode,
734 'LW_N_Y__', to_number(null),
735 pjp1_i.ETC_EQUIP_BRDN_COST) ETC_EQUIP_BRDN_COST,
736 decode(pjp1_i.RELATIONSHIP_TYPE
737 || '_' || pjp1_i.WBS_ROLLUP_FLAG
738 || '_' || pjp1_i.PRG_ROLLUP_FLAG
739 || '_' || pjp1_i.SUP_STATUS_CODE
740 || '_' || l_partial_mode,
741 'LW_N_Y__', to_number(null),
742 pjp1_i.ETC_BRDN_COST) ETC_BRDN_COST,
743 decode(pjp1_i.RELATIONSHIP_TYPE
744 || '_' || pjp1_i.WBS_ROLLUP_FLAG
745 || '_' || pjp1_i.PRG_ROLLUP_FLAG
746 || '_' || pjp1_i.SUP_STATUS_CODE
747 || '_' || l_partial_mode,
748 'LW_N_Y__', to_number(null),
749 pjp1_i.ETC_RAW_COST) ETC_RAW_COST,
750 decode(pjp1_i.RELATIONSHIP_TYPE
751 || '_' || pjp1_i.WBS_ROLLUP_FLAG
752 || '_' || pjp1_i.PRG_ROLLUP_FLAG
753 || '_' || pjp1_i.SUP_STATUS_CODE
754 || '_' || l_partial_mode,
755 'LW_N_Y__', to_number(null),
756 pjp1_i.ETC_LABOR_RAW_COST) ETC_LABOR_RAW_COST,
757 decode(pjp1_i.RELATIONSHIP_TYPE
758 || '_' || pjp1_i.WBS_ROLLUP_FLAG
759 || '_' || pjp1_i.PRG_ROLLUP_FLAG
760 || '_' || pjp1_i.SUP_STATUS_CODE
761 || '_' || l_partial_mode,
762 'LW_N_Y__', to_number(null),
763 pjp1_i.ETC_EQUIP_RAW_COST) ETC_EQUIP_RAW_COST,
764 pjp1_i.CUSTOM1,
765 pjp1_i.CUSTOM2,
766 pjp1_i.CUSTOM3,
767 pjp1_i.CUSTOM4,
768 pjp1_i.CUSTOM5,
769 pjp1_i.CUSTOM6,
770 pjp1_i.CUSTOM7,
771 pjp1_i.CUSTOM8,
772 pjp1_i.CUSTOM9,
773 pjp1_i.CUSTOM10,
774 pjp1_i.CUSTOM11,
775 pjp1_i.CUSTOM12,
776 pjp1_i.CUSTOM13,
777 pjp1_i.CUSTOM14,
778 pjp1_i.CUSTOM15
779 from
780 (
781 select
782 decode(nvl(prg.SUB_EMT_ID, -1), nvl(prg.SUB_ROLLUP_ID, -1),
783 pjp.INSERT_FLAG, 'Y') INSERT_FLAG,
784 pjp.RELATIONSHIP_TYPE,
785 decode(nvl(prg.SUB_EMT_ID, -1), nvl(prg.SUB_ROLLUP_ID, -1),
786 null, sub_ver.STATUS_CODE) SUB_STATUS_CODE,
787 decode(nvl(prg.SUB_EMT_ID, -1), nvl(prg.SUB_ROLLUP_ID, -1),
788 null, sup_ver.STATUS_CODE) SUP_STATUS_CODE,
789 decode(nvl(prg.SUB_EMT_ID, -1), nvl(prg.SUB_ROLLUP_ID, -1),
790 null, sup_wpa.WP_ENABLE_VERSION_FLAG)SUP_VER_ENABLED,
791 decode(nvl(prg.SUB_EMT_ID, -1), nvl(prg.SUB_ROLLUP_ID, -1),
792 null, decode(pjp.PLAN_VERSION_ID,
793 -1, prg.SUP_ID,
794 -3, prg.SUP_ID,
795 -4, prg.SUP_ID,
796 null)) SUP_ID,
797 decode(nvl(prg.SUB_EMT_ID, -1), nvl(prg.SUB_ROLLUP_ID, -1),
798 null, decode(pjp.PLAN_VERSION_ID,
799 -1, prg.SUP_EMT_ID,
800 -3, prg.SUP_EMT_ID,
801 -4, prg.SUP_EMT_ID,
802 null)) SUP_EMT_ID,
803 decode(nvl(prg.SUB_EMT_ID, -1), nvl(prg.SUB_ROLLUP_ID, -1),
804 null, decode(pjp.PLAN_VERSION_ID,
805 -1, prg.WP_FLAG,
806 -3, prg.WP_FLAG,
807 -4, prg.WP_FLAG,
808 null)) SUP_WP_FLAG,
809 p_worker_id WORKER_ID,
810 'W' RECORD_TYPE,
811 decode(nvl(prg.SUB_EMT_ID, -1), nvl(prg.SUB_ROLLUP_ID, -1),
812 lv_level, prg.SUP_LEVEL) PRG_LEVEL,
813 pjp.LINE_TYPE,
814 decode(nvl(prg.SUB_EMT_ID, -1), nvl(prg.SUB_ROLLUP_ID, -1),
815 pjp.PROJECT_ID, prg.SUP_PROJECT_ID) PROJECT_ID,
816 decode(nvl(prg.SUB_EMT_ID, -1), nvl(prg.SUB_ROLLUP_ID, -1),
817 pjp.PROJECT_ORG_ID,
818 prg.SUP_PROJECT_ORG_ID) PROJECT_ORG_ID,
819 decode(nvl(prg.SUB_EMT_ID, -1), nvl(prg.SUB_ROLLUP_ID, -1),
820 pjp.PROJECT_ORGANIZATION_ID,
821 prg.SUP_PROJECT_ORGANIZATION_ID) PROJECT_ORGANIZATION_ID,
822 decode(nvl(prg.SUB_EMT_ID, -1), nvl(prg.SUB_ROLLUP_ID, -1),
823 pjp.PROJECT_ELEMENT_ID,
824 prg.SUB_ROLLUP_ID) PROJECT_ELEMENT_ID,
825 pjp.TIME_ID,
826 pjp.PERIOD_TYPE_ID,
827 pjp.CALENDAR_TYPE,
828 pjp.RBS_AGGR_LEVEL,
829 decode(nvl(prg.SUB_EMT_ID, -1), nvl(prg.SUB_ROLLUP_ID, -1),
830 pjp.WBS_ROLLUP_FLAG, 'N') WBS_ROLLUP_FLAG,
831 decode(nvl(prg.SUB_EMT_ID, -1), nvl(prg.SUB_ROLLUP_ID, -1),
832 pjp.PRG_ROLLUP_FLAG, 'Y') PRG_ROLLUP_FLAG,
833 pjp.CURR_RECORD_TYPE_ID,
834 pjp.CURRENCY_CODE,
835 pjp.RBS_ELEMENT_ID,
836 pjp.RBS_VERSION_ID,
837 decode(nvl(prg.SUB_EMT_ID, -1), nvl(prg.SUB_ROLLUP_ID, -1),
838 pjp.PLAN_VERSION_ID,
839 decode(pjp.PLAN_VERSION_ID,
840 -1, pjp.PLAN_VERSION_ID,
841 -2, pjp.PLAN_VERSION_ID,
842 -3, pjp.PLAN_VERSION_ID,
843 -4, pjp.PLAN_VERSION_ID,
844 wbs_hdr.PLAN_VERSION_ID)) PLAN_VERSION_ID,
845 decode(nvl(prg.SUB_EMT_ID, -1), nvl(prg.SUB_ROLLUP_ID, -1),
846 pjp.PLAN_TYPE_ID,
847 decode(pjp.PLAN_VERSION_ID,
848 -1, pjp.PLAN_TYPE_ID,
849 -2, pjp.PLAN_TYPE_ID,
850 -3, pjp.PLAN_TYPE_ID,
851 -4, pjp.PLAN_TYPE_ID,
852 wbs_hdr.PLAN_TYPE_ID)) PLAN_TYPE_ID,
853 pjp.PLAN_TYPE_CODE,
854 sum(pjp.RAW_COST) RAW_COST,
855 sum(pjp.BRDN_COST) BRDN_COST,
856 sum(pjp.REVENUE) REVENUE,
857 sum(pjp.BILL_RAW_COST) BILL_RAW_COST,
858 sum(pjp.BILL_BRDN_COST) BILL_BRDN_COST,
859 sum(pjp.BILL_LABOR_RAW_COST) BILL_LABOR_RAW_COST,
860 sum(pjp.BILL_LABOR_BRDN_COST) BILL_LABOR_BRDN_COST,
861 sum(pjp.BILL_LABOR_HRS) BILL_LABOR_HRS,
862 sum(pjp.EQUIPMENT_RAW_COST) EQUIPMENT_RAW_COST,
863 sum(pjp.EQUIPMENT_BRDN_COST) EQUIPMENT_BRDN_COST,
864 sum(pjp.CAPITALIZABLE_RAW_COST) CAPITALIZABLE_RAW_COST,
865 sum(pjp.CAPITALIZABLE_BRDN_COST) CAPITALIZABLE_BRDN_COST,
866 sum(pjp.LABOR_RAW_COST) LABOR_RAW_COST,
867 sum(pjp.LABOR_BRDN_COST) LABOR_BRDN_COST,
868 sum(pjp.LABOR_HRS) LABOR_HRS,
869 sum(pjp.LABOR_REVENUE) LABOR_REVENUE,
870 sum(pjp.EQUIPMENT_HOURS) EQUIPMENT_HOURS,
871 sum(pjp.BILLABLE_EQUIPMENT_HOURS) BILLABLE_EQUIPMENT_HOURS,
872 sum(pjp.SUP_INV_COMMITTED_COST) SUP_INV_COMMITTED_COST,
873 sum(pjp.PO_COMMITTED_COST) PO_COMMITTED_COST,
874 sum(pjp.PR_COMMITTED_COST) PR_COMMITTED_COST,
875 sum(pjp.OTH_COMMITTED_COST) OTH_COMMITTED_COST,
876 sum(pjp.ACT_LABOR_HRS) ACT_LABOR_HRS,
877 sum(pjp.ACT_EQUIP_HRS) ACT_EQUIP_HRS,
878 sum(pjp.ACT_LABOR_BRDN_COST) ACT_LABOR_BRDN_COST,
879 sum(pjp.ACT_EQUIP_BRDN_COST) ACT_EQUIP_BRDN_COST,
880 sum(pjp.ACT_BRDN_COST) ACT_BRDN_COST,
881 sum(pjp.ACT_RAW_COST) ACT_RAW_COST,
882 sum(pjp.ACT_REVENUE) ACT_REVENUE,
883 sum(pjp.ACT_LABOR_RAW_COST) ACT_LABOR_RAW_COST,
884 sum(pjp.ACT_EQUIP_RAW_COST) ACT_EQUIP_RAW_COST,
885 sum(pjp.ETC_LABOR_HRS) ETC_LABOR_HRS,
886 sum(pjp.ETC_EQUIP_HRS) ETC_EQUIP_HRS,
887 sum(pjp.ETC_LABOR_BRDN_COST) ETC_LABOR_BRDN_COST,
888 sum(pjp.ETC_EQUIP_BRDN_COST) ETC_EQUIP_BRDN_COST,
889 sum(pjp.ETC_BRDN_COST) ETC_BRDN_COST,
890 sum(pjp.ETC_RAW_COST) ETC_RAW_COST,
891 sum(pjp.ETC_LABOR_RAW_COST) ETC_LABOR_RAW_COST,
892 sum(pjp.ETC_EQUIP_RAW_COST) ETC_EQUIP_RAW_COST,
893 sum(pjp.CUSTOM1) CUSTOM1,
894 sum(pjp.CUSTOM2) CUSTOM2,
895 sum(pjp.CUSTOM3) CUSTOM3,
896 sum(pjp.CUSTOM4) CUSTOM4,
897 sum(pjp.CUSTOM5) CUSTOM5,
898 sum(pjp.CUSTOM6) CUSTOM6,
899 sum(pjp.CUSTOM7) CUSTOM7,
900 sum(pjp.CUSTOM8) CUSTOM8,
901 sum(pjp.CUSTOM9) CUSTOM9,
902 sum(pjp.CUSTOM10) CUSTOM10,
903 sum(pjp.CUSTOM11) CUSTOM11,
904 sum(pjp.CUSTOM12) CUSTOM12,
905 sum(pjp.CUSTOM13) CUSTOM13,
906 sum(pjp.CUSTOM14) CUSTOM14,
907 sum(pjp.CUSTOM15) CUSTOM15
908 from
909 (
910 select /*+ ordered index(wbs PA_XBS_DENORM_N2) */
911 -- get incremental task level amounts from source and
912 -- program rollup amounts from interim
913 to_char(null) LINE_TYPE,
914 wbs_hdr.WBS_VERSION_ID,
915 decode(wbs_hdr.WP_FLAG, 'Y', 'LW', 'LF') RELATIONSHIP_TYPE,
916 decode(wbs_hdr.WP_FLAG
917 || '_' || to_char(sign(pjp1.PLAN_VERSION_ID))
918 || '_' || nvl(fin_plan.INVERT_ID, 'PRJ'),
919 'N_1_PRJ', 'N',
920 'N_-1_PRG', 'N',
921 decode(top_slice.INVERT_ID,
922 'PRJ', 'Y',
923 decode(wbs.SUB_LEVEL,
924 1, 'Y', 'N'))) PUSHUP_FLAG,
925 decode(pjp1.RBS_AGGR_LEVEL,
926 'L', 'N',
927 decode(wbs_hdr.WP_FLAG
928 || '_' || to_char(sign(pjp1.PLAN_VERSION_ID))
929 || '_' || fin_plan.INVERT_ID,
930 'N_1_PRG', decode(top_slice.INVERT_ID,
931 'PRJ', 'Y',
932 decode(wbs.SUB_LEVEL,
933 1, 'Y', 'N')),
934 'N_-1_PRG', 'N',
935 decode(wbs_hdr.WP_FLAG
936 || '_' || fin_plan.INVERT_ID
937 || '_' || fin_plan.CB
938 || '_' || fin_plan.CO
939 || '_'
940 || to_char(fin_plan.PLAN_VERSION_ID),
941 'N_PRJ_Y_Y_-4', 'N',
942 'Y'))
943 ) INSERT_FLAG,
944 pjp1.PROJECT_ID,
945 pjp1.PROJECT_ORG_ID,
946 pjp1.PROJECT_ORGANIZATION_ID,
947 decode(top_slice.INVERT_ID,
948 'PRJ', prg.SUP_EMT_ID,
949 decode(wbs.SUB_LEVEL,
950 1, prg.SUP_EMT_ID,
951 wbs.SUP_EMT_ID)) PROJECT_ELEMENT_ID,
952 pjp1.TIME_ID,
953 pjp1.PERIOD_TYPE_ID,
954 pjp1.CALENDAR_TYPE,
955 pjp1.RBS_AGGR_LEVEL,
956 'Y' WBS_ROLLUP_FLAG,
957 pjp1.PRG_ROLLUP_FLAG,
958 pjp1.CURR_RECORD_TYPE_ID,
959 pjp1.CURRENCY_CODE,
960 pjp1.RBS_ELEMENT_ID,
961 pjp1.RBS_VERSION_ID,
962 decode(wbs_hdr.WP_FLAG || '_' || fin_plan.INVERT_ID,
963 'N_PRG', fin_plan.PLAN_VERSION_ID,
964 pjp1.PLAN_VERSION_ID) PLAN_VERSION_ID,
965 pjp1.PLAN_TYPE_ID,
966 pjp1.PLAN_TYPE_CODE,
967 pjp1.RAW_COST,
968 pjp1.BRDN_COST,
969 pjp1.REVENUE,
970 pjp1.BILL_RAW_COST,
971 pjp1.BILL_BRDN_COST,
972 pjp1.BILL_LABOR_RAW_COST,
973 pjp1.BILL_LABOR_BRDN_COST,
974 pjp1.BILL_LABOR_HRS,
975 pjp1.EQUIPMENT_RAW_COST,
976 pjp1.EQUIPMENT_BRDN_COST,
977 pjp1.CAPITALIZABLE_RAW_COST,
978 pjp1.CAPITALIZABLE_BRDN_COST,
979 pjp1.LABOR_RAW_COST,
980 pjp1.LABOR_BRDN_COST,
981 pjp1.LABOR_HRS,
982 pjp1.LABOR_REVENUE,
983 pjp1.EQUIPMENT_HOURS,
984 pjp1.BILLABLE_EQUIPMENT_HOURS,
985 pjp1.SUP_INV_COMMITTED_COST,
986 pjp1.PO_COMMITTED_COST,
987 pjp1.PR_COMMITTED_COST,
988 pjp1.OTH_COMMITTED_COST,
989 pjp1.ACT_LABOR_HRS,
990 pjp1.ACT_EQUIP_HRS,
991 pjp1.ACT_LABOR_BRDN_COST,
992 pjp1.ACT_EQUIP_BRDN_COST,
993 pjp1.ACT_BRDN_COST,
994 pjp1.ACT_RAW_COST,
995 pjp1.ACT_REVENUE,
996 pjp1.ACT_LABOR_RAW_COST,
997 pjp1.ACT_EQUIP_RAW_COST,
998 pjp1.ETC_LABOR_HRS,
999 pjp1.ETC_EQUIP_HRS,
1000 pjp1.ETC_LABOR_BRDN_COST,
1001 pjp1.ETC_EQUIP_BRDN_COST,
1002 pjp1.ETC_BRDN_COST,
1003 pjp1.ETC_RAW_COST,
1004 pjp1.ETC_LABOR_RAW_COST,
1005 pjp1.ETC_EQUIP_RAW_COST,
1006 pjp1.CUSTOM1,
1007 pjp1.CUSTOM2,
1008 pjp1.CUSTOM3,
1009 pjp1.CUSTOM4,
1010 pjp1.CUSTOM5,
1011 pjp1.CUSTOM6,
1012 pjp1.CUSTOM7,
1013 pjp1.CUSTOM8,
1014 pjp1.CUSTOM9,
1015 pjp1.CUSTOM10,
1016 pjp1.CUSTOM11,
1017 pjp1.CUSTOM12,
1018 pjp1.CUSTOM13,
1019 pjp1.CUSTOM14,
1020 pjp1.CUSTOM15
1021 from
1022 PJI_FP_AGGR_PJP1 pjp1,
1023 -- Commenting and adding code for testing 0802
1024 --PJI_PJP_WBS_HEADER wbs_hdr,
1025 PJI_PJP_WBS_HEADER_T wbs_hdr,
1026 --PA_XBS_DENORM wbs,
1027 PJI_PA_XBS_DENORM_T wbs,
1028 --PJI_XBS_DENORM prg,
1029 PJI_XBS_DENORM_T prg,
1030 -- End of Commenting and adding code for testing 0802
1031 (
1032 select 'Y' CB, 'N' CO, -3 PLAN_VERSION_ID, 'PRG' INVERT_ID
1033 from DUAL union all
1034 select 'Y' CB, 'N' CO, -3 PLAN_VERSION_ID, 'PRJ' INVERT_ID
1035 from DUAL union all
1036 select 'N' CB, 'Y' CO, -4 PLAN_VERSION_ID, 'PRG' INVERT_ID
1037 from DUAL union all
1038 select 'N' CB, 'Y' CO, -4 PLAN_VERSION_ID, 'PRJ' INVERT_ID
1039 from DUAL union all
1040 select 'Y' CB, 'Y' CO, -3 PLAN_VERSION_ID, 'PRG' INVERT_ID
1041 from DUAL union all
1042 select 'Y' CB, 'Y' CO, -3 PLAN_VERSION_ID, 'PRJ' INVERT_ID
1043 from DUAL union all
1044 select 'Y' CB, 'Y' CO, -4 PLAN_VERSION_ID, 'PRG' INVERT_ID
1045 from DUAL union all
1046 select 'Y' CB, 'Y' CO, -4 PLAN_VERSION_ID, 'PRJ' INVERT_ID
1047 from DUAL
1048 ) fin_plan,
1049 (
1050 select 1 WBS_SUP_LEVEL,
1051 1 WBS_SUB_LEVEL,
1052 'PRJ' INVERT_ID
1053 from DUAL
1054 union all
1055 select 1 WBS_SUP_LEVEL,
1056 1 WBS_SUB_LEVEL,
1057 'WBS' INVERT_ID
1058 from DUAL
1059 ) top_slice
1060 where
1061 prg.STRUCT_TYPE = 'PRG' and
1062 prg.SUP_LEVEL = lv_level and
1063 prg.SUB_LEVEL = lv_level and
1064 wbs.STRUCT_TYPE = 'WBS' and
1065 ((wbs.SUP_LEVEL = 1 and
1066 wbs.SUB_LEVEL = 1) or
1067 (wbs.SUP_LEVEL <> wbs.SUB_LEVEL)) and
1068 wbs.STRUCT_VERSION_ID = prg.SUP_ID and
1069 wbs.SUP_PROJECT_ID = prg.SUP_PROJECT_ID and
1070 pjp1.WORKER_ID = p_worker_id and
1071 pjp1.PRG_LEVEL in (0, lv_level) and
1072 pjp1.RBS_AGGR_LEVEL in ('T', 'L') and
1073 pjp1.WBS_ROLLUP_FLAG = 'N' and
1074 pjp1.PRG_ROLLUP_FLAG in ('Y', 'N') and
1075 pjp1.PROJECT_ID = wbs_hdr.PROJECT_ID and
1076 pjp1.PLAN_VERSION_ID = wbs_hdr.PLAN_VERSION_ID and
1077 pjp1.PLAN_TYPE_CODE = wbs_hdr.PLAN_TYPE_CODE and
1078 decode(pjp1.PLAN_VERSION_ID,
1079 -3, pjp1.PLAN_TYPE_ID,
1080 -4, pjp1.PLAN_TYPE_ID,
1081 -1) = decode(pjp1.PLAN_VERSION_ID,
1082 -3, wbs_hdr.PLAN_TYPE_ID,
1083 -4, wbs_hdr.PLAN_TYPE_ID,
1084 -1) and
1085 wbs.STRUCT_VERSION_ID = wbs_hdr.WBS_VERSION_ID and
1086 pjp1.PROJECT_ELEMENT_ID = wbs.SUB_EMT_ID and
1087 wbs_hdr.CB_FLAG = fin_plan.CB (+) and
1088 wbs_hdr.CO_FLAG = fin_plan.CO (+) and
1089 wbs.SUP_LEVEL = top_slice.WBS_SUP_LEVEL (+) and
1090 wbs.SUB_LEVEL <> top_slice.WBS_SUB_LEVEL (+)
1091 union all
1092 select /*+ ordered */
1093 -- get incremental project level amounts from source
1094 to_char(null) LINE_TYPE,
1095 wbs_hdr.WBS_VERSION_ID,
1096 decode(wbs_hdr.WP_FLAG, 'Y', 'LW', 'LF') RELATIONSHIP_TYPE,
1097 'Y' PUSHUP_FLAG,
1098 decode(pjp1.RBS_AGGR_LEVEL,
1099 'L', 'N',
1100 decode(fin_plan.PLAN_VERSION_ID,
1101 null, 'N', 'Y')) INSERT_FLAG,
1102 pjp1.PROJECT_ID,
1103 pjp1.PROJECT_ORG_ID,
1104 pjp1.PROJECT_ORGANIZATION_ID,
1105 pjp1.PROJECT_ELEMENT_ID,
1106 pjp1.TIME_ID,
1107 pjp1.PERIOD_TYPE_ID,
1108 pjp1.CALENDAR_TYPE,
1109 pjp1.RBS_AGGR_LEVEL,
1110 'Y' WBS_ROLLUP_FLAG,
1111 pjp1.PRG_ROLLUP_FLAG,
1112 pjp1.CURR_RECORD_TYPE_ID,
1113 pjp1.CURRENCY_CODE,
1114 pjp1.RBS_ELEMENT_ID,
1115 pjp1.RBS_VERSION_ID,
1116 decode(wbs_hdr.WP_FLAG,
1117 'N', decode(pjp1.PLAN_VERSION_ID,
1118 -1, pjp1.PLAN_VERSION_ID,
1119 -2, pjp1.PLAN_VERSION_ID,
1120 -3, pjp1.PLAN_VERSION_ID, -- won't exist
1121 -4, pjp1.PLAN_VERSION_ID, -- won't exist
1122 fin_plan.PLAN_VERSION_ID),
1123 pjp1.PLAN_VERSION_ID) PLAN_VERSION_ID,
1124 pjp1.PLAN_TYPE_ID,
1125 pjp1.PLAN_TYPE_CODE,
1126 pjp1.RAW_COST,
1127 pjp1.BRDN_COST,
1128 pjp1.REVENUE,
1129 pjp1.BILL_RAW_COST,
1130 pjp1.BILL_BRDN_COST,
1131 pjp1.BILL_LABOR_RAW_COST,
1132 pjp1.BILL_LABOR_BRDN_COST,
1133 pjp1.BILL_LABOR_HRS,
1134 pjp1.EQUIPMENT_RAW_COST,
1135 pjp1.EQUIPMENT_BRDN_COST,
1136 pjp1.CAPITALIZABLE_RAW_COST,
1137 pjp1.CAPITALIZABLE_BRDN_COST,
1138 pjp1.LABOR_RAW_COST,
1139 pjp1.LABOR_BRDN_COST,
1140 pjp1.LABOR_HRS,
1141 pjp1.LABOR_REVENUE,
1142 pjp1.EQUIPMENT_HOURS,
1143 pjp1.BILLABLE_EQUIPMENT_HOURS,
1144 pjp1.SUP_INV_COMMITTED_COST,
1145 pjp1.PO_COMMITTED_COST,
1146 pjp1.PR_COMMITTED_COST,
1147 pjp1.OTH_COMMITTED_COST,
1148 pjp1.ACT_LABOR_HRS,
1149 pjp1.ACT_EQUIP_HRS,
1150 pjp1.ACT_LABOR_BRDN_COST,
1151 pjp1.ACT_EQUIP_BRDN_COST,
1152 pjp1.ACT_BRDN_COST,
1153 pjp1.ACT_RAW_COST,
1154 pjp1.ACT_REVENUE,
1155 pjp1.ACT_LABOR_RAW_COST,
1156 pjp1.ACT_EQUIP_RAW_COST,
1157 pjp1.ETC_LABOR_HRS,
1158 pjp1.ETC_EQUIP_HRS,
1159 pjp1.ETC_LABOR_BRDN_COST,
1160 pjp1.ETC_EQUIP_BRDN_COST,
1161 pjp1.ETC_BRDN_COST,
1162 pjp1.ETC_RAW_COST,
1163 pjp1.ETC_LABOR_RAW_COST,
1164 pjp1.ETC_EQUIP_RAW_COST,
1165 pjp1.CUSTOM1,
1166 pjp1.CUSTOM2,
1167 pjp1.CUSTOM3,
1168 pjp1.CUSTOM4,
1169 pjp1.CUSTOM5,
1170 pjp1.CUSTOM6,
1171 pjp1.CUSTOM7,
1172 pjp1.CUSTOM8,
1173 pjp1.CUSTOM9,
1174 pjp1.CUSTOM10,
1175 pjp1.CUSTOM11,
1176 pjp1.CUSTOM12,
1177 pjp1.CUSTOM13,
1178 pjp1.CUSTOM14,
1179 pjp1.CUSTOM15
1180 from
1181 PJI_FP_AGGR_PJP1 pjp1,
1182 -- Commenting and adding code for testing 0802
1183 --PJI_PJP_WBS_HEADER wbs_hdr,
1184 PJI_PJP_WBS_HEADER_T wbs_hdr,
1185 PJI_XBS_DENORM_T prg,
1186 --PJI_XBS_DENORM prg,
1187 -- End of Commenting and adding code for testing 0802
1188 (
1189 select 'Y' CB_FLAG,
1190 'N' CO_FLAG,
1191 -3 PLAN_VERSION_ID
1192 from DUAL union all
1193 select 'N' CB_FLAG,
1194 'Y' CO_FLAG,
1195 -4 PLAN_VERSION_ID
1196 from DUAL union all
1197 select 'Y' CB_FLAG,
1198 'Y' CO_FLAG,
1199 -3 PLAN_VERSION_ID
1200 from DUAL union all
1201 select 'Y' CB_FLAG,
1202 'Y' CO_FLAG,
1203 -4 PLAN_VERSION_ID
1204 from DUAL
1205 ) fin_plan
1206 where
1207 prg.STRUCT_TYPE = 'PRG' and
1208 prg.SUP_LEVEL = lv_level and
1209 prg.SUB_LEVEL = lv_level and
1210 pjp1.WORKER_ID = p_worker_id and
1211 pjp1.PROJECT_ID = prg.SUP_PROJECT_ID and
1212 pjp1.PROJECT_ELEMENT_ID = prg.SUP_EMT_ID and
1213 pjp1.PRG_LEVEL = 0 and
1214 pjp1.RBS_AGGR_LEVEL in ('T', 'L') and
1215 pjp1.WBS_ROLLUP_FLAG = 'N' and
1216 pjp1.PRG_ROLLUP_FLAG = 'N' and
1217 wbs_hdr.PROJECT_ID = pjp1.PROJECT_ID and
1218 wbs_hdr.PLAN_VERSION_ID = pjp1.PLAN_VERSION_ID and
1219 wbs_hdr.PLAN_TYPE_CODE = pjp1.PLAN_TYPE_CODE and
1220 decode(wbs_hdr.WP_FLAG,
1221 'N', decode(pjp1.PLAN_VERSION_ID,
1222 -1, 'Y',
1223 -2, 'Y',
1224 -3, 'Y', -- won't exist
1225 -4, 'Y', -- won't exist
1226 decode(wbs_hdr.CB_FLAG || '_' ||
1227 wbs_hdr.CO_FLAG,
1228 'Y_Y', 'Y',
1229 'N_Y', 'Y',
1230 'Y_N', 'Y',
1231 'N')),
1232 'Y') = 'Y' and
1233 wbs_hdr.WBS_VERSION_ID = prg.SUP_ID and
1234 wbs_hdr.CB_FLAG = fin_plan.CB_FLAG (+) and
1235 wbs_hdr.CO_FLAG = fin_plan.CO_FLAG (+)
1236 union all
1237 select /*+ ordered
1238 index(fpr PJI_FP_XBS_ACCUM_F_N1) */
1239 -- get delta task level amounts from Reporting Lines
1240 to_char(null) LINE_TYPE,
1241 wbs_hdr.WBS_VERSION_ID,
1242 decode(wbs_hdr.WP_FLAG, 'Y', 'LW', 'LF') RELATIONSHIP_TYPE,
1243 decode(log.EVENT_TYPE,
1244 'WBS_CHANGE', 'Y',
1245 'WBS_PUBLISH', 'N') PUSHUP_FLAG,
1246 decode(wbs_hdr.WP_FLAG || '_' || fin_plan.INVERT_ID,
1247 'N_PRG', decode(top_slice.INVERT_ID,
1248 'PRJ', 'Y',
1249 decode(wbs.SUB_LEVEL,
1250 1, 'Y', 'N')),
1251 decode(wbs_hdr.WP_FLAG
1252 || '_' || fin_plan.INVERT_ID
1253 || '_' || fin_plan.CB
1254 || '_' || fin_plan.CO
1255 || '_' || to_char(fin_plan.PLAN_VERSION_ID),
1256 'N_PRJ_Y_Y_-4', 'N',
1257 'Y')) INSERT_FLAG,
1258 fpr.PROJECT_ID,
1259 fpr.PROJECT_ORG_ID,
1260 fpr.PROJECT_ORGANIZATION_ID,
1261 decode(top_slice.INVERT_ID,
1262 'PRJ', prg.SUP_EMT_ID,
1263 decode(wbs.SUB_LEVEL,
1264 1, prg.SUP_EMT_ID,
1265 wbs.SUP_EMT_ID)) PROJECT_ELEMENT_ID,
1266 fpr.TIME_ID,
1267 fpr.PERIOD_TYPE_ID,
1268 fpr.CALENDAR_TYPE,
1269 fpr.RBS_AGGR_LEVEL,
1270 'Y' WBS_ROLLUP_FLAG,
1271 fpr.PRG_ROLLUP_FLAG,
1272 fpr.CURR_RECORD_TYPE_ID,
1273 fpr.CURRENCY_CODE,
1274 fpr.RBS_ELEMENT_ID,
1275 fpr.RBS_VERSION_ID,
1276 decode(wbs_hdr.WP_FLAG || '_' || fin_plan.INVERT_ID,
1277 'N_PRG', fin_plan.PLAN_VERSION_ID,
1278 fpr.PLAN_VERSION_ID) PLAN_VERSION_ID,
1279 fpr.PLAN_TYPE_ID,
1280 fpr.PLAN_TYPE_CODE,
1281 wbs.SIGN * fpr.RAW_COST RAW_COST,
1282 wbs.SIGN * fpr.BRDN_COST BRDN_COST,
1283 wbs.SIGN * fpr.REVENUE REVENUE,
1284 wbs.SIGN * fpr.BILL_RAW_COST BILL_RAW_COST,
1285 wbs.SIGN * fpr.BILL_BRDN_COST BILL_BRDN_COST,
1286 wbs.SIGN * fpr.BILL_LABOR_RAW_COST BILL_LABOR_RAW_COST,
1287 wbs.SIGN * fpr.BILL_LABOR_BRDN_COST BILL_LABOR_BRDN_COST,
1288 wbs.SIGN * fpr.BILL_LABOR_HRS BILL_LABOR_HRS,
1289 wbs.SIGN * fpr.EQUIPMENT_RAW_COST EQUIPMENT_RAW_COST,
1290 wbs.SIGN * fpr.EQUIPMENT_BRDN_COST EQUIPMENT_BRDN_COST,
1291 wbs.SIGN * fpr.CAPITALIZABLE_RAW_COST CAPITALIZABLE_RAW_COST,
1292 wbs.SIGN * fpr.CAPITALIZABLE_BRDN_COST CAPITALIZABLE_BRDN_COST,
1293 wbs.SIGN * fpr.LABOR_RAW_COST LABOR_RAW_COST,
1294 wbs.SIGN * fpr.LABOR_BRDN_COST LABOR_BRDN_COST,
1295 wbs.SIGN * fpr.LABOR_HRS LABOR_HRS,
1296 wbs.SIGN * fpr.LABOR_REVENUE LABOR_REVENUE,
1297 wbs.SIGN * fpr.EQUIPMENT_HOURS EQUIPMENT_HOURS,
1298 wbs.SIGN * fpr.BILLABLE_EQUIPMENT_HOURS BILLABLE_EQUIPMENT_HOURS,
1299 wbs.SIGN * fpr.SUP_INV_COMMITTED_COST SUP_INV_COMMITTED_COST,
1300 wbs.SIGN * fpr.PO_COMMITTED_COST PO_COMMITTED_COST,
1301 wbs.SIGN * fpr.PR_COMMITTED_COST PR_COMMITTED_COST,
1302 wbs.SIGN * fpr.OTH_COMMITTED_COST OTH_COMMITTED_COST,
1303 wbs.SIGN * fpr.ACT_LABOR_HRS ACT_LABOR_HRS,
1304 wbs.SIGN * fpr.ACT_EQUIP_HRS ACT_EQUIP_HRS,
1305 wbs.SIGN * fpr.ACT_LABOR_BRDN_COST ACT_LABOR_BRDN_COST,
1306 wbs.SIGN * fpr.ACT_EQUIP_BRDN_COST ACT_EQUIP_BRDN_COST,
1307 wbs.SIGN * fpr.ACT_BRDN_COST ACT_BRDN_COST,
1308 wbs.SIGN * fpr.ACT_RAW_COST ACT_RAW_COST,
1309 wbs.SIGN * fpr.ACT_REVENUE ACT_REVENUE,
1310 wbs.SIGN * fpr.ACT_LABOR_RAW_COST ACT_LABOR_RAW_COST,
1311 wbs.SIGN * fpr.ACT_EQUIP_RAW_COST ACT_EQUIP_RAW_COST,
1312 wbs.SIGN * fpr.ETC_LABOR_HRS ETC_LABOR_HRS,
1313 wbs.SIGN * fpr.ETC_EQUIP_HRS ETC_EQUIP_HRS,
1314 wbs.SIGN * fpr.ETC_LABOR_BRDN_COST ETC_LABOR_BRDN_COST,
1315 wbs.SIGN * fpr.ETC_EQUIP_BRDN_COST ETC_EQUIP_BRDN_COST,
1316 wbs.SIGN * fpr.ETC_BRDN_COST ETC_BRDN_COST,
1317 wbs.SIGN * fpr.ETC_RAW_COST ETC_RAW_COST,
1318 wbs.SIGN * fpr.ETC_LABOR_RAW_COST ETC_LABOR_RAW_COST,
1319 wbs.SIGN * fpr.ETC_EQUIP_RAW_COST ETC_EQUIP_RAW_COST,
1320 wbs.SIGN * fpr.CUSTOM1 CUSTOM1,
1321 wbs.SIGN * fpr.CUSTOM2 CUSTOM2,
1322 wbs.SIGN * fpr.CUSTOM3 CUSTOM3,
1323 wbs.SIGN * fpr.CUSTOM4 CUSTOM4,
1324 wbs.SIGN * fpr.CUSTOM5 CUSTOM5,
1325 wbs.SIGN * fpr.CUSTOM6 CUSTOM6,
1326 wbs.SIGN * fpr.CUSTOM7 CUSTOM7,
1327 wbs.SIGN * fpr.CUSTOM8 CUSTOM8,
1328 wbs.SIGN * fpr.CUSTOM9 CUSTOM9,
1329 wbs.SIGN * fpr.CUSTOM10 CUSTOM10,
1330 wbs.SIGN * fpr.CUSTOM11 CUSTOM11,
1331 wbs.SIGN * fpr.CUSTOM12 CUSTOM12,
1332 wbs.SIGN * fpr.CUSTOM13 CUSTOM13,
1333 wbs.SIGN * fpr.CUSTOM14 CUSTOM14,
1334 wbs.SIGN * fpr.CUSTOM15 CUSTOM15
1335 from
1336 PJI_PA_PROJ_EVENTS_LOG log,
1337 -- Commenting and adding code for testing 0802
1338 PJI_PJP_WBS_HEADER_T wbs_hdr,
1339 --PJI_PJP_WBS_HEADER wbs_hdr,
1340 PJI_XBS_DENORM_DELTA wbs,
1341 --PJI_XBS_DENORM prg,
1342 PJI_XBS_DENORM_t prg,
1343 -- End of Commenting and adding code for testing 0802
1344 PJI_FP_XBS_ACCUM_F fpr,
1345 (
1346 select 'Y' CB, 'N' CO, -3 PLAN_VERSION_ID, 'PRG' INVERT_ID
1347 from DUAL union all
1348 select 'Y' CB, 'N' CO, -3 PLAN_VERSION_ID, 'PRJ' INVERT_ID
1349 from DUAL union all
1350 select 'N' CB, 'Y' CO, -4 PLAN_VERSION_ID, 'PRG' INVERT_ID
1351 from DUAL union all
1352 select 'N' CB, 'Y' CO, -4 PLAN_VERSION_ID, 'PRJ' INVERT_ID
1353 from DUAL union all
1354 select 'Y' CB, 'Y' CO, -3 PLAN_VERSION_ID, 'PRG' INVERT_ID
1355 from DUAL union all
1356 select 'Y' CB, 'Y' CO, -3 PLAN_VERSION_ID, 'PRJ' INVERT_ID
1357 from DUAL union all
1358 select 'Y' CB, 'Y' CO, -4 PLAN_VERSION_ID, 'PRG' INVERT_ID
1359 from DUAL union all
1360 select 'Y' CB, 'Y' CO, -4 PLAN_VERSION_ID, 'PRJ' INVERT_ID
1361 from DUAL
1362 ) fin_plan,
1363 (
1364 select 1 WBS_SUP_LEVEL,
1365 1 WBS_SUB_LEVEL,
1366 'PRJ' INVERT_ID
1367 from DUAL
1368 union all
1369 select 1 WBS_SUP_LEVEL,
1370 1 WBS_SUB_LEVEL,
1371 'WBS' INVERT_ID
1372 from DUAL
1373 ) top_slice
1374 where
1375 prg.STRUCT_TYPE = 'PRG' and
1376 prg.SUP_LEVEL = lv_level and
1377 prg.SUB_LEVEL = lv_level and
1378 wbs.WORKER_ID = p_worker_id and
1379 wbs.STRUCT_TYPE = 'WBS' and
1380 wbs.SUP_PROJECT_ID = prg.SUP_PROJECT_ID and
1381 log.WORKER_ID = p_worker_id and
1382 log.EVENT_ID = wbs.EVENT_ID and
1383 log.EVENT_TYPE in ('WBS_CHANGE',
1384 'WBS_PUBLISH') and
1385 wbs_hdr.PROJECT_ID = log.ATTRIBUTE1 and
1386 wbs_hdr.PLAN_VERSION_ID = log.ATTRIBUTE3 and
1387 wbs_hdr.WBS_VERSION_ID = wbs.STRUCT_VERSION_ID and
1388 wbs_hdr.PROJECT_ID = prg.SUP_PROJECT_ID and
1389 wbs_hdr.WBS_VERSION_ID = prg.SUP_ID and
1390 fpr.RBS_AGGR_LEVEL = 'T' and
1391 fpr.WBS_ROLLUP_FLAG = 'N' and
1392 fpr.PRG_ROLLUP_FLAG in ('Y', 'N') and
1393 fpr.PROJECT_ID = wbs.SUP_PROJECT_ID and
1394 fpr.PROJECT_ELEMENT_ID = wbs.SUB_EMT_ID and
1395 fpr.PROJECT_ID = wbs_hdr.PROJECT_ID and
1396 fpr.PLAN_VERSION_ID = wbs_hdr.PLAN_VERSION_ID and
1397 fpr.PLAN_TYPE_CODE = wbs_hdr.PLAN_TYPE_CODE and
1398 decode(fpr.PLAN_VERSION_ID,
1399 -3, fpr.PLAN_TYPE_ID,
1400 -4, fpr.PLAN_TYPE_ID,
1401 -1) = decode(fpr.PLAN_VERSION_ID,
1402 -3, wbs_hdr.PLAN_TYPE_ID,
1403 -4, wbs_hdr.PLAN_TYPE_ID,
1404 -1) and
1405 wbs_hdr.CB_FLAG = fin_plan.CB (+) and
1406 wbs_hdr.CO_FLAG = fin_plan.CO (+) and
1407 wbs.SUP_LEVEL = top_slice.WBS_SUP_LEVEL (+) and
1408 wbs.SUB_LEVEL <> top_slice.WBS_SUB_LEVEL (+) and
1409 (wbs.SUP_LEVEL <> wbs.SUB_LEVEL or
1410 (wbs.SUP_LEVEL = 1 and
1411 wbs.SUB_LEVEL = 1))
1412 ) pjp,
1413 (
1414 select
1415 prg.SUP_PROJECT_ID,
1416 map.PROJECT_ORG_ID SUP_PROJECT_ORG_ID,
1417 map.PROJECT_ORGANIZATION_ID SUP_PROJECT_ORGANIZATION_ID,
1418 prg.SUP_ID,
1419 prg.SUP_EMT_ID,
1420 prg.SUP_LEVEL,
1421 prg.SUB_ID,
1422 prg.SUB_EMT_ID,
1423 prg.SUB_ROLLUP_ID,
1424 invert.INVERT_VALUE RELATIONSHIP_TYPE,
1425 decode(prg.RELATIONSHIP_TYPE,
1426 'LW', 'Y',
1427 'LF', 'N') WP_FLAG,
1428 'Y' PUSHUP_FLAG
1429 from
1430 PJI_PJP_PROJ_BATCH_MAP map,
1431 -- Commenting and adding code for testing 0802
1432 PJI_XBS_DENORM_T prg,
1433 --PJI_XBS_DENORM prg,
1434 -- End of Commenting and adding code for testing 0802
1435 (
1436 select 'LF' INVERT_ID, 'LF' INVERT_VALUE from dual union all
1437 select 'LW' INVERT_ID, 'LW' INVERT_VALUE from dual union all
1438 select 'A' INVERT_ID, 'LF' INVERT_VALUE from dual union all
1439 select 'A' INVERT_ID, 'LW' INVERT_VALUE from dual
1440 ) invert,
1441 PJI_XBS_DENORM_DELTA prg_delta
1442 where
1443 prg.STRUCT_TYPE = 'PRG' and
1444 prg.SUB_ROLLUP_ID is not null and
1445 prg.SUB_LEVEL = lv_level and
1446 map.WORKER_ID = p_worker_id and
1447 map.PROJECT_ID = prg.SUP_PROJECT_ID and
1448 decode(prg.SUB_LEVEL,
1449 prg.SUP_LEVEL, 'A',
1450 prg.RELATIONSHIP_TYPE) = invert.INVERT_ID and
1451 p_worker_id = prg_delta.WORKER_ID (+) and
1452 prg.STRUCT_TYPE = prg_delta.STRUCT_TYPE (+) and
1453 prg.SUP_PROJECT_ID = prg_delta.SUP_PROJECT_ID (+) and
1454 prg.SUP_LEVEL = prg_delta.SUP_LEVEL (+) and
1455 prg.SUP_ID = prg_delta.SUP_ID (+) and
1456 prg.SUB_LEVEL = prg_delta.SUB_LEVEL (+) and
1457 prg.SUB_ID = prg_delta.SUB_ID (+) and
1458 prg.RELATIONSHIP_TYPE = prg_delta.RELATIONSHIP_TYPE (+) and
1459 -1 = prg_delta.SIGN (+) and
1460 prg_delta.SUP_PROJECT_ID is null
1461 ) prg,
1462 -- Commenting and adding code for testing 0802
1463 --PJI_PJP_WBS_HEADER wbs_hdr,
1464 PJI_PJP_WBS_HEADER_T wbs_hdr,
1465 -- End of Commenting and adding code for testing 0802
1466 PA_PROJ_ELEM_VER_STRUCTURE sub_ver,
1467 PA_PROJ_ELEM_VER_STRUCTURE sup_ver,
1468 PA_PROJ_WORKPLAN_ATTR sup_wpa
1469 where
1470 pjp.PROJECT_ID = sub_ver.PROJECT_ID (+) and
1471 pjp.WBS_VERSION_ID = sub_ver.ELEMENT_VERSION_ID (+) and
1472 'STRUCTURE_PUBLISHED' = sub_ver.STATUS_CODE (+) and
1473 pjp.WBS_VERSION_ID = prg.SUB_ID (+) and
1474 pjp.RELATIONSHIP_TYPE = prg.RELATIONSHIP_TYPE (+) and
1475 pjp.PUSHUP_FLAG = prg.PUSHUP_FLAG (+) and
1476 prg.SUP_PROJECT_ID = wbs_hdr.PROJECT_ID (+) and
1477 prg.SUP_ID = wbs_hdr.WBS_VERSION_ID (+) and
1478 prg.WP_FLAG = wbs_hdr.WP_FLAG (+) and
1479 'Y' = wbs_hdr.WP_FLAG (+) and
1480 wbs_hdr.PROJECT_ID = sup_ver.PROJECT_ID (+) and
1481 wbs_hdr.WBS_VERSION_ID = sup_ver.ELEMENT_VERSION_ID (+) and
1482 'STRUCTURE_PUBLISHED' = sup_ver.STATUS_CODE (+) and
1483 'Y' = sup_ver.LATEST_EFF_PUBLISHED_FLAG (+) and
1484 prg.SUP_EMT_ID = sup_wpa.PROJ_ELEMENT_ID (+)
1485 group by
1486 decode(nvl(prg.SUB_EMT_ID, -1), nvl(prg.SUB_ROLLUP_ID, -1),
1487 pjp.INSERT_FLAG, 'Y'),
1488 pjp.RELATIONSHIP_TYPE,
1489 decode(nvl(prg.SUB_EMT_ID, -1), nvl(prg.SUB_ROLLUP_ID, -1),
1490 null, sub_ver.STATUS_CODE),
1491 decode(nvl(prg.SUB_EMT_ID, -1), nvl(prg.SUB_ROLLUP_ID, -1),
1492 null, sup_ver.STATUS_CODE),
1493 decode(nvl(prg.SUB_EMT_ID, -1), nvl(prg.SUB_ROLLUP_ID, -1),
1494 null, sup_wpa.WP_ENABLE_VERSION_FLAG),
1495 decode(nvl(prg.SUB_EMT_ID, -1), nvl(prg.SUB_ROLLUP_ID, -1),
1496 null, decode(pjp.PLAN_VERSION_ID,
1497 -1, prg.SUP_ID,
1498 -3, prg.SUP_ID,
1499 -4, prg.SUP_ID,
1500 null)),
1501 decode(nvl(prg.SUB_EMT_ID, -1), nvl(prg.SUB_ROLLUP_ID, -1),
1502 null, decode(pjp.PLAN_VERSION_ID,
1503 -1, prg.SUP_EMT_ID,
1504 -3, prg.SUP_EMT_ID,
1505 -4, prg.SUP_EMT_ID,
1506 null)),
1507 decode(nvl(prg.SUB_EMT_ID, -1), nvl(prg.SUB_ROLLUP_ID, -1),
1508 null, decode(pjp.PLAN_VERSION_ID,
1509 -1, prg.WP_FLAG,
1510 -3, prg.WP_FLAG,
1511 -4, prg.WP_FLAG,
1512 null)),
1513 decode(nvl(prg.SUB_EMT_ID, -1), nvl(prg.SUB_ROLLUP_ID, -1),
1514 lv_level, prg.SUP_LEVEL),
1515 pjp.LINE_TYPE,
1516 decode(nvl(prg.SUB_EMT_ID, -1), nvl(prg.SUB_ROLLUP_ID, -1),
1517 pjp.PROJECT_ID, prg.SUP_PROJECT_ID),
1518 decode(nvl(prg.SUB_EMT_ID, -1), nvl(prg.SUB_ROLLUP_ID, -1),
1519 pjp.PROJECT_ORG_ID,
1520 prg.SUP_PROJECT_ORG_ID),
1521 decode(nvl(prg.SUB_EMT_ID, -1), nvl(prg.SUB_ROLLUP_ID, -1),
1522 pjp.PROJECT_ORGANIZATION_ID,
1523 prg.SUP_PROJECT_ORGANIZATION_ID),
1524 decode(nvl(prg.SUB_EMT_ID, -1), nvl(prg.SUB_ROLLUP_ID, -1),
1525 pjp.PROJECT_ELEMENT_ID,
1526 prg.SUB_ROLLUP_ID),
1527 pjp.TIME_ID,
1528 pjp.PERIOD_TYPE_ID,
1529 pjp.CALENDAR_TYPE,
1530 pjp.RBS_AGGR_LEVEL,
1531 decode(nvl(prg.SUB_EMT_ID, -1), nvl(prg.SUB_ROLLUP_ID, -1),
1532 pjp.WBS_ROLLUP_FLAG, 'N'),
1533 decode(nvl(prg.SUB_EMT_ID, -1), nvl(prg.SUB_ROLLUP_ID, -1),
1534 pjp.PRG_ROLLUP_FLAG, 'Y'),
1535 pjp.CURR_RECORD_TYPE_ID,
1536 pjp.CURRENCY_CODE,
1537 pjp.RBS_ELEMENT_ID,
1538 pjp.RBS_VERSION_ID,
1539 decode(nvl(prg.SUB_EMT_ID, -1), nvl(prg.SUB_ROLLUP_ID, -1),
1540 pjp.PLAN_VERSION_ID,
1541 decode(pjp.PLAN_VERSION_ID,
1542 -1, pjp.PLAN_VERSION_ID,
1543 -2, pjp.PLAN_VERSION_ID,
1544 -3, pjp.PLAN_VERSION_ID,
1545 -4, pjp.PLAN_VERSION_ID,
1546 wbs_hdr.PLAN_VERSION_ID)),
1547 decode(nvl(prg.SUB_EMT_ID, -1), nvl(prg.SUB_ROLLUP_ID, -1),
1548 pjp.PLAN_TYPE_ID,
1549 decode(pjp.PLAN_VERSION_ID,
1550 -1, pjp.PLAN_TYPE_ID,
1551 -2, pjp.PLAN_TYPE_ID,
1552 -3, pjp.PLAN_TYPE_ID,
1553 -4, pjp.PLAN_TYPE_ID,
1554 wbs_hdr.PLAN_TYPE_ID)),
1555 pjp.PLAN_TYPE_CODE
1556 ) pjp1_i,
1557 PA_PROJ_ELEM_VER_STRUCTURE sup_fin_ver,
1558 PA_PROJ_WORKPLAN_ATTR sup_wpa
1559 where
1560 pjp1_i.INSERT_FLAG = 'Y' and
1561 pjp1_i.PROJECT_ID = sup_fin_ver.PROJECT_ID (+) and
1562 pjp1_i.SUP_ID = sup_fin_ver.ELEMENT_VERSION_ID (+) and
1563 'STRUCTURE_WORKING' = sup_fin_ver.STATUS_CODE (+) and
1564 pjp1_i.SUP_EMT_ID = sup_wpa.PROJ_ELEMENT_ID (+) and
1565 'N' = sup_wpa.WP_ENABLE_VERSION_FLAG (+) and
1566 (pjp1_i.SUP_ID is null or
1567 (pjp1_i.SUP_ID is not null and
1568 (sup_fin_ver.PROJECT_ID is not null or
1569 sup_wpa.PROJ_ELEMENT_ID is not null)));
1570
1571 update PJI_SYSTEM_PRC_STATUS
1572 set STEP_STATUS = 'C',
1573 END_DATE = sysdate
1574 where PROCESS_NAME = l_process and
1575 STEP_SEQ = lv_level_seq;
1576
1577 commit;
1578
1579 select
1580 nvl(to_number(min(STEP_SEQ)), 0)
1581 into
1582 lv_level_seq
1583 from
1584 PJI_SYSTEM_PRC_STATUS
1585 where
1586 PROCESS_NAME = l_process and
1587 STEP_NAME like 'ROLLUP_FPR_WBS%' and
1588 STEP_STATUS is null;
1589
1590 if (lv_level_seq = 0) then
1591 lv_level := 0;
1592 else
1593 lv_level := l_max_level - ((lv_level_seq - l_step_seq) * 1000) + 1;
1594 end if;
1595
1596 end loop;
1597
1598
1599 end ROLLUP_FPR_WBS_PARTIAL;
1600 -- End Bug# 9904361
1601
1602 -- Begin Bug# 9904361
1603 procedure ROLLUP_FPR_WBS_FULL
1604 ( p_worker_id in number default null,
1605 l_process in varchar2,
1606 l_extraction_type in varchar2,
1607 l_fpm_upgrade in varchar2,
1608 l_max_level in number,
1609 l_level in number,
1610 l_step_seq in number,
1611 l_level_seq in number,
1612 l_count in number,
1613 l_partial_mode in varchar2
1614 ) is
1615 lv_level_seq number := l_level_seq;
1616 lv_level number := l_level;
1617
1618 begin
1619
1620 while (lv_level > 0) loop
1621
1622 update PJI_SYSTEM_PRC_STATUS
1623 set START_DATE = sysdate
1624 where PROCESS_NAME = l_process and
1625 STEP_SEQ = lv_level_seq;
1626
1627 -- rollup project hiearchy
1628
1629 insert into PJI_FP_AGGR_PJP1
1630 (
1631 WORKER_ID,
1632 RECORD_TYPE,
1633 PRG_LEVEL,
1634 LINE_TYPE,
1635 PROJECT_ID,
1636 PROJECT_ORG_ID,
1637 PROJECT_ORGANIZATION_ID,
1638 PROJECT_ELEMENT_ID,
1639 TIME_ID,
1640 PERIOD_TYPE_ID,
1641 CALENDAR_TYPE,
1642 RBS_AGGR_LEVEL,
1643 WBS_ROLLUP_FLAG,
1644 PRG_ROLLUP_FLAG,
1645 CURR_RECORD_TYPE_ID,
1646 CURRENCY_CODE,
1647 RBS_ELEMENT_ID,
1648 RBS_VERSION_ID,
1649 PLAN_VERSION_ID,
1650 PLAN_TYPE_ID,
1651 PLAN_TYPE_CODE,
1652 RAW_COST,
1653 BRDN_COST,
1654 REVENUE,
1655 BILL_RAW_COST,
1656 BILL_BRDN_COST,
1657 BILL_LABOR_RAW_COST,
1658 BILL_LABOR_BRDN_COST,
1659 BILL_LABOR_HRS,
1660 EQUIPMENT_RAW_COST,
1661 EQUIPMENT_BRDN_COST,
1662 CAPITALIZABLE_RAW_COST,
1663 CAPITALIZABLE_BRDN_COST,
1664 LABOR_RAW_COST,
1665 LABOR_BRDN_COST,
1666 LABOR_HRS,
1667 LABOR_REVENUE,
1668 EQUIPMENT_HOURS,
1669 BILLABLE_EQUIPMENT_HOURS,
1670 SUP_INV_COMMITTED_COST,
1671 PO_COMMITTED_COST,
1672 PR_COMMITTED_COST,
1673 OTH_COMMITTED_COST,
1674 ACT_LABOR_HRS,
1675 ACT_EQUIP_HRS,
1676 ACT_LABOR_BRDN_COST,
1677 ACT_EQUIP_BRDN_COST,
1678 ACT_BRDN_COST,
1679 ACT_RAW_COST,
1680 ACT_REVENUE,
1681 ACT_LABOR_RAW_COST,
1682 ACT_EQUIP_RAW_COST,
1683 ETC_LABOR_HRS,
1684 ETC_EQUIP_HRS,
1685 ETC_LABOR_BRDN_COST,
1686 ETC_EQUIP_BRDN_COST,
1687 ETC_BRDN_COST,
1688 ETC_RAW_COST,
1689 ETC_LABOR_RAW_COST,
1690 ETC_EQUIP_RAW_COST,
1691 CUSTOM1,
1692 CUSTOM2,
1693 CUSTOM3,
1694 CUSTOM4,
1695 CUSTOM5,
1696 CUSTOM6,
1697 CUSTOM7,
1698 CUSTOM8,
1699 CUSTOM9,
1700 CUSTOM10,
1701 CUSTOM11,
1702 CUSTOM12,
1703 CUSTOM13,
1704 CUSTOM14,
1705 CUSTOM15
1706 )
1707 select
1708 pjp1_i.WORKER_ID,
1709 pjp1_i.RECORD_TYPE,
1710 pjp1_i.PRG_LEVEL,
1711 pjp1_i.LINE_TYPE,
1712 pjp1_i.PROJECT_ID,
1713 pjp1_i.PROJECT_ORG_ID,
1714 pjp1_i.PROJECT_ORGANIZATION_ID,
1715 pjp1_i.PROJECT_ELEMENT_ID,
1716 pjp1_i.TIME_ID,
1717 pjp1_i.PERIOD_TYPE_ID,
1718 pjp1_i.CALENDAR_TYPE,
1719 pjp1_i.RBS_AGGR_LEVEL,
1720 pjp1_i.WBS_ROLLUP_FLAG,
1721 pjp1_i.PRG_ROLLUP_FLAG,
1722 pjp1_i.CURR_RECORD_TYPE_ID,
1723 pjp1_i.CURRENCY_CODE,
1724 pjp1_i.RBS_ELEMENT_ID,
1725 pjp1_i.RBS_VERSION_ID,
1726 pjp1_i.PLAN_VERSION_ID,
1727 pjp1_i.PLAN_TYPE_ID,
1728 pjp1_i.PLAN_TYPE_CODE,
1729 decode(pjp1_i.RELATIONSHIP_TYPE
1730 || '_' || pjp1_i.WBS_ROLLUP_FLAG
1731 || '_' || pjp1_i.PRG_ROLLUP_FLAG
1732 || '_' || pjp1_i.SUB_STATUS_CODE
1733 || '_' || pjp1_i.SUP_STATUS_CODE,
1734 'LW_N_Y__', to_number(null),
1735 decode(pjp1_i.RELATIONSHIP_TYPE
1736 || '_' || pjp1_i.WBS_ROLLUP_FLAG
1737 || '_' || pjp1_i.PRG_ROLLUP_FLAG
1738 || '_' || pjp1_i.SUP_VER_ENABLED
1739 || '_' || l_fpm_upgrade
1740 || '_' || l_partial_mode,
1741 'LW_N_Y_Y_C_', to_number(null),
1742 pjp1_i.RAW_COST)) RAW_COST,
1743 decode(pjp1_i.RELATIONSHIP_TYPE
1744 || '_' || pjp1_i.WBS_ROLLUP_FLAG
1745 || '_' || pjp1_i.PRG_ROLLUP_FLAG
1746 || '_' || pjp1_i.SUB_STATUS_CODE
1747 || '_' || pjp1_i.SUP_STATUS_CODE,
1748 'LW_N_Y__', to_number(null),
1749 decode(pjp1_i.RELATIONSHIP_TYPE
1750 || '_' || pjp1_i.WBS_ROLLUP_FLAG
1751 || '_' || pjp1_i.PRG_ROLLUP_FLAG
1752 || '_' || pjp1_i.SUP_VER_ENABLED
1753 || '_' || l_fpm_upgrade
1754 || '_' || l_partial_mode,
1755 'LW_N_Y_Y_C_', to_number(null),
1756 pjp1_i.BRDN_COST)) BRDN_COST,
1757 decode(pjp1_i.RELATIONSHIP_TYPE
1758 || '_' || pjp1_i.WBS_ROLLUP_FLAG
1759 || '_' || pjp1_i.PRG_ROLLUP_FLAG
1760 || '_' || pjp1_i.SUB_STATUS_CODE
1761 || '_' || pjp1_i.SUP_STATUS_CODE,
1762 'LW_N_Y__', to_number(null),
1763 decode(pjp1_i.RELATIONSHIP_TYPE
1764 || '_' || pjp1_i.WBS_ROLLUP_FLAG
1765 || '_' || pjp1_i.PRG_ROLLUP_FLAG
1766 || '_' || pjp1_i.SUP_VER_ENABLED
1767 || '_' || l_fpm_upgrade
1768 || '_' || l_partial_mode,
1769 'LW_N_Y_Y_C_', to_number(null),
1770 pjp1_i.REVENUE)) REVENUE,
1771 decode(pjp1_i.RELATIONSHIP_TYPE
1772 || '_' || pjp1_i.WBS_ROLLUP_FLAG
1773 || '_' || pjp1_i.PRG_ROLLUP_FLAG
1774 || '_' || pjp1_i.SUB_STATUS_CODE
1775 || '_' || pjp1_i.SUP_STATUS_CODE,
1776 'LW_N_Y__', to_number(null),
1777 decode(pjp1_i.RELATIONSHIP_TYPE
1778 || '_' || pjp1_i.WBS_ROLLUP_FLAG
1779 || '_' || pjp1_i.PRG_ROLLUP_FLAG
1780 || '_' || pjp1_i.SUP_VER_ENABLED
1781 || '_' || l_fpm_upgrade
1782 || '_' || l_partial_mode,
1783 'LW_N_Y_Y_C_', to_number(null),
1784 pjp1_i.BILL_RAW_COST)) BILL_RAW_COST,
1785 decode(pjp1_i.RELATIONSHIP_TYPE
1786 || '_' || pjp1_i.WBS_ROLLUP_FLAG
1787 || '_' || pjp1_i.PRG_ROLLUP_FLAG
1788 || '_' || pjp1_i.SUB_STATUS_CODE
1789 || '_' || pjp1_i.SUP_STATUS_CODE,
1790 'LW_N_Y__', to_number(null),
1791 decode(pjp1_i.RELATIONSHIP_TYPE
1792 || '_' || pjp1_i.WBS_ROLLUP_FLAG
1793 || '_' || pjp1_i.PRG_ROLLUP_FLAG
1794 || '_' || pjp1_i.SUP_VER_ENABLED
1795 || '_' || l_fpm_upgrade
1796 || '_' || l_partial_mode,
1797 'LW_N_Y_Y_C_', to_number(null),
1798 pjp1_i.BILL_BRDN_COST)) BILL_BRDN_COST,
1799 decode(pjp1_i.RELATIONSHIP_TYPE
1800 || '_' || pjp1_i.WBS_ROLLUP_FLAG
1801 || '_' || pjp1_i.PRG_ROLLUP_FLAG
1802 || '_' || pjp1_i.SUB_STATUS_CODE
1803 || '_' || pjp1_i.SUP_STATUS_CODE,
1804 'LW_N_Y__', to_number(null),
1805 decode(pjp1_i.RELATIONSHIP_TYPE
1806 || '_' || pjp1_i.WBS_ROLLUP_FLAG
1807 || '_' || pjp1_i.PRG_ROLLUP_FLAG
1808 || '_' || pjp1_i.SUP_VER_ENABLED
1809 || '_' || l_fpm_upgrade
1810 || '_' || l_partial_mode,
1811 'LW_N_Y_Y_C_', to_number(null),
1812 pjp1_i.BILL_LABOR_RAW_COST)) BILL_LABOR_RAW_COST,
1813 decode(pjp1_i.RELATIONSHIP_TYPE
1814 || '_' || pjp1_i.WBS_ROLLUP_FLAG
1815 || '_' || pjp1_i.PRG_ROLLUP_FLAG
1816 || '_' || pjp1_i.SUB_STATUS_CODE
1817 || '_' || pjp1_i.SUP_STATUS_CODE,
1818 'LW_N_Y__', to_number(null),
1819 decode(pjp1_i.RELATIONSHIP_TYPE
1820 || '_' || pjp1_i.WBS_ROLLUP_FLAG
1821 || '_' || pjp1_i.PRG_ROLLUP_FLAG
1822 || '_' || pjp1_i.SUP_VER_ENABLED
1823 || '_' || l_fpm_upgrade
1824 || '_' || l_partial_mode,
1825 'LW_N_Y_Y_C_', to_number(null),
1826 pjp1_i.BILL_LABOR_BRDN_COST)) BILL_LABOR_BRDN_COST,
1827 decode(pjp1_i.RELATIONSHIP_TYPE
1828 || '_' || pjp1_i.WBS_ROLLUP_FLAG
1829 || '_' || pjp1_i.PRG_ROLLUP_FLAG
1830 || '_' || pjp1_i.SUB_STATUS_CODE
1831 || '_' || pjp1_i.SUP_STATUS_CODE,
1832 'LW_N_Y__', to_number(null),
1833 decode(pjp1_i.RELATIONSHIP_TYPE
1834 || '_' || pjp1_i.WBS_ROLLUP_FLAG
1835 || '_' || pjp1_i.PRG_ROLLUP_FLAG
1836 || '_' || pjp1_i.SUP_VER_ENABLED
1837 || '_' || l_fpm_upgrade
1838 || '_' || l_partial_mode,
1839 'LW_N_Y_Y_C_', to_number(null),
1840 pjp1_i.BILL_LABOR_HRS)) BILL_LABOR_HRS,
1841 decode(pjp1_i.RELATIONSHIP_TYPE
1842 || '_' || pjp1_i.WBS_ROLLUP_FLAG
1843 || '_' || pjp1_i.PRG_ROLLUP_FLAG
1844 || '_' || pjp1_i.SUB_STATUS_CODE
1845 || '_' || pjp1_i.SUP_STATUS_CODE,
1846 'LW_N_Y__', to_number(null),
1847 decode(pjp1_i.RELATIONSHIP_TYPE
1848 || '_' || pjp1_i.WBS_ROLLUP_FLAG
1849 || '_' || pjp1_i.PRG_ROLLUP_FLAG
1850 || '_' || pjp1_i.SUP_VER_ENABLED
1851 || '_' || l_fpm_upgrade
1852 || '_' || l_partial_mode,
1853 'LW_N_Y_Y_C_', to_number(null),
1854 pjp1_i.EQUIPMENT_RAW_COST)) EQUIPMENT_RAW_COST,
1855 decode(pjp1_i.RELATIONSHIP_TYPE
1856 || '_' || pjp1_i.WBS_ROLLUP_FLAG
1857 || '_' || pjp1_i.PRG_ROLLUP_FLAG
1858 || '_' || pjp1_i.SUB_STATUS_CODE
1859 || '_' || pjp1_i.SUP_STATUS_CODE,
1860 'LW_N_Y__', to_number(null),
1861 decode(pjp1_i.RELATIONSHIP_TYPE
1862 || '_' || pjp1_i.WBS_ROLLUP_FLAG
1863 || '_' || pjp1_i.PRG_ROLLUP_FLAG
1864 || '_' || pjp1_i.SUP_VER_ENABLED
1865 || '_' || l_fpm_upgrade
1866 || '_' || l_partial_mode,
1867 'LW_N_Y_Y_C_', to_number(null),
1868 pjp1_i.EQUIPMENT_BRDN_COST)) EQUIPMENT_BRDN_COST,
1869 decode(pjp1_i.RELATIONSHIP_TYPE
1870 || '_' || pjp1_i.WBS_ROLLUP_FLAG
1871 || '_' || pjp1_i.PRG_ROLLUP_FLAG
1872 || '_' || pjp1_i.SUB_STATUS_CODE
1873 || '_' || pjp1_i.SUP_STATUS_CODE,
1874 'LW_N_Y__', to_number(null),
1875 decode(pjp1_i.RELATIONSHIP_TYPE
1876 || '_' || pjp1_i.WBS_ROLLUP_FLAG
1877 || '_' || pjp1_i.PRG_ROLLUP_FLAG
1878 || '_' || pjp1_i.SUP_VER_ENABLED
1879 || '_' || l_fpm_upgrade
1880 || '_' || l_partial_mode,
1881 'LW_N_Y_Y_C_', to_number(null),
1882 pjp1_i.CAPITALIZABLE_RAW_COST)) CAPITALIZABLE_RAW_COST,
1883 decode(pjp1_i.RELATIONSHIP_TYPE
1884 || '_' || pjp1_i.WBS_ROLLUP_FLAG
1885 || '_' || pjp1_i.PRG_ROLLUP_FLAG
1886 || '_' || pjp1_i.SUB_STATUS_CODE
1887 || '_' || pjp1_i.SUP_STATUS_CODE,
1888 'LW_N_Y__', to_number(null),
1889 decode(pjp1_i.RELATIONSHIP_TYPE
1890 || '_' || pjp1_i.WBS_ROLLUP_FLAG
1891 || '_' || pjp1_i.PRG_ROLLUP_FLAG
1892 || '_' || pjp1_i.SUP_VER_ENABLED
1893 || '_' || l_fpm_upgrade
1894 || '_' || l_partial_mode,
1895 'LW_N_Y_Y_C_', to_number(null),
1896 pjp1_i.CAPITALIZABLE_BRDN_COST)) CAPITALIZABLE_BRDN_COST,
1897 decode(pjp1_i.RELATIONSHIP_TYPE
1898 || '_' || pjp1_i.WBS_ROLLUP_FLAG
1899 || '_' || pjp1_i.PRG_ROLLUP_FLAG
1900 || '_' || pjp1_i.SUB_STATUS_CODE
1901 || '_' || pjp1_i.SUP_STATUS_CODE,
1902 'LW_N_Y__', to_number(null),
1903 decode(pjp1_i.RELATIONSHIP_TYPE
1904 || '_' || pjp1_i.WBS_ROLLUP_FLAG
1905 || '_' || pjp1_i.PRG_ROLLUP_FLAG
1906 || '_' || pjp1_i.SUP_VER_ENABLED
1907 || '_' || l_fpm_upgrade
1908 || '_' || l_partial_mode,
1909 'LW_N_Y_Y_C_', to_number(null),
1910 pjp1_i.LABOR_RAW_COST)) LABOR_RAW_COST,
1911 decode(pjp1_i.RELATIONSHIP_TYPE
1912 || '_' || pjp1_i.WBS_ROLLUP_FLAG
1913 || '_' || pjp1_i.PRG_ROLLUP_FLAG
1914 || '_' || pjp1_i.SUB_STATUS_CODE
1915 || '_' || pjp1_i.SUP_STATUS_CODE,
1916 'LW_N_Y__', to_number(null),
1917 decode(pjp1_i.RELATIONSHIP_TYPE
1918 || '_' || pjp1_i.WBS_ROLLUP_FLAG
1919 || '_' || pjp1_i.PRG_ROLLUP_FLAG
1920 || '_' || pjp1_i.SUP_VER_ENABLED
1921 || '_' || l_fpm_upgrade
1922 || '_' || l_partial_mode,
1923 'LW_N_Y_Y_C_', to_number(null),
1924 pjp1_i.LABOR_BRDN_COST)) LABOR_BRDN_COST,
1925 decode(pjp1_i.RELATIONSHIP_TYPE
1926 || '_' || pjp1_i.WBS_ROLLUP_FLAG
1927 || '_' || pjp1_i.PRG_ROLLUP_FLAG
1928 || '_' || pjp1_i.SUB_STATUS_CODE
1929 || '_' || pjp1_i.SUP_STATUS_CODE,
1930 'LW_N_Y__', to_number(null),
1931 decode(pjp1_i.RELATIONSHIP_TYPE
1932 || '_' || pjp1_i.WBS_ROLLUP_FLAG
1933 || '_' || pjp1_i.PRG_ROLLUP_FLAG
1934 || '_' || pjp1_i.SUP_VER_ENABLED
1935 || '_' || l_fpm_upgrade
1936 || '_' || l_partial_mode,
1937 'LW_N_Y_Y_C_', to_number(null),
1938 pjp1_i.LABOR_HRS)) LABOR_HRS,
1939 decode(pjp1_i.RELATIONSHIP_TYPE
1940 || '_' || pjp1_i.WBS_ROLLUP_FLAG
1941 || '_' || pjp1_i.PRG_ROLLUP_FLAG
1942 || '_' || pjp1_i.SUB_STATUS_CODE
1943 || '_' || pjp1_i.SUP_STATUS_CODE,
1944 'LW_N_Y__', to_number(null),
1945 decode(pjp1_i.RELATIONSHIP_TYPE
1946 || '_' || pjp1_i.WBS_ROLLUP_FLAG
1947 || '_' || pjp1_i.PRG_ROLLUP_FLAG
1948 || '_' || pjp1_i.SUP_VER_ENABLED
1949 || '_' || l_fpm_upgrade
1950 || '_' || l_partial_mode,
1951 'LW_N_Y_Y_C_', to_number(null),
1952 pjp1_i.LABOR_REVENUE)) LABOR_REVENUE,
1953 decode(pjp1_i.RELATIONSHIP_TYPE
1954 || '_' || pjp1_i.WBS_ROLLUP_FLAG
1955 || '_' || pjp1_i.PRG_ROLLUP_FLAG
1956 || '_' || pjp1_i.SUB_STATUS_CODE
1957 || '_' || pjp1_i.SUP_STATUS_CODE,
1958 'LW_N_Y__', to_number(null),
1959 decode(pjp1_i.RELATIONSHIP_TYPE
1960 || '_' || pjp1_i.WBS_ROLLUP_FLAG
1961 || '_' || pjp1_i.PRG_ROLLUP_FLAG
1962 || '_' || pjp1_i.SUP_VER_ENABLED
1963 || '_' || l_fpm_upgrade
1964 || '_' || l_partial_mode,
1965 'LW_N_Y_Y_C_', to_number(null),
1966 pjp1_i.EQUIPMENT_HOURS)) EQUIPMENT_HOURS,
1967 decode(pjp1_i.RELATIONSHIP_TYPE
1968 || '_' || pjp1_i.WBS_ROLLUP_FLAG
1969 || '_' || pjp1_i.PRG_ROLLUP_FLAG
1970 || '_' || pjp1_i.SUB_STATUS_CODE
1971 || '_' || pjp1_i.SUP_STATUS_CODE,
1972 'LW_N_Y__', to_number(null),
1973 decode(pjp1_i.RELATIONSHIP_TYPE
1974 || '_' || pjp1_i.WBS_ROLLUP_FLAG
1975 || '_' || pjp1_i.PRG_ROLLUP_FLAG
1976 || '_' || pjp1_i.SUP_VER_ENABLED
1977 || '_' || l_fpm_upgrade
1978 || '_' || l_partial_mode,
1979 'LW_N_Y_Y_C_', to_number(null),
1980 pjp1_i.BILLABLE_EQUIPMENT_HOURS)) BILLABLE_EQUIPMENT_HOURS,
1981 decode(pjp1_i.RELATIONSHIP_TYPE
1982 || '_' || pjp1_i.WBS_ROLLUP_FLAG
1983 || '_' || pjp1_i.PRG_ROLLUP_FLAG
1984 || '_' || pjp1_i.SUB_STATUS_CODE
1985 || '_' || pjp1_i.SUP_STATUS_CODE,
1986 'LW_N_Y__', to_number(null),
1987 decode(pjp1_i.RELATIONSHIP_TYPE
1988 || '_' || pjp1_i.WBS_ROLLUP_FLAG
1989 || '_' || pjp1_i.PRG_ROLLUP_FLAG
1990 || '_' || pjp1_i.SUP_VER_ENABLED
1991 || '_' || l_fpm_upgrade
1992 || '_' || l_partial_mode,
1993 'LW_N_Y_Y_C_', to_number(null),
1994 pjp1_i.SUP_INV_COMMITTED_COST)) SUP_INV_COMMITTED_COST,
1995 decode(pjp1_i.RELATIONSHIP_TYPE
1996 || '_' || pjp1_i.WBS_ROLLUP_FLAG
1997 || '_' || pjp1_i.PRG_ROLLUP_FLAG
1998 || '_' || pjp1_i.SUB_STATUS_CODE
1999 || '_' || pjp1_i.SUP_STATUS_CODE,
2000 'LW_N_Y__', to_number(null),
2001 decode(pjp1_i.RELATIONSHIP_TYPE
2002 || '_' || pjp1_i.WBS_ROLLUP_FLAG
2003 || '_' || pjp1_i.PRG_ROLLUP_FLAG
2004 || '_' || pjp1_i.SUP_VER_ENABLED
2005 || '_' || l_fpm_upgrade
2006 || '_' || l_partial_mode,
2007 'LW_N_Y_Y_C_', to_number(null),
2008 pjp1_i.PO_COMMITTED_COST)) PO_COMMITTED_COST,
2009 decode(pjp1_i.RELATIONSHIP_TYPE
2010 || '_' || pjp1_i.WBS_ROLLUP_FLAG
2011 || '_' || pjp1_i.PRG_ROLLUP_FLAG
2012 || '_' || pjp1_i.SUB_STATUS_CODE
2013 || '_' || pjp1_i.SUP_STATUS_CODE,
2014 'LW_N_Y__', to_number(null),
2015 decode(pjp1_i.RELATIONSHIP_TYPE
2016 || '_' || pjp1_i.WBS_ROLLUP_FLAG
2017 || '_' || pjp1_i.PRG_ROLLUP_FLAG
2018 || '_' || pjp1_i.SUP_VER_ENABLED
2019 || '_' || l_fpm_upgrade
2020 || '_' || l_partial_mode,
2021 'LW_N_Y_Y_C_', to_number(null),
2022 pjp1_i.PR_COMMITTED_COST)) PR_COMMITTED_COST,
2023 decode(pjp1_i.RELATIONSHIP_TYPE
2024 || '_' || pjp1_i.WBS_ROLLUP_FLAG
2025 || '_' || pjp1_i.PRG_ROLLUP_FLAG
2026 || '_' || pjp1_i.SUB_STATUS_CODE
2027 || '_' || pjp1_i.SUP_STATUS_CODE,
2028 'LW_N_Y__', to_number(null),
2029 decode(pjp1_i.RELATIONSHIP_TYPE
2030 || '_' || pjp1_i.WBS_ROLLUP_FLAG
2031 || '_' || pjp1_i.PRG_ROLLUP_FLAG
2032 || '_' || pjp1_i.SUP_VER_ENABLED
2033 || '_' || l_fpm_upgrade
2034 || '_' || l_partial_mode,
2035 'LW_N_Y_Y_C_', to_number(null),
2036 pjp1_i.OTH_COMMITTED_COST)) OTH_COMMITTED_COST,
2037 decode(pjp1_i.RELATIONSHIP_TYPE
2038 || '_' || pjp1_i.WBS_ROLLUP_FLAG
2039 || '_' || pjp1_i.PRG_ROLLUP_FLAG
2040 || '_' || pjp1_i.SUP_STATUS_CODE
2041 || '_' || l_partial_mode,
2042 'LW_N_Y__', to_number(null),
2043 pjp1_i.ACT_LABOR_HRS) ACT_LABOR_HRS,
2044 decode(pjp1_i.RELATIONSHIP_TYPE
2045 || '_' || pjp1_i.WBS_ROLLUP_FLAG
2046 || '_' || pjp1_i.PRG_ROLLUP_FLAG
2047 || '_' || pjp1_i.SUP_STATUS_CODE
2048 || '_' || l_partial_mode,
2049 'LW_N_Y__', to_number(null),
2050 pjp1_i.ACT_EQUIP_HRS) ACT_EQUIP_HRS,
2051 decode(pjp1_i.RELATIONSHIP_TYPE
2052 || '_' || pjp1_i.WBS_ROLLUP_FLAG
2053 || '_' || pjp1_i.PRG_ROLLUP_FLAG
2054 || '_' || pjp1_i.SUP_STATUS_CODE
2055 || '_' || l_partial_mode,
2056 'LW_N_Y__', to_number(null),
2057 pjp1_i.ACT_LABOR_BRDN_COST) ACT_LABOR_BRDN_COST,
2058 decode(pjp1_i.RELATIONSHIP_TYPE
2059 || '_' || pjp1_i.WBS_ROLLUP_FLAG
2060 || '_' || pjp1_i.PRG_ROLLUP_FLAG
2061 || '_' || pjp1_i.SUP_STATUS_CODE
2062 || '_' || l_partial_mode,
2063 'LW_N_Y__', to_number(null),
2064 pjp1_i.ACT_EQUIP_BRDN_COST) ACT_EQUIP_BRDN_COST,
2065 decode(pjp1_i.RELATIONSHIP_TYPE
2066 || '_' || pjp1_i.WBS_ROLLUP_FLAG
2067 || '_' || pjp1_i.PRG_ROLLUP_FLAG
2068 || '_' || pjp1_i.SUP_STATUS_CODE
2069 || '_' || l_partial_mode,
2070 'LW_N_Y__', to_number(null),
2071 pjp1_i.ACT_BRDN_COST) ACT_BRDN_COST,
2072 decode(pjp1_i.RELATIONSHIP_TYPE
2073 || '_' || pjp1_i.WBS_ROLLUP_FLAG
2074 || '_' || pjp1_i.PRG_ROLLUP_FLAG
2075 || '_' || pjp1_i.SUP_STATUS_CODE
2076 || '_' || l_partial_mode,
2077 'LW_N_Y__', to_number(null),
2078 pjp1_i.ACT_RAW_COST) ACT_RAW_COST,
2079 decode(pjp1_i.RELATIONSHIP_TYPE
2080 || '_' || pjp1_i.WBS_ROLLUP_FLAG
2081 || '_' || pjp1_i.PRG_ROLLUP_FLAG
2082 || '_' || pjp1_i.SUP_STATUS_CODE
2083 || '_' || l_partial_mode,
2084 'LW_N_Y__', to_number(null),
2085 pjp1_i.ACT_REVENUE) ACT_REVENUE,
2086 decode(pjp1_i.RELATIONSHIP_TYPE
2087 || '_' || pjp1_i.WBS_ROLLUP_FLAG
2088 || '_' || pjp1_i.PRG_ROLLUP_FLAG
2089 || '_' || pjp1_i.SUP_STATUS_CODE
2090 || '_' || l_partial_mode,
2091 'LW_N_Y__', to_number(null),
2092 pjp1_i.ACT_LABOR_RAW_COST) ACT_LABOR_RAW_COST,
2093 decode(pjp1_i.RELATIONSHIP_TYPE
2094 || '_' || pjp1_i.WBS_ROLLUP_FLAG
2095 || '_' || pjp1_i.PRG_ROLLUP_FLAG
2096 || '_' || pjp1_i.SUP_STATUS_CODE
2097 || '_' || l_partial_mode,
2098 'LW_N_Y__', to_number(null),
2099 pjp1_i.ACT_EQUIP_RAW_COST) ACT_EQUIP_RAW_COST,
2100 decode(pjp1_i.RELATIONSHIP_TYPE
2101 || '_' || pjp1_i.WBS_ROLLUP_FLAG
2102 || '_' || pjp1_i.PRG_ROLLUP_FLAG
2103 || '_' || pjp1_i.SUP_STATUS_CODE
2104 || '_' || l_partial_mode,
2105 'LW_N_Y__', to_number(null),
2106 pjp1_i.ETC_LABOR_HRS) ETC_LABOR_HRS,
2107 decode(pjp1_i.RELATIONSHIP_TYPE
2108 || '_' || pjp1_i.WBS_ROLLUP_FLAG
2109 || '_' || pjp1_i.PRG_ROLLUP_FLAG
2110 || '_' || pjp1_i.SUP_STATUS_CODE
2111 || '_' || l_partial_mode,
2112 'LW_N_Y__', to_number(null),
2113 pjp1_i.ETC_EQUIP_HRS) ETC_EQUIP_HRS,
2114 decode(pjp1_i.RELATIONSHIP_TYPE
2115 || '_' || pjp1_i.WBS_ROLLUP_FLAG
2116 || '_' || pjp1_i.PRG_ROLLUP_FLAG
2117 || '_' || pjp1_i.SUP_STATUS_CODE
2118 || '_' || l_partial_mode,
2119 'LW_N_Y__', to_number(null),
2120 pjp1_i.ETC_LABOR_BRDN_COST) ETC_LABOR_BRDN_COST,
2121 decode(pjp1_i.RELATIONSHIP_TYPE
2122 || '_' || pjp1_i.WBS_ROLLUP_FLAG
2123 || '_' || pjp1_i.PRG_ROLLUP_FLAG
2124 || '_' || pjp1_i.SUP_STATUS_CODE
2125 || '_' || l_partial_mode,
2126 'LW_N_Y__', to_number(null),
2127 pjp1_i.ETC_EQUIP_BRDN_COST) ETC_EQUIP_BRDN_COST,
2128 decode(pjp1_i.RELATIONSHIP_TYPE
2129 || '_' || pjp1_i.WBS_ROLLUP_FLAG
2130 || '_' || pjp1_i.PRG_ROLLUP_FLAG
2131 || '_' || pjp1_i.SUP_STATUS_CODE
2132 || '_' || l_partial_mode,
2133 'LW_N_Y__', to_number(null),
2134 pjp1_i.ETC_BRDN_COST) ETC_BRDN_COST,
2135 decode(pjp1_i.RELATIONSHIP_TYPE
2136 || '_' || pjp1_i.WBS_ROLLUP_FLAG
2137 || '_' || pjp1_i.PRG_ROLLUP_FLAG
2138 || '_' || pjp1_i.SUP_STATUS_CODE
2139 || '_' || l_partial_mode,
2140 'LW_N_Y__', to_number(null),
2141 pjp1_i.ETC_RAW_COST) ETC_RAW_COST,
2142 decode(pjp1_i.RELATIONSHIP_TYPE
2143 || '_' || pjp1_i.WBS_ROLLUP_FLAG
2144 || '_' || pjp1_i.PRG_ROLLUP_FLAG
2145 || '_' || pjp1_i.SUP_STATUS_CODE
2146 || '_' || l_partial_mode,
2147 'LW_N_Y__', to_number(null),
2148 pjp1_i.ETC_LABOR_RAW_COST) ETC_LABOR_RAW_COST,
2149 decode(pjp1_i.RELATIONSHIP_TYPE
2150 || '_' || pjp1_i.WBS_ROLLUP_FLAG
2151 || '_' || pjp1_i.PRG_ROLLUP_FLAG
2152 || '_' || pjp1_i.SUP_STATUS_CODE
2153 || '_' || l_partial_mode,
2154 'LW_N_Y__', to_number(null),
2155 pjp1_i.ETC_EQUIP_RAW_COST) ETC_EQUIP_RAW_COST,
2156 pjp1_i.CUSTOM1,
2157 pjp1_i.CUSTOM2,
2158 pjp1_i.CUSTOM3,
2159 pjp1_i.CUSTOM4,
2160 pjp1_i.CUSTOM5,
2161 pjp1_i.CUSTOM6,
2162 pjp1_i.CUSTOM7,
2163 pjp1_i.CUSTOM8,
2164 pjp1_i.CUSTOM9,
2165 pjp1_i.CUSTOM10,
2166 pjp1_i.CUSTOM11,
2167 pjp1_i.CUSTOM12,
2168 pjp1_i.CUSTOM13,
2169 pjp1_i.CUSTOM14,
2170 pjp1_i.CUSTOM15
2171 from
2172 (
2173 select
2174 decode(nvl(prg.SUB_EMT_ID, -1), nvl(prg.SUB_ROLLUP_ID, -1),
2175 pjp.INSERT_FLAG, 'Y') INSERT_FLAG,
2176 pjp.RELATIONSHIP_TYPE,
2177 decode(nvl(prg.SUB_EMT_ID, -1), nvl(prg.SUB_ROLLUP_ID, -1),
2178 null, sub_ver.STATUS_CODE) SUB_STATUS_CODE,
2179 decode(nvl(prg.SUB_EMT_ID, -1), nvl(prg.SUB_ROLLUP_ID, -1),
2180 null, sup_ver.STATUS_CODE) SUP_STATUS_CODE,
2181 decode(nvl(prg.SUB_EMT_ID, -1), nvl(prg.SUB_ROLLUP_ID, -1),
2182 null, sup_wpa.WP_ENABLE_VERSION_FLAG)SUP_VER_ENABLED,
2183 decode(nvl(prg.SUB_EMT_ID, -1), nvl(prg.SUB_ROLLUP_ID, -1),
2184 null, decode(pjp.PLAN_VERSION_ID,
2185 -1, prg.SUP_ID,
2186 -3, prg.SUP_ID,
2187 -4, prg.SUP_ID,
2188 null)) SUP_ID,
2189 decode(nvl(prg.SUB_EMT_ID, -1), nvl(prg.SUB_ROLLUP_ID, -1),
2190 null, decode(pjp.PLAN_VERSION_ID,
2191 -1, prg.SUP_EMT_ID,
2192 -3, prg.SUP_EMT_ID,
2193 -4, prg.SUP_EMT_ID,
2194 null)) SUP_EMT_ID,
2195 decode(nvl(prg.SUB_EMT_ID, -1), nvl(prg.SUB_ROLLUP_ID, -1),
2196 null, decode(pjp.PLAN_VERSION_ID,
2197 -1, prg.WP_FLAG,
2198 -3, prg.WP_FLAG,
2199 -4, prg.WP_FLAG,
2200 null)) SUP_WP_FLAG,
2201 p_worker_id WORKER_ID,
2202 'W' RECORD_TYPE,
2203 decode(nvl(prg.SUB_EMT_ID, -1), nvl(prg.SUB_ROLLUP_ID, -1),
2204 lv_level, prg.SUP_LEVEL) PRG_LEVEL,
2205 pjp.LINE_TYPE,
2206 decode(nvl(prg.SUB_EMT_ID, -1), nvl(prg.SUB_ROLLUP_ID, -1),
2207 pjp.PROJECT_ID, prg.SUP_PROJECT_ID) PROJECT_ID,
2208 decode(nvl(prg.SUB_EMT_ID, -1), nvl(prg.SUB_ROLLUP_ID, -1),
2209 pjp.PROJECT_ORG_ID,
2210 prg.SUP_PROJECT_ORG_ID) PROJECT_ORG_ID,
2211 decode(nvl(prg.SUB_EMT_ID, -1), nvl(prg.SUB_ROLLUP_ID, -1),
2212 pjp.PROJECT_ORGANIZATION_ID,
2213 prg.SUP_PROJECT_ORGANIZATION_ID) PROJECT_ORGANIZATION_ID,
2214 decode(nvl(prg.SUB_EMT_ID, -1), nvl(prg.SUB_ROLLUP_ID, -1),
2215 pjp.PROJECT_ELEMENT_ID,
2216 prg.SUB_ROLLUP_ID) PROJECT_ELEMENT_ID,
2217 pjp.TIME_ID,
2218 pjp.PERIOD_TYPE_ID,
2219 pjp.CALENDAR_TYPE,
2220 pjp.RBS_AGGR_LEVEL,
2221 decode(nvl(prg.SUB_EMT_ID, -1), nvl(prg.SUB_ROLLUP_ID, -1),
2222 pjp.WBS_ROLLUP_FLAG, 'N') WBS_ROLLUP_FLAG,
2223 decode(nvl(prg.SUB_EMT_ID, -1), nvl(prg.SUB_ROLLUP_ID, -1),
2224 pjp.PRG_ROLLUP_FLAG, 'Y') PRG_ROLLUP_FLAG,
2225 pjp.CURR_RECORD_TYPE_ID,
2226 pjp.CURRENCY_CODE,
2227 pjp.RBS_ELEMENT_ID,
2228 pjp.RBS_VERSION_ID,
2229 decode(nvl(prg.SUB_EMT_ID, -1), nvl(prg.SUB_ROLLUP_ID, -1),
2230 pjp.PLAN_VERSION_ID,
2231 decode(pjp.PLAN_VERSION_ID,
2232 -1, pjp.PLAN_VERSION_ID,
2233 -2, pjp.PLAN_VERSION_ID,
2234 -3, pjp.PLAN_VERSION_ID,
2235 -4, pjp.PLAN_VERSION_ID,
2236 wbs_hdr.PLAN_VERSION_ID)) PLAN_VERSION_ID,
2237 decode(nvl(prg.SUB_EMT_ID, -1), nvl(prg.SUB_ROLLUP_ID, -1),
2238 pjp.PLAN_TYPE_ID,
2239 decode(pjp.PLAN_VERSION_ID,
2240 -1, pjp.PLAN_TYPE_ID,
2241 -2, pjp.PLAN_TYPE_ID,
2242 -3, pjp.PLAN_TYPE_ID,
2243 -4, pjp.PLAN_TYPE_ID,
2244 wbs_hdr.PLAN_TYPE_ID)) PLAN_TYPE_ID,
2245 pjp.PLAN_TYPE_CODE,
2246 sum(pjp.RAW_COST) RAW_COST,
2247 sum(pjp.BRDN_COST) BRDN_COST,
2248 sum(pjp.REVENUE) REVENUE,
2249 sum(pjp.BILL_RAW_COST) BILL_RAW_COST,
2250 sum(pjp.BILL_BRDN_COST) BILL_BRDN_COST,
2251 sum(pjp.BILL_LABOR_RAW_COST) BILL_LABOR_RAW_COST,
2252 sum(pjp.BILL_LABOR_BRDN_COST) BILL_LABOR_BRDN_COST,
2253 sum(pjp.BILL_LABOR_HRS) BILL_LABOR_HRS,
2254 sum(pjp.EQUIPMENT_RAW_COST) EQUIPMENT_RAW_COST,
2255 sum(pjp.EQUIPMENT_BRDN_COST) EQUIPMENT_BRDN_COST,
2256 sum(pjp.CAPITALIZABLE_RAW_COST) CAPITALIZABLE_RAW_COST,
2257 sum(pjp.CAPITALIZABLE_BRDN_COST) CAPITALIZABLE_BRDN_COST,
2258 sum(pjp.LABOR_RAW_COST) LABOR_RAW_COST,
2259 sum(pjp.LABOR_BRDN_COST) LABOR_BRDN_COST,
2260 sum(pjp.LABOR_HRS) LABOR_HRS,
2261 sum(pjp.LABOR_REVENUE) LABOR_REVENUE,
2262 sum(pjp.EQUIPMENT_HOURS) EQUIPMENT_HOURS,
2263 sum(pjp.BILLABLE_EQUIPMENT_HOURS) BILLABLE_EQUIPMENT_HOURS,
2264 sum(pjp.SUP_INV_COMMITTED_COST) SUP_INV_COMMITTED_COST,
2265 sum(pjp.PO_COMMITTED_COST) PO_COMMITTED_COST,
2266 sum(pjp.PR_COMMITTED_COST) PR_COMMITTED_COST,
2267 sum(pjp.OTH_COMMITTED_COST) OTH_COMMITTED_COST,
2268 sum(pjp.ACT_LABOR_HRS) ACT_LABOR_HRS,
2269 sum(pjp.ACT_EQUIP_HRS) ACT_EQUIP_HRS,
2270 sum(pjp.ACT_LABOR_BRDN_COST) ACT_LABOR_BRDN_COST,
2271 sum(pjp.ACT_EQUIP_BRDN_COST) ACT_EQUIP_BRDN_COST,
2272 sum(pjp.ACT_BRDN_COST) ACT_BRDN_COST,
2273 sum(pjp.ACT_RAW_COST) ACT_RAW_COST,
2274 sum(pjp.ACT_REVENUE) ACT_REVENUE,
2275 sum(pjp.ACT_LABOR_RAW_COST) ACT_LABOR_RAW_COST,
2276 sum(pjp.ACT_EQUIP_RAW_COST) ACT_EQUIP_RAW_COST,
2277 sum(pjp.ETC_LABOR_HRS) ETC_LABOR_HRS,
2278 sum(pjp.ETC_EQUIP_HRS) ETC_EQUIP_HRS,
2279 sum(pjp.ETC_LABOR_BRDN_COST) ETC_LABOR_BRDN_COST,
2280 sum(pjp.ETC_EQUIP_BRDN_COST) ETC_EQUIP_BRDN_COST,
2281 sum(pjp.ETC_BRDN_COST) ETC_BRDN_COST,
2282 sum(pjp.ETC_RAW_COST) ETC_RAW_COST,
2283 sum(pjp.ETC_LABOR_RAW_COST) ETC_LABOR_RAW_COST,
2284 sum(pjp.ETC_EQUIP_RAW_COST) ETC_EQUIP_RAW_COST,
2285 sum(pjp.CUSTOM1) CUSTOM1,
2286 sum(pjp.CUSTOM2) CUSTOM2,
2287 sum(pjp.CUSTOM3) CUSTOM3,
2288 sum(pjp.CUSTOM4) CUSTOM4,
2289 sum(pjp.CUSTOM5) CUSTOM5,
2290 sum(pjp.CUSTOM6) CUSTOM6,
2291 sum(pjp.CUSTOM7) CUSTOM7,
2292 sum(pjp.CUSTOM8) CUSTOM8,
2293 sum(pjp.CUSTOM9) CUSTOM9,
2294 sum(pjp.CUSTOM10) CUSTOM10,
2295 sum(pjp.CUSTOM11) CUSTOM11,
2296 sum(pjp.CUSTOM12) CUSTOM12,
2297 sum(pjp.CUSTOM13) CUSTOM13,
2298 sum(pjp.CUSTOM14) CUSTOM14,
2299 sum(pjp.CUSTOM15) CUSTOM15
2300 from
2301 (
2302 select /*+ leading(prg, wbs, top_slice, pjp1, wbs_hdr ) use_nl(prg, wbs, top_slice, pjp1, wbs_hdr) index(pjp1 pji_fp_aggr_pjp1_n4) index(wbs pa_xbs_denorm_n5)
2303 index(wbs_hdr PJI_PJP_WBS_HEADER_N2) */ -- KPN change bug#12731239
2304 -- get incremental task level amounts from source and
2305 -- program rollup amounts from interim
2306 to_char(null) LINE_TYPE,
2307 wbs_hdr.WBS_VERSION_ID,
2308 decode(wbs_hdr.WP_FLAG, 'Y', 'LW', 'LF') RELATIONSHIP_TYPE,
2309 decode(wbs_hdr.WP_FLAG
2310 || '_' || to_char(sign(pjp1.PLAN_VERSION_ID))
2311 || '_' || nvl(fin_plan.INVERT_ID, 'PRJ'),
2312 'N_1_PRJ', 'N',
2313 'N_-1_PRG', 'N',
2314 decode(top_slice.INVERT_ID,
2315 'PRJ', 'Y',
2316 decode(wbs.SUB_LEVEL,
2317 1, 'Y', 'N'))) PUSHUP_FLAG,
2318 decode(pjp1.RBS_AGGR_LEVEL,
2319 'L', 'N',
2320 decode(wbs_hdr.WP_FLAG
2321 || '_' || to_char(sign(pjp1.PLAN_VERSION_ID))
2322 || '_' || fin_plan.INVERT_ID,
2323 'N_1_PRG', decode(top_slice.INVERT_ID,
2324 'PRJ', 'Y',
2325 decode(wbs.SUB_LEVEL,
2326 1, 'Y', 'N')),
2327 'N_-1_PRG', 'N',
2328 decode(wbs_hdr.WP_FLAG
2329 || '_' || fin_plan.INVERT_ID
2330 || '_' || fin_plan.CB
2331 || '_' || fin_plan.CO
2332 || '_'
2333 || to_char(fin_plan.PLAN_VERSION_ID),
2334 'N_PRJ_Y_Y_-4', 'N',
2335 'Y'))
2336 ) INSERT_FLAG,
2337 pjp1.PROJECT_ID,
2338 pjp1.PROJECT_ORG_ID,
2339 pjp1.PROJECT_ORGANIZATION_ID,
2340 decode(top_slice.INVERT_ID,
2341 'PRJ', prg.SUP_EMT_ID,
2342 decode(wbs.SUB_LEVEL,
2343 1, prg.SUP_EMT_ID,
2344 wbs.SUP_EMT_ID)) PROJECT_ELEMENT_ID,
2345 pjp1.TIME_ID,
2346 pjp1.PERIOD_TYPE_ID,
2347 pjp1.CALENDAR_TYPE,
2348 pjp1.RBS_AGGR_LEVEL,
2349 'Y' WBS_ROLLUP_FLAG,
2350 pjp1.PRG_ROLLUP_FLAG,
2351 pjp1.CURR_RECORD_TYPE_ID,
2352 pjp1.CURRENCY_CODE,
2353 pjp1.RBS_ELEMENT_ID,
2354 pjp1.RBS_VERSION_ID,
2355 decode(wbs_hdr.WP_FLAG || '_' || fin_plan.INVERT_ID,
2356 'N_PRG', fin_plan.PLAN_VERSION_ID,
2357 pjp1.PLAN_VERSION_ID) PLAN_VERSION_ID,
2358 pjp1.PLAN_TYPE_ID,
2359 pjp1.PLAN_TYPE_CODE,
2360 pjp1.RAW_COST,
2361 pjp1.BRDN_COST,
2362 pjp1.REVENUE,
2363 pjp1.BILL_RAW_COST,
2364 pjp1.BILL_BRDN_COST,
2365 pjp1.BILL_LABOR_RAW_COST,
2366 pjp1.BILL_LABOR_BRDN_COST,
2367 pjp1.BILL_LABOR_HRS,
2368 pjp1.EQUIPMENT_RAW_COST,
2369 pjp1.EQUIPMENT_BRDN_COST,
2370 pjp1.CAPITALIZABLE_RAW_COST,
2371 pjp1.CAPITALIZABLE_BRDN_COST,
2372 pjp1.LABOR_RAW_COST,
2373 pjp1.LABOR_BRDN_COST,
2374 pjp1.LABOR_HRS,
2375 pjp1.LABOR_REVENUE,
2376 pjp1.EQUIPMENT_HOURS,
2377 pjp1.BILLABLE_EQUIPMENT_HOURS,
2378 pjp1.SUP_INV_COMMITTED_COST,
2379 pjp1.PO_COMMITTED_COST,
2380 pjp1.PR_COMMITTED_COST,
2381 pjp1.OTH_COMMITTED_COST,
2382 pjp1.ACT_LABOR_HRS,
2383 pjp1.ACT_EQUIP_HRS,
2384 pjp1.ACT_LABOR_BRDN_COST,
2385 pjp1.ACT_EQUIP_BRDN_COST,
2386 pjp1.ACT_BRDN_COST,
2387 pjp1.ACT_RAW_COST,
2388 pjp1.ACT_REVENUE,
2389 pjp1.ACT_LABOR_RAW_COST,
2390 pjp1.ACT_EQUIP_RAW_COST,
2391 pjp1.ETC_LABOR_HRS,
2392 pjp1.ETC_EQUIP_HRS,
2393 pjp1.ETC_LABOR_BRDN_COST,
2394 pjp1.ETC_EQUIP_BRDN_COST,
2395 pjp1.ETC_BRDN_COST,
2396 pjp1.ETC_RAW_COST,
2397 pjp1.ETC_LABOR_RAW_COST,
2398 pjp1.ETC_EQUIP_RAW_COST,
2399 pjp1.CUSTOM1,
2400 pjp1.CUSTOM2,
2401 pjp1.CUSTOM3,
2402 pjp1.CUSTOM4,
2403 pjp1.CUSTOM5,
2404 pjp1.CUSTOM6,
2405 pjp1.CUSTOM7,
2406 pjp1.CUSTOM8,
2407 pjp1.CUSTOM9,
2408 pjp1.CUSTOM10,
2409 pjp1.CUSTOM11,
2410 pjp1.CUSTOM12,
2411 pjp1.CUSTOM13,
2412 pjp1.CUSTOM14,
2413 pjp1.CUSTOM15
2414 from
2415 PJI_FP_AGGR_PJP1 pjp1,
2416 PJI_PJP_WBS_HEADER wbs_hdr,
2417 PA_XBS_DENORM wbs,
2418 PJI_XBS_DENORM prg,
2419 (
2420 select 'Y' CB, 'N' CO, -3 PLAN_VERSION_ID, 'PRG' INVERT_ID
2421 from DUAL union all
2422 select 'Y' CB, 'N' CO, -3 PLAN_VERSION_ID, 'PRJ' INVERT_ID
2423 from DUAL union all
2424 select 'N' CB, 'Y' CO, -4 PLAN_VERSION_ID, 'PRG' INVERT_ID
2425 from DUAL union all
2426 select 'N' CB, 'Y' CO, -4 PLAN_VERSION_ID, 'PRJ' INVERT_ID
2427 from DUAL union all
2428 select 'Y' CB, 'Y' CO, -3 PLAN_VERSION_ID, 'PRG' INVERT_ID
2429 from DUAL union all
2430 select 'Y' CB, 'Y' CO, -3 PLAN_VERSION_ID, 'PRJ' INVERT_ID
2431 from DUAL union all
2432 select 'Y' CB, 'Y' CO, -4 PLAN_VERSION_ID, 'PRG' INVERT_ID
2433 from DUAL union all
2434 select 'Y' CB, 'Y' CO, -4 PLAN_VERSION_ID, 'PRJ' INVERT_ID
2435 from DUAL
2436 ) fin_plan,
2437 (
2438 select 1 WBS_SUP_LEVEL,
2439 1 WBS_SUB_LEVEL,
2440 'PRJ' INVERT_ID
2441 from DUAL
2442 union all
2443 select 1 WBS_SUP_LEVEL,
2444 1 WBS_SUB_LEVEL,
2445 'WBS' INVERT_ID
2446 from DUAL
2447 ) top_slice
2448 where
2449 prg.STRUCT_TYPE = 'PRG' and
2450 prg.SUP_LEVEL = lv_level and
2451 prg.SUB_LEVEL = lv_level and
2452 wbs.STRUCT_TYPE = 'WBS' and
2453 ((wbs.SUP_LEVEL = 1 and
2454 wbs.SUB_LEVEL = 1) or
2455 (wbs.SUP_LEVEL <> wbs.SUB_LEVEL)) and
2456 wbs.STRUCT_VERSION_ID = prg.SUP_ID and
2457 wbs.SUP_PROJECT_ID = prg.SUP_PROJECT_ID and
2458 pjp1.WORKER_ID = p_worker_id and
2459 pjp1.PRG_LEVEL in (0, lv_level) and
2460 pjp1.RBS_AGGR_LEVEL in ('T', 'L') and
2461 pjp1.WBS_ROLLUP_FLAG = 'N' and
2462 pjp1.PRG_ROLLUP_FLAG in ('Y', 'N') and
2463 pjp1.PROJECT_ID = wbs_hdr.PROJECT_ID and
2464 pjp1.PLAN_VERSION_ID = wbs_hdr.PLAN_VERSION_ID and
2465 pjp1.PLAN_TYPE_CODE = wbs_hdr.PLAN_TYPE_CODE and
2466 decode(pjp1.PLAN_VERSION_ID,
2467 -3, pjp1.PLAN_TYPE_ID,
2468 -4, pjp1.PLAN_TYPE_ID,
2469 -1) = decode(pjp1.PLAN_VERSION_ID,
2470 -3, wbs_hdr.PLAN_TYPE_ID,
2471 -4, wbs_hdr.PLAN_TYPE_ID,
2472 -1) and
2473 wbs.STRUCT_VERSION_ID = wbs_hdr.WBS_VERSION_ID and
2474 pjp1.PROJECT_ELEMENT_ID = wbs.SUB_EMT_ID and
2475 wbs_hdr.CB_FLAG = fin_plan.CB (+) and
2476 wbs_hdr.CO_FLAG = fin_plan.CO (+) and
2477 wbs.SUP_LEVEL = top_slice.WBS_SUP_LEVEL (+) and
2478 wbs.SUB_LEVEL <> top_slice.WBS_SUB_LEVEL (+)
2479 union all
2480 select /*+ leading(prg, pjp1, wbs_hdr) use_nl(prg pjp1 wbs_hdr) index(pjp1 pji_fp_aggr_pjp1_n4)*/ -- KPN change bug#12731239
2481 -- get incremental project level amounts from source
2482 to_char(null) LINE_TYPE,
2483 wbs_hdr.WBS_VERSION_ID,
2484 decode(wbs_hdr.WP_FLAG, 'Y', 'LW', 'LF') RELATIONSHIP_TYPE,
2485 'Y' PUSHUP_FLAG,
2486 decode(pjp1.RBS_AGGR_LEVEL,
2487 'L', 'N',
2488 decode(fin_plan.PLAN_VERSION_ID,
2489 null, 'N', 'Y')) INSERT_FLAG,
2490 pjp1.PROJECT_ID,
2491 pjp1.PROJECT_ORG_ID,
2492 pjp1.PROJECT_ORGANIZATION_ID,
2493 pjp1.PROJECT_ELEMENT_ID,
2494 pjp1.TIME_ID,
2495 pjp1.PERIOD_TYPE_ID,
2496 pjp1.CALENDAR_TYPE,
2497 pjp1.RBS_AGGR_LEVEL,
2498 'Y' WBS_ROLLUP_FLAG,
2499 pjp1.PRG_ROLLUP_FLAG,
2500 pjp1.CURR_RECORD_TYPE_ID,
2501 pjp1.CURRENCY_CODE,
2502 pjp1.RBS_ELEMENT_ID,
2503 pjp1.RBS_VERSION_ID,
2504 decode(wbs_hdr.WP_FLAG,
2505 'N', decode(pjp1.PLAN_VERSION_ID,
2506 -1, pjp1.PLAN_VERSION_ID,
2507 -2, pjp1.PLAN_VERSION_ID,
2508 -3, pjp1.PLAN_VERSION_ID, -- won't exist
2509 -4, pjp1.PLAN_VERSION_ID, -- won't exist
2510 fin_plan.PLAN_VERSION_ID),
2511 pjp1.PLAN_VERSION_ID) PLAN_VERSION_ID,
2512 pjp1.PLAN_TYPE_ID,
2513 pjp1.PLAN_TYPE_CODE,
2514 pjp1.RAW_COST,
2515 pjp1.BRDN_COST,
2516 pjp1.REVENUE,
2517 pjp1.BILL_RAW_COST,
2518 pjp1.BILL_BRDN_COST,
2519 pjp1.BILL_LABOR_RAW_COST,
2520 pjp1.BILL_LABOR_BRDN_COST,
2521 pjp1.BILL_LABOR_HRS,
2522 pjp1.EQUIPMENT_RAW_COST,
2523 pjp1.EQUIPMENT_BRDN_COST,
2524 pjp1.CAPITALIZABLE_RAW_COST,
2525 pjp1.CAPITALIZABLE_BRDN_COST,
2526 pjp1.LABOR_RAW_COST,
2527 pjp1.LABOR_BRDN_COST,
2528 pjp1.LABOR_HRS,
2529 pjp1.LABOR_REVENUE,
2530 pjp1.EQUIPMENT_HOURS,
2531 pjp1.BILLABLE_EQUIPMENT_HOURS,
2532 pjp1.SUP_INV_COMMITTED_COST,
2533 pjp1.PO_COMMITTED_COST,
2534 pjp1.PR_COMMITTED_COST,
2535 pjp1.OTH_COMMITTED_COST,
2536 pjp1.ACT_LABOR_HRS,
2537 pjp1.ACT_EQUIP_HRS,
2538 pjp1.ACT_LABOR_BRDN_COST,
2539 pjp1.ACT_EQUIP_BRDN_COST,
2540 pjp1.ACT_BRDN_COST,
2541 pjp1.ACT_RAW_COST,
2542 pjp1.ACT_REVENUE,
2543 pjp1.ACT_LABOR_RAW_COST,
2544 pjp1.ACT_EQUIP_RAW_COST,
2545 pjp1.ETC_LABOR_HRS,
2546 pjp1.ETC_EQUIP_HRS,
2547 pjp1.ETC_LABOR_BRDN_COST,
2548 pjp1.ETC_EQUIP_BRDN_COST,
2549 pjp1.ETC_BRDN_COST,
2550 pjp1.ETC_RAW_COST,
2551 pjp1.ETC_LABOR_RAW_COST,
2552 pjp1.ETC_EQUIP_RAW_COST,
2553 pjp1.CUSTOM1,
2554 pjp1.CUSTOM2,
2555 pjp1.CUSTOM3,
2556 pjp1.CUSTOM4,
2557 pjp1.CUSTOM5,
2558 pjp1.CUSTOM6,
2559 pjp1.CUSTOM7,
2560 pjp1.CUSTOM8,
2561 pjp1.CUSTOM9,
2562 pjp1.CUSTOM10,
2563 pjp1.CUSTOM11,
2564 pjp1.CUSTOM12,
2565 pjp1.CUSTOM13,
2566 pjp1.CUSTOM14,
2567 pjp1.CUSTOM15
2568 from
2569 PJI_FP_AGGR_PJP1 pjp1,
2570 PJI_PJP_WBS_HEADER wbs_hdr,
2571 PJI_XBS_DENORM prg,
2572 (
2573 select 'Y' CB_FLAG,
2574 'N' CO_FLAG,
2575 -3 PLAN_VERSION_ID
2576 from DUAL union all
2577 select 'N' CB_FLAG,
2578 'Y' CO_FLAG,
2579 -4 PLAN_VERSION_ID
2580 from DUAL union all
2581 select 'Y' CB_FLAG,
2582 'Y' CO_FLAG,
2583 -3 PLAN_VERSION_ID
2584 from DUAL union all
2585 select 'Y' CB_FLAG,
2586 'Y' CO_FLAG,
2587 -4 PLAN_VERSION_ID
2588 from DUAL
2589 ) fin_plan
2590 where
2591 prg.STRUCT_TYPE = 'PRG' and
2592 prg.SUP_LEVEL = lv_level and
2593 prg.SUB_LEVEL = lv_level and
2594 pjp1.WORKER_ID = p_worker_id and
2595 pjp1.PROJECT_ID = prg.SUP_PROJECT_ID and
2596 pjp1.PROJECT_ELEMENT_ID = prg.SUP_EMT_ID and
2597 pjp1.PRG_LEVEL = 0 and
2598 pjp1.RBS_AGGR_LEVEL in ('T', 'L') and
2599 pjp1.WBS_ROLLUP_FLAG = 'N' and
2600 pjp1.PRG_ROLLUP_FLAG = 'N' and
2601 wbs_hdr.PROJECT_ID = pjp1.PROJECT_ID and
2602 wbs_hdr.PLAN_VERSION_ID = pjp1.PLAN_VERSION_ID and
2603 wbs_hdr.PLAN_TYPE_CODE = pjp1.PLAN_TYPE_CODE and
2604 decode(wbs_hdr.WP_FLAG,
2605 'N', decode(pjp1.PLAN_VERSION_ID,
2606 -1, 'Y',
2607 -2, 'Y',
2608 -3, 'Y', -- won't exist
2609 -4, 'Y', -- won't exist
2610 decode(wbs_hdr.CB_FLAG || '_' ||
2611 wbs_hdr.CO_FLAG,
2612 'Y_Y', 'Y',
2613 'N_Y', 'Y',
2614 'Y_N', 'Y',
2615 'N')),
2616 'Y') = 'Y' and
2617 wbs_hdr.WBS_VERSION_ID = prg.SUP_ID and
2618 wbs_hdr.CB_FLAG = fin_plan.CB_FLAG (+) and
2619 wbs_hdr.CO_FLAG = fin_plan.CO_FLAG (+)
2620 union all
2621 select /*+ ordered
2622 index(fpr PJI_FP_XBS_ACCUM_F_N1) */
2623 -- get delta task level amounts from Reporting Lines
2624 to_char(null) LINE_TYPE,
2625 wbs_hdr.WBS_VERSION_ID,
2626 decode(wbs_hdr.WP_FLAG, 'Y', 'LW', 'LF') RELATIONSHIP_TYPE,
2627 decode(log.EVENT_TYPE,
2628 'WBS_CHANGE', 'Y',
2629 'WBS_PUBLISH', 'N') PUSHUP_FLAG,
2630 decode(wbs_hdr.WP_FLAG || '_' || fin_plan.INVERT_ID,
2631 'N_PRG', decode(top_slice.INVERT_ID,
2632 'PRJ', 'Y',
2633 decode(wbs.SUB_LEVEL,
2634 1, 'Y', 'N')),
2635 decode(wbs_hdr.WP_FLAG
2636 || '_' || fin_plan.INVERT_ID
2637 || '_' || fin_plan.CB
2638 || '_' || fin_plan.CO
2639 || '_' || to_char(fin_plan.PLAN_VERSION_ID),
2640 'N_PRJ_Y_Y_-4', 'N',
2641 'Y')) INSERT_FLAG,
2642 fpr.PROJECT_ID,
2643 fpr.PROJECT_ORG_ID,
2644 fpr.PROJECT_ORGANIZATION_ID,
2645 decode(top_slice.INVERT_ID,
2646 'PRJ', prg.SUP_EMT_ID,
2647 decode(wbs.SUB_LEVEL,
2648 1, prg.SUP_EMT_ID,
2649 wbs.SUP_EMT_ID)) PROJECT_ELEMENT_ID,
2650 fpr.TIME_ID,
2651 fpr.PERIOD_TYPE_ID,
2652 fpr.CALENDAR_TYPE,
2653 fpr.RBS_AGGR_LEVEL,
2654 'Y' WBS_ROLLUP_FLAG,
2655 fpr.PRG_ROLLUP_FLAG,
2656 fpr.CURR_RECORD_TYPE_ID,
2657 fpr.CURRENCY_CODE,
2658 fpr.RBS_ELEMENT_ID,
2659 fpr.RBS_VERSION_ID,
2660 decode(wbs_hdr.WP_FLAG || '_' || fin_plan.INVERT_ID,
2661 'N_PRG', fin_plan.PLAN_VERSION_ID,
2662 fpr.PLAN_VERSION_ID) PLAN_VERSION_ID,
2663 fpr.PLAN_TYPE_ID,
2664 fpr.PLAN_TYPE_CODE,
2665 wbs.SIGN * fpr.RAW_COST RAW_COST,
2666 wbs.SIGN * fpr.BRDN_COST BRDN_COST,
2667 wbs.SIGN * fpr.REVENUE REVENUE,
2668 wbs.SIGN * fpr.BILL_RAW_COST BILL_RAW_COST,
2669 wbs.SIGN * fpr.BILL_BRDN_COST BILL_BRDN_COST,
2670 wbs.SIGN * fpr.BILL_LABOR_RAW_COST BILL_LABOR_RAW_COST,
2671 wbs.SIGN * fpr.BILL_LABOR_BRDN_COST BILL_LABOR_BRDN_COST,
2672 wbs.SIGN * fpr.BILL_LABOR_HRS BILL_LABOR_HRS,
2673 wbs.SIGN * fpr.EQUIPMENT_RAW_COST EQUIPMENT_RAW_COST,
2674 wbs.SIGN * fpr.EQUIPMENT_BRDN_COST EQUIPMENT_BRDN_COST,
2675 wbs.SIGN * fpr.CAPITALIZABLE_RAW_COST CAPITALIZABLE_RAW_COST,
2676 wbs.SIGN * fpr.CAPITALIZABLE_BRDN_COST CAPITALIZABLE_BRDN_COST,
2677 wbs.SIGN * fpr.LABOR_RAW_COST LABOR_RAW_COST,
2678 wbs.SIGN * fpr.LABOR_BRDN_COST LABOR_BRDN_COST,
2679 wbs.SIGN * fpr.LABOR_HRS LABOR_HRS,
2680 wbs.SIGN * fpr.LABOR_REVENUE LABOR_REVENUE,
2681 wbs.SIGN * fpr.EQUIPMENT_HOURS EQUIPMENT_HOURS,
2682 wbs.SIGN * fpr.BILLABLE_EQUIPMENT_HOURS BILLABLE_EQUIPMENT_HOURS,
2683 wbs.SIGN * fpr.SUP_INV_COMMITTED_COST SUP_INV_COMMITTED_COST,
2684 wbs.SIGN * fpr.PO_COMMITTED_COST PO_COMMITTED_COST,
2685 wbs.SIGN * fpr.PR_COMMITTED_COST PR_COMMITTED_COST,
2686 wbs.SIGN * fpr.OTH_COMMITTED_COST OTH_COMMITTED_COST,
2687 wbs.SIGN * fpr.ACT_LABOR_HRS ACT_LABOR_HRS,
2688 wbs.SIGN * fpr.ACT_EQUIP_HRS ACT_EQUIP_HRS,
2689 wbs.SIGN * fpr.ACT_LABOR_BRDN_COST ACT_LABOR_BRDN_COST,
2690 wbs.SIGN * fpr.ACT_EQUIP_BRDN_COST ACT_EQUIP_BRDN_COST,
2691 wbs.SIGN * fpr.ACT_BRDN_COST ACT_BRDN_COST,
2692 wbs.SIGN * fpr.ACT_RAW_COST ACT_RAW_COST,
2693 wbs.SIGN * fpr.ACT_REVENUE ACT_REVENUE,
2694 wbs.SIGN * fpr.ACT_LABOR_RAW_COST ACT_LABOR_RAW_COST,
2695 wbs.SIGN * fpr.ACT_EQUIP_RAW_COST ACT_EQUIP_RAW_COST,
2696 wbs.SIGN * fpr.ETC_LABOR_HRS ETC_LABOR_HRS,
2697 wbs.SIGN * fpr.ETC_EQUIP_HRS ETC_EQUIP_HRS,
2698 wbs.SIGN * fpr.ETC_LABOR_BRDN_COST ETC_LABOR_BRDN_COST,
2699 wbs.SIGN * fpr.ETC_EQUIP_BRDN_COST ETC_EQUIP_BRDN_COST,
2700 wbs.SIGN * fpr.ETC_BRDN_COST ETC_BRDN_COST,
2701 wbs.SIGN * fpr.ETC_RAW_COST ETC_RAW_COST,
2702 wbs.SIGN * fpr.ETC_LABOR_RAW_COST ETC_LABOR_RAW_COST,
2703 wbs.SIGN * fpr.ETC_EQUIP_RAW_COST ETC_EQUIP_RAW_COST,
2704 wbs.SIGN * fpr.CUSTOM1 CUSTOM1,
2705 wbs.SIGN * fpr.CUSTOM2 CUSTOM2,
2706 wbs.SIGN * fpr.CUSTOM3 CUSTOM3,
2707 wbs.SIGN * fpr.CUSTOM4 CUSTOM4,
2708 wbs.SIGN * fpr.CUSTOM5 CUSTOM5,
2709 wbs.SIGN * fpr.CUSTOM6 CUSTOM6,
2710 wbs.SIGN * fpr.CUSTOM7 CUSTOM7,
2711 wbs.SIGN * fpr.CUSTOM8 CUSTOM8,
2712 wbs.SIGN * fpr.CUSTOM9 CUSTOM9,
2713 wbs.SIGN * fpr.CUSTOM10 CUSTOM10,
2714 wbs.SIGN * fpr.CUSTOM11 CUSTOM11,
2715 wbs.SIGN * fpr.CUSTOM12 CUSTOM12,
2716 wbs.SIGN * fpr.CUSTOM13 CUSTOM13,
2717 wbs.SIGN * fpr.CUSTOM14 CUSTOM14,
2718 wbs.SIGN * fpr.CUSTOM15 CUSTOM15
2719 from
2720 PJI_PA_PROJ_EVENTS_LOG log,
2721 PJI_PJP_WBS_HEADER wbs_hdr,
2722 PJI_XBS_DENORM_DELTA wbs,
2723 PJI_XBS_DENORM prg,
2724 PJI_FP_XBS_ACCUM_F fpr,
2725 (
2726 select 'Y' CB, 'N' CO, -3 PLAN_VERSION_ID, 'PRG' INVERT_ID
2727 from DUAL union all
2728 select 'Y' CB, 'N' CO, -3 PLAN_VERSION_ID, 'PRJ' INVERT_ID
2729 from DUAL union all
2730 select 'N' CB, 'Y' CO, -4 PLAN_VERSION_ID, 'PRG' INVERT_ID
2731 from DUAL union all
2732 select 'N' CB, 'Y' CO, -4 PLAN_VERSION_ID, 'PRJ' INVERT_ID
2733 from DUAL union all
2734 select 'Y' CB, 'Y' CO, -3 PLAN_VERSION_ID, 'PRG' INVERT_ID
2735 from DUAL union all
2736 select 'Y' CB, 'Y' CO, -3 PLAN_VERSION_ID, 'PRJ' INVERT_ID
2737 from DUAL union all
2738 select 'Y' CB, 'Y' CO, -4 PLAN_VERSION_ID, 'PRG' INVERT_ID
2739 from DUAL union all
2740 select 'Y' CB, 'Y' CO, -4 PLAN_VERSION_ID, 'PRJ' INVERT_ID
2741 from DUAL
2742 ) fin_plan,
2743 (
2744 select 1 WBS_SUP_LEVEL,
2745 1 WBS_SUB_LEVEL,
2746 'PRJ' INVERT_ID
2747 from DUAL
2748 union all
2749 select 1 WBS_SUP_LEVEL,
2750 1 WBS_SUB_LEVEL,
2751 'WBS' INVERT_ID
2752 from DUAL
2753 ) top_slice
2754 where
2755 prg.STRUCT_TYPE = 'PRG' and
2756 prg.SUP_LEVEL = lv_level and
2757 prg.SUB_LEVEL = lv_level and
2758 wbs.WORKER_ID = p_worker_id and
2759 wbs.STRUCT_TYPE = 'WBS' and
2760 wbs.SUP_PROJECT_ID = prg.SUP_PROJECT_ID and
2761 log.WORKER_ID = p_worker_id and
2762 log.EVENT_ID = wbs.EVENT_ID and
2763 log.EVENT_TYPE in ('WBS_CHANGE',
2764 'WBS_PUBLISH') and
2765 wbs_hdr.PROJECT_ID = log.ATTRIBUTE1 and
2766 wbs_hdr.PLAN_VERSION_ID = log.ATTRIBUTE3 and
2767 wbs_hdr.WBS_VERSION_ID = wbs.STRUCT_VERSION_ID and
2768 wbs_hdr.PROJECT_ID = prg.SUP_PROJECT_ID and
2769 wbs_hdr.WBS_VERSION_ID = prg.SUP_ID and
2770 fpr.RBS_AGGR_LEVEL = 'T' and
2771 fpr.WBS_ROLLUP_FLAG = 'N' and
2772 fpr.PRG_ROLLUP_FLAG in ('Y', 'N') and
2773 fpr.PROJECT_ID = wbs.SUP_PROJECT_ID and
2774 fpr.PROJECT_ELEMENT_ID = wbs.SUB_EMT_ID and
2775 fpr.PROJECT_ID = wbs_hdr.PROJECT_ID and
2776 fpr.PLAN_VERSION_ID = wbs_hdr.PLAN_VERSION_ID and
2777 fpr.PLAN_TYPE_CODE = wbs_hdr.PLAN_TYPE_CODE and
2778 decode(fpr.PLAN_VERSION_ID,
2779 -3, fpr.PLAN_TYPE_ID,
2780 -4, fpr.PLAN_TYPE_ID,
2781 -1) = decode(fpr.PLAN_VERSION_ID,
2782 -3, wbs_hdr.PLAN_TYPE_ID,
2783 -4, wbs_hdr.PLAN_TYPE_ID,
2784 -1) and
2785 wbs_hdr.CB_FLAG = fin_plan.CB (+) and
2786 wbs_hdr.CO_FLAG = fin_plan.CO (+) and
2787 wbs.SUP_LEVEL = top_slice.WBS_SUP_LEVEL (+) and
2788 wbs.SUB_LEVEL <> top_slice.WBS_SUB_LEVEL (+) and
2789 (wbs.SUP_LEVEL <> wbs.SUB_LEVEL or
2790 (wbs.SUP_LEVEL = 1 and
2791 wbs.SUB_LEVEL = 1))
2792 ) pjp,
2793 (
2794 select /*+ leading( prg, map) USE_NL(prg_delta) use_nl(invert) INDEX(prg_delta PJI_XBS_DENORM_DELTA_N1) */ -- KPN change bug#12731239
2795 prg.SUP_PROJECT_ID,
2796 map.PROJECT_ORG_ID SUP_PROJECT_ORG_ID,
2797 map.PROJECT_ORGANIZATION_ID SUP_PROJECT_ORGANIZATION_ID,
2798 prg.SUP_ID,
2799 prg.SUP_EMT_ID,
2800 prg.SUP_LEVEL,
2801 prg.SUB_ID,
2802 prg.SUB_EMT_ID,
2803 prg.SUB_ROLLUP_ID,
2804 invert.INVERT_VALUE RELATIONSHIP_TYPE,
2805 decode(prg.RELATIONSHIP_TYPE,
2806 'LW', 'Y',
2807 'LF', 'N') WP_FLAG,
2808 'Y' PUSHUP_FLAG
2809 from
2810 PJI_PJP_PROJ_BATCH_MAP map,
2811 PJI_XBS_DENORM prg,
2812 (
2813 select 'LF' INVERT_ID, 'LF' INVERT_VALUE from dual union all
2814 select 'LW' INVERT_ID, 'LW' INVERT_VALUE from dual union all
2815 select 'A' INVERT_ID, 'LF' INVERT_VALUE from dual union all
2816 select 'A' INVERT_ID, 'LW' INVERT_VALUE from dual
2817 ) invert,
2818 PJI_XBS_DENORM_DELTA prg_delta
2819 where
2820 prg.STRUCT_TYPE = 'PRG' and
2821 prg.SUB_ROLLUP_ID is not null and
2822 prg.SUB_LEVEL = lv_level and
2823 map.WORKER_ID = p_worker_id and
2824 map.PROJECT_ID = prg.SUP_PROJECT_ID and
2825 decode(prg.SUB_LEVEL,
2826 prg.SUP_LEVEL, 'A',
2827 prg.RELATIONSHIP_TYPE) = invert.INVERT_ID and
2828 p_worker_id = prg_delta.WORKER_ID (+) and
2829 prg.STRUCT_TYPE = prg_delta.STRUCT_TYPE (+) and
2830 prg.SUP_PROJECT_ID = prg_delta.SUP_PROJECT_ID (+) and
2831 prg.SUP_LEVEL = prg_delta.SUP_LEVEL (+) and
2832 prg.SUP_ID = prg_delta.SUP_ID (+) and
2833 prg.SUB_LEVEL = prg_delta.SUB_LEVEL (+) and
2834 prg.SUB_ID = prg_delta.SUB_ID (+) and
2835 prg.RELATIONSHIP_TYPE = prg_delta.RELATIONSHIP_TYPE (+) and
2836 -1 = prg_delta.SIGN (+) and
2837 prg_delta.SUP_PROJECT_ID is null
2838 ) prg,
2839 PJI_PJP_WBS_HEADER wbs_hdr,
2840 PA_PROJ_ELEM_VER_STRUCTURE sub_ver,
2841 PA_PROJ_ELEM_VER_STRUCTURE sup_ver,
2842 PA_PROJ_WORKPLAN_ATTR sup_wpa
2843 where
2844 pjp.PROJECT_ID = sub_ver.PROJECT_ID (+) and
2845 pjp.WBS_VERSION_ID = sub_ver.ELEMENT_VERSION_ID (+) and
2846 'STRUCTURE_PUBLISHED' = sub_ver.STATUS_CODE (+) and
2847 pjp.WBS_VERSION_ID = prg.SUB_ID (+) and
2848 pjp.RELATIONSHIP_TYPE = prg.RELATIONSHIP_TYPE (+) and
2849 pjp.PUSHUP_FLAG = prg.PUSHUP_FLAG (+) and
2850 prg.SUP_PROJECT_ID = wbs_hdr.PROJECT_ID (+) and
2851 prg.SUP_ID = wbs_hdr.WBS_VERSION_ID (+) and
2852 prg.WP_FLAG = wbs_hdr.WP_FLAG (+) and
2853 'Y' = wbs_hdr.WP_FLAG (+) and
2854 wbs_hdr.PROJECT_ID = sup_ver.PROJECT_ID (+) and
2855 wbs_hdr.WBS_VERSION_ID = sup_ver.ELEMENT_VERSION_ID (+) and
2856 'STRUCTURE_PUBLISHED' = sup_ver.STATUS_CODE (+) and
2857 'Y' = sup_ver.LATEST_EFF_PUBLISHED_FLAG (+) and
2858 prg.SUP_EMT_ID = sup_wpa.PROJ_ELEMENT_ID (+)
2859 group by
2860 decode(nvl(prg.SUB_EMT_ID, -1), nvl(prg.SUB_ROLLUP_ID, -1),
2861 pjp.INSERT_FLAG, 'Y'),
2862 pjp.RELATIONSHIP_TYPE,
2863 decode(nvl(prg.SUB_EMT_ID, -1), nvl(prg.SUB_ROLLUP_ID, -1),
2864 null, sub_ver.STATUS_CODE),
2865 decode(nvl(prg.SUB_EMT_ID, -1), nvl(prg.SUB_ROLLUP_ID, -1),
2866 null, sup_ver.STATUS_CODE),
2867 decode(nvl(prg.SUB_EMT_ID, -1), nvl(prg.SUB_ROLLUP_ID, -1),
2868 null, sup_wpa.WP_ENABLE_VERSION_FLAG),
2869 decode(nvl(prg.SUB_EMT_ID, -1), nvl(prg.SUB_ROLLUP_ID, -1),
2870 null, decode(pjp.PLAN_VERSION_ID,
2871 -1, prg.SUP_ID,
2872 -3, prg.SUP_ID,
2873 -4, prg.SUP_ID,
2874 null)),
2875 decode(nvl(prg.SUB_EMT_ID, -1), nvl(prg.SUB_ROLLUP_ID, -1),
2876 null, decode(pjp.PLAN_VERSION_ID,
2877 -1, prg.SUP_EMT_ID,
2878 -3, prg.SUP_EMT_ID,
2879 -4, prg.SUP_EMT_ID,
2880 null)),
2881 decode(nvl(prg.SUB_EMT_ID, -1), nvl(prg.SUB_ROLLUP_ID, -1),
2882 null, decode(pjp.PLAN_VERSION_ID,
2883 -1, prg.WP_FLAG,
2884 -3, prg.WP_FLAG,
2885 -4, prg.WP_FLAG,
2886 null)),
2887 decode(nvl(prg.SUB_EMT_ID, -1), nvl(prg.SUB_ROLLUP_ID, -1),
2888 lv_level, prg.SUP_LEVEL),
2889 pjp.LINE_TYPE,
2890 decode(nvl(prg.SUB_EMT_ID, -1), nvl(prg.SUB_ROLLUP_ID, -1),
2891 pjp.PROJECT_ID, prg.SUP_PROJECT_ID),
2892 decode(nvl(prg.SUB_EMT_ID, -1), nvl(prg.SUB_ROLLUP_ID, -1),
2893 pjp.PROJECT_ORG_ID,
2894 prg.SUP_PROJECT_ORG_ID),
2895 decode(nvl(prg.SUB_EMT_ID, -1), nvl(prg.SUB_ROLLUP_ID, -1),
2896 pjp.PROJECT_ORGANIZATION_ID,
2897 prg.SUP_PROJECT_ORGANIZATION_ID),
2898 decode(nvl(prg.SUB_EMT_ID, -1), nvl(prg.SUB_ROLLUP_ID, -1),
2899 pjp.PROJECT_ELEMENT_ID,
2900 prg.SUB_ROLLUP_ID),
2901 pjp.TIME_ID,
2902 pjp.PERIOD_TYPE_ID,
2903 pjp.CALENDAR_TYPE,
2904 pjp.RBS_AGGR_LEVEL,
2905 decode(nvl(prg.SUB_EMT_ID, -1), nvl(prg.SUB_ROLLUP_ID, -1),
2906 pjp.WBS_ROLLUP_FLAG, 'N'),
2907 decode(nvl(prg.SUB_EMT_ID, -1), nvl(prg.SUB_ROLLUP_ID, -1),
2908 pjp.PRG_ROLLUP_FLAG, 'Y'),
2909 pjp.CURR_RECORD_TYPE_ID,
2910 pjp.CURRENCY_CODE,
2911 pjp.RBS_ELEMENT_ID,
2912 pjp.RBS_VERSION_ID,
2913 decode(nvl(prg.SUB_EMT_ID, -1), nvl(prg.SUB_ROLLUP_ID, -1),
2914 pjp.PLAN_VERSION_ID,
2915 decode(pjp.PLAN_VERSION_ID,
2916 -1, pjp.PLAN_VERSION_ID,
2917 -2, pjp.PLAN_VERSION_ID,
2918 -3, pjp.PLAN_VERSION_ID,
2919 -4, pjp.PLAN_VERSION_ID,
2920 wbs_hdr.PLAN_VERSION_ID)),
2921 decode(nvl(prg.SUB_EMT_ID, -1), nvl(prg.SUB_ROLLUP_ID, -1),
2922 pjp.PLAN_TYPE_ID,
2923 decode(pjp.PLAN_VERSION_ID,
2924 -1, pjp.PLAN_TYPE_ID,
2925 -2, pjp.PLAN_TYPE_ID,
2926 -3, pjp.PLAN_TYPE_ID,
2927 -4, pjp.PLAN_TYPE_ID,
2928 wbs_hdr.PLAN_TYPE_ID)),
2929 pjp.PLAN_TYPE_CODE
2930 ) pjp1_i,
2931 PA_PROJ_ELEM_VER_STRUCTURE sup_fin_ver,
2932 PA_PROJ_WORKPLAN_ATTR sup_wpa
2933 where
2934 pjp1_i.INSERT_FLAG = 'Y' and
2935 pjp1_i.PROJECT_ID = sup_fin_ver.PROJECT_ID (+) and
2936 pjp1_i.SUP_ID = sup_fin_ver.ELEMENT_VERSION_ID (+) and
2937 'STRUCTURE_WORKING' = sup_fin_ver.STATUS_CODE (+) and
2938 pjp1_i.SUP_EMT_ID = sup_wpa.PROJ_ELEMENT_ID (+) and
2939 'N' = sup_wpa.WP_ENABLE_VERSION_FLAG (+) and
2940 (pjp1_i.SUP_ID is null or
2941 (pjp1_i.SUP_ID is not null and
2942 (sup_fin_ver.PROJECT_ID is not null or
2943 sup_wpa.PROJ_ELEMENT_ID is not null)));
2944
2945 update PJI_SYSTEM_PRC_STATUS
2946 set STEP_STATUS = 'C',
2947 END_DATE = sysdate
2948 where PROCESS_NAME = l_process and
2949 STEP_SEQ = lv_level_seq;
2950
2951 commit;
2952
2953 select
2954 nvl(to_number(min(STEP_SEQ)), 0)
2955 into
2956 lv_level_seq
2957 from
2958 PJI_SYSTEM_PRC_STATUS
2959 where
2960 PROCESS_NAME = l_process and
2961 STEP_NAME like 'ROLLUP_FPR_WBS%' and
2962 STEP_STATUS is null;
2963
2964 if (lv_level_seq = 0) then
2965 lv_level := 0;
2966 else
2967 lv_level := l_max_level - ((lv_level_seq - l_step_seq) * 1000) + 1;
2968 end if;
2969
2970 end loop;
2971
2972 end ROLLUP_FPR_WBS_FULL;
2973 -- End of Bug# 9904361
2974
2975
2976
2977 -- -----------------------------------------------------
2978 -- procedure POPULATE_TIME_DIMENSION
2979 --
2980 -- History
2981 -- 19-MAR-2004 SVERMETT Created
2982 --
2983 -- Internal PJP Summarization API.
2984 --
2985 -- Called by RBS program
2986 --
2987 -- -----------------------------------------------------
2988 procedure POPULATE_TIME_DIMENSION (p_worker_id in number) is
2989
2990 l_process varchar2(30);
2991
2992 l_return_status varchar2(255);
2993 l_msg_count number;
2994 l_msg_data varchar2(2000);
2995
2996 begin
2997
2998 l_process := PJI_PJP_SUM_MAIN.g_process || p_worker_id;
2999
3000 if (not PJI_PROCESS_UTIL.NEED_TO_RUN_STEP(l_process, 'PJI_PJP_SUM_ROLLUP.POPULATE_TIME_DIMENSION(p_worker_id);')) then
3001 return;
3002 end if;
3003
3004 PJI_TIME_C.LOAD(null, null, l_return_status, l_msg_count, l_msg_data);
3005
3006 PJI_PROCESS_UTIL.REGISTER_STEP_COMPLETION(l_process, 'PJI_PJP_SUM_ROLLUP.POPULATE_TIME_DIMENSION(p_worker_id);');
3007
3008 commit;
3009
3010 end POPULATE_TIME_DIMENSION;
3011
3012
3013 -- -----------------------------------------------------
3014 -- procedure CREATE_EVENTS_SNAPSHOT
3015 --
3016 -- History
3017 -- 19-MAR-2004 SVERMETT Created
3018 --
3019 -- Internal PJP Summarization API.
3020 --
3021 -- Called by RBS program
3022 --
3023 -- -----------------------------------------------------
3024 procedure CREATE_EVENTS_SNAPSHOT (p_worker_id in number) is
3025
3026 cursor events (p_worker_id in number) is
3027 select /*+ ordered index(log PA_PJI_PROJ_EVENTS_LOG_N1) use_hash(log) */ /* Modified for Bug 7669026 */
3028 distinct
3029 log.ROWID LOG_ROWID,
3030 log.EVENT_TYPE,
3031 log.EVENT_ID,
3032 log.EVENT_OBJECT,
3033 log.OPERATION_TYPE,
3034 log.STATUS,
3035 log.ATTRIBUTE_CATEGORY,
3036 log.ATTRIBUTE1,
3037 to_char(decode(log.EVENT_TYPE,
3038 'RBS_PRG', ver.RBS_HEADER_ID,
3039 'RBS_ASSOC', ver.RBS_HEADER_ID,
3040 log.ATTRIBUTE2)) ATTRIBUTE2,
3041 log.ATTRIBUTE3,
3042 log.ATTRIBUTE4,
3043 log.ATTRIBUTE5,
3044 log.ATTRIBUTE6,
3045 log.ATTRIBUTE7,
3046 log.ATTRIBUTE8,
3047 log.ATTRIBUTE9,
3048 log.ATTRIBUTE10,
3049 log.ATTRIBUTE11,
3050 log.ATTRIBUTE12,
3051 log.ATTRIBUTE13,
3052 log.ATTRIBUTE14,
3053 log.ATTRIBUTE15,
3054 log.ATTRIBUTE16,
3055 log.ATTRIBUTE17,
3056 log.ATTRIBUTE18,
3057 log.ATTRIBUTE19,
3058 log.ATTRIBUTE20
3059 from
3060 PJI_PJP_PROJ_BATCH_MAP map,
3061 PA_PJI_PROJ_EVENTS_LOG log,
3062 PA_RBS_VERSIONS_B ver
3063 where
3064 map.WORKER_ID = p_worker_id and
3065 log.EVENT_TYPE in (-- 'WBS_CHANGE', -- disable bulk processing
3066 -- 'WBS_PUBLISH', -- of WBS events
3067 'RBS_ASSOC',
3068 'RBS_PRG') and
3069 log.ATTRIBUTE1 = map.PROJECT_ID and
3070 log.EVENT_OBJECT = ver.RBS_VERSION_ID (+)
3071 union all
3072 select /*+ ordered index(log PA_PJI_PROJ_EVENTS_LOG_N1) use_hash(log) */ /* Modified for Bug 7669026 */
3073 distinct
3074 log.ROWID LOG_ROWID,
3075 log.EVENT_TYPE,
3076 log.EVENT_ID,
3077 log.EVENT_OBJECT,
3078 log.OPERATION_TYPE,
3079 log.STATUS,
3080 log.ATTRIBUTE_CATEGORY,
3081 log.ATTRIBUTE1,
3082 log.ATTRIBUTE2,
3083 log.ATTRIBUTE3,
3084 log.ATTRIBUTE4,
3085 log.ATTRIBUTE5,
3086 log.ATTRIBUTE6,
3087 log.ATTRIBUTE7,
3088 log.ATTRIBUTE8,
3089 log.ATTRIBUTE9,
3090 log.ATTRIBUTE10,
3091 log.ATTRIBUTE11,
3092 log.ATTRIBUTE12,
3093 log.ATTRIBUTE13,
3094 log.ATTRIBUTE14,
3095 log.ATTRIBUTE15,
3096 log.ATTRIBUTE16,
3097 log.ATTRIBUTE17,
3098 log.ATTRIBUTE18,
3099 log.ATTRIBUTE19,
3100 log.ATTRIBUTE20
3101 from
3102 PJI_PJP_PROJ_BATCH_MAP map,
3103 PA_PJI_PROJ_EVENTS_LOG log
3104 where
3105 map.WORKER_ID = p_worker_id and
3106 log.EVENT_TYPE = 'PRG_CHANGE' and
3107 log.EVENT_OBJECT = -1 and
3108 log.ATTRIBUTE1 = map.PROJECT_ID;
3109
3110 cursor prg_change_events (p_worker_id in number) is
3111 select /*+ index(log PA_PJI_PROJ_EVENTS_LOG_N1) */
3112 log.ROWID LOG_ROWID,
3113 log.EVENT_TYPE,
3114 log.EVENT_ID,
3115 log.EVENT_OBJECT,
3116 log.OPERATION_TYPE,
3117 log.STATUS,
3118 log.ATTRIBUTE_CATEGORY,
3119 log.ATTRIBUTE1,
3120 log.ATTRIBUTE2,
3121 log.ATTRIBUTE3,
3122 log.ATTRIBUTE4,
3123 log.ATTRIBUTE5,
3124 log.ATTRIBUTE6,
3125 log.ATTRIBUTE7,
3126 log.ATTRIBUTE8,
3127 log.ATTRIBUTE9,
3128 log.ATTRIBUTE10,
3129 log.ATTRIBUTE11,
3130 log.ATTRIBUTE12,
3131 log.ATTRIBUTE13,
3132 log.ATTRIBUTE14,
3133 log.ATTRIBUTE15,
3134 log.ATTRIBUTE16,
3135 log.ATTRIBUTE17,
3136 log.ATTRIBUTE18,
3137 log.ATTRIBUTE19,
3138 log.ATTRIBUTE20
3139 from
3140 PA_PJI_PROJ_EVENTS_LOG log,
3141 (
3142 select /*+ ordered index(ver PA_PROJ_ELEMENT_VERSIONS_N3) */
3143 distinct
3144 ver.PRG_GROUP
3145 from
3146 PJI_PJP_PROJ_BATCH_MAP map,
3147 PA_PROJ_ELEMENT_VERSIONS ver
3148 where
3149 map.WORKER_ID = p_worker_id and
3150 map.PROJECT_ID = ver.PROJECT_ID and
3151 ver.PRG_GROUP is not null
3152 ) map
3153 where
3154 log.EVENT_TYPE = 'PRG_CHANGE' and
3155 log.EVENT_OBJECT <> -1 and
3156 map.PRG_GROUP in (log.EVENT_OBJECT, log.ATTRIBUTE1);
3157
3158 cursor rbs_push_events (p_worker_id in number,
3159 p_rbs_header_id in number) is
3160 select /*+ index(log PA_PJI_PROJ_EVENTS_LOG_N1) */
3161 distinct
3162 log.ROWID LOG_ROWID,
3163 log.EVENT_TYPE,
3164 log.EVENT_ID,
3165 log.EVENT_OBJECT,
3166 log.OPERATION_TYPE,
3167 log.STATUS,
3168 log.ATTRIBUTE_CATEGORY,
3169 log.ATTRIBUTE1,
3170 nvl(log.ATTRIBUTE2, log.EVENT_OBJECT) ATTRIBUTE2,
3171 log.ATTRIBUTE3,
3172 log.ATTRIBUTE4,
3173 log.ATTRIBUTE5,
3174 log.ATTRIBUTE6,
3175 log.ATTRIBUTE7,
3176 log.ATTRIBUTE8,
3177 log.ATTRIBUTE9,
3178 log.ATTRIBUTE10,
3179 log.ATTRIBUTE11,
3180 log.ATTRIBUTE12,
3181 log.ATTRIBUTE13,
3182 log.ATTRIBUTE14,
3183 log.ATTRIBUTE15,
3184 'N' ATTRIBUTE16, -- project event flag
3185 log.ATTRIBUTE17, -- chain identifier
3186 log.ATTRIBUTE18, -- push chain flag
3187 log.ATTRIBUTE19, -- project id
3188 ver.RBS_HEADER_ID ATTRIBUTE20, -- rbs header
3189 log.pjt_rollup_flag -- OLAP
3190 from
3191 PA_PJI_PROJ_EVENTS_LOG log,
3192 (
3193 select
3194 distinct
3195 asg.RBS_HEADER_ID,
3196 asg.RBS_VERSION_ID
3197 from
3198 PJI_PJP_PROJ_BATCH_MAP map,
3199 PA_RBS_PRJ_ASSIGNMENTS asg
3200 where
3201 map.WORKER_ID = p_worker_id and
3202 asg.PROJECT_ID = map.PROJECT_ID and
3203 asg.RBS_HEADER_ID = nvl(p_rbs_header_id,
3204 asg.RBS_HEADER_ID)
3205 UNION
3206 select
3207 distinct
3208 rbs.RBS_HEADER_ID,
3209 rbs.RBS_VERSION_ID
3210 from
3211 PJI_PJP_PROJ_BATCH_MAP map,
3212 PA_PROJECTS_ALL prj,
3213 PA_RBS_VERSIONS_B rbs,
3214 PA_PJI_PROJ_EVENTS_LOG log
3215 where
3216 map.WORKER_ID = p_worker_id and
3217 prj.PROJECT_ID = map.PROJECT_ID and
3218 log.EVENT_TYPE = 'RBS_PUSH' and
3219 rbs.rbs_version_id = prj.cbs_version_id and
3220 prj.CBS_VERSION_ID in (log.EVENT_OBJECT, log.ATTRIBUTE2)
3221 ) ver
3222 where
3223 log.EVENT_TYPE = 'RBS_PUSH' and
3224 ver.RBS_VERSION_ID in (log.EVENT_OBJECT, log.ATTRIBUTE2);
3225
3226 cursor rbs_delete_events (p_worker_id in number,
3227 p_rbs_header_id in number) is
3228 select /*+ index(log PA_PJI_PROJ_EVENTS_LOG_N1) */
3229 distinct
3230 log.ROWID LOG_ROWID,
3231 log.EVENT_TYPE,
3232 log.EVENT_ID,
3233 log.EVENT_OBJECT,
3234 log.OPERATION_TYPE,
3235 log.STATUS,
3236 log.ATTRIBUTE_CATEGORY,
3237 log.ATTRIBUTE1,
3238 log.ATTRIBUTE2,
3239 log.ATTRIBUTE3,
3240 log.ATTRIBUTE4,
3241 log.ATTRIBUTE5,
3242 log.ATTRIBUTE6,
3243 log.ATTRIBUTE7,
3244 log.ATTRIBUTE8,
3245 log.ATTRIBUTE9,
3246 log.ATTRIBUTE10,
3247 log.ATTRIBUTE11,
3248 log.ATTRIBUTE12,
3249 log.ATTRIBUTE13,
3250 log.ATTRIBUTE14,
3251 log.ATTRIBUTE15,
3252 log.ATTRIBUTE16,
3253 log.ATTRIBUTE17,
3254 log.ATTRIBUTE18,
3255 log.ATTRIBUTE19,
3256 log.ATTRIBUTE20
3257 from
3258 PJI_PJP_PROJ_BATCH_MAP map,
3259 PA_RBS_PRJ_ASSIGNMENTS asg,
3260 PA_PJI_PROJ_EVENTS_LOG log
3261 where
3262 map.WORKER_ID = p_worker_id and
3263 asg.PROJECT_ID = map.PROJECT_ID and
3264 asg.RBS_HEADER_ID = nvl(p_rbs_header_id,
3265 asg.RBS_HEADER_ID) and
3266 log.EVENT_TYPE = 'RBS_DELETE' and
3267 log.EVENT_OBJECT = asg.RBS_VERSION_ID;
3268
3269 l_process varchar2(30);
3270 l_extraction_type varchar2(30);
3271 l_rbs_header_id number;
3272 l_chain_flag varchar2(150);
3273 l_last_rbs_link number;
3274
3275 l_last_update_date date;
3276 l_last_updated_by number;
3277 l_creation_date date;
3278 l_created_by number;
3279 l_last_update_login number;
3280 l_rbs_version_id number;
3281 l_new_model_projects_flag varchar2(1);
3282
3283 begin
3284
3285 -- OLAP CHANGES START
3286 l_rbs_version_id := -1;
3287 -- OLAP CHANGES END
3288
3289
3290 l_process := PJI_PJP_SUM_MAIN.g_process || to_char(p_worker_id);
3291
3292 if (not PJI_PROCESS_UTIL.NEED_TO_RUN_STEP(l_process, 'PJI_PJP_SUM_ROLLUP.CREATE_EVENTS_SNAPSHOT(p_worker_id);')) then
3293 return;
3294 end if;
3295
3296 l_extraction_type := PJI_PROCESS_UTIL.GET_PROCESS_PARAMETER(l_process, 'EXTRACTION_TYPE');
3297
3298 l_last_update_date := sysdate;
3299 l_last_updated_by := FND_GLOBAL.USER_ID;
3300 l_creation_date := sysdate;
3301 l_created_by := FND_GLOBAL.USER_ID;
3302 l_last_update_login := FND_GLOBAL.LOGIN_ID;
3303
3304 if (l_extraction_type = 'FULL') then
3305
3306 insert into PJI_PA_PROJ_EVENTS_LOG
3307 (
3308 WORKER_ID,
3309 LOG_ROWID,
3310 EVENT_TYPE,
3311 EVENT_ID,
3312 EVENT_OBJECT,
3313 OPERATION_TYPE,
3314 STATUS,
3315 ATTRIBUTE_CATEGORY,
3316 ATTRIBUTE1,
3317 ATTRIBUTE2,
3318 ATTRIBUTE3,
3319 ATTRIBUTE4,
3320 ATTRIBUTE5,
3321 ATTRIBUTE6,
3322 ATTRIBUTE7,
3323 ATTRIBUTE8,
3324 ATTRIBUTE9,
3325 ATTRIBUTE10,
3326 ATTRIBUTE11,
3327 ATTRIBUTE12,
3328 ATTRIBUTE13,
3329 ATTRIBUTE14,
3330 ATTRIBUTE15,
3331 ATTRIBUTE16,
3332 ATTRIBUTE17,
3333 ATTRIBUTE18,
3334 ATTRIBUTE19,
3335 ATTRIBUTE20
3336 )
3337 select /*+ ordered index(log PA_PJI_PROJ_EVENTS_LOG_N1)
3338 use_hash(log)
3339 use_hash(map) */
3340 p_worker_id,
3341 log.ROWID,
3342 log.EVENT_TYPE,
3343 log.EVENT_ID,
3344 log.EVENT_OBJECT,
3345 log.OPERATION_TYPE,
3346 log.STATUS,
3347 log.ATTRIBUTE_CATEGORY,
3348 log.ATTRIBUTE1,
3349 log.ATTRIBUTE2,
3350 log.ATTRIBUTE3,
3351 log.ATTRIBUTE4,
3352 log.ATTRIBUTE5,
3353 log.ATTRIBUTE6,
3354 log.ATTRIBUTE7,
3355 log.ATTRIBUTE8,
3356 log.ATTRIBUTE9,
3357 log.ATTRIBUTE10,
3358 log.ATTRIBUTE11,
3359 log.ATTRIBUTE12,
3360 log.ATTRIBUTE13,
3361 log.ATTRIBUTE14,
3362 log.ATTRIBUTE15,
3363 log.ATTRIBUTE16,
3364 log.ATTRIBUTE17,
3365 log.ATTRIBUTE18,
3366 log.ATTRIBUTE19,
3367 log.ATTRIBUTE20
3368 from
3369 PA_PJI_PROJ_EVENTS_LOG log,
3370 PJI_PJP_PROJ_BATCH_MAP map
3371 where
3372 map.WORKER_ID = p_worker_id and
3373 log.EVENT_TYPE = 'PRG_CHANGE' and
3374 log.EVENT_OBJECT = -1 and
3375 log.ATTRIBUTE1 = map.PROJECT_ID;
3376
3377 delete
3378 from PA_PJI_PROJ_EVENTS_LOG
3379 where ROWID in (select LOG_ROWID
3380 from PJI_PA_PROJ_EVENTS_LOG
3381 where WORKER_ID = p_worker_id);
3382
3383 elsif (l_extraction_type = 'INCREMENTAL') then
3384
3385 for c in events(p_worker_id) loop
3386
3387 insert into PJI_PA_PROJ_EVENTS_LOG
3388 (
3389 WORKER_ID,
3390 LOG_ROWID,
3391 EVENT_TYPE,
3392 EVENT_ID,
3393 EVENT_OBJECT,
3394 OPERATION_TYPE,
3395 STATUS,
3396 ATTRIBUTE_CATEGORY,
3397 ATTRIBUTE1,
3398 ATTRIBUTE2,
3399 ATTRIBUTE3,
3400 ATTRIBUTE4,
3401 ATTRIBUTE5,
3402 ATTRIBUTE6,
3403 ATTRIBUTE7,
3404 ATTRIBUTE8,
3405 ATTRIBUTE9,
3406 ATTRIBUTE10,
3407 ATTRIBUTE11,
3408 ATTRIBUTE12,
3409 ATTRIBUTE13,
3410 ATTRIBUTE14,
3411 ATTRIBUTE15,
3412 ATTRIBUTE16,
3413 ATTRIBUTE17,
3414 ATTRIBUTE18,
3415 ATTRIBUTE19,
3416 ATTRIBUTE20
3417 )
3418 values
3419 (
3420 p_worker_id,
3421 c.LOG_ROWID,
3422 c.EVENT_TYPE,
3423 c.EVENT_ID,
3424 c.EVENT_OBJECT,
3425 c.OPERATION_TYPE,
3426 c.STATUS,
3427 c.ATTRIBUTE_CATEGORY,
3428 c.ATTRIBUTE1,
3429 c.ATTRIBUTE2,
3430 c.ATTRIBUTE3,
3431 c.ATTRIBUTE4,
3432 c.ATTRIBUTE5,
3433 c.ATTRIBUTE6,
3434 c.ATTRIBUTE7,
3435 c.ATTRIBUTE8,
3436 c.ATTRIBUTE9,
3437 c.ATTRIBUTE10,
3438 c.ATTRIBUTE11,
3439 c.ATTRIBUTE12,
3440 c.ATTRIBUTE13,
3441 c.ATTRIBUTE14,
3442 c.ATTRIBUTE15,
3443 c.ATTRIBUTE16,
3444 c.ATTRIBUTE17,
3445 c.ATTRIBUTE18,
3446 c.ATTRIBUTE19,
3447 c.ATTRIBUTE20
3448 );
3449
3450 delete
3451 from PA_PJI_PROJ_EVENTS_LOG
3452 where ROWID = c.LOG_ROWID;
3453
3454 end loop;
3455
3456 for c in prg_change_events(p_worker_id) loop
3457
3458 insert into PJI_PA_PROJ_EVENTS_LOG
3459 (
3460 WORKER_ID,
3461 LOG_ROWID,
3462 EVENT_TYPE,
3463 EVENT_ID,
3464 EVENT_OBJECT,
3465 OPERATION_TYPE,
3466 STATUS,
3467 ATTRIBUTE_CATEGORY,
3468 ATTRIBUTE1,
3469 ATTRIBUTE2,
3470 ATTRIBUTE3,
3471 ATTRIBUTE4,
3472 ATTRIBUTE5,
3473 ATTRIBUTE6,
3474 ATTRIBUTE7,
3475 ATTRIBUTE8,
3476 ATTRIBUTE9,
3477 ATTRIBUTE10,
3478 ATTRIBUTE11,
3479 ATTRIBUTE12,
3480 ATTRIBUTE13,
3481 ATTRIBUTE14,
3482 ATTRIBUTE15,
3483 ATTRIBUTE16,
3484 ATTRIBUTE17,
3485 ATTRIBUTE18,
3486 ATTRIBUTE19,
3487 ATTRIBUTE20
3488 )
3489 values
3490 (
3491 p_worker_id,
3492 c.LOG_ROWID,
3493 c.EVENT_TYPE,
3494 c.EVENT_ID,
3495 c.EVENT_OBJECT,
3496 c.OPERATION_TYPE,
3497 c.STATUS,
3498 c.ATTRIBUTE_CATEGORY,
3499 c.ATTRIBUTE1,
3500 c.ATTRIBUTE2,
3501 c.ATTRIBUTE3,
3502 c.ATTRIBUTE4,
3503 c.ATTRIBUTE5,
3504 c.ATTRIBUTE6,
3505 c.ATTRIBUTE7,
3506 c.ATTRIBUTE8,
3507 c.ATTRIBUTE9,
3508 c.ATTRIBUTE10,
3509 c.ATTRIBUTE11,
3510 c.ATTRIBUTE12,
3511 c.ATTRIBUTE13,
3512 c.ATTRIBUTE14,
3513 c.ATTRIBUTE15,
3514 c.ATTRIBUTE16,
3515 c.ATTRIBUTE17,
3516 c.ATTRIBUTE18,
3517 c.ATTRIBUTE19,
3518 c.ATTRIBUTE20
3519 );
3520
3521 delete
3522 from PA_PJI_PROJ_EVENTS_LOG
3523 where ROWID = c.LOG_ROWID;
3524
3525 end loop;
3526
3527 -- RBS_PRG events override RBS_ASSOC events
3528
3529 delete
3530 from PJI_PA_PROJ_EVENTS_LOG log1
3531 where log1.WORKER_ID = p_worker_id and
3532 log1.EVENT_TYPE = 'RBS_ASSOC' and
3533 exists (select 1
3534 from PJI_PA_PROJ_EVENTS_LOG log2
3535 where log2.WORKER_ID = p_worker_id and
3536 log2.EVENT_TYPE = 'RBS_PRG' and
3537 log2.EVENT_OBJECT = log1.EVENT_OBJECT and
3538 log2.ATTRIBUTE1 = log1.ATTRIBUTE1);
3539
3540 -- convert RBS_PRG events into RBS_ASSOC events
3541
3542 for c in (select distinct
3543 EVENT_OBJECT RBS_VERSION_ID,
3544 ATTRIBUTE1 PROJECT_ID,
3545 ATTRIBUTE2 RBS_HEADER_ID
3546 from PJI_PA_PROJ_EVENTS_LOG
3547 where WORKER_ID = p_worker_id and
3548 EVENT_TYPE = 'RBS_PRG') loop
3549
3550 insert into PJI_PA_PROJ_EVENTS_LOG
3551 (
3552 WORKER_ID,
3553 LOG_ROWID,
3554 EVENT_TYPE,
3555 EVENT_ID,
3556 EVENT_OBJECT,
3557 OPERATION_TYPE,
3558 STATUS,
3559 ATTRIBUTE_CATEGORY,
3560 ATTRIBUTE1,
3561 ATTRIBUTE2,
3562 ATTRIBUTE3,
3563 ATTRIBUTE4,
3564 ATTRIBUTE5,
3565 ATTRIBUTE6,
3566 ATTRIBUTE7,
3567 ATTRIBUTE8,
3568 ATTRIBUTE9,
3569 ATTRIBUTE10,
3570 ATTRIBUTE11,
3571 ATTRIBUTE12,
3572 ATTRIBUTE13,
3573 ATTRIBUTE14,
3574 ATTRIBUTE15,
3575 ATTRIBUTE16,
3576 ATTRIBUTE17,
3577 ATTRIBUTE18,
3578 ATTRIBUTE19,
3579 ATTRIBUTE20
3580 )
3581 select
3582 distinct
3583 p_worker_id WORKER_ID,
3584 null LOG_ROWID,
3585 'RBS_ASSOC' EVENT_TYPE,
3586 -1 EVENT_ID,
3587 c.RBS_VERSION_ID EVENT_OBJECT,
3588 'I' OPERATION_TYPE,
3589 'X' STATUS,
3590 null ATTRIBUTE_CATEGORY,
3591 emt.PROJECT_ID ATTRIBUTE1,
3592 c.RBS_HEADER_ID ATTRIBUTE2,
3593 null ATTRIBUTE3,
3594 null ATTRIBUTE4,
3595 null ATTRIBUTE5,
3596 null ATTRIBUTE6,
3597 null ATTRIBUTE7,
3598 null ATTRIBUTE8,
3599 null ATTRIBUTE9,
3600 null ATTRIBUTE10,
3601 null ATTRIBUTE11,
3602 null ATTRIBUTE12,
3603 null ATTRIBUTE13,
3604 null ATTRIBUTE14,
3605 null ATTRIBUTE15,
3606 null ATTRIBUTE16,
3607 c.PROJECT_ID ATTRIBUTE17, -- program's PROJECT_ID
3608 decode(prg.SUB_EMT_ID,
3609 prg.SUB_ROLLUP_ID, 'Y',
3610 'N') ATTRIBUTE18, -- PROG_REP_USAGE_FLAG
3611 decode(rbs_hdr.PROJECT_ID,
3612 null, null,
3613 'MARK_AS_PROG_REP') ATTRIBUTE19, -- update header only
3614 'CONVERTED_RBS_PRG_EVENT' ATTRIBUTE20 -- flg converted events
3615 from
3616 PA_XBS_DENORM prg,
3617 PA_PROJ_ELEMENTS emt,
3618 PJI_PJP_RBS_HEADER rbs_hdr,
3619 PJI_PA_PROJ_EVENTS_LOG log
3620 where
3621 prg.SUP_PROJECT_ID = c.PROJECT_ID and
3622 (prg.SUB_EMT_ID = prg.SUB_ROLLUP_ID or
3623 prg.SUP_EMT_ID <> prg.SUB_EMT_ID) and
3624 emt.PROJ_ELEMENT_ID = prg.SUB_EMT_ID and
3625 emt.PROJECT_ID = rbs_hdr.PROJECT_ID (+) and
3626 -1 = rbs_hdr.PLAN_VERSION_ID (+) and
3627 c.RBS_VERSION_ID = rbs_hdr.RBS_VERSION_ID (+) and
3628 (rbs_hdr.PROJECT_ID is null or
3629 prg.SUB_EMT_ID = prg.SUB_ROLLUP_ID) and
3630 p_worker_id = log.WORKER_ID (+) and
3631 'RBS_ASSOC' = log.EVENT_TYPE (+) and
3632 c.RBS_VERSION_ID = log.EVENT_OBJECT (+) and
3633 emt.PROJECT_ID = log.ATTRIBUTE1 (+) and
3634 log.WORKER_ID is null;
3635
3636 end loop;
3637
3638 delete
3639 from PJI_PA_PROJ_EVENTS_LOG
3640 where WORKER_ID = p_worker_id and
3641 EVENT_TYPE = 'RBS_PRG';
3642
3643 elsif (l_extraction_type = 'PARTIAL') then
3644
3645 null; -- do not process any events during partial refresh
3646
3647 elsif (l_extraction_type = 'RBS') then
3648
3649 l_rbs_header_id := PJI_PROCESS_UTIL.GET_PROCESS_PARAMETER
3650 (l_process, 'RBS_HEADER_ID');
3651
3652 if (l_rbs_header_id = -1) then
3653 l_rbs_header_id := null;
3654 end if;
3655
3656 --ensure all RBS_ASSOC and RBS_PRG events point to the latest version
3657
3658 update PA_PJI_PROJ_EVENTS_LOG log
3659 set log.EVENT_OBJECT =
3660 (
3661 select
3662 ver1.RBS_VERSION_ID
3663 from
3664 (
3665 select
3666 ver.RBS_VERSION_ID
3667 from
3668 PA_RBS_VERSIONS_B ver
3669 where
3670 ver.RBS_HEADER_ID = nvl(l_rbs_header_id,
3671 ver.RBS_HEADER_ID) and
3672 ver.STATUS_CODE = 'FROZEN'
3673 order by
3674 ver.VERSION_NUMBER desc
3675 ) ver1
3676 where
3677 ROWNUM = 1
3678 )
3679 where log.EVENT_TYPE in ('RBS_ASSOC', 'RBS_PRG') and
3680 log.EVENT_OBJECT in
3681 (
3682 select
3683 ver.RBS_VERSION_ID
3684 from
3685 PA_RBS_VERSIONS_B ver
3686 where
3687 ver.RBS_HEADER_ID = nvl(l_rbs_header_id,
3688 ver.RBS_HEADER_ID)
3689 ) and
3690 log.EVENT_OBJECT not in
3691 (
3692 select
3693 ver1.RBS_VERSION_ID
3694 from
3695 (
3696 select
3697 ver.RBS_VERSION_ID
3698 from
3699 PA_RBS_VERSIONS_B ver
3700 where
3701 ver.RBS_HEADER_ID = nvl(l_rbs_header_id,
3702 ver.RBS_HEADER_ID) and
3703 ver.STATUS_CODE = 'FROZEN'
3704 order by
3705 ver.VERSION_NUMBER desc
3706 ) ver1
3707 where
3708 ROWNUM = 1
3709 );
3710
3711 -- get RBS_PUSH events
3712
3713 for c in rbs_push_events(p_worker_id, l_rbs_header_id) loop
3714
3715 if (c.ATTRIBUTE2 is not null) then
3716
3717 insert into PJI_PA_PROJ_EVENTS_LOG
3718 (
3719 WORKER_ID,
3720 LOG_ROWID,
3721 EVENT_TYPE,
3722 EVENT_ID,
3723 EVENT_OBJECT,
3724 OPERATION_TYPE,
3725 STATUS,
3726 ATTRIBUTE_CATEGORY,
3727 ATTRIBUTE1,
3728 ATTRIBUTE2,
3729 ATTRIBUTE3,
3730 ATTRIBUTE4,
3731 ATTRIBUTE5,
3732 ATTRIBUTE6,
3733 ATTRIBUTE7,
3734 ATTRIBUTE8,
3735 ATTRIBUTE9,
3736 ATTRIBUTE10,
3737 ATTRIBUTE11,
3738 ATTRIBUTE12,
3739 ATTRIBUTE13,
3740 ATTRIBUTE14,
3741 ATTRIBUTE15,
3742 ATTRIBUTE16,
3743 ATTRIBUTE17,
3744 ATTRIBUTE18,
3745 ATTRIBUTE19,
3746 ATTRIBUTE20
3747 )
3748 values
3749 (
3750 p_worker_id,
3751 c.LOG_ROWID,
3752 c.EVENT_TYPE,
3753 c.EVENT_ID,
3754 c.EVENT_OBJECT,
3755 c.OPERATION_TYPE,
3756 c.STATUS,
3757 c.ATTRIBUTE_CATEGORY,
3758 c.ATTRIBUTE1,
3759 c.ATTRIBUTE2,
3760 c.ATTRIBUTE3,
3761 c.ATTRIBUTE4,
3762 c.ATTRIBUTE5,
3763 c.ATTRIBUTE6,
3764 c.ATTRIBUTE7,
3765 c.ATTRIBUTE8,
3766 c.ATTRIBUTE9,
3767 c.ATTRIBUTE10,
3768 c.ATTRIBUTE11,
3769 c.ATTRIBUTE12,
3770 c.ATTRIBUTE13,
3771 c.ATTRIBUTE14,
3772 c.ATTRIBUTE15,
3773 c.ATTRIBUTE16,
3774 c.ATTRIBUTE17,
3775 c.ATTRIBUTE18,
3776 c.ATTRIBUTE19,
3777 c.ATTRIBUTE20
3778 );
3779
3780 -- OLAP CHANGES START
3781 /*
3782 if ( l_rbs_version_id <> c.ATTRIBUTE2 ) then
3783
3784 begin
3785
3786
3787 l_new_model_projects_flag := 'N';
3788
3789 select 'Y' into l_new_model_projects_flag
3790 from
3791 dual
3792 where c.pjt_rollup_flag = 'N'
3793 and exists
3794 ( select 'x' from
3795 pa_projects_all p1,
3796 PA_RBS_PRJ_ASSIGNMENTS asg
3797 where
3798 asg.PROJECT_ID = p1.PROJECT_ID and
3799 asg.RBS_VERSION_ID = c.ATTRIBUTE2 and
3800 p1.pjt_rollup_enabled_flag = 'Y'
3801 );
3802 exception
3803 when no_data_found then
3804 l_new_model_projects_flag := 'N';
3805 end ;
3806
3807 l_rbs_version_id := c.ATTRIBUTE2;
3808
3809 end if;
3810
3811 if ( l_new_model_projects_flag = 'Y' ) then
3812
3813 insert into pa_pjt_events_02
3814 (
3815 WORKER_ID,
3816 LOG_ROWID,
3817 EVENT_TYPE,
3818 EVENT_ID,
3819 EVENT_OBJECT,
3820 OPERATION_TYPE,
3821 STATUS,
3822 ATTRIBUTE_CATEGORY,
3823 ATTRIBUTE1,
3824 ATTRIBUTE2,
3825 ATTRIBUTE3,
3826 ATTRIBUTE4,
3827 ATTRIBUTE5,
3828 ATTRIBUTE6,
3829 ATTRIBUTE7,
3830 ATTRIBUTE8,
3831 ATTRIBUTE9,
3832 ATTRIBUTE10,
3833 ATTRIBUTE11,
3834 ATTRIBUTE12,
3835 ATTRIBUTE13,
3836 ATTRIBUTE14,
3837 ATTRIBUTE15,
3838 ATTRIBUTE16,
3839 ATTRIBUTE17,
3840 ATTRIBUTE18,
3841 ATTRIBUTE19,
3842 ATTRIBUTE20
3843 )
3844 values
3845 (
3846 p_worker_id,
3847 c.LOG_ROWID,
3848 c.EVENT_TYPE,
3849 c.EVENT_ID,
3850 c.EVENT_OBJECT,
3851 c.OPERATION_TYPE,
3852 c.STATUS,
3853 c.ATTRIBUTE_CATEGORY,
3854 c.ATTRIBUTE1,
3855 c.ATTRIBUTE2,
3856 c.ATTRIBUTE3,
3857 c.ATTRIBUTE4,
3858 c.ATTRIBUTE5,
3859 c.ATTRIBUTE6,
3860 c.ATTRIBUTE7,
3861 c.ATTRIBUTE8,
3862 c.ATTRIBUTE9,
3863 c.ATTRIBUTE10,
3864 c.ATTRIBUTE11,
3865 c.ATTRIBUTE12,
3866 c.ATTRIBUTE13,
3867 c.ATTRIBUTE14,
3868 c.ATTRIBUTE15,
3869 c.ATTRIBUTE16,
3870 c.ATTRIBUTE17,
3871 c.ATTRIBUTE18,
3872 c.ATTRIBUTE19,
3873 c.ATTRIBUTE20
3874 );
3875
3876 end if;
3877 */
3878 -- OLAP CHANGES END
3879 end if;
3880
3881 delete
3882 from PA_PJI_PROJ_EVENTS_LOG
3883 where ROWID = c.LOG_ROWID;
3884
3885 end loop;
3886
3887 -- get RBS_DELETE events
3888
3889 for c in rbs_delete_events(p_worker_id, l_rbs_header_id) loop
3890
3891 insert into PJI_PA_PROJ_EVENTS_LOG
3892 (
3893 WORKER_ID,
3894 LOG_ROWID,
3895 EVENT_TYPE,
3896 EVENT_ID,
3897 EVENT_OBJECT,
3898 OPERATION_TYPE,
3899 STATUS,
3900 ATTRIBUTE_CATEGORY,
3901 ATTRIBUTE1,
3902 ATTRIBUTE2,
3903 ATTRIBUTE3,
3904 ATTRIBUTE4,
3905 ATTRIBUTE5,
3906 ATTRIBUTE6,
3907 ATTRIBUTE7,
3908 ATTRIBUTE8,
3909 ATTRIBUTE9,
3910 ATTRIBUTE10,
3911 ATTRIBUTE11,
3912 ATTRIBUTE12,
3913 ATTRIBUTE13,
3914 ATTRIBUTE14,
3915 ATTRIBUTE15,
3916 ATTRIBUTE16,
3917 ATTRIBUTE17,
3918 ATTRIBUTE18,
3919 ATTRIBUTE19,
3920 ATTRIBUTE20
3921 )
3922 values
3923 (
3924 p_worker_id,
3925 c.LOG_ROWID,
3926 c.EVENT_TYPE,
3927 c.EVENT_ID,
3928 c.EVENT_OBJECT,
3929 c.OPERATION_TYPE,
3930 c.STATUS,
3931 c.ATTRIBUTE_CATEGORY,
3932 c.ATTRIBUTE1,
3933 c.ATTRIBUTE2,
3934 c.ATTRIBUTE3,
3935 c.ATTRIBUTE4,
3936 c.ATTRIBUTE5,
3937 c.ATTRIBUTE6,
3938 c.ATTRIBUTE7,
3939 c.ATTRIBUTE8,
3940 c.ATTRIBUTE9,
3941 c.ATTRIBUTE10,
3942 c.ATTRIBUTE11,
3943 c.ATTRIBUTE12,
3944 c.ATTRIBUTE13,
3945 c.ATTRIBUTE14,
3946 c.ATTRIBUTE15,
3947 c.ATTRIBUTE16,
3948 c.ATTRIBUTE17,
3949 c.ATTRIBUTE18,
3950 c.ATTRIBUTE19,
3951 c.ATTRIBUTE20
3952 );
3953
3954 delete
3955 from PA_PJI_PROJ_EVENTS_LOG
3956 where ROWID = c.LOG_ROWID;
3957
3958 end loop;
3959
3960 -- normalize chains of 'RBS_PUSH' events
3961
3962 for c in (select EVENT_ID
3963 from PJI_PA_PROJ_EVENTS_LOG
3964 where WORKER_ID = p_worker_id and
3965 EVENT_TYPE = 'RBS_PUSH'
3966 order by EVENT_ID) loop
3967
3968 select ATTRIBUTE18
3969 into l_chain_flag
3970 from PJI_PA_PROJ_EVENTS_LOG
3971 where WORKER_ID = p_worker_id and
3972 EVENT_TYPE = 'RBS_PUSH' and
3973 EVENT_ID = c.EVENT_ID;
3974
3975 if (l_chain_flag is null) then
3976
3977 update PJI_PA_PROJ_EVENTS_LOG log1
3978 set log1.ATTRIBUTE18 = 'PJI$LIST',
3979 log1.ATTRIBUTE17 = c.EVENT_ID
3980 where log1.WORKER_ID = p_worker_id and
3981 log1.EVENT_TYPE = 'RBS_PUSH' and
3982 log1.EVENT_ID in
3983 (select
3984 log1.EVENT_ID
3985 from
3986 PJI_PA_PROJ_EVENTS_LOG log1
3987 start with
3988 log1.WORKER_ID = p_worker_id and
3989 log1.EVENT_TYPE = 'RBS_PUSH' and
3990 log1.EVENT_ID = c.EVENT_ID and
3991 log1.ATTRIBUTE18 is null
3992 connect by
3993 log1.ATTRIBUTE2 = prior log1.EVENT_OBJECT);
3994
3995 select log1.EVENT_OBJECT
3996 into l_last_rbs_link
3997 from PJI_PA_PROJ_EVENTS_LOG log1
3998 where log1.WORKER_ID = p_worker_id and
3999 log1.EVENT_TYPE = 'RBS_PUSH' and
4000 log1.ATTRIBUTE17 = c.EVENT_ID and
4001 log1.ATTRIBUTE18 = 'PJI$LIST' and
4002 log1.EVENT_ID in (select max(log2.EVENT_ID)
4003 from PJI_PA_PROJ_EVENTS_LOG log2
4004 where log2.WORKER_ID = p_worker_id and
4005 log2.EVENT_TYPE = 'RBS_PUSH' and
4006 log2.ATTRIBUTE17 = c.EVENT_ID and
4007 log2.ATTRIBUTE18 = 'PJI$LIST');
4008
4009 update PJI_PA_PROJ_EVENTS_LOG
4010 set EVENT_OBJECT = l_last_rbs_link
4011 where WORKER_ID = p_worker_id and
4012 EVENT_TYPE = 'RBS_PUSH' and
4013 ATTRIBUTE17 = c.EVENT_ID and
4014 ATTRIBUTE18 = 'PJI$LIST';
4015
4016 end if;
4017
4018 end loop;
4019
4020 -- 'RBS_DELETE' event overrides 'RBS_PUSH' event
4021
4022 insert into PJI_PA_PROJ_EVENTS_LOG
4023 (
4024 WORKER_ID,
4025 LOG_ROWID,
4026 EVENT_TYPE,
4027 EVENT_ID,
4028 EVENT_OBJECT,
4029 OPERATION_TYPE,
4030 STATUS,
4031 ATTRIBUTE_CATEGORY,
4032 ATTRIBUTE1,
4033 ATTRIBUTE2,
4034 ATTRIBUTE3,
4035 ATTRIBUTE4,
4036 ATTRIBUTE5,
4037 ATTRIBUTE6,
4038 ATTRIBUTE7,
4039 ATTRIBUTE8,
4040 ATTRIBUTE9,
4041 ATTRIBUTE10,
4042 ATTRIBUTE11,
4043 ATTRIBUTE12,
4044 ATTRIBUTE13,
4045 ATTRIBUTE14,
4046 ATTRIBUTE15,
4047 ATTRIBUTE16,
4048 ATTRIBUTE17,
4049 ATTRIBUTE18,
4050 ATTRIBUTE19,
4051 ATTRIBUTE20
4052 )
4053 select
4054 distinct
4055 log_del.WORKER_ID,
4056 log_del.LOG_ROWID,
4057 log_del.EVENT_TYPE,
4058 log_del.EVENT_ID,
4059 log_push.ATTRIBUTE2 EVENT_OBJECT,
4060 log_del.OPERATION_TYPE,
4061 log_del.STATUS,
4062 log_del.ATTRIBUTE_CATEGORY,
4063 log_del.ATTRIBUTE1,
4064 log_del.ATTRIBUTE2,
4065 log_del.ATTRIBUTE3,
4066 log_del.ATTRIBUTE4,
4067 log_del.ATTRIBUTE5,
4068 log_del.ATTRIBUTE6,
4069 log_del.ATTRIBUTE7,
4070 log_del.ATTRIBUTE8,
4071 log_del.ATTRIBUTE9,
4072 log_del.ATTRIBUTE10,
4073 log_del.ATTRIBUTE11,
4074 log_del.ATTRIBUTE12,
4075 log_del.ATTRIBUTE13,
4076 log_del.ATTRIBUTE14,
4077 log_del.ATTRIBUTE15,
4078 log_del.ATTRIBUTE16,
4079 log_del.ATTRIBUTE17,
4080 log_del.ATTRIBUTE18,
4081 log_del.ATTRIBUTE19,
4082 log_del.ATTRIBUTE20
4083 from
4084 PJI_PA_PROJ_EVENTS_LOG log_del,
4085 PJI_PA_PROJ_EVENTS_LOG log_push
4086 where
4087 log_del.WORKER_ID = p_worker_id and
4088 log_del.EVENT_TYPE = 'RBS_DELETE' and
4089 log_push.WORKER_ID = p_worker_id and
4090 log_push.EVENT_TYPE = 'RBS_PUSH' and
4091 log_push.EVENT_OBJECT = log_del.EVENT_OBJECT;
4092
4093 delete
4094 from PJI_PA_PROJ_EVENTS_LOG log1
4095 where log1.WORKER_ID = p_worker_id and
4096 log1.EVENT_TYPE = 'RBS_PUSH' and
4097 log1.EVENT_OBJECT in (select log2.EVENT_OBJECT
4098 from PJI_PA_PROJ_EVENTS_LOG log2
4099 where log2.WORKER_ID = p_worker_id and
4100 log2.EVENT_TYPE = 'RBS_DELETE');
4101
4102 -- add PROJECT_ID to RBS_PUSH events
4103 /* Midified this insert for bug#6450097 */
4104 insert into PJI_PA_PROJ_EVENTS_LOG
4105 (
4106 WORKER_ID,
4107 LOG_ROWID,
4108 EVENT_TYPE,
4109 EVENT_ID,
4110 EVENT_OBJECT,
4111 OPERATION_TYPE,
4112 STATUS,
4113 ATTRIBUTE_CATEGORY,
4114 ATTRIBUTE1,
4115 ATTRIBUTE2,
4116 ATTRIBUTE3,
4117 ATTRIBUTE4,
4118 ATTRIBUTE5,
4119 ATTRIBUTE6,
4120 ATTRIBUTE7,
4121 ATTRIBUTE8,
4122 ATTRIBUTE9,
4123 ATTRIBUTE10,
4124 ATTRIBUTE11,
4125 ATTRIBUTE12,
4126 ATTRIBUTE13,
4127 ATTRIBUTE14,
4128 ATTRIBUTE15,
4129 ATTRIBUTE16,
4130 ATTRIBUTE17,
4131 ATTRIBUTE18,
4132 ATTRIBUTE19,
4133 ATTRIBUTE20
4134 )
4135 select
4136 distinct
4137 log.WORKER_ID,
4138 log.LOG_ROWID,
4139 log.EVENT_TYPE,
4140 log.EVENT_ID,
4141 log.EVENT_OBJECT,
4142 log.OPERATION_TYPE,
4143 log.STATUS,
4144 log.ATTRIBUTE_CATEGORY,
4145 log.ATTRIBUTE1,
4146 log.ATTRIBUTE2,
4147 log.ATTRIBUTE3,
4148 log.ATTRIBUTE4,
4149 log.ATTRIBUTE5,
4150 log.ATTRIBUTE6,
4151 log.ATTRIBUTE7,
4152 log.ATTRIBUTE8,
4153 log.ATTRIBUTE9,
4154 log.ATTRIBUTE10,
4155 log.ATTRIBUTE11,
4156 log.ATTRIBUTE12,
4157 log.ATTRIBUTE13,
4158 log.ATTRIBUTE14,
4159 log.ATTRIBUTE15,
4160 'Y' ATTRIBUTE16,
4161 log.ATTRIBUTE17,
4162 log.ATTRIBUTE18,
4163 rbs_prj.PROJECT_ID ATTRIBUTE19,
4164 log.ATTRIBUTE20
4165 from
4166 PJI_PA_PROJ_EVENTS_LOG log,
4167 PA_RBS_PRJ_ASSIGNMENTS rbs_prj,
4168 PA_RBS_VERSIONS_B rbs
4169 where
4170 log.WORKER_ID = p_worker_id and
4171 log.EVENT_TYPE = 'RBS_PUSH' and
4172 rbs.RBS_VERSION_ID = log.ATTRIBUTE2 and
4173 rbs.rbs_header_id = rbs_prj.rbs_header_id;
4174
4175 insert into PJI_PA_PROJ_EVENTS_LOG -- CBS Change
4176 (
4177 WORKER_ID,
4178 LOG_ROWID,
4179 EVENT_TYPE,
4180 EVENT_ID,
4181 EVENT_OBJECT,
4182 OPERATION_TYPE,
4183 STATUS,
4184 ATTRIBUTE_CATEGORY,
4185 ATTRIBUTE1,
4186 ATTRIBUTE2,
4187 ATTRIBUTE3,
4188 ATTRIBUTE4,
4189 ATTRIBUTE5,
4190 ATTRIBUTE6,
4191 ATTRIBUTE7,
4192 ATTRIBUTE8,
4193 ATTRIBUTE9,
4194 ATTRIBUTE10,
4195 ATTRIBUTE11,
4196 ATTRIBUTE12,
4197 ATTRIBUTE13,
4198 ATTRIBUTE14,
4199 ATTRIBUTE15,
4200 ATTRIBUTE16,
4201 ATTRIBUTE17,
4202 ATTRIBUTE18,
4203 ATTRIBUTE19,
4204 ATTRIBUTE20
4205 )
4206 select
4207 distinct
4208 log.WORKER_ID,
4209 log.LOG_ROWID,
4210 'CBS_PUSH',
4211 log.EVENT_ID,
4212 log.EVENT_OBJECT,
4213 log.OPERATION_TYPE,
4214 log.STATUS,
4215 log.ATTRIBUTE_CATEGORY,
4216 log.ATTRIBUTE1,
4217 log.ATTRIBUTE2,
4218 log.ATTRIBUTE3,
4219 log.ATTRIBUTE4,
4220 log.ATTRIBUTE5,
4221 log.ATTRIBUTE6,
4222 log.ATTRIBUTE7,
4223 log.ATTRIBUTE8,
4224 log.ATTRIBUTE9,
4225 log.ATTRIBUTE10,
4226 log.ATTRIBUTE11,
4227 log.ATTRIBUTE12,
4228 log.ATTRIBUTE13,
4229 log.ATTRIBUTE14,
4230 log.ATTRIBUTE15,
4231 'Y' ATTRIBUTE16,
4232 log.ATTRIBUTE17,
4233 log.ATTRIBUTE18,
4234 prj.PROJECT_ID ATTRIBUTE19,
4235 log.ATTRIBUTE20
4236 from
4237 PJI_PA_PROJ_EVENTS_LOG log,
4238 PA_PROJECTS_ALL prj
4239 where
4240 log.WORKER_ID = p_worker_id and
4241 log.EVENT_TYPE = 'RBS_PUSH' and
4242 prj.cbs_version_id = log.ATTRIBUTE2 and
4243 prj.cbs_enable_flag = 'Y';
4244
4245 delete
4246 from PJI_PA_PROJ_EVENTS_LOG
4247 where WORKER_ID = p_worker_id and
4248 EVENT_TYPE = 'RBS_PUSH' and
4249 ATTRIBUTE16 = 'N';
4250
4251
4252 end if;
4253
4254 PJI_PROCESS_UTIL.REGISTER_STEP_COMPLETION(l_process, 'PJI_PJP_SUM_ROLLUP.CREATE_EVENTS_SNAPSHOT(p_worker_id);');
4255
4256 commit;
4257
4258 end CREATE_EVENTS_SNAPSHOT;
4259
4260
4261 -- -----------------------------------------------------
4262 -- procedure PROCESS_RBS_CHANGES
4263 --
4264 -- History
4265 -- 19-MAR-2004 SVERMETT Created
4266 --
4267 -- Internal PJP Summarization API.
4268 --
4269 -- Called by RBS program
4270 --
4271 -- -----------------------------------------------------
4272 procedure PROCESS_RBS_CHANGES (p_worker_id in number) is
4273
4274 cursor rbs_events (p_worker_id in number) is
4275 select
4276 distinct
4277 ATTRIBUTE20 RBS_HEADER_ID,
4278 ATTRIBUTE2 OLD_RBS_VERSION_ID,
4279 EVENT_OBJECT NEW_RBS_VERSION_ID
4280 from
4281 PJI_PA_PROJ_EVENTS_LOG
4282 where
4283 WORKER_ID = p_worker_id and
4284 EVENT_TYPE = 'RBS_PUSH';
4285
4286 l_process varchar2(30);
4287 l_extraction_type varchar2(30);
4288
4289 l_return_status varchar2(255);
4290 l_msg_count number;
4291 l_msg_data varchar2(2000);
4292
4293 begin
4294
4295 l_process := PJI_PJP_SUM_MAIN.g_process || to_char(p_worker_id);
4296
4297 if (not PJI_PROCESS_UTIL.NEED_TO_RUN_STEP(l_process, 'PJI_PJP_SUM_ROLLUP.PROCESS_RBS_CHANGES(p_worker_id);')) then
4298 return;
4299 end if;
4300
4301 l_extraction_type := PJI_PROCESS_UTIL.GET_PROCESS_PARAMETER(l_process, 'EXTRACTION_TYPE');
4302
4303 if (l_extraction_type = 'RBS') then
4304
4305 for c in rbs_events(p_worker_id) loop
4306
4307 PA_RBS_UTILS.PROCESS_RBS_CHANGES(c.RBS_HEADER_ID,
4308 c.NEW_RBS_VERSION_ID,
4309 c.OLD_RBS_VERSION_ID,
4310 l_return_status,
4311 l_msg_count,
4312 l_msg_data);
4313
4314 end loop;
4315
4316 end if;
4317
4318 PJI_PROCESS_UTIL.REGISTER_STEP_COMPLETION(l_process, 'PJI_PJP_SUM_ROLLUP.PROCESS_RBS_CHANGES(p_worker_id);');
4319
4320 commit;
4321
4322 end PROCESS_RBS_CHANGES;
4323
4324
4325 -- -----------------------------------------------------
4326 -- procedure CREATE_MAPPING_RULES
4327 --
4328 -- History
4329 -- 19-MAR-2004 SVERMETT Created
4330 --
4331 -- Internal PJP Summarization API.
4332 --
4333 -- Called by RBS program
4334 --
4335 -- -----------------------------------------------------
4336 procedure CREATE_MAPPING_RULES (p_worker_id in number) is
4337
4338 cursor required_rbs (p_worker_id in number) is
4339 select
4340 distinct asg.RBS_VERSION_ID -- bug 6892644
4341 from
4342 PJI_PJP_PROJ_BATCH_MAP map,
4343 PA_RBS_PRJ_ASSIGNMENTS asg
4344 where
4345 map.WORKER_ID = p_worker_id and
4346 asg.PROJECT_ID = map.PROJECT_ID and
4347 asg.REPORTING_USAGE_FLAG = 'Y';
4348
4349 l_process varchar2(30);
4350 l_extraction_type varchar2(30);
4351
4352 l_return_status varchar2(255);
4353 l_msg_count number;
4354 l_msg_data varchar2(2000);
4355
4356 begin
4357
4358 l_process := PJI_PJP_SUM_MAIN.g_process || to_char(p_worker_id);
4359
4360 if (not PJI_PROCESS_UTIL.NEED_TO_RUN_STEP(l_process, 'PJI_PJP_SUM_ROLLUP.CREATE_MAPPING_RULES(p_worker_id);')) then
4361 return;
4362 end if;
4363
4364 l_extraction_type := PJI_PROCESS_UTIL.GET_PROCESS_PARAMETER(l_process, 'EXTRACTION_TYPE');
4365
4366 for c in required_rbs(p_worker_id) loop
4367
4368 begin
4369 PA_RBS_MAPPING.CREATE_MAPPING_RULES(c.RBS_VERSION_ID,
4370 l_return_status,
4371 l_msg_count,
4372 l_msg_data);
4373 exception when others then
4374 PJI_UTILS.WRITE2LOG('CREATE_MAPPING_RULES:' ||
4375 c.RBS_VERSION_ID || ' : ' || SQLERRM);
4376 end;
4377
4378 end loop;
4379
4380 PJI_PROCESS_UTIL.REGISTER_STEP_COMPLETION(l_process, 'PJI_PJP_SUM_ROLLUP.CREATE_MAPPING_RULES(p_worker_id);');
4381
4382 commit;
4383
4384 end CREATE_MAPPING_RULES;
4385
4386
4387 -- -----------------------------------------------------
4388 -- procedure MAP_RBS_HEADERS
4389 --
4390 -- History
4391 -- 19-MAR-2004 SVERMETT Created
4392 --
4393 -- Internal PJP Summarization API.
4394 --
4395 -- Called by RBS program
4396 --
4397 -- -----------------------------------------------------
4398 procedure MAP_RBS_HEADERS (p_worker_id in number) is
4399
4400 l_process varchar2(30);
4401 l_extraction_type varchar2(30);
4402
4403 l_return_status varchar2(255);
4404 l_msg_count number;
4405 l_msg_data varchar2(2000);
4406
4407 begin
4408
4409 l_process := PJI_PJP_SUM_MAIN.g_process || to_char(p_worker_id);
4410
4411 if (not PJI_PROCESS_UTIL.NEED_TO_RUN_STEP(l_process, 'PJI_PJP_SUM_ROLLUP.MAP_RBS_HEADERS(p_worker_id);')) then
4412 return;
4413 end if;
4414
4415 l_extraction_type := PJI_PROCESS_UTIL.GET_PROCESS_PARAMETER(l_process, 'EXTRACTION_TYPE');
4416
4417 begin
4418 PA_RBS_MAPPING.MAP_RBS_ACTUALS(p_worker_id,
4419 l_return_status,
4420 l_msg_count,
4421 l_msg_data);
4422 exception when others then
4423 PJI_UTILS.WRITE2LOG('MAP_RBS_HEADERS:' || SQLERRM);
4424 end;
4425
4426 PJI_PROCESS_UTIL.REGISTER_STEP_COMPLETION(l_process, 'PJI_PJP_SUM_ROLLUP.MAP_RBS_HEADERS(p_worker_id);');
4427
4428 commit;
4429
4430 end MAP_RBS_HEADERS;
4431
4432
4433 -- -----------------------------------------------------
4434 -- procedure UPDATE_XBS_DENORM_FULL
4435 --
4436 -- History
4437 -- 19-MAR-2004 SVERMETT Created
4438 --
4439 -- Internal PJP Summarization API.
4440 --
4441 -- -----------------------------------------------------
4442 procedure UPDATE_XBS_DENORM_FULL (p_worker_id in number) is
4443
4444 l_process varchar2(30);
4445 l_extraction_type varchar2(30);
4446
4447 l_last_update_date date;
4448 l_last_updated_by number;
4449 l_creation_date date;
4450 l_created_by number;
4451 l_last_update_login number;
4452
4453 l_count number;
4454
4455 begin
4456
4457 l_last_update_date := sysdate;
4458 l_last_updated_by := FND_GLOBAL.USER_ID;
4459 l_creation_date := sysdate;
4460 l_created_by := FND_GLOBAL.USER_ID;
4461 l_last_update_login := FND_GLOBAL.LOGIN_ID;
4462
4463 l_process := PJI_PJP_SUM_MAIN.g_process || to_char(p_worker_id);
4464
4465 if (not PJI_PROCESS_UTIL.NEED_TO_RUN_STEP(l_process, 'PJI_PJP_SUM_ROLLUP.UPDATE_XBS_DENORM_FULL(p_worker_id);')) then
4466 return;
4467 end if;
4468
4469 l_extraction_type := PJI_PROCESS_UTIL.GET_PROCESS_PARAMETER(l_process, 'EXTRACTION_TYPE');
4470
4471 l_count := 0;
4472
4473 if (l_extraction_type = 'FULL') then
4474
4475 insert into PJI_XBS_DENORM den_i
4476 (
4477 STRUCT_TYPE,
4478 PRG_GROUP,
4479 STRUCT_VERSION_ID,
4480 SUP_PROJECT_ID,
4481 SUP_ID,
4482 SUP_EMT_ID,
4483 SUBRO_ID,
4484 SUB_ID,
4485 SUB_EMT_ID,
4486 SUP_LEVEL,
4487 SUB_LEVEL,
4488 SUB_ROLLUP_ID,
4489 SUB_LEAF_FLAG,
4490 RELATIONSHIP_TYPE,
4491 LAST_UPDATE_DATE,
4492 LAST_UPDATED_BY,
4493 CREATION_DATE,
4494 CREATED_BY,
4495 LAST_UPDATE_LOGIN
4496 )
4497 select
4498 pa.STRUCT_TYPE,
4499 pa.PRG_GROUP,
4500 pa.STRUCT_VERSION_ID,
4501 pa.SUP_PROJECT_ID,
4502 pa.SUP_ID,
4503 pa.SUP_EMT_ID,
4504 pa.SUBRO_ID,
4505 pa.SUB_ID,
4506 pa.SUB_EMT_ID,
4507 pa.SUP_LEVEL,
4508 pa.SUB_LEVEL,
4509 pa.SUB_ROLLUP_ID,
4510 pa.SUB_LEAF_FLAG,
4511 pa.RELATIONSHIP_TYPE,
4512 l_last_update_date,
4513 l_last_updated_by,
4514 l_creation_date,
4515 l_created_by,
4516 l_last_update_login
4517 from
4518 PJI_PJP_PROJ_BATCH_MAP map,
4519 PA_XBS_DENORM pa
4520 where
4521 map.WORKER_ID = p_worker_id and
4522 pa.SUP_PROJECT_ID = map.PROJECT_ID and
4523 not exists (select /*+ index(pji, PJI_XBS_DENORM_N3) */
4524 1
4525 from PJI_XBS_DENORM pji
4526 where pji.STRUCT_TYPE = 'PRG' and
4527 pji.SUB_EMT_ID = pji.SUB_ROLLUP_ID and
4528 pji.SUP_PROJECT_ID = pa.SUP_PROJECT_ID);
4529
4530 l_count := l_count + sql%rowcount;
4531
4532 elsif (l_extraction_type = 'INCREMENTAL') then
4533
4534 insert into PJI_XBS_DENORM den_i
4535 (
4536 STRUCT_TYPE,
4537 PRG_GROUP,
4538 STRUCT_VERSION_ID,
4539 SUP_PROJECT_ID,
4540 SUP_ID,
4541 SUP_EMT_ID,
4542 SUBRO_ID,
4543 SUB_ID,
4544 SUB_EMT_ID,
4545 SUP_LEVEL,
4546 SUB_LEVEL,
4547 SUB_ROLLUP_ID,
4548 SUB_LEAF_FLAG,
4549 RELATIONSHIP_TYPE,
4550 LAST_UPDATE_DATE,
4551 LAST_UPDATED_BY,
4552 CREATION_DATE,
4553 CREATED_BY,
4554 LAST_UPDATE_LOGIN
4555 )
4556 select /*+ ordered index(pa PA_XBS_DENORM_N3) use_hash(PA) */ /* Modified for Bug 7669026 */
4557 pa.STRUCT_TYPE,
4558 pa.PRG_GROUP,
4559 pa.STRUCT_VERSION_ID,
4560 pa.SUP_PROJECT_ID,
4561 pa.SUP_ID,
4562 pa.SUP_EMT_ID,
4563 pa.SUBRO_ID,
4564 pa.SUB_ID,
4565 pa.SUB_EMT_ID,
4566 pa.SUP_LEVEL,
4567 pa.SUB_LEVEL,
4568 pa.SUB_ROLLUP_ID,
4569 pa.SUB_LEAF_FLAG,
4570 pa.RELATIONSHIP_TYPE,
4571 l_last_update_date,
4572 l_last_updated_by,
4573 l_creation_date,
4574 l_created_by,
4575 l_last_update_login
4576 from
4577 PJI_PJP_PROJ_BATCH_MAP map,
4578 PA_XBS_DENORM pa
4579 where
4580 map.WORKER_ID = p_worker_id and
4581 pa.SUP_PROJECT_ID = map.PROJECT_ID and
4582 pa.STRUCT_TYPE = 'PRG' and
4583 pa.SUB_EMT_ID = pa.SUB_ROLLUP_ID and
4584 not exists (select /*+ index(pji, PJI_XBS_DENORM_N3) use_hash(PJI) */ /* Modified for Bug 7669026 */
4585 1
4586 from PJI_XBS_DENORM pji
4587 where pji.STRUCT_TYPE = 'PRG' and
4588 pji.SUB_EMT_ID = pji.SUB_ROLLUP_ID and
4589 pji.SUP_PROJECT_ID = pa.SUP_PROJECT_ID);
4590
4591 end if;
4592
4593 if (l_count > 0) then
4594
4595 delete
4596 from PJI_REP_XBS_DENORM;
4597 -- where PROJECT_ID in (select map.PROJECT_ID
4598 -- from PJI_PJP_PROJ_BATCH_MAP map
4599 -- where map.WORKER_ID = p_worker_id);
4600
4601 end if;
4602
4603 PJI_PROCESS_UTIL.REGISTER_STEP_COMPLETION(l_process, 'PJI_PJP_SUM_ROLLUP.UPDATE_XBS_DENORM_FULL(p_worker_id);');
4604
4605 commit;
4606
4607 end UPDATE_XBS_DENORM_FULL;
4608
4609
4610 -- -----------------------------------------------------
4611 -- procedure LOCK_HEADERS
4612 --
4613 -- History
4614 -- 19-MAR-2004 SVERMETT Created
4615 --
4616 -- Internal PJP Summarization API.
4617 --
4618 -- Called by RBS program
4619 --
4620 -- -----------------------------------------------------
4621 procedure LOCK_HEADERS (p_worker_id in number) is
4622
4623 l_process varchar2(30);
4624 l_extraction_type varchar2(30);
4625
4626 l_lock_mode varchar2(255);
4627 l_return_status varchar2(255);
4628 l_msg_code varchar2(255);
4629
4630 begin
4631
4632 l_process := PJI_PJP_SUM_MAIN.g_process || to_char(p_worker_id);
4633
4634 if (not PJI_PROCESS_UTIL.NEED_TO_RUN_STEP(l_process, 'PJI_PJP_SUM_ROLLUP.LOCK_HEADERS(p_worker_id);')) then
4635 return;
4636 end if;
4637
4638 l_extraction_type := PJI_PROCESS_UTIL.GET_PROCESS_PARAMETER(l_process, 'EXTRACTION_TYPE');
4639
4640 -- PJI_FM_XBS_ACCUM_MAINT.WBS_LOCK_PVT(p_online_flag => 'N',
4641 -- x_lock_mode => l_lock_mode,
4642 -- x_return_status => l_return_status);
4643
4644 -- SELECT DECODE(l_extraction_type, 'PARTIAL', 'PLANTYPE', l_extraction_type)
4645 -- INTO l_extraction_type
4646 -- FROM DUAL ;
4647
4648 Pji_Fm_Plan_Maint_Pvt.OBTAIN_RELEASE_LOCKS (
4649 p_context => l_extraction_type
4650 , p_lock_mode => 'P'
4651 , x_return_status => l_return_status
4652 , x_msg_code => l_msg_code
4653 );
4654
4655 PJI_PROCESS_UTIL.REGISTER_STEP_COMPLETION(l_process, 'PJI_PJP_SUM_ROLLUP.LOCK_HEADERS(p_worker_id);');
4656
4657 commit;
4658
4659 end LOCK_HEADERS;
4660
4661
4662 -- -----------------------------------------------------
4663 -- procedure UPDATE_PROGRAM_WBS
4664 --
4665 -- History
4666 -- 19-MAR-2004 SVERMETT Created
4667 --
4668 -- Internal PJP Summarization API.
4669 --
4670 -- -----------------------------------------------------
4671 procedure UPDATE_PROGRAM_WBS (p_worker_id in number) is
4672
4673 l_process varchar2(30);
4674 l_extraction_type varchar2(30);
4675
4676 l_last_update_date date;
4677 l_last_updated_by number;
4678 l_creation_date date;
4679 l_created_by number;
4680 l_last_update_login number;
4681
4682 begin
4683
4684 l_process := PJI_PJP_SUM_MAIN.g_process || to_char(p_worker_id);
4685
4686 if (not PJI_PROCESS_UTIL.NEED_TO_RUN_STEP(l_process, 'PJI_PJP_SUM_ROLLUP.UPDATE_PROGRAM_WBS(p_worker_id);')) then
4687 return;
4688 end if;
4689
4690 l_extraction_type := PJI_PROCESS_UTIL.GET_PROCESS_PARAMETER(l_process, 'EXTRACTION_TYPE');
4691
4692 l_last_update_date := sysdate;
4693 l_last_updated_by := FND_GLOBAL.USER_ID;
4694 l_creation_date := sysdate;
4695 l_created_by := FND_GLOBAL.USER_ID;
4696 l_last_update_login := FND_GLOBAL.LOGIN_ID;
4697
4698 if (l_extraction_type = 'FULL') then
4699
4700 insert into PJI_PJP_WBS_HEADER
4701 (
4702 PROJECT_ID,
4703 PLAN_VERSION_ID,
4704 WBS_VERSION_ID,
4705 WP_FLAG,
4706 CB_FLAG,
4707 CO_FLAG,
4708 LOCK_FLAG,
4709 PLAN_TYPE_ID,
4710 MIN_TXN_DATE,
4711 MAX_TXN_DATE,
4712 LAST_UPDATE_DATE,
4713 LAST_UPDATED_BY,
4714 CREATION_DATE,
4715 CREATED_BY,
4716 LAST_UPDATE_LOGIN,
4717 PLAN_TYPE_CODE
4718 )
4719 select
4720 PROJECT_ID,
4721 -1,
4722 PA_PROJECT_STRUCTURE_UTILS.GET_FIN_STRUC_VER_ID(PROJECT_ID),
4723 'N',
4724 null,
4725 null,
4726 'P',
4727 null,
4728 to_date('3000/01/01', 'YYYY/MM/DD') MIN_TXN_DATE,
4729 to_date('0001/01/01', 'YYYY/MM/DD') MAX_TXN_DATE,
4730 l_last_update_date,
4731 l_last_updated_by,
4732 l_creation_date,
4733 l_created_by,
4734 l_last_update_login,
4735 'A'
4736 from
4737 (
4738 select
4739 distinct
4740 prj_emt.PROJECT_ID
4741 from
4742 PJI_PJP_PROJ_BATCH_MAP map,
4743 PA_PROJ_ELEMENTS prj_emt
4744 where
4745 map.WORKER_ID = p_worker_id and
4746 prj_emt.OBJECT_TYPE = 'PA_STRUCTURES' and
4747 prj_emt.PROJECT_ID = map.PROJECT_ID
4748 )
4749 order by
4750 PROJECT_ID;
4751
4752 while (SQL%ROWCOUNT > 0) loop
4753
4754 update PJI_PJP_WBS_HEADER wbs_hdr
4755 set wbs_hdr.WBS_VERSION_ID =
4756 (select /*+ index(log PA_PJI_PROJ_EVENTS_LOG_N1) */
4757 distinct log.ATTRIBUTE2
4758 from PA_PJI_PROJ_EVENTS_LOG log
4759 where log.EVENT_TYPE = 'WBS_PUBLISH' and
4760 log.EVENT_OBJECT = wbs_hdr.WBS_VERSION_ID),
4761 wbs_hdr.LAST_UPDATE_DATE = l_last_update_date,
4762 wbs_hdr.LAST_UPDATED_BY = l_last_updated_by,
4763 wbs_hdr.LAST_UPDATE_LOGIN = l_last_update_login
4764 where wbs_hdr.PROJECT_ID in
4765 (select map.PROJECT_ID
4766 from PJI_PJP_PROJ_BATCH_MAP map
4767 where map.WORKER_ID = p_worker_id) and
4768 wbs_hdr.PLAN_VERSION_ID = -1 and
4769 wbs_hdr.WBS_VERSION_ID in
4770 (select log.EVENT_OBJECT
4771 from PA_PJI_PROJ_EVENTS_LOG log
4772 where log.EVENT_TYPE = 'WBS_PUBLISH');
4773
4774 end loop;
4775
4776 else
4777
4778 update PJI_PJP_WBS_HEADER
4779 set WBS_VERSION_ID =
4780 PA_PROJECT_STRUCTURE_UTILS.GET_FIN_STRUC_VER_ID
4781 (PROJECT_ID),
4782 LOCK_FLAG = 'P',
4783 LAST_UPDATE_DATE = l_last_update_date,
4784 LAST_UPDATED_BY = l_last_updated_by,
4785 LAST_UPDATE_LOGIN = l_last_update_login
4786 where PLAN_VERSION_ID = -1 and
4787 PROJECT_ID in (select EVENT_OBJECT
4788 from PJI_PA_PROJ_EVENTS_LOG
4789 where WORKER_ID = p_worker_id and
4790 EVENT_TYPE in ('WBS_CHANGE',
4791 'WBS_PUBLISH'));
4792
4793 insert into PJI_PJP_WBS_HEADER
4794 (
4795 PROJECT_ID,
4796 PLAN_VERSION_ID,
4797 WBS_VERSION_ID,
4798 WP_FLAG,
4799 CB_FLAG,
4800 CO_FLAG,
4801 LOCK_FLAG,
4802 PLAN_TYPE_ID,
4803 MIN_TXN_DATE,
4804 MAX_TXN_DATE,
4805 LAST_UPDATE_DATE,
4806 LAST_UPDATED_BY,
4807 CREATION_DATE,
4808 CREATED_BY,
4809 LAST_UPDATE_LOGIN,
4810 PLAN_TYPE_CODE
4811 )
4812 select
4813 PROJECT_ID,
4814 -1,
4815 PA_PROJECT_STRUCTURE_UTILS.GET_FIN_STRUC_VER_ID(PROJECT_ID),
4816 'N',
4817 null,
4818 null,
4819 'P',
4820 null,
4821 to_date('3000/01/01', 'YYYY/MM/DD') MIN_TXN_DATE,
4822 to_date('0001/01/01', 'YYYY/MM/DD') MAX_TXN_DATE,
4823 l_last_update_date,
4824 l_last_updated_by,
4825 l_creation_date,
4826 l_created_by,
4827 l_last_update_login,
4828 'A'
4829 from
4830 (
4831 select
4832 distinct
4833 prj_emt.PROJECT_ID
4834 from
4835 PJI_PA_PROJ_EVENTS_LOG log,
4836 PA_PROJ_ELEMENTS prj_emt,
4837 PJI_PJP_WBS_HEADER hdr
4838 where
4839 log.WORKER_ID = p_worker_id and
4840 log.EVENT_TYPE in ('WBS_CHANGE', 'WBS_PUBLISH') and
4841 prj_emt.OBJECT_TYPE = 'PA_STRUCTURES' and
4842 prj_emt.PROJECT_ID = log.EVENT_OBJECT and
4843 -1 = hdr.PLAN_VERSION_ID (+) and
4844 prj_emt.PROJECT_ID = hdr.PROJECT_ID (+) and
4845 hdr.PROJECT_ID is null
4846 )
4847 order by
4848 PROJECT_ID;
4849
4850 end if;
4851
4852 PJI_PROCESS_UTIL.REGISTER_STEP_COMPLETION(l_process, 'PJI_PJP_SUM_ROLLUP.UPDATE_PROGRAM_WBS(p_worker_id);');
4853
4854 commit;
4855
4856 end UPDATE_PROGRAM_WBS;
4857
4858
4859 -- -----------------------------------------------------
4860 -- procedure PURGE_EVENT_DATA
4861 --
4862 -- History
4863 -- 19-MAR-2004 SVERMETT Created
4864 --
4865 -- Internal PJP Summarization API.
4866 --
4867 -- Called by RBS program
4868 --
4869 -- -----------------------------------------------------
4870 procedure PURGE_EVENT_DATA (p_worker_id in number) is
4871
4872 l_process varchar2(30);
4873 l_extraction_type varchar2(30);
4874
4875 /* Bug Fix 9212516 */
4876 TYPE row_id_tab_type IS TABLE OF rowid index by binary_integer;
4877 x_row_id row_id_tab_type;
4878
4879 cursor c1 (p_worker_id in number) is
4880 select rowid from PJI_FP_XBS_ACCUM_F
4881 where RBS_AGGR_LEVEL in ('L', 'R') and
4882 (PROJECT_ID,
4883 PLAN_VERSION_ID,
4884 RBS_VERSION_ID) in
4885 -- Bug 12420151 -- Added below select
4886 (select /*+ use_hash(log, rbs_hdr) ordered */ distinct
4887 rbs_hdr.PROJECT_ID,
4888 rbs_hdr.PLAN_VERSION_ID,
4889 rbs_hdr.RBS_VERSION_ID
4890 from PJI_PA_PROJ_EVENTS_LOG log,
4891 PJI_PJP_RBS_HEADER rbs_hdr
4892 where log.WORKER_ID = p_worker_id
4893 and ( (log.EVENT_TYPE = 'RBS_PUSH' and rbs_hdr.RBS_VERSION_ID = log.ATTRIBUTE2)
4894 or (log.EVENT_TYPE = 'RBS_DELETE' and rbs_hdr.RBS_VERSION_ID = log.EVENT_OBJECT)));
4895 -- Bug 12420151 -- Commented below select
4896 /*(select distinct
4897 rbs_hdr.PROJECT_ID,
4898 rbs_hdr.PLAN_VERSION_ID,
4899 rbs_hdr.RBS_VERSION_ID
4900 from PJI_PA_PROJ_EVENTS_LOG log,
4901 PJI_PJP_RBS_HEADER rbs_hdr
4902 where log.WORKER_ID = p_worker_id and
4903 log.EVENT_TYPE = 'RBS_PUSH' and
4904 rbs_hdr.RBS_VERSION_ID =
4905 log.ATTRIBUTE2
4906 union
4907 select distinct
4908 rbs_hdr.PROJECT_ID,
4909 rbs_hdr.PLAN_VERSION_ID,
4910 rbs_hdr.RBS_VERSION_ID
4911 from PJI_PA_PROJ_EVENTS_LOG log,
4912 PJI_PJP_RBS_HEADER rbs_hdr
4913 where log.WORKER_ID = p_worker_id and
4914 log.EVENT_TYPE = 'RBS_DELETE' and
4915 rbs_hdr.RBS_VERSION_ID = log.EVENT_OBJECT); */
4916
4917 /* Bug Fix 9212516 */
4918
4919 begin
4920
4921 l_process := PJI_PJP_SUM_MAIN.g_process || to_char(p_worker_id);
4922
4923 if (not PJI_PROCESS_UTIL.NEED_TO_RUN_STEP(l_process, 'PJI_PJP_SUM_ROLLUP.PURGE_EVENT_DATA(p_worker_id);')) then
4924 return;
4925 end if;
4926
4927 l_extraction_type := PJI_PROCESS_UTIL.GET_PROCESS_PARAMETER(l_process, 'EXTRACTION_TYPE');
4928
4929 if (l_extraction_type = 'INCREMENTAL') then
4930
4931 delete
4932 from PJI_FP_XBS_ACCUM_F
4933 where (RBS_AGGR_LEVEL,
4934 WBS_ROLLUP_FLAG,
4935 PRG_ROLLUP_FLAG) in (('L', 'Y', 'N'),
4936 ('R', 'N', 'N'),
4937 ('R', 'Y', 'N')) and
4938 (PROJECT_ID,
4939 PLAN_VERSION_ID,
4940 decode(PLAN_VERSION_ID,
4941 -3, PLAN_TYPE_ID,
4942 -4, PLAN_TYPE_ID,
4943 -1)) in (select
4944 log.ATTRIBUTE1,
4945 decode(log.EVENT_TYPE,
4946 'WBS_CHANGE', log.ATTRIBUTE3,
4947 'WBS_PUBLISH', log.ATTRIBUTE3,
4948 'PLAN_BASELINE', -3,
4949 'PLAN_ORIGINAL', -4),
4950 decode(log.EVENT_TYPE,
4951 'WBS_CHANGE', -1,
4952 'WBS_PUBLISH', -1,
4953 'PLAN_BASELINE', log.ATTRIBUTE2,
4954 'PLAN_ORIGINAL', log.ATTRIBUTE2)
4955 from
4956 PJI_PA_PROJ_EVENTS_LOG log
4957 where
4958 log.WORKER_ID = p_worker_id and
4959 log.EVENT_TYPE in ('WBS_CHANGE',
4960 'WBS_PUBLISH',
4961 'PLAN_BASELINE',
4962 'PLAN_ORIGINAL'));
4963
4964 elsif (l_extraction_type = 'RBS') then
4965
4966 delete
4967 from PJI_PJP_RBS_HEADER
4968 where RBS_VERSION_ID in (select distinct
4969 log.EVENT_OBJECT
4970 from PJI_PA_PROJ_EVENTS_LOG log
4971 where log.WORKER_ID = p_worker_id and
4972 log.EVENT_TYPE = 'RBS_DELETE');
4973
4974 delete
4975 from PJI_ROLLUP_LEVEL_STATUS
4976 where RBS_VERSION_ID in (select distinct
4977 decode(log.EVENT_TYPE,
4978 'RBS_PUSH', log.ATTRIBUTE2,
4979 'RBS_DELETE', log.EVENT_OBJECT)
4980 from PJI_PA_PROJ_EVENTS_LOG log
4981 where log.WORKER_ID = p_worker_id and
4982 log.EVENT_TYPE in ('RBS_PUSH',
4983 'RBS_DELETE'));
4984
4985 /*Bug Fix 9212516*/
4986 open c1(p_worker_id);
4987 loop
4988
4989 fetch c1 bulk collect into x_row_id limit 500000;
4990
4991 If x_row_id.count > 0 then
4992
4993 Forall i in x_row_id.first..x_row_id.last
4994 delete
4995 from PJI_FP_XBS_ACCUM_F
4996 where rowid = x_row_id(i);
4997
4998 x_row_id.delete;
4999
5000 exit when c1%notfound;
5001 Else
5002 Exit;
5003
5004 END IF;
5005
5006 end loop;
5007
5008 close c1;
5009 /*Bug Fix 9212516*/
5010
5011
5012 end if;
5013
5014 PJI_PROCESS_UTIL.REGISTER_STEP_COMPLETION(l_process, 'PJI_PJP_SUM_ROLLUP.PURGE_EVENT_DATA(p_worker_id);');
5015
5016 commit;
5017
5018 end PURGE_EVENT_DATA;
5019
5020
5021 -- -----------------------------------------------------
5022 -- procedure UPDATE_PROGRAM_RBS
5023 --
5024 -- History
5025 -- 19-MAR-2004 SVERMETT Created
5026 --
5027 -- Internal PJP Summarization API.
5028 --
5029 -- Called by RBS program
5030 --
5031 -- -----------------------------------------------------
5032 procedure UPDATE_PROGRAM_RBS (p_worker_id in number) is
5033
5034 cursor rbs_prg_full (p_worker_id in number) is
5035 select
5036 distinct
5037 asg.RBS_HEADER_ID,
5038 asg.RBS_VERSION_ID,
5039 den2.SUP_PROJECT_ID PROJECT_ID,
5040 decode(den1.SUB_EMT_ID,
5041 den1.SUB_ROLLUP_ID, 'Y',
5042 'N') PROG_REP_USAGE_FLAG,
5043 'Y' REPORTING_USAGE_FLAG,
5044 'N' FP_USAGE_FLAG
5045 from
5046 PJI_PJP_PROJ_BATCH_MAP map,
5047 PA_RBS_PRJ_ASSIGNMENTS asg,
5048 PA_XBS_DENORM den1,
5049 PA_XBS_DENORM den2
5050 where
5051 map.WORKER_ID = p_worker_id and
5052 asg.PROJECT_ID = map.PROJECT_ID and
5053 asg.PROG_REP_USAGE_FLAG = 'Y' and
5054 asg.REPORTING_USAGE_FLAG = 'Y' and
5055 den1.STRUCT_TYPE = 'PRG' and
5056 den1.STRUCT_VERSION_ID is null and
5057 den1.SUP_PROJECT_ID = asg.PROJECT_ID and
5058 (den1.SUB_EMT_ID = den1.SUB_ROLLUP_ID or
5059 den1.SUP_EMT_ID <> den1.SUB_EMT_ID) and
5060 den2.STRUCT_TYPE = 'PRG' and
5061 den2.STRUCT_VERSION_ID is null and
5062 den2.SUP_EMT_ID = den2.SUB_EMT_ID and
5063 den2.SUP_EMT_ID = den1.SUB_EMT_ID
5064 order by
5065 asg.RBS_HEADER_ID,
5066 asg.RBS_VERSION_ID;
5067
5068 cursor rbs_prg (p_worker_id in number) is
5069 select
5070 distinct
5071 log.ATTRIBUTE2 RBS_HEADER_ID,
5072 log.EVENT_OBJECT RBS_VERSION_ID,
5073 log.ATTRIBUTE1 PROJECT_ID,
5074 log.ATTRIBUTE17 PROGRAM_ID,
5075 log.ATTRIBUTE18 PROG_REP_USAGE_FLAG,
5076 'Y' REPORTING_USAGE_FLAG,
5077 'N' FP_USAGE_FLAG,
5078 log.ATTRIBUTE19 UPDATE_HEADER_ONLY_FLAG
5079 from
5080 PJI_PA_PROJ_EVENTS_LOG log
5081 where
5082 log.WORKER_ID = p_worker_id and
5083 log.EVENT_TYPE = 'RBS_ASSOC' and
5084 log.ATTRIBUTE20 = 'CONVERTED_RBS_PRG_EVENT'
5085 order by
5086 log.ATTRIBUTE17,
5087 log.ATTRIBUTE2,
5088 log.EVENT_OBJECT;
5089
5090 cursor rbs_assoc (p_worker_id in number) is
5091 select
5092 distinct
5093 log.ATTRIBUTE2 RBS_HEADER_ID,
5094 log.EVENT_OBJECT RBS_VERSION_ID,
5095 log.ATTRIBUTE1 PROJECT_ID,
5096 'N' PROG_REP_USAGE_FLAG,
5097 'Y' REPORTING_USAGE_FLAG,
5098 'N' FP_USAGE_FLAG
5099 from
5100 PJI_PA_PROJ_EVENTS_LOG log
5101 where
5102 log.WORKER_ID = p_worker_id and
5103 log.EVENT_TYPE = 'RBS_ASSOC' and
5104 log.ATTRIBUTE20 is null
5105 order by
5106 log.ATTRIBUTE2,
5107 log.EVENT_OBJECT;
5108
5109 cursor rbs_push (p_worker_id in number) is
5110 select
5111 distinct
5112 log.ATTRIBUTE20 RBS_HEADER_ID,
5113 log.EVENT_OBJECT RBS_VERSION_ID,
5114 log.ATTRIBUTE2 OLD_RBS_VERSION_ID,
5115 log.ATTRIBUTE19 PROJECT_ID,
5116 'N' PROG_REP_USAGE_FLAG,
5117 'Y' REPORTING_USAGE_FLAG,
5118 'N' FP_USAGE_FLAG
5119 from
5120 PJI_PA_PROJ_EVENTS_LOG log
5121 where
5122 log.WORKER_ID = p_worker_id and
5123 log.EVENT_TYPE = 'RBS_PUSH'
5124 order by
5125 log.ATTRIBUTE20,
5126 log.EVENT_OBJECT;
5127
5128 l_process varchar2(30);
5129 l_extraction_type varchar2(30);
5130
5131 l_program_id number;
5132 l_rbs_header_id number;
5133 l_rbs_version_id number;
5134 l_prj_index number;
5135 l_project_id_tbl system.pa_num_tbl_type;
5136 l_count number;
5137 l_rowid rowid;
5138 l_return_status varchar2(255);
5139 l_error_code varchar2(255);
5140
5141 l_last_update_date date;
5142 l_last_updated_by number;
5143 l_creation_date date;
5144 l_created_by number;
5145 l_last_update_login number;
5146
5147 begin
5148
5149 l_process := PJI_PJP_SUM_MAIN.g_process || to_char(p_worker_id);
5150
5151 if (not PJI_PROCESS_UTIL.NEED_TO_RUN_STEP(l_process, 'PJI_PJP_SUM_ROLLUP.UPDATE_PROGRAM_RBS(p_worker_id);')) then
5152 return;
5153 end if;
5154
5155 l_extraction_type := PJI_PROCESS_UTIL.GET_PROCESS_PARAMETER(l_process, 'EXTRACTION_TYPE');
5156
5157 l_last_update_date := sysdate;
5158 l_last_updated_by := FND_GLOBAL.USER_ID;
5159 l_creation_date := sysdate;
5160 l_created_by := FND_GLOBAL.USER_ID;
5161 l_last_update_login := FND_GLOBAL.LOGIN_ID;
5162
5163 if (l_extraction_type = 'FULL') then
5164
5165 l_rbs_header_id := -1;
5166 l_rbs_version_id := -1;
5167 l_prj_index := 1;
5168 l_project_id_tbl := system.pa_num_tbl_type();
5169 l_project_id_tbl.delete;
5170
5171 for c in rbs_prg_full(p_worker_id) loop
5172
5173 l_project_id_tbl.extend(1);
5174 l_project_id_tbl(l_prj_index) := c.PROJECT_ID;
5175 l_prj_index := l_prj_index + 1;
5176
5177 if (l_rbs_header_id = -1 and l_rbs_version_id = -1) then
5178
5179 l_rbs_header_id := c.RBS_HEADER_ID;
5180 l_rbs_version_id := c.RBS_VERSION_ID;
5181
5182 elsif (c.RBS_HEADER_ID <> l_rbs_header_id or
5183 c.RBS_VERSION_ID <> l_rbs_version_id) then
5184
5185 PA_RBS_ASGMT_PVT.ASSOCIATE_RBS_TO_PROGRAM(l_rbs_header_id,
5186 l_rbs_version_id,
5187 l_project_id_tbl,
5188 l_return_status);
5189
5190 l_rbs_header_id := c.RBS_HEADER_ID;
5191 l_rbs_version_id := c.RBS_VERSION_ID;
5192 l_prj_index := 1;
5193 l_project_id_tbl.delete;
5194
5195 end if;
5196
5197 insert into PJI_PJP_RBS_HEADER
5198 (
5199 PROJECT_ID,
5200 PLAN_VERSION_ID,
5201 RBS_VERSION_ID,
5202 REPORTING_USAGE_FLAG,
5203 PROG_REP_USAGE_FLAG,
5204 PLAN_USAGE_FLAG,
5205 LAST_UPDATE_DATE,
5206 LAST_UPDATED_BY,
5207 CREATION_DATE,
5208 CREATED_BY,
5209 LAST_UPDATE_LOGIN,
5210 PLAN_TYPE_CODE
5211 )
5212 select
5213 c.PROJECT_ID,
5214 -1,
5215 c.RBS_VERSION_ID,
5216 c.REPORTING_USAGE_FLAG,
5217 c.PROG_REP_USAGE_FLAG,
5218 c.FP_USAGE_FLAG,
5219 l_last_update_date,
5220 l_last_updated_by,
5221 l_creation_date,
5222 l_created_by,
5223 l_last_update_login,
5224 'A'
5225 from
5226 dual
5227 where
5228 not exists
5229 (
5230 select
5231 1
5232 from
5233 PJI_PJP_RBS_HEADER rbs_hdr
5234 where
5235 rbs_hdr.PROJECT_ID = c.PROJECT_ID and
5236 rbs_hdr.PLAN_VERSION_ID = -1 and
5237 rbs_hdr.RBS_VERSION_ID = c.RBS_VERSION_ID
5238 );
5239
5240 end loop;
5241
5242 if (l_rbs_header_id <> -1 and l_rbs_version_id <> -1) then
5243
5244 PA_RBS_ASGMT_PVT.ASSOCIATE_RBS_TO_PROGRAM(l_rbs_header_id,
5245 l_rbs_version_id,
5246 l_project_id_tbl,
5247 l_return_status);
5248
5249 end if;
5250
5251 insert into PJI_PJP_RBS_HEADER
5252 (
5253 PROJECT_ID,
5254 PLAN_VERSION_ID,
5255 RBS_VERSION_ID,
5256 REPORTING_USAGE_FLAG,
5257 PROG_REP_USAGE_FLAG,
5258 PLAN_USAGE_FLAG,
5259 LAST_UPDATE_DATE,
5260 LAST_UPDATED_BY,
5261 CREATION_DATE,
5262 CREATED_BY,
5263 LAST_UPDATE_LOGIN,
5264 PLAN_TYPE_CODE
5265 )
5266 select
5267 distinct
5268 asg.PROJECT_ID,
5269 -1,
5270 asg.RBS_VERSION_ID,
5271 asg.REPORTING_USAGE_FLAG,
5272 asg.PROG_REP_USAGE_FLAG,
5273 asg.FP_USAGE_FLAG,
5274 l_last_update_date,
5275 l_last_updated_by,
5276 l_creation_date,
5277 l_created_by,
5278 l_last_update_login,
5279 'A'
5280 from
5281 PJI_PJP_PROJ_BATCH_MAP map,
5282 PA_RBS_PRJ_ASSIGNMENTS asg,
5283 PJI_PJP_RBS_HEADER rbs_hdr
5284 where
5285 map.WORKER_ID = p_worker_id and
5286 asg.PROJECT_ID = map.PROJECT_ID and
5287 asg.REPORTING_USAGE_FLAG = 'Y' and
5288 asg.PROJECT_ID = rbs_hdr.PROJECT_ID (+) and
5289 -1 = rbs_hdr.PLAN_VERSION_ID (+) and
5290 asg.RBS_VERSION_ID = rbs_hdr.RBS_VERSION_ID (+) and
5291 rbs_hdr.PROJECT_ID is null;
5292
5293 insert into PJI_PJP_RBS_HEADER
5294 (
5295 PROJECT_ID,
5296 PLAN_VERSION_ID,
5297 RBS_VERSION_ID,
5298 REPORTING_USAGE_FLAG,
5299 PROG_REP_USAGE_FLAG,
5300 PLAN_USAGE_FLAG,
5301 LAST_UPDATE_DATE,
5302 LAST_UPDATED_BY,
5303 CREATION_DATE,
5304 CREATED_BY,
5305 LAST_UPDATE_LOGIN,
5306 PLAN_TYPE_CODE
5307 )
5308 select
5309 map.PROJECT_ID,
5310 -1,
5311 -1,
5312 'N',
5313 'N',
5314 'N',
5315 l_last_update_date,
5316 l_last_updated_by,
5317 l_creation_date,
5318 l_created_by,
5319 l_last_update_login,
5320 'A'
5321 from
5322 PJI_PJP_PROJ_BATCH_MAP map
5323 where
5324 map.WORKER_ID = p_worker_id;
5325
5326 elsif (l_extraction_type = 'INCREMENTAL' or
5327 l_extraction_type = 'PARTIAL') then
5328
5329 -- RBS_PRG
5330
5331 l_program_id := -1;
5332 l_rbs_header_id := -1;
5333 l_rbs_version_id := -1;
5334 l_prj_index := 1;
5335 l_project_id_tbl := system.pa_num_tbl_type();
5336 l_project_id_tbl.delete;
5337
5338 for c in rbs_prg(p_worker_id) loop
5339
5340 if (c.UPDATE_HEADER_ONLY_FLAG is null) then
5341
5342 l_project_id_tbl.extend(1);
5343 l_project_id_tbl(l_prj_index) := c.PROJECT_ID;
5344 l_prj_index := l_prj_index + 1;
5345
5346 if (l_rbs_header_id = -1 and l_rbs_version_id = -1) then
5347
5348 l_program_id := c.PROGRAM_ID;
5349 l_rbs_header_id := c.RBS_HEADER_ID;
5350 l_rbs_version_id := c.RBS_VERSION_ID;
5351
5352 elsif (c.PROGRAM_ID <> l_program_id or
5353 c.RBS_HEADER_ID <> l_rbs_header_id or
5354 c.RBS_VERSION_ID <> l_rbs_version_id) then
5355
5356 PA_RBS_ASGMT_PVT.ASSOCIATE_RBS_TO_PROGRAM(l_rbs_header_id,
5357 l_rbs_version_id,
5358 l_project_id_tbl,
5359 l_return_status);
5360
5361 l_program_id := c.PROGRAM_ID;
5362 l_rbs_header_id := c.RBS_HEADER_ID;
5363 l_rbs_version_id := c.RBS_VERSION_ID;
5364 l_prj_index := 1;
5365 l_project_id_tbl.delete;
5366
5367 end if;
5368
5369 end if;
5370
5371 update PJI_PJP_RBS_HEADER
5372 set RBS_VERSION_ID = c.RBS_VERSION_ID,
5373 REPORTING_USAGE_FLAG = c.REPORTING_USAGE_FLAG,
5374 PROG_REP_USAGE_FLAG = c.PROG_REP_USAGE_FLAG,
5375 LAST_UPDATE_DATE = l_last_update_date,
5376 LAST_UPDATED_BY = l_last_updated_by,
5377 LAST_UPDATE_LOGIN = l_last_update_login
5378 where PROJECT_ID = c.PROJECT_ID and
5379 RBS_VERSION_ID = c.RBS_VERSION_ID and
5380 PLAN_VERSION_ID = -1 and
5381 c.UPDATE_HEADER_ONLY_FLAG = 'MARK_AS_PROG_REP';
5382
5383 if (sql%rowcount = 0) then
5384
5385 insert into PJI_PJP_RBS_HEADER
5386 (
5387 PROJECT_ID,
5388 PLAN_VERSION_ID,
5389 RBS_VERSION_ID,
5390 REPORTING_USAGE_FLAG,
5391 PROG_REP_USAGE_FLAG,
5392 PLAN_USAGE_FLAG,
5393 LAST_UPDATE_DATE,
5394 LAST_UPDATED_BY,
5395 CREATION_DATE,
5396 CREATED_BY,
5397 LAST_UPDATE_LOGIN,
5398 PLAN_TYPE_CODE
5399 )
5400 values
5401 (
5402 c.PROJECT_ID,
5403 -1,
5404 c.RBS_VERSION_ID,
5405 c.REPORTING_USAGE_FLAG,
5406 c.PROG_REP_USAGE_FLAG,
5407 c.FP_USAGE_FLAG,
5408 l_last_update_date,
5409 l_last_updated_by,
5410 l_creation_date,
5411 l_created_by,
5412 l_last_update_login,
5413 'A'
5414 );
5415
5416 insert into PJI_PA_PROJ_EVENTS_LOG
5417 (
5418 WORKER_ID,
5419 EVENT_TYPE,
5420 EVENT_ID,
5421 EVENT_OBJECT,
5422 OPERATION_TYPE,
5423 STATUS
5424 )
5425 select
5426 p_worker_id,
5427 'PJI_RBS_CHANGE',
5428 PA_PJI_PROJ_EVENTS_LOG_S.NEXTVAL,
5429 c.RBS_VERSION_ID,
5430 'I',
5431 'X'
5432 from
5433 DUAL
5434 where
5435 not exists (select 1
5436 from PA_RBS_DENORM rbs
5437 where rbs.STRUCT_VERSION_ID = c.RBS_VERSION_ID);
5438
5439 end if;
5440
5441 end loop;
5442
5443 if (l_rbs_header_id <> -1 and l_rbs_version_id <> -1) then
5444
5445 PA_RBS_ASGMT_PVT.ASSOCIATE_RBS_TO_PROGRAM(l_rbs_header_id,
5446 l_rbs_version_id,
5447 l_project_id_tbl,
5448 l_return_status);
5449
5450 end if;
5451
5452 delete
5453 from PJI_PA_PROJ_EVENTS_LOG
5454 where WORKER_ID = p_worker_id and
5455 EVENT_TYPE = 'RBS_ASSOC' and
5456 ATTRIBUTE19 = 'MARK_AS_PROG_REP';
5457
5458 -- RBS_ASSOC
5459
5460 l_rbs_header_id := -1;
5461 l_rbs_version_id := -1;
5462 l_prj_index := 1;
5463 l_project_id_tbl := system.pa_num_tbl_type();
5464 l_project_id_tbl.delete;
5465
5466 for c in rbs_assoc(p_worker_id) loop
5467
5468 l_project_id_tbl.extend(1);
5469 l_project_id_tbl(l_prj_index) := c.PROJECT_ID;
5470 l_prj_index := l_prj_index + 1;
5471
5472 if (l_rbs_header_id = -1 and l_rbs_version_id = -1) then
5473
5474 l_rbs_header_id := c.RBS_HEADER_ID;
5475 l_rbs_version_id := c.RBS_VERSION_ID;
5476
5477 elsif (c.RBS_HEADER_ID <> l_rbs_header_id or
5478 c.RBS_VERSION_ID <> l_rbs_version_id) then
5479
5480 PA_RBS_ASGMT_PVT.ASSIGN_NEW_VERSION(l_rbs_version_id,
5481 l_project_id_tbl,
5482 l_return_status);
5483
5484 l_rbs_header_id := c.RBS_HEADER_ID;
5485 l_rbs_version_id := c.RBS_VERSION_ID;
5486 l_prj_index := 1;
5487 l_project_id_tbl.delete;
5488
5489 end if;
5490
5491 update PJI_PJP_RBS_HEADER
5492 set RBS_VERSION_ID = c.RBS_VERSION_ID,
5493 LAST_UPDATE_DATE = l_last_update_date,
5494 LAST_UPDATED_BY = l_last_updated_by,
5495 LAST_UPDATE_LOGIN = l_last_update_login
5496 where PROJECT_ID = c.PROJECT_ID and
5497 RBS_VERSION_ID = c.RBS_VERSION_ID and
5498 PLAN_VERSION_ID = -1;
5499
5500 if (sql%rowcount = 0) then
5501
5502 insert into PJI_PJP_RBS_HEADER
5503 (
5504 PROJECT_ID,
5505 PLAN_VERSION_ID,
5506 RBS_VERSION_ID,
5507 REPORTING_USAGE_FLAG,
5508 PROG_REP_USAGE_FLAG,
5509 PLAN_USAGE_FLAG,
5510 LAST_UPDATE_DATE,
5511 LAST_UPDATED_BY,
5512 CREATION_DATE,
5513 CREATED_BY,
5514 LAST_UPDATE_LOGIN,
5515 PLAN_TYPE_CODE
5516 )
5517 values
5518 (
5519 c.PROJECT_ID,
5520 -1,
5521 c.RBS_VERSION_ID,
5522 c.REPORTING_USAGE_FLAG,
5523 c.PROG_REP_USAGE_FLAG,
5524 c.FP_USAGE_FLAG,
5525 l_last_update_date,
5526 l_last_updated_by,
5527 l_creation_date,
5528 l_created_by,
5529 l_last_update_login,
5530 'A'
5531 );
5532
5533 insert into PJI_PA_PROJ_EVENTS_LOG
5534 (
5535 WORKER_ID,
5536 EVENT_TYPE,
5537 EVENT_ID,
5538 EVENT_OBJECT,
5539 OPERATION_TYPE,
5540 STATUS
5541 )
5542 select
5543 p_worker_id,
5544 'PJI_RBS_CHANGE',
5545 PA_PJI_PROJ_EVENTS_LOG_S.NEXTVAL,
5546 c.RBS_VERSION_ID,
5547 'I',
5548 'X'
5549 from
5550 DUAL
5551 where
5552 not exists (select 1
5553 from PA_RBS_DENORM rbs
5554 where rbs.STRUCT_VERSION_ID = c.RBS_VERSION_ID);
5555
5556 end if;
5557
5558 end loop;
5559
5560 if (l_rbs_header_id <> -1 and l_rbs_version_id <> -1) then
5561
5562 PA_RBS_ASGMT_PVT.ASSIGN_NEW_VERSION(l_rbs_version_id,
5563 l_project_id_tbl,
5564 l_return_status);
5565
5566 end if;
5567
5568 elsif (l_extraction_type = 'RBS') then
5569
5570 l_rbs_header_id := -1;
5571 l_rbs_version_id := -1;
5572 l_prj_index := 1;
5573 l_project_id_tbl := system.pa_num_tbl_type();
5574 l_project_id_tbl.delete;
5575
5576 for c in rbs_push(p_worker_id) loop
5577
5578 l_project_id_tbl.extend(1);
5579 l_project_id_tbl(l_prj_index) := c.PROJECT_ID;
5580 l_prj_index := l_prj_index + 1;
5581
5582 if (l_rbs_header_id = -1 and l_rbs_version_id = -1) then
5583
5584 l_rbs_header_id := c.RBS_HEADER_ID;
5585 l_rbs_version_id := c.RBS_VERSION_ID;
5586
5587 elsif (c.RBS_HEADER_ID <> l_rbs_header_id or
5588 c.RBS_VERSION_ID <> l_rbs_version_id) then
5589
5590 PA_RBS_ASGMT_PVT.ASSIGN_NEW_VERSION(l_rbs_version_id,
5591 l_project_id_tbl,
5592 l_return_status);
5593
5594 l_rbs_header_id := c.RBS_HEADER_ID;
5595 l_rbs_version_id := c.RBS_VERSION_ID;
5596 l_prj_index := 1;
5597 l_project_id_tbl.delete;
5598
5599 end if;
5600
5601 update PJI_PJP_RBS_HEADER
5602 set RBS_VERSION_ID = c.RBS_VERSION_ID,
5603 LAST_UPDATE_DATE = l_last_update_date,
5604 LAST_UPDATED_BY = l_last_updated_by,
5605 LAST_UPDATE_LOGIN = l_last_update_login
5606 where PROJECT_ID = c.PROJECT_ID and
5607 RBS_VERSION_ID = c.OLD_RBS_VERSION_ID and
5608 PLAN_VERSION_ID = -1;
5609
5610 insert into PJI_PA_PROJ_EVENTS_LOG
5611 (
5612 WORKER_ID,
5613 EVENT_TYPE,
5614 EVENT_ID,
5615 EVENT_OBJECT,
5616 OPERATION_TYPE,
5617 STATUS
5618 )
5619 select
5620 p_worker_id,
5621 'PJI_RBS_CHANGE',
5622 PA_PJI_PROJ_EVENTS_LOG_S.NEXTVAL,
5623 c.RBS_VERSION_ID,
5624 'I',
5625 'X'
5626 from
5627 DUAL
5628 where
5629 not exists (select 1
5630 from PA_RBS_DENORM rbs
5631 where rbs.STRUCT_VERSION_ID = c.RBS_VERSION_ID);
5632
5633 end loop;
5634
5635 if (l_rbs_header_id <> -1 and l_rbs_version_id <> -1) then
5636
5637 PA_RBS_ASGMT_PVT.ASSIGN_NEW_VERSION(l_rbs_version_id,
5638 l_project_id_tbl,
5639 l_return_status);
5640
5641 end if;
5642
5643 end if;
5644
5645 PJI_PROCESS_UTIL.REGISTER_STEP_COMPLETION(l_process, 'PJI_PJP_SUM_ROLLUP.UPDATE_PROGRAM_RBS(p_worker_id);');
5646
5647 commit;
5648
5649 end UPDATE_PROGRAM_RBS;
5650
5651
5652 -- -----------------------------------------------------
5653 -- procedure SET_ONLINE_CONTEXT
5654 --
5655 -- History
5656 -- 19-MAR-2004 SVERMETT Created
5657 --
5658 -- This API will be called during online processing.
5659 --
5660 -- -----------------------------------------------------
5661 procedure SET_ONLINE_CONTEXT (p_event_id in number,
5662 p_project_id in number,
5663 p_plan_type_id in number,
5664 p_old_baselined_version in number,
5665 p_new_baselined_version in number,
5666 p_old_original_version in number,
5667 p_new_original_version in number,
5668 p_old_struct_version in number,
5669 p_new_struct_version in number,
5670 p_rbs_version in number default null) is
5671
5672 begin
5673
5674 g_event_id := p_event_id;
5675 g_project_id := p_project_id;
5676 g_plan_type_id := p_plan_type_id;
5677 g_old_baselined_version := p_old_baselined_version;
5678 g_new_baselined_version := p_new_baselined_version;
5679 g_old_original_version := p_old_original_version;
5680 g_new_original_version := p_new_original_version;
5681 g_old_struct_version := p_old_struct_version;
5682 g_new_struct_version := p_new_struct_version;
5683 g_rbs_version := p_rbs_version;
5684
5685 end SET_ONLINE_CONTEXT;
5686
5687
5688 -- -----------------------------------------------------
5689 -- procedure POPULATE_XBS_DENORM_DELTA
5690 --
5691 -- History
5692 -- 19-MAR-2004 SVERMETT Created
5693 --
5694 -- This API will be called for both online and bulk processing.
5695 --
5696 -- -----------------------------------------------------
5697 procedure POPULATE_XBS_DENORM_DELTA (p_worker_id in number default null) is
5698
5699 l_process varchar2(30);
5700 l_extraction_type varchar2(30);
5701
5702 l_program_id number;
5703 l_rbs_header_id number;
5704 l_rbs_version_id number;
5705 l_prj_index number;
5706 l_project_id_tbl system.pa_num_tbl_type;
5707 l_count number;
5708 l_rowid rowid;
5709 l_return_status varchar2(255);
5710 l_error_code varchar2(255);
5711
5712 l_last_update_date date;
5713 l_last_updated_by number;
5714 l_creation_date date;
5715 l_created_by number;
5716 l_last_update_login number;
5717
5718 begin
5719
5720 if (p_worker_id is not null) then
5721
5722 l_process := PJI_PJP_SUM_MAIN.g_process || to_char(p_worker_id);
5723
5724 if (not PJI_PROCESS_UTIL.NEED_TO_RUN_STEP(l_process, 'PJI_PJP_SUM_ROLLUP.POPULATE_XBS_DENORM_DELTA(p_worker_id);')) then
5725 return;
5726 end if;
5727
5728 l_last_update_date := sysdate;
5729 l_last_updated_by := FND_GLOBAL.USER_ID;
5730 l_creation_date := sysdate;
5731 l_created_by := FND_GLOBAL.USER_ID;
5732 l_last_update_login := FND_GLOBAL.LOGIN_ID;
5733
5734 l_extraction_type := PJI_PROCESS_UTIL.GET_PROCESS_PARAMETER(l_process, 'EXTRACTION_TYPE');
5735
5736 if (l_extraction_type = 'INCREMENTAL') then
5737
5738 insert into PJI_XBS_DENORM_DELTA delta_i
5739 (
5740 WORKER_ID,
5741 EVENT_ID,
5742 STRUCT_TYPE,
5743 PRG_GROUP,
5744 STRUCT_VERSION_ID,
5745 SUP_PROJECT_ID,
5746 SUP_ID,
5747 SUP_EMT_ID,
5748 SUBRO_ID,
5749 SUB_ID,
5750 SUB_EMT_ID,
5751 SUP_LEVEL,
5752 SUB_LEVEL,
5753 SUB_ROLLUP_ID,
5754 SUB_LEAF_FLAG,
5755 RELATIONSHIP_TYPE,
5756 SIGN
5757 )
5758 select
5759 p_worker_id,
5760 EVENT_ID,
5761 STRUCT_TYPE,
5762 PRG_GROUP,
5763 STRUCT_VERSION_ID,
5764 SUP_PROJECT_ID,
5765 SUP_ID,
5766 SUP_EMT_ID,
5767 SUBRO_ID,
5768 SUB_ID,
5769 SUB_EMT_ID,
5770 decode(sum(SUP_LEVEL_NEW), 0, sum(SUP_LEVEL_OLD),
5771 sum(SUP_LEVEL_NEW)) SUP_LEVEL,
5772 decode(sum(SUB_LEVEL_NEW), 0, sum(SUB_LEVEL_OLD),
5773 sum(SUB_LEVEL_NEW)) SUB_LEVEL,
5774 SUB_ROLLUP_ID,
5775 SUB_LEAF_FLAG,
5776 RELATIONSHIP_TYPE,
5777 sum(SIGN) SIGN
5778 from
5779 (
5780 select
5781 distinct
5782 log.EVENT_ID,
5783 wbs.STRUCT_TYPE,
5784 -1 PRG_GROUP,
5785 wbs.STRUCT_VERSION_ID,
5786 wbs.SUP_PROJECT_ID,
5787 -1 SUP_ID,
5788 wbs.SUP_EMT_ID,
5789 -1 SUBRO_ID,
5790 -1 SUB_ID,
5791 wbs.SUB_EMT_ID,
5792 wbs.SUP_LEVEL SUP_LEVEL_NEW,
5793 wbs.SUB_LEVEL SUB_LEVEL_NEW,
5794 0 SUP_LEVEL_OLD,
5795 0 SUB_LEVEL_OLD,
5796 wbs.SUB_ROLLUP_ID,
5797 'X' SUB_LEAF_FLAG,
5798 'X' RELATIONSHIP_TYPE,
5799 +1 SIGN
5800 from
5801 PA_XBS_DENORM wbs,
5802 PJI_PA_PROJ_EVENTS_LOG log
5803 where
5804 log.WORKER_ID = p_worker_id and
5805 log.EVENT_TYPE in ('WBS_CHANGE', 'WBS_PUBLISH') and
5806 wbs.STRUCT_TYPE = 'WBS' and
5807 wbs.SUP_PROJECT_ID = log.ATTRIBUTE1 and
5808 wbs.STRUCT_VERSION_ID = log.EVENT_OBJECT
5809 union all
5810 select
5811 distinct
5812 log.EVENT_ID,
5813 wbs.STRUCT_TYPE,
5814 -1 PRG_GROUP,
5815 wbs.STRUCT_VERSION_ID,
5816 wbs.SUP_PROJECT_ID,
5817 -1 SUP_ID,
5818 wbs.SUP_EMT_ID,
5819 -1 SUBRO_ID,
5820 -1 SUB_ID,
5821 wbs.SUB_EMT_ID,
5822 0 SUP_LEVEL_NEW,
5823 0 SUB_LEVEL_NEW,
5824 wbs.SUP_LEVEL SUP_LEVEL_OLD,
5825 wbs.SUB_LEVEL SUB_LEVEL_OLD,
5826 wbs.SUB_ROLLUP_ID,
5827 'X' SUB_LEAF_FLAG,
5828 'X' RELATIONSHIP_TYPE,
5829 -1 SIGN
5830 from
5831 PJI_XBS_DENORM wbs,
5832 PJI_PA_PROJ_EVENTS_LOG log
5833 where
5834 log.WORKER_ID = p_worker_id and
5835 log.EVENT_TYPE in ('WBS_CHANGE', 'WBS_PUBLISH') and
5836 wbs.STRUCT_TYPE = 'WBS' and
5837 wbs.SUP_PROJECT_ID = log.ATTRIBUTE1 and
5838 wbs.STRUCT_VERSION_ID = log.ATTRIBUTE2
5839 union all
5840 (select /*+ LEADING(LOG) USE_NL(LOG, PRG) INDEX(PRG PA_XBS_DENORM_N6) */ -- Bug 15983044
5841 distinct
5842 -1 EVENT_ID,
5843 prg.STRUCT_TYPE,
5844 -1 PRG_GROUP,
5845 -1 STRUCT_VERSION_ID,
5846 prg.SUP_PROJECT_ID,
5847 prg.SUP_ID,
5848 prg.SUP_EMT_ID,
5849 -1 SUBRO_ID,
5850 prg.SUB_ID,
5851 prg.SUB_EMT_ID,
5852 prg.SUP_LEVEL SUP_LEVEL_NEW,
5853 prg.SUB_LEVEL SUB_LEVEL_NEW,
5854 0 SUP_LEVEL_OLD,
5855 0 SUB_LEVEL_OLD,
5856 prg.SUB_ROLLUP_ID,
5857 'X' SUB_LEAF_FLAG,
5858 prg.RELATIONSHIP_TYPE,
5859 +1 SIGN
5860 from
5861 PA_XBS_DENORM prg,
5862 PJI_PA_PROJ_EVENTS_LOG log
5863 where
5864 log.WORKER_ID = p_worker_id and
5865 log.EVENT_TYPE = 'PRG_CHANGE' and
5866 log.EVENT_OBJECT <> -1 and
5867 prg.STRUCT_TYPE = 'PRG' and
5868 prg.PRG_GROUP = log.EVENT_OBJECT -- Bug 15983044
5869 union
5870 select /*+ LEADING(LOG) USE_NL(LOG, PRG) INDEX(PRG PA_XBS_DENORM_N6) */ -- Bug 15983044
5871 distinct
5872 -1 EVENT_ID,
5873 prg.STRUCT_TYPE,
5874 -1 PRG_GROUP,
5875 -1 STRUCT_VERSION_ID,
5876 prg.SUP_PROJECT_ID,
5877 prg.SUP_ID,
5878 prg.SUP_EMT_ID,
5879 -1 SUBRO_ID,
5880 prg.SUB_ID,
5881 prg.SUB_EMT_ID,
5882 prg.SUP_LEVEL SUP_LEVEL_NEW,
5883 prg.SUB_LEVEL SUB_LEVEL_NEW,
5884 0 SUP_LEVEL_OLD,
5885 0 SUB_LEVEL_OLD,
5886 prg.SUB_ROLLUP_ID,
5887 'X' SUB_LEAF_FLAG,
5888 prg.RELATIONSHIP_TYPE,
5889 +1 SIGN
5890 from
5891 PA_XBS_DENORM prg,
5892 PJI_PA_PROJ_EVENTS_LOG log
5893 where
5894 log.WORKER_ID = p_worker_id and
5895 log.EVENT_TYPE = 'PRG_CHANGE' and
5896 log.EVENT_OBJECT <> -1 and
5897 prg.STRUCT_TYPE = 'PRG' and
5898 prg.PRG_GROUP = log.ATTRIBUTE1 ) -- Bug 15983044
5899 union all
5900 ( select /*+ LEADING(LOG) USE_NL(LOG, PRG) INDEX(PRG PJI_XBS_DENORM_N9) */ -- Bug 15983044
5901 distinct
5902 -1 EVENT_ID,
5903 prg.STRUCT_TYPE,
5904 -1 PRG_GROUP,
5905 -1 STRUCT_VERSION_ID,
5906 prg.SUP_PROJECT_ID,
5907 prg.SUP_ID,
5908 prg.SUP_EMT_ID,
5909 -1 SUBRO_ID,
5910 prg.SUB_ID,
5911 prg.SUB_EMT_ID,
5912 0 SUP_LEVEL_NEW,
5913 0 SUB_LEVEL_NEW,
5914 prg.SUP_LEVEL SUP_LEVEL_OLD,
5915 prg.SUB_LEVEL SUB_LEVEL_OLD,
5916 prg.SUB_ROLLUP_ID,
5917 'X' SUB_LEAF_FLAG,
5918 prg.RELATIONSHIP_TYPE,
5919 -1 SIGN
5920 from
5921 PJI_XBS_DENORM prg,
5922 PJI_PA_PROJ_EVENTS_LOG log
5923 where
5924 log.WORKER_ID = p_worker_id and
5925 log.EVENT_TYPE = 'PRG_CHANGE' and
5926 log.EVENT_OBJECT <> -1 and
5927 prg.STRUCT_TYPE = 'PRG' and
5928 prg.PRG_GROUP = log.EVENT_OBJECT
5929 union
5930 select /*+ LEADING(LOG) USE_NL(LOG, PRG) INDEX(PRG PJI_XBS_DENORM_N9) */ -- Bug 15983044
5931 distinct
5932 -1 EVENT_ID,
5933 prg.STRUCT_TYPE,
5934 -1 PRG_GROUP,
5935 -1 STRUCT_VERSION_ID,
5936 prg.SUP_PROJECT_ID,
5937 prg.SUP_ID,
5938 prg.SUP_EMT_ID,
5939 -1 SUBRO_ID,
5940 prg.SUB_ID,
5941 prg.SUB_EMT_ID,
5942 0 SUP_LEVEL_NEW,
5943 0 SUB_LEVEL_NEW,
5944 prg.SUP_LEVEL SUP_LEVEL_OLD,
5945 prg.SUB_LEVEL SUB_LEVEL_OLD,
5946 prg.SUB_ROLLUP_ID,
5947 'X' SUB_LEAF_FLAG,
5948 prg.RELATIONSHIP_TYPE,
5949 -1 SIGN
5950 from
5951 PJI_XBS_DENORM prg,
5952 PJI_PA_PROJ_EVENTS_LOG log
5953 where
5954 log.WORKER_ID = p_worker_id and
5955 log.EVENT_TYPE = 'PRG_CHANGE' and
5956 log.EVENT_OBJECT <> -1 and
5957 prg.STRUCT_TYPE = 'PRG' and
5958 prg.PRG_GROUP = log.ATTRIBUTE1) -- Bug 15983044
5959 )
5960 group by
5961 EVENT_ID,
5962 STRUCT_TYPE,
5963 PRG_GROUP,
5964 STRUCT_VERSION_ID,
5965 SUP_PROJECT_ID,
5966 SUP_ID,
5967 SUP_EMT_ID,
5968 SUBRO_ID,
5969 SUB_ID,
5970 SUB_EMT_ID,
5971 SUB_ROLLUP_ID,
5972 SUB_LEAF_FLAG,
5973 RELATIONSHIP_TYPE
5974 having
5975 sum(SIGN) <> 0;
5976
5977 -- push down program RBSs across new links
5978
5979 insert into PJI_PA_PROJ_EVENTS_LOG
5980 (
5981 WORKER_ID,
5982 LOG_ROWID,
5983 EVENT_TYPE,
5984 EVENT_ID,
5985 EVENT_OBJECT,
5986 OPERATION_TYPE,
5987 STATUS,
5988 ATTRIBUTE_CATEGORY,
5989 ATTRIBUTE1,
5990 ATTRIBUTE2,
5991 ATTRIBUTE3,
5992 ATTRIBUTE4,
5993 ATTRIBUTE5,
5994 ATTRIBUTE6,
5995 ATTRIBUTE7,
5996 ATTRIBUTE8,
5997 ATTRIBUTE9,
5998 ATTRIBUTE10,
5999 ATTRIBUTE11,
6000 ATTRIBUTE12,
6001 ATTRIBUTE13,
6002 ATTRIBUTE14,
6003 ATTRIBUTE15,
6004 ATTRIBUTE16,
6005 ATTRIBUTE17,
6006 ATTRIBUTE18,
6007 ATTRIBUTE19,
6008 ATTRIBUTE20
6009 )
6010 select
6011 distinct
6012 evt.WORKER_ID,
6013 evt.LOG_ROWID,
6014 evt.EVENT_TYPE,
6015 evt.EVENT_ID,
6016 evt.EVENT_OBJECT,
6017 evt.OPERATION_TYPE,
6018 evt.STATUS,
6019 evt.ATTRIBUTE_CATEGORY,
6020 evt.ATTRIBUTE1,
6021 evt.ATTRIBUTE2,
6022 evt.ATTRIBUTE3,
6023 evt.ATTRIBUTE4,
6024 evt.ATTRIBUTE5,
6025 evt.ATTRIBUTE6,
6026 evt.ATTRIBUTE7,
6027 evt.ATTRIBUTE8,
6028 evt.ATTRIBUTE9,
6029 evt.ATTRIBUTE10,
6030 evt.ATTRIBUTE11,
6031 evt.ATTRIBUTE12,
6032 evt.ATTRIBUTE13,
6033 evt.ATTRIBUTE14,
6034 evt.ATTRIBUTE15,
6035 evt.ATTRIBUTE16,
6036 evt.ATTRIBUTE17,
6037 evt.ATTRIBUTE18,
6038 evt.ATTRIBUTE19,
6039 evt.ATTRIBUTE20
6040 from
6041 (
6042 select
6043 distinct
6044 p_worker_id WORKER_ID,
6045 null LOG_ROWID,
6046 'RBS_ASSOC' EVENT_TYPE,
6047 -1 EVENT_ID,
6048 sup_rbs_hdr.RBS_VERSION_ID EVENT_OBJECT,
6049 'I' OPERATION_TYPE,
6050 'X' STATUS,
6051 null ATTRIBUTE_CATEGORY,
6052 sub_ver.PROJECT_ID ATTRIBUTE1,
6053 hdr.RBS_HEADER_ID ATTRIBUTE2,
6054 null ATTRIBUTE3,
6055 null ATTRIBUTE4,
6056 null ATTRIBUTE5,
6057 null ATTRIBUTE6,
6058 null ATTRIBUTE7,
6059 null ATTRIBUTE8,
6060 null ATTRIBUTE9,
6061 null ATTRIBUTE10,
6062 null ATTRIBUTE11,
6063 null ATTRIBUTE12,
6064 null ATTRIBUTE13,
6065 null ATTRIBUTE14,
6066 null ATTRIBUTE15,
6067 null ATTRIBUTE16,
6068 prg.SUP_PROJECT_ID ATTRIBUTE17, -- program's PROJECT_ID
6069 'N' ATTRIBUTE18, -- PROG_REP_USAGE_FLAG
6070 null ATTRIBUTE19, -- update header only
6071 'NEW_CONVERTED_RBS_PRG_EVENT' ATTRIBUTE20 -- flg converted events
6072 from
6073 PJI_XBS_DENORM_DELTA prg,
6074 PJI_PJP_RBS_HEADER sup_rbs_hdr,
6075 PA_PROJ_ELEMENT_VERSIONS sub_ver,
6076 PA_RBS_VERSIONS_B hdr
6077 where
6078 prg.STRUCT_TYPE = 'PRG' and
6079 prg.SUP_ID <> prg.SUB_ID and
6080 prg.SIGN = 1 and
6081 sup_rbs_hdr.PROJECT_ID = prg.SUP_PROJECT_ID and
6082 sup_rbs_hdr.PLAN_VERSION_ID = -1 and
6083 sup_rbs_hdr.PROG_REP_USAGE_FLAG = 'Y' and
6084 sub_ver.ELEMENT_VERSION_ID = prg.SUB_ID and
6085 hdr.RBS_VERSION_ID = sup_rbs_hdr.RBS_VERSION_ID
6086 ) evt,
6087 PJI_PJP_RBS_HEADER sub_rbs_hdr,
6088 PJI_PA_PROJ_EVENTS_LOG log
6089 where
6090 evt.ATTRIBUTE1 = sub_rbs_hdr.PROJECT_ID (+) and
6091 -1 = sub_rbs_hdr.PLAN_VERSION_ID (+) and
6092 evt.EVENT_OBJECT = sub_rbs_hdr.RBS_VERSION_ID (+) and
6093 sub_rbs_hdr.PROJECT_ID is null and
6094 'RBS_ASSOC' = log.EVENT_TYPE (+) and
6095 evt.ATTRIBUTE1 = log.ATTRIBUTE1 (+) and
6096 evt.EVENT_OBJECT = log.EVENT_OBJECT (+) and
6097 log.EVENT_TYPE is null;
6098
6099 l_program_id := -1;
6100 l_rbs_header_id := -1;
6101 l_rbs_version_id := -1;
6102 l_prj_index := 1;
6103 l_project_id_tbl := system.pa_num_tbl_type();
6104 l_project_id_tbl.delete;
6105
6106 for c in (select
6107 distinct
6108 log.ATTRIBUTE2 RBS_HEADER_ID,
6109 log.EVENT_OBJECT RBS_VERSION_ID,
6110 log.ATTRIBUTE1 PROJECT_ID,
6111 log.ATTRIBUTE17 PROGRAM_ID,
6112 log.ATTRIBUTE18 PROG_REP_USAGE_FLAG,
6113 'Y' REPORTING_USAGE_FLAG,
6114 'N' FP_USAGE_FLAG,
6115 log.ATTRIBUTE19 UPDATE_HEADER_ONLY_FLAG
6116 from
6117 PJI_PA_PROJ_EVENTS_LOG log
6118 where
6119 log.WORKER_ID = p_worker_id and
6120 log.EVENT_TYPE = 'RBS_ASSOC' and
6121 log.ATTRIBUTE20 = 'NEW_CONVERTED_RBS_PRG_EVENT'
6122 order by
6123 log.ATTRIBUTE17,
6124 log.ATTRIBUTE2,
6125 log.EVENT_OBJECT) loop
6126
6127 l_project_id_tbl.extend(1);
6128 l_project_id_tbl(l_prj_index) := c.PROJECT_ID;
6129 l_prj_index := l_prj_index + 1;
6130
6131 if (l_rbs_header_id = -1 and l_rbs_version_id = -1) then
6132
6133 l_program_id := c.PROGRAM_ID;
6134 l_rbs_header_id := c.RBS_HEADER_ID;
6135 l_rbs_version_id := c.RBS_VERSION_ID;
6136
6137 elsif (c.PROGRAM_ID <> l_program_id or
6138 c.RBS_HEADER_ID <> l_rbs_header_id or
6139 c.RBS_VERSION_ID <> l_rbs_version_id) then
6140
6141 PA_RBS_ASGMT_PVT.ASSOCIATE_RBS_TO_PROGRAM(l_rbs_header_id,
6142 l_rbs_version_id,
6143 l_project_id_tbl,
6144 l_return_status);
6145
6146 l_program_id := c.PROGRAM_ID;
6147 l_rbs_header_id := c.RBS_HEADER_ID;
6148 l_rbs_version_id := c.RBS_VERSION_ID;
6149 l_prj_index := 1;
6150 l_project_id_tbl.delete;
6151
6152 end if;
6153
6154 insert into PJI_PJP_RBS_HEADER
6155 (
6156 PROJECT_ID,
6157 PLAN_VERSION_ID,
6158 RBS_VERSION_ID,
6159 REPORTING_USAGE_FLAG,
6160 PROG_REP_USAGE_FLAG,
6161 PLAN_USAGE_FLAG,
6162 LAST_UPDATE_DATE,
6163 LAST_UPDATED_BY,
6164 CREATION_DATE,
6165 CREATED_BY,
6166 LAST_UPDATE_LOGIN,
6167 PLAN_TYPE_CODE
6168 )
6169 values
6170 (
6171 c.PROJECT_ID,
6172 -1,
6173 c.RBS_VERSION_ID,
6174 c.REPORTING_USAGE_FLAG,
6175 c.PROG_REP_USAGE_FLAG,
6176 c.FP_USAGE_FLAG,
6177 l_last_update_date,
6178 l_last_updated_by,
6179 l_creation_date,
6180 l_created_by,
6181 l_last_update_login,
6182 'A'
6183 );
6184
6185 insert into PJI_PA_PROJ_EVENTS_LOG
6186 (
6187 WORKER_ID,
6188 EVENT_TYPE,
6189 EVENT_ID,
6190 EVENT_OBJECT,
6191 OPERATION_TYPE,
6192 STATUS
6193 )
6194 select
6195 p_worker_id,
6196 'PJI_RBS_CHANGE',
6197 PA_PJI_PROJ_EVENTS_LOG_S.NEXTVAL,
6198 c.RBS_VERSION_ID,
6199 'I',
6200 'X'
6201 from
6202 DUAL
6203 where
6204 not exists (select 1
6205 from PA_RBS_DENORM rbs
6206 where rbs.STRUCT_VERSION_ID = c.RBS_VERSION_ID);
6207
6208 end loop;
6209
6210 if (l_rbs_header_id <> -1 and l_rbs_version_id <> -1) then
6211
6212 PA_RBS_ASGMT_PVT.ASSOCIATE_RBS_TO_PROGRAM(l_rbs_header_id,
6213 l_rbs_version_id,
6214 l_project_id_tbl,
6215 l_return_status);
6216
6217 end if;
6218
6219 end if;
6220
6221 PJI_PROCESS_UTIL.REGISTER_STEP_COMPLETION(l_process, 'PJI_PJP_SUM_ROLLUP.POPULATE_XBS_DENORM_DELTA(p_worker_id);');
6222
6223 commit;
6224
6225 else -- online mode
6226
6227 -- get WBS delta for online processing
6228
6229 insert into PJI_XBS_DENORM_DELTA_T
6230 (
6231 WORKER_ID,
6232 STRUCT_TYPE,
6233 PRG_GROUP,
6234 STRUCT_VERSION_ID,
6235 SUP_PROJECT_ID,
6236 SUP_ID,
6237 SUP_EMT_ID,
6238 SUBRO_ID,
6239 SUB_ID,
6240 SUB_EMT_ID,
6241 SUP_LEVEL,
6242 SUB_LEVEL,
6243 SUB_ROLLUP_ID,
6244 SUB_LEAF_FLAG,
6245 RELATIONSHIP_TYPE,
6246 SIGN
6247 )
6248 select
6249 1 WORKER_ID,
6250 -- p_worker_id WORKER_ID,
6251 STRUCT_TYPE,
6252 PRG_GROUP,
6253 STRUCT_VERSION_ID,
6254 SUP_PROJECT_ID,
6255 SUP_ID,
6256 SUP_EMT_ID,
6257 SUBRO_ID,
6258 SUB_ID,
6259 SUB_EMT_ID,
6260 decode(sum(SUP_LEVEL_NEW), 0, sum(SUP_LEVEL_OLD),
6261 sum(SUP_LEVEL_NEW)) SUP_LEVEL,
6262 decode(sum(SUB_LEVEL_NEW), 0, sum(SUB_LEVEL_OLD),
6263 sum(SUB_LEVEL_NEW)) SUB_LEVEL,
6264 SUB_ROLLUP_ID,
6265 SUB_LEAF_FLAG,
6266 RELATIONSHIP_TYPE,
6267 sum(SIGN) SIGN
6268 from
6269 (
6270 select
6271 wbs.STRUCT_TYPE,
6272 -1 PRG_GROUP,
6273 wbs.STRUCT_VERSION_ID,
6274 wbs.SUP_PROJECT_ID,
6275 -1 SUP_ID,
6276 wbs.SUP_EMT_ID,
6277 -1 SUBRO_ID,
6278 -1 SUB_ID,
6279 wbs.SUB_EMT_ID,
6280 wbs.SUP_LEVEL SUP_LEVEL_NEW,
6281 wbs.SUB_LEVEL SUB_LEVEL_NEW,
6282 0 SUP_LEVEL_OLD,
6283 0 SUB_LEVEL_OLD,
6284 wbs.SUB_ROLLUP_ID,
6285 'X' SUB_LEAF_FLAG,
6286 'X' RELATIONSHIP_TYPE,
6287 +1 SIGN
6288 from
6289 PA_XBS_DENORM wbs
6290 where
6291 wbs.STRUCT_TYPE = 'WBS' and
6292 wbs.SUP_PROJECT_ID = g_project_id and
6293 wbs.STRUCT_VERSION_ID in (g_new_struct_version)
6294 union all
6295 select
6296 wbs.STRUCT_TYPE,
6297 -1 PRG_GROUP,
6298 wbs.STRUCT_VERSION_ID,
6299 wbs.SUP_PROJECT_ID,
6300 -1 SUP_ID,
6301 wbs.SUP_EMT_ID,
6302 -1 SUBRO_ID,
6303 -1 SUB_ID,
6304 wbs.SUB_EMT_ID,
6305 0 SUP_LEVEL_NEW,
6306 0 SUB_LEVEL_NEW,
6307 wbs.SUP_LEVEL SUP_LEVEL_OLD,
6308 wbs.SUB_LEVEL SUB_LEVEL_OLD,
6309 wbs.SUB_ROLLUP_ID,
6310 'X' SUB_LEAF_FLAG,
6311 'X' RELATIONSHIP_TYPE,
6312 -1 SIGN
6313 from
6314 PJI_XBS_DENORM wbs
6315 where
6316 wbs.STRUCT_TYPE = 'WBS' and
6317 wbs.SUP_PROJECT_ID = g_project_id and
6318 wbs.STRUCT_VERSION_ID in (g_old_struct_version)
6319 )
6320 group by
6321 STRUCT_TYPE,
6322 PRG_GROUP,
6323 STRUCT_VERSION_ID,
6324 SUP_PROJECT_ID,
6325 SUP_ID,
6326 SUP_EMT_ID,
6327 SUBRO_ID,
6328 SUB_ID,
6329 SUB_EMT_ID,
6330 SUB_ROLLUP_ID,
6331 SUB_LEAF_FLAG,
6332 RELATIONSHIP_TYPE
6333 having
6334 sum(SIGN) <> 0;
6335
6336 end if;
6337
6338 end POPULATE_XBS_DENORM_DELTA;
6339
6340
6341 -- -----------------------------------------------------
6342 -- procedure POPULATE_RBS_DENORM_DELTA
6343 --
6344 -- History
6345 -- 19-MAR-2004 SVERMETT Created
6346 --
6347 -- Internal PJP Summarization API.
6348 --
6349 -- Called by RBS program
6350 --
6351 -- -----------------------------------------------------
6352 procedure POPULATE_RBS_DENORM_DELTA (p_worker_id in number) is
6353
6354 l_process varchar2(30);
6355 l_extraction_type varchar2(30);
6356
6357 begin
6358
6359 l_process := PJI_PJP_SUM_MAIN.g_process || to_char(p_worker_id);
6360
6361 if (not PJI_PROCESS_UTIL.NEED_TO_RUN_STEP(l_process, 'PJI_PJP_SUM_ROLLUP.POPULATE_RBS_DENORM_DELTA(p_worker_id);')) then
6362 return;
6363 end if;
6364
6365 l_extraction_type := PJI_PROCESS_UTIL.GET_PROCESS_PARAMETER(l_process, 'EXTRACTION_TYPE');
6366
6367 if (l_extraction_type = 'RBS') then
6368
6369 insert into PJI_RBS_DENORM_DELTA delta_i
6370 (
6371 WORKER_ID,
6372 STRUCT_VERSION_ID,
6373 SUP_ID,
6374 SUBRO_ID,
6375 SUB_ID,
6376 SUP_LEVEL,
6377 SUB_LEVEL,
6378 SUB_LEAF_FLAG,
6379 SIGN
6380 )
6381 select
6382 p_worker_id,
6383 STRUCT_VERSION_ID,
6384 SUP_ID,
6385 SUBRO_ID,
6386 SUB_ID,
6387 decode(sum(SUP_LEVEL_NEW), 0, sum(SUP_LEVEL_OLD),
6388 sum(SUP_LEVEL_NEW)) SUP_LEVEL,
6389 decode(sum(SUB_LEVEL_NEW), 0, sum(SUB_LEVEL_OLD),
6390 sum(SUB_LEVEL_NEW)) SUB_LEVEL,
6391 SUB_LEAF_FLAG,
6392 sum(SIGN) SIGN
6393 from
6394 (
6395 select
6396 distinct
6397 rbs.STRUCT_VERSION_ID,
6398 rbs.SUP_ID,
6399 -1 SUBRO_ID,
6400 rbs.SUB_ID,
6401 rbs.SUP_LEVEL SUP_LEVEL_NEW,
6402 rbs.SUB_LEVEL SUB_LEVEL_NEW,
6403 0 SUP_LEVEL_OLD,
6404 0 SUB_LEVEL_OLD,
6405 'X' SUB_LEAF_FLAG,
6406 +1 SIGN
6407 from
6408 PA_RBS_DENORM rbs,
6409 PJI_PA_PROJ_EVENTS_LOG log
6410 where
6411 log.WORKER_ID = p_worker_id and
6412 log.EVENT_TYPE = 'RBS_PUSH' and
6413 rbs.STRUCT_VERSION_ID = log.EVENT_OBJECT
6414 union all
6415 select
6416 distinct
6417 rbs.STRUCT_VERSION_ID,
6418 rbs.SUP_ID,
6419 -1 SUBRO_ID,
6420 rbs.SUB_ID,
6421 0 SUP_LEVEL_NEW,
6422 0 SUB_LEVEL_NEW,
6423 rbs.SUP_LEVEL SUP_LEVEL_OLD,
6424 rbs.SUB_LEVEL SUB_LEVEL_OLD,
6425 'X' SUB_LEAF_FLAG,
6426 -1 SIGN
6427 from
6428 PJI_RBS_DENORM rbs,
6429 PJI_PA_PROJ_EVENTS_LOG log
6430 where
6431 log.WORKER_ID = p_worker_id and
6432 log.EVENT_TYPE = 'RBS_PUSH' and
6433 rbs.STRUCT_VERSION_ID = log.ATTRIBUTE2
6434 )
6435 group by
6436 STRUCT_VERSION_ID,
6437 SUP_ID,
6438 SUBRO_ID,
6439 SUB_ID,
6440 SUB_LEAF_FLAG
6441 having
6442 sum(SIGN) <> 0;
6443
6444 end if;
6445
6446 PJI_PROCESS_UTIL.REGISTER_STEP_COMPLETION(l_process, 'PJI_PJP_SUM_ROLLUP.POPULATE_RBS_DENORM_DELTA(p_worker_id);');
6447
6448 commit;
6449
6450 end POPULATE_RBS_DENORM_DELTA;
6451
6452
6453 -- -----------------------------------------------------
6454 -- procedure AGGREGATE_FP_SLICES
6455 --
6456 -- History
6457 -- 19-MAR-2004 SVERMETT Created
6458 --
6459 -- Internal PJP Summarization API.
6460 --
6461 -- Called by RBS program
6462 --
6463 -- -----------------------------------------------------
6464 procedure AGGREGATE_FP_SLICES (p_worker_id in number) is
6465
6466 l_process varchar2(30);
6467 l_extraction_type varchar2(30);
6468
6469 l_txn_currency_flag varchar2(1);
6470 l_g2_currency_flag varchar2(1);
6471 l_g1_currency_flag varchar2(1); /* Added for Bug 8708651 */
6472
6473 l_g1_currency_code varchar2(30);
6474 l_g2_currency_code varchar2(30);
6475
6476 l_plan_type_id number; -- Bug#5099574
6477 l_refresh_code number;
6478
6479
6480 begin
6481
6482 l_process := PJI_PJP_SUM_MAIN.g_process || to_char(p_worker_id);
6483
6484 if (not PJI_PROCESS_UTIL.NEED_TO_RUN_STEP(l_process, 'PJI_PJP_SUM_ROLLUP.AGGREGATE_FP_SLICES(p_worker_id);')) then
6485 return;
6486 end if;
6487
6488 l_extraction_type := PJI_PROCESS_UTIL.GET_PROCESS_PARAMETER(l_process, 'EXTRACTION_TYPE');
6489
6490 -- Bug#5099574 - Start
6491
6492 l_plan_type_id := PJI_PROCESS_UTIL.GET_PROCESS_PARAMETER (l_process, 'PLAN_TYPE_ID');
6493 l_refresh_code := PJI_PROCESS_UTIL.GET_PROCESS_PARAMETER (l_process, 'REFRESH_CODE');
6494
6495 if (l_plan_type_id = -1) then
6496 l_plan_type_id := null;
6497 end if;
6498
6499 -- If condtion is true then mark the process as completed and return
6500 if ( l_extraction_type='PARTIAL' and ( bitand(l_refresh_code,1) <> 1) ) then
6501 PJI_PROCESS_UTIL.REGISTER_STEP_COMPLETION(l_process, 'PJI_PJP_SUM_ROLLUP.AGGREGATE_FP_SLICES(p_worker_id);');
6502 commit;
6503 return;
6504 end if;
6505
6506 -- Bug#5099574 - End
6507
6508
6509 select
6510 TXN_CURR_FLAG,
6511 GLOBAL_CURR2_FLAG,
6512 nvl(GLOBAL_CURR1_FLAG,'Y') /* Added for Bug 8708651, NULL check added for 9062837 */
6513 into
6514 l_txn_currency_flag,
6515 l_g2_currency_flag,
6516 l_g1_currency_flag /* Added for Bug 8708651 */
6517 from
6518 PJI_SYSTEM_SETTINGS;
6519
6520 l_g1_currency_code := PJI_UTILS.GET_GLOBAL_PRIMARY_CURRENCY;
6521 l_g2_currency_code := PJI_UTILS.GET_GLOBAL_SECONDARY_CURRENCY;
6522
6523 insert /*+ parallel(pjp0_i) */ into PJI_FP_AGGR_PJP0 pjp0_i /* Added for bug 13030627 */
6524 (
6525 WORKER_ID,
6526 TXN_ACCUM_HEADER_ID,
6527 PROJECT_ID,
6528 PROJECT_ORG_ID,
6529 PROJECT_ORGANIZATION_ID,
6530 PROJECT_ELEMENT_ID,
6531 TIME_ID,
6532 PERIOD_TYPE_ID,
6533 CALENDAR_TYPE,
6534 RBS_AGGR_LEVEL,
6535 WBS_ROLLUP_FLAG,
6536 PRG_ROLLUP_FLAG,
6537 CURR_RECORD_TYPE_ID,
6538 CURRENCY_CODE,
6539 RBS_ELEMENT_ID,
6540 RBS_VERSION_ID,
6541 PLAN_VERSION_ID,
6542 PLAN_TYPE_ID,
6543 RAW_COST,
6544 BRDN_COST,
6545 REVENUE,
6546 BILL_RAW_COST,
6547 BILL_BRDN_COST,
6548 BILL_LABOR_RAW_COST,
6549 BILL_LABOR_BRDN_COST,
6550 BILL_LABOR_HRS,
6551 EQUIPMENT_RAW_COST,
6552 EQUIPMENT_BRDN_COST,
6553 CAPITALIZABLE_RAW_COST,
6554 CAPITALIZABLE_BRDN_COST,
6555 LABOR_RAW_COST,
6556 LABOR_BRDN_COST,
6557 LABOR_HRS,
6558 LABOR_REVENUE,
6559 EQUIPMENT_HOURS,
6560 BILLABLE_EQUIPMENT_HOURS,
6561 SUP_INV_COMMITTED_COST,
6562 PO_COMMITTED_COST,
6563 PR_COMMITTED_COST,
6564 OTH_COMMITTED_COST
6565 )
6566 select
6567 src.WORKER_ID,
6568 src.TXN_ACCUM_HEADER_ID,
6569 src.PROJECT_ID,
6570 src.PROJECT_ORG_ID,
6571 src.PROJECT_ORGANIZATION_ID,
6572 src.PROJECT_ELEMENT_ID,
6573 src.TIME_ID,
6574 src.PERIOD_TYPE_ID,
6575 src.CALENDAR_TYPE,
6576 src.RBS_AGGR_LEVEL,
6577 src.WBS_ROLLUP_FLAG,
6578 src.PRG_ROLLUP_FLAG,
6579 src.CURR_RECORD_TYPE_ID,
6580 src.CURRENCY_CODE,
6581 src.RBS_ELEMENT_ID,
6582 src.RBS_VERSION_ID,
6583 src.PLAN_VERSION_ID,
6584 src.PLAN_TYPE_ID,
6585 sum(src.RAW_COST) RAW_COST,
6586 sum(src.BRDN_COST) BRDN_COST,
6587 sum(src.REVENUE) REVENUE,
6588 sum(decode(src.PROJECT_TYPE_CLASS, 'B',
6589 src.BILL_RAW_COST, to_number(null))) BILL_RAW_COST,
6590 sum(decode(src.PROJECT_TYPE_CLASS, 'B',
6591 src.BILL_BRDN_COST, to_number(null)))BILL_BRDN_COST,
6592 sum(decode(src.PROJECT_TYPE_CLASS || '_' ||
6593 cls.RESOURCE_CLASS_CODE, 'B_PEOPLE',
6594 src.BILL_RAW_COST, to_number(null))) BILL_LABOR_RAW_COST,
6595 sum(decode(src.PROJECT_TYPE_CLASS || '_' ||
6596 cls.RESOURCE_CLASS_CODE, 'B_PEOPLE',
6597 src.BILL_BRDN_COST, to_number(null)))BILL_LABOR_BRDN_COST,
6598 sum(decode(src.PROJECT_TYPE_CLASS || '_' ||
6599 cls.RESOURCE_CLASS_CODE, 'B_PEOPLE',
6600 src.BILL_QUANTITY, to_number(null))) BILL_LABOR_HRS,
6601 sum(decode(cls.RESOURCE_CLASS_CODE, 'EQUIPMENT',
6602 src.RAW_COST, to_number(null))) EQUIPMENT_RAW_COST,
6603 sum(decode(cls.RESOURCE_CLASS_CODE, 'EQUIPMENT',
6604 src.BRDN_COST, to_number(null))) EQUIPMENT_BRDN_COST,
6605 sum(decode(src.PROJECT_TYPE_CLASS, 'C',
6606 src.BILL_RAW_COST, to_number(null))) CAPITALIZABLE_RAW_COST,
6607 sum(decode(src.PROJECT_TYPE_CLASS, 'C',
6608 src.BILL_BRDN_COST, to_number(null)))CAPITALIZABLE_BRDN_COST,
6609 sum(decode(cls.RESOURCE_CLASS_CODE, 'PEOPLE',
6610 src.RAW_COST, to_number(null))) LABOR_RAW_COST,
6611 sum(decode(cls.RESOURCE_CLASS_CODE, 'PEOPLE',
6612 src.BRDN_COST, to_number(null))) LABOR_BRDN_COST,
6613 sum(decode(cls.RESOURCE_CLASS_CODE, 'PEOPLE',
6614 src.QUANTITY, to_number(null))) LABOR_HRS,
6615 sum(decode(cls.RESOURCE_CLASS_CODE, 'PEOPLE',
6616 src.REVENUE, to_number(null))) LABOR_REVENUE,
6617 sum(decode(cls.RESOURCE_CLASS_CODE, 'EQUIPMENT',
6618 src.QUANTITY, to_number(null))) EQUIPMENT_HOURS,
6619 sum(decode(cls.RESOURCE_CLASS_CODE, 'EQUIPMENT',
6620 src.BILL_QUANTITY, to_number(null))) BILLABLE_EQUIPMENT_HOURS,
6621 sum(src.SUP_INV_COMMITTED_COST) SUP_INV_COMMITTED_COST,
6622 sum(src.PO_COMMITTED_COST) PO_COMMITTED_COST,
6623 sum(src.PR_COMMITTED_COST) PR_COMMITTED_COST,
6624 sum(src.OTH_COMMITTED_COST) OTH_COMMITTED_COST
6625 from
6626 (
6627 select
6628 src3.WORKER_ID,
6629 src3.TXN_ACCUM_HEADER_ID,
6630 src3.RESOURCE_CLASS_ID,
6631 src3.PROJECT_ID,
6632 src3.PROJECT_ORG_ID,
6633 src3.PROJECT_ORGANIZATION_ID,
6634 src3.PROJECT_TYPE_CLASS,
6635 src3.PROJECT_ELEMENT_ID,
6636 src3.TIME_ID,
6637 src3.PERIOD_TYPE_ID,
6638 src3.CALENDAR_TYPE,
6639 src3.RBS_AGGR_LEVEL,
6640 src3.WBS_ROLLUP_FLAG,
6641 src3.PRG_ROLLUP_FLAG,
6642 sum(src3.CURR_RECORD_TYPE_ID) CURR_RECORD_TYPE_ID,
6643 nvl(src3.CURRENCY_CODE, 'PJI$NULL') CURRENCY_CODE,
6644 src3.RBS_ELEMENT_ID,
6645 src3.RBS_VERSION_ID,
6646 src3.PLAN_VERSION_ID,
6647 src3.PLAN_TYPE_ID,
6648 max(src3.RAW_COST) RAW_COST,
6649 max(src3.BRDN_COST) BRDN_COST,
6650 max(src3.REVENUE) REVENUE,
6651 max(src3.BILL_RAW_COST) BILL_RAW_COST,
6652 max(src3.BILL_BRDN_COST) BILL_BRDN_COST,
6653 max(src3.SUP_INV_COMMITTED_COST) SUP_INV_COMMITTED_COST,
6654 max(src3.PO_COMMITTED_COST) PO_COMMITTED_COST,
6655 max(src3.PR_COMMITTED_COST) PR_COMMITTED_COST,
6656 max(src3.OTH_COMMITTED_COST) OTH_COMMITTED_COST,
6657 max(src3.QUANTITY) QUANTITY,
6658 max(src3.BILL_QUANTITY) BILL_QUANTITY
6659 from
6660 (
6661 select /*+ ordered cardinality(src 1) use_nl(VER) */ -- Modified for Bug 14735308
6662 p_worker_id WORKER_ID,
6663 src.TXN_ACCUM_HEADER_ID,
6664 src.RESOURCE_CLASS_ID,
6665 src.PROJECT_ID,
6666 src.PROJECT_ORG_ID,
6667 map.PROJECT_ORGANIZATION_ID,
6668 src.PROJECT_TYPE_CLASS,
6669 decode(src.TASK_ID,
6670 -1, ver.PROJ_ELEMENT_ID,
6671 src.TASK_ID) PROJECT_ELEMENT_ID,
6672 src.RECVR_PERIOD_ID TIME_ID,
6673 32 PERIOD_TYPE_ID,
6674 decode(src.RECVR_PERIOD_TYPE,
6675 'ENT', 'E',
6676 'GL', 'G',
6677 'PA', 'P') CALENDAR_TYPE,
6678 'L' RBS_AGGR_LEVEL,
6679 'N' WBS_ROLLUP_FLAG,
6680 'N' PRG_ROLLUP_FLAG,
6681 invert.INVERT_ID CURR_RECORD_TYPE_ID,
6682 decode(invert.INVERT_ID,
6683 1, l_g1_currency_code,
6684 2, l_g2_currency_code,
6685 4, info.PF_CURRENCY_CODE,
6686 8, map.PRJ_CURRENCY_CODE,
6687 16, src.TXN_CURRENCY_CODE,
6688 32, l_g1_currency_code,
6689 64, l_g2_currency_code,
6690 128, info.PF_CURRENCY_CODE,
6691 256, map.PRJ_CURRENCY_CODE) DIFF_CURRENCY_CODE,
6692 DIFF_ROWNUM DIFF_ROWNUM,
6693 decode(invert.INVERT_ID,
6694 1, l_g1_currency_code,
6695 2, l_g2_currency_code,
6696 4, info.PF_CURRENCY_CODE,
6697 8, map.PRJ_CURRENCY_CODE,
6698 16, src.TXN_CURRENCY_CODE,
6699 32, src.TXN_CURRENCY_CODE,
6700 64, src.TXN_CURRENCY_CODE,
6701 128, src.TXN_CURRENCY_CODE,
6702 256, src.TXN_CURRENCY_CODE) CURRENCY_CODE,
6703 nvl(rbs.ELEMENT_ID, -1) RBS_ELEMENT_ID,
6704 src.RBS_VERSION_ID,
6705 -1 PLAN_VERSION_ID,
6706 -1 PLAN_TYPE_ID,
6707 decode(invert.INVERT_ID,
6708 1, src.G1_RAW_COST,
6709 2, src.G2_RAW_COST,
6710 4, src.POU_RAW_COST,
6711 8, src.PRJ_RAW_COST,
6712 16, src.TXN_RAW_COST,
6713 32, src.G1_RAW_COST,
6714 64, src.G2_RAW_COST,
6715 128, src.POU_RAW_COST,
6716 256, src.PRJ_RAW_COST) RAW_COST,
6717 decode(invert.INVERT_ID,
6718 1, src.G1_BRDN_COST,
6719 2, src.G2_BRDN_COST,
6720 4, src.POU_BRDN_COST,
6721 8, src.PRJ_BRDN_COST,
6722 16, src.TXN_BRDN_COST,
6723 32, src.G1_BRDN_COST,
6724 64, src.G2_BRDN_COST,
6725 128, src.POU_BRDN_COST,
6726 256, src.PRJ_BRDN_COST) BRDN_COST,
6727 decode(invert.INVERT_ID,
6728 1, src.G1_REVENUE,
6729 2, src.G2_REVENUE,
6730 4, src.POU_REVENUE,
6731 8, src.PRJ_REVENUE,
6732 16, src.TXN_REVENUE,
6733 32, src.G1_REVENUE,
6734 64, src.G2_REVENUE,
6735 128, src.POU_REVENUE,
6736 256, src.PRJ_REVENUE) REVENUE,
6737 decode(invert.INVERT_ID,
6738 1, src.G1_BILL_RAW_COST,
6739 2, src.G2_BILL_RAW_COST,
6740 4, src.POU_BILL_RAW_COST,
6741 8, src.PRJ_BILL_RAW_COST,
6742 16, src.TXN_BILL_RAW_COST,
6743 32, src.G1_BILL_RAW_COST,
6744 64, src.G2_BILL_RAW_COST,
6745 128, src.POU_BILL_RAW_COST,
6746 256, src.PRJ_BILL_RAW_COST) BILL_RAW_COST,
6747 decode(invert.INVERT_ID,
6748 1, src.G1_BILL_BRDN_COST,
6749 2, src.G2_BILL_BRDN_COST,
6750 4, src.POU_BILL_BRDN_COST,
6751 8, src.PRJ_BILL_BRDN_COST,
6752 16, src.TXN_BILL_BRDN_COST,
6753 32, src.G1_BILL_BRDN_COST,
6754 64, src.G2_BILL_BRDN_COST,
6755 128, src.POU_BILL_BRDN_COST,
6756 256, src.PRJ_BILL_BRDN_COST) BILL_BRDN_COST,
6757 decode(invert.INVERT_ID,
6758 1, src.G1_SUP_INV_COMMITTED_COST,
6759 2, src.G2_SUP_INV_COMMITTED_COST,
6760 4, src.POU_SUP_INV_COMMITTED_COST,
6761 8, src.PRJ_SUP_INV_COMMITTED_COST,
6762 16, src.TXN_SUP_INV_COMMITTED_COST,
6763 32, src.G1_SUP_INV_COMMITTED_COST,
6764 64, src.G2_SUP_INV_COMMITTED_COST,
6765 128, src.POU_SUP_INV_COMMITTED_COST,
6766 256, src.PRJ_SUP_INV_COMMITTED_COST) SUP_INV_COMMITTED_COST,
6767 decode(invert.INVERT_ID,
6768 1, src.G1_PO_COMMITTED_COST,
6769 2, src.G2_PO_COMMITTED_COST,
6770 4, src.POU_PO_COMMITTED_COST,
6771 8, src.PRJ_PO_COMMITTED_COST,
6772 16, src.TXN_PO_COMMITTED_COST,
6773 32, src.G1_PO_COMMITTED_COST,
6774 64, src.G2_PO_COMMITTED_COST,
6775 128, src.POU_PO_COMMITTED_COST,
6776 256, src.PRJ_PO_COMMITTED_COST) PO_COMMITTED_COST,
6777 decode(invert.INVERT_ID,
6778 1, src.G1_PR_COMMITTED_COST,
6779 2, src.G2_PR_COMMITTED_COST,
6780 4, src.POU_PR_COMMITTED_COST,
6781 8, src.PRJ_PR_COMMITTED_COST,
6782 16, src.TXN_PR_COMMITTED_COST,
6783 32, src.G1_PR_COMMITTED_COST,
6784 64, src.G2_PR_COMMITTED_COST,
6785 128, src.POU_PR_COMMITTED_COST,
6786 256, src.PRJ_PR_COMMITTED_COST) PR_COMMITTED_COST,
6787 decode(invert.INVERT_ID,
6788 1, src.G1_OTH_COMMITTED_COST,
6789 2, src.G2_OTH_COMMITTED_COST,
6790 4, src.POU_OTH_COMMITTED_COST,
6791 8, src.PRJ_OTH_COMMITTED_COST,
6792 16, src.TXN_OTH_COMMITTED_COST,
6793 32, src.G1_OTH_COMMITTED_COST,
6794 64, src.G2_OTH_COMMITTED_COST,
6795 128, src.POU_OTH_COMMITTED_COST,
6796 256, src.PRJ_OTH_COMMITTED_COST) OTH_COMMITTED_COST,
6797 src.QUANTITY,
6798 src.BILL_QUANTITY
6799 from
6800 (
6801 select
6802 ROWNUM DIFF_ROWNUM,
6803 src2.TXN_ACCUM_HEADER_ID,
6804 src2.RESOURCE_CLASS_ID,
6805 src2.PROJECT_ID,
6806 src2.PROJECT_ORG_ID,
6807 src2.PROJECT_ORGANIZATION_ID,
6808 src2.PROJECT_TYPE_CLASS,
6809 src2.TASK_ID,
6810 src2.RECVR_PERIOD_TYPE,
6811 src2.RECVR_PERIOD_ID,
6812 src2.RBS_VERSION_ID,
6813 src2.TXN_CURRENCY_CODE,
6814 src2.TXN_RAW_COST,
6815 src2.TXN_BILL_RAW_COST,
6816 src2.TXN_BRDN_COST,
6817 src2.TXN_BILL_BRDN_COST,
6818 src2.TXN_REVENUE,
6819 src2.TXN_SUP_INV_COMMITTED_COST,
6820 src2.TXN_PO_COMMITTED_COST,
6821 src2.TXN_PR_COMMITTED_COST,
6822 src2.TXN_OTH_COMMITTED_COST,
6823 src2.PRJ_RAW_COST,
6824 src2.PRJ_BILL_RAW_COST,
6825 src2.PRJ_BRDN_COST,
6826 src2.PRJ_BILL_BRDN_COST,
6827 src2.PRJ_REVENUE,
6828 src2.PRJ_SUP_INV_COMMITTED_COST,
6829 src2.PRJ_PO_COMMITTED_COST,
6830 src2.PRJ_PR_COMMITTED_COST,
6831 src2.PRJ_OTH_COMMITTED_COST,
6832 src2.POU_RAW_COST,
6833 src2.POU_BILL_RAW_COST,
6834 src2.POU_BRDN_COST,
6835 src2.POU_BILL_BRDN_COST,
6836 src2.POU_REVENUE,
6837 src2.POU_SUP_INV_COMMITTED_COST,
6838 src2.POU_PO_COMMITTED_COST,
6839 src2.POU_PR_COMMITTED_COST,
6840 src2.POU_OTH_COMMITTED_COST,
6841 src2.EOU_RAW_COST,
6842 src2.EOU_BILL_RAW_COST,
6843 src2.EOU_BRDN_COST,
6844 src2.EOU_BILL_BRDN_COST,
6845 src2.EOU_SUP_INV_COMMITTED_COST,
6846 src2.EOU_PO_COMMITTED_COST,
6847 src2.EOU_PR_COMMITTED_COST,
6848 src2.EOU_OTH_COMMITTED_COST,
6849 src2.G1_RAW_COST,
6850 src2.G1_BILL_RAW_COST,
6851 src2.G1_BRDN_COST,
6852 src2.G1_BILL_BRDN_COST,
6853 src2.G1_REVENUE,
6854 src2.G1_SUP_INV_COMMITTED_COST,
6855 src2.G1_PO_COMMITTED_COST,
6856 src2.G1_PR_COMMITTED_COST,
6857 src2.G1_OTH_COMMITTED_COST,
6858 src2.G2_RAW_COST,
6859 src2.G2_BILL_RAW_COST,
6860 src2.G2_BRDN_COST,
6861 src2.G2_BILL_BRDN_COST,
6862 src2.G2_REVENUE,
6863 src2.G2_SUP_INV_COMMITTED_COST,
6864 src2.G2_PO_COMMITTED_COST,
6865 src2.G2_PR_COMMITTED_COST,
6866 src2.G2_OTH_COMMITTED_COST,
6867 src2.QUANTITY,
6868 src2.BILL_QUANTITY
6869 from
6870 (
6871 select
6872 src1.TXN_ACCUM_HEADER_ID,
6873 src1.RESOURCE_CLASS_ID,
6874 src1.PROJECT_ID,
6875 src1.PROJECT_ORG_ID,
6876 src1.PROJECT_ORGANIZATION_ID,
6877 src1.PROJECT_TYPE_CLASS,
6878 src1.TASK_ID,
6879 src1.RECVR_PERIOD_TYPE,
6880 src1.RECVR_PERIOD_ID,
6881 src1.RBS_VERSION_ID,
6882 src1.TXN_CURRENCY_CODE,
6883 sum(src1.TXN_RAW_COST) TXN_RAW_COST,
6884 sum(src1.TXN_BILL_RAW_COST) TXN_BILL_RAW_COST,
6885 sum(src1.TXN_BRDN_COST) TXN_BRDN_COST,
6886 sum(src1.TXN_BILL_BRDN_COST) TXN_BILL_BRDN_COST,
6887 sum(src1.TXN_REVENUE) TXN_REVENUE,
6888 sum(src1.TXN_SUP_INV_COMMITTED_COST) TXN_SUP_INV_COMMITTED_COST,
6889 sum(src1.TXN_PO_COMMITTED_COST) TXN_PO_COMMITTED_COST,
6890 sum(src1.TXN_PR_COMMITTED_COST) TXN_PR_COMMITTED_COST,
6891 sum(src1.TXN_OTH_COMMITTED_COST) TXN_OTH_COMMITTED_COST,
6892 sum(src1.PRJ_RAW_COST) PRJ_RAW_COST,
6893 sum(src1.PRJ_BILL_RAW_COST) PRJ_BILL_RAW_COST,
6894 sum(src1.PRJ_BRDN_COST) PRJ_BRDN_COST,
6895 sum(src1.PRJ_BILL_BRDN_COST) PRJ_BILL_BRDN_COST,
6896 sum(src1.PRJ_REVENUE) PRJ_REVENUE,
6897 sum(src1.PRJ_SUP_INV_COMMITTED_COST) PRJ_SUP_INV_COMMITTED_COST,
6898 sum(src1.PRJ_PO_COMMITTED_COST) PRJ_PO_COMMITTED_COST,
6899 sum(src1.PRJ_PR_COMMITTED_COST) PRJ_PR_COMMITTED_COST,
6900 sum(src1.PRJ_OTH_COMMITTED_COST) PRJ_OTH_COMMITTED_COST,
6901 sum(src1.POU_RAW_COST) POU_RAW_COST,
6902 sum(src1.POU_BILL_RAW_COST) POU_BILL_RAW_COST,
6903 sum(src1.POU_BRDN_COST) POU_BRDN_COST,
6904 sum(src1.POU_BILL_BRDN_COST) POU_BILL_BRDN_COST,
6905 sum(src1.POU_REVENUE) POU_REVENUE,
6906 sum(src1.POU_SUP_INV_COMMITTED_COST) POU_SUP_INV_COMMITTED_COST,
6907 sum(src1.POU_PO_COMMITTED_COST) POU_PO_COMMITTED_COST,
6908 sum(src1.POU_PR_COMMITTED_COST) POU_PR_COMMITTED_COST,
6909 sum(src1.POU_OTH_COMMITTED_COST) POU_OTH_COMMITTED_COST,
6910 sum(src1.EOU_RAW_COST) EOU_RAW_COST,
6911 sum(src1.EOU_BILL_RAW_COST) EOU_BILL_RAW_COST,
6912 sum(src1.EOU_BRDN_COST) EOU_BRDN_COST,
6913 sum(src1.EOU_BILL_BRDN_COST) EOU_BILL_BRDN_COST,
6914 sum(src1.EOU_SUP_INV_COMMITTED_COST) EOU_SUP_INV_COMMITTED_COST,
6915 sum(src1.EOU_PO_COMMITTED_COST) EOU_PO_COMMITTED_COST,
6916 sum(src1.EOU_PR_COMMITTED_COST) EOU_PR_COMMITTED_COST,
6917 sum(src1.EOU_OTH_COMMITTED_COST) EOU_OTH_COMMITTED_COST,
6918 sum(src1.G1_RAW_COST) G1_RAW_COST,
6919 sum(src1.G1_BILL_RAW_COST) G1_BILL_RAW_COST,
6920 sum(src1.G1_BRDN_COST) G1_BRDN_COST,
6921 sum(src1.G1_BILL_BRDN_COST) G1_BILL_BRDN_COST,
6922 sum(src1.G1_REVENUE) G1_REVENUE,
6923 sum(src1.G1_SUP_INV_COMMITTED_COST) G1_SUP_INV_COMMITTED_COST,
6924 sum(src1.G1_PO_COMMITTED_COST) G1_PO_COMMITTED_COST,
6925 sum(src1.G1_PR_COMMITTED_COST) G1_PR_COMMITTED_COST,
6926 sum(src1.G1_OTH_COMMITTED_COST) G1_OTH_COMMITTED_COST,
6927 sum(src1.G2_RAW_COST) G2_RAW_COST,
6928 sum(src1.G2_BILL_RAW_COST) G2_BILL_RAW_COST,
6929 sum(src1.G2_BRDN_COST) G2_BRDN_COST,
6930 sum(src1.G2_BILL_BRDN_COST) G2_BILL_BRDN_COST,
6931 sum(src1.G2_REVENUE) G2_REVENUE,
6932 sum(src1.G2_SUP_INV_COMMITTED_COST) G2_SUP_INV_COMMITTED_COST,
6933 sum(src1.G2_PO_COMMITTED_COST) G2_PO_COMMITTED_COST,
6934 sum(src1.G2_PR_COMMITTED_COST) G2_PR_COMMITTED_COST,
6935 sum(src1.G2_OTH_COMMITTED_COST) G2_OTH_COMMITTED_COST,
6936 sum(src1.QUANTITY) QUANTITY,
6937 sum(src1.BILL_QUANTITY) BILL_QUANTITY
6938 from
6939 (
6940 select /*+ ordered cardinality(MAP 1) use_nl(BAL) index (rbs_hdr, PJI_PJP_RBS_HEADER_N1) */ -- Modified for Bug 14735308
6941 -- initial actuals data /* Added for bug 9836218 */ /* modified hint for 14724124 */
6942 bal.TXN_ACCUM_HEADER_ID,
6943 bal.RESOURCE_CLASS_ID,
6944 bal.PROJECT_ID,
6945 bal.PROJECT_ORG_ID,
6946 bal.PROJECT_ORGANIZATION_ID,
6947 bal.PROJECT_TYPE_CLASS,
6948 nvl(bal.TASK_ID, -1) TASK_ID,
6949 bal.RECVR_PERIOD_TYPE,
6950 bal.RECVR_PERIOD_ID,
6951 nvl(rbs_hdr.RBS_VERSION_ID, -1) RBS_VERSION_ID,
6952 bal.TXN_CURRENCY_CODE,
6953 bal.TXN_RAW_COST,
6954 bal.TXN_BILL_RAW_COST,
6955 bal.TXN_BRDN_COST,
6956 bal.TXN_BILL_BRDN_COST,
6957 bal.TXN_REVENUE,
6958 to_number(null) TXN_SUP_INV_COMMITTED_COST,
6959 to_number(null) TXN_PO_COMMITTED_COST,
6960 to_number(null) TXN_PR_COMMITTED_COST,
6961 to_number(null) TXN_OTH_COMMITTED_COST,
6962 bal.PRJ_RAW_COST,
6963 bal.PRJ_BILL_RAW_COST,
6964 bal.PRJ_BRDN_COST,
6965 bal.PRJ_BILL_BRDN_COST,
6966 bal.PRJ_REVENUE,
6967 to_number(null) PRJ_SUP_INV_COMMITTED_COST,
6968 to_number(null) PRJ_PO_COMMITTED_COST,
6969 to_number(null) PRJ_PR_COMMITTED_COST,
6970 to_number(null) PRJ_OTH_COMMITTED_COST,
6971 bal.POU_RAW_COST,
6972 bal.POU_BILL_RAW_COST,
6973 bal.POU_BRDN_COST,
6974 bal.POU_BILL_BRDN_COST,
6975 bal.POU_REVENUE,
6976 to_number(null) POU_SUP_INV_COMMITTED_COST,
6977 to_number(null) POU_PO_COMMITTED_COST,
6978 to_number(null) POU_PR_COMMITTED_COST,
6979 to_number(null) POU_OTH_COMMITTED_COST,
6980 bal.EOU_RAW_COST,
6981 bal.EOU_BILL_RAW_COST,
6982 bal.EOU_BRDN_COST,
6983 bal.EOU_BILL_BRDN_COST,
6984 to_number(null) EOU_SUP_INV_COMMITTED_COST,
6985 to_number(null) EOU_PO_COMMITTED_COST,
6986 to_number(null) EOU_PR_COMMITTED_COST,
6987 to_number(null) EOU_OTH_COMMITTED_COST,
6988 bal.G1_RAW_COST,
6989 bal.G1_BILL_RAW_COST,
6990 bal.G1_BRDN_COST,
6991 bal.G1_BILL_BRDN_COST,
6992 bal.G1_REVENUE,
6993 to_number(null) G1_SUP_INV_COMMITTED_COST,
6994 to_number(null) G1_PO_COMMITTED_COST,
6995 to_number(null) G1_PR_COMMITTED_COST,
6996 to_number(null) G1_OTH_COMMITTED_COST,
6997 bal.G2_RAW_COST,
6998 bal.G2_BILL_RAW_COST,
6999 bal.G2_BRDN_COST,
7000 bal.G2_BILL_BRDN_COST,
7001 bal.G2_REVENUE,
7002 to_number(null) G2_SUP_INV_COMMITTED_COST,
7003 to_number(null) G2_PO_COMMITTED_COST,
7004 to_number(null) G2_PR_COMMITTED_COST,
7005 to_number(null) G2_OTH_COMMITTED_COST,
7006 bal.QUANTITY,
7007 bal.BILL_QUANTITY
7008 from
7009 PJI_PJP_PROJ_BATCH_MAP map,
7010 PJI_FP_TXN_ACCUM bal,
7011 PJI_PJP_RBS_HEADER rbs_hdr
7012 where
7013 l_extraction_type in ('FULL', 'PARTIAL') and
7014 -- decode(l_extraction_type,'FULL','Y','PARTIAL',decode(bitand(l_refresh_code,1),1,'Y','N'),'N') ='Y' and -- Bug#5099574
7015 -- l_plan_type_id IS NULL and -- Bug#5099574
7016 map.WORKER_ID = p_worker_id and
7017 bal.PROJECT_ID = map.PROJECT_ID and
7018 bal.PROJECT_ID = rbs_hdr.PROJECT_ID and
7019 -1 = rbs_hdr.PLAN_VERSION_ID
7020 union all -- initial commitments data
7021 select /*+ ordered cardinality(MAP 1) use_nl(BAL) index (rbs_hdr, PJI_PJP_RBS_HEADER_N1) */ -- Modified for Bug 14735308
7022 --added hint for 14724124
7023 bal.TXN_ACCUM_HEADER_ID,
7024 to_number(null) RESOURCE_CLASS_ID,
7025 bal.PROJECT_ID,
7026 bal.PROJECT_ORG_ID,
7027 bal.PROJECT_ORGANIZATION_ID,
7028 to_char(null) PROJECT_TYPE_CLASS,
7029 nvl(bal.TASK_ID, -1) TASK_ID,
7030 bal.RECVR_PERIOD_TYPE,
7031 bal.RECVR_PERIOD_ID,
7032 nvl(rbs_hdr.RBS_VERSION_ID, -1) RBS_VERSION_ID,
7033 bal.TXN_CURRENCY_CODE,
7034 to_number(null) TXN_RAW_COST,
7035 to_number(null) TXN_BILL_RAW_COST,
7036 to_number(null) TXN_BRDN_COST,
7037 to_number(null) TXN_BILL_BRDN_COST,
7038 to_number(null) TXN_REVENUE,
7039 bal.TXN_SUP_INV_COMMITTED_COST,
7040 bal.TXN_PO_COMMITTED_COST,
7041 bal.TXN_PR_COMMITTED_COST,
7042 bal.TXN_OTH_COMMITTED_COST,
7043 to_number(null) PRJ_RAW_COST,
7044 to_number(null) PRJ_BILL_RAW_COST,
7045 to_number(null) PRJ_BRDN_COST,
7046 to_number(null) PRJ_BILL_BRDN_COST,
7047 to_number(null) PRJ_REVENUE,
7048 bal.PRJ_SUP_INV_COMMITTED_COST,
7049 bal.PRJ_PO_COMMITTED_COST,
7050 bal.PRJ_PR_COMMITTED_COST,
7051 bal.PRJ_OTH_COMMITTED_COST,
7052 to_number(null) POU_RAW_COST,
7053 to_number(null) POU_BILL_RAW_COST,
7054 to_number(null) POU_BRDN_COST,
7055 to_number(null) POU_BILL_BRDN_COST,
7056 to_number(null) POU_REVENUE,
7057 bal.POU_SUP_INV_COMMITTED_COST,
7058 bal.POU_PO_COMMITTED_COST,
7059 bal.POU_PR_COMMITTED_COST,
7060 bal.POU_OTH_COMMITTED_COST,
7061 to_number(null) EOU_RAW_COST,
7062 to_number(null) EOU_BILL_RAW_COST,
7063 to_number(null) EOU_BRDN_COST,
7064 to_number(null) EOU_BILL_BRDN_COST,
7065 bal.EOU_SUP_INV_COMMITTED_COST,
7066 bal.EOU_PO_COMMITTED_COST,
7067 bal.EOU_PR_COMMITTED_COST,
7068 bal.EOU_OTH_COMMITTED_COST,
7069 to_number(null) G1_RAW_COST,
7070 to_number(null) G1_BILL_RAW_COST,
7071 to_number(null) G1_BRDN_COST,
7072 to_number(null) G1_BILL_BRDN_COST,
7073 to_number(null) G1_REVENUE,
7074 bal.G1_SUP_INV_COMMITTED_COST,
7075 bal.G1_PO_COMMITTED_COST,
7076 bal.G1_PR_COMMITTED_COST,
7077 bal.G1_OTH_COMMITTED_COST,
7078 to_number(null) G2_RAW_COST,
7079 to_number(null) G2_BILL_RAW_COST,
7080 to_number(null) G2_BRDN_COST,
7081 to_number(null) G2_BILL_BRDN_COST,
7082 to_number(null) G2_REVENUE,
7083 bal.G2_SUP_INV_COMMITTED_COST,
7084 bal.G2_PO_COMMITTED_COST,
7085 bal.G2_PR_COMMITTED_COST,
7086 bal.G2_OTH_COMMITTED_COST,
7087 to_number(null) QUANTITY,
7088 to_number(null) BILL_QUANTITY
7089 from
7090 PJI_PJP_PROJ_BATCH_MAP map,
7091 PJI_FP_TXN_ACCUM1 bal,
7092 PJI_PJP_RBS_HEADER rbs_hdr
7093 where
7094 l_extraction_type in ('FULL', 'PARTIAL') and
7095 -- decode(l_extraction_type,'FULL','Y','PARTIAL',decode(bitand(l_refresh_code,1),1,'Y','N'),'N') ='Y' and -- Bug#5099574
7096 -- l_plan_type_id IS NULL and -- Bug#5099574
7097 map.WORKER_ID = p_worker_id and
7098 bal.PROJECT_ID = map.PROJECT_ID and
7099 bal.PROJECT_ID = rbs_hdr.PROJECT_ID and
7100 -1 = rbs_hdr.PLAN_VERSION_ID
7101 union all -- incremental data
7102 select /*+ leading(TMP7_R,TMP7,RBS_HDR) */ --Added hint for 15881881
7103 tmp7.TXN_ACCUM_HEADER_ID,
7104 tmp7.RESOURCE_CLASS_ID,
7105 tmp7.PROJECT_ID,
7106 tmp7.PROJECT_ORG_ID,
7107 tmp7.PROJECT_ORGANIZATION_ID,
7108 tmp7.PROJECT_TYPE_CLASS,
7109 nvl(tmp7.TASK_ID, -1) TASK_ID,
7110 tmp7.RECVR_PERIOD_TYPE,
7111 tmp7.RECVR_PERIOD_ID,
7112 nvl(rbs_hdr.RBS_VERSION_ID, -1) RBS_VERSION_ID,
7113 tmp7.TXN_CURRENCY_CODE,
7114 tmp7.TXN_RAW_COST,
7115 tmp7.TXN_BILL_RAW_COST,
7116 tmp7.TXN_BRDN_COST,
7117 tmp7.TXN_BILL_BRDN_COST,
7118 tmp7.TXN_REVENUE,
7119 tmp7.TXN_SUP_INV_COMMITTED_COST,
7120 tmp7.TXN_PO_COMMITTED_COST,
7121 tmp7.TXN_PR_COMMITTED_COST,
7122 tmp7.TXN_OTH_COMMITTED_COST,
7123 tmp7.PRJ_RAW_COST,
7124 tmp7.PRJ_BILL_RAW_COST,
7125 tmp7.PRJ_BRDN_COST,
7126 tmp7.PRJ_BILL_BRDN_COST,
7127 tmp7.PRJ_REVENUE,
7128 tmp7.PRJ_SUP_INV_COMMITTED_COST,
7129 tmp7.PRJ_PO_COMMITTED_COST,
7130 tmp7.PRJ_PR_COMMITTED_COST,
7131 tmp7.PRJ_OTH_COMMITTED_COST,
7132 tmp7.POU_RAW_COST,
7133 tmp7.POU_BILL_RAW_COST,
7134 tmp7.POU_BRDN_COST,
7135 tmp7.POU_BILL_BRDN_COST,
7136 tmp7.POU_REVENUE,
7137 tmp7.POU_SUP_INV_COMMITTED_COST,
7138 tmp7.POU_PO_COMMITTED_COST,
7139 tmp7.POU_PR_COMMITTED_COST,
7140 tmp7.POU_OTH_COMMITTED_COST,
7141 tmp7.EOU_RAW_COST,
7142 tmp7.EOU_BILL_RAW_COST,
7143 tmp7.EOU_BRDN_COST,
7144 tmp7.EOU_BILL_BRDN_COST,
7145 tmp7.EOU_SUP_INV_COMMITTED_COST,
7146 tmp7.EOU_PO_COMMITTED_COST,
7147 tmp7.EOU_PR_COMMITTED_COST,
7148 tmp7.EOU_OTH_COMMITTED_COST,
7149 tmp7.G1_RAW_COST,
7150 tmp7.G1_BILL_RAW_COST,
7151 tmp7.G1_BRDN_COST,
7152 tmp7.G1_BILL_BRDN_COST,
7153 tmp7.G1_REVENUE,
7154 tmp7.G1_SUP_INV_COMMITTED_COST,
7155 tmp7.G1_PO_COMMITTED_COST,
7156 tmp7.G1_PR_COMMITTED_COST,
7157 tmp7.G1_OTH_COMMITTED_COST,
7158 tmp7.G2_RAW_COST,
7159 tmp7.G2_BILL_RAW_COST,
7160 tmp7.G2_BRDN_COST,
7161 tmp7.G2_BILL_BRDN_COST,
7162 tmp7.G2_REVENUE,
7163 tmp7.G2_SUP_INV_COMMITTED_COST,
7164 tmp7.G2_PO_COMMITTED_COST,
7165 tmp7.G2_PR_COMMITTED_COST,
7166 tmp7.G2_OTH_COMMITTED_COST,
7167 tmp7.QUANTITY,
7168 tmp7.BILL_QUANTITY
7169 from
7170 (select distinct STG_ROWID, worker_id from PJI_PJP_RMAP_FPR) tmp7_r, -- Added for bug 16383776
7171 PJI_FM_AGGR_FIN7 tmp7,
7172 PJI_PJP_RBS_HEADER rbs_hdr
7173 where
7174 l_extraction_type = 'INCREMENTAL' and
7175 tmp7_r.WORKER_ID = p_worker_id and
7176 tmp7_r.STG_ROWID = tmp7.ROWID and
7177 tmp7.PROJECT_ID = rbs_hdr.PROJECT_ID and
7178 -1 = rbs_hdr.PLAN_VERSION_ID
7179 union all -- newly associated RBSs for actuals
7180 select
7181 bal.TXN_ACCUM_HEADER_ID,
7182 bal.RESOURCE_CLASS_ID,
7183 bal.PROJECT_ID,
7184 bal.PROJECT_ORG_ID,
7185 bal.PROJECT_ORGANIZATION_ID,
7186 bal.PROJECT_TYPE_CLASS,
7187 nvl(bal.TASK_ID, -1) TASK_ID,
7188 bal.RECVR_PERIOD_TYPE,
7189 bal.RECVR_PERIOD_ID,
7190 log.RBS_VERSION_ID,
7191 bal.TXN_CURRENCY_CODE,
7192 bal.TXN_RAW_COST,
7193 bal.TXN_BILL_RAW_COST,
7194 bal.TXN_BRDN_COST,
7195 bal.TXN_BILL_BRDN_COST,
7196 bal.TXN_REVENUE,
7197 to_number(null) TXN_SUP_INV_COMMITTED_COST,
7198 to_number(null) TXN_PO_COMMITTED_COST,
7199 to_number(null) TXN_PR_COMMITTED_COST,
7200 to_number(null) TXN_OTH_COMMITTED_COST,
7201 bal.PRJ_RAW_COST,
7202 bal.PRJ_BILL_RAW_COST,
7203 bal.PRJ_BRDN_COST,
7204 bal.PRJ_BILL_BRDN_COST,
7205 bal.PRJ_REVENUE,
7206 to_number(null) PRJ_SUP_INV_COMMITTED_COST,
7207 to_number(null) PRJ_PO_COMMITTED_COST,
7208 to_number(null) PRJ_PR_COMMITTED_COST,
7209 to_number(null) PRJ_OTH_COMMITTED_COST,
7210 bal.POU_RAW_COST,
7211 bal.POU_BILL_RAW_COST,
7212 bal.POU_BRDN_COST,
7213 bal.POU_BILL_BRDN_COST,
7214 bal.POU_REVENUE,
7215 to_number(null) POU_SUP_INV_COMMITTED_COST,
7216 to_number(null) POU_PO_COMMITTED_COST,
7217 to_number(null) POU_PR_COMMITTED_COST,
7218 to_number(null) POU_OTH_COMMITTED_COST,
7219 bal.EOU_RAW_COST,
7220 bal.EOU_BILL_RAW_COST,
7221 bal.EOU_BRDN_COST,
7222 bal.EOU_BILL_BRDN_COST,
7223 to_number(null) EOU_SUP_INV_COMMITTED_COST,
7224 to_number(null) EOU_PO_COMMITTED_COST,
7225 to_number(null) EOU_PR_COMMITTED_COST,
7226 to_number(null) EOU_OTH_COMMITTED_COST,
7227 bal.G1_RAW_COST,
7228 bal.G1_BILL_RAW_COST,
7229 bal.G1_BRDN_COST,
7230 bal.G1_BILL_BRDN_COST,
7231 bal.G1_REVENUE,
7232 to_number(null) G1_SUP_INV_COMMITTED_COST,
7233 to_number(null) G1_PO_COMMITTED_COST,
7234 to_number(null) G1_PR_COMMITTED_COST,
7235 to_number(null) G1_OTH_COMMITTED_COST,
7236 bal.G2_RAW_COST,
7237 bal.G2_BILL_RAW_COST,
7238 bal.G2_BRDN_COST,
7239 bal.G2_BILL_BRDN_COST,
7240 bal.G2_REVENUE,
7241 to_number(null) G2_SUP_INV_COMMITTED_COST,
7242 to_number(null) G2_PO_COMMITTED_COST,
7243 to_number(null) G2_PR_COMMITTED_COST,
7244 to_number(null) G2_OTH_COMMITTED_COST,
7245 bal.QUANTITY,
7246 bal.BILL_QUANTITY
7247 from
7248 PJI_FP_TXN_ACCUM bal,
7249 (
7250 select
7251 distinct
7252 to_number(log.EVENT_OBJECT) RBS_VERSION_ID,
7253 to_number(log.ATTRIBUTE1) PROJECT_ID
7254 from
7255 PJI_PA_PROJ_EVENTS_LOG log
7256 where
7257 log.WORKER_ID = p_worker_id and
7258 log.EVENT_TYPE = 'RBS_ASSOC'
7259 ) log
7260 where
7261 l_extraction_type = 'INCREMENTAL' and
7262 bal.PROJECT_ID = log.PROJECT_ID
7263 union all -- newly associated RBSs for commitments
7264 select
7265 bal.TXN_ACCUM_HEADER_ID,
7266 to_number(null) RESOURCE_CLASS_ID,
7267 bal.PROJECT_ID,
7268 bal.PROJECT_ORG_ID,
7269 bal.PROJECT_ORGANIZATION_ID,
7270 to_char(null) PROJECT_TYPE_CLASS,
7271 nvl(bal.TASK_ID, -1) TASK_ID,
7272 bal.RECVR_PERIOD_TYPE,
7273 bal.RECVR_PERIOD_ID,
7274 log.RBS_VERSION_ID,
7275 bal.TXN_CURRENCY_CODE,
7276 to_number(null) TXN_RAW_COST,
7277 to_number(null) TXN_BILL_RAW_COST,
7278 to_number(null) TXN_BRDN_COST,
7279 to_number(null) TXN_BILL_BRDN_COST,
7280 to_number(null) TXN_REVENUE,
7281 bal.TXN_SUP_INV_COMMITTED_COST,
7282 bal.TXN_PO_COMMITTED_COST,
7283 bal.TXN_PR_COMMITTED_COST,
7284 bal.TXN_OTH_COMMITTED_COST,
7285 to_number(null) PRJ_RAW_COST,
7286 to_number(null) PRJ_BILL_RAW_COST,
7287 to_number(null) PRJ_BRDN_COST,
7288 to_number(null) PRJ_BILL_BRDN_COST,
7289 to_number(null) PRJ_REVENUE,
7290 bal.PRJ_SUP_INV_COMMITTED_COST,
7291 bal.PRJ_PO_COMMITTED_COST,
7292 bal.PRJ_PR_COMMITTED_COST,
7293 bal.PRJ_OTH_COMMITTED_COST,
7294 to_number(null) POU_RAW_COST,
7295 to_number(null) POU_BILL_RAW_COST,
7296 to_number(null) POU_BRDN_COST,
7297 to_number(null) POU_BILL_BRDN_COST,
7298 to_number(null) POU_REVENUE,
7299 bal.POU_SUP_INV_COMMITTED_COST,
7300 bal.POU_PO_COMMITTED_COST,
7301 bal.POU_PR_COMMITTED_COST,
7302 bal.POU_OTH_COMMITTED_COST,
7303 to_number(null) EOU_RAW_COST,
7304 to_number(null) EOU_BILL_RAW_COST,
7305 to_number(null) EOU_BRDN_COST,
7306 to_number(null) EOU_BILL_BRDN_COST,
7307 bal.EOU_SUP_INV_COMMITTED_COST,
7308 bal.EOU_PO_COMMITTED_COST,
7309 bal.EOU_PR_COMMITTED_COST,
7310 bal.EOU_OTH_COMMITTED_COST,
7311 to_number(null) G1_RAW_COST,
7312 to_number(null) G1_BILL_RAW_COST,
7313 to_number(null) G1_BRDN_COST,
7314 to_number(null) G1_BILL_BRDN_COST,
7315 to_number(null) G1_REVENUE,
7316 bal.G1_SUP_INV_COMMITTED_COST,
7317 bal.G1_PO_COMMITTED_COST,
7318 bal.G1_PR_COMMITTED_COST,
7319 bal.G1_OTH_COMMITTED_COST,
7320 to_number(null) G2_RAW_COST,
7321 to_number(null) G2_BILL_RAW_COST,
7322 to_number(null) G2_BRDN_COST,
7323 to_number(null) G2_BILL_BRDN_COST,
7324 to_number(null) G2_REVENUE,
7325 bal.G2_SUP_INV_COMMITTED_COST,
7326 bal.G2_PO_COMMITTED_COST,
7327 bal.G2_PR_COMMITTED_COST,
7328 bal.G2_OTH_COMMITTED_COST,
7329 to_number(null) QUANTITY,
7330 to_number(null) BILL_QUANTITY
7331 from
7332 PJI_FP_TXN_ACCUM1 bal,
7333 (
7334 select
7335 distinct
7336 to_number(log.EVENT_OBJECT) RBS_VERSION_ID,
7337 to_numbeR(log.ATTRIBUTE1) PROJECT_ID
7338 from
7339 PJI_PA_PROJ_EVENTS_LOG log
7340 where
7341 log.WORKER_ID = p_worker_id and
7342 log.EVENT_TYPE = 'RBS_ASSOC'
7343 ) log
7344 where
7345 l_extraction_type = 'INCREMENTAL' and
7346 bal.PROJECT_ID = log.PROJECT_ID
7347 union all
7348 select /*+ ordered index(bal, PJI_FP_TXN_ACCUM_N2)*/
7349 -- RBS change processing actuals
7350 --modified hint for 14724124
7351 bal.TXN_ACCUM_HEADER_ID,
7352 bal.RESOURCE_CLASS_ID,
7353 bal.PROJECT_ID,
7354 bal.PROJECT_ORG_ID,
7355 bal.PROJECT_ORGANIZATION_ID,
7356 bal.PROJECT_TYPE_CLASS,
7357 nvl(bal.TASK_ID, -1) TASK_ID,
7358 bal.RECVR_PERIOD_TYPE,
7359 bal.RECVR_PERIOD_ID,
7360 nvl(to_number(log.EVENT_OBJECT), -1) RBS_VERSION_ID,
7361 bal.TXN_CURRENCY_CODE,
7362 bal.TXN_RAW_COST,
7363 bal.TXN_BILL_RAW_COST,
7364 bal.TXN_BRDN_COST,
7365 bal.TXN_BILL_BRDN_COST,
7366 bal.TXN_REVENUE,
7367 to_number(null) TXN_SUP_INV_COMMITTED_COST,
7368 to_number(null) TXN_PO_COMMITTED_COST,
7369 to_number(null) TXN_PR_COMMITTED_COST,
7370 to_number(null) TXN_OTH_COMMITTED_COST,
7371 bal.PRJ_RAW_COST,
7372 bal.PRJ_BILL_RAW_COST,
7373 bal.PRJ_BRDN_COST,
7374 bal.PRJ_BILL_BRDN_COST,
7375 bal.PRJ_REVENUE,
7376 to_number(null) PRJ_SUP_INV_COMMITTED_COST,
7377 to_number(null) PRJ_PO_COMMITTED_COST,
7378 to_number(null) PRJ_PR_COMMITTED_COST,
7379 to_number(null) PRJ_OTH_COMMITTED_COST,
7380 bal.POU_RAW_COST,
7381 bal.POU_BILL_RAW_COST,
7382 bal.POU_BRDN_COST,
7383 bal.POU_BILL_BRDN_COST,
7384 bal.POU_REVENUE,
7385 to_number(null) POU_SUP_INV_COMMITTED_COST,
7386 to_number(null) POU_PO_COMMITTED_COST,
7387 to_number(null) POU_PR_COMMITTED_COST,
7388 to_number(null) POU_OTH_COMMITTED_COST,
7389 bal.EOU_RAW_COST,
7390 bal.EOU_BILL_RAW_COST,
7391 bal.EOU_BRDN_COST,
7392 bal.EOU_BILL_BRDN_COST,
7393 to_number(null) EOU_SUP_INV_COMMITTED_COST,
7394 to_number(null) EOU_PO_COMMITTED_COST,
7395 to_number(null) EOU_PR_COMMITTED_COST,
7396 to_number(null) EOU_OTH_COMMITTED_COST,
7397 bal.G1_RAW_COST,
7398 bal.G1_BILL_RAW_COST,
7399 bal.G1_BRDN_COST,
7400 bal.G1_BILL_BRDN_COST,
7401 bal.G1_REVENUE,
7402 to_number(null) G1_SUP_INV_COMMITTED_COST,
7403 to_number(null) G1_PO_COMMITTED_COST,
7404 to_number(null) G1_PR_COMMITTED_COST,
7405 to_number(null) G1_OTH_COMMITTED_COST,
7406 bal.G2_RAW_COST,
7407 bal.G2_BILL_RAW_COST,
7408 bal.G2_BRDN_COST,
7409 bal.G2_BILL_BRDN_COST,
7410 bal.G2_REVENUE,
7411 to_number(null) G2_SUP_INV_COMMITTED_COST,
7412 to_number(null) G2_PO_COMMITTED_COST,
7413 to_number(null) G2_PR_COMMITTED_COST,
7414 to_number(null) G2_OTH_COMMITTED_COST,
7415 bal.QUANTITY,
7416 bal.BILL_QUANTITY
7417 from
7418 PJI_PA_PROJ_EVENTS_LOG log,
7419 PJI_PJP_PROJ_EXTR_STATUS stat,
7420 PJI_FP_TXN_ACCUM bal
7421 where
7422 l_extraction_type = 'RBS' and
7423 log.WORKER_ID = p_worker_id and
7424 log.EVENT_TYPE = 'RBS_PUSH' and
7425 stat.PROJECT_ID = log.ATTRIBUTE19 and
7426 stat.EXTRACTION_STATUS = 'I' and
7427 bal.PROJECT_ID = log.ATTRIBUTE19
7428 union all -- RBS change processing commitments
7429 select /*+ ordered */
7430 --added hint for 14724124
7431 bal.TXN_ACCUM_HEADER_ID,
7432 to_number(null) RESOURCE_CLASS_ID,
7433 bal.PROJECT_ID,
7434 bal.PROJECT_ORG_ID,
7435 bal.PROJECT_ORGANIZATION_ID,
7436 to_char(null) PROJECT_TYPE_CLASS,
7437 nvl(bal.TASK_ID, -1) TASK_ID,
7438 bal.RECVR_PERIOD_TYPE,
7439 bal.RECVR_PERIOD_ID,
7440 nvl(to_number(log.EVENT_OBJECT), -1) RBS_VERSION_ID,
7441 bal.TXN_CURRENCY_CODE,
7442 to_number(null) TXN_RAW_COST,
7443 to_number(null) TXN_BILL_RAW_COST,
7444 to_number(null) TXN_BRDN_COST,
7445 to_number(null) TXN_BILL_BRDN_COST,
7446 to_number(null) TXN_REVENUE,
7447 bal.TXN_SUP_INV_COMMITTED_COST,
7448 bal.TXN_PO_COMMITTED_COST,
7449 bal.TXN_PR_COMMITTED_COST,
7450 bal.TXN_OTH_COMMITTED_COST,
7451 to_number(null) PRJ_RAW_COST,
7452 to_number(null) PRJ_BILL_RAW_COST,
7453 to_number(null) PRJ_BRDN_COST,
7454 to_number(null) PRJ_BILL_BRDN_COST,
7455 to_number(null) PRJ_REVENUE,
7456 bal.PRJ_SUP_INV_COMMITTED_COST,
7457 bal.PRJ_PO_COMMITTED_COST,
7458 bal.PRJ_PR_COMMITTED_COST,
7459 bal.PRJ_OTH_COMMITTED_COST,
7460 to_number(null) POU_RAW_COST,
7461 to_number(null) POU_BILL_RAW_COST,
7462 to_number(null) POU_BRDN_COST,
7463 to_number(null) POU_BILL_BRDN_COST,
7464 to_number(null) POU_REVENUE,
7465 bal.POU_SUP_INV_COMMITTED_COST,
7466 bal.POU_PO_COMMITTED_COST,
7467 bal.POU_PR_COMMITTED_COST,
7468 bal.POU_OTH_COMMITTED_COST,
7469 to_number(null) EOU_RAW_COST,
7470 to_number(null) EOU_BILL_RAW_COST,
7471 to_number(null) EOU_BRDN_COST,
7472 to_number(null) EOU_BILL_BRDN_COST,
7473 bal.EOU_SUP_INV_COMMITTED_COST,
7474 bal.EOU_PO_COMMITTED_COST,
7475 bal.EOU_PR_COMMITTED_COST,
7476 bal.EOU_OTH_COMMITTED_COST,
7477 to_number(null) G1_RAW_COST,
7478 to_number(null) G1_BILL_RAW_COST,
7479 to_number(null) G1_BRDN_COST,
7480 to_number(null) G1_BILL_BRDN_COST,
7481 to_number(null) G1_REVENUE,
7482 bal.G1_SUP_INV_COMMITTED_COST,
7483 bal.G1_PO_COMMITTED_COST,
7484 bal.G1_PR_COMMITTED_COST,
7485 bal.G1_OTH_COMMITTED_COST,
7486 to_number(null) G2_RAW_COST,
7487 to_number(null) G2_BILL_RAW_COST,
7488 to_number(null) G2_BRDN_COST,
7489 to_number(null) G2_BILL_BRDN_COST,
7490 to_number(null) G2_REVENUE,
7491 bal.G2_SUP_INV_COMMITTED_COST,
7492 bal.G2_PO_COMMITTED_COST,
7493 bal.G2_PR_COMMITTED_COST,
7494 bal.G2_OTH_COMMITTED_COST,
7495 to_number(null) QUANTITY,
7496 to_number(null) BILL_QUANTITY
7497 from
7498 PJI_PA_PROJ_EVENTS_LOG log,
7499 PJI_PJP_PROJ_EXTR_STATUS stat,
7500 PJI_FP_TXN_ACCUM1 bal
7501 where
7502 l_extraction_type = 'RBS' and
7503 log.WORKER_ID = p_worker_id and
7504 log.EVENT_TYPE = 'RBS_PUSH' and
7505 stat.PROJECT_ID = log.ATTRIBUTE19 and
7506 stat.EXTRACTION_STATUS = 'I' and
7507 bal.PROJECT_ID = log.ATTRIBUTE19
7508 ) src1
7509 group by
7510 src1.TXN_ACCUM_HEADER_ID,
7511 src1.RESOURCE_CLASS_ID,
7512 src1.PROJECT_ID,
7513 src1.PROJECT_ORG_ID,
7514 src1.PROJECT_ORGANIZATION_ID,
7515 src1.PROJECT_TYPE_CLASS,
7516 src1.TASK_ID,
7517 src1.RECVR_PERIOD_TYPE,
7518 src1.RECVR_PERIOD_ID,
7519 src1.RBS_VERSION_ID,
7520 src1.TXN_CURRENCY_CODE
7521 ) src2
7522 ) src,
7523 PA_RBS_TXN_ACCUM_MAP rbs,
7524 PJI_PJP_PROJ_BATCH_MAP map,
7525 PJI_ORG_EXTR_INFO info,
7526 PJI_PJP_WBS_HEADER wbs_hdr,
7527 PA_PROJ_ELEMENT_VERSIONS ver,
7528 (
7529 select 1 INVERT_ID from dual
7530 where l_g1_currency_flag = 'Y' and /* Added for Bug 8708651 */
7531 l_g1_currency_code is not null union all
7532 select 2 INVERT_ID from dual
7533 where l_g2_currency_flag = 'Y' and
7534 l_g2_currency_code is not null union all
7535 select 4 INVERT_ID from dual union all
7536 select 8 INVERT_ID from dual union all
7537 select 16 INVERT_ID from dual
7538 where l_txn_currency_flag = 'Y'
7539 -- select 32 INVERT_ID from dual OMIT DETAIL SLICES FOR NOW
7540 -- where l_g1_currency_code is not null union all
7541 -- select 64 INVERT_ID from dual
7542 -- where l_g2_currency_flag = 'Y' and
7543 -- l_g2_currency_code is not null union all
7544 -- select 128 INVERT_ID from dual union all
7545 -- select 256 INVERT_ID from dual
7546 ) invert
7547 where
7548 src.TXN_ACCUM_HEADER_ID = rbs.TXN_ACCUM_HEADER_ID (+) and
7549 src.RBS_VERSION_ID = rbs.STRUCT_VERSION_ID (+) and
7550 map.WORKER_ID = p_worker_id and
7551 src.PROJECT_ID = map.PROJECT_ID and
7552 src.PROJECT_ORG_ID = info.ORG_ID and /*5377133 */
7553 wbs_hdr.PLAN_VERSION_ID = -1 and
7554 src.PROJECT_ID = wbs_hdr.PROJECT_ID and
7555 ver.ELEMENT_VERSION_ID = wbs_hdr.WBS_VERSION_ID
7556 ) src3
7557 group by
7558 src3.WORKER_ID,
7559 src3.TXN_ACCUM_HEADER_ID,
7560 src3.RESOURCE_CLASS_ID,
7561 src3.PROJECT_ID,
7562 src3.PROJECT_ORG_ID,
7563 src3.PROJECT_ORGANIZATION_ID,
7564 src3.PROJECT_TYPE_CLASS,
7565 src3.PROJECT_ELEMENT_ID,
7566 src3.TIME_ID,
7567 src3.PERIOD_TYPE_ID,
7568 src3.CALENDAR_TYPE,
7569 src3.RBS_AGGR_LEVEL,
7570 src3.WBS_ROLLUP_FLAG,
7571 src3.PRG_ROLLUP_FLAG,
7572 src3.DIFF_CURRENCY_CODE,
7573 src3.DIFF_ROWNUM,
7574 nvl(src3.CURRENCY_CODE, 'PJI$NULL'),
7575 src3.RBS_ELEMENT_ID,
7576 src3.RBS_VERSION_ID,
7577 src3.PLAN_VERSION_ID,
7578 src3.PLAN_TYPE_ID
7579 ) src,
7580 PA_RESOURCE_CLASSES_B cls
7581 where
7582 src.RESOURCE_CLASS_ID = cls.RESOURCE_CLASS_ID (+)
7583 group by
7584 src.WORKER_ID,
7585 src.TXN_ACCUM_HEADER_ID,
7586 src.PROJECT_ID,
7587 src.PROJECT_ORG_ID,
7588 src.PROJECT_ORGANIZATION_ID,
7589 src.PROJECT_ELEMENT_ID,
7590 src.TIME_ID,
7591 src.PERIOD_TYPE_ID,
7592 src.CALENDAR_TYPE,
7593 src.RBS_AGGR_LEVEL,
7594 src.WBS_ROLLUP_FLAG,
7595 src.PRG_ROLLUP_FLAG,
7596 src.CURR_RECORD_TYPE_ID,
7597 src.CURRENCY_CODE,
7598 src.RBS_ELEMENT_ID,
7599 src.RBS_VERSION_ID,
7600 src.PLAN_VERSION_ID,
7601 src.PLAN_TYPE_ID;
7602
7603 PJI_PROCESS_UTIL.REGISTER_STEP_COMPLETION(l_process, 'PJI_PJP_SUM_ROLLUP.AGGREGATE_FP_SLICES(p_worker_id);');
7604
7605 commit;
7606
7607 end AGGREGATE_FP_SLICES;
7608
7609
7610 -- -----------------------------------------------------
7611 -- procedure AGGREGATE_AC_SLICES
7612 --
7613 -- History
7614 -- 19-MAR-2004 SVERMETT Created
7615 --
7616 -- Internal PJP Summarization API.
7617 --
7618 -- -----------------------------------------------------
7619 procedure AGGREGATE_AC_SLICES (p_worker_id in number) is
7620
7621 l_process varchar2(30);
7622 l_extraction_type varchar2(30);
7623
7624
7625 l_txn_currency_flag varchar2(1);
7626 l_g2_currency_flag varchar2(1);
7627 l_g1_currency_flag varchar2(1); /* Added for Bug 8708651 */
7628
7629 l_g1_currency_code varchar2(30);
7630 l_g2_currency_code varchar2(30);
7631
7632 l_plan_type_id number; -- Bug#5099574
7633 l_refresh_code number;
7634
7635
7636 begin
7637
7638 l_process := PJI_PJP_SUM_MAIN.g_process || to_char(p_worker_id);
7639
7640 l_extraction_type := PJI_PROCESS_UTIL.GET_PROCESS_PARAMETER(l_process, 'EXTRACTION_TYPE');
7641
7642 if (not PJI_PROCESS_UTIL.NEED_TO_RUN_STEP(l_process, 'PJI_PJP_SUM_ROLLUP.AGGREGATE_AC_SLICES(p_worker_id);')) then
7643 return;
7644 end if;
7645
7646 -- Bug#5099574 - Start
7647
7648 l_plan_type_id := PJI_PROCESS_UTIL.GET_PROCESS_PARAMETER (l_process, 'PLAN_TYPE_ID');
7649 l_refresh_code := PJI_PROCESS_UTIL.GET_PROCESS_PARAMETER (l_process, 'REFRESH_CODE');
7650
7651 if (l_plan_type_id = -1) then
7652 l_plan_type_id := null;
7653 end if;
7654
7655 -- If the condtion is true then mark the process as completed and return
7656 if ( l_extraction_type='PARTIAL' and ( l_plan_type_id is not null or bitand(l_refresh_code,1) <> 1) ) then
7657 PJI_PROCESS_UTIL.REGISTER_STEP_COMPLETION(l_process, 'PJI_PJP_SUM_ROLLUP.AGGREGATE_AC_SLICES(p_worker_id);');
7658 commit;
7659 return;
7660 end if;
7661
7662 -- Bug#5099574 - End
7663
7664 if (l_extraction_type <> 'RBS') then
7665
7666 select
7667 TXN_CURR_FLAG,
7668 GLOBAL_CURR2_FLAG,
7669 nvl(GLOBAL_CURR1_FLAG,'Y') /* Added for Bug 8708651, NULL check added for 9062837 */
7670 into
7671 l_txn_currency_flag,
7672 l_g2_currency_flag,
7673 l_g1_currency_flag /* Added for Bug 8708651 */
7674 from
7675 PJI_SYSTEM_SETTINGS;
7676
7677 l_g1_currency_code := PJI_UTILS.GET_GLOBAL_PRIMARY_CURRENCY;
7678 l_g2_currency_code := PJI_UTILS.GET_GLOBAL_SECONDARY_CURRENCY;
7679
7680 insert into PJI_AC_AGGR_PJP0 pjp0_i
7681 (
7682 WORKER_ID,
7683 PROJECT_ID,
7684 PROJECT_ORG_ID,
7685 PROJECT_ORGANIZATION_ID,
7686 PROJECT_ELEMENT_ID,
7687 TIME_ID,
7688 PERIOD_TYPE_ID,
7689 CALENDAR_TYPE,
7690 WBS_ROLLUP_FLAG,
7691 PRG_ROLLUP_FLAG,
7692 CURR_RECORD_TYPE_ID,
7693 CURRENCY_CODE,
7694 REVENUE,
7695 INITIAL_FUNDING_AMOUNT,
7696 INITIAL_FUNDING_COUNT,
7697 ADDITIONAL_FUNDING_AMOUNT,
7698 ADDITIONAL_FUNDING_COUNT,
7699 CANCELLED_FUNDING_AMOUNT,
7700 CANCELLED_FUNDING_COUNT,
7701 FUNDING_ADJUSTMENT_AMOUNT,
7702 FUNDING_ADJUSTMENT_COUNT,
7703 REVENUE_WRITEOFF,
7704 AR_INVOICE_AMOUNT,
7705 AR_INVOICE_COUNT,
7706 AR_CASH_APPLIED_AMOUNT,
7707 AR_INVOICE_WRITE_OFF_AMOUNT,
7708 AR_INVOICE_WRITEOFF_COUNT,
7709 AR_CREDIT_MEMO_AMOUNT,
7710 AR_CREDIT_MEMO_COUNT,
7711 UNBILLED_RECEIVABLES,
7712 UNEARNED_REVENUE,
7713 AR_UNAPPR_INVOICE_AMOUNT,
7714 AR_UNAPPR_INVOICE_COUNT,
7715 AR_APPR_INVOICE_AMOUNT,
7716 AR_APPR_INVOICE_COUNT,
7717 AR_AMOUNT_DUE,
7718 AR_COUNT_DUE,
7719 AR_AMOUNT_OVERDUE,
7720 AR_COUNT_OVERDUE
7721 )
7722 select
7723 WORKER_ID,
7724 PROJECT_ID,
7725 PROJECT_ORG_ID,
7726 PROJECT_ORGANIZATION_ID,
7727 PROJECT_ELEMENT_ID,
7728 TIME_ID,
7729 PERIOD_TYPE_ID,
7730 CALENDAR_TYPE,
7731 WBS_ROLLUP_FLAG,
7732 PRG_ROLLUP_FLAG,
7733 sum(CURR_RECORD_TYPE_ID) CURR_RECORD_TYPE_ID,
7734 nvl(CURRENCY_CODE, 'PJI$NULL') CURRENCY_CODE,
7735 max(REVENUE) REVENUE,
7736 max(INITIAL_FUNDING_AMOUNT) INITIAL_FUNDING_AMOUNT,
7737 max(INITIAL_FUNDING_COUNT) INITIAL_FUNDING_COUNT,
7738 max(ADDITIONAL_FUNDING_AMOUNT) ADDITIONAL_FUNDING_AMOUNT,
7739 max(ADDITIONAL_FUNDING_COUNT) ADDITIONAL_FUNDING_COUNT,
7740 max(CANCELLED_FUNDING_AMOUNT) CANCELLED_FUNDING_AMOUNT,
7741 max(CANCELLED_FUNDING_COUNT) CANCELLED_FUNDING_COUNT,
7742 max(FUNDING_ADJUSTMENT_AMOUNT) FUNDING_ADJUSTMENT_AMOUNT,
7743 max(FUNDING_ADJUSTMENT_COUNT) FUNDING_ADJUSTMENT_COUNT,
7744 max(REVENUE_WRITEOFF) REVENUE_WRITEOFF,
7745 max(AR_INVOICE_AMOUNT) AR_INVOICE_AMOUNT,
7746 max(AR_INVOICE_COUNT) AR_INVOICE_COUNT,
7747 max(AR_CASH_APPLIED_AMOUNT) AR_CASH_APPLIED_AMOUNT,
7748 max(AR_INVOICE_WRITE_OFF_AMOUNT) AR_INVOICE_WRITE_OFF_AMOUNT,
7749 max(AR_INVOICE_WRITEOFF_COUNT) AR_INVOICE_WRITEOFF_COUNT,
7750 max(AR_CREDIT_MEMO_AMOUNT) AR_CREDIT_MEMO_AMOUNT,
7751 max(AR_CREDIT_MEMO_COUNT) AR_CREDIT_MEMO_COUNT,
7752 max(UNBILLED_RECEIVABLES) UNBILLED_RECEIVABLES,
7753 max(UNEARNED_REVENUE) UNEARNED_REVENUE,
7754 max(AR_UNAPPR_INVOICE_AMOUNT) AR_UNAPPR_INVOICE_AMOUNT,
7755 max(AR_UNAPPR_INVOICE_COUNT) AR_UNAPPR_INVOICE_COUNT,
7756 max(AR_APPR_INVOICE_AMOUNT) AR_APPR_INVOICE_AMOUNT,
7757 max(AR_APPR_INVOICE_COUNT) AR_APPR_INVOICE_COUNT,
7758 max(AR_AMOUNT_DUE) AR_AMOUNT_DUE,
7759 max(AR_COUNT_DUE) AR_COUNT_DUE,
7760 max(AR_AMOUNT_OVERDUE) AR_AMOUNT_OVERDUE,
7761 max(AR_COUNT_OVERDUE) AR_COUNT_OVERDUE
7762 from
7763 (
7764 select /*+ ordered */
7765 p_worker_id WORKER_ID,
7766 src.PROJECT_ID,
7767 src.PROJECT_ORG_ID,
7768 map.PROJECT_ORGANIZATION_ID,
7769 decode(src.TASK_ID,
7770 -1, ver.PROJ_ELEMENT_ID,
7771 src.TASK_ID) PROJECT_ELEMENT_ID,
7772 src.PERIOD_ID TIME_ID,
7773 32 PERIOD_TYPE_ID,
7774 decode(src.PERIOD_TYPE,
7775 'ENT', 'E',
7776 'GL', 'G',
7777 'PA', 'P') CALENDAR_TYPE,
7778 'N' WBS_ROLLUP_FLAG,
7779 'N' PRG_ROLLUP_FLAG,
7780 invert.INVERT_ID CURR_RECORD_TYPE_ID,
7781 decode(invert.INVERT_ID,
7782 1, l_g1_currency_code,
7783 2, l_g2_currency_code,
7784 4, src.PF_CURRENCY_CODE,
7785 8, src.PRJ_CURRENCY_CODE,
7786 16, src.TXN_CURRENCY_CODE,
7787 32, l_g1_currency_code,
7788 64, l_g2_currency_code,
7789 128, src.PF_CURRENCY_CODE,
7790 256, src.PRJ_CURRENCY_CODE) DIFF_CURRENCY_CODE,
7791 DIFF_ROWNUM DIFF_ROWNUM,
7792 decode(invert.INVERT_ID,
7793 1, l_g1_currency_code,
7794 2, l_g2_currency_code,
7795 4, src.PF_CURRENCY_CODE,
7796 8, src.PRJ_CURRENCY_CODE,
7797 16, src.TXN_CURRENCY_CODE,
7798 32, src.TXN_CURRENCY_CODE,
7799 64, src.TXN_CURRENCY_CODE,
7800 128, src.TXN_CURRENCY_CODE,
7801 256, src.TXN_CURRENCY_CODE) CURRENCY_CODE,
7802 decode(invert.INVERT_ID,
7803 1, src.G1_REVENUE,
7804 2, src.G2_REVENUE,
7805 4, src.POU_REVENUE,
7806 8, src.PRJ_REVENUE,
7807 16, src.TXN_REVENUE,
7808 32, src.G1_REVENUE,
7809 64, src.G2_REVENUE,
7810 128, src.POU_REVENUE,
7811 256, src.PRJ_REVENUE) REVENUE,
7812 decode(invert.INVERT_ID,
7813 1, src.G1_INITIAL_FUNDING_AMOUNT,
7814 2, src.G2_INITIAL_FUNDING_AMOUNT,
7815 4, src.POU_INITIAL_FUNDING_AMOUNT,
7816 8, src.PRJ_INITIAL_FUNDING_AMOUNT,
7817 16, src.TXN_INITIAL_FUNDING_AMOUNT,
7818 32, src.G1_INITIAL_FUNDING_AMOUNT,
7819 64, src.G2_INITIAL_FUNDING_AMOUNT,
7820 128, src.POU_INITIAL_FUNDING_AMOUNT,
7821 256, src.PRJ_INITIAL_FUNDING_AMOUNT)
7822 INITIAL_FUNDING_AMOUNT,
7823 src.INITIAL_FUNDING_COUNT,
7824 decode(invert.INVERT_ID,
7825 1, src.G1_ADDITIONAL_FUNDING_AMOUNT,
7826 2, src.G2_ADDITIONAL_FUNDING_AMOUNT,
7827 4, src.POU_ADDITIONAL_FUNDING_AMOUNT,
7828 8, src.PRJ_ADDITIONAL_FUNDING_AMOUNT,
7829 16, src.TXN_ADDITIONAL_FUNDING_AMOUNT,
7830 32, src.G1_ADDITIONAL_FUNDING_AMOUNT,
7831 64, src.G2_ADDITIONAL_FUNDING_AMOUNT,
7832 128, src.POU_ADDITIONAL_FUNDING_AMOUNT,
7833 256, src.PRJ_ADDITIONAL_FUNDING_AMOUNT)
7834 ADDITIONAL_FUNDING_AMOUNT,
7835 src.ADDITIONAL_FUNDING_COUNT,
7836 decode(invert.INVERT_ID,
7837 1, src.G1_CANCELLED_FUNDING_AMOUNT,
7838 2, src.G2_CANCELLED_FUNDING_AMOUNT,
7839 4, src.POU_CANCELLED_FUNDING_AMOUNT,
7840 8, src.PRJ_CANCELLED_FUNDING_AMOUNT,
7841 16, src.TXN_CANCELLED_FUNDING_AMOUNT,
7842 32, src.G1_CANCELLED_FUNDING_AMOUNT,
7843 64, src.G2_CANCELLED_FUNDING_AMOUNT,
7844 128, src.POU_CANCELLED_FUNDING_AMOUNT,
7845 256, src.PRJ_CANCELLED_FUNDING_AMOUNT)
7846 CANCELLED_FUNDING_AMOUNT,
7847 src.CANCELLED_FUNDING_COUNT,
7848 decode(invert.INVERT_ID,
7849 1, src.G1_FUNDING_ADJUSTMENT_AMOUNT,
7850 2, src.G2_FUNDING_ADJUSTMENT_AMOUNT,
7851 4, src.POU_FUNDING_ADJUSTMENT_AMOUNT,
7852 8, src.PRJ_FUNDING_ADJUSTMENT_AMOUNT,
7853 16, src.TXN_FUNDING_ADJUSTMENT_AMOUNT,
7854 32, src.G1_FUNDING_ADJUSTMENT_AMOUNT,
7855 64, src.G2_FUNDING_ADJUSTMENT_AMOUNT,
7856 128, src.POU_FUNDING_ADJUSTMENT_AMOUNT,
7857 256, src.PRJ_FUNDING_ADJUSTMENT_AMOUNT)
7858 FUNDING_ADJUSTMENT_AMOUNT,
7859 src.FUNDING_ADJUSTMENT_COUNT,
7860 decode(invert.INVERT_ID,
7861 1, src.G1_REVENUE_WRITEOFF,
7862 2, src.G2_REVENUE_WRITEOFF,
7863 4, src.POU_REVENUE_WRITEOFF,
7864 8, src.PRJ_REVENUE_WRITEOFF,
7865 16, src.TXN_REVENUE_WRITEOFF,
7866 32, src.G1_REVENUE_WRITEOFF,
7867 64, src.G2_REVENUE_WRITEOFF,
7868 128, src.POU_REVENUE_WRITEOFF,
7869 256, src.PRJ_REVENUE_WRITEOFF) REVENUE_WRITEOFF,
7870 decode(invert.INVERT_ID,
7871 1, src.G1_AR_INVOICE_AMOUNT,
7872 2, src.G2_AR_INVOICE_AMOUNT,
7873 4, src.POU_AR_INVOICE_AMOUNT,
7874 8, src.PRJ_AR_INVOICE_AMOUNT,
7875 16, src.TXN_AR_INVOICE_AMOUNT,
7876 32, src.G1_AR_INVOICE_AMOUNT,
7877 64, src.G2_AR_INVOICE_AMOUNT,
7878 128, src.POU_AR_INVOICE_AMOUNT,
7879 256, src.PRJ_AR_INVOICE_AMOUNT) AR_INVOICE_AMOUNT,
7880 src.AR_INVOICE_COUNT,
7881 decode(invert.INVERT_ID,
7882 1, src.G1_AR_CASH_APPLIED_AMOUNT,
7883 2, src.G2_AR_CASH_APPLIED_AMOUNT,
7884 4, src.POU_AR_CASH_APPLIED_AMOUNT,
7885 8, src.PRJ_AR_CASH_APPLIED_AMOUNT,
7886 16, src.TXN_AR_CASH_APPLIED_AMOUNT,
7887 32, src.G1_AR_CASH_APPLIED_AMOUNT,
7888 64, src.G2_AR_CASH_APPLIED_AMOUNT,
7889 128, src.POU_AR_CASH_APPLIED_AMOUNT,
7890 256, src.PRJ_AR_CASH_APPLIED_AMOUNT)
7891 AR_CASH_APPLIED_AMOUNT,
7892 decode(invert.INVERT_ID,
7893 1, src.G1_AR_INVOICE_WRITEOFF_AMOUNT,
7894 2, src.G2_AR_INVOICE_WRITEOFF_AMOUNT,
7895 4, src.POU_AR_INVOICE_WRITEOFF_AMOUNT,
7896 8, src.PRJ_AR_INVOICE_WRITEOFF_AMOUNT,
7897 16, src.TXN_AR_INVOICE_WRITEOFF_AMOUNT,
7898 32, src.G1_AR_INVOICE_WRITEOFF_AMOUNT,
7899 64, src.G2_AR_INVOICE_WRITEOFF_AMOUNT,
7900 128, src.POU_AR_INVOICE_WRITEOFF_AMOUNT,
7901 256, src.PRJ_AR_INVOICE_WRITEOFF_AMOUNT)
7902 AR_INVOICE_WRITE_OFF_AMOUNT,
7903 src.AR_INVOICE_WRITEOFF_COUNT,
7904 decode(invert.INVERT_ID,
7905 1, src.G1_AR_CREDIT_MEMO_AMOUNT,
7906 2, src.G2_AR_CREDIT_MEMO_AMOUNT,
7907 4, src.POU_AR_CREDIT_MEMO_AMOUNT,
7908 8, src.PRJ_AR_CREDIT_MEMO_AMOUNT,
7909 16, src.TXN_AR_CREDIT_MEMO_AMOUNT,
7910 32, src.G1_AR_CREDIT_MEMO_AMOUNT,
7911 64, src.G2_AR_CREDIT_MEMO_AMOUNT,
7912 128, src.POU_AR_CREDIT_MEMO_AMOUNT,
7913 256, src.PRJ_AR_CREDIT_MEMO_AMOUNT) AR_CREDIT_MEMO_AMOUNT,
7914 src.AR_CREDIT_MEMO_COUNT,
7915 decode(invert.INVERT_ID,
7916 1, src.G1_UNBILLED_RECEIVABLES,
7917 2, src.G2_UNBILLED_RECEIVABLES,
7918 4, src.POU_UNBILLED_RECEIVABLES,
7919 8, src.PRJ_UNBILLED_RECEIVABLES,
7920 16, src.TXN_UNBILLED_RECEIVABLES,
7921 32, src.G1_UNBILLED_RECEIVABLES,
7922 64, src.G2_UNBILLED_RECEIVABLES,
7923 128, src.POU_UNBILLED_RECEIVABLES,
7924 256, src.PRJ_UNBILLED_RECEIVABLES) UNBILLED_RECEIVABLES,
7925 decode(invert.INVERT_ID,
7926 1, src.G1_UNEARNED_REVENUE,
7927 2, src.G2_UNEARNED_REVENUE,
7928 4, src.POU_UNEARNED_REVENUE,
7929 8, src.PRJ_UNEARNED_REVENUE,
7930 16, src.TXN_UNEARNED_REVENUE,
7931 32, src.G1_UNEARNED_REVENUE,
7932 64, src.G2_UNEARNED_REVENUE,
7933 128, src.POU_UNEARNED_REVENUE,
7934 256, src.PRJ_UNEARNED_REVENUE) UNEARNED_REVENUE,
7935 decode(invert.INVERT_ID,
7936 1, src.G1_AR_UNAPPR_INVOICE_AMOUNT,
7937 2, src.G2_AR_UNAPPR_INVOICE_AMOUNT,
7938 4, src.POU_AR_UNAPPR_INVOICE_AMOUNT,
7939 8, src.PRJ_AR_UNAPPR_INVOICE_AMOUNT,
7940 16, src.TXN_AR_UNAPPR_INVOICE_AMOUNT,
7941 32, src.G1_AR_UNAPPR_INVOICE_AMOUNT,
7942 64, src.G2_AR_UNAPPR_INVOICE_AMOUNT,
7943 128, src.POU_AR_UNAPPR_INVOICE_AMOUNT,
7944 256, src.PRJ_AR_UNAPPR_INVOICE_AMOUNT)
7945 AR_UNAPPR_INVOICE_AMOUNT,
7946 src.AR_UNAPPR_INVOICE_COUNT,
7947 decode(invert.INVERT_ID,
7948 1, src.G1_AR_APPR_INVOICE_AMOUNT,
7949 2, src.G2_AR_APPR_INVOICE_AMOUNT,
7950 4, src.POU_AR_APPR_INVOICE_AMOUNT,
7951 8, src.PRJ_AR_APPR_INVOICE_AMOUNT,
7952 16, src.TXN_AR_APPR_INVOICE_AMOUNT,
7953 32, src.G1_AR_APPR_INVOICE_AMOUNT,
7954 64, src.G2_AR_APPR_INVOICE_AMOUNT,
7955 128, src.POU_AR_APPR_INVOICE_AMOUNT,
7956 256, src.PRJ_AR_APPR_INVOICE_AMOUNT)
7957 AR_APPR_INVOICE_AMOUNT,
7958 src.AR_APPR_INVOICE_COUNT,
7959 decode(invert.INVERT_ID,
7960 1, src.G1_AR_AMOUNT_DUE,
7961 2, src.G2_AR_AMOUNT_DUE,
7962 4, src.POU_AR_AMOUNT_DUE,
7963 8, src.PRJ_AR_AMOUNT_DUE,
7964 16, src.TXN_AR_AMOUNT_DUE,
7965 32, src.G1_AR_AMOUNT_DUE,
7966 64, src.G2_AR_AMOUNT_DUE,
7967 128, src.POU_AR_AMOUNT_DUE,
7968 256, src.PRJ_AR_AMOUNT_DUE) AR_AMOUNT_DUE,
7969 src.AR_COUNT_DUE,
7970 decode(invert.INVERT_ID,
7971 1, src.G1_AR_AMOUNT_OVERDUE,
7972 2, src.G2_AR_AMOUNT_OVERDUE,
7973 4, src.POU_AR_AMOUNT_OVERDUE,
7974 8, src.PRJ_AR_AMOUNT_OVERDUE,
7975 16, src.TXN_AR_AMOUNT_OVERDUE,
7976 32, src.G1_AR_AMOUNT_OVERDUE,
7977 64, src.G2_AR_AMOUNT_OVERDUE,
7978 128, src.POU_AR_AMOUNT_OVERDUE,
7979 256, src.PRJ_AR_AMOUNT_OVERDUE) AR_AMOUNT_OVERDUE,
7980 src.AR_COUNT_OVERDUE
7981 from
7982 (
7983 select
7984 ROWNUM DIFF_ROWNUM,
7985 PROJECT_ID,
7986 PROJECT_ORG_ID,
7987 PROJECT_ORGANIZATION_ID,
7988 TASK_ID,
7989 PERIOD_TYPE,
7990 PERIOD_ID,
7991 PF_CURRENCY_CODE,
7992 PRJ_CURRENCY_CODE,
7993 TXN_CURRENCY_CODE,
7994 TXN_REVENUE,
7995 TXN_FUNDING,
7996 TXN_INITIAL_FUNDING_AMOUNT,
7997 TXN_ADDITIONAL_FUNDING_AMOUNT,
7998 TXN_CANCELLED_FUNDING_AMOUNT,
7999 TXN_FUNDING_ADJUSTMENT_AMOUNT,
8000 TXN_REVENUE_WRITEOFF,
8001 TXN_AR_INVOICE_AMOUNT,
8002 TXN_AR_CASH_APPLIED_AMOUNT,
8003 TXN_AR_INVOICE_WRITEOFF_AMOUNT,
8004 TXN_AR_CREDIT_MEMO_AMOUNT,
8005 TXN_UNBILLED_RECEIVABLES,
8006 TXN_UNEARNED_REVENUE,
8007 TXN_AR_UNAPPR_INVOICE_AMOUNT,
8008 TXN_AR_APPR_INVOICE_AMOUNT,
8009 TXN_AR_AMOUNT_DUE,
8010 TXN_AR_AMOUNT_OVERDUE,
8011 PRJ_REVENUE,
8012 PRJ_FUNDING,
8013 PRJ_INITIAL_FUNDING_AMOUNT,
8014 PRJ_ADDITIONAL_FUNDING_AMOUNT,
8015 PRJ_CANCELLED_FUNDING_AMOUNT,
8016 PRJ_FUNDING_ADJUSTMENT_AMOUNT,
8017 PRJ_REVENUE_WRITEOFF,
8018 PRJ_AR_INVOICE_AMOUNT,
8019 PRJ_AR_CASH_APPLIED_AMOUNT,
8020 PRJ_AR_INVOICE_WRITEOFF_AMOUNT,
8021 PRJ_AR_CREDIT_MEMO_AMOUNT,
8022 PRJ_UNBILLED_RECEIVABLES,
8023 PRJ_UNEARNED_REVENUE,
8024 PRJ_AR_UNAPPR_INVOICE_AMOUNT,
8025 PRJ_AR_APPR_INVOICE_AMOUNT,
8026 PRJ_AR_AMOUNT_DUE,
8027 PRJ_AR_AMOUNT_OVERDUE,
8028 POU_REVENUE,
8029 POU_FUNDING,
8030 POU_INITIAL_FUNDING_AMOUNT,
8031 POU_ADDITIONAL_FUNDING_AMOUNT,
8032 POU_CANCELLED_FUNDING_AMOUNT,
8033 POU_FUNDING_ADJUSTMENT_AMOUNT,
8034 POU_REVENUE_WRITEOFF,
8035 POU_AR_INVOICE_AMOUNT,
8036 POU_AR_CASH_APPLIED_AMOUNT,
8037 POU_AR_INVOICE_WRITEOFF_AMOUNT,
8038 POU_AR_CREDIT_MEMO_AMOUNT,
8039 POU_UNBILLED_RECEIVABLES,
8040 POU_UNEARNED_REVENUE,
8041 POU_AR_UNAPPR_INVOICE_AMOUNT,
8042 POU_AR_APPR_INVOICE_AMOUNT,
8043 POU_AR_AMOUNT_DUE,
8044 POU_AR_AMOUNT_OVERDUE,
8045 INITIAL_FUNDING_COUNT,
8046 ADDITIONAL_FUNDING_COUNT,
8047 CANCELLED_FUNDING_COUNT,
8048 FUNDING_ADJUSTMENT_COUNT,
8049 AR_INVOICE_COUNT,
8050 AR_CASH_APPLIED_COUNT,
8051 AR_INVOICE_WRITEOFF_COUNT,
8052 AR_CREDIT_MEMO_COUNT,
8053 AR_UNAPPR_INVOICE_COUNT,
8054 AR_APPR_INVOICE_COUNT,
8055 AR_COUNT_DUE,
8056 AR_COUNT_OVERDUE,
8057 G1_REVENUE,
8058 G1_FUNDING,
8059 G1_INITIAL_FUNDING_AMOUNT,
8060 G1_ADDITIONAL_FUNDING_AMOUNT,
8061 G1_CANCELLED_FUNDING_AMOUNT,
8062 G1_FUNDING_ADJUSTMENT_AMOUNT,
8063 G1_REVENUE_WRITEOFF,
8064 G1_AR_INVOICE_AMOUNT,
8065 G1_AR_CASH_APPLIED_AMOUNT,
8066 G1_AR_INVOICE_WRITEOFF_AMOUNT,
8067 G1_AR_CREDIT_MEMO_AMOUNT,
8068 G1_UNBILLED_RECEIVABLES,
8069 G1_UNEARNED_REVENUE,
8070 G1_AR_UNAPPR_INVOICE_AMOUNT,
8071 G1_AR_APPR_INVOICE_AMOUNT,
8072 G1_AR_AMOUNT_DUE,
8073 G1_AR_AMOUNT_OVERDUE,
8074 G2_REVENUE,
8075 G2_FUNDING,
8076 G2_INITIAL_FUNDING_AMOUNT,
8077 G2_ADDITIONAL_FUNDING_AMOUNT,
8078 G2_CANCELLED_FUNDING_AMOUNT,
8079 G2_FUNDING_ADJUSTMENT_AMOUNT,
8080 G2_REVENUE_WRITEOFF,
8081 G2_AR_INVOICE_AMOUNT,
8082 G2_AR_CASH_APPLIED_AMOUNT,
8083 G2_AR_INVOICE_WRITEOFF_AMOUNT,
8084 G2_AR_CREDIT_MEMO_AMOUNT,
8085 G2_UNBILLED_RECEIVABLES,
8086 G2_UNEARNED_REVENUE,
8087 G2_AR_UNAPPR_INVOICE_AMOUNT,
8088 G2_AR_APPR_INVOICE_AMOUNT,
8089 G2_AR_AMOUNT_DUE,
8090 G2_AR_AMOUNT_OVERDUE
8091 from
8092 (
8093 select /*+ ordered */
8094 src.PROJECT_ID,
8095 src.PROJECT_ORG_ID,
8096 src.PROJECT_ORGANIZATION_ID,
8097 nvl(src.TASK_ID, -1) TASK_ID,
8098 src.PERIOD_TYPE,
8099 src.PERIOD_ID,
8100 info.PF_CURRENCY_CODE,
8101 prj.PROJECT_CURRENCY_CODE PRJ_CURRENCY_CODE,
8102 src.TXN_CURRENCY_CODE,
8103 sum(src.TXN_REVENUE) TXN_REVENUE,
8104 sum(src.TXN_FUNDING) TXN_FUNDING,
8105 sum(src.TXN_INITIAL_FUNDING_AMOUNT) TXN_INITIAL_FUNDING_AMOUNT,
8106 sum(src.TXN_ADDITIONAL_FUNDING_AMOUNT)TXN_ADDITIONAL_FUNDING_AMOUNT,
8107 sum(src.TXN_CANCELLED_FUNDING_AMOUNT) TXN_CANCELLED_FUNDING_AMOUNT,
8108 sum(src.TXN_FUNDING_ADJUSTMENT_AMOUNT)TXN_FUNDING_ADJUSTMENT_AMOUNT,
8109 sum(src.TXN_REVENUE_WRITEOFF) TXN_REVENUE_WRITEOFF,
8110 sum(src.TXN_AR_INVOICE_AMOUNT) TXN_AR_INVOICE_AMOUNT,
8111 sum(src.TXN_AR_CASH_APPLIED_AMOUNT) TXN_AR_CASH_APPLIED_AMOUNT,
8112 sum(src.TXN_AR_INVOICE_WRITEOFF_AMOUNT)
8113 TXN_AR_INVOICE_WRITEOFF_AMOUNT,
8114 sum(src.TXN_AR_CREDIT_MEMO_AMOUNT) TXN_AR_CREDIT_MEMO_AMOUNT,
8115 sum(src.TXN_UNBILLED_RECEIVABLES) TXN_UNBILLED_RECEIVABLES,
8116 sum(src.TXN_UNEARNED_REVENUE) TXN_UNEARNED_REVENUE,
8117 sum(src.TXN_AR_UNAPPR_INVOICE_AMOUNT) TXN_AR_UNAPPR_INVOICE_AMOUNT,
8118 sum(src.TXN_AR_APPR_INVOICE_AMOUNT) TXN_AR_APPR_INVOICE_AMOUNT,
8119 sum(src.TXN_AR_AMOUNT_DUE) TXN_AR_AMOUNT_DUE,
8120 sum(src.TXN_AR_AMOUNT_OVERDUE) TXN_AR_AMOUNT_OVERDUE,
8121 sum(src.PRJ_REVENUE) PRJ_REVENUE,
8122 sum(src.PRJ_FUNDING) PRJ_FUNDING,
8123 sum(src.PRJ_INITIAL_FUNDING_AMOUNT) PRJ_INITIAL_FUNDING_AMOUNT,
8124 sum(src.PRJ_ADDITIONAL_FUNDING_AMOUNT)PRJ_ADDITIONAL_FUNDING_AMOUNT,
8125 sum(src.PRJ_CANCELLED_FUNDING_AMOUNT) PRJ_CANCELLED_FUNDING_AMOUNT,
8126 sum(src.PRJ_FUNDING_ADJUSTMENT_AMOUNT)PRJ_FUNDING_ADJUSTMENT_AMOUNT,
8127 sum(src.PRJ_REVENUE_WRITEOFF) PRJ_REVENUE_WRITEOFF,
8128 sum(src.PRJ_AR_INVOICE_AMOUNT) PRJ_AR_INVOICE_AMOUNT,
8129 sum(src.PRJ_AR_CASH_APPLIED_AMOUNT) PRJ_AR_CASH_APPLIED_AMOUNT,
8130 sum(src.PRJ_AR_INVOICE_WRITEOFF_AMOUNT)
8131 PRJ_AR_INVOICE_WRITEOFF_AMOUNT,
8132 sum(src.PRJ_AR_CREDIT_MEMO_AMOUNT) PRJ_AR_CREDIT_MEMO_AMOUNT,
8133 sum(src.PRJ_UNBILLED_RECEIVABLES) PRJ_UNBILLED_RECEIVABLES,
8134 sum(src.PRJ_UNEARNED_REVENUE) PRJ_UNEARNED_REVENUE,
8135 sum(src.PRJ_AR_UNAPPR_INVOICE_AMOUNT) PRJ_AR_UNAPPR_INVOICE_AMOUNT,
8136 sum(src.PRJ_AR_APPR_INVOICE_AMOUNT) PRJ_AR_APPR_INVOICE_AMOUNT,
8137 sum(src.PRJ_AR_AMOUNT_DUE) PRJ_AR_AMOUNT_DUE,
8138 sum(src.PRJ_AR_AMOUNT_OVERDUE) PRJ_AR_AMOUNT_OVERDUE,
8139 sum(src.POU_REVENUE) POU_REVENUE,
8140 sum(src.POU_FUNDING) POU_FUNDING,
8141 sum(src.POU_INITIAL_FUNDING_AMOUNT) POU_INITIAL_FUNDING_AMOUNT,
8142 sum(src.POU_ADDITIONAL_FUNDING_AMOUNT)POU_ADDITIONAL_FUNDING_AMOUNT,
8143 sum(src.POU_CANCELLED_FUNDING_AMOUNT) POU_CANCELLED_FUNDING_AMOUNT,
8144 sum(src.POU_FUNDING_ADJUSTMENT_AMOUNT)POU_FUNDING_ADJUSTMENT_AMOUNT,
8145 sum(src.POU_REVENUE_WRITEOFF) POU_REVENUE_WRITEOFF,
8146 sum(src.POU_AR_INVOICE_AMOUNT) POU_AR_INVOICE_AMOUNT,
8147 sum(src.POU_AR_CASH_APPLIED_AMOUNT) POU_AR_CASH_APPLIED_AMOUNT,
8148 sum(src.POU_AR_INVOICE_WRITEOFF_AMOUNT)
8149 POU_AR_INVOICE_WRITEOFF_AMOUNT,
8150 sum(src.POU_AR_CREDIT_MEMO_AMOUNT) POU_AR_CREDIT_MEMO_AMOUNT,
8151 sum(src.POU_UNBILLED_RECEIVABLES) POU_UNBILLED_RECEIVABLES,
8152 sum(src.POU_UNEARNED_REVENUE) POU_UNEARNED_REVENUE,
8153 sum(src.POU_AR_UNAPPR_INVOICE_AMOUNT) POU_AR_UNAPPR_INVOICE_AMOUNT,
8154 sum(src.POU_AR_APPR_INVOICE_AMOUNT) POU_AR_APPR_INVOICE_AMOUNT,
8155 sum(src.POU_AR_AMOUNT_DUE) POU_AR_AMOUNT_DUE,
8156 sum(src.POU_AR_AMOUNT_OVERDUE) POU_AR_AMOUNT_OVERDUE,
8157 sum(src.INITIAL_FUNDING_COUNT) INITIAL_FUNDING_COUNT,
8158 sum(src.ADDITIONAL_FUNDING_COUNT) ADDITIONAL_FUNDING_COUNT,
8159 sum(src.CANCELLED_FUNDING_COUNT) CANCELLED_FUNDING_COUNT,
8160 sum(src.FUNDING_ADJUSTMENT_COUNT) FUNDING_ADJUSTMENT_COUNT,
8161 sum(src.AR_INVOICE_COUNT) AR_INVOICE_COUNT,
8162 sum(src.AR_CASH_APPLIED_COUNT) AR_CASH_APPLIED_COUNT,
8163 sum(src.AR_INVOICE_WRITEOFF_COUNT) AR_INVOICE_WRITEOFF_COUNT,
8164 sum(src.AR_CREDIT_MEMO_COUNT) AR_CREDIT_MEMO_COUNT,
8165 sum(src.AR_UNAPPR_INVOICE_COUNT) AR_UNAPPR_INVOICE_COUNT,
8166 sum(src.AR_APPR_INVOICE_COUNT) AR_APPR_INVOICE_COUNT,
8167 sum(src.AR_COUNT_DUE) AR_COUNT_DUE,
8168 sum(src.AR_COUNT_OVERDUE) AR_COUNT_OVERDUE,
8169 sum(src.G1_REVENUE) G1_REVENUE,
8170 sum(src.G1_FUNDING) G1_FUNDING,
8171 sum(src.G1_INITIAL_FUNDING_AMOUNT) G1_INITIAL_FUNDING_AMOUNT,
8172 sum(src.G1_ADDITIONAL_FUNDING_AMOUNT) G1_ADDITIONAL_FUNDING_AMOUNT,
8173 sum(src.G1_CANCELLED_FUNDING_AMOUNT) G1_CANCELLED_FUNDING_AMOUNT,
8174 sum(src.G1_FUNDING_ADJUSTMENT_AMOUNT) G1_FUNDING_ADJUSTMENT_AMOUNT,
8175 sum(src.G1_REVENUE_WRITEOFF) G1_REVENUE_WRITEOFF,
8176 sum(src.G1_AR_INVOICE_AMOUNT) G1_AR_INVOICE_AMOUNT,
8177 sum(src.G1_AR_CASH_APPLIED_AMOUNT) G1_AR_CASH_APPLIED_AMOUNT,
8178 sum(src.G1_AR_INVOICE_WRITEOFF_AMOUNT)G1_AR_INVOICE_WRITEOFF_AMOUNT,
8179 sum(src.G1_AR_CREDIT_MEMO_AMOUNT) G1_AR_CREDIT_MEMO_AMOUNT,
8180 sum(src.G1_UNBILLED_RECEIVABLES) G1_UNBILLED_RECEIVABLES,
8181 sum(src.G1_UNEARNED_REVENUE) G1_UNEARNED_REVENUE,
8182 sum(src.G1_AR_UNAPPR_INVOICE_AMOUNT) G1_AR_UNAPPR_INVOICE_AMOUNT,
8183 sum(src.G1_AR_APPR_INVOICE_AMOUNT) G1_AR_APPR_INVOICE_AMOUNT,
8184 sum(src.G1_AR_AMOUNT_DUE) G1_AR_AMOUNT_DUE,
8185 sum(src.G1_AR_AMOUNT_OVERDUE) G1_AR_AMOUNT_OVERDUE,
8186 sum(src.G2_REVENUE) G2_REVENUE,
8187 sum(src.G2_FUNDING) G2_FUNDING,
8188 sum(src.G2_INITIAL_FUNDING_AMOUNT) G2_INITIAL_FUNDING_AMOUNT,
8189 sum(src.G2_ADDITIONAL_FUNDING_AMOUNT) G2_ADDITIONAL_FUNDING_AMOUNT,
8190 sum(src.G2_CANCELLED_FUNDING_AMOUNT) G2_CANCELLED_FUNDING_AMOUNT,
8191 sum(src.G2_FUNDING_ADJUSTMENT_AMOUNT) G2_FUNDING_ADJUSTMENT_AMOUNT,
8192 sum(src.G2_REVENUE_WRITEOFF) G2_REVENUE_WRITEOFF,
8193 sum(src.G2_AR_INVOICE_AMOUNT) G2_AR_INVOICE_AMOUNT,
8194 sum(src.G2_AR_CASH_APPLIED_AMOUNT) G2_AR_CASH_APPLIED_AMOUNT,
8195 sum(src.G2_AR_INVOICE_WRITEOFF_AMOUNT)G2_AR_INVOICE_WRITEOFF_AMOUNT,
8196 sum(src.G2_AR_CREDIT_MEMO_AMOUNT) G2_AR_CREDIT_MEMO_AMOUNT,
8197 sum(src.G2_UNBILLED_RECEIVABLES) G2_UNBILLED_RECEIVABLES,
8198 sum(src.G2_UNEARNED_REVENUE) G2_UNEARNED_REVENUE,
8199 sum(src.G2_AR_UNAPPR_INVOICE_AMOUNT) G2_AR_UNAPPR_INVOICE_AMOUNT,
8200 sum(src.G2_AR_APPR_INVOICE_AMOUNT) G2_AR_APPR_INVOICE_AMOUNT,
8201 sum(src.G2_AR_AMOUNT_DUE) G2_AR_AMOUNT_DUE,
8202 sum(src.G2_AR_AMOUNT_OVERDUE) G2_AR_AMOUNT_OVERDUE
8203 from
8204 PJI_PJP_RMAP_ACR src_r,
8205 PJI_FM_AGGR_ACT4 src,
8206 PA_PROJECTS_ALL prj,
8207 PJI_ORG_EXTR_INFO info
8208 where
8209 src_r.WORKER_ID = p_worker_id and
8210 src.ROWID = src_r.STG_ROWID and
8211 src.PROJECT_ID = prj.PROJECT_ID and
8212 prj.ORG_ID = info.ORG_ID /*5377133 */
8213 group by
8214 src.PROJECT_ID,
8215 src.PROJECT_ORG_ID,
8216 src.PROJECT_ORGANIZATION_ID,
8217 nvl(src.TASK_ID, -1),
8218 src.PERIOD_TYPE,
8219 src.PERIOD_ID,
8220 info.PF_CURRENCY_CODE,
8221 prj.PROJECT_CURRENCY_CODE,
8222 src.TXN_CURRENCY_CODE
8223 )
8224 ) src,
8225 PJI_PJP_PROJ_BATCH_MAP map,
8226 PJI_PJP_WBS_HEADER wbs_hdr,
8227 PA_PROJ_ELEMENT_VERSIONS ver,
8228 (
8229 select 1 INVERT_ID from dual
8230 where l_g1_currency_flag = 'Y' and /* Added for Bug 8708651 */
8231 l_g1_currency_code is not null union all
8232 select 2 INVERT_ID from dual
8233 where l_g2_currency_flag = 'Y' and
8234 l_g2_currency_code is not null union all
8235 select 4 INVERT_ID from dual union all
8236 select 8 INVERT_ID from dual union all
8237 select 16 INVERT_ID from dual
8238 where l_txn_currency_flag = 'Y'
8239 -- select 32 INVERT_ID from dual OMIT DETAIL SLICES FOR NOW
8240 -- where l_g1_currency_code is not null union all
8241 -- select 64 INVERT_ID from dual
8242 -- where l_g2_currency_flag = 'Y' and
8243 -- l_g2_currency_code is not null union all
8244 -- select 128 INVERT_ID from dual union all
8245 -- select 256 INVERT_ID from dual
8246 ) invert
8247 where
8248 map.WORKER_ID = p_worker_id and
8249 src.PROJECT_ID = map.PROJECT_ID and
8250 wbs_hdr.PLAN_VERSION_ID = -1 and
8251 src.PROJECT_ID = wbs_hdr.PROJECT_ID and
8252 ver.ELEMENT_VERSION_ID = wbs_hdr.WBS_VERSION_ID
8253 )
8254 group by
8255 WORKER_ID,
8256 PROJECT_ID,
8257 PROJECT_ORG_ID,
8258 PROJECT_ORGANIZATION_ID,
8259 PROJECT_ELEMENT_ID,
8260 TIME_ID,
8261 PERIOD_TYPE_ID,
8262 CALENDAR_TYPE,
8263 WBS_ROLLUP_FLAG,
8264 PRG_ROLLUP_FLAG,
8265 DIFF_CURRENCY_CODE,
8266 DIFF_ROWNUM,
8267 nvl(CURRENCY_CODE, 'PJI$NULL');
8268
8269 end if;
8270
8271 PJI_PROCESS_UTIL.REGISTER_STEP_COMPLETION(l_process, 'PJI_PJP_SUM_ROLLUP.AGGREGATE_AC_SLICES(p_worker_id);');
8272
8273 commit;
8274
8275 end AGGREGATE_AC_SLICES;
8276
8277
8278 -- -----------------------------------------------------
8279 -- procedure MARK_EXTRACTED_PROJECTS
8280 --
8281 -- History
8282 -- 19-MAR-2004 SVERMETT Created
8283 --
8284 -- Internal PJP Summarization API.
8285 --
8286 -- -----------------------------------------------------
8287 procedure MARK_EXTRACTED_PROJECTS (p_worker_id in number) is
8288
8289 l_process varchar2(30);
8290 l_extraction_type varchar2(30);
8291
8292 l_last_update_date date;
8293 l_last_updated_by number;
8294 l_last_update_login number;
8295
8296 l_return_status varchar2(255) := FND_API.G_RET_STS_SUCCESS;
8297 l_msg_data varchar2(2000);
8298 l_err_msg VARCHAR2(100):= 'Error in PJI_PJP_SUM_ROLLUP.MARK_EXTRACTED_PROJECTS -> PJI_FM_PLAN_MAINT.POPULATE_FIN8';
8299
8300 begin
8301
8302 l_process := PJI_PJP_SUM_MAIN.g_process || to_char(p_worker_id);
8303
8304 if (not PJI_PROCESS_UTIL.NEED_TO_RUN_STEP(l_process, 'PJI_PJP_SUM_ROLLUP.MARK_EXTRACTED_PROJECTS(p_worker_id);')) then
8305 return;
8306 end if;
8307
8308 l_extraction_type := PJI_PROCESS_UTIL.GET_PROCESS_PARAMETER(l_process, 'EXTRACTION_TYPE');
8309
8310 l_last_update_date := sysdate;
8311 l_last_updated_by := FND_GLOBAL.USER_ID;
8312 l_last_update_login := FND_GLOBAL.LOGIN_ID;
8313
8314 update PA_PROJECTS_ALL
8315 set PJI_SOURCE_FLAG = 'Y',
8316 LAST_UPDATE_DATE = l_last_update_date,
8317 LAST_UPDATED_BY = l_last_updated_by,
8318 LAST_UPDATE_LOGIN = l_last_update_login
8319 where nvl(PJI_SOURCE_FLAG, 'X') <> 'Y' and
8320 PROJECT_ID in (select distinct
8321 PROJECT_ID
8322 from PJI_FP_AGGR_PJP0
8323 where WORKER_ID = p_worker_id
8324 union
8325 select distinct
8326 PROJECT_ID
8327 from PJI_AC_AGGR_PJP0
8328 where WORKER_ID = p_worker_id);
8329
8330 if (l_extraction_type = 'PARTIAL' or
8331 l_extraction_type = 'RBS') then
8332
8333 update PJI_PJP_PROJ_BATCH_MAP
8334 set PJI_PROJECT_STATUS = 'Y'
8335 where WORKER_ID = p_worker_id and
8336 PJI_PROJECT_STATUS is null;
8337
8338 elsif (l_extraction_type = 'FULL' or
8339 l_extraction_type = 'INCREMENTAL') then
8340
8341 /*bug#5349102 added the check for FIN8 */
8342 update PJI_PJP_PROJ_BATCH_MAP
8343 set PJI_PROJECT_STATUS = 'Y'
8344 where WORKER_ID = p_worker_id and
8345 PJI_PROJECT_STATUS is null and
8346 PROJECT_ID in (select distinct
8347 PROJECT_ID
8348 from PJI_FP_AGGR_PJP0
8349 where WORKER_ID = p_worker_id
8350 union
8351 select distinct
8352 PROJECT_ID
8353 from PJI_AC_AGGR_PJP0
8354 where WORKER_ID = p_worker_id
8355 union
8356 select distinct
8357 PROJECT_ID
8358 from pji_fm_aggr_fin8
8359 ) and
8360 PROJECT_ID in (select PROJECT_ID
8361 from PA_PROJECTS_ALL
8362 where STRUCTURE_SHARING_CODE = 'SHARE_FULL');
8363
8364 end if;
8365
8366 if (l_extraction_type = 'INCREMENTAL') then
8367
8368 update PJI_PJP_PROJ_BATCH_MAP map
8369 set map.EXTRACTION_TYPE = 'M'
8370 where map.WORKER_ID = p_worker_id and
8371 map.PROJECT_ID in (select fin7.PROJECT_ID
8372 from PJI_PJP_RMAP_FPR fin7_r,
8373 PJI_FM_AGGR_FIN7 fin7
8374 where fin7_r.WORKER_ID = p_worker_id and
8375 fin7_r.RECORD_TYPE = 'M' and
8376 fin7.ROWID = fin7_r.STG_ROWID);
8377
8378 update PJI_PJP_PROJ_BATCH_MAP map
8379 set map.EXTRACTION_TYPE = 'M'
8380 where map.WORKER_ID = p_worker_id and
8381 map.PROJECT_ID not in (select cmt.PROJECT_ID
8382 from PA_COMMITMENT_TXNS cmt);
8383
8384 end if;
8385
8386
8387 --
8388 -- Dev notes: Sadiq 21-Oct-2005
8389 --
8390 -- Populate fin8 was moved from get_planres_actuals to mark_extracted_projects
8391 -- to avoid populating it multiple times in case of a failure in
8392 -- proj perf/progress integration apis that can cause the step to run
8393 -- again. Also, use of savepoint to populate fin8 on a project-by-project basis
8394 -- was considered but not chosen as this solution will not scale. Further this
8395 -- step (mark extr proj) has relatively less processing compared to other steps
8396 -- and is a good place to perform this transaction.
8397 --
8398 -- This change needs to be kept in mind when performing changes to sumz (adding
8399 -- new steps or changing sequences) programs in future.
8400 --
8401
8402 PJI_FM_PLAN_MAINT.POPULATE_FIN8 (p_worker_id => p_worker_id,
8403 p_extraction_type => l_extraction_type,
8404 x_return_status => l_return_status,
8405 x_msg_data => l_msg_data);
8406
8407 IF (l_return_status <> FND_API.G_RET_STS_SUCCESS) THEN
8408 dbms_standard.raise_application_error(-20105, l_err_msg);
8409 END IF;
8410
8411
8412 PJI_PROCESS_UTIL.REGISTER_STEP_COMPLETION(l_process, 'PJI_PJP_SUM_ROLLUP.MARK_EXTRACTED_PROJECTS(p_worker_id);');
8413
8414 commit;
8415
8416 end MARK_EXTRACTED_PROJECTS;
8417
8418
8419 -- -----------------------------------------------------
8420 -- procedure AGGREGATE_FP_CUST_SLICES
8421 --
8422 -- History
8423 -- 19-MAR-2004 SVERMETT Created
8424 --
8425 -- Internal PJP Summarization API.
8426 --
8427 -- Called by RBS program
8428 --
8429 -- -----------------------------------------------------
8430 procedure AGGREGATE_FP_CUST_SLICES (p_worker_id in number) is
8431
8432 l_process varchar2(30);
8433 l_extraction_type varchar2(30);
8434 l_plan_type_id number; -- Bug#5099574
8435 l_refresh_code number;
8436 l_workplan_type_id number;
8437 l_worker_id number; /* Added for bug 13030627 */
8438
8439 begin
8440
8441 /* Added for bug 13030627 */
8442 l_worker_id := p_worker_id;
8443 if PJI_UTILS.GET_PARAMETER('PJP_SIN_PRG') = 'Y' then
8444
8445 PJI_PJP_PRG_PERF_ALL.AGGREGATE_FP_CUST_SLICES(
8446 p_worker_id => l_worker_id);
8447
8448 else
8449 /* Added for bug 13030627 */
8450
8451 l_process := PJI_PJP_SUM_MAIN.g_process || to_char(p_worker_id);
8452
8453 l_extraction_type := PJI_PROCESS_UTIL.GET_PROCESS_PARAMETER(l_process, 'EXTRACTION_TYPE');
8454 l_refresh_code := PJI_PROCESS_UTIL.GET_PROCESS_PARAMETER (l_process, 'REFRESH_CODE'); -- Bug#5099574
8455
8456 if (not PJI_PROCESS_UTIL.NEED_TO_RUN_STEP(l_process, 'PJI_PJP_SUM_ROLLUP.AGGREGATE_FP_CUST_SLICES(p_worker_id);')) then
8457 return;
8458 end if;
8459
8460 l_plan_type_id := PJI_PROCESS_UTIL.GET_PROCESS_PARAMETER
8461 (l_process, 'PLAN_TYPE_ID');
8462
8463 if (l_plan_type_id = -1) then
8464 l_plan_type_id := null;
8465 end if;
8466
8467 if (l_extraction_type ='PARTIAL') then -- Partial Refresh Performance Improvement
8468
8469 -- Bug# 5208322 : the workplan plan_type_id is stored in l_workplan_type_id
8470 begin
8471 SELECT fin_plan_type_id into l_workplan_type_id
8472 FROM pa_fin_plan_types_b
8473 WHERE use_for_workplan_flag = 'Y';
8474 exception
8475 when no_data_found then
8476 l_workplan_type_id := NULL;
8477 end;
8478
8479
8480 INSERT INTO pji_fm_extr_plnver3_t
8481 (worker_id,project_id,plan_version_id,time_phased_type_code)
8482 select
8483 map.worker_id,bv.project_id,bv.budget_version_id,
8484 nvl(fpo.all_time_phased_code,nvl(fpo.cost_time_phased_code,fpo.revenue_time_phased_code)) time_phased_code
8485 from
8486 PJI_PJP_PROJ_BATCH_MAP map,
8487 PA_PROJ_FP_OPTIONS fpo,
8488 PA_BUDGET_VERSIONS bv
8489 where
8490 map.WORKER_ID = p_worker_id and
8491 fpo.FIN_PLAN_TYPE_ID = nvl(l_plan_type_id,fpo.FIN_PLAN_TYPE_ID) and
8492 fpo.PROJECT_ID = map.PROJECT_ID and
8493 bv.PROJECT_ID = map.PROJECT_ID and
8494 bv.BUDGET_VERSION_ID = fpo.FIN_PLAN_VERSION_ID and
8495 (
8496 'Y' IN -- Bug#5099574 Pull Reversals for CB / CO if refresh_code < 62 . Else pull for all plans ids >0 if refresh_code>=62
8497 (
8498 Select decode(
8499 bitand(l_refresh_code,g_all_plans),g_all_plans,'Y',
8500 decode( bitand(l_refresh_code,g_cb_plans),g_cb_plans,
8501 decode(decode(bv.baselined_date, NULL, 'N', 'Y')||bv.current_flag,'YY', 'Y', 'N'),'X')) from dual
8502 UNION ALL
8503 Select decode(
8504 bitand(l_refresh_code,g_all_plans),g_all_plans,'Y',
8505 decode( bitand(l_refresh_code,g_co_plans),g_co_plans,bv.current_original_flag,'X')) from dual
8506 )
8507 OR -- Bug#5099574 Pull Reversals for Fin plan Working Versions when l_refresh_code=16,30. ignore if l_refresh_code>=62
8508 (
8509 bv.BUDGET_STATUS_CODE in ('W','S') and
8510 fpo.FIN_PLAN_TYPE_ID <> l_workplan_type_id and -- Bug# 5208322
8511 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'
8512 )
8513 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
8514 EXISTS ( select 1 from PA_PROJ_ELEM_VER_STRUCTURE ppevs where
8515 bv.FIN_PLAN_TYPE_ID = l_workplan_type_id and -- Bug# 5208322
8516 bv.PROJECT_STRUCTURE_VERSION_ID = ppevs.ELEMENT_VERSION_ID and
8517 (
8518 decode(BITAND(l_refresh_code,g_all_plans),g_all_plans,'N',
8519 decode(BITAND(l_refresh_code,g_lp_plans),g_lp_plans,LATEST_EFF_PUBLISHED_FLAG,'N'))='Y'
8520 or
8521 decode(BITAND(l_refresh_code,g_all_plans),g_all_plans,'N',
8522 decode(BITAND(l_refresh_code,g_wk_plans),g_wk_plans,STATUS_CODE,'N'))='STRUCTURE_WORKING'
8523 or
8524 decode(BITAND(l_refresh_code,g_all_plans ),g_all_plans ,'N',
8525 decode(BITAND(l_refresh_code,g_cb_plans),g_cb_plans,NVL2(CURRENT_BASELINE_DATE,'Y','N'),'N')) ='Y'
8526
8527 )
8528 )
8529 )
8530 UNION ALL --Pull Reversals for Actuals , CB,CO when l_refresh_code=-1,-3,-4
8531 select
8532 map.worker_id,map.project_id, plan_version_id, 'G' time_phased_code
8533 from
8534 PJI_PJP_PROJ_BATCH_MAP map,
8535 (
8536 select decode (bitand (l_refresh_code,1),1,-1,-999) plan_version_id from dual where l_plan_type_id is null
8537 union all
8538 select decode (bitand (l_refresh_code,g_cb_plans),g_cb_plans,-3,-999) plan_version_id from dual
8539 union all
8540 select decode (bitand (l_refresh_code,g_co_plans),g_co_plans,-4,-999) plan_version_id from dual
8541 )
8542 where map.worker_id=p_worker_id;
8543
8544
8545 end if; -- Partial Refresh Performance Improvement
8546
8547
8548 insert into PJI_FP_AGGR_PJP1 pjp1_i
8549 (
8550 WORKER_ID,
8551 RECORD_TYPE,
8552 PRG_LEVEL,
8553 LINE_TYPE,
8554 PROJECT_ID,
8555 PROJECT_ORG_ID,
8556 PROJECT_ORGANIZATION_ID,
8557 PROJECT_ELEMENT_ID,
8558 TIME_ID,
8559 PERIOD_TYPE_ID,
8560 CALENDAR_TYPE,
8561 RBS_AGGR_LEVEL,
8562 WBS_ROLLUP_FLAG,
8563 PRG_ROLLUP_FLAG,
8564 CURR_RECORD_TYPE_ID,
8565 CURRENCY_CODE,
8566 RBS_ELEMENT_ID,
8567 RBS_VERSION_ID,
8568 PLAN_VERSION_ID,
8569 PLAN_TYPE_ID,
8570 PLAN_TYPE_CODE,
8571 RAW_COST,
8572 BRDN_COST,
8573 REVENUE,
8574 BILL_RAW_COST,
8575 BILL_BRDN_COST,
8576 BILL_LABOR_RAW_COST,
8577 BILL_LABOR_BRDN_COST,
8578 BILL_LABOR_HRS,
8579 EQUIPMENT_RAW_COST,
8580 EQUIPMENT_BRDN_COST,
8581 CAPITALIZABLE_RAW_COST,
8582 CAPITALIZABLE_BRDN_COST,
8583 LABOR_RAW_COST,
8584 LABOR_BRDN_COST,
8585 LABOR_HRS,
8586 LABOR_REVENUE,
8587 EQUIPMENT_HOURS,
8588 BILLABLE_EQUIPMENT_HOURS,
8589 SUP_INV_COMMITTED_COST,
8590 PO_COMMITTED_COST,
8591 PR_COMMITTED_COST,
8592 OTH_COMMITTED_COST,
8593 ACT_LABOR_HRS,
8594 ACT_EQUIP_HRS,
8595 ACT_LABOR_BRDN_COST,
8596 ACT_EQUIP_BRDN_COST,
8597 ACT_BRDN_COST,
8598 ACT_RAW_COST,
8599 ACT_REVENUE,
8600 ACT_LABOR_RAW_COST,
8601 ACT_EQUIP_RAW_COST,
8602 ETC_LABOR_HRS,
8603 ETC_EQUIP_HRS,
8604 ETC_LABOR_BRDN_COST,
8605 ETC_EQUIP_BRDN_COST,
8606 ETC_BRDN_COST,
8607 ETC_RAW_COST,
8608 ETC_LABOR_RAW_COST,
8609 ETC_EQUIP_RAW_COST,
8610 CUSTOM1,
8611 CUSTOM2,
8612 CUSTOM3,
8613 CUSTOM4,
8614 CUSTOM5,
8615 CUSTOM6,
8616 CUSTOM7,
8617 CUSTOM8,
8618 CUSTOM9,
8619 CUSTOM10,
8620 CUSTOM11,
8621 CUSTOM12,
8622 CUSTOM13,
8623 CUSTOM14,
8624 CUSTOM15
8625 )
8626 select
8627 WORKER_ID,
8628 null RECORD_TYPE,
8629 0 PRG_LEVEL,
8630 null LINE_TYPE,
8631 PROJECT_ID,
8632 PROJECT_ORG_ID,
8633 PROJECT_ORGANIZATION_ID,
8634 PROJECT_ELEMENT_ID,
8635 TIME_ID,
8636 PERIOD_TYPE_ID,
8637 CALENDAR_TYPE,
8638 RBS_AGGR_LEVEL,
8639 WBS_ROLLUP_FLAG,
8640 PRG_ROLLUP_FLAG,
8641 CURR_RECORD_TYPE_ID,
8642 CURRENCY_CODE,
8643 RBS_ELEMENT_ID,
8644 RBS_VERSION_ID,
8645 PLAN_VERSION_ID,
8646 PLAN_TYPE_ID,
8647 PLAN_TYPE_CODE,
8648 sum(RAW_COST) RAW_COST,
8649 sum(BRDN_COST) BRDN_COST,
8650 sum(REVENUE) REVENUE,
8651 sum(BILL_RAW_COST) BILL_RAW_COST,
8652 sum(BILL_BRDN_COST) BILL_BRDN_COST,
8653 sum(BILL_LABOR_RAW_COST) BILL_LABOR_RAW_COST,
8654 sum(BILL_LABOR_BRDN_COST) BILL_LABOR_BRDN_COST,
8655 sum(BILL_LABOR_HRS) BILL_LABOR_HRS,
8656 sum(EQUIPMENT_RAW_COST) EQUIPMENT_RAW_COST,
8657 sum(EQUIPMENT_BRDN_COST) EQUIPMENT_BRDN_COST,
8658 sum(CAPITALIZABLE_RAW_COST) CAPITALIZABLE_RAW_COST,
8659 sum(CAPITALIZABLE_BRDN_COST) CAPITALIZABLE_BRDN_COST,
8660 sum(LABOR_RAW_COST) LABOR_RAW_COST,
8661 sum(LABOR_BRDN_COST) LABOR_BRDN_COST,
8662 sum(LABOR_HRS) LABOR_HRS,
8663 sum(LABOR_REVENUE) LABOR_REVENUE,
8664 sum(EQUIPMENT_HOURS) EQUIPMENT_HOURS,
8665 sum(BILLABLE_EQUIPMENT_HOURS) BILLABLE_EQUIPMENT_HOURS,
8666 sum(SUP_INV_COMMITTED_COST) SUP_INV_COMMITTED_COST,
8667 sum(PO_COMMITTED_COST) PO_COMMITTED_COST,
8668 sum(PR_COMMITTED_COST) PR_COMMITTED_COST,
8669 sum(OTH_COMMITTED_COST) OTH_COMMITTED_COST,
8670 sum(ACT_LABOR_HRS) ACT_LABOR_HRS,
8671 sum(ACT_EQUIP_HRS) ACT_EQUIP_HRS,
8672 sum(ACT_LABOR_BRDN_COST) ACT_LABOR_BRDN_COST,
8673 sum(ACT_EQUIP_BRDN_COST) ACT_EQUIP_BRDN_COST,
8674 sum(ACT_BRDN_COST) ACT_BRDN_COST,
8675 sum(ACT_RAW_COST) ACT_RAW_COST,
8676 sum(ACT_REVENUE) ACT_REVENUE,
8677 sum(ACT_LABOR_RAW_COST) ACT_LABOR_RAW_COST,
8678 sum(ACT_EQUIP_RAW_COST) ACT_EQUIP_RAW_COST,
8679 sum(ETC_LABOR_HRS) ETC_LABOR_HRS,
8680 sum(ETC_EQUIP_HRS) ETC_EQUIP_HRS,
8681 sum(ETC_LABOR_BRDN_COST) ETC_LABOR_BRDN_COST,
8682 sum(ETC_EQUIP_BRDN_COST) ETC_EQUIP_BRDN_COST,
8683 sum(ETC_BRDN_COST) ETC_BRDN_COST,
8684 sum(ETC_RAW_COST) ETC_RAW_COST,
8685 sum(ETC_LABOR_RAW_COST) ETC_LABOR_RAW_COST,
8686 sum(ETC_EQUIP_RAW_COST) ETC_EQUIP_RAW_COST,
8687 sum(CUSTOM1) CUSTOM1,
8688 sum(CUSTOM2) CUSTOM2,
8689 sum(CUSTOM3) CUSTOM3,
8690 sum(CUSTOM4) CUSTOM4,
8691 sum(CUSTOM5) CUSTOM5,
8692 sum(CUSTOM6) CUSTOM6,
8693 sum(CUSTOM7) CUSTOM7,
8694 sum(CUSTOM8) CUSTOM8,
8695 sum(CUSTOM9) CUSTOM9,
8696 sum(CUSTOM10) CUSTOM10,
8697 sum(CUSTOM11) CUSTOM11,
8698 sum(CUSTOM12) CUSTOM12,
8699 sum(CUSTOM13) CUSTOM13,
8700 sum(CUSTOM14) CUSTOM14,
8701 sum(CUSTOM15) CUSTOM15
8702 from
8703 (
8704 select
8705 WORKER_ID,
8706 to_char(null) LINE_TYPE,
8707 PROJECT_ID,
8708 PROJECT_ORG_ID,
8709 PROJECT_ORGANIZATION_ID,
8710 PROJECT_ELEMENT_ID,
8711 TIME_ID,
8712 PERIOD_TYPE_ID,
8713 CALENDAR_TYPE,
8714 RBS_AGGR_LEVEL,
8715 WBS_ROLLUP_FLAG,
8716 PRG_ROLLUP_FLAG,
8717 CURR_RECORD_TYPE_ID,
8718 CURRENCY_CODE,
8719 RBS_ELEMENT_ID,
8720 RBS_VERSION_ID,
8721 PLAN_VERSION_ID,
8722 PLAN_TYPE_ID,
8723 'A' PLAN_TYPE_CODE,
8724 RAW_COST,
8725 BRDN_COST,
8726 REVENUE,
8727 BILL_RAW_COST,
8728 BILL_BRDN_COST,
8729 BILL_LABOR_RAW_COST,
8730 BILL_LABOR_BRDN_COST,
8731 BILL_LABOR_HRS,
8732 EQUIPMENT_RAW_COST,
8733 EQUIPMENT_BRDN_COST,
8734 CAPITALIZABLE_RAW_COST,
8735 CAPITALIZABLE_BRDN_COST,
8736 LABOR_RAW_COST,
8737 LABOR_BRDN_COST,
8738 LABOR_HRS,
8739 LABOR_REVENUE,
8740 EQUIPMENT_HOURS,
8741 BILLABLE_EQUIPMENT_HOURS,
8742 SUP_INV_COMMITTED_COST,
8743 PO_COMMITTED_COST,
8744 PR_COMMITTED_COST,
8745 OTH_COMMITTED_COST,
8746 to_number(null) ACT_LABOR_HRS,
8747 to_number(null) ACT_EQUIP_HRS,
8748 to_number(null) ACT_LABOR_BRDN_COST,
8749 to_number(null) ACT_EQUIP_BRDN_COST,
8750 to_number(null) ACT_BRDN_COST,
8751 to_number(null) ACT_RAW_COST,
8752 to_number(null) ACT_REVENUE,
8753 to_number(null) ACT_LABOR_RAW_COST,
8754 to_number(null) ACT_EQUIP_RAW_COST,
8755 to_number(null) ETC_LABOR_HRS,
8756 to_number(null) ETC_EQUIP_HRS,
8757 to_number(null) ETC_LABOR_BRDN_COST,
8758 to_number(null) ETC_EQUIP_BRDN_COST,
8759 to_number(null) ETC_BRDN_COST,
8760 to_number(null) ETC_RAW_COST,
8761 to_number(null) ETC_LABOR_RAW_COST,
8762 to_number(null) ETC_EQUIP_RAW_COST,
8763 to_number(null) CUSTOM1,
8764 to_number(null) CUSTOM2,
8765 to_number(null) CUSTOM3,
8766 to_number(null) CUSTOM4,
8767 to_number(null) CUSTOM5,
8768 to_number(null) CUSTOM6,
8769 to_number(null) CUSTOM7,
8770 to_number(null) CUSTOM8,
8771 to_number(null) CUSTOM9,
8772 to_number(null) CUSTOM10,
8773 to_number(null) CUSTOM11,
8774 to_number(null) CUSTOM12,
8775 to_number(null) CUSTOM13,
8776 to_number(null) CUSTOM14,
8777 to_number(null) CUSTOM15
8778 from
8779 PJI_FP_AGGR_PJP0
8780 where
8781 WORKER_ID = p_worker_id
8782 union all
8783 select
8784 WORKER_ID,
8785 to_char(null) LINE_TYPE,
8786 PROJECT_ID,
8787 PROJECT_ORG_ID,
8788 PROJECT_ORGANIZATION_ID,
8789 PROJECT_ELEMENT_ID,
8790 TIME_ID,
8791 PERIOD_TYPE_ID,
8792 CALENDAR_TYPE,
8793 RBS_AGGR_LEVEL,
8794 WBS_ROLLUP_FLAG,
8795 PRG_ROLLUP_FLAG,
8796 CURR_RECORD_TYPE_ID,
8797 CURRENCY_CODE,
8798 RBS_ELEMENT_ID,
8799 RBS_VERSION_ID,
8800 PLAN_VERSION_ID,
8801 PLAN_TYPE_ID,
8802 'A' PLAN_TYPE_CODE,
8803 to_number(null) RAW_COST,
8804 to_number(null) BRDN_COST,
8805 to_number(null) REVENUE,
8806 to_number(null) BILL_RAW_COST,
8807 to_number(null) BILL_BRDN_COST,
8808 to_number(null) BILL_LABOR_RAW_COST,
8809 to_number(null) BILL_LABOR_BRDN_COST,
8810 to_number(null) BILL_LABOR_HRS,
8811 to_number(null) EQUIPMENT_RAW_COST,
8812 to_number(null) EQUIPMENT_BRDN_COST,
8813 to_number(null) CAPITALIZABLE_RAW_COST,
8814 to_number(null) CAPITALIZABLE_BRDN_COST,
8815 to_number(null) LABOR_RAW_COST,
8816 to_number(null) LABOR_BRDN_COST,
8817 to_number(null) LABOR_HRS,
8818 to_number(null) LABOR_REVENUE,
8819 to_number(null) EQUIPMENT_HOURS,
8820 to_number(null) BILLABLE_EQUIPMENT_HOURS,
8821 to_number(null) SUP_INV_COMMITTED_COST,
8822 to_number(null) PO_COMMITTED_COST,
8823 to_number(null) PR_COMMITTED_COST,
8824 to_number(null) OTH_COMMITTED_COST,
8825 to_number(null) ACT_LABOR_HRS,
8826 to_number(null) ACT_EQUIP_HRS,
8827 to_number(null) ACT_LABOR_BRDN_COST,
8828 to_number(null) ACT_EQUIP_BRDN_COST,
8829 to_number(null) ACT_BRDN_COST,
8830 to_number(null) ACT_RAW_COST,
8831 to_number(null) ACT_REVENUE,
8832 to_number(null) ACT_LABOR_RAW_COST,
8833 to_number(null) ACT_EQUIP_RAW_COST,
8834 to_number(null) ETC_LABOR_HRS,
8835 to_number(null) ETC_EQUIP_HRS,
8836 to_number(null) ETC_LABOR_BRDN_COST,
8837 to_number(null) ETC_EQUIP_BRDN_COST,
8838 to_number(null) ETC_BRDN_COST,
8839 to_number(null) ETC_RAW_COST,
8840 to_number(null) ETC_LABOR_RAW_COST,
8841 to_number(null) ETC_EQUIP_RAW_COST,
8842 CUSTOM1,
8843 CUSTOM2,
8844 CUSTOM3,
8845 CUSTOM4,
8846 CUSTOM5,
8847 CUSTOM6,
8848 CUSTOM7,
8849 CUSTOM8,
8850 CUSTOM9,
8851 CUSTOM10,
8852 CUSTOM11,
8853 CUSTOM12,
8854 CUSTOM13,
8855 CUSTOM14,
8856 CUSTOM15
8857 from
8858 PJI_FP_CUST_PJP0
8859 where
8860 WORKER_ID = p_worker_id
8861 union all -- commitments reversals
8862 select
8863 p_worker_id WORKER_ID,
8864 to_char(null) LINE_TYPE,
8865 fpr.PROJECT_ID,
8866 fpr.PROJECT_ORG_ID,
8867 fpr.PROJECT_ORGANIZATION_ID,
8868 fpr.PROJECT_ELEMENT_ID,
8869 fpr.TIME_ID,
8870 fpr.PERIOD_TYPE_ID,
8871 fpr.CALENDAR_TYPE,
8872 fpr.RBS_AGGR_LEVEL,
8873 fpr.WBS_ROLLUP_FLAG,
8874 fpr.PRG_ROLLUP_FLAG,
8875 fpr.CURR_RECORD_TYPE_ID,
8876 fpr.CURRENCY_CODE,
8877 fpr.RBS_ELEMENT_ID,
8878 fpr.RBS_VERSION_ID,
8879 fpr.PLAN_VERSION_ID,
8880 fpr.PLAN_TYPE_ID,
8881 fpr.PLAN_TYPE_CODE,
8882 to_number(null) RAW_COST,
8883 to_number(null) BRDN_COST,
8884 to_number(null) REVENUE,
8885 to_number(null) BILL_RAW_COST,
8886 to_number(null) BILL_BRDN_COST,
8887 to_number(null) BILL_LABOR_RAW_COST,
8888 to_number(null) BILL_LABOR_BRDN_COST,
8889 to_number(null) BILL_LABOR_HRS,
8890 to_number(null) EQUIPMENT_RAW_COST,
8891 to_number(null) EQUIPMENT_BRDN_COST,
8892 to_number(null) CAPITALIZABLE_RAW_COST,
8893 to_number(null) CAPITALIZABLE_BRDN_COST,
8894 to_number(null) LABOR_RAW_COST,
8895 to_number(null) LABOR_BRDN_COST,
8896 to_number(null) LABOR_HRS,
8897 to_number(null) LABOR_REVENUE,
8898 to_number(null) EQUIPMENT_HOURS,
8899 to_number(null) BILLABLE_EQUIPMENT_HOURS,
8900 - fpr.SUP_INV_COMMITTED_COST,
8901 - fpr.PO_COMMITTED_COST,
8902 - fpr.PR_COMMITTED_COST,
8903 - fpr.OTH_COMMITTED_COST,
8904 to_number(null) ACT_LABOR_HRS,
8905 to_number(null) ACT_EQUIP_HRS,
8906 to_number(null) ACT_LABOR_BRDN_COST,
8907 to_number(null) ACT_EQUIP_BRDN_COST,
8908 to_number(null) ACT_BRDN_COST,
8909 to_number(null) ACT_RAW_COST,
8910 to_number(null) ACT_REVENUE,
8911 to_number(null) ACT_LABOR_RAW_COST,
8912 to_number(null) ACT_EQUIP_RAW_COST,
8913 to_number(null) ETC_LABOR_HRS,
8914 to_number(null) ETC_EQUIP_HRS,
8915 to_number(null) ETC_LABOR_BRDN_COST,
8916 to_number(null) ETC_EQUIP_BRDN_COST,
8917 to_number(null) ETC_BRDN_COST,
8918 to_number(null) ETC_RAW_COST,
8919 to_number(null) ETC_LABOR_RAW_COST,
8920 to_number(null) ETC_EQUIP_RAW_COST,
8921 to_number(null) CUSTOM1,
8922 to_number(null) CUSTOM2,
8923 to_number(null) CUSTOM3,
8924 to_number(null) CUSTOM4,
8925 to_number(null) CUSTOM5,
8926 to_number(null) CUSTOM6,
8927 to_number(null) CUSTOM7,
8928 to_number(null) CUSTOM8,
8929 to_number(null) CUSTOM9,
8930 to_number(null) CUSTOM10,
8931 - fpr.custom11 CUSTOM11, /* Modified for Bug 8271578 Start */
8932 - fpr.custom12 CUSTOM12,
8933 - fpr.custom13 CUSTOM13,
8934 - fpr.custom14 CUSTOM14,
8935 - fpr.custom15 CUSTOM15 /* Modified for Bug 8271578 End */
8936 from
8937 PJI_PJP_PROJ_BATCH_MAP map,
8938 PJI_FP_XBS_ACCUM_F fpr
8939 where
8940 l_extraction_type = 'INCREMENTAL' and
8941 map.WORKER_ID = p_worker_id and
8942 map.EXTRACTION_TYPE = 'M' and
8943 fpr.PROJECT_ID = map.PROJECT_ID and
8944 fpr.PERIOD_TYPE_ID = 32 and
8945 fpr.RBS_AGGR_LEVEL = 'L' and
8946 fpr.WBS_ROLLUP_FLAG = 'N' and
8947 fpr.PRG_ROLLUP_FLAG = 'N' and
8948 abs(nvl(fpr.SUP_INV_COMMITTED_COST, 0)) +
8949 abs(nvl(fpr.PO_COMMITTED_COST, 0)) +
8950 abs(nvl(fpr.PR_COMMITTED_COST, 0)) +
8951 abs(nvl(fpr.OTH_COMMITTED_COST, 0)) > 0
8952 union all
8953 select /*+ ordered */
8954 p_worker_id WORKER_ID,
8955 to_char(null) LINE_TYPE,
8956 fpr.PROJECT_ID,
8957 fpr.PROJECT_ORG_ID,
8958 fpr.PROJECT_ORGANIZATION_ID,
8959 fpr.PROJECT_ELEMENT_ID,
8960 fpr.TIME_ID,
8961 fpr.PERIOD_TYPE_ID,
8962 fpr.CALENDAR_TYPE,
8963 fpr.RBS_AGGR_LEVEL,
8964 fpr.WBS_ROLLUP_FLAG,
8965 fpr.PRG_ROLLUP_FLAG,
8966 fpr.CURR_RECORD_TYPE_ID,
8967 fpr.CURRENCY_CODE,
8968 fpr.RBS_ELEMENT_ID,
8969 fpr.RBS_VERSION_ID,
8970 fpr.PLAN_VERSION_ID,
8971 fpr.PLAN_TYPE_ID,
8972 fpr.PLAN_TYPE_CODE,
8973 - fpr.RAW_COST RAW_COST,
8974 - fpr.BRDN_COST BRDN_COST,
8975 - fpr.REVENUE REVENUE,
8976 - fpr.BILL_RAW_COST BILL_RAW_COST,
8977 - fpr.BILL_BRDN_COST BILL_BRDN_COST,
8978 - fpr.BILL_LABOR_RAW_COST BILL_LABOR_RAW_COST,
8979 - fpr.BILL_LABOR_BRDN_COST BILL_LABOR_BRDN_COST,
8980 - fpr.BILL_LABOR_HRS BILL_LABOR_HRS,
8981 - fpr.EQUIPMENT_RAW_COST EQUIPMENT_RAW_COST,
8982 - fpr.EQUIPMENT_BRDN_COST EQUIPMENT_BRDN_COST,
8983 - fpr.CAPITALIZABLE_RAW_COST CAPITALIZABLE_RAW_COST,
8984 - fpr.CAPITALIZABLE_BRDN_COST CAPITALIZABLE_BRDN_COST,
8985 - fpr.LABOR_RAW_COST LABOR_RAW_COST,
8986 - fpr.LABOR_BRDN_COST LABOR_BRDN_COST,
8987 - fpr.LABOR_HRS LABOR_HRS,
8988 - fpr.LABOR_REVENUE LABOR_REVENUE,
8989 - fpr.EQUIPMENT_HOURS EQUIPMENT_HOURS,
8990 - fpr.BILLABLE_EQUIPMENT_HOURS BILLABLE_EQUIPMENT_HOURS,
8991 - fpr.SUP_INV_COMMITTED_COST SUP_INV_COMMITTED_COST,
8992 - fpr.PO_COMMITTED_COST PO_COMMITTED_COST,
8993 - fpr.PR_COMMITTED_COST PR_COMMITTED_COST,
8994 - fpr.OTH_COMMITTED_COST OTH_COMMITTED_COST,
8995 - fpr.ACT_LABOR_HRS ACT_LABOR_HRS,
8996 - fpr.ACT_EQUIP_HRS ACT_EQUIP_HRS,
8997 - fpr.ACT_LABOR_BRDN_COST ACT_LABOR_BRDN_COST,
8998 - fpr.ACT_EQUIP_BRDN_COST ACT_EQUIP_BRDN_COST,
8999 - fpr.ACT_BRDN_COST ACT_BRDN_COST,
9000 - fpr.ACT_RAW_COST ACT_RAW_COST,
9001 - fpr.ACT_REVENUE ACT_REVENUE,
9002 - fpr.ACT_LABOR_RAW_COST ACT_LABOR_RAW_COST,
9003 - fpr.ACT_EQUIP_RAW_COST ACT_EQUIP_RAW_COST,
9004 - fpr.ETC_LABOR_HRS ETC_LABOR_HRS,
9005 - fpr.ETC_EQUIP_HRS ETC_EQUIP_HRS,
9006 - fpr.ETC_LABOR_BRDN_COST ETC_LABOR_BRDN_COST,
9007 - fpr.ETC_EQUIP_BRDN_COST ETC_EQUIP_BRDN_COST,
9008 - fpr.ETC_BRDN_COST ETC_BRDN_COST,
9009 - fpr.ETC_RAW_COST ETC_RAW_COST,
9010 - fpr.ETC_LABOR_RAW_COST ETC_LABOR_RAW_COST,
9011 - fpr.ETC_EQUIP_RAW_COST ETC_EQUIP_RAW_COST,
9012 - fpr.CUSTOM1 CUSTOM1,
9013 - fpr.CUSTOM2 CUSTOM2,
9014 - fpr.CUSTOM3 CUSTOM3,
9015 - fpr.CUSTOM4 CUSTOM4,
9016 - fpr.CUSTOM5 CUSTOM5,
9017 - fpr.CUSTOM6 CUSTOM6,
9018 - fpr.CUSTOM7 CUSTOM7,
9019 - fpr.CUSTOM8 CUSTOM8,
9020 - fpr.CUSTOM9 CUSTOM9,
9021 - fpr.CUSTOM10 CUSTOM10,
9022 - fpr.CUSTOM11 CUSTOM11,
9023 - fpr.CUSTOM12 CUSTOM12,
9024 - fpr.CUSTOM13 CUSTOM13,
9025 - fpr.CUSTOM14 CUSTOM14,
9026 - fpr.CUSTOM15 CUSTOM15
9027 from
9028 PJI_FM_EXTR_PLNVER3_T map,
9029 PJI_FP_XBS_ACCUM_F fpr
9030 where
9031 l_extraction_type = 'PARTIAL' and
9032 map.WORKER_ID = p_worker_id and
9033 fpr.PROJECT_ID = map.PROJECT_ID and
9034 fpr.PLAN_VERSION_ID = map.PLAN_VERSION_ID and
9035 fpr.PERIOD_TYPE_ID = decode(map.time_phased_type_code,
9036 'N', decode(fpr.PERIOD_TYPE_ID,
9037 32, 32,
9038 2048),
9039 32) and
9040 fpr.RBS_AGGR_LEVEL = 'L' and
9041 fpr.WBS_ROLLUP_FLAG = 'N' and
9042 fpr.PRG_ROLLUP_FLAG = 'N'
9043 )
9044 group by
9045 WORKER_ID,
9046 LINE_TYPE,
9047 PROJECT_ID,
9048 PROJECT_ORG_ID,
9049 PROJECT_ORGANIZATION_ID,
9050 PROJECT_ELEMENT_ID,
9051 TIME_ID,
9052 PERIOD_TYPE_ID,
9053 CALENDAR_TYPE,
9054 RBS_AGGR_LEVEL,
9055 WBS_ROLLUP_FLAG,
9056 PRG_ROLLUP_FLAG,
9057 CURR_RECORD_TYPE_ID,
9058 CURRENCY_CODE,
9059 RBS_ELEMENT_ID,
9060 RBS_VERSION_ID,
9061 PLAN_VERSION_ID,
9062 PLAN_TYPE_ID,
9063 PLAN_TYPE_CODE
9064 having not
9065 (nvl(sum(RAW_COST), 0) = 0 and
9066 nvl(sum(BRDN_COST), 0) = 0 and
9067 nvl(sum(REVENUE), 0) = 0 and
9068 nvl(sum(BILL_RAW_COST), 0) = 0 and
9069 nvl(sum(BILL_BRDN_COST), 0) = 0 and
9070 nvl(sum(BILL_LABOR_RAW_COST), 0) = 0 and
9071 nvl(sum(BILL_LABOR_BRDN_COST), 0) = 0 and
9072 nvl(sum(BILL_LABOR_HRS), 0) = 0 and
9073 nvl(sum(EQUIPMENT_RAW_COST), 0) = 0 and
9074 nvl(sum(EQUIPMENT_BRDN_COST), 0) = 0 and
9075 nvl(sum(CAPITALIZABLE_RAW_COST), 0) = 0 and
9076 nvl(sum(CAPITALIZABLE_BRDN_COST), 0) = 0 and
9077 nvl(sum(LABOR_RAW_COST), 0) = 0 and
9078 nvl(sum(LABOR_BRDN_COST), 0) = 0 and
9079 nvl(sum(LABOR_HRS), 0) = 0 and
9080 nvl(sum(LABOR_REVENUE), 0) = 0 and
9081 nvl(sum(EQUIPMENT_HOURS), 0) = 0 and
9082 nvl(sum(BILLABLE_EQUIPMENT_HOURS), 0) = 0 and
9083 nvl(sum(SUP_INV_COMMITTED_COST), 0) = 0 and
9084 nvl(sum(PO_COMMITTED_COST), 0) = 0 and
9085 nvl(sum(PR_COMMITTED_COST), 0) = 0 and
9086 nvl(sum(OTH_COMMITTED_COST), 0) = 0 and
9087 nvl(sum(ACT_LABOR_HRS), 0) = 0 and
9088 nvl(sum(ACT_EQUIP_HRS), 0) = 0 and
9089 nvl(sum(ACT_LABOR_BRDN_COST), 0) = 0 and
9090 nvl(sum(ACT_EQUIP_BRDN_COST), 0) = 0 and
9091 nvl(sum(ACT_BRDN_COST), 0) = 0 and
9092 nvl(sum(ACT_RAW_COST), 0) = 0 and
9093 nvl(sum(ACT_REVENUE), 0) = 0 and
9094 nvl(sum(ACT_LABOR_RAW_COST), 0) = 0 and
9095 nvl(sum(ACT_EQUIP_RAW_COST), 0) = 0 and
9096 nvl(sum(ETC_LABOR_HRS), 0) = 0 and
9097 nvl(sum(ETC_EQUIP_HRS), 0) = 0 and
9098 nvl(sum(ETC_LABOR_BRDN_COST), 0) = 0 and
9099 nvl(sum(ETC_EQUIP_BRDN_COST), 0) = 0 and
9100 nvl(sum(ETC_BRDN_COST), 0) = 0 and
9101 nvl(sum(ETC_RAW_COST), 0) = 0 and
9102 nvl(sum(ETC_LABOR_RAW_COST), 0) = 0 and
9103 nvl(sum(ETC_EQUIP_RAW_COST), 0) = 0 and
9104 nvl(sum(CUSTOM1), 0) = 0 and
9105 nvl(sum(CUSTOM2), 0) = 0 and
9106 nvl(sum(CUSTOM3), 0) = 0 and
9107 nvl(sum(CUSTOM4), 0) = 0 and
9108 nvl(sum(CUSTOM5), 0) = 0 and
9109 nvl(sum(CUSTOM6), 0) = 0 and
9110 nvl(sum(CUSTOM7), 0) = 0 and
9111 nvl(sum(CUSTOM8), 0) = 0 and
9112 nvl(sum(CUSTOM9), 0) = 0 and
9113 nvl(sum(CUSTOM10), 0) = 0 and
9114 nvl(sum(CUSTOM11), 0) = 0 and
9115 nvl(sum(CUSTOM12), 0) = 0 and
9116 nvl(sum(CUSTOM13), 0) = 0 and
9117 nvl(sum(CUSTOM14), 0) = 0 and
9118 nvl(sum(CUSTOM15), 0) = 0);
9119
9120 if ( l_extraction_type = 'PARTIAL' ) then -- Partial Refresh Performance Improvement
9121 delete from PJI_FM_EXTR_PLNVER3_T where worker_id=p_worker_id;
9122 end if;
9123
9124 PJI_PROCESS_UTIL.REGISTER_STEP_COMPLETION(l_process, 'PJI_PJP_SUM_ROLLUP.AGGREGATE_FP_CUST_SLICES(p_worker_id);');
9125
9126 commit;
9127
9128 end if;
9129
9130 end AGGREGATE_FP_CUST_SLICES;
9131
9132
9133 -- -----------------------------------------------------
9134 -- procedure AGGREGATE_AC_CUST_SLICES
9135 --
9136 -- History
9137 -- 19-MAR-2004 SVERMETT Created
9138 --
9139 -- Internal PJP Summarization API.
9140 --
9141 -- -----------------------------------------------------
9142 procedure AGGREGATE_AC_CUST_SLICES (p_worker_id in number) is
9143
9144 l_process varchar2(30);
9145 l_extraction_type varchar2(30);
9146 l_refresh_code number; -- Bug#5099574
9147 l_plan_type_id number;
9148 begin
9149
9150 l_process := PJI_PJP_SUM_MAIN.g_process || to_char(p_worker_id);
9151
9152 if (not PJI_PROCESS_UTIL.NEED_TO_RUN_STEP(l_process, 'PJI_PJP_SUM_ROLLUP.AGGREGATE_AC_CUST_SLICES(p_worker_id);')) then
9153 return;
9154 end if;
9155
9156 l_extraction_type := PJI_PROCESS_UTIL.GET_PROCESS_PARAMETER(l_process, 'EXTRACTION_TYPE');
9157
9158 -- Bug#5099574
9159 l_refresh_code := PJI_PROCESS_UTIL.GET_PROCESS_PARAMETER (l_process, 'REFRESH_CODE');
9160 l_plan_type_id := PJI_PROCESS_UTIL.GET_PROCESS_PARAMETER (l_process, 'PLAN_TYPE_ID');
9161
9162 -- Bug 15881881
9163 fnd_stats.gather_table_stats('PJI','PJI_AC_AGGR_PJP0',PERCENT=>40);
9164 fnd_stats.gather_table_stats('PJI','PJI_AC_CUST_PJP0',PERCENT=>40);
9165 fnd_stats.gather_table_stats('PJI','PJI_AC_XBS_ACCUM_F',PERCENT=>40);
9166 fnd_stats.gather_table_stats('PJI','PJI_ORG_EXTR_INFO',PERCENT=>40);
9167 fnd_stats.gather_table_stats('PJI','PJI_PJP_PROJ_BATCH_MAP',PERCENT=>40);
9168 fnd_stats.gather_table_stats('PJI','PJI_TIME_CAL_PERIOD',PERCENT=>40);
9169 fnd_stats.gather_table_stats('PJI','PJI_TIME_CAL_RPT_STRUCT',PERCENT=>40);
9170 fnd_stats.gather_table_stats('PJI','PJI_TIME_ENT_PERIOD',PERCENT=>40);
9171 fnd_stats.gather_table_stats('PJI','PJI_TIME_RPT_STRUCT',PERCENT=>40);
9172
9173 --End Bug 15881881
9174 if (l_plan_type_id = -1) then
9175 l_plan_type_id := null;
9176 end if;
9177 /* spliited the SQL to remove unnecessasry hits based on extraction type */
9178 IF l_extraction_type='PARTIAL' THEN -- Bug#5453009 Performance Fix .
9179 -- Sql was split into 2 for Partial and Non Partial Flows
9180
9181 insert into PJI_AC_AGGR_PJP1 pjp1_i
9182 (
9183 WORKER_ID,
9184 RECORD_TYPE,
9185 PRG_LEVEL,
9186 PROJECT_ID,
9187 PROJECT_ORG_ID,
9188 PROJECT_ORGANIZATION_ID,
9189 PROJECT_ELEMENT_ID,
9190 TIME_ID,
9191 PERIOD_TYPE_ID,
9192 CALENDAR_TYPE,
9193 WBS_ROLLUP_FLAG,
9194 PRG_ROLLUP_FLAG,
9195 CURR_RECORD_TYPE_ID,
9196 CURRENCY_CODE,
9197 REVENUE,
9198 INITIAL_FUNDING_AMOUNT,
9199 INITIAL_FUNDING_COUNT,
9200 ADDITIONAL_FUNDING_AMOUNT,
9201 ADDITIONAL_FUNDING_COUNT,
9202 CANCELLED_FUNDING_AMOUNT,
9203 CANCELLED_FUNDING_COUNT,
9204 FUNDING_ADJUSTMENT_AMOUNT,
9205 FUNDING_ADJUSTMENT_COUNT,
9206 REVENUE_WRITEOFF,
9207 AR_INVOICE_AMOUNT,
9208 AR_INVOICE_COUNT,
9209 AR_CASH_APPLIED_AMOUNT,
9210 AR_INVOICE_WRITE_OFF_AMOUNT,
9211 AR_INVOICE_WRITEOFF_COUNT,
9212 AR_CREDIT_MEMO_AMOUNT,
9213 AR_CREDIT_MEMO_COUNT,
9214 UNBILLED_RECEIVABLES,
9215 UNEARNED_REVENUE,
9216 AR_UNAPPR_INVOICE_AMOUNT,
9217 AR_UNAPPR_INVOICE_COUNT,
9218 AR_APPR_INVOICE_AMOUNT,
9219 AR_APPR_INVOICE_COUNT,
9220 AR_AMOUNT_DUE,
9221 AR_COUNT_DUE,
9222 AR_AMOUNT_OVERDUE,
9223 AR_COUNT_OVERDUE,
9224 CUSTOM1,
9225 CUSTOM2,
9226 CUSTOM3,
9227 CUSTOM4,
9228 CUSTOM5,
9229 CUSTOM6,
9230 CUSTOM7,
9231 CUSTOM8,
9232 CUSTOM9,
9233 CUSTOM10,
9234 CUSTOM11,
9235 CUSTOM12,
9236 CUSTOM13,
9237 CUSTOM14,
9238 CUSTOM15
9239 )
9240 select
9241 WORKER_ID,
9242 null RECORD_TYPE,
9243 0 PRG_LEVEL,
9244 PROJECT_ID,
9245 PROJECT_ORG_ID,
9246 PROJECT_ORGANIZATION_ID,
9247 PROJECT_ELEMENT_ID,
9248 TIME_ID,
9249 PERIOD_TYPE_ID,
9250 CALENDAR_TYPE,
9251 WBS_ROLLUP_FLAG,
9252 PRG_ROLLUP_FLAG,
9253 CURR_RECORD_TYPE_ID,
9254 CURRENCY_CODE,
9255 sum(REVENUE) REVENUE,
9256 sum(INITIAL_FUNDING_AMOUNT) INITIAL_FUNDING_AMOUNT,
9257 sum(INITIAL_FUNDING_COUNT) INITIAL_FUNDING_COUNT,
9258 sum(ADDITIONAL_FUNDING_AMOUNT) ADDITIONAL_FUNDING_AMOUNT,
9259 sum(ADDITIONAL_FUNDING_COUNT) ADDITIONAL_FUNDING_COUNT,
9260 sum(CANCELLED_FUNDING_AMOUNT) CANCELLED_FUNDING_AMOUNT,
9261 sum(CANCELLED_FUNDING_COUNT) CANCELLED_FUNDING_COUNT,
9262 sum(FUNDING_ADJUSTMENT_AMOUNT) FUNDING_ADJUSTMENT_AMOUNT,
9263 sum(FUNDING_ADJUSTMENT_COUNT) FUNDING_ADJUSTMENT_COUNT,
9264 sum(REVENUE_WRITEOFF) REVENUE_WRITEOFF,
9265 sum(AR_INVOICE_AMOUNT) AR_INVOICE_AMOUNT,
9266 sum(AR_INVOICE_COUNT) AR_INVOICE_COUNT,
9267 sum(AR_CASH_APPLIED_AMOUNT) AR_CASH_APPLIED_AMOUNT,
9268 sum(AR_INVOICE_WRITE_OFF_AMOUNT) AR_INVOICE_WRITE_OFF_AMOUNT,
9269 sum(AR_INVOICE_WRITEOFF_COUNT) AR_INVOICE_WRITEOFF_COUNT,
9270 sum(AR_CREDIT_MEMO_AMOUNT) AR_CREDIT_MEMO_AMOUNT,
9271 sum(AR_CREDIT_MEMO_COUNT) AR_CREDIT_MEMO_COUNT,
9272 sum(UNBILLED_RECEIVABLES) UNBILLED_RECEIVABLES,
9273 sum(UNEARNED_REVENUE) UNEARNED_REVENUE,
9274 sum(AR_UNAPPR_INVOICE_AMOUNT) AR_UNAPPR_INVOICE_AMOUNT,
9275 sum(AR_UNAPPR_INVOICE_COUNT) AR_UNAPPR_INVOICE_COUNT,
9276 sum(AR_APPR_INVOICE_AMOUNT) AR_APPR_INVOICE_AMOUNT,
9277 sum(AR_APPR_INVOICE_COUNT) AR_APPR_INVOICE_COUNT,
9278 sum(AR_AMOUNT_DUE) AR_AMOUNT_DUE,
9279 sum(AR_COUNT_DUE) AR_COUNT_DUE,
9280 sum(AR_AMOUNT_OVERDUE) AR_AMOUNT_OVERDUE,
9281 sum(AR_COUNT_OVERDUE) AR_COUNT_OVERDUE,
9282 sum(CUSTOM1) CUSTOM1,
9283 sum(CUSTOM2) CUSTOM2,
9284 sum(CUSTOM3) CUSTOM3,
9285 sum(CUSTOM4) CUSTOM4,
9286 sum(CUSTOM5) CUSTOM5,
9287 sum(CUSTOM6) CUSTOM6,
9288 sum(CUSTOM7) CUSTOM7,
9289 sum(CUSTOM8) CUSTOM8,
9290 sum(CUSTOM9) CUSTOM9,
9291 sum(CUSTOM10) CUSTOM10,
9292 sum(CUSTOM11) CUSTOM11,
9293 sum(CUSTOM12) CUSTOM12,
9294 sum(CUSTOM13) CUSTOM13,
9295 sum(CUSTOM14) CUSTOM14,
9296 sum(CUSTOM15) CUSTOM15
9297 from
9298 (
9299 select
9300 WORKER_ID,
9301 PROJECT_ID,
9302 PROJECT_ORG_ID,
9303 PROJECT_ORGANIZATION_ID,
9304 PROJECT_ELEMENT_ID,
9305 TIME_ID,
9306 PERIOD_TYPE_ID,
9307 CALENDAR_TYPE,
9308 WBS_ROLLUP_FLAG,
9309 PRG_ROLLUP_FLAG,
9310 CURR_RECORD_TYPE_ID,
9311 CURRENCY_CODE,
9312 REVENUE,
9313 INITIAL_FUNDING_AMOUNT,
9314 INITIAL_FUNDING_COUNT,
9315 ADDITIONAL_FUNDING_AMOUNT,
9316 ADDITIONAL_FUNDING_COUNT,
9317 CANCELLED_FUNDING_AMOUNT,
9318 CANCELLED_FUNDING_COUNT,
9319 FUNDING_ADJUSTMENT_AMOUNT,
9320 FUNDING_ADJUSTMENT_COUNT,
9321 REVENUE_WRITEOFF,
9322 AR_INVOICE_AMOUNT,
9323 AR_INVOICE_COUNT,
9324 AR_CASH_APPLIED_AMOUNT,
9325 AR_INVOICE_WRITE_OFF_AMOUNT,
9326 AR_INVOICE_WRITEOFF_COUNT,
9327 AR_CREDIT_MEMO_AMOUNT,
9328 AR_CREDIT_MEMO_COUNT,
9329 UNBILLED_RECEIVABLES,
9330 UNEARNED_REVENUE,
9331 AR_UNAPPR_INVOICE_AMOUNT,
9332 AR_UNAPPR_INVOICE_COUNT,
9333 AR_APPR_INVOICE_AMOUNT,
9334 AR_APPR_INVOICE_COUNT,
9335 AR_AMOUNT_DUE,
9336 AR_COUNT_DUE,
9337 AR_AMOUNT_OVERDUE,
9338 AR_COUNT_OVERDUE,
9339 to_number(null) CUSTOM1,
9340 to_number(null) CUSTOM2,
9341 to_number(null) CUSTOM3,
9342 to_number(null) CUSTOM4,
9343 to_number(null) CUSTOM5,
9344 to_number(null) CUSTOM6,
9345 to_number(null) CUSTOM7,
9346 to_number(null) CUSTOM8,
9347 to_number(null) CUSTOM9,
9348 to_number(null) CUSTOM10,
9349 to_number(null) CUSTOM11,
9350 to_number(null) CUSTOM12,
9351 to_number(null) CUSTOM13,
9352 to_number(null) CUSTOM14,
9353 to_number(null) CUSTOM15
9354 from
9355 PJI_AC_AGGR_PJP0
9356 where
9357 WORKER_ID = p_worker_id
9358 union all
9359 select
9360 WORKER_ID,
9361 PROJECT_ID,
9362 PROJECT_ORG_ID,
9363 PROJECT_ORGANIZATION_ID,
9364 PROJECT_ELEMENT_ID,
9365 TIME_ID,
9366 PERIOD_TYPE_ID,
9367 CALENDAR_TYPE,
9368 WBS_ROLLUP_FLAG,
9369 PRG_ROLLUP_FLAG,
9370 CURR_RECORD_TYPE_ID,
9371 CURRENCY_CODE,
9372 to_number(null) REVENUE,
9373 to_number(null) INITIAL_FUNDING_AMOUNT,
9374 to_number(null) INITIAL_FUNDING_COUNT,
9375 to_number(null) ADDITIONAL_FUNDING_AMOUNT,
9376 to_number(null) ADDITIONAL_FUNDING_COUNT,
9377 to_number(null) CANCELLED_FUNDING_AMOUNT,
9378 to_number(null) CANCELLED_FUNDING_COUNT,
9379 to_number(null) FUNDING_ADJUSTMENT_AMOUNT,
9380 to_number(null) FUNDING_ADJUSTMENT_COUNT,
9381 to_number(null) REVENUE_WRITEOFF,
9382 to_number(null) AR_INVOICE_AMOUNT,
9383 to_number(null) AR_INVOICE_COUNT,
9384 to_number(null) AR_CASH_APPLIED_AMOUNT,
9385 to_number(null) AR_INVOICE_WRITE_OFF_AMOUNT,
9386 to_number(null) AR_INVOICE_WRITEOFF_COUNT,
9387 to_number(null) AR_CREDIT_MEMO_AMOUNT,
9388 to_number(null) AR_CREDIT_MEMO_COUNT,
9389 to_number(null) UNBILLED_RECEIVABLES,
9390 to_number(null) UNEARNED_REVENUE,
9391 to_number(null) AR_UNAPPR_INVOICE_AMOUNT,
9392 to_number(null) AR_UNAPPR_INVOICE_COUNT,
9393 to_number(null) AR_APPR_INVOICE_AMOUNT,
9394 to_number(null) AR_APPR_INVOICE_COUNT,
9395 to_number(null) AR_AMOUNT_DUE,
9396 to_number(null) AR_COUNT_DUE,
9397 to_number(null) AR_AMOUNT_OVERDUE,
9398 to_number(null) AR_COUNT_OVERDUE,
9399 CUSTOM1,
9400 CUSTOM2,
9401 CUSTOM3,
9402 CUSTOM4,
9403 CUSTOM5,
9404 CUSTOM6,
9405 CUSTOM7,
9406 CUSTOM8,
9407 CUSTOM9,
9408 CUSTOM10,
9409 CUSTOM11,
9410 CUSTOM12,
9411 CUSTOM13,
9412 CUSTOM14,
9413 CUSTOM15
9414 from
9415 PJI_AC_CUST_PJP0
9416 where
9417 WORKER_ID = p_worker_id
9418 union all -- partial refresh reversals
9419 select /*+ full(map) use_nl(acr) */
9420 p_worker_id WORKER_ID,
9421 acr.PROJECT_ID,
9422 acr.PROJECT_ORG_ID,
9423 acr.PROJECT_ORGANIZATION_ID,
9424 acr.PROJECT_ELEMENT_ID,
9425 acr.TIME_ID,
9426 acr.PERIOD_TYPE_ID,
9427 acr.CALENDAR_TYPE,
9428 acr.WBS_ROLLUP_FLAG,
9429 acr.PRG_ROLLUP_FLAG,
9430 acr.CURR_RECORD_TYPE_ID,
9431 acr.CURRENCY_CODE,
9432 - acr.REVENUE REVENUE,
9433 - acr.INITIAL_FUNDING_AMOUNT INITIAL_FUNDING_AMOUNT,
9434 - acr.INITIAL_FUNDING_COUNT INITIAL_FUNDING_COUNT,
9435 - acr.ADDITIONAL_FUNDING_AMOUNT ADDITIONAL_FUNDING_AMOUNT,
9436 - acr.ADDITIONAL_FUNDING_COUNT ADDITIONAL_FUNDING_COUNT,
9437 - acr.CANCELLED_FUNDING_AMOUNT CANCELLED_FUNDING_AMOUNT,
9438 - acr.CANCELLED_FUNDING_COUNT CANCELLED_FUNDING_COUNT,
9439 - acr.FUNDING_ADJUSTMENT_AMOUNT FUNDING_ADJUSTMENT_AMOUNT,
9440 - acr.FUNDING_ADJUSTMENT_COUNT FUNDING_ADJUSTMENT_COUNT,
9441 - acr.REVENUE_WRITEOFF REVENUE_WRITEOFF,
9442 - acr.AR_INVOICE_AMOUNT AR_INVOICE_AMOUNT,
9443 - acr.AR_INVOICE_COUNT AR_INVOICE_COUNT,
9444 - acr.AR_CASH_APPLIED_AMOUNT AR_CASH_APPLIED_AMOUNT,
9445 - acr.AR_INVOICE_WRITE_OFF_AMOUNT AR_INVOICE_WRITE_OFF_AMOUNT,
9446 - acr.AR_INVOICE_WRITEOFF_COUNT AR_INVOICE_WRITEOFF_COUNT,
9447 - acr.AR_CREDIT_MEMO_AMOUNT AR_CREDIT_MEMO_AMOUNT,
9448 - acr.AR_CREDIT_MEMO_COUNT AR_CREDIT_MEMO_COUNT,
9449 - acr.UNBILLED_RECEIVABLES UNBILLED_RECEIVABLES,
9450 - acr.UNEARNED_REVENUE UNEARNED_REVENUE,
9451 - acr.AR_UNAPPR_INVOICE_AMOUNT AR_UNAPPR_INVOICE_AMOUNT,
9452 - acr.AR_UNAPPR_INVOICE_COUNT AR_UNAPPR_INVOICE_COUNT,
9453 - acr.AR_APPR_INVOICE_AMOUNT AR_APPR_INVOICE_AMOUNT,
9454 - acr.AR_APPR_INVOICE_COUNT AR_APPR_INVOICE_COUNT,
9455 - acr.AR_AMOUNT_DUE AR_AMOUNT_DUE,
9456 - acr.AR_COUNT_DUE AR_COUNT_DUE,
9457 - acr.AR_AMOUNT_OVERDUE AR_AMOUNT_OVERDUE,
9458 - acr.AR_COUNT_OVERDUE AR_COUNT_OVERDUE,
9459 - acr.CUSTOM1 CUSTOM1,
9460 - acr.CUSTOM2 CUSTOM2,
9461 - acr.CUSTOM3 CUSTOM3,
9462 - acr.CUSTOM4 CUSTOM4,
9463 - acr.CUSTOM5 CUSTOM5,
9464 - acr.CUSTOM6 CUSTOM6,
9465 - acr.CUSTOM7 CUSTOM7,
9466 - acr.CUSTOM8 CUSTOM8,
9467 - acr.CUSTOM9 CUSTOM9,
9468 - acr.CUSTOM10 CUSTOM10,
9469 - acr.CUSTOM11 CUSTOM11,
9470 - acr.CUSTOM12 CUSTOM12,
9471 - acr.CUSTOM13 CUSTOM13,
9472 - acr.CUSTOM14 CUSTOM14,
9473 - acr.CUSTOM15 CUSTOM15
9474 from
9475 PJI_PJP_PROJ_BATCH_MAP map,
9476 PJI_AC_XBS_ACCUM_F acr
9477 where
9478 l_extraction_type = 'PARTIAL' and
9479 map.WORKER_ID = p_worker_id and
9480 acr.PROJECT_ID = map.PROJECT_ID and
9481 acr.PERIOD_TYPE_ID = 32 and
9482 acr.WBS_ROLLUP_FLAG = 'N' and
9483 acr.PRG_ROLLUP_FLAG = 'N' and
9484 decode(bitand(l_refresh_code,1),1,'Y','N') ='Y' and -- Bug#5099574
9485 l_plan_type_id is null
9486 )
9487 group by
9488 WORKER_ID,
9489 PROJECT_ID,
9490 PROJECT_ORG_ID,
9491 PROJECT_ORGANIZATION_ID,
9492 PROJECT_ELEMENT_ID,
9493 TIME_ID,
9494 PERIOD_TYPE_ID,
9495 CALENDAR_TYPE,
9496 WBS_ROLLUP_FLAG,
9497 PRG_ROLLUP_FLAG,
9498 CURR_RECORD_TYPE_ID,
9499 CURRENCY_CODE
9500 having not
9501 (nvl(sum(REVENUE), 0) = 0 and
9502 nvl(sum(INITIAL_FUNDING_AMOUNT), 0) = 0 and
9503 nvl(sum(INITIAL_FUNDING_COUNT), 0) = 0 and
9504 nvl(sum(ADDITIONAL_FUNDING_AMOUNT), 0) = 0 and
9505 nvl(sum(ADDITIONAL_FUNDING_COUNT), 0) = 0 and
9506 nvl(sum(CANCELLED_FUNDING_AMOUNT), 0) = 0 and
9507 nvl(sum(CANCELLED_FUNDING_COUNT), 0) = 0 and
9508 nvl(sum(FUNDING_ADJUSTMENT_AMOUNT), 0) = 0 and
9509 nvl(sum(FUNDING_ADJUSTMENT_COUNT), 0) = 0 and
9510 nvl(sum(REVENUE_WRITEOFF), 0) = 0 and
9511 nvl(sum(AR_INVOICE_AMOUNT), 0) = 0 and
9512 nvl(sum(AR_INVOICE_COUNT), 0) = 0 and
9513 nvl(sum(AR_CASH_APPLIED_AMOUNT), 0) = 0 and
9514 nvl(sum(AR_INVOICE_WRITE_OFF_AMOUNT), 0) = 0 and
9515 nvl(sum(AR_INVOICE_WRITEOFF_COUNT), 0) = 0 and
9516 nvl(sum(AR_CREDIT_MEMO_AMOUNT), 0) = 0 and
9517 nvl(sum(AR_CREDIT_MEMO_COUNT), 0) = 0 and
9518 nvl(sum(UNBILLED_RECEIVABLES), 0) = 0 and
9519 nvl(sum(UNEARNED_REVENUE), 0) = 0 and
9520 nvl(sum(AR_UNAPPR_INVOICE_AMOUNT), 0) = 0 and
9521 nvl(sum(AR_UNAPPR_INVOICE_COUNT), 0) = 0 and
9522 nvl(sum(AR_APPR_INVOICE_AMOUNT), 0) = 0 and
9523 nvl(sum(AR_APPR_INVOICE_COUNT), 0) = 0 and
9524 nvl(sum(AR_AMOUNT_DUE), 0) = 0 and
9525 nvl(sum(AR_COUNT_DUE), 0) = 0 and
9526 nvl(sum(AR_AMOUNT_OVERDUE), 0) = 0 and
9527 nvl(sum(AR_COUNT_OVERDUE), 0) = 0 and
9528 nvl(sum(CUSTOM1), 0) = 0 and
9529 nvl(sum(CUSTOM2), 0) = 0 and
9530 nvl(sum(CUSTOM3), 0) = 0 and
9531 nvl(sum(CUSTOM4), 0) = 0 and
9532 nvl(sum(CUSTOM5), 0) = 0 and
9533 nvl(sum(CUSTOM6), 0) = 0 and
9534 nvl(sum(CUSTOM7), 0) = 0 and
9535 nvl(sum(CUSTOM8), 0) = 0 and
9536 nvl(sum(CUSTOM9), 0) = 0 and
9537 nvl(sum(CUSTOM10), 0) = 0 and
9538 nvl(sum(CUSTOM11), 0) = 0 and
9539 nvl(sum(CUSTOM12), 0) = 0 and
9540 nvl(sum(CUSTOM13), 0) = 0 and
9541 nvl(sum(CUSTOM14), 0) = 0 and
9542 nvl(sum(CUSTOM15), 0) = 0);
9543
9544 else
9545 insert into PJI_AC_AGGR_PJP1 pjp1_i
9546 (
9547 WORKER_ID,
9548 RECORD_TYPE,
9549 PRG_LEVEL,
9550 PROJECT_ID,
9551 PROJECT_ORG_ID,
9552 PROJECT_ORGANIZATION_ID,
9553 PROJECT_ELEMENT_ID,
9554 TIME_ID,
9555 PERIOD_TYPE_ID,
9556 CALENDAR_TYPE,
9557 WBS_ROLLUP_FLAG,
9558 PRG_ROLLUP_FLAG,
9559 CURR_RECORD_TYPE_ID,
9560 CURRENCY_CODE,
9561 REVENUE,
9562 INITIAL_FUNDING_AMOUNT,
9563 INITIAL_FUNDING_COUNT,
9564 ADDITIONAL_FUNDING_AMOUNT,
9565 ADDITIONAL_FUNDING_COUNT,
9566 CANCELLED_FUNDING_AMOUNT,
9567 CANCELLED_FUNDING_COUNT,
9568 FUNDING_ADJUSTMENT_AMOUNT,
9569 FUNDING_ADJUSTMENT_COUNT,
9570 REVENUE_WRITEOFF,
9571 AR_INVOICE_AMOUNT,
9572 AR_INVOICE_COUNT,
9573 AR_CASH_APPLIED_AMOUNT,
9574 AR_INVOICE_WRITE_OFF_AMOUNT,
9575 AR_INVOICE_WRITEOFF_COUNT,
9576 AR_CREDIT_MEMO_AMOUNT,
9577 AR_CREDIT_MEMO_COUNT,
9578 UNBILLED_RECEIVABLES,
9579 UNEARNED_REVENUE,
9580 AR_UNAPPR_INVOICE_AMOUNT,
9581 AR_UNAPPR_INVOICE_COUNT,
9582 AR_APPR_INVOICE_AMOUNT,
9583 AR_APPR_INVOICE_COUNT,
9584 AR_AMOUNT_DUE,
9585 AR_COUNT_DUE,
9586 AR_AMOUNT_OVERDUE,
9587 AR_COUNT_OVERDUE,
9588 CUSTOM1,
9589 CUSTOM2,
9590 CUSTOM3,
9591 CUSTOM4,
9592 CUSTOM5,
9593 CUSTOM6,
9594 CUSTOM7,
9595 CUSTOM8,
9596 CUSTOM9,
9597 CUSTOM10,
9598 CUSTOM11,
9599 CUSTOM12,
9600 CUSTOM13,
9601 CUSTOM14,
9602 CUSTOM15
9603 )
9604 select
9605 WORKER_ID,
9606 null RECORD_TYPE,
9607 0 PRG_LEVEL,
9608 PROJECT_ID,
9609 PROJECT_ORG_ID,
9610 PROJECT_ORGANIZATION_ID,
9611 PROJECT_ELEMENT_ID,
9612 TIME_ID,
9613 PERIOD_TYPE_ID,
9614 CALENDAR_TYPE,
9615 WBS_ROLLUP_FLAG,
9616 PRG_ROLLUP_FLAG,
9617 CURR_RECORD_TYPE_ID,
9618 CURRENCY_CODE,
9619 sum(REVENUE) REVENUE,
9620 sum(INITIAL_FUNDING_AMOUNT) INITIAL_FUNDING_AMOUNT,
9621 sum(INITIAL_FUNDING_COUNT) INITIAL_FUNDING_COUNT,
9622 sum(ADDITIONAL_FUNDING_AMOUNT) ADDITIONAL_FUNDING_AMOUNT,
9623 sum(ADDITIONAL_FUNDING_COUNT) ADDITIONAL_FUNDING_COUNT,
9624 sum(CANCELLED_FUNDING_AMOUNT) CANCELLED_FUNDING_AMOUNT,
9625 sum(CANCELLED_FUNDING_COUNT) CANCELLED_FUNDING_COUNT,
9626 sum(FUNDING_ADJUSTMENT_AMOUNT) FUNDING_ADJUSTMENT_AMOUNT,
9627 sum(FUNDING_ADJUSTMENT_COUNT) FUNDING_ADJUSTMENT_COUNT,
9628 sum(REVENUE_WRITEOFF) REVENUE_WRITEOFF,
9629 sum(AR_INVOICE_AMOUNT) AR_INVOICE_AMOUNT,
9630 sum(AR_INVOICE_COUNT) AR_INVOICE_COUNT,
9631 sum(AR_CASH_APPLIED_AMOUNT) AR_CASH_APPLIED_AMOUNT,
9632 sum(AR_INVOICE_WRITE_OFF_AMOUNT) AR_INVOICE_WRITE_OFF_AMOUNT,
9633 sum(AR_INVOICE_WRITEOFF_COUNT) AR_INVOICE_WRITEOFF_COUNT,
9634 sum(AR_CREDIT_MEMO_AMOUNT) AR_CREDIT_MEMO_AMOUNT,
9635 sum(AR_CREDIT_MEMO_COUNT) AR_CREDIT_MEMO_COUNT,
9636 sum(UNBILLED_RECEIVABLES) UNBILLED_RECEIVABLES,
9637 sum(UNEARNED_REVENUE) UNEARNED_REVENUE,
9638 sum(AR_UNAPPR_INVOICE_AMOUNT) AR_UNAPPR_INVOICE_AMOUNT,
9639 sum(AR_UNAPPR_INVOICE_COUNT) AR_UNAPPR_INVOICE_COUNT,
9640 sum(AR_APPR_INVOICE_AMOUNT) AR_APPR_INVOICE_AMOUNT,
9641 sum(AR_APPR_INVOICE_COUNT) AR_APPR_INVOICE_COUNT,
9642 sum(AR_AMOUNT_DUE) AR_AMOUNT_DUE,
9643 sum(AR_COUNT_DUE) AR_COUNT_DUE,
9644 sum(AR_AMOUNT_OVERDUE) AR_AMOUNT_OVERDUE,
9645 sum(AR_COUNT_OVERDUE) AR_COUNT_OVERDUE,
9646 sum(CUSTOM1) CUSTOM1,
9647 sum(CUSTOM2) CUSTOM2,
9648 sum(CUSTOM3) CUSTOM3,
9649 sum(CUSTOM4) CUSTOM4,
9650 sum(CUSTOM5) CUSTOM5,
9651 sum(CUSTOM6) CUSTOM6,
9652 sum(CUSTOM7) CUSTOM7,
9653 sum(CUSTOM8) CUSTOM8,
9654 sum(CUSTOM9) CUSTOM9,
9655 sum(CUSTOM10) CUSTOM10,
9656 sum(CUSTOM11) CUSTOM11,
9657 sum(CUSTOM12) CUSTOM12,
9658 sum(CUSTOM13) CUSTOM13,
9659 sum(CUSTOM14) CUSTOM14,
9660 sum(CUSTOM15) CUSTOM15
9661 from
9662 (
9663 select
9664 WORKER_ID,
9665 PROJECT_ID,
9666 PROJECT_ORG_ID,
9667 PROJECT_ORGANIZATION_ID,
9668 PROJECT_ELEMENT_ID,
9669 TIME_ID,
9670 PERIOD_TYPE_ID,
9671 CALENDAR_TYPE,
9672 WBS_ROLLUP_FLAG,
9673 PRG_ROLLUP_FLAG,
9674 CURR_RECORD_TYPE_ID,
9675 CURRENCY_CODE,
9676 REVENUE,
9677 INITIAL_FUNDING_AMOUNT,
9678 INITIAL_FUNDING_COUNT,
9679 ADDITIONAL_FUNDING_AMOUNT,
9680 ADDITIONAL_FUNDING_COUNT,
9681 CANCELLED_FUNDING_AMOUNT,
9682 CANCELLED_FUNDING_COUNT,
9683 FUNDING_ADJUSTMENT_AMOUNT,
9684 FUNDING_ADJUSTMENT_COUNT,
9685 REVENUE_WRITEOFF,
9686 AR_INVOICE_AMOUNT,
9687 AR_INVOICE_COUNT,
9688 AR_CASH_APPLIED_AMOUNT,
9689 AR_INVOICE_WRITE_OFF_AMOUNT,
9690 AR_INVOICE_WRITEOFF_COUNT,
9691 AR_CREDIT_MEMO_AMOUNT,
9692 AR_CREDIT_MEMO_COUNT,
9693 UNBILLED_RECEIVABLES,
9694 UNEARNED_REVENUE,
9695 AR_UNAPPR_INVOICE_AMOUNT,
9696 AR_UNAPPR_INVOICE_COUNT,
9697 AR_APPR_INVOICE_AMOUNT,
9698 AR_APPR_INVOICE_COUNT,
9699 AR_AMOUNT_DUE,
9700 AR_COUNT_DUE,
9701 AR_AMOUNT_OVERDUE,
9702 AR_COUNT_OVERDUE,
9703 to_number(null) CUSTOM1,
9704 to_number(null) CUSTOM2,
9705 to_number(null) CUSTOM3,
9706 to_number(null) CUSTOM4,
9707 to_number(null) CUSTOM5,
9708 to_number(null) CUSTOM6,
9709 to_number(null) CUSTOM7,
9710 to_number(null) CUSTOM8,
9711 to_number(null) CUSTOM9,
9712 to_number(null) CUSTOM10,
9713 to_number(null) CUSTOM11,
9714 to_number(null) CUSTOM12,
9715 to_number(null) CUSTOM13,
9716 to_number(null) CUSTOM14,
9717 to_number(null) CUSTOM15
9718 from
9719 PJI_AC_AGGR_PJP0
9720 where
9721 WORKER_ID = p_worker_id
9722 union all
9723 select
9724 WORKER_ID,
9725 PROJECT_ID,
9726 PROJECT_ORG_ID,
9727 PROJECT_ORGANIZATION_ID,
9728 PROJECT_ELEMENT_ID,
9729 TIME_ID,
9730 PERIOD_TYPE_ID,
9731 CALENDAR_TYPE,
9732 WBS_ROLLUP_FLAG,
9733 PRG_ROLLUP_FLAG,
9734 CURR_RECORD_TYPE_ID,
9735 CURRENCY_CODE,
9736 to_number(null) REVENUE,
9737 to_number(null) INITIAL_FUNDING_AMOUNT,
9738 to_number(null) INITIAL_FUNDING_COUNT,
9739 to_number(null) ADDITIONAL_FUNDING_AMOUNT,
9740 to_number(null) ADDITIONAL_FUNDING_COUNT,
9741 to_number(null) CANCELLED_FUNDING_AMOUNT,
9742 to_number(null) CANCELLED_FUNDING_COUNT,
9743 to_number(null) FUNDING_ADJUSTMENT_AMOUNT,
9744 to_number(null) FUNDING_ADJUSTMENT_COUNT,
9745 to_number(null) REVENUE_WRITEOFF,
9746 to_number(null) AR_INVOICE_AMOUNT,
9747 to_number(null) AR_INVOICE_COUNT,
9748 to_number(null) AR_CASH_APPLIED_AMOUNT,
9749 to_number(null) AR_INVOICE_WRITE_OFF_AMOUNT,
9750 to_number(null) AR_INVOICE_WRITEOFF_COUNT,
9751 to_number(null) AR_CREDIT_MEMO_AMOUNT,
9752 to_number(null) AR_CREDIT_MEMO_COUNT,
9753 to_number(null) UNBILLED_RECEIVABLES,
9754 to_number(null) UNEARNED_REVENUE,
9755 to_number(null) AR_UNAPPR_INVOICE_AMOUNT,
9756 to_number(null) AR_UNAPPR_INVOICE_COUNT,
9757 to_number(null) AR_APPR_INVOICE_AMOUNT,
9758 to_number(null) AR_APPR_INVOICE_COUNT,
9759 to_number(null) AR_AMOUNT_DUE,
9760 to_number(null) AR_COUNT_DUE,
9761 to_number(null) AR_AMOUNT_OVERDUE,
9762 to_number(null) AR_COUNT_OVERDUE,
9763 CUSTOM1,
9764 CUSTOM2,
9765 CUSTOM3,
9766 CUSTOM4,
9767 CUSTOM5,
9768 CUSTOM6,
9769 CUSTOM7,
9770 CUSTOM8,
9771 CUSTOM9,
9772 CUSTOM10,
9773 CUSTOM11,
9774 CUSTOM12,
9775 CUSTOM13,
9776 CUSTOM14,
9777 CUSTOM15
9778 from
9779 PJI_AC_CUST_PJP0
9780 where
9781 WORKER_ID = p_worker_id
9782 union all -- activity and snapshot reversals - PART 1 - ENT dates
9783 -- Select old ITD amounts for snapshots with
9784 -- reverse sign from base level fact
9785 select /*+ ordered use_nl(acr map) index(cal PJI_TIME_RPT_STRUCT_N1) index(acr PJI_AC_XBS_ACCUM_F_N1) index(map PJI_PJP_PROJ_BATCH_MAP_N1) */ -- Modified for bug 15996434
9786 distinct -- Bug 6689297
9787 p_worker_id WORKER_ID,
9788 acr.PROJECT_ID,
9789 acr.PROJECT_ORG_ID,
9790 acr.PROJECT_ORGANIZATION_ID,
9791 acr.PROJECT_ELEMENT_ID,
9792 decode(invert.INVERT_ID,
9793 'ACTIVITY', acr.TIME_ID,
9794 'SNAPSHOT', ent.ENT_PERIOD_ID) TIME_ID,
9795 32 PERIOD_TYPE_ID,
9796 'E' CALENDAR_TYPE,
9797 acr.WBS_ROLLUP_FLAG,
9798 acr.PRG_ROLLUP_FLAG,
9799 acr.CURR_RECORD_TYPE_ID,
9800 acr.CURRENCY_CODE,
9801 to_number(null) REVENUE,
9802 to_number(null) INITIAL_FUNDING_AMOUNT,
9803 to_number(null) INITIAL_FUNDING_COUNT,
9804 to_number(null) ADDITIONAL_FUNDING_AMOUNT,
9805 to_number(null) ADDITIONAL_FUNDING_COUNT,
9806 to_number(null) CANCELLED_FUNDING_AMOUNT,
9807 to_number(null) CANCELLED_FUNDING_COUNT,
9808 to_number(null) FUNDING_ADJUSTMENT_AMOUNT,
9809 to_number(null) FUNDING_ADJUSTMENT_COUNT,
9810 to_number(null) REVENUE_WRITEOFF,
9811 to_number(null) AR_INVOICE_AMOUNT, -- Bug 6689297
9812 to_number(null) AR_INVOICE_COUNT, -- Bug 6689297
9813 /* decode(invert.INVERT_ID,
9814 'ACTIVITY', - acr.AR_INVOICE_AMOUNT,
9815 'SNAPSHOT', to_number(null)) AR_INVOICE_AMOUNT,
9816 decode(invert.INVERT_ID,
9817 'ACTIVITY', decode(ent.ENT_PERIOD_ID,
9818 acr.TIME_ID, to_number(null),
9819 - acr.AR_INVOICE_COUNT),
9820 'SNAPSHOT', - acr.AR_INVOICE_COUNT) AR_INVOICE_COUNT, */
9821 decode(invert.INVERT_ID,
9822 'ACTIVITY', to_number(null),
9823 'SNAPSHOT', - acr.AR_CASH_APPLIED_AMOUNT)
9824 AR_CASH_APPLIED_AMOUNT,
9825 decode(invert.INVERT_ID,
9826 'ACTIVITY', - acr.AR_INVOICE_WRITE_OFF_AMOUNT,
9827 'SNAPSHOT', to_number(null)) AR_INVOICE_WRITE_OFF_AMOUNT,
9828 decode(invert.INVERT_ID,
9829 'ACTIVITY', decode(ent.ENT_PERIOD_ID,
9830 acr.TIME_ID, to_number(null),
9831 -acr.AR_INVOICE_WRITEOFF_COUNT),
9832 'SNAPSHOT', - acr.AR_INVOICE_WRITEOFF_COUNT)
9833 AR_INVOICE_WRITEOFF_COUNT,
9834 decode(invert.INVERT_ID,
9835 'ACTIVITY', - acr.AR_CREDIT_MEMO_AMOUNT,
9836 'SNAPSHOT', to_number(null)) AR_CREDIT_MEMO_AMOUNT,
9837 decode(invert.INVERT_ID,
9838 'ACTIVITY', decode(ent.ENT_PERIOD_ID,
9839 acr.TIME_ID, to_number(null),
9840 - acr.AR_CREDIT_MEMO_COUNT),
9841 'SNAPSHOT', - acr.AR_CREDIT_MEMO_COUNT)
9842 AR_CREDIT_MEMO_COUNT,
9843 to_number(null) UNBILLED_RECEIVABLES,
9844 to_number(null) UNEARNED_REVENUE,
9845 decode(invert.INVERT_ID,
9846 'ACTIVITY', to_number(null),
9847 'SNAPSHOT', - acr.AR_UNAPPR_INVOICE_AMOUNT)
9848 AR_UNAPPR_INVOICE_AMOUNT,
9849 decode(invert.INVERT_ID,
9850 'ACTIVITY', decode(ent.ENT_PERIOD_ID,
9851 acr.TIME_ID, to_number(null),
9852 - acr.AR_UNAPPR_INVOICE_COUNT),
9853 'SNAPSHOT', - acr.AR_UNAPPR_INVOICE_COUNT)
9854 AR_UNAPPR_INVOICE_COUNT,
9855 decode(invert.INVERT_ID,
9856 'ACTIVITY', to_number(null),
9857 'SNAPSHOT', - acr.AR_APPR_INVOICE_AMOUNT)
9858 AR_APPR_INVOICE_AMOUNT,
9859 decode(invert.INVERT_ID,
9860 'ACTIVITY', decode(ent.ENT_PERIOD_ID,
9861 acr.TIME_ID, to_number(null),
9862 - acr.AR_APPR_INVOICE_COUNT),
9863 'SNAPSHOT', - acr.AR_APPR_INVOICE_COUNT)
9864 AR_APPR_INVOICE_COUNT,
9865 decode(invert.INVERT_ID,
9866 'ACTIVITY', to_number(null),
9867 'SNAPSHOT', - acr.AR_AMOUNT_DUE) AR_AMOUNT_DUE,
9868 decode(invert.INVERT_ID,
9869 'ACTIVITY', to_number(null),
9870 'SNAPSHOT', - acr.AR_COUNT_DUE) AR_COUNT_DUE,
9871 decode(invert.INVERT_ID,
9872 'ACTIVITY', to_number(null),
9873 'SNAPSHOT', - acr.AR_AMOUNT_OVERDUE)AR_AMOUNT_OVERDUE,
9874 decode(invert.INVERT_ID,
9875 'ACTIVITY', to_number(null),
9876 'SNAPSHOT', - acr.AR_COUNT_OVERDUE) AR_COUNT_OVERDUE,
9877 to_number(null) CUSTOM1,
9878 to_number(null) CUSTOM2,
9879 to_number(null) CUSTOM3,
9880 to_number(null) CUSTOM4,
9881 to_number(null) CUSTOM5,
9882 to_number(null) CUSTOM6,
9883 to_number(null) CUSTOM7,
9884 to_number(null) CUSTOM8,
9885 to_number(null) CUSTOM9,
9886 to_number(null) CUSTOM10,
9887 to_number(null) CUSTOM11,
9888 to_number(null) CUSTOM12,
9889 to_number(null) CUSTOM13,
9890 to_number(null) CUSTOM14,
9891 to_number(null) CUSTOM15
9892 from
9893 PJI_AC_AGGR_PJP0 pjp0, -- Re-orderdered the tables for bug 15996434
9894 PJI_TIME_ENT_PERIOD_V ent,
9895 PJI_TIME_RPT_STRUCT cal,
9896 PJI_AC_XBS_ACCUM_F acr,
9897 PJI_PJP_PROJ_BATCH_MAP map,
9898 (
9899 select 'ACTIVITY' INVERT_ID from DUAL union all
9900 select 'SNAPSHOT' INVERT_ID from DUAL
9901 ) invert
9902 where
9903 l_extraction_type <> 'PARTIAL' and
9904 map.WORKER_ID = p_worker_id and
9905 acr.PROJECT_ID = map.PROJECT_ID and
9906 pjp0.WORKER_ID = p_worker_id and -- Bug 6689297
9907 acr.PROJECT_ID = pjp0.PROJECT_ID and -- Bug 6689297
9908 acr.WBS_ROLLUP_FLAG = 'N' and
9909 acr.PRG_ROLLUP_FLAG = 'N' and
9910 cal.REPORT_DATE = trunc(ent.START_DATE, 'J') and
9911 cal.CALENDAR_TYPE = acr.CALENDAR_TYPE and
9912 cal.PERIOD_TYPE_ID = acr.PERIOD_TYPE_ID and
9913 cal.TIME_ID = acr.TIME_ID and
9914 bitand(cal.RECORD_TYPE_ID, 1376) = cal.RECORD_TYPE_ID and
9915 sysdate between ent.START_DATE and ent.END_DATE and
9916 abs(nvl(acr.AR_CASH_APPLIED_AMOUNT,0)) +
9917 abs(nvl(acr.AR_UNAPPR_INVOICE_AMOUNT,0)) +
9918 abs(nvl(acr.AR_APPR_INVOICE_AMOUNT,0)) +
9919 abs(nvl(acr.AR_AMOUNT_DUE,0)) +
9920 abs(nvl(acr.AR_AMOUNT_OVERDUE,0)) +
9921 abs(nvl(acr.AR_UNAPPR_INVOICE_COUNT,0)) +
9922 abs(nvl(acr.AR_APPR_INVOICE_COUNT,0)) +
9923 abs(nvl(acr.AR_COUNT_DUE,0)) +
9924 abs(nvl(acr.AR_COUNT_OVERDUE,0)) > 0
9925 union all -- activity and snapshot reversals - PART 2 - GL dates
9926 -- Select old ITD amounts for snapshots with
9927 -- reverse sign from base level fact
9928 select /*+ ordered use_nl(acr map) full(info) index(cal PJI_TIME_CAL_RPT_STRUCT_N1) index(acr PJI_AC_XBS_ACCUM_F_N1) index(map PJI_PJP_PROJ_BATCH_MAP_N1) */ -- Modified for bug 15996434
9929 distinct -- Bug 6689297
9930 p_worker_id WORKER_ID,
9931 acr.PROJECT_ID,
9932 acr.PROJECT_ORG_ID,
9933 acr.PROJECT_ORGANIZATION_ID,
9934 acr.PROJECT_ELEMENT_ID,
9935 decode(invert.INVERT_ID,
9936 'ACTIVITY', acr.TIME_ID,
9937 'SNAPSHOT', gl_cal.CAL_PERIOD_ID) TIME_ID,
9938 32 PERIOD_TYPE_ID,
9939 'G' CALENDAR_TYPE,
9940 acr.WBS_ROLLUP_FLAG,
9941 acr.PRG_ROLLUP_FLAG,
9942 acr.CURR_RECORD_TYPE_ID,
9943 acr.CURRENCY_CODE,
9944 to_number(null) REVENUE,
9945 to_number(null) INITIAL_FUNDING_AMOUNT,
9946 to_number(null) INITIAL_FUNDING_COUNT,
9947 to_number(null) ADDITIONAL_FUNDING_AMOUNT,
9948 to_number(null) ADDITIONAL_FUNDING_COUNT,
9949 to_number(null) CANCELLED_FUNDING_AMOUNT,
9950 to_number(null) CANCELLED_FUNDING_COUNT,
9951 to_number(null) FUNDING_ADJUSTMENT_AMOUNT,
9952 to_number(null) FUNDING_ADJUSTMENT_COUNT,
9953 to_number(null) REVENUE_WRITEOFF,
9954 to_number(null) AR_INVOICE_AMOUNT, -- Bug 6689297
9955 to_number(null) AR_INVOICE_COUNT, -- Bug 6689297
9956 /* decode(invert.INVERT_ID,
9957 'ACTIVITY', - acr.AR_INVOICE_AMOUNT,
9958 'SNAPSHOT', to_number(null)) AR_INVOICE_AMOUNT,
9959 decode(invert.INVERT_ID,
9960 'ACTIVITY', decode(gl_cal.CAL_PERIOD_ID,
9961 acr.TIME_ID, to_number(null),
9962 - acr.AR_INVOICE_COUNT),
9963 'SNAPSHOT', - acr.AR_INVOICE_COUNT) AR_INVOICE_COUNT, */
9964 decode(invert.INVERT_ID,
9965 'ACTIVITY', to_number(null),
9966 'SNAPSHOT', - acr.AR_CASH_APPLIED_AMOUNT)
9967 AR_CASH_APPLIED_AMOUNT,
9968 decode(invert.INVERT_ID,
9969 'ACTIVITY', - acr.AR_INVOICE_WRITE_OFF_AMOUNT,
9970 'SNAPSHOT', to_number(null)) AR_INVOICE_WRITE_OFF_AMOUNT,
9971 decode(invert.INVERT_ID,
9972 'ACTIVITY', decode(gl_cal.CAL_PERIOD_ID,
9973 acr.TIME_ID, to_number(null),
9974 -acr.AR_INVOICE_WRITEOFF_COUNT),
9975 'SNAPSHOT', - acr.AR_INVOICE_WRITEOFF_COUNT)
9976 AR_INVOICE_WRITEOFF_COUNT,
9977 decode(invert.INVERT_ID,
9978 'ACTIVITY', - acr.AR_CREDIT_MEMO_AMOUNT,
9979 'SNAPSHOT', to_number(null)) AR_CREDIT_MEMO_AMOUNT,
9980 decode(invert.INVERT_ID,
9981 'ACTIVITY', decode(gl_cal.CAL_PERIOD_ID,
9982 acr.TIME_ID, to_number(null),
9983 - acr.AR_CREDIT_MEMO_COUNT),
9984 'SNAPSHOT', - acr.AR_CREDIT_MEMO_COUNT)
9985 AR_CREDIT_MEMO_COUNT,
9986 to_number(null) UNBILLED_RECEIVABLES,
9987 to_number(null) UNEARNED_REVENUE,
9988 decode(invert.INVERT_ID,
9989 'ACTIVITY', to_number(null),
9990 'SNAPSHOT', - acr.AR_UNAPPR_INVOICE_AMOUNT)
9991 AR_UNAPPR_INVOICE_AMOUNT,
9992 decode(invert.INVERT_ID,
9993 'ACTIVITY', decode(gl_cal.CAL_PERIOD_ID,
9994 acr.TIME_ID, to_number(null),
9995 - acr.AR_UNAPPR_INVOICE_COUNT),
9996 'SNAPSHOT', - acr.AR_UNAPPR_INVOICE_COUNT)
9997 AR_UNAPPR_INVOICE_COUNT,
9998 decode(invert.INVERT_ID,
9999 'ACTIVITY', to_number(null),
10000 'SNAPSHOT', - acr.AR_APPR_INVOICE_AMOUNT)
10001 AR_APPR_INVOICE_AMOUNT,
10002 decode(invert.INVERT_ID,
10003 'ACTIVITY', decode(gl_cal.CAL_PERIOD_ID,
10004 acr.TIME_ID, to_number(null),
10005 - acr.AR_APPR_INVOICE_COUNT),
10006 'SNAPSHOT', - acr.AR_APPR_INVOICE_COUNT)
10007 AR_APPR_INVOICE_COUNT,
10008 decode(invert.INVERT_ID,
10009 'ACTIVITY', to_number(null),
10010 'SNAPSHOT', - acr.AR_AMOUNT_DUE) AR_AMOUNT_DUE,
10011 decode(invert.INVERT_ID,
10012 'ACTIVITY', to_number(null),
10013 'SNAPSHOT', - acr.AR_COUNT_DUE) AR_COUNT_DUE,
10014 decode(invert.INVERT_ID,
10015 'ACTIVITY', to_number(null),
10016 'SNAPSHOT', - acr.AR_AMOUNT_OVERDUE)AR_AMOUNT_OVERDUE,
10017 decode(invert.INVERT_ID,
10018 'ACTIVITY', to_number(null),
10019 'SNAPSHOT', - acr.AR_COUNT_OVERDUE) AR_COUNT_OVERDUE,
10020 to_number(null) CUSTOM1,
10021 to_number(null) CUSTOM2,
10022 to_number(null) CUSTOM3,
10023 to_number(null) CUSTOM4,
10024 to_number(null) CUSTOM5,
10025 to_number(null) CUSTOM6,
10026 to_number(null) CUSTOM7,
10027 to_number(null) CUSTOM8,
10028 to_number(null) CUSTOM9,
10029 to_number(null) CUSTOM10,
10030 to_number(null) CUSTOM11,
10031 to_number(null) CUSTOM12,
10032 to_number(null) CUSTOM13,
10033 to_number(null) CUSTOM14,
10034 to_number(null) CUSTOM15
10035 from
10036 PJI_AC_AGGR_PJP0 pjp0, -- Re-orderdered the tables for bug 15996434
10037 PJI_AC_XBS_ACCUM_F acr,
10038 PJI_ORG_EXTR_INFO info,
10039 PJI_TIME_CAL_PERIOD_V gl_cal,
10040 PJI_TIME_CAL_RPT_STRUCT cal,
10041 PJI_PJP_PROJ_BATCH_MAP map,
10042 (
10043 select 'ACTIVITY' INVERT_ID from DUAL union all
10044 select 'SNAPSHOT' INVERT_ID from DUAL
10045 ) invert
10046 where
10047 l_extraction_type <> 'PARTIAL' and
10048 map.WORKER_ID = p_worker_id and
10049 acr.PROJECT_ID = map.PROJECT_ID and
10050 pjp0.WORKER_ID = p_worker_id and -- Bug 6689297
10051 acr.PROJECT_ID = pjp0.PROJECT_ID and -- Bug 6689297
10052 acr.WBS_ROLLUP_FLAG = 'N' and
10053 acr.PRG_ROLLUP_FLAG = 'N' and
10054 acr.PROJECT_ORG_ID = info.ORG_ID and /*5377133 */
10055 acr.CALENDAR_TYPE = 'G' and
10056 cal.REPORT_DATE = trunc(gl_cal.START_DATE, 'J') and
10057 cal.CALENDAR_ID = info.GL_CALENDAR_ID and
10058 cal.PERIOD_TYPE_ID = acr.PERIOD_TYPE_ID and
10059 cal.TIME_ID = acr.TIME_ID and
10060 bitand(cal.RECORD_TYPE_ID, 1376) = cal.RECORD_TYPE_ID and
10061 gl_cal.CALENDAR_ID = info.GL_CALENDAR_ID and
10062 sysdate between gl_cal.START_DATE and gl_cal.END_DATE and
10063 abs(nvl(acr.AR_CASH_APPLIED_AMOUNT,0)) +
10064 abs(nvl(acr.AR_UNAPPR_INVOICE_AMOUNT,0)) +
10065 abs(nvl(acr.AR_APPR_INVOICE_AMOUNT,0)) +
10066 abs(nvl(acr.AR_AMOUNT_DUE,0)) +
10067 abs(nvl(acr.AR_AMOUNT_OVERDUE,0)) +
10068 abs(nvl(acr.AR_UNAPPR_INVOICE_COUNT,0)) +
10069 abs(nvl(acr.AR_APPR_INVOICE_COUNT,0)) +
10070 abs(nvl(acr.AR_COUNT_DUE,0)) +
10071 abs(nvl(acr.AR_COUNT_OVERDUE,0)) > 0
10072 union all -- activity and snapshot reversals - PART 3 - PA dates
10073 -- Select old ITD amounts for snapshots with
10074 -- reverse sign from base level fact
10075 select /*+ ordered use_nl(acr map) full(info) index(cal PJI_TIME_CAL_RPT_STRUCT_N1) index(acr PJI_AC_XBS_ACCUM_F_N1) index(map PJI_PJP_PROJ_BATCH_MAP_N1) */ -- Modified for bug 15996434
10076 distinct -- Bug 6689297
10077 p_worker_id WORKER_ID,
10078 acr.PROJECT_ID,
10079 acr.PROJECT_ORG_ID,
10080 acr.PROJECT_ORGANIZATION_ID,
10081 acr.PROJECT_ELEMENT_ID,
10082 decode(invert.INVERT_ID,
10083 'ACTIVITY', acr.TIME_ID,
10084 'SNAPSHOT', pa_cal.CAL_PERIOD_ID) TIME_ID,
10085 32 PERIOD_TYPE_ID,
10086 'P' CALENDAR_TYPE,
10087 acr.WBS_ROLLUP_FLAG,
10088 acr.PRG_ROLLUP_FLAG,
10089 acr.CURR_RECORD_TYPE_ID,
10090 acr.CURRENCY_CODE,
10091 to_number(null) REVENUE,
10092 to_number(null) INITIAL_FUNDING_AMOUNT,
10093 to_number(null) INITIAL_FUNDING_COUNT,
10094 to_number(null) ADDITIONAL_FUNDING_AMOUNT,
10095 to_number(null) ADDITIONAL_FUNDING_COUNT,
10096 to_number(null) CANCELLED_FUNDING_AMOUNT,
10097 to_number(null) CANCELLED_FUNDING_COUNT,
10098 to_number(null) FUNDING_ADJUSTMENT_AMOUNT,
10099 to_number(null) FUNDING_ADJUSTMENT_COUNT,
10100 to_number(null) REVENUE_WRITEOFF,
10101 to_number(null) AR_INVOICE_AMOUNT, -- Bug 6689297
10102 to_number(null) AR_INVOICE_COUNT, -- Bug 6689297
10103 /* decode(invert.INVERT_ID,
10104 'ACTIVITY', - acr.AR_INVOICE_AMOUNT,
10105 'SNAPSHOT', to_number(null)) AR_INVOICE_AMOUNT,
10106 decode(invert.INVERT_ID,
10107 'ACTIVITY', decode(pa_cal.CAL_PERIOD_ID,
10108 acr.TIME_ID, to_number(null),
10109 - acr.AR_INVOICE_COUNT),
10110 'SNAPSHOT', - acr.AR_INVOICE_COUNT) AR_INVOICE_COUNT, */
10111 decode(invert.INVERT_ID,
10112 'ACTIVITY', to_number(null),
10113 'SNAPSHOT', - acr.AR_CASH_APPLIED_AMOUNT)
10114 AR_CASH_APPLIED_AMOUNT,
10115 decode(invert.INVERT_ID,
10116 'ACTIVITY', - acr.AR_INVOICE_WRITE_OFF_AMOUNT,
10117 'SNAPSHOT', to_number(null)) AR_INVOICE_WRITE_OFF_AMOUNT,
10118 decode(invert.INVERT_ID,
10119 'ACTIVITY', decode(pa_cal.CAL_PERIOD_ID,
10120 acr.TIME_ID, to_number(null),
10121 -acr.AR_INVOICE_WRITEOFF_COUNT),
10122 'SNAPSHOT', - acr.AR_INVOICE_WRITEOFF_COUNT)
10123 AR_INVOICE_WRITEOFF_COUNT,
10124 decode(invert.INVERT_ID,
10125 'ACTIVITY', - acr.AR_CREDIT_MEMO_AMOUNT,
10126 'SNAPSHOT', to_number(null)) AR_CREDIT_MEMO_AMOUNT,
10127 decode(invert.INVERT_ID,
10128 'ACTIVITY', decode(pa_cal.CAL_PERIOD_ID,
10129 acr.TIME_ID, to_number(null),
10130 - acr.AR_CREDIT_MEMO_COUNT),
10131 'SNAPSHOT', - acr.AR_CREDIT_MEMO_COUNT)
10132 AR_CREDIT_MEMO_COUNT,
10133 to_number(null) UNBILLED_RECEIVABLES,
10134 to_number(null) UNEARNED_REVENUE,
10135 decode(invert.INVERT_ID,
10136 'ACTIVITY', to_number(null),
10137 'SNAPSHOT', - acr.AR_UNAPPR_INVOICE_AMOUNT)
10138 AR_UNAPPR_INVOICE_AMOUNT,
10139 decode(invert.INVERT_ID,
10140 'ACTIVITY', decode(pa_cal.CAL_PERIOD_ID,
10141 acr.TIME_ID, to_number(null),
10142 - acr.AR_UNAPPR_INVOICE_COUNT),
10143 'SNAPSHOT', - acr.AR_UNAPPR_INVOICE_COUNT)
10144 AR_UNAPPR_INVOICE_COUNT,
10145 decode(invert.INVERT_ID,
10146 'ACTIVITY', to_number(null),
10147 'SNAPSHOT', - acr.AR_APPR_INVOICE_AMOUNT)
10148 AR_APPR_INVOICE_AMOUNT,
10149 decode(invert.INVERT_ID,
10150 'ACTIVITY', decode(pa_cal.CAL_PERIOD_ID,
10151 acr.TIME_ID, to_number(null),
10152 - acr.AR_APPR_INVOICE_COUNT),
10153 'SNAPSHOT', - acr.AR_APPR_INVOICE_COUNT)
10154 AR_APPR_INVOICE_COUNT,
10155 decode(invert.INVERT_ID,
10156 'ACTIVITY', to_number(null),
10157 'SNAPSHOT', - acr.AR_AMOUNT_DUE) AR_AMOUNT_DUE,
10158 decode(invert.INVERT_ID,
10159 'ACTIVITY', to_number(null),
10160 'SNAPSHOT', - acr.AR_COUNT_DUE) AR_COUNT_DUE,
10161 decode(invert.INVERT_ID,
10162 'ACTIVITY', to_number(null),
10163 'SNAPSHOT', - acr.AR_AMOUNT_OVERDUE)AR_AMOUNT_OVERDUE,
10164 decode(invert.INVERT_ID,
10165 'ACTIVITY', to_number(null),
10166 'SNAPSHOT', - acr.AR_COUNT_OVERDUE) AR_COUNT_OVERDUE,
10167 to_number(null) CUSTOM1,
10168 to_number(null) CUSTOM2,
10169 to_number(null) CUSTOM3,
10170 to_number(null) CUSTOM4,
10171 to_number(null) CUSTOM5,
10172 to_number(null) CUSTOM6,
10173 to_number(null) CUSTOM7,
10174 to_number(null) CUSTOM8,
10175 to_number(null) CUSTOM9,
10176 to_number(null) CUSTOM10,
10177 to_number(null) CUSTOM11,
10178 to_number(null) CUSTOM12,
10179 to_number(null) CUSTOM13,
10180 to_number(null) CUSTOM14,
10181 to_number(null) CUSTOM15
10182 from
10183 PJI_AC_AGGR_PJP0 pjp0, -- Re-orderdered the tables for bug 15996434
10184 PJI_AC_XBS_ACCUM_F acr,
10185 PJI_ORG_EXTR_INFO info,
10186 PJI_TIME_CAL_PERIOD_V pa_cal,
10187 PJI_TIME_CAL_RPT_STRUCT cal,
10188 PJI_PJP_PROJ_BATCH_MAP map,
10189 (
10190 select 'ACTIVITY' INVERT_ID from DUAL union all
10191 select 'SNAPSHOT' INVERT_ID from DUAL
10192 ) invert
10193 where
10194 l_extraction_type <> 'PARTIAL' and
10195 map.WORKER_ID = p_worker_id and
10196 acr.PROJECT_ID = map.PROJECT_ID and
10197 pjp0.WORKER_ID = p_worker_id and -- Bug 6689297
10198 acr.PROJECT_ID = pjp0.PROJECT_ID and -- Bug 6689297
10199 acr.WBS_ROLLUP_FLAG = 'N' and
10200 acr.PRG_ROLLUP_FLAG = 'N' and
10201 acr.PROJECT_ORG_ID = info.ORG_ID and /*5377133 */
10202 acr.CALENDAR_TYPE = 'P' and
10203 cal.REPORT_DATE = trunc(pa_cal.START_DATE, 'J') and
10204 cal.CALENDAR_ID = info.PA_CALENDAR_ID and
10205 cal.PERIOD_TYPE_ID = acr.PERIOD_TYPE_ID and
10206 cal.TIME_ID = acr.TIME_ID and
10207 bitand(cal.RECORD_TYPE_ID, 1376) = cal.RECORD_TYPE_ID and
10208 pa_cal.CALENDAR_ID = info.PA_CALENDAR_ID and
10209 sysdate between pa_cal.START_DATE and pa_cal.END_DATE and
10210 abs(nvl(acr.AR_CASH_APPLIED_AMOUNT,0)) +
10211 abs(nvl(acr.AR_UNAPPR_INVOICE_AMOUNT,0)) +
10212 abs(nvl(acr.AR_APPR_INVOICE_AMOUNT,0)) +
10213 abs(nvl(acr.AR_AMOUNT_DUE,0)) +
10214 abs(nvl(acr.AR_AMOUNT_OVERDUE,0)) +
10215 abs(nvl(acr.AR_UNAPPR_INVOICE_COUNT,0)) +
10216 abs(nvl(acr.AR_APPR_INVOICE_COUNT,0)) +
10217 abs(nvl(acr.AR_COUNT_DUE,0)) +
10218 abs(nvl(acr.AR_COUNT_OVERDUE,0)) > 0
10219 )
10220 group by
10221 WORKER_ID,
10222 PROJECT_ID,
10223 PROJECT_ORG_ID,
10224 PROJECT_ORGANIZATION_ID,
10225 PROJECT_ELEMENT_ID,
10226 TIME_ID,
10227 PERIOD_TYPE_ID,
10228 CALENDAR_TYPE,
10229 WBS_ROLLUP_FLAG,
10230 PRG_ROLLUP_FLAG,
10231 CURR_RECORD_TYPE_ID,
10232 CURRENCY_CODE
10233 having not
10234 (nvl(sum(REVENUE), 0) = 0 and
10235 nvl(sum(INITIAL_FUNDING_AMOUNT), 0) = 0 and
10236 nvl(sum(INITIAL_FUNDING_COUNT), 0) = 0 and
10237 nvl(sum(ADDITIONAL_FUNDING_AMOUNT), 0) = 0 and
10238 nvl(sum(ADDITIONAL_FUNDING_COUNT), 0) = 0 and
10239 nvl(sum(CANCELLED_FUNDING_AMOUNT), 0) = 0 and
10240 nvl(sum(CANCELLED_FUNDING_COUNT), 0) = 0 and
10241 nvl(sum(FUNDING_ADJUSTMENT_AMOUNT), 0) = 0 and
10242 nvl(sum(FUNDING_ADJUSTMENT_COUNT), 0) = 0 and
10243 nvl(sum(REVENUE_WRITEOFF), 0) = 0 and
10244 nvl(sum(AR_INVOICE_AMOUNT), 0) = 0 and
10245 nvl(sum(AR_INVOICE_COUNT), 0) = 0 and
10246 nvl(sum(AR_CASH_APPLIED_AMOUNT), 0) = 0 and
10247 nvl(sum(AR_INVOICE_WRITE_OFF_AMOUNT), 0) = 0 and
10248 nvl(sum(AR_INVOICE_WRITEOFF_COUNT), 0) = 0 and
10249 nvl(sum(AR_CREDIT_MEMO_AMOUNT), 0) = 0 and
10250 nvl(sum(AR_CREDIT_MEMO_COUNT), 0) = 0 and
10251 nvl(sum(UNBILLED_RECEIVABLES), 0) = 0 and
10252 nvl(sum(UNEARNED_REVENUE), 0) = 0 and
10253 nvl(sum(AR_UNAPPR_INVOICE_AMOUNT), 0) = 0 and
10254 nvl(sum(AR_UNAPPR_INVOICE_COUNT), 0) = 0 and
10255 nvl(sum(AR_APPR_INVOICE_AMOUNT), 0) = 0 and
10256 nvl(sum(AR_APPR_INVOICE_COUNT), 0) = 0 and
10257 nvl(sum(AR_AMOUNT_DUE), 0) = 0 and
10258 nvl(sum(AR_COUNT_DUE), 0) = 0 and
10259 nvl(sum(AR_AMOUNT_OVERDUE), 0) = 0 and
10260 nvl(sum(AR_COUNT_OVERDUE), 0) = 0 and
10261 nvl(sum(CUSTOM1), 0) = 0 and
10262 nvl(sum(CUSTOM2), 0) = 0 and
10263 nvl(sum(CUSTOM3), 0) = 0 and
10264 nvl(sum(CUSTOM4), 0) = 0 and
10265 nvl(sum(CUSTOM5), 0) = 0 and
10266 nvl(sum(CUSTOM6), 0) = 0 and
10267 nvl(sum(CUSTOM7), 0) = 0 and
10268 nvl(sum(CUSTOM8), 0) = 0 and
10269 nvl(sum(CUSTOM9), 0) = 0 and
10270 nvl(sum(CUSTOM10), 0) = 0 and
10271 nvl(sum(CUSTOM11), 0) = 0 and
10272 nvl(sum(CUSTOM12), 0) = 0 and
10273 nvl(sum(CUSTOM13), 0) = 0 and
10274 nvl(sum(CUSTOM14), 0) = 0 and
10275 nvl(sum(CUSTOM15), 0) = 0);
10276 end if;
10277
10278 PJI_PROCESS_UTIL.REGISTER_STEP_COMPLETION(l_process, 'PJI_PJP_SUM_ROLLUP.AGGREGATE_AC_CUST_SLICES(p_worker_id);');
10279
10280 commit;
10281
10282 end AGGREGATE_AC_CUST_SLICES;
10283
10284
10285 -- -----------------------------------------------------
10286 -- procedure PULL_DANGLING_PLANS
10287 --
10288 -- History
10289 -- 19-MAR-2004 SVERMETT Created
10290 --
10291 -- Internal PJP Summarization API.
10292 --
10293 -- -----------------------------------------------------
10294 procedure PULL_DANGLING_PLANS (p_worker_id in number) is
10295
10296 l_process varchar2(30);
10297 l_extraction_type varchar2(30);
10298
10299 l_return_status varchar2(255);
10300 l_msg_count number;
10301 l_msg_data varchar2(2000);
10302
10303 begin
10304
10305 l_process := PJI_PJP_SUM_MAIN.g_process || to_char(p_worker_id);
10306
10307 if (not PJI_PROCESS_UTIL.NEED_TO_RUN_STEP(l_process, 'PJI_PJP_SUM_ROLLUP.PULL_DANGLING_PLANS(p_worker_id);')) then
10308 return;
10309 end if;
10310
10311 l_extraction_type := PJI_PROCESS_UTIL.GET_PROCESS_PARAMETER(l_process, 'EXTRACTION_TYPE');
10312
10313 IF (l_extraction_type = 'INCREMENTAL') THEN
10314 Pji_Fm_Plan_Maint.CREATE_SECONDARY_PVT;
10315 -- PJI_FM_PLAN_MAINT_PVT.PULL_DANGLING_PLANS; -- Removing redundant api nesting.
10316 END IF;
10317
10318 PJI_PROCESS_UTIL.REGISTER_STEP_COMPLETION(l_process, 'PJI_PJP_SUM_ROLLUP.PULL_DANGLING_PLANS(p_worker_id);');
10319
10320 commit;
10321
10322 end PULL_DANGLING_PLANS;
10323
10324
10325 -- -----------------------------------------------------
10326 -- procedure PULL_PLANS_FOR_PR
10327 --
10328 -- History
10329 -- 19-MAR-2004 SVERMETT Created
10330 --
10331 -- Internal PJP Summarization API.
10332 --
10333 -- -----------------------------------------------------
10334 procedure PULL_PLANS_FOR_PR (p_worker_id in number) is
10335
10336 l_process varchar2(30);
10337 l_extraction_type varchar2(30);
10338
10339 l_return_status varchar2(255);
10340 l_msg_code varchar2(255);
10341 l_msg_data varchar2(2000);
10342
10343 l_plan_type_id number;
10344
10345 begin
10346
10347 l_process := PJI_PJP_SUM_MAIN.g_process || to_char(p_worker_id);
10348
10349 if (not PJI_PROCESS_UTIL.NEED_TO_RUN_STEP(l_process, 'PJI_PJP_SUM_ROLLUP.PULL_PLANS_FOR_PR(p_worker_id);')) then
10350 return;
10351 end if;
10352
10353 l_extraction_type := PJI_PROCESS_UTIL.GET_PROCESS_PARAMETER(l_process, 'EXTRACTION_TYPE');
10354
10355 if (l_extraction_type = 'PARTIAL') then
10356
10357 l_plan_type_id := PJI_PROCESS_UTIL.GET_PROCESS_PARAMETER
10358 (l_process, 'PLAN_TYPE_ID');
10359
10360 if (l_plan_type_id = -1) then
10361 l_plan_type_id := null;
10362 end if;
10363
10364 PJI_FM_PLAN_MAINT.PULL_PLANS_FOR_PR(null,
10365 l_plan_type_id,
10366 'PLANTYPE',
10367 l_return_status,
10368 l_msg_code);
10369
10370 end if;
10371
10372 PJI_PROCESS_UTIL.REGISTER_STEP_COMPLETION(l_process, 'PJI_PJP_SUM_ROLLUP.PULL_PLANS_FOR_PR(p_worker_id);');
10373
10374 commit;
10375
10376 end PULL_PLANS_FOR_PR;
10377
10378
10379 -- -----------------------------------------------------
10380 -- procedure PULL_PLANS_FOR_RBS
10381 --
10382 -- History
10383 -- 19-MAR-2004 SVERMETT Created
10384 --
10385 -- Internal PJP Summarization API.
10386 --
10387 -- Called by RBS program
10388 --
10389 -- -----------------------------------------------------
10390 procedure PULL_PLANS_FOR_RBS (p_worker_id in number) is
10391
10392 l_process varchar2(30);
10393 l_extraction_type varchar2(30);
10394
10395 l_return_status varchar2(255);
10396 l_msg_code varchar2(255);
10397 l_msg_data varchar2(2000);
10398
10399 l_rbs_version_id number;
10400
10401 begin
10402
10403 l_process := PJI_PJP_SUM_MAIN.g_process || to_char(p_worker_id);
10404
10405 if (not PJI_PROCESS_UTIL.NEED_TO_RUN_STEP(l_process, 'PJI_PJP_SUM_ROLLUP.PULL_PLANS_FOR_RBS(p_worker_id);')) then
10406 return;
10407 end if;
10408
10409 l_extraction_type := PJI_PROCESS_UTIL.GET_PROCESS_PARAMETER(l_process, 'EXTRACTION_TYPE');
10410
10411 if (l_extraction_type = 'RBS') then
10412
10413 l_rbs_version_id := PJI_PROCESS_UTIL.GET_PROCESS_PARAMETER
10414 (l_process, 'RBS_VERSION_ID');
10415
10416 PJI_FM_PLAN_MAINT.PULL_PLANS_FOR_PR(l_rbs_version_id,
10417 null,
10418 'RBS',
10419 l_return_status,
10420 l_msg_code);
10421
10422 end if;
10423
10424 PJI_PROCESS_UTIL.REGISTER_STEP_COMPLETION(l_process, 'PJI_PJP_SUM_ROLLUP.PULL_PLANS_FOR_RBS(p_worker_id);');
10425
10426 commit;
10427
10428 end PULL_PLANS_FOR_RBS;
10429
10430
10431 -- -----------------------------------------------------
10432 -- procedure ROLLUP_FPR_RBS_TOP
10433 --
10434 -- History
10435 -- 19-MAR-2004 SVERMETT Created
10436 --
10437 -- Internal PJP Summarization API.
10438 --
10439 -- -----------------------------------------------------
10440 procedure ROLLUP_FPR_RBS_TOP (p_worker_id in number) is
10441
10442 l_process varchar2(30);
10443 l_extraction_type varchar2(30);
10444
10445 begin
10446
10447 l_process := PJI_PJP_SUM_MAIN.g_process || to_char(p_worker_id);
10448
10449 if (not PJI_PROCESS_UTIL.NEED_TO_RUN_STEP(l_process, 'PJI_PJP_SUM_ROLLUP.ROLLUP_FPR_RBS_TOP(p_worker_id);')) then
10450 return;
10451 end if;
10452
10453 l_extraction_type := PJI_PROCESS_UTIL.GET_PROCESS_PARAMETER(l_process, 'EXTRACTION_TYPE');
10454
10455 insert /*+ parallel(pjp1_i) */ into PJI_FP_AGGR_PJP1 pjp1_i /* Added for bug 13030627 */
10456 (
10457 WORKER_ID,
10458 RECORD_TYPE,
10459 PRG_LEVEL,
10460 LINE_TYPE,
10461 PROJECT_ID,
10462 PROJECT_ORG_ID,
10463 PROJECT_ORGANIZATION_ID,
10464 PROJECT_ELEMENT_ID,
10465 TIME_ID,
10466 PERIOD_TYPE_ID,
10467 CALENDAR_TYPE,
10468 RBS_AGGR_LEVEL,
10469 WBS_ROLLUP_FLAG,
10470 PRG_ROLLUP_FLAG,
10471 CURR_RECORD_TYPE_ID,
10472 CURRENCY_CODE,
10473 RBS_ELEMENT_ID,
10474 RBS_VERSION_ID,
10475 PLAN_VERSION_ID,
10476 PLAN_TYPE_ID,
10477 PLAN_TYPE_CODE,
10478 RAW_COST,
10479 BRDN_COST,
10480 REVENUE,
10481 BILL_RAW_COST,
10482 BILL_BRDN_COST,
10483 BILL_LABOR_RAW_COST,
10484 BILL_LABOR_BRDN_COST,
10485 BILL_LABOR_HRS,
10486 EQUIPMENT_RAW_COST,
10487 EQUIPMENT_BRDN_COST,
10488 CAPITALIZABLE_RAW_COST,
10489 CAPITALIZABLE_BRDN_COST,
10490 LABOR_RAW_COST,
10491 LABOR_BRDN_COST,
10492 LABOR_HRS,
10493 LABOR_REVENUE,
10494 EQUIPMENT_HOURS,
10495 BILLABLE_EQUIPMENT_HOURS,
10496 SUP_INV_COMMITTED_COST,
10497 PO_COMMITTED_COST,
10498 PR_COMMITTED_COST,
10499 OTH_COMMITTED_COST,
10500 ACT_LABOR_HRS,
10501 ACT_EQUIP_HRS,
10502 ACT_LABOR_BRDN_COST,
10503 ACT_EQUIP_BRDN_COST,
10504 ACT_BRDN_COST,
10505 ACT_RAW_COST,
10506 ACT_REVENUE,
10507 ACT_LABOR_RAW_COST,
10508 ACT_EQUIP_RAW_COST,
10509 ETC_LABOR_HRS,
10510 ETC_EQUIP_HRS,
10511 ETC_LABOR_BRDN_COST,
10512 ETC_EQUIP_BRDN_COST,
10513 ETC_BRDN_COST,
10514 ETC_RAW_COST,
10515 ETC_LABOR_RAW_COST,
10516 ETC_EQUIP_RAW_COST,
10517 CUSTOM1,
10518 CUSTOM2,
10519 CUSTOM3,
10520 CUSTOM4,
10521 CUSTOM5,
10522 CUSTOM6,
10523 CUSTOM7,
10524 CUSTOM8,
10525 CUSTOM9,
10526 CUSTOM10,
10527 CUSTOM11,
10528 CUSTOM12,
10529 CUSTOM13,
10530 CUSTOM14,
10531 CUSTOM15
10532 )
10533 select
10534 p_worker_id WORKER_ID,
10535 null RECORD_TYPE,
10536 pjp1.PRG_LEVEL,
10537 pjp1.LINE_TYPE,
10538 pjp1.PROJECT_ID,
10539 pjp1.PROJECT_ORG_ID,
10540 pjp1.PROJECT_ORGANIZATION_ID,
10541 pjp1.PROJECT_ELEMENT_ID,
10542 pjp1.TIME_ID,
10543 pjp1.PERIOD_TYPE_ID,
10544 pjp1.CALENDAR_TYPE,
10545 pjp1.RBS_AGGR_LEVEL,
10546 pjp1.WBS_ROLLUP_FLAG,
10547 pjp1.PRG_ROLLUP_FLAG,
10548 pjp1.CURR_RECORD_TYPE_ID,
10549 pjp1.CURRENCY_CODE,
10550 pjp1.RBS_ELEMENT_ID,
10551 pjp1.RBS_VERSION_ID,
10552 pjp1.PLAN_VERSION_ID,
10553 pjp1.PLAN_TYPE_ID,
10554 pjp1.PLAN_TYPE_CODE,
10555 sum(pjp1.RAW_COST) RAW_COST,
10556 sum(pjp1.BRDN_COST) BRDN_COST,
10557 sum(pjp1.REVENUE) REVENUE,
10558 sum(pjp1.BILL_RAW_COST) BILL_RAW_COST,
10559 sum(pjp1.BILL_BRDN_COST) BILL_BRDN_COST,
10560 sum(pjp1.BILL_LABOR_RAW_COST) BILL_LABOR_RAW_COST,
10561 sum(pjp1.BILL_LABOR_BRDN_COST) BILL_LABOR_BRDN_COST,
10562 sum(pjp1.BILL_LABOR_HRS) BILL_LABOR_HRS,
10563 sum(pjp1.EQUIPMENT_RAW_COST) EQUIPMENT_RAW_COST,
10564 sum(pjp1.EQUIPMENT_BRDN_COST) EQUIPMENT_BRDN_COST,
10565 sum(pjp1.CAPITALIZABLE_RAW_COST) CAPITALIZABLE_RAW_COST,
10566 sum(pjp1.CAPITALIZABLE_BRDN_COST) CAPITALIZABLE_BRDN_COST,
10567 sum(pjp1.LABOR_RAW_COST) LABOR_RAW_COST,
10568 sum(pjp1.LABOR_BRDN_COST) LABOR_BRDN_COST,
10569 sum(pjp1.LABOR_HRS) LABOR_HRS,
10570 sum(pjp1.LABOR_REVENUE) LABOR_REVENUE,
10571 sum(pjp1.EQUIPMENT_HOURS) EQUIPMENT_HOURS,
10572 sum(pjp1.BILLABLE_EQUIPMENT_HOURS) BILLABLE_EQUIPMENT_HOURS,
10573 sum(pjp1.SUP_INV_COMMITTED_COST) SUP_INV_COMMITTED_COST,
10574 sum(pjp1.PO_COMMITTED_COST) PO_COMMITTED_COST,
10575 sum(pjp1.PR_COMMITTED_COST) PR_COMMITTED_COST,
10576 sum(pjp1.OTH_COMMITTED_COST) OTH_COMMITTED_COST,
10577 sum(pjp1.ACT_LABOR_HRS) ACT_LABOR_HRS,
10578 sum(pjp1.ACT_EQUIP_HRS) ACT_EQUIP_HRS,
10579 sum(pjp1.ACT_LABOR_BRDN_COST) ACT_LABOR_BRDN_COST,
10580 sum(pjp1.ACT_EQUIP_BRDN_COST) ACT_EQUIP_BRDN_COST,
10581 sum(pjp1.ACT_BRDN_COST) ACT_BRDN_COST,
10582 sum(pjp1.ACT_RAW_COST) ACT_RAW_COST,
10583 sum(pjp1.ACT_REVENUE) ACT_REVENUE,
10584 sum(pjp1.ACT_LABOR_RAW_COST) ACT_LABOR_RAW_COST,
10585 sum(pjp1.ACT_EQUIP_RAW_COST) ACT_EQUIP_RAW_COST,
10586 sum(pjp1.ETC_LABOR_HRS) ETC_LABOR_HRS,
10587 sum(pjp1.ETC_EQUIP_HRS) ETC_EQUIP_HRS,
10588 sum(pjp1.ETC_LABOR_BRDN_COST) ETC_LABOR_BRDN_COST,
10589 sum(pjp1.ETC_EQUIP_BRDN_COST) ETC_EQUIP_BRDN_COST,
10590 sum(pjp1.ETC_BRDN_COST) ETC_BRDN_COST,
10591 sum(pjp1.ETC_RAW_COST) ETC_RAW_COST,
10592 sum(pjp1.ETC_LABOR_RAW_COST) ETC_LABOR_RAW_COST,
10593 sum(pjp1.ETC_EQUIP_RAW_COST) ETC_EQUIP_RAW_COST,
10594 sum(pjp1.CUSTOM1) CUSTOM1,
10595 sum(pjp1.CUSTOM2) CUSTOM2,
10596 sum(pjp1.CUSTOM3) CUSTOM3,
10597 sum(pjp1.CUSTOM4) CUSTOM4,
10598 sum(pjp1.CUSTOM5) CUSTOM5,
10599 sum(pjp1.CUSTOM6) CUSTOM6,
10600 sum(pjp1.CUSTOM7) CUSTOM7,
10601 sum(pjp1.CUSTOM8) CUSTOM8,
10602 sum(pjp1.CUSTOM9) CUSTOM9,
10603 sum(pjp1.CUSTOM10) CUSTOM10,
10604 sum(pjp1.CUSTOM11) CUSTOM11,
10605 sum(pjp1.CUSTOM12) CUSTOM12,
10606 sum(pjp1.CUSTOM13) CUSTOM13,
10607 sum(pjp1.CUSTOM14) CUSTOM14,
10608 sum(pjp1.CUSTOM15) CUSTOM15
10609 from
10610 (
10611 select
10612 pjp1.PRG_LEVEL,
10613 pjp1.LINE_TYPE,
10614 pjp1.PROJECT_ID,
10615 pjp1.PROJECT_ORG_ID,
10616 pjp1.PROJECT_ORGANIZATION_ID,
10617 pjp1.PROJECT_ELEMENT_ID,
10618 pjp1.TIME_ID,
10619 pjp1.PERIOD_TYPE_ID,
10620 pjp1.CALENDAR_TYPE,
10621 'T' RBS_AGGR_LEVEL,
10622 pjp1.WBS_ROLLUP_FLAG,
10623 pjp1.PRG_ROLLUP_FLAG,
10624 pjp1.CURR_RECORD_TYPE_ID,
10625 pjp1.CURRENCY_CODE,
10626 pjp1.RBS_ELEMENT_ID,
10627 -1 RBS_VERSION_ID,
10628 pjp1.PLAN_VERSION_ID,
10629 pjp1.PLAN_TYPE_ID,
10630 pjp1.PLAN_TYPE_CODE,
10631 max(pjp1.RAW_COST) RAW_COST,
10632 max(pjp1.BRDN_COST) BRDN_COST,
10633 max(pjp1.REVENUE) REVENUE,
10634 max(pjp1.BILL_RAW_COST) BILL_RAW_COST,
10635 max(pjp1.BILL_BRDN_COST) BILL_BRDN_COST,
10636 max(pjp1.BILL_LABOR_RAW_COST) BILL_LABOR_RAW_COST,
10637 max(pjp1.BILL_LABOR_BRDN_COST) BILL_LABOR_BRDN_COST,
10638 max(pjp1.BILL_LABOR_HRS) BILL_LABOR_HRS,
10639 max(pjp1.EQUIPMENT_RAW_COST) EQUIPMENT_RAW_COST,
10640 max(pjp1.EQUIPMENT_BRDN_COST) EQUIPMENT_BRDN_COST,
10641 max(pjp1.CAPITALIZABLE_RAW_COST) CAPITALIZABLE_RAW_COST,
10642 max(pjp1.CAPITALIZABLE_BRDN_COST) CAPITALIZABLE_BRDN_COST,
10643 max(pjp1.LABOR_RAW_COST) LABOR_RAW_COST,
10644 max(pjp1.LABOR_BRDN_COST) LABOR_BRDN_COST,
10645 max(pjp1.LABOR_HRS) LABOR_HRS,
10646 max(pjp1.LABOR_REVENUE) LABOR_REVENUE,
10647 max(pjp1.EQUIPMENT_HOURS) EQUIPMENT_HOURS,
10648 max(pjp1.BILLABLE_EQUIPMENT_HOURS) BILLABLE_EQUIPMENT_HOURS,
10649 max(pjp1.SUP_INV_COMMITTED_COST) SUP_INV_COMMITTED_COST,
10650 max(pjp1.PO_COMMITTED_COST) PO_COMMITTED_COST,
10651 max(pjp1.PR_COMMITTED_COST) PR_COMMITTED_COST,
10652 max(pjp1.OTH_COMMITTED_COST) OTH_COMMITTED_COST,
10653 max(pjp1.ACT_LABOR_HRS) ACT_LABOR_HRS,
10654 max(pjp1.ACT_EQUIP_HRS) ACT_EQUIP_HRS,
10655 max(pjp1.ACT_LABOR_BRDN_COST) ACT_LABOR_BRDN_COST,
10656 max(pjp1.ACT_EQUIP_BRDN_COST) ACT_EQUIP_BRDN_COST,
10657 max(pjp1.ACT_BRDN_COST) ACT_BRDN_COST,
10658 max(pjp1.ACT_RAW_COST) ACT_RAW_COST,
10659 max(pjp1.ACT_REVENUE) ACT_REVENUE,
10660 max(pjp1.ACT_LABOR_RAW_COST) ACT_LABOR_RAW_COST,
10661 max(pjp1.ACT_EQUIP_RAW_COST) ACT_EQUIP_RAW_COST,
10662 max(pjp1.ETC_LABOR_HRS) ETC_LABOR_HRS,
10663 max(pjp1.ETC_EQUIP_HRS) ETC_EQUIP_HRS,
10664 max(pjp1.ETC_LABOR_BRDN_COST) ETC_LABOR_BRDN_COST,
10665 max(pjp1.ETC_EQUIP_BRDN_COST) ETC_EQUIP_BRDN_COST,
10666 max(pjp1.ETC_BRDN_COST) ETC_BRDN_COST,
10667 max(pjp1.ETC_RAW_COST) ETC_RAW_COST,
10668 max(pjp1.ETC_LABOR_RAW_COST) ETC_LABOR_RAW_COST,
10669 max(pjp1.ETC_EQUIP_RAW_COST) ETC_EQUIP_RAW_COST,
10670 max(pjp1.CUSTOM1) CUSTOM1,
10671 max(pjp1.CUSTOM2) CUSTOM2,
10672 max(pjp1.CUSTOM3) CUSTOM3,
10673 max(pjp1.CUSTOM4) CUSTOM4,
10674 max(pjp1.CUSTOM5) CUSTOM5,
10675 max(pjp1.CUSTOM6) CUSTOM6,
10676 max(pjp1.CUSTOM7) CUSTOM7,
10677 max(pjp1.CUSTOM8) CUSTOM8,
10678 max(pjp1.CUSTOM9) CUSTOM9,
10679 max(pjp1.CUSTOM10) CUSTOM10,
10680 max(pjp1.CUSTOM11) CUSTOM11,
10681 max(pjp1.CUSTOM12) CUSTOM12,
10682 max(pjp1.CUSTOM13) CUSTOM13,
10683 max(pjp1.CUSTOM14) CUSTOM14,
10684 max(pjp1.CUSTOM15) CUSTOM15
10685 from
10686 (
10687 /* Modified for bug 16022598 starts*/
10688 select /*+ parallel(pjp1) */ /* Added for bug 13030627 */
10689 pjp1.PRG_LEVEL,
10690 pjp1.LINE_TYPE,
10691 pjp1.PROJECT_ID,
10692 pjp1.PROJECT_ORG_ID,
10693 pjp1.PROJECT_ORGANIZATION_ID,
10694 pjp1.PROJECT_ELEMENT_ID,
10695 pjp1.TIME_ID,
10696 pjp1.PERIOD_TYPE_ID,
10697 pjp1.CALENDAR_TYPE,
10698 pjp1.WBS_ROLLUP_FLAG,
10699 pjp1.PRG_ROLLUP_FLAG,
10700 pjp1.CURR_RECORD_TYPE_ID,
10701 pjp1.CURRENCY_CODE,
10702 -1 RBS_ELEMENT_ID,
10703 pjp1.RBS_VERSION_ID,
10704 pjp1.PLAN_VERSION_ID,
10705 pjp1.PLAN_TYPE_ID,
10706 pjp1.PLAN_TYPE_CODE,
10707 sum(pjp1.RAW_COST) RAW_COST,
10708 sum(pjp1.BRDN_COST) BRDN_COST,
10709 sum(pjp1.REVENUE) REVENUE,
10710 sum(pjp1.BILL_RAW_COST) BILL_RAW_COST,
10711 sum(pjp1.BILL_BRDN_COST) BILL_BRDN_COST,
10712 sum(pjp1.BILL_LABOR_RAW_COST) BILL_LABOR_RAW_COST,
10713 sum(pjp1.BILL_LABOR_BRDN_COST) BILL_LABOR_BRDN_COST,
10714 sum(pjp1.BILL_LABOR_HRS) BILL_LABOR_HRS,
10715 sum(pjp1.EQUIPMENT_RAW_COST) EQUIPMENT_RAW_COST,
10716 sum(pjp1.EQUIPMENT_BRDN_COST) EQUIPMENT_BRDN_COST,
10717 sum(pjp1.CAPITALIZABLE_RAW_COST) CAPITALIZABLE_RAW_COST,
10718 sum(pjp1.CAPITALIZABLE_BRDN_COST) CAPITALIZABLE_BRDN_COST,
10719 sum(pjp1.LABOR_RAW_COST) LABOR_RAW_COST,
10720 sum(pjp1.LABOR_BRDN_COST) LABOR_BRDN_COST,
10721 sum(pjp1.LABOR_HRS) LABOR_HRS,
10722 sum(pjp1.LABOR_REVENUE) LABOR_REVENUE,
10723 sum(pjp1.EQUIPMENT_HOURS) EQUIPMENT_HOURS,
10724 sum(pjp1.BILLABLE_EQUIPMENT_HOURS) BILLABLE_EQUIPMENT_HOURS,
10725 sum(pjp1.SUP_INV_COMMITTED_COST) SUP_INV_COMMITTED_COST,
10726 sum(pjp1.PO_COMMITTED_COST) PO_COMMITTED_COST,
10727 sum(pjp1.PR_COMMITTED_COST) PR_COMMITTED_COST,
10728 sum(pjp1.OTH_COMMITTED_COST) OTH_COMMITTED_COST,
10729 sum(pjp1.ACT_LABOR_HRS) ACT_LABOR_HRS,
10730 sum(pjp1.ACT_EQUIP_HRS) ACT_EQUIP_HRS,
10731 sum(pjp1.ACT_LABOR_BRDN_COST) ACT_LABOR_BRDN_COST,
10732 sum(pjp1.ACT_EQUIP_BRDN_COST) ACT_EQUIP_BRDN_COST,
10733 sum(pjp1.ACT_BRDN_COST) ACT_BRDN_COST,
10734 sum(pjp1.ACT_RAW_COST) ACT_RAW_COST,
10735 sum(pjp1.ACT_REVENUE) ACT_REVENUE,
10736 sum(pjp1.ACT_LABOR_RAW_COST) ACT_LABOR_RAW_COST,
10737 sum(pjp1.ACT_EQUIP_RAW_COST) ACT_EQUIP_RAW_COST,
10738 sum(pjp1.ETC_LABOR_HRS) ETC_LABOR_HRS,
10739 sum(pjp1.ETC_EQUIP_HRS) ETC_EQUIP_HRS,
10740 sum(pjp1.ETC_LABOR_BRDN_COST) ETC_LABOR_BRDN_COST,
10741 sum(pjp1.ETC_EQUIP_BRDN_COST) ETC_EQUIP_BRDN_COST,
10742 sum(pjp1.ETC_BRDN_COST) ETC_BRDN_COST,
10743 sum(pjp1.ETC_RAW_COST) ETC_RAW_COST,
10744 sum(pjp1.ETC_LABOR_RAW_COST) ETC_LABOR_RAW_COST,
10745 sum(pjp1.ETC_EQUIP_RAW_COST) ETC_EQUIP_RAW_COST,
10746 sum(pjp1.CUSTOM1) CUSTOM1,
10747 sum(pjp1.CUSTOM2) CUSTOM2,
10748 sum(pjp1.CUSTOM3) CUSTOM3,
10749 sum(pjp1.CUSTOM4) CUSTOM4,
10750 sum(pjp1.CUSTOM5) CUSTOM5,
10751 sum(pjp1.CUSTOM6) CUSTOM6,
10752 sum(pjp1.CUSTOM7) CUSTOM7,
10753 sum(pjp1.CUSTOM8) CUSTOM8,
10754 sum(pjp1.CUSTOM9) CUSTOM9,
10755 sum(pjp1.CUSTOM10) CUSTOM10,
10756 sum(pjp1.CUSTOM11) CUSTOM11,
10757 sum(pjp1.CUSTOM12) CUSTOM12,
10758 sum(pjp1.CUSTOM13) CUSTOM13,
10759 sum(pjp1.CUSTOM14) CUSTOM14,
10760 sum(pjp1.CUSTOM15) CUSTOM15
10761 from
10762 PJI_FP_AGGR_PJP1 pjp1,
10763 (
10764 select
10765 distinct
10766 to_number(log.EVENT_OBJECT) RBS_VERSION_ID,
10767 to_number(log.ATTRIBUTE1) PROJECT_ID
10768 from
10769 PJI_PA_PROJ_EVENTS_LOG log
10770 where
10771 log.WORKER_ID = p_worker_id and
10772 log.EVENT_TYPE = 'RBS_ASSOC'
10773 ) log
10774 where
10775 pjp1.WORKER_ID = p_worker_id and
10776 pjp1.plan_type_id = -1 and -- Added to pull the actuals data
10777 pjp1.plan_version_id = -1 and
10778 pjp1.rbs_version_id = -1 and
10779 pjp1.PROJECT_ID = log.PROJECT_ID (+) and
10780 pjp1.RBS_VERSION_ID = log.RBS_VERSION_ID (+) and
10781 log.PROJECT_ID is null
10782 group by
10783 pjp1.PRG_LEVEL,
10784 pjp1.LINE_TYPE,
10785 pjp1.PROJECT_ID,
10786 pjp1.PROJECT_ORG_ID,
10787 pjp1.PROJECT_ORGANIZATION_ID,
10788 pjp1.PROJECT_ELEMENT_ID,
10789 pjp1.TIME_ID,
10790 pjp1.PERIOD_TYPE_ID,
10791 pjp1.CALENDAR_TYPE,
10792 pjp1.WBS_ROLLUP_FLAG,
10793 pjp1.PRG_ROLLUP_FLAG,
10794 pjp1.CURR_RECORD_TYPE_ID,
10795 pjp1.CURRENCY_CODE,
10796 pjp1.RBS_VERSION_ID,
10797 pjp1.PLAN_VERSION_ID,
10798 pjp1.PLAN_TYPE_ID,
10799 pjp1.PLAN_TYPE_CODE
10800 UNION ALL
10801 select /*+ parallel(pjp1) */ /* Added for bug 13030627 */
10802 pjp1.PRG_LEVEL,
10803 pjp1.LINE_TYPE,
10804 pjp1.PROJECT_ID,
10805 pjp1.PROJECT_ORG_ID,
10806 pjp1.PROJECT_ORGANIZATION_ID,
10807 pjp1.PROJECT_ELEMENT_ID,
10808 pjp1.TIME_ID,
10809 pjp1.PERIOD_TYPE_ID,
10810 pjp1.CALENDAR_TYPE,
10811 pjp1.WBS_ROLLUP_FLAG,
10812 pjp1.PRG_ROLLUP_FLAG,
10813 pjp1.CURR_RECORD_TYPE_ID,
10814 pjp1.CURRENCY_CODE,
10815 -1 RBS_ELEMENT_ID,
10816 pjp1.RBS_VERSION_ID,
10817 pjp1.PLAN_VERSION_ID,
10818 pjp1.PLAN_TYPE_ID,
10819 pjp1.PLAN_TYPE_CODE,
10820 sum(pjp1.RAW_COST) RAW_COST,
10821 sum(pjp1.BRDN_COST) BRDN_COST,
10822 sum(pjp1.REVENUE) REVENUE,
10823 sum(pjp1.BILL_RAW_COST) BILL_RAW_COST,
10824 sum(pjp1.BILL_BRDN_COST) BILL_BRDN_COST,
10825 sum(pjp1.BILL_LABOR_RAW_COST) BILL_LABOR_RAW_COST,
10826 sum(pjp1.BILL_LABOR_BRDN_COST) BILL_LABOR_BRDN_COST,
10827 sum(pjp1.BILL_LABOR_HRS) BILL_LABOR_HRS,
10828 sum(pjp1.EQUIPMENT_RAW_COST) EQUIPMENT_RAW_COST,
10829 sum(pjp1.EQUIPMENT_BRDN_COST) EQUIPMENT_BRDN_COST,
10830 sum(pjp1.CAPITALIZABLE_RAW_COST) CAPITALIZABLE_RAW_COST,
10831 sum(pjp1.CAPITALIZABLE_BRDN_COST) CAPITALIZABLE_BRDN_COST,
10832 sum(pjp1.LABOR_RAW_COST) LABOR_RAW_COST,
10833 sum(pjp1.LABOR_BRDN_COST) LABOR_BRDN_COST,
10834 sum(pjp1.LABOR_HRS) LABOR_HRS,
10835 sum(pjp1.LABOR_REVENUE) LABOR_REVENUE,
10836 sum(pjp1.EQUIPMENT_HOURS) EQUIPMENT_HOURS,
10837 sum(pjp1.BILLABLE_EQUIPMENT_HOURS) BILLABLE_EQUIPMENT_HOURS,
10838 sum(pjp1.SUP_INV_COMMITTED_COST) SUP_INV_COMMITTED_COST,
10839 sum(pjp1.PO_COMMITTED_COST) PO_COMMITTED_COST,
10840 sum(pjp1.PR_COMMITTED_COST) PR_COMMITTED_COST,
10841 sum(pjp1.OTH_COMMITTED_COST) OTH_COMMITTED_COST,
10842 sum(pjp1.ACT_LABOR_HRS) ACT_LABOR_HRS,
10843 sum(pjp1.ACT_EQUIP_HRS) ACT_EQUIP_HRS,
10844 sum(pjp1.ACT_LABOR_BRDN_COST) ACT_LABOR_BRDN_COST,
10845 sum(pjp1.ACT_EQUIP_BRDN_COST) ACT_EQUIP_BRDN_COST,
10846 sum(pjp1.ACT_BRDN_COST) ACT_BRDN_COST,
10847 sum(pjp1.ACT_RAW_COST) ACT_RAW_COST,
10848 sum(pjp1.ACT_REVENUE) ACT_REVENUE,
10849 sum(pjp1.ACT_LABOR_RAW_COST) ACT_LABOR_RAW_COST,
10850 sum(pjp1.ACT_EQUIP_RAW_COST) ACT_EQUIP_RAW_COST,
10851 sum(pjp1.ETC_LABOR_HRS) ETC_LABOR_HRS,
10852 sum(pjp1.ETC_EQUIP_HRS) ETC_EQUIP_HRS,
10853 sum(pjp1.ETC_LABOR_BRDN_COST) ETC_LABOR_BRDN_COST,
10854 sum(pjp1.ETC_EQUIP_BRDN_COST) ETC_EQUIP_BRDN_COST,
10855 sum(pjp1.ETC_BRDN_COST) ETC_BRDN_COST,
10856 sum(pjp1.ETC_RAW_COST) ETC_RAW_COST,
10857 sum(pjp1.ETC_LABOR_RAW_COST) ETC_LABOR_RAW_COST,
10858 sum(pjp1.ETC_EQUIP_RAW_COST) ETC_EQUIP_RAW_COST,
10859 sum(pjp1.CUSTOM1) CUSTOM1,
10860 sum(pjp1.CUSTOM2) CUSTOM2,
10861 sum(pjp1.CUSTOM3) CUSTOM3,
10862 sum(pjp1.CUSTOM4) CUSTOM4,
10863 sum(pjp1.CUSTOM5) CUSTOM5,
10864 sum(pjp1.CUSTOM6) CUSTOM6,
10865 sum(pjp1.CUSTOM7) CUSTOM7,
10866 sum(pjp1.CUSTOM8) CUSTOM8,
10867 sum(pjp1.CUSTOM9) CUSTOM9,
10868 sum(pjp1.CUSTOM10) CUSTOM10,
10869 sum(pjp1.CUSTOM11) CUSTOM11,
10870 sum(pjp1.CUSTOM12) CUSTOM12,
10871 sum(pjp1.CUSTOM13) CUSTOM13,
10872 sum(pjp1.CUSTOM14) CUSTOM14,
10873 sum(pjp1.CUSTOM15) CUSTOM15
10874 from
10875 PJI_FP_AGGR_PJP1 pjp1,
10876 PJI_FM_EXTR_PLNVER4 ver,
10877 (
10878 select
10879 distinct
10880 to_number(log.EVENT_OBJECT) RBS_VERSION_ID,
10881 to_number(log.ATTRIBUTE1) PROJECT_ID
10882 from
10883 PJI_PA_PROJ_EVENTS_LOG log
10884 where
10885 log.WORKER_ID = p_worker_id and
10886 log.EVENT_TYPE = 'RBS_ASSOC'
10887 ) log
10888 where
10889 pjp1.WORKER_ID = p_worker_id and
10890 ver.WORKER_ID = p_worker_id and -- Added to pull the primary rbs specific data
10891 ver.project_id = pjp1.project_id and
10892 ver.plan_version_id = pjp1.plan_version_id and
10893 ver.plan_type_id = pjp1.plan_type_id and
10894 ver.secondary_rbs_flag = 'N' and
10895 nvl(ver.rbs_struct_version_id,-1) = pjp1.rbs_version_id and
10896 pjp1.PROJECT_ID = log.PROJECT_ID (+) and
10897 pjp1.RBS_VERSION_ID = log.RBS_VERSION_ID (+) and
10898 log.PROJECT_ID is null
10899 group by
10900 pjp1.PRG_LEVEL,
10901 pjp1.LINE_TYPE,
10902 pjp1.PROJECT_ID,
10903 pjp1.PROJECT_ORG_ID,
10904 pjp1.PROJECT_ORGANIZATION_ID,
10905 pjp1.PROJECT_ELEMENT_ID,
10906 pjp1.TIME_ID,
10907 pjp1.PERIOD_TYPE_ID,
10908 pjp1.CALENDAR_TYPE,
10909 pjp1.WBS_ROLLUP_FLAG,
10910 pjp1.PRG_ROLLUP_FLAG,
10911 pjp1.CURR_RECORD_TYPE_ID,
10912 pjp1.CURRENCY_CODE,
10913 pjp1.RBS_VERSION_ID,
10914 pjp1.PLAN_VERSION_ID,
10915 pjp1.PLAN_TYPE_ID,
10916 pjp1.PLAN_TYPE_CODE
10917 /* Modified for bug 16022598 ends*/
10918 ) pjp1
10919 group by
10920 pjp1.PRG_LEVEL,
10921 pjp1.LINE_TYPE,
10922 pjp1.PROJECT_ID,
10923 pjp1.PROJECT_ORG_ID,
10924 pjp1.PROJECT_ORGANIZATION_ID,
10925 pjp1.PROJECT_ELEMENT_ID,
10926 pjp1.TIME_ID,
10927 pjp1.PERIOD_TYPE_ID,
10928 pjp1.CALENDAR_TYPE,
10929 pjp1.WBS_ROLLUP_FLAG,
10930 pjp1.PRG_ROLLUP_FLAG,
10931 pjp1.CURR_RECORD_TYPE_ID,
10932 pjp1.CURRENCY_CODE,
10933 pjp1.RBS_ELEMENT_ID,
10934 pjp1.PLAN_VERSION_ID,
10935 pjp1.PLAN_TYPE_ID,
10936 pjp1.PLAN_TYPE_CODE
10937 ) pjp1
10938 group by
10939 pjp1.PRG_LEVEL,
10940 pjp1.LINE_TYPE,
10941 pjp1.PROJECT_ID,
10942 pjp1.PROJECT_ORG_ID,
10943 pjp1.PROJECT_ORGANIZATION_ID,
10944 pjp1.PROJECT_ELEMENT_ID,
10945 pjp1.TIME_ID,
10946 pjp1.PERIOD_TYPE_ID,
10947 pjp1.CALENDAR_TYPE,
10948 pjp1.RBS_AGGR_LEVEL,
10949 pjp1.WBS_ROLLUP_FLAG,
10950 pjp1.PRG_ROLLUP_FLAG,
10951 pjp1.CURR_RECORD_TYPE_ID,
10952 pjp1.CURRENCY_CODE,
10953 pjp1.RBS_ELEMENT_ID,
10954 pjp1.RBS_VERSION_ID,
10955 pjp1.PLAN_VERSION_ID,
10956 pjp1.PLAN_TYPE_ID,
10957 pjp1.PLAN_TYPE_CODE;
10958
10959 PJI_PROCESS_UTIL.REGISTER_STEP_COMPLETION(l_process, 'PJI_PJP_SUM_ROLLUP.ROLLUP_FPR_RBS_TOP(p_worker_id);');
10960
10961 commit;
10962
10963 end ROLLUP_FPR_RBS_TOP;
10964
10965
10966 -- -----------------------------------------------------
10967 -- procedure ROLLUP_FPR_WBS
10968 --
10969 -- History
10970 -- 19-MAR-2004 SVERMETT Created
10971 --
10972 -- This API will be called for both online and bulk processing.
10973 --
10974 -- -----------------------------------------------------
10975 procedure ROLLUP_FPR_WBS (p_worker_id in number default null) is
10976
10977 l_process varchar2(30);
10978 l_extraction_type varchar2(30);
10979 l_fpm_upgrade varchar2(30);
10980 l_max_level number;
10981 l_level number;
10982 l_step_seq number;
10983 l_level_seq number;
10984 l_count number;
10985 l_partial_mode varchar2(30);
10986 l_worker_id number; /* Added for bug 13030627 */
10987
10988 begin
10989
10990 if (p_worker_id is not null) then
10991
10992 /* Added for bug 13030627 */
10993 l_worker_id := p_worker_id;
10994 if PJI_UTILS.GET_PARAMETER('PJP_SIN_PRG') = 'Y' then
10995
10996 PJI_PJP_PRG_PERF_ALL.ROLLUP_FPR_WBS(
10997 p_worker_id => l_worker_id);
10998
10999 else
11000 /* Added for bug 13030627 */
11001
11002 l_process := PJI_PJP_SUM_MAIN.g_process || to_char(p_worker_id);
11003
11004 if (not PJI_PROCESS_UTIL.NEED_TO_RUN_STEP(l_process, 'PJI_PJP_SUM_ROLLUP.ROLLUP_FPR_WBS(p_worker_id);')) then
11005 return;
11006 end if;
11007
11008 l_extraction_type := PJI_PROCESS_UTIL.GET_PROCESS_PARAMETER(l_process, 'EXTRACTION_TYPE');
11009
11010 l_fpm_upgrade := nvl(PJI_UTILS.GET_PARAMETER('PJI_FPM_UPGRADE'), 'C');
11011
11012 select decode(l_extraction_type,'PARTIAL','PARTIAL',NULL)
11013 into l_partial_mode
11014 from dual;
11015
11016 -- allow recovery after each level is processed
11017
11018 select
11019 STEP_SEQ
11020 into
11021 l_step_seq
11022 from
11023 PJI_SYSTEM_PRC_STATUS
11024 where
11025 PROCESS_NAME = l_process and
11026 STEP_NAME = 'PJI_PJP_SUM_ROLLUP.ROLLUP_FPR_WBS(p_worker_id);';
11027
11028 select
11029 count(*)
11030 into
11031 l_count
11032 from
11033 PJI_SYSTEM_PRC_STATUS
11034 where
11035 PROCESS_NAME = l_process and
11036 STEP_NAME like 'ROLLUP_FPR_WBS%';
11037
11038 if (l_count = 0) then
11039
11040 select /*+ ordered index(den PJI_XBS_DENORM_N3) use_hash(den) */ /* Modified for Bug 7669026 */
11041 nvl(max(den.SUP_LEVEL), 0)
11042 into
11043 l_level
11044 from
11045 PJI_PJP_PROJ_BATCH_MAP map,
11046 PJI_XBS_DENORM den
11047 where
11048 map.WORKER_ID = p_worker_id and
11049 den.STRUCT_TYPE = 'PRG' and
11050 den.SUB_LEVEL = den.SUP_LEVEL and
11051 den.SUP_PROJECT_ID = map.PROJECT_ID;
11052
11053 PJI_PROCESS_UTIL.SET_PROCESS_PARAMETER(l_process,
11054 'MAX_PROGRAM_LEVEL',
11055 l_level);
11056
11057 for x in 1 .. l_level loop
11058
11059 insert into PJI_SYSTEM_PRC_STATUS
11060 (
11061 PROCESS_NAME,
11062 STEP_SEQ,
11063 STEP_STATUS,
11064 STEP_NAME,
11065 START_DATE,
11066 END_DATE
11067 )
11068 select
11069 l_process PROCESS_NAME,
11070 to_char(l_step_seq + x / 1000) STEP_SEQ,
11071 null STEP_STATUS,
11072 'ROLLUP_FPR_WBS - level ' || to_char(l_level - x + 1) STEP_NAME,
11073 null START_DATE,
11074 null END_DATE
11075 from
11076 DUAL;
11077
11078 end loop;
11079
11080 end if;
11081
11082 l_max_level := PJI_PROCESS_UTIL.GET_PROCESS_PARAMETER
11083 (l_process, 'MAX_PROGRAM_LEVEL');
11084
11085 select
11086 nvl(to_number(min(STEP_SEQ)), 0)
11087 into
11088 l_level_seq
11089 from
11090 PJI_SYSTEM_PRC_STATUS
11091 where
11092 PROCESS_NAME = l_process and
11093 STEP_NAME like 'ROLLUP_FPR_WBS%' and
11094 STEP_STATUS is null;
11095
11096 if (l_level_seq = 0) then
11097 l_level := 0;
11098 else
11099 l_level := l_max_level - ((l_level_seq - l_step_seq) * 1000) + 1;
11100 end if;
11101
11102
11103 -- Begin Bug# 9904361
11104 if ( l_extraction_type not in ( 'FULL','RBS') ) then
11105
11106 ROLLUP_FPR_WBS_PARTIAL
11107 ( p_worker_id ,
11108 l_process ,
11109 l_extraction_type ,
11110 l_fpm_upgrade ,
11111 l_max_level ,
11112 l_level ,
11113 l_step_seq ,
11114 l_level_seq ,
11115 l_count ,
11116 l_partial_mode
11117 ) ;
11118
11119 else
11120
11121 ROLLUP_FPR_WBS_FULL
11122 ( p_worker_id ,
11123 l_process ,
11124 l_extraction_type ,
11125 l_fpm_upgrade ,
11126 l_max_level ,
11127 l_level ,
11128 l_step_seq ,
11129 l_level_seq ,
11130 l_count ,
11131 l_partial_mode
11132 ) ;
11133
11134
11135
11136 end if;
11137 -- End Bug# 9904361
11138
11139 PJI_PROCESS_UTIL.REGISTER_STEP_COMPLETION(l_process, 'PJI_PJP_SUM_ROLLUP.ROLLUP_FPR_WBS(p_worker_id);');
11140
11141 commit;
11142
11143 end if; /* Added for bug 13030627 */
11144
11145 else -- online mode
11146
11147 -- rollup just WBS for online processing
11148
11149 select /*+ ordered use_nl(den) */ -- bug 7607077 asahoo - removed index hint
11150 nvl(max(den.SUP_LEVEL), 0)
11151 into
11152 l_level
11153 from
11154 PJI_FM_EXTR_PLNVER3_T ver3,
11155 PJI_XBS_DENORM den
11156 where
11157 den.STRUCT_TYPE = 'PRG' and
11158 den.SUB_LEVEL = den.SUP_LEVEL and
11159 den.SUP_PROJECT_ID = ver3.PROJECT_ID;
11160
11161 while (l_level > 0) loop
11162
11163 -- rollup project hiearchy
11164
11165 insert into PJI_FP_AGGR_PJP1_T
11166 (
11167 WORKER_ID,
11168 RECORD_TYPE,
11169 PRG_LEVEL,
11170 LINE_TYPE,
11171 PROJECT_ID,
11172 PROJECT_ORG_ID,
11173 PROJECT_ORGANIZATION_ID,
11174 PROJECT_ELEMENT_ID,
11175 TIME_ID,
11176 PERIOD_TYPE_ID,
11177 CALENDAR_TYPE,
11178 RBS_AGGR_LEVEL,
11179 WBS_ROLLUP_FLAG,
11180 PRG_ROLLUP_FLAG,
11181 CURR_RECORD_TYPE_ID,
11182 CURRENCY_CODE,
11183 RBS_ELEMENT_ID,
11184 RBS_VERSION_ID,
11185 PLAN_VERSION_ID,
11186 PLAN_TYPE_ID,
11187 PLAN_TYPE_CODE,
11188 RAW_COST,
11189 BRDN_COST,
11190 REVENUE,
11191 BILL_RAW_COST,
11192 BILL_BRDN_COST,
11193 BILL_LABOR_RAW_COST,
11194 BILL_LABOR_BRDN_COST,
11195 BILL_LABOR_HRS,
11196 EQUIPMENT_RAW_COST,
11197 EQUIPMENT_BRDN_COST,
11198 CAPITALIZABLE_RAW_COST,
11199 CAPITALIZABLE_BRDN_COST,
11200 LABOR_RAW_COST,
11201 LABOR_BRDN_COST,
11202 LABOR_HRS,
11203 LABOR_REVENUE,
11204 EQUIPMENT_HOURS,
11205 BILLABLE_EQUIPMENT_HOURS,
11206 SUP_INV_COMMITTED_COST,
11207 PO_COMMITTED_COST,
11208 PR_COMMITTED_COST,
11209 OTH_COMMITTED_COST,
11210 ACT_LABOR_HRS,
11211 ACT_EQUIP_HRS,
11212 ACT_LABOR_BRDN_COST,
11213 ACT_EQUIP_BRDN_COST,
11214 ACT_BRDN_COST,
11215 ACT_RAW_COST,
11216 ACT_REVENUE,
11217 ACT_LABOR_RAW_COST,
11218 ACT_EQUIP_RAW_COST,
11219 ETC_LABOR_HRS,
11220 ETC_EQUIP_HRS,
11221 ETC_LABOR_BRDN_COST,
11222 ETC_EQUIP_BRDN_COST,
11223 ETC_BRDN_COST,
11224 ETC_RAW_COST,
11225 ETC_LABOR_RAW_COST,
11226 ETC_EQUIP_RAW_COST,
11227 CUSTOM1,
11228 CUSTOM2,
11229 CUSTOM3,
11230 CUSTOM4,
11231 CUSTOM5,
11232 CUSTOM6,
11233 CUSTOM7,
11234 CUSTOM8,
11235 CUSTOM9,
11236 CUSTOM10,
11237 CUSTOM11,
11238 CUSTOM12,
11239 CUSTOM13,
11240 CUSTOM14,
11241 CUSTOM15
11242 )
11243 select
11244 pjp1_i.WORKER_ID,
11245 pjp1_i.RECORD_TYPE,
11246 pjp1_i.PRG_LEVEL,
11247 pjp1_i.LINE_TYPE,
11248 pjp1_i.PROJECT_ID,
11249 pjp1_i.PROJECT_ORG_ID,
11250 pjp1_i.PROJECT_ORGANIZATION_ID,
11251 pjp1_i.PROJECT_ELEMENT_ID,
11252 pjp1_i.TIME_ID,
11253 pjp1_i.PERIOD_TYPE_ID,
11254 pjp1_i.CALENDAR_TYPE,
11255 pjp1_i.RBS_AGGR_LEVEL,
11256 pjp1_i.WBS_ROLLUP_FLAG,
11257 pjp1_i.PRG_ROLLUP_FLAG,
11258 pjp1_i.CURR_RECORD_TYPE_ID,
11259 pjp1_i.CURRENCY_CODE,
11260 pjp1_i.RBS_ELEMENT_ID,
11261 pjp1_i.RBS_VERSION_ID,
11262 pjp1_i.PLAN_VERSION_ID,
11263 pjp1_i.PLAN_TYPE_ID,
11264 pjp1_i.PLAN_TYPE_CODE,
11265 decode(pjp1_i.RELATIONSHIP_TYPE
11266 || '_' || pjp1_i.WBS_ROLLUP_FLAG
11267 || '_' || pjp1_i.PRG_ROLLUP_FLAG
11268 || '_' || pjp1_i.SUB_STATUS_CODE
11269 || '_' || pjp1_i.SUP_STATUS_CODE,
11270 'LW_N_Y__', to_number(null),
11271 decode(pjp1_i.RELATIONSHIP_TYPE
11272 || '_' || pjp1_i.WBS_ROLLUP_FLAG
11273 || '_' || pjp1_i.PRG_ROLLUP_FLAG
11274 || '_' || pjp1_i.SUP_VER_ENABLED,
11275 'LW_N_Y_Y', to_number(null),
11276 pjp1_i.RAW_COST)) RAW_COST,
11277 decode(pjp1_i.RELATIONSHIP_TYPE
11278 || '_' || pjp1_i.WBS_ROLLUP_FLAG
11279 || '_' || pjp1_i.PRG_ROLLUP_FLAG
11280 || '_' || pjp1_i.SUB_STATUS_CODE
11281 || '_' || pjp1_i.SUP_STATUS_CODE,
11282 'LW_N_Y__', to_number(null),
11283 decode(pjp1_i.RELATIONSHIP_TYPE
11284 || '_' || pjp1_i.WBS_ROLLUP_FLAG
11285 || '_' || pjp1_i.PRG_ROLLUP_FLAG
11286 || '_' || pjp1_i.SUP_VER_ENABLED,
11287 'LW_N_Y_Y', to_number(null),
11288 pjp1_i.BRDN_COST)) BRDN_COST,
11289 decode(pjp1_i.RELATIONSHIP_TYPE
11290 || '_' || pjp1_i.WBS_ROLLUP_FLAG
11291 || '_' || pjp1_i.PRG_ROLLUP_FLAG
11292 || '_' || pjp1_i.SUB_STATUS_CODE
11293 || '_' || pjp1_i.SUP_STATUS_CODE,
11294 'LW_N_Y__', to_number(null),
11295 decode(pjp1_i.RELATIONSHIP_TYPE
11296 || '_' || pjp1_i.WBS_ROLLUP_FLAG
11297 || '_' || pjp1_i.PRG_ROLLUP_FLAG
11298 || '_' || pjp1_i.SUP_VER_ENABLED,
11299 'LW_N_Y_Y', to_number(null),
11300 pjp1_i.REVENUE)) REVENUE,
11301 decode(pjp1_i.RELATIONSHIP_TYPE
11302 || '_' || pjp1_i.WBS_ROLLUP_FLAG
11303 || '_' || pjp1_i.PRG_ROLLUP_FLAG
11304 || '_' || pjp1_i.SUB_STATUS_CODE
11305 || '_' || pjp1_i.SUP_STATUS_CODE,
11306 'LW_N_Y__', to_number(null),
11307 decode(pjp1_i.RELATIONSHIP_TYPE
11308 || '_' || pjp1_i.WBS_ROLLUP_FLAG
11309 || '_' || pjp1_i.PRG_ROLLUP_FLAG
11310 || '_' || pjp1_i.SUP_VER_ENABLED,
11311 'LW_N_Y_Y', to_number(null),
11312 pjp1_i.BILL_RAW_COST)) BILL_RAW_COST,
11313 decode(pjp1_i.RELATIONSHIP_TYPE
11314 || '_' || pjp1_i.WBS_ROLLUP_FLAG
11315 || '_' || pjp1_i.PRG_ROLLUP_FLAG
11316 || '_' || pjp1_i.SUB_STATUS_CODE
11317 || '_' || pjp1_i.SUP_STATUS_CODE,
11318 'LW_N_Y__', to_number(null),
11319 decode(pjp1_i.RELATIONSHIP_TYPE
11320 || '_' || pjp1_i.WBS_ROLLUP_FLAG
11321 || '_' || pjp1_i.PRG_ROLLUP_FLAG
11322 || '_' || pjp1_i.SUP_VER_ENABLED,
11323 'LW_N_Y_Y', to_number(null),
11324 pjp1_i.BILL_BRDN_COST)) BILL_BRDN_COST,
11325 decode(pjp1_i.RELATIONSHIP_TYPE
11326 || '_' || pjp1_i.WBS_ROLLUP_FLAG
11327 || '_' || pjp1_i.PRG_ROLLUP_FLAG
11328 || '_' || pjp1_i.SUB_STATUS_CODE
11329 || '_' || pjp1_i.SUP_STATUS_CODE,
11330 'LW_N_Y__', to_number(null),
11331 decode(pjp1_i.RELATIONSHIP_TYPE
11332 || '_' || pjp1_i.WBS_ROLLUP_FLAG
11333 || '_' || pjp1_i.PRG_ROLLUP_FLAG
11334 || '_' || pjp1_i.SUP_VER_ENABLED,
11335 'LW_N_Y_Y', to_number(null),
11336 pjp1_i.BILL_LABOR_RAW_COST)) BILL_LABOR_RAW_COST,
11337 decode(pjp1_i.RELATIONSHIP_TYPE
11338 || '_' || pjp1_i.WBS_ROLLUP_FLAG
11339 || '_' || pjp1_i.PRG_ROLLUP_FLAG
11340 || '_' || pjp1_i.SUB_STATUS_CODE
11341 || '_' || pjp1_i.SUP_STATUS_CODE,
11342 'LW_N_Y__', to_number(null),
11343 decode(pjp1_i.RELATIONSHIP_TYPE
11344 || '_' || pjp1_i.WBS_ROLLUP_FLAG
11345 || '_' || pjp1_i.PRG_ROLLUP_FLAG
11346 || '_' || pjp1_i.SUP_VER_ENABLED,
11347 'LW_N_Y_Y', to_number(null),
11348 pjp1_i.BILL_LABOR_BRDN_COST)) BILL_LABOR_BRDN_COST,
11349 decode(pjp1_i.RELATIONSHIP_TYPE
11350 || '_' || pjp1_i.WBS_ROLLUP_FLAG
11351 || '_' || pjp1_i.PRG_ROLLUP_FLAG
11352 || '_' || pjp1_i.SUB_STATUS_CODE
11353 || '_' || pjp1_i.SUP_STATUS_CODE,
11354 'LW_N_Y__', to_number(null),
11355 decode(pjp1_i.RELATIONSHIP_TYPE
11356 || '_' || pjp1_i.WBS_ROLLUP_FLAG
11357 || '_' || pjp1_i.PRG_ROLLUP_FLAG
11358 || '_' || pjp1_i.SUP_VER_ENABLED,
11359 'LW_N_Y_Y', to_number(null),
11360 pjp1_i.BILL_LABOR_HRS)) BILL_LABOR_HRS,
11361 decode(pjp1_i.RELATIONSHIP_TYPE
11362 || '_' || pjp1_i.WBS_ROLLUP_FLAG
11363 || '_' || pjp1_i.PRG_ROLLUP_FLAG
11364 || '_' || pjp1_i.SUB_STATUS_CODE
11365 || '_' || pjp1_i.SUP_STATUS_CODE,
11366 'LW_N_Y__', to_number(null),
11367 decode(pjp1_i.RELATIONSHIP_TYPE
11368 || '_' || pjp1_i.WBS_ROLLUP_FLAG
11369 || '_' || pjp1_i.PRG_ROLLUP_FLAG
11370 || '_' || pjp1_i.SUP_VER_ENABLED,
11371 'LW_N_Y_Y', to_number(null),
11372 pjp1_i.EQUIPMENT_RAW_COST)) EQUIPMENT_RAW_COST,
11373 decode(pjp1_i.RELATIONSHIP_TYPE
11374 || '_' || pjp1_i.WBS_ROLLUP_FLAG
11375 || '_' || pjp1_i.PRG_ROLLUP_FLAG
11376 || '_' || pjp1_i.SUB_STATUS_CODE
11377 || '_' || pjp1_i.SUP_STATUS_CODE,
11378 'LW_N_Y__', to_number(null),
11379 decode(pjp1_i.RELATIONSHIP_TYPE
11380 || '_' || pjp1_i.WBS_ROLLUP_FLAG
11381 || '_' || pjp1_i.PRG_ROLLUP_FLAG
11382 || '_' || pjp1_i.SUP_VER_ENABLED,
11383 'LW_N_Y_Y', to_number(null),
11384 pjp1_i.EQUIPMENT_BRDN_COST)) EQUIPMENT_BRDN_COST,
11385 decode(pjp1_i.RELATIONSHIP_TYPE
11386 || '_' || pjp1_i.WBS_ROLLUP_FLAG
11387 || '_' || pjp1_i.PRG_ROLLUP_FLAG
11388 || '_' || pjp1_i.SUB_STATUS_CODE
11389 || '_' || pjp1_i.SUP_STATUS_CODE,
11390 'LW_N_Y__', to_number(null),
11391 decode(pjp1_i.RELATIONSHIP_TYPE
11392 || '_' || pjp1_i.WBS_ROLLUP_FLAG
11393 || '_' || pjp1_i.PRG_ROLLUP_FLAG
11394 || '_' || pjp1_i.SUP_VER_ENABLED,
11395 'LW_N_Y_Y', to_number(null),
11396 pjp1_i.CAPITALIZABLE_RAW_COST)) CAPITALIZABLE_RAW_COST,
11397 decode(pjp1_i.RELATIONSHIP_TYPE
11398 || '_' || pjp1_i.WBS_ROLLUP_FLAG
11399 || '_' || pjp1_i.PRG_ROLLUP_FLAG
11400 || '_' || pjp1_i.SUB_STATUS_CODE
11401 || '_' || pjp1_i.SUP_STATUS_CODE,
11402 'LW_N_Y__', to_number(null),
11403 decode(pjp1_i.RELATIONSHIP_TYPE
11404 || '_' || pjp1_i.WBS_ROLLUP_FLAG
11405 || '_' || pjp1_i.PRG_ROLLUP_FLAG
11406 || '_' || pjp1_i.SUP_VER_ENABLED,
11407 'LW_N_Y_Y', to_number(null),
11408 pjp1_i.CAPITALIZABLE_BRDN_COST)) CAPITALIZABLE_BRDN_COST,
11409 decode(pjp1_i.RELATIONSHIP_TYPE
11410 || '_' || pjp1_i.WBS_ROLLUP_FLAG
11411 || '_' || pjp1_i.PRG_ROLLUP_FLAG
11412 || '_' || pjp1_i.SUB_STATUS_CODE
11413 || '_' || pjp1_i.SUP_STATUS_CODE,
11414 'LW_N_Y__', to_number(null),
11415 decode(pjp1_i.RELATIONSHIP_TYPE
11416 || '_' || pjp1_i.WBS_ROLLUP_FLAG
11417 || '_' || pjp1_i.PRG_ROLLUP_FLAG
11418 || '_' || pjp1_i.SUP_VER_ENABLED,
11419 'LW_N_Y_Y', to_number(null),
11420 pjp1_i.LABOR_RAW_COST)) LABOR_RAW_COST,
11421 decode(pjp1_i.RELATIONSHIP_TYPE
11422 || '_' || pjp1_i.WBS_ROLLUP_FLAG
11423 || '_' || pjp1_i.PRG_ROLLUP_FLAG
11424 || '_' || pjp1_i.SUB_STATUS_CODE
11425 || '_' || pjp1_i.SUP_STATUS_CODE,
11426 'LW_N_Y__', to_number(null),
11427 decode(pjp1_i.RELATIONSHIP_TYPE
11428 || '_' || pjp1_i.WBS_ROLLUP_FLAG
11429 || '_' || pjp1_i.PRG_ROLLUP_FLAG
11430 || '_' || pjp1_i.SUP_VER_ENABLED,
11431 'LW_N_Y_Y', to_number(null),
11432 pjp1_i.LABOR_BRDN_COST)) LABOR_BRDN_COST,
11433 decode(pjp1_i.RELATIONSHIP_TYPE
11434 || '_' || pjp1_i.WBS_ROLLUP_FLAG
11435 || '_' || pjp1_i.PRG_ROLLUP_FLAG
11436 || '_' || pjp1_i.SUB_STATUS_CODE
11437 || '_' || pjp1_i.SUP_STATUS_CODE,
11438 'LW_N_Y__', to_number(null),
11439 decode(pjp1_i.RELATIONSHIP_TYPE
11440 || '_' || pjp1_i.WBS_ROLLUP_FLAG
11441 || '_' || pjp1_i.PRG_ROLLUP_FLAG
11442 || '_' || pjp1_i.SUP_VER_ENABLED,
11443 'LW_N_Y_Y', to_number(null),
11444 pjp1_i.LABOR_HRS)) LABOR_HRS,
11445 decode(pjp1_i.RELATIONSHIP_TYPE
11446 || '_' || pjp1_i.WBS_ROLLUP_FLAG
11447 || '_' || pjp1_i.PRG_ROLLUP_FLAG
11448 || '_' || pjp1_i.SUB_STATUS_CODE
11449 || '_' || pjp1_i.SUP_STATUS_CODE,
11450 'LW_N_Y__', to_number(null),
11451 decode(pjp1_i.RELATIONSHIP_TYPE
11452 || '_' || pjp1_i.WBS_ROLLUP_FLAG
11453 || '_' || pjp1_i.PRG_ROLLUP_FLAG
11454 || '_' || pjp1_i.SUP_VER_ENABLED,
11455 'LW_N_Y_Y', to_number(null),
11456 pjp1_i.LABOR_REVENUE)) LABOR_REVENUE,
11457 decode(pjp1_i.RELATIONSHIP_TYPE
11458 || '_' || pjp1_i.WBS_ROLLUP_FLAG
11459 || '_' || pjp1_i.PRG_ROLLUP_FLAG
11460 || '_' || pjp1_i.SUB_STATUS_CODE
11461 || '_' || pjp1_i.SUP_STATUS_CODE,
11462 'LW_N_Y__', to_number(null),
11463 decode(pjp1_i.RELATIONSHIP_TYPE
11464 || '_' || pjp1_i.WBS_ROLLUP_FLAG
11465 || '_' || pjp1_i.PRG_ROLLUP_FLAG
11466 || '_' || pjp1_i.SUP_VER_ENABLED,
11467 'LW_N_Y_Y', to_number(null),
11468 pjp1_i.EQUIPMENT_HOURS)) EQUIPMENT_HOURS,
11469 decode(pjp1_i.RELATIONSHIP_TYPE
11470 || '_' || pjp1_i.WBS_ROLLUP_FLAG
11471 || '_' || pjp1_i.PRG_ROLLUP_FLAG
11472 || '_' || pjp1_i.SUB_STATUS_CODE
11473 || '_' || pjp1_i.SUP_STATUS_CODE,
11474 'LW_N_Y__', to_number(null),
11475 decode(pjp1_i.RELATIONSHIP_TYPE
11476 || '_' || pjp1_i.WBS_ROLLUP_FLAG
11477 || '_' || pjp1_i.PRG_ROLLUP_FLAG
11478 || '_' || pjp1_i.SUP_VER_ENABLED,
11479 'LW_N_Y_Y', to_number(null),
11480 pjp1_i.BILLABLE_EQUIPMENT_HOURS)) BILLABLE_EQUIPMENT_HOURS,
11481 decode(pjp1_i.RELATIONSHIP_TYPE
11482 || '_' || pjp1_i.WBS_ROLLUP_FLAG
11483 || '_' || pjp1_i.PRG_ROLLUP_FLAG
11484 || '_' || pjp1_i.SUB_STATUS_CODE
11485 || '_' || pjp1_i.SUP_STATUS_CODE,
11486 'LW_N_Y__', to_number(null),
11487 decode(pjp1_i.RELATIONSHIP_TYPE
11488 || '_' || pjp1_i.WBS_ROLLUP_FLAG
11489 || '_' || pjp1_i.PRG_ROLLUP_FLAG
11490 || '_' || pjp1_i.SUP_VER_ENABLED,
11491 'LW_N_Y_Y', to_number(null),
11492 pjp1_i.SUP_INV_COMMITTED_COST)) SUP_INV_COMMITTED_COST,
11493 decode(pjp1_i.RELATIONSHIP_TYPE
11494 || '_' || pjp1_i.WBS_ROLLUP_FLAG
11495 || '_' || pjp1_i.PRG_ROLLUP_FLAG
11496 || '_' || pjp1_i.SUB_STATUS_CODE
11497 || '_' || pjp1_i.SUP_STATUS_CODE,
11498 'LW_N_Y__', to_number(null),
11499 decode(pjp1_i.RELATIONSHIP_TYPE
11500 || '_' || pjp1_i.WBS_ROLLUP_FLAG
11501 || '_' || pjp1_i.PRG_ROLLUP_FLAG
11502 || '_' || pjp1_i.SUP_VER_ENABLED,
11503 'LW_N_Y_Y', to_number(null),
11504 pjp1_i.PO_COMMITTED_COST)) PO_COMMITTED_COST,
11505 decode(pjp1_i.RELATIONSHIP_TYPE
11506 || '_' || pjp1_i.WBS_ROLLUP_FLAG
11507 || '_' || pjp1_i.PRG_ROLLUP_FLAG
11508 || '_' || pjp1_i.SUB_STATUS_CODE
11509 || '_' || pjp1_i.SUP_STATUS_CODE,
11510 'LW_N_Y__', to_number(null),
11511 decode(pjp1_i.RELATIONSHIP_TYPE
11512 || '_' || pjp1_i.WBS_ROLLUP_FLAG
11513 || '_' || pjp1_i.PRG_ROLLUP_FLAG
11514 || '_' || pjp1_i.SUP_VER_ENABLED,
11515 'LW_N_Y_Y', to_number(null),
11516 pjp1_i.PR_COMMITTED_COST)) PR_COMMITTED_COST,
11517 decode(pjp1_i.RELATIONSHIP_TYPE
11518 || '_' || pjp1_i.WBS_ROLLUP_FLAG
11519 || '_' || pjp1_i.PRG_ROLLUP_FLAG
11520 || '_' || pjp1_i.SUB_STATUS_CODE
11521 || '_' || pjp1_i.SUP_STATUS_CODE,
11522 'LW_N_Y__', to_number(null),
11523 decode(pjp1_i.RELATIONSHIP_TYPE
11524 || '_' || pjp1_i.WBS_ROLLUP_FLAG
11525 || '_' || pjp1_i.PRG_ROLLUP_FLAG
11526 || '_' || pjp1_i.SUP_VER_ENABLED,
11527 'LW_N_Y_Y', to_number(null),
11528 pjp1_i.OTH_COMMITTED_COST)) OTH_COMMITTED_COST,
11529 decode(pjp1_i.RELATIONSHIP_TYPE
11530 || '_' || pjp1_i.WBS_ROLLUP_FLAG
11531 || '_' || pjp1_i.PRG_ROLLUP_FLAG
11532 || '_' || pjp1_i.SUP_STATUS_CODE,
11533 'LW_N_Y_', to_number(null),
11534 pjp1_i.ACT_LABOR_HRS) ACT_LABOR_HRS,
11535 decode(pjp1_i.RELATIONSHIP_TYPE
11536 || '_' || pjp1_i.WBS_ROLLUP_FLAG
11537 || '_' || pjp1_i.PRG_ROLLUP_FLAG
11538 || '_' || pjp1_i.SUP_STATUS_CODE,
11539 'LW_N_Y_', to_number(null),
11540 pjp1_i.ACT_EQUIP_HRS) ACT_EQUIP_HRS,
11541 decode(pjp1_i.RELATIONSHIP_TYPE
11542 || '_' || pjp1_i.WBS_ROLLUP_FLAG
11543 || '_' || pjp1_i.PRG_ROLLUP_FLAG
11544 || '_' || pjp1_i.SUP_STATUS_CODE,
11545 'LW_N_Y_', to_number(null),
11546 pjp1_i.ACT_LABOR_BRDN_COST) ACT_LABOR_BRDN_COST,
11547 decode(pjp1_i.RELATIONSHIP_TYPE
11548 || '_' || pjp1_i.WBS_ROLLUP_FLAG
11549 || '_' || pjp1_i.PRG_ROLLUP_FLAG
11550 || '_' || pjp1_i.SUP_STATUS_CODE,
11551 'LW_N_Y_', to_number(null),
11552 pjp1_i.ACT_EQUIP_BRDN_COST) ACT_EQUIP_BRDN_COST,
11553 decode(pjp1_i.RELATIONSHIP_TYPE
11554 || '_' || pjp1_i.WBS_ROLLUP_FLAG
11555 || '_' || pjp1_i.PRG_ROLLUP_FLAG
11556 || '_' || pjp1_i.SUP_STATUS_CODE,
11557 'LW_N_Y_', to_number(null),
11558 pjp1_i.ACT_BRDN_COST) ACT_BRDN_COST,
11559 decode(pjp1_i.RELATIONSHIP_TYPE
11560 || '_' || pjp1_i.WBS_ROLLUP_FLAG
11561 || '_' || pjp1_i.PRG_ROLLUP_FLAG
11562 || '_' || pjp1_i.SUP_STATUS_CODE,
11563 'LW_N_Y_', to_number(null),
11564 pjp1_i.ACT_RAW_COST) ACT_RAW_COST,
11565 decode(pjp1_i.RELATIONSHIP_TYPE
11566 || '_' || pjp1_i.WBS_ROLLUP_FLAG
11567 || '_' || pjp1_i.PRG_ROLLUP_FLAG
11568 || '_' || pjp1_i.SUP_STATUS_CODE,
11569 'LW_N_Y_', to_number(null),
11570 pjp1_i.ACT_REVENUE) ACT_REVENUE,
11571 decode(pjp1_i.RELATIONSHIP_TYPE
11572 || '_' || pjp1_i.WBS_ROLLUP_FLAG
11573 || '_' || pjp1_i.PRG_ROLLUP_FLAG
11574 || '_' || pjp1_i.SUP_STATUS_CODE,
11575 'LW_N_Y_', to_number(null),
11576 pjp1_i.ACT_LABOR_RAW_COST) ACT_LABOR_RAW_COST,
11577 decode(pjp1_i.RELATIONSHIP_TYPE
11578 || '_' || pjp1_i.WBS_ROLLUP_FLAG
11579 || '_' || pjp1_i.PRG_ROLLUP_FLAG
11580 || '_' || pjp1_i.SUP_STATUS_CODE,
11581 'LW_N_Y_', to_number(null),
11582 pjp1_i.ACT_EQUIP_RAW_COST) ACT_EQUIP_RAW_COST,
11583 decode(pjp1_i.RELATIONSHIP_TYPE
11584 || '_' || pjp1_i.WBS_ROLLUP_FLAG
11585 || '_' || pjp1_i.PRG_ROLLUP_FLAG
11586 || '_' || pjp1_i.SUP_STATUS_CODE,
11587 'LW_N_Y_', to_number(null),
11588 pjp1_i.ETC_LABOR_HRS) ETC_LABOR_HRS,
11589 decode(pjp1_i.RELATIONSHIP_TYPE
11590 || '_' || pjp1_i.WBS_ROLLUP_FLAG
11591 || '_' || pjp1_i.PRG_ROLLUP_FLAG
11592 || '_' || pjp1_i.SUP_STATUS_CODE,
11593 'LW_N_Y_', to_number(null),
11594 pjp1_i.ETC_EQUIP_HRS) ETC_EQUIP_HRS,
11595 decode(pjp1_i.RELATIONSHIP_TYPE
11596 || '_' || pjp1_i.WBS_ROLLUP_FLAG
11597 || '_' || pjp1_i.PRG_ROLLUP_FLAG
11598 || '_' || pjp1_i.SUP_STATUS_CODE,
11599 'LW_N_Y_', to_number(null),
11600 pjp1_i.ETC_LABOR_BRDN_COST) ETC_LABOR_BRDN_COST,
11601 decode(pjp1_i.RELATIONSHIP_TYPE
11602 || '_' || pjp1_i.WBS_ROLLUP_FLAG
11603 || '_' || pjp1_i.PRG_ROLLUP_FLAG
11604 || '_' || pjp1_i.SUP_STATUS_CODE,
11605 'LW_N_Y_', to_number(null),
11606 pjp1_i.ETC_EQUIP_BRDN_COST) ETC_EQUIP_BRDN_COST,
11607 decode(pjp1_i.RELATIONSHIP_TYPE
11608 || '_' || pjp1_i.WBS_ROLLUP_FLAG
11609 || '_' || pjp1_i.PRG_ROLLUP_FLAG
11610 || '_' || pjp1_i.SUP_STATUS_CODE,
11611 'LW_N_Y_', to_number(null),
11612 pjp1_i.ETC_BRDN_COST) ETC_BRDN_COST,
11613 decode(pjp1_i.RELATIONSHIP_TYPE
11614 || '_' || pjp1_i.WBS_ROLLUP_FLAG
11615 || '_' || pjp1_i.PRG_ROLLUP_FLAG
11616 || '_' || pjp1_i.SUP_STATUS_CODE,
11617 'LW_N_Y_', to_number(null),
11618 pjp1_i.ETC_RAW_COST) ETC_RAW_COST,
11619 decode(pjp1_i.RELATIONSHIP_TYPE
11620 || '_' || pjp1_i.WBS_ROLLUP_FLAG
11621 || '_' || pjp1_i.PRG_ROLLUP_FLAG
11622 || '_' || pjp1_i.SUP_STATUS_CODE,
11623 'LW_N_Y_', to_number(null),
11624 pjp1_i.ETC_LABOR_RAW_COST) ETC_LABOR_RAW_COST,
11625 decode(pjp1_i.RELATIONSHIP_TYPE
11626 || '_' || pjp1_i.WBS_ROLLUP_FLAG
11627 || '_' || pjp1_i.PRG_ROLLUP_FLAG
11628 || '_' || pjp1_i.SUP_STATUS_CODE,
11629 'LW_N_Y_', to_number(null),
11630 pjp1_i.ETC_EQUIP_RAW_COST) ETC_EQUIP_RAW_COST,
11631 pjp1_i.CUSTOM1,
11632 pjp1_i.CUSTOM2,
11633 pjp1_i.CUSTOM3,
11634 pjp1_i.CUSTOM4,
11635 pjp1_i.CUSTOM5,
11636 pjp1_i.CUSTOM6,
11637 pjp1_i.CUSTOM7,
11638 pjp1_i.CUSTOM8,
11639 pjp1_i.CUSTOM9,
11640 pjp1_i.CUSTOM10,
11641 pjp1_i.CUSTOM11,
11642 pjp1_i.CUSTOM12,
11643 pjp1_i.CUSTOM13,
11644 pjp1_i.CUSTOM14,
11645 pjp1_i.CUSTOM15
11646 from
11647 (
11648 select
11649 decode(nvl(prg.SUB_EMT_ID, -1), nvl(prg.SUB_ROLLUP_ID, -1),
11650 pjp.INSERT_FLAG, 'Y') INSERT_FLAG,
11651 pjp.RELATIONSHIP_TYPE,
11652 decode(nvl(prg.SUB_EMT_ID, -1), nvl(prg.SUB_ROLLUP_ID, -1),
11653 null, sub_ver.STATUS_CODE) SUB_STATUS_CODE,
11654 decode(nvl(prg.SUB_EMT_ID, -1), nvl(prg.SUB_ROLLUP_ID, -1),
11655 null, sup_ver.STATUS_CODE) SUP_STATUS_CODE,
11656 decode(nvl(prg.SUB_EMT_ID, -1), nvl(prg.SUB_ROLLUP_ID, -1),
11657 null, sup_wpa.WP_ENABLE_VERSION_FLAG)SUP_VER_ENABLED,
11658 decode(nvl(prg.SUB_EMT_ID, -1), nvl(prg.SUB_ROLLUP_ID, -1),
11659 null, decode(pjp.PLAN_VERSION_ID,
11660 -1, prg.SUP_ID,
11661 -3, prg.SUP_ID,
11662 -4, prg.SUP_ID,
11663 null)) SUP_ID,
11664 decode(nvl(prg.SUB_EMT_ID, -1), nvl(prg.SUB_ROLLUP_ID, -1),
11665 null, decode(pjp.PLAN_VERSION_ID,
11666 -1, prg.SUP_EMT_ID,
11667 -3, prg.SUP_EMT_ID,
11668 -4, prg.SUP_EMT_ID,
11669 null)) SUP_EMT_ID,
11670 decode(nvl(prg.SUB_EMT_ID, -1), nvl(prg.SUB_ROLLUP_ID, -1),
11671 null, decode(pjp.PLAN_VERSION_ID,
11672 -1, prg.WP_FLAG,
11673 -3, prg.WP_FLAG,
11674 -4, prg.WP_FLAG,
11675 null)) SUP_WP_FLAG,
11676 1 WORKER_ID,
11677 -- p_worker_id WORKER_ID,
11678 'W' RECORD_TYPE,
11679 decode(nvl(prg.SUB_EMT_ID, -1), nvl(prg.SUB_ROLLUP_ID, -1),
11680 l_level, prg.SUP_LEVEL) PRG_LEVEL,
11681 pjp.LINE_TYPE,
11682 decode(nvl(prg.SUB_EMT_ID, -1), nvl(prg.SUB_ROLLUP_ID, -1),
11683 pjp.PROJECT_ID, prg.SUP_PROJECT_ID) PROJECT_ID,
11684 decode(nvl(prg.SUB_EMT_ID, -1), nvl(prg.SUB_ROLLUP_ID, -1),
11685 pjp.PROJECT_ORG_ID,
11686 prg.SUP_PROJECT_ORG_ID) PROJECT_ORG_ID,
11687 decode(nvl(prg.SUB_EMT_ID, -1), nvl(prg.SUB_ROLLUP_ID, -1),
11688 pjp.PROJECT_ORGANIZATION_ID,
11689 prg.SUP_PROJECT_ORGANIZATION_ID) PROJECT_ORGANIZATION_ID,
11690 decode(nvl(prg.SUB_EMT_ID, -1), nvl(prg.SUB_ROLLUP_ID, -1),
11691 pjp.PROJECT_ELEMENT_ID,
11692 prg.SUB_ROLLUP_ID) PROJECT_ELEMENT_ID,
11693 pjp.TIME_ID,
11694 pjp.PERIOD_TYPE_ID,
11695 pjp.CALENDAR_TYPE,
11696 pjp.RBS_AGGR_LEVEL,
11697 decode(nvl(prg.SUB_EMT_ID, -1), nvl(prg.SUB_ROLLUP_ID, -1),
11698 pjp.WBS_ROLLUP_FLAG, 'N') WBS_ROLLUP_FLAG,
11699 decode(nvl(prg.SUB_EMT_ID, -1), nvl(prg.SUB_ROLLUP_ID, -1),
11700 pjp.PRG_ROLLUP_FLAG, 'Y') PRG_ROLLUP_FLAG,
11701 pjp.CURR_RECORD_TYPE_ID,
11702 pjp.CURRENCY_CODE,
11703 pjp.RBS_ELEMENT_ID,
11704 pjp.RBS_VERSION_ID,
11705 decode(nvl(prg.SUB_EMT_ID, -1), nvl(prg.SUB_ROLLUP_ID, -1),
11706 pjp.PLAN_VERSION_ID,
11707 decode(pjp.PLAN_VERSION_ID,
11708 -1, pjp.PLAN_VERSION_ID,
11709 -2, pjp.PLAN_VERSION_ID,
11710 -3, pjp.PLAN_VERSION_ID,
11711 -4, pjp.PLAN_VERSION_ID,
11712 wbs_hdr.PLAN_VERSION_ID)) PLAN_VERSION_ID,
11713 decode(nvl(prg.SUB_EMT_ID, -1), nvl(prg.SUB_ROLLUP_ID, -1),
11714 pjp.PLAN_TYPE_ID,
11715 decode(pjp.PLAN_VERSION_ID,
11716 -1, pjp.PLAN_TYPE_ID,
11717 -2, pjp.PLAN_TYPE_ID,
11718 -3, pjp.PLAN_TYPE_ID,
11719 -4, pjp.PLAN_TYPE_ID,
11720 wbs_hdr.PLAN_TYPE_ID)) PLAN_TYPE_ID,
11721 pjp.PLAN_TYPE_CODE,
11722 sum(pjp.RAW_COST) RAW_COST,
11723 sum(pjp.BRDN_COST) BRDN_COST,
11724 sum(pjp.REVENUE) REVENUE,
11725 sum(pjp.BILL_RAW_COST) BILL_RAW_COST,
11726 sum(pjp.BILL_BRDN_COST) BILL_BRDN_COST,
11727 sum(pjp.BILL_LABOR_RAW_COST) BILL_LABOR_RAW_COST,
11728 sum(pjp.BILL_LABOR_BRDN_COST) BILL_LABOR_BRDN_COST,
11729 sum(pjp.BILL_LABOR_HRS) BILL_LABOR_HRS,
11730 sum(pjp.EQUIPMENT_RAW_COST) EQUIPMENT_RAW_COST,
11731 sum(pjp.EQUIPMENT_BRDN_COST) EQUIPMENT_BRDN_COST,
11732 sum(pjp.CAPITALIZABLE_RAW_COST) CAPITALIZABLE_RAW_COST,
11733 sum(pjp.CAPITALIZABLE_BRDN_COST) CAPITALIZABLE_BRDN_COST,
11734 sum(pjp.LABOR_RAW_COST) LABOR_RAW_COST,
11735 sum(pjp.LABOR_BRDN_COST) LABOR_BRDN_COST,
11736 sum(pjp.LABOR_HRS) LABOR_HRS,
11737 sum(pjp.LABOR_REVENUE) LABOR_REVENUE,
11738 sum(pjp.EQUIPMENT_HOURS) EQUIPMENT_HOURS,
11739 sum(pjp.BILLABLE_EQUIPMENT_HOURS) BILLABLE_EQUIPMENT_HOURS,
11740 sum(pjp.SUP_INV_COMMITTED_COST) SUP_INV_COMMITTED_COST,
11741 sum(pjp.PO_COMMITTED_COST) PO_COMMITTED_COST,
11742 sum(pjp.PR_COMMITTED_COST) PR_COMMITTED_COST,
11743 sum(pjp.OTH_COMMITTED_COST) OTH_COMMITTED_COST,
11744 sum(pjp.ACT_LABOR_HRS) ACT_LABOR_HRS,
11745 sum(pjp.ACT_EQUIP_HRS) ACT_EQUIP_HRS,
11746 sum(pjp.ACT_LABOR_BRDN_COST) ACT_LABOR_BRDN_COST,
11747 sum(pjp.ACT_EQUIP_BRDN_COST) ACT_EQUIP_BRDN_COST,
11748 sum(pjp.ACT_BRDN_COST) ACT_BRDN_COST,
11749 sum(pjp.ACT_RAW_COST) ACT_RAW_COST,
11750 sum(pjp.ACT_REVENUE) ACT_REVENUE,
11751 sum(pjp.ACT_LABOR_RAW_COST) ACT_LABOR_RAW_COST,
11752 sum(pjp.ACT_EQUIP_RAW_COST) ACT_EQUIP_RAW_COST,
11753 sum(pjp.ETC_LABOR_HRS) ETC_LABOR_HRS,
11754 sum(pjp.ETC_EQUIP_HRS) ETC_EQUIP_HRS,
11755 sum(pjp.ETC_LABOR_BRDN_COST) ETC_LABOR_BRDN_COST,
11756 sum(pjp.ETC_EQUIP_BRDN_COST) ETC_EQUIP_BRDN_COST,
11757 sum(pjp.ETC_BRDN_COST) ETC_BRDN_COST,
11758 sum(pjp.ETC_RAW_COST) ETC_RAW_COST,
11759 sum(pjp.ETC_LABOR_RAW_COST) ETC_LABOR_RAW_COST,
11760 sum(pjp.ETC_EQUIP_RAW_COST) ETC_EQUIP_RAW_COST,
11761 sum(pjp.CUSTOM1) CUSTOM1,
11762 sum(pjp.CUSTOM2) CUSTOM2,
11763 sum(pjp.CUSTOM3) CUSTOM3,
11764 sum(pjp.CUSTOM4) CUSTOM4,
11765 sum(pjp.CUSTOM5) CUSTOM5,
11766 sum(pjp.CUSTOM6) CUSTOM6,
11767 sum(pjp.CUSTOM7) CUSTOM7,
11768 sum(pjp.CUSTOM8) CUSTOM8,
11769 sum(pjp.CUSTOM9) CUSTOM9,
11770 sum(pjp.CUSTOM10) CUSTOM10,
11771 sum(pjp.CUSTOM11) CUSTOM11,
11772 sum(pjp.CUSTOM12) CUSTOM12,
11773 sum(pjp.CUSTOM13) CUSTOM13,
11774 sum(pjp.CUSTOM14) CUSTOM14,
11775 sum(pjp.CUSTOM15) CUSTOM15
11776 from
11777 (
11778 select /*+ ordered index(wbs PA_XBS_DENORM_N2) */
11779 -- get incremental task level amounts from source and
11780 -- program rollup amounts from interim
11781 to_char(null) LINE_TYPE,
11782 wbs_hdr.WBS_VERSION_ID,
11783 decode(wbs_hdr.WP_FLAG, 'Y', 'LW', 'LF') RELATIONSHIP_TYPE,
11784 decode(wbs_hdr.WP_FLAG
11785 || '_' || to_char(sign(pjp1.PLAN_VERSION_ID))
11786 || '_' || nvl(fin_plan.INVERT_ID, 'PRJ'),
11787 'N_1_PRJ', 'N',
11788 'N_-1_PRG', 'N',
11789 decode(top_slice.INVERT_ID,
11790 'PRJ', 'Y',
11791 decode(wbs.SUB_LEVEL,
11792 1, 'Y', 'N'))) PUSHUP_FLAG,
11793 decode(pjp1.RBS_AGGR_LEVEL,
11794 'L', 'N',
11795 decode(wbs_hdr.WP_FLAG
11796 || '_' || to_char(sign(pjp1.PLAN_VERSION_ID))
11797 || '_' || fin_plan.INVERT_ID,
11798 'N_1_PRG', decode(top_slice.INVERT_ID,
11799 'PRJ', 'Y',
11800 decode(wbs.SUB_LEVEL,
11801 1, 'Y', 'N')),
11802 'N_-1_PRG', 'N',
11803 decode(wbs_hdr.WP_FLAG
11804 || '_' || fin_plan.INVERT_ID
11805 || '_' || fin_plan.CB
11806 || '_' || fin_plan.CO
11807 || '_'
11808 || to_char(fin_plan.PLAN_VERSION_ID),
11809 'N_PRJ_Y_Y_-4', 'N',
11810 'Y'))
11811 ) INSERT_FLAG,
11812 pjp1.PROJECT_ID,
11813 pjp1.PROJECT_ORG_ID,
11814 pjp1.PROJECT_ORGANIZATION_ID,
11815 decode(top_slice.INVERT_ID,
11816 'PRJ', prg.SUP_EMT_ID,
11817 decode(wbs.SUB_LEVEL,
11818 1, prg.SUP_EMT_ID,
11819 wbs.SUP_EMT_ID)) PROJECT_ELEMENT_ID,
11820 pjp1.TIME_ID,
11821 pjp1.PERIOD_TYPE_ID,
11822 pjp1.CALENDAR_TYPE,
11823 pjp1.RBS_AGGR_LEVEL,
11824 'Y' WBS_ROLLUP_FLAG,
11825 pjp1.PRG_ROLLUP_FLAG,
11826 pjp1.CURR_RECORD_TYPE_ID,
11827 pjp1.CURRENCY_CODE,
11828 pjp1.RBS_ELEMENT_ID,
11829 pjp1.RBS_VERSION_ID,
11830 decode(wbs_hdr.WP_FLAG || '_' || fin_plan.INVERT_ID,
11831 'N_PRG', fin_plan.PLAN_VERSION_ID,
11832 pjp1.PLAN_VERSION_ID) PLAN_VERSION_ID,
11833 pjp1.PLAN_TYPE_ID,
11834 pjp1.PLAN_TYPE_CODE,
11835 pjp1.RAW_COST,
11836 pjp1.BRDN_COST,
11837 pjp1.REVENUE,
11838 pjp1.BILL_RAW_COST,
11839 pjp1.BILL_BRDN_COST,
11840 pjp1.BILL_LABOR_RAW_COST,
11841 pjp1.BILL_LABOR_BRDN_COST,
11842 pjp1.BILL_LABOR_HRS,
11843 pjp1.EQUIPMENT_RAW_COST,
11844 pjp1.EQUIPMENT_BRDN_COST,
11845 pjp1.CAPITALIZABLE_RAW_COST,
11846 pjp1.CAPITALIZABLE_BRDN_COST,
11847 pjp1.LABOR_RAW_COST,
11848 pjp1.LABOR_BRDN_COST,
11849 pjp1.LABOR_HRS,
11850 pjp1.LABOR_REVENUE,
11851 pjp1.EQUIPMENT_HOURS,
11852 pjp1.BILLABLE_EQUIPMENT_HOURS,
11853 pjp1.SUP_INV_COMMITTED_COST,
11854 pjp1.PO_COMMITTED_COST,
11855 pjp1.PR_COMMITTED_COST,
11856 pjp1.OTH_COMMITTED_COST,
11857 pjp1.ACT_LABOR_HRS,
11858 pjp1.ACT_EQUIP_HRS,
11859 pjp1.ACT_LABOR_BRDN_COST,
11860 pjp1.ACT_EQUIP_BRDN_COST,
11861 pjp1.ACT_BRDN_COST,
11862 pjp1.ACT_RAW_COST,
11863 pjp1.ACT_REVENUE,
11864 pjp1.ACT_LABOR_RAW_COST,
11865 pjp1.ACT_EQUIP_RAW_COST,
11866 pjp1.ETC_LABOR_HRS,
11867 pjp1.ETC_EQUIP_HRS,
11868 pjp1.ETC_LABOR_BRDN_COST,
11869 pjp1.ETC_EQUIP_BRDN_COST,
11870 pjp1.ETC_BRDN_COST,
11871 pjp1.ETC_RAW_COST,
11872 pjp1.ETC_LABOR_RAW_COST,
11873 pjp1.ETC_EQUIP_RAW_COST,
11874 pjp1.CUSTOM1,
11875 pjp1.CUSTOM2,
11876 pjp1.CUSTOM3,
11877 pjp1.CUSTOM4,
11878 pjp1.CUSTOM5,
11879 pjp1.CUSTOM6,
11880 pjp1.CUSTOM7,
11881 pjp1.CUSTOM8,
11882 pjp1.CUSTOM9,
11883 pjp1.CUSTOM10,
11884 pjp1.CUSTOM11,
11885 pjp1.CUSTOM12,
11886 pjp1.CUSTOM13,
11887 pjp1.CUSTOM14,
11888 pjp1.CUSTOM15
11889 from
11890 PJI_FP_AGGR_PJP1_T pjp1,
11891 PJI_PJP_WBS_HEADER wbs_hdr,
11892 PA_XBS_DENORM wbs,
11893 PJI_XBS_DENORM prg,
11894 (
11895 select 'Y' CB, 'N' CO, -3 PLAN_VERSION_ID, 'PRG' INVERT_ID
11896 from DUAL union all
11897 select 'Y' CB, 'N' CO, -3 PLAN_VERSION_ID, 'PRJ' INVERT_ID
11898 from DUAL union all
11899 select 'N' CB, 'Y' CO, -4 PLAN_VERSION_ID, 'PRG' INVERT_ID
11900 from DUAL union all
11901 select 'N' CB, 'Y' CO, -4 PLAN_VERSION_ID, 'PRJ' INVERT_ID
11902 from DUAL union all
11903 select 'Y' CB, 'Y' CO, -3 PLAN_VERSION_ID, 'PRG' INVERT_ID
11904 from DUAL union all
11905 select 'Y' CB, 'Y' CO, -3 PLAN_VERSION_ID, 'PRJ' INVERT_ID
11906 from DUAL union all
11907 select 'Y' CB, 'Y' CO, -4 PLAN_VERSION_ID, 'PRG' INVERT_ID
11908 from DUAL union all
11909 select 'Y' CB, 'Y' CO, -4 PLAN_VERSION_ID, 'PRJ' INVERT_ID
11910 from DUAL
11911 ) fin_plan,
11912 (
11913 select 1 WBS_SUP_LEVEL,
11914 1 WBS_SUB_LEVEL,
11915 'PRJ' INVERT_ID
11916 from DUAL
11917 union all
11918 select 1 WBS_SUP_LEVEL,
11919 1 WBS_SUB_LEVEL,
11920 'WBS' INVERT_ID
11921 from DUAL
11922 ) top_slice
11923 where
11924 prg.STRUCT_TYPE = 'PRG' and
11925 prg.SUP_LEVEL = l_level and
11926 prg.SUB_LEVEL = l_level and
11927 wbs.STRUCT_TYPE = 'WBS' and
11928 ((wbs.SUP_LEVEL = 1 and
11929 wbs.SUB_LEVEL = 1) or
11930 (wbs.SUP_LEVEL <> wbs.SUB_LEVEL)) and
11931 wbs.STRUCT_VERSION_ID = prg.SUP_ID and
11932 wbs.SUP_PROJECT_ID = prg.SUP_PROJECT_ID and
11933 -- pjp1.WORKER_ID = p_worker_id and
11934 pjp1.PRG_LEVEL in (0, l_level) and
11935 pjp1.RBS_AGGR_LEVEL in ('T', 'L') and
11936 pjp1.WBS_ROLLUP_FLAG = 'N' and
11937 pjp1.PRG_ROLLUP_FLAG in ('Y', 'N') and
11938 pjp1.PROJECT_ID = wbs_hdr.PROJECT_ID and
11939 pjp1.PLAN_VERSION_ID = wbs_hdr.PLAN_VERSION_ID and
11940 pjp1.PLAN_TYPE_CODE = wbs_hdr.PLAN_TYPE_CODE and
11941 decode(pjp1.PLAN_VERSION_ID,
11942 -3, pjp1.PLAN_TYPE_ID,
11943 -4, pjp1.PLAN_TYPE_ID,
11944 -1) = decode(pjp1.PLAN_VERSION_ID,
11945 -3, wbs_hdr.PLAN_TYPE_ID,
11946 -4, wbs_hdr.PLAN_TYPE_ID,
11947 -1) and
11948 wbs.STRUCT_VERSION_ID = wbs_hdr.WBS_VERSION_ID and
11949 pjp1.PROJECT_ELEMENT_ID = wbs.SUB_EMT_ID and
11950 wbs_hdr.CB_FLAG = fin_plan.CB (+) and
11951 wbs_hdr.CO_FLAG = fin_plan.CO (+) and
11952 wbs.SUP_LEVEL = top_slice.WBS_SUP_LEVEL (+) and
11953 wbs.SUB_LEVEL <> top_slice.WBS_SUB_LEVEL (+)
11954 union all
11955 select /*+ ordered index(prg pji_xbs_denorm_n3) */ -- Bug 10632614
11956 -- get incremental project level amounts from source
11957 to_char(null) LINE_TYPE,
11958 wbs_hdr.WBS_VERSION_ID,
11959 decode(wbs_hdr.WP_FLAG, 'Y', 'LW', 'LF') RELATIONSHIP_TYPE,
11960 'Y' PUSHUP_FLAG,
11961 decode(pjp1.RBS_AGGR_LEVEL,
11962 'L', 'N',
11963 decode(fin_plan.PLAN_VERSION_ID,
11964 null, 'N', 'Y')) INSERT_FLAG,
11965 pjp1.PROJECT_ID,
11966 pjp1.PROJECT_ORG_ID,
11967 pjp1.PROJECT_ORGANIZATION_ID,
11968 pjp1.PROJECT_ELEMENT_ID,
11969 pjp1.TIME_ID,
11970 pjp1.PERIOD_TYPE_ID,
11971 pjp1.CALENDAR_TYPE,
11972 pjp1.RBS_AGGR_LEVEL,
11973 'Y' WBS_ROLLUP_FLAG,
11974 pjp1.PRG_ROLLUP_FLAG,
11975 pjp1.CURR_RECORD_TYPE_ID,
11976 pjp1.CURRENCY_CODE,
11977 pjp1.RBS_ELEMENT_ID,
11978 pjp1.RBS_VERSION_ID,
11979 decode(wbs_hdr.WP_FLAG,
11980 'N', decode(pjp1.PLAN_VERSION_ID,
11981 -1, pjp1.PLAN_VERSION_ID,
11982 -2, pjp1.PLAN_VERSION_ID,
11983 -3, pjp1.PLAN_VERSION_ID, -- won't exist
11984 -4, pjp1.PLAN_VERSION_ID, -- won't exist
11985 fin_plan.PLAN_VERSION_ID),
11986 pjp1.PLAN_VERSION_ID) PLAN_VERSION_ID,
11987 pjp1.PLAN_TYPE_ID,
11988 pjp1.PLAN_TYPE_CODE,
11989 pjp1.RAW_COST,
11990 pjp1.BRDN_COST,
11991 pjp1.REVENUE,
11992 pjp1.BILL_RAW_COST,
11993 pjp1.BILL_BRDN_COST,
11994 pjp1.BILL_LABOR_RAW_COST,
11995 pjp1.BILL_LABOR_BRDN_COST,
11996 pjp1.BILL_LABOR_HRS,
11997 pjp1.EQUIPMENT_RAW_COST,
11998 pjp1.EQUIPMENT_BRDN_COST,
11999 pjp1.CAPITALIZABLE_RAW_COST,
12000 pjp1.CAPITALIZABLE_BRDN_COST,
12001 pjp1.LABOR_RAW_COST,
12002 pjp1.LABOR_BRDN_COST,
12003 pjp1.LABOR_HRS,
12004 pjp1.LABOR_REVENUE,
12005 pjp1.EQUIPMENT_HOURS,
12006 pjp1.BILLABLE_EQUIPMENT_HOURS,
12007 pjp1.SUP_INV_COMMITTED_COST,
12008 pjp1.PO_COMMITTED_COST,
12009 pjp1.PR_COMMITTED_COST,
12010 pjp1.OTH_COMMITTED_COST,
12011 pjp1.ACT_LABOR_HRS,
12012 pjp1.ACT_EQUIP_HRS,
12013 pjp1.ACT_LABOR_BRDN_COST,
12014 pjp1.ACT_EQUIP_BRDN_COST,
12015 pjp1.ACT_BRDN_COST,
12016 pjp1.ACT_RAW_COST,
12017 pjp1.ACT_REVENUE,
12018 pjp1.ACT_LABOR_RAW_COST,
12019 pjp1.ACT_EQUIP_RAW_COST,
12020 pjp1.ETC_LABOR_HRS,
12021 pjp1.ETC_EQUIP_HRS,
12022 pjp1.ETC_LABOR_BRDN_COST,
12023 pjp1.ETC_EQUIP_BRDN_COST,
12024 pjp1.ETC_BRDN_COST,
12025 pjp1.ETC_RAW_COST,
12026 pjp1.ETC_LABOR_RAW_COST,
12027 pjp1.ETC_EQUIP_RAW_COST,
12028 pjp1.CUSTOM1,
12029 pjp1.CUSTOM2,
12030 pjp1.CUSTOM3,
12031 pjp1.CUSTOM4,
12032 pjp1.CUSTOM5,
12033 pjp1.CUSTOM6,
12034 pjp1.CUSTOM7,
12035 pjp1.CUSTOM8,
12036 pjp1.CUSTOM9,
12037 pjp1.CUSTOM10,
12038 pjp1.CUSTOM11,
12039 pjp1.CUSTOM12,
12040 pjp1.CUSTOM13,
12041 pjp1.CUSTOM14,
12042 pjp1.CUSTOM15
12043 from
12044 PJI_FP_AGGR_PJP1_T pjp1,
12045 PJI_PJP_WBS_HEADER wbs_hdr,
12046 PJI_XBS_DENORM prg,
12047 (
12048 select 'Y' CB_FLAG,
12049 'N' CO_FLAG,
12050 -3 PLAN_VERSION_ID
12051 from DUAL union all
12052 select 'N' CB_FLAG,
12053 'Y' CO_FLAG,
12054 -4 PLAN_VERSION_ID
12055 from DUAL union all
12056 select 'Y' CB_FLAG,
12057 'Y' CO_FLAG,
12058 -3 PLAN_VERSION_ID
12059 from DUAL union all
12060 select 'Y' CB_FLAG,
12061 'Y' CO_FLAG,
12062 -4 PLAN_VERSION_ID
12063 from DUAL
12064 ) fin_plan
12065 where
12066 prg.STRUCT_TYPE = 'PRG' and
12067 prg.SUP_LEVEL = l_level and
12068 prg.SUB_LEVEL = l_level and
12069 -- pjp1.WORKER_ID = p_worker_id and
12070 pjp1.PROJECT_ID = prg.SUP_PROJECT_ID and
12071 pjp1.PROJECT_ELEMENT_ID = prg.SUP_EMT_ID and
12072 pjp1.PRG_LEVEL = 0 and
12073 pjp1.RBS_AGGR_LEVEL in ('T', 'L') and
12074 pjp1.WBS_ROLLUP_FLAG = 'N' and
12075 pjp1.PRG_ROLLUP_FLAG = 'N' and
12076 wbs_hdr.PROJECT_ID = pjp1.PROJECT_ID and
12077 wbs_hdr.PLAN_VERSION_ID = pjp1.PLAN_VERSION_ID and
12078 wbs_hdr.PLAN_TYPE_CODE = pjp1.PLAN_TYPE_CODE and
12079 decode(wbs_hdr.WP_FLAG,
12080 'N', decode(pjp1.PLAN_VERSION_ID,
12081 -1, 'Y',
12082 -2, 'Y',
12083 -3, 'Y', -- won't exist
12084 -4, 'Y', -- won't exist
12085 decode(wbs_hdr.CB_FLAG || '_' ||
12086 wbs_hdr.CO_FLAG,
12087 'Y_Y', 'Y',
12088 'N_Y', 'Y',
12089 'Y_N', 'Y',
12090 'N')),
12091 'Y') = 'Y' and
12092 wbs_hdr.WBS_VERSION_ID = prg.SUP_ID and
12093 wbs_hdr.CB_FLAG = fin_plan.CB_FLAG (+) and
12094 wbs_hdr.CO_FLAG = fin_plan.CO_FLAG (+)
12095 union all
12096 select /*+ ordered
12097 index(log PA_PJI_PROJ_EVENTS_LOG_N2)
12098 index(fpr PJI_FP_XBS_ACCUM_F_N1)
12099 index(prg pji_xbs_denorm_n3) */ -- Bug 10632614
12100 -- get delta task level amounts from Reporting Lines
12101 to_char(null) LINE_TYPE,
12102 wbs_hdr.WBS_VERSION_ID,
12103 decode(wbs_hdr.WP_FLAG, 'Y', 'LW', 'LF') RELATIONSHIP_TYPE,
12104 decode(log.EVENT_TYPE,
12105 'WBS_CHANGE', 'Y',
12106 'WBS_PUBLISH', 'N') PUSHUP_FLAG,
12107 decode(wbs_hdr.WP_FLAG || '_' || fin_plan.INVERT_ID,
12108 'N_PRG', decode(top_slice.INVERT_ID,
12109 'PRJ', 'Y',
12110 decode(wbs.SUB_LEVEL,
12111 1, 'Y', 'N')),
12112 decode(wbs_hdr.WP_FLAG
12113 || '_' || fin_plan.INVERT_ID
12114 || '_' || fin_plan.CB
12115 || '_' || fin_plan.CO
12116 || '_' || to_char(fin_plan.PLAN_VERSION_ID),
12117 'N_PRJ_Y_Y_-4', 'N',
12118 'Y')) INSERT_FLAG,
12119 fpr.PROJECT_ID,
12120 fpr.PROJECT_ORG_ID,
12121 fpr.PROJECT_ORGANIZATION_ID,
12122 decode(top_slice.INVERT_ID,
12123 'PRJ', prg.SUP_EMT_ID,
12124 decode(wbs.SUB_LEVEL,
12125 1, prg.SUP_EMT_ID,
12126 wbs.SUP_EMT_ID)) PROJECT_ELEMENT_ID,
12127 fpr.TIME_ID,
12128 fpr.PERIOD_TYPE_ID,
12129 fpr.CALENDAR_TYPE,
12130 fpr.RBS_AGGR_LEVEL,
12131 'Y' WBS_ROLLUP_FLAG,
12132 fpr.PRG_ROLLUP_FLAG,
12133 fpr.CURR_RECORD_TYPE_ID,
12134 fpr.CURRENCY_CODE,
12135 fpr.RBS_ELEMENT_ID,
12136 fpr.RBS_VERSION_ID,
12137 decode(wbs_hdr.WP_FLAG || '_' || fin_plan.INVERT_ID,
12138 'N_PRG', fin_plan.PLAN_VERSION_ID,
12139 fpr.PLAN_VERSION_ID) PLAN_VERSION_ID,
12140 fpr.PLAN_TYPE_ID,
12141 fpr.PLAN_TYPE_CODE,
12142 wbs.SIGN * fpr.RAW_COST RAW_COST,
12143 wbs.SIGN * fpr.BRDN_COST BRDN_COST,
12144 wbs.SIGN * fpr.REVENUE REVENUE,
12145 wbs.SIGN * fpr.BILL_RAW_COST BILL_RAW_COST,
12146 wbs.SIGN * fpr.BILL_BRDN_COST BILL_BRDN_COST,
12147 wbs.SIGN * fpr.BILL_LABOR_RAW_COST BILL_LABOR_RAW_COST,
12148 wbs.SIGN * fpr.BILL_LABOR_BRDN_COST BILL_LABOR_BRDN_COST,
12149 wbs.SIGN * fpr.BILL_LABOR_HRS BILL_LABOR_HRS,
12150 wbs.SIGN * fpr.EQUIPMENT_RAW_COST EQUIPMENT_RAW_COST,
12151 wbs.SIGN * fpr.EQUIPMENT_BRDN_COST EQUIPMENT_BRDN_COST,
12152 wbs.SIGN * fpr.CAPITALIZABLE_RAW_COST CAPITALIZABLE_RAW_COST,
12153 wbs.SIGN * fpr.CAPITALIZABLE_BRDN_COST CAPITALIZABLE_BRDN_COST,
12154 wbs.SIGN * fpr.LABOR_RAW_COST LABOR_RAW_COST,
12155 wbs.SIGN * fpr.LABOR_BRDN_COST LABOR_BRDN_COST,
12156 wbs.SIGN * fpr.LABOR_HRS LABOR_HRS,
12157 wbs.SIGN * fpr.LABOR_REVENUE LABOR_REVENUE,
12158 wbs.SIGN * fpr.EQUIPMENT_HOURS EQUIPMENT_HOURS,
12159 wbs.SIGN * fpr.BILLABLE_EQUIPMENT_HOURS BILLABLE_EQUIPMENT_HOURS,
12160 wbs.SIGN * fpr.SUP_INV_COMMITTED_COST SUP_INV_COMMITTED_COST,
12161 wbs.SIGN * fpr.PO_COMMITTED_COST PO_COMMITTED_COST,
12162 wbs.SIGN * fpr.PR_COMMITTED_COST PR_COMMITTED_COST,
12163 wbs.SIGN * fpr.OTH_COMMITTED_COST OTH_COMMITTED_COST,
12164 wbs.SIGN * fpr.ACT_LABOR_HRS ACT_LABOR_HRS,
12165 wbs.SIGN * fpr.ACT_EQUIP_HRS ACT_EQUIP_HRS,
12166 wbs.SIGN * fpr.ACT_LABOR_BRDN_COST ACT_LABOR_BRDN_COST,
12167 wbs.SIGN * fpr.ACT_EQUIP_BRDN_COST ACT_EQUIP_BRDN_COST,
12168 wbs.SIGN * fpr.ACT_BRDN_COST ACT_BRDN_COST,
12169 wbs.SIGN * fpr.ACT_RAW_COST ACT_RAW_COST,
12170 wbs.SIGN * fpr.ACT_REVENUE ACT_REVENUE,
12171 wbs.SIGN * fpr.ACT_LABOR_RAW_COST ACT_LABOR_RAW_COST,
12172 wbs.SIGN * fpr.ACT_EQUIP_RAW_COST ACT_EQUIP_RAW_COST,
12173 wbs.SIGN * fpr.ETC_LABOR_HRS ETC_LABOR_HRS,
12174 wbs.SIGN * fpr.ETC_EQUIP_HRS ETC_EQUIP_HRS,
12175 wbs.SIGN * fpr.ETC_LABOR_BRDN_COST ETC_LABOR_BRDN_COST,
12176 wbs.SIGN * fpr.ETC_EQUIP_BRDN_COST ETC_EQUIP_BRDN_COST,
12177 wbs.SIGN * fpr.ETC_BRDN_COST ETC_BRDN_COST,
12178 wbs.SIGN * fpr.ETC_RAW_COST ETC_RAW_COST,
12179 wbs.SIGN * fpr.ETC_LABOR_RAW_COST ETC_LABOR_RAW_COST,
12180 wbs.SIGN * fpr.ETC_EQUIP_RAW_COST ETC_EQUIP_RAW_COST,
12181 wbs.SIGN * fpr.CUSTOM1 CUSTOM1,
12182 wbs.SIGN * fpr.CUSTOM2 CUSTOM2,
12183 wbs.SIGN * fpr.CUSTOM3 CUSTOM3,
12184 wbs.SIGN * fpr.CUSTOM4 CUSTOM4,
12185 wbs.SIGN * fpr.CUSTOM5 CUSTOM5,
12186 wbs.SIGN * fpr.CUSTOM6 CUSTOM6,
12187 wbs.SIGN * fpr.CUSTOM7 CUSTOM7,
12188 wbs.SIGN * fpr.CUSTOM8 CUSTOM8,
12189 wbs.SIGN * fpr.CUSTOM9 CUSTOM9,
12190 wbs.SIGN * fpr.CUSTOM10 CUSTOM10,
12191 wbs.SIGN * fpr.CUSTOM11 CUSTOM11,
12192 wbs.SIGN * fpr.CUSTOM12 CUSTOM12,
12193 wbs.SIGN * fpr.CUSTOM13 CUSTOM13,
12194 wbs.SIGN * fpr.CUSTOM14 CUSTOM14,
12195 wbs.SIGN * fpr.CUSTOM15 CUSTOM15
12196 from
12197 PA_PJI_PROJ_EVENTS_LOG log,
12198 PJI_PJP_WBS_HEADER wbs_hdr,
12199 PJI_XBS_DENORM_DELTA_T wbs,
12200 PJI_XBS_DENORM prg,
12201 PJI_FP_XBS_ACCUM_F fpr,
12202 (
12203 select 'Y' CB, 'N' CO, -3 PLAN_VERSION_ID, 'PRG' INVERT_ID
12204 from DUAL union all
12205 select 'Y' CB, 'N' CO, -3 PLAN_VERSION_ID, 'PRJ' INVERT_ID
12206 from DUAL union all
12207 select 'N' CB, 'Y' CO, -4 PLAN_VERSION_ID, 'PRG' INVERT_ID
12208 from DUAL union all
12209 select 'N' CB, 'Y' CO, -4 PLAN_VERSION_ID, 'PRJ' INVERT_ID
12210 from DUAL union all
12211 select 'Y' CB, 'Y' CO, -3 PLAN_VERSION_ID, 'PRG' INVERT_ID
12212 from DUAL union all
12213 select 'Y' CB, 'Y' CO, -3 PLAN_VERSION_ID, 'PRJ' INVERT_ID
12214 from DUAL union all
12215 select 'Y' CB, 'Y' CO, -4 PLAN_VERSION_ID, 'PRG' INVERT_ID
12216 from DUAL union all
12217 select 'Y' CB, 'Y' CO, -4 PLAN_VERSION_ID, 'PRJ' INVERT_ID
12218 from DUAL
12219 ) fin_plan,
12220 (
12221 select 1 WBS_SUP_LEVEL,
12222 1 WBS_SUB_LEVEL,
12223 'PRJ' INVERT_ID
12224 from DUAL
12225 union all
12226 select 1 WBS_SUP_LEVEL,
12227 1 WBS_SUB_LEVEL,
12228 'WBS' INVERT_ID
12229 from DUAL
12230 ) top_slice
12231 where
12232 prg.STRUCT_TYPE = 'PRG' and
12233 prg.SUP_LEVEL = l_level and
12234 prg.SUB_LEVEL = l_level and
12235 -- wbs.WORKER_ID = p_worker_id and
12236 wbs.STRUCT_TYPE = 'WBS' and
12237 wbs.SUP_PROJECT_ID = prg.SUP_PROJECT_ID and
12238 -- log.WORKER_ID = p_worker_id and
12239 log.EVENT_ID = g_event_id and
12240 log.EVENT_TYPE in ('WBS_CHANGE',
12241 'WBS_PUBLISH') and
12242 wbs_hdr.PROJECT_ID = log.ATTRIBUTE1 and
12243 wbs_hdr.PLAN_VERSION_ID = log.ATTRIBUTE3 and
12244 wbs_hdr.WBS_VERSION_ID = wbs.STRUCT_VERSION_ID and
12245 wbs_hdr.PROJECT_ID = prg.SUP_PROJECT_ID and
12246 wbs_hdr.WBS_VERSION_ID = prg.SUP_ID and
12247 fpr.RBS_AGGR_LEVEL = 'T' and
12248 fpr.WBS_ROLLUP_FLAG = 'N' and
12249 fpr.PRG_ROLLUP_FLAG in ('Y', 'N') and
12250 fpr.PROJECT_ID = wbs.SUP_PROJECT_ID and
12251 fpr.PROJECT_ELEMENT_ID = wbs.SUB_EMT_ID and
12252 fpr.PROJECT_ID = wbs_hdr.PROJECT_ID and
12253 fpr.PLAN_VERSION_ID = wbs_hdr.PLAN_VERSION_ID and
12254 fpr.PLAN_TYPE_CODE = wbs_hdr.PLAN_TYPE_CODE and
12255 decode(fpr.PLAN_VERSION_ID,
12256 -3, fpr.PLAN_TYPE_ID,
12257 -4, fpr.PLAN_TYPE_ID,
12258 -1) = decode(fpr.PLAN_VERSION_ID,
12259 -3, wbs_hdr.PLAN_TYPE_ID,
12260 -4, wbs_hdr.PLAN_TYPE_ID,
12261 -1) and
12262 wbs_hdr.CB_FLAG = fin_plan.CB (+) and
12263 wbs_hdr.CO_FLAG = fin_plan.CO (+) and
12264 wbs.SUP_LEVEL = top_slice.WBS_SUP_LEVEL (+) and
12265 wbs.SUB_LEVEL <> top_slice.WBS_SUB_LEVEL (+) and
12266 (wbs.SUP_LEVEL <> wbs.SUB_LEVEL or
12267 (wbs.SUP_LEVEL = 1 and
12268 wbs.SUB_LEVEL = 1))
12269 union all
12270 select /*+ ordered
12271 index(log PA_PJI_PROJ_EVENTS_LOG_N2)
12272 index(fpr PJI_FP_XBS_ACCUM_F_N1)
12273 index(prg pji_xbs_denorm_n3) */ -- Bug 10632614
12274 -- Baseline reversals and fact amounts (-3 slice)
12275 -- Current Original reversals and fact amounts (-4 slice)
12276 -- Part 1
12277 to_char(null) LINE_TYPE,
12278 wbs_hdr.WBS_VERSION_ID,
12279 'LF' RELATIONSHIP_TYPE,
12280 'Y' PUSHUP_FLAG,
12281 decode(fpr.RBS_AGGR_LEVEL,
12282 'L', 'N', 'Y') INSERT_FLAG,
12283 fpr.PROJECT_ID,
12284 fpr.PROJECT_ORG_ID,
12285 fpr.PROJECT_ORGANIZATION_ID,
12286 prg.SUP_EMT_ID PROJECT_ELEMENT_ID,
12287 fpr.TIME_ID,
12288 fpr.PERIOD_TYPE_ID,
12289 fpr.CALENDAR_TYPE,
12290 fpr.RBS_AGGR_LEVEL,
12291 'Y' WBS_ROLLUP_FLAG,
12292 fpr.PRG_ROLLUP_FLAG,
12293 fpr.CURR_RECORD_TYPE_ID,
12294 fpr.CURRENCY_CODE,
12295 fpr.RBS_ELEMENT_ID,
12296 fpr.RBS_VERSION_ID,
12297 decode(log.EVENT_TYPE,
12298 'PLAN_BASELINE', -3,
12299 'PLAN_ORIGINAL', -4) PLAN_VERSION_ID,
12300 fpr.PLAN_TYPE_ID,
12301 fpr.PLAN_TYPE_CODE,
12302 decode(fpr.PLAN_VERSION_ID,
12303 log.ATTRIBUTE3, -1,
12304 log.EVENT_OBJECT, 1,
12305 -3, -1,
12306 -4, -1)
12307 * fpr.RAW_COST RAW_COST,
12308 decode(fpr.PLAN_VERSION_ID,
12309 log.ATTRIBUTE3, -1,
12310 log.EVENT_OBJECT, 1,
12311 -3, -1,
12312 -4, -1)
12313 * fpr.BRDN_COST BRDN_COST,
12314 decode(fpr.PLAN_VERSION_ID,
12315 log.ATTRIBUTE3, -1,
12316 log.EVENT_OBJECT, 1,
12317 -3, -1,
12318 -4, -1)
12319 * fpr.REVENUE REVENUE,
12320 decode(fpr.PLAN_VERSION_ID,
12321 log.ATTRIBUTE3, -1,
12322 log.EVENT_OBJECT, 1,
12323 -3, -1,
12324 -4, -1)
12325 * fpr.BILL_RAW_COST BILL_RAW_COST,
12326 decode(fpr.PLAN_VERSION_ID,
12327 log.ATTRIBUTE3, -1,
12328 log.EVENT_OBJECT, 1,
12329 -3, -1,
12330 -4, -1)
12331 * fpr.BILL_BRDN_COST BILL_BRDN_COST,
12332 decode(fpr.PLAN_VERSION_ID,
12333 log.ATTRIBUTE3, -1,
12334 log.EVENT_OBJECT, 1,
12335 -3, -1,
12336 -4, -1)
12337 * fpr.BILL_LABOR_RAW_COST BILL_LABOR_RAW_COST,
12338 decode(fpr.PLAN_VERSION_ID,
12339 log.ATTRIBUTE3, -1,
12340 log.EVENT_OBJECT, 1,
12341 -3, -1,
12342 -4, -1)
12343 * fpr.BILL_LABOR_BRDN_COST BILL_LABOR_BRDN_COST,
12344 decode(fpr.PLAN_VERSION_ID,
12345 log.ATTRIBUTE3, -1,
12346 log.EVENT_OBJECT, 1,
12347 -3, -1,
12348 -4, -1)
12349 * fpr.BILL_LABOR_HRS BILL_LABOR_HRS,
12350 decode(fpr.PLAN_VERSION_ID,
12351 log.ATTRIBUTE3, -1,
12352 log.EVENT_OBJECT, 1,
12353 -3, -1,
12354 -4, -1)
12355 * fpr.EQUIPMENT_RAW_COST EQUIPMENT_RAW_COST,
12356 decode(fpr.PLAN_VERSION_ID,
12357 log.ATTRIBUTE3, -1,
12358 log.EVENT_OBJECT, 1,
12359 -3, -1,
12360 -4, -1)
12361 * fpr.EQUIPMENT_BRDN_COST EQUIPMENT_BRDN_COST,
12362 decode(fpr.PLAN_VERSION_ID,
12363 log.ATTRIBUTE3, -1,
12364 log.EVENT_OBJECT, 1,
12365 -3, -1,
12366 -4, -1)
12367 * fpr.CAPITALIZABLE_RAW_COST CAPITALIZABLE_RAW_COST,
12368 decode(fpr.PLAN_VERSION_ID,
12369 log.ATTRIBUTE3, -1,
12370 log.EVENT_OBJECT, 1,
12371 -3, -1,
12372 -4, -1)
12373 * fpr.CAPITALIZABLE_BRDN_COST CAPITALIZABLE_BRDN_COST,
12374 decode(fpr.PLAN_VERSION_ID,
12375 log.ATTRIBUTE3, -1,
12376 log.EVENT_OBJECT, 1,
12377 -3, -1,
12378 -4, -1)
12379 * fpr.LABOR_RAW_COST LABOR_RAW_COST,
12380 decode(fpr.PLAN_VERSION_ID,
12381 log.ATTRIBUTE3, -1,
12382 log.EVENT_OBJECT, 1,
12383 -3, -1,
12384 -4, -1)
12385 * fpr.LABOR_BRDN_COST LABOR_BRDN_COST,
12386 decode(fpr.PLAN_VERSION_ID,
12387 log.ATTRIBUTE3, -1,
12388 log.EVENT_OBJECT, 1,
12389 -3, -1,
12390 -4, -1)
12391 * fpr.LABOR_HRS LABOR_HRS,
12392 decode(fpr.PLAN_VERSION_ID,
12393 log.ATTRIBUTE3, -1,
12394 log.EVENT_OBJECT, 1,
12395 -3, -1,
12396 -4, -1)
12397 * fpr.LABOR_REVENUE LABOR_REVENUE,
12398 decode(fpr.PLAN_VERSION_ID,
12399 log.ATTRIBUTE3, -1,
12400 log.EVENT_OBJECT, 1,
12401 -3, -1,
12402 -4, -1)
12403 * fpr.EQUIPMENT_HOURS EQUIPMENT_HOURS,
12404 decode(fpr.PLAN_VERSION_ID,
12405 log.ATTRIBUTE3, -1,
12406 log.EVENT_OBJECT, 1,
12407 -3, -1,
12408 -4, -1)
12409 * fpr.BILLABLE_EQUIPMENT_HOURS BILLABLE_EQUIPMENT_HOURS,
12410 decode(fpr.PLAN_VERSION_ID,
12411 log.ATTRIBUTE3, -1,
12412 log.EVENT_OBJECT, 1,
12413 -3, -1,
12414 -4, -1)
12415 * fpr.SUP_INV_COMMITTED_COST SUP_INV_COMMITTED_COST,
12416 decode(fpr.PLAN_VERSION_ID,
12417 log.ATTRIBUTE3, -1,
12418 log.EVENT_OBJECT, 1,
12419 -3, -1,
12420 -4, -1)
12421 * fpr.PO_COMMITTED_COST PO_COMMITTED_COST,
12422 decode(fpr.PLAN_VERSION_ID,
12423 log.ATTRIBUTE3, -1,
12424 log.EVENT_OBJECT, 1,
12425 -3, -1,
12426 -4, -1)
12427 * fpr.PR_COMMITTED_COST PR_COMMITTED_COST,
12428 decode(fpr.PLAN_VERSION_ID,
12429 log.ATTRIBUTE3, -1,
12430 log.EVENT_OBJECT, 1,
12431 -3, -1,
12432 -4, -1)
12433 * fpr.OTH_COMMITTED_COST OTH_COMMITTED_COST,
12434 decode(fpr.PLAN_VERSION_ID,
12435 log.ATTRIBUTE3, -1,
12436 log.EVENT_OBJECT, 1,
12437 -3, -1,
12438 -4, -1)
12439 * fpr.ACT_LABOR_HRS ACT_LABOR_HRS,
12440 decode(fpr.PLAN_VERSION_ID,
12441 log.ATTRIBUTE3, -1,
12442 log.EVENT_OBJECT, 1,
12443 -3, -1,
12444 -4, -1)
12445 * fpr.ACT_EQUIP_HRS ACT_EQUIP_HRS,
12446 decode(fpr.PLAN_VERSION_ID,
12447 log.ATTRIBUTE3, -1,
12448 log.EVENT_OBJECT, 1,
12449 -3, -1,
12450 -4, -1)
12451 * fpr.ACT_LABOR_BRDN_COST ACT_LABOR_BRDN_COST,
12452 decode(fpr.PLAN_VERSION_ID,
12453 log.ATTRIBUTE3, -1,
12454 log.EVENT_OBJECT, 1,
12455 -3, -1,
12456 -4, -1)
12457 * fpr.ACT_EQUIP_BRDN_COST ACT_EQUIP_BRDN_COST,
12458 decode(fpr.PLAN_VERSION_ID,
12459 log.ATTRIBUTE3, -1,
12460 log.EVENT_OBJECT, 1,
12461 -3, -1,
12462 -4, -1)
12463 * fpr.ACT_BRDN_COST ACT_BRDN_COST,
12464 decode(fpr.PLAN_VERSION_ID,
12465 log.ATTRIBUTE3, -1,
12466 log.EVENT_OBJECT, 1,
12467 -3, -1,
12468 -4, -1)
12469 * fpr.ACT_RAW_COST ACT_RAW_COST,
12470 decode(fpr.PLAN_VERSION_ID,
12471 log.ATTRIBUTE3, -1,
12472 log.EVENT_OBJECT, 1,
12473 -3, -1,
12474 -4, -1)
12475 * fpr.ACT_REVENUE ACT_REVENUE,
12476 decode(fpr.PLAN_VERSION_ID,
12477 log.ATTRIBUTE3, -1,
12478 log.EVENT_OBJECT, 1,
12479 -3, -1,
12480 -4, -1)
12481 * fpr.ACT_LABOR_RAW_COST ACT_LABOR_RAW_COST,
12482 decode(fpr.PLAN_VERSION_ID,
12483 log.ATTRIBUTE3, -1,
12484 log.EVENT_OBJECT, 1,
12485 -3, -1,
12486 -4, -1)
12487 * fpr.ACT_EQUIP_RAW_COST ACT_EQUIP_RAW_COST,
12488 decode(fpr.PLAN_VERSION_ID,
12489 log.ATTRIBUTE3, -1,
12490 log.EVENT_OBJECT, 1,
12491 -3, -1,
12492 -4, -1)
12493 * fpr.ETC_LABOR_HRS ETC_LABOR_HRS,
12494 decode(fpr.PLAN_VERSION_ID,
12495 log.ATTRIBUTE3, -1,
12496 log.EVENT_OBJECT, 1,
12497 -3, -1,
12498 -4, -1)
12499 * fpr.ETC_EQUIP_HRS ETC_EQUIP_HRS,
12500 decode(fpr.PLAN_VERSION_ID,
12501 log.ATTRIBUTE3, -1,
12502 log.EVENT_OBJECT, 1,
12503 -3, -1,
12504 -4, -1)
12505 * fpr.ETC_LABOR_BRDN_COST ETC_LABOR_BRDN_COST,
12506 decode(fpr.PLAN_VERSION_ID,
12507 log.ATTRIBUTE3, -1,
12508 log.EVENT_OBJECT, 1,
12509 -3, -1,
12510 -4, -1)
12511 * fpr.ETC_EQUIP_BRDN_COST ETC_EQUIP_BRDN_COST,
12512 decode(fpr.PLAN_VERSION_ID,
12513 log.ATTRIBUTE3, -1,
12514 log.EVENT_OBJECT, 1,
12515 -3, -1,
12516 -4, -1)
12517 * fpr.ETC_BRDN_COST ETC_BRDN_COST,
12518 decode(fpr.PLAN_VERSION_ID,
12519 log.ATTRIBUTE3, -1,
12520 log.EVENT_OBJECT, 1,
12521 -3, -1,
12522 -4, -1)
12523 * fpr.ETC_RAW_COST ETC_RAW_COST,
12524 decode(fpr.PLAN_VERSION_ID,
12525 log.ATTRIBUTE3, -1,
12526 log.EVENT_OBJECT, 1,
12527 -3, -1,
12528 -4, -1)
12529 * fpr.ETC_LABOR_RAW_COST ETC_LABOR_RAW_COST,
12530 decode(fpr.PLAN_VERSION_ID,
12531 log.ATTRIBUTE3, -1,
12532 log.EVENT_OBJECT, 1,
12533 -3, -1,
12534 -4, -1)
12535 * fpr.ETC_EQUIP_RAW_COST ETC_EQUIP_RAW_COST,
12536 decode(fpr.PLAN_VERSION_ID,
12537 log.ATTRIBUTE3, -1,
12538 log.EVENT_OBJECT, 1,
12539 -3, -1,
12540 -4, -1)
12541 * fpr.CUSTOM1 CUSTOM1,
12542 decode(fpr.PLAN_VERSION_ID,
12543 log.ATTRIBUTE3, -1,
12544 log.EVENT_OBJECT, 1,
12545 -3, -1,
12546 -4, -1)
12547 * fpr.CUSTOM2 CUSTOM2,
12548 decode(fpr.PLAN_VERSION_ID,
12549 log.ATTRIBUTE3, -1,
12550 log.EVENT_OBJECT, 1,
12551 -3, -1,
12552 -4, -1)
12553 * fpr.CUSTOM3 CUSTOM3,
12554 decode(fpr.PLAN_VERSION_ID,
12555 log.ATTRIBUTE3, -1,
12556 log.EVENT_OBJECT, 1,
12557 -3, -1,
12558 -4, -1)
12559 * fpr.CUSTOM4 CUSTOM4,
12560 decode(fpr.PLAN_VERSION_ID,
12561 log.ATTRIBUTE3, -1,
12562 log.EVENT_OBJECT, 1,
12563 -3, -1,
12564 -4, -1)
12565 * fpr.CUSTOM5 CUSTOM5,
12566 decode(fpr.PLAN_VERSION_ID,
12567 log.ATTRIBUTE3, -1,
12568 log.EVENT_OBJECT, 1,
12569 -3, -1,
12570 -4, -1)
12571 * fpr.CUSTOM6 CUSTOM6,
12572 decode(fpr.PLAN_VERSION_ID,
12573 log.ATTRIBUTE3, -1,
12574 log.EVENT_OBJECT, 1,
12575 -3, -1,
12576 -4, -1)
12577 * fpr.CUSTOM7 CUSTOM7,
12578 decode(fpr.PLAN_VERSION_ID,
12579 log.ATTRIBUTE3, -1,
12580 log.EVENT_OBJECT, 1,
12581 -3, -1,
12582 -4, -1)
12583 * fpr.CUSTOM8 CUSTOM8,
12584 decode(fpr.PLAN_VERSION_ID,
12585 log.ATTRIBUTE3, -1,
12586 log.EVENT_OBJECT, 1,
12587 -3, -1,
12588 -4, -1)
12589 * fpr.CUSTOM9 CUSTOM9,
12590 decode(fpr.PLAN_VERSION_ID,
12591 log.ATTRIBUTE3, -1,
12592 log.EVENT_OBJECT, 1,
12593 -3, -1,
12594 -4, -1)
12595 * fpr.CUSTOM10 CUSTOM10,
12596 decode(fpr.PLAN_VERSION_ID,
12597 log.ATTRIBUTE3, -1,
12598 log.EVENT_OBJECT, 1,
12599 -3, -1,
12600 -4, -1)
12601 * fpr.CUSTOM11 CUSTOM11,
12602 decode(fpr.PLAN_VERSION_ID,
12603 log.ATTRIBUTE3, -1,
12604 log.EVENT_OBJECT, 1,
12605 -3, -1,
12606 -4, -1)
12607 * fpr.CUSTOM12 CUSTOM12,
12608 decode(fpr.PLAN_VERSION_ID,
12609 log.ATTRIBUTE3, -1,
12610 log.EVENT_OBJECT, 1,
12611 -3, -1,
12612 -4, -1)
12613 * fpr.CUSTOM13 CUSTOM13,
12614 decode(fpr.PLAN_VERSION_ID,
12615 log.ATTRIBUTE3, -1,
12616 log.EVENT_OBJECT, 1,
12617 -3, -1,
12618 -4, -1)
12619 * fpr.CUSTOM14 CUSTOM14,
12620 decode(fpr.PLAN_VERSION_ID,
12621 log.ATTRIBUTE3, -1,
12622 log.EVENT_OBJECT, 1,
12623 -3, -1,
12624 -4, -1)
12625 * fpr.CUSTOM15 CUSTOM15
12626 from
12627 PA_PJI_PROJ_EVENTS_LOG log,
12628 PJI_PJP_WBS_HEADER wbs_hdr,
12629 -- Changes done for bug 7354982.
12630 --PJI_XBS_DENORM prg,
12631 PJI_FP_XBS_ACCUM_F fpr,
12632 PJI_XBS_DENORM prg
12633 where
12634 prg.STRUCT_TYPE = 'PRG' and
12635 prg.SUP_LEVEL = l_level and
12636 prg.SUB_LEVEL = l_level and
12637 log.EVENT_ID = g_event_id and
12638 log.EVENT_TYPE in ('PLAN_BASELINE',
12639 'PLAN_ORIGINAL') and
12640 fpr.PROJECT_ID = log.ATTRIBUTE1 and
12641 fpr.PROJECT_ID = prg.SUP_PROJECT_ID and
12642 fpr.PLAN_TYPE_ID = log.ATTRIBUTE2 and
12643 fpr.PLAN_VERSION_ID in (decode(log.EVENT_TYPE,
12644 'PLAN_BASELINE', -3,
12645 'PLAN_ORIGINAL', -4),
12646 log.EVENT_OBJECT) and
12647 (fpr.RBS_AGGR_LEVEL,
12648 fpr.WBS_ROLLUP_FLAG,
12649 fpr.PRG_ROLLUP_FLAG) in (('T', 'Y', 'N'),
12650 ('T', 'N', 'N'),
12651 ('L', 'N', 'N')) and
12652 fpr.PROJECT_ELEMENT_ID = prg.SUB_EMT_ID and
12653 wbs_hdr.PROJECT_ID = fpr.PROJECT_ID and
12654 wbs_hdr.PROJECT_ID = log.ATTRIBUTE1 and
12655 wbs_hdr.PLAN_VERSION_ID in (log.ATTRIBUTE3,
12656 log.EVENT_OBJECT) and
12657 wbs_hdr.PLAN_VERSION_ID = decode(sign(fpr.PLAN_VERSION_ID),
12658 -1, log.ATTRIBUTE3,
12659 log.EVENT_OBJECT) and
12660 wbs_hdr.PLAN_TYPE_ID = log.ATTRIBUTE2 and
12661 wbs_hdr.PLAN_TYPE_CODE = fpr.PLAN_TYPE_CODE and
12662 wbs_hdr.WBS_VERSION_ID = prg.SUP_ID and
12663 prg.struct_version_id is NULL -- added for bug 5882260
12664 union all
12665 select /*+ ordered
12666 index(log PA_PJI_PROJ_EVENTS_LOG_N2)
12667 index(fpr PJI_FP_XBS_ACCUM_F_N1)
12668 index(prg pji_xbs_denorm_n3) */ -- Bug 10632614
12669 -- Baseline reversals and fact amounts (-3 slice)
12670 -- Current Original reversals and fact amounts (-4 slice)
12671 -- Part 2
12672 to_char(null) LINE_TYPE,
12673 wbs_hdr.WBS_VERSION_ID,
12674 'LF' RELATIONSHIP_TYPE,
12675 'Y' PUSHUP_FLAG,
12676 decode(fpr.RBS_AGGR_LEVEL,
12677 'L', 'N', 'Y') INSERT_FLAG,
12678 fpr.PROJECT_ID,
12679 fpr.PROJECT_ORG_ID,
12680 fpr.PROJECT_ORGANIZATION_ID,
12681 prg.SUP_EMT_ID PROJECT_ELEMENT_ID,
12682 fpr.TIME_ID,
12683 fpr.PERIOD_TYPE_ID,
12684 fpr.CALENDAR_TYPE,
12685 fpr.RBS_AGGR_LEVEL,
12686 'Y' WBS_ROLLUP_FLAG,
12687 fpr.PRG_ROLLUP_FLAG,
12688 fpr.CURR_RECORD_TYPE_ID,
12689 fpr.CURRENCY_CODE,
12690 fpr.RBS_ELEMENT_ID,
12691 fpr.RBS_VERSION_ID,
12692 decode(log.EVENT_TYPE,
12693 'PLAN_BASELINE', -3,
12694 'PLAN_ORIGINAL', -4) PLAN_VERSION_ID,
12695 fpr.PLAN_TYPE_ID,
12696 fpr.PLAN_TYPE_CODE,
12697 decode(fpr.PLAN_VERSION_ID,
12698 log.ATTRIBUTE3, -1,
12699 log.EVENT_OBJECT, 1,
12700 -3, -1,
12701 -4, -1)
12702 * fpr.RAW_COST RAW_COST,
12703 decode(fpr.PLAN_VERSION_ID,
12704 log.ATTRIBUTE3, -1,
12705 log.EVENT_OBJECT, 1,
12706 -3, -1,
12707 -4, -1)
12708 * fpr.BRDN_COST BRDN_COST,
12709 decode(fpr.PLAN_VERSION_ID,
12710 log.ATTRIBUTE3, -1,
12711 log.EVENT_OBJECT, 1,
12712 -3, -1,
12713 -4, -1)
12714 * fpr.REVENUE REVENUE,
12715 decode(fpr.PLAN_VERSION_ID,
12716 log.ATTRIBUTE3, -1,
12717 log.EVENT_OBJECT, 1,
12718 -3, -1,
12719 -4, -1)
12720 * fpr.BILL_RAW_COST BILL_RAW_COST,
12721 decode(fpr.PLAN_VERSION_ID,
12722 log.ATTRIBUTE3, -1,
12723 log.EVENT_OBJECT, 1,
12724 -3, -1,
12725 -4, -1)
12726 * fpr.BILL_BRDN_COST BILL_BRDN_COST,
12727 decode(fpr.PLAN_VERSION_ID,
12728 log.ATTRIBUTE3, -1,
12729 log.EVENT_OBJECT, 1,
12730 -3, -1,
12731 -4, -1)
12732 * fpr.BILL_LABOR_RAW_COST BILL_LABOR_RAW_COST,
12733 decode(fpr.PLAN_VERSION_ID,
12734 log.ATTRIBUTE3, -1,
12735 log.EVENT_OBJECT, 1,
12736 -3, -1,
12737 -4, -1)
12738 * fpr.BILL_LABOR_BRDN_COST BILL_LABOR_BRDN_COST,
12739 decode(fpr.PLAN_VERSION_ID,
12740 log.ATTRIBUTE3, -1,
12741 log.EVENT_OBJECT, 1,
12742 -3, -1,
12743 -4, -1)
12744 * fpr.BILL_LABOR_HRS BILL_LABOR_HRS,
12745 decode(fpr.PLAN_VERSION_ID,
12746 log.ATTRIBUTE3, -1,
12747 log.EVENT_OBJECT, 1,
12748 -3, -1,
12749 -4, -1)
12750 * fpr.EQUIPMENT_RAW_COST EQUIPMENT_RAW_COST,
12751 decode(fpr.PLAN_VERSION_ID,
12752 log.ATTRIBUTE3, -1,
12753 log.EVENT_OBJECT, 1,
12754 -3, -1,
12755 -4, -1)
12756 * fpr.EQUIPMENT_BRDN_COST EQUIPMENT_BRDN_COST,
12757 decode(fpr.PLAN_VERSION_ID,
12758 log.ATTRIBUTE3, -1,
12759 log.EVENT_OBJECT, 1,
12760 -3, -1,
12761 -4, -1)
12762 * fpr.CAPITALIZABLE_RAW_COST CAPITALIZABLE_RAW_COST,
12763 decode(fpr.PLAN_VERSION_ID,
12764 log.ATTRIBUTE3, -1,
12765 log.EVENT_OBJECT, 1,
12766 -3, -1,
12767 -4, -1)
12768 * fpr.CAPITALIZABLE_BRDN_COST CAPITALIZABLE_BRDN_COST,
12769 decode(fpr.PLAN_VERSION_ID,
12770 log.ATTRIBUTE3, -1,
12771 log.EVENT_OBJECT, 1,
12772 -3, -1,
12773 -4, -1)
12774 * fpr.LABOR_RAW_COST LABOR_RAW_COST,
12775 decode(fpr.PLAN_VERSION_ID,
12776 log.ATTRIBUTE3, -1,
12777 log.EVENT_OBJECT, 1,
12778 -3, -1,
12779 -4, -1)
12780 * fpr.LABOR_BRDN_COST LABOR_BRDN_COST,
12781 decode(fpr.PLAN_VERSION_ID,
12782 log.ATTRIBUTE3, -1,
12783 log.EVENT_OBJECT, 1,
12784 -3, -1,
12785 -4, -1)
12786 * fpr.LABOR_HRS LABOR_HRS,
12787 decode(fpr.PLAN_VERSION_ID,
12788 log.ATTRIBUTE3, -1,
12789 log.EVENT_OBJECT, 1,
12790 -3, -1,
12791 -4, -1)
12792 * fpr.LABOR_REVENUE LABOR_REVENUE,
12793 decode(fpr.PLAN_VERSION_ID,
12794 log.ATTRIBUTE3, -1,
12795 log.EVENT_OBJECT, 1,
12796 -3, -1,
12797 -4, -1)
12798 * fpr.EQUIPMENT_HOURS EQUIPMENT_HOURS,
12799 decode(fpr.PLAN_VERSION_ID,
12800 log.ATTRIBUTE3, -1,
12801 log.EVENT_OBJECT, 1,
12802 -3, -1,
12803 -4, -1)
12804 * fpr.BILLABLE_EQUIPMENT_HOURS BILLABLE_EQUIPMENT_HOURS,
12805 decode(fpr.PLAN_VERSION_ID,
12806 log.ATTRIBUTE3, -1,
12807 log.EVENT_OBJECT, 1,
12808 -3, -1,
12809 -4, -1)
12810 * fpr.SUP_INV_COMMITTED_COST SUP_INV_COMMITTED_COST,
12811 decode(fpr.PLAN_VERSION_ID,
12812 log.ATTRIBUTE3, -1,
12813 log.EVENT_OBJECT, 1,
12814 -3, -1,
12815 -4, -1)
12816 * fpr.PO_COMMITTED_COST PO_COMMITTED_COST,
12817 decode(fpr.PLAN_VERSION_ID,
12818 log.ATTRIBUTE3, -1,
12819 log.EVENT_OBJECT, 1,
12820 -3, -1,
12821 -4, -1)
12822 * fpr.PR_COMMITTED_COST PR_COMMITTED_COST,
12823 decode(fpr.PLAN_VERSION_ID,
12824 log.ATTRIBUTE3, -1,
12825 log.EVENT_OBJECT, 1,
12826 -3, -1,
12827 -4, -1)
12828 * fpr.OTH_COMMITTED_COST OTH_COMMITTED_COST,
12829 decode(fpr.PLAN_VERSION_ID,
12830 log.ATTRIBUTE3, -1,
12831 log.EVENT_OBJECT, 1,
12832 -3, -1,
12833 -4, -1)
12834 * fpr.ACT_LABOR_HRS ACT_LABOR_HRS,
12835 decode(fpr.PLAN_VERSION_ID,
12836 log.ATTRIBUTE3, -1,
12837 log.EVENT_OBJECT, 1,
12838 -3, -1,
12839 -4, -1)
12840 * fpr.ACT_EQUIP_HRS ACT_EQUIP_HRS,
12841 decode(fpr.PLAN_VERSION_ID,
12842 log.ATTRIBUTE3, -1,
12843 log.EVENT_OBJECT, 1,
12844 -3, -1,
12845 -4, -1)
12846 * fpr.ACT_LABOR_BRDN_COST ACT_LABOR_BRDN_COST,
12847 decode(fpr.PLAN_VERSION_ID,
12848 log.ATTRIBUTE3, -1,
12849 log.EVENT_OBJECT, 1,
12850 -3, -1,
12851 -4, -1)
12852 * fpr.ACT_EQUIP_BRDN_COST ACT_EQUIP_BRDN_COST,
12853 decode(fpr.PLAN_VERSION_ID,
12854 log.ATTRIBUTE3, -1,
12855 log.EVENT_OBJECT, 1,
12856 -3, -1,
12857 -4, -1)
12858 * fpr.ACT_BRDN_COST ACT_BRDN_COST,
12859 decode(fpr.PLAN_VERSION_ID,
12860 log.ATTRIBUTE3, -1,
12861 log.EVENT_OBJECT, 1,
12862 -3, -1,
12863 -4, -1)
12864 * fpr.ACT_RAW_COST ACT_RAW_COST,
12865 decode(fpr.PLAN_VERSION_ID,
12866 log.ATTRIBUTE3, -1,
12867 log.EVENT_OBJECT, 1,
12868 -3, -1,
12869 -4, -1)
12870 * fpr.ACT_REVENUE ACT_REVENUE,
12871 decode(fpr.PLAN_VERSION_ID,
12872 log.ATTRIBUTE3, -1,
12873 log.EVENT_OBJECT, 1,
12874 -3, -1,
12875 -4, -1)
12876 * fpr.ACT_LABOR_RAW_COST ACT_LABOR_RAW_COST,
12877 decode(fpr.PLAN_VERSION_ID,
12878 log.ATTRIBUTE3, -1,
12879 log.EVENT_OBJECT, 1,
12880 -3, -1,
12881 -4, -1)
12882 * fpr.ACT_EQUIP_RAW_COST ACT_EQUIP_RAW_COST,
12883 decode(fpr.PLAN_VERSION_ID,
12884 log.ATTRIBUTE3, -1,
12885 log.EVENT_OBJECT, 1,
12886 -3, -1,
12887 -4, -1)
12888 * fpr.ETC_LABOR_HRS ETC_LABOR_HRS,
12889 decode(fpr.PLAN_VERSION_ID,
12890 log.ATTRIBUTE3, -1,
12891 log.EVENT_OBJECT, 1,
12892 -3, -1,
12893 -4, -1)
12894 * fpr.ETC_EQUIP_HRS ETC_EQUIP_HRS,
12895 decode(fpr.PLAN_VERSION_ID,
12896 log.ATTRIBUTE3, -1,
12897 log.EVENT_OBJECT, 1,
12898 -3, -1,
12899 -4, -1)
12900 * fpr.ETC_LABOR_BRDN_COST ETC_LABOR_BRDN_COST,
12901 decode(fpr.PLAN_VERSION_ID,
12902 log.ATTRIBUTE3, -1,
12903 log.EVENT_OBJECT, 1,
12904 -3, -1,
12905 -4, -1)
12906 * fpr.ETC_EQUIP_BRDN_COST ETC_EQUIP_BRDN_COST,
12907 decode(fpr.PLAN_VERSION_ID,
12908 log.ATTRIBUTE3, -1,
12909 log.EVENT_OBJECT, 1,
12910 -3, -1,
12911 -4, -1)
12912 * fpr.ETC_BRDN_COST ETC_BRDN_COST,
12913 decode(fpr.PLAN_VERSION_ID,
12914 log.ATTRIBUTE3, -1,
12915 log.EVENT_OBJECT, 1,
12916 -3, -1,
12917 -4, -1)
12918 * fpr.ETC_RAW_COST ETC_RAW_COST,
12919 decode(fpr.PLAN_VERSION_ID,
12920 log.ATTRIBUTE3, -1,
12921 log.EVENT_OBJECT, 1,
12922 -3, -1,
12923 -4, -1)
12924 * fpr.ETC_LABOR_RAW_COST ETC_LABOR_RAW_COST,
12925 decode(fpr.PLAN_VERSION_ID,
12926 log.ATTRIBUTE3, -1,
12927 log.EVENT_OBJECT, 1,
12928 -3, -1,
12929 -4, -1)
12930 * fpr.ETC_EQUIP_RAW_COST ETC_EQUIP_RAW_COST,
12931 decode(fpr.PLAN_VERSION_ID,
12932 log.ATTRIBUTE3, -1,
12933 log.EVENT_OBJECT, 1,
12934 -3, -1,
12935 -4, -1)
12936 * fpr.CUSTOM1 CUSTOM1,
12937 decode(fpr.PLAN_VERSION_ID,
12938 log.ATTRIBUTE3, -1,
12939 log.EVENT_OBJECT, 1,
12940 -3, -1,
12941 -4, -1)
12942 * fpr.CUSTOM2 CUSTOM2,
12943 decode(fpr.PLAN_VERSION_ID,
12944 log.ATTRIBUTE3, -1,
12945 log.EVENT_OBJECT, 1,
12946 -3, -1,
12947 -4, -1)
12948 * fpr.CUSTOM3 CUSTOM3,
12949 decode(fpr.PLAN_VERSION_ID,
12950 log.ATTRIBUTE3, -1,
12951 log.EVENT_OBJECT, 1,
12952 -3, -1,
12953 -4, -1)
12954 * fpr.CUSTOM4 CUSTOM4,
12955 decode(fpr.PLAN_VERSION_ID,
12956 log.ATTRIBUTE3, -1,
12957 log.EVENT_OBJECT, 1,
12958 -3, -1,
12959 -4, -1)
12960 * fpr.CUSTOM5 CUSTOM5,
12961 decode(fpr.PLAN_VERSION_ID,
12962 log.ATTRIBUTE3, -1,
12963 log.EVENT_OBJECT, 1,
12964 -3, -1,
12965 -4, -1)
12966 * fpr.CUSTOM6 CUSTOM6,
12967 decode(fpr.PLAN_VERSION_ID,
12968 log.ATTRIBUTE3, -1,
12969 log.EVENT_OBJECT, 1,
12970 -3, -1,
12971 -4, -1)
12972 * fpr.CUSTOM7 CUSTOM7,
12973 decode(fpr.PLAN_VERSION_ID,
12974 log.ATTRIBUTE3, -1,
12975 log.EVENT_OBJECT, 1,
12976 -3, -1,
12977 -4, -1)
12978 * fpr.CUSTOM8 CUSTOM8,
12979 decode(fpr.PLAN_VERSION_ID,
12980 log.ATTRIBUTE3, -1,
12981 log.EVENT_OBJECT, 1,
12982 -3, -1,
12983 -4, -1)
12984 * fpr.CUSTOM9 CUSTOM9,
12985 decode(fpr.PLAN_VERSION_ID,
12986 log.ATTRIBUTE3, -1,
12987 log.EVENT_OBJECT, 1,
12988 -3, -1,
12989 -4, -1)
12990 * fpr.CUSTOM10 CUSTOM10,
12991 decode(fpr.PLAN_VERSION_ID,
12992 log.ATTRIBUTE3, -1,
12993 log.EVENT_OBJECT, 1,
12994 -3, -1,
12995 -4, -1)
12996 * fpr.CUSTOM11 CUSTOM11,
12997 decode(fpr.PLAN_VERSION_ID,
12998 log.ATTRIBUTE3, -1,
12999 log.EVENT_OBJECT, 1,
13000 -3, -1,
13001 -4, -1)
13002 * fpr.CUSTOM12 CUSTOM12,
13003 decode(fpr.PLAN_VERSION_ID,
13004 log.ATTRIBUTE3, -1,
13005 log.EVENT_OBJECT, 1,
13006 -3, -1,
13007 -4, -1)
13008 * fpr.CUSTOM13 CUSTOM13,
13009 decode(fpr.PLAN_VERSION_ID,
13010 log.ATTRIBUTE3, -1,
13011 log.EVENT_OBJECT, 1,
13012 -3, -1,
13013 -4, -1)
13014 * fpr.CUSTOM14 CUSTOM14,
13015 decode(fpr.PLAN_VERSION_ID,
13016 log.ATTRIBUTE3, -1,
13017 log.EVENT_OBJECT, 1,
13018 -3, -1,
13019 -4, -1)
13020 * fpr.CUSTOM15 CUSTOM15
13021 from
13022 PA_PJI_PROJ_EVENTS_LOG log,
13023 PJI_PJP_WBS_HEADER wbs_hdr,
13024 -- Changes done for bug 7354982.
13025 --PJI_XBS_DENORM prg,
13026 PJI_FP_XBS_ACCUM_F fpr,
13027 PJI_XBS_DENORM prg
13028 where
13029 prg.STRUCT_TYPE = 'PRG' and
13030 prg.SUP_LEVEL = l_level and
13031 prg.SUB_LEVEL = l_level and
13032 log.EVENT_ID = g_event_id and
13033 log.EVENT_TYPE in ('PLAN_BASELINE',
13034 'PLAN_ORIGINAL') and
13035 fpr.PROJECT_ID = log.ATTRIBUTE1 and
13036 fpr.PROJECT_ID = prg.SUP_PROJECT_ID and
13037 fpr.PLAN_TYPE_ID = log.ATTRIBUTE2 and
13038 fpr.PLAN_VERSION_ID in (log.ATTRIBUTE3,
13039 log.EVENT_OBJECT) and
13040 (fpr.RBS_AGGR_LEVEL,
13041 fpr.WBS_ROLLUP_FLAG,
13042 fpr.PRG_ROLLUP_FLAG) in (('L', 'N', 'N')) and
13043 fpr.PROJECT_ELEMENT_ID <> prg.SUB_EMT_ID and
13044 wbs_hdr.PROJECT_ID = fpr.PROJECT_ID and
13045 wbs_hdr.PROJECT_ID = log.ATTRIBUTE1 and
13046 wbs_hdr.PLAN_VERSION_ID in (log.ATTRIBUTE3,
13047 log.EVENT_OBJECT) and
13048 wbs_hdr.PLAN_VERSION_ID = decode(sign(fpr.PLAN_VERSION_ID),
13049 -1, log.ATTRIBUTE3,
13050 log.EVENT_OBJECT) and
13051 wbs_hdr.PLAN_TYPE_ID = log.ATTRIBUTE2 and
13052 wbs_hdr.PLAN_TYPE_CODE = fpr.PLAN_TYPE_CODE and
13053 wbs_hdr.WBS_VERSION_ID = prg.SUP_ID and
13054 prg.struct_version_id is NULL -- added for bug 5882260
13055 ) pjp,
13056 (
13057 select /*+ ordered
13058 index(prg PJI_XBS_DENORM_N3)
13059 index(prj PA_PROJECTS_U1) */
13060 prg.SUP_PROJECT_ID,
13061 prj.ORG_ID SUP_PROJECT_ORG_ID,
13062 prj.CARRYING_OUT_ORGANIZATION_ID SUP_PROJECT_ORGANIZATION_ID,
13063 prg.SUP_ID,
13064 prg.SUP_EMT_ID,
13065 prg.SUP_LEVEL,
13066 prg.SUB_ID,
13067 prg.SUB_EMT_ID,
13068 prg.SUB_ROLLUP_ID,
13069 invert.INVERT_VALUE RELATIONSHIP_TYPE,
13070 decode(prg.RELATIONSHIP_TYPE,
13071 'LW', 'Y',
13072 'LF', 'N') WP_FLAG,
13073 'Y' PUSHUP_FLAG
13074 from
13075 PJI_XBS_DENORM prg,
13076 PA_PROJECTS_ALL prj,
13077 (
13078 select 'LF' INVERT_ID, 'LF' INVERT_VALUE from dual union all
13079 select 'LW' INVERT_ID, 'LW' INVERT_VALUE from dual union all
13080 select 'A' INVERT_ID, 'LF' INVERT_VALUE from dual union all
13081 select 'A' INVERT_ID, 'LW' INVERT_VALUE from dual
13082 ) invert
13083 where
13084 l_level > 1 and
13085 prg.STRUCT_TYPE = 'PRG' and
13086 prg.SUB_ROLLUP_ID is not null and
13087 prg.SUB_LEVEL = l_level and
13088 -- map.WORKER_ID = p_worker_id and
13089 prj.PROJECT_ID = prg.SUP_PROJECT_ID and
13090 decode(prg.SUB_LEVEL,
13091 prg.SUP_LEVEL, 'A',
13092 prg.RELATIONSHIP_TYPE) = invert.INVERT_ID
13093 ) prg,
13094 PJI_PJP_WBS_HEADER wbs_hdr,
13095 PA_PROJ_ELEM_VER_STRUCTURE sub_ver,
13096 PA_PROJ_ELEM_VER_STRUCTURE sup_ver,
13097 PA_PROJ_WORKPLAN_ATTR sup_wpa
13098 where
13099 pjp.PROJECT_ID = sub_ver.PROJECT_ID (+) and
13100 pjp.WBS_VERSION_ID = sub_ver.ELEMENT_VERSION_ID (+) and
13101 'STRUCTURE_PUBLISHED' = sub_ver.STATUS_CODE (+) and
13102 pjp.WBS_VERSION_ID = prg.SUB_ID (+) and
13103 pjp.RELATIONSHIP_TYPE = prg.RELATIONSHIP_TYPE (+) and
13104 pjp.PUSHUP_FLAG = prg.PUSHUP_FLAG (+) and
13105 prg.SUP_PROJECT_ID = wbs_hdr.PROJECT_ID (+) and
13106 prg.SUP_ID = wbs_hdr.WBS_VERSION_ID (+) and
13107 prg.WP_FLAG = wbs_hdr.WP_FLAG (+) and
13108 'Y' = wbs_hdr.WP_FLAG (+) and
13109 wbs_hdr.PROJECT_ID = sup_ver.PROJECT_ID (+) and
13110 wbs_hdr.WBS_VERSION_ID = sup_ver.ELEMENT_VERSION_ID (+) and
13111 'STRUCTURE_PUBLISHED' = sup_ver.STATUS_CODE (+) and
13112 'Y' = sup_ver.LATEST_EFF_PUBLISHED_FLAG (+) and
13113 prg.SUP_EMT_ID = sup_wpa.PROJ_ELEMENT_ID (+)
13114 group by
13115 decode(nvl(prg.SUB_EMT_ID, -1), nvl(prg.SUB_ROLLUP_ID, -1),
13116 pjp.INSERT_FLAG, 'Y'),
13117 pjp.RELATIONSHIP_TYPE,
13118 decode(nvl(prg.SUB_EMT_ID, -1), nvl(prg.SUB_ROLLUP_ID, -1),
13119 null, sub_ver.STATUS_CODE),
13120 decode(nvl(prg.SUB_EMT_ID, -1), nvl(prg.SUB_ROLLUP_ID, -1),
13121 null, sup_ver.STATUS_CODE),
13122 decode(nvl(prg.SUB_EMT_ID, -1), nvl(prg.SUB_ROLLUP_ID, -1),
13123 null, sup_wpa.WP_ENABLE_VERSION_FLAG),
13124 decode(nvl(prg.SUB_EMT_ID, -1), nvl(prg.SUB_ROLLUP_ID, -1),
13125 null, decode(pjp.PLAN_VERSION_ID,
13126 -1, prg.SUP_ID,
13127 -3, prg.SUP_ID,
13128 -4, prg.SUP_ID,
13129 null)),
13130 decode(nvl(prg.SUB_EMT_ID, -1), nvl(prg.SUB_ROLLUP_ID, -1),
13131 null, decode(pjp.PLAN_VERSION_ID,
13132 -1, prg.SUP_EMT_ID,
13133 -3, prg.SUP_EMT_ID,
13134 -4, prg.SUP_EMT_ID,
13135 null)),
13136 decode(nvl(prg.SUB_EMT_ID, -1), nvl(prg.SUB_ROLLUP_ID, -1),
13137 null, decode(pjp.PLAN_VERSION_ID,
13138 -1, prg.WP_FLAG,
13139 -3, prg.WP_FLAG,
13140 -4, prg.WP_FLAG,
13141 null)),
13142 decode(nvl(prg.SUB_EMT_ID, -1), nvl(prg.SUB_ROLLUP_ID, -1),
13143 l_level, prg.SUP_LEVEL),
13144 pjp.LINE_TYPE,
13145 decode(nvl(prg.SUB_EMT_ID, -1), nvl(prg.SUB_ROLLUP_ID, -1),
13146 pjp.PROJECT_ID, prg.SUP_PROJECT_ID),
13147 decode(nvl(prg.SUB_EMT_ID, -1), nvl(prg.SUB_ROLLUP_ID, -1),
13148 pjp.PROJECT_ORG_ID,
13149 prg.SUP_PROJECT_ORG_ID),
13150 decode(nvl(prg.SUB_EMT_ID, -1), nvl(prg.SUB_ROLLUP_ID, -1),
13151 pjp.PROJECT_ORGANIZATION_ID,
13152 prg.SUP_PROJECT_ORGANIZATION_ID),
13153 decode(nvl(prg.SUB_EMT_ID, -1), nvl(prg.SUB_ROLLUP_ID, -1),
13154 pjp.PROJECT_ELEMENT_ID,
13155 prg.SUB_ROLLUP_ID),
13156 pjp.TIME_ID,
13157 pjp.PERIOD_TYPE_ID,
13158 pjp.CALENDAR_TYPE,
13159 pjp.RBS_AGGR_LEVEL,
13160 decode(nvl(prg.SUB_EMT_ID, -1), nvl(prg.SUB_ROLLUP_ID, -1),
13161 pjp.WBS_ROLLUP_FLAG, 'N'),
13162 decode(nvl(prg.SUB_EMT_ID, -1), nvl(prg.SUB_ROLLUP_ID, -1),
13163 pjp.PRG_ROLLUP_FLAG, 'Y'),
13164 pjp.CURR_RECORD_TYPE_ID,
13165 pjp.CURRENCY_CODE,
13166 pjp.RBS_ELEMENT_ID,
13167 pjp.RBS_VERSION_ID,
13168 decode(nvl(prg.SUB_EMT_ID, -1), nvl(prg.SUB_ROLLUP_ID, -1),
13169 pjp.PLAN_VERSION_ID,
13170 decode(pjp.PLAN_VERSION_ID,
13171 -1, pjp.PLAN_VERSION_ID,
13172 -2, pjp.PLAN_VERSION_ID,
13173 -3, pjp.PLAN_VERSION_ID,
13174 -4, pjp.PLAN_VERSION_ID,
13175 wbs_hdr.PLAN_VERSION_ID)),
13176 decode(nvl(prg.SUB_EMT_ID, -1), nvl(prg.SUB_ROLLUP_ID, -1),
13177 pjp.PLAN_TYPE_ID,
13178 decode(pjp.PLAN_VERSION_ID,
13179 -1, pjp.PLAN_TYPE_ID,
13180 -2, pjp.PLAN_TYPE_ID,
13181 -3, pjp.PLAN_TYPE_ID,
13182 -4, pjp.PLAN_TYPE_ID,
13183 wbs_hdr.PLAN_TYPE_ID)),
13184 pjp.PLAN_TYPE_CODE
13185 ) pjp1_i,
13186 PA_PROJ_ELEM_VER_STRUCTURE sup_fin_ver,
13187 PA_PROJ_WORKPLAN_ATTR sup_wpa
13188 where
13189 pjp1_i.INSERT_FLAG = 'Y' and
13190 pjp1_i.PROJECT_ID = sup_fin_ver.PROJECT_ID (+) and
13191 pjp1_i.SUP_ID = sup_fin_ver.ELEMENT_VERSION_ID (+) and
13192 'STRUCTURE_WORKING' = sup_fin_ver.STATUS_CODE (+) and
13193 pjp1_i.SUP_EMT_ID = sup_wpa.PROJ_ELEMENT_ID (+) and
13194 'N' = sup_wpa.WP_ENABLE_VERSION_FLAG (+) and
13195 (pjp1_i.SUP_ID is null or
13196 (pjp1_i.SUP_ID is not null and
13197 (sup_fin_ver.PROJECT_ID is not null or
13198 sup_wpa.PROJ_ELEMENT_ID is not null)));
13199
13200 l_level := l_level - 1;
13201
13202 end loop;
13203
13204 end if;
13205
13206 end ROLLUP_FPR_WBS;
13207
13208
13209 -- -----------------------------------------------------
13210 -- procedure ROLLUP_FPR_RBS_SMART_SLICES
13211 --
13212 -- History
13213 -- 19-MAR-2004 SVERMETT Created
13214 --
13215 -- This API will be called for both online and bulk processing.
13216 --
13217 -- -----------------------------------------------------
13218 procedure ROLLUP_FPR_RBS_SMART_SLICES (p_worker_id in number default null) is
13219
13220 l_process varchar2(30);
13221 l_extraction_type varchar2(30);
13222
13223 begin
13224
13225 if (p_worker_id is not null) then
13226
13227 l_process := PJI_PJP_SUM_MAIN.g_process || to_char(p_worker_id);
13228
13229 if (not PJI_PROCESS_UTIL.NEED_TO_RUN_STEP(l_process, 'PJI_PJP_SUM_ROLLUP.ROLLUP_FPR_RBS_SMART_SLICES(p_worker_id);')) then
13230 return;
13231 end if;
13232
13233 l_extraction_type := PJI_PROCESS_UTIL.GET_PROCESS_PARAMETER(l_process, 'EXTRACTION_TYPE');
13234
13235 insert into PJI_FP_AGGR_PJP1 pjp1_i
13236 (
13237 WORKER_ID,
13238 RECORD_TYPE,
13239 PRG_LEVEL,
13240 LINE_TYPE,
13241 PROJECT_ID,
13242 PROJECT_ORG_ID,
13243 PROJECT_ORGANIZATION_ID,
13244 PROJECT_ELEMENT_ID,
13245 TIME_ID,
13246 PERIOD_TYPE_ID,
13247 CALENDAR_TYPE,
13248 RBS_AGGR_LEVEL,
13249 WBS_ROLLUP_FLAG,
13250 PRG_ROLLUP_FLAG,
13251 CURR_RECORD_TYPE_ID,
13252 CURRENCY_CODE,
13253 RBS_ELEMENT_ID,
13254 RBS_VERSION_ID,
13255 PLAN_VERSION_ID,
13256 PLAN_TYPE_ID,
13257 PLAN_TYPE_CODE,
13258 RAW_COST,
13259 BRDN_COST,
13260 REVENUE,
13261 BILL_RAW_COST,
13262 BILL_BRDN_COST,
13263 BILL_LABOR_RAW_COST,
13264 BILL_LABOR_BRDN_COST,
13265 BILL_LABOR_HRS,
13266 EQUIPMENT_RAW_COST,
13267 EQUIPMENT_BRDN_COST,
13268 CAPITALIZABLE_RAW_COST,
13269 CAPITALIZABLE_BRDN_COST,
13270 LABOR_RAW_COST,
13271 LABOR_BRDN_COST,
13272 LABOR_HRS,
13273 LABOR_REVENUE,
13274 EQUIPMENT_HOURS,
13275 BILLABLE_EQUIPMENT_HOURS,
13276 SUP_INV_COMMITTED_COST,
13277 PO_COMMITTED_COST,
13278 PR_COMMITTED_COST,
13279 OTH_COMMITTED_COST,
13280 ACT_LABOR_HRS,
13281 ACT_EQUIP_HRS,
13282 ACT_LABOR_BRDN_COST,
13283 ACT_EQUIP_BRDN_COST,
13284 ACT_BRDN_COST,
13285 ACT_RAW_COST,
13286 ACT_REVENUE,
13287 ACT_LABOR_RAW_COST,
13288 ACT_EQUIP_RAW_COST,
13289 ETC_LABOR_HRS,
13290 ETC_EQUIP_HRS,
13291 ETC_LABOR_BRDN_COST,
13292 ETC_EQUIP_BRDN_COST,
13293 ETC_BRDN_COST,
13294 ETC_RAW_COST,
13295 ETC_LABOR_RAW_COST,
13296 ETC_EQUIP_RAW_COST,
13297 CUSTOM1,
13298 CUSTOM2,
13299 CUSTOM3,
13300 CUSTOM4,
13301 CUSTOM5,
13302 CUSTOM6,
13303 CUSTOM7,
13304 CUSTOM8,
13305 CUSTOM9,
13306 CUSTOM10,
13307 CUSTOM11,
13308 CUSTOM12,
13309 CUSTOM13,
13310 CUSTOM14,
13311 CUSTOM15
13312 )
13313 select
13314 p_worker_id WORKER_ID,
13315 'R' RECORD_TYPE,
13316 pjp1.PRG_LEVEL,
13317 pjp1.LINE_TYPE,
13318 pjp1.PROJECT_ID,
13319 pjp1.PROJECT_ORG_ID,
13320 pjp1.PROJECT_ORGANIZATION_ID,
13321 pjp1.PROJECT_ELEMENT_ID,
13322 pjp1.TIME_ID,
13323 pjp1.PERIOD_TYPE_ID,
13324 pjp1.CALENDAR_TYPE,
13325 pjp1.RBS_AGGR_LEVEL,
13326 pjp1.WBS_ROLLUP_FLAG,
13327 pjp1.PRG_ROLLUP_FLAG,
13328 pjp1.CURR_RECORD_TYPE_ID,
13329 pjp1.CURRENCY_CODE,
13330 pjp1.RBS_ELEMENT_ID,
13331 pjp1.RBS_VERSION_ID,
13332 pjp1.PLAN_VERSION_ID,
13333 pjp1.PLAN_TYPE_ID,
13334 pjp1.PLAN_TYPE_CODE,
13335 sum(pjp1.RAW_COST) RAW_COST,
13336 sum(pjp1.BRDN_COST) BRDN_COST,
13337 sum(pjp1.REVENUE) REVENUE,
13338 sum(pjp1.BILL_RAW_COST) BILL_RAW_COST,
13339 sum(pjp1.BILL_BRDN_COST) BILL_BRDN_COST,
13340 sum(pjp1.BILL_LABOR_RAW_COST) BILL_LABOR_RAW_COST,
13341 sum(pjp1.BILL_LABOR_BRDN_COST) BILL_LABOR_BRDN_COST,
13342 sum(pjp1.BILL_LABOR_HRS) BILL_LABOR_HRS,
13343 sum(pjp1.EQUIPMENT_RAW_COST) EQUIPMENT_RAW_COST,
13344 sum(pjp1.EQUIPMENT_BRDN_COST) EQUIPMENT_BRDN_COST,
13345 sum(pjp1.CAPITALIZABLE_RAW_COST) CAPITALIZABLE_RAW_COST,
13346 sum(pjp1.CAPITALIZABLE_BRDN_COST) CAPITALIZABLE_BRDN_COST,
13347 sum(pjp1.LABOR_RAW_COST) LABOR_RAW_COST,
13348 sum(pjp1.LABOR_BRDN_COST) LABOR_BRDN_COST,
13349 sum(pjp1.LABOR_HRS) LABOR_HRS,
13350 sum(pjp1.LABOR_REVENUE) LABOR_REVENUE,
13351 sum(pjp1.EQUIPMENT_HOURS) EQUIPMENT_HOURS,
13352 sum(pjp1.BILLABLE_EQUIPMENT_HOURS) BILLABLE_EQUIPMENT_HOURS,
13353 sum(pjp1.SUP_INV_COMMITTED_COST) SUP_INV_COMMITTED_COST,
13354 sum(pjp1.PO_COMMITTED_COST) PO_COMMITTED_COST,
13355 sum(pjp1.PR_COMMITTED_COST) PR_COMMITTED_COST,
13356 sum(pjp1.OTH_COMMITTED_COST) OTH_COMMITTED_COST,
13357 sum(pjp1.ACT_LABOR_HRS) ACT_LABOR_HRS,
13358 sum(pjp1.ACT_EQUIP_HRS) ACT_EQUIP_HRS,
13359 sum(pjp1.ACT_LABOR_BRDN_COST) ACT_LABOR_BRDN_COST,
13360 sum(pjp1.ACT_EQUIP_BRDN_COST) ACT_EQUIP_BRDN_COST,
13361 sum(pjp1.ACT_BRDN_COST) ACT_BRDN_COST,
13362 sum(pjp1.ACT_RAW_COST) ACT_RAW_COST,
13363 sum(pjp1.ACT_REVENUE) ACT_REVENUE,
13364 sum(pjp1.ACT_LABOR_RAW_COST) ACT_LABOR_RAW_COST,
13365 sum(pjp1.ACT_EQUIP_RAW_COST) ACT_EQUIP_RAW_COST,
13366 sum(pjp1.ETC_LABOR_HRS) ETC_LABOR_HRS,
13367 sum(pjp1.ETC_EQUIP_HRS) ETC_EQUIP_HRS,
13368 sum(pjp1.ETC_LABOR_BRDN_COST) ETC_LABOR_BRDN_COST,
13369 sum(pjp1.ETC_EQUIP_BRDN_COST) ETC_EQUIP_BRDN_COST,
13370 sum(pjp1.ETC_BRDN_COST) ETC_BRDN_COST,
13371 sum(pjp1.ETC_RAW_COST) ETC_RAW_COST,
13372 sum(pjp1.ETC_LABOR_RAW_COST) ETC_LABOR_RAW_COST,
13373 sum(pjp1.ETC_EQUIP_RAW_COST) ETC_EQUIP_RAW_COST,
13374 sum(pjp1.CUSTOM1) CUSTOM1,
13375 sum(pjp1.CUSTOM2) CUSTOM2,
13376 sum(pjp1.CUSTOM3) CUSTOM3,
13377 sum(pjp1.CUSTOM4) CUSTOM4,
13378 sum(pjp1.CUSTOM5) CUSTOM5,
13379 sum(pjp1.CUSTOM6) CUSTOM6,
13380 sum(pjp1.CUSTOM7) CUSTOM7,
13381 sum(pjp1.CUSTOM8) CUSTOM8,
13382 sum(pjp1.CUSTOM9) CUSTOM9,
13383 sum(pjp1.CUSTOM10) CUSTOM10,
13384 sum(pjp1.CUSTOM11) CUSTOM11,
13385 sum(pjp1.CUSTOM12) CUSTOM12,
13386 sum(pjp1.CUSTOM13) CUSTOM13,
13387 sum(pjp1.CUSTOM14) CUSTOM14,
13388 sum(pjp1.CUSTOM15) CUSTOM15
13389 from
13390 (
13391 select /*+ ordered index(wbs PA_XBS_DENORM_N2) */ -- smart slices
13392 decode(pjp1.RBS_AGGR_LEVEL ||
13393 decode(top_slice.INVERT_ID,
13394 'PRJ', 'Y',
13395 decode(wbs.SUP_EMT_ID,
13396 wbs.SUB_EMT_ID, 'N', 'Y')),
13397 'LN', 'X', null) RECORD_TYPE,
13398 pjp1.PRG_LEVEL,
13399 pjp1.LINE_TYPE,
13400 pjp1.PROJECT_ID,
13401 pjp1.PROJECT_ORG_ID,
13402 pjp1.PROJECT_ORGANIZATION_ID,
13403 decode(top_slice.INVERT_ID,
13404 'PRJ', wbs.STRUCT_EMT_ID,
13405 nvl(wbs.SUP_EMT_ID,
13406 pjp1.PROJECT_ELEMENT_ID)) PROJECT_ELEMENT_ID,
13407 pjp1.TIME_ID,
13408 pjp1.PERIOD_TYPE_ID,
13409 pjp1.CALENDAR_TYPE,
13410 pjp1.RBS_AGGR_LEVEL,
13411 decode(top_slice.INVERT_ID,
13412 'PRJ', 'Y',
13413 decode(wbs.SUP_EMT_ID,
13414 wbs.SUB_EMT_ID, 'N', 'Y')) WBS_ROLLUP_FLAG,
13415 pjp1.PRG_ROLLUP_FLAG,
13416 pjp1.CURR_RECORD_TYPE_ID,
13417 pjp1.CURRENCY_CODE,
13418 pjp1.RBS_ELEMENT_ID,
13419 pjp1.RBS_VERSION_ID,
13420 pjp1.PLAN_VERSION_ID,
13421 pjp1.PLAN_TYPE_ID,
13422 pjp1.PLAN_TYPE_CODE,
13423 sum(pjp1.RAW_COST) RAW_COST,
13424 sum(pjp1.BRDN_COST) BRDN_COST,
13425 sum(pjp1.REVENUE) REVENUE,
13426 sum(pjp1.BILL_RAW_COST) BILL_RAW_COST,
13427 sum(pjp1.BILL_BRDN_COST) BILL_BRDN_COST,
13428 sum(pjp1.BILL_LABOR_RAW_COST) BILL_LABOR_RAW_COST,
13429 sum(pjp1.BILL_LABOR_BRDN_COST) BILL_LABOR_BRDN_COST,
13430 sum(pjp1.BILL_LABOR_HRS) BILL_LABOR_HRS,
13431 sum(pjp1.EQUIPMENT_RAW_COST) EQUIPMENT_RAW_COST,
13432 sum(pjp1.EQUIPMENT_BRDN_COST) EQUIPMENT_BRDN_COST,
13433 sum(pjp1.CAPITALIZABLE_RAW_COST) CAPITALIZABLE_RAW_COST,
13434 sum(pjp1.CAPITALIZABLE_BRDN_COST) CAPITALIZABLE_BRDN_COST,
13435 sum(pjp1.LABOR_RAW_COST) LABOR_RAW_COST,
13436 sum(pjp1.LABOR_BRDN_COST) LABOR_BRDN_COST,
13437 sum(pjp1.LABOR_HRS) LABOR_HRS,
13438 sum(pjp1.LABOR_REVENUE) LABOR_REVENUE,
13439 sum(pjp1.EQUIPMENT_HOURS) EQUIPMENT_HOURS,
13440 sum(pjp1.BILLABLE_EQUIPMENT_HOURS) BILLABLE_EQUIPMENT_HOURS,
13441 sum(pjp1.SUP_INV_COMMITTED_COST) SUP_INV_COMMITTED_COST,
13442 sum(pjp1.PO_COMMITTED_COST) PO_COMMITTED_COST,
13443 sum(pjp1.PR_COMMITTED_COST) PR_COMMITTED_COST,
13444 sum(pjp1.OTH_COMMITTED_COST) OTH_COMMITTED_COST,
13445 sum(pjp1.ACT_LABOR_HRS) ACT_LABOR_HRS,
13446 sum(pjp1.ACT_EQUIP_HRS) ACT_EQUIP_HRS,
13447 sum(pjp1.ACT_LABOR_BRDN_COST) ACT_LABOR_BRDN_COST,
13448 sum(pjp1.ACT_EQUIP_BRDN_COST) ACT_EQUIP_BRDN_COST,
13449 sum(pjp1.ACT_BRDN_COST) ACT_BRDN_COST,
13450 sum(pjp1.ACT_RAW_COST) ACT_RAW_COST,
13451 sum(pjp1.ACT_REVENUE) ACT_REVENUE,
13452 sum(pjp1.ACT_LABOR_RAW_COST) ACT_LABOR_RAW_COST,
13453 sum(pjp1.ACT_EQUIP_RAW_COST) ACT_EQUIP_RAW_COST,
13454 sum(pjp1.ETC_LABOR_HRS) ETC_LABOR_HRS,
13455 sum(pjp1.ETC_EQUIP_HRS) ETC_EQUIP_HRS,
13456 sum(pjp1.ETC_LABOR_BRDN_COST) ETC_LABOR_BRDN_COST,
13457 sum(pjp1.ETC_EQUIP_BRDN_COST) ETC_EQUIP_BRDN_COST,
13458 sum(pjp1.ETC_BRDN_COST) ETC_BRDN_COST,
13459 sum(pjp1.ETC_RAW_COST) ETC_RAW_COST,
13460 sum(pjp1.ETC_LABOR_RAW_COST) ETC_LABOR_RAW_COST,
13461 sum(pjp1.ETC_EQUIP_RAW_COST) ETC_EQUIP_RAW_COST,
13462 sum(pjp1.CUSTOM1) CUSTOM1,
13463 sum(pjp1.CUSTOM2) CUSTOM2,
13464 sum(pjp1.CUSTOM3) CUSTOM3,
13465 sum(pjp1.CUSTOM4) CUSTOM4,
13466 sum(pjp1.CUSTOM5) CUSTOM5,
13467 sum(pjp1.CUSTOM6) CUSTOM6,
13468 sum(pjp1.CUSTOM7) CUSTOM7,
13469 sum(pjp1.CUSTOM8) CUSTOM8,
13470 sum(pjp1.CUSTOM9) CUSTOM9,
13471 sum(pjp1.CUSTOM10) CUSTOM10,
13472 sum(pjp1.CUSTOM11) CUSTOM11,
13473 sum(pjp1.CUSTOM12) CUSTOM12,
13474 sum(pjp1.CUSTOM13) CUSTOM13,
13475 sum(pjp1.CUSTOM14) CUSTOM14,
13476 sum(pjp1.CUSTOM15) CUSTOM15
13477 from
13478 (
13479 select /*+ ordered */
13480 wbs_hdr.WBS_VERSION_ID,
13481 pjp1.PRG_LEVEL,
13482 pjp1.LINE_TYPE,
13483 pjp1.PROJECT_ID,
13484 pjp1.PROJECT_ORG_ID,
13485 pjp1.PROJECT_ORGANIZATION_ID,
13486 pjp1.PROJECT_ELEMENT_ID,
13487 pjp1.TIME_ID,
13488 pjp1.PERIOD_TYPE_ID,
13489 pjp1.CALENDAR_TYPE,
13490 decode(rbs.SUP_LEVEL,
13491 rbs.SUB_LEVEL, 'L', 'R') RBS_AGGR_LEVEL,
13492 pjp1.WBS_ROLLUP_FLAG,
13493 pjp1.PRG_ROLLUP_FLAG,
13494 pjp1.CURR_RECORD_TYPE_ID,
13495 pjp1.CURRENCY_CODE,
13496 rbs.SUP_ID RBS_ELEMENT_ID,
13497 pjp1.RBS_VERSION_ID,
13498 pjp1.PLAN_VERSION_ID,
13499 pjp1.PLAN_TYPE_ID,
13500 pjp1.PLAN_TYPE_CODE,
13501 sum(pjp1.RAW_COST) RAW_COST,
13502 sum(pjp1.BRDN_COST) BRDN_COST,
13503 sum(pjp1.REVENUE) REVENUE,
13504 sum(pjp1.BILL_RAW_COST) BILL_RAW_COST,
13505 sum(pjp1.BILL_BRDN_COST) BILL_BRDN_COST,
13506 sum(pjp1.BILL_LABOR_RAW_COST) BILL_LABOR_RAW_COST,
13507 sum(pjp1.BILL_LABOR_BRDN_COST) BILL_LABOR_BRDN_COST,
13508 sum(pjp1.BILL_LABOR_HRS) BILL_LABOR_HRS,
13509 sum(pjp1.EQUIPMENT_RAW_COST) EQUIPMENT_RAW_COST,
13510 sum(pjp1.EQUIPMENT_BRDN_COST) EQUIPMENT_BRDN_COST,
13511 sum(pjp1.CAPITALIZABLE_RAW_COST) CAPITALIZABLE_RAW_COST,
13512 sum(pjp1.CAPITALIZABLE_BRDN_COST) CAPITALIZABLE_BRDN_COST,
13513 sum(pjp1.LABOR_RAW_COST) LABOR_RAW_COST,
13514 sum(pjp1.LABOR_BRDN_COST) LABOR_BRDN_COST,
13515 sum(pjp1.LABOR_HRS) LABOR_HRS,
13516 sum(pjp1.LABOR_REVENUE) LABOR_REVENUE,
13517 sum(pjp1.EQUIPMENT_HOURS) EQUIPMENT_HOURS,
13518 sum(pjp1.BILLABLE_EQUIPMENT_HOURS) BILLABLE_EQUIPMENT_HOURS,
13519 sum(pjp1.SUP_INV_COMMITTED_COST) SUP_INV_COMMITTED_COST,
13520 sum(pjp1.PO_COMMITTED_COST) PO_COMMITTED_COST,
13521 sum(pjp1.PR_COMMITTED_COST) PR_COMMITTED_COST,
13522 sum(pjp1.OTH_COMMITTED_COST) OTH_COMMITTED_COST,
13523 sum(pjp1.ACT_LABOR_HRS) ACT_LABOR_HRS,
13524 sum(pjp1.ACT_EQUIP_HRS) ACT_EQUIP_HRS,
13525 sum(pjp1.ACT_LABOR_BRDN_COST) ACT_LABOR_BRDN_COST,
13526 sum(pjp1.ACT_EQUIP_BRDN_COST) ACT_EQUIP_BRDN_COST,
13527 sum(pjp1.ACT_BRDN_COST) ACT_BRDN_COST,
13528 sum(pjp1.ACT_RAW_COST) ACT_RAW_COST,
13529 sum(pjp1.ACT_REVENUE) ACT_REVENUE,
13530 sum(pjp1.ACT_LABOR_RAW_COST) ACT_LABOR_RAW_COST,
13531 sum(pjp1.ACT_EQUIP_RAW_COST) ACT_EQUIP_RAW_COST,
13532 sum(pjp1.ETC_LABOR_HRS) ETC_LABOR_HRS,
13533 sum(pjp1.ETC_EQUIP_HRS) ETC_EQUIP_HRS,
13534 sum(pjp1.ETC_LABOR_BRDN_COST) ETC_LABOR_BRDN_COST,
13535 sum(pjp1.ETC_EQUIP_BRDN_COST) ETC_EQUIP_BRDN_COST,
13536 sum(pjp1.ETC_BRDN_COST) ETC_BRDN_COST,
13537 sum(pjp1.ETC_RAW_COST) ETC_RAW_COST,
13538 sum(pjp1.ETC_LABOR_RAW_COST) ETC_LABOR_RAW_COST,
13539 sum(pjp1.ETC_EQUIP_RAW_COST) ETC_EQUIP_RAW_COST,
13540 sum(pjp1.CUSTOM1) CUSTOM1,
13541 sum(pjp1.CUSTOM2) CUSTOM2,
13542 sum(pjp1.CUSTOM3) CUSTOM3,
13543 sum(pjp1.CUSTOM4) CUSTOM4,
13544 sum(pjp1.CUSTOM5) CUSTOM5,
13545 sum(pjp1.CUSTOM6) CUSTOM6,
13546 sum(pjp1.CUSTOM7) CUSTOM7,
13547 sum(pjp1.CUSTOM8) CUSTOM8,
13548 sum(pjp1.CUSTOM9) CUSTOM9,
13549 sum(pjp1.CUSTOM10) CUSTOM10,
13550 sum(pjp1.CUSTOM11) CUSTOM11,
13551 sum(pjp1.CUSTOM12) CUSTOM12,
13552 sum(pjp1.CUSTOM13) CUSTOM13,
13553 sum(pjp1.CUSTOM14) CUSTOM14,
13554 sum(pjp1.CUSTOM15) CUSTOM15
13555 from
13556 PJI_FP_AGGR_PJP1 pjp1,
13557 PJI_ROLLUP_LEVEL_STATUS ss,
13558 PJI_PJP_RBS_HEADER rbs_hdr,
13559 PJI_PJP_WBS_HEADER wbs_hdr,
13560 PA_RBS_DENORM rbs
13561 where
13562 l_extraction_type <> 'RBS' and
13563 rbs.STRUCT_VERSION_ID = ss.RBS_VERSION_ID and
13564 pjp1.WORKER_ID = p_worker_id and
13565 pjp1.RBS_AGGR_LEVEL = 'L' and
13566 pjp1.WBS_ROLLUP_FLAG = 'N' and
13567 pjp1.PRG_ROLLUP_FLAG in ('Y', 'N') and
13568 pjp1.PROJECT_ID = ss.PROJECT_ID and
13569 pjp1.RBS_VERSION_ID = ss.RBS_VERSION_ID and
13570 pjp1.RBS_ELEMENT_ID = rbs.SUB_ID and
13571 pjp1.PLAN_VERSION_ID = ss.PLAN_VERSION_ID and
13572 pjp1.PLAN_TYPE_CODE = ss.PLAN_TYPE_CODE and
13573 pjp1.PROJECT_ID = rbs_hdr.PROJECT_ID and
13574 pjp1.PLAN_VERSION_ID = rbs_hdr.PLAN_VERSION_ID and
13575 pjp1.PLAN_TYPE_CODE = rbs_hdr.PLAN_TYPE_CODE and
13576 pjp1.RBS_VERSION_ID = rbs_hdr.RBS_VERSION_ID and
13577 pjp1.PROJECT_ID = wbs_hdr.PROJECT_ID and
13578 pjp1.PLAN_VERSION_ID = wbs_hdr.PLAN_VERSION_ID and
13579 pjp1.PLAN_TYPE_CODE = wbs_hdr.PLAN_TYPE_CODE and
13580 decode(pjp1.PLAN_VERSION_ID,
13581 -3, pjp1.PLAN_TYPE_ID,
13582 -4, pjp1.PLAN_TYPE_ID,
13583 -1) = decode(pjp1.PLAN_VERSION_ID,
13584 -3, wbs_hdr.PLAN_TYPE_ID,
13585 -4, wbs_hdr.PLAN_TYPE_ID,
13586 -1)
13587 group by
13588 wbs_hdr.WBS_VERSION_ID,
13589 pjp1.PRG_LEVEL,
13590 pjp1.LINE_TYPE,
13591 pjp1.PROJECT_ID,
13592 pjp1.PROJECT_ORG_ID,
13593 pjp1.PROJECT_ORGANIZATION_ID,
13594 pjp1.PROJECT_ELEMENT_ID,
13595 pjp1.TIME_ID,
13596 pjp1.PERIOD_TYPE_ID,
13597 pjp1.CALENDAR_TYPE,
13598 decode(rbs.SUP_LEVEL,
13599 rbs.SUB_LEVEL, 'L', 'R'),
13600 pjp1.WBS_ROLLUP_FLAG,
13601 pjp1.PRG_ROLLUP_FLAG,
13602 pjp1.CURR_RECORD_TYPE_ID,
13603 pjp1.CURRENCY_CODE,
13604 rbs.SUP_ID,
13605 pjp1.RBS_VERSION_ID,
13606 pjp1.PLAN_VERSION_ID,
13607 pjp1.PLAN_TYPE_ID,
13608 pjp1.PLAN_TYPE_CODE
13609 ) pjp1,
13610 PA_XBS_DENORM wbs,
13611 (
13612 select 1 WBS_SUP_LEVEL,
13613 'PRJ' INVERT_ID
13614 from DUAL
13615 union all
13616 select 1 WBS_SUP_LEVEL,
13617 'WBS' INVERT_ID
13618 from DUAL
13619 ) top_slice
13620 where
13621 l_extraction_type <> 'RBS' and
13622 'WBS' = wbs.STRUCT_TYPE (+) and
13623 pjp1.PROJECT_ID = wbs.SUP_PROJECT_ID (+) and
13624 pjp1.WBS_VERSION_ID = wbs.STRUCT_VERSION_ID (+) and
13625 pjp1.PROJECT_ELEMENT_ID = wbs.SUB_EMT_ID (+) and
13626 wbs.SUP_LEVEL = top_slice.WBS_SUP_LEVEL (+)
13627 group by
13628 decode(pjp1.RBS_AGGR_LEVEL ||
13629 decode(top_slice.INVERT_ID,
13630 'PRJ', 'Y',
13631 decode(wbs.SUP_EMT_ID,
13632 wbs.SUB_EMT_ID, 'N', 'Y')),
13633 'LN', 'X', null),
13634 pjp1.PRG_LEVEL,
13635 pjp1.LINE_TYPE,
13636 pjp1.PROJECT_ID,
13637 pjp1.PROJECT_ORG_ID,
13638 pjp1.PROJECT_ORGANIZATION_ID,
13639 decode(top_slice.INVERT_ID,
13640 'PRJ', wbs.STRUCT_EMT_ID,
13641 nvl(wbs.SUP_EMT_ID,
13642 pjp1.PROJECT_ELEMENT_ID)),
13643 pjp1.TIME_ID,
13644 pjp1.PERIOD_TYPE_ID,
13645 pjp1.CALENDAR_TYPE,
13646 pjp1.RBS_AGGR_LEVEL,
13647 decode(top_slice.INVERT_ID,
13648 'PRJ', 'Y',
13649 decode(wbs.SUP_EMT_ID,
13650 wbs.SUB_EMT_ID, 'N', 'Y')),
13651 pjp1.PRG_ROLLUP_FLAG,
13652 pjp1.CURR_RECORD_TYPE_ID,
13653 pjp1.CURRENCY_CODE,
13654 pjp1.RBS_ELEMENT_ID,
13655 pjp1.RBS_VERSION_ID,
13656 pjp1.PLAN_VERSION_ID,
13657 pjp1.PLAN_TYPE_ID,
13658 pjp1.PLAN_TYPE_CODE
13659 ) pjp1
13660 where
13661 nvl(pjp1.RECORD_TYPE, 'Y') = 'Y'
13662 group by
13663 pjp1.PRG_LEVEL,
13664 pjp1.LINE_TYPE,
13665 pjp1.PROJECT_ID,
13666 pjp1.PROJECT_ORG_ID,
13667 pjp1.PROJECT_ORGANIZATION_ID,
13668 pjp1.PROJECT_ELEMENT_ID,
13669 pjp1.TIME_ID,
13670 pjp1.PERIOD_TYPE_ID,
13671 pjp1.CALENDAR_TYPE,
13672 pjp1.RBS_AGGR_LEVEL,
13673 pjp1.WBS_ROLLUP_FLAG,
13674 pjp1.PRG_ROLLUP_FLAG,
13675 pjp1.CURR_RECORD_TYPE_ID,
13676 pjp1.CURRENCY_CODE,
13677 pjp1.RBS_ELEMENT_ID,
13678 pjp1.RBS_VERSION_ID,
13679 pjp1.PLAN_VERSION_ID,
13680 pjp1.PLAN_TYPE_ID,
13681 pjp1.PLAN_TYPE_CODE;
13682
13683 PJI_PROCESS_UTIL.REGISTER_STEP_COMPLETION(l_process, 'PJI_PJP_SUM_ROLLUP.ROLLUP_FPR_RBS_SMART_SLICES(p_worker_id);');
13684
13685 commit;
13686
13687 else -- online mode
13688
13689 insert into PJI_FP_AGGR_PJP1_T pjp1_i
13690 (
13691 WORKER_ID,
13692 RECORD_TYPE,
13693 PRG_LEVEL,
13694 LINE_TYPE,
13695 PROJECT_ID,
13696 PROJECT_ORG_ID,
13697 PROJECT_ORGANIZATION_ID,
13698 PROJECT_ELEMENT_ID,
13699 TIME_ID,
13700 PERIOD_TYPE_ID,
13701 CALENDAR_TYPE,
13702 RBS_AGGR_LEVEL,
13703 WBS_ROLLUP_FLAG,
13704 PRG_ROLLUP_FLAG,
13705 CURR_RECORD_TYPE_ID,
13706 CURRENCY_CODE,
13707 RBS_ELEMENT_ID,
13708 RBS_VERSION_ID,
13709 PLAN_VERSION_ID,
13710 PLAN_TYPE_ID,
13711 PLAN_TYPE_CODE,
13712 RAW_COST,
13713 BRDN_COST,
13714 REVENUE,
13715 BILL_RAW_COST,
13716 BILL_BRDN_COST,
13717 BILL_LABOR_RAW_COST,
13718 BILL_LABOR_BRDN_COST,
13719 BILL_LABOR_HRS,
13720 EQUIPMENT_RAW_COST,
13721 EQUIPMENT_BRDN_COST,
13722 CAPITALIZABLE_RAW_COST,
13723 CAPITALIZABLE_BRDN_COST,
13724 LABOR_RAW_COST,
13725 LABOR_BRDN_COST,
13726 LABOR_HRS,
13727 LABOR_REVENUE,
13728 EQUIPMENT_HOURS,
13729 BILLABLE_EQUIPMENT_HOURS,
13730 SUP_INV_COMMITTED_COST,
13731 PO_COMMITTED_COST,
13732 PR_COMMITTED_COST,
13733 OTH_COMMITTED_COST,
13734 ACT_LABOR_HRS,
13735 ACT_EQUIP_HRS,
13736 ACT_LABOR_BRDN_COST,
13737 ACT_EQUIP_BRDN_COST,
13738 ACT_BRDN_COST,
13739 ACT_RAW_COST,
13740 ACT_REVENUE,
13741 ACT_LABOR_RAW_COST,
13742 ACT_EQUIP_RAW_COST,
13743 ETC_LABOR_HRS,
13744 ETC_EQUIP_HRS,
13745 ETC_LABOR_BRDN_COST,
13746 ETC_EQUIP_BRDN_COST,
13747 ETC_BRDN_COST,
13748 ETC_RAW_COST,
13749 ETC_LABOR_RAW_COST,
13750 ETC_EQUIP_RAW_COST,
13751 CUSTOM1,
13752 CUSTOM2,
13753 CUSTOM3,
13754 CUSTOM4,
13755 CUSTOM5,
13756 CUSTOM6,
13757 CUSTOM7,
13758 CUSTOM8,
13759 CUSTOM9,
13760 CUSTOM10,
13761 CUSTOM11,
13762 CUSTOM12,
13763 CUSTOM13,
13764 CUSTOM14,
13765 CUSTOM15
13766 )
13767 select
13768 1 WORKER_ID,
13769 -- p_worker_id WORKER_ID,
13770 'R' RECORD_TYPE,
13771 pjp1.PRG_LEVEL,
13772 pjp1.LINE_TYPE,
13773 pjp1.PROJECT_ID,
13774 pjp1.PROJECT_ORG_ID,
13775 pjp1.PROJECT_ORGANIZATION_ID,
13776 pjp1.PROJECT_ELEMENT_ID,
13777 pjp1.TIME_ID,
13778 pjp1.PERIOD_TYPE_ID,
13779 pjp1.CALENDAR_TYPE,
13780 pjp1.RBS_AGGR_LEVEL,
13781 pjp1.WBS_ROLLUP_FLAG,
13782 pjp1.PRG_ROLLUP_FLAG,
13783 pjp1.CURR_RECORD_TYPE_ID,
13784 pjp1.CURRENCY_CODE,
13785 pjp1.RBS_ELEMENT_ID,
13786 pjp1.RBS_VERSION_ID,
13787 pjp1.PLAN_VERSION_ID,
13788 pjp1.PLAN_TYPE_ID,
13789 pjp1.PLAN_TYPE_CODE,
13790 sum(pjp1.RAW_COST) RAW_COST,
13791 sum(pjp1.BRDN_COST) BRDN_COST,
13792 sum(pjp1.REVENUE) REVENUE,
13793 sum(pjp1.BILL_RAW_COST) BILL_RAW_COST,
13794 sum(pjp1.BILL_BRDN_COST) BILL_BRDN_COST,
13795 sum(pjp1.BILL_LABOR_RAW_COST) BILL_LABOR_RAW_COST,
13796 sum(pjp1.BILL_LABOR_BRDN_COST) BILL_LABOR_BRDN_COST,
13797 sum(pjp1.BILL_LABOR_HRS) BILL_LABOR_HRS,
13798 sum(pjp1.EQUIPMENT_RAW_COST) EQUIPMENT_RAW_COST,
13799 sum(pjp1.EQUIPMENT_BRDN_COST) EQUIPMENT_BRDN_COST,
13800 sum(pjp1.CAPITALIZABLE_RAW_COST) CAPITALIZABLE_RAW_COST,
13801 sum(pjp1.CAPITALIZABLE_BRDN_COST) CAPITALIZABLE_BRDN_COST,
13802 sum(pjp1.LABOR_RAW_COST) LABOR_RAW_COST,
13803 sum(pjp1.LABOR_BRDN_COST) LABOR_BRDN_COST,
13804 sum(pjp1.LABOR_HRS) LABOR_HRS,
13805 sum(pjp1.LABOR_REVENUE) LABOR_REVENUE,
13806 sum(pjp1.EQUIPMENT_HOURS) EQUIPMENT_HOURS,
13807 sum(pjp1.BILLABLE_EQUIPMENT_HOURS) BILLABLE_EQUIPMENT_HOURS,
13808 sum(pjp1.SUP_INV_COMMITTED_COST) SUP_INV_COMMITTED_COST,
13809 sum(pjp1.PO_COMMITTED_COST) PO_COMMITTED_COST,
13810 sum(pjp1.PR_COMMITTED_COST) PR_COMMITTED_COST,
13811 sum(pjp1.OTH_COMMITTED_COST) OTH_COMMITTED_COST,
13812 sum(pjp1.ACT_LABOR_HRS) ACT_LABOR_HRS,
13813 sum(pjp1.ACT_EQUIP_HRS) ACT_EQUIP_HRS,
13814 sum(pjp1.ACT_LABOR_BRDN_COST) ACT_LABOR_BRDN_COST,
13815 sum(pjp1.ACT_EQUIP_BRDN_COST) ACT_EQUIP_BRDN_COST,
13816 sum(pjp1.ACT_BRDN_COST) ACT_BRDN_COST,
13817 sum(pjp1.ACT_RAW_COST) ACT_RAW_COST,
13818 sum(pjp1.ACT_REVENUE) ACT_REVENUE,
13819 sum(pjp1.ACT_LABOR_RAW_COST) ACT_LABOR_RAW_COST,
13820 sum(pjp1.ACT_EQUIP_RAW_COST) ACT_EQUIP_RAW_COST,
13821 sum(pjp1.ETC_LABOR_HRS) ETC_LABOR_HRS,
13822 sum(pjp1.ETC_EQUIP_HRS) ETC_EQUIP_HRS,
13823 sum(pjp1.ETC_LABOR_BRDN_COST) ETC_LABOR_BRDN_COST,
13824 sum(pjp1.ETC_EQUIP_BRDN_COST) ETC_EQUIP_BRDN_COST,
13825 sum(pjp1.ETC_BRDN_COST) ETC_BRDN_COST,
13826 sum(pjp1.ETC_RAW_COST) ETC_RAW_COST,
13827 sum(pjp1.ETC_LABOR_RAW_COST) ETC_LABOR_RAW_COST,
13828 sum(pjp1.ETC_EQUIP_RAW_COST) ETC_EQUIP_RAW_COST,
13829 sum(pjp1.CUSTOM1) CUSTOM1,
13830 sum(pjp1.CUSTOM2) CUSTOM2,
13831 sum(pjp1.CUSTOM3) CUSTOM3,
13832 sum(pjp1.CUSTOM4) CUSTOM4,
13833 sum(pjp1.CUSTOM5) CUSTOM5,
13834 sum(pjp1.CUSTOM6) CUSTOM6,
13835 sum(pjp1.CUSTOM7) CUSTOM7,
13836 sum(pjp1.CUSTOM8) CUSTOM8,
13837 sum(pjp1.CUSTOM9) CUSTOM9,
13838 sum(pjp1.CUSTOM10) CUSTOM10,
13839 sum(pjp1.CUSTOM11) CUSTOM11,
13840 sum(pjp1.CUSTOM12) CUSTOM12,
13841 sum(pjp1.CUSTOM13) CUSTOM13,
13842 sum(pjp1.CUSTOM14) CUSTOM14,
13843 sum(pjp1.CUSTOM15) CUSTOM15
13844 from
13845 (
13846 select /*+ ordered index(wbs PA_XBS_DENORM_N2) */ -- smart slices
13847 decode(pjp1.RBS_AGGR_LEVEL ||
13848 decode(top_slice.INVERT_ID,
13849 'PRJ', 'Y',
13850 decode(wbs.SUP_EMT_ID,
13851 wbs.SUB_EMT_ID, 'N', 'Y')),
13852 'LN', 'X', null) RECORD_TYPE,
13853 pjp1.PRG_LEVEL,
13854 pjp1.LINE_TYPE,
13855 pjp1.PROJECT_ID,
13856 pjp1.PROJECT_ORG_ID,
13857 pjp1.PROJECT_ORGANIZATION_ID,
13858 decode(top_slice.INVERT_ID,
13859 'PRJ', wbs.STRUCT_EMT_ID,
13860 nvl(wbs.SUP_EMT_ID,
13861 pjp1.PROJECT_ELEMENT_ID)) PROJECT_ELEMENT_ID,
13862 pjp1.TIME_ID,
13863 pjp1.PERIOD_TYPE_ID,
13864 pjp1.CALENDAR_TYPE,
13865 pjp1.RBS_AGGR_LEVEL,
13866 decode(top_slice.INVERT_ID,
13867 'PRJ', 'Y',
13868 decode(wbs.SUP_EMT_ID,
13869 wbs.SUB_EMT_ID, 'N', 'Y')) WBS_ROLLUP_FLAG,
13870 pjp1.PRG_ROLLUP_FLAG,
13871 pjp1.CURR_RECORD_TYPE_ID,
13872 pjp1.CURRENCY_CODE,
13873 pjp1.RBS_ELEMENT_ID,
13874 pjp1.RBS_VERSION_ID,
13875 pjp1.PLAN_VERSION_ID,
13876 pjp1.PLAN_TYPE_ID,
13877 pjp1.PLAN_TYPE_CODE,
13878 sum(pjp1.RAW_COST) RAW_COST,
13879 sum(pjp1.BRDN_COST) BRDN_COST,
13880 sum(pjp1.REVENUE) REVENUE,
13881 sum(pjp1.BILL_RAW_COST) BILL_RAW_COST,
13882 sum(pjp1.BILL_BRDN_COST) BILL_BRDN_COST,
13883 sum(pjp1.BILL_LABOR_RAW_COST) BILL_LABOR_RAW_COST,
13884 sum(pjp1.BILL_LABOR_BRDN_COST) BILL_LABOR_BRDN_COST,
13885 sum(pjp1.BILL_LABOR_HRS) BILL_LABOR_HRS,
13886 sum(pjp1.EQUIPMENT_RAW_COST) EQUIPMENT_RAW_COST,
13887 sum(pjp1.EQUIPMENT_BRDN_COST) EQUIPMENT_BRDN_COST,
13888 sum(pjp1.CAPITALIZABLE_RAW_COST) CAPITALIZABLE_RAW_COST,
13889 sum(pjp1.CAPITALIZABLE_BRDN_COST) CAPITALIZABLE_BRDN_COST,
13890 sum(pjp1.LABOR_RAW_COST) LABOR_RAW_COST,
13891 sum(pjp1.LABOR_BRDN_COST) LABOR_BRDN_COST,
13892 sum(pjp1.LABOR_HRS) LABOR_HRS,
13893 sum(pjp1.LABOR_REVENUE) LABOR_REVENUE,
13894 sum(pjp1.EQUIPMENT_HOURS) EQUIPMENT_HOURS,
13895 sum(pjp1.BILLABLE_EQUIPMENT_HOURS) BILLABLE_EQUIPMENT_HOURS,
13896 sum(pjp1.SUP_INV_COMMITTED_COST) SUP_INV_COMMITTED_COST,
13897 sum(pjp1.PO_COMMITTED_COST) PO_COMMITTED_COST,
13898 sum(pjp1.PR_COMMITTED_COST) PR_COMMITTED_COST,
13899 sum(pjp1.OTH_COMMITTED_COST) OTH_COMMITTED_COST,
13900 sum(pjp1.ACT_LABOR_HRS) ACT_LABOR_HRS,
13901 sum(pjp1.ACT_EQUIP_HRS) ACT_EQUIP_HRS,
13902 sum(pjp1.ACT_LABOR_BRDN_COST) ACT_LABOR_BRDN_COST,
13903 sum(pjp1.ACT_EQUIP_BRDN_COST) ACT_EQUIP_BRDN_COST,
13904 sum(pjp1.ACT_BRDN_COST) ACT_BRDN_COST,
13905 sum(pjp1.ACT_RAW_COST) ACT_RAW_COST,
13906 sum(pjp1.ACT_REVENUE) ACT_REVENUE,
13907 sum(pjp1.ACT_LABOR_RAW_COST) ACT_LABOR_RAW_COST,
13908 sum(pjp1.ACT_EQUIP_RAW_COST) ACT_EQUIP_RAW_COST,
13909 sum(pjp1.ETC_LABOR_HRS) ETC_LABOR_HRS,
13910 sum(pjp1.ETC_EQUIP_HRS) ETC_EQUIP_HRS,
13911 sum(pjp1.ETC_LABOR_BRDN_COST) ETC_LABOR_BRDN_COST,
13912 sum(pjp1.ETC_EQUIP_BRDN_COST) ETC_EQUIP_BRDN_COST,
13913 sum(pjp1.ETC_BRDN_COST) ETC_BRDN_COST,
13914 sum(pjp1.ETC_RAW_COST) ETC_RAW_COST,
13915 sum(pjp1.ETC_LABOR_RAW_COST) ETC_LABOR_RAW_COST,
13916 sum(pjp1.ETC_EQUIP_RAW_COST) ETC_EQUIP_RAW_COST,
13917 sum(pjp1.CUSTOM1) CUSTOM1,
13918 sum(pjp1.CUSTOM2) CUSTOM2,
13919 sum(pjp1.CUSTOM3) CUSTOM3,
13920 sum(pjp1.CUSTOM4) CUSTOM4,
13921 sum(pjp1.CUSTOM5) CUSTOM5,
13922 sum(pjp1.CUSTOM6) CUSTOM6,
13923 sum(pjp1.CUSTOM7) CUSTOM7,
13924 sum(pjp1.CUSTOM8) CUSTOM8,
13925 sum(pjp1.CUSTOM9) CUSTOM9,
13926 sum(pjp1.CUSTOM10) CUSTOM10,
13927 sum(pjp1.CUSTOM11) CUSTOM11,
13928 sum(pjp1.CUSTOM12) CUSTOM12,
13929 sum(pjp1.CUSTOM13) CUSTOM13,
13930 sum(pjp1.CUSTOM14) CUSTOM14,
13931 sum(pjp1.CUSTOM15) CUSTOM15
13932 from
13933 (
13934 select /*+ ordered */
13935 wbs_hdr.WBS_VERSION_ID,
13936 pjp1.PRG_LEVEL,
13937 pjp1.LINE_TYPE,
13938 pjp1.PROJECT_ID,
13939 pjp1.PROJECT_ORG_ID,
13940 pjp1.PROJECT_ORGANIZATION_ID,
13941 pjp1.PROJECT_ELEMENT_ID,
13942 pjp1.TIME_ID,
13943 pjp1.PERIOD_TYPE_ID,
13944 pjp1.CALENDAR_TYPE,
13945 decode(rbs.SUP_LEVEL,
13946 rbs.SUB_LEVEL, 'L', 'R') RBS_AGGR_LEVEL,
13947 pjp1.WBS_ROLLUP_FLAG,
13948 pjp1.PRG_ROLLUP_FLAG,
13949 pjp1.CURR_RECORD_TYPE_ID,
13950 pjp1.CURRENCY_CODE,
13951 rbs.SUP_ID RBS_ELEMENT_ID,
13952 pjp1.RBS_VERSION_ID,
13953 pjp1.PLAN_VERSION_ID,
13954 pjp1.PLAN_TYPE_ID,
13955 pjp1.PLAN_TYPE_CODE,
13956 sum(pjp1.RAW_COST) RAW_COST,
13957 sum(pjp1.BRDN_COST) BRDN_COST,
13958 sum(pjp1.REVENUE) REVENUE,
13959 sum(pjp1.BILL_RAW_COST) BILL_RAW_COST,
13960 sum(pjp1.BILL_BRDN_COST) BILL_BRDN_COST,
13961 sum(pjp1.BILL_LABOR_RAW_COST) BILL_LABOR_RAW_COST,
13962 sum(pjp1.BILL_LABOR_BRDN_COST) BILL_LABOR_BRDN_COST,
13963 sum(pjp1.BILL_LABOR_HRS) BILL_LABOR_HRS,
13964 sum(pjp1.EQUIPMENT_RAW_COST) EQUIPMENT_RAW_COST,
13965 sum(pjp1.EQUIPMENT_BRDN_COST) EQUIPMENT_BRDN_COST,
13966 sum(pjp1.CAPITALIZABLE_RAW_COST) CAPITALIZABLE_RAW_COST,
13967 sum(pjp1.CAPITALIZABLE_BRDN_COST) CAPITALIZABLE_BRDN_COST,
13968 sum(pjp1.LABOR_RAW_COST) LABOR_RAW_COST,
13969 sum(pjp1.LABOR_BRDN_COST) LABOR_BRDN_COST,
13970 sum(pjp1.LABOR_HRS) LABOR_HRS,
13971 sum(pjp1.LABOR_REVENUE) LABOR_REVENUE,
13972 sum(pjp1.EQUIPMENT_HOURS) EQUIPMENT_HOURS,
13973 sum(pjp1.BILLABLE_EQUIPMENT_HOURS) BILLABLE_EQUIPMENT_HOURS,
13974 sum(pjp1.SUP_INV_COMMITTED_COST) SUP_INV_COMMITTED_COST,
13975 sum(pjp1.PO_COMMITTED_COST) PO_COMMITTED_COST,
13976 sum(pjp1.PR_COMMITTED_COST) PR_COMMITTED_COST,
13977 sum(pjp1.OTH_COMMITTED_COST) OTH_COMMITTED_COST,
13978 sum(pjp1.ACT_LABOR_HRS) ACT_LABOR_HRS,
13979 sum(pjp1.ACT_EQUIP_HRS) ACT_EQUIP_HRS,
13980 sum(pjp1.ACT_LABOR_BRDN_COST) ACT_LABOR_BRDN_COST,
13981 sum(pjp1.ACT_EQUIP_BRDN_COST) ACT_EQUIP_BRDN_COST,
13982 sum(pjp1.ACT_BRDN_COST) ACT_BRDN_COST,
13983 sum(pjp1.ACT_RAW_COST) ACT_RAW_COST,
13984 sum(pjp1.ACT_REVENUE) ACT_REVENUE,
13985 sum(pjp1.ACT_LABOR_RAW_COST) ACT_LABOR_RAW_COST,
13986 sum(pjp1.ACT_EQUIP_RAW_COST) ACT_EQUIP_RAW_COST,
13987 sum(pjp1.ETC_LABOR_HRS) ETC_LABOR_HRS,
13988 sum(pjp1.ETC_EQUIP_HRS) ETC_EQUIP_HRS,
13989 sum(pjp1.ETC_LABOR_BRDN_COST) ETC_LABOR_BRDN_COST,
13990 sum(pjp1.ETC_EQUIP_BRDN_COST) ETC_EQUIP_BRDN_COST,
13991 sum(pjp1.ETC_BRDN_COST) ETC_BRDN_COST,
13992 sum(pjp1.ETC_RAW_COST) ETC_RAW_COST,
13993 sum(pjp1.ETC_LABOR_RAW_COST) ETC_LABOR_RAW_COST,
13994 sum(pjp1.ETC_EQUIP_RAW_COST) ETC_EQUIP_RAW_COST,
13995 sum(pjp1.CUSTOM1) CUSTOM1,
13996 sum(pjp1.CUSTOM2) CUSTOM2,
13997 sum(pjp1.CUSTOM3) CUSTOM3,
13998 sum(pjp1.CUSTOM4) CUSTOM4,
13999 sum(pjp1.CUSTOM5) CUSTOM5,
14000 sum(pjp1.CUSTOM6) CUSTOM6,
14001 sum(pjp1.CUSTOM7) CUSTOM7,
14002 sum(pjp1.CUSTOM8) CUSTOM8,
14003 sum(pjp1.CUSTOM9) CUSTOM9,
14004 sum(pjp1.CUSTOM10) CUSTOM10,
14005 sum(pjp1.CUSTOM11) CUSTOM11,
14006 sum(pjp1.CUSTOM12) CUSTOM12,
14007 sum(pjp1.CUSTOM13) CUSTOM13,
14008 sum(pjp1.CUSTOM14) CUSTOM14,
14009 sum(pjp1.CUSTOM15) CUSTOM15
14010 from
14011 PJI_FP_AGGR_PJP1_T pjp1,
14012 PJI_ROLLUP_LEVEL_STATUS ss,
14013 PJI_PJP_RBS_HEADER rbs_hdr,
14014 PJI_PJP_WBS_HEADER wbs_hdr,
14015 PA_RBS_DENORM rbs
14016 where
14017 -- l_extraction_type <> 'RBS' and
14018 rbs.STRUCT_VERSION_ID = ss.RBS_VERSION_ID and
14019 -- pjp1.WORKER_ID = p_worker_id and
14020 pjp1.RBS_AGGR_LEVEL = 'L' and
14021 pjp1.WBS_ROLLUP_FLAG = 'N' and
14022 pjp1.PRG_ROLLUP_FLAG in ('Y', 'N') and
14023 pjp1.PROJECT_ID = ss.PROJECT_ID and
14024 pjp1.RBS_VERSION_ID = ss.RBS_VERSION_ID and
14025 pjp1.RBS_ELEMENT_ID = rbs.SUB_ID and
14026 pjp1.PLAN_VERSION_ID = ss.PLAN_VERSION_ID and
14027 pjp1.PLAN_TYPE_CODE = ss.PLAN_TYPE_CODE and
14028 pjp1.PROJECT_ID = rbs_hdr.PROJECT_ID and
14029 pjp1.PLAN_VERSION_ID = rbs_hdr.PLAN_VERSION_ID and
14030 pjp1.PLAN_TYPE_CODE = rbs_hdr.PLAN_TYPE_CODE and
14031 pjp1.RBS_VERSION_ID = rbs_hdr.RBS_VERSION_ID and
14032 pjp1.PROJECT_ID = wbs_hdr.PROJECT_ID and
14033 pjp1.PLAN_VERSION_ID = wbs_hdr.PLAN_VERSION_ID and
14034 pjp1.PLAN_TYPE_CODE = wbs_hdr.PLAN_TYPE_CODE and
14035 decode(pjp1.PLAN_VERSION_ID,
14036 -3, pjp1.PLAN_TYPE_ID,
14037 -4, pjp1.PLAN_TYPE_ID,
14038 -1) = decode(pjp1.PLAN_VERSION_ID,
14039 -3, wbs_hdr.PLAN_TYPE_ID,
14040 -4, wbs_hdr.PLAN_TYPE_ID,
14041 -1)
14042 group by
14043 wbs_hdr.WBS_VERSION_ID,
14044 pjp1.PRG_LEVEL,
14045 pjp1.LINE_TYPE,
14046 pjp1.PROJECT_ID,
14047 pjp1.PROJECT_ORG_ID,
14048 pjp1.PROJECT_ORGANIZATION_ID,
14049 pjp1.PROJECT_ELEMENT_ID,
14050 pjp1.TIME_ID,
14051 pjp1.PERIOD_TYPE_ID,
14052 pjp1.CALENDAR_TYPE,
14053 decode(rbs.SUP_LEVEL,
14054 rbs.SUB_LEVEL, 'L', 'R'),
14055 pjp1.WBS_ROLLUP_FLAG,
14056 pjp1.PRG_ROLLUP_FLAG,
14057 pjp1.CURR_RECORD_TYPE_ID,
14058 pjp1.CURRENCY_CODE,
14059 rbs.SUP_ID,
14060 pjp1.RBS_VERSION_ID,
14061 pjp1.PLAN_VERSION_ID,
14062 pjp1.PLAN_TYPE_ID,
14063 pjp1.PLAN_TYPE_CODE
14064 ) pjp1,
14065 PA_XBS_DENORM wbs,
14066 (
14067 select 1 WBS_SUP_LEVEL,
14068 'PRJ' INVERT_ID
14069 from DUAL
14070 union all
14071 select 1 WBS_SUP_LEVEL,
14072 'WBS' INVERT_ID
14073 from DUAL
14074 ) top_slice
14075 where
14076 -- l_extraction_type <> 'RBS' and
14077 'WBS' = wbs.STRUCT_TYPE (+) and
14078 pjp1.PROJECT_ID = wbs.SUP_PROJECT_ID (+) and
14079 pjp1.WBS_VERSION_ID = wbs.STRUCT_VERSION_ID (+) and
14080 pjp1.PROJECT_ELEMENT_ID = wbs.SUB_EMT_ID (+) and
14081 wbs.SUP_LEVEL = top_slice.WBS_SUP_LEVEL (+)
14082 group by
14083 decode(pjp1.RBS_AGGR_LEVEL ||
14084 decode(top_slice.INVERT_ID,
14085 'PRJ', 'Y',
14086 decode(wbs.SUP_EMT_ID,
14087 wbs.SUB_EMT_ID, 'N', 'Y')),
14088 'LN', 'X', null),
14089 pjp1.PRG_LEVEL,
14090 pjp1.LINE_TYPE,
14091 pjp1.PROJECT_ID,
14092 pjp1.PROJECT_ORG_ID,
14093 pjp1.PROJECT_ORGANIZATION_ID,
14094 decode(top_slice.INVERT_ID,
14095 'PRJ', wbs.STRUCT_EMT_ID,
14096 nvl(wbs.SUP_EMT_ID,
14097 pjp1.PROJECT_ELEMENT_ID)),
14098 pjp1.TIME_ID,
14099 pjp1.PERIOD_TYPE_ID,
14100 pjp1.CALENDAR_TYPE,
14101 pjp1.RBS_AGGR_LEVEL,
14102 decode(top_slice.INVERT_ID,
14103 'PRJ', 'Y',
14104 decode(wbs.SUP_EMT_ID,
14105 wbs.SUB_EMT_ID, 'N', 'Y')),
14106 pjp1.PRG_ROLLUP_FLAG,
14107 pjp1.CURR_RECORD_TYPE_ID,
14108 pjp1.CURRENCY_CODE,
14109 pjp1.RBS_ELEMENT_ID,
14110 pjp1.RBS_VERSION_ID,
14111 pjp1.PLAN_VERSION_ID,
14112 pjp1.PLAN_TYPE_ID,
14113 pjp1.PLAN_TYPE_CODE
14114 ) pjp1
14115 where
14116 nvl(pjp1.RECORD_TYPE, 'Y') = 'Y'
14117 group by
14118 pjp1.PRG_LEVEL,
14119 pjp1.LINE_TYPE,
14120 pjp1.PROJECT_ID,
14121 pjp1.PROJECT_ORG_ID,
14122 pjp1.PROJECT_ORGANIZATION_ID,
14123 pjp1.PROJECT_ELEMENT_ID,
14124 pjp1.TIME_ID,
14125 pjp1.PERIOD_TYPE_ID,
14126 pjp1.CALENDAR_TYPE,
14127 pjp1.RBS_AGGR_LEVEL,
14128 pjp1.WBS_ROLLUP_FLAG,
14129 pjp1.PRG_ROLLUP_FLAG,
14130 pjp1.CURR_RECORD_TYPE_ID,
14131 pjp1.CURRENCY_CODE,
14132 pjp1.RBS_ELEMENT_ID,
14133 pjp1.RBS_VERSION_ID,
14134 pjp1.PLAN_VERSION_ID,
14135 pjp1.PLAN_TYPE_ID,
14136 pjp1.PLAN_TYPE_CODE;
14137
14138 end if;
14139
14140 end ROLLUP_FPR_RBS_SMART_SLICES;
14141
14142
14143 -- -----------------------------------------------------
14144 -- procedure ROLLUP_ACR_WBS
14145 --
14146 -- History
14147 -- 19-MAR-2004 SVERMETT Created
14148 --
14149 -- This API will be called for both online and bulk processing.
14150 --
14151 -- -----------------------------------------------------
14152 procedure ROLLUP_ACR_WBS (p_worker_id in number default null) is
14153
14154 l_process varchar2(30);
14155 l_extraction_type varchar2(30);
14156 l_level number;
14157 l_max_level number;
14158 l_step_seq number;
14159 l_level_seq number;
14160 l_count number;
14161
14162 begin
14163
14164 if (p_worker_id is not null) then
14165
14166 l_process := PJI_PJP_SUM_MAIN.g_process || to_char(p_worker_id);
14167
14168 if (not PJI_PROCESS_UTIL.NEED_TO_RUN_STEP(l_process, 'PJI_PJP_SUM_ROLLUP.ROLLUP_ACR_WBS(p_worker_id);')) then
14169 return;
14170 end if;
14171
14172 l_extraction_type := PJI_PROCESS_UTIL.GET_PROCESS_PARAMETER(l_process, 'EXTRACTION_TYPE');
14173
14174 -- allow recovery after each level is processed
14175
14176 select
14177 STEP_SEQ
14178 into
14179 l_step_seq
14180 from
14181 PJI_SYSTEM_PRC_STATUS
14182 where
14183 PROCESS_NAME = l_process and
14184 STEP_NAME = 'PJI_PJP_SUM_ROLLUP.ROLLUP_ACR_WBS(p_worker_id);';
14185
14186 select
14187 count(*)
14188 into
14189 l_count
14190 from
14191 PJI_SYSTEM_PRC_STATUS
14192 where
14193 PROCESS_NAME = l_process and
14194 STEP_NAME like 'ROLLUP_ACR_WBS%';
14195
14196 if (l_count = 0) then
14197
14198 select /*+ ordered index(den PJI_XBS_DENORM_N3) use_hash(den) */ /* Modified for Bug 7669026 */
14199 nvl(max(den.SUP_LEVEL), 0)
14200 into
14201 l_level
14202 from
14203 PJI_PJP_PROJ_BATCH_MAP map,
14204 PJI_XBS_DENORM den
14205 where
14206 map.WORKER_ID = p_worker_id and
14207 den.STRUCT_TYPE = 'PRG' and
14208 den.SUB_LEVEL = den.SUP_LEVEL and
14209 den.SUP_PROJECT_ID = map.PROJECT_ID;
14210
14211 PJI_PROCESS_UTIL.SET_PROCESS_PARAMETER(l_process,
14212 'MAX_PROGRAM_LEVEL',
14213 l_level);
14214
14215 for x in 1 .. l_level loop
14216
14217 insert into PJI_SYSTEM_PRC_STATUS
14218 (
14219 PROCESS_NAME,
14220 STEP_SEQ,
14221 STEP_STATUS,
14222 STEP_NAME,
14223 START_DATE,
14224 END_DATE
14225 )
14226 select
14227 l_process PROCESS_NAME,
14228 to_char(l_step_seq + x / 1000) STEP_SEQ,
14229 null STEP_STATUS,
14230 'ROLLUP_ACR_WBS - level ' || to_char(l_level - x + 1) STEP_NAME,
14231 null START_DATE,
14232 null END_DATE
14233 from
14234 DUAL;
14235
14236 end loop;
14237
14238 end if;
14239
14240 l_max_level := PJI_PROCESS_UTIL.GET_PROCESS_PARAMETER
14241 (l_process, 'MAX_PROGRAM_LEVEL');
14242
14243 select
14244 nvl(to_number(min(STEP_SEQ)), 0)
14245 into
14246 l_level_seq
14247 from
14248 PJI_SYSTEM_PRC_STATUS
14249 where
14250 PROCESS_NAME = l_process and
14251 STEP_NAME like 'ROLLUP_ACR_WBS%' and
14252 STEP_STATUS is null;
14253
14254 if (l_level_seq = 0) then
14255 l_level := 0;
14256 else
14257 l_level := l_max_level - ((l_level_seq - l_step_seq) * 1000) + 1;
14258 end if;
14259
14260 while (l_level > 0) loop
14261
14262 update PJI_SYSTEM_PRC_STATUS
14263 set START_DATE = sysdate
14264 where PROCESS_NAME = l_process and
14265 STEP_SEQ = l_level_seq;
14266
14267 -- rollup project hiearchy
14268 /* Call to Paritioned procedure for bug 7551819 */
14269 PJI_PROCESS_UTIL.EXECUTE_ROLLUP_ACR_WBS(p_worker_id,
14270 l_level);
14271
14272 /* Commented for bug 7551819 */
14273 -- insert /*+ parallel(pjp1_in)
14274 -- noappend(pjp1_in) */ into PJI_AC_AGGR_PJP1 pjp1_in -- changed for bug 5927368
14275 /* ( WORKER_ID,
14276 RECORD_TYPE,
14277 PRG_LEVEL,
14278 PROJECT_ID,
14279 PROJECT_ORG_ID,
14280 PROJECT_ORGANIZATION_ID,
14281 PROJECT_ELEMENT_ID,
14282 TIME_ID,
14283 PERIOD_TYPE_ID,
14284 CALENDAR_TYPE,
14285 WBS_ROLLUP_FLAG,
14286 PRG_ROLLUP_FLAG,
14287 CURR_RECORD_TYPE_ID,
14288 CURRENCY_CODE,
14289 REVENUE,
14290 INITIAL_FUNDING_AMOUNT,
14291 INITIAL_FUNDING_COUNT,
14292 ADDITIONAL_FUNDING_AMOUNT,
14293 ADDITIONAL_FUNDING_COUNT,
14294 CANCELLED_FUNDING_AMOUNT,
14295 CANCELLED_FUNDING_COUNT,
14296 FUNDING_ADJUSTMENT_AMOUNT,
14297 FUNDING_ADJUSTMENT_COUNT,
14298 REVENUE_WRITEOFF,
14299 AR_INVOICE_AMOUNT,
14300 AR_INVOICE_COUNT,
14301 AR_CASH_APPLIED_AMOUNT,
14302 AR_INVOICE_WRITE_OFF_AMOUNT,
14303 AR_INVOICE_WRITEOFF_COUNT,
14304 AR_CREDIT_MEMO_AMOUNT,
14305 AR_CREDIT_MEMO_COUNT,
14306 UNBILLED_RECEIVABLES,
14307 UNEARNED_REVENUE,
14308 AR_UNAPPR_INVOICE_AMOUNT,
14309 AR_UNAPPR_INVOICE_COUNT,
14310 AR_APPR_INVOICE_AMOUNT,
14311 AR_APPR_INVOICE_COUNT,
14312 AR_AMOUNT_DUE,
14313 AR_COUNT_DUE,
14314 AR_AMOUNT_OVERDUE,
14315 AR_COUNT_OVERDUE,
14316 CUSTOM1,
14317 CUSTOM2,
14318 CUSTOM3,
14319 CUSTOM4,
14320 CUSTOM5,
14321 CUSTOM6,
14322 CUSTOM7,
14323 CUSTOM8,
14324 CUSTOM9,
14325 CUSTOM10,
14326 CUSTOM11,
14327 CUSTOM12,
14328 CUSTOM13,
14329 CUSTOM14,
14330 CUSTOM15
14331 )
14332 select
14333 pjp1_i.WORKER_ID,
14334 pjp1_i.RECORD_TYPE,
14335 pjp1_i.PRG_LEVEL,
14336 pjp1_i.PROJECT_ID,
14337 pjp1_i.PROJECT_ORG_ID,
14338 pjp1_i.PROJECT_ORGANIZATION_ID,
14339 pjp1_i.PROJECT_ELEMENT_ID,
14340 pjp1_i.TIME_ID,
14341 pjp1_i.PERIOD_TYPE_ID,
14342 pjp1_i.CALENDAR_TYPE,
14343 pjp1_i.WBS_ROLLUP_FLAG,
14344 pjp1_i.PRG_ROLLUP_FLAG,
14345 pjp1_i.CURR_RECORD_TYPE_ID,
14346 pjp1_i.CURRENCY_CODE,
14347 pjp1_i.REVENUE,
14348 pjp1_i.INITIAL_FUNDING_AMOUNT,
14349 pjp1_i.INITIAL_FUNDING_COUNT,
14350 pjp1_i.ADDITIONAL_FUNDING_AMOUNT,
14351 pjp1_i.ADDITIONAL_FUNDING_COUNT,
14352 pjp1_i.CANCELLED_FUNDING_AMOUNT,
14353 pjp1_i.CANCELLED_FUNDING_COUNT,
14354 pjp1_i.FUNDING_ADJUSTMENT_AMOUNT,
14355 pjp1_i.FUNDING_ADJUSTMENT_COUNT,
14356 pjp1_i.REVENUE_WRITEOFF,
14357 pjp1_i.AR_INVOICE_AMOUNT,
14358 pjp1_i.AR_INVOICE_COUNT,
14359 pjp1_i.AR_CASH_APPLIED_AMOUNT,
14360 pjp1_i.AR_INVOICE_WRITE_OFF_AMOUNT,
14361 pjp1_i.AR_INVOICE_WRITEOFF_COUNT,
14362 pjp1_i.AR_CREDIT_MEMO_AMOUNT,
14363 pjp1_i.AR_CREDIT_MEMO_COUNT,
14364 pjp1_i.UNBILLED_RECEIVABLES,
14365 pjp1_i.UNEARNED_REVENUE,
14366 pjp1_i.AR_UNAPPR_INVOICE_AMOUNT,
14367 pjp1_i.AR_UNAPPR_INVOICE_COUNT,
14368 pjp1_i.AR_APPR_INVOICE_AMOUNT,
14369 pjp1_i.AR_APPR_INVOICE_COUNT,
14370 pjp1_i.AR_AMOUNT_DUE,
14371 pjp1_i.AR_COUNT_DUE,
14372 pjp1_i.AR_AMOUNT_OVERDUE,
14373 pjp1_i.AR_COUNT_OVERDUE,
14374 pjp1_i.CUSTOM1,
14375 pjp1_i.CUSTOM2,
14376 pjp1_i.CUSTOM3,
14377 pjp1_i.CUSTOM4,
14378 pjp1_i.CUSTOM5,
14379 pjp1_i.CUSTOM6,
14380 pjp1_i.CUSTOM7,
14381 pjp1_i.CUSTOM8,
14382 pjp1_i.CUSTOM9,
14383 pjp1_i.CUSTOM10,
14384 pjp1_i.CUSTOM11,
14385 pjp1_i.CUSTOM12,
14386 pjp1_i.CUSTOM13,
14387 pjp1_i.CUSTOM14,
14388 pjp1_i.CUSTOM15
14389 from
14390 (
14391 select
14392 decode(nvl(prg.SUB_EMT_ID, -1), nvl(prg.SUB_ROLLUP_ID, -1),
14393 pjp.INSERT_FLAG, 'Y') INSERT_FLAG,
14394 decode(nvl(prg.SUB_EMT_ID, -1), nvl(prg.SUB_ROLLUP_ID, -1),
14395 null, prg.SUP_ID) SUP_ID,
14396 decode(nvl(prg.SUB_EMT_ID, -1), nvl(prg.SUB_ROLLUP_ID, -1),
14397 null, prg.SUP_EMT_ID) SUP_EMT_ID,
14398 p_worker_id WORKER_ID,
14399 'W' RECORD_TYPE,
14400 decode(nvl(prg.SUB_EMT_ID, -1), nvl(prg.SUB_ROLLUP_ID, -1),
14401 l_level, prg.SUP_LEVEL) PRG_LEVEL,
14402 decode(nvl(prg.SUB_EMT_ID, -1), nvl(prg.SUB_ROLLUP_ID, -1),
14403 pjp.PROJECT_ID,
14404 prg.SUP_PROJECT_ID) PROJECT_ID,
14405 decode(nvl(prg.SUB_EMT_ID, -1), nvl(prg.SUB_ROLLUP_ID, -1),
14406 pjp.PROJECT_ORG_ID,
14407 prg.SUP_PROJECT_ORG_ID) PROJECT_ORG_ID,
14408 decode(nvl(prg.SUB_EMT_ID, -1), nvl(prg.SUB_ROLLUP_ID, -1),
14409 pjp.PROJECT_ORGANIZATION_ID,
14410 prg.SUP_PROJECT_ORGANIZATION_ID) PROJECT_ORGANIZATION_ID,
14411 decode(nvl(prg.SUB_EMT_ID, -1), nvl(prg.SUB_ROLLUP_ID, -1),
14412 pjp.PROJECT_ELEMENT_ID,
14413 prg.SUB_ROLLUP_ID) PROJECT_ELEMENT_ID,
14414 pjp.TIME_ID,
14415 pjp.PERIOD_TYPE_ID,
14416 pjp.CALENDAR_TYPE,
14417 decode(nvl(prg.SUB_EMT_ID, -1), nvl(prg.SUB_ROLLUP_ID, -1),
14418 pjp.WBS_ROLLUP_FLAG, 'N') WBS_ROLLUP_FLAG,
14419 decode(nvl(prg.SUB_EMT_ID, -1), nvl(prg.SUB_ROLLUP_ID, -1),
14420 pjp.PRG_ROLLUP_FLAG, 'Y') PRG_ROLLUP_FLAG,
14421 pjp.CURR_RECORD_TYPE_ID,
14422 pjp.CURRENCY_CODE,
14423 sum(pjp.REVENUE) REVENUE,
14424 sum(pjp.INITIAL_FUNDING_AMOUNT) INITIAL_FUNDING_AMOUNT,
14425 sum(pjp.INITIAL_FUNDING_COUNT) INITIAL_FUNDING_COUNT,
14426 sum(pjp.ADDITIONAL_FUNDING_AMOUNT) ADDITIONAL_FUNDING_AMOUNT,
14427 sum(pjp.ADDITIONAL_FUNDING_COUNT) ADDITIONAL_FUNDING_COUNT,
14428 sum(pjp.CANCELLED_FUNDING_AMOUNT) CANCELLED_FUNDING_AMOUNT,
14429 sum(pjp.CANCELLED_FUNDING_COUNT) CANCELLED_FUNDING_COUNT,
14430 sum(pjp.FUNDING_ADJUSTMENT_AMOUNT) FUNDING_ADJUSTMENT_AMOUNT,
14431 sum(pjp.FUNDING_ADJUSTMENT_COUNT) FUNDING_ADJUSTMENT_COUNT,
14432 sum(pjp.REVENUE_WRITEOFF) REVENUE_WRITEOFF,
14433 sum(pjp.AR_INVOICE_AMOUNT) AR_INVOICE_AMOUNT,
14434 sum(pjp.AR_INVOICE_COUNT) AR_INVOICE_COUNT,
14435 sum(pjp.AR_CASH_APPLIED_AMOUNT) AR_CASH_APPLIED_AMOUNT,
14436 sum(pjp.AR_INVOICE_WRITE_OFF_AMOUNT) AR_INVOICE_WRITE_OFF_AMOUNT,
14437 sum(pjp.AR_INVOICE_WRITEOFF_COUNT) AR_INVOICE_WRITEOFF_COUNT,
14438 sum(pjp.AR_CREDIT_MEMO_AMOUNT) AR_CREDIT_MEMO_AMOUNT,
14439 sum(pjp.AR_CREDIT_MEMO_COUNT) AR_CREDIT_MEMO_COUNT,
14440 sum(pjp.UNBILLED_RECEIVABLES) UNBILLED_RECEIVABLES,
14441 sum(pjp.UNEARNED_REVENUE) UNEARNED_REVENUE,
14442 sum(pjp.AR_UNAPPR_INVOICE_AMOUNT) AR_UNAPPR_INVOICE_AMOUNT,
14443 sum(pjp.AR_UNAPPR_INVOICE_COUNT) AR_UNAPPR_INVOICE_COUNT,
14444 sum(pjp.AR_APPR_INVOICE_AMOUNT) AR_APPR_INVOICE_AMOUNT,
14445 sum(pjp.AR_APPR_INVOICE_COUNT) AR_APPR_INVOICE_COUNT,
14446 sum(pjp.AR_AMOUNT_DUE) AR_AMOUNT_DUE,
14447 sum(pjp.AR_COUNT_DUE) AR_COUNT_DUE,
14448 sum(pjp.AR_AMOUNT_OVERDUE) AR_AMOUNT_OVERDUE,
14449 sum(pjp.AR_COUNT_OVERDUE) AR_COUNT_OVERDUE,
14450 sum(pjp.CUSTOM1) CUSTOM1,
14451 sum(pjp.CUSTOM2) CUSTOM2,
14452 sum(pjp.CUSTOM3) CUSTOM3,
14453 sum(pjp.CUSTOM4) CUSTOM4,
14454 sum(pjp.CUSTOM5) CUSTOM5,
14455 sum(pjp.CUSTOM6) CUSTOM6,
14456 sum(pjp.CUSTOM7) CUSTOM7,
14457 sum(pjp.CUSTOM8) CUSTOM8,
14458 sum(pjp.CUSTOM9) CUSTOM9,
14459 sum(pjp.CUSTOM10) CUSTOM10,
14460 sum(pjp.CUSTOM11) CUSTOM11,
14461 sum(pjp.CUSTOM12) CUSTOM12,
14462 sum(pjp.CUSTOM13) CUSTOM13,
14463 sum(pjp.CUSTOM14) CUSTOM14,
14464 sum(pjp.CUSTOM15) CUSTOM15
14465 from
14466 (
14467 select /*+ ordered index(wbs PA_XBS_DENORM_N2) */
14468 -- get incremental task level amounts from source and
14469 -- program rollup amounts from interim
14470 /*wbs_hdr.WBS_VERSION_ID,
14471 'LF' RELATIONSHIP_TYPE,
14472 decode(top_slice.INVERT_ID,
14473 'PRJ', 'Y',
14474 decode(wbs.SUB_LEVEL,
14475 1, 'Y', 'N')) PUSHUP_FLAG,
14476 'Y' INSERT_FLAG,
14477 pjp1.PROJECT_ID,
14478 pjp1.PROJECT_ORG_ID,
14479 pjp1.PROJECT_ORGANIZATION_ID,
14480 decode(top_slice.INVERT_ID,
14481 'PRJ', prg.SUP_EMT_ID,
14482 decode(wbs.SUB_LEVEL,
14483 1, prg.SUP_EMT_ID,
14484 wbs.SUP_EMT_ID)) PROJECT_ELEMENT_ID,
14485 pjp1.TIME_ID,
14486 pjp1.PERIOD_TYPE_ID,
14487 pjp1.CALENDAR_TYPE,
14488 'Y' WBS_ROLLUP_FLAG,
14489 pjp1.PRG_ROLLUP_FLAG,
14490 pjp1.CURR_RECORD_TYPE_ID,
14491 pjp1.CURRENCY_CODE,
14492 pjp1.REVENUE,
14493 pjp1.INITIAL_FUNDING_AMOUNT,
14494 pjp1.INITIAL_FUNDING_COUNT,
14495 pjp1.ADDITIONAL_FUNDING_AMOUNT,
14496 pjp1.ADDITIONAL_FUNDING_COUNT,
14497 pjp1.CANCELLED_FUNDING_AMOUNT,
14498 pjp1.CANCELLED_FUNDING_COUNT,
14499 pjp1.FUNDING_ADJUSTMENT_AMOUNT,
14500 pjp1.FUNDING_ADJUSTMENT_COUNT,
14501 pjp1.REVENUE_WRITEOFF,
14502 pjp1.AR_INVOICE_AMOUNT,
14503 pjp1.AR_INVOICE_COUNT,
14504 pjp1.AR_CASH_APPLIED_AMOUNT,
14505 pjp1.AR_INVOICE_WRITE_OFF_AMOUNT,
14506 pjp1.AR_INVOICE_WRITEOFF_COUNT,
14507 pjp1.AR_CREDIT_MEMO_AMOUNT,
14508 pjp1.AR_CREDIT_MEMO_COUNT,
14509 pjp1.UNBILLED_RECEIVABLES,
14510 pjp1.UNEARNED_REVENUE,
14511 pjp1.AR_UNAPPR_INVOICE_AMOUNT,
14512 pjp1.AR_UNAPPR_INVOICE_COUNT,
14513 pjp1.AR_APPR_INVOICE_AMOUNT,
14514 pjp1.AR_APPR_INVOICE_COUNT,
14515 pjp1.AR_AMOUNT_DUE,
14516 pjp1.AR_COUNT_DUE,
14517 pjp1.AR_AMOUNT_OVERDUE,
14518 pjp1.AR_COUNT_OVERDUE,
14519 pjp1.CUSTOM1,
14520 pjp1.CUSTOM2,
14521 pjp1.CUSTOM3,
14522 pjp1.CUSTOM4,
14523 pjp1.CUSTOM5,
14524 pjp1.CUSTOM6,
14525 pjp1.CUSTOM7,
14526 pjp1.CUSTOM8,
14527 pjp1.CUSTOM9,
14528 pjp1.CUSTOM10,
14529 pjp1.CUSTOM11,
14530 pjp1.CUSTOM12,
14531 pjp1.CUSTOM13,
14532 pjp1.CUSTOM14,
14533 pjp1.CUSTOM15
14534 from
14535 PJI_AC_AGGR_PJP1 pjp1,
14536 PJI_PJP_WBS_HEADER wbs_hdr,
14537 PA_XBS_DENORM wbs,
14538 PJI_XBS_DENORM prg,
14539 (
14540 select 1 WBS_SUP_LEVEL,
14541 1 WBS_SUB_LEVEL,
14542 'PRJ' INVERT_ID
14543 from DUAL
14544 union all
14545 select 1 WBS_SUP_LEVEL,
14546 1 WBS_SUB_LEVEL,
14547 'WBS' INVERT_ID
14548 from DUAL
14549 ) top_slice
14550 where
14551 prg.STRUCT_TYPE = 'PRG' and
14552 prg.SUP_LEVEL = l_level and
14553 prg.SUB_LEVEL = l_level and
14554 wbs.STRUCT_TYPE = 'WBS' and
14555 ((wbs.SUP_LEVEL = 1 and
14556 wbs.SUB_LEVEL = 1) or
14557 (wbs.SUP_LEVEL <> wbs.SUB_LEVEL)) and
14558 wbs.STRUCT_VERSION_ID = prg.SUP_ID and
14559 wbs.SUP_PROJECT_ID = prg.SUP_PROJECT_ID and
14560 pjp1.WORKER_ID = p_worker_id and
14561 pjp1.PRG_LEVEL in (0, l_level) and
14562 pjp1.WBS_ROLLUP_FLAG = 'N' and
14563 pjp1.PRG_ROLLUP_FLAG in ('Y', 'N') and
14564 wbs_hdr.PLAN_VERSION_ID = -1 and
14565 pjp1.PROJECT_ID = wbs_hdr.PROJECT_ID and
14566 wbs.STRUCT_VERSION_ID = wbs_hdr.WBS_VERSION_ID and
14567 pjp1.PROJECT_ELEMENT_ID = wbs.SUB_EMT_ID and
14568 wbs.SUP_LEVEL = top_slice.WBS_SUP_LEVEL (+) and
14569 wbs.SUB_LEVEL <> top_slice.WBS_SUB_LEVEL (+)
14570 union all
14571 select /*+ ordered */
14572 -- get incremental project level amounts from source
14573 /* wbs_hdr.WBS_VERSION_ID,
14574 'LF' RELATIONSHIP_TYPE,
14575 'Y' PUSHUP_FLAG,
14576 'N' INSERT_FLAG,
14577 pjp1.PROJECT_ID,
14578 pjp1.PROJECT_ORG_ID,
14579 pjp1.PROJECT_ORGANIZATION_ID,
14580 pjp1.PROJECT_ELEMENT_ID,
14581 pjp1.TIME_ID,
14582 pjp1.PERIOD_TYPE_ID,
14583 pjp1.CALENDAR_TYPE,
14584 'Y' WBS_ROLLUP_FLAG,
14585 pjp1.PRG_ROLLUP_FLAG,
14586 pjp1.CURR_RECORD_TYPE_ID,
14587 pjp1.CURRENCY_CODE,
14588 pjp1.REVENUE,
14589 pjp1.INITIAL_FUNDING_AMOUNT,
14590 pjp1.INITIAL_FUNDING_COUNT,
14591 pjp1.ADDITIONAL_FUNDING_AMOUNT,
14592 pjp1.ADDITIONAL_FUNDING_COUNT,
14593 pjp1.CANCELLED_FUNDING_AMOUNT,
14594 pjp1.CANCELLED_FUNDING_COUNT,
14595 pjp1.FUNDING_ADJUSTMENT_AMOUNT,
14596 pjp1.FUNDING_ADJUSTMENT_COUNT,
14597 pjp1.REVENUE_WRITEOFF,
14598 pjp1.AR_INVOICE_AMOUNT,
14599 pjp1.AR_INVOICE_COUNT,
14600 pjp1.AR_CASH_APPLIED_AMOUNT,
14601 pjp1.AR_INVOICE_WRITE_OFF_AMOUNT,
14602 pjp1.AR_INVOICE_WRITEOFF_COUNT,
14603 pjp1.AR_CREDIT_MEMO_AMOUNT,
14604 pjp1.AR_CREDIT_MEMO_COUNT,
14605 pjp1.UNBILLED_RECEIVABLES,
14606 pjp1.UNEARNED_REVENUE,
14607 pjp1.AR_UNAPPR_INVOICE_AMOUNT,
14608 pjp1.AR_UNAPPR_INVOICE_COUNT,
14609 pjp1.AR_APPR_INVOICE_AMOUNT,
14610 pjp1.AR_APPR_INVOICE_COUNT,
14611 pjp1.AR_AMOUNT_DUE,
14612 pjp1.AR_COUNT_DUE,
14613 pjp1.AR_AMOUNT_OVERDUE,
14614 pjp1.AR_COUNT_OVERDUE,
14615 pjp1.CUSTOM1,
14616 pjp1.CUSTOM2,
14617 pjp1.CUSTOM3,
14618 pjp1.CUSTOM4,
14619 pjp1.CUSTOM5,
14620 pjp1.CUSTOM6,
14621 pjp1.CUSTOM7,
14622 pjp1.CUSTOM8,
14623 pjp1.CUSTOM9,
14624 pjp1.CUSTOM10,
14625 pjp1.CUSTOM11,
14626 pjp1.CUSTOM12,
14627 pjp1.CUSTOM13,
14628 pjp1.CUSTOM14,
14629 pjp1.CUSTOM15
14630 from
14631 PJI_AC_AGGR_PJP1 pjp1,
14632 PJI_PJP_WBS_HEADER wbs_hdr,
14633 PJI_XBS_DENORM prg
14634 where
14635 prg.STRUCT_TYPE = 'PRG' and
14636 prg.SUP_LEVEL = l_level and
14637 prg.SUB_LEVEL = l_level and
14638 pjp1.WORKER_ID = p_worker_id and
14639 pjp1.PROJECT_ID = prg.SUP_PROJECT_ID and
14640 pjp1.PROJECT_ELEMENT_ID = prg.SUP_EMT_ID and
14641 pjp1.PRG_LEVEL = 0 and
14642 pjp1.WBS_ROLLUP_FLAG = 'N' and
14643 pjp1.PRG_ROLLUP_FLAG = 'N' and
14644 wbs_hdr.PROJECT_ID = pjp1.PROJECT_ID and
14645 wbs_hdr.PLAN_VERSION_ID = -1 and
14646 wbs_hdr.WBS_VERSION_ID = prg.SUP_ID
14647 union all
14648 select /*+ ordered
14649 index(fpr PJI_AC_XBR_ACCUM_F_N1) */
14650 -- get delta task level amounts from Reporting Lines
14651 /*wbs_hdr.WBS_VERSION_ID,
14652 'LF' RELATIONSHIP_TYPE,
14653 decode(log.EVENT_TYPE,
14654 'WBS_CHANGE', 'Y',
14655 'WBS_PUBLISH', 'N') PUSHUP_FLAG,
14656 'Y' INSERT_FLAG,
14657 acr.PROJECT_ID,
14658 acr.PROJECT_ORG_ID,
14659 acr.PROJECT_ORGANIZATION_ID,
14660 decode(top_slice.INVERT_ID,
14661 'PRJ', prg.SUP_EMT_ID,
14662 decode(wbs.SUB_LEVEL,
14663 1, prg.SUP_EMT_ID,
14664 wbs.SUP_EMT_ID))
14665 PROJECT_ELEMENT_ID,
14666 acr.TIME_ID,
14667 acr.PERIOD_TYPE_ID,
14668 acr.CALENDAR_TYPE,
14669 'Y' WBS_ROLLUP_FLAG,
14670 acr.PRG_ROLLUP_FLAG,
14671 acr.CURR_RECORD_TYPE_ID,
14672 acr.CURRENCY_CODE,
14673 wbs.SIGN * acr.REVENUE REVENUE,
14674 wbs.SIGN * acr.INITIAL_FUNDING_AMOUNT INITIAL_FUNDING_AMOUNT,
14675 wbs.SIGN * acr.INITIAL_FUNDING_COUNT INITIAL_FUNDING_COUNT,
14676 wbs.SIGN * acr.ADDITIONAL_FUNDING_AMOUNT
14677 ADDITIONAL_FUNDING_AMOUNT,
14678 wbs.SIGN * acr.ADDITIONAL_FUNDING_COUNT
14679 ADDITIONAL_FUNDING_COUNT,
14680 wbs.SIGN * acr.CANCELLED_FUNDING_AMOUNT
14681 CANCELLED_FUNDING_AMOUNT,
14682 wbs.SIGN * acr.CANCELLED_FUNDING_COUNT CANCELLED_FUNDING_COUNT,
14683 wbs.SIGN * acr.FUNDING_ADJUSTMENT_AMOUNT
14684 FUNDING_ADJUSTMENT_AMOUNT,
14685 wbs.SIGN * acr.FUNDING_ADJUSTMENT_COUNT
14686 FUNDING_ADJUSTMENT_COUNT,
14687 wbs.SIGN * acr.REVENUE_WRITEOFF REVENUE_WRITEOFF,
14688 wbs.SIGN * acr.AR_INVOICE_AMOUNT AR_INVOICE_AMOUNT,
14689 wbs.SIGN * acr.AR_INVOICE_COUNT AR_INVOICE_COUNT,
14690 wbs.SIGN * acr.AR_CASH_APPLIED_AMOUNT AR_CASH_APPLIED_AMOUNT,
14691 wbs.SIGN * acr.AR_INVOICE_WRITE_OFF_AMOUNT
14692 AR_INVOICE_WRITE_OFF_AMOUNT,
14693 wbs.SIGN * acr.AR_INVOICE_WRITEOFF_COUNT
14694 AR_INVOICE_WRITEOFF_COUNT,
14695 wbs.SIGN * acr.AR_CREDIT_MEMO_AMOUNT AR_CREDIT_MEMO_AMOUNT,
14696 wbs.SIGN * acr.AR_CREDIT_MEMO_COUNT AR_CREDIT_MEMO_COUNT,
14697 wbs.SIGN * acr.UNBILLED_RECEIVABLES UNBILLED_RECEIVABLES,
14698 wbs.SIGN * acr.UNEARNED_REVENUE UNEARNED_REVENUE,
14699 wbs.SIGN * acr.AR_UNAPPR_INVOICE_AMOUNT
14700 AR_UNAPPR_INVOICE_AMOUNT,
14701 wbs.SIGN * acr.AR_UNAPPR_INVOICE_COUNT AR_UNAPPR_INVOICE_COUNT,
14702 wbs.SIGN * acr.AR_APPR_INVOICE_AMOUNT AR_APPR_INVOICE_AMOUNT,
14703 wbs.SIGN * acr.AR_APPR_INVOICE_COUNT AR_APPR_INVOICE_COUNT,
14704 wbs.SIGN * acr.AR_AMOUNT_DUE AR_AMOUNT_DUE,
14705 wbs.SIGN * acr.AR_COUNT_DUE AR_COUNT_DUE,
14706 wbs.SIGN * acr.AR_AMOUNT_OVERDUE AR_AMOUNT_OVERDUE,
14707 wbs.SIGN * acr.AR_COUNT_OVERDUE AR_COUNT_OVERDUE,
14708 wbs.SIGN * acr.CUSTOM1 CUSTOM1,
14709 wbs.SIGN * acr.CUSTOM2 CUSTOM2,
14710 wbs.SIGN * acr.CUSTOM3 CUSTOM3,
14711 wbs.SIGN * acr.CUSTOM4 CUSTOM4,
14712 wbs.SIGN * acr.CUSTOM5 CUSTOM5,
14713 wbs.SIGN * acr.CUSTOM6 CUSTOM6,
14714 wbs.SIGN * acr.CUSTOM7 CUSTOM7,
14715 wbs.SIGN * acr.CUSTOM8 CUSTOM8,
14716 wbs.SIGN * acr.CUSTOM9 CUSTOM9,
14717 wbs.SIGN * acr.CUSTOM10 CUSTOM10,
14718 wbs.SIGN * acr.CUSTOM11 CUSTOM11,
14719 wbs.SIGN * acr.CUSTOM12 CUSTOM12,
14720 wbs.SIGN * acr.CUSTOM13 CUSTOM13,
14721 wbs.SIGN * acr.CUSTOM14 CUSTOM14,
14722 wbs.SIGN * acr.CUSTOM15 CUSTOM15
14723 from
14724 PJI_PA_PROJ_EVENTS_LOG log,
14725 PJI_PJP_WBS_HEADER wbs_hdr,
14726 PJI_XBS_DENORM_DELTA wbs,
14727 PJI_XBS_DENORM prg,
14728 PJI_AC_XBS_ACCUM_F acr,
14729 (
14730 select 1 WBS_SUP_LEVEL,
14731 1 WBS_SUB_LEVEL,
14732 'PRJ' INVERT_ID
14733 from DUAL
14734 union all
14735 select 1 WBS_SUP_LEVEL,
14736 1 WBS_SUB_LEVEL,
14737 'WBS' INVERT_ID
14738 from DUAL
14739 ) top_slice
14740 where
14741 prg.STRUCT_TYPE = 'PRG' and
14742 prg.SUP_LEVEL = l_level and
14743 prg.SUB_LEVEL = l_level and
14744 wbs.WORKER_ID = p_worker_id and
14745 wbs.STRUCT_TYPE = 'WBS' and
14746 wbs.SUP_PROJECT_ID = prg.SUP_PROJECT_ID and
14747 log.WORKER_ID = p_worker_id and
14748 log.EVENT_ID = wbs.EVENT_ID and
14749 log.EVENT_TYPE in ('WBS_CHANGE',
14750 'WBS_PUBLISH') and
14751 wbs_hdr.PROJECT_ID = log.ATTRIBUTE1 and
14752 wbs_hdr.PLAN_VERSION_ID = log.ATTRIBUTE3 and
14753 wbs_hdr.PLAN_VERSION_ID = -1 and
14754 wbs_hdr.WBS_VERSION_ID = wbs.STRUCT_VERSION_ID and
14755 wbs_hdr.PROJECT_ID = prg.SUP_PROJECT_ID and
14756 wbs_hdr.WBS_VERSION_ID = prg.SUP_ID and
14757 acr.WBS_ROLLUP_FLAG = 'N' and
14758 acr.PRG_ROLLUP_FLAG = 'N' and
14759 acr.PROJECT_ID = wbs.SUP_PROJECT_ID and
14760 acr.PROJECT_ELEMENT_ID = wbs.SUB_EMT_ID and
14761 acr.PROJECT_ID = wbs_hdr.PROJECT_ID and
14762 wbs.SUP_LEVEL = top_slice.WBS_SUP_LEVEL (+) and
14763 wbs.SUB_LEVEL <> top_slice.WBS_SUB_LEVEL (+) and
14764 (wbs.SUP_LEVEL <> wbs.SUB_LEVEL or
14765 (wbs.SUP_LEVEL = 1 and
14766 wbs.SUB_LEVEL = 1))
14767 ) pjp,
14768 (
14769 select /*+ ordered */
14770 /*prg.SUP_PROJECT_ID,
14771 map.PROJECT_ORG_ID SUP_PROJECT_ORG_ID,
14772 map.PROJECT_ORGANIZATION_ID SUP_PROJECT_ORGANIZATION_ID,
14773 prg.SUP_ID,
14774 prg.SUP_EMT_ID,
14775 prg.SUP_LEVEL,
14776 prg.SUB_ID,
14777 prg.SUB_EMT_ID,
14778 prg.SUB_ROLLUP_ID,
14779 prg.RELATIONSHIP_TYPE RELATIONSHIP_TYPE,
14780 'Y' PUSHUP_FLAG
14781 from
14782 PJI_PJP_PROJ_BATCH_MAP map,
14783 PJI_XBS_DENORM prg,
14784 PJI_XBS_DENORM_DELTA prg_delta
14785 where
14786 prg.STRUCT_TYPE = 'PRG' and
14787 prg.RELATIONSHIP_TYPE = 'LF' and
14788 prg.SUB_ROLLUP_ID is not null and
14789 prg.SUB_LEVEL = l_level and
14790 map.WORKER_ID = p_worker_id and
14791 map.PROJECT_ID = prg.SUP_PROJECT_ID and
14792 p_worker_id = prg_delta.WORKER_ID (+) and
14793 prg.STRUCT_TYPE = prg_delta.STRUCT_TYPE (+) and
14794 prg.SUP_PROJECT_ID = prg_delta.SUP_PROJECT_ID (+) and
14795 prg.SUP_LEVEL = prg_delta.SUP_LEVEL (+) and
14796 prg.SUP_ID = prg_delta.SUP_ID (+) and
14797 prg.SUB_LEVEL = prg_delta.SUB_LEVEL (+) and
14798 prg.SUB_ID = prg_delta.SUB_ID (+) and
14799 prg.RELATIONSHIP_TYPE = prg_delta.RELATIONSHIP_TYPE (+) and
14800 -1 = prg_delta.SIGN (+) and
14801 prg_delta.SUP_PROJECT_ID is null
14802 ) prg
14803 where
14804 pjp.WBS_VERSION_ID = prg.SUB_ID (+) and
14805 pjp.RELATIONSHIP_TYPE = prg.RELATIONSHIP_TYPE (+) and
14806 pjp.PUSHUP_FLAG = prg.PUSHUP_FLAG (+)
14807 group by
14808 decode(nvl(prg.SUB_EMT_ID, -1), nvl(prg.SUB_ROLLUP_ID, -1),
14809 pjp.INSERT_FLAG, 'Y'),
14810 decode(nvl(prg.SUB_EMT_ID, -1), nvl(prg.SUB_ROLLUP_ID, -1),
14811 null, prg.SUP_ID),
14812 decode(nvl(prg.SUB_EMT_ID, -1), nvl(prg.SUB_ROLLUP_ID, -1),
14813 null, prg.SUP_EMT_ID),
14814 decode(nvl(prg.SUB_EMT_ID, -1), nvl(prg.SUB_ROLLUP_ID, -1),
14815 l_level, prg.SUP_LEVEL),
14816 decode(nvl(prg.SUB_EMT_ID, -1), nvl(prg.SUB_ROLLUP_ID, -1),
14817 pjp.PROJECT_ID,
14818 prg.SUP_PROJECT_ID),
14819 decode(nvl(prg.SUB_EMT_ID, -1), nvl(prg.SUB_ROLLUP_ID, -1),
14820 pjp.PROJECT_ORG_ID,
14821 prg.SUP_PROJECT_ORG_ID),
14822 decode(nvl(prg.SUB_EMT_ID, -1), nvl(prg.SUB_ROLLUP_ID, -1),
14823 pjp.PROJECT_ORGANIZATION_ID,
14824 prg.SUP_PROJECT_ORGANIZATION_ID),
14825 decode(nvl(prg.SUB_EMT_ID, -1), nvl(prg.SUB_ROLLUP_ID, -1),
14826 pjp.PROJECT_ELEMENT_ID,
14827 prg.SUB_ROLLUP_ID),
14828 pjp.TIME_ID,
14829 pjp.PERIOD_TYPE_ID,
14830 pjp.CALENDAR_TYPE,
14831 decode(nvl(prg.SUB_EMT_ID, -1), nvl(prg.SUB_ROLLUP_ID, -1),
14832 pjp.WBS_ROLLUP_FLAG, 'N'),
14833 decode(nvl(prg.SUB_EMT_ID, -1), nvl(prg.SUB_ROLLUP_ID, -1),
14834 pjp.PRG_ROLLUP_FLAG, 'Y'),
14835 pjp.CURR_RECORD_TYPE_ID,
14836 pjp.CURRENCY_CODE
14837 ) pjp1_i,
14838 PA_PROJ_ELEM_VER_STRUCTURE sup_fin_ver,
14839 PA_PROJ_WORKPLAN_ATTR sup_wpa
14840 where
14841 pjp1_i.INSERT_FLAG = 'Y' and
14842 pjp1_i.PROJECT_ID = sup_fin_ver.PROJECT_ID (+) and
14843 pjp1_i.SUP_ID = sup_fin_ver.ELEMENT_VERSION_ID (+) and
14844 'STRUCTURE_WORKING' = sup_fin_ver.STATUS_CODE (+) and
14845 pjp1_i.SUP_EMT_ID = sup_wpa.PROJ_ELEMENT_ID (+) and
14846 'N' = sup_wpa.WP_ENABLE_VERSION_FLAG (+) and
14847 (pjp1_i.SUP_ID is null or
14848 (pjp1_i.SUP_ID is not null and
14849 (sup_fin_ver.PROJECT_ID is not null or
14850 sup_wpa.PROJ_ELEMENT_ID is not null)));*/
14851
14852 update PJI_SYSTEM_PRC_STATUS
14853 set STEP_STATUS = 'C',
14854 END_DATE = sysdate
14855 where PROCESS_NAME = l_process and
14856 STEP_SEQ = l_level_seq;
14857
14858 commit;
14859
14860 select
14861 nvl(to_number(min(STEP_SEQ)), 0)
14862 into
14863 l_level_seq
14864 from
14865 PJI_SYSTEM_PRC_STATUS
14866 where
14867 PROCESS_NAME = l_process and
14868 STEP_NAME like 'ROLLUP_ACR_WBS%' and
14869 STEP_STATUS is null;
14870
14871 if (l_level_seq = 0) then
14872 l_level := 0;
14873 else
14874 l_level := l_max_level - ((l_level_seq - l_step_seq) * 1000) + 1;
14875 end if;
14876
14877 end loop;
14878
14879 PJI_PROCESS_UTIL.REGISTER_STEP_COMPLETION(l_process, 'PJI_PJP_SUM_ROLLUP.ROLLUP_ACR_WBS(p_worker_id);');
14880
14881 commit;
14882
14883 else -- online mode
14884
14885 -- rollup just WBS for online processing
14886
14887 select /*+ ordered use_nl(den) */ -- bug 7607077 asahoo - removed index hint
14888 nvl(max(den.SUP_LEVEL), 0)
14889 into
14890 l_level
14891 from
14892 PJI_FM_EXTR_PLNVER3_T ver3,
14893 PJI_XBS_DENORM den
14894 where
14895 den.STRUCT_TYPE = 'PRG' and
14896 den.SUB_LEVEL = den.SUP_LEVEL and
14897 den.SUP_PROJECT_ID = ver3.PROJECT_ID;
14898
14899 while (l_level > 0) loop
14900
14901 -- rollup project hiearchy
14902
14903 insert into PJI_AC_AGGR_PJP1_T
14904 (
14905 WORKER_ID,
14906 RECORD_TYPE,
14907 PRG_LEVEL,
14908 PROJECT_ID,
14909 PROJECT_ORG_ID,
14910 PROJECT_ORGANIZATION_ID,
14911 PROJECT_ELEMENT_ID,
14912 TIME_ID,
14913 PERIOD_TYPE_ID,
14914 CALENDAR_TYPE,
14915 WBS_ROLLUP_FLAG,
14916 PRG_ROLLUP_FLAG,
14917 CURR_RECORD_TYPE_ID,
14918 CURRENCY_CODE,
14919 REVENUE,
14920 INITIAL_FUNDING_AMOUNT,
14921 INITIAL_FUNDING_COUNT,
14922 ADDITIONAL_FUNDING_AMOUNT,
14923 ADDITIONAL_FUNDING_COUNT,
14924 CANCELLED_FUNDING_AMOUNT,
14925 CANCELLED_FUNDING_COUNT,
14926 FUNDING_ADJUSTMENT_AMOUNT,
14927 FUNDING_ADJUSTMENT_COUNT,
14928 REVENUE_WRITEOFF,
14929 AR_INVOICE_AMOUNT,
14930 AR_INVOICE_COUNT,
14931 AR_CASH_APPLIED_AMOUNT,
14932 AR_INVOICE_WRITE_OFF_AMOUNT,
14933 AR_INVOICE_WRITEOFF_COUNT,
14934 AR_CREDIT_MEMO_AMOUNT,
14935 AR_CREDIT_MEMO_COUNT,
14936 UNBILLED_RECEIVABLES,
14937 UNEARNED_REVENUE,
14938 AR_UNAPPR_INVOICE_AMOUNT,
14939 AR_UNAPPR_INVOICE_COUNT,
14940 AR_APPR_INVOICE_AMOUNT,
14941 AR_APPR_INVOICE_COUNT,
14942 AR_AMOUNT_DUE,
14943 AR_COUNT_DUE,
14944 AR_AMOUNT_OVERDUE,
14945 AR_COUNT_OVERDUE,
14946 CUSTOM1,
14947 CUSTOM2,
14948 CUSTOM3,
14949 CUSTOM4,
14950 CUSTOM5,
14951 CUSTOM6,
14952 CUSTOM7,
14953 CUSTOM8,
14954 CUSTOM9,
14955 CUSTOM10,
14956 CUSTOM11,
14957 CUSTOM12,
14958 CUSTOM13,
14959 CUSTOM14,
14960 CUSTOM15
14961 )
14962 select
14963 pjp1_i.WORKER_ID,
14964 pjp1_i.RECORD_TYPE,
14965 pjp1_i.PRG_LEVEL,
14966 pjp1_i.PROJECT_ID,
14967 pjp1_i.PROJECT_ORG_ID,
14968 pjp1_i.PROJECT_ORGANIZATION_ID,
14969 pjp1_i.PROJECT_ELEMENT_ID,
14970 pjp1_i.TIME_ID,
14971 pjp1_i.PERIOD_TYPE_ID,
14972 pjp1_i.CALENDAR_TYPE,
14973 pjp1_i.WBS_ROLLUP_FLAG,
14974 pjp1_i.PRG_ROLLUP_FLAG,
14975 pjp1_i.CURR_RECORD_TYPE_ID,
14976 pjp1_i.CURRENCY_CODE,
14977 pjp1_i.REVENUE,
14978 pjp1_i.INITIAL_FUNDING_AMOUNT,
14979 pjp1_i.INITIAL_FUNDING_COUNT,
14980 pjp1_i.ADDITIONAL_FUNDING_AMOUNT,
14981 pjp1_i.ADDITIONAL_FUNDING_COUNT,
14982 pjp1_i.CANCELLED_FUNDING_AMOUNT,
14983 pjp1_i.CANCELLED_FUNDING_COUNT,
14984 pjp1_i.FUNDING_ADJUSTMENT_AMOUNT,
14985 pjp1_i.FUNDING_ADJUSTMENT_COUNT,
14986 pjp1_i.REVENUE_WRITEOFF,
14987 pjp1_i.AR_INVOICE_AMOUNT,
14988 pjp1_i.AR_INVOICE_COUNT,
14989 pjp1_i.AR_CASH_APPLIED_AMOUNT,
14990 pjp1_i.AR_INVOICE_WRITE_OFF_AMOUNT,
14991 pjp1_i.AR_INVOICE_WRITEOFF_COUNT,
14992 pjp1_i.AR_CREDIT_MEMO_AMOUNT,
14993 pjp1_i.AR_CREDIT_MEMO_COUNT,
14994 pjp1_i.UNBILLED_RECEIVABLES,
14995 pjp1_i.UNEARNED_REVENUE,
14996 pjp1_i.AR_UNAPPR_INVOICE_AMOUNT,
14997 pjp1_i.AR_UNAPPR_INVOICE_COUNT,
14998 pjp1_i.AR_APPR_INVOICE_AMOUNT,
14999 pjp1_i.AR_APPR_INVOICE_COUNT,
15000 pjp1_i.AR_AMOUNT_DUE,
15001 pjp1_i.AR_COUNT_DUE,
15002 pjp1_i.AR_AMOUNT_OVERDUE,
15003 pjp1_i.AR_COUNT_OVERDUE,
15004 pjp1_i.CUSTOM1,
15005 pjp1_i.CUSTOM2,
15006 pjp1_i.CUSTOM3,
15007 pjp1_i.CUSTOM4,
15008 pjp1_i.CUSTOM5,
15009 pjp1_i.CUSTOM6,
15010 pjp1_i.CUSTOM7,
15011 pjp1_i.CUSTOM8,
15012 pjp1_i.CUSTOM9,
15013 pjp1_i.CUSTOM10,
15014 pjp1_i.CUSTOM11,
15015 pjp1_i.CUSTOM12,
15016 pjp1_i.CUSTOM13,
15017 pjp1_i.CUSTOM14,
15018 pjp1_i.CUSTOM15
15019 from
15020 (
15021 select
15022 decode(nvl(prg.SUB_EMT_ID, -1), nvl(prg.SUB_ROLLUP_ID, -1),
15023 pjp.INSERT_FLAG, 'Y') INSERT_FLAG,
15024 decode(nvl(prg.SUB_EMT_ID, -1), nvl(prg.SUB_ROLLUP_ID, -1),
15025 null, prg.SUP_ID) SUP_ID,
15026 decode(nvl(prg.SUB_EMT_ID, -1), nvl(prg.SUB_ROLLUP_ID, -1),
15027 null, prg.SUP_EMT_ID) SUP_EMT_ID,
15028 1 WORKER_ID,
15029 -- p_worker_id WORKER_ID,
15030 'W' RECORD_TYPE,
15031 decode(nvl(prg.SUB_EMT_ID, -1), nvl(prg.SUB_ROLLUP_ID, -1),
15032 l_level, prg.SUP_LEVEL) PRG_LEVEL,
15033 decode(nvl(prg.SUB_EMT_ID, -1), nvl(prg.SUB_ROLLUP_ID, -1),
15034 pjp.PROJECT_ID,
15035 prg.SUP_PROJECT_ID) PROJECT_ID,
15036 decode(nvl(prg.SUB_EMT_ID, -1), nvl(prg.SUB_ROLLUP_ID, -1),
15037 pjp.PROJECT_ORG_ID,
15038 prg.SUP_PROJECT_ORG_ID) PROJECT_ORG_ID,
15039 decode(nvl(prg.SUB_EMT_ID, -1), nvl(prg.SUB_ROLLUP_ID, -1),
15040 pjp.PROJECT_ORGANIZATION_ID,
15041 prg.SUP_PROJECT_ORGANIZATION_ID) PROJECT_ORGANIZATION_ID,
15042 decode(nvl(prg.SUB_EMT_ID, -1), nvl(prg.SUB_ROLLUP_ID, -1),
15043 pjp.PROJECT_ELEMENT_ID,
15044 prg.SUB_ROLLUP_ID) PROJECT_ELEMENT_ID,
15045 pjp.TIME_ID,
15046 pjp.PERIOD_TYPE_ID,
15047 pjp.CALENDAR_TYPE,
15048 decode(nvl(prg.SUB_EMT_ID, -1), nvl(prg.SUB_ROLLUP_ID, -1),
15049 pjp.WBS_ROLLUP_FLAG, 'N') WBS_ROLLUP_FLAG,
15050 decode(nvl(prg.SUB_EMT_ID, -1), nvl(prg.SUB_ROLLUP_ID, -1),
15051 pjp.PRG_ROLLUP_FLAG, 'Y') PRG_ROLLUP_FLAG,
15052 pjp.CURR_RECORD_TYPE_ID,
15053 pjp.CURRENCY_CODE,
15054 sum(pjp.REVENUE) REVENUE,
15055 sum(pjp.INITIAL_FUNDING_AMOUNT) INITIAL_FUNDING_AMOUNT,
15056 sum(pjp.INITIAL_FUNDING_COUNT) INITIAL_FUNDING_COUNT,
15057 sum(pjp.ADDITIONAL_FUNDING_AMOUNT) ADDITIONAL_FUNDING_AMOUNT,
15058 sum(pjp.ADDITIONAL_FUNDING_COUNT) ADDITIONAL_FUNDING_COUNT,
15059 sum(pjp.CANCELLED_FUNDING_AMOUNT) CANCELLED_FUNDING_AMOUNT,
15060 sum(pjp.CANCELLED_FUNDING_COUNT) CANCELLED_FUNDING_COUNT,
15061 sum(pjp.FUNDING_ADJUSTMENT_AMOUNT) FUNDING_ADJUSTMENT_AMOUNT,
15062 sum(pjp.FUNDING_ADJUSTMENT_COUNT) FUNDING_ADJUSTMENT_COUNT,
15063 sum(pjp.REVENUE_WRITEOFF) REVENUE_WRITEOFF,
15064 sum(pjp.AR_INVOICE_AMOUNT) AR_INVOICE_AMOUNT,
15065 sum(pjp.AR_INVOICE_COUNT) AR_INVOICE_COUNT,
15066 sum(pjp.AR_CASH_APPLIED_AMOUNT) AR_CASH_APPLIED_AMOUNT,
15067 sum(pjp.AR_INVOICE_WRITE_OFF_AMOUNT) AR_INVOICE_WRITE_OFF_AMOUNT,
15068 sum(pjp.AR_INVOICE_WRITEOFF_COUNT) AR_INVOICE_WRITEOFF_COUNT,
15069 sum(pjp.AR_CREDIT_MEMO_AMOUNT) AR_CREDIT_MEMO_AMOUNT,
15070 sum(pjp.AR_CREDIT_MEMO_COUNT) AR_CREDIT_MEMO_COUNT,
15071 sum(pjp.UNBILLED_RECEIVABLES) UNBILLED_RECEIVABLES,
15072 sum(pjp.UNEARNED_REVENUE) UNEARNED_REVENUE,
15073 sum(pjp.AR_UNAPPR_INVOICE_AMOUNT) AR_UNAPPR_INVOICE_AMOUNT,
15074 sum(pjp.AR_UNAPPR_INVOICE_COUNT) AR_UNAPPR_INVOICE_COUNT,
15075 sum(pjp.AR_APPR_INVOICE_AMOUNT) AR_APPR_INVOICE_AMOUNT,
15076 sum(pjp.AR_APPR_INVOICE_COUNT) AR_APPR_INVOICE_COUNT,
15077 sum(pjp.AR_AMOUNT_DUE) AR_AMOUNT_DUE,
15078 sum(pjp.AR_COUNT_DUE) AR_COUNT_DUE,
15079 sum(pjp.AR_AMOUNT_OVERDUE) AR_AMOUNT_OVERDUE,
15080 sum(pjp.AR_COUNT_OVERDUE) AR_COUNT_OVERDUE,
15081 sum(pjp.CUSTOM1) CUSTOM1,
15082 sum(pjp.CUSTOM2) CUSTOM2,
15083 sum(pjp.CUSTOM3) CUSTOM3,
15084 sum(pjp.CUSTOM4) CUSTOM4,
15085 sum(pjp.CUSTOM5) CUSTOM5,
15086 sum(pjp.CUSTOM6) CUSTOM6,
15087 sum(pjp.CUSTOM7) CUSTOM7,
15088 sum(pjp.CUSTOM8) CUSTOM8,
15089 sum(pjp.CUSTOM9) CUSTOM9,
15090 sum(pjp.CUSTOM10) CUSTOM10,
15091 sum(pjp.CUSTOM11) CUSTOM11,
15092 sum(pjp.CUSTOM12) CUSTOM12,
15093 sum(pjp.CUSTOM13) CUSTOM13,
15094 sum(pjp.CUSTOM14) CUSTOM14,
15095 sum(pjp.CUSTOM15) CUSTOM15
15096 from
15097 (
15098 select /*+ ordered index(wbs PA_XBS_DENORM_N2) */
15099 -- get incremental task level amounts from source and
15100 -- program rollup amounts from interim
15101 wbs_hdr.WBS_VERSION_ID,
15102 'LF' RELATIONSHIP_TYPE,
15103 decode(top_slice.INVERT_ID,
15104 'PRJ', 'Y',
15105 decode(wbs.SUB_LEVEL,
15106 1, 'Y', 'N')) PUSHUP_FLAG,
15107 'Y' INSERT_FLAG,
15108 pjp1.PROJECT_ID,
15109 pjp1.PROJECT_ORG_ID,
15110 pjp1.PROJECT_ORGANIZATION_ID,
15111 decode(top_slice.INVERT_ID,
15112 'PRJ', prg.SUP_EMT_ID,
15113 decode(wbs.SUB_LEVEL,
15114 1, prg.SUP_EMT_ID,
15115 wbs.SUP_EMT_ID)) PROJECT_ELEMENT_ID,
15116 pjp1.TIME_ID,
15117 pjp1.PERIOD_TYPE_ID,
15118 pjp1.CALENDAR_TYPE,
15119 'Y' WBS_ROLLUP_FLAG,
15120 pjp1.PRG_ROLLUP_FLAG,
15121 pjp1.CURR_RECORD_TYPE_ID,
15122 pjp1.CURRENCY_CODE,
15123 pjp1.REVENUE,
15124 pjp1.INITIAL_FUNDING_AMOUNT,
15125 pjp1.INITIAL_FUNDING_COUNT,
15126 pjp1.ADDITIONAL_FUNDING_AMOUNT,
15127 pjp1.ADDITIONAL_FUNDING_COUNT,
15128 pjp1.CANCELLED_FUNDING_AMOUNT,
15129 pjp1.CANCELLED_FUNDING_COUNT,
15130 pjp1.FUNDING_ADJUSTMENT_AMOUNT,
15131 pjp1.FUNDING_ADJUSTMENT_COUNT,
15132 pjp1.REVENUE_WRITEOFF,
15133 pjp1.AR_INVOICE_AMOUNT,
15134 pjp1.AR_INVOICE_COUNT,
15135 pjp1.AR_CASH_APPLIED_AMOUNT,
15136 pjp1.AR_INVOICE_WRITE_OFF_AMOUNT,
15137 pjp1.AR_INVOICE_WRITEOFF_COUNT,
15138 pjp1.AR_CREDIT_MEMO_AMOUNT,
15139 pjp1.AR_CREDIT_MEMO_COUNT,
15140 pjp1.UNBILLED_RECEIVABLES,
15141 pjp1.UNEARNED_REVENUE,
15142 pjp1.AR_UNAPPR_INVOICE_AMOUNT,
15143 pjp1.AR_UNAPPR_INVOICE_COUNT,
15144 pjp1.AR_APPR_INVOICE_AMOUNT,
15145 pjp1.AR_APPR_INVOICE_COUNT,
15146 pjp1.AR_AMOUNT_DUE,
15147 pjp1.AR_COUNT_DUE,
15148 pjp1.AR_AMOUNT_OVERDUE,
15149 pjp1.AR_COUNT_OVERDUE,
15150 pjp1.CUSTOM1,
15151 pjp1.CUSTOM2,
15152 pjp1.CUSTOM3,
15153 pjp1.CUSTOM4,
15154 pjp1.CUSTOM5,
15155 pjp1.CUSTOM6,
15156 pjp1.CUSTOM7,
15157 pjp1.CUSTOM8,
15158 pjp1.CUSTOM9,
15159 pjp1.CUSTOM10,
15160 pjp1.CUSTOM11,
15161 pjp1.CUSTOM12,
15162 pjp1.CUSTOM13,
15163 pjp1.CUSTOM14,
15164 pjp1.CUSTOM15
15165 from
15166 PJI_AC_AGGR_PJP1_T pjp1,
15167 PJI_PJP_WBS_HEADER wbs_hdr,
15168 PA_XBS_DENORM wbs,
15169 PJI_XBS_DENORM prg,
15170 (
15171 select 1 WBS_SUP_LEVEL,
15172 1 WBS_SUB_LEVEL,
15173 'PRJ' INVERT_ID
15174 from DUAL
15175 union all
15176 select 1 WBS_SUP_LEVEL,
15177 1 WBS_SUB_LEVEL,
15178 'WBS' INVERT_ID
15179 from DUAL
15180 ) top_slice
15181 where
15182 prg.STRUCT_TYPE = 'PRG' and
15183 prg.SUP_LEVEL = l_level and
15184 prg.SUB_LEVEL = l_level and
15185 wbs.STRUCT_TYPE = 'WBS' and
15186 ((wbs.SUP_LEVEL = 1 and
15187 wbs.SUB_LEVEL = 1) or
15188 (wbs.SUP_LEVEL <> wbs.SUB_LEVEL)) and
15189 wbs.STRUCT_VERSION_ID = prg.SUP_ID and
15190 wbs.SUP_PROJECT_ID = prg.SUP_PROJECT_ID and
15191 -- pjp1.WORKER_ID = p_worker_id and
15192 pjp1.PRG_LEVEL in (0, l_level) and
15193 pjp1.WBS_ROLLUP_FLAG = 'N' and
15194 pjp1.PRG_ROLLUP_FLAG in ('Y', 'N') and
15195 wbs_hdr.PLAN_VERSION_ID = -1 and
15196 pjp1.PROJECT_ID = wbs_hdr.PROJECT_ID and
15197 wbs.STRUCT_VERSION_ID = wbs_hdr.WBS_VERSION_ID and
15198 pjp1.PROJECT_ELEMENT_ID = wbs.SUB_EMT_ID and
15199 wbs.SUP_LEVEL = top_slice.WBS_SUP_LEVEL (+) and
15200 wbs.SUB_LEVEL <> top_slice.WBS_SUB_LEVEL (+)
15201 union all
15202 select /*+ ordered */
15203 -- get incremental project level amounts from source
15204 wbs_hdr.WBS_VERSION_ID,
15205 'LF' RELATIONSHIP_TYPE,
15206 'Y' PUSHUP_FLAG,
15207 'N' INSERT_FLAG,
15208 pjp1.PROJECT_ID,
15209 pjp1.PROJECT_ORG_ID,
15210 pjp1.PROJECT_ORGANIZATION_ID,
15211 pjp1.PROJECT_ELEMENT_ID,
15212 pjp1.TIME_ID,
15213 pjp1.PERIOD_TYPE_ID,
15214 pjp1.CALENDAR_TYPE,
15215 'Y' WBS_ROLLUP_FLAG,
15216 pjp1.PRG_ROLLUP_FLAG,
15217 pjp1.CURR_RECORD_TYPE_ID,
15218 pjp1.CURRENCY_CODE,
15219 pjp1.REVENUE,
15220 pjp1.INITIAL_FUNDING_AMOUNT,
15221 pjp1.INITIAL_FUNDING_COUNT,
15222 pjp1.ADDITIONAL_FUNDING_AMOUNT,
15223 pjp1.ADDITIONAL_FUNDING_COUNT,
15224 pjp1.CANCELLED_FUNDING_AMOUNT,
15225 pjp1.CANCELLED_FUNDING_COUNT,
15226 pjp1.FUNDING_ADJUSTMENT_AMOUNT,
15227 pjp1.FUNDING_ADJUSTMENT_COUNT,
15228 pjp1.REVENUE_WRITEOFF,
15229 pjp1.AR_INVOICE_AMOUNT,
15230 pjp1.AR_INVOICE_COUNT,
15231 pjp1.AR_CASH_APPLIED_AMOUNT,
15232 pjp1.AR_INVOICE_WRITE_OFF_AMOUNT,
15233 pjp1.AR_INVOICE_WRITEOFF_COUNT,
15234 pjp1.AR_CREDIT_MEMO_AMOUNT,
15235 pjp1.AR_CREDIT_MEMO_COUNT,
15236 pjp1.UNBILLED_RECEIVABLES,
15237 pjp1.UNEARNED_REVENUE,
15238 pjp1.AR_UNAPPR_INVOICE_AMOUNT,
15239 pjp1.AR_UNAPPR_INVOICE_COUNT,
15240 pjp1.AR_APPR_INVOICE_AMOUNT,
15241 pjp1.AR_APPR_INVOICE_COUNT,
15242 pjp1.AR_AMOUNT_DUE,
15243 pjp1.AR_COUNT_DUE,
15244 pjp1.AR_AMOUNT_OVERDUE,
15245 pjp1.AR_COUNT_OVERDUE,
15246 pjp1.CUSTOM1,
15247 pjp1.CUSTOM2,
15248 pjp1.CUSTOM3,
15249 pjp1.CUSTOM4,
15250 pjp1.CUSTOM5,
15251 pjp1.CUSTOM6,
15252 pjp1.CUSTOM7,
15253 pjp1.CUSTOM8,
15254 pjp1.CUSTOM9,
15255 pjp1.CUSTOM10,
15256 pjp1.CUSTOM11,
15257 pjp1.CUSTOM12,
15258 pjp1.CUSTOM13,
15259 pjp1.CUSTOM14,
15260 pjp1.CUSTOM15
15261 from
15262 PJI_AC_AGGR_PJP1_T pjp1,
15263 PJI_PJP_WBS_HEADER wbs_hdr,
15264 PJI_XBS_DENORM prg
15265 where
15266 prg.STRUCT_TYPE = 'PRG' and
15267 prg.SUP_LEVEL = l_level and
15268 prg.SUB_LEVEL = l_level and
15269 -- pjp1.WORKER_ID = p_worker_id and
15270 pjp1.PROJECT_ID = prg.SUP_PROJECT_ID and
15271 pjp1.PROJECT_ELEMENT_ID = prg.SUP_EMT_ID and
15272 pjp1.PRG_LEVEL = 0 and
15273 pjp1.WBS_ROLLUP_FLAG = 'N' and
15274 pjp1.PRG_ROLLUP_FLAG = 'N' and
15275 wbs_hdr.PROJECT_ID = pjp1.PROJECT_ID and
15276 wbs_hdr.PLAN_VERSION_ID = -1 and
15277 wbs_hdr.WBS_VERSION_ID = prg.SUP_ID
15278 union all
15279 select /*+ ordered
15280 index(log PA_PJI_PROJ_EVENTS_LOG_N2)
15281 index(fpr PJI_AC_XBR_ACCUM_F_N1) */
15282 -- get delta task level amounts from Reporting Lines
15283 wbs_hdr.WBS_VERSION_ID,
15284 'LF' RELATIONSHIP_TYPE,
15285 decode(log.EVENT_TYPE,
15286 'WBS_CHANGE', 'Y',
15287 'WBS_PUBLISH', 'N') PUSHUP_FLAG,
15288 'Y' INSERT_FLAG,
15289 acr.PROJECT_ID,
15290 acr.PROJECT_ORG_ID,
15291 acr.PROJECT_ORGANIZATION_ID,
15292 decode(top_slice.INVERT_ID,
15293 'PRJ', prg.SUP_EMT_ID,
15294 decode(wbs.SUB_LEVEL,
15295 1, prg.SUP_EMT_ID,
15296 wbs.SUP_EMT_ID))
15297 PROJECT_ELEMENT_ID,
15298 acr.TIME_ID,
15299 acr.PERIOD_TYPE_ID,
15300 acr.CALENDAR_TYPE,
15301 'Y' WBS_ROLLUP_FLAG,
15302 acr.PRG_ROLLUP_FLAG,
15303 acr.CURR_RECORD_TYPE_ID,
15304 acr.CURRENCY_CODE,
15305 wbs.SIGN * acr.REVENUE REVENUE,
15306 wbs.SIGN * acr.INITIAL_FUNDING_AMOUNT INITIAL_FUNDING_AMOUNT,
15307 wbs.SIGN * acr.INITIAL_FUNDING_COUNT INITIAL_FUNDING_COUNT,
15308 wbs.SIGN * acr.ADDITIONAL_FUNDING_AMOUNT
15309 ADDITIONAL_FUNDING_AMOUNT,
15310 wbs.SIGN * acr.ADDITIONAL_FUNDING_COUNT
15311 ADDITIONAL_FUNDING_COUNT,
15312 wbs.SIGN * acr.CANCELLED_FUNDING_AMOUNT
15313 CANCELLED_FUNDING_AMOUNT,
15314 wbs.SIGN * acr.CANCELLED_FUNDING_COUNT CANCELLED_FUNDING_COUNT,
15315 wbs.SIGN * acr.FUNDING_ADJUSTMENT_AMOUNT
15316 FUNDING_ADJUSTMENT_AMOUNT,
15317 wbs.SIGN * acr.FUNDING_ADJUSTMENT_COUNT
15318 FUNDING_ADJUSTMENT_COUNT,
15319 wbs.SIGN * acr.REVENUE_WRITEOFF REVENUE_WRITEOFF,
15320 wbs.SIGN * acr.AR_INVOICE_AMOUNT AR_INVOICE_AMOUNT,
15321 wbs.SIGN * acr.AR_INVOICE_COUNT AR_INVOICE_COUNT,
15322 wbs.SIGN * acr.AR_CASH_APPLIED_AMOUNT AR_CASH_APPLIED_AMOUNT,
15323 wbs.SIGN * acr.AR_INVOICE_WRITE_OFF_AMOUNT
15324 AR_INVOICE_WRITE_OFF_AMOUNT,
15325 wbs.SIGN * acr.AR_INVOICE_WRITEOFF_COUNT
15326 AR_INVOICE_WRITEOFF_COUNT,
15327 wbs.SIGN * acr.AR_CREDIT_MEMO_AMOUNT AR_CREDIT_MEMO_AMOUNT,
15328 wbs.SIGN * acr.AR_CREDIT_MEMO_COUNT AR_CREDIT_MEMO_COUNT,
15329 wbs.SIGN * acr.UNBILLED_RECEIVABLES UNBILLED_RECEIVABLES,
15330 wbs.SIGN * acr.UNEARNED_REVENUE UNEARNED_REVENUE,
15331 wbs.SIGN * acr.AR_UNAPPR_INVOICE_AMOUNT
15332 AR_UNAPPR_INVOICE_AMOUNT,
15333 wbs.SIGN * acr.AR_UNAPPR_INVOICE_COUNT AR_UNAPPR_INVOICE_COUNT,
15334 wbs.SIGN * acr.AR_APPR_INVOICE_AMOUNT AR_APPR_INVOICE_AMOUNT,
15335 wbs.SIGN * acr.AR_APPR_INVOICE_COUNT AR_APPR_INVOICE_COUNT,
15336 wbs.SIGN * acr.AR_AMOUNT_DUE AR_AMOUNT_DUE,
15337 wbs.SIGN * acr.AR_COUNT_DUE AR_COUNT_DUE,
15338 wbs.SIGN * acr.AR_AMOUNT_OVERDUE AR_AMOUNT_OVERDUE,
15339 wbs.SIGN * acr.AR_COUNT_OVERDUE AR_COUNT_OVERDUE,
15340 wbs.SIGN * acr.CUSTOM1 CUSTOM1,
15341 wbs.SIGN * acr.CUSTOM2 CUSTOM2,
15342 wbs.SIGN * acr.CUSTOM3 CUSTOM3,
15343 wbs.SIGN * acr.CUSTOM4 CUSTOM4,
15344 wbs.SIGN * acr.CUSTOM5 CUSTOM5,
15345 wbs.SIGN * acr.CUSTOM6 CUSTOM6,
15346 wbs.SIGN * acr.CUSTOM7 CUSTOM7,
15347 wbs.SIGN * acr.CUSTOM8 CUSTOM8,
15348 wbs.SIGN * acr.CUSTOM9 CUSTOM9,
15349 wbs.SIGN * acr.CUSTOM10 CUSTOM10,
15350 wbs.SIGN * acr.CUSTOM11 CUSTOM11,
15351 wbs.SIGN * acr.CUSTOM12 CUSTOM12,
15352 wbs.SIGN * acr.CUSTOM13 CUSTOM13,
15353 wbs.SIGN * acr.CUSTOM14 CUSTOM14,
15354 wbs.SIGN * acr.CUSTOM15 CUSTOM15
15355 from
15356 PA_PJI_PROJ_EVENTS_LOG log,
15357 PJI_PJP_WBS_HEADER wbs_hdr,
15358 PJI_XBS_DENORM_DELTA_T wbs,
15359 PJI_XBS_DENORM prg,
15360 PJI_AC_XBS_ACCUM_F acr,
15361 (
15362 select 1 WBS_SUP_LEVEL,
15363 1 WBS_SUB_LEVEL,
15364 'PRJ' INVERT_ID
15365 from DUAL
15366 union all
15367 select 1 WBS_SUP_LEVEL,
15368 1 WBS_SUB_LEVEL,
15369 'WBS' INVERT_ID
15370 from DUAL
15371 ) top_slice
15372 where
15373 prg.STRUCT_TYPE = 'PRG' and
15374 prg.SUP_LEVEL = l_level and
15375 prg.SUB_LEVEL = l_level and
15376 wbs.WORKER_ID = p_worker_id and
15377 wbs.STRUCT_TYPE = 'WBS' and
15378 wbs.SUP_PROJECT_ID = prg.SUP_PROJECT_ID and
15379 -- log.WORKER_ID = p_worker_id and
15380 log.EVENT_ID = g_event_id and
15381 log.EVENT_TYPE in ('WBS_CHANGE',
15382 'WBS_PUBLISH') and
15383 wbs_hdr.PROJECT_ID = log.ATTRIBUTE1 and
15384 wbs_hdr.PLAN_VERSION_ID = log.ATTRIBUTE3 and
15385 wbs_hdr.PLAN_VERSION_ID = -1 and
15386 wbs_hdr.WBS_VERSION_ID = wbs.STRUCT_VERSION_ID and
15387 wbs_hdr.PROJECT_ID = prg.SUP_PROJECT_ID and
15388 wbs_hdr.WBS_VERSION_ID = prg.SUP_ID and
15389 acr.WBS_ROLLUP_FLAG = 'N' and
15390 acr.PRG_ROLLUP_FLAG = 'N' and
15391 acr.PROJECT_ID = wbs.SUP_PROJECT_ID and
15392 acr.PROJECT_ELEMENT_ID = wbs.SUB_EMT_ID and
15393 acr.PROJECT_ID = wbs_hdr.PROJECT_ID and
15394 wbs.SUP_LEVEL = top_slice.WBS_SUP_LEVEL (+) and
15395 wbs.SUB_LEVEL <> top_slice.WBS_SUB_LEVEL (+) and
15396 (wbs.SUP_LEVEL <> wbs.SUB_LEVEL or
15397 (wbs.SUP_LEVEL = 1 and
15398 wbs.SUB_LEVEL = 1))
15399 ) pjp,
15400 (
15401 select
15402 prg.SUP_PROJECT_ID,
15403 map.ORG_ID SUP_PROJECT_ORG_ID,
15404 map.CARRYING_OUT_ORGANIZATION_ID SUP_PROJECT_ORGANIZATION_ID,
15405 prg.SUP_ID,
15406 prg.SUP_EMT_ID,
15407 prg.SUP_LEVEL,
15408 prg.SUB_ID,
15409 prg.SUB_EMT_ID,
15410 prg.SUB_ROLLUP_ID,
15411 prg.RELATIONSHIP_TYPE RELATIONSHIP_TYPE,
15412 'Y' PUSHUP_FLAG
15413 from
15414 PJI_XBS_DENORM prg,
15415 PA_PROJECTS_ALL map
15416 where
15417 l_level > 1 and
15418 prg.STRUCT_TYPE = 'PRG' and
15419 prg.RELATIONSHIP_TYPE = 'LF' and
15420 prg.SUB_ROLLUP_ID is not null and
15421 prg.SUB_LEVEL = l_level and
15422 -- map.WORKER_ID = p_worker_id and
15423 map.PROJECT_ID = prg.SUP_PROJECT_ID
15424 ) prg
15425 where
15426 pjp.WBS_VERSION_ID = prg.SUB_ID (+) and
15427 pjp.RELATIONSHIP_TYPE = prg.RELATIONSHIP_TYPE (+) and
15428 pjp.PUSHUP_FLAG = prg.PUSHUP_FLAG (+)
15429 group by
15430 decode(nvl(prg.SUB_EMT_ID, -1), nvl(prg.SUB_ROLLUP_ID, -1),
15431 pjp.INSERT_FLAG, 'Y'),
15432 decode(nvl(prg.SUB_EMT_ID, -1), nvl(prg.SUB_ROLLUP_ID, -1),
15433 null, prg.SUP_ID),
15434 decode(nvl(prg.SUB_EMT_ID, -1), nvl(prg.SUB_ROLLUP_ID, -1),
15435 null, prg.SUP_EMT_ID),
15436 decode(nvl(prg.SUB_EMT_ID, -1), nvl(prg.SUB_ROLLUP_ID, -1),
15437 l_level, prg.SUP_LEVEL),
15438 decode(nvl(prg.SUB_EMT_ID, -1), nvl(prg.SUB_ROLLUP_ID, -1),
15439 pjp.PROJECT_ID,
15440 prg.SUP_PROJECT_ID),
15441 decode(nvl(prg.SUB_EMT_ID, -1), nvl(prg.SUB_ROLLUP_ID, -1),
15442 pjp.PROJECT_ORG_ID,
15443 prg.SUP_PROJECT_ORG_ID),
15444 decode(nvl(prg.SUB_EMT_ID, -1), nvl(prg.SUB_ROLLUP_ID, -1),
15445 pjp.PROJECT_ORGANIZATION_ID,
15446 prg.SUP_PROJECT_ORGANIZATION_ID),
15447 decode(nvl(prg.SUB_EMT_ID, -1), nvl(prg.SUB_ROLLUP_ID, -1),
15448 pjp.PROJECT_ELEMENT_ID,
15449 prg.SUB_ROLLUP_ID),
15450 pjp.TIME_ID,
15451 pjp.PERIOD_TYPE_ID,
15452 pjp.CALENDAR_TYPE,
15453 decode(nvl(prg.SUB_EMT_ID, -1), nvl(prg.SUB_ROLLUP_ID, -1),
15454 pjp.WBS_ROLLUP_FLAG, 'N'),
15455 decode(nvl(prg.SUB_EMT_ID, -1), nvl(prg.SUB_ROLLUP_ID, -1),
15456 pjp.PRG_ROLLUP_FLAG, 'Y'),
15457 pjp.CURR_RECORD_TYPE_ID,
15458 pjp.CURRENCY_CODE
15459 ) pjp1_i,
15460 PA_PROJ_ELEM_VER_STRUCTURE sup_fin_ver,
15461 PA_PROJ_WORKPLAN_ATTR sup_wpa
15462 where
15463 pjp1_i.INSERT_FLAG = 'Y' and
15464 pjp1_i.PROJECT_ID = sup_fin_ver.PROJECT_ID (+) and
15465 pjp1_i.SUP_ID = sup_fin_ver.ELEMENT_VERSION_ID (+) and
15466 'STRUCTURE_WORKING' = sup_fin_ver.STATUS_CODE (+) and
15467 pjp1_i.SUP_EMT_ID = sup_wpa.PROJ_ELEMENT_ID (+) and
15468 'N' = sup_wpa.WP_ENABLE_VERSION_FLAG (+) and
15469 (pjp1_i.SUP_ID is null or
15470 (pjp1_i.SUP_ID is not null and
15471 (sup_fin_ver.PROJECT_ID is not null or
15472 sup_wpa.PROJ_ELEMENT_ID is not null)));
15473
15474 l_level := l_level - 1;
15475
15476 end loop;
15477
15478 end if;
15479
15480 end ROLLUP_ACR_WBS;
15481
15482
15483 -- -----------------------------------------------------
15484 -- procedure ROLLUP_FPR_PRG
15485 --
15486 -- History
15487 -- 19-MAR-2004 SVERMETT Created
15488 --
15489 -- Internal PJP Summarization API.
15490 --
15491 -- -----------------------------------------------------
15492 procedure ROLLUP_FPR_PRG (p_worker_id in number) is
15493
15494 l_process varchar2(30);
15495 l_prg_exists varchar2(25);
15496 l_extraction_type varchar2(30);
15497 l_level number;
15498 l_max_level number;
15499 l_step_seq number;
15500 l_level_seq number;
15501 l_count number;
15502
15503 begin
15504
15505 l_process := PJI_PJP_SUM_MAIN.g_process || to_char(p_worker_id);
15506
15507 if (not PJI_PROCESS_UTIL.NEED_TO_RUN_STEP(l_process, 'PJI_PJP_SUM_ROLLUP.ROLLUP_FPR_PRG(p_worker_id);')) then
15508 return;
15509 end if;
15510
15511 l_prg_exists := PJI_PROCESS_UTIL.GET_PROCESS_PARAMETER
15512 (l_process, 'PROGRAM_EXISTS');
15513
15514 if (l_prg_exists = 'N') then
15515 PJI_PROCESS_UTIL.REGISTER_STEP_COMPLETION(l_process,
15516 'PJI_PJP_SUM_ROLLUP.ROLLUP_FPR_PRG(p_worker_id);');
15517 commit;
15518 return;
15519 end if;
15520
15521 l_extraction_type := PJI_PROCESS_UTIL.GET_PROCESS_PARAMETER(l_process, 'EXTRACTION_TYPE');
15522
15523 -- allow recovery after each level is processed
15524
15525 select
15526 STEP_SEQ
15527 into
15528 l_step_seq
15529 from
15530 PJI_SYSTEM_PRC_STATUS
15531 where
15532 PROCESS_NAME = l_process and
15533 STEP_NAME = 'PJI_PJP_SUM_ROLLUP.ROLLUP_FPR_PRG(p_worker_id);';
15534
15535 select
15536 count(*)
15537 into
15538 l_count
15539 from
15540 PJI_SYSTEM_PRC_STATUS
15541 where
15542 PROCESS_NAME = l_process and
15543 STEP_NAME like 'ROLLUP_FPR_PRG%';
15544
15545 if (l_count = 0) then
15546
15547 select
15548 nvl(max(den.SUP_LEVEL), 0)
15549 into
15550 l_level
15551 from
15552 PJI_XBS_DENORM_DELTA den
15553 where
15554 den.WORKER_ID = p_worker_id and
15555 den.STRUCT_TYPE = 'PRG';
15556
15557 PJI_PROCESS_UTIL.SET_PROCESS_PARAMETER(l_process,
15558 'MAX_PROGRAM_LEVEL',
15559 l_level);
15560
15561 insert into PJI_SYSTEM_PRC_STATUS
15562 (
15563 PROCESS_NAME,
15564 STEP_SEQ,
15565 STEP_STATUS,
15566 STEP_NAME,
15567 START_DATE,
15568 END_DATE
15569 )
15570 select
15571 l_process PROCESS_NAME,
15572 to_char(l_step_seq + SUP_LEVEL / 1000) STEP_SEQ,
15573 null STEP_STATUS,
15574 'ROLLUP_FPR_PRG - level ' ||
15575 to_char(l_level - SUP_LEVEL + 1) STEP_NAME,
15576 null START_DATE,
15577 null END_DATE
15578 from
15579 (
15580 select
15581 SUP_LEVEL
15582 from
15583 PJI_XBS_DENORM_DELTA
15584 where
15585 worker_id = p_worker_id and
15586 STRUCT_TYPE = 'PRG'
15587 union all
15588 select
15589 SUP_LEVEL
15590 from
15591 PA_XBS_DENORM den,
15592 PJI_PJP_PROJ_BATCH_MAP map
15593 where
15594 map.WORKER_ID = p_worker_id and
15595 den.STRUCT_TYPE = 'PRG' and
15596 den.SUP_PROJECT_ID = map.PROJECT_ID
15597 )
15598 where
15599 exists
15600 (
15601 select
15602 1
15603 from
15604 PJI_XBS_DENORM_DELTA
15605 where
15606 WORKER_ID = p_worker_id and
15607 ROWNUM = 1
15608 )
15609 group by
15610 SUP_LEVEL
15611 order by
15612 SUP_LEVEL desc;
15613
15614 end if;
15615
15616 l_max_level := PJI_PROCESS_UTIL.GET_PROCESS_PARAMETER
15617 (l_process, 'MAX_PROGRAM_LEVEL');
15618
15619 select
15620 nvl(to_number(min(STEP_SEQ)), 0)
15621 into
15622 l_level_seq
15623 from
15624 PJI_SYSTEM_PRC_STATUS
15625 where
15626 PROCESS_NAME = l_process and
15627 STEP_NAME like 'ROLLUP_FPR_PRG%' and
15628 STEP_STATUS is null;
15629
15630 if (l_level_seq = 0) then
15631 l_level := 0;
15632 else
15633 l_level := l_max_level - ((l_level_seq - l_step_seq) * 1000) + 1;
15634 end if;
15635
15636 while (l_level > 0) loop
15637
15638 update PJI_SYSTEM_PRC_STATUS
15639 set START_DATE = sysdate
15640 where PROCESS_NAME = l_process and
15641 STEP_SEQ = l_level_seq;
15642
15643 -- rollup project hiearchy
15644 /* Call to Paritioned procedure for bug 7551819 */
15645 PJI_PROCESS_UTIL.EXECUTE_ROLLUP_FPR_PRG(p_worker_id,
15646 l_level);
15647
15648 /* Commented for bug 7551819 */
15649 -- insert /*+ parallel(pjp1_in)
15650 -- noappend(pjp1_in) */ into PJI_FP_AGGR_PJP1 pjp1_in -- changed for bug 5927368
15651 /* ( WORKER_ID,
15652 RECORD_TYPE,
15653 PRG_LEVEL,
15654 LINE_TYPE,
15655 PROJECT_ID,
15656 PROJECT_ORG_ID,
15657 PROJECT_ORGANIZATION_ID,
15658 PROJECT_ELEMENT_ID,
15659 TIME_ID,
15660 PERIOD_TYPE_ID,
15661 CALENDAR_TYPE,
15662 RBS_AGGR_LEVEL,
15663 WBS_ROLLUP_FLAG,
15664 PRG_ROLLUP_FLAG,
15665 CURR_RECORD_TYPE_ID,
15666 CURRENCY_CODE,
15667 RBS_ELEMENT_ID,
15668 RBS_VERSION_ID,
15669 PLAN_VERSION_ID,
15670 PLAN_TYPE_ID,
15671 PLAN_TYPE_CODE,
15672 RAW_COST,
15673 BRDN_COST,
15674 REVENUE,
15675 BILL_RAW_COST,
15676 BILL_BRDN_COST,
15677 BILL_LABOR_RAW_COST,
15678 BILL_LABOR_BRDN_COST,
15679 BILL_LABOR_HRS,
15680 EQUIPMENT_RAW_COST,
15681 EQUIPMENT_BRDN_COST,
15682 CAPITALIZABLE_RAW_COST,
15683 CAPITALIZABLE_BRDN_COST,
15684 LABOR_RAW_COST,
15685 LABOR_BRDN_COST,
15686 LABOR_HRS,
15687 LABOR_REVENUE,
15688 EQUIPMENT_HOURS,
15689 BILLABLE_EQUIPMENT_HOURS,
15690 SUP_INV_COMMITTED_COST,
15691 PO_COMMITTED_COST,
15692 PR_COMMITTED_COST,
15693 OTH_COMMITTED_COST,
15694 ACT_LABOR_HRS,
15695 ACT_EQUIP_HRS,
15696 ACT_LABOR_BRDN_COST,
15697 ACT_EQUIP_BRDN_COST,
15698 ACT_BRDN_COST,
15699 ACT_RAW_COST,
15700 ACT_REVENUE,
15701 ACT_LABOR_RAW_COST,
15702 ACT_EQUIP_RAW_COST,
15703 ETC_LABOR_HRS,
15704 ETC_EQUIP_HRS,
15705 ETC_LABOR_BRDN_COST,
15706 ETC_EQUIP_BRDN_COST,
15707 ETC_BRDN_COST,
15708 ETC_RAW_COST,
15709 ETC_LABOR_RAW_COST,
15710 ETC_EQUIP_RAW_COST,
15711 CUSTOM1,
15712 CUSTOM2,
15713 CUSTOM3,
15714 CUSTOM4,
15715 CUSTOM5,
15716 CUSTOM6,
15717 CUSTOM7,
15718 CUSTOM8,
15719 CUSTOM9,
15720 CUSTOM10,
15721 CUSTOM11,
15722 CUSTOM12,
15723 CUSTOM13,
15724 CUSTOM14,
15725 CUSTOM15
15726 )
15727 select /*+ no_merge(pjp) */
15728 /*p_worker_id WORKER_ID,
15729 'P' RECORD_TYPE,
15730 l_level PRG_LEVEL,
15731 pjp.LINE_TYPE,
15732 pjp.SUP_PROJECT_ID PROJECT_ID,
15733 map.PROJECT_ORG_ID,
15734 map.PROJECT_ORGANIZATION_ID,
15735 decode(pjp.STRUCT_TYPE,
15736 'DO_NOT_ROLLUP', pjp.SUB_ROLLUP_ID,
15737 decode(top_slice.INVERT_ID,
15738 'PRJ', pjp.SUP_EMT_ID, wbs.SUP_EMT_ID)
15739 ) PROJECT_ELEMENT_ID,
15740 pjp.TIME_ID,
15741 pjp.PERIOD_TYPE_ID,
15742 pjp.CALENDAR_TYPE,
15743 pjp.RBS_AGGR_LEVEL,
15744 decode(pjp.STRUCT_TYPE,
15745 'DO_NOT_ROLLUP', 'N',
15746 decode(top_slice.INVERT_ID,
15747 'PRJ', 'Y', decode(pjp.SUB_ROLLUP_ID,
15748 wbs.SUP_EMT_ID,
15749 'N', 'Y'))
15750 ) WBS_ROLLUP_FLAG,
15751 'Y' PRG_ROLLUP_FLAG,
15752 pjp.CURR_RECORD_TYPE_ID,
15753 pjp.CURRENCY_CODE,
15754 pjp.RBS_ELEMENT_ID,
15755 pjp.RBS_VERSION_ID,
15756 pjp.PLAN_VERSION_ID,
15757 pjp.PLAN_TYPE_ID,
15758 pjp.PLAN_TYPE_CODE,
15759 sum(pjp.RAW_COST) RAW_COST,
15760 sum(pjp.BRDN_COST) BRDN_COST,
15761 sum(pjp.REVENUE) REVENUE,
15762 sum(pjp.BILL_RAW_COST) BILL_RAW_COST,
15763 sum(pjp.BILL_BRDN_COST) BILL_BRDN_COST,
15764 sum(pjp.BILL_LABOR_RAW_COST) BILL_LABOR_RAW_COST,
15765 sum(pjp.BILL_LABOR_BRDN_COST) BILL_LABOR_BRDN_COST,
15766 sum(pjp.BILL_LABOR_HRS) BILL_LABOR_HRS,
15767 sum(pjp.EQUIPMENT_RAW_COST) EQUIPMENT_RAW_COST,
15768 sum(pjp.EQUIPMENT_BRDN_COST) EQUIPMENT_BRDN_COST,
15769 sum(pjp.CAPITALIZABLE_RAW_COST) CAPITALIZABLE_RAW_COST,
15770 sum(pjp.CAPITALIZABLE_BRDN_COST) CAPITALIZABLE_BRDN_COST,
15771 sum(pjp.LABOR_RAW_COST) LABOR_RAW_COST,
15772 sum(pjp.LABOR_BRDN_COST) LABOR_BRDN_COST,
15773 sum(pjp.LABOR_HRS) LABOR_HRS,
15774 sum(pjp.LABOR_REVENUE) LABOR_REVENUE,
15775 sum(pjp.EQUIPMENT_HOURS) EQUIPMENT_HOURS,
15776 sum(pjp.BILLABLE_EQUIPMENT_HOURS) BILLABLE_EQUIPMENT_HOURS,
15777 sum(pjp.SUP_INV_COMMITTED_COST) SUP_INV_COMMITTED_COST,
15778 sum(pjp.PO_COMMITTED_COST) PO_COMMITTED_COST,
15779 sum(pjp.PR_COMMITTED_COST) PR_COMMITTED_COST,
15780 sum(pjp.OTH_COMMITTED_COST) OTH_COMMITTED_COST,
15781 sum(pjp.ACT_LABOR_HRS) ACT_LABOR_HRS,
15782 sum(pjp.ACT_EQUIP_HRS) ACT_EQUIP_HRS,
15783 sum(pjp.ACT_LABOR_BRDN_COST) ACT_LABOR_BRDN_COST,
15784 sum(pjp.ACT_EQUIP_BRDN_COST) ACT_EQUIP_BRDN_COST,
15785 sum(pjp.ACT_BRDN_COST) ACT_BRDN_COST,
15786 sum(pjp.ACT_RAW_COST) ACT_RAW_COST,
15787 sum(pjp.ACT_REVENUE) ACT_REVENUE,
15788 sum(pjp.ACT_LABOR_RAW_COST) ACT_LABOR_RAW_COST,
15789 sum(pjp.ACT_EQUIP_RAW_COST) ACT_EQUIP_RAW_COST,
15790 sum(pjp.ETC_LABOR_HRS) ETC_LABOR_HRS,
15791 sum(pjp.ETC_EQUIP_HRS) ETC_EQUIP_HRS,
15792 sum(pjp.ETC_LABOR_BRDN_COST) ETC_LABOR_BRDN_COST,
15793 sum(pjp.ETC_EQUIP_BRDN_COST) ETC_EQUIP_BRDN_COST,
15794 sum(pjp.ETC_BRDN_COST) ETC_BRDN_COST,
15795 sum(pjp.ETC_RAW_COST) ETC_RAW_COST,
15796 sum(pjp.ETC_LABOR_RAW_COST) ETC_LABOR_RAW_COST,
15797 sum(pjp.ETC_EQUIP_RAW_COST) ETC_EQUIP_RAW_COST,
15798 sum(pjp.CUSTOM1) CUSTOM1,
15799 sum(pjp.CUSTOM2) CUSTOM2,
15800 sum(pjp.CUSTOM3) CUSTOM3,
15801 sum(pjp.CUSTOM4) CUSTOM4,
15802 sum(pjp.CUSTOM5) CUSTOM5,
15803 sum(pjp.CUSTOM6) CUSTOM6,
15804 sum(pjp.CUSTOM7) CUSTOM7,
15805 sum(pjp.CUSTOM8) CUSTOM8,
15806 sum(pjp.CUSTOM9) CUSTOM9,
15807 sum(pjp.CUSTOM10) CUSTOM10,
15808 sum(pjp.CUSTOM11) CUSTOM11,
15809 sum(pjp.CUSTOM12) CUSTOM12,
15810 sum(pjp.CUSTOM13) CUSTOM13,
15811 sum(pjp.CUSTOM14) CUSTOM14,
15812 sum(pjp.CUSTOM15) CUSTOM15
15813 from
15814 (
15815 select /*+ ordered index(fpr PJI_FP_XBS_ACCUM_F_N1) */
15816 -- get structure level amounts from Reporting Lines
15817 /* decode(fpr.RBS_AGGR_LEVEL,
15818 'L', 'DO_NOT_ROLLUP',
15819 'WBS') STRUCT_TYPE,
15820 to_char(null) LINE_TYPE,
15821 prg.SUP_PROJECT_ID,
15822 prg.SUP_ID,
15823 prg.SUP_EMT_ID,
15824 prg.SUB_EMT_ID,
15825 prg.SUB_ROLLUP_ID,
15826 'FPR' LINE_SOURCE,
15827 decode(fpr.PLAN_VERSION_ID,
15828 -1, prg.SUB_ID,
15829 -3, prg.SUB_ID,
15830 -4, prg.SUB_ID,
15831 decode(fin_plan.PLAN_VERSION_ID,
15832 null, null,
15833 prg.SUB_ID)) SUB_ID,
15834 decode(fpr.PLAN_VERSION_ID,
15835 -1, 'N',
15836 -3, 'N',
15837 -4, 'N',
15838 decode(fin_plan.PLAN_VERSION_ID,
15839 null, null,
15840 'N')) SUP_WP_FLAG,
15841 decode(fpr.PLAN_VERSION_ID,
15842 -1, fpr.PLAN_VERSION_ID,
15843 -3, fpr.PLAN_VERSION_ID,
15844 -4, fpr.PLAN_VERSION_ID,
15845 decode(fin_plan.PLAN_VERSION_ID,
15846 null, null,
15847 fin_plan.PLAN_VERSION_ID)
15848 ) SUB_PLAN_VERSION_ID,
15849 decode(fpr.PLAN_VERSION_ID,
15850 -1, fpr.PLAN_TYPE_ID,
15851 -3, fpr.PLAN_TYPE_ID,
15852 -4, fpr.PLAN_TYPE_ID,
15853 decode(fin_plan.PLAN_VERSION_ID,
15854 null, null,
15855 fpr.PLAN_TYPE_ID)) SUB_PLAN_TYPE_ID,
15856 fpr.TIME_ID,
15857 fpr.PERIOD_TYPE_ID,
15858 fpr.CALENDAR_TYPE,
15859 fpr.RBS_AGGR_LEVEL,
15860 fpr.CURR_RECORD_TYPE_ID,
15861 fpr.CURRENCY_CODE,
15862 fpr.RBS_ELEMENT_ID,
15863 fpr.RBS_VERSION_ID,
15864 decode(wbs_hdr.WP_FLAG,
15865 'N', decode(wbs_hdr.PLAN_VERSION_ID,
15866 -1, fpr.PLAN_VERSION_ID,
15867 fin_plan.PLAN_VERSION_ID),
15868 sup_wbs_hdr.PLAN_VERSION_ID) PLAN_VERSION_ID,
15869 decode(wbs_hdr.WP_FLAG,
15870 'N', fpr.PLAN_TYPE_ID,
15871 sup_wbs_hdr.PLAN_TYPE_ID) PLAN_TYPE_ID,
15872 fpr.PLAN_TYPE_CODE,
15873 decode(wbs_hdr.WP_FLAG
15874 || '_' || sup_wbs_hdr.WP_FLAG
15875 || '_' || sub_ver.STATUS_CODE
15876 || '_' || sup_ver.STATUS_CODE,
15877 'Y_Y__', to_number(null),
15878 'Y_Y__STRUCTURE_PUBLISHED', to_number(null),
15879 prg.SIGN * fpr.RAW_COST) RAW_COST,
15880 decode(wbs_hdr.WP_FLAG
15881 || '_' || sup_wbs_hdr.WP_FLAG
15882 || '_' || sub_ver.STATUS_CODE
15883 || '_' || sup_ver.STATUS_CODE,
15884 'Y_Y__', to_number(null),
15885 'Y_Y__STRUCTURE_PUBLISHED', to_number(null),
15886 prg.SIGN * fpr.BRDN_COST) BRDN_COST,
15887 decode(wbs_hdr.WP_FLAG
15888 || '_' || sup_wbs_hdr.WP_FLAG
15889 || '_' || sub_ver.STATUS_CODE
15890 || '_' || sup_ver.STATUS_CODE,
15891 'Y_Y__', to_number(null),
15892 'Y_Y__STRUCTURE_PUBLISHED', to_number(null),
15893 prg.SIGN * fpr.REVENUE) REVENUE,
15894 decode(wbs_hdr.WP_FLAG
15895 || '_' || sup_wbs_hdr.WP_FLAG
15896 || '_' || sub_ver.STATUS_CODE
15897 || '_' || sup_ver.STATUS_CODE,
15898 'Y_Y__', to_number(null),
15899 'Y_Y__STRUCTURE_PUBLISHED', to_number(null),
15900 prg.SIGN * fpr.BILL_RAW_COST) BILL_RAW_COST,
15901 decode(wbs_hdr.WP_FLAG
15902 || '_' || sup_wbs_hdr.WP_FLAG
15903 || '_' || sub_ver.STATUS_CODE
15904 || '_' || sup_ver.STATUS_CODE,
15905 'Y_Y__', to_number(null),
15906 'Y_Y__STRUCTURE_PUBLISHED', to_number(null),
15907 prg.SIGN * fpr.BILL_BRDN_COST) BILL_BRDN_COST,
15908 decode(wbs_hdr.WP_FLAG
15909 || '_' || sup_wbs_hdr.WP_FLAG
15910 || '_' || sub_ver.STATUS_CODE
15911 || '_' || sup_ver.STATUS_CODE,
15912 'Y_Y__', to_number(null),
15913 'Y_Y__STRUCTURE_PUBLISHED', to_number(null),
15914 prg.SIGN * fpr.BILL_LABOR_RAW_COST) BILL_LABOR_RAW_COST,
15915 decode(wbs_hdr.WP_FLAG
15916 || '_' || sup_wbs_hdr.WP_FLAG
15917 || '_' || sub_ver.STATUS_CODE
15918 || '_' || sup_ver.STATUS_CODE,
15919 'Y_Y__', to_number(null),
15920 'Y_Y__STRUCTURE_PUBLISHED', to_number(null),
15921 prg.SIGN * fpr.BILL_LABOR_BRDN_COST) BILL_LABOR_BRDN_COST,
15922 decode(wbs_hdr.WP_FLAG
15923 || '_' || sup_wbs_hdr.WP_FLAG
15924 || '_' || sub_ver.STATUS_CODE
15925 || '_' || sup_ver.STATUS_CODE,
15926 'Y_Y__', to_number(null),
15927 'Y_Y__STRUCTURE_PUBLISHED', to_number(null),
15928 prg.SIGN * fpr.BILL_LABOR_HRS) BILL_LABOR_HRS,
15929 decode(wbs_hdr.WP_FLAG
15930 || '_' || sup_wbs_hdr.WP_FLAG
15931 || '_' || sub_ver.STATUS_CODE
15932 || '_' || sup_ver.STATUS_CODE,
15933 'Y_Y__', to_number(null),
15934 'Y_Y__STRUCTURE_PUBLISHED', to_number(null),
15935 prg.SIGN * fpr.EQUIPMENT_RAW_COST) EQUIPMENT_RAW_COST,
15936 decode(wbs_hdr.WP_FLAG
15937 || '_' || sup_wbs_hdr.WP_FLAG
15938 || '_' || sub_ver.STATUS_CODE
15939 || '_' || sup_ver.STATUS_CODE,
15940 'Y_Y__', to_number(null),
15941 'Y_Y__STRUCTURE_PUBLISHED', to_number(null),
15942 prg.SIGN * fpr.EQUIPMENT_BRDN_COST) EQUIPMENT_BRDN_COST,
15943 decode(wbs_hdr.WP_FLAG
15944 || '_' || sup_wbs_hdr.WP_FLAG
15945 || '_' || sub_ver.STATUS_CODE
15946 || '_' || sup_ver.STATUS_CODE,
15947 'Y_Y__', to_number(null),
15948 'Y_Y__STRUCTURE_PUBLISHED', to_number(null),
15949 prg.SIGN * fpr.CAPITALIZABLE_RAW_COST)
15950 CAPITALIZABLE_RAW_COST,
15951 decode(wbs_hdr.WP_FLAG
15952 || '_' || sup_wbs_hdr.WP_FLAG
15953 || '_' || sub_ver.STATUS_CODE
15954 || '_' || sup_ver.STATUS_CODE,
15955 'Y_Y__', to_number(null),
15956 'Y_Y__STRUCTURE_PUBLISHED', to_number(null),
15957 prg.SIGN * fpr.CAPITALIZABLE_BRDN_COST)
15958 CAPITALIZABLE_BRDN_COST,
15959 decode(wbs_hdr.WP_FLAG
15960 || '_' || sup_wbs_hdr.WP_FLAG
15961 || '_' || sub_ver.STATUS_CODE
15962 || '_' || sup_ver.STATUS_CODE,
15963 'Y_Y__', to_number(null),
15964 'Y_Y__STRUCTURE_PUBLISHED', to_number(null),
15965 prg.SIGN * fpr.LABOR_RAW_COST) LABOR_RAW_COST,
15966 decode(wbs_hdr.WP_FLAG
15967 || '_' || sup_wbs_hdr.WP_FLAG
15968 || '_' || sub_ver.STATUS_CODE
15969 || '_' || sup_ver.STATUS_CODE,
15970 'Y_Y__', to_number(null),
15971 'Y_Y__STRUCTURE_PUBLISHED', to_number(null),
15972 prg.SIGN * fpr.LABOR_BRDN_COST) LABOR_BRDN_COST,
15973 decode(wbs_hdr.WP_FLAG
15974 || '_' || sup_wbs_hdr.WP_FLAG
15975 || '_' || sub_ver.STATUS_CODE
15976 || '_' || sup_ver.STATUS_CODE,
15977 'Y_Y__', to_number(null),
15978 'Y_Y__STRUCTURE_PUBLISHED', to_number(null),
15979 prg.SIGN * fpr.LABOR_HRS) LABOR_HRS,
15980 decode(wbs_hdr.WP_FLAG
15981 || '_' || sup_wbs_hdr.WP_FLAG
15982 || '_' || sub_ver.STATUS_CODE
15983 || '_' || sup_ver.STATUS_CODE,
15984 'Y_Y__', to_number(null),
15985 'Y_Y__STRUCTURE_PUBLISHED', to_number(null),
15986 prg.SIGN * fpr.LABOR_REVENUE) LABOR_REVENUE,
15987 decode(wbs_hdr.WP_FLAG
15988 || '_' || sup_wbs_hdr.WP_FLAG
15989 || '_' || sub_ver.STATUS_CODE
15990 || '_' || sup_ver.STATUS_CODE,
15991 'Y_Y__', to_number(null),
15992 'Y_Y__STRUCTURE_PUBLISHED', to_number(null),
15993 prg.SIGN * fpr.EQUIPMENT_HOURS) EQUIPMENT_HOURS,
15994 decode(wbs_hdr.WP_FLAG
15995 || '_' || sup_wbs_hdr.WP_FLAG
15996 || '_' || sub_ver.STATUS_CODE
15997 || '_' || sup_ver.STATUS_CODE,
15998 'Y_Y__', to_number(null),
15999 'Y_Y__STRUCTURE_PUBLISHED', to_number(null),
16000 prg.SIGN * fpr.BILLABLE_EQUIPMENT_HOURS)
16001 BILLABLE_EQUIPMENT_HOURS,
16002 decode(wbs_hdr.WP_FLAG
16003 || '_' || sup_wbs_hdr.WP_FLAG
16004 || '_' || sub_ver.STATUS_CODE
16005 || '_' || sup_ver.STATUS_CODE,
16006 'Y_Y__', to_number(null),
16007 'Y_Y__STRUCTURE_PUBLISHED', to_number(null),
16008 prg.SIGN * fpr.SUP_INV_COMMITTED_COST)
16009 SUP_INV_COMMITTED_COST,
16010 decode(wbs_hdr.WP_FLAG
16011 || '_' || sup_wbs_hdr.WP_FLAG
16012 || '_' || sub_ver.STATUS_CODE
16013 || '_' || sup_ver.STATUS_CODE,
16014 'Y_Y__', to_number(null),
16015 'Y_Y__STRUCTURE_PUBLISHED', to_number(null),
16016 prg.SIGN * fpr.PO_COMMITTED_COST) PO_COMMITTED_COST,
16017 decode(wbs_hdr.WP_FLAG
16018 || '_' || sup_wbs_hdr.WP_FLAG
16019 || '_' || sub_ver.STATUS_CODE
16020 || '_' || sup_ver.STATUS_CODE,
16021 'Y_Y__', to_number(null),
16022 'Y_Y__STRUCTURE_PUBLISHED', to_number(null),
16023 prg.SIGN * fpr.PR_COMMITTED_COST) PR_COMMITTED_COST,
16024 decode(wbs_hdr.WP_FLAG
16025 || '_' || sup_wbs_hdr.WP_FLAG
16026 || '_' || sub_ver.STATUS_CODE
16027 || '_' || sup_ver.STATUS_CODE,
16028 'Y_Y__', to_number(null),
16029 'Y_Y__STRUCTURE_PUBLISHED', to_number(null),
16030 prg.SIGN * fpr.OTH_COMMITTED_COST) OTH_COMMITTED_COST,
16031 decode(wbs_hdr.WP_FLAG
16032 || '_' || sup_wbs_hdr.WP_FLAG
16033 || '_' || sup_ver.STATUS_CODE,
16034 'Y_Y_', to_number(null),
16035 prg.SIGN * fpr.ACT_LABOR_HRS) ACT_LABOR_HRS,
16036 decode(wbs_hdr.WP_FLAG
16037 || '_' || sup_wbs_hdr.WP_FLAG
16038 || '_' || sup_ver.STATUS_CODE,
16039 'Y_Y_', to_number(null),
16040 prg.SIGN * fpr.ACT_EQUIP_HRS) ACT_EQUIP_HRS,
16041 decode(wbs_hdr.WP_FLAG
16042 || '_' || sup_wbs_hdr.WP_FLAG
16043 || '_' || sup_ver.STATUS_CODE,
16044 'Y_Y_', to_number(null),
16045 prg.SIGN * fpr.ACT_LABOR_BRDN_COST) ACT_LABOR_BRDN_COST,
16046 decode(wbs_hdr.WP_FLAG
16047 || '_' || sup_wbs_hdr.WP_FLAG
16048 || '_' || sup_ver.STATUS_CODE,
16049 'Y_Y_', to_number(null),
16050 prg.SIGN * fpr.ACT_EQUIP_BRDN_COST) ACT_EQUIP_BRDN_COST,
16051 decode(wbs_hdr.WP_FLAG
16052 || '_' || sup_wbs_hdr.WP_FLAG
16053 || '_' || sup_ver.STATUS_CODE,
16054 'Y_Y_', to_number(null),
16055 prg.SIGN * fpr.ACT_BRDN_COST) ACT_BRDN_COST,
16056 decode(wbs_hdr.WP_FLAG
16057 || '_' || sup_wbs_hdr.WP_FLAG
16058 || '_' || sup_ver.STATUS_CODE,
16059 'Y_Y_', to_number(null),
16060 prg.SIGN * fpr.ACT_RAW_COST) ACT_RAW_COST,
16061 decode(wbs_hdr.WP_FLAG
16062 || '_' || sup_wbs_hdr.WP_FLAG
16063 || '_' || sup_ver.STATUS_CODE,
16064 'Y_Y_', to_number(null),
16065 prg.SIGN * fpr.ACT_REVENUE) ACT_REVENUE,
16066 decode(wbs_hdr.WP_FLAG
16067 || '_' || sup_wbs_hdr.WP_FLAG
16068 || '_' || sup_ver.STATUS_CODE,
16069 'Y_Y_', to_number(null),
16070 prg.SIGN * fpr.ACT_LABOR_RAW_COST) ACT_LABOR_RAW_COST,
16071 decode(wbs_hdr.WP_FLAG
16072 || '_' || sup_wbs_hdr.WP_FLAG
16073 || '_' || sup_ver.STATUS_CODE,
16074 'Y_Y_', to_number(null),
16075 prg.SIGN * fpr.ACT_EQUIP_RAW_COST) ACT_EQUIP_RAW_COST,
16076 decode(wbs_hdr.WP_FLAG
16077 || '_' || sup_wbs_hdr.WP_FLAG
16078 || '_' || sup_ver.STATUS_CODE,
16079 'Y_Y_', to_number(null),
16080 prg.SIGN * fpr.ETC_LABOR_HRS) ETC_LABOR_HRS,
16081 decode(wbs_hdr.WP_FLAG
16082 || '_' || sup_wbs_hdr.WP_FLAG
16083 || '_' || sup_ver.STATUS_CODE,
16084 'Y_Y_', to_number(null),
16085 prg.SIGN * fpr.ETC_EQUIP_HRS) ETC_EQUIP_HRS,
16086 decode(wbs_hdr.WP_FLAG
16087 || '_' || sup_wbs_hdr.WP_FLAG
16088 || '_' || sup_ver.STATUS_CODE,
16089 'Y_Y_', to_number(null),
16090 prg.SIGN * fpr.ETC_LABOR_BRDN_COST) ETC_LABOR_BRDN_COST,
16091 decode(wbs_hdr.WP_FLAG
16092 || '_' || sup_wbs_hdr.WP_FLAG
16093 || '_' || sup_ver.STATUS_CODE,
16094 'Y_Y_', to_number(null),
16095 prg.SIGN * fpr.ETC_EQUIP_BRDN_COST) ETC_EQUIP_BRDN_COST,
16096 decode(wbs_hdr.WP_FLAG
16097 || '_' || sup_wbs_hdr.WP_FLAG
16098 || '_' || sup_ver.STATUS_CODE,
16099 'Y_Y_', to_number(null),
16100 prg.SIGN * fpr.ETC_BRDN_COST) ETC_BRDN_COST,
16101 decode(wbs_hdr.WP_FLAG
16102 || '_' || sup_wbs_hdr.WP_FLAG
16103 || '_' || sup_ver.STATUS_CODE,
16104 'Y_Y_', to_number(null),
16105 prg.SIGN * fpr.ETC_RAW_COST) ETC_RAW_COST,
16106 decode(wbs_hdr.WP_FLAG
16107 || '_' || sup_wbs_hdr.WP_FLAG
16108 || '_' || sup_ver.STATUS_CODE,
16109 'Y_Y_', to_number(null),
16110 prg.SIGN * fpr.ETC_LABOR_RAW_COST) ETC_LABOR_RAW_COST,
16111 decode(wbs_hdr.WP_FLAG
16112 || '_' || sup_wbs_hdr.WP_FLAG
16113 || '_' || sup_ver.STATUS_CODE,
16114 'Y_Y_', to_number(null),
16115 prg.SIGN * fpr.ETC_EQUIP_RAW_COST) ETC_EQUIP_RAW_COST,
16116 prg.SIGN * fpr.CUSTOM1 CUSTOM1,
16117 prg.SIGN * fpr.CUSTOM2 CUSTOM2,
16118 prg.SIGN * fpr.CUSTOM3 CUSTOM3,
16119 prg.SIGN * fpr.CUSTOM4 CUSTOM4,
16120 prg.SIGN * fpr.CUSTOM5 CUSTOM5,
16121 prg.SIGN * fpr.CUSTOM6 CUSTOM6,
16122 prg.SIGN * fpr.CUSTOM7 CUSTOM7,
16123 prg.SIGN * fpr.CUSTOM8 CUSTOM8,
16124 prg.SIGN * fpr.CUSTOM9 CUSTOM9,
16125 prg.SIGN * fpr.CUSTOM10 CUSTOM10,
16126 prg.SIGN * fpr.CUSTOM11 CUSTOM11,
16127 prg.SIGN * fpr.CUSTOM12 CUSTOM12,
16128 prg.SIGN * fpr.CUSTOM13 CUSTOM13,
16129 prg.SIGN * fpr.CUSTOM14 CUSTOM14,
16130 prg.SIGN * fpr.CUSTOM15 CUSTOM15
16131 from
16132 PJI_XBS_DENORM_DELTA prg,
16133 PA_PROJ_ELEMENTS prj_emt,
16134 PJI_PJP_WBS_HEADER wbs_hdr,
16135 PJI_FP_XBS_ACCUM_F fpr,
16136 PJI_PJP_WBS_HEADER sup_wbs_hdr,
16137 PA_PROJ_ELEM_VER_STRUCTURE sub_ver,
16138 PA_PROJ_ELEM_VER_STRUCTURE sup_ver,
16139 (
16140 select 'Y' CB, 'N' CO, -3 PLAN_VERSION_ID
16141 from DUAL union all
16142 select 'N' CB, 'Y' CO, -4 PLAN_VERSION_ID
16143 from DUAL union all
16144 select 'Y' CB, 'Y' CO, -3 PLAN_VERSION_ID
16145 from DUAL union all
16146 select 'Y' CB, 'Y' CO, -4 PLAN_VERSION_ID
16147 from DUAL
16148 ) fin_plan
16149 where
16150 prg.WORKER_ID = p_worker_id and
16151 prg.STRUCT_TYPE = 'PRG' and
16152 prg.SUP_LEVEL = l_level and
16153 nvl(prg.SUB_ROLLUP_ID,
16154 prg.SUP_EMT_ID) <> prg.SUP_EMT_ID and
16155 fpr.PROJECT_ID = prj_emt.PROJECT_ID and
16156 (((fpr.RBS_AGGR_LEVEL,
16157 fpr.WBS_ROLLUP_FLAG,
16158 fpr.PRG_ROLLUP_FLAG) in (('T', 'Y', 'Y'),
16159 ('T', 'Y', 'N'),
16160 ('T', 'N', 'Y'),
16161 ('T', 'N', 'N'),
16162 ('L', 'N', 'N')) and
16163 fpr.PROJECT_ELEMENT_ID = prg.SUB_EMT_ID) or
16164 ((fpr.RBS_AGGR_LEVEL,
16165 fpr.WBS_ROLLUP_FLAG,
16166 fpr.PRG_ROLLUP_FLAG) in (('L', 'N', 'Y'),
16167 ('L', 'N', 'N')) and
16168 fpr.PROJECT_ELEMENT_ID <> prg.SUB_EMT_ID)) and
16169 decode(fpr.PLAN_VERSION_ID,
16170 -1, 'LF',
16171 -2, 'LF',
16172 -3, 'LF',
16173 -4, 'LF',
16174 decode(wbs_hdr.WP_FLAG,
16175 'N', 'LF',
16176 'LW')) = prg.RELATIONSHIP_TYPE and
16177 prj_emt.PROJ_ELEMENT_ID = prg.SUB_EMT_ID and
16178 wbs_hdr.PROJECT_ID = prj_emt.PROJECT_ID and
16179 decode(wbs_hdr.WP_FLAG,
16180 'Y', wbs_hdr.WBS_VERSION_ID,
16181 -1) = decode(wbs_hdr.WP_FLAG,
16182 'Y', prg.SUB_ID,
16183 -1) and
16184 wbs_hdr.PLAN_VERSION_ID = fpr.PLAN_VERSION_ID and
16185 wbs_hdr.PLAN_TYPE_CODE = fpr.PLAN_TYPE_CODE and
16186 decode(fpr.PLAN_VERSION_ID,
16187 -3, fpr.PLAN_TYPE_ID,
16188 -4, fpr.PLAN_TYPE_ID,
16189 -1) = decode(fpr.PLAN_VERSION_ID,
16190 -3, wbs_hdr.PLAN_TYPE_ID,
16191 -4, wbs_hdr.PLAN_TYPE_ID,
16192 -1) and
16193 decode(wbs_hdr.WP_FLAG,
16194 'N', decode(fpr.PLAN_VERSION_ID,
16195 -1, 'Y',
16196 -2, 'Y',
16197 -3, 'Y',
16198 -4, 'Y',
16199 decode(fpr.RBS_AGGR_LEVEL
16200 || '_' || wbs_hdr.CB_FLAG
16201 || '_' || wbs_hdr.CO_FLAG,
16202 'L_Y_Y', 'Y',
16203 'L_N_Y', 'Y',
16204 'L_Y_N', 'Y',
16205 'N')),
16206 'Y') = 'Y' and
16207 prg.SUP_PROJECT_ID = sup_wbs_hdr.PROJECT_ID (+) and
16208 prg.SUP_ID = sup_wbs_hdr.WBS_VERSION_ID (+) and
16209 'Y' = sup_wbs_hdr.WP_FLAG (+) and
16210 wbs_hdr.PROJECT_ID = sub_ver.PROJECT_ID (+) and
16211 wbs_hdr.WBS_VERSION_ID = sub_ver.ELEMENT_VERSION_ID (+) and
16212 'STRUCTURE_PUBLISHED' = sub_ver.STATUS_CODE (+) and
16213 sup_wbs_hdr.PROJECT_ID = sup_ver.PROJECT_ID (+) and
16214 sup_wbs_hdr.WBS_VERSION_ID = sup_ver.ELEMENT_VERSION_ID (+) and
16215 'STRUCTURE_PUBLISHED' = sup_ver.STATUS_CODE (+) and
16216 wbs_hdr.CB_FLAG = fin_plan.CB (+) and
16217 wbs_hdr.CO_FLAG = fin_plan.CO (+)
16218 union all
16219 select /*+ ordered */
16220 -- get structure level amounts from interim
16221 /* decode(pjp1.RBS_AGGR_LEVEL,
16222 'L', 'DO_NOT_ROLLUP',
16223 'WBS') STRUCT_TYPE,
16224 to_char(null) LINE_TYPE,
16225 prg.SUP_PROJECT_ID,
16226 prg.SUP_ID,
16227 prg.SUP_EMT_ID,
16228 prg.SUB_EMT_ID,
16229 prg.SUB_ROLLUP_ID,
16230 'PJP1' LINE_SOURCE,
16231 decode(pjp1.PLAN_VERSION_ID,
16232 -1, prg.SUB_ID,
16233 -3, prg.SUB_ID,
16234 -4, prg.SUB_ID,
16235 decode(fin_plan.PLAN_VERSION_ID,
16236 null, null,
16237 prg.SUB_ID)) SUB_ID,
16238 decode(pjp1.PLAN_VERSION_ID,
16239 -1, 'N',
16240 -3, 'N',
16241 -4, 'N',
16242 decode(fin_plan.PLAN_VERSION_ID,
16243 null, null,
16244 'N')) SUP_WP_FLAG,
16245 decode(pjp1.PLAN_VERSION_ID,
16246 -1, pjp1.PLAN_VERSION_ID,
16247 -3, pjp1.PLAN_VERSION_ID,
16248 -4, pjp1.PLAN_VERSION_ID,
16249 decode(fin_plan.PLAN_VERSION_ID,
16250 null, null,
16251 fin_plan.PLAN_VERSION_ID)
16252 ) SUB_PLAN_VERSION_ID,
16253 decode(pjp1.PLAN_VERSION_ID,
16254 -1, pjp1.PLAN_TYPE_ID,
16255 -3, pjp1.PLAN_TYPE_ID,
16256 -4, pjp1.PLAN_TYPE_ID,
16257 decode(fin_plan.PLAN_VERSION_ID,
16258 null, null,
16259 pjp1.PLAN_TYPE_ID)) SUB_PLAN_TYPE_ID,
16260 pjp1.TIME_ID,
16261 pjp1.PERIOD_TYPE_ID,
16262 pjp1.CALENDAR_TYPE,
16263 pjp1.RBS_AGGR_LEVEL,
16264 pjp1.CURR_RECORD_TYPE_ID,
16265 pjp1.CURRENCY_CODE,
16266 pjp1.RBS_ELEMENT_ID,
16267 pjp1.RBS_VERSION_ID,
16268 decode(wbs_hdr.WP_FLAG,
16269 'N', decode(wbs_hdr.PLAN_VERSION_ID,
16270 -1, pjp1.PLAN_VERSION_ID,
16271 fin_plan.PLAN_VERSION_ID),
16272 sup_wbs_hdr.PLAN_VERSION_ID) PLAN_VERSION_ID,
16273 decode(wbs_hdr.WP_FLAG,
16274 'N', pjp1.PLAN_TYPE_ID,
16275 sup_wbs_hdr.PLAN_TYPE_ID) PLAN_TYPE_ID,
16276 pjp1.PLAN_TYPE_CODE,
16277 decode(wbs_hdr.WP_FLAG
16278 || '_' || sup_wbs_hdr.WP_FLAG
16279 || '_' || sub_ver.STATUS_CODE
16280 || '_' || sup_ver.STATUS_CODE,
16281 'Y_Y__', to_number(null),
16282 'Y_Y__STRUCTURE_PUBLISHED', to_number(null),
16283 pjp1.RAW_COST) RAW_COST,
16284 decode(wbs_hdr.WP_FLAG
16285 || '_' || sup_wbs_hdr.WP_FLAG
16286 || '_' || sub_ver.STATUS_CODE
16287 || '_' || sup_ver.STATUS_CODE,
16288 'Y_Y__', to_number(null),
16289 'Y_Y__STRUCTURE_PUBLISHED', to_number(null),
16290 pjp1.BRDN_COST) BRDN_COST,
16291 decode(wbs_hdr.WP_FLAG
16292 || '_' || sup_wbs_hdr.WP_FLAG
16293 || '_' || sub_ver.STATUS_CODE
16294 || '_' || sup_ver.STATUS_CODE,
16295 'Y_Y__', to_number(null),
16296 'Y_Y__STRUCTURE_PUBLISHED', to_number(null),
16297 pjp1.REVENUE) REVENUE,
16298 decode(wbs_hdr.WP_FLAG
16299 || '_' || sup_wbs_hdr.WP_FLAG
16300 || '_' || sub_ver.STATUS_CODE
16301 || '_' || sup_ver.STATUS_CODE,
16302 'Y_Y__', to_number(null),
16303 'Y_Y__STRUCTURE_PUBLISHED', to_number(null),
16304 pjp1.BILL_RAW_COST) BILL_RAW_COST,
16305 decode(wbs_hdr.WP_FLAG
16306 || '_' || sup_wbs_hdr.WP_FLAG
16307 || '_' || sub_ver.STATUS_CODE
16308 || '_' || sup_ver.STATUS_CODE,
16309 'Y_Y__', to_number(null),
16310 'Y_Y__STRUCTURE_PUBLISHED', to_number(null),
16311 pjp1.BILL_BRDN_COST) BILL_BRDN_COST,
16312 decode(wbs_hdr.WP_FLAG
16313 || '_' || sup_wbs_hdr.WP_FLAG
16314 || '_' || sub_ver.STATUS_CODE
16315 || '_' || sup_ver.STATUS_CODE,
16316 'Y_Y__', to_number(null),
16317 'Y_Y__STRUCTURE_PUBLISHED', to_number(null),
16318 pjp1.BILL_LABOR_RAW_COST) BILL_LABOR_RAW_COST,
16319 decode(wbs_hdr.WP_FLAG
16320 || '_' || sup_wbs_hdr.WP_FLAG
16321 || '_' || sub_ver.STATUS_CODE
16322 || '_' || sup_ver.STATUS_CODE,
16323 'Y_Y__', to_number(null),
16324 'Y_Y__STRUCTURE_PUBLISHED', to_number(null),
16325 pjp1.BILL_LABOR_BRDN_COST) BILL_LABOR_BRDN_COST,
16326 decode(wbs_hdr.WP_FLAG
16327 || '_' || sup_wbs_hdr.WP_FLAG
16328 || '_' || sub_ver.STATUS_CODE
16329 || '_' || sup_ver.STATUS_CODE,
16330 'Y_Y__', to_number(null),
16331 'Y_Y__STRUCTURE_PUBLISHED', to_number(null),
16332 pjp1.BILL_LABOR_HRS) BILL_LABOR_HRS,
16333 decode(wbs_hdr.WP_FLAG
16334 || '_' || sup_wbs_hdr.WP_FLAG
16335 || '_' || sub_ver.STATUS_CODE
16336 || '_' || sup_ver.STATUS_CODE,
16337 'Y_Y__', to_number(null),
16338 'Y_Y__STRUCTURE_PUBLISHED', to_number(null),
16339 pjp1.EQUIPMENT_RAW_COST) EQUIPMENT_RAW_COST,
16340 decode(wbs_hdr.WP_FLAG
16341 || '_' || sup_wbs_hdr.WP_FLAG
16342 || '_' || sub_ver.STATUS_CODE
16343 || '_' || sup_ver.STATUS_CODE,
16344 'Y_Y__', to_number(null),
16345 'Y_Y__STRUCTURE_PUBLISHED', to_number(null),
16346 pjp1.EQUIPMENT_BRDN_COST) EQUIPMENT_BRDN_COST,
16347 decode(wbs_hdr.WP_FLAG
16348 || '_' || sup_wbs_hdr.WP_FLAG
16349 || '_' || sub_ver.STATUS_CODE
16350 || '_' || sup_ver.STATUS_CODE,
16351 'Y_Y__', to_number(null),
16352 'Y_Y__STRUCTURE_PUBLISHED', to_number(null),
16353 pjp1.CAPITALIZABLE_RAW_COST) CAPITALIZABLE_RAW_COST,
16354 decode(wbs_hdr.WP_FLAG
16355 || '_' || sup_wbs_hdr.WP_FLAG
16356 || '_' || sub_ver.STATUS_CODE
16357 || '_' || sup_ver.STATUS_CODE,
16358 'Y_Y__', to_number(null),
16359 'Y_Y__STRUCTURE_PUBLISHED', to_number(null),
16360 pjp1.CAPITALIZABLE_BRDN_COST) CAPITALIZABLE_BRDN_COST,
16361 decode(wbs_hdr.WP_FLAG
16362 || '_' || sup_wbs_hdr.WP_FLAG
16363 || '_' || sub_ver.STATUS_CODE
16364 || '_' || sup_ver.STATUS_CODE,
16365 'Y_Y__', to_number(null),
16366 'Y_Y__STRUCTURE_PUBLISHED', to_number(null),
16367 pjp1.LABOR_RAW_COST) LABOR_RAW_COST,
16368 decode(wbs_hdr.WP_FLAG
16369 || '_' || sup_wbs_hdr.WP_FLAG
16370 || '_' || sub_ver.STATUS_CODE
16371 || '_' || sup_ver.STATUS_CODE,
16372 'Y_Y__', to_number(null),
16373 'Y_Y__STRUCTURE_PUBLISHED', to_number(null),
16374 pjp1.LABOR_BRDN_COST) LABOR_BRDN_COST,
16375 decode(wbs_hdr.WP_FLAG
16376 || '_' || sup_wbs_hdr.WP_FLAG
16377 || '_' || sub_ver.STATUS_CODE
16378 || '_' || sup_ver.STATUS_CODE,
16379 'Y_Y__', to_number(null),
16380 'Y_Y__STRUCTURE_PUBLISHED', to_number(null),
16381 pjp1.LABOR_HRS) LABOR_HRS,
16382 decode(wbs_hdr.WP_FLAG
16383 || '_' || sup_wbs_hdr.WP_FLAG
16384 || '_' || sub_ver.STATUS_CODE
16385 || '_' || sup_ver.STATUS_CODE,
16386 'Y_Y__', to_number(null),
16387 'Y_Y__STRUCTURE_PUBLISHED', to_number(null),
16388 pjp1.LABOR_REVENUE) LABOR_REVENUE,
16389 decode(wbs_hdr.WP_FLAG
16390 || '_' || sup_wbs_hdr.WP_FLAG
16391 || '_' || sub_ver.STATUS_CODE
16392 || '_' || sup_ver.STATUS_CODE,
16393 'Y_Y__', to_number(null),
16394 'Y_Y__STRUCTURE_PUBLISHED', to_number(null),
16395 pjp1.EQUIPMENT_HOURS) EQUIPMENT_HOURS,
16396 decode(wbs_hdr.WP_FLAG
16397 || '_' || sup_wbs_hdr.WP_FLAG
16398 || '_' || sub_ver.STATUS_CODE
16399 || '_' || sup_ver.STATUS_CODE,
16400 'Y_Y__', to_number(null),
16401 'Y_Y__STRUCTURE_PUBLISHED', to_number(null),
16402 pjp1.BILLABLE_EQUIPMENT_HOURS) BILLABLE_EQUIPMENT_HOURS,
16403 decode(wbs_hdr.WP_FLAG
16404 || '_' || sup_wbs_hdr.WP_FLAG
16405 || '_' || sub_ver.STATUS_CODE
16406 || '_' || sup_ver.STATUS_CODE,
16407 'Y_Y__', to_number(null),
16408 'Y_Y__STRUCTURE_PUBLISHED', to_number(null),
16409 pjp1.SUP_INV_COMMITTED_COST) SUP_INV_COMMITTED_COST,
16410 decode(wbs_hdr.WP_FLAG
16411 || '_' || sup_wbs_hdr.WP_FLAG
16412 || '_' || sub_ver.STATUS_CODE
16413 || '_' || sup_ver.STATUS_CODE,
16414 'Y_Y__', to_number(null),
16415 'Y_Y__STRUCTURE_PUBLISHED', to_number(null),
16416 pjp1.PO_COMMITTED_COST) PO_COMMITTED_COST,
16417 decode(wbs_hdr.WP_FLAG
16418 || '_' || sup_wbs_hdr.WP_FLAG
16419 || '_' || sub_ver.STATUS_CODE
16420 || '_' || sup_ver.STATUS_CODE,
16421 'Y_Y__', to_number(null),
16422 'Y_Y__STRUCTURE_PUBLISHED', to_number(null),
16423 pjp1.PR_COMMITTED_COST) PR_COMMITTED_COST,
16424 decode(wbs_hdr.WP_FLAG
16425 || '_' || sup_wbs_hdr.WP_FLAG
16426 || '_' || sub_ver.STATUS_CODE
16427 || '_' || sup_ver.STATUS_CODE,
16428 'Y_Y__', to_number(null),
16429 'Y_Y__STRUCTURE_PUBLISHED', to_number(null),
16430 pjp1.OTH_COMMITTED_COST) OTH_COMMITTED_COST,
16431 decode(wbs_hdr.WP_FLAG
16432 || '_' || sup_wbs_hdr.WP_FLAG
16433 || '_' || sup_ver.STATUS_CODE,
16434 'Y_Y_', to_number(null),
16435 pjp1.ACT_LABOR_HRS) ACT_LABOR_HRS,
16436 decode(wbs_hdr.WP_FLAG
16437 || '_' || sup_wbs_hdr.WP_FLAG
16438 || '_' || sup_ver.STATUS_CODE,
16439 'Y_Y_', to_number(null),
16440 pjp1.ACT_EQUIP_HRS) ACT_EQUIP_HRS,
16441 decode(wbs_hdr.WP_FLAG
16442 || '_' || sup_wbs_hdr.WP_FLAG
16443 || '_' || sup_ver.STATUS_CODE,
16444 'Y_Y_', to_number(null),
16445 pjp1.ACT_LABOR_BRDN_COST) ACT_LABOR_BRDN_COST,
16446 decode(wbs_hdr.WP_FLAG
16447 || '_' || sup_wbs_hdr.WP_FLAG
16448 || '_' || sup_ver.STATUS_CODE,
16449 'Y_Y_', to_number(null),
16450 pjp1.ACT_EQUIP_BRDN_COST) ACT_EQUIP_BRDN_COST,
16451 decode(wbs_hdr.WP_FLAG
16452 || '_' || sup_wbs_hdr.WP_FLAG
16453 || '_' || sup_ver.STATUS_CODE,
16454 'Y_Y_', to_number(null),
16455 pjp1.ACT_BRDN_COST) ACT_BRDN_COST,
16456 decode(wbs_hdr.WP_FLAG
16457 || '_' || sup_wbs_hdr.WP_FLAG
16458 || '_' || sup_ver.STATUS_CODE,
16459 'Y_Y_', to_number(null),
16460 pjp1.ACT_RAW_COST) ACT_RAW_COST,
16461 decode(wbs_hdr.WP_FLAG
16462 || '_' || sup_wbs_hdr.WP_FLAG
16463 || '_' || sup_ver.STATUS_CODE,
16464 'Y_Y_', to_number(null),
16465 pjp1.ACT_REVENUE) ACT_REVENUE,
16466 decode(wbs_hdr.WP_FLAG
16467 || '_' || sup_wbs_hdr.WP_FLAG
16468 || '_' || sup_ver.STATUS_CODE,
16469 'Y_Y_', to_number(null),
16470 pjp1.ACT_LABOR_RAW_COST) ACT_LABOR_RAW_COST,
16471 decode(wbs_hdr.WP_FLAG
16472 || '_' || sup_wbs_hdr.WP_FLAG
16473 || '_' || sup_ver.STATUS_CODE,
16474 'Y_Y_', to_number(null),
16475 pjp1.ACT_EQUIP_RAW_COST) ACT_EQUIP_RAW_COST,
16476 decode(wbs_hdr.WP_FLAG
16477 || '_' || sup_wbs_hdr.WP_FLAG
16478 || '_' || sup_ver.STATUS_CODE,
16479 'Y_Y_', to_number(null),
16480 pjp1.ETC_LABOR_HRS) ETC_LABOR_HRS,
16481 decode(wbs_hdr.WP_FLAG
16482 || '_' || sup_wbs_hdr.WP_FLAG
16483 || '_' || sup_ver.STATUS_CODE,
16484 'Y_Y_', to_number(null),
16485 pjp1.ETC_EQUIP_HRS) ETC_EQUIP_HRS,
16486 decode(wbs_hdr.WP_FLAG
16487 || '_' || sup_wbs_hdr.WP_FLAG
16488 || '_' || sup_ver.STATUS_CODE,
16489 'Y_Y_', to_number(null),
16490 pjp1.ETC_LABOR_BRDN_COST) ETC_LABOR_BRDN_COST,
16491 decode(wbs_hdr.WP_FLAG
16492 || '_' || sup_wbs_hdr.WP_FLAG
16493 || '_' || sup_ver.STATUS_CODE,
16494 'Y_Y_', to_number(null),
16495 pjp1.ETC_EQUIP_BRDN_COST) ETC_EQUIP_BRDN_COST,
16496 decode(wbs_hdr.WP_FLAG
16497 || '_' || sup_wbs_hdr.WP_FLAG
16498 || '_' || sup_ver.STATUS_CODE,
16499 'Y_Y_', to_number(null),
16500 pjp1.ETC_BRDN_COST) ETC_BRDN_COST,
16501 decode(wbs_hdr.WP_FLAG
16502 || '_' || sup_wbs_hdr.WP_FLAG
16503 || '_' || sup_ver.STATUS_CODE,
16504 'Y_Y_', to_number(null),
16505 pjp1.ETC_RAW_COST) ETC_RAW_COST,
16506 decode(wbs_hdr.WP_FLAG
16507 || '_' || sup_wbs_hdr.WP_FLAG
16508 || '_' || sup_ver.STATUS_CODE,
16509 'Y_Y_', to_number(null),
16510 pjp1.ETC_LABOR_RAW_COST) ETC_LABOR_RAW_COST,
16511 decode(wbs_hdr.WP_FLAG
16512 || '_' || sup_wbs_hdr.WP_FLAG
16513 || '_' || sup_ver.STATUS_CODE,
16514 'Y_Y_', to_number(null),
16515 pjp1.ETC_EQUIP_RAW_COST) ETC_EQUIP_RAW_COST,
16516 pjp1.CUSTOM1,
16517 pjp1.CUSTOM2,
16518 pjp1.CUSTOM3,
16519 pjp1.CUSTOM4,
16520 pjp1.CUSTOM5,
16521 pjp1.CUSTOM6,
16522 pjp1.CUSTOM7,
16523 pjp1.CUSTOM8,
16524 pjp1.CUSTOM9,
16525 pjp1.CUSTOM10,
16526 pjp1.CUSTOM11,
16527 pjp1.CUSTOM12,
16528 pjp1.CUSTOM13,
16529 pjp1.CUSTOM14,
16530 pjp1.CUSTOM15
16531 from
16532 PJI_FP_AGGR_PJP1 pjp1,
16533 PJI_PJP_WBS_HEADER wbs_hdr,
16534 PA_PROJ_ELEMENTS prj_emt,
16535 PA_XBS_DENORM prg,
16536 PJI_XBS_DENORM_DELTA prg_delta,
16537 PJI_PJP_WBS_HEADER sup_wbs_hdr,
16538 PA_PROJ_ELEM_VER_STRUCTURE sub_ver,
16539 PA_PROJ_ELEM_VER_STRUCTURE sup_ver,
16540 (
16541 select 'Y' CB, 'N' CO, -3 PLAN_VERSION_ID
16542 from DUAL union all
16543 select 'N' CB, 'Y' CO, -4 PLAN_VERSION_ID
16544 from DUAL union all
16545 select 'Y' CB, 'Y' CO, -3 PLAN_VERSION_ID
16546 from DUAL union all
16547 select 'Y' CB, 'Y' CO, -4 PLAN_VERSION_ID
16548 from DUAL
16549 ) fin_plan
16550 where
16551 prg.STRUCT_TYPE = 'PRG' and
16552 prg.SUP_LEVEL = l_level and
16553 nvl(prg.SUB_ROLLUP_ID,
16554 prg.SUP_EMT_ID) <> prg.SUP_EMT_ID and
16555 p_worker_id = prg_delta.WORKER_ID (+) and
16556 prg.STRUCT_TYPE = prg_delta.STRUCT_TYPE (+) and
16557 prg.SUP_PROJECT_ID = prg_delta.SUP_PROJECT_ID (+) and
16558 prg.SUP_LEVEL = prg_delta.SUP_LEVEL (+) and
16559 prg.SUP_ID = prg_delta.SUP_ID (+) and
16560 prg.SUB_LEVEL = prg_delta.SUB_LEVEL (+) and
16561 prg.SUB_ID = prg_delta.SUB_ID (+) and
16562 prg.RELATIONSHIP_TYPE = prg_delta.RELATIONSHIP_TYPE (+) and
16563 1 = prg_delta.SIGN (+) and
16564 (prg_delta.SUP_PROJECT_ID is not null or
16565 (prg_delta.SUP_PROJECT_ID is null and
16566 pjp1.RECORD_TYPE = 'P')) and
16567 pjp1.WORKER_ID = p_worker_id and
16568 pjp1.PRG_LEVEL in (0, prg.SUB_LEVEL) and
16569 pjp1.PROJECT_ID = prj_emt.PROJECT_ID and
16570 (((pjp1.RBS_AGGR_LEVEL,
16571 pjp1.WBS_ROLLUP_FLAG,
16572 pjp1.PRG_ROLLUP_FLAG) in (('T', 'Y', 'Y'),
16573 ('T', 'Y', 'N'),
16574 ('T', 'N', 'Y'),
16575 ('T', 'N', 'N'),
16576 ('L', 'N', 'N')) and
16577 pjp1.PROJECT_ELEMENT_ID = prg.SUB_EMT_ID) or
16578 ((pjp1.RBS_AGGR_LEVEL,
16579 pjp1.WBS_ROLLUP_FLAG,
16580 pjp1.PRG_ROLLUP_FLAG) in (('L', 'N', 'Y'),
16581 ('L', 'N', 'N')) and
16582 pjp1.PROJECT_ELEMENT_ID <> prg.SUB_EMT_ID)) and
16583 decode(pjp1.PLAN_VERSION_ID,
16584 -1, 'LF',
16585 -2, 'LF',
16586 -3, 'LF',
16587 -4, 'LF',
16588 decode(wbs_hdr.WP_FLAG,
16589 'N', 'LF',
16590 'LW')) = prg.RELATIONSHIP_TYPE and
16591 prg.STRUCT_VERSION_ID is null and
16592 prj_emt.OBJECT_TYPE = 'PA_STRUCTURES' and
16593 prj_emt.PROJ_ELEMENT_ID = prg.SUB_EMT_ID and
16594 wbs_hdr.PROJECT_ID = prj_emt.PROJECT_ID and
16595 wbs_hdr.WBS_VERSION_ID = prg.SUB_ID and
16596 wbs_hdr.PROJECT_ID = pjp1.PROJECT_ID and
16597 wbs_hdr.PLAN_VERSION_ID = pjp1.PLAN_VERSION_ID and
16598 wbs_hdr.PLAN_TYPE_CODE = pjp1.PLAN_TYPE_CODE and
16599 decode(pjp1.PLAN_VERSION_ID,
16600 -3, pjp1.PLAN_TYPE_ID,
16601 -4, pjp1.PLAN_TYPE_ID,
16602 -1) = decode(pjp1.PLAN_VERSION_ID,
16603 -3, wbs_hdr.PLAN_TYPE_ID,
16604 -4, wbs_hdr.PLAN_TYPE_ID,
16605 -1) and
16606 decode(wbs_hdr.WP_FLAG,
16607 'N', decode(pjp1.PLAN_VERSION_ID,
16608 -1, 'Y',
16609 -2, 'Y',
16610 -3, 'Y',
16611 -4, 'Y',
16612 decode(pjp1.RBS_AGGR_LEVEL
16613 || '_' || wbs_hdr.CB_FLAG
16614 || '_' || wbs_hdr.CO_FLAG,
16615 'L_Y_Y', 'Y',
16616 'L_N_Y', 'Y',
16617 'L_Y_N', 'Y',
16618 'N')),
16619 'Y') = 'Y' and
16620 prg.SUP_PROJECT_ID = sup_wbs_hdr.PROJECT_ID (+) and
16621 prg.SUP_ID = sup_wbs_hdr.WBS_VERSION_ID (+) and
16622 'Y' = sup_wbs_hdr.WP_FLAG (+) and
16623 wbs_hdr.PROJECT_ID = sub_ver.PROJECT_ID (+) and
16624 wbs_hdr.WBS_VERSION_ID = sub_ver.ELEMENT_VERSION_ID (+) and
16625 'STRUCTURE_PUBLISHED' = sub_ver.STATUS_CODE (+) and
16626 sup_wbs_hdr.PROJECT_ID = sup_ver.PROJECT_ID (+) and
16627 sup_wbs_hdr.WBS_VERSION_ID = sup_ver.ELEMENT_VERSION_ID (+) and
16628 'STRUCTURE_PUBLISHED' = sup_ver.STATUS_CODE (+) and
16629 wbs_hdr.CB_FLAG = fin_plan.CB (+) and
16630 wbs_hdr.CO_FLAG = fin_plan.CO (+)
16631 ) pjp,
16632 PJI_PJP_PROJ_BATCH_MAP map,
16633 PA_PROJ_WORKPLAN_ATTR sup_wpa,
16634 PA_PROJ_ELEM_VER_STRUCTURE sup_fin_ver,
16635 PA_XBS_DENORM wbs,
16636 (
16637 select 1 WBS_SUP_LEVEL,
16638 'PRJ' INVERT_ID
16639 from DUAL
16640 union all
16641 select 1 WBS_SUP_LEVEL,
16642 'WBS' INVERT_ID
16643 from DUAL
16644 ) top_slice
16645 where
16646 map.WORKER_ID = p_worker_id and
16647 map.PROJECT_ID = pjp.SUP_PROJECT_ID and
16648 pjp.SUP_EMT_ID = sup_wpa.PROJ_ELEMENT_ID and
16649 pjp.SUP_PROJECT_ID = sup_fin_ver.PROJECT_ID (+) and
16650 pjp.SUP_ID = sup_fin_ver.ELEMENT_VERSION_ID (+) and
16651 'STRUCTURE_WORKING' = sup_fin_ver.STATUS_CODE (+) and
16652 (pjp.SUP_WP_FLAG is null or
16653 (pjp.SUP_WP_FLAG is not null and
16654 (sup_fin_ver.PROJECT_ID is not null or
16655 sup_wpa.WP_ENABLE_VERSION_FLAG = 'N'))) and
16656 'WBS' = wbs.STRUCT_TYPE (+) and
16657 pjp.STRUCT_TYPE = wbs.STRUCT_TYPE (+) and
16658 pjp.SUP_PROJECT_ID = wbs.SUP_PROJECT_ID (+) and
16659 pjp.SUP_ID = wbs.STRUCT_VERSION_ID (+) and
16660 pjp.SUB_ROLLUP_ID = wbs.SUB_EMT_ID (+) and
16661 wbs.SUP_LEVEL = top_slice.WBS_SUP_LEVEL (+)
16662 group by
16663 pjp.LINE_TYPE,
16664 pjp.SUP_PROJECT_ID,
16665 map.PROJECT_ORG_ID,
16666 map.PROJECT_ORGANIZATION_ID,
16667 decode(pjp.STRUCT_TYPE,
16668 'DO_NOT_ROLLUP', pjp.SUB_ROLLUP_ID,
16669 decode(top_slice.INVERT_ID,
16670 'PRJ', pjp.SUP_EMT_ID, wbs.SUP_EMT_ID)
16671 ),
16672 pjp.TIME_ID,
16673 pjp.PERIOD_TYPE_ID,
16674 pjp.CALENDAR_TYPE,
16675 pjp.RBS_AGGR_LEVEL,
16676 decode(pjp.STRUCT_TYPE,
16677 'DO_NOT_ROLLUP', 'N',
16678 decode(top_slice.INVERT_ID,
16679 'PRJ', 'Y', decode(pjp.SUB_ROLLUP_ID,
16680 wbs.SUP_EMT_ID,
16681 'N', 'Y'))
16682 ),
16683 pjp.CURR_RECORD_TYPE_ID,
16684 pjp.CURRENCY_CODE,
16685 pjp.RBS_ELEMENT_ID,
16686 pjp.RBS_VERSION_ID,
16687 pjp.PLAN_VERSION_ID,
16688 pjp.PLAN_TYPE_ID,
16689 pjp.PLAN_TYPE_CODE;*/
16690
16691 update PJI_SYSTEM_PRC_STATUS
16692 set STEP_STATUS = 'C',
16693 END_DATE = sysdate
16694 where PROCESS_NAME = l_process and
16695 STEP_SEQ = l_level_seq;
16696
16697 commit;
16698
16699 select
16700 nvl(to_number(min(STEP_SEQ)), 0)
16701 into
16702 l_level_seq
16703 from
16704 PJI_SYSTEM_PRC_STATUS
16705 where
16706 PROCESS_NAME = l_process and
16707 STEP_NAME like 'ROLLUP_FPR_PRG%' and
16708 STEP_STATUS is null;
16709
16710 if (l_level_seq = 0) then
16711 l_level := 0;
16712 else
16713 l_level := l_max_level - ((l_level_seq - l_step_seq) * 1000) + 1;
16714 end if;
16715
16716 end loop;
16717
16718 PJI_PROCESS_UTIL.REGISTER_STEP_COMPLETION(l_process, 'PJI_PJP_SUM_ROLLUP.ROLLUP_FPR_PRG(p_worker_id);');
16719
16720 commit;
16721
16722 end ROLLUP_FPR_PRG;
16723
16724
16725 -- -----------------------------------------------------
16726 -- procedure ROLLUP_ACR_PRG
16727 --
16728 -- History
16729 -- 19-MAR-2004 SVERMETT Created
16730 --
16731 -- Internal PJP Summarization API.
16732 --
16733 -- -----------------------------------------------------
16734 procedure ROLLUP_ACR_PRG (p_worker_id in number) is
16735
16736 l_process varchar2(30);
16737 l_prg_exists varchar2(25);
16738 l_extraction_type varchar2(30);
16739 l_level number;
16740 l_max_level number;
16741 l_step_seq number;
16742 l_level_seq number;
16743 l_count number;
16744
16745 begin
16746
16747 l_process := PJI_PJP_SUM_MAIN.g_process || to_char(p_worker_id);
16748
16749 if (not PJI_PROCESS_UTIL.NEED_TO_RUN_STEP(l_process, 'PJI_PJP_SUM_ROLLUP.ROLLUP_ACR_PRG(p_worker_id);')) then
16750 return;
16751 end if;
16752
16753 l_prg_exists := PJI_PROCESS_UTIL.GET_PROCESS_PARAMETER
16754 (l_process, 'PROGRAM_EXISTS');
16755
16756 if (l_prg_exists = 'N') then
16757 PJI_PROCESS_UTIL.REGISTER_STEP_COMPLETION(l_process,
16758 'PJI_PJP_SUM_ROLLUP.ROLLUP_ACR_PRG(p_worker_id);');
16759 commit;
16760 return;
16761 end if;
16762
16763 l_extraction_type := PJI_PROCESS_UTIL.GET_PROCESS_PARAMETER(l_process, 'EXTRACTION_TYPE');
16764
16765 -- allow recovery after each level is processed
16766
16767 select
16768 STEP_SEQ
16769 into
16770 l_step_seq
16771 from
16772 PJI_SYSTEM_PRC_STATUS
16773 where
16774 PROCESS_NAME = l_process and
16775 STEP_NAME = 'PJI_PJP_SUM_ROLLUP.ROLLUP_ACR_PRG(p_worker_id);';
16776
16777 select
16778 count(*)
16779 into
16780 l_count
16781 from
16782 PJI_SYSTEM_PRC_STATUS
16783 where
16784 PROCESS_NAME = l_process and
16785 STEP_NAME like 'ROLLUP_ACR_PRG%';
16786
16787 if (l_count = 0) then
16788
16789 select
16790 nvl(max(den.SUP_LEVEL), 0)
16791 into
16792 l_level
16793 from
16794 PJI_XBS_DENORM_DELTA den
16795 where
16796 den.WORKER_ID = p_worker_id and
16797 den.STRUCT_TYPE = 'PRG';
16798
16799 PJI_PROCESS_UTIL.SET_PROCESS_PARAMETER(l_process,
16800 'MAX_PROGRAM_LEVEL',
16801 l_level);
16802
16803 insert into PJI_SYSTEM_PRC_STATUS
16804 (
16805 PROCESS_NAME,
16806 STEP_SEQ,
16807 STEP_STATUS,
16808 STEP_NAME,
16809 START_DATE,
16810 END_DATE
16811 )
16812 select
16813 l_process PROCESS_NAME,
16814 to_char(l_step_seq + SUP_LEVEL / 1000) STEP_SEQ,
16815 null STEP_STATUS,
16816 'ROLLUP_ACR_PRG - level ' ||
16817 to_char(l_level - SUP_LEVEL + 1) STEP_NAME,
16818 null START_DATE,
16819 null END_DATE
16820 from
16821 (
16822 select
16823 SUP_LEVEL
16824 from
16825 PJI_XBS_DENORM_DELTA
16826 where
16827 worker_id = p_worker_id and
16828 STRUCT_TYPE = 'PRG'
16829 union all
16830 select
16831 SUP_LEVEL
16832 from
16833 PA_XBS_DENORM den,
16834 PJI_PJP_PROJ_BATCH_MAP map
16835 where
16836 map.WORKER_ID = p_worker_id and
16837 den.STRUCT_TYPE = 'PRG' and
16838 den.SUP_PROJECT_ID = map.PROJECT_ID
16839 )
16840 where
16841 exists
16842 (
16843 select
16844 1
16845 from
16846 PJI_XBS_DENORM_DELTA
16847 where
16848 WORKER_ID = p_worker_id and
16849 ROWNUM = 1
16850 )
16851 group by
16852 SUP_LEVEL
16853 order by
16854 SUP_LEVEL desc;
16855
16856 end if;
16857
16858 l_max_level := PJI_PROCESS_UTIL.GET_PROCESS_PARAMETER
16859 (l_process, 'MAX_PROGRAM_LEVEL');
16860
16861 select
16862 nvl(to_number(min(STEP_SEQ)), 0)
16863 into
16864 l_level_seq
16865 from
16866 PJI_SYSTEM_PRC_STATUS
16867 where
16868 PROCESS_NAME = l_process and
16869 STEP_NAME like 'ROLLUP_ACR_PRG%' and
16870 STEP_STATUS is null;
16871
16872 if (l_level_seq = 0) then
16873 l_level := 0;
16874 else
16875 l_level := l_max_level - ((l_level_seq - l_step_seq) * 1000) + 1;
16876 end if;
16877
16878 while (l_level > 0) loop
16879
16880 update PJI_SYSTEM_PRC_STATUS
16881 set START_DATE = sysdate
16882 where PROCESS_NAME = l_process and
16883 STEP_SEQ = l_level_seq;
16884
16885 -- rollup project hiearchy
16886 /* Call to Paritioned procedure for bug 7551819 */
16887 PJI_PROCESS_UTIL.EXECUTE_ROLLUP_ACR_PRG(p_worker_id,
16888 l_level);
16889
16890 /* Commented for bug 7551819 */
16891 -- insert /*+ parallel(pjp1_in)
16892 -- noappend(pjp1_in) */ into PJI_AC_AGGR_PJP1 pjp1_in -- changed for bug 5927368
16893 /* (
16894 WORKER_ID,
16895 RECORD_TYPE,
16896 PRG_LEVEL,
16897 PROJECT_ID,
16898 PROJECT_ORG_ID,
16899 PROJECT_ORGANIZATION_ID,
16900 PROJECT_ELEMENT_ID,
16901 TIME_ID,
16902 PERIOD_TYPE_ID,
16903 CALENDAR_TYPE,
16904 WBS_ROLLUP_FLAG,
16905 PRG_ROLLUP_FLAG,
16906 CURR_RECORD_TYPE_ID,
16907 CURRENCY_CODE,
16908 REVENUE,
16909 INITIAL_FUNDING_AMOUNT,
16910 INITIAL_FUNDING_COUNT,
16911 ADDITIONAL_FUNDING_AMOUNT,
16912 ADDITIONAL_FUNDING_COUNT,
16913 CANCELLED_FUNDING_AMOUNT,
16914 CANCELLED_FUNDING_COUNT,
16915 FUNDING_ADJUSTMENT_AMOUNT,
16916 FUNDING_ADJUSTMENT_COUNT,
16917 REVENUE_WRITEOFF,
16918 AR_INVOICE_AMOUNT,
16919 AR_INVOICE_COUNT,
16920 AR_CASH_APPLIED_AMOUNT,
16921 AR_INVOICE_WRITE_OFF_AMOUNT,
16922 AR_INVOICE_WRITEOFF_COUNT,
16923 AR_CREDIT_MEMO_AMOUNT,
16924 AR_CREDIT_MEMO_COUNT,
16925 UNBILLED_RECEIVABLES,
16926 UNEARNED_REVENUE,
16927 AR_UNAPPR_INVOICE_AMOUNT,
16928 AR_UNAPPR_INVOICE_COUNT,
16929 AR_APPR_INVOICE_AMOUNT,
16930 AR_APPR_INVOICE_COUNT,
16931 AR_AMOUNT_DUE,
16932 AR_COUNT_DUE,
16933 AR_AMOUNT_OVERDUE,
16934 AR_COUNT_OVERDUE,
16935 CUSTOM1,
16936 CUSTOM2,
16937 CUSTOM3,
16938 CUSTOM4,
16939 CUSTOM5,
16940 CUSTOM6,
16941 CUSTOM7,
16942 CUSTOM8,
16943 CUSTOM9,
16944 CUSTOM10,
16945 CUSTOM11,
16946 CUSTOM12,
16947 CUSTOM13,
16948 CUSTOM14,
16949 CUSTOM15
16950 )
16951 select /*+ no_merge(pjp) */
16952 /*p_worker_id WORKER_ID,
16953 'P' RECORD_TYPE,
16954 l_level PRG_LEVEL,
16955 pjp.SUP_PROJECT_ID PROJECT_ID,
16956 map.PROJECT_ORG_ID,
16957 map.PROJECT_ORGANIZATION_ID,
16958 decode(top_slice.INVERT_ID,
16959 'PRJ', pjp.SUP_EMT_ID,
16960 wbs.SUP_EMT_ID) PROJECT_ELEMENT_ID,
16961 pjp.TIME_ID,
16962 pjp.PERIOD_TYPE_ID,
16963 pjp.CALENDAR_TYPE,
16964 decode(top_slice.INVERT_ID,
16965 'PRJ', 'Y', decode(pjp.SUB_ROLLUP_ID,
16966 wbs.SUP_EMT_ID,
16967 'N', 'Y')) WBS_ROLLUP_FLAG,
16968 'Y' PRG_ROLLUP_FLAG,
16969 pjp.CURR_RECORD_TYPE_ID,
16970 pjp.CURRENCY_CODE,
16971 sum(pjp.REVENUE) REVENUE,
16972 sum(pjp.INITIAL_FUNDING_AMOUNT) INITIAL_FUNDING_AMOUNT,
16973 sum(pjp.INITIAL_FUNDING_COUNT) INITIAL_FUNDING_COUNT,
16974 sum(pjp.ADDITIONAL_FUNDING_AMOUNT) ADDITIONAL_FUNDING_AMOUNT,
16975 sum(pjp.ADDITIONAL_FUNDING_COUNT) ADDITIONAL_FUNDING_COUNT,
16976 sum(pjp.CANCELLED_FUNDING_AMOUNT) CANCELLED_FUNDING_AMOUNT,
16977 sum(pjp.CANCELLED_FUNDING_COUNT) CANCELLED_FUNDING_COUNT,
16978 sum(pjp.FUNDING_ADJUSTMENT_AMOUNT) FUNDING_ADJUSTMENT_AMOUNT,
16979 sum(pjp.FUNDING_ADJUSTMENT_COUNT) FUNDING_ADJUSTMENT_COUNT,
16980 sum(pjp.REVENUE_WRITEOFF) REVENUE_WRITEOFF,
16981 sum(pjp.AR_INVOICE_AMOUNT) AR_INVOICE_AMOUNT,
16982 sum(pjp.AR_INVOICE_COUNT) AR_INVOICE_COUNT,
16983 sum(pjp.AR_CASH_APPLIED_AMOUNT) AR_CASH_APPLIED_AMOUNT,
16984 sum(pjp.AR_INVOICE_WRITE_OFF_AMOUNT) AR_INVOICE_WRITE_OFF_AMOUNT,
16985 sum(pjp.AR_INVOICE_WRITEOFF_COUNT) AR_INVOICE_WRITEOFF_COUNT,
16986 sum(pjp.AR_CREDIT_MEMO_AMOUNT) AR_CREDIT_MEMO_AMOUNT,
16987 sum(pjp.AR_CREDIT_MEMO_COUNT) AR_CREDIT_MEMO_COUNT,
16988 sum(pjp.UNBILLED_RECEIVABLES) UNBILLED_RECEIVABLES,
16989 sum(pjp.UNEARNED_REVENUE) UNEARNED_REVENUE,
16990 sum(pjp.AR_UNAPPR_INVOICE_AMOUNT) AR_UNAPPR_INVOICE_AMOUNT,
16991 sum(pjp.AR_UNAPPR_INVOICE_COUNT) AR_UNAPPR_INVOICE_COUNT,
16992 sum(pjp.AR_APPR_INVOICE_AMOUNT) AR_APPR_INVOICE_AMOUNT,
16993 sum(pjp.AR_APPR_INVOICE_COUNT) AR_APPR_INVOICE_COUNT,
16994 sum(pjp.AR_AMOUNT_DUE) AR_AMOUNT_DUE,
16995 sum(pjp.AR_COUNT_DUE) AR_COUNT_DUE,
16996 sum(pjp.AR_AMOUNT_OVERDUE) AR_AMOUNT_OVERDUE,
16997 sum(pjp.AR_COUNT_OVERDUE) AR_COUNT_OVERDUE,
16998 sum(pjp.CUSTOM1) CUSTOM1,
16999 sum(pjp.CUSTOM2) CUSTOM2,
17000 sum(pjp.CUSTOM3) CUSTOM3,
17001 sum(pjp.CUSTOM4) CUSTOM4,
17002 sum(pjp.CUSTOM5) CUSTOM5,
17003 sum(pjp.CUSTOM6) CUSTOM6,
17004 sum(pjp.CUSTOM7) CUSTOM7,
17005 sum(pjp.CUSTOM8) CUSTOM8,
17006 sum(pjp.CUSTOM9) CUSTOM9,
17007 sum(pjp.CUSTOM10) CUSTOM10,
17008 sum(pjp.CUSTOM11) CUSTOM11,
17009 sum(pjp.CUSTOM12) CUSTOM12,
17010 sum(pjp.CUSTOM13) CUSTOM13,
17011 sum(pjp.CUSTOM14) CUSTOM14,
17012 sum(pjp.CUSTOM15) CUSTOM15
17013 from
17014 (
17015 select /*+ ordered index(acr PJI_AC_XBS_ACCUM_F_N1) */
17016 -- get structure level amounts from Reporting Lines
17017 /*prg.SUP_PROJECT_ID,
17018 prg.SUP_ID,
17019 prg.SUP_EMT_ID,
17020 prg.SUB_EMT_ID,
17021 prg.SUB_ROLLUP_ID,
17022 'ACR' LINE_SOURCE,
17023 prg.SUB_ID,
17024 acr.TIME_ID,
17025 acr.PERIOD_TYPE_ID,
17026 acr.CALENDAR_TYPE,
17027 acr.CURR_RECORD_TYPE_ID,
17028 acr.CURRENCY_CODE,
17029 prg.SIGN * acr.REVENUE REVENUE,
17030 prg.SIGN * acr.INITIAL_FUNDING_AMOUNT INITIAL_FUNDING_AMOUNT,
17031 prg.SIGN * acr.INITIAL_FUNDING_COUNT INITIAL_FUNDING_COUNT,
17032 prg.SIGN * acr.ADDITIONAL_FUNDING_AMOUNT ADDITIONAL_FUNDING_AMOUNT,
17033 prg.SIGN * acr.ADDITIONAL_FUNDING_COUNT ADDITIONAL_FUNDING_COUNT,
17034 prg.SIGN * acr.CANCELLED_FUNDING_AMOUNT CANCELLED_FUNDING_AMOUNT,
17035 prg.SIGN * acr.CANCELLED_FUNDING_COUNT CANCELLED_FUNDING_COUNT,
17036 prg.SIGN * acr.FUNDING_ADJUSTMENT_AMOUNT FUNDING_ADJUSTMENT_AMOUNT,
17037 prg.SIGN * acr.FUNDING_ADJUSTMENT_COUNT FUNDING_ADJUSTMENT_COUNT,
17038 prg.SIGN * acr.REVENUE_WRITEOFF REVENUE_WRITEOFF,
17039 prg.SIGN * acr.AR_INVOICE_AMOUNT AR_INVOICE_AMOUNT,
17040 prg.SIGN * acr.AR_INVOICE_COUNT AR_INVOICE_COUNT,
17041 prg.SIGN * acr.AR_CASH_APPLIED_AMOUNT AR_CASH_APPLIED_AMOUNT,
17042 prg.SIGN *
17043 acr.AR_INVOICE_WRITE_OFF_AMOUNT AR_INVOICE_WRITE_OFF_AMOUNT,
17044 prg.SIGN * acr.AR_INVOICE_WRITEOFF_COUNT AR_INVOICE_WRITEOFF_COUNT,
17045 prg.SIGN * acr.AR_CREDIT_MEMO_AMOUNT AR_CREDIT_MEMO_AMOUNT,
17046 prg.SIGN * acr.AR_CREDIT_MEMO_COUNT AR_CREDIT_MEMO_COUNT,
17047 prg.SIGN * acr.UNBILLED_RECEIVABLES UNBILLED_RECEIVABLES,
17048 prg.SIGN * acr.UNEARNED_REVENUE UNEARNED_REVENUE,
17049 prg.SIGN * acr.AR_UNAPPR_INVOICE_AMOUNT AR_UNAPPR_INVOICE_AMOUNT,
17050 prg.SIGN * acr.AR_UNAPPR_INVOICE_COUNT AR_UNAPPR_INVOICE_COUNT,
17051 prg.SIGN * acr.AR_APPR_INVOICE_AMOUNT AR_APPR_INVOICE_AMOUNT,
17052 prg.SIGN * acr.AR_APPR_INVOICE_COUNT AR_APPR_INVOICE_COUNT,
17053 prg.SIGN * acr.AR_AMOUNT_DUE AR_AMOUNT_DUE,
17054 prg.SIGN * acr.AR_COUNT_DUE AR_COUNT_DUE,
17055 prg.SIGN * acr.AR_AMOUNT_OVERDUE AR_AMOUNT_OVERDUE,
17056 prg.SIGN * acr.AR_COUNT_OVERDUE AR_COUNT_OVERDUE,
17057 prg.SIGN * acr.CUSTOM1 CUSTOM1,
17058 prg.SIGN * acr.CUSTOM2 CUSTOM2,
17059 prg.SIGN * acr.CUSTOM3 CUSTOM3,
17060 prg.SIGN * acr.CUSTOM4 CUSTOM4,
17061 prg.SIGN * acr.CUSTOM5 CUSTOM5,
17062 prg.SIGN * acr.CUSTOM6 CUSTOM6,
17063 prg.SIGN * acr.CUSTOM7 CUSTOM7,
17064 prg.SIGN * acr.CUSTOM8 CUSTOM8,
17065 prg.SIGN * acr.CUSTOM9 CUSTOM9,
17066 prg.SIGN * acr.CUSTOM10 CUSTOM10,
17067 prg.SIGN * acr.CUSTOM11 CUSTOM11,
17068 prg.SIGN * acr.CUSTOM12 CUSTOM12,
17069 prg.SIGN * acr.CUSTOM13 CUSTOM13,
17070 prg.SIGN * acr.CUSTOM14 CUSTOM14,
17071 prg.SIGN * acr.CUSTOM15 CUSTOM15
17072 from
17073 PJI_XBS_DENORM_DELTA prg,
17074 PA_PROJ_ELEMENTS prj_emt,
17075 PJI_PJP_WBS_HEADER wbs_hdr,
17076 PJI_AC_XBS_ACCUM_F acr
17077 where
17078 prg.WORKER_ID = p_worker_id and
17079 prg.STRUCT_TYPE = 'PRG' and
17080 prg.RELATIONSHIP_TYPE = 'LF' and
17081 prg.SUP_LEVEL = l_level and
17082 nvl(prg.SUB_ROLLUP_ID,
17083 prg.SUP_EMT_ID) <> prg.SUP_EMT_ID and
17084 acr.WBS_ROLLUP_FLAG in ('Y', 'N') and
17085 acr.PRG_ROLLUP_FLAG in ('Y', 'N') and
17086 acr.PROJECT_ID = prj_emt.PROJECT_ID and
17087 acr.PROJECT_ELEMENT_ID = prg.SUB_EMT_ID and
17088 prj_emt.PROJ_ELEMENT_ID = prg.SUB_EMT_ID and
17089 wbs_hdr.PROJECT_ID = prj_emt.PROJECT_ID and
17090 wbs_hdr.PLAN_VERSION_ID = -1
17091 union all
17092 select /*+ ordered */
17093 -- get program rollup amounts
17094 /*prg.SUP_PROJECT_ID,
17095 prg.SUP_ID,
17096 prg.SUP_EMT_ID,
17097 prg.SUB_EMT_ID,
17098 prg.SUB_ROLLUP_ID,
17099 'PJP1' LINE_SOURCE,
17100 prg.SUB_ID,
17101 pjp1.TIME_ID,
17102 pjp1.PERIOD_TYPE_ID,
17103 pjp1.CALENDAR_TYPE,
17104 pjp1.CURR_RECORD_TYPE_ID,
17105 pjp1.CURRENCY_CODE,
17106 pjp1.REVENUE,
17107 pjp1.INITIAL_FUNDING_AMOUNT,
17108 pjp1.INITIAL_FUNDING_COUNT,
17109 pjp1.ADDITIONAL_FUNDING_AMOUNT,
17110 pjp1.ADDITIONAL_FUNDING_COUNT,
17111 pjp1.CANCELLED_FUNDING_AMOUNT,
17112 pjp1.CANCELLED_FUNDING_COUNT,
17113 pjp1.FUNDING_ADJUSTMENT_AMOUNT,
17114 pjp1.FUNDING_ADJUSTMENT_COUNT,
17115 pjp1.REVENUE_WRITEOFF,
17116 pjp1.AR_INVOICE_AMOUNT,
17117 pjp1.AR_INVOICE_COUNT,
17118 pjp1.AR_CASH_APPLIED_AMOUNT,
17119 pjp1.AR_INVOICE_WRITE_OFF_AMOUNT,
17120 pjp1.AR_INVOICE_WRITEOFF_COUNT,
17121 pjp1.AR_CREDIT_MEMO_AMOUNT,
17122 pjp1.AR_CREDIT_MEMO_COUNT,
17123 pjp1.UNBILLED_RECEIVABLES,
17124 pjp1.UNEARNED_REVENUE,
17125 pjp1.AR_UNAPPR_INVOICE_AMOUNT,
17126 pjp1.AR_UNAPPR_INVOICE_COUNT,
17127 pjp1.AR_APPR_INVOICE_AMOUNT,
17128 pjp1.AR_APPR_INVOICE_COUNT,
17129 pjp1.AR_AMOUNT_DUE,
17130 pjp1.AR_COUNT_DUE,
17131 pjp1.AR_AMOUNT_OVERDUE,
17132 pjp1.AR_COUNT_OVERDUE,
17133 pjp1.CUSTOM1,
17134 pjp1.CUSTOM2,
17135 pjp1.CUSTOM3,
17136 pjp1.CUSTOM4,
17137 pjp1.CUSTOM5,
17138 pjp1.CUSTOM6,
17139 pjp1.CUSTOM7,
17140 pjp1.CUSTOM8,
17141 pjp1.CUSTOM9,
17142 pjp1.CUSTOM10,
17143 pjp1.CUSTOM11,
17144 pjp1.CUSTOM12,
17145 pjp1.CUSTOM13,
17146 pjp1.CUSTOM14,
17147 pjp1.CUSTOM15
17148 from
17149 PJI_AC_AGGR_PJP1 pjp1,
17150 PJI_PJP_WBS_HEADER wbs_hdr,
17151 PA_PROJ_ELEMENTS prj_emt,
17152 PA_XBS_DENORM prg,
17153 PJI_XBS_DENORM_DELTA prg_delta
17154 where
17155 prg.STRUCT_TYPE = 'PRG' and
17156 prg.SUP_LEVEL = l_level and
17157 nvl(prg.SUB_ROLLUP_ID,
17158 prg.SUP_EMT_ID) <> prg.SUP_EMT_ID and
17159 prg.RELATIONSHIP_TYPE = 'LF' and
17160 p_worker_id = prg_delta.WORKER_ID (+) and
17161 prg.STRUCT_TYPE = prg_delta.STRUCT_TYPE (+) and
17162 prg.SUP_PROJECT_ID = prg_delta.SUP_PROJECT_ID (+) and
17163 prg.SUP_LEVEL = prg_delta.SUP_LEVEL (+) and
17164 prg.SUP_ID = prg_delta.SUP_ID (+) and
17165 prg.SUB_LEVEL = prg_delta.SUB_LEVEL (+) and
17166 prg.SUB_ID = prg_delta.SUB_ID (+) and
17167 prg.RELATIONSHIP_TYPE = prg_delta.RELATIONSHIP_TYPE (+) and
17168 1 = prg_delta.SIGN (+) and
17169 (prg_delta.SUP_PROJECT_ID is not null or
17170 (prg_delta.SUP_PROJECT_ID is null and
17171 pjp1.RECORD_TYPE = 'P')) and
17172 pjp1.WORKER_ID = p_worker_id and
17173 pjp1.PRG_LEVEL in (0, prg.SUB_LEVEL) and
17174 pjp1.WBS_ROLLUP_FLAG in ('Y', 'N') and
17175 pjp1.PRG_ROLLUP_FLAG in ('Y', 'N') and
17176 pjp1.PROJECT_ID = prj_emt.PROJECT_ID and
17177 pjp1.PROJECT_ELEMENT_ID = prg.SUB_EMT_ID and
17178 prg.STRUCT_VERSION_ID is null and
17179 prj_emt.OBJECT_TYPE = 'PA_STRUCTURES' and
17180 prj_emt.PROJ_ELEMENT_ID = prg.SUB_EMT_ID and
17181 wbs_hdr.PROJECT_ID = prj_emt.PROJECT_ID and
17182 wbs_hdr.WBS_VERSION_ID = prg.SUB_ID and
17183 wbs_hdr.PROJECT_ID = pjp1.PROJECT_ID and
17184 wbs_hdr.PLAN_VERSION_ID = -1
17185 ) pjp,
17186 PJI_PJP_PROJ_BATCH_MAP map,
17187 PA_PROJ_WORKPLAN_ATTR sup_wpa,
17188 PA_PROJ_ELEM_VER_STRUCTURE sup_fin_ver,
17189 PA_XBS_DENORM wbs,
17190 (
17191 select 1 WBS_SUP_LEVEL,
17192 'PRJ' INVERT_ID
17193 from DUAL
17194 union all
17195 select 1 WBS_SUP_LEVEL,
17196 'WBS' INVERT_ID
17197 from DUAL
17198 ) top_slice
17199 where
17200 map.WORKER_ID = p_worker_id and
17201 map.PROJECT_ID = pjp.SUP_PROJECT_ID and
17202 pjp.SUP_EMT_ID = sup_wpa.PROJ_ELEMENT_ID and
17203 pjp.SUP_PROJECT_ID = sup_fin_ver.PROJECT_ID (+) and
17204 pjp.SUP_ID = sup_fin_ver.ELEMENT_VERSION_ID (+) and
17205 'STRUCTURE_WORKING' = sup_fin_ver.STATUS_CODE (+) and
17206 (sup_fin_ver.PROJECT_ID is not null or
17207 sup_wpa.WP_ENABLE_VERSION_FLAG = 'N') and
17208 wbs.STRUCT_TYPE = 'WBS' and
17209 wbs.SUP_PROJECT_ID = map.PROJECT_ID and
17210 wbs.SUP_PROJECT_ID = pjp.SUP_PROJECT_ID and
17211 wbs.STRUCT_VERSION_ID = pjp.SUP_ID and
17212 wbs.SUB_EMT_ID = pjp.SUB_ROLLUP_ID and
17213 wbs.SUP_LEVEL = top_slice.WBS_SUP_LEVEL (+)
17214 group by
17215 pjp.SUP_PROJECT_ID,
17216 map.PROJECT_ORG_ID,
17217 map.PROJECT_ORGANIZATION_ID,
17218 decode(top_slice.INVERT_ID,
17219 'PRJ', pjp.SUP_EMT_ID,
17220 wbs.SUP_EMT_ID),
17221 pjp.TIME_ID,
17222 pjp.PERIOD_TYPE_ID,
17223 pjp.CALENDAR_TYPE,
17224 decode(top_slice.INVERT_ID,
17225 'PRJ', 'Y', decode(pjp.SUB_ROLLUP_ID,
17226 wbs.SUP_EMT_ID,
17227 'N', 'Y')),
17228 pjp.CURR_RECORD_TYPE_ID,
17229 pjp.CURRENCY_CODE;*/
17230
17231 update PJI_SYSTEM_PRC_STATUS
17232 set STEP_STATUS = 'C',
17233 END_DATE = sysdate
17234 where PROCESS_NAME = l_process and
17235 STEP_SEQ = l_level_seq;
17236
17237 commit;
17238
17239 select
17240 nvl(to_number(min(STEP_SEQ)), 0)
17241 into
17242 l_level_seq
17243 from
17244 PJI_SYSTEM_PRC_STATUS
17245 where
17246 PROCESS_NAME = l_process and
17247 STEP_NAME like 'ROLLUP_ACR_PRG%' and
17248 STEP_STATUS is null;
17249
17250 if (l_level_seq = 0) then
17251 l_level := 0;
17252 else
17253 l_level := l_max_level - ((l_level_seq - l_step_seq) * 1000) + 1;
17254 end if;
17255
17256 end loop;
17257
17258 PJI_PROCESS_UTIL.REGISTER_STEP_COMPLETION(l_process, 'PJI_PJP_SUM_ROLLUP.ROLLUP_ACR_PRG(p_worker_id);');
17259
17260 commit;
17261
17262 end ROLLUP_ACR_PRG;
17263
17264
17265 -- -----------------------------------------------------
17266 -- procedure ROLLUP_FPR_CAL_NONTP
17267 --
17268 -- History
17269 -- 19-MAR-2004 SVERMETT Created
17270 --
17271 -- Internal PJP Summarization API.
17272 --
17273 -- Called by RBS program
17274 --
17275 -- -----------------------------------------------------
17276 procedure ROLLUP_FPR_CAL_NONTP (p_worker_id in number) is
17277
17278 l_process varchar2(30);
17279 l_extraction_type varchar2(30);
17280
17281 l_return_status varchar2(255);
17282 l_msg_count number;
17283 l_msg_data varchar2(2000);
17284
17285 begin
17286
17287 l_process := PJI_PJP_SUM_MAIN.g_process || to_char(p_worker_id);
17288
17289 if (not PJI_PROCESS_UTIL.NEED_TO_RUN_STEP(l_process, 'PJI_PJP_SUM_ROLLUP.ROLLUP_FPR_CAL_NONTP(p_worker_id);')) then
17290 return;
17291 end if;
17292
17293 l_extraction_type := PJI_PROCESS_UTIL.GET_PROCESS_PARAMETER(l_process, 'EXTRACTION_TYPE');
17294
17295 PJI_FM_PLAN_CAL_RLPS.CREATE_FP_NONTP_ROLLUP;
17296
17297 PJI_PROCESS_UTIL.REGISTER_STEP_COMPLETION(l_process, 'PJI_PJP_SUM_ROLLUP.ROLLUP_FPR_CAL_NONTP(p_worker_id);');
17298
17299 commit;
17300
17301 end ROLLUP_FPR_CAL_NONTP;
17302
17303
17304 -- -----------------------------------------------------
17305 -- procedure ROLLUP_FPR_CAL_PA
17306 --
17307 -- History
17308 -- 19-MAR-2004 SVERMETT Created
17309 --
17310 -- Internal PJP Summarization API.
17311 --
17312 -- Called by RBS program
17313 --
17314 -- -----------------------------------------------------
17315 procedure ROLLUP_FPR_CAL_PA (p_worker_id in number) is
17316
17317 l_process varchar2(30);
17318 l_extraction_type varchar2(30);
17319
17320 l_return_status varchar2(255);
17321 l_msg_count number;
17322 l_msg_data varchar2(2000);
17323
17324 begin
17325
17326 l_process := PJI_PJP_SUM_MAIN.g_process || to_char(p_worker_id);
17327
17328 if (not PJI_PROCESS_UTIL.NEED_TO_RUN_STEP(l_process, 'PJI_PJP_SUM_ROLLUP.ROLLUP_FPR_CAL_PA(p_worker_id);')) then
17329 return;
17330 end if;
17331
17332 l_extraction_type := PJI_PROCESS_UTIL.GET_PROCESS_PARAMETER(l_process, 'EXTRACTION_TYPE');
17333
17334 PJI_FM_PLAN_CAL_RLPS.CREATE_FP_PA_ROLLUP;
17335
17336 PJI_PROCESS_UTIL.REGISTER_STEP_COMPLETION(l_process, 'PJI_PJP_SUM_ROLLUP.ROLLUP_FPR_CAL_PA(p_worker_id);');
17337
17338 commit;
17339
17340 end ROLLUP_FPR_CAL_PA;
17341
17342
17343 -- -----------------------------------------------------
17344 -- procedure ROLLUP_FPR_CAL_GL
17345 --
17346 -- History
17347 -- 19-MAR-2004 SVERMETT Created
17348 --
17349 -- Internal PJP Summarization API.
17350 --
17351 -- Called by RBS program
17352 --
17353 -- -----------------------------------------------------
17354 procedure ROLLUP_FPR_CAL_GL (p_worker_id in number) is
17355
17356 l_process varchar2(30);
17357 l_extraction_type varchar2(30);
17358
17359 l_return_status varchar2(255);
17360 l_msg_count number;
17361 l_msg_data varchar2(2000);
17362
17363 begin
17364
17365 l_process := PJI_PJP_SUM_MAIN.g_process || to_char(p_worker_id);
17366
17367 if (not PJI_PROCESS_UTIL.NEED_TO_RUN_STEP(l_process, 'PJI_PJP_SUM_ROLLUP.ROLLUP_FPR_CAL_GL(p_worker_id);')) then
17368 return;
17369 end if;
17370
17371 l_extraction_type := PJI_PROCESS_UTIL.GET_PROCESS_PARAMETER(l_process, 'EXTRACTION_TYPE');
17372
17373 PJI_FM_PLAN_CAL_RLPS.CREATE_FP_GL_ROLLUP;
17374
17375 PJI_PROCESS_UTIL.REGISTER_STEP_COMPLETION(l_process, 'PJI_PJP_SUM_ROLLUP.ROLLUP_FPR_CAL_GL(p_worker_id);');
17376
17377 commit;
17378
17379 end ROLLUP_FPR_CAL_GL;
17380
17381
17382 -- -----------------------------------------------------
17383 -- procedure ROLLUP_FPR_CAL_EN
17384 --
17385 -- History
17386 -- 19-MAR-2004 SVERMETT Created
17387 --
17388 -- Internal PJP Summarization API.
17389 --
17390 -- Called by RBS program
17391 --
17392 -- -----------------------------------------------------
17393 procedure ROLLUP_FPR_CAL_EN (p_worker_id in number) is
17394
17395 l_process varchar2(30);
17396 l_extraction_type varchar2(30);
17397
17398 l_return_status varchar2(255);
17399 l_msg_count number;
17400 l_msg_data varchar2(2000);
17401
17402 begin
17403
17404 l_process := PJI_PJP_SUM_MAIN.g_process || to_char(p_worker_id);
17405
17406 if (not PJI_PROCESS_UTIL.NEED_TO_RUN_STEP(l_process, 'PJI_PJP_SUM_ROLLUP.ROLLUP_FPR_CAL_EN(p_worker_id);')) then
17407 return;
17408 end if;
17409
17410 l_extraction_type := PJI_PROCESS_UTIL.GET_PROCESS_PARAMETER(l_process, 'EXTRACTION_TYPE');
17411
17412 PJI_FM_PLAN_CAL_RLPS.CREATE_FP_ENT_ROLLUP;
17413
17414 PJI_PROCESS_UTIL.REGISTER_STEP_COMPLETION(l_process, 'PJI_PJP_SUM_ROLLUP.ROLLUP_FPR_CAL_EN(p_worker_id);');
17415
17416 commit;
17417
17418 end ROLLUP_FPR_CAL_EN;
17419
17420
17421 -- -----------------------------------------------------
17422 -- procedure ROLLUP_FPR_CAL_ALL
17423 --
17424 -- History
17425 -- 19-MAR-2004 SVERMETT Created
17426 --
17427 -- Internal PJP Summarization API.
17428 --
17429 -- Called by RBS program
17430 --
17431 -- -----------------------------------------------------
17432 procedure ROLLUP_FPR_CAL_ALL (p_worker_id in number) is
17433
17434 l_process varchar2(30);
17435 l_extraction_type varchar2(30);
17436
17437 l_return_status varchar2(255);
17438 l_msg_count number;
17439 l_msg_data varchar2(2000);
17440
17441 begin
17442
17443 l_process := PJI_PJP_SUM_MAIN.g_process || to_char(p_worker_id);
17444
17445 if (not PJI_PROCESS_UTIL.NEED_TO_RUN_STEP(l_process, 'PJI_PJP_SUM_ROLLUP.ROLLUP_FPR_CAL_ALL(p_worker_id);')) then
17446 return;
17447 end if;
17448
17449 l_extraction_type := PJI_PROCESS_UTIL.GET_PROCESS_PARAMETER(l_process, 'EXTRACTION_TYPE');
17450
17451 -- Changes done for bug 6381284
17452 --PJI_FM_PLAN_CAL_RLPS.CREATE_FP_ALL_T_PRI_ROLLUP('G');
17453 PJI_FM_PLAN_CAL_RLPS.CREATE_FP_ALL_T_PRI_ROLLUP('C');
17454
17455 PJI_PROCESS_UTIL.REGISTER_STEP_COMPLETION(l_process, 'PJI_PJP_SUM_ROLLUP.ROLLUP_FPR_CAL_ALL(p_worker_id);');
17456
17457 commit;
17458
17459 end ROLLUP_FPR_CAL_ALL;
17460
17461
17462 -- -----------------------------------------------------
17463 -- procedure ROLLUP_ACR_CAL_PA
17464 --
17465 -- History
17466 -- 19-MAR-2004 SVERMETT Created
17467 --
17468 -- Internal PJP Summarization API.
17469 --
17470 -- -----------------------------------------------------
17471 procedure ROLLUP_ACR_CAL_PA (p_worker_id in number) is
17472
17473 l_process varchar2(30);
17474 l_extraction_type varchar2(30);
17475
17476 l_return_status varchar2(255);
17477 l_msg_count number;
17478 l_msg_data varchar2(2000);
17479
17480 begin
17481
17482 l_process := PJI_PJP_SUM_MAIN.g_process || to_char(p_worker_id);
17483
17484 if (not PJI_PROCESS_UTIL.NEED_TO_RUN_STEP(l_process, 'PJI_PJP_SUM_ROLLUP.ROLLUP_ACR_CAL_PA(p_worker_id);')) then
17485 return;
17486 end if;
17487
17488 l_extraction_type := PJI_PROCESS_UTIL.GET_PROCESS_PARAMETER(l_process, 'EXTRACTION_TYPE');
17489
17490 PJI_FM_PLAN_CAL_RLPS.CREATE_AC_PA_ROLLUP;
17491
17492 PJI_PROCESS_UTIL.REGISTER_STEP_COMPLETION(l_process, 'PJI_PJP_SUM_ROLLUP.ROLLUP_ACR_CAL_PA(p_worker_id);');
17493
17494 commit;
17495
17496 end ROLLUP_ACR_CAL_PA;
17497
17498
17499 -- -----------------------------------------------------
17500 -- procedure ROLLUP_ACR_CAL_GL
17501 --
17502 -- History
17503 -- 19-MAR-2004 SVERMETT Created
17504 --
17505 -- Internal PJP Summarization API.
17506 --
17507 -- -----------------------------------------------------
17508 procedure ROLLUP_ACR_CAL_GL (p_worker_id in number) is
17509
17510 l_process varchar2(30);
17511 l_extraction_type varchar2(30);
17512
17513 l_return_status varchar2(255);
17514 l_msg_count number;
17515 l_msg_data varchar2(2000);
17516
17517 begin
17518
17519 l_process := PJI_PJP_SUM_MAIN.g_process || to_char(p_worker_id);
17520
17521 if (not PJI_PROCESS_UTIL.NEED_TO_RUN_STEP(l_process, 'PJI_PJP_SUM_ROLLUP.ROLLUP_ACR_CAL_GL(p_worker_id);')) then
17522 return;
17523 end if;
17524
17525 l_extraction_type := PJI_PROCESS_UTIL.GET_PROCESS_PARAMETER(l_process, 'EXTRACTION_TYPE');
17526
17527 PJI_FM_PLAN_CAL_RLPS.CREATE_AC_GL_ROLLUP;
17528
17529 PJI_PROCESS_UTIL.REGISTER_STEP_COMPLETION(l_process, 'PJI_PJP_SUM_ROLLUP.ROLLUP_ACR_CAL_GL(p_worker_id);');
17530
17531 commit;
17532
17533 end ROLLUP_ACR_CAL_GL;
17534
17535
17536 -- -----------------------------------------------------
17537 -- procedure ROLLUP_ACR_CAL_EN
17538 --
17539 -- History
17540 -- 19-MAR-2004 SVERMETT Created
17541 --
17542 -- Internal PJP Summarization API.
17543 --
17544 -- -----------------------------------------------------
17545 procedure ROLLUP_ACR_CAL_EN (p_worker_id in number) is
17546
17547 l_process varchar2(30);
17548 l_extraction_type varchar2(30);
17549
17550 l_return_status varchar2(255);
17551 l_msg_count number;
17552 l_msg_data varchar2(2000);
17553
17554 begin
17555
17556 l_process := PJI_PJP_SUM_MAIN.g_process || to_char(p_worker_id);
17557
17558 if (not PJI_PROCESS_UTIL.NEED_TO_RUN_STEP(l_process, 'PJI_PJP_SUM_ROLLUP.ROLLUP_ACR_CAL_EN(p_worker_id);')) then
17559 return;
17560 end if;
17561
17562 l_extraction_type := PJI_PROCESS_UTIL.GET_PROCESS_PARAMETER(l_process, 'EXTRACTION_TYPE');
17563
17564 PJI_FM_PLAN_CAL_RLPS.CREATE_AC_ENT_ROLLUP;
17565
17566 PJI_PROCESS_UTIL.REGISTER_STEP_COMPLETION(l_process, 'PJI_PJP_SUM_ROLLUP.ROLLUP_ACR_CAL_EN(p_worker_id);');
17567
17568 commit;
17569
17570 end ROLLUP_ACR_CAL_EN;
17571
17572
17573 -- -----------------------------------------------------
17574 -- procedure ROLLUP_ACR_CAL_ALL
17575 --
17576 -- History
17577 -- 19-MAR-2004 SVERMETT Created
17578 --
17579 -- Internal PJP Summarization API.
17580 --
17581 -- -----------------------------------------------------
17582 procedure ROLLUP_ACR_CAL_ALL (p_worker_id in number) is
17583
17584 l_process varchar2(30);
17585 l_extraction_type varchar2(30);
17586
17587 l_return_status varchar2(255);
17588 l_msg_count number;
17589 l_msg_data varchar2(2000);
17590
17591 begin
17592
17593 l_process := PJI_PJP_SUM_MAIN.g_process || to_char(p_worker_id);
17594
17595 if (not PJI_PROCESS_UTIL.NEED_TO_RUN_STEP(l_process, 'PJI_PJP_SUM_ROLLUP.ROLLUP_ACR_CAL_ALL(p_worker_id);')) then
17596 return;
17597 end if;
17598
17599 l_extraction_type := PJI_PROCESS_UTIL.GET_PROCESS_PARAMETER(l_process, 'EXTRACTION_TYPE');
17600
17601 PJI_FM_PLAN_CAL_RLPS.CREATE_AC_ALL_T_PRI_ROLLUP('G');
17602
17603 PJI_PROCESS_UTIL.REGISTER_STEP_COMPLETION(l_process, 'PJI_PJP_SUM_ROLLUP.ROLLUP_ACR_CAL_ALL(p_worker_id);');
17604
17605 commit;
17606
17607 end ROLLUP_ACR_CAL_ALL;
17608
17609
17610
17611 -- -----------------------------------------------------
17612 -- procedure AGGREGATE_PLAN_DATA
17613 --
17614 -- History
17615 -- 21-OCT-2004 SVERMETT Created
17616 --
17617 -- Internal PJP Summarization API.
17618 --
17619 -- Called by RBS program
17620 --
17621 -- -----------------------------------------------------
17622 procedure AGGREGATE_PLAN_DATA (p_worker_id in number) is
17623
17624 l_process varchar2(30);
17625 l_extraction_type varchar2(30);
17626
17627 begin
17628
17629 l_process := PJI_PJP_SUM_MAIN.g_process || to_char(p_worker_id);
17630
17631 if (not PJI_PROCESS_UTIL.NEED_TO_RUN_STEP(l_process, 'PJI_PJP_SUM_ROLLUP.AGGREGATE_PLAN_DATA(p_worker_id);')) then
17632 return;
17633 end if;
17634
17635 l_extraction_type := PJI_PROCESS_UTIL.GET_PROCESS_PARAMETER(l_process, 'EXTRACTION_TYPE');
17636
17637 IF (l_extraction_type IN ('PARTIAL', 'RBS', 'INCREMENTAL', 'FULL')) THEN
17638 /* Call to Paritioned procedure for bug 7551819 */
17639 PJI_PROCESS_UTIL.EXECUTE_AGGREGATE_PLAN_DATA(p_worker_id);
17640
17641 /* Commented for bug 7551819 */
17642 -- insert /*+ parallel(pjp1_in)
17643 -- noappend(pjp1_in) */ into PJI_FP_AGGR_PJP1 pjp1_in -- changed for bug 5927368
17644 /* (
17645 WORKER_ID,
17646 RECORD_TYPE,
17647 PRG_LEVEL,
17648 LINE_TYPE,
17649 PROJECT_ID,
17650 PROJECT_ORG_ID,
17651 PROJECT_ORGANIZATION_ID,
17652 PROJECT_ELEMENT_ID,
17653 TIME_ID,
17654 PERIOD_TYPE_ID,
17655 CALENDAR_TYPE,
17656 RBS_AGGR_LEVEL,
17657 WBS_ROLLUP_FLAG,
17658 PRG_ROLLUP_FLAG,
17659 CURR_RECORD_TYPE_ID,
17660 CURRENCY_CODE,
17661 RBS_ELEMENT_ID,
17662 RBS_VERSION_ID,
17663 PLAN_VERSION_ID,
17664 PLAN_TYPE_ID,
17665 PLAN_TYPE_CODE,
17666 RAW_COST,
17667 BRDN_COST,
17668 REVENUE,
17669 BILL_RAW_COST,
17670 BILL_BRDN_COST,
17671 BILL_LABOR_RAW_COST,
17672 BILL_LABOR_BRDN_COST,
17673 BILL_LABOR_HRS,
17674 EQUIPMENT_RAW_COST,
17675 EQUIPMENT_BRDN_COST,
17676 CAPITALIZABLE_RAW_COST,
17677 CAPITALIZABLE_BRDN_COST,
17678 LABOR_RAW_COST,
17679 LABOR_BRDN_COST,
17680 LABOR_HRS,
17681 LABOR_REVENUE,
17682 EQUIPMENT_HOURS,
17683 BILLABLE_EQUIPMENT_HOURS,
17684 SUP_INV_COMMITTED_COST,
17685 PO_COMMITTED_COST,
17686 PR_COMMITTED_COST,
17687 OTH_COMMITTED_COST,
17688 ACT_LABOR_HRS,
17689 ACT_EQUIP_HRS,
17690 ACT_LABOR_BRDN_COST,
17691 ACT_EQUIP_BRDN_COST,
17692 ACT_BRDN_COST,
17693 ACT_RAW_COST,
17694 ACT_REVENUE,
17695 ACT_LABOR_RAW_COST,
17696 ACT_EQUIP_RAW_COST,
17697 ETC_LABOR_HRS,
17698 ETC_EQUIP_HRS,
17699 ETC_LABOR_BRDN_COST,
17700 ETC_EQUIP_BRDN_COST,
17701 ETC_BRDN_COST,
17702 ETC_RAW_COST,
17703 ETC_LABOR_RAW_COST,
17704 ETC_EQUIP_RAW_COST,
17705 CUSTOM1,
17706 CUSTOM2,
17707 CUSTOM3,
17708 CUSTOM4,
17709 CUSTOM5,
17710 CUSTOM6,
17711 CUSTOM7,
17712 CUSTOM8,
17713 CUSTOM9,
17714 CUSTOM10,
17715 CUSTOM11,
17716 CUSTOM12,
17717 CUSTOM13,
17718 CUSTOM14,
17719 CUSTOM15
17720 )
17721 select
17722 pjp1.WORKER_ID,
17723 'A' RECORD_TYPE,
17724 pjp1.PRG_LEVEL,
17725 'AGGR_PLAN' LINE_TYPE,
17726 pjp1.PROJECT_ID,
17727 pjp1.PROJECT_ORG_ID,
17728 pjp1.PROJECT_ORGANIZATION_ID,
17729 pjp1.PROJECT_ELEMENT_ID,
17730 pjp1.TIME_ID,
17731 pjp1.PERIOD_TYPE_ID,
17732 pjp1.CALENDAR_TYPE,
17733 pjp1.RBS_AGGR_LEVEL,
17734 pjp1.WBS_ROLLUP_FLAG,
17735 pjp1.PRG_ROLLUP_FLAG,
17736 pjp1.CURR_RECORD_TYPE_ID,
17737 pjp1.CURRENCY_CODE,
17738 pjp1.RBS_ELEMENT_ID,
17739 pjp1.RBS_VERSION_ID,
17740 pjp1.PLAN_VERSION_ID,
17741 pjp1.PLAN_TYPE_ID,
17742 pjp1.PLAN_TYPE_CODE,
17743 sum(pjp1.RAW_COST) RAW_COST,
17744 sum(pjp1.BRDN_COST) BRDN_COST,
17745 sum(pjp1.REVENUE) REVENUE,
17746 sum(pjp1.BILL_RAW_COST) BILL_RAW_COST,
17747 sum(pjp1.BILL_BRDN_COST) BILL_BRDN_COST,
17748 sum(pjp1.BILL_LABOR_RAW_COST) BILL_LABOR_RAW_COST,
17749 sum(pjp1.BILL_LABOR_BRDN_COST) BILL_LABOR_BRDN_COST,
17750 sum(pjp1.BILL_LABOR_HRS) BILL_LABOR_HRS,
17751 sum(pjp1.EQUIPMENT_RAW_COST) EQUIPMENT_RAW_COST,
17752 sum(pjp1.EQUIPMENT_BRDN_COST) EQUIPMENT_BRDN_COST,
17753 sum(pjp1.CAPITALIZABLE_RAW_COST) CAPITALIZABLE_RAW_COST,
17754 sum(pjp1.CAPITALIZABLE_BRDN_COST) CAPITALIZABLE_BRDN_COST,
17755 sum(pjp1.LABOR_RAW_COST) LABOR_RAW_COST,
17756 sum(pjp1.LABOR_BRDN_COST) LABOR_BRDN_COST,
17757 sum(pjp1.LABOR_HRS) LABOR_HRS,
17758 sum(pjp1.LABOR_REVENUE) LABOR_REVENUE,
17759 sum(pjp1.EQUIPMENT_HOURS) EQUIPMENT_HOURS,
17760 sum(pjp1.BILLABLE_EQUIPMENT_HOURS) BILLABLE_EQUIPMENT_HOURS,
17761 sum(pjp1.SUP_INV_COMMITTED_COST) SUP_INV_COMMITTED_COST,
17762 sum(pjp1.PO_COMMITTED_COST) PO_COMMITTED_COST,
17763 sum(pjp1.PR_COMMITTED_COST) PR_COMMITTED_COST,
17764 sum(pjp1.OTH_COMMITTED_COST) OTH_COMMITTED_COST,
17765 sum(pjp1.ACT_LABOR_HRS) ACT_LABOR_HRS,
17766 sum(pjp1.ACT_EQUIP_HRS) ACT_EQUIP_HRS,
17767 sum(pjp1.ACT_LABOR_BRDN_COST) ACT_LABOR_BRDN_COST,
17768 sum(pjp1.ACT_EQUIP_BRDN_COST) ACT_EQUIP_BRDN_COST,
17769 sum(pjp1.ACT_BRDN_COST) ACT_BRDN_COST,
17770 sum(pjp1.ACT_RAW_COST) ACT_RAW_COST,
17771 sum(pjp1.ACT_REVENUE) ACT_REVENUE,
17772 sum(pjp1.ACT_LABOR_RAW_COST) ACT_LABOR_RAW_COST,
17773 sum(pjp1.ACT_EQUIP_RAW_COST) ACT_EQUIP_RAW_COST,
17774 sum(pjp1.ETC_LABOR_HRS) ETC_LABOR_HRS,
17775 sum(pjp1.ETC_EQUIP_HRS) ETC_EQUIP_HRS,
17776 sum(pjp1.ETC_LABOR_BRDN_COST) ETC_LABOR_BRDN_COST,
17777 sum(pjp1.ETC_EQUIP_BRDN_COST) ETC_EQUIP_BRDN_COST,
17778 sum(pjp1.ETC_BRDN_COST) ETC_BRDN_COST,
17779 sum(pjp1.ETC_RAW_COST) ETC_RAW_COST,
17780 sum(pjp1.ETC_LABOR_RAW_COST) ETC_LABOR_RAW_COST,
17781 sum(pjp1.ETC_EQUIP_RAW_COST) ETC_EQUIP_RAW_COST,
17782 sum(pjp1.CUSTOM1) CUSTOM1,
17783 sum(pjp1.CUSTOM2) CUSTOM2,
17784 sum(pjp1.CUSTOM3) CUSTOM3,
17785 sum(pjp1.CUSTOM4) CUSTOM4,
17786 sum(pjp1.CUSTOM5) CUSTOM5,
17787 sum(pjp1.CUSTOM6) CUSTOM6,
17788 sum(pjp1.CUSTOM7) CUSTOM7,
17789 sum(pjp1.CUSTOM8) CUSTOM8,
17790 sum(pjp1.CUSTOM9) CUSTOM9,
17791 sum(pjp1.CUSTOM10) CUSTOM10,
17792 sum(pjp1.CUSTOM11) CUSTOM11,
17793 sum(pjp1.CUSTOM12) CUSTOM12,
17794 sum(pjp1.CUSTOM13) CUSTOM13,
17795 sum(pjp1.CUSTOM14) CUSTOM14,
17796 sum(pjp1.CUSTOM15) CUSTOM15
17797 from
17798 PJI_FP_AGGR_PJP1 pjp1
17799 where
17800 pjp1.WORKER_ID = p_worker_id
17801 group by
17802 pjp1.WORKER_ID,
17803 pjp1.PRG_LEVEL,
17804 pjp1.PROJECT_ID,
17805 pjp1.PROJECT_ORG_ID,
17806 pjp1.PROJECT_ORGANIZATION_ID,
17807 pjp1.PROJECT_ELEMENT_ID,
17808 pjp1.TIME_ID,
17809 pjp1.PERIOD_TYPE_ID,
17810 pjp1.CALENDAR_TYPE,
17811 pjp1.RBS_AGGR_LEVEL,
17812 pjp1.WBS_ROLLUP_FLAG,
17813 pjp1.PRG_ROLLUP_FLAG,
17814 pjp1.CURR_RECORD_TYPE_ID,
17815 pjp1.CURRENCY_CODE,
17816 pjp1.RBS_ELEMENT_ID,
17817 pjp1.RBS_VERSION_ID,
17818 pjp1.PLAN_VERSION_ID,
17819 pjp1.PLAN_TYPE_ID,
17820 pjp1.PLAN_TYPE_CODE
17821 having not
17822 (nvl(sum(pjp1.RAW_COST), 0) = 0 and
17823 nvl(sum(pjp1.BRDN_COST), 0) = 0 and
17824 nvl(sum(pjp1.REVENUE), 0) = 0 and
17825 nvl(sum(pjp1.BILL_RAW_COST), 0) = 0 and
17826 nvl(sum(pjp1.BILL_BRDN_COST), 0) = 0 and
17827 nvl(sum(pjp1.BILL_LABOR_RAW_COST), 0) = 0 and
17828 nvl(sum(pjp1.BILL_LABOR_BRDN_COST), 0) = 0 and
17829 nvl(sum(pjp1.BILL_LABOR_HRS), 0) = 0 and
17830 nvl(sum(pjp1.EQUIPMENT_RAW_COST), 0) = 0 and
17831 nvl(sum(pjp1.EQUIPMENT_BRDN_COST), 0) = 0 and
17832 nvl(sum(pjp1.CAPITALIZABLE_RAW_COST), 0) = 0 and
17833 nvl(sum(pjp1.CAPITALIZABLE_BRDN_COST), 0) = 0 and
17834 nvl(sum(pjp1.LABOR_RAW_COST), 0) = 0 and
17835 nvl(sum(pjp1.LABOR_BRDN_COST), 0) = 0 and
17836 nvl(sum(pjp1.LABOR_HRS), 0) = 0 and
17837 nvl(sum(pjp1.LABOR_REVENUE), 0) = 0 and
17838 nvl(sum(pjp1.EQUIPMENT_HOURS), 0) = 0 and
17839 nvl(sum(pjp1.BILLABLE_EQUIPMENT_HOURS), 0) = 0 and
17840 nvl(sum(pjp1.SUP_INV_COMMITTED_COST), 0) = 0 and
17841 nvl(sum(pjp1.PO_COMMITTED_COST), 0) = 0 and
17842 nvl(sum(pjp1.PR_COMMITTED_COST), 0) = 0 and
17843 nvl(sum(pjp1.OTH_COMMITTED_COST), 0) = 0 and
17844 nvl(sum(pjp1.ACT_LABOR_HRS), 0) = 0 and
17845 nvl(sum(pjp1.ACT_EQUIP_HRS), 0) = 0 and
17846 nvl(sum(pjp1.ACT_LABOR_BRDN_COST), 0) = 0 and
17847 nvl(sum(pjp1.ACT_EQUIP_BRDN_COST), 0) = 0 and
17848 nvl(sum(pjp1.ACT_BRDN_COST), 0) = 0 and
17849 nvl(sum(pjp1.ACT_RAW_COST), 0) = 0 and
17850 nvl(sum(pjp1.ACT_REVENUE), 0) = 0 and
17851 nvl(sum(pjp1.ACT_LABOR_RAW_COST), 0) = 0 and
17852 nvl(sum(pjp1.ACT_EQUIP_RAW_COST), 0) = 0 and
17853 nvl(sum(pjp1.ETC_LABOR_HRS), 0) = 0 and
17854 nvl(sum(pjp1.ETC_EQUIP_HRS), 0) = 0 and
17855 nvl(sum(pjp1.ETC_LABOR_BRDN_COST), 0) = 0 and
17856 nvl(sum(pjp1.ETC_EQUIP_BRDN_COST), 0) = 0 and
17857 nvl(sum(pjp1.ETC_BRDN_COST), 0) = 0 and
17858 nvl(sum(pjp1.ETC_RAW_COST), 0) = 0 and
17859 nvl(sum(pjp1.ETC_LABOR_RAW_COST), 0) = 0 and
17860 nvl(sum(pjp1.ETC_EQUIP_RAW_COST), 0) = 0 and
17861 nvl(sum(pjp1.CUSTOM1), 0) = 0 and
17862 nvl(sum(pjp1.CUSTOM2), 0) = 0 and
17863 nvl(sum(pjp1.CUSTOM3), 0) = 0 and
17864 nvl(sum(pjp1.CUSTOM4), 0) = 0 and
17865 nvl(sum(pjp1.CUSTOM5), 0) = 0 and
17866 nvl(sum(pjp1.CUSTOM6), 0) = 0 and
17867 nvl(sum(pjp1.CUSTOM7), 0) = 0 and
17868 nvl(sum(pjp1.CUSTOM8), 0) = 0 and
17869 nvl(sum(pjp1.CUSTOM9), 0) = 0 and
17870 nvl(sum(pjp1.CUSTOM10), 0) = 0 and
17871 nvl(sum(pjp1.CUSTOM11), 0) = 0 and
17872 nvl(sum(pjp1.CUSTOM12), 0) = 0 and
17873 nvl(sum(pjp1.CUSTOM13), 0) = 0 and
17874 nvl(sum(pjp1.CUSTOM14), 0) = 0 and
17875 nvl(sum(pjp1.CUSTOM15), 0) = 0);
17876
17877 insert into PJI_AC_AGGR_PJP1 pjp1_i
17878 (
17879 WORKER_ID,
17880 RECORD_TYPE,
17881 PRG_LEVEL,
17882 PROJECT_ID,
17883 PROJECT_ORG_ID,
17884 PROJECT_ORGANIZATION_ID,
17885 PROJECT_ELEMENT_ID,
17886 TIME_ID,
17887 PERIOD_TYPE_ID,
17888 CALENDAR_TYPE,
17889 WBS_ROLLUP_FLAG,
17890 PRG_ROLLUP_FLAG,
17891 CURR_RECORD_TYPE_ID,
17892 CURRENCY_CODE,
17893 REVENUE,
17894 INITIAL_FUNDING_AMOUNT,
17895 INITIAL_FUNDING_COUNT,
17896 ADDITIONAL_FUNDING_AMOUNT,
17897 ADDITIONAL_FUNDING_COUNT,
17898 CANCELLED_FUNDING_AMOUNT,
17899 CANCELLED_FUNDING_COUNT,
17900 FUNDING_ADJUSTMENT_AMOUNT,
17901 FUNDING_ADJUSTMENT_COUNT,
17902 REVENUE_WRITEOFF,
17903 AR_INVOICE_AMOUNT,
17904 AR_INVOICE_COUNT,
17905 AR_CASH_APPLIED_AMOUNT,
17906 AR_INVOICE_WRITE_OFF_AMOUNT,
17907 AR_INVOICE_WRITEOFF_COUNT,
17908 AR_CREDIT_MEMO_AMOUNT,
17909 AR_CREDIT_MEMO_COUNT,
17910 UNBILLED_RECEIVABLES,
17911 UNEARNED_REVENUE,
17912 AR_UNAPPR_INVOICE_AMOUNT,
17913 AR_UNAPPR_INVOICE_COUNT,
17914 AR_APPR_INVOICE_AMOUNT,
17915 AR_APPR_INVOICE_COUNT,
17916 AR_AMOUNT_DUE,
17917 AR_COUNT_DUE,
17918 AR_AMOUNT_OVERDUE,
17919 AR_COUNT_OVERDUE,
17920 CUSTOM1,
17921 CUSTOM2,
17922 CUSTOM3,
17923 CUSTOM4,
17924 CUSTOM5,
17925 CUSTOM6,
17926 CUSTOM7,
17927 CUSTOM8,
17928 CUSTOM9,
17929 CUSTOM10,
17930 CUSTOM11,
17931 CUSTOM12,
17932 CUSTOM13,
17933 CUSTOM14,
17934 CUSTOM15
17935 )
17936 select
17937 pjp1.WORKER_ID,
17938 'A' RECORD_TYPE,
17939 pjp1.PRG_LEVEL,
17940 pjp1.PROJECT_ID,
17941 pjp1.PROJECT_ORG_ID,
17942 pjp1.PROJECT_ORGANIZATION_ID,
17943 pjp1.PROJECT_ELEMENT_ID,
17944 pjp1.TIME_ID,
17945 pjp1.PERIOD_TYPE_ID,
17946 pjp1.CALENDAR_TYPE,
17947 pjp1.WBS_ROLLUP_FLAG,
17948 pjp1.PRG_ROLLUP_FLAG,
17949 pjp1.CURR_RECORD_TYPE_ID,
17950 pjp1.CURRENCY_CODE,
17951 sum(pjp1.REVENUE) REVENUE,
17952 sum(pjp1.INITIAL_FUNDING_AMOUNT) INITIAL_FUNDING_AMOUNT,
17953 sum(pjp1.INITIAL_FUNDING_COUNT) INITIAL_FUNDING_COUNT,
17954 sum(pjp1.ADDITIONAL_FUNDING_AMOUNT) ADDITIONAL_FUNDING_AMOUNT,
17955 sum(pjp1.ADDITIONAL_FUNDING_COUNT) ADDITIONAL_FUNDING_COUNT,
17956 sum(pjp1.CANCELLED_FUNDING_AMOUNT) CANCELLED_FUNDING_AMOUNT,
17957 sum(pjp1.CANCELLED_FUNDING_COUNT) CANCELLED_FUNDING_COUNT,
17958 sum(pjp1.FUNDING_ADJUSTMENT_AMOUNT) FUNDING_ADJUSTMENT_AMOUNT,
17959 sum(pjp1.FUNDING_ADJUSTMENT_COUNT) FUNDING_ADJUSTMENT_COUNT,
17960 sum(pjp1.REVENUE_WRITEOFF) REVENUE_WRITEOFF,
17961 sum(pjp1.AR_INVOICE_AMOUNT) AR_INVOICE_AMOUNT,
17962 sum(pjp1.AR_INVOICE_COUNT) AR_INVOICE_COUNT,
17963 sum(pjp1.AR_CASH_APPLIED_AMOUNT) AR_CASH_APPLIED_AMOUNT,
17964 sum(pjp1.AR_INVOICE_WRITE_OFF_AMOUNT) AR_INVOICE_WRITE_OFF_AMOUNT,
17965 sum(pjp1.AR_INVOICE_WRITEOFF_COUNT) AR_INVOICE_WRITEOFF_COUNT,
17966 sum(pjp1.AR_CREDIT_MEMO_AMOUNT) AR_CREDIT_MEMO_AMOUNT,
17967 sum(pjp1.AR_CREDIT_MEMO_COUNT) AR_CREDIT_MEMO_COUNT,
17968 sum(pjp1.UNBILLED_RECEIVABLES) UNBILLED_RECEIVABLES,
17969 sum(pjp1.UNEARNED_REVENUE) UNEARNED_REVENUE,
17970 sum(pjp1.AR_UNAPPR_INVOICE_AMOUNT) AR_UNAPPR_INVOICE_AMOUNT,
17971 sum(pjp1.AR_UNAPPR_INVOICE_COUNT) AR_UNAPPR_INVOICE_COUNT,
17972 sum(pjp1.AR_APPR_INVOICE_AMOUNT) AR_APPR_INVOICE_AMOUNT,
17973 sum(pjp1.AR_APPR_INVOICE_COUNT) AR_APPR_INVOICE_COUNT,
17974 sum(pjp1.AR_AMOUNT_DUE) AR_AMOUNT_DUE,
17975 sum(pjp1.AR_COUNT_DUE) AR_COUNT_DUE,
17976 sum(pjp1.AR_AMOUNT_OVERDUE) AR_AMOUNT_OVERDUE,
17977 sum(pjp1.AR_COUNT_OVERDUE) AR_COUNT_OVERDUE,
17978 sum(pjp1.CUSTOM1) CUSTOM1,
17979 sum(pjp1.CUSTOM2) CUSTOM2,
17980 sum(pjp1.CUSTOM3) CUSTOM3,
17981 sum(pjp1.CUSTOM4) CUSTOM4,
17982 sum(pjp1.CUSTOM5) CUSTOM5,
17983 sum(pjp1.CUSTOM6) CUSTOM6,
17984 sum(pjp1.CUSTOM7) CUSTOM7,
17985 sum(pjp1.CUSTOM8) CUSTOM8,
17986 sum(pjp1.CUSTOM9) CUSTOM9,
17987 sum(pjp1.CUSTOM10) CUSTOM10,
17988 sum(pjp1.CUSTOM11) CUSTOM11,
17989 sum(pjp1.CUSTOM12) CUSTOM12,
17990 sum(pjp1.CUSTOM13) CUSTOM13,
17991 sum(pjp1.CUSTOM14) CUSTOM14,
17992 sum(pjp1.CUSTOM15) CUSTOM15
17993 from
17994 PJI_AC_AGGR_PJP1 pjp1
17995 where
17996 pjp1.WORKER_ID = p_worker_id
17997 group by
17998 pjp1.WORKER_ID,
17999 pjp1.PRG_LEVEL,
18000 pjp1.PROJECT_ID,
18001 pjp1.PROJECT_ORG_ID,
18002 pjp1.PROJECT_ORGANIZATION_ID,
18003 pjp1.PROJECT_ELEMENT_ID,
18004 pjp1.TIME_ID,
18005 pjp1.PERIOD_TYPE_ID,
18006 pjp1.CALENDAR_TYPE,
18007 pjp1.WBS_ROLLUP_FLAG,
18008 pjp1.PRG_ROLLUP_FLAG,
18009 pjp1.CURR_RECORD_TYPE_ID,
18010 pjp1.CURRENCY_CODE
18011 having not
18012 (nvl(sum(REVENUE), 0) = 0 and
18013 nvl(sum(INITIAL_FUNDING_AMOUNT), 0) = 0 and
18014 nvl(sum(INITIAL_FUNDING_COUNT), 0) = 0 and
18015 nvl(sum(ADDITIONAL_FUNDING_AMOUNT), 0) = 0 and
18016 nvl(sum(ADDITIONAL_FUNDING_COUNT), 0) = 0 and
18017 nvl(sum(CANCELLED_FUNDING_AMOUNT), 0) = 0 and
18018 nvl(sum(CANCELLED_FUNDING_COUNT), 0) = 0 and
18019 nvl(sum(FUNDING_ADJUSTMENT_AMOUNT), 0) = 0 and
18020 nvl(sum(FUNDING_ADJUSTMENT_COUNT), 0) = 0 and
18021 nvl(sum(REVENUE_WRITEOFF), 0) = 0 and
18022 nvl(sum(AR_INVOICE_AMOUNT), 0) = 0 and
18023 nvl(sum(AR_INVOICE_COUNT), 0) = 0 and
18024 nvl(sum(AR_CASH_APPLIED_AMOUNT), 0) = 0 and
18025 nvl(sum(AR_INVOICE_WRITE_OFF_AMOUNT), 0) = 0 and
18026 nvl(sum(AR_INVOICE_WRITEOFF_COUNT), 0) = 0 and
18027 nvl(sum(AR_CREDIT_MEMO_AMOUNT), 0) = 0 and
18028 nvl(sum(AR_CREDIT_MEMO_COUNT), 0) = 0 and
18029 nvl(sum(UNBILLED_RECEIVABLES), 0) = 0 and
18030 nvl(sum(UNEARNED_REVENUE), 0) = 0 and
18031 nvl(sum(AR_UNAPPR_INVOICE_AMOUNT), 0) = 0 and
18032 nvl(sum(AR_UNAPPR_INVOICE_COUNT), 0) = 0 and
18033 nvl(sum(AR_APPR_INVOICE_AMOUNT), 0) = 0 and
18034 nvl(sum(AR_APPR_INVOICE_COUNT), 0) = 0 and
18035 nvl(sum(AR_AMOUNT_DUE), 0) = 0 and
18036 nvl(sum(AR_COUNT_DUE), 0) = 0 and
18037 nvl(sum(AR_AMOUNT_OVERDUE), 0) = 0 and
18038 nvl(sum(AR_COUNT_OVERDUE), 0) = 0 and
18039 nvl(sum(CUSTOM1), 0) = 0 and
18040 nvl(sum(CUSTOM2), 0) = 0 and
18041 nvl(sum(CUSTOM3), 0) = 0 and
18042 nvl(sum(CUSTOM4), 0) = 0 and
18043 nvl(sum(CUSTOM5), 0) = 0 and
18044 nvl(sum(CUSTOM6), 0) = 0 and
18045 nvl(sum(CUSTOM7), 0) = 0 and
18046 nvl(sum(CUSTOM8), 0) = 0 and
18047 nvl(sum(CUSTOM9), 0) = 0 and
18048 nvl(sum(CUSTOM10), 0) = 0 and
18049 nvl(sum(CUSTOM11), 0) = 0 and
18050 nvl(sum(CUSTOM12), 0) = 0 and
18051 nvl(sum(CUSTOM13), 0) = 0 and
18052 nvl(sum(CUSTOM14), 0) = 0 and
18053 nvl(sum(CUSTOM15), 0) = 0); */
18054
18055 end if;
18056
18057 PJI_PROCESS_UTIL.REGISTER_STEP_COMPLETION(l_process, 'PJI_PJP_SUM_ROLLUP.AGGREGATE_PLAN_DATA(p_worker_id);');
18058
18059 commit;
18060
18061 end AGGREGATE_PLAN_DATA;
18062
18063
18064 -- -----------------------------------------------------
18065 -- procedure PURGE_PLAN_DATA
18066 --
18067 -- History
18068 -- 21-OCT-2004 SVERMETT Created
18069 --
18070 -- Internal PJP Summarization API.
18071 --
18072 -- Called by RBS program
18073 --
18074 -- -----------------------------------------------------
18075 procedure PURGE_PLAN_DATA (p_worker_id in number) is
18076
18077 l_process varchar2(30);
18078 l_extraction_type varchar2(30);
18079 l_worker_id number; /* Added for bug 13030627 */
18080
18081 -- begin: bug 7146014
18082 TYPE row_id_tab_type IS TABLE OF rowid index by binary_integer;
18083 x_row_id row_id_tab_type;
18084
18085 cursor c1 is
18086 select rowid from pji_fp_aggr_pjp1
18087 where worker_id = p_worker_id
18088 and nvl(LINE_TYPE, 'X') <> 'AGGR_PLAN';
18089 -- end: bug 7146014
18090 begin
18091
18092 /* Added for bug 13030627 */
18093 l_worker_id := p_worker_id;
18094 if PJI_UTILS.GET_PARAMETER('PJP_SIN_PRG') = 'Y' then
18095
18096 PJI_PJP_PRG_PERF_ALL.PURGE_PLAN_DATA(
18097 p_worker_id => l_worker_id);
18098
18099 else
18100
18101 l_process := PJI_PJP_SUM_MAIN.g_process || to_char(p_worker_id);
18102
18103 if (not PJI_PROCESS_UTIL.NEED_TO_RUN_STEP(l_process, 'PJI_PJP_SUM_ROLLUP.PURGE_PLAN_DATA(p_worker_id);')) then
18104 return;
18105 end if;
18106
18107 l_extraction_type := PJI_PROCESS_UTIL.GET_PROCESS_PARAMETER(l_process, 'EXTRACTION_TYPE');
18108
18109 IF (l_extraction_type IN ('PARTIAL', 'RBS', 'INCREMENTAL', 'FULL')) THEN
18110
18111 -- begin: bug 7146014
18112
18113 open c1;
18114 loop
18115 fetch c1 bulk collect into x_row_id limit 500000;
18116
18117 If x_row_id.count > 0 then
18118 Forall j in x_row_id.first..x_row_id.last
18119 delete from pji_fp_aggr_pjp1
18120 where worker_id = p_worker_id
18121 and rowid = x_row_id(j);
18122
18123 commit;
18124 x_row_id.delete;
18125 exit when c1%notfound;
18126
18127 Else
18128 Exit;
18129 End if;
18130
18131 end loop;
18132
18133 close c1;
18134 -- End: bug 7146014
18135
18136 /* Commented for bug 7146014
18137 delete
18138 from PJI_FP_AGGR_PJP1 pjp1
18139 where pjp1.WORKER_ID = p_worker_id and
18140 nvl(pjp1.LINE_TYPE, 'X') <> 'AGGR_PLAN';
18141 */
18142 delete
18143 from PJI_AC_AGGR_PJP1 pjp1
18144 where pjp1.WORKER_ID = p_worker_id and
18145 nvl(pjp1.RECORD_TYPE, 'X') <> 'A';
18146
18147 end if;
18148
18149 PJI_PROCESS_UTIL.REGISTER_STEP_COMPLETION(l_process, 'PJI_PJP_SUM_ROLLUP.PURGE_PLAN_DATA(p_worker_id);');
18150
18151 commit;
18152
18153 end if; -- Added for bug 13451898
18154
18155 end PURGE_PLAN_DATA;
18156
18157
18158 -- -----------------------------------------------------
18159 -- procedure GET_FPR_ROWIDS
18160 --
18161 -- History
18162 -- 19-MAR-2004 SVERMETT Created
18163 --
18164 -- Internal PJP Summarization API.
18165 --
18166 -- Called by RBS program
18167 --
18168 -- -----------------------------------------------------
18169 procedure GET_FPR_ROWIDS (p_worker_id in number) is
18170
18171 l_process varchar2(30);
18172 l_extraction_type varchar2(30);
18173
18174 l_return_status varchar2(255);
18175 l_msg_count number;
18176 l_msg_data varchar2(2000);
18177
18178 begin
18179
18180 l_process := PJI_PJP_SUM_MAIN.g_process || to_char(p_worker_id);
18181
18182 if (not PJI_PROCESS_UTIL.NEED_TO_RUN_STEP(l_process, 'PJI_PJP_SUM_ROLLUP.GET_FPR_ROWIDS(p_worker_id);')) then
18183 return;
18184 end if;
18185
18186 l_extraction_type := PJI_PROCESS_UTIL.GET_PROCESS_PARAMETER(l_process, 'EXTRACTION_TYPE');
18187
18188 PJI_FM_PLAN_MAINT_PVT.GET_FP_ROW_IDS;
18189
18190 PJI_PROCESS_UTIL.REGISTER_STEP_COMPLETION(l_process, 'PJI_PJP_SUM_ROLLUP.GET_FPR_ROWIDS(p_worker_id);');
18191
18192 commit;
18193
18194 end GET_FPR_ROWIDS;
18195
18196
18197 -- -----------------------------------------------------
18198 -- procedure UPDATE_FPR_ROWS
18199 --
18200 -- History
18201 -- 19-MAR-2004 SVERMETT Created
18202 --
18203 -- Internal PJP Summarization API.
18204 --
18205 -- Called by RBS program
18206 --
18207 -- -----------------------------------------------------
18208 procedure UPDATE_FPR_ROWS (p_worker_id in number) is
18209
18210 l_process varchar2(30);
18211 l_extraction_type varchar2(30);
18212
18213 l_return_status varchar2(255);
18214 l_msg_count number;
18215 l_msg_data varchar2(2000);
18216
18217 begin
18218
18219 l_process := PJI_PJP_SUM_MAIN.g_process || to_char(p_worker_id);
18220
18221 if (not PJI_PROCESS_UTIL.NEED_TO_RUN_STEP(l_process, 'PJI_PJP_SUM_ROLLUP.UPDATE_FPR_ROWS(p_worker_id);')) then
18222 return;
18223 end if;
18224
18225 l_extraction_type := PJI_PROCESS_UTIL.GET_PROCESS_PARAMETER(l_process, 'EXTRACTION_TYPE');
18226
18227 PJI_FM_PLAN_MAINT_PVT.UPDATE_FP_ROWS;
18228
18229 PJI_PROCESS_UTIL.REGISTER_STEP_COMPLETION(l_process, 'PJI_PJP_SUM_ROLLUP.UPDATE_FPR_ROWS(p_worker_id);');
18230
18231 commit;
18232
18233 end UPDATE_FPR_ROWS;
18234
18235
18236 -- -----------------------------------------------------
18237 -- procedure INSERT_FPR_ROWS
18238 --
18239 -- History
18240 -- 19-MAR-2004 SVERMETT Created
18241 --
18242 -- Internal PJP Summarization API.
18243 --
18244 -- Called by RBS program
18245 --
18246 -- -----------------------------------------------------
18247 procedure INSERT_FPR_ROWS (p_worker_id in number) is
18248
18249 l_process varchar2(30);
18250 l_extraction_type varchar2(30);
18251
18252 l_return_status varchar2(255);
18253 l_msg_count number;
18254 l_msg_data varchar2(2000);
18255
18256 begin
18257
18258 l_process := PJI_PJP_SUM_MAIN.g_process || to_char(p_worker_id);
18259
18260 if (not PJI_PROCESS_UTIL.NEED_TO_RUN_STEP(l_process, 'PJI_PJP_SUM_ROLLUP.INSERT_FPR_ROWS(p_worker_id);')) then
18261 return;
18262 end if;
18263
18264 l_extraction_type := PJI_PROCESS_UTIL.GET_PROCESS_PARAMETER(l_process, 'EXTRACTION_TYPE');
18265
18266 PJI_FM_PLAN_MAINT_PVT.INSERT_FP_ROWS;
18267
18268 PJI_PROCESS_UTIL.REGISTER_STEP_COMPLETION(l_process, 'PJI_PJP_SUM_ROLLUP.INSERT_FPR_ROWS(p_worker_id);');
18269
18270 commit;
18271
18272 end INSERT_FPR_ROWS;
18273
18274
18275 -- -----------------------------------------------------
18276 -- procedure CLEANUP_FPR_ROWID_TABLE
18277 --
18278 -- History
18279 -- 19-MAR-2004 SVERMETT Created
18280 --
18281 -- Internal PJP Summarization API.
18282 --
18283 -- Called by RBS program
18284 --
18285 -- -----------------------------------------------------
18286 procedure CLEANUP_FPR_ROWID_TABLE (p_worker_id in number) is
18287
18288 l_process varchar2(30);
18289 l_extraction_type varchar2(30);
18290
18291 l_return_status varchar2(255);
18292 l_msg_count number;
18293 l_msg_data varchar2(2000);
18294
18295 begin
18296
18297 l_process := PJI_PJP_SUM_MAIN.g_process || to_char(p_worker_id);
18298
18299 if (not PJI_PROCESS_UTIL.NEED_TO_RUN_STEP(l_process, 'PJI_PJP_SUM_ROLLUP.CLEANUP_FPR_ROWID_TABLE(p_worker_id);')) then
18300 return;
18301 end if;
18302
18303 l_extraction_type := PJI_PROCESS_UTIL.GET_PROCESS_PARAMETER(l_process, 'EXTRACTION_TYPE');
18304
18305 -- PJI_FM_PLAN_MAINT_PVT.CLEANUP_FP_RMAP_FPR;
18306
18307 PJI_PROCESS_UTIL.REGISTER_STEP_COMPLETION(l_process, 'PJI_PJP_SUM_ROLLUP.CLEANUP_FPR_ROWID_TABLE(p_worker_id);');
18308
18309 commit;
18310
18311 end CLEANUP_FPR_ROWID_TABLE;
18312
18313
18314 -- -----------------------------------------------------
18315 -- procedure GET_ACR_ROWIDS
18316 --
18317 -- History
18318 -- 19-MAR-2004 SVERMETT Created
18319 --
18320 -- Internal PJP Summarization API.
18321 --
18322 -- -----------------------------------------------------
18323 procedure GET_ACR_ROWIDS (p_worker_id in number) is
18324
18325 l_process varchar2(30);
18326 l_extraction_type varchar2(30);
18327
18328 l_return_status varchar2(255);
18329 l_msg_count number;
18330 l_msg_data varchar2(2000);
18331
18332 begin
18333
18334 l_process := PJI_PJP_SUM_MAIN.g_process || to_char(p_worker_id);
18335
18336 if (not PJI_PROCESS_UTIL.NEED_TO_RUN_STEP(l_process, 'PJI_PJP_SUM_ROLLUP.GET_ACR_ROWIDS(p_worker_id);')) then
18337 return;
18338 end if;
18339
18340 l_extraction_type := PJI_PROCESS_UTIL.GET_PROCESS_PARAMETER(l_process, 'EXTRACTION_TYPE');
18341
18342 if (l_extraction_type = 'INCREMENTAL' or
18343 l_extraction_type = 'PARTIAL' or
18344 l_extraction_type = 'RBS') then
18345
18346 PJI_FM_PLAN_MAINT_PVT.GET_AC_ROW_IDS;
18347
18348 end if;
18349
18350 PJI_PROCESS_UTIL.REGISTER_STEP_COMPLETION(l_process, 'PJI_PJP_SUM_ROLLUP.GET_ACR_ROWIDS(p_worker_id);');
18351
18352 commit;
18353
18354 end GET_ACR_ROWIDS;
18355
18356
18357 -- -----------------------------------------------------
18358 -- procedure UPDATE_ACR_ROWS
18359 --
18360 -- History
18361 -- 19-MAR-2004 SVERMETT Created
18362 --
18363 -- Internal PJP Summarization API.
18364 --
18365 -- -----------------------------------------------------
18366 procedure UPDATE_ACR_ROWS (p_worker_id in number) is
18367
18368 l_process varchar2(30);
18369 l_extraction_type varchar2(30);
18370
18371 l_return_status varchar2(255);
18372 l_msg_count number;
18373 l_msg_data varchar2(2000);
18374
18375 begin
18376
18377 l_process := PJI_PJP_SUM_MAIN.g_process || to_char(p_worker_id);
18378
18379 if (not PJI_PROCESS_UTIL.NEED_TO_RUN_STEP(l_process, 'PJI_PJP_SUM_ROLLUP.UPDATE_ACR_ROWS(p_worker_id);')) then
18380 return;
18381 end if;
18382
18383 l_extraction_type := PJI_PROCESS_UTIL.GET_PROCESS_PARAMETER(l_process, 'EXTRACTION_TYPE');
18384
18385 if (l_extraction_type = 'INCREMENTAL' or
18386 l_extraction_type = 'PARTIAL' or
18387 l_extraction_type = 'RBS') then
18388
18389 PJI_FM_PLAN_MAINT_PVT.UPDATE_AC_ROWS;
18390
18391 end if;
18392
18393 PJI_PROCESS_UTIL.REGISTER_STEP_COMPLETION(l_process, 'PJI_PJP_SUM_ROLLUP.UPDATE_ACR_ROWS(p_worker_id);');
18394
18395 commit;
18396
18397 end UPDATE_ACR_ROWS;
18398
18399
18400 -- -----------------------------------------------------
18401 -- procedure INSERT_ACR_ROWS
18402 --
18403 -- History
18404 -- 19-MAR-2004 SVERMETT Created
18405 --
18406 -- Internal PJP Summarization API.
18407 --
18408 -- -----------------------------------------------------
18409 procedure INSERT_ACR_ROWS (p_worker_id in number) is
18410
18411 l_process varchar2(30);
18412 l_extraction_type varchar2(30);
18413
18414 l_return_status varchar2(255);
18415 l_msg_count number;
18416 l_msg_data varchar2(2000);
18417
18418 begin
18419
18420 l_process := PJI_PJP_SUM_MAIN.g_process || to_char(p_worker_id);
18421
18422 if (not PJI_PROCESS_UTIL.NEED_TO_RUN_STEP(l_process, 'PJI_PJP_SUM_ROLLUP.INSERT_ACR_ROWS(p_worker_id);')) then
18423 return;
18424 end if;
18425
18426 l_extraction_type := PJI_PROCESS_UTIL.GET_PROCESS_PARAMETER(l_process, 'EXTRACTION_TYPE');
18427
18428 if (l_extraction_type = 'FULL') then
18429
18430 PJI_FM_PLAN_MAINT_PVT.INSERT_INTO_AC_FACT;
18431
18432 elsif (l_extraction_type = 'INCREMENTAL' or
18433 l_extraction_type = 'PARTIAL' or
18434 l_extraction_type = 'RBS') then
18435
18436 PJI_FM_PLAN_MAINT_PVT.INSERT_AC_ROWS;
18437
18438 end if;
18439
18440 PJI_PROCESS_UTIL.REGISTER_STEP_COMPLETION(l_process, 'PJI_PJP_SUM_ROLLUP.INSERT_ACR_ROWS(p_worker_id);');
18441
18442 commit;
18443
18444 end INSERT_ACR_ROWS;
18445
18446
18447 -- -----------------------------------------------------
18448 -- procedure CLEANUP_ACR_ROWID_TABLE
18449 --
18450 -- History
18451 -- 19-MAR-2004 SVERMETT Created
18452 --
18453 -- Internal PJP Summarization API.
18454 --
18455 -- -----------------------------------------------------
18456 procedure CLEANUP_ACR_ROWID_TABLE (p_worker_id in number) is
18457
18458 l_process varchar2(30);
18459 l_extraction_type varchar2(30);
18460
18461 l_return_status varchar2(255);
18462 l_msg_count number;
18463 l_msg_data varchar2(2000);
18464
18465 begin
18466
18467 l_process := PJI_PJP_SUM_MAIN.g_process || to_char(p_worker_id);
18468
18469 if (not PJI_PROCESS_UTIL.NEED_TO_RUN_STEP(l_process, 'PJI_PJP_SUM_ROLLUP.CLEANUP_ACR_ROWID_TABLE(p_worker_id);')) then
18470 return;
18471 end if;
18472
18473 l_extraction_type := PJI_PROCESS_UTIL.GET_PROCESS_PARAMETER(l_process, 'EXTRACTION_TYPE');
18474
18475 -- if (l_extraction_type = 'INCREMENTAL' or
18476 -- l_extraction_type = 'PARTIAL' or
18477 -- l_extraction_type = 'RBS') then
18478 --
18479 -- PJI_FM_PLAN_MAINT_PVT.CLEANUP_AC_RMAP_FPR;
18480 --
18481 -- end if;
18482
18483 PJI_PROCESS_UTIL.REGISTER_STEP_COMPLETION(l_process, 'PJI_PJP_SUM_ROLLUP.CLEANUP_ACR_ROWID_TABLE(p_worker_id);');
18484
18485 commit;
18486
18487 end CLEANUP_ACR_ROWID_TABLE;
18488
18489
18490 -- -----------------------------------------------------
18491 -- procedure UPDATE_XBS_DENORM
18492 --
18493 -- History
18494 -- 19-MAR-2004 SVERMETT Created
18495 --
18496 -- This API will be called for both online and bulk processing.
18497 --
18498 -- -----------------------------------------------------
18499 procedure UPDATE_XBS_DENORM (p_worker_id in number default null) is
18500
18501 l_process varchar2(30);
18502 l_extraction_type varchar2(30);
18503
18504 l_last_update_date date;
18505 l_last_updated_by number;
18506 l_creation_date date;
18507 l_created_by number;
18508 l_last_update_login number;
18509
18510 l_count number;
18511 l_wbs_version_id_tbl SYSTEM.pa_num_tbl_type := SYSTEM.pa_num_tbl_type();
18512
18513 begin
18514
18515 l_last_update_date := sysdate;
18516 l_last_updated_by := FND_GLOBAL.USER_ID;
18517 l_creation_date := sysdate;
18518 l_created_by := FND_GLOBAL.USER_ID;
18519 l_last_update_login := FND_GLOBAL.LOGIN_ID;
18520
18521 if (p_worker_id is not null) then
18522
18523 l_process := PJI_PJP_SUM_MAIN.g_process || to_char(p_worker_id);
18524
18525 if (not PJI_PROCESS_UTIL.NEED_TO_RUN_STEP(l_process, 'PJI_PJP_SUM_ROLLUP.UPDATE_XBS_DENORM(p_worker_id);')) then
18526 return;
18527 end if;
18528
18529 l_extraction_type := PJI_PROCESS_UTIL.GET_PROCESS_PARAMETER(l_process, 'EXTRACTION_TYPE');
18530
18531 l_count := 0;
18532
18533 if (l_extraction_type = 'INCREMENTAL') then
18534
18535
18536 BEGIN
18537 select distinct struct_version_id bulk collect
18538 into l_wbs_version_id_tbl
18539 from (
18540 select ver.element_version_id struct_version_id
18541 from PA_PROJ_ELEMENT_VERSIONS ver
18542 where ver.OBJECT_TYPE = 'PA_STRUCTURES' and
18543 ver.PRG_GROUP in
18544 (select
18545 decode(invert.INVERT_ID,
18546 1, log.EVENT_OBJECT,
18547 2, log.ATTRIBUTE1) PRG_GROUP
18548 from
18549 PJI_PA_PROJ_EVENTS_LOG log,
18550 (
18551 select 1 INVERT_ID from DUAL union all
18552 select 2 INVERT_ID from DUAL
18553 ) invert
18554 where
18555 log.WORKER_ID = p_worker_id and
18556 log.EVENT_TYPE = 'PRG_CHANGE' and
18557 log.EVENT_OBJECT <> -1)
18558 union all
18559 select ver.wbs_version_id
18560 from PJI_PA_PROJ_EVENTS_LOG log,Pji_pjp_wbs_header ver
18561 where ver.project_id=to_number(log.ATTRIBUTE1) and
18562 log.WORKER_ID = p_worker_id and
18563 log.EVENT_TYPE = 'PRG_CHANGE' and
18564 log.EVENT_OBJECT = -1
18565 union all
18566 select to_number(decode(invert.INVERT_ID,
18567 1, log.EVENT_OBJECT,
18568 2, log.ATTRIBUTE2)) struct_version_id
18569 from PJI_PA_PROJ_EVENTS_LOG log,
18570 (
18571 select 1 INVERT_ID from DUAL union all
18572 select 2 INVERT_ID from DUAL
18573 ) invert
18574 where
18575 log.WORKER_ID = p_worker_id and
18576 log.EVENT_TYPE in ('WBS_CHANGE', 'WBS_PUBLISH'));
18577 EXCEPTION
18578 WHEN NO_DATA_FOUND then null;
18579 END;
18580
18581
18582
18583 delete from PJI_XBS_DENORM
18584 where SUP_PROJECT_ID in
18585 (select
18586 ver.PROJECT_ID
18587 from
18588 PA_PROJ_ELEMENT_VERSIONS ver
18589 where
18590 ver.OBJECT_TYPE = 'PA_STRUCTURES' and
18591 ver.PRG_GROUP in
18592 (select
18593 decode(invert.INVERT_ID,
18594 1, log.EVENT_OBJECT,
18595 2, log.ATTRIBUTE1) PRG_GROUP
18596 from
18597 PJI_PA_PROJ_EVENTS_LOG log,
18598 (
18599 select 1 INVERT_ID from DUAL union all
18600 select 2 INVERT_ID from DUAL
18601 ) invert
18602 where
18603 log.WORKER_ID = p_worker_id and
18604 log.EVENT_TYPE = 'PRG_CHANGE' and
18605 log.EVENT_OBJECT <> -1));
18606
18607 l_count := l_count + sql%rowcount;
18608
18609 delete from PJI_XBS_DENORM
18610 where SUP_PROJECT_ID in (select log.ATTRIBUTE1
18611 from PJI_PA_PROJ_EVENTS_LOG log
18612 where log.WORKER_ID = p_worker_id and
18613 log.EVENT_TYPE = 'PRG_CHANGE' and
18614 log.EVENT_OBJECT = -1);
18615
18616 l_count := l_count + sql%rowcount;
18617
18618 delete from PJI_XBS_DENORM
18619 where STRUCT_TYPE in ('WBS', 'XBS') and
18620 STRUCT_VERSION_ID in (select
18621 decode(invert.INVERT_ID,
18622 1, log.EVENT_OBJECT,
18623 2, log.ATTRIBUTE2)
18624 from
18625 PJI_PA_PROJ_EVENTS_LOG log,
18626 (
18627 select 1 INVERT_ID from DUAL union all
18628 select 2 INVERT_ID from DUAL
18629 ) invert
18630 where
18631 log.WORKER_ID = p_worker_id and
18632 log.EVENT_TYPE in ('WBS_CHANGE',
18633 'WBS_PUBLISH'));
18634
18635 l_count := l_count + sql%rowcount;
18636
18637 insert into PJI_XBS_DENORM
18638 (
18639 STRUCT_TYPE,
18640 PRG_GROUP,
18641 STRUCT_VERSION_ID,
18642 SUP_PROJECT_ID,
18643 SUP_ID,
18644 SUP_EMT_ID,
18645 SUBRO_ID,
18646 SUB_ID,
18647 SUB_EMT_ID,
18648 SUP_LEVEL,
18649 SUB_LEVEL,
18650 SUB_ROLLUP_ID,
18651 SUB_LEAF_FLAG,
18652 RELATIONSHIP_TYPE,
18653 LAST_UPDATE_DATE,
18654 LAST_UPDATED_BY,
18655 CREATION_DATE,
18656 CREATED_BY,
18657 LAST_UPDATE_LOGIN
18658 )
18659 select
18660 den.STRUCT_TYPE,
18661 den.PRG_GROUP,
18662 den.STRUCT_VERSION_ID,
18663 den.SUP_PROJECT_ID,
18664 den.SUP_ID,
18665 den.SUP_EMT_ID,
18666 den.SUBRO_ID,
18667 den.SUB_ID,
18668 den.SUB_EMT_ID,
18669 den.SUP_LEVEL,
18670 den.SUB_LEVEL,
18671 den.SUB_ROLLUP_ID,
18672 den.SUB_LEAF_FLAG,
18673 den.RELATIONSHIP_TYPE,
18674 l_last_update_date,
18675 l_last_updated_by,
18676 l_creation_date,
18677 l_created_by,
18678 l_last_update_login
18679 from
18680 PA_XBS_DENORM den
18681 where
18682 den.SUP_PROJECT_ID in
18683 (select
18684 ver.PROJECT_ID
18685 from
18686 PA_PROJ_ELEMENT_VERSIONS ver
18687 where
18688 ver.OBJECT_TYPE = 'PA_STRUCTURES' and
18689 ver.PRG_GROUP in
18690 (select
18691 decode(invert.INVERT_ID,
18692 1, log.EVENT_OBJECT,
18693 2, log.ATTRIBUTE1) PRG_GROUP
18694 from
18695 PJI_PA_PROJ_EVENTS_LOG log,
18696 (
18697 select 1 INVERT_ID from DUAL union all
18698 select 2 INVERT_ID from DUAL
18699 ) invert
18700 where
18701 log.WORKER_ID = p_worker_id and
18702 log.EVENT_TYPE = 'PRG_CHANGE' and
18703 log.EVENT_OBJECT <> -1)
18704 union
18705 select to_number(log.ATTRIBUTE1) PROJECT_ID
18706 from PJI_PA_PROJ_EVENTS_LOG log
18707 where log.WORKER_ID = p_worker_id and
18708 log.EVENT_TYPE = 'PRG_CHANGE' and
18709 log.EVENT_OBJECT = -1)
18710 union all
18711 select
18712 den.STRUCT_TYPE,
18713 den.PRG_GROUP,
18714 den.STRUCT_VERSION_ID,
18715 den.SUP_PROJECT_ID,
18716 den.SUP_ID,
18717 den.SUP_EMT_ID,
18718 den.SUBRO_ID,
18719 den.SUB_ID,
18720 den.SUB_EMT_ID,
18721 den.SUP_LEVEL,
18722 den.SUB_LEVEL,
18723 den.SUB_ROLLUP_ID,
18724 den.SUB_LEAF_FLAG,
18725 den.RELATIONSHIP_TYPE,
18726 l_last_update_date,
18727 l_last_updated_by,
18728 l_creation_date,
18729 l_created_by,
18730 l_last_update_login
18731 from
18732 PA_XBS_DENORM den,
18733 (
18734 select
18735 distinct
18736 EVENT_OBJECT,
18737 ATTRIBUTE2
18738 from
18739 PJI_PA_PROJ_EVENTS_LOG
18740 where
18741 WORKER_ID = p_worker_id and
18742 EVENT_TYPE in ('WBS_CHANGE', 'WBS_PUBLISH')
18743 ) log
18744 where
18745 den.STRUCT_TYPE in ('WBS', 'XBS') and
18746 (log.EVENT_OBJECT = den.STRUCT_VERSION_ID or
18747 log.ATTRIBUTE2 = den.STRUCT_VERSION_ID);
18748
18749 l_count := l_count + sql%rowcount;
18750
18751 elsif (l_extraction_type = 'PARTIAL') then
18752
18753 BEGIN
18754 select distinct ver.wbs_version_id bulk collect
18755 into l_wbs_version_id_tbl
18756 from PJI_PJP_PROJ_BATCH_MAP map,Pji_pjp_wbs_header ver
18757 where map.PROJECT_ID=ver.project_id
18758 and map.WORKER_ID = p_worker_id;
18759 EXCEPTION
18760 WHEN NO_DATA_FOUND then null;
18761 END;
18762
18763 delete
18764 from PJI_XBS_DENORM
18765 where SUP_PROJECT_ID in (select map.PROJECT_ID
18766 from PJI_PJP_PROJ_BATCH_MAP map
18767 where WORKER_ID = p_worker_id);
18768
18769 l_count := l_count + sql%rowcount;
18770
18771 insert into PJI_XBS_DENORM
18772 (
18773 STRUCT_TYPE,
18774 PRG_GROUP,
18775 STRUCT_VERSION_ID,
18776 SUP_PROJECT_ID,
18777 SUP_ID,
18778 SUP_EMT_ID,
18779 SUBRO_ID,
18780 SUB_ID,
18781 SUB_EMT_ID,
18782 SUP_LEVEL,
18783 SUB_LEVEL,
18784 SUB_ROLLUP_ID,
18785 SUB_LEAF_FLAG,
18786 RELATIONSHIP_TYPE,
18787 LAST_UPDATE_DATE,
18788 LAST_UPDATED_BY,
18789 CREATION_DATE,
18790 CREATED_BY,
18791 LAST_UPDATE_LOGIN
18792 )
18793 select
18794 den.STRUCT_TYPE,
18795 den.PRG_GROUP,
18796 den.STRUCT_VERSION_ID,
18797 den.SUP_PROJECT_ID,
18798 den.SUP_ID,
18799 den.SUP_EMT_ID,
18800 den.SUBRO_ID,
18801 den.SUB_ID,
18802 den.SUB_EMT_ID,
18803 den.SUP_LEVEL,
18804 den.SUB_LEVEL,
18805 den.SUB_ROLLUP_ID,
18806 den.SUB_LEAF_FLAG,
18807 den.RELATIONSHIP_TYPE,
18808 l_last_update_date,
18809 l_last_updated_by,
18810 l_creation_date,
18811 l_created_by,
18812 l_last_update_login
18813 from
18814 PJI_PJP_PROJ_BATCH_MAP map,
18815 PA_XBS_DENORM den
18816 where
18817 map.WORKER_ID = p_worker_id and
18818 den.SUP_PROJECT_ID = map.PROJECT_ID;
18819
18820 l_count := l_count + sql%rowcount;
18821
18822 end if;
18823
18824 --Commented below portion of code for bug 7197275
18825 if (l_count > 0) then -- Uncommented for bug 14571067
18826
18827 -- delete from PJI_REP_XBS_DENORM;
18828 pji_rep_util.Log_Struct_Change_Event(l_wbs_version_id_tbl); --Uncommented for bug 14571067
18829 -- where PROJECT_ID in (select map.PROJECT_ID
18830 -- from PJI_PJP_PROJ_BATCH_MAP map
18831 -- where map.WORKER_ID = p_worker_id);
18832
18833 end if; -- Uncommented for bug 14571067
18834
18835 PJI_PROCESS_UTIL.REGISTER_STEP_COMPLETION(l_process, 'PJI_PJP_SUM_ROLLUP.UPDATE_XBS_DENORM(p_worker_id);');
18836
18837 commit;
18838
18839 else -- online mode
18840
18841 IF g_old_struct_version IS NOT NULL THEN
18842 l_wbs_version_id_tbl.EXTEND;
18843 l_wbs_version_id_tbl(1) :=g_old_struct_version ;
18844 IF g_new_struct_version IS NOT NULL and g_old_struct_version<>g_new_struct_version THEN
18845 l_wbs_version_id_tbl.EXTEND;
18846 l_wbs_version_id_tbl(2) :=g_new_struct_version ;
18847 END IF;
18848 else
18849 IF g_new_struct_version IS NOT NULL THEN
18850 l_wbs_version_id_tbl.EXTEND;
18851 l_wbs_version_id_tbl(1) :=g_new_struct_version ;
18852 END IF;
18853 END IF;
18854
18855 -- online mode, refresh denorm table for a single WBS version ID
18856
18857 l_count := 0;
18858 /* For 14040849 removed the hint in the below delete */
18859 delete
18860 from PJI_XBS_DENORM den
18861 where den.STRUCT_TYPE in ('WBS', 'XBS') and
18862 den.SUP_PROJECT_ID = g_project_id and
18863 den.STRUCT_VERSION_ID in (g_old_struct_version,
18864 g_new_struct_version);
18865
18866 l_count := l_count + sql%rowcount;
18867
18868 delete /*+ index(den PJI_XBS_DENORM_N4) */ /* modified the hint to use PJI_XBS_DENORM_N4 instead of PJI_XBS_DENORM_N3 */
18869 from PJI_XBS_DENORM den
18870 where den.STRUCT_TYPE = 'PRG' and
18871 den.SUP_PROJECT_ID in (select prg.SUP_PROJECT_ID
18872 from PJI_FP_AGGR_XBS_T prg
18873 where prg.STRUCT_TYPE = 'PRG');
18874
18875 l_count := l_count + sql%rowcount;
18876
18877 insert into PJI_XBS_DENORM
18878 (
18879 STRUCT_TYPE,
18880 PRG_GROUP,
18881 STRUCT_VERSION_ID,
18882 SUP_PROJECT_ID,
18883 SUP_ID,
18884 SUP_EMT_ID,
18885 SUBRO_ID,
18886 SUB_ID,
18887 SUB_EMT_ID,
18888 SUP_LEVEL,
18889 SUB_LEVEL,
18890 SUB_ROLLUP_ID,
18891 SUB_LEAF_FLAG,
18892 RELATIONSHIP_TYPE,
18893 LAST_UPDATE_DATE,
18894 LAST_UPDATED_BY,
18895 CREATION_DATE,
18896 CREATED_BY,
18897 LAST_UPDATE_LOGIN
18898 )
18899 select /*+ index(den PA_XBS_DENORM_N2) */
18900 den.STRUCT_TYPE,
18901 den.PRG_GROUP,
18902 den.STRUCT_VERSION_ID,
18903 den.SUP_PROJECT_ID,
18904 den.SUP_ID,
18905 den.SUP_EMT_ID,
18906 den.SUBRO_ID,
18907 den.SUB_ID,
18908 den.SUB_EMT_ID,
18909 den.SUP_LEVEL,
18910 den.SUB_LEVEL,
18911 den.SUB_ROLLUP_ID,
18912 den.SUB_LEAF_FLAG,
18913 den.RELATIONSHIP_TYPE,
18914 l_last_update_date,
18915 l_last_updated_by,
18916 l_creation_date,
18917 l_created_by,
18918 l_last_update_login
18919 from
18920 PA_XBS_DENORM den
18921 where
18922 den.STRUCT_TYPE in ('WBS', 'XBS') and
18923 den.SUP_PROJECT_ID = g_project_id and
18924 den.STRUCT_VERSION_ID in (g_old_struct_version,
18925 g_new_struct_version)
18926 union all
18927 select /*+ index(den PA_XBS_DENORM_N4) */ /* modified the hint to use PA_XBS_DENORM_N4 instead of PA_XBS_DENORM_N3 */
18928 den.STRUCT_TYPE,
18929 den.PRG_GROUP,
18930 den.STRUCT_VERSION_ID,
18931 den.SUP_PROJECT_ID,
18932 den.SUP_ID,
18933 den.SUP_EMT_ID,
18934 den.SUBRO_ID,
18935 den.SUB_ID,
18936 den.SUB_EMT_ID,
18937 den.SUP_LEVEL,
18938 den.SUB_LEVEL,
18939 den.SUB_ROLLUP_ID,
18940 den.SUB_LEAF_FLAG,
18941 den.RELATIONSHIP_TYPE,
18942 l_last_update_date,
18943 l_last_updated_by,
18944 l_creation_date,
18945 l_created_by,
18946 l_last_update_login
18947 from
18948 PA_XBS_DENORM den
18949 where
18950 den.STRUCT_TYPE = 'PRG' and
18951 den.SUP_PROJECT_ID in (select prg.SUP_PROJECT_ID
18952 from PJI_FP_AGGR_XBS_T prg
18953 where prg.STRUCT_TYPE = 'PRG');
18954
18955 --Commented below portion of code for bug 7197275
18956 if (l_count > 0) then --Uncommented for bug 14571067
18957
18958 --delete from PJI_REP_XBS_DENORM;
18959 pji_rep_util.Log_Struct_Change_Event(l_wbs_version_id_tbl); --Uncommented for bug 14571067
18960 -- where PROJECT_ID = g_project_id and
18961 -- OWNER_WBS_VERSION_ID in (g_old_struct_version,
18962 -- g_new_struct_version);
18963
18964 end if; --Uncommented for bug 14571067
18965
18966 delete from PJI_XBS_DENORM_DELTA_T;
18967
18968 end if;
18969
18970 end UPDATE_XBS_DENORM;
18971
18972
18973 -- -----------------------------------------------------
18974 -- procedure UPDATE_RBS_DENORM
18975 --
18976 -- History
18977 -- 19-MAR-2004 SVERMETT Created
18978 --
18979 -- Internal PJP Summarization API.
18980 --
18981 -- Called by RBS program
18982 --
18983 -- This API will be called for both online and bulk processing.
18984 --
18985 -- -----------------------------------------------------
18986 procedure UPDATE_RBS_DENORM (p_worker_id in number default null) is
18987
18988 l_process varchar2(30);
18989 l_extraction_type varchar2(30);
18990
18991 l_last_update_date date;
18992 l_last_updated_by number;
18993 l_creation_date date;
18994 l_created_by number;
18995 l_last_update_login number;
18996
18997 l_fpm_upgrade varchar2(30);
18998
18999 begin
19000
19001 l_last_update_date := sysdate;
19002 l_last_updated_by := FND_GLOBAL.USER_ID;
19003 l_creation_date := sysdate;
19004 l_created_by := FND_GLOBAL.USER_ID;
19005 l_last_update_login := FND_GLOBAL.LOGIN_ID;
19006
19007 l_fpm_upgrade := PJI_UTILS.GET_PARAMETER('PJI_FPM_UPGRADE');
19008
19009 if (p_worker_id is not null) then
19010
19011 l_process := PJI_PJP_SUM_MAIN.g_process || to_char(p_worker_id);
19012
19013 if (not PJI_PROCESS_UTIL.NEED_TO_RUN_STEP(l_process, 'PJI_PJP_SUM_ROLLUP.UPDATE_RBS_DENORM(p_worker_id);')) then
19014 return;
19015 end if;
19016
19017 l_extraction_type := PJI_PROCESS_UTIL.GET_PROCESS_PARAMETER(l_process, 'EXTRACTION_TYPE');
19018
19019 if (nvl(l_fpm_upgrade, 'P') <> 'C' and
19020 l_extraction_type = 'FULL') then
19021
19022 insert into PJI_RBS_DENORM den_i
19023 (
19024 STRUCT_VERSION_ID,
19025 SUP_ID,
19026 SUBRO_ID,
19027 SUB_ID,
19028 SUP_LEVEL,
19029 SUB_LEVEL,
19030 SUB_LEAF_FLAG,
19031 LAST_UPDATE_DATE,
19032 LAST_UPDATED_BY,
19033 CREATION_DATE,
19034 CREATED_BY,
19035 LAST_UPDATE_LOGIN
19036 )
19037 select
19038 pa.STRUCT_VERSION_ID,
19039 pa.SUP_ID,
19040 pa.SUBRO_ID,
19041 pa.SUB_ID,
19042 pa.SUP_LEVEL,
19043 pa.SUB_LEVEL,
19044 pa.SUB_LEAF_FLAG,
19045 l_last_update_date,
19046 l_last_updated_by,
19047 l_creation_date,
19048 l_created_by,
19049 l_last_update_login
19050 from
19051 PA_RBS_DENORM pa,
19052 PJI_RBS_DENORM pji
19053 where
19054 nvl(pa.STRUCT_VERSION_ID, -1)
19055 = nvl(pji.STRUCT_VERSION_ID (+), -1) and
19056 nvl(pa.SUP_ID, -1) = nvl(pji.SUP_ID (+), -1) and
19057 nvl(pa.SUBRO_ID, -1) = nvl(pji.SUBRO_ID (+), -1) and
19058 nvl(pa.SUB_ID, -1) = nvl(pji.SUB_ID (+), -1) and
19059 nvl(pa.SUP_LEVEL, -1) = nvl(pji.SUP_LEVEL (+), -1) and
19060 nvl(pa.SUB_LEVEL, -1) = nvl(pji.SUB_LEVEL (+), -1) and
19061 nvl(pa.SUB_LEAF_FLAG, 'PJI$NULL')
19062 = nvl(pji.SUB_LEAF_FLAG (+), 'PJI$NULL') and
19063 pji.STRUCT_VERSION_ID is null;
19064
19065 elsif (l_extraction_type = 'INCREMENTAL' or
19066 (nvl(l_fpm_upgrade, 'P') = 'C' and
19067 l_extraction_type = 'FULL')) then
19068
19069 /* Added for Bug 9099240 Start */
19070 if PA_RBS_MAPPING.g_max_rbs_id1 is not null or
19071 PA_RBS_MAPPING.g_max_rbs_id2 is not null then
19072
19073 insert into PJI_RBS_DENORM
19074 (
19075 STRUCT_VERSION_ID,
19076 SUP_ID,
19077 SUBRO_ID,
19078 SUB_ID,
19079 SUP_LEVEL,
19080 SUB_LEVEL,
19081 SUB_LEAF_FLAG,
19082 LAST_UPDATE_DATE,
19083 LAST_UPDATED_BY,
19084 CREATION_DATE,
19085 CREATED_BY,
19086 LAST_UPDATE_LOGIN
19087 )
19088 select
19089 interim.struct_version_id,
19090 interim.sup_id,
19091 interim.subro_id,
19092 interim.sub_id,
19093 interim.sup_level,
19094 interim.sub_level,
19095 interim.sub_leaf_flag,
19096 l_last_update_date,
19097 l_last_updated_by,
19098 l_creation_date,
19099 l_created_by,
19100 l_last_update_login
19101 from PJI_FP_AGGR_RBS interim
19102 where interim.worker_id = p_worker_id;
19103
19104 else
19105 /* Added for Bug 9099240 End */
19106
19107 delete from PJI_RBS_DENORM
19108 where STRUCT_VERSION_ID in (select log.EVENT_OBJECT
19109 from PJI_PA_PROJ_EVENTS_LOG log
19110 where log.WORKER_ID = p_worker_id and
19111 log.EVENT_TYPE = 'PJI_RBS_CHANGE');
19112
19113 insert into PJI_RBS_DENORM
19114 (
19115 STRUCT_VERSION_ID,
19116 SUP_ID,
19117 SUBRO_ID,
19118 SUB_ID,
19119 SUP_LEVEL,
19120 SUB_LEVEL,
19121 SUB_LEAF_FLAG,
19122 LAST_UPDATE_DATE,
19123 LAST_UPDATED_BY,
19124 CREATION_DATE,
19125 CREATED_BY,
19126 LAST_UPDATE_LOGIN
19127 )
19128 select
19129 den.STRUCT_VERSION_ID,
19130 den.SUP_ID,
19131 den.SUBRO_ID,
19132 den.SUB_ID,
19133 den.SUP_LEVEL,
19134 den.SUB_LEVEL,
19135 den.SUB_LEAF_FLAG,
19136 l_last_update_date,
19137 l_last_updated_by,
19138 l_creation_date,
19139 l_created_by,
19140 l_last_update_login
19141 from
19142 PA_RBS_DENORM den,
19143 (
19144 select
19145 distinct
19146 log.EVENT_OBJECT
19147 from
19148 PJI_PA_PROJ_EVENTS_LOG log
19149 where
19150 log.WORKER_ID = p_worker_id and
19151 log.EVENT_TYPE in ('PJI_RBS_CHANGE')
19152 ) log
19153 where
19154 den.STRUCT_VERSION_ID = log.EVENT_OBJECT;
19155
19156 end if; /* Added for Bug 9099240 */
19157
19158 elsif (l_extraction_type = 'RBS') then
19159
19160 delete from PJI_RBS_DENORM
19161 where STRUCT_VERSION_ID in (select
19162 decode(log.EVENT_TYPE,
19163 'RBS_PUSH',
19164 decode(invert.INVERT_ID,
19165 1, log.EVENT_OBJECT,
19166 2, log.ATTRIBUTE2),
19167 'RBS_DELETE', log.EVENT_OBJECT)
19168 from
19169 PJI_PA_PROJ_EVENTS_LOG log,
19170 (
19171 select 1 INVERT_ID from DUAL union all
19172 select 2 INVERT_ID from DUAL
19173 ) invert
19174 where
19175 log.WORKER_ID = p_worker_id and
19176 log.EVENT_TYPE in ('RBS_PUSH',
19177 'RBS_DELETE'));
19178
19179 insert into PJI_RBS_DENORM
19180 (
19181 STRUCT_VERSION_ID,
19182 SUP_ID,
19183 SUBRO_ID,
19184 SUB_ID,
19185 SUP_LEVEL,
19186 SUB_LEVEL,
19187 SUB_LEAF_FLAG,
19188 LAST_UPDATE_DATE,
19189 LAST_UPDATED_BY,
19190 CREATION_DATE,
19191 CREATED_BY,
19192 LAST_UPDATE_LOGIN
19193 )
19194 select
19195 den.STRUCT_VERSION_ID,
19196 den.SUP_ID,
19197 den.SUBRO_ID,
19198 den.SUB_ID,
19199 den.SUP_LEVEL,
19200 den.SUB_LEVEL,
19201 den.SUB_LEAF_FLAG,
19202 l_last_update_date,
19203 l_last_updated_by,
19204 l_creation_date,
19205 l_created_by,
19206 l_last_update_login
19207 from
19208 PA_RBS_DENORM den,
19209 (
19210 select
19211 distinct
19212 EVENT_OBJECT,
19213 ATTRIBUTE2
19214 from
19215 PJI_PA_PROJ_EVENTS_LOG
19216 where
19217 WORKER_ID = p_worker_id and
19218 EVENT_TYPE = 'RBS_PUSH'
19219 ) log
19220 where
19221 den.STRUCT_VERSION_ID = log.EVENT_OBJECT;
19222
19223 end if;
19224
19225 PJI_PROCESS_UTIL.REGISTER_STEP_COMPLETION(l_process, 'PJI_PJP_SUM_ROLLUP.UPDATE_RBS_DENORM(p_worker_id);');
19226
19227 commit;
19228
19229 else -- online mode
19230
19231 /* Added for Bug 9099240 Start */
19232 if PA_RBS_MAPPING.g_max_rbs_id1 is not null or
19233 PA_RBS_MAPPING.g_max_rbs_id2 is not null then
19234
19235 insert into PJI_RBS_DENORM
19236 (
19237 STRUCT_VERSION_ID,
19238 SUP_ID,
19239 SUBRO_ID,
19240 SUB_ID,
19241 SUP_LEVEL,
19242 SUB_LEVEL,
19243 SUB_LEAF_FLAG,
19244 LAST_UPDATE_DATE,
19245 LAST_UPDATED_BY,
19246 CREATION_DATE,
19247 CREATED_BY,
19248 LAST_UPDATE_LOGIN
19249 )
19250 select
19251 interim.struct_version_id,
19252 interim.sup_id,
19253 interim.subro_id,
19254 interim.sub_id,
19255 interim.sup_level,
19256 interim.sub_level,
19257 interim.sub_leaf_flag,
19258 l_last_update_date,
19259 l_last_updated_by,
19260 l_creation_date,
19261 l_created_by,
19262 l_last_update_login
19263 from PJI_FP_AGGR_RBS_T interim
19264 where interim.worker_id = 1; /* Modified for bug 9709502 */
19265
19266 else
19267 /* Added for Bug 9099240 End */
19268
19269 delete from PJI_RBS_DENORM
19270 where STRUCT_VERSION_ID = g_rbs_version;
19271
19272 insert into PJI_RBS_DENORM
19273 (
19274 STRUCT_VERSION_ID,
19275 SUP_ID,
19276 SUBRO_ID,
19277 SUB_ID,
19278 SUP_LEVEL,
19279 SUB_LEVEL,
19280 SUB_LEAF_FLAG,
19281 LAST_UPDATE_DATE,
19282 LAST_UPDATED_BY,
19283 CREATION_DATE,
19284 CREATED_BY,
19285 LAST_UPDATE_LOGIN
19286 )
19287 select
19288 den.STRUCT_VERSION_ID,
19289 den.SUP_ID,
19290 den.SUBRO_ID,
19291 den.SUB_ID,
19292 den.SUP_LEVEL,
19293 den.SUB_LEVEL,
19294 den.SUB_LEAF_FLAG,
19295 l_last_update_date,
19296 l_last_updated_by,
19297 l_creation_date,
19298 l_created_by,
19299 l_last_update_login
19300 from
19301 PA_RBS_DENORM den
19302 where
19303 den.STRUCT_VERSION_ID = g_rbs_version;
19304
19305 -- delete from PJI_RBS_DENORM_DELTA_T;
19306
19307 end if; /* Added for Bug 9099240 */
19308
19309 end if;
19310
19311 /* Added for Bug 9099240 Start */
19312 if l_extraction_type is null then
19313 PJI_PJP_SUM_DENORM.cleanup_rbs_denorm(p_worker_id,'ONLINE');
19314 else
19315 PJI_PJP_SUM_DENORM.cleanup_rbs_denorm(p_worker_id,l_extraction_type);
19316 end if;
19317 /* Added for Bug 9099240 End */
19318
19319 end UPDATE_RBS_DENORM;
19320
19321
19322 -- -----------------------------------------------------
19323 -- procedure PROCESS_PENDING_EVENTS
19324 --
19325 -- History
19326 -- 19-MAR-2004 SVERMETT Created
19327 --
19328 -- Internal PJP Summarization API.
19329 --
19330 -- -----------------------------------------------------
19331 procedure PROCESS_PENDING_EVENTS (p_worker_id in number) is
19332
19333 l_process varchar2(30);
19334 l_extraction_type varchar2(30);
19335
19336 l_return_status varchar2(255);
19337 l_msg_count number;
19338 l_msg_data varchar2(2000);
19339
19340 begin
19341
19342 l_process := PJI_PJP_SUM_MAIN.g_process || to_char(p_worker_id);
19343
19344 if (not PJI_PROCESS_UTIL.NEED_TO_RUN_STEP(l_process, 'PJI_PJP_SUM_ROLLUP.PROCESS_PENDING_EVENTS(p_worker_id);')) then
19345 return;
19346 end if;
19347
19348 l_extraction_type := PJI_PROCESS_UTIL.GET_PROCESS_PARAMETER(l_process, 'EXTRACTION_TYPE');
19349
19350 begin
19351 PJI_FM_XBS_ACCUM_MAINT.PROCESS_PENDING_EVENTS(l_return_status,
19352 l_msg_data);
19353 exception when others then
19354 PJI_UTILS.WRITE2LOG('PROCESS_PENDING_EVENTS:' || SQLERRM);
19355 end;
19356
19357 PJI_PROCESS_UTIL.REGISTER_STEP_COMPLETION(l_process, 'PJI_PJP_SUM_ROLLUP.PROCESS_PENDING_EVENTS(p_worker_id);');
19358
19359 commit;
19360
19361 end PROCESS_PENDING_EVENTS;
19362
19363
19364 -- -----------------------------------------------------
19365 -- procedure PROCESS_PENDING_PLAN_UPDATES
19366 --
19367 -- History
19368 -- 19-MAR-2004 SVERMETT Created
19369 --
19370 -- Internal PJP Summarization API.
19371 --
19372 -- -----------------------------------------------------
19373 procedure PROCESS_PENDING_PLAN_UPDATES (p_worker_id in number) is
19374
19375 l_process varchar2(30);
19376 l_extraction_type varchar2(30);
19377
19378 l_return_status varchar2(255);
19379 l_msg_count number;
19380 l_msg_data varchar2(2000);
19381 l_pji_schema varchar2(30); -- Added for bug 13897252
19382
19383 begin
19384
19385 l_process := PJI_PJP_SUM_MAIN.g_process || to_char(p_worker_id);
19386 l_pji_schema := pji_utils.get_pji_schema_name; -- Added for bug 13897252
19387
19388 if (not PJI_PROCESS_UTIL.NEED_TO_RUN_STEP(l_process, 'PJI_PJP_SUM_ROLLUP.PROCESS_PENDING_PLAN_UPDATES(p_worker_id);')) then
19389 return;
19390 end if;
19391
19392 l_extraction_type := PJI_PROCESS_UTIL.GET_PROCESS_PARAMETER(l_process, 'EXTRACTION_TYPE');
19393
19394 PJI_FM_PLAN_MAINT_PVT.PROCESS_PENDING_PLAN_UPDATES(l_extraction_type,
19395 l_return_status,
19396 l_msg_data);
19397
19398 /* Added for bug 13897252 starts */
19399 IF PJI_UTILS.GET_PARAMETER('PJP_SIN_PRG') = 'Y' then
19400 PJI_PJP_PRG_PERF_ALL.GATHER_TEMP_STATS(p_ownname => l_pji_schema
19401 ,p_tabname => 'PJI_FP_AGGR_PJP1'
19402 ,p_partname => 'P'||p_worker_id
19403 ,p_percent => 10);
19404
19405 END IF; /* Added for bug 13897252 ends */
19406
19407 PJI_PROCESS_UTIL.REGISTER_STEP_COMPLETION(l_process, 'PJI_PJP_SUM_ROLLUP.PROCESS_PENDING_PLAN_UPDATES(p_worker_id);');
19408
19409 commit;
19410
19411 end PROCESS_PENDING_PLAN_UPDATES;
19412
19413
19414 -- -----------------------------------------------------
19415 -- procedure GET_PLANRES_ACTUALS
19416 --
19417 -- History
19418 -- 26-JAN-2004 SASHAIK Created
19419 --
19420 -- Internal PJP Summarization API.
19421 --
19422 -- -----------------------------------------------------
19423 procedure GET_PLANRES_ACTUALS (p_worker_id in number) is
19424
19425 cursor project_list (p_worker_id in number) is
19426 select
19427 ROWNUM,
19428 PROJECT_ID
19429 from
19430 PJI_PJP_PROJ_BATCH_MAP
19431 where
19432 WORKER_ID = p_worker_id and
19433 PJI_PROJECT_STATUS = 'Y' and
19434 rownum <= G_PROGRESS_COMMIT_SIZE;
19435
19436 l_process varchar2(30);
19437 l_extraction_type varchar2(30);
19438 l_extraction_type_wp varchar2(30);
19439
19440 l_project_id_tbl system.pa_num_tbl_type;
19441 l_prj_index number;
19442 l_return_status varchar2(255);
19443 l_msg_count number;
19444 l_msg_data varchar2(2000);
19445 l_ret_msg_data varchar2(2000);
19446 l_ret_status varchar2(255);
19447 l_success varchar2(1) := 'Y';
19448 l_err_msg1 VARCHAR2(100):= 'Error in PJI_PJP_SUM_ROLLUP.GET_PLANRES_ACTUALS -> PA_PROGRESS_PUB.GET_SUMMARIZED_ACTUALS';
19449 l_err_msg2 VARCHAR2(100):= 'Error in PJI_PJP_SUM_ROLLUP.GET_PLANRES_ACTUALS -> PJI_FM_PLAN_MAINT.GET_ACTUALS_SUMM';
19450
19451 begin
19452
19453 l_process := PJI_PJP_SUM_MAIN.g_process || to_char(p_worker_id);
19454 l_ret_status := FND_API.G_RET_STS_SUCCESS;
19455
19456 if (not PJI_PROCESS_UTIL.NEED_TO_RUN_STEP(l_process, 'PJI_PJP_SUM_ROLLUP.GET_PLANRES_ACTUALS(p_worker_id);')) then
19457 return;
19458 end if;
19459
19460 l_extraction_type := PJI_PROCESS_UTIL.GET_PROCESS_PARAMETER(l_process, 'EXTRACTION_TYPE');
19461
19462 -- Incr-Incr, Full-Initial, rbs-full, pr-full.
19463 SELECT DECODE(l_extraction_type, 'INCREMENTAL', 'INCREMENTAL', 'FULL', 'INITIAL', 'FULL')
19464 INTO l_extraction_type_wp
19465 FROM DUAL;
19466
19467 LOOP
19468
19469 l_project_id_tbl := system.pa_num_tbl_type();
19470 l_project_id_tbl.delete;
19471 l_prj_index := 1;
19472
19473 for c in project_list(p_worker_id) loop
19474 l_project_id_tbl.extend(1);
19475 l_project_id_tbl(l_prj_index) := c.PROJECT_ID;
19476 l_prj_index := l_prj_index + 1;
19477 end loop;
19478
19479 EXIT WHEN l_project_id_tbl.COUNT = 0;
19480
19481 if (l_prj_index > 1) then
19482
19483 Pa_Task_Pub1.G_CALL_PJI_ROLLUP := 'N';
19484
19485 savepoint S_PROGRESS_ROLLUP;
19486
19487 PA_PROGRESS_PUB.GET_SUMMARIZED_ACTUALS(p_project_id_list => l_project_id_tbl,
19488 p_extraction_type => l_extraction_type_wp,
19489 p_plan_res_level => 'Y',
19490 x_return_status => l_return_status,
19491 x_msg_count => l_msg_count,
19492 x_msg_data => l_msg_data);
19493
19494
19495 if (l_return_status <> FND_API.G_RET_STS_SUCCESS) then
19496 FND_MESSAGE.SET_NAME('PA', l_msg_data);
19497 l_ret_msg_data := FND_MESSAGE.GET;
19498 rollback to S_PROGRESS_ROLLUP;
19499 l_success := 'Y';
19500 end if;
19501
19502 -- l_success := 'N'; -- NOTE!!! This condition is present only to simulate failure
19503 -- condition. It is to be commented at all times in checked
19504 -- in code.
19505
19506 forall j in 1..l_project_id_tbl.COUNT
19507 update PJI_PJP_PROJ_BATCH_MAP
19508 set pji_project_status =
19509 decode(l_return_status
19510 , FND_API.G_RET_STS_SUCCESS
19511 , 'S' -- Success
19512 , 'S' -- keeping this for future requirement Pending processing as actuals did not get returned for this project.
19513 ),
19514 act_err_msg= decode(l_return_status
19515 , FND_API.G_RET_STS_SUCCESS
19516 , act_err_msg
19517 , l_ret_msg_data
19518 )
19519 where WORKER_ID = p_worker_id and
19520 project_id = l_project_id_tbl(j);
19521
19522 COMMIT;
19523
19524 end if;
19525
19526 END LOOP;
19527
19528 if l_success <> 'Y' then
19529
19530 update pji_pjp_proj_batch_map -- Process the pending projects in the next sumz run.
19531 set pji_project_status = 'Y'
19532 where
19533 WORKER_ID = p_worker_id and
19534 pji_project_status = 'P';
19535
19536 commit;
19537 dbms_standard.raise_application_error(-20110, l_err_msg1);
19538
19539 end if;
19540
19541 -- Reset flags. 'N' means actuals don't exist for this project.
19542 -- Reset flags for only those projects for which actuals exist.
19543 update pji_pjp_proj_batch_map
19544 set pji_project_status = 'Y'
19545 where
19546 WORKER_ID = p_worker_id and
19547 pji_project_status <> 'N';
19548
19549
19550 PJI_FM_PLAN_MAINT.GET_ACTUALS_SUMM (
19551 p_extr_type => l_extraction_type
19552 , x_return_status => l_return_status
19553 , x_msg_code => l_msg_data ) ;
19554
19555 IF (l_return_status <> FND_API.G_RET_STS_SUCCESS) THEN
19556 dbms_standard.raise_application_error(-20120, l_err_msg2);
19557 END IF;
19558
19559 -- PA_ppr_rollup_PVT.CREATE_CBS_SLICE (p_worker_id, l_extraction_type ); -- This call is not needed since CBS version will not be frozen
19560
19561 PJI_PROCESS_UTIL.REGISTER_STEP_COMPLETION(l_process, 'PJI_PJP_SUM_ROLLUP.GET_PLANRES_ACTUALS(p_worker_id);');
19562
19563 commit;
19564
19565 end GET_PLANRES_ACTUALS;
19566
19567
19568 -- -----------------------------------------------------
19569 -- procedure GET_TASK_ROLLUP_ACTUALS
19570 --
19571 -- History
19572 -- 26-JAN-2004 SASHAIK Created
19573 --
19574 -- Internal PJP Summarization API.
19575 --
19576 -- -----------------------------------------------------
19577 procedure GET_TASK_ROLLUP_ACTUALS (p_worker_id in number) is
19578
19579 cursor project_list (p_worker_id in number) is
19580 SELECT nvl(ver.PRG_LEVEL,1) PRG_LEVEL,
19581 ver.PROJECT_ID
19582 FROM
19583 pji_pjp_proj_batch_map map,
19584 pa_proj_element_versions ver,
19585 pa_proj_structure_types typ,
19586 pa_proj_elem_ver_structure str
19587 WHERE
19588 typ.STRUCTURE_TYPE_ID = 1
19589 AND typ.PROJ_ELEMENT_ID = str.PROJ_ELEMENT_ID
19590 AND str.LATEST_EFF_PUBLISHED_FLAG = 'Y'
19591 AND str.ELEMENT_VERSION_ID = ver.ELEMENT_VERSION_ID
19592 AND str.PROJ_ELEMENT_ID = ver.PROJ_ELEMENT_ID
19593 AND str.PROJECT_ID = ver.PROJECT_ID
19594 AND ver.OBJECT_TYPE = 'PA_STRUCTURES'
19595 AND ver.PROJECT_ID = map.PROJECT_ID
19596 AND map.WORKER_ID = p_worker_id
19597 AND map.PJI_PROJECT_STATUS = 'Y'
19598 ORDER BY ver.PRG_LEVEL DESC NULLS FIRST;
19599
19600 l_process varchar2(30);
19601 l_extraction_type varchar2(30);
19602
19603 l_project_id_tbl system.pa_num_tbl_type;
19604 l_prg_level_tbl system.pa_num_tbl_type;
19605 l_prj_index number;
19606 l_return_status varchar2(255);
19607 l_msg_count number;
19608 l_msg_data varchar2(2000);
19609
19610 begin
19611
19612
19613 l_process := PJI_PJP_SUM_MAIN.g_process || to_char(p_worker_id);
19614
19615 if (not PJI_PROCESS_UTIL.NEED_TO_RUN_STEP(l_process, 'PJI_PJP_SUM_ROLLUP.GET_TASK_ROLLUP_ACTUALS(p_worker_id);')) then
19616 return;
19617 end if;
19618
19619 l_extraction_type := PJI_PROCESS_UTIL.GET_PROCESS_PARAMETER(l_process, 'EXTRACTION_TYPE');
19620
19621 if (l_extraction_type = 'FULL' or
19622 l_extraction_type = 'INCREMENTAL') then
19623
19624 update PJI_PJP_PROJ_BATCH_MAP
19625 set PJI_PROJECT_STATUS = 'Y'
19626 where WORKER_ID = p_worker_id and
19627 PJI_PROJECT_STATUS is null and
19628 PROJECT_ID in (select distinct
19629 PROJECT_ID
19630 from PJI_FP_AGGR_PJP1
19631 where WORKER_ID = p_worker_id
19632 and PLAN_VERSION_ID = -1);
19633
19634 end if;
19635
19636 l_project_id_tbl := system.pa_num_tbl_type();
19637 l_project_id_tbl.delete;
19638 l_prg_level_tbl := system.pa_num_tbl_type();
19639 l_prg_level_tbl.delete;
19640 l_prj_index := 1;
19641
19642 for c in project_list(p_worker_id) loop
19643 l_project_id_tbl.extend(1);
19644 l_project_id_tbl(l_prj_index) := c.PROJECT_ID;
19645 l_prg_level_tbl.extend(1);
19646 l_prg_level_tbl(l_prj_index) := c.PRG_LEVEL;
19647 l_prj_index := l_prj_index + 1;
19648 end loop;
19649
19650
19651
19652 if (l_prj_index > 1) then
19653
19654 PA_PROGRESS_PUB.GET_SUMMARIZED_ACTUALS(p_project_id_list => l_project_id_tbl,
19655 p_extraction_type => l_extraction_type,
19656 p_plan_res_level => 'N',
19657 p_proj_pgm_level => l_prg_level_tbl,
19658 x_return_status => l_return_status,
19659 x_msg_count => l_msg_count,
19660 x_msg_data => l_msg_data);
19661
19662
19663 if (l_return_status <> FND_API.G_RET_STS_SUCCESS) then
19664 dbms_standard.raise_application_error(-20130, 'Error in PJI_PJP_SUM_ROLLUP.GET_TASK_ROLLUP_ACTUALS -> PA_PROGRESS_PUB.GET_SUMMARIZED_ACTUALS');
19665 end if;
19666
19667 end if;
19668
19669 PJI_PROCESS_UTIL.REGISTER_STEP_COMPLETION(l_process, 'PJI_PJP_SUM_ROLLUP.GET_TASK_ROLLUP_ACTUALS(p_worker_id);');
19670
19671 commit;
19672
19673 end GET_TASK_ROLLUP_ACTUALS;
19674
19675
19676 -- -----------------------------------------------------
19677 -- procedure UNLOCK_ALL_HEADERS
19678 --
19679 -- History
19680 -- 19-MAR-2004 SVERMETT Created
19681 --
19682 -- Internal PJP Summarization API.
19683 --
19684 -- -----------------------------------------------------
19685 procedure UNLOCK_ALL_HEADERS (p_worker_id in number) is
19686
19687 l_process varchar2(30);
19688 l_extraction_type varchar2(30);
19689
19690 l_return_status varchar2(255);
19691 l_msg_count number;
19692 l_msg_data varchar2(2000);
19693 l_msg_code varchar2(255);
19694
19695 begin
19696
19697 l_process := PJI_PJP_SUM_MAIN.g_process || to_char(p_worker_id);
19698
19699 if (not PJI_PROCESS_UTIL.NEED_TO_RUN_STEP(l_process, 'PJI_PJP_SUM_ROLLUP.UNLOCK_ALL_HEADERS(p_worker_id);')) then
19700 return;
19701 end if;
19702
19703 l_extraction_type := PJI_PROCESS_UTIL.GET_PROCESS_PARAMETER(l_process, 'EXTRACTION_TYPE');
19704
19705 update PJI_PJP_WBS_HEADER
19706 set LOCK_FLAG = null
19707 where LOCK_FLAG is not null
19708 and project_id IN
19709 ( SELECT project_id
19710 FROM pji_pjp_proj_batch_map
19711 WHERE worker_id = p_worker_id );
19712
19713 -- SELECT DECODE(l_extraction_type, 'PARTIAL', 'PLANTYPE', l_extraction_type)
19714 -- INTO l_extraction_type
19715 -- FROM DUAL ;
19716
19717 Pji_Fm_Plan_Maint_Pvt.OBTAIN_RELEASE_LOCKS (
19718 p_context => l_extraction_type
19719 , p_lock_mode => NULL
19720 , x_return_status => l_return_status
19721 , x_msg_code => l_msg_code
19722 );
19723
19724 PJI_FM_PLAN_MAINT_PVT.DELETE_PLAN_LINES ( x_return_status => l_return_status );
19725
19726 -- Pji_Fm_Plan_Maint_Pvt.MARK_EXTRACTED_PLANS('SEC');
19727 -- Back to CREATE_SECONDARY_PVT due to issue 5155692
19728
19729 PJI_PROCESS_UTIL.REGISTER_STEP_COMPLETION(l_process, 'PJI_PJP_SUM_ROLLUP.UNLOCK_ALL_HEADERS(p_worker_id);');
19730
19731 commit;
19732
19733 end UNLOCK_ALL_HEADERS;
19734
19735
19736 -- -----------------------------------------------------
19737 -- procedure EXTRACT_FIN_PLAN_VERS_BULK
19738 --
19739 -- History
19740 -- 19-MAR-2004 SVERMETT Created
19741 --
19742 -- Used solely for FP.M Upgrade
19743 --
19744 -- -----------------------------------------------------
19745 procedure EXTRACT_FIN_PLAN_VERS_BULK (p_worker_id in number) is
19746
19747 l_process varchar2(30);
19748 l_extraction_type varchar2(30);
19749
19750 l_return_status varchar2(255);
19751 l_msg_count number;
19752 l_msg_data varchar2(2000);
19753
19754 begin
19755
19756 l_process := PJI_PJP_SUM_MAIN.g_process || to_char(p_worker_id);
19757
19758 if (not PJI_PROCESS_UTIL.NEED_TO_RUN_STEP(l_process, 'PJI_PJP_SUM_ROLLUP.EXTRACT_FIN_PLAN_VERS_BULK(p_worker_id);')) then
19759 return;
19760 end if;
19761
19762 l_extraction_type := PJI_PROCESS_UTIL.GET_PROCESS_PARAMETER(l_process, 'EXTRACTION_TYPE');
19763
19764 PJI_FM_PLAN_MAINT_PVT.EXTRACT_FIN_PLAN_VERS_BULK(p_slice_type => 'PRI');
19765
19766 PJI_PROCESS_UTIL.REGISTER_STEP_COMPLETION(l_process, 'PJI_PJP_SUM_ROLLUP.EXTRACT_FIN_PLAN_VERS_BULK(p_worker_id);');
19767
19768 commit;
19769
19770 end EXTRACT_FIN_PLAN_VERS_BULK;
19771
19772
19773 -- -----------------------------------------------------
19774 -- procedure POPULATE_WBS_HDR
19775 --
19776 -- History
19777 -- 19-MAR-2004 SVERMETT Created
19778 --
19779 -- Used solely for FP.M Upgrade
19780 --
19781 -- -----------------------------------------------------
19782 procedure POPULATE_WBS_HDR (p_worker_id in number) is
19783
19784 l_process varchar2(30);
19785 l_extraction_type varchar2(30);
19786
19787 l_return_status varchar2(255);
19788 l_msg_count number;
19789 l_msg_data varchar2(2000);
19790
19791 begin
19792
19793 l_process := PJI_PJP_SUM_MAIN.g_process || to_char(p_worker_id);
19794
19795 if (not PJI_PROCESS_UTIL.NEED_TO_RUN_STEP(l_process, 'PJI_PJP_SUM_ROLLUP.POPULATE_WBS_HDR(p_worker_id);')) then
19796 return;
19797 end if;
19798
19799 l_extraction_type := PJI_PROCESS_UTIL.GET_PROCESS_PARAMETER(l_process, 'EXTRACTION_TYPE');
19800
19801 PJI_FM_PLAN_MAINT_PVT.POPULATE_WBS_HDR;
19802
19803 PJI_PROCESS_UTIL.REGISTER_STEP_COMPLETION(l_process, 'PJI_PJP_SUM_ROLLUP.POPULATE_WBS_HDR(p_worker_id);');
19804
19805 commit;
19806
19807 end POPULATE_WBS_HDR;
19808
19809
19810 -- -----------------------------------------------------
19811 -- procedure UPDATE_WBS_HDR
19812 --
19813 -- History
19814 -- 19-MAR-2004 SASHAIK Created
19815 --
19816 -- Used solely for FP.M Upgrade
19817 --
19818 -- -----------------------------------------------------
19819 procedure UPDATE_WBS_HDR (p_worker_id in number) is
19820
19821 l_process varchar2(30);
19822 l_extraction_type varchar2(30);
19823
19824 l_return_status varchar2(255);
19825 l_msg_count number;
19826 l_msg_data varchar2(2000);
19827
19828 begin
19829
19830 l_process := PJI_PJP_SUM_MAIN.g_process || to_char(p_worker_id);
19831
19832 if (not PJI_PROCESS_UTIL.NEED_TO_RUN_STEP(l_process, 'PJI_PJP_SUM_ROLLUP.UPDATE_WBS_HDR(p_worker_id);')) then
19833 return;
19834 end if;
19835
19836 l_extraction_type := PJI_PROCESS_UTIL.GET_PROCESS_PARAMETER(l_process, 'EXTRACTION_TYPE');
19837
19838 -- PJI_FM_PLAN_MAINT_PVT.UPDATE_WBS_HDR;
19839 PJI_FM_PLAN_MAINT_PVT.UPDATE_WBS_HDR(p_worker_id);
19840
19841 PJI_PROCESS_UTIL.REGISTER_STEP_COMPLETION(l_process, 'PJI_PJP_SUM_ROLLUP.UPDATE_WBS_HDR(p_worker_id);');
19842
19843 commit;
19844
19845 end UPDATE_WBS_HDR;
19846
19847
19848 -- -----------------------------------------------------
19849 -- procedure POPULATE_RBS_HDR
19850 --
19851 -- History
19852 -- 19-MAR-2004 SVERMETT Created
19853 --
19854 -- Used solely for FP.M Upgrade
19855 --
19856 -- -----------------------------------------------------
19857 procedure POPULATE_RBS_HDR (p_worker_id in number) is
19858
19859 l_process varchar2(30);
19860 l_extraction_type varchar2(30);
19861
19862 l_return_status varchar2(255);
19863 l_msg_count number;
19864 l_msg_data varchar2(2000);
19865
19866 begin
19867
19868 l_process := PJI_PJP_SUM_MAIN.g_process || to_char(p_worker_id);
19869
19870 if (not PJI_PROCESS_UTIL.NEED_TO_RUN_STEP(l_process, 'PJI_PJP_SUM_ROLLUP.POPULATE_RBS_HDR(p_worker_id);')) then
19871 return;
19872 end if;
19873
19874 l_extraction_type := PJI_PROCESS_UTIL.GET_PROCESS_PARAMETER(l_process, 'EXTRACTION_TYPE');
19875
19876 PJI_FM_PLAN_MAINT_PVT.POPULATE_RBS_HDR;
19877
19878 PJI_PROCESS_UTIL.REGISTER_STEP_COMPLETION(l_process, 'PJI_PJP_SUM_ROLLUP.POPULATE_RBS_HDR(p_worker_id);');
19879
19880 commit;
19881
19882 end POPULATE_RBS_HDR;
19883
19884
19885 -- -----------------------------------------------------
19886 -- procedure EXTRACT_PLAN_AMOUNTS_PRIRBS
19887 --
19888 -- History
19889 -- 19-MAR-2004 SVERMETT Created
19890 --
19891 -- Used solely for FP.M Upgrade
19892 --
19893 -- -----------------------------------------------------
19894 procedure EXTRACT_PLAN_AMOUNTS_PRIRBS (p_worker_id in number) is
19895
19896 l_process varchar2(30);
19897 l_extraction_type varchar2(30);
19898
19899 l_return_status varchar2(255);
19900 l_msg_count number;
19901 l_msg_data varchar2(2000);
19902
19903 begin
19904
19905 l_process := PJI_PJP_SUM_MAIN.g_process || to_char(p_worker_id);
19906
19907 if (not PJI_PROCESS_UTIL.NEED_TO_RUN_STEP(l_process, 'PJI_PJP_SUM_ROLLUP.EXTRACT_PLAN_AMOUNTS_PRIRBS(p_worker_id);')) then
19908 return;
19909 end if;
19910
19911 l_extraction_type := PJI_PROCESS_UTIL.GET_PROCESS_PARAMETER(l_process, 'EXTRACTION_TYPE');
19912
19913 PJI_FM_PLAN_MAINT_PVT.EXTRACT_PLAN_AMOUNTS_PRIRBS;
19914
19915 PJI_PROCESS_UTIL.REGISTER_STEP_COMPLETION(l_process, 'PJI_PJP_SUM_ROLLUP.EXTRACT_PLAN_AMOUNTS_PRIRBS(p_worker_id);');
19916
19917 commit;
19918
19919 end EXTRACT_PLAN_AMOUNTS_PRIRBS;
19920
19921
19922 -- -----------------------------------------------------
19923 -- procedure ROLLUP_FPR_RBS_T_SLICE
19924 --
19925 -- History
19926 -- 19-MAR-2004 SVERMETT Created
19927 --
19928 -- Used solely for FP.M Upgrade
19929 --
19930 -- -----------------------------------------------------
19931 procedure ROLLUP_FPR_RBS_T_SLICE (p_worker_id in number) is
19932
19933 l_process varchar2(30);
19934 l_extraction_type varchar2(30);
19935
19936 l_return_status varchar2(255);
19937 l_msg_count number;
19938 l_msg_data varchar2(2000);
19939
19940 begin
19941
19942 l_process := PJI_PJP_SUM_MAIN.g_process || to_char(p_worker_id);
19943
19944 if (not PJI_PROCESS_UTIL.NEED_TO_RUN_STEP(l_process, 'PJI_PJP_SUM_ROLLUP.ROLLUP_FPR_RBS_T_SLICE(p_worker_id);')) then
19945 return;
19946 end if;
19947
19948 l_extraction_type := PJI_PROCESS_UTIL.GET_PROCESS_PARAMETER(l_process, 'EXTRACTION_TYPE');
19949
19950 PJI_FM_PLAN_MAINT_PVT.ROLLUP_FPR_RBS_T_SLICE;
19951
19952 PJI_PROCESS_UTIL.REGISTER_STEP_COMPLETION(l_process, 'PJI_PJP_SUM_ROLLUP.ROLLUP_FPR_RBS_T_SLICE(p_worker_id);');
19953
19954 commit;
19955
19956 end ROLLUP_FPR_RBS_T_SLICE;
19957
19958
19959 -- -----------------------------------------------------
19960 -- procedure CREATE_FP_PA_PRI_ROLLUP
19961 --
19962 -- History
19963 -- 19-MAR-2004 SVERMETT Created
19964 --
19965 -- Used solely for FP.M Upgrade
19966 --
19967 -- -----------------------------------------------------
19968 procedure CREATE_FP_PA_PRI_ROLLUP (p_worker_id in number) is
19969
19970 l_process varchar2(30);
19971 l_extraction_type varchar2(30);
19972
19973 l_return_status varchar2(255);
19974 l_msg_count number;
19975 l_msg_data varchar2(2000);
19976
19977 begin
19978
19979 l_process := PJI_PJP_SUM_MAIN.g_process || to_char(p_worker_id);
19980
19981 if (not PJI_PROCESS_UTIL.NEED_TO_RUN_STEP(l_process, 'PJI_PJP_SUM_ROLLUP.CREATE_FP_PA_PRI_ROLLUP(p_worker_id);')) then
19982 return;
19983 end if;
19984
19985 l_extraction_type := PJI_PROCESS_UTIL.GET_PROCESS_PARAMETER(l_process, 'EXTRACTION_TYPE');
19986
19987 PJI_FM_PLAN_CAL_RLPS.CREATE_FP_PA_PRI_ROLLUP;
19988
19989 PJI_PROCESS_UTIL.REGISTER_STEP_COMPLETION(l_process, 'PJI_PJP_SUM_ROLLUP.CREATE_FP_PA_PRI_ROLLUP(p_worker_id);');
19990
19991 commit;
19992
19993 end CREATE_FP_PA_PRI_ROLLUP;
19994
19995
19996 -- -----------------------------------------------------
19997 -- procedure CREATE_FP_GL_PRI_ROLLUP
19998 --
19999 -- History
20000 -- 19-MAR-2004 SVERMETT Created
20001 --
20002 -- Used solely for FP.M Upgrade
20003 --
20004 -- -----------------------------------------------------
20005 procedure CREATE_FP_GL_PRI_ROLLUP (p_worker_id in number) is
20006
20007 l_process varchar2(30);
20008 l_extraction_type varchar2(30);
20009
20010 l_return_status varchar2(255);
20011 l_msg_count number;
20012 l_msg_data varchar2(2000);
20013
20014 begin
20015
20016 l_process := PJI_PJP_SUM_MAIN.g_process || to_char(p_worker_id);
20017
20018 if (not PJI_PROCESS_UTIL.NEED_TO_RUN_STEP(l_process, 'PJI_PJP_SUM_ROLLUP.CREATE_FP_GL_PRI_ROLLUP(p_worker_id);')) then
20019 return;
20020 end if;
20021
20022 l_extraction_type := PJI_PROCESS_UTIL.GET_PROCESS_PARAMETER(l_process, 'EXTRACTION_TYPE');
20023
20024 PJI_FM_PLAN_CAL_RLPS.CREATE_FP_GL_PRI_ROLLUP;
20025
20026 PJI_PROCESS_UTIL.REGISTER_STEP_COMPLETION(l_process, 'PJI_PJP_SUM_ROLLUP.CREATE_FP_GL_PRI_ROLLUP(p_worker_id);');
20027
20028 commit;
20029
20030 end CREATE_FP_GL_PRI_ROLLUP;
20031
20032
20033 -- -----------------------------------------------------
20034 -- procedure CREATE_FP_ALL_PRI_ROLLUP
20035 --
20036 -- History
20037 -- 19-MAR-2004 SVERMETT Created
20038 --
20039 -- Used solely for FP.M Upgrade
20040 --
20041 -- -----------------------------------------------------
20042 procedure CREATE_FP_ALL_PRI_ROLLUP (p_worker_id in number) is
20043
20044 l_process varchar2(30);
20045 l_extraction_type varchar2(30);
20046
20047 l_return_status varchar2(255);
20048 l_msg_count number;
20049 l_msg_data varchar2(2000);
20050
20051 begin
20052
20053 l_process := PJI_PJP_SUM_MAIN.g_process || to_char(p_worker_id);
20054
20055 if (not PJI_PROCESS_UTIL.NEED_TO_RUN_STEP(l_process, 'PJI_PJP_SUM_ROLLUP.CREATE_FP_ALL_PRI_ROLLUP(p_worker_id);')) then
20056 return;
20057 end if;
20058
20059 l_extraction_type := PJI_PROCESS_UTIL.GET_PROCESS_PARAMETER(l_process, 'EXTRACTION_TYPE');
20060
20061 PJI_FM_PLAN_CAL_RLPS.CREATE_FP_ALL_T_PRI_ROLLUP('G');
20062
20063 PJI_FM_PLAN_CAL_RLPS.CREATE_FP_ALL_T_PRI_ROLLUP('P');
20064
20065 PJI_PROCESS_UTIL.REGISTER_STEP_COMPLETION(l_process, 'PJI_PJP_SUM_ROLLUP.CREATE_FP_ALL_PRI_ROLLUP(p_worker_id);');
20066
20067 commit;
20068
20069 end CREATE_FP_ALL_PRI_ROLLUP;
20070
20071
20072 -- -----------------------------------------------------
20073 -- procedure INSERT_INTO_FP_FACT
20074 --
20075 -- History
20076 -- 19-MAR-2004 SVERMETT Created
20077 --
20078 -- Used solely for FP.M Upgrade
20079 --
20080 -- -----------------------------------------------------
20081 procedure INSERT_INTO_FP_FACT (p_worker_id in number) is
20082
20083 l_process varchar2(30);
20084 l_extraction_type varchar2(30);
20085
20086 l_return_status varchar2(255);
20087 l_msg_count number;
20088 l_msg_data varchar2(2000);
20089
20090 begin
20091
20092 l_process := PJI_PJP_SUM_MAIN.g_process || to_char(p_worker_id);
20093
20094 if (not PJI_PROCESS_UTIL.NEED_TO_RUN_STEP(l_process, 'PJI_PJP_SUM_ROLLUP.INSERT_INTO_FP_FACT(p_worker_id);')) then
20095 return;
20096 end if;
20097
20098 l_extraction_type := PJI_PROCESS_UTIL.GET_PROCESS_PARAMETER(l_process, 'EXTRACTION_TYPE');
20099
20100 PJI_FM_PLAN_MAINT_PVT.INSERT_INTO_FP_FACT;
20101
20102 PJI_PROCESS_UTIL.REGISTER_STEP_COMPLETION(l_process, 'PJI_PJP_SUM_ROLLUP.INSERT_INTO_FP_FACT(p_worker_id);');
20103
20104 commit;
20105
20106 end INSERT_INTO_FP_FACT;
20107
20108
20109 -- -----------------------------------------------------
20110 -- procedure MARK_EXTRACTED_PLANS
20111 --
20112 -- History
20113 -- 19-MAR-2004 SVERMETT Created
20114 --
20115 -- Used solely for FP.M Upgrade
20116 --
20117 -- -----------------------------------------------------
20118 procedure MARK_EXTRACTED_PLANS (p_worker_id in number) is
20119
20120 l_process varchar2(30);
20121 l_extraction_type varchar2(30);
20122
20123 l_return_status varchar2(255);
20124 l_msg_count number;
20125 l_msg_data varchar2(2000);
20126
20127 begin
20128
20129 l_process := PJI_PJP_SUM_MAIN.g_process || to_char(p_worker_id);
20130
20131 if (not PJI_PROCESS_UTIL.NEED_TO_RUN_STEP(l_process, 'PJI_PJP_SUM_ROLLUP.MARK_EXTRACTED_PLANS(p_worker_id);')) then
20132 return;
20133 end if;
20134
20135 l_extraction_type := PJI_PROCESS_UTIL.GET_PROCESS_PARAMETER(l_process, 'EXTRACTION_TYPE');
20136
20137 PJI_FM_PLAN_MAINT_PVT.MARK_EXTRACTED_PLANS('PRI');
20138
20139 PJI_PROCESS_UTIL.REGISTER_STEP_COMPLETION(l_process, 'PJI_PJP_SUM_ROLLUP.MARK_EXTRACTED_PLANS(p_worker_id);');
20140
20141 commit;
20142
20143 end MARK_EXTRACTED_PLANS;
20144
20145
20146 procedure REMAP_RBS_TXN_ACCUM_HDRS (p_worker_id in number) is
20147
20148 l_process varchar2(30);
20149 l_extraction_type varchar2(30);
20150
20151 l_return_status varchar2(255);
20152 l_msg_count number;
20153 l_msg_data varchar2(2000);
20154
20155 begin
20156
20157 l_process := PJI_PJP_SUM_MAIN.g_process || to_char(p_worker_id);
20158
20159 if (not PJI_PROCESS_UTIL.NEED_TO_RUN_STEP(l_process, 'PJI_PJP_SUM_ROLLUP.REMAP_RBS_TXN_ACCUM_HDRS(p_worker_id);')) then
20160 return;
20161 end if;
20162
20163 l_extraction_type := PJI_PROCESS_UTIL.GET_PROCESS_PARAMETER(l_process, 'EXTRACTION_TYPE');
20164 -- Extraction type is not needed for this step.
20165 -- Retaining it to maintain coding style as well as for potential future use.
20166
20167 PJI_FM_XBS_ACCUM_UTILS.REMAP_RBS_TXN_ACCUM_HDRS (
20168 x_return_status => l_return_status
20169 ,x_msg_data => l_msg_data
20170 ,x_msg_count => l_msg_count );
20171
20172 PJI_PROCESS_UTIL.REGISTER_STEP_COMPLETION(l_process, 'PJI_PJP_SUM_ROLLUP.REMAP_RBS_TXN_ACCUM_HDRS(p_worker_id);');
20173
20174 commit;
20175
20176 end REMAP_RBS_TXN_ACCUM_HDRS ;
20177
20178
20179 procedure RETRIEVE_OVERRIDDEN_WP_ETC (p_worker_id in number) is
20180
20181 l_process varchar2(30);
20182 l_extraction_type varchar2(30);
20183
20184 l_return_status varchar2(255);
20185 l_msg_count number;
20186 l_msg_data varchar2(2000);
20187
20188 begin
20189
20190 l_process := PJI_PJP_SUM_MAIN.g_process || to_char(p_worker_id);
20191
20192 if (not PJI_PROCESS_UTIL.NEED_TO_RUN_STEP(l_process, 'PJI_PJP_SUM_ROLLUP.RETRIEVE_OVERRIDDEN_WP_ETC(p_worker_id);')) then
20193 return;
20194 end if;
20195
20196 l_extraction_type := PJI_PROCESS_UTIL.GET_PROCESS_PARAMETER(l_process, 'EXTRACTION_TYPE');
20197 -- Extraction type is not needed for this step.
20198 -- Retaining it to maintain coding style as well as for potential future use.
20199
20200 PJI_FM_PLAN_MAINT_PVT.RETRIEVE_OVERRIDDEN_WP_ETC;
20201
20202 PJI_PROCESS_UTIL.REGISTER_STEP_COMPLETION(l_process, 'PJI_PJP_SUM_ROLLUP.RETRIEVE_OVERRIDDEN_WP_ETC(p_worker_id);');
20203
20204 commit;
20205
20206 end RETRIEVE_OVERRIDDEN_WP_ETC ;
20207
20208
20209 procedure EXTRACT_PLAN_ETC_PRIRBS (p_worker_id in number) is
20210
20211 l_process varchar2(30);
20212 l_extraction_type varchar2(30);
20213
20214 l_return_status varchar2(255);
20215 l_msg_count number;
20216 l_msg_data varchar2(2000);
20217
20218 begin
20219
20220 l_process := PJI_PJP_SUM_MAIN.g_process || to_char(p_worker_id);
20221
20222 if (not PJI_PROCESS_UTIL.NEED_TO_RUN_STEP(l_process, 'PJI_PJP_SUM_ROLLUP.EXTRACT_PLAN_ETC_PRIRBS(p_worker_id);')) then
20223 return;
20224 end if;
20225
20226 l_extraction_type := PJI_PROCESS_UTIL.GET_PROCESS_PARAMETER(l_process, 'EXTRACTION_TYPE');
20227 -- Extraction type is not needed for this step.
20228 -- Retaining it to maintain coding style as well as for potential future use.
20229
20230 PJI_FM_PLAN_MAINT_PVT.EXTRACT_PLAN_ETC_PRIRBS(p_slice_type => 'SEC');
20231
20232 PJI_PROCESS_UTIL.REGISTER_STEP_COMPLETION(l_process, 'PJI_PJP_SUM_ROLLUP.EXTRACT_PLAN_ETC_PRIRBS(p_worker_id);');
20233
20234 commit;
20235
20236 end EXTRACT_PLAN_ETC_PRIRBS ;
20237
20238
20239 -- -----------------------------------------------------
20240 -- procedure CLEANUP
20241 --
20242 -- History
20243 -- 19-MAR-2004 SVERMETT Created
20244 --
20245 -- Internal PJP Summarization API.
20246 --
20247 -- -----------------------------------------------------
20248 procedure CLEANUP (p_worker_id in number default null) is
20249
20250 l_process varchar2(30);
20251 l_schema varchar2(30);
20252
20253 /* Added for bug#11789673 , starts here */
20254 resource_busy EXCEPTION;
20255 PRAGMA EXCEPTION_INIT(resource_busy, -54);
20256 l_ctr NUMBER := 0;
20257 l_tab1 VARCHAR2(1) := 'N';
20258 l_tab2 VARCHAR2(1) := 'N';
20259 l_tab3 VARCHAR2(1) := 'N';
20260 l_tab4 VARCHAR2(1) := 'N';
20261 l_tab5 VARCHAR2(1) := 'N';
20262 l_tab6 VARCHAR2(1) := 'N';
20263 l_tab7 VARCHAR2(1) := 'N';
20264 l_tab8 VARCHAR2(1) := 'N';
20265 l_tab9 VARCHAR2(1) := 'N';
20266 l_tab10 VARCHAR2(1) := 'N';
20267 l_tab11 VARCHAR2(1) := 'N';
20268 l_tab12 VARCHAR2(1) := 'N';
20269 l_tab13 VARCHAR2(1) := 'N';
20270 l_tab14 VARCHAR2(1) := 'N';
20271 l_tab15 VARCHAR2(1) := 'N';
20272 l_tab16 VARCHAR2(1) := 'N';
20273 l_tab17 VARCHAR2(1) := 'N';
20274 l_tab18 VARCHAR2(1) := 'N'; -- Added for bug 13897252
20275 l_tab19 VARCHAR2(1) := 'N'; -- Added for bug 13897252
20276 l_debugdate VARCHAR2(20);
20277 l_pji_fp_aggr_pjp1_n1 dba_indexes.status%TYPE := 'VALID';
20278 /* Added for bug#11789673 , ends here */
20279
20280 begin
20281
20282 if (p_worker_id is not null) then
20283
20284 l_process := PJI_PJP_SUM_MAIN.g_process || to_char(p_worker_id);
20285
20286 /* 5755229 Because No step entry in the delete process FPM Upgrade
20287 if (not PJI_PROCESS_UTIL.NEED_TO_RUN_STEP(l_process, 'PJI_PJP_SUM_ROLLUP.CLEANUP(p_worker_id);')) then -- Bug#5171542
20288 return;
20289 end if;
20290 5755229 */
20291
20292 l_schema := PJI_UTILS.GET_PJI_SCHEMA_NAME;
20293
20294 /* Modified for bug#11789673 , starts here */
20295 FOR i IN 1..100 LOOP
20296 l_ctr := i;
20297 begin
20298 if l_tab1 = 'N' then
20299 PJI_PROCESS_UTIL.TRUNC_INT_TABLE(l_schema,
20300 'PJI_PJP_RMAP_FPR',
20301 'PARTITION',
20302 'P' || p_worker_id);
20303 l_tab1 := 'Y';
20304 end if;
20305 if l_tab2 = 'N' then
20306 PJI_PROCESS_UTIL.TRUNC_INT_TABLE(l_schema,
20307 'PJI_PJP_RMAP_ACR',
20308 'PARTITION',
20309 'P' || p_worker_id);
20310 l_tab2 := 'Y';
20311 end if;
20312 if l_tab3 = 'N' then
20313 PJI_PROCESS_UTIL.TRUNC_INT_TABLE(l_schema,
20314 'PJI_FP_AGGR_PJP0',
20315 'PARTITION',
20316 'P' || p_worker_id);
20317 l_tab3 := 'Y';
20318 end if;
20319 if l_tab4 = 'N' then
20320 PJI_PROCESS_UTIL.TRUNC_INT_TABLE(l_schema,
20321 'PJI_AC_AGGR_PJP0',
20322 'PARTITION',
20323 'P' || p_worker_id);
20324 l_tab4 := 'Y';
20325 end if;
20326 if l_tab5 = 'N' then
20327 PJI_PROCESS_UTIL.TRUNC_INT_TABLE(l_schema,
20328 'PJI_FP_CUST_PJP0',
20329 'PARTITION',
20330 'P' || p_worker_id);
20331 l_tab5 := 'Y';
20332 end if;
20333 if l_tab6 = 'N' then
20334 PJI_PROCESS_UTIL.TRUNC_INT_TABLE(l_schema,
20335 'PJI_AC_CUST_PJP0',
20336 'PARTITION',
20337 'P' || p_worker_id);
20338 l_tab6 := 'Y';
20339 end if;
20340 if l_tab7 = 'N' then
20341 PJI_PROCESS_UTIL.TRUNC_INT_TABLE(l_schema,
20342 'PJI_FM_EXTR_PLNVER4',
20343 'PARTITION',
20344 'P' || p_worker_id);
20345 l_tab7 := 'Y';
20346 end if;
20347 if l_tab8 = 'N' then
20348 PJI_PROCESS_UTIL.TRUNC_INT_TABLE(l_schema,
20349 'PJI_FP_AGGR_PJP1',
20350 'PARTITION',
20351 'P' || p_worker_id);
20352 l_tab8 := 'Y';
20353 end if;
20354 if l_tab9 = 'N' then
20355 PJI_PROCESS_UTIL.TRUNC_INT_TABLE(l_schema,
20356 'PJI_AC_AGGR_PJP1',
20357 'PARTITION',
20358 'P' || p_worker_id);
20359 l_tab9 := 'Y';
20360 end if;
20361 if l_tab10 = 'N' then
20362 PJI_PROCESS_UTIL.TRUNC_INT_TABLE(l_schema,
20363 'PJI_FP_AGGR_XBS',
20364 'PARTITION',
20365 'P' || p_worker_id);
20366 l_tab10 := 'Y';
20367 end if;
20368 if l_tab11 = 'N' then
20369 PJI_PROCESS_UTIL.TRUNC_INT_TABLE(l_schema,
20370 'PJI_FP_AGGR_RBS',
20371 'PARTITION',
20372 'P' || p_worker_id);
20373 l_tab11 := 'Y';
20374 end if;
20375 if l_tab12 = 'N' then
20376 PJI_PROCESS_UTIL.TRUNC_INT_TABLE(l_schema,
20377 'PJI_XBS_DENORM_DELTA',
20378 'PARTITION',
20379 'P' || p_worker_id);
20380 l_tab12 := 'Y';
20381 end if;
20382 if l_tab13 = 'N' then
20383 PJI_PROCESS_UTIL.TRUNC_INT_TABLE(l_schema,
20384 'PJI_RBS_DENORM_DELTA',
20385 'PARTITION',
20386 'P' || p_worker_id);
20387 l_tab13 := 'Y';
20388 end if;
20389 if l_tab14 = 'N' then
20390 PJI_PROCESS_UTIL.TRUNC_INT_TABLE(l_schema,
20391 'PJI_FP_RMAP_FPR',
20392 'PARTITION',
20393 'P' || p_worker_id);
20394 l_tab14 := 'Y';
20395 end if;
20396 if l_tab15 = 'N' then
20397 PJI_PROCESS_UTIL.TRUNC_INT_TABLE(l_schema,
20398 'PJI_AC_RMAP_ACR',
20399 'PARTITION',
20400 'P' || p_worker_id);
20401 l_tab15 := 'Y';
20402 end if;
20403 if l_tab16 = 'N' then
20404 PJI_PROCESS_UTIL.TRUNC_INT_TABLE(l_schema,
20405 'PJI_PA_PROJ_EVENTS_LOG',
20406 'PARTITION',
20407 'P' || p_worker_id);
20408 l_tab16 := 'Y';
20409 end if;
20410 if l_tab17 = 'N' then
20411 select status into l_pji_fp_aggr_pjp1_n1 from sys.dba_indexes
20412 where index_name = 'PJI_FP_AGGR_PJP1_N1';
20413 if l_pji_fp_aggr_pjp1_n1 <> 'VALID' then
20414 /* Added for bug 9676993 */
20415 execute immediate 'alter index '||l_schema||'.'||'PJI_FP_AGGR_PJP1_N1 rebuild';
20416 /* Added for bug 9676993 */
20417 end if;
20418 l_tab17 := 'Y';
20419 end if;
20420 /* Added for bug 13897252 starts */
20421 if l_tab18 = 'N' then
20422 PJI_PROCESS_UTIL.TRUNC_INT_TABLE(l_schema,
20423 'PJI_FP_AGGR_PJP2',
20424 'PARTITION',
20425 'P' || p_worker_id);
20426 l_tab18 := 'Y';
20427 end if;
20428 if l_tab19 = 'N' then
20429 PJI_PROCESS_UTIL.TRUNC_INT_TABLE(l_schema,
20430 'PJI_MERGE_HELPER',
20431 'NORMAL',
20432 null);
20433 l_tab19 := 'Y';
20434 end if;
20435 /* Added for bug 13897252 ends */
20436
20437 if SQLCODE = 0 then
20438 exit;
20439 end if;
20440 exception
20441 when resource_busy then
20442 null;
20443 end;
20444 DBMS_LOCK.SLEEP(60);
20445 END LOOP;
20446 /* Modified for bug#11789673 , ends here */
20447
20448 /* Added for bug 9736812 */
20449 /* execute immediate 'alter index '||l_schema||'.'||'PJI_FP_AGGR_PJP1_N1 rebuild'; */ /* commented for bug#11789673 */
20450 /* Added for bug 9736812 */
20451
20452 PJI_PROCESS_UTIL.REGISTER_STEP_COMPLETION(l_process, 'PJI_PJP_SUM_ROLLUP.CLEANUP(p_worker_id);'); -- Bug#5171542
20453 -- commented below bcoz the global index is modified to local for bug15983044
20454 -- execute immediate 'alter index '||l_schema||'.'||'PJI_PA_PROJ_EVENTS_LOG_N1 rebuild'; /* Added for bug 9840828 */
20455 commit;
20456
20457 else -- online mode
20458
20459 delete from PJI_XBS_DENORM_DELTA_T;
20460
20461 delete from PJI_FP_AGGR_PJP1_T;
20462
20463 delete from PJI_AC_AGGR_PJP1_T;
20464
20465 end if;
20466
20467 end CLEANUP;
20468 -- bug 6520936
20469 Procedure MERGE_INTO_FP_FACTS (p_worker_id in number) is
20470
20471 l_process varchar2(30);
20472 l_extraction_type varchar2(30);
20473
20474 l_return_status varchar2(255);
20475 l_msg_count number;
20476 l_msg_data varchar2(2000);
20477
20478 begin
20479
20480 l_process := PJI_PJP_SUM_MAIN.g_process || to_char(p_worker_id);
20481
20482 if (not PJI_PROCESS_UTIL.NEED_TO_RUN_STEP(l_process, 'PJI_PJP_SUM_ROLLUP.MERGE_INTO_FP_FACT(p_worker_id);')) then
20483 return;
20484 end if;
20485
20486 l_extraction_type := PJI_PROCESS_UTIL.GET_PROCESS_PARAMETER(l_process, 'EXTRACTION_TYPE');
20487
20488 PJI_FM_PLAN_MAINT_PVT.MERGE_INTO_FP_FACTS;
20489
20490 PJI_PROCESS_UTIL.REGISTER_STEP_COMPLETION(l_process, 'PJI_PJP_SUM_ROLLUP.MERGE_INTO_FP_FACT(p_worker_id);');
20491
20492 commit;
20493
20494 end MERGE_INTO_FP_FACTS;
20495 -- bug 6520936
20496
20497
20498 end PJI_PJP_SUM_ROLLUP;