[Home] [Help]
PACKAGE BODY: APPS.PJI_FM_PLAN_MAINT_T_PVT
Source
1 PACKAGE BODY PJI_FM_PLAN_MAINT_T_PVT AS
2 /* $Header: PJIPP03B.pls 120.15.12000000.4 2007/08/17 14:33:31 kmaddi ship $ */
3
4
5 g_package_name VARCHAR2(100) := 'PJI_FM_PLAN_MAINT_T_PVT';
6
7 g_prorating_format VARCHAR2(30) := 'S';
8 -- S Start date, E End date, D (daily) Period.
9 -- Based on plan version.
10
11 g_currency_conversion_rule VARCHAR2(30) := 'S';
12 -- S Start date, E End date.
13 -- Based on plan version.
14
15 g_global_curr_1_enabled VARCHAR2(30) := 'T';
16 g_global_curr_2_enabled VARCHAR2(30) := 'T';
17
18 g_global1_currency_code VARCHAR2(30) := NULL; -- g_global1_currency_code;
19 g_global2_currency_code VARCHAR2(30) := NULL; -- 'CAD';
20
21 g_global1_currency_mau NUMBER := NULL; -- 0.01;
22 g_global2_currency_mau NUMBER := NULL; -- 0.01;
23
24 g_labor_mau NUMBER := 0.01;
25
26 g_ent_start_period_id NUMBER := NULL;
27 g_ent_start_period_name VARCHAR2(100) := NULL;
28 g_ent_start_date date := NULL;
29 g_ent_END_date date := NULL;
30 g_global_start_date date := NULL;
31
32 g_global_start_J NUMBER := NULL;
33 g_ent_start_J NUMBER := NULL;
34 g_ent_END_J NUMBER := NULL;
35
36 g_worker_id NUMBER := 1; -- NULL;
37 g_default_prg_level NUMBER := 0;
38
39 g_people_resclass_code VARCHAR2(6) := 'PEOPLE';
40 g_equip_resclass_code VARCHAR2(9) := 'EQUIPMENT';
41
42 g_start_str VARCHAR2(1) := 'S';
43 g_end_str VARCHAR2(1) := 'E';
44 g_pa_cal_str VARCHAR2(1) := 'P';
45 g_gl_cal_str VARCHAR2(1) := 'G';
46 -- 'N'ntimeph_str VARCHAR2(1) := 'N';
47 g_ent_cal_str VARCHAR2(1) := 'E';
48
49 g_yes VARCHAR2(1) := 'Y';
50 g_no VARCHAR2(1) := 'N'; -- Same as g_nontimeph_str.
51 g_all VARCHAR2(1) := 'A';
52 g_lowest_level VARCHAR2(1) := 'L';
53 g_top_level VARCHAR2(1) := 'T';
54 g_rolled_up VARCHAR2(1) := 'R';
55
56 g_all_timeph_code VARCHAR2(3) := 'ALL';
57 g_cost_timeph_code VARCHAR2(4) := 'COST';
58 g_rev_timeph_code VARCHAR2(7) := 'REVENUE';
59
60 g_ntp_period_name VARCHAR2(10) := 'XXX';
61
62 ------------------------------------------------------------------
63 ------------------------------------------------------------------
64 -- Helper Apis Specification --
65 ------------------------------------------------------------------
66 ------------------------------------------------------------------
67
68 PROCEDURE UPDATE_TPFG1_CURR_RCDS;
69
70 PROCEDURE CLEANUP_FP_RMAP_FPR;
71
72 PROCEDURE CLEANUP_AC_RMAP_FPR;
73
74 PROCEDURE PRINT_TIME (p_tag IN VARCHAR2);
75
76 PROCEDURE PRINT_NUM_WBSRLPRCDS_INPJP1;
77
78 PROCEDURE INSERT_NTP_CAL_RECORD ( x_max_plnver_id OUT NOCOPY NUMBER );
79
80 PROCEDURE DELETE_NTP_CAL_RECORD ( p_max_plnver_id IN NUMBER );
81
82 ------------------------------------------------------------------
83 ------------------------------------------------------------------
84 -- Helper Apis Implementation --
85 ------------------------------------------------------------------
86 ------------------------------------------------------------------
87
88 PROCEDURE COPY_PRIMARY
89 (
90 p_source_fp_version_ids IN SYSTEM.pa_num_tbl_type := pji_empty_num_tbl
91 , p_dest_fp_version_ids IN SYSTEM.pa_num_tbl_type := pji_empty_num_tbl
92 , p_source_fp_version_status IN SYSTEM.pa_VARCHAR2_30_tbl_type := pji_empty_VARCHAR2_30_tbl
93 , p_dest_fp_version_status IN SYSTEM.pa_VARCHAR2_30_tbl_type := pji_empty_VARCHAR2_30_tbl
94 , p_commit IN VARCHAR2 := 'F'
95 ) IS
96
97 l_dest_plan_type_ids SYSTEM.pa_num_tbl_type := pji_empty_num_tbl;
98 l_dest_project_ids SYSTEM.pa_num_tbl_type := pji_empty_num_tbl;
99 l_src_count NUMBER;
100 l_dest_count NUMBER;
101 l_src_project_ids SYSTEM.pa_num_tbl_type := pji_empty_num_tbl;
102
103 BEGIN
104
105 l_src_count := p_source_fp_version_ids.COUNT;
106 l_dest_count := p_dest_fp_version_ids.COUNT;
107
108 print_time ( ' l_src_count ' || l_src_count || ' l_dest_count ' || l_dest_count );
109
110 IF (l_src_count <> l_dest_count) THEN
111 print_time(' l_src_count <> l_dest_count, returning. ');
112 RETURN;
113 ELSIF (l_src_count = 0 OR l_dest_count = 0) THEN
114 print_time('Either or both of l_src_count or l_src_count are null, returning. ');
115 RETURN;
116 END IF;
117
118 l_dest_project_ids.EXTEND(l_src_count);
119 l_dest_plan_type_ids.EXTEND(l_src_count);
120 l_src_project_ids.EXTEND(l_src_count);
121
122 FOR i IN 1..l_src_count LOOP
123
124 SELECT fin_plan_type_id, project_id
125 INTO l_dest_plan_type_ids(i)
126 ,l_dest_project_ids(i)
127 FROM pa_budget_versions
128 WHERE budget_version_id = p_dest_fp_version_ids(i);
129
130 SELECT project_id
131 INTO l_src_project_ids(i)
132 FROM pa_budget_versions
133 WHERE budget_version_id = p_source_fp_version_ids(i);
134
135 print_time ( ' i = ' || i ) ;
136 print_time ( 'Spvi= ' || p_source_fp_version_ids(i));
137 print_time ( 'Dpvi= ' || p_dest_fp_version_ids(i));
138 print_time ( 'Dpti= ' || l_dest_plan_type_ids(i));
139 print_time ( 'Dpti= ' || l_src_project_ids(i));
140
141 END LOOP;
142
143
144 PJI_FM_PLAN_MAINT.DELETE_ALL_PVT (
145 p_fp_version_ids => p_dest_fp_version_ids
146 , p_commit => 'F');
147 print_time('Deleted the fact data and related metadata for destination plan versions.');
148
149 CLEANUP_INTERIM_TABLES;
150 print_time(' Interim tables cleaned up. 0.01 .. ');
151
152 EXTRACT_FIN_PLAN_VERSIONS(
153 p_fp_version_ids => p_dest_fp_version_ids
154 , p_slice_type => 'PRI'
155 );
156 print_time('Populated ver3 table.');
157
158
159 FORALL I IN 1..p_source_fp_version_ids.COUNT
160 INSERT INTO pji_fp_aggr_pjp1_t
161 (
162 WORKER_ID
163 , PROJECT_ID
164 , PROJECT_ORG_ID
165 , PROJECT_ORGANIZATION_ID
166 , PROJECT_ELEMENT_ID
167 , TIME_ID
168 , PERIOD_TYPE_ID
169 , CALENDAR_TYPE
170 , RBS_AGGR_LEVEL
171 , WBS_ROLLUP_FLAG
172 , PRG_ROLLUP_FLAG
173 , CURR_RECORD_TYPE_ID
174 , CURRENCY_CODE
175 , RBS_ELEMENT_ID
176 , RBS_VERSION_ID
177 , PLAN_VERSION_ID
178 , PLAN_TYPE_ID
179 , RAW_COST
180 , BRDN_COST
181 , REVENUE
182 , BILL_RAW_COST
183 , BILL_BRDN_COST
184 , BILL_LABOR_RAW_COST
185 , BILL_LABOR_BRDN_COST
186 , BILL_LABOR_HRS
187 , EQUIPMENT_RAW_COST
188 , EQUIPMENT_BRDN_COST
189 , CAPITALIZABLE_RAW_COST
190 , CAPITALIZABLE_BRDN_COST
191 , LABOR_RAW_COST
192 , LABOR_BRDN_COST
193 , LABOR_HRS
194 , LABOR_REVENUE
195 , EQUIPMENT_HOURS
196 , BILLABLE_EQUIPMENT_HOURS
197 , SUP_INV_COMMITTED_COST
198 , PO_COMMITTED_COST
199 , PR_COMMITTED_COST
200 , OTH_COMMITTED_COST
201 , ACT_LABOR_HRS
202 , ACT_EQUIP_HRS
203 , ACT_LABOR_BRDN_COST
204 , ACT_EQUIP_BRDN_COST
205 , ACT_BRDN_COST
206 , ACT_RAW_COST
207 , ACT_REVENUE
208 , ACT_LABOR_RAW_COST
209 , ACT_EQUIP_RAW_COST
210 , ETC_LABOR_HRS
211 , ETC_EQUIP_HRS
212 , ETC_LABOR_BRDN_COST
213 , ETC_EQUIP_BRDN_COST
214 , ETC_BRDN_COST
215 , ETC_RAW_COST
216 , ETC_LABOR_RAW_COST
217 , ETC_EQUIP_RAW_COST
218 , CUSTOM1
219 , CUSTOM2
220 , CUSTOM3
221 , CUSTOM4
222 , CUSTOM5
223 , CUSTOM6
224 , CUSTOM7
225 , CUSTOM8
226 , CUSTOM9
227 , CUSTOM10
228 , CUSTOM11
229 , CUSTOM12
230 , CUSTOM13
231 , CUSTOM14
232 , CUSTOM15
233 , PLAN_TYPE_CODE /* 4471527 */
234 )
235 ( SELECT
236 g_worker_id
237 , l_dest_project_ids(i)
238 , rl.PROJECT_ORG_ID
239 , rl.PROJECT_ORGANIZATION_ID
240 , rl.PROJECT_ELEMENT_ID
241 , rl.TIME_ID
242 , rl.PERIOD_TYPE_ID
243 , rl.CALENDAR_TYPE
244 , rl.RBS_AGGR_LEVEL
245 , rl.WBS_ROLLUP_FLAG
246 , rl.PRG_ROLLUP_FLAG
247 , BITAND(rl.CURR_RECORD_TYPE_ID, 28)
248 , rl.CURRENCY_CODE
249 , rl.RBS_ELEMENT_ID
250 , rl.RBS_VERSION_ID
251 , p_dest_fp_version_ids(i)
252 , l_dest_plan_type_ids(i)
253 , rl.RAW_COST
254 , rl.BRDN_COST
255 , rl.REVENUE
256 , rl.BILL_RAW_COST
257 , rl.BILL_BRDN_COST
258 , rl.BILL_LABOR_RAW_COST
259 , rl.BILL_LABOR_BRDN_COST
260 , rl.BILL_LABOR_HRS
261 , rl.EQUIPMENT_RAW_COST
262 , rl.EQUIPMENT_BRDN_COST
263 , rl.CAPITALIZABLE_RAW_COST
264 , rl.CAPITALIZABLE_BRDN_COST
265 , rl.LABOR_RAW_COST
266 , rl.LABOR_BRDN_COST
267 , rl.LABOR_HRS
268 , rl.LABOR_REVENUE
269 , rl.EQUIPMENT_HOURS
270 , rl.BILLABLE_EQUIPMENT_HOURS
271 , rl.SUP_INV_COMMITTED_COST
272 , rl.PO_COMMITTED_COST
273 , rl.PR_COMMITTED_COST
274 , rl.OTH_COMMITTED_COST
275 , rl.ACT_LABOR_HRS
276 , rl.ACT_EQUIP_HRS
277 , rl.ACT_LABOR_BRDN_COST
278 , rl.ACT_EQUIP_BRDN_COST
279 , rl.ACT_BRDN_COST
280 , rl.ACT_RAW_COST
281 , rl.ACT_REVENUE
282 , rl.ACT_LABOR_RAW_COST
283 , rl.ACT_EQUIP_RAW_COST
284 , rl.ETC_LABOR_HRS
285 , rl.ETC_EQUIP_HRS
286 , rl.ETC_LABOR_BRDN_COST
287 , rl.ETC_EQUIP_BRDN_COST
288 , rl.ETC_BRDN_COST
289 , rl.ETC_RAW_COST
290 , rl.ETC_LABOR_RAW_COST
291 , rl.ETC_EQUIP_RAW_COST
292 , rl.CUSTOM1
293 , rl.CUSTOM2
294 , rl.CUSTOM3
295 , rl.CUSTOM4
296 , rl.CUSTOM5
297 , rl.CUSTOM6
298 , rl.CUSTOM7
299 , rl.CUSTOM8
300 , rl.CUSTOM9
301 , rl.CUSTOM10
302 , rl.CUSTOM11
303 , rl.CUSTOM12
304 , rl.CUSTOM13
305 , rl.CUSTOM14
306 , rl.CUSTOM15
307 , rl.PLAN_TYPE_CODE /* 4471527 */
308 FROM
309 pji_fp_xbs_accum_f rl
310 , pji_fm_extr_plnver3_t ver3
311 WHERE 1=1
312 AND rl.project_id = l_src_project_ids(i)
313 AND rl.plan_version_id = p_source_fp_version_ids(i)
314 AND rl.plan_type_code = ver3.plan_type_code /* 4471527 */
315 AND ( (rl.rbs_aggr_level = 'T')
316 OR (rl.rbs_aggr_level = 'L' AND wbs_rollup_flag = 'N' ))
317 AND BITAND(rl.CURR_RECORD_TYPE_ID, 28) > 0
318 AND rl.calendar_type in (ver3.time_phased_type_code, 'A')
319 AND ver3.plan_version_id = p_dest_fp_version_ids(i)
320 );
321
322 print_time('# records in pjp1_t are ' || SQL%ROWCOUNT);
323
324 POPULATE_WBS_HDR; print_time(' 2.1 .. ');
325
326 UPDATE_WBS_HDR; print_time(' 2.11 .. ');
327
328 POPULATE_RBS_HDR; print_time(' 2.2 .. ');
329
330 MERGE_INTO_FP_FACT; print_time(' 2.01 .. ');
331
332 CLEANUP_INTERIM_TABLES; print_time(' 2.3 .. ');
333
334
335 IF (p_commit = 'T') THEN
336 COMMIT;
337 END IF;
338
339 EXCEPTION
340 WHEN OTHERS THEN
341 FND_MSG_PUB.add_exc_msg( p_pkg_name => g_package_name ,
342 p_procedure_name => 'COPY_PRIMARY');
343 RAISE;
344 END;
345
346
347
348 PROCEDURE COPY_PLANS
349 (
350 p_source_fp_version_ids IN SYSTEM.pa_num_tbl_type := pji_empty_num_tbl
351 , p_dest_fp_version_ids IN SYSTEM.pa_num_tbl_type := pji_empty_num_tbl
352 , p_source_fp_version_status IN SYSTEM.pa_VARCHAR2_30_tbl_type := pji_empty_VARCHAR2_30_tbl
353 , p_dest_fp_version_status IN SYSTEM.pa_VARCHAR2_30_tbl_type := pji_empty_VARCHAR2_30_tbl
354 , p_commit IN VARCHAR2 := 'F'
355 ) IS
356
357 l_dest_plan_type_ids SYSTEM.pa_num_tbl_type := pji_empty_num_tbl;
358 l_dest_project_ids SYSTEM.pa_num_tbl_type := pji_empty_num_tbl;
359 l_src_count NUMBER;
360 l_dest_count NUMBER;
361
362 BEGIN
363
364 l_src_count := p_source_fp_version_ids.COUNT;
365 l_dest_count := p_dest_fp_version_ids.COUNT;
366
367 print_time ( ' l_src_count ' || l_src_count || ' l_dest_count ' || l_dest_count );
368
369 IF (l_src_count <> l_dest_count) THEN
370 print_time(' l_src_count <> l_dest_count, returning. ');
371 RETURN;
372 ELSIF (l_src_count = 0 OR l_dest_count = 0) THEN
373 print_time('Either or both of l_src_count or l_src_count are null, returning. ');
374 RETURN;
375 END IF;
376
377 l_dest_project_ids.EXTEND(l_src_count);
378 l_dest_plan_type_ids.EXTEND(l_dest_count);
379
380
381 FOR i IN 1..p_source_fp_version_ids.COUNT LOOP
382 SELECT fin_plan_type_id, project_id
383 INTO l_dest_plan_type_ids(i)
384 , l_dest_project_ids(i)
385 FROM pa_budget_versions
386 WHERE budget_version_id = p_dest_fp_version_ids(i);
387
388 print_time ( ' i = ' || i ) ;
389 print_time ( 'Spvi= ' || p_source_fp_version_ids(i));
390 print_time ( 'Dpvi= ' || p_dest_fp_version_ids(i));
391 print_time ( 'Dpti= ' || l_dest_plan_type_ids(i));
392
393 END LOOP;
394
395 FORALL i IN 1..p_dest_fp_version_ids.COUNT
396 DELETE FROM PJI_FP_XBS_ACCUM_F
397 WHERE plan_version_id = p_dest_fp_version_ids(i)
398 AND project_id = l_dest_project_ids(i);
399
400 FORALL i IN 1..p_dest_fp_version_ids.COUNT
401 DELETE FROM pji_rollup_level_status
402 WHERE plan_version_id = p_dest_fp_version_ids(i);
403
404 CLEANUP_INTERIM_TABLES; print_time(' 2.3 .. ');
405
406 FORALL I IN 1..p_source_fp_version_ids.COUNT
407 INSERT INTO pji_fp_aggr_pjp1_t
408 (
409 worker_id
410 , PROJECT_ID
411 , PROJECT_ORG_ID
412 , PROJECT_ORGANIZATION_ID
413 , PROJECT_ELEMENT_ID
414 , TIME_ID
415 , PERIOD_TYPE_ID
416 , CALENDAR_TYPE
417 , RBS_AGGR_LEVEL
418 , WBS_ROLLUP_FLAG
419 , PRG_ROLLUP_FLAG
420 , CURR_RECORD_TYPE_ID
421 , CURRENCY_CODE
422 , RBS_ELEMENT_ID
423 , RBS_VERSION_ID
424 , PLAN_VERSION_ID
425 , PLAN_TYPE_ID
426 , RAW_COST
427 , BRDN_COST
428 , REVENUE
429 , BILL_RAW_COST
430 , BILL_BRDN_COST
431 , BILL_LABOR_RAW_COST
432 , BILL_LABOR_BRDN_COST
433 , BILL_LABOR_HRS
434 , EQUIPMENT_RAW_COST
435 , EQUIPMENT_BRDN_COST
436 , CAPITALIZABLE_RAW_COST
437 , CAPITALIZABLE_BRDN_COST
438 , LABOR_RAW_COST
439 , LABOR_BRDN_COST
440 , LABOR_HRS
441 , LABOR_REVENUE
442 , EQUIPMENT_HOURS
443 , BILLABLE_EQUIPMENT_HOURS
444 , SUP_INV_COMMITTED_COST
445 , PO_COMMITTED_COST
446 , PR_COMMITTED_COST
447 , OTH_COMMITTED_COST
448 , ACT_LABOR_HRS
449 , ACT_EQUIP_HRS
450 , ACT_LABOR_BRDN_COST
451 , ACT_EQUIP_BRDN_COST
452 , ACT_BRDN_COST
453 , ACT_RAW_COST
454 , ACT_REVENUE
455 , ACT_LABOR_RAW_COST
456 , ACT_EQUIP_RAW_COST
457 , ETC_LABOR_HRS
458 , ETC_EQUIP_HRS
459 , ETC_LABOR_BRDN_COST
460 , ETC_EQUIP_BRDN_COST
461 , ETC_BRDN_COST
462 , ETC_RAW_COST
463 , ETC_LABOR_RAW_COST
464 , ETC_EQUIP_RAW_COST
465 , CUSTOM1
466 , CUSTOM2
467 , CUSTOM3
468 , CUSTOM4
469 , CUSTOM5
470 , CUSTOM6
471 , CUSTOM7
472 , CUSTOM8
473 , CUSTOM9
474 , CUSTOM10
475 , CUSTOM11
476 , CUSTOM12
477 , CUSTOM13
478 , CUSTOM14
479 , CUSTOM15
480 , PLAN_TYPE_CODE /* 4471527 */
481 )
482 (
483 SELECT
484 g_worker_id
485 , rl.PROJECT_ID
486 , rl.PROJECT_ORG_ID
487 , rl.PROJECT_ORGANIZATION_ID
488 , rl.PROJECT_ELEMENT_ID
489 , rl.TIME_ID
490 , rl.PERIOD_TYPE_ID
491 , rl.CALENDAR_TYPE
492 , rl.RBS_AGGR_LEVEL
493 , rl.WBS_ROLLUP_FLAG
494 , rl.PRG_ROLLUP_FLAG
495 , rl.CURR_RECORD_TYPE_ID
496 , rl.CURRENCY_CODE
497 , rl.RBS_ELEMENT_ID
498 , rl.RBS_VERSION_ID
499 , p_dest_fp_version_ids(i)
500 , l_dest_plan_type_ids(i)
501 , rl.RAW_COST
502 , rl.BRDN_COST
503 , rl.REVENUE
504 , rl.BILL_RAW_COST
505 , rl.BILL_BRDN_COST
506 , rl.BILL_LABOR_RAW_COST
507 , rl.BILL_LABOR_BRDN_COST
508 , rl.BILL_LABOR_HRS
509 , rl.EQUIPMENT_RAW_COST
510 , rl.EQUIPMENT_BRDN_COST
511 , rl.CAPITALIZABLE_RAW_COST
512 , rl.CAPITALIZABLE_BRDN_COST
513 , rl.LABOR_RAW_COST
514 , rl.LABOR_BRDN_COST
515 , rl.LABOR_HRS
516 , rl.LABOR_REVENUE
517 , rl.EQUIPMENT_HOURS
518 , rl.BILLABLE_EQUIPMENT_HOURS
519 , rl.SUP_INV_COMMITTED_COST
520 , rl.PO_COMMITTED_COST
521 , rl.PR_COMMITTED_COST
522 , rl.OTH_COMMITTED_COST
523 , rl.ACT_LABOR_HRS
524 , rl.ACT_EQUIP_HRS
525 , rl.ACT_LABOR_BRDN_COST
526 , rl.ACT_EQUIP_BRDN_COST
527 , rl.ACT_BRDN_COST
528 , rl.ACT_RAW_COST
529 , rl.ACT_REVENUE
530 , rl.ACT_LABOR_RAW_COST
531 , rl.ACT_EQUIP_RAW_COST
532 , rl.ETC_LABOR_HRS
533 , rl.ETC_EQUIP_HRS
534 , rl.ETC_LABOR_BRDN_COST
535 , rl.ETC_EQUIP_BRDN_COST
536 , rl.ETC_BRDN_COST
537 , rl.ETC_RAW_COST
538 , rl.ETC_LABOR_RAW_COST
539 , rl.ETC_EQUIP_RAW_COST
540 , rl.CUSTOM1
541 , rl.CUSTOM2
542 , rl.CUSTOM3
543 , rl.CUSTOM4
544 , rl.CUSTOM5
545 , rl.CUSTOM6
546 , rl.CUSTOM7
547 , rl.CUSTOM8
548 , rl.CUSTOM9
549 , rl.CUSTOM10
550 , rl.CUSTOM11
551 , rl.CUSTOM12
552 , rl.CUSTOM13
553 , rl.CUSTOM14
554 , rl.CUSTOM15
555 , rl.PLAN_TYPE_CODE /* 4471527 */
556 FROM
557 pji_fp_xbs_accum_f rl
558 WHERE 1=1
559 AND ( (rl.rbs_aggr_level = g_top_level) OR (rl.rbs_aggr_level = g_lowest_level AND wbs_rollup_flag = 'N' ))
560 AND rl.plan_version_id = p_source_fp_version_ids(i));
561
562 EXTRACT_FIN_PLAN_VERSIONS(
563 p_fp_version_ids => p_dest_fp_version_ids
564 , p_slice_type => 'PRI'
565 ); print_time(' 2.01 .. ');
566
567 POPULATE_WBS_HDR; print_time(' 2.1 .. ');
568
569 UPDATE_WBS_HDR; print_time(' 2.11 .. ');
570
571 POPULATE_RBS_HDR; print_time(' 2.2 .. ');
572
573 MERGE_INTO_FP_FACT;
574
575 CLEANUP_INTERIM_TABLES; print_time(' 2.3 .. ');
576
577
578 IF (p_commit = 'T') THEN
579 COMMIT;
580 END IF;
581
582 EXCEPTION
583 WHEN OTHERS THEN
584 FND_MSG_PUB.add_exc_msg( p_pkg_name => g_package_name ,
585 p_procedure_name => 'COPY_PLANS');
586 RAISE;
587 END;
588
589
590 PROCEDURE COPY_PRIMARY_SINGLE
591 (
592 p_source_plan_ver_id IN NUMBER := NULL
593 , p_target_plan_ver_id IN NUMBER := NULL
594 , p_commit IN VARCHAR2 := 'F') IS
595
596 l_dest_fp_version_ids SYSTEM.pa_num_tbl_type := SYSTEM.pa_num_tbl_type();
597
598 l_dest_plan_type_id NUMBER := NULL;
599 l_dest_project_id NUMBER := NULL;
600
601 BEGIN
602
603 print_time ( ' COPY_PRIMARY_SINGLE api 001 ' || p_source_plan_ver_id || ' ' || p_target_plan_ver_id );
604
605 SELECT fin_plan_type_id, project_id
606 INTO l_dest_plan_type_id, l_dest_project_id
607 FROM pa_budget_versions
608 WHERE budget_version_id = p_target_plan_ver_id;
609
610 DELETE FROM PJI_FP_XBS_ACCUM_F
611 WHERE plan_version_id = p_target_plan_ver_id
612 AND project_id = l_dest_project_id;
613
614 DELETE FROM pji_rollup_level_status
615 WHERE plan_version_id = p_target_plan_ver_id;
616
617 CLEANUP_INTERIM_TABLES;
618 print_time(' 1.9 .. ');
619
620 INSERT INTO pji_fp_aggr_pjp1_t
621 (
622 worker_id
623 , PROJECT_ID
624 , PROJECT_ORG_ID
625 , PROJECT_ORGANIZATION_ID
626 -- , PARTITION_ID
627 , PROJECT_ELEMENT_ID
628 , TIME_ID
629 , PERIOD_TYPE_ID
630 , CALENDAR_TYPE
631 , RBS_AGGR_LEVEL
632 , WBS_ROLLUP_FLAG
633 , PRG_ROLLUP_FLAG
634 , CURR_RECORD_TYPE_ID
635 , CURRENCY_CODE
636 , RBS_ELEMENT_ID
637 , RBS_VERSION_ID
638 , PLAN_VERSION_ID
639 , PLAN_TYPE_ID
640 , RAW_COST
641 , BRDN_COST
642 , REVENUE
643 , BILL_RAW_COST
644 , BILL_BRDN_COST
645 , BILL_LABOR_RAW_COST
646 , BILL_LABOR_BRDN_COST
647 , BILL_LABOR_HRS
648 , EQUIPMENT_RAW_COST
649 , EQUIPMENT_BRDN_COST
650 , CAPITALIZABLE_RAW_COST
651 , CAPITALIZABLE_BRDN_COST
652 , LABOR_RAW_COST
653 , LABOR_BRDN_COST
654 , LABOR_HRS
655 , LABOR_REVENUE
656 , EQUIPMENT_HOURS
657 , BILLABLE_EQUIPMENT_HOURS
658 , SUP_INV_COMMITTED_COST
659 , PO_COMMITTED_COST
660 , PR_COMMITTED_COST
661 , OTH_COMMITTED_COST
662 , ACT_LABOR_HRS
663 , ACT_EQUIP_HRS
664 , ACT_LABOR_BRDN_COST
665 , ACT_EQUIP_BRDN_COST
666 , ACT_BRDN_COST
667 , ACT_RAW_COST
668 , ACT_REVENUE
669 , ACT_LABOR_RAW_COST
670 , ACT_EQUIP_RAW_COST
671 , ETC_LABOR_HRS
672 , ETC_EQUIP_HRS
673 , ETC_LABOR_BRDN_COST
674 , ETC_EQUIP_BRDN_COST
675 , ETC_BRDN_COST
676 , ETC_RAW_COST
677 , ETC_LABOR_RAW_COST
678 , ETC_EQUIP_RAW_COST
679 , CUSTOM1
680 , CUSTOM2
681 , CUSTOM3
682 , CUSTOM4
683 , CUSTOM5
684 , CUSTOM6
685 , CUSTOM7
686 , CUSTOM8
687 , CUSTOM9
688 , CUSTOM10
689 , CUSTOM11
690 , CUSTOM12
691 , CUSTOM13
692 , CUSTOM14
693 , CUSTOM15
694 , PLAN_TYPE_CODE /* 4471527 */
695 )
696 (
697 SELECT
698 g_worker_id
699 , rl.PROJECT_ID
700 , rl.PROJECT_ORG_ID
701 , rl.PROJECT_ORGANIZATION_ID
702 -- , rl.PARTITION_ID
703 , rl.PROJECT_ELEMENT_ID
704 , rl.TIME_ID
705 , rl.PERIOD_TYPE_ID
706 , rl.CALENDAR_TYPE
707 , rl.RBS_AGGR_LEVEL
708 , rl.WBS_ROLLUP_FLAG
709 , rl.PRG_ROLLUP_FLAG
710 , rl.CURR_RECORD_TYPE_ID
711 , rl.CURRENCY_CODE
712 , rl.RBS_ELEMENT_ID
713 , rl.RBS_VERSION_ID
714 , p_target_plan_ver_id
715 , l_dest_plan_type_id plan_type_id
716 , rl.RAW_COST
717 , rl.BRDN_COST
718 , rl.REVENUE
719 , rl.BILL_RAW_COST
720 , rl.BILL_BRDN_COST
721 , rl.BILL_LABOR_RAW_COST
722 , rl.BILL_LABOR_BRDN_COST
723 , rl.BILL_LABOR_HRS
724 , rl.EQUIPMENT_RAW_COST
725 , rl.EQUIPMENT_BRDN_COST
726 , rl.CAPITALIZABLE_RAW_COST
727 , rl.CAPITALIZABLE_BRDN_COST
728 , rl.LABOR_RAW_COST
729 , rl.LABOR_BRDN_COST
730 , rl.LABOR_HRS
731 , rl.LABOR_REVENUE
732 , rl.EQUIPMENT_HOURS
733 , rl.BILLABLE_EQUIPMENT_HOURS
734 , rl.SUP_INV_COMMITTED_COST
735 , rl.PO_COMMITTED_COST
736 , rl.PR_COMMITTED_COST
737 , rl.OTH_COMMITTED_COST
738 , rl.ACT_LABOR_HRS
739 , rl.ACT_EQUIP_HRS
740 , rl.ACT_LABOR_BRDN_COST
741 , rl.ACT_EQUIP_BRDN_COST
742 , rl.ACT_BRDN_COST
743 , rl.ACT_RAW_COST
744 , rl.ACT_REVENUE
745 , rl.ACT_LABOR_RAW_COST
746 , rl.ACT_EQUIP_RAW_COST
747 , rl.ETC_LABOR_HRS
748 , rl.ETC_EQUIP_HRS
749 , rl.ETC_LABOR_BRDN_COST
750 , rl.ETC_EQUIP_BRDN_COST
751 , rl.ETC_BRDN_COST
752 , rl.ETC_RAW_COST
753 , rl.ETC_LABOR_RAW_COST
754 , rl.ETC_EQUIP_RAW_COST
755 , rl.CUSTOM1
756 , rl.CUSTOM2
757 , rl.CUSTOM3
758 , rl.CUSTOM4
759 , rl.CUSTOM5
760 , rl.CUSTOM6
761 , rl.CUSTOM7
762 , rl.CUSTOM8
763 , rl.CUSTOM9
764 , rl.CUSTOM10
765 , rl.CUSTOM11
766 , rl.CUSTOM12
767 , rl.CUSTOM13
768 , rl.CUSTOM14
769 , rl.CUSTOM15
770 , rl.PLAN_TYPE_CODE /* 4471527 */
771 FROM pji_fp_xbs_accum_f rl
772 WHERE 1=1
773 AND rl.plan_version_id = p_source_plan_ver_id
774 AND ( (rl.rbs_aggr_level = g_top_level) OR (rl.rbs_aggr_level = g_lowest_level AND wbs_rollup_flag = 'N' ))
775 ) ;
776
777 print_time ( ' COPY_PRIMARY_SINGLE api 002 ' );
778
779
780 l_dest_fp_version_ids := SYSTEM.pa_num_tbl_type(p_target_plan_ver_id);
781
782 EXTRACT_FIN_PLAN_VERSIONS(
783 p_fp_version_ids => l_dest_fp_version_ids
784 , p_slice_type => 'PRI'
785 ); print_time ( ' COPY_PRIMARY_SINGLE api 003 ' );
786
787 POPULATE_WBS_HDR; print_time(' 2.1 .. ');
788
789 UPDATE_WBS_HDR; print_time(' 2.11 .. ');
790
791 POPULATE_RBS_HDR; print_time(' 2.2 .. ');
792
793 MERGE_INTO_FP_FACT;
794
795 CLEANUP_INTERIM_TABLES; print_time(' 2.3 .. ');
796
797 print_time ( ' COPY_PRIMARY_SINGLE api 004 ' || sql%rowcount);
798
799
800 IF (p_commit = 'T') THEN
801 COMMIT;
802 END IF;
803
804 print_time ( ' COPY_PRIMARY_SINGLE api 005 ');
805
806 EXCEPTION
807 WHEN OTHERS THEN
808 FND_MSG_PUB.add_exc_msg( p_pkg_name => g_package_name ,
809 p_procedure_name => 'COPY_PRIMARY_SINGLE');
810 RAISE;
811 END;
812
813
814 --
815 -- Get the budget versions that need to be extracted INTO a temp table.
816 -- This is to set scope for extraction as well as track time/curr dangling records
817 -- in the case of secondary slice creation.
818 --
819 PROCEDURE EXTRACT_FIN_PLAN_VERS_BULK(
820 p_slice_type IN VARCHAR2 := NULL -- 'PRI' or 'SEC' or 'SECRBS'
821 ) IS
822 BEGIN
823
824 print_time('EXTRACT_FIN_PLAN_VERS_BULK : Begin ' );
825
826 IF ( p_slice_type NOT IN ('PRI', 'SEC', 'SECRBS') ) THEN
827 print_time('EXTRACT_FIN_PLAN_VERSIONS : Invalid slice type. Exitting. ' );
828 RETURN;
829 END IF;
830
831
832 IF ( p_slice_type = 'PRI') THEN
833
834 INSERT INTO PJI_FM_EXTR_PLNVER3_T
835 (
836 PROJECT_ID ,
837 PLAN_VERSION_ID ,
838 WBS_STRUCT_VERSION_ID ,
839 RBS_STRUCT_VERSION_ID ,
840 PLAN_TYPE_CODE , /* 4471527 */
841 PLAN_TYPE_ID ,
842 TIME_PHASED_TYPE_CODE ,
843 TIME_DANGLING_FLAG ,
844 RATE_DANGLING_FLAG ,
845 PROJECT_TYPE_CLASS ,
846 WP_FLAG ,
847 CURRENT_FLAG ,
848 ORIGINAL_FLAG ,
849 CURRENT_ORIGINAL_FLAG ,
850 BASELINED_FLAG ,
851 SECONDARY_RBS_FLAG
852 )
853 SELECT
854 bv.project_id project_id
855 , bv.budget_version_id plan_version_id
856 , DECODE ( NVL(bv.wp_version_flag, 'N')
857 , 'Y', bv.project_structure_version_id
858 , PA_PROJECT_STRUCTURE_UTILS.GET_FIN_STRUC_VER_ID(bv.project_id) -- -9999 --
859 ) wbs_struct_version_id
860 , fpo.rbs_version_id rbs_struct_version_id
861 -- , to_char(fpo.fin_plan_type_id) plan_type_code
862 , DECODE (bv.version_type, 'COST' ,'C' , 'REVENUE', 'R', 'A') plan_type_code /* 4471527 */
863 , fpo.fin_plan_type_id plan_type_id
864 , DECODE(bv.version_type
865 , g_all_timeph_code, fpo.all_time_phased_code
866 , g_cost_timeph_code, fpo.cost_time_phased_code
867 , g_rev_timeph_code, fpo.revenue_time_phased_code
868 ) time_phased_type_code
869 , NULL time_dangling_flag -- to be used for dangling check.
870 , NULL rate_dangling_flag -- to be used for dangling check.
871 , NULL PROJECT_TYPE_CLASS
872 , NVL(bv.wp_version_flag, 'N') is_wp_flag
873 , bv.current_flag current_flag
874 , bv.original_flag original_flag
875 , bv.current_original_flag current_original_flag
876 , DECODE(bv.baselined_date, NULL, 'N', 'Y') baselined_flag
877 , 'N' SECONDARY_RBS_FLAG
878 FROM
879 pa_budget_versions bv -- @pjdev115 bv
880 , pa_proj_fp_options fpo -- @pjdev115 fpo
881 , pa_projects_all ppa -- @pjdev115 ppa
882 WHERE 1=1
883 AND ppa.project_id = bv.project_id
884 AND bv.version_type is not NULL -- COST, REVENUE, etc. Should not be null.
885 AND bv.fin_plan_type_id is not NULL -- Old budgets model data is not picked up with this condition.
886 AND fpo.project_id = bv.project_id
887 AND bv.fin_plan_type_id = fpo.fin_plan_type_id
888 AND bv.budget_version_id = fpo.fin_plan_version_id
889 AND fpo.fin_plan_option_level_code = 'PLAN_VERSION' -- Other values are: plan type and project.
890 AND bv.version_type IN ( g_all_timeph_code , g_cost_timeph_code , g_rev_timeph_code) -- Eg of other version type is ORG_FORECAST.
891 -- AND bv.pji_summarized_flag = 'N'
892 ;
893
894 ELSIF ( p_slice_type = 'SEC') THEN
895
896 INSERT INTO PJI_FM_EXTR_PLNVER3_T
897 (
898 PROJECT_ID ,
899 PLAN_VERSION_ID ,
900 WBS_STRUCT_VERSION_ID ,
901 RBS_STRUCT_VERSION_ID ,
902 PLAN_TYPE_CODE ,
903 PLAN_TYPE_ID ,
904 TIME_PHASED_TYPE_CODE ,
905 TIME_DANGLING_FLAG ,
906 RATE_DANGLING_FLAG ,
907 PROJECT_TYPE_CLASS ,
908 WP_FLAG ,
909 CURRENT_FLAG ,
910 ORIGINAL_FLAG ,
911 CURRENT_ORIGINAL_FLAG ,
912 BASELINED_FLAG ,
913 SECONDARY_RBS_FLAG
914 )
915 SELECT
916 bv.project_id project_id
917 , bv.budget_version_id plan_version_id
918 , DECODE ( NVL(bv.wp_version_flag, 'N')
919 , 'Y', bv.project_structure_version_id
920 , PA_PROJECT_STRUCTURE_UTILS.GET_FIN_STRUC_VER_ID(bv.project_id) -- -9999 --
921 ) wbs_struct_version_id
922 , fpo.rbs_version_id rbs_struct_version_id
923 -- , to_char(fpo.fin_plan_type_id) plan_type_code
924 , DECODE (bv.version_type, 'COST' ,'C' , 'REVENUE', 'R', 'A') plan_type_code /* 4471527 */
925 , fpo.fin_plan_type_id plan_type_id
926 , DECODE(bv.version_type
927 , g_all_timeph_code, fpo.all_time_phased_code
928 , g_cost_timeph_code, fpo.cost_time_phased_code
929 , g_rev_timeph_code, fpo.revenue_time_phased_code
930 ) time_phased_type_code
931 , NULL time_dangling_flag -- to be used for dangling check.
932 , NULL rate_dangling_flag -- to be used for dangling check.
933 , NULL PROJECT_TYPE_CLASS
934 , NVL(bv.wp_version_flag, 'N') is_wp_flag
935 , bv.current_flag current_flag
936 , bv.original_flag original_flag
937 , bv.current_original_flag current_original_flag
938 , DECODE(bv.baselined_date, NULL, 'N', 'Y') baselined_flag
939 , 'N' SECONDARY_RBS_FLAG
940 FROM
941 pa_budget_versions bv -- @pjdev115 bv
942 , pa_proj_fp_options fpo -- @pjdev115 fpo -- is there a work plan options table?
943 , pa_projects_all ppa -- @pjdev115 ppa
944 WHERE 1=1
945 AND ppa.project_id = bv.project_id
946 AND bv.version_type is not NULL -- COST, REVENUE, etc. Should not be null.
947 AND bv.fin_plan_type_id is not NULL -- Old budgets model data is not picked up with this condition.
948 AND fpo.project_id = bv.project_id
949 AND bv.fin_plan_type_id = fpo.fin_plan_type_id
950 AND bv.budget_version_id = fpo.fin_plan_version_id
951 AND fpo.fin_plan_option_level_code = 'PLAN_VERSION' -- Other values are: plan type and project.
952 AND bv.version_type IN ( g_all_timeph_code , g_cost_timeph_code , g_rev_timeph_code) -- Eg of other version type is ORG_FORECAST.
953 -- AND bv.pji_summarized_flag = 'P' -- For plan baselining, don't check for summarized flag.
954 -- Temporarily taking this condition out for global currency conversion.
955 AND bv.budget_status_code = 'B'
956 AND NVL(bv.wp_version_flag, 'N') = 'N';
957
958
959 ELSIF ( p_slice_type = 'SECRBS') THEN
960
961 INSERT INTO PJI_FM_EXTR_PLNVER3_T
962 (
963 PROJECT_ID ,
964 PLAN_VERSION_ID ,
965 WBS_STRUCT_VERSION_ID ,
966 RBS_STRUCT_VERSION_ID ,
967 PLAN_TYPE_CODE ,
968 PLAN_TYPE_ID ,
969 TIME_PHASED_TYPE_CODE ,
970 TIME_DANGLING_FLAG ,
971 RATE_DANGLING_FLAG ,
972 PROJECT_TYPE_CLASS ,
973 WP_FLAG ,
974 CURRENT_FLAG ,
975 ORIGINAL_FLAG ,
976 CURRENT_ORIGINAL_FLAG ,
977 BASELINED_FLAG ,
978 SECONDARY_RBS_FLAG
979 )
980 SELECT
981 bv.project_id project_id
982 , bv.budget_version_id plan_version_id
983 , DECODE ( NVL(bv.wp_version_flag, 'N')
984 , 'Y', bv.project_structure_version_id
985 , PA_PROJECT_STRUCTURE_UTILS.GET_FIN_STRUC_VER_ID(bv.project_id) -- -9999 --
986 ) wbs_struct_version_id
987 , rpa.rbs_version_id rbs_struct_version_id
988 -- , fpo.rbs_version_id rbs_struct_version_id
989 -- , to_char(fpo.fin_plan_type_id) plan_type_code
990 , DECODE (bv.version_type, 'COST' ,'C' , 'REVENUE', 'R', 'A') plan_type_code /* 4471527 */
991 , fpo.fin_plan_type_id plan_type_id
992 , DECODE(bv.version_type
993 , g_all_timeph_code, fpo.all_time_phased_code
994 , g_cost_timeph_code, fpo.cost_time_phased_code
995 , g_rev_timeph_code, fpo.revenue_time_phased_code
996 ) time_phased_type_code
997 , NULL time_dangling_flag -- to be used for dangling check.
998 , NULL rate_dangling_flag -- to be used for dangling check.
999 , NULL PROJECT_TYPE_CLASS
1000 , NVL(bv.wp_version_flag, 'N') is_wp_flag
1001 , bv.current_flag current_flag
1002 , bv.original_flag original_flag
1003 , bv.current_original_flag current_original_flag
1004 , DECODE(bv.baselined_date, NULL, 'N', 'Y') baselined_flag
1005 , 'Y' SECONDARY_RBS_FLAG
1006 FROM
1007 pa_budget_versions bv -- @pjdev115 bv
1008 , pa_proj_fp_options fpo -- @pjdev115 fpo -- is there a work plan options table?
1009 , pa_projects_all ppa -- @pjdev115 ppa
1010 , PA_RBS_PRJ_ASSIGNMENTS rpa
1011 WHERE 1=1
1012 AND ppa.project_id = bv.project_id
1013 AND bv.version_type is not NULL -- COST, REVENUE, etc. Should not be null.
1014 AND bv.fin_plan_type_id is not NULL -- Old budgets model data is not picked up with this condition.
1015 AND fpo.project_id = bv.project_id
1016 AND bv.fin_plan_type_id = fpo.fin_plan_type_id
1017 AND bv.budget_version_id = fpo.fin_plan_version_id
1018 AND fpo.fin_plan_option_level_code = 'PLAN_VERSION' -- Other values are: plan type and project.
1019 AND bv.version_type IN ( g_all_timeph_code , g_cost_timeph_code , g_rev_timeph_code) -- Eg of other version type is ORG_FORECAST.
1020 -- AND bv.pji_summarized_flag = 'P' -- Pri slice created or dangling records exist.
1021 -- Temporarily taking this condition out for global currency conversion.
1022 AND bv.budget_status_code = 'B'
1023 AND rpa.project_id = bv.project_id
1024 -- AND DECODE ( rpa.wp_usage_flag, 'Y', 'Y', 'X') = NVL(bv.wp_version_flag, 'N')
1025 -- AND DECODE ( rpa.fp_usage_flag, 'Y', 'N', 'X') = NVL(bv.wp_version_flag, 'N')
1026 AND rpa.assignment_status = 'ACTIVE'
1027 AND rpa.rbs_version_id <> NVL(fpo.rbs_version_id, -1)
1028 AND NVL(bv.wp_version_flag, 'N') = 'N'
1029 AND rpa.reporting_usage_flag = 'Y';
1030
1031 END IF;
1032
1033
1034 print_time('EXTRACT_FIN_PLAN_VERS_BULK : End .. rows processed ' || SQL%ROWCOUNT );
1035
1036 EXCEPTION
1037 WHEN OTHERS THEN
1038 FND_MSG_PUB.add_exc_msg( p_pkg_name => g_package_name ,
1039 p_procedure_name => 'EXTRACT_FIN_PLAN_VERS_BULK');
1040 print_time('EXTRACT_FIN_PLAN_VERS_BULK : Exception: ' || sqlerrm );
1041 RAISE;
1042 END;
1043
1044
1045 --
1046 -- Get the budget versions that need to be extracted INTO a temp table.
1047 -- This is to set scope for extraction as well as track time/curr dangling records
1048 -- in the case of secondary slice creation.
1049 --
1050 PROCEDURE EXTRACT_FIN_PLAN_VERSIONS(
1051 p_fp_version_ids IN SYSTEM.pa_num_tbl_type := pji_empty_num_tbl
1052 , p_slice_type IN VARCHAR2 := NULL -- 'PRI' or 'SEC' or 'SECRBS'
1053 ) IS
1054 l_count NUMBER;
1055 BEGIN
1056
1057 print_time('EXTRACT_FIN_PLAN_VERSIONS : Begin ' );
1058
1059 IF (p_slice_type NOT IN ( 'PRI', 'SEC', 'SECRBS' )) THEN
1060 print_time('EXTRACT_FIN_PLAN_VERSIONS : Invalid slice type. Exitting. ' );
1061 RETURN;
1062 END IF;
1063
1064 print_time('EXTRACT_FIN_PLAN_VERSIONS : l_count is ... ' || p_fp_version_ids.COUNT );
1065
1066 IF (p_slice_type = 'PRI') THEN
1067
1068 FOR I IN 1..p_fp_version_ids.COUNT LOOP
1069
1070 INSERT INTO PJI_FM_EXTR_PLNVER3_T ver3
1071 (
1072 PROJECT_ID ,
1073 PLAN_VERSION_ID ,
1074 WBS_STRUCT_VERSION_ID ,
1075 RBS_STRUCT_VERSION_ID ,
1076 PLAN_TYPE_CODE ,
1077 PLAN_TYPE_ID ,
1078 TIME_PHASED_TYPE_CODE ,
1079 TIME_DANGLING_FLAG ,
1080 RATE_DANGLING_FLAG ,
1081 PROJECT_TYPE_CLASS ,
1082 WP_FLAG ,
1083 CURRENT_FLAG ,
1084 ORIGINAL_FLAG ,
1085 CURRENT_ORIGINAL_FLAG ,
1086 BASELINED_FLAG ,
1087 SECONDARY_RBS_FLAG
1088 )
1089 SELECT
1090 bv.project_id project_id
1091 , bv.budget_version_id plan_version_id
1092 , DECODE ( NVL(bv.wp_version_flag, 'N')
1093 , 'Y', bv.project_structure_version_id
1094 , PA_PROJECT_STRUCTURE_UTILS.GET_FIN_STRUC_VER_ID(bv.project_id)
1095 ) wbs_struct_version_id
1096 , fpo.rbs_version_id rbs_struct_version_id
1097 -- , to_char(fpo.fin_plan_type_id) plan_type_code
1098 , DECODE (bv.version_type, 'COST' ,'C' , 'REVENUE', 'R', 'A') plan_type_code /* 4471527 */
1099 , fpo.fin_plan_type_id plan_type_id
1100 , DECODE(bv.version_type
1101 , g_all_timeph_code, fpo.all_time_phased_code
1102 , g_cost_timeph_code, fpo.cost_time_phased_code
1103 , g_rev_timeph_code, fpo.revenue_time_phased_code
1104 ) time_phased_type_code
1105 , NULL time_dangling_flag -- to be used for dangling check.
1106 , NULL rate_dangling_flag -- to be used for dangling check.
1107 , NULL PROJECT_TYPE_CLASS
1108 , NVL(bv.wp_version_flag, 'N') is_wp_flag
1109 , bv.current_flag current_flag
1110 , bv.original_flag original_flag
1111 , bv.current_original_flag current_original_flag
1112 , DECODE(bv.baselined_date, NULL, 'N', 'Y') baselined_flag
1113 , 'N' SECONDARY_RBS_FLAG
1114 FROM
1115 pa_budget_versions bv -- @pjdev115 bv
1116 , pa_proj_fp_options fpo -- @pjdev115 fpo
1117 , pa_projects_all ppa -- @pjdev115 ppa
1118 WHERE 1=1
1119 AND ppa.project_id = bv.project_id
1120 AND bv.version_type is not NULL -- COST, REVENUE, etc. Should not be null.
1121 AND bv.fin_plan_type_id is not NULL -- Old budgets model data is not picked up with this condition.
1122 -- Ask VR: How about WP version.. are they picked up with this condition??
1123 AND fpo.project_id = bv.project_id
1124 AND bv.fin_plan_type_id = fpo.fin_plan_type_id
1125 AND bv.budget_version_id = fpo.fin_plan_version_id
1126 AND fpo.fin_plan_option_level_code = 'PLAN_VERSION' -- Other values are: plan type and project.
1127 AND bv.version_type IN ( g_all_timeph_code , g_cost_timeph_code , g_rev_timeph_code) -- Eg of other version type is ORG_FORECAST.
1128 -- AND bv.pji_summarized_flag = 'N'
1129 AND bv.budget_version_id = p_fp_version_ids(i) ;
1130
1131 END LOOP;
1132
1133 ELSIF (p_slice_type = 'SEC') THEN
1134
1135 FOR I IN 1..p_fp_version_ids.COUNT LOOP
1136
1137 INSERT INTO PJI_FM_EXTR_PLNVER3_T ver3
1138 (
1139 PROJECT_ID ,
1140 PLAN_VERSION_ID ,
1141 WBS_STRUCT_VERSION_ID ,
1142 RBS_STRUCT_VERSION_ID ,
1143 PLAN_TYPE_CODE ,
1144 PLAN_TYPE_ID ,
1145 TIME_PHASED_TYPE_CODE ,
1146 TIME_DANGLING_FLAG ,
1147 RATE_DANGLING_FLAG ,
1148 PROJECT_TYPE_CLASS ,
1149 WP_FLAG ,
1150 CURRENT_FLAG ,
1151 ORIGINAL_FLAG ,
1152 CURRENT_ORIGINAL_FLAG ,
1153 BASELINED_FLAG ,
1154 SECONDARY_RBS_FLAG
1155 )
1156 SELECT
1157 bv.project_id project_id
1158 , bv.budget_version_id plan_version_id
1159 , DECODE ( NVL(bv.wp_version_flag, 'N')
1160 , 'Y', bv.project_structure_version_id
1161 , PA_PROJECT_STRUCTURE_UTILS.GET_FIN_STRUC_VER_ID(bv.project_id)
1162 ) wbs_struct_version_id
1163 , fpo.rbs_version_id rbs_struct_version_id
1164 -- , to_char(fpo.fin_plan_type_id) plan_type_code
1165 , DECODE (bv.version_type, 'COST' ,'C' , 'REVENUE', 'R', 'A') plan_type_code /* 4471527 */
1166 , fpo.fin_plan_type_id plan_type_id
1167 , DECODE(bv.version_type
1168 , g_all_timeph_code, fpo.all_time_phased_code
1169 , g_cost_timeph_code, fpo.cost_time_phased_code
1170 , g_rev_timeph_code, fpo.revenue_time_phased_code
1171 ) time_phased_type_code
1172 , NULL time_dangling_flag -- to be used for dangling check.
1173 , NULL rate_dangling_flag -- to be used for dangling check.
1174 , NULL PROJECT_TYPE_CLASS
1175 , NVL(bv.wp_version_flag, 'N') is_wp_flag
1176 , bv.current_flag current_flag
1177 , bv.original_flag original_flag
1178 , bv.current_original_flag current_original_flag
1179 , DECODE(bv.baselined_date, NULL, 'N', 'Y') baselined_flag
1180 , 'N' SECONDARY_RBS_FLAG
1181 FROM
1182 pa_budget_versions bv -- @pjdev115 bv
1183 , pa_proj_fp_options fpo -- @pjdev115 fpo
1184 , pa_projects_all ppa -- @pjdev115 ppa
1185 WHERE 1=1
1186 AND ppa.project_id = bv.project_id
1187 AND bv.version_type is not NULL -- COST, REVENUE, etc. Should not be null.
1188 AND bv.fin_plan_type_id is not NULL -- Old budgets model data is not picked up with this condition.
1189 -- Ask VR: How about WP version.. are they picked up with this condition??
1190 AND fpo.project_id = bv.project_id
1191 AND bv.fin_plan_type_id = fpo.fin_plan_type_id
1192 AND bv.budget_version_id = fpo.fin_plan_version_id
1193 AND fpo.fin_plan_option_level_code = 'PLAN_VERSION' -- Other values are: plan type and project.
1194 AND bv.version_type IN ( g_all_timeph_code , g_cost_timeph_code , g_rev_timeph_code) -- Eg of other version type is ORG_FORECAST.
1195 -- AND bv.pji_summarized_flag = 'P' -- Pri slice created or dangling records exist.
1196 -- Temporarily taking this condition out for global currency conversion.
1197 AND bv.budget_status_code = 'B'
1198 AND NVL(bv.wp_version_flag, 'N') = 'N'
1199 AND bv.budget_version_id = p_fp_version_ids(i) ;
1200
1201 END LOOP;
1202
1203
1204 ELSIF (p_slice_type = 'SECRBS') THEN
1205
1206 FOR I IN 1..p_fp_version_ids.COUNT LOOP
1207
1208 INSERT INTO PJI_FM_EXTR_PLNVER3_T ver3
1209 (
1210 PROJECT_ID ,
1211 PLAN_VERSION_ID ,
1212 WBS_STRUCT_VERSION_ID ,
1213 RBS_STRUCT_VERSION_ID ,
1214 PLAN_TYPE_CODE ,
1215 PLAN_TYPE_ID ,
1216 TIME_PHASED_TYPE_CODE ,
1217 TIME_DANGLING_FLAG ,
1218 RATE_DANGLING_FLAG ,
1219 PROJECT_TYPE_CLASS ,
1220 WP_FLAG ,
1221 CURRENT_FLAG ,
1222 ORIGINAL_FLAG ,
1223 CURRENT_ORIGINAL_FLAG ,
1224 BASELINED_FLAG ,
1225 SECONDARY_RBS_FLAG
1226 )
1227 SELECT
1228 bv.project_id project_id
1229 , bv.budget_version_id plan_version_id
1230 , DECODE ( NVL(bv.wp_version_flag, 'N')
1231 , 'Y', bv.project_structure_version_id
1232 , PA_PROJECT_STRUCTURE_UTILS.GET_FIN_STRUC_VER_ID(bv.project_id)
1233 ) wbs_struct_version_id
1234 , rpa.rbs_version_id rbs_struct_version_id
1235 -- , to_char(fpo.fin_plan_type_id) plan_type_code
1236 , DECODE (bv.version_type, 'COST' ,'C' , 'REVENUE', 'R', 'A') plan_type_code /* 4471527 */
1237 , fpo.fin_plan_type_id plan_type_id
1238 , DECODE(bv.version_type
1239 , g_all_timeph_code, fpo.all_time_phased_code
1240 , g_cost_timeph_code, fpo.cost_time_phased_code
1241 , g_rev_timeph_code, fpo.revenue_time_phased_code
1242 ) time_phased_type_code
1243 , NULL time_dangling_flag -- to be used for dangling check.
1244 , NULL rate_dangling_flag -- to be used for dangling check.
1245 , NULL PROJECT_TYPE_CLASS
1246 , NVL(bv.wp_version_flag, 'N') is_wp_flag
1247 , bv.current_flag current_flag
1248 , bv.original_flag original_flag
1249 , bv.current_original_flag current_original_flag
1250 , DECODE(bv.baselined_date, NULL, 'N', 'Y') baselined_flag
1251 , 'Y' SECONDARY_RBS_FLAG
1252 FROM
1253 pa_budget_versions bv -- @pjdev115 bv
1254 , pa_proj_fp_options fpo -- @pjdev115 fpo
1255 , pa_projects_all ppa -- @pjdev115 ppa
1256 , PA_RBS_PRJ_ASSIGNMENTS rpa
1257 WHERE 1=1
1258 AND ppa.project_id = bv.project_id
1259 AND bv.version_type is not NULL -- COST, REVENUE, etc. Should not be null.
1260 AND bv.fin_plan_type_id is not NULL -- Old budgets model data is not picked up with this condition.
1261 -- Ask VR: How about WP version.. are they picked up with this condition??
1262 AND fpo.project_id = bv.project_id
1263 AND bv.fin_plan_type_id = fpo.fin_plan_type_id
1264 AND bv.budget_version_id = fpo.fin_plan_version_id
1265 AND fpo.fin_plan_option_level_code = 'PLAN_VERSION' -- Other values are: plan type and project.
1266 AND bv.version_type IN ( g_all_timeph_code , g_cost_timeph_code , g_rev_timeph_code) -- Eg of other version type is ORG_FORECAST.
1267 -- AND bv.pji_summarized_flag = 'P' -- Pri slice created or dangling records exist.
1268 -- Temporarily taking this condition out for global currency conversion.
1269 AND bv.budget_status_code = 'B'
1270 AND rpa.project_id = bv.project_id
1271 AND rpa.assignment_status = 'ACTIVE'
1272 AND rpa.rbs_version_id <> NVL(fpo.rbs_version_id, -1)
1273 AND rpa.reporting_usage_flag = 'Y'
1274 AND NVL(bv.wp_version_flag, 'N') = 'N'
1275 AND bv.budget_version_id = p_fp_version_ids(i)
1276 AND bv.project_id = rpa.project_id;
1277
1278 END LOOP;
1279
1280 END IF;
1281
1282 print_time('EXTRACT_FIN_PLAN_VERSIONS : l_count is ... ' || SQL%ROWCOUNT );
1283
1284 print_time('EXTRACT_FIN_PLAN_VERSIONS : End' );
1285
1286 EXCEPTION
1287 WHEN OTHERS THEN
1288 print_time('EXTRACT_FIN_PLAN_VERSIONS : Exception: ' || sqlerrm );
1289 FND_MSG_PUB.add_exc_msg( p_pkg_name => g_package_name ,
1290 p_procedure_name => 'EXTRACT_FIN_PLAN_VERSIONS');
1291 RAISE;
1292 END;
1293
1294
1295 --
1296 -- Insert -3, -4 versions into ver3.
1297 --
1298 PROCEDURE EXTRACT_CB_CO_PLAN_VERSIONS IS
1299 BEGIN
1300
1301 INSERT INTO pji_fm_extr_plnver3_t
1302 (
1303 project_id
1304 , plan_version_id
1305 , wbs_struct_version_id
1306 , rbs_struct_version_id
1307 , plan_type_id
1308 , plan_type_code
1309 , time_phased_type_code
1310 , time_dangling_flag
1311 , rate_dangling_flag
1312 , project_type_class
1313 , wp_flag
1314 , current_flag
1315 , original_flag
1316 , current_original_flag
1317 , baselined_flag
1318 , secondary_rbs_flag
1319 , lp_flag
1320 )
1321 SELECT DISTINCT
1322 project_id
1323 , -3 -- plan_version_id
1324 , wbs_struct_version_id
1325 , rbs_struct_version_id
1326 , plan_type_id
1327 , plan_type_code /* 4471527 */
1328 , time_phased_type_code
1329 , NULL -- time dangling flag
1330 , NULL -- rate dangling flag
1331 , NULL -- project type class
1332 , wp_flag -- wp flag
1333 , current_flag -- curr flag
1334 , 'N' -- original_flag -- orig flag
1335 , 'N' -- current_original_flag -- corr orig flag
1336 , baselined_flag -- baselined flag
1337 , secondary_rbs_flag -- sec rbs flag
1338 , lp_flag -- lp flag
1339 FROM pji_fm_extr_plnver3_t
1340 WHERE wp_flag = 'N'
1341 AND baselined_flag = 'Y'
1342 AND current_flag = 'Y'
1343 AND plan_version_id > 0
1344 AND rate_dangling_flag IS NULL
1345 AND time_dangling_flag IS NULL
1346 UNION ALL
1347 SELECT DISTINCT
1348 project_id
1349 , -4 -- plan_version_id
1350 , wbs_struct_version_id
1351 , rbs_struct_version_id
1352 , plan_type_id
1353 , plan_type_code /* 4471527 */
1354 , time_phased_type_code
1355 , NULL -- time dangling flag
1356 , NULL -- rate dangling flag
1357 , NULL -- project type class
1358 , wp_flag -- wp flag
1359 , current_flag -- curr flag
1360 , original_flag -- orig flag
1361 , current_original_flag -- corr orig flag
1362 , 'N' -- baselined_flag -- baselined flag
1363 , secondary_rbs_flag -- sec rbs flag
1364 , lp_flag -- lp flag
1365 FROM pji_fm_extr_plnver3_t
1366 WHERE wp_flag = 'N'
1367 AND baselined_flag = 'Y'
1368 AND current_original_flag = 'Y'
1369 AND plan_version_id > 0
1370 AND rate_dangling_flag IS NULL
1371 AND time_dangling_flag IS NULL;
1372
1373 print_time ( ' # -3, -4 records inserted into ver3 is ' || SQL%ROWCOUNT );
1374
1375 END;
1376
1377
1378 --
1379 -- Extract the period level plan amounts for PA/GL/non time phased entries from budget lines
1380 -- for the primary RBS for this plan version into pji_fp_aggr_pjp1_t.
1381 -- EXTRACT_PLAN_AMOUNTS_PRIRBS
1382 PROCEDURE EXTRACT_PLAN_AMOUNTS_PRIRBS IS
1383 l_count NUMBER;
1384 l_max_plnver_id NUMBER := NULL;
1385 BEGIN
1386
1387 print_time('EXTRACT_PLAN_AMOUNTS_PRIRBS : Begin' );
1388 print_time('EXTRACT_PLAN_AMOUNTS_PRIRBS : Begin worker id is ... ' || 1);
1389
1390 INSERT_NTP_CAL_RECORD ( x_max_plnver_id => l_max_plnver_id );
1391
1392 IF (l_max_plnver_id IS NULL) THEN
1393 RETURN;
1394 END IF;
1395
1396 INSERT INTO PJI_FP_AGGR_PJP1_T
1397 (
1398 WORKER_ID
1399 , PROJECT_ID
1400 , PROJECT_ORG_ID
1401 , PROJECT_ORGANIZATION_ID
1402 , PROJECT_ELEMENT_ID
1403 , TIME_ID
1404 , PERIOD_TYPE_ID
1405 , CALENDAR_TYPE
1406 , RBS_AGGR_LEVEL
1407 , WBS_ROLLUP_FLAG
1408 , PRG_ROLLUP_FLAG
1409 , CURR_RECORD_TYPE_ID
1410 , CURRENCY_CODE
1411 , RBS_ELEMENT_ID
1412 , RBS_VERSION_ID
1413 , PLAN_VERSION_ID
1414 , PLAN_TYPE_ID
1415 , RAW_COST
1416 , BRDN_COST
1417 , REVENUE
1418 , BILL_RAW_COST
1419 , BILL_BRDN_COST
1420 , BILL_LABOR_RAW_COST
1421 , BILL_LABOR_BRDN_COST
1422 , BILL_LABOR_HRS
1423 , EQUIPMENT_RAW_COST
1424 , EQUIPMENT_BRDN_COST
1425 , CAPITALIZABLE_RAW_COST
1426 , CAPITALIZABLE_BRDN_COST
1427 , LABOR_RAW_COST
1428 , LABOR_BRDN_COST
1429 , LABOR_HRS
1430 , LABOR_REVENUE
1431 , EQUIPMENT_HOURS
1432 , BILLABLE_EQUIPMENT_HOURS
1433 , SUP_INV_COMMITTED_COST
1434 , PO_COMMITTED_COST
1435 , PR_COMMITTED_COST
1436 , OTH_COMMITTED_COST
1437 , ACT_LABOR_HRS
1438 , ACT_EQUIP_HRS
1439 , ACT_LABOR_BRDN_COST
1440 , ACT_EQUIP_BRDN_COST
1441 , ACT_BRDN_COST
1442 , ACT_RAW_COST
1443 , ACT_REVENUE
1444 , ACT_LABOR_RAW_COST
1445 , ACT_EQUIP_RAW_COST
1446 , ETC_LABOR_HRS
1447 , ETC_EQUIP_HRS
1448 , ETC_LABOR_BRDN_COST
1449 , ETC_EQUIP_BRDN_COST
1450 , ETC_BRDN_COST
1451 , ETC_RAW_COST
1452 , ETC_LABOR_RAW_COST
1453 , ETC_EQUIP_RAW_COST
1454 , CUSTOM1
1455 , CUSTOM2
1456 , CUSTOM3
1457 , CUSTOM4
1458 , CUSTOM5
1459 , CUSTOM6
1460 , CUSTOM7
1461 , CUSTOM8
1462 , CUSTOM9
1463 , CUSTOM10
1464 , CUSTOM11
1465 , CUSTOM12
1466 , CUSTOM13
1467 , CUSTOM14
1468 , CUSTOM15
1469 , LINE_TYPE
1470 , RATE_DANGLING_FLAG
1471 , TIME_DANGLING_FLAG
1472 -- , START_DATE
1473 -- , END_DATE
1474 , PRG_LEVEL
1475 , PLAN_TYPE_CODE /* 4471527 */
1476 )
1477 SELECT
1478 g_worker_id WORKER_ID
1479 , plr.PROJECT_ID
1480 , plr.PROJECT_ORG_ID
1481 , plr.project_ORGANIZATION_ID
1482 , plr.WBS_ELEMENT_ID
1483 , DECODE(vers.time_phased_type_code
1484 , 'N', -1
1485 , pji_time.cal_period_id) time_id
1486 , DECODE(vers.time_phased_type_code
1487 , g_pa_cal_str, 32
1488 , g_gl_cal_str, 32
1489 , 'N', 2048
1490 , -1) period_type_id -- period type id...
1491 , DECODE(vers.time_phased_type_code
1492 , g_pa_cal_str, g_pa_cal_str
1493 , g_gl_cal_str, g_gl_cal_str
1494 , 'N', g_all
1495 , 'X') -- CALENDAR_TYPE
1496 , g_lowest_level RBS_AGGR_LEVEL
1497 , 'N' WBS_ROLLUP_FLAG
1498 , 'N' PRG_ROLLUP_FLAG
1499 , plr.CURR_RECORD_TYPE -- curr code missing.
1500 , plr.currency_code
1501 , plr.RBS_ELEMENT_ID
1502 , plr.RBS_STRUCT_VERSION_ID
1503 , plr.BUDGET_VERSION_ID
1504 , plr.plan_type_id
1505 , SUM(plr.RAW_COST)
1506 , SUM(plr.BRDN_COST)
1507 , SUM(plr.REVENUE)
1508 , SUM ( DECODE ( plr.billable_flag, 'Y', plr.raw_cost, 0 ) ) BILL_RAW_COST
1509 , SUM ( DECODE ( plr.billable_flag, 'Y', plr.BRDN_COST, 0 ) ) BILL_BRDN_COST
1510 , SUM ( DECODE ( plr.billable_flag || plr.resource_class, 'Y' || g_people_resclass_code, plr.raw_cost, 0 ) ) BILL_LABOR_RAW_COST
1511 , SUM ( DECODE ( plr.billable_flag || plr.resource_class, 'Y' || g_people_resclass_code , plr.BRDN_COST, 0 ) ) BILL_LABOR_BRDN_COST
1512 -- , SUM ( DECODE ( plr.billable_flag || plr.resource_class , 'Y' || g_people_resclass_code, plr.quantity, 0 ) ) BILL_LABOR_HRS -- bug 6039785
1513 , SUM ( DECODE ( plr.billable_flag || plr.resource_class , 'Y' || g_people_resclass_code,
1514 DECODE ( plr.billable_flag,'Y',plr.quantity,0) , 0 ) ) BILL_LABOR_HRS -- bug 6039785
1515 , SUM ( DECODE ( plr.resource_class, g_equip_resclass_code , plr.raw_cost, 0 ) ) EQUIPMENT_RAW_COST
1516 , SUM ( DECODE ( plr.resource_class, g_equip_resclass_code , plr.BRDN_COST, 0 ) ) EQUIPMENT_BRDN_COST
1517 , SUM ( DECODE ( plr.billable_flag, 'Y', plr.raw_cost, 0 ) ) CAPITALIZABLE_RAW_COST
1518 , SUM ( DECODE ( plr.billable_flag, 'Y', plr.BRDN_COST, 0 ) ) CAPITALIZABLE_BRDN_COST
1519 , SUM ( DECODE ( plr.resource_class, g_people_resclass_code, plr.raw_cost, 0 ) ) LABOR_RAW_COST
1520 , SUM ( DECODE ( plr.resource_class, g_people_resclass_code, plr.BRDN_COST, 0 ) ) LABOR_BRDN_COST
1521 /* , SUM ( DECODE ( plr.resource_class, g_people_resclass_code,
1522 DECODE ( vers.wp_flag, 'N',
1523 DECODE ( plr.billable_flag, 'Y',plr.quantity,0),
1524 plr.quantity),
1525 0 ) ) labor_hrs */ -- bug 6039785
1526 , SUM ( DECODE ( plr.resource_class, g_people_resclass_code, DECODE(plr.billable_flag,'Y',
1527 DECODE ( vers.wp_flag, 'N',
1528 DECODE ( plr.billable_flag, 'Y', plr.quantity, 0 ),
1529 plr.quantity),
1530 0 ),
1531 0 ) ) labor_hrs -- bug 6039785
1532 , SUM ( DECODE ( plr.resource_class, g_people_resclass_code, plr.revenue, 0 ) ) LABOR_REVENUE
1533 /* , SUM ( DECODE ( plr.resource_class, g_equip_resclass_code,
1534 DECODE ( vers.wp_flag, 'N',
1535 DECODE ( plr.billable_flag, 'Y',plr.quantity,0),
1536 plr.quantity),
1537
1538 0 ) ) EQUIPMENT_HOURS */ -- bug 6039785
1539 , SUM ( DECODE ( plr.resource_class, g_equip_resclass_code, DECODE(plr.billable_flag,'Y',
1540 DECODE ( vers.wp_flag, 'N',
1541 DECODE ( plr.billable_flag, 'Y',plr.quantity,0),
1542 plr.quantity),
1543 0 ),
1544 0 ) ) EQUIPMENT_HOURS -- bug 6039785
1545 /* , SUM ( DECODE ( plr.billable_flag || plr.resource_class, 'YEQUIPMENT', plr.quantity, 0 ) ) BILLABLE_EQUIPMENT_HOURS */ -- bug 6039785
1546 , SUM ( DECODE ( plr.billable_flag || plr.resource_class, 'YEQUIPMENT',
1547 DECODE ( plr.billable_flag,'Y',plr.quantity,0), 0 ) ) BILLABLE_EQUIPMENT_HOURS -- bug 6039785
1548 , NULL SUP_INV_COMMITTED_COST
1549 , NULL PO_COMMITTED_COST
1550 , NULL PR_COMMITTED_COST
1551 , NULL OTH_COMMITTED_COST
1552 /* , SUM ( DECODE ( vers.wp_flag, 'Y', NULL, DECODE ( plr.resource_class, g_people_resclass_code,
1553 DECODE ( plr.billable_flag, 'Y',plr.actual_quantity,0),
1554 0 ) ) ) ACT_LABOR_HRS */ -- bug 6039785
1555 , SUM ( DECODE ( vers.wp_flag, 'Y', NULL, DECODE ( plr.resource_class, g_people_resclass_code,
1556 DECODE (plr.billable_flag ,'Y',
1557 DECODE ( plr.billable_flag, 'Y',plr.actual_quantity,0),
1558 0 ),
1559 0 ) ) ) ACT_LABOR_HRS -- bug 6039785
1560 /* , SUM ( DECODE ( vers.wp_flag, 'Y', NULL, DECODE ( plr.resource_class, g_equip_resclass_code,
1561 DECODE ( plr.billable_flag, 'Y',plr.actual_quantity,0),
1562 0 ) ) ) ACT_EQUIP_HOURS */ -- bug 6039785
1563 , SUM ( DECODE ( vers.wp_flag, 'Y', NULL, DECODE ( plr.resource_class, g_equip_resclass_code,
1564 DECODE (plr.billable_flag ,'Y',
1565 DECODE ( plr.billable_flag, 'Y',plr.actual_quantity,0),
1566 0 ),
1567 0 ) ) ) ACT_EQUIP_HOURS -- bug 6039785
1568 , SUM ( DECODE ( vers.wp_flag, 'Y', NULL, DECODE ( plr.resource_class, g_people_resclass_code, plr.actual_BRDN_COST, 0 ) ) ) ACT_LABOR_BRDN_COST
1569 , SUM ( DECODE ( vers.wp_flag, 'Y', NULL, DECODE ( plr.resource_class, g_equip_resclass_code , plr.actual_BRDN_COST, 0 ) ) ) ACT_EQUIPMENT_BRDN_COST
1570 , SUM ( DECODE ( vers.wp_flag, 'Y', NULL, plr.actual_brdn_cost ) ) ACT_BRDN_COST
1571 , SUM ( DECODE ( vers.wp_flag, 'Y', NULL, plr.actual_raw_cost ) ) ACT_RAW_COST
1572 , SUM ( DECODE ( vers.wp_flag, 'Y', NULL, plr.actual_revenue ) ) ACT_REVENUE
1573 , SUM ( DECODE ( vers.wp_flag, 'Y', NULL, DECODE ( plr.resource_class, g_people_resclass_code, plr.actual_RAW_COST, 0 ) ) ) ACT_LABOR_RAW_COST
1574 , SUM ( DECODE ( vers.wp_flag, 'Y', NULL, DECODE ( plr.resource_class, g_equip_resclass_code , plr.actual_RAW_COST, 0 ) ) ) ACT_EQUIPMENT_RAW_COST
1575 /* , SUM ( DECODE ( vers.wp_flag, 'Y', NULL, DECODE ( plr.resource_class, g_people_resclass_code,
1576 DECODE ( plr.billable_flag, 'Y',plr.ETC_quantity,0),
1577 0 ) ) ) ETC_LABOR_HRS */ -- bug 6039785
1578 , SUM ( DECODE ( vers.wp_flag, 'Y', NULL, DECODE ( plr.resource_class, g_people_resclass_code,
1579 DECODE (plr.billable_flag ,'Y',
1580 DECODE ( plr.billable_flag, 'Y',plr.ETC_quantity,0),
1581 0 ),
1582 0 ) ) ) ETC_LABOR_HRS -- bug 6039785
1583 /* , SUM ( DECODE ( vers.wp_flag, 'Y', NULL, DECODE ( plr.resource_class, g_equip_resclass_code,
1584 DECODE ( plr.billable_flag, 'Y',plr.ETC_quantity,0),
1585 0 ) ) ) ETC_EQUIP_HOURS */ -- bug 6039785
1586 , SUM ( DECODE ( vers.wp_flag, 'Y', NULL, DECODE ( plr.resource_class, g_equip_resclass_code,
1587 DECODE (plr.billable_flag ,'Y',
1588 DECODE ( plr.billable_flag, 'Y',plr.ETC_quantity,0),
1589 0 ),
1590 0 ) ) ) ETC_EQUIP_HOURS -- bug 6039785
1591 , SUM ( DECODE ( vers.wp_flag, 'Y', NULL, DECODE ( plr.resource_class, g_people_resclass_code, plr.etc_BRDN_COST, 0 ) ) ) ETC_LABOR_BRDN_COST
1592 , SUM ( DECODE ( vers.wp_flag, 'Y', NULL, DECODE ( plr.resource_class, g_equip_resclass_code , plr.etc_BRDN_COST, 0 ) ) ) ETC_EQUIP_BRDN_COST
1593 , SUM ( DECODE ( vers.wp_flag, 'Y', NULL, plr.etc_brdn_cost ) ) ETC_BRDN_COST
1594 , SUM ( DECODE ( vers.wp_flag, 'Y', NULL, plr.etc_raw_cost ) ) ETC_RAW_COST
1595 , SUM ( DECODE ( vers.wp_flag, 'Y', NULL, DECODE ( plr.resource_class, g_people_resclass_code, plr.etc_raw_COST, 0 ) ) ) ETC_LABOR_raw_COST
1596 , SUM ( DECODE ( vers.wp_flag, 'Y', NULL, DECODE ( plr.resource_class, g_equip_resclass_code , plr.etc_raw_COST, 0 ) ) ) ETC_EQUIP_raw_COST
1597 , NULL CUSTOM1
1598 , NULL CUSTOM2
1599 , NULL CUSTOM3
1600 , NULL CUSTOM4
1601 , NULL CUSTOM5
1602 , NULL CUSTOM6
1603 , NULL CUSTOM7
1604 , NULL CUSTOM8
1605 , NULL CUSTOM9
1606 , NULL CUSTOM10
1607 , NULL CUSTOM11
1608 , NULL CUSTOM12
1609 , NULL CUSTOM13
1610 , NULL CUSTOM14
1611 , NULL CUSTOM15
1612 , DECODE(vers.time_phased_type_code, g_pa_cal_str, 'OF', g_gl_cal_str, 'OF', 'N', 'NTP', 'X') -- LINE_TYPE
1613 , NULL time_dangling_flag
1614 , NULL rate_dangling_flag
1615 -- , plr.start_date
1616 -- , plr.end_date
1617 , g_default_prg_level prg_level
1618 , plr.plan_type_code /* 4471527 */
1619 FROM
1620 ( ----- First inline view plr .............
1621 select
1622 collapse_bl.PROJECT_ID -- , 1 partition_id
1623 , collapse_bl.WBS_ELEMENT_ID -- , time_id, period_type_id, calendar type.., slice type, rollpu flag...
1624 , SUM(collapse_bl.CURR_RECORD_TYPE_ID) CURR_RECORD_TYPE
1625 , collapse_bl.RBS_ELEMENT_ID
1626 , collapse_bl.RBS_STRUCT_VERSION_ID
1627 , collapse_bl.plan_type_id
1628 , collapse_bl.BUDGET_VERSION_ID
1629 , collapse_bl.PROJECT_ORGANIZATION_ID
1630 , collapse_bl.PROJECT_ORG_ID
1631 , collapse_bl.RESOURCE_ASSIGNMENT_ID
1632 , collapse_bl.BILLABLE_FLAG
1633 , collapse_bl.RESOURCE_CLASS -- , CALENDAR_TYPE -- , CALENDAR_ID
1634 , collapse_bl.TIME_PHASED_TYPE_CODE
1635 , collapse_bl.CURRENCY_CODE
1636 , max(collapse_bl.raw_cost) raw_cost
1637 , max(collapse_bl.BRDN_COST) BRDN_COST
1638 , max(collapse_bl.revenue) revenue
1639 , max(collapse_bl.actual_raw_cost) actual_raw_cost
1640 , max(collapse_bl.actual_BRDN_COST) actual_BRDN_COST
1641 , max(collapse_bl.actual_revenue) actual_revenue
1642 , max(collapse_bl.etc_raw_cost) etc_raw_cost
1643 , max(collapse_bl.etc_BRDN_COST) etc_BRDN_COST
1644 , max(collapse_bl.etc_revenue) etc_revenue
1645 , max(collapse_bl.quantity) quantity
1646 , max(collapse_bl.actual_quantity) actual_quantity
1647 , max(collapse_bl.etc_quantity) etc_quantity
1648 , collapse_bl.start_date start_date
1649 , collapse_bl.end_date end_date
1650 , collapse_bl.period_name period_name -- , TRACK_AS_LABOR_FLAG track_as_labor_flag
1651 , collapse_bl.row_id
1652 , collapse_bl.plan_type_code plan_type_code /* 4471527 */
1653 from
1654 ( ----- Second inline view 'collapse_bl' begin .............
1655 select
1656 spread_bl.row_id row_id
1657 , spread_bl.PROJECT_ID
1658 , spread_bl.BUDGET_VERSION_ID
1659 , spread_bl.RESOURCE_ASSIGNMENT_ID
1660 , spread_bl.WBS_ELEMENT_ID
1661 , spread_bl.RBS_ELEMENT_ID
1662 , spread_bl.WBS_STRUCT_VERSION_ID
1663 , spread_bl.RBS_STRUCT_VERSION_ID
1664 , spread_bl.plan_type_id
1665 , spread_bl.BILLABLE_FLAG
1666 , spread_bl.RESOURCE_CLASS -- , spread_bl.CALENDAR_TYPE -- , pji_time.CALENDAR_ID
1667 , spread_bl.PROJECT_ORGANIZATION_ID
1668 , spread_bl.PROJECT_ORG_ID
1669 , spread_bl.TIME_PHASED_TYPE_CODE
1670 , DECODE( invert.INVERT_ID
1671 , 4, spread_bl.func_CURRENCY_CODE
1672 , 8, spread_bl.PRJ_CURRENCY_CODE
1673 , 16, spread_bl.TXN_CURRENCY_CODE ) CURRENCY_CODE
1674 , invert.INVERT_ID CURR_RECORD_TYPE_ID
1675 , DECODE ( invert.INVERT_ID
1676 , 4, spread_bl.func_raw_cost
1677 , 8, spread_bl.PRJ_raw_cost
1678 , 16, spread_bl.TXN_raw_cost) raw_cost
1679 , DECODE ( invert.INVERT_ID
1680 , 4, spread_bl.func_BRDN_COST
1681 , 8, spread_bl.PRJ_BRDN_COST
1682 , 16, spread_bl.TXN_BRDN_COST ) BRDN_COST
1683 , DECODE ( invert.INVERT_ID
1684 , 4, spread_bl.func_revenue
1685 , 8, spread_bl.PRJ_revenue
1686 , 16, spread_bl.TXN_revenue ) revenue
1687 , DECODE ( invert.INVERT_ID
1688 , 4, spread_bl.func_actual_raw_cost
1689 , 8, spread_bl.prj_actual_raw_cost
1690 , 16, spread_bl.txn_actual_raw_cost ) actual_raw_cost
1691 , DECODE ( invert.INVERT_ID
1692 , 4, spread_bl.func_actual_brdn_cost
1693 , 8, spread_bl.prj_actual_brdn_cost
1694 , 16, spread_bl.txn_actual_brdn_cost ) actual_brdn_cost
1695 , DECODE ( invert.INVERT_ID
1696 , 4, spread_bl.func_actual_revenue
1697 , 8, spread_bl.prj_actual_revenue
1698 , 16, spread_bl.txn_actual_revenue ) actual_revenue
1699 , DECODE ( invert.INVERT_ID
1700 , 4, spread_bl.func_etc_raw_cost
1701 , 8, spread_bl.prj_etc_raw_cost
1702 , 16, spread_bl.txn_etc_raw_cost ) etc_raw_cost
1703 , DECODE ( invert.INVERT_ID
1704 , 4, spread_bl.func_etc_brdn_cost
1705 , 8, spread_bl.prj_etc_brdn_cost
1706 , 16, spread_bl.txn_etc_brdn_cost ) etc_brdn_cost
1707 , DECODE ( invert.INVERT_ID
1708 , 4, spread_bl.func_etc_revenue
1709 , 8, spread_bl.prj_etc_revenue
1710 , 16, spread_bl.txn_etc_revenue ) etc_revenue
1711 , spread_bl.quantity quantity
1712 , spread_bl.actual_quantity actual_quantity
1713 , spread_bl.etc_quantity etc_quantity
1714 , spread_bl.start_date start_date
1715 , spread_bl.end_date end_date
1716 , spread_bl.period_name period_name
1717 -- , spread_bl.TRACK_AS_LABOR_FLAG track_as_labor_flag
1718 , spread_bl.plan_type_code /* 4471527 */
1719 from
1720 ( ----- Third inline view 'spread_bl' .............
1721 -- Added HINT For bug 3828698
1722 SELECT /*+ LEADING(VER) USE_NL(VER,PPA,PEVS,RA,BL)*/
1723 ra.project_id
1724 , bl.rowid row_id
1725 , ra.budget_version_id
1726 , bl.resource_asSIGNment_id
1727 , DECODE(ra.task_id, 0, pevs.proj_element_id, ra.task_id) wbs_element_id
1728 , NVL(ra.rbs_element_id, -1) rbs_element_id
1729 , ver.wbs_struct_version_id wbs_struct_version_id
1730 , NVL(ver.rbs_struct_version_id, -1) rbs_struct_version_id
1731 , ver.plan_type_id plan_type_id
1732 , ra.rate_based_flag billable_flag
1733 , ra.resource_class_code resource_class
1734 , bl.txn_currency_code txn_currency_code
1735 , bl.txn_raw_cost txn_raw_cost
1736 , bl.txn_burdened_COST txn_brdn_COST
1737 , bl.txn_revenue txn_revenue
1738 , DECODE(ver.wp_flag, 'N', bl.txn_init_raw_cost, NULL) txn_actual_raw_cost -- new
1739 , DECODE(ver.wp_flag, 'N', bl.txn_init_burdened_cost, NULL) txn_actual_brdn_cost -- new
1740 , DECODE(ver.wp_flag, 'N', bl.txn_init_revenue, NULL) txn_actual_revenue -- new
1741 , DECODE(ver.wp_flag, 'N', (bl.txn_raw_cost - NVL(bl.txn_init_raw_cost, 0)), NULL) txn_etc_raw_cost -- new
1742 , DECODE(ver.wp_flag, 'N', (bl.txn_burdened_cost - NVL(bl.txn_init_burdened_cost, 0)), NULL) txn_etc_brdn_cost -- new
1743 , DECODE(ver.wp_flag, 'N', (bl.txn_revenue - NVL(bl.txn_init_revenue, 0)), NULL) txn_etc_revenue -- new
1744 , bl.project_currency_code prj_currency_code
1745 , bl.project_raw_cost prj_raw_cost
1746 , bl.project_burdened_COST prj_BRDN_COST
1747 , bl.project_revenue prj_revenue
1748 , DECODE(ver.wp_flag, 'N', bl.project_init_raw_cost, NULL) prj_actual_raw_cost -- new
1749 , DECODE(ver.wp_flag, 'N', bl.project_init_burdened_cost, NULL) prj_actual_brdn_cost -- new
1750 , DECODE(ver.wp_flag, 'N', bl.project_init_revenue, NULL) prj_actual_revenue -- new
1751 , DECODE(ver.wp_flag, 'N', (bl.project_raw_cost - NVL(bl.project_init_raw_cost, 0)), NULL) prj_etc_raw_cost -- new
1752 , DECODE(ver.wp_flag, 'N', (bl.project_burdened_cost - NVL(bl.project_init_burdened_cost, 0)), NULL) prj_etc_brdn_cost -- new
1753 , DECODE(ver.wp_flag, 'N', (bl.project_revenue - NVL(bl.project_init_revenue, 0)), NULL) prj_etc_revenue -- new
1754 , bl.projfunc_currency_code func_currency_code
1755 , bl.raw_cost func_raw_cost
1756 , bl.burdened_COST func_BRDN_COST
1757 , bl.revenue func_revenue
1758 , DECODE(ver.wp_flag, 'N', bl.init_raw_cost , NULL) func_actual_raw_cost -- new
1759 , DECODE(ver.wp_flag, 'N', bl.init_burdened_cost , NULL) func_actual_brdn_cost -- new
1760 , DECODE(ver.wp_flag, 'N', bl.init_revenue , NULL) func_actual_revenue -- new
1761 , DECODE(ver.wp_flag, 'N', (bl.raw_cost - NVL(bl.init_raw_cost, 0)), NULL) func_etc_raw_cost -- new
1762 , DECODE(ver.wp_flag, 'N', (bl.burdened_cost - NVL(bl.init_burdened_cost, 0)), NULL) func_etc_brdn_cost -- new
1763 , DECODE(ver.wp_flag, 'N', (bl.revenue - NVL(bl.init_revenue, 0)), NULL) func_etc_revenue -- new
1764 , g_global1_currency_code glb1_currency_code
1765 , NULL glb1_raw_cost
1766 , NULL glb1_BRDN_COST
1767 , NULL glb1_revenue
1768 , g_global2_currency_code glb2_currency_code
1769 , NULL glb2_raw_cost
1770 , NULL glb1_BRDN_COST
1771 , NULL glb1_revenue
1772 , bl.quantity quantity
1773 , DECODE(ver.wp_flag, 'N', bl.init_quantity, NULL) actual_quantity -- new
1774 , DECODE(ver.wp_flag, 'N', (bl.quantity - NVL(bl.init_quantity, 0)), NULL) etc_quantity -- new
1775 , DECODE(ver.time_phased_type_code, 'N', bl.start_date, NULL) start_date
1776 , DECODE(ver.time_phased_type_code, 'N', bl.end_date, NULL) end_date
1777 , nvl(bl.period_name,g_ntp_period_name) period_name /* Added nvl for 4174366*/
1778 , ver.time_phased_type_code time_phased_type_code
1779 , ppa.org_id project_org_id
1780 , ppa.carrying_out_organization_id project_organization_id
1781 , ver.plan_type_code plan_type_code /* 4471527 */
1782 FROM
1783 PA_BUDGET_LINES bl
1784 , pa_resource_asSIGNments ra
1785 , PJI_FM_EXTR_PLNVER3_T ver
1786 , pa_projects_all ppa
1787 , PA_PROJ_ELEM_VER_STRUCTURE pevs
1788 WHERE
1789 ra.resource_asSIGNment_id = bl.resource_asSIGNment_id
1790 AND ra.project_id = ver.PROJECT_ID
1791 AND ra.budget_version_id = ver.plan_version_id
1792 AND ver.project_id = ppa.project_id
1793 AND txn_currency_code IS NOT NULL
1794 AND bl.project_currency_code IS NOT NULL
1795 AND bl.projfunc_currency_code IS NOT NULL
1796 AND pevs.element_version_id = ver.wbs_struct_version_id
1797 AND ver.project_id = pevs.project_id -- fix for bug 4149422 in EXTRACT_PLAN_AMOUNTS_PRIRBS
1798 AND ver.secondary_rbs_flag = 'N'
1799 ) spread_bl
1800 ---- end of third inline view 'spread_bl'...........
1801 ,
1802 (
1803 select 4 INVERT_ID from dual union all
1804 select 8 INVERT_ID from dual union all
1805 select 16 INVERT_ID from dual where PJI_UTILS.GET_SETUP_PARAMETER('TXN_CURR_FLAG') = 'Y'
1806 ) invert
1807 ) collapse_bl
1808 ---- End of second inline view 'collapse_bl' ..........
1809 GROUP BY
1810 collapse_bl.PROJECT_ID
1811 , collapse_bl.WBS_ELEMENT_ID
1812 -- , time_id, period_type_id, calendar type.., slice type, rollpu flag...
1813 , collapse_bl.RBS_ELEMENT_ID
1814 , collapse_bl.RBS_STRUCT_VERSION_ID
1815 , collapse_bl.plan_type_id
1816 , collapse_bl.BUDGET_VERSION_ID
1817 , collapse_bl.PROJECT_ORGANIZATION_ID
1818 , collapse_bl.PROJECT_ORG_ID
1819 , collapse_bl.RESOURCE_ASSIGNMENT_ID
1820 , collapse_bl.BILLABLE_FLAG
1821 , collapse_bl.RESOURCE_CLASS
1822 , collapse_bl.TIME_PHASED_TYPE_CODE
1823 , collapse_bl.CURRENCY_CODE
1824 , collapse_bl.start_date
1825 , collapse_bl.end_date
1826 , collapse_bl.period_name
1827 , collapse_bl.row_id
1828 , collapse_bl.plan_type_code /* 4471527 */
1829 ) plr
1830 ---- End of first inline view plr ..........
1831 , PJI_ORG_EXTR_INFO orginfo
1832 , PJI_FM_EXTR_PLNVER3_T vers
1833 , pji_time_cal_period_v pji_time
1834 WHERE 1=1
1835 -- AND orginfo.projfunc_currency_mau is not NULL
1836 AND plr.project_org_id = orginfo.org_id
1837 AND plr.project_id = vers.project_id
1838 AND plr.budget_version_id = vers.plan_version_id
1839 AND plr.plan_type_code = vers.plan_type_code /*4471527 */
1840 AND DECODE(vers.time_phased_type_code
1841 , g_pa_cal_str, orginfo.pa_calendar_id
1842 , g_gl_cal_str, orginfo.gl_calendar_id
1843 , -l_max_plnver_id ) = pji_time.calendar_id
1844 AND plr.period_name = pji_time.name
1845 AND vers.time_phased_type_code IN (g_pa_cal_str, g_gl_cal_str, 'N')
1846 GROUP BY
1847 plr.PROJECT_ID
1848 , plr.PROJECT_ORG_ID
1849 , plr.project_ORGANIZATION_ID
1850 , plr.WBS_ELEMENT_ID
1851 , DECODE(vers.time_phased_type_code
1852 , 'N', -1
1853 , pji_time.cal_period_id)
1854 --bug# 3886087 (put the below two decodes in sync with the ones in select stmt)
1855 , DECODE(vers.time_phased_type_code
1856 , g_pa_cal_str, 32
1857 , g_gl_cal_str, 32
1858 , 'N', 2048
1859 , -1) -- period type id...
1860 , DECODE(vers.time_phased_type_code
1861 , g_pa_cal_str, g_pa_cal_str
1862 , g_gl_cal_str, g_gl_cal_str
1863 , 'N', g_all
1864 , 'X') -- CALENDAR_TYPE
1865 , plr.CURR_RECORD_TYPE -- curr code missing.
1866 , plr.currency_code
1867 , plr.RBS_ELEMENT_ID
1868 , plr.RBS_STRUCT_VERSION_ID
1869 , plr.BUDGET_VERSION_ID
1870 , plr.plan_type_id
1871 , DECODE(vers.time_phased_type_code, g_pa_cal_str, 'OF', g_gl_cal_str, 'OF', 'N', 'NTP', 'X')
1872 , plr.plan_type_code; /* 4471527 */
1873
1874 print_time('EXTRACT_PLAN_AMOUNTS_PRIRBS : l_count ' || SQL%ROWCOUNT);
1875
1876 DELETE_NTP_CAL_RECORD ( p_max_plnver_id => l_max_plnver_id );
1877
1878 print_time('EXTRACT_PLAN_AMOUNTS_PRIRBS : End' );
1879
1880 EXCEPTION
1881 WHEN OTHERS THEN
1882 print_time('EXTRACT_PLAN_AMOUNTS_PRIRBS : Exception ' || SQLERRM );
1883 print_time('EXTRACT_PLAN_AMOUNTS_PRIRBS : Begin worker id is ... ' || 1);
1884 FND_MSG_PUB.add_exc_msg( p_pkg_name => g_package_name ,
1885 p_procedure_name => 'EXTRACT_PLAN_AMOUNTS_PRIRBS');
1886 RAISE;
1887 END;
1888
1889
1890 --
1891 -- Extract the period level plan amounts for PA/GL/non time phased entries from budget lines
1892 -- for the secondary RBS for this plan version into pji_fp_aggr_pjp1_t.
1893 -- EXTRACT_PLAN_AMOUNTS_SECRBS
1894 PROCEDURE EXTRACT_PLAN_AMOUNTS_SECRBS IS
1895 BEGIN
1896
1897 NULL;
1898
1899 EXCEPTION
1900 WHEN OTHERS THEN
1901 print_time('EXTRACT_PLAN_AMOUNTS_SECRBS : Exception ' || SQLERRM );
1902 FND_MSG_PUB.add_exc_msg( p_pkg_name => g_package_name ,
1903 p_procedure_name => 'EXTRACT_PLAN_AMOUNTS_SECRBS');
1904 RAISE;
1905 END;
1906
1907 --EXTRACT_PLAN_AMTS_SECRBS_GLC12
1908
1909 PROCEDURE EXTRACT_PLAN_AMTS_SECRBS_GLC12 IS
1910 BEGIN
1911
1912 print_time ( ' EXTRACT_PLAN_AMTS_SECRBS_GLC12 begin. Inserted rows # is: ' || SQL%ROWCOUNT );
1913
1914 PJI_PJP_FP_CURR_WRAP.get_global_currency_info (
1915 x_currency_conversion_rule => g_currency_conversion_rule
1916 , x_prorating_format => g_prorating_format
1917 , x_global1_currency_code => g_global1_currency_code
1918 , x_global2_currency_code => g_global2_currency_code
1919 , x_global1_currency_mau => g_global1_currency_mau
1920 , x_global2_currency_mau => g_global2_currency_mau ) ;
1921
1922
1923 print_time(' Got global currency settings. ');
1924 print_time(' g_currency_conversion_rule ' || g_currency_conversion_rule || ' g_prorating_format ' || g_prorating_format );
1925 print_time(' g_global1_currency_code ' || g_global1_currency_code || ' g_global2_currency_code ' || g_global2_currency_code );
1926 print_time(' g_global1_currency_mau ' || g_global1_currency_mau || ' g_global2_currency_mau ' || g_global2_currency_mau ) ;
1927
1928 INSERT INTO PJI_FP_AGGR_PJP1_T
1929 (
1930 WORKER_ID
1931 , PROJECT_ID
1932 , PROJECT_ORG_ID
1933 , PROJECT_ORGANIZATION_ID
1934 , PROJECT_ELEMENT_ID
1935 , TIME_ID
1936 , PERIOD_TYPE_ID
1937 , CALENDAR_TYPE
1938 , RBS_AGGR_LEVEL
1939 , WBS_ROLLUP_FLAG
1940 , PRG_ROLLUP_FLAG
1941 , CURR_RECORD_TYPE_ID
1942 , CURRENCY_CODE
1943 , RBS_ELEMENT_ID
1944 , RBS_VERSION_ID
1945 , PLAN_VERSION_ID
1946 , PLAN_TYPE_ID
1947 , RAW_COST
1948 , BRDN_COST
1949 , REVENUE
1950 , BILL_RAW_COST
1951 , BILL_BRDN_COST
1952 , BILL_LABOR_RAW_COST
1953 , BILL_LABOR_BRDN_COST
1954 , BILL_LABOR_HRS
1955 , EQUIPMENT_RAW_COST
1956 , EQUIPMENT_BRDN_COST
1957 , CAPITALIZABLE_RAW_COST
1958 , CAPITALIZABLE_BRDN_COST
1959 , LABOR_RAW_COST
1960 , LABOR_BRDN_COST
1961 , LABOR_HRS
1962 , LABOR_REVENUE
1963 , EQUIPMENT_HOURS
1964 , BILLABLE_EQUIPMENT_HOURS
1965 , SUP_INV_COMMITTED_COST
1966 , PO_COMMITTED_COST
1967 , PR_COMMITTED_COST
1968 , OTH_COMMITTED_COST
1969 , ACT_LABOR_HRS
1970 , ACT_EQUIP_HRS
1971 , ACT_LABOR_BRDN_COST
1972 , ACT_EQUIP_BRDN_COST
1973 , ACT_BRDN_COST
1974 , ACT_RAW_COST
1975 , ACT_REVENUE
1976 , ACT_LABOR_RAW_COST
1977 , ACT_EQUIP_RAW_COST
1978 , ETC_LABOR_HRS
1979 , ETC_EQUIP_HRS
1980 , ETC_LABOR_BRDN_COST
1981 , ETC_EQUIP_BRDN_COST
1982 , ETC_BRDN_COST
1983 , ETC_RAW_COST
1984 , ETC_LABOR_RAW_COST
1985 , ETC_EQUIP_RAW_COST
1986 , CUSTOM1
1987 , CUSTOM2
1988 , CUSTOM3
1989 , CUSTOM4
1990 , CUSTOM5
1991 , CUSTOM6
1992 , CUSTOM7
1993 , CUSTOM8
1994 , CUSTOM9
1995 , CUSTOM10
1996 , CUSTOM11
1997 , CUSTOM12
1998 , CUSTOM13
1999 , CUSTOM14
2000 , CUSTOM15
2001 , LINE_TYPE
2002 , TIME_DANGLING_FLAG
2003 , RATE_DANGLING_FLAG
2004 , START_DATE
2005 , END_DATE
2006 , PRG_LEVEL
2007 , PLAN_TYPE_CODE
2008 )
2009 SELECT
2010 g_worker_id WORKER_ID
2011 , plr.PROJECT_ID
2012 , plr.PROJECT_ORG_ID
2013 , plr.project_ORGANIZATION_ID
2014 , plr.WBS_ELEMENT_ID
2015 , plr.time_id
2016 , plr.period_type_id -- period type id...
2017 , plr.CALENDAR_TYPE
2018 , g_lowest_level RBS_AGGR_LEVEL
2019 , 'N' WBS_ROLLUP_FLAG
2020 , 'N' PRG_ROLLUP_FLAG
2021 , plr.CURR_RECORD_TYPE
2022 , plr.currency_code
2023 , plr.RBS_ELEMENT_ID
2024 , plr.RBS_STRUCT_VERSION_ID
2025 , plr.plan_version_id
2026 , plr.plan_type_id
2027 , SUM(plr.RAW_COST)
2028 , SUM(plr.BRDN_COST)
2029 , SUM(plr.REVENUE)
2030 , SUM ( DECODE ( plr.billable_flag, 'Y', plr.raw_cost, 0 ) ) BILL_RAW_COST
2031 , SUM ( DECODE ( plr.billable_flag, 'Y', plr.BRDN_COST, 0 ) ) BILL_BRDN_COST
2032 , SUM ( DECODE ( plr.billable_flag || plr.resource_class, 'Y' || g_people_resclass_code, plr.raw_cost, 0 ) ) BILL_LABOR_RAW_COST
2033 , SUM ( DECODE ( plr.billable_flag || plr.resource_class, 'Y' || g_people_resclass_code , plr.BRDN_COST, 0 ) ) BILL_LABOR_BRDN_COST
2034 /* , SUM ( DECODE ( plr.billable_flag || plr.resource_class , 'Y' || g_people_resclass_code, plr.quantity, 0 ) ) BILL_LABOR_HRS */ -- bug 6039785
2035 , SUM ( DECODE ( plr.billable_flag || plr.resource_class , 'Y' || g_people_resclass_code,
2036 DECODE(plr.billable_flag,'Y',plr.quantity,0) , 0 ) ) BILL_LABOR_HRS -- bug 6039785
2037 , SUM ( DECODE ( plr.resource_class, g_equip_resclass_code , plr.raw_cost, 0 ) ) EQUIPMENT_RAW_COST
2038 , SUM ( DECODE ( plr.resource_class, g_equip_resclass_code , plr.BRDN_COST, 0 ) ) EQUIPMENT_BRDN_COST
2039 , SUM ( DECODE ( plr.billable_flag, 'Y', plr.raw_cost, 0 ) ) CAPITALIZABLE_RAW_COST
2040 , SUM ( DECODE ( plr.billable_flag, 'Y', plr.BRDN_COST, 0 ) ) CAPITALIZABLE_BRDN_COST
2041 , SUM ( DECODE ( plr.resource_class, g_people_resclass_code, plr.raw_cost, 0 ) ) LABOR_RAW_COST
2042 , SUM ( DECODE ( plr.resource_class, g_people_resclass_code, plr.BRDN_COST, 0 ) ) LABOR_BRDN_COST
2043 /* , SUM ( DECODE ( plr.resource_class, g_people_resclass_code,
2044 DECODE ( vers.wp_flag, 'N',
2045 DECODE ( plr.billable_flag, 'Y',plr.quantity,0),
2046 plr.quantity),
2047 0 ) ) labor_hrs */ -- bug 6039785
2048 , SUM ( DECODE ( plr.resource_class, g_people_resclass_code, DECODE(plr.billable_flag,'Y',
2049 DECODE ( vers.wp_flag, 'N',
2050 DECODE ( plr.billable_flag, 'Y',plr.quantity,0),
2051 plr.quantity),
2052 0 ),
2053 0 ) ) labor_hrs -- bug 6039785
2054 , SUM ( DECODE ( plr.resource_class, g_people_resclass_code, plr.revenue, 0 ) ) LABOR_REVENUE
2055 /* , SUM ( DECODE ( plr.resource_class, g_equip_resclass_code,
2056 DECODE ( vers.wp_flag, 'N',
2057 DECODE ( plr.billable_flag, 'Y',plr.quantity,0),
2058 plr.quantity),
2059
2060 0 ) ) EQUIPMENT_HOURS */ -- bug 6039785
2061 , SUM ( DECODE ( plr.resource_class, g_equip_resclass_code, DECODE(plr.billable_flag,'Y',
2062 DECODE ( vers.wp_flag, 'N',
2063 DECODE ( plr.billable_flag, 'Y',plr.quantity,0),
2064 plr.quantity),
2065 0 ),
2066 0 ) ) EQUIPMENT_HOURS -- bug 6039785
2067 /* , SUM ( DECODE ( plr.billable_flag || plr.resource_class, 'Y' || g_equip_resclass_code, plr.quantity, 0 ) ) BILLABLE_EQUIPMENT_HOURS */ -- bug 6039785
2068 , SUM ( DECODE ( plr.billable_flag || plr.resource_class, 'Y' || g_equip_resclass_code,
2069 DECODE(plr.billable_flag,'Y',plr.quantity,0) , 0 ) ) BILLABLE_EQUIPMENT_HOURS -- bug 6039785
2070 , TO_NUMBER(NULL) SUP_INV_COMMITTED_COST
2071 , TO_NUMBER(NULL) PO_COMMITTED_COST
2072 , TO_NUMBER(NULL) PR_COMMITTED_COST
2073 , TO_NUMBER(NULL) OTH_COMMITTED_COST
2074 /* , SUM ( DECODE ( vers.wp_flag, 'Y', NULL, DECODE ( plr.resource_class, g_people_resclass_code,
2075 DECODE ( plr.billable_flag, 'Y',plr.actual_quantity,0),
2076 0 ) ) ) ACT_LABOR_HRS */ -- bug 6039785
2077 , SUM ( DECODE ( vers.wp_flag, 'Y', NULL, DECODE ( plr.resource_class, g_people_resclass_code,
2078 DECODE (plr.billable_flag ,'Y',
2079 DECODE ( plr.billable_flag, 'Y',plr.actual_quantity,0),
2080 0 ),
2081 0 ) ) ) ACT_LABOR_HRS -- bug 6039785
2082 /* , SUM ( DECODE ( vers.wp_flag, 'Y', NULL, DECODE ( plr.resource_class, g_equip_resclass_code,
2083 DECODE ( plr.billable_flag, 'Y',plr.actual_quantity,0),
2084 0 ) ) ) ACT_EQUIP_HOURS */ -- bug 6039785
2085 , SUM ( DECODE ( vers.wp_flag, 'Y', NULL, DECODE ( plr.resource_class, g_equip_resclass_code,
2086 DECODE (plr.billable_flag ,'Y',
2087 DECODE ( plr.billable_flag, 'Y',plr.actual_quantity,0),
2088 0 ),
2089 0 ) ) ) ACT_EQUIP_HOURS -- bug 6039785
2090 , SUM ( DECODE ( vers.wp_flag, 'Y', NULL, DECODE ( plr.resource_class, g_people_resclass_code, plr.actual_BRDN_COST, 0 ) ) ) ACT_LABOR_BRDN_COST
2091 , SUM ( DECODE ( vers.wp_flag, 'Y', NULL, DECODE ( plr.resource_class, g_equip_resclass_code , plr.actual_BRDN_COST, 0 ) ) ) ACT_EQUIPMENT_BRDN_COST
2092 , SUM ( DECODE ( vers.wp_flag, 'Y', NULL, plr.actual_brdn_cost ) ) ACT_BRDN_COST
2093 , SUM ( DECODE ( vers.wp_flag, 'Y', NULL, plr.actual_raw_cost ) ) ACT_RAW_COST
2094 , SUM ( DECODE ( vers.wp_flag, 'Y', NULL, plr.actual_revenue ) ) ACT_REVENUE
2095 , SUM ( DECODE ( vers.wp_flag, 'Y', NULL, DECODE ( plr.resource_class, g_people_resclass_code, plr.actual_RAW_COST, 0 ) ) ) ACT_LABOR_RAW_COST
2096 , SUM ( DECODE ( vers.wp_flag, 'Y', NULL, DECODE ( plr.resource_class, g_equip_resclass_code , plr.actual_RAW_COST, 0 ) ) ) ACT_EQUIPMENT_RAW_COST
2097 /* , SUM ( DECODE ( vers.wp_flag, 'Y', NULL, DECODE ( plr.resource_class, g_people_resclass_code,
2098 DECODE ( plr.billable_flag, 'Y',plr.ETC_quantity,0),
2099 0 ) ) ) ETC_LABOR_HRS */ -- bug 6039785
2100 , SUM ( DECODE ( vers.wp_flag, 'Y', NULL, DECODE ( plr.resource_class, g_people_resclass_code,
2101 DECODE (plr.billable_flag ,'Y',
2102 DECODE ( plr.billable_flag, 'Y',plr.ETC_quantity,0),
2103 0 ),
2104 0 ) ) ) ETC_LABOR_HRS -- bug 6039785
2105 /* , SUM ( DECODE ( vers.wp_flag, 'Y', NULL, DECODE ( plr.resource_class, g_equip_resclass_code,
2106 DECODE ( plr.billable_flag, 'Y',plr.ETC_quantity,0),
2107 0 ) ) ) ETC_EQUIP_HOURS */ -- bug 6039785
2108 , SUM ( DECODE ( vers.wp_flag, 'Y', NULL, DECODE ( plr.resource_class, g_equip_resclass_code,
2109 DECODE (plr.billable_flag ,'Y',
2110 DECODE ( plr.billable_flag, 'Y',plr.ETC_quantity,0),
2111 0 ),
2112 0 ) ) ) ETC_EQUIP_HOURS -- bug 6039785
2113 , SUM ( DECODE ( vers.wp_flag, 'Y', NULL, DECODE ( plr.resource_class, g_people_resclass_code, plr.etc_BRDN_COST, 0 ) ) ) ETC_LABOR_BRDN_COST
2114 , SUM ( DECODE ( vers.wp_flag, 'Y', NULL, DECODE ( plr.resource_class, g_equip_resclass_code , plr.etc_BRDN_COST, 0 ) ) ) ETC_EQUIP_BRDN_COST
2115 , SUM ( DECODE ( vers.wp_flag, 'Y', NULL, plr.etc_brdn_cost ) ) ETC_BRDN_COST
2116 , SUM ( DECODE ( vers.wp_flag, 'Y', NULL, plr.etc_raw_cost ) ) ETC_RAW_COST
2117 , SUM ( DECODE ( vers.wp_flag, 'Y', NULL, DECODE ( plr.resource_class, g_people_resclass_code, plr.etc_raw_COST, 0 ) ) ) ETC_LABOR_raw_COST
2118 , SUM ( DECODE ( vers.wp_flag, 'Y', NULL, DECODE ( plr.resource_class, g_equip_resclass_code , plr.etc_raw_COST, 0 ) ) ) ETC_EQUIP_raw_COST
2119 , TO_NUMBER(NULL) CUSTOM1
2120 , TO_NUMBER(NULL) CUSTOM2
2121 , TO_NUMBER(NULL) CUSTOM3
2122 , TO_NUMBER(NULL) CUSTOM4
2123 , TO_NUMBER(NULL) CUSTOM5
2124 , TO_NUMBER(NULL) CUSTOM6
2125 , TO_NUMBER(NULL) CUSTOM7
2126 , TO_NUMBER(NULL) CUSTOM8
2127 , TO_NUMBER(NULL) CUSTOM9
2128 , TO_NUMBER(NULL) CUSTOM10
2129 , TO_NUMBER(NULL) CUSTOM11
2130 , TO_NUMBER(NULL) CUSTOM12
2131 , TO_NUMBER(NULL) CUSTOM13
2132 , TO_NUMBER(NULL) CUSTOM14
2133 , TO_NUMBER(NULL) CUSTOM15
2134 , plr.LINE_TYPE
2135 , NULL time_dangling_flag
2136 , decode(sign(plr.rate),-1,'Y',NULL) ||decode(sign(plr.rate2),-1,'Y',NULL) rate_dangling_flag
2137 , plr.start_date
2138 , plr.end_date
2139 , g_default_prg_level prg_level
2140 , plr.plan_type_code plan_type_code /* 4471527 */
2141 FROM
2142 ( ----- First inline view plr .............
2143 select
2144 collapse_bl.PROJECT_ID -- , 1 partition_id
2145 , collapse_bl.WBS_ELEMENT_ID -- , time_id, period_type_id, calendar type.., slice type, rollpu flag...
2146 , SUM(collapse_bl.CURR_RECORD_TYPE_ID) CURR_RECORD_TYPE
2147 , collapse_bl.RBS_ELEMENT_ID
2148 , collapse_bl.RBS_STRUCT_VERSION_ID
2149 , collapse_bl.plan_type_id
2150 , collapse_bl.plan_version_id
2151 , collapse_bl.time_id
2152 , collapse_bl.PROJECT_ORGANIZATION_ID
2153 , collapse_bl.PROJECT_ORG_ID
2154 , collapse_bl.RESOURCE_ASSIGNMENT_ID
2155 , collapse_bl.BILLABLE_FLAG
2156 , collapse_bl.RESOURCE_CLASS -- , CALENDAR_TYPE -- , CALENDAR_ID
2157 , collapse_bl.TIME_PHASED_TYPE_CODE
2158 , collapse_bl.CURRENCY_CODE
2159 , decode(sign(collapse_bl.rate),-1,0,decode(sign(collapse_bl.rate2),-1,0,max(collapse_bl.raw_cost))) raw_cost
2160 , decode(sign(collapse_bl.rate),-1,0,decode(sign(collapse_bl.rate2),-1,0,max(collapse_bl.BRDN_COST))) BRDN_COST
2161 , decode(sign(collapse_bl.rate),-1,0,decode(sign(collapse_bl.rate2),-1,0,max(collapse_bl.revenue))) revenue
2162 , decode(sign(collapse_bl.rate),-1,0,decode(sign(collapse_bl.rate2),-1,0,max(collapse_bl.actual_raw_cost))) actual_raw_cost
2163 , decode(sign(collapse_bl.rate),-1,0,decode(sign(collapse_bl.rate2),-1,0,max(collapse_bl.actual_BRDN_COST))) actual_BRDN_COST
2164 , decode(sign(collapse_bl.rate),-1,0,decode(sign(collapse_bl.rate2),-1,0,max(collapse_bl.actual_revenue))) actual_revenue
2165 , decode(sign(collapse_bl.rate),-1,0,decode(sign(collapse_bl.rate2),-1,0,max(collapse_bl.etc_raw_cost))) etc_raw_cost
2166 , decode(sign(collapse_bl.rate),-1,0,decode(sign(collapse_bl.rate2),-1,0,max(collapse_bl.etc_BRDN_COST))) etc_BRDN_COST
2167 , decode(sign(collapse_bl.rate),-1,0,decode(sign(collapse_bl.rate2),-1,0,max(collapse_bl.etc_revenue))) etc_revenue
2168 , decode(sign(collapse_bl.rate),-1,0,decode(sign(collapse_bl.rate2),-1,0,max(collapse_bl.quantity))) quantity
2169 , decode(sign(collapse_bl.rate),-1,0,decode(sign(collapse_bl.rate2),-1,0,max(collapse_bl.actual_quantity))) actual_quantity
2170 , decode(sign(collapse_bl.rate),-1,0,decode(sign(collapse_bl.rate2),-1,0,max(collapse_bl.etc_quantity))) etc_quantity
2171 , collapse_bl.start_date start_date
2172 , collapse_bl.end_date end_date
2173 -- , collapse_bl.period_name period_name -- , TRACK_AS_LABOR_FLAG track_as_labor_flag
2174 , collapse_bl.line_type
2175 , collapse_bl.calendar_type
2176 , collapse_bl.period_type_id
2177 , collapse_bl.row_id
2178 ,collapse_bl.rate rate
2179 ,collapse_bl.rate2 rate2
2180 , collapse_bl.plan_type_code plan_type_code /* 4471527 */
2181 from
2182 ( ----- Second inline view 'collapse_bl' begin .............
2183 select
2184 spread_bl.row_id row_id
2185 , spread_bl.PROJECT_ID
2186 , spread_bl.BUDGET_VERSION_ID plan_version_id
2187 , spread_bl.time_id
2188 , spread_bl.RESOURCE_ASSIGNMENT_ID
2189 , spread_bl.WBS_ELEMENT_ID
2190 , spread_bl.RBS_ELEMENT_ID
2191 , spread_bl.WBS_STRUCT_VERSION_ID
2192 , spread_bl.RBS_STRUCT_VERSION_ID
2193 , spread_bl.plan_type_id
2194 , spread_bl.BILLABLE_FLAG
2195 , spread_bl.RESOURCE_CLASS
2196 , spread_bl.PROJECT_ORGANIZATION_ID
2197 , spread_bl.PROJECT_ORG_ID
2198 , spread_bl.TIME_PHASED_TYPE_CODE
2199 , DECODE( invert.INVERT_ID
2200 , 1, spread_bl.glb1_CURRENCY_CODE
2201 , 2, spread_bl.glb2_CURRENCY_CODE
2202 , 4, spread_bl.func_CURRENCY_CODE
2203 , 8, spread_bl.PRJ_CURRENCY_CODE
2204 , 16, spread_bl.TXN_CURRENCY_CODE ) CURRENCY_CODE
2205 , invert.INVERT_ID CURR_RECORD_TYPE_ID
2206 , DECODE ( invert.INVERT_ID
2207 , 1, spread_bl.glb1_raw_cost
2208 , 2, spread_bl.glb2_raw_cost
2209 , 4, spread_bl.func_raw_cost
2210 , 8, spread_bl.PRJ_raw_cost
2211 , 16, spread_bl.TXN_raw_cost) raw_cost
2212 , DECODE ( invert.INVERT_ID
2213 , 1, spread_bl.glb1_brdn_cost
2214 , 2, spread_bl.glb2_brdn_cost
2215 , 4, spread_bl.func_BRDN_COST
2216 , 8, spread_bl.PRJ_BRDN_COST
2217 , 16, spread_bl.TXN_BRDN_COST ) BRDN_COST
2218 , DECODE ( invert.INVERT_ID
2219 , 1, spread_bl.glb1_revenue
2220 , 2, spread_bl.glb2_revenue
2221 , 4, spread_bl.func_revenue
2222 , 8, spread_bl.PRJ_revenue
2223 , 16, spread_bl.TXN_revenue ) revenue
2224 , DECODE ( invert.INVERT_ID
2225 , 1, spread_bl.glb1_actual_raw_cost
2226 , 2, spread_bl.glb2_actual_raw_cost
2227 , 4, spread_bl.func_actual_raw_cost
2228 , 8, spread_bl.prj_actual_raw_cost
2229 , 16, spread_bl.txn_actual_raw_cost ) actual_raw_cost
2230 , DECODE ( invert.INVERT_ID
2231 , 1, spread_bl.glb1_actual_brdn_cost
2232 , 2, spread_bl.glb2_actual_brdn_cost
2233 , 4, spread_bl.func_actual_brdn_cost
2234 , 8, spread_bl.prj_actual_brdn_cost
2235 , 16, spread_bl.txn_actual_brdn_cost ) actual_brdn_cost
2236 , DECODE ( invert.INVERT_ID
2237 , 1, spread_bl.glb1_actual_revenue
2238 , 2, spread_bl.glb2_actual_revenue
2239 , 4, spread_bl.func_actual_revenue
2240 , 8, spread_bl.prj_actual_revenue
2241 , 16, spread_bl.txn_actual_revenue ) actual_revenue
2242 , DECODE ( invert.INVERT_ID
2243 , 1, spread_bl.glb1_etc_raw_cost
2244 , 2, spread_bl.glb2_etc_raw_cost
2245 , 4, spread_bl.func_etc_raw_cost
2246 , 8, spread_bl.prj_etc_raw_cost
2247 , 16, spread_bl.txn_etc_raw_cost ) etc_raw_cost
2248 , DECODE ( invert.INVERT_ID
2249 , 1, spread_bl.glb1_etc_brdn_cost
2250 , 2, spread_bl.glb2_etc_brdn_cost
2251 , 4, spread_bl.func_etc_brdn_cost
2252 , 8, spread_bl.prj_etc_brdn_cost
2253 , 16, spread_bl.txn_etc_brdn_cost ) etc_brdn_cost
2254 , DECODE ( invert.INVERT_ID
2255 , 1, spread_bl.glb1_etc_revenue
2256 , 2, spread_bl.glb2_etc_revenue
2257 , 4, spread_bl.func_etc_revenue
2258 , 8, spread_bl.prj_etc_revenue
2259 , 16, spread_bl.txn_etc_revenue ) etc_revenue
2260 , spread_bl.quantity quantity
2261 , spread_bl.actual_quantity actual_quantity
2262 , spread_bl.etc_quantity etc_quantity
2263 , spread_bl.start_date start_date
2264 , spread_bl.end_date end_date
2265 , spread_bl.line_type line_type
2266 , spread_bl.period_type_id
2267 , spread_bl.calendar_type
2268 ,decode(invert.invert_id,1,spread_bl.rate,1) rate
2269 ,decode(invert.invert_id,2,spread_bl.rate2,1) rate2
2270 ,spread_bl.plan_type_code plan_type_code /* 4471527 */
2271 from
2272 ( ----- Third inline view 'spread_bl' .............
2273 SELECT
2274 ra.project_id
2275 , bl.rowid row_id
2276 , ra.budget_version_id
2277 , prd.cal_period_id time_id
2278 , bl.resource_asSIGNment_id
2279 , DECODE(ra.task_id, 0, pevs.proj_element_id, ra.task_id) wbs_element_id
2280 , NVL(map.element_id, -1) rbs_element_id -- !! changed.
2281 , ver.wbs_struct_version_id wbs_struct_version_id
2282 , NVL(ver.rbs_struct_version_id, -1) rbs_struct_version_id -- !! changed.
2283 , ver.plan_type_id plan_type_id
2284 , ra.rate_based_flag billable_flag
2285 , ra.resource_class_code resource_class
2286 , DECODE(ver.time_phased_type_code
2287 , g_pa_cal_str, 32
2288 , g_gl_cal_str, 32
2289 , 'N', 2048
2290 , -1) period_type_id
2291 , DECODE(ver.time_phased_type_code
2292 , g_pa_cal_str, g_pa_cal_str
2293 , g_gl_cal_str, g_gl_cal_str
2294 , 'N', g_all
2295 , 'X') CALENDAR_TYPE
2296 , bl.txn_currency_code txn_currency_code
2297 , bl.txn_raw_cost txn_raw_cost
2298 , bl.txn_burdened_COST txn_brdn_COST
2299 , bl.txn_revenue txn_revenue
2300 , DECODE(ver.wp_flag, 'N', bl.txn_init_raw_cost, TO_NUMBER(NULL)) txn_actual_raw_cost -- new
2301 , DECODE(ver.wp_flag, 'N', bl.txn_init_burdened_cost, TO_NUMBER(NULL)) txn_actual_brdn_cost -- new
2302 , DECODE(ver.wp_flag, 'N', bl.txn_init_revenue, TO_NUMBER(NULL)) txn_actual_revenue -- new
2303 , DECODE(ver.wp_flag, 'N', (bl.txn_raw_cost - NVL(bl.txn_init_raw_cost, 0)), TO_NUMBER(NULL)) txn_etc_raw_cost -- new
2304 , DECODE(ver.wp_flag, 'N', (bl.txn_burdened_cost - NVL(bl.txn_init_burdened_cost, 0)), TO_NUMBER(NULL)) txn_etc_brdn_cost -- new
2305 , DECODE(ver.wp_flag, 'N', (bl.txn_revenue - NVL(bl.txn_init_revenue, 0)), TO_NUMBER(NULL)) txn_etc_revenue -- new
2306 , bl.project_currency_code prj_currency_code
2307 , bl.project_raw_cost prj_raw_cost
2308 , bl.project_burdened_COST prj_BRDN_COST
2309 , bl.project_revenue prj_revenue
2310 , DECODE(ver.wp_flag, 'N', bl.project_init_raw_cost, TO_NUMBER(NULL)) prj_actual_raw_cost -- new
2311 , DECODE(ver.wp_flag, 'N', bl.project_init_burdened_cost, TO_NUMBER(NULL)) prj_actual_brdn_cost -- new
2312 , DECODE(ver.wp_flag, 'N', bl.project_init_revenue, TO_NUMBER(NULL)) prj_actual_revenue -- new
2313 , DECODE(ver.wp_flag, 'N', (bl.project_raw_cost - NVL(bl.project_init_raw_cost, 0)), TO_NUMBER(NULL)) prj_etc_raw_cost -- new
2314 , DECODE(ver.wp_flag, 'N', (bl.project_burdened_cost - NVL(bl.project_init_burdened_cost, 0)), TO_NUMBER(NULL)) prj_etc_brdn_cost -- new
2315 , DECODE(ver.wp_flag, 'N', (bl.project_revenue - NVL(bl.project_init_revenue, 0)), TO_NUMBER(NULL)) prj_etc_revenue -- new
2316 , bl.projfunc_currency_code func_currency_code
2317 , bl.raw_cost func_raw_cost
2318 , bl.burdened_COST func_BRDN_COST
2319 , bl.revenue func_revenue
2320 , DECODE(ver.wp_flag, 'N', bl.init_raw_cost , TO_NUMBER(NULL)) func_actual_raw_cost -- new
2321 , DECODE(ver.wp_flag, 'N', bl.init_burdened_cost , TO_NUMBER(NULL)) func_actual_brdn_cost -- new
2322 , DECODE(ver.wp_flag, 'N', bl.init_revenue , TO_NUMBER(NULL)) func_actual_revenue -- new
2323 , DECODE(ver.wp_flag, 'N', (bl.raw_cost - NVL(bl.init_raw_cost, 0)), TO_NUMBER(NULL)) func_etc_raw_cost -- new
2324 , DECODE(ver.wp_flag, 'N', (bl.burdened_cost - NVL(bl.init_burdened_cost, 0)), TO_NUMBER(NULL)) func_etc_brdn_cost -- new
2325 , DECODE(ver.wp_flag, 'N', (bl.revenue - NVL(bl.init_revenue, 0)), TO_NUMBER(NULL)) func_etc_revenue -- new
2326 , g_global1_currency_code glb1_currency_code -- g_global1_currency_code glb1_currency_code
2327 , DECODE (g_global1_currency_code
2328 , bl.txn_currency_code
2329 , bl.txn_raw_cost
2330 , bl.project_currency_code
2331 , bl.project_raw_cost
2332 , bl.projfunc_currency_code
2333 , bl.raw_cost
2334 , ROUND((rates.rate * raw_cost )/rates.mau)*rates.mau
2335 ) glb1_raw_cost
2336 , DECODE (g_global1_currency_code
2337 , bl.txn_currency_code
2338 , bl.txn_burdened_cost
2339 , bl.project_currency_code
2340 , bl.project_burdened_cost
2341 , bl.projfunc_currency_code
2342 , bl.burdened_cost
2343 , ROUND((rates.rate * burdened_cost )/rates.mau)*rates.mau
2344 ) glb1_BRDN_COST
2345 , DECODE (g_global1_currency_code
2346 , bl.txn_currency_code
2347 , bl.txn_revenue
2348 , bl.project_currency_code
2349 , bl.project_revenue
2350 , bl.projfunc_currency_code
2351 , bl.revenue
2352 , ROUND((rates.rate * revenue )/rates.mau)*rates.mau
2353 ) glb1_revenue
2354 , DECODE(ver.wp_flag
2355 , 'N'
2356 , DECODE (g_global1_currency_code
2357 , bl.txn_currency_code
2358 , bl.txn_init_raw_cost
2359 , bl.project_currency_code
2360 , bl.project_init_raw_cost
2361 , bl.projfunc_currency_code
2362 , bl.init_raw_cost
2363 , ROUND((rates.rate * bl.init_raw_cost )/rates.mau)*rates.mau
2364 )
2365 , TO_NUMBER(NULL)) glb1_actual_raw_cost
2366 , DECODE(ver.wp_flag
2367 , 'N'
2368 , DECODE (g_global1_currency_code
2369 , bl.txn_currency_code
2370 , bl.txn_init_burdened_cost
2371 , bl.project_currency_code
2372 , bl.project_init_burdened_cost
2373 , bl.projfunc_currency_code
2374 , bl.init_burdened_cost
2375 , ROUND((rates.rate * bl.init_burdened_cost )/rates.mau)*rates.mau
2376 )
2377 , TO_NUMBER(NULL)) glb1_actual_brdn_cost
2378 , DECODE(ver.wp_flag
2379 , 'N'
2380 , DECODE (g_global1_currency_code
2381 , bl.txn_currency_code
2382 , bl.txn_init_revenue
2383 , bl.project_currency_code
2384 , bl.project_init_revenue
2385 , bl.projfunc_currency_code
2386 , bl.init_revenue
2387 , ROUND((rates.rate * bl.init_revenue )/rates.mau)*rates.mau
2388 )
2389 , TO_NUMBER(NULL)) glb1_actual_revenue
2390 , DECODE(ver.wp_flag
2391 , 'N'
2392 , DECODE (g_global1_currency_code
2393 , bl.txn_currency_code
2394 , (bl.txn_raw_cost - NVL(bl.txn_init_raw_cost, 0))
2395 , bl.project_currency_code
2396 , (bl.project_raw_cost - NVL(bl.project_init_raw_cost, 0))
2397 , bl.projfunc_currency_code
2398 , (bl.raw_cost - NVL(bl.init_raw_cost, 0))
2399 , ROUND((rates.rate * (bl.raw_cost - NVL(bl.init_raw_cost, 0)) )/rates.mau)*rates.mau
2400 )
2401 , TO_NUMBER(NULL)) glb1_etc_raw_cost
2402 , DECODE(ver.wp_flag
2403 , 'N'
2404 , DECODE (g_global1_currency_code
2405 , bl.txn_currency_code
2406 , (bl.txn_burdened_cost - NVL(bl.txn_init_burdened_cost, 0))
2407 , bl.project_currency_code
2408 , (bl.project_burdened_cost - NVL(bl.project_init_burdened_cost, 0))
2409 , bl.projfunc_currency_code
2410 , (bl.burdened_cost - NVL(bl.init_burdened_cost, 0))
2411 , ROUND((rates.rate * (bl.burdened_cost - NVL(bl.init_burdened_cost, 0)) )/rates.mau)*rates.mau
2412 )
2413 , TO_NUMBER(NULL)) glb1_etc_brdn_cost
2414 , DECODE(ver.wp_flag
2415 , 'N'
2416 , DECODE (g_global1_currency_code
2417 , bl.txn_currency_code
2418 , (bl.txn_revenue - NVL(bl.txn_init_revenue, 0))
2419 , bl.project_currency_code
2420 , (bl.project_revenue - NVL(bl.project_init_revenue, 0))
2421 , bl.projfunc_currency_code
2422 , (bl.revenue - NVL(bl.init_revenue, 0))
2423 , ROUND((rates.rate * (bl.revenue - NVL(bl.init_revenue, 0)) )/rates.mau)*rates.mau
2424 )
2425 , TO_NUMBER(NULL)) glb1_etc_revenue
2426 , g_global2_currency_code glb2_currency_code -- g_global2_currency_code glb2_currency_code
2427 , DECODE (g_global2_currency_code
2428 , bl.txn_currency_code
2429 , bl.txn_raw_cost
2430 , bl.project_currency_code
2431 , bl.project_raw_cost
2432 , bl.projfunc_currency_code
2433 , bl.raw_cost
2434 , ROUND((rates.rate2 * raw_cost )/rates.mau2)*rates.mau2
2435 ) glb2_raw_cost
2436 , DECODE (g_global2_currency_code
2437 , bl.txn_currency_code
2438 , bl.txn_burdened_cost
2439 , bl.project_currency_code
2440 , bl.project_burdened_cost
2441 , bl.projfunc_currency_code
2442 , bl.burdened_cost
2443 , ROUND((rates.rate2 * burdened_cost )/rates.mau2)*rates.mau2
2444 ) glb2_BRDN_COST
2445 , DECODE (g_global2_currency_code
2446 , bl.txn_currency_code
2447 , bl.txn_revenue
2448 , bl.project_currency_code
2449 , bl.project_revenue
2450 , bl.projfunc_currency_code
2451 , bl.revenue
2452 , ROUND((rates.rate2 * revenue )/rates.mau2)*rates.mau2
2453 ) glb2_revenue
2454 , DECODE(ver.wp_flag
2455 , 'N'
2456 , DECODE (g_global2_currency_code
2457 , bl.txn_currency_code
2458 , bl.txn_init_raw_cost
2459 , bl.project_currency_code
2460 , bl.project_init_raw_cost
2461 , bl.projfunc_currency_code
2462 , bl.init_raw_cost
2463 , ROUND((rates.rate2 * bl.init_raw_cost )/rates.mau2)*rates.mau2
2464 )
2465 , TO_NUMBER(NULL)) glb2_actual_raw_cost
2466 , DECODE(ver.wp_flag
2467 , 'N'
2468 , DECODE (g_global2_currency_code
2469 , bl.txn_currency_code
2470 , bl.txn_init_burdened_cost
2471 , bl.project_currency_code
2472 , bl.project_init_burdened_cost
2473 , bl.projfunc_currency_code
2474 , bl.init_burdened_cost
2475 , ROUND((rates.rate2 * bl.init_burdened_cost )/rates.mau2)*rates.mau2
2476 )
2477 , TO_NUMBER(NULL)) glb2_actual_brdn_cost
2478 , DECODE(ver.wp_flag
2479 , 'N'
2480 , DECODE (g_global2_currency_code
2481 , bl.txn_currency_code
2482 , bl.txn_init_revenue
2483 , bl.project_currency_code
2484 , bl.project_init_revenue
2485 , bl.projfunc_currency_code
2486 , bl.init_revenue
2487 , ROUND((rates.rate2 * bl.init_revenue )/rates.mau2)*rates.mau2
2488 )
2489 , TO_NUMBER(NULL)) glb2_actual_revenue
2490 , DECODE(ver.wp_flag
2491 , 'N'
2492 , DECODE (g_global2_currency_code
2493 , bl.txn_currency_code
2494 , (bl.txn_raw_cost - NVL(bl.txn_init_raw_cost, 0))
2495 , bl.project_currency_code
2496 , (bl.project_raw_cost - NVL(bl.project_init_raw_cost, 0))
2497 , bl.projfunc_currency_code
2498 , (bl.raw_cost - NVL(bl.init_raw_cost, 0))
2499 , ROUND((rates.rate2 * (bl.raw_cost - NVL(bl.init_raw_cost, 0)) )/rates.mau2)*rates.mau2
2500 )
2501 , TO_NUMBER(NULL)) glb2_etc_raw_cost
2502 , DECODE(ver.wp_flag
2503 , 'N'
2504 , DECODE (g_global2_currency_code
2505 , bl.txn_currency_code
2506 , (bl.txn_burdened_cost - NVL(bl.txn_init_burdened_cost, 0))
2507 , bl.project_currency_code
2508 , (bl.project_burdened_cost - NVL(bl.project_init_burdened_cost, 0))
2509 , bl.projfunc_currency_code
2510 , (bl.burdened_cost - NVL(bl.init_burdened_cost, 0))
2511 , ROUND((rates.rate2 * (bl.burdened_cost - NVL(bl.init_burdened_cost, 0)) )/rates.mau2)*rates.mau2
2512 )
2513 , TO_NUMBER(NULL)) glb2_etc_brdn_cost
2514 , DECODE(ver.wp_flag
2515 , 'N'
2516 , DECODE (g_global2_currency_code
2517 , bl.txn_currency_code
2518 , (bl.txn_revenue - NVL(bl.txn_init_revenue, 0))
2519 , bl.project_currency_code
2520 , (bl.project_revenue - NVL(bl.project_init_revenue, 0))
2521 , bl.projfunc_currency_code
2522 , (bl.revenue - NVL(bl.init_revenue, 0))
2523 , ROUND((rates.rate2 * (bl.revenue - NVL(bl.init_revenue, 0)) )/rates.mau2)*rates.mau2
2524 )
2525 , TO_NUMBER(NULL)) glb2_etc_revenue
2526 , bl.quantity quantity
2527 , DECODE(ver.wp_flag, 'N', bl.init_quantity, TO_NUMBER(NULL)) actual_quantity -- new
2528 , DECODE(ver.wp_flag, 'N', (bl.quantity - NVL(bl.init_quantity, 0)), TO_NUMBER(NULL)) etc_quantity -- new
2529 , TO_DATE(NULL) START_DATE
2530 , TO_DATE(NULL) END_date
2531 , ver.time_phased_type_code time_phased_type_code
2532 , ppa.org_id project_org_id
2533 , ppa.carrying_out_organization_id project_organization_id
2534 , DECODE(ver.time_phased_type_code, g_pa_cal_str, 'OF', g_gl_cal_str, 'OF', 'N', 'NTP', 'X') line_type
2535 ,decode(ver.rate_dangling_flag,'Y',-1,1) rate
2536 ,decode(ver.rate_dangling_flag,'Y',-1,1) rate2
2537 , ver.plan_type_code plan_type_code /* 4471527 */
2538 FROM
2539 PA_BUDGET_LINES bl
2540 , pa_resource_asSIGNments ra
2541 , PJI_FM_EXTR_PLNVER3_T ver
2542 , pa_projects_all ppa
2543 , PA_PROJ_ELEM_VER_STRUCTURE pevs
2544 , PJI_FM_AGGR_DLY_RATES_T rates
2545 , pji_time_cal_period_v prd
2546 , PJI_ORG_EXTR_INFO oei
2547 , pji_fp_txn_accum_header hdr
2548 , pa_rbs_txn_accum_map map
2549 , pji_pjp_rbs_header rhdr
2550 WHERE 1=1
2551 AND ra.resource_asSIGNment_id = bl.resource_asSIGNment_id
2552 AND ra.project_id = ver.PROJECT_ID
2553 AND ra.budget_version_id = ver.plan_version_id
2554 AND ver.project_id = ppa.project_id
2555 AND txn_currency_code IS NOT NULL
2556 AND bl.project_currency_code IS NOT NULL
2557 AND bl.projfunc_currency_code IS NOT NULL
2558 AND pevs.element_version_id = ver.wbs_struct_version_id
2559 AND ver.secondary_rbs_flag = 'Y'
2560 AND ver.wp_flag = 'N'
2561 AND oei.org_id = ppa.org_id
2562 AND ver.time_phased_type_code IN (g_pa_cal_str, g_gl_cal_str)
2563 AND DECODE ( ver.time_phased_type_code
2564 , g_pa_cal_str, oei.pa_calendar_id
2565 , g_gl_cal_str, oei.gl_calendar_id) = prd.calendar_id
2566 AND bl.period_name = prd.name
2567 AND rates.time_id = prd.cal_period_id
2568 AND ra.txn_accum_header_id = hdr.txn_accum_header_id
2569 AND ra.txn_accum_header_id = map.txn_accum_header_id
2570 AND map.struct_version_id = rhdr.rbs_version_id
2571 AND ra.budget_version_id = rhdr.plan_version_id
2572 AND ppa.project_id = ra.project_id
2573 AND ver.rbs_struct_version_id = rhdr.rbs_version_id
2574 AND ver.project_id = pevs.project_id -- Fix for bug: 4149422 in EXTRACT_PLAN_AMTS_SECRBS_GLC12
2575 UNION ALL
2576 SELECT
2577 ra.project_id
2578 , bl.rowid row_id
2579 , ra.budget_version_id
2580 , -1 time_id
2581 , bl.resource_asSIGNment_id
2582 , DECODE(ra.task_id, 0, pevs.proj_element_id, ra.task_id) wbs_element_id
2583 , NVL(map.element_id, -1) rbs_element_id -- !! changed.
2584 , ver.wbs_struct_version_id wbs_struct_version_id
2585 , NVL(ver.rbs_struct_version_id, -1) rbs_struct_version_id -- !! changed.
2586 , ver.plan_type_id plan_type_id
2587 , ra.rate_based_flag billable_flag
2588 , ra.resource_class_code resource_class
2589 , DECODE(ver.time_phased_type_code
2590 , g_pa_cal_str, 32
2591 , g_gl_cal_str, 32
2592 , 'N', 2048
2593 , -1) period_type_id
2594 , DECODE(ver.time_phased_type_code
2595 , g_pa_cal_str, g_pa_cal_str
2596 , g_gl_cal_str, g_gl_cal_str
2597 , 'N', g_all
2598 , 'X') CALENDAR_TYPE
2599 , bl.txn_currency_code txn_currency_code
2600 , bl.txn_raw_cost txn_raw_cost
2601 , bl.txn_burdened_COST txn_brdn_COST
2602 , bl.txn_revenue txn_revenue
2603 , DECODE(ver.wp_flag, 'N', bl.txn_init_raw_cost, TO_NUMBER(NULL)) txn_actual_raw_cost -- new
2604 , DECODE(ver.wp_flag, 'N', bl.txn_init_burdened_cost, TO_NUMBER(NULL)) txn_actual_brdn_cost -- new
2605 , DECODE(ver.wp_flag, 'N', bl.txn_init_revenue, TO_NUMBER(NULL)) txn_actual_revenue -- new
2606 , DECODE(ver.wp_flag, 'N', (bl.txn_raw_cost - NVL(bl.txn_init_raw_cost, 0)), TO_NUMBER(NULL)) txn_etc_raw_cost -- new
2607 , DECODE(ver.wp_flag, 'N', (bl.txn_burdened_cost - NVL(bl.txn_init_burdened_cost, 0)), TO_NUMBER(NULL)) txn_etc_brdn_cost -- new
2608 , DECODE(ver.wp_flag, 'N', (bl.txn_revenue - NVL(bl.txn_init_revenue, 0)), TO_NUMBER(NULL)) txn_etc_revenue -- new
2609 , bl.project_currency_code prj_currency_code
2610 , bl.project_raw_cost prj_raw_cost
2611 , bl.project_burdened_COST prj_BRDN_COST
2612 , bl.project_revenue prj_revenue
2613 , DECODE(ver.wp_flag, 'N', bl.project_init_raw_cost, TO_NUMBER(NULL)) prj_actual_raw_cost -- new
2614 , DECODE(ver.wp_flag, 'N', bl.project_init_burdened_cost, TO_NUMBER(NULL)) prj_actual_brdn_cost -- new
2615 , DECODE(ver.wp_flag, 'N', bl.project_init_revenue, TO_NUMBER(NULL)) prj_actual_revenue -- new
2616 , DECODE(ver.wp_flag, 'N', (bl.project_raw_cost - NVL(bl.project_init_raw_cost, 0)), TO_NUMBER(NULL)) prj_etc_raw_cost -- new
2617 , DECODE(ver.wp_flag, 'N', (bl.project_burdened_cost - NVL(bl.project_init_burdened_cost, 0)), TO_NUMBER(NULL)) prj_etc_brdn_cost -- new
2618 , DECODE(ver.wp_flag, 'N', (bl.project_revenue - NVL(bl.project_init_revenue, 0)), TO_NUMBER(NULL)) prj_etc_revenue -- new
2619 , bl.projfunc_currency_code func_currency_code
2620 , bl.raw_cost func_raw_cost
2621 , bl.burdened_COST func_BRDN_COST
2622 , bl.revenue func_revenue
2623 , DECODE(ver.wp_flag, 'N', bl.init_raw_cost , TO_NUMBER(NULL)) func_actual_raw_cost -- new
2624 , DECODE(ver.wp_flag, 'N', bl.init_burdened_cost , TO_NUMBER(NULL)) func_actual_brdn_cost -- new
2625 , DECODE(ver.wp_flag, 'N', bl.init_revenue , TO_NUMBER(NULL)) func_actual_revenue -- new
2626 , DECODE(ver.wp_flag, 'N', (bl.raw_cost - NVL(bl.init_raw_cost, 0)), TO_NUMBER(NULL)) func_etc_raw_cost -- new
2627 , DECODE(ver.wp_flag, 'N', (bl.burdened_cost - NVL(bl.init_burdened_cost, 0)), TO_NUMBER(NULL)) func_etc_brdn_cost -- new
2628 , DECODE(ver.wp_flag, 'N', (bl.revenue - NVL(bl.init_revenue, 0)), TO_NUMBER(NULL)) func_etc_revenue -- new
2629 , g_global1_currency_code glb1_currency_code -- g_global1_currency_code glb1_currency_code
2630 , DECODE (g_global1_currency_code
2631 , bl.txn_currency_code
2632 , bl.txn_raw_cost
2633 , bl.project_currency_code
2634 , bl.project_raw_cost
2635 , bl.projfunc_currency_code
2636 , bl.raw_cost
2637 , ROUND((rates.rate * raw_cost )/rates.mau)*rates.mau
2638 ) glb1_raw_cost
2639 , DECODE (g_global1_currency_code
2640 , bl.txn_currency_code
2641 , bl.txn_burdened_cost
2642 , bl.project_currency_code
2643 , bl.project_burdened_cost
2644 , bl.projfunc_currency_code
2645 , bl.burdened_cost
2646 , ROUND((rates.rate * burdened_cost )/rates.mau)*rates.mau
2647 ) glb1_BRDN_COST
2648 , DECODE (g_global1_currency_code
2649 , bl.txn_currency_code
2650 , bl.txn_revenue
2651 , bl.project_currency_code
2652 , bl.project_revenue
2653 , bl.projfunc_currency_code
2654 , bl.revenue
2655 , ROUND((rates.rate * revenue )/rates.mau)*rates.mau
2656 ) glb1_revenue
2657 , DECODE(ver.wp_flag
2658 , 'N'
2659 , DECODE (g_global1_currency_code
2660 , bl.txn_currency_code
2661 , bl.txn_init_raw_cost
2662 , bl.project_currency_code
2663 , bl.project_init_raw_cost
2664 , bl.projfunc_currency_code
2665 , bl.init_raw_cost
2666 , ROUND((rates.rate * bl.init_raw_cost )/rates.mau)*rates.mau
2667 )
2668 , TO_NUMBER(NULL)) glb1_actual_raw_cost
2669 , DECODE(ver.wp_flag
2670 , 'N'
2671 , DECODE (g_global1_currency_code
2672 , bl.txn_currency_code
2673 , bl.txn_init_burdened_cost
2674 , bl.project_currency_code
2675 , bl.project_init_burdened_cost
2676 , bl.projfunc_currency_code
2677 , bl.init_burdened_cost
2678 , ROUND((rates.rate * bl.init_burdened_cost )/rates.mau)*rates.mau
2679 )
2680 , TO_NUMBER(NULL)) glb1_actual_brdn_cost
2681 , DECODE(ver.wp_flag
2682 , 'N'
2683 , DECODE (g_global1_currency_code
2684 , bl.txn_currency_code
2685 , bl.txn_init_revenue
2686 , bl.project_currency_code
2687 , bl.project_init_revenue
2688 , bl.projfunc_currency_code
2689 , bl.init_revenue
2690 , ROUND((rates.rate * bl.init_revenue )/rates.mau)*rates.mau
2691 )
2692 , TO_NUMBER(NULL)) glb1_actual_revenue
2693 , DECODE(ver.wp_flag
2694 , 'N'
2695 , DECODE (g_global1_currency_code
2696 , bl.txn_currency_code
2697 , (bl.txn_raw_cost - NVL(bl.txn_init_raw_cost, 0))
2698 , bl.project_currency_code
2699 , (bl.project_raw_cost - NVL(bl.project_init_raw_cost, 0))
2700 , bl.projfunc_currency_code
2701 , (bl.raw_cost - NVL(bl.init_raw_cost, 0))
2702 , ROUND((rates.rate * (bl.raw_cost - NVL(bl.init_raw_cost, 0)) )/rates.mau)*rates.mau
2703 )
2704 , TO_NUMBER(NULL)) glb1_etc_raw_cost
2705 , DECODE(ver.wp_flag
2706 , 'N'
2707 , DECODE (g_global1_currency_code
2708 , bl.txn_currency_code
2709 , (bl.txn_burdened_cost - NVL(bl.txn_init_burdened_cost, 0))
2710 , bl.project_currency_code
2711 , (bl.project_burdened_cost - NVL(bl.project_init_burdened_cost, 0))
2712 , bl.projfunc_currency_code
2713 , (bl.burdened_cost - NVL(bl.init_burdened_cost, 0))
2714 , ROUND((rates.rate * (bl.burdened_cost - NVL(bl.init_burdened_cost, 0)) )/rates.mau)*rates.mau
2715 )
2716 , TO_NUMBER(NULL)) glb1_etc_brdn_cost
2717 , DECODE(ver.wp_flag
2718 , 'N'
2719 , DECODE (g_global1_currency_code
2720 , bl.txn_currency_code
2721 , (bl.txn_revenue - NVL(bl.txn_init_revenue, 0))
2722 , bl.project_currency_code
2723 , (bl.project_revenue - NVL(bl.project_init_revenue, 0))
2724 , bl.projfunc_currency_code
2725 , (bl.revenue - NVL(bl.init_revenue, 0))
2726 , ROUND((rates.rate * (bl.revenue - NVL(bl.init_revenue, 0)) )/rates.mau)*rates.mau
2727 )
2728 , TO_NUMBER(NULL)) glb1_etc_revenue
2729 , g_global2_currency_code glb2_currency_code -- g_global2_currency_code glb2_currency_code
2730 , DECODE (g_global2_currency_code
2731 , bl.txn_currency_code
2732 , bl.txn_raw_cost
2733 , bl.project_currency_code
2734 , bl.project_raw_cost
2735 , bl.projfunc_currency_code
2736 , bl.raw_cost
2737 , ROUND((rates.rate2 * raw_cost )/rates.mau2)*rates.mau2
2738 ) glb2_raw_cost
2739 , DECODE (g_global2_currency_code
2740 , bl.txn_currency_code
2741 , bl.txn_burdened_cost
2742 , bl.project_currency_code
2743 , bl.project_burdened_cost
2744 , bl.projfunc_currency_code
2745 , bl.burdened_cost
2746 , ROUND((rates.rate2 * burdened_cost )/rates.mau2)*rates.mau2
2747 ) glb2_BRDN_COST
2748 , DECODE (g_global2_currency_code
2749 , bl.txn_currency_code
2750 , bl.txn_revenue
2751 , bl.project_currency_code
2752 , bl.project_revenue
2753 , bl.projfunc_currency_code
2754 , bl.revenue
2755 , ROUND((rates.rate2 * revenue )/rates.mau2)*rates.mau2
2756 ) glb2_revenue
2757 , DECODE(ver.wp_flag
2758 , 'N'
2759 , DECODE (g_global2_currency_code
2760 , bl.txn_currency_code
2761 , bl.txn_init_raw_cost
2762 , bl.project_currency_code
2763 , bl.project_init_raw_cost
2764 , bl.projfunc_currency_code
2765 , bl.init_raw_cost
2766 , ROUND((rates.rate2 * bl.init_raw_cost )/rates.mau2)*rates.mau2
2767 )
2768 , TO_NUMBER(NULL)) glb2_actual_raw_cost
2769 , DECODE(ver.wp_flag
2770 , 'N'
2771 , DECODE (g_global2_currency_code
2772 , bl.txn_currency_code
2773 , bl.txn_init_burdened_cost
2774 , bl.project_currency_code
2775 , bl.project_init_burdened_cost
2776 , bl.projfunc_currency_code
2777 , bl.init_burdened_cost
2778 , ROUND((rates.rate2 * bl.init_burdened_cost )/rates.mau2)*rates.mau2
2779 )
2780 , TO_NUMBER(NULL)) glb2_actual_brdn_cost
2781 , DECODE(ver.wp_flag
2782 , 'N'
2783 , DECODE (g_global2_currency_code
2784 , bl.txn_currency_code
2785 , bl.txn_init_revenue
2786 , bl.project_currency_code
2787 , bl.project_init_revenue
2788 , bl.projfunc_currency_code
2789 , bl.init_revenue
2790 , ROUND((rates.rate2 * bl.init_revenue )/rates.mau2)*rates.mau2
2791 )
2792 , TO_NUMBER(NULL)) glb2_actual_revenue
2793 , DECODE(ver.wp_flag
2794 , 'N'
2795 , DECODE (g_global2_currency_code
2796 , bl.txn_currency_code
2797 , (bl.txn_raw_cost - NVL(bl.txn_init_raw_cost, 0))
2798 , bl.project_currency_code
2799 , (bl.project_raw_cost - NVL(bl.project_init_raw_cost, 0))
2800 , bl.projfunc_currency_code
2801 , (bl.raw_cost - NVL(bl.init_raw_cost, 0))
2802 , ROUND((rates.rate2 * (bl.raw_cost - NVL(bl.init_raw_cost, 0)) )/rates.mau2)*rates.mau2
2803 )
2804 , TO_NUMBER(NULL)) glb2_etc_raw_cost
2805 , DECODE(ver.wp_flag
2806 , 'N'
2807 , DECODE (g_global2_currency_code
2808 , bl.txn_currency_code
2809 , (bl.txn_burdened_cost - NVL(bl.txn_init_burdened_cost, 0))
2810 , bl.project_currency_code
2811 , (bl.project_burdened_cost - NVL(bl.project_init_burdened_cost, 0))
2812 , bl.projfunc_currency_code
2813 , (bl.burdened_cost - NVL(bl.init_burdened_cost, 0))
2814 , ROUND((rates.rate2 * (bl.burdened_cost - NVL(bl.init_burdened_cost, 0)) )/rates.mau2)*rates.mau2
2815 )
2816 , TO_NUMBER(NULL)) glb2_etc_brdn_cost
2817 , DECODE(ver.wp_flag
2818 , 'N'
2819 , DECODE (g_global2_currency_code
2820 , bl.txn_currency_code
2821 , (bl.txn_revenue - NVL(bl.txn_init_revenue, 0))
2822 , bl.project_currency_code
2823 , (bl.project_revenue - NVL(bl.project_init_revenue, 0))
2824 , bl.projfunc_currency_code
2825 , (bl.revenue - NVL(bl.init_revenue, 0))
2826 , ROUND((rates.rate2 * (bl.revenue - NVL(bl.init_revenue, 0)) )/rates.mau2)*rates.mau2
2827 )
2828 , TO_NUMBER(NULL)) glb2_etc_revenue
2829 , bl.quantity quantity
2830 , DECODE(ver.wp_flag, 'N', bl.init_quantity, TO_NUMBER(NULL)) actual_quantity -- new
2831 , DECODE(ver.wp_flag, 'N', (bl.quantity - NVL(bl.init_quantity, 0)), TO_NUMBER(NULL)) etc_quantity -- new
2832 , ra.planning_start_date start_date
2833 , ra.planning_END_date end_date
2834 , ver.time_phased_type_code time_phased_type_code
2835 , ppa.org_id project_org_id
2836 , ppa.carrying_out_organization_id project_organization_id
2837 , 'NTP' line_type
2838 ,decode(ver.rate_dangling_flag,'Y',-1,1) rate
2839 ,decode(ver.rate_dangling_flag,'Y',-1,1) rate2
2840 , ver.plan_type_code plan_type_code /* 4471527 */
2841 FROM
2842 PA_BUDGET_LINES bl
2843 , pa_resource_asSIGNments ra
2844 , PJI_FM_EXTR_PLNVER3_T ver
2845 , pa_projects_all ppa
2846 , PA_PROJ_ELEM_VER_STRUCTURE pevs
2847 , PJI_FM_AGGR_DLY_RATES_T rates
2848 -- , pji_time_cal_period prd
2849 -- , PJI_ORG_EXTR_INFO oei
2850 , pji_fp_txn_accum_header hdr
2851 , pa_rbs_txn_accum_map map
2852 , pji_pjp_rbs_header rhdr
2853 WHERE 1=1
2854 AND ra.resource_asSIGNment_id = bl.resource_asSIGNment_id
2855 AND ra.project_id = ver.PROJECT_ID
2856 AND ra.budget_version_id = ver.plan_version_id
2857 AND ver.project_id = ppa.project_id
2858 AND txn_currency_code IS NOT NULL
2859 AND bl.project_currency_code IS NOT NULL
2860 AND bl.projfunc_currency_code IS NOT NULL
2861 AND ver.project_id = pevs.project_id -- Fix for bug : 4149422 in EXTRACT_PLAN_AMTS_SECRBS_GLC12
2862 AND pevs.element_version_id = ver.wbs_struct_version_id
2863 AND ver.secondary_rbs_flag = 'Y'
2864 AND ver.wp_flag = 'N'
2865 -- AND oei.org_id = ppa.org_id
2866 AND ver.time_phased_type_code = 'N' -- IN (g_pa_cal_str, g_gl_cal_str)
2867 AND rates.time_id = DECODE ( g_currency_conversion_rule
2868 , g_start_str
2869 , TO_NUMBER(to_CHAR(ra.planning_start_date, 'J'))
2870 , g_end_str
2871 , TO_NUMBER(to_CHAR(ra.planning_end_date, 'J')) )
2872 AND ra.txn_accum_header_id = hdr.txn_accum_header_id
2873 AND ra.txn_accum_header_id = map.txn_accum_header_id
2874 AND map.struct_version_id = rhdr.rbs_version_id
2875 AND ra.budget_version_id = rhdr.plan_version_id
2876 AND ppa.project_id = ra.project_id
2877 AND ver.rbs_struct_version_id = rhdr.rbs_version_id
2878 ) spread_bl
2879 ---- end of third inline view 'spread_bl'...........
2880 ,
2881 (
2882 select 1 INVERT_ID from dual union all
2883 select 2 INVERT_ID from dual where PJI_UTILS.GET_SETUP_PARAMETER('GLOBAL_CURR2_FLAG') = 'Y' union all
2884 select 4 INVERT_ID from dual union all
2885 select 8 INVERT_ID from dual union all
2886 select 16 INVERT_ID from dual where PJI_UTILS.GET_SETUP_PARAMETER('TXN_CURR_FLAG') = 'Y'
2887 ) invert
2888 ) collapse_bl
2889 ---- End of second inline view 'collapse_bl' ..........
2890 GROUP BY
2891 collapse_bl.PROJECT_ID
2892 , collapse_bl.time_id
2893 , collapse_bl.WBS_ELEMENT_ID
2894 -- , time_id, period_type_id, calendar type.., slice type, rollpu flag...
2895 , collapse_bl.RBS_ELEMENT_ID
2896 , collapse_bl.RBS_STRUCT_VERSION_ID
2897 , collapse_bl.plan_type_id
2898 , collapse_bl.plan_version_id
2899 , collapse_bl.PROJECT_ORGANIZATION_ID
2900 , collapse_bl.PROJECT_ORG_ID
2901 , collapse_bl.RESOURCE_ASSIGNMENT_ID
2902 , collapse_bl.BILLABLE_FLAG
2903 , collapse_bl.RESOURCE_CLASS
2904 , collapse_bl.TIME_PHASED_TYPE_CODE
2905 , collapse_bl.CURRENCY_CODE
2906 , collapse_bl.start_date
2907 , collapse_bl.end_date
2908 , collapse_bl.row_id
2909 , collapse_bl.line_type
2910 , collapse_bl.calendar_type
2911 , collapse_bl.period_type_id
2912 ,collapse_bl.rate
2913 ,collapse_bl.rate2
2914 , collapse_bl.plan_type_code /* 4471527 */
2915 ) plr
2916 ---- End of first inline view plr ..........
2917 , pji_fm_extr_plnver3_t vers
2918 WHERE 1=1
2919 AND vers.plan_version_id = plr.plan_version_id
2920 AND vers.plan_type_code = plr.plan_type_code /*4471527 */
2921 -- AND plr.CURR_RECORD_TYPE IS NOT NULL
2922 AND vers.rbs_struct_version_id = plr.rbs_struct_version_id
2923 AND plr.currency_code IS NOT NULL
2924 GROUP BY
2925 plr.PROJECT_ID
2926 , plr.PROJECT_ORG_ID
2927 , plr.project_ORGANIZATION_ID
2928 , plr.WBS_ELEMENT_ID
2929 , plr.time_id
2930 , plr.period_type_id
2931 , plr.CALENDAR_TYPE
2932 , plr.CURR_RECORD_TYPE -- curr code missing.
2933 , plr.currency_code
2934 , plr.RBS_ELEMENT_ID
2935 , plr.RBS_STRUCT_VERSION_ID
2936 , plr.plan_version_id
2937 , plr.plan_type_id
2938 , plr.start_date
2939 , plr.end_date
2940 , plr.line_type
2941 ,decode(sign(plr.rate),-1,'Y',NULL) ||decode(sign(plr.rate2),-1,'Y',NULL)
2942 , plr.plan_type_code ; /* 4471527 */
2943
2944
2945 print_time ( ' EXTRACT_PLAN_AMTS_SECRBS_GLC12 end. Inserted rows # is: ' || SQL%ROWCOUNT );
2946
2947 EXCEPTION
2948 WHEN OTHERS THEN
2949 print_time('EXTRACT_PLAN_AMOUNTS_SECRBS : Exception ' || SQLERRM );
2950 FND_MSG_PUB.add_exc_msg( p_pkg_name => g_package_name ,
2951 p_procedure_name => 'EXTRACT_PLAN_AMTS_SECRBS_GLC12');
2952 RAISE;
2953 END;
2954
2955 --EXTRACT_PLAN_AMTS_PRIRBS_GLC12
2956
2957 PROCEDURE EXTRACT_PLAN_AMTS_PRIRBS_GLC12 IS
2958 BEGIN
2959
2960 print_time ( ' EXTRACT_PLAN_AMTS_PRIRBS_GLC12 begin. Inserted rows # is: ' || SQL%ROWCOUNT );
2961
2962 PJI_PJP_FP_CURR_WRAP.get_global_currency_info (
2963 x_currency_conversion_rule => g_currency_conversion_rule
2964 , x_prorating_format => g_prorating_format
2965 , x_global1_currency_code => g_global1_currency_code
2966 , x_global2_currency_code => g_global2_currency_code
2967 , x_global1_currency_mau => g_global1_currency_mau
2968 , x_global2_currency_mau => g_global2_currency_mau ) ;
2969
2970
2971 print_time(' Got global currency settings. ');
2972 print_time(' g_currency_conversion_rule ' || g_currency_conversion_rule || ' g_prorating_format ' || g_prorating_format );
2973 print_time(' g_global1_currency_code ' || g_global1_currency_code || ' g_global2_currency_code ' || g_global2_currency_code );
2974 print_time(' g_global1_currency_mau ' || g_global1_currency_mau || ' g_global2_currency_mau ' || g_global2_currency_mau ) ;
2975
2976 INSERT INTO PJI_FP_AGGR_PJP1_T
2977 (
2978 WORKER_ID
2979 , PROJECT_ID
2980 , PROJECT_ORG_ID
2981 , PROJECT_ORGANIZATION_ID
2982 , PROJECT_ELEMENT_ID
2983 , TIME_ID
2984 , PERIOD_TYPE_ID
2985 , CALENDAR_TYPE
2986 , RBS_AGGR_LEVEL
2987 , WBS_ROLLUP_FLAG
2988 , PRG_ROLLUP_FLAG
2989 , CURR_RECORD_TYPE_ID
2990 , CURRENCY_CODE
2991 , RBS_ELEMENT_ID
2992 , RBS_VERSION_ID
2993 , PLAN_VERSION_ID
2994 , PLAN_TYPE_ID
2995 , RAW_COST
2996 , BRDN_COST
2997 , REVENUE
2998 , BILL_RAW_COST
2999 , BILL_BRDN_COST
3000 , BILL_LABOR_RAW_COST
3001 , BILL_LABOR_BRDN_COST
3002 , BILL_LABOR_HRS
3003 , EQUIPMENT_RAW_COST
3004 , EQUIPMENT_BRDN_COST
3005 , CAPITALIZABLE_RAW_COST
3006 , CAPITALIZABLE_BRDN_COST
3007 , LABOR_RAW_COST
3008 , LABOR_BRDN_COST
3009 , LABOR_HRS
3010 , LABOR_REVENUE
3011 , EQUIPMENT_HOURS
3012 , BILLABLE_EQUIPMENT_HOURS
3013 , SUP_INV_COMMITTED_COST
3014 , PO_COMMITTED_COST
3015 , PR_COMMITTED_COST
3016 , OTH_COMMITTED_COST
3017 , ACT_LABOR_HRS
3018 , ACT_EQUIP_HRS
3019 , ACT_LABOR_BRDN_COST
3020 , ACT_EQUIP_BRDN_COST
3021 , ACT_BRDN_COST
3022 , ACT_RAW_COST
3023 , ACT_REVENUE
3024 , ACT_LABOR_RAW_COST
3025 , ACT_EQUIP_RAW_COST
3026 , ETC_LABOR_HRS
3027 , ETC_EQUIP_HRS
3028 , ETC_LABOR_BRDN_COST
3029 , ETC_EQUIP_BRDN_COST
3030 , ETC_BRDN_COST
3031 , ETC_RAW_COST
3032 , ETC_LABOR_RAW_COST
3033 , ETC_EQUIP_RAW_COST
3034 , CUSTOM1
3035 , CUSTOM2
3036 , CUSTOM3
3037 , CUSTOM4
3038 , CUSTOM5
3039 , CUSTOM6
3040 , CUSTOM7
3041 , CUSTOM8
3042 , CUSTOM9
3043 , CUSTOM10
3044 , CUSTOM11
3045 , CUSTOM12
3046 , CUSTOM13
3047 , CUSTOM14
3048 , CUSTOM15
3049 , LINE_TYPE
3050 , RATE_DANGLING_FLAG
3051 , TIME_DANGLING_FLAG
3052 , START_DATE
3053 , END_DATE
3054 , PRG_LEVEL
3055 , PLAN_TYPE_CODE
3056 )
3057 SELECT
3058 g_worker_id WORKER_ID
3059 , plr.PROJECT_ID
3060 , plr.PROJECT_ORG_ID
3061 , plr.project_ORGANIZATION_ID
3062 , plr.WBS_ELEMENT_ID
3063 , plr.time_id
3064 , plr.period_type_id -- period type id...
3065 , plr.CALENDAR_TYPE
3066 , g_lowest_level RBS_AGGR_LEVEL
3067 , 'N' WBS_ROLLUP_FLAG
3068 , 'N' PRG_ROLLUP_FLAG
3069 , plr.CURR_RECORD_TYPE
3070 , plr.currency_code
3071 , plr.RBS_ELEMENT_ID
3072 , plr.RBS_STRUCT_VERSION_ID
3073 , plr.plan_version_id
3074 , plr.plan_type_id
3075 , SUM(plr.RAW_COST)
3076 , SUM(plr.BRDN_COST)
3077 , SUM(plr.REVENUE)
3078 , SUM ( DECODE ( plr.billable_flag, 'Y', plr.raw_cost, 0 ) ) BILL_RAW_COST
3079 , SUM ( DECODE ( plr.billable_flag, 'Y', plr.BRDN_COST, 0 ) ) BILL_BRDN_COST
3080 , SUM ( DECODE ( plr.billable_flag || plr.resource_class, 'Y' || g_people_resclass_code, plr.raw_cost, 0 ) ) BILL_LABOR_RAW_COST
3081 , SUM ( DECODE ( plr.billable_flag || plr.resource_class, 'Y' || g_people_resclass_code , plr.BRDN_COST, 0 ) ) BILL_LABOR_BRDN_COST
3082 /* , SUM ( DECODE ( plr.billable_flag || plr.resource_class , 'Y' || g_people_resclass_code, plr.quantity, 0 ) ) BILL_LABOR_HRS */ -- bug 6039785
3083 , SUM ( DECODE ( plr.billable_flag || plr.resource_class , 'Y' || g_people_resclass_code,
3084 DECODE(plr.billable_flag,'Y',plr.quantity,0), 0 ) ) BILL_LABOR_HRS -- bug 6039785
3085 , SUM ( DECODE ( plr.resource_class, g_equip_resclass_code , plr.raw_cost, 0 ) ) EQUIPMENT_RAW_COST
3086 , SUM ( DECODE ( plr.resource_class, g_equip_resclass_code , plr.BRDN_COST, 0 ) ) EQUIPMENT_BRDN_COST
3087 , SUM ( DECODE ( plr.billable_flag, 'Y', plr.raw_cost, 0 ) ) CAPITALIZABLE_RAW_COST
3088 , SUM ( DECODE ( plr.billable_flag, 'Y', plr.BRDN_COST, 0 ) ) CAPITALIZABLE_BRDN_COST
3089 , SUM ( DECODE ( plr.resource_class, g_people_resclass_code, plr.raw_cost, 0 ) ) LABOR_RAW_COST
3090 , SUM ( DECODE ( plr.resource_class, g_people_resclass_code, plr.BRDN_COST, 0 ) ) LABOR_BRDN_COST
3091 /* , SUM ( DECODE ( plr.resource_class, g_people_resclass_code,
3092 DECODE ( vers.wp_flag, 'N',
3093 DECODE ( plr.billable_flag, 'Y',plr.quantity,0),
3094 plr.quantity),
3095 0 ) ) labor_hrs */ -- bug 6039785
3096 , SUM ( DECODE ( plr.resource_class, g_people_resclass_code, DECODE(plr.billable_flag ,'Y',
3097 DECODE ( vers.wp_flag, 'N',
3098 DECODE ( plr.billable_flag, 'Y',plr.quantity,0),
3099 plr.quantity),
3100 0 ),
3101 0 ) ) labor_hrs -- bug 6039785
3102 , SUM ( DECODE ( plr.resource_class, g_people_resclass_code, plr.revenue, 0 ) ) LABOR_REVENUE
3103 /* , SUM ( DECODE ( plr.resource_class, g_equip_resclass_code,
3104 DECODE ( vers.wp_flag, 'N',
3105 DECODE ( plr.billable_flag, 'Y',plr.quantity,0),
3106 plr.quantity),
3107
3108 0 ) ) EQUIPMENT_HOURS */ -- bug 6039785
3109 , SUM ( DECODE ( plr.resource_class, g_equip_resclass_code, DECODE(plr.billable_flag ,'Y',
3110 DECODE ( vers.wp_flag, 'N',
3111 DECODE ( plr.billable_flag, 'Y',plr.quantity,0),
3112 plr.quantity),
3113 0 ),
3114 0 ) ) EQUIPMENT_HOURS -- bug 6039785
3115 /* , SUM ( DECODE ( plr.billable_flag || plr.resource_class, 'Y' || g_equip_resclass_code, plr.quantity, 0 ) ) BILLABLE_EQUIPMENT_HOURS */ -- bug 6039785
3116 , SUM ( DECODE ( plr.billable_flag || plr.resource_class, 'Y' || g_equip_resclass_code,
3117 DECODE(plr.billable_flag,'Y',plr.quantity,0), 0 ) ) BILLABLE_EQUIPMENT_HOURS -- bug 6039785
3118 , TO_NUMBER(NULL) SUP_INV_COMMITTED_COST
3119 , TO_NUMBER(NULL) PO_COMMITTED_COST
3120 , TO_NUMBER(NULL) PR_COMMITTED_COST
3121 , TO_NUMBER(NULL) OTH_COMMITTED_COST
3122 /* , SUM ( DECODE ( vers.wp_flag, 'Y', NULL, DECODE ( plr.resource_class, g_people_resclass_code,
3123 DECODE ( plr.billable_flag, 'Y',plr.actual_quantity,0),
3124 0 ) ) ) ACT_LABOR_HRS */ -- bug 6039785
3125 , SUM ( DECODE ( vers.wp_flag, 'Y', NULL, DECODE ( plr.resource_class, g_people_resclass_code,
3126 DECODE ( plr.billable_flag, 'Y',plr.actual_quantity,0),
3127 0 ) ) ) ACT_LABOR_HRS -- bug 6039785
3128 /* , SUM ( DECODE ( vers.wp_flag, 'Y', NULL, DECODE ( plr.resource_class, g_equip_resclass_code,
3129 DECODE ( plr.billable_flag, 'Y',plr.actual_quantity,0),
3130 0 ) ) ) ACT_EQUIP_HOURS */ -- bug 6039785
3131 , SUM ( DECODE ( vers.wp_flag, 'Y', NULL, DECODE ( plr.resource_class, g_equip_resclass_code,
3132 DECODE ( plr.billable_flag, 'Y',plr.actual_quantity,0),
3133 0 ) ) ) ACT_EQUIP_HOURS -- bug 6039785
3134 , SUM ( DECODE ( vers.wp_flag, 'Y', NULL, DECODE ( plr.resource_class, g_people_resclass_code, plr.actual_BRDN_COST, 0 ) ) ) ACT_LABOR_BRDN_COST
3135 , SUM ( DECODE ( vers.wp_flag, 'Y', NULL, DECODE ( plr.resource_class, g_equip_resclass_code , plr.actual_BRDN_COST, 0 ) ) ) ACT_EQUIPMENT_BRDN_COST
3136 , SUM ( DECODE ( vers.wp_flag, 'Y', NULL, plr.actual_brdn_cost ) ) ACT_BRDN_COST
3137 , SUM ( DECODE ( vers.wp_flag, 'Y', NULL, plr.actual_raw_cost ) ) ACT_RAW_COST
3138 , SUM ( DECODE ( vers.wp_flag, 'Y', NULL, plr.actual_revenue ) ) ACT_REVENUE
3139 , SUM ( DECODE ( vers.wp_flag, 'Y', NULL, DECODE ( plr.resource_class, g_people_resclass_code, plr.actual_RAW_COST, 0 ) ) ) ACT_LABOR_RAW_COST
3140 , SUM ( DECODE ( vers.wp_flag, 'Y', NULL, DECODE ( plr.resource_class, g_equip_resclass_code , plr.actual_RAW_COST, 0 ) ) ) ACT_EQUIPMENT_RAW_COST
3141 /* , SUM ( DECODE ( vers.wp_flag, 'Y', NULL, DECODE ( plr.resource_class, g_people_resclass_code,
3142 DECODE ( plr.billable_flag, 'Y',plr.ETC_quantity,0),
3143 0 ) ) ) ETC_LABOR_HRS */ -- bug 6039785
3144 , SUM ( DECODE ( vers.wp_flag, 'Y', NULL, DECODE ( plr.resource_class, g_people_resclass_code,
3145 DECODE (plr.billable_flag ,'Y',
3146 DECODE ( plr.billable_flag, 'Y',plr.ETC_quantity,0),
3147 0 ),
3148 0 ) ) ) ETC_LABOR_HRS -- bug 6039785
3149 /* , SUM ( DECODE ( vers.wp_flag, 'Y', NULL, DECODE ( plr.resource_class, g_equip_resclass_code,
3150 DECODE ( plr.billable_flag, 'Y',plr.ETC_quantity,0),
3151 0 ) ) ) ETC_EQUIP_HOURS */ -- bug 6039785
3152 , SUM ( DECODE ( vers.wp_flag, 'Y', NULL, DECODE ( plr.resource_class, g_equip_resclass_code,
3153 DECODE (plr.billable_flag ,'Y',
3154 DECODE ( plr.billable_flag, 'Y',plr.ETC_quantity,0),
3155 0 ),
3156 0 ) ) ) ETC_EQUIP_HOURS -- bug 6039785
3157 , SUM ( DECODE ( vers.wp_flag, 'Y', NULL, DECODE ( plr.resource_class, g_people_resclass_code, plr.etc_BRDN_COST, 0 ) ) ) ETC_LABOR_BRDN_COST
3158 , SUM ( DECODE ( vers.wp_flag, 'Y', NULL, DECODE ( plr.resource_class, g_equip_resclass_code , plr.etc_BRDN_COST, 0 ) ) ) ETC_EQUIP_BRDN_COST
3159 , SUM ( DECODE ( vers.wp_flag, 'Y', NULL, plr.etc_brdn_cost ) ) ETC_BRDN_COST
3160 , SUM ( DECODE ( vers.wp_flag, 'Y', NULL, plr.etc_raw_cost ) ) ETC_RAW_COST
3161 , SUM ( DECODE ( vers.wp_flag, 'Y', NULL, DECODE ( plr.resource_class, g_people_resclass_code, plr.etc_raw_COST, 0 ) ) ) ETC_LABOR_raw_COST
3162 , SUM ( DECODE ( vers.wp_flag, 'Y', NULL, DECODE ( plr.resource_class, g_equip_resclass_code , plr.etc_raw_COST, 0 ) ) ) ETC_EQUIP_raw_COST
3163 , TO_NUMBER(NULL) CUSTOM1
3164 , TO_NUMBER(NULL) CUSTOM2
3165 , TO_NUMBER(NULL) CUSTOM3
3166 , TO_NUMBER(NULL) CUSTOM4
3167 , TO_NUMBER(NULL) CUSTOM5
3168 , TO_NUMBER(NULL) CUSTOM6
3169 , TO_NUMBER(NULL) CUSTOM7
3170 , TO_NUMBER(NULL) CUSTOM8
3171 , TO_NUMBER(NULL) CUSTOM9
3172 , TO_NUMBER(NULL) CUSTOM10
3173 , TO_NUMBER(NULL) CUSTOM11
3174 , TO_NUMBER(NULL) CUSTOM12
3175 , TO_NUMBER(NULL) CUSTOM13
3176 , TO_NUMBER(NULL) CUSTOM14
3177 , TO_NUMBER(NULL) CUSTOM15
3178 , plr.LINE_TYPE
3179 , NULL time_dangling_flag
3180 , decode(sign(plr.rate),-1,'Y',NULL) ||decode(sign(plr.rate2),-1,'Y',NULL) rate_dangling_flag
3181 , plr.start_date
3182 , plr.end_date
3183 , g_default_prg_level prg_level
3184 , plr.plan_type_code plan_type_code /* 4471527 */
3185 FROM
3186 ( ----- First inline view plr .............
3187 select
3188 collapse_bl.PROJECT_ID -- , 1 partition_id
3189 , collapse_bl.WBS_ELEMENT_ID -- , time_id, period_type_id, calendar type.., slice type, rollpu flag...
3190 , SUM(collapse_bl.CURR_RECORD_TYPE_ID) CURR_RECORD_TYPE
3191 , collapse_bl.RBS_ELEMENT_ID
3192 , collapse_bl.RBS_STRUCT_VERSION_ID
3193 , collapse_bl.plan_type_id
3194 , collapse_bl.plan_version_id
3195 , collapse_bl.time_id
3196 , collapse_bl.PROJECT_ORGANIZATION_ID
3197 , collapse_bl.PROJECT_ORG_ID
3198 , collapse_bl.RESOURCE_ASSIGNMENT_ID
3199 , collapse_bl.BILLABLE_FLAG
3200 , collapse_bl.RESOURCE_CLASS -- , CALENDAR_TYPE -- , CALENDAR_ID
3201 , collapse_bl.TIME_PHASED_TYPE_CODE
3202 , collapse_bl.CURRENCY_CODE
3203 , decode(sign(collapse_bl.rate),-1,0,decode(sign(collapse_bl.rate2),-1,0,max(collapse_bl.raw_cost))) raw_cost
3204 , decode(sign(collapse_bl.rate),-1,0,decode(sign(collapse_bl.rate2),-1,0,max(collapse_bl.BRDN_COST))) BRDN_COST
3205 , decode(sign(collapse_bl.rate),-1,0,decode(sign(collapse_bl.rate2),-1,0,max(collapse_bl.revenue))) revenue
3206 , decode(sign(collapse_bl.rate),-1,0,decode(sign(collapse_bl.rate2),-1,0,max(collapse_bl.actual_raw_cost))) actual_raw_cost
3207 , decode(sign(collapse_bl.rate),-1,0,decode(sign(collapse_bl.rate2),-1,0,max(collapse_bl.actual_BRDN_COST))) actual_BRDN_COST
3208 , decode(sign(collapse_bl.rate),-1,0,decode(sign(collapse_bl.rate2),-1,0,max(collapse_bl.actual_revenue))) actual_revenue
3209 , decode(sign(collapse_bl.rate),-1,0,decode(sign(collapse_bl.rate2),-1,0,max(collapse_bl.etc_raw_cost))) etc_raw_cost
3210 , decode(sign(collapse_bl.rate),-1,0,decode(sign(collapse_bl.rate2),-1,0,max(collapse_bl.etc_BRDN_COST))) etc_BRDN_COST
3211 , decode(sign(collapse_bl.rate),-1,0,decode(sign(collapse_bl.rate2),-1,0,max(collapse_bl.etc_revenue))) etc_revenue
3212 , decode(sign(collapse_bl.rate),-1,0,decode(sign(collapse_bl.rate2),-1,0,max(collapse_bl.quantity))) quantity
3213 , decode(sign(collapse_bl.rate),-1,0,decode(sign(collapse_bl.rate2),-1,0,max(collapse_bl.actual_quantity))) actual_quantity
3214 , decode(sign(collapse_bl.rate),-1,0,decode(sign(collapse_bl.rate2),-1,0,max(collapse_bl.etc_quantity))) etc_quantity
3215 , collapse_bl.start_date start_date
3216 , collapse_bl.end_date end_date
3217 -- , collapse_bl.period_name period_name -- , TRACK_AS_LABOR_FLAG track_as_labor_flag
3218 , collapse_bl.line_type
3219 , collapse_bl.calendar_type
3220 , collapse_bl.period_type_id
3221 , collapse_bl.row_id
3222 ,collapse_bl.rate rate
3223 ,collapse_bl.rate2 rate2
3224 ,collapse_bl.plan_type_code plan_type_code /* 4471527 */
3225 from
3226 ( ----- Second inline view 'collapse_bl' begin .............
3227 select
3228 spread_bl.row_id row_id
3229 , spread_bl.PROJECT_ID
3230 , spread_bl.BUDGET_VERSION_ID plan_version_id
3231 , spread_bl.time_id
3232 , spread_bl.RESOURCE_ASSIGNMENT_ID
3233 , spread_bl.WBS_ELEMENT_ID
3234 , spread_bl.RBS_ELEMENT_ID
3235 , spread_bl.WBS_STRUCT_VERSION_ID
3236 , spread_bl.RBS_STRUCT_VERSION_ID
3237 , spread_bl.plan_type_id
3238 , spread_bl.BILLABLE_FLAG
3239 , spread_bl.RESOURCE_CLASS
3240 , spread_bl.PROJECT_ORGANIZATION_ID
3241 , spread_bl.PROJECT_ORG_ID
3242 , spread_bl.TIME_PHASED_TYPE_CODE
3243 , DECODE( invert.INVERT_ID
3244 , 1, spread_bl.glb1_CURRENCY_CODE
3245 , 2, spread_bl.glb2_CURRENCY_CODE
3246 , 4, spread_bl.func_CURRENCY_CODE
3247 , 8, spread_bl.PRJ_CURRENCY_CODE
3248 , 16, spread_bl.TXN_CURRENCY_CODE ) CURRENCY_CODE
3249 , invert.INVERT_ID CURR_RECORD_TYPE_ID
3250 , DECODE ( invert.INVERT_ID
3251 , 1, spread_bl.glb1_raw_cost
3252 , 2, spread_bl.glb2_raw_cost
3253 , 4, spread_bl.func_raw_cost
3254 , 8, spread_bl.PRJ_raw_cost
3255 , 16, spread_bl.TXN_raw_cost) raw_cost
3256 , DECODE ( invert.INVERT_ID
3257 , 1, spread_bl.glb1_brdn_cost
3258 , 2, spread_bl.glb2_brdn_cost
3259 , 4, spread_bl.func_BRDN_COST
3260 , 8, spread_bl.PRJ_BRDN_COST
3261 , 16, spread_bl.TXN_BRDN_COST ) BRDN_COST
3262 , DECODE ( invert.INVERT_ID
3263 , 1, spread_bl.glb1_revenue
3264 , 2, spread_bl.glb2_revenue
3265 , 4, spread_bl.func_revenue
3266 , 8, spread_bl.PRJ_revenue
3267 , 16, spread_bl.TXN_revenue ) revenue
3268 , DECODE ( invert.INVERT_ID
3269 , 1, spread_bl.glb1_actual_raw_cost
3270 , 2, spread_bl.glb2_actual_raw_cost
3271 , 4, spread_bl.func_actual_raw_cost
3272 , 8, spread_bl.prj_actual_raw_cost
3273 , 16, spread_bl.txn_actual_raw_cost ) actual_raw_cost
3274 , DECODE ( invert.INVERT_ID
3275 , 1, spread_bl.glb1_actual_brdn_cost
3276 , 2, spread_bl.glb2_actual_brdn_cost
3277 , 4, spread_bl.func_actual_brdn_cost
3278 , 8, spread_bl.prj_actual_brdn_cost
3279 , 16, spread_bl.txn_actual_brdn_cost ) actual_brdn_cost
3280 , DECODE ( invert.INVERT_ID
3281 , 1, spread_bl.glb1_actual_revenue
3282 , 2, spread_bl.glb2_actual_revenue
3283 , 4, spread_bl.func_actual_revenue
3284 , 8, spread_bl.prj_actual_revenue
3285 , 16, spread_bl.txn_actual_revenue ) actual_revenue
3286 , DECODE ( invert.INVERT_ID
3287 , 1, spread_bl.glb1_etc_raw_cost
3288 , 2, spread_bl.glb2_etc_raw_cost
3289 , 4, spread_bl.func_etc_raw_cost
3290 , 8, spread_bl.prj_etc_raw_cost
3291 , 16, spread_bl.txn_etc_raw_cost ) etc_raw_cost
3292 , DECODE ( invert.INVERT_ID
3293 , 1, spread_bl.glb1_etc_brdn_cost
3294 , 2, spread_bl.glb2_etc_brdn_cost
3295 , 4, spread_bl.func_etc_brdn_cost
3296 , 8, spread_bl.prj_etc_brdn_cost
3297 , 16, spread_bl.txn_etc_brdn_cost ) etc_brdn_cost
3298 , DECODE ( invert.INVERT_ID
3299 , 1, spread_bl.glb1_etc_revenue
3300 , 2, spread_bl.glb2_etc_revenue
3301 , 4, spread_bl.func_etc_revenue
3302 , 8, spread_bl.prj_etc_revenue
3303 , 16, spread_bl.txn_etc_revenue ) etc_revenue
3304 , spread_bl.quantity quantity
3305 , spread_bl.actual_quantity actual_quantity
3306 , spread_bl.etc_quantity etc_quantity
3307 , spread_bl.start_date start_date
3308 , spread_bl.end_date end_date
3309 , spread_bl.line_type line_type
3310 , spread_bl.period_type_id
3311 , spread_bl.calendar_type
3312 ,decode(invert.invert_id,1,spread_bl.rate,1) rate
3313 ,decode(invert.invert_id,2,spread_bl.rate2,1) rate2
3314 , spread_bl.plan_type_code plan_type_code /* 4471527 */
3315 from
3316 ( ----- Third inline view 'spread_bl' .............
3317 SELECT
3318 ra.project_id
3319 , bl.rowid row_id
3320 , ra.budget_version_id
3321 , prd.cal_period_id time_id
3322 , bl.resource_asSIGNment_id
3323 , DECODE(ra.task_id, 0, pevs.proj_element_id, ra.task_id) wbs_element_id
3324 , NVL(ra.rbs_element_id, -1) rbs_element_id
3325 , ver.wbs_struct_version_id wbs_struct_version_id
3326 , NVL(ver.rbs_struct_version_id, -1) rbs_struct_version_id
3327 , ver.plan_type_id plan_type_id
3328 , ra.rate_based_flag billable_flag
3329 , ra.resource_class_code resource_class
3330 , DECODE(ver.time_phased_type_code
3331 , g_pa_cal_str, 32
3332 , g_gl_cal_str, 32
3333 , 'N', 2048
3334 , -1) period_type_id
3335 , DECODE(ver.time_phased_type_code
3336 , g_pa_cal_str, g_pa_cal_str
3337 , g_gl_cal_str, g_gl_cal_str
3338 , 'N', g_all
3339 , 'X') CALENDAR_TYPE
3340 , bl.txn_currency_code txn_currency_code
3341 , bl.txn_raw_cost txn_raw_cost
3342 , bl.txn_burdened_COST txn_brdn_COST
3343 , bl.txn_revenue txn_revenue
3344 , DECODE(ver.wp_flag, 'N', bl.txn_init_raw_cost, TO_NUMBER(NULL)) txn_actual_raw_cost -- new
3345 , DECODE(ver.wp_flag, 'N', bl.txn_init_burdened_cost, TO_NUMBER(NULL)) txn_actual_brdn_cost -- new
3346 , DECODE(ver.wp_flag, 'N', bl.txn_init_revenue, TO_NUMBER(NULL)) txn_actual_revenue -- new
3347 , DECODE(ver.wp_flag, 'N', (bl.txn_raw_cost - NVL(bl.txn_init_raw_cost, 0)), TO_NUMBER(NULL)) txn_etc_raw_cost -- new
3348 , DECODE(ver.wp_flag, 'N', (bl.txn_burdened_cost - NVL(bl.txn_init_burdened_cost, 0)), TO_NUMBER(NULL)) txn_etc_brdn_cost -- new
3349 , DECODE(ver.wp_flag, 'N', (bl.txn_revenue - NVL(bl.txn_init_revenue, 0)), TO_NUMBER(NULL)) txn_etc_revenue -- new
3350 , bl.project_currency_code prj_currency_code
3351 , bl.project_raw_cost prj_raw_cost
3352 , bl.project_burdened_COST prj_BRDN_COST
3353 , bl.project_revenue prj_revenue
3354 , DECODE(ver.wp_flag, 'N', bl.project_init_raw_cost, TO_NUMBER(NULL)) prj_actual_raw_cost -- new
3355 , DECODE(ver.wp_flag, 'N', bl.project_init_burdened_cost, TO_NUMBER(NULL)) prj_actual_brdn_cost -- new
3356 , DECODE(ver.wp_flag, 'N', bl.project_init_revenue, TO_NUMBER(NULL)) prj_actual_revenue -- new
3357 , DECODE(ver.wp_flag, 'N', (bl.project_raw_cost - NVL(bl.project_init_raw_cost, 0)), TO_NUMBER(NULL)) prj_etc_raw_cost -- new
3358 , DECODE(ver.wp_flag, 'N', (bl.project_burdened_cost - NVL(bl.project_init_burdened_cost, 0)), TO_NUMBER(NULL)) prj_etc_brdn_cost -- new
3359 , DECODE(ver.wp_flag, 'N', (bl.project_revenue - NVL(bl.project_init_revenue, 0)), TO_NUMBER(NULL)) prj_etc_revenue -- new
3360 , bl.projfunc_currency_code func_currency_code
3361 , bl.raw_cost func_raw_cost
3362 , bl.burdened_COST func_BRDN_COST
3363 , bl.revenue func_revenue
3364 , DECODE(ver.wp_flag, 'N', bl.init_raw_cost , TO_NUMBER(NULL)) func_actual_raw_cost -- new
3365 , DECODE(ver.wp_flag, 'N', bl.init_burdened_cost , TO_NUMBER(NULL)) func_actual_brdn_cost -- new
3366 , DECODE(ver.wp_flag, 'N', bl.init_revenue , TO_NUMBER(NULL)) func_actual_revenue -- new
3367 , DECODE(ver.wp_flag, 'N', (bl.raw_cost - NVL(bl.init_raw_cost, 0)), TO_NUMBER(NULL)) func_etc_raw_cost -- new
3368 , DECODE(ver.wp_flag, 'N', (bl.burdened_cost - NVL(bl.init_burdened_cost, 0)), TO_NUMBER(NULL)) func_etc_brdn_cost -- new
3369 , DECODE(ver.wp_flag, 'N', (bl.revenue - NVL(bl.init_revenue, 0)), TO_NUMBER(NULL)) func_etc_revenue -- new
3370 , g_global1_currency_code glb1_currency_code -- g_global1_currency_code glb1_currency_code
3371 , DECODE (g_global1_currency_code
3372 , bl.txn_currency_code
3373 , bl.txn_raw_cost
3374 , bl.project_currency_code
3375 , bl.project_raw_cost
3376 , bl.projfunc_currency_code
3377 , bl.raw_cost
3378 , ROUND((rates.rate * raw_cost )/rates.mau)*rates.mau
3379 ) glb1_raw_cost
3380 , DECODE (g_global1_currency_code
3381 , bl.txn_currency_code
3382 , bl.txn_burdened_cost
3383 , bl.project_currency_code
3384 , bl.project_burdened_cost
3385 , bl.projfunc_currency_code
3386 , bl.burdened_cost
3387 , ROUND((rates.rate * burdened_cost )/rates.mau)*rates.mau
3388 ) glb1_BRDN_COST
3389 , DECODE (g_global1_currency_code
3390 , bl.txn_currency_code
3391 , bl.txn_revenue
3392 , bl.project_currency_code
3393 , bl.project_revenue
3394 , bl.projfunc_currency_code
3395 , bl.revenue
3396 , ROUND((rates.rate * revenue )/rates.mau)*rates.mau
3397 ) glb1_revenue
3398 , DECODE(ver.wp_flag
3399 , 'N'
3400 , DECODE (g_global1_currency_code
3401 , bl.txn_currency_code
3402 , bl.txn_init_raw_cost
3403 , bl.project_currency_code
3404 , bl.project_init_raw_cost
3405 , bl.projfunc_currency_code
3406 , bl.init_raw_cost
3407 , ROUND((rates.rate * bl.init_raw_cost )/rates.mau)*rates.mau
3408 )
3409 , NULL) glb1_actual_raw_cost
3410 , DECODE(ver.wp_flag
3411 , 'N'
3412 , DECODE (g_global1_currency_code
3413 , bl.txn_currency_code
3414 , bl.txn_init_burdened_cost
3415 , bl.project_currency_code
3416 , bl.project_init_burdened_cost
3417 , bl.projfunc_currency_code
3418 , bl.init_burdened_cost
3419 , ROUND((rates.rate * bl.init_burdened_cost )/rates.mau)*rates.mau
3420 )
3421 , NULL) glb1_actual_brdn_cost
3422 , DECODE(ver.wp_flag
3423 , 'N'
3424 , DECODE (g_global1_currency_code
3425 , bl.txn_currency_code
3426 , bl.txn_init_revenue
3427 , bl.project_currency_code
3428 , bl.project_init_revenue
3429 , bl.projfunc_currency_code
3430 , bl.init_revenue
3431 , ROUND((rates.rate * bl.init_revenue )/rates.mau)*rates.mau
3432 )
3433 , NULL) glb1_actual_revenue
3434 , DECODE(ver.wp_flag
3435 , 'N'
3436 , DECODE (g_global1_currency_code
3437 , bl.txn_currency_code
3438 , (bl.txn_raw_cost - NVL(bl.txn_init_raw_cost, 0))
3439 , bl.project_currency_code
3440 , (bl.project_raw_cost - NVL(bl.project_init_raw_cost, 0))
3441 , bl.projfunc_currency_code
3442 , (bl.raw_cost - NVL(bl.init_raw_cost, 0))
3443 , ROUND((rates.rate * (bl.raw_cost - NVL(bl.init_raw_cost, 0)) )/rates.mau)*rates.mau
3444 )
3445 , NULL) glb1_etc_raw_cost
3446 , DECODE(ver.wp_flag
3447 , 'N'
3448 , DECODE (g_global1_currency_code
3449 , bl.txn_currency_code
3450 , (bl.txn_burdened_cost - NVL(bl.txn_init_burdened_cost, 0))
3451 , bl.project_currency_code
3452 , (bl.project_burdened_cost - NVL(bl.project_init_burdened_cost, 0))
3453 , bl.projfunc_currency_code
3454 , (bl.burdened_cost - NVL(bl.init_burdened_cost, 0))
3455 , ROUND((rates.rate * (bl.burdened_cost - NVL(bl.init_burdened_cost, 0)) )/rates.mau)*rates.mau
3456 )
3457 , NULL) glb1_etc_brdn_cost
3458 , DECODE(ver.wp_flag
3459 , 'N'
3460 , DECODE (g_global1_currency_code
3461 , bl.txn_currency_code
3462 , (bl.txn_revenue - NVL(bl.txn_init_revenue, 0))
3463 , bl.project_currency_code
3464 , (bl.project_revenue - NVL(bl.project_init_revenue, 0))
3465 , bl.projfunc_currency_code
3466 , (bl.revenue - NVL(bl.init_revenue, 0))
3467 , ROUND((rates.rate * (bl.revenue - NVL(bl.init_revenue, 0)) )/rates.mau)*rates.mau
3468 )
3469 , NULL) glb1_etc_revenue
3470 , g_global2_currency_code glb2_currency_code -- g_global2_currency_code glb2_currency_code
3471 , DECODE (g_global2_currency_code
3472 , bl.txn_currency_code
3473 , bl.txn_raw_cost
3474 , bl.project_currency_code
3475 , bl.project_raw_cost
3476 , bl.projfunc_currency_code
3477 , bl.raw_cost
3478 , ROUND((rates.rate2 * raw_cost )/rates.mau2)*rates.mau2
3479 ) glb2_raw_cost
3480 , DECODE (g_global2_currency_code
3481 , bl.txn_currency_code
3482 , bl.txn_burdened_cost
3483 , bl.project_currency_code
3484 , bl.project_burdened_cost
3485 , bl.projfunc_currency_code
3486 , bl.burdened_cost
3487 , ROUND((rates.rate2 * burdened_cost )/rates.mau2)*rates.mau2
3488 ) glb2_BRDN_COST
3489 , DECODE (g_global2_currency_code
3490 , bl.txn_currency_code
3491 , bl.txn_revenue
3492 , bl.project_currency_code
3493 , bl.project_revenue
3494 , bl.projfunc_currency_code
3495 , bl.revenue
3496 , ROUND((rates.rate2 * revenue )/rates.mau2)*rates.mau2
3497 ) glb2_revenue
3498 , DECODE(ver.wp_flag
3499 , 'N'
3500 , DECODE (g_global2_currency_code
3501 , bl.txn_currency_code
3502 , bl.txn_init_raw_cost
3503 , bl.project_currency_code
3504 , bl.project_init_raw_cost
3505 , bl.projfunc_currency_code
3506 , bl.init_raw_cost
3507 , ROUND((rates.rate2 * bl.init_raw_cost )/rates.mau2)*rates.mau2
3508 )
3509 , TO_NUMBER(NULL)) glb2_actual_raw_cost
3510 , DECODE(ver.wp_flag
3511 , 'N'
3512 , DECODE (g_global2_currency_code
3513 , bl.txn_currency_code
3514 , bl.txn_init_burdened_cost
3515 , bl.project_currency_code
3516 , bl.project_init_burdened_cost
3517 , bl.projfunc_currency_code
3518 , bl.init_burdened_cost
3519 , ROUND((rates.rate2 * bl.init_burdened_cost )/rates.mau2)*rates.mau2
3520 )
3521 , TO_NUMBER(NULL)) glb2_actual_brdn_cost
3522 , DECODE(ver.wp_flag
3523 , 'N'
3524 , DECODE (g_global2_currency_code
3525 , bl.txn_currency_code
3526 , bl.txn_init_revenue
3527 , bl.project_currency_code
3528 , bl.project_init_revenue
3529 , bl.projfunc_currency_code
3530 , bl.init_revenue
3531 , ROUND((rates.rate2 * bl.init_revenue )/rates.mau2)*rates.mau2
3532 )
3533 , TO_NUMBER(NULL)) glb2_actual_revenue
3534 , DECODE(ver.wp_flag
3535 , 'N'
3536 , DECODE (g_global2_currency_code
3537 , bl.txn_currency_code
3538 , (bl.txn_raw_cost - NVL(bl.txn_init_raw_cost, 0))
3539 , bl.project_currency_code
3540 , (bl.project_raw_cost - NVL(bl.project_init_raw_cost, 0))
3541 , bl.projfunc_currency_code
3542 , (bl.raw_cost - NVL(bl.init_raw_cost, 0))
3543 , ROUND((rates.rate2 * (bl.raw_cost - NVL(bl.init_raw_cost, 0)) )/rates.mau2)*rates.mau2
3544 )
3545 , TO_NUMBER(NULL)) glb2_etc_raw_cost
3546 , DECODE(ver.wp_flag
3547 , 'N'
3548 , DECODE (g_global2_currency_code
3549 , bl.txn_currency_code
3550 , (bl.txn_burdened_cost - NVL(bl.txn_init_burdened_cost, 0))
3551 , bl.project_currency_code
3552 , (bl.project_burdened_cost - NVL(bl.project_init_burdened_cost, 0))
3553 , bl.projfunc_currency_code
3554 , (bl.burdened_cost - NVL(bl.init_burdened_cost, 0))
3555 , ROUND((rates.rate2 * (bl.burdened_cost - NVL(bl.init_burdened_cost, 0)) )/rates.mau2)*rates.mau2
3556 )
3557 , TO_NUMBER(NULL)) glb2_etc_brdn_cost
3558 , DECODE(ver.wp_flag
3559 , 'N'
3560 , DECODE (g_global2_currency_code
3561 , bl.txn_currency_code
3562 , (bl.txn_revenue - NVL(bl.txn_init_revenue, 0))
3563 , bl.project_currency_code
3564 , (bl.project_revenue - NVL(bl.project_init_revenue, 0))
3565 , bl.projfunc_currency_code
3566 , (bl.revenue - NVL(bl.init_revenue, 0))
3567 , ROUND((rates.rate2 * (bl.revenue - NVL(bl.init_revenue, 0)) )/rates.mau2)*rates.mau2
3568 )
3569 , TO_NUMBER(NULL)) glb2_etc_revenue
3570 , bl.quantity quantity
3571 , DECODE(ver.wp_flag, 'N', bl.init_quantity, TO_NUMBER(NULL)) actual_quantity -- new
3572 , DECODE(ver.wp_flag, 'N', (bl.quantity - NVL(bl.init_quantity, 0)), TO_NUMBER(NULL)) etc_quantity -- new
3573 , TO_DATE(NULL) start_date -- bl.start_date
3574 , TO_DATE(NULL) end_date -- bl.END_date
3575 , ver.time_phased_type_code time_phased_type_code
3576 , ppa.org_id project_org_id
3577 , ppa.carrying_out_organization_id project_organization_id
3578 , DECODE(ver.time_phased_type_code, g_pa_cal_str, 'OF', g_gl_cal_str, 'OF', 'N', 'NTP', 'X') line_type
3579 ,decode(ver.rate_dangling_flag,'Y',-1,1) rate
3580 ,decode(ver.rate_dangling_flag,'Y',-1,1) rate2
3581 , ver.plan_type_code plan_type_code /* 4471527 */
3582 FROM
3583 PA_BUDGET_LINES bl
3584 , pa_resource_asSIGNments ra
3585 , PJI_FM_EXTR_PLNVER3_T ver
3586 , pa_projects_all ppa
3587 , PA_PROJ_ELEM_VER_STRUCTURE pevs
3588 , PJI_FM_AGGR_DLY_RATES_T rates
3589 , pji_time_cal_period_v prd
3590 , PJI_ORG_EXTR_INFO oei
3591 WHERE 1=1
3592 AND ra.resource_asSIGNment_id = bl.resource_asSIGNment_id
3593 AND ra.project_id = ver.PROJECT_ID
3594 AND ra.budget_version_id = ver.plan_version_id
3595 AND ver.project_id = ppa.project_id
3596 AND txn_currency_code IS NOT NULL
3597 AND bl.project_currency_code IS NOT NULL
3598 AND bl.projfunc_currency_code IS NOT NULL
3599 AND pevs.element_version_id = ver.wbs_struct_version_id
3600 AND ver.secondary_rbs_flag = 'N'
3601 AND ver.wp_flag = 'N'
3602 AND oei.org_id = ppa.org_id
3603 AND ver.time_phased_type_code IN (g_pa_cal_str, g_gl_cal_str)
3604 AND DECODE ( ver.time_phased_type_code
3605 , g_pa_cal_str, oei.pa_calendar_id
3606 , g_gl_cal_str, oei.gl_calendar_id) = prd.calendar_id
3607 AND bl.period_name = prd.name
3608 AND rates.time_id = prd.cal_period_id
3609 -- AND DECODE(ra.task_id, 0, pevs.proj_element_id, ra.task_id) = 7474
3610 -- AND ra.rbs_element_id = 10266
3611 -- AND ver.plan_version_id = 2909
3612 AND ver.project_id = pevs.project_id -- Fix for bug : 4149422 in EXTRACT_PLAN_AMTS_PRIRBS_GLC12
3613 UNION ALL
3614 SELECT
3615 ra.project_id
3616 , bl.rowid row_id
3617 , ra.budget_version_id
3618 , -1 time_id
3619 , bl.resource_asSIGNment_id
3620 , DECODE(ra.task_id, 0, pevs.proj_element_id, ra.task_id) wbs_element_id
3621 , NVL(ra.rbs_element_id, -1) rbs_element_id
3622 , ver.wbs_struct_version_id wbs_struct_version_id
3623 , NVL(ver.rbs_struct_version_id, -1) rbs_struct_version_id
3624 , ver.plan_type_id plan_type_id
3625 , ra.rate_based_flag billable_flag
3626 , ra.resource_class_code resource_class
3627 , 2048 period_type_id
3628 , g_all CALENDAR_TYPE
3629 , bl.txn_currency_code txn_currency_code
3630 , bl.txn_raw_cost txn_raw_cost
3631 , bl.txn_burdened_COST txn_brdn_COST
3632 , bl.txn_revenue txn_revenue
3633 , DECODE(ver.wp_flag, 'N' , bl.txn_init_raw_cost, TO_NUMBER(NULL)) txn_actual_raw_cost -- new
3634 , DECODE(ver.wp_flag, 'N' , bl.txn_init_burdened_cost, TO_NUMBER(NULL)) txn_actual_brdn_cost -- new
3635 , DECODE(ver.wp_flag, 'N' , bl.txn_init_revenue, TO_NUMBER(NULL)) txn_actual_revenue -- new
3636 , DECODE(ver.wp_flag, 'N' , (bl.txn_raw_cost - NVL(bl.txn_init_raw_cost, 0)), TO_NUMBER(NULL)) txn_etc_raw_cost -- new
3637 , DECODE(ver.wp_flag, 'N' , (bl.txn_burdened_cost - NVL(bl.txn_init_burdened_cost, 0)), TO_NUMBER(NULL)) txn_etc_brdn_cost -- new
3638 , DECODE(ver.wp_flag, 'N' , (bl.txn_revenue - NVL(bl.txn_init_revenue, 0)), TO_NUMBER(NULL)) txn_etc_revenue -- new
3639 , bl.project_currency_code prj_currency_code
3640 , bl.project_raw_cost prj_raw_cost
3641 , bl.project_burdened_COST prj_BRDN_COST
3642 , bl.project_revenue prj_revenue
3643 , DECODE(ver.wp_flag, 'N' , bl.project_init_raw_cost, TO_NUMBER(NULL)) prj_actual_raw_cost -- new
3644 , DECODE(ver.wp_flag, 'N' , bl.project_init_burdened_cost, TO_NUMBER(NULL)) prj_actual_brdn_cost -- new
3645 , DECODE(ver.wp_flag, 'N' , bl.project_init_revenue, TO_NUMBER(NULL)) prj_actual_revenue -- new
3646 , DECODE(ver.wp_flag, 'N' , (bl.project_raw_cost - NVL(bl.project_init_raw_cost, 0)), TO_NUMBER(NULL)) prj_etc_raw_cost -- new
3647 , DECODE(ver.wp_flag, 'N' , (bl.project_burdened_cost - NVL(bl.project_init_burdened_cost, 0)), TO_NUMBER(NULL)) prj_etc_brdn_cost -- new
3648 , DECODE(ver.wp_flag, 'N' , (bl.project_revenue - NVL(bl.project_init_revenue, 0)), TO_NUMBER(NULL)) prj_etc_revenue -- new
3649 , bl.projfunc_currency_code func_currency_code
3650 , bl.raw_cost func_raw_cost
3651 , bl.burdened_COST func_BRDN_COST
3652 , bl.revenue func_revenue
3653 , DECODE(ver.wp_flag, 'N' , bl.init_raw_cost , TO_NUMBER(NULL)) func_actual_raw_cost -- new
3654 , DECODE(ver.wp_flag, 'N' , bl.init_burdened_cost , TO_NUMBER(NULL)) func_actual_brdn_cost -- new
3655 , DECODE(ver.wp_flag, 'N' , bl.init_revenue , TO_NUMBER(NULL)) func_actual_revenue -- new
3656 , DECODE(ver.wp_flag, 'N' , (bl.raw_cost - NVL(bl.init_raw_cost, 0)), TO_NUMBER(NULL)) func_etc_raw_cost -- new
3657 , DECODE(ver.wp_flag, 'N' , (bl.burdened_cost - NVL(bl.init_burdened_cost, 0)), TO_NUMBER(NULL)) func_etc_brdn_cost -- new
3658 , DECODE(ver.wp_flag, 'N' , (bl.revenue - NVL(bl.init_revenue, 0)), TO_NUMBER(NULL)) func_etc_revenue -- new
3659 , g_global1_currency_code glb1_currency_code -- g_global1_currency_code glb1_currency_code
3660 , DECODE (g_global1_currency_code
3661 , bl.txn_currency_code
3662 , bl.txn_raw_cost
3663 , bl.project_currency_code
3664 , bl.project_raw_cost
3665 , bl.projfunc_currency_code
3666 , bl.raw_cost
3667 , ROUND((rates.rate * raw_cost )/rates.mau)*rates.mau
3668 ) glb1_raw_cost
3669 , DECODE (g_global1_currency_code
3670 , bl.txn_currency_code
3671 , bl.txn_burdened_cost
3672 , bl.project_currency_code
3673 , bl.project_burdened_cost
3674 , bl.projfunc_currency_code
3675 , bl.burdened_cost
3676 , ROUND((rates.rate * burdened_cost )/rates.mau)*rates.mau
3677 ) glb1_BRDN_COST
3678 , DECODE (g_global1_currency_code
3679 , bl.txn_currency_code
3680 , bl.txn_revenue
3681 , bl.project_currency_code
3682 , bl.project_revenue
3683 , bl.projfunc_currency_code
3684 , bl.revenue
3685 , ROUND((rates.rate * revenue )/rates.mau)*rates.mau
3686 ) glb1_revenue
3687 , DECODE(ver.wp_flag
3688 , 'N'
3689 , DECODE (g_global1_currency_code
3690 , bl.txn_currency_code
3691 , bl.txn_init_raw_cost
3692 , bl.project_currency_code
3693 , bl.project_init_raw_cost
3694 , bl.projfunc_currency_code
3695 , bl.init_raw_cost
3696 , ROUND((rates.rate * bl.init_raw_cost )/rates.mau)*rates.mau
3697 )
3698 , NULL) glb1_actual_raw_cost
3699 , DECODE(ver.wp_flag
3700 , 'N'
3701 , DECODE (g_global1_currency_code
3702 , bl.txn_currency_code
3703 , bl.txn_init_burdened_cost
3704 , bl.project_currency_code
3705 , bl.project_init_burdened_cost
3706 , bl.projfunc_currency_code
3707 , bl.init_burdened_cost
3708 , ROUND((rates.rate * bl.init_burdened_cost )/rates.mau)*rates.mau
3709 )
3710 , NULL) glb1_actual_brdn_cost
3711 , DECODE(ver.wp_flag
3712 , 'N'
3713 , DECODE (g_global1_currency_code
3714 , bl.txn_currency_code
3715 , bl.txn_init_revenue
3716 , bl.project_currency_code
3717 , bl.project_init_revenue
3718 , bl.projfunc_currency_code
3719 , bl.init_revenue
3720 , ROUND((rates.rate * bl.init_revenue )/rates.mau)*rates.mau
3721 )
3722 , NULL) glb1_actual_revenue
3723 , DECODE(ver.wp_flag
3724 , 'N'
3725 , DECODE (g_global1_currency_code
3726 , bl.txn_currency_code
3727 , (bl.txn_raw_cost - NVL(bl.txn_init_raw_cost, 0))
3728 , bl.project_currency_code
3729 , (bl.project_raw_cost - NVL(bl.project_init_raw_cost, 0))
3730 , bl.projfunc_currency_code
3731 , (bl.raw_cost - NVL(bl.init_raw_cost, 0))
3732 , ROUND((rates.rate * (bl.raw_cost - NVL(bl.init_raw_cost, 0)) )/rates.mau)*rates.mau
3733 )
3734 , NULL) glb1_etc_raw_cost
3735 , DECODE(ver.wp_flag
3736 , 'N'
3737 , DECODE (g_global1_currency_code
3738 , bl.txn_currency_code
3739 , (bl.txn_burdened_cost - NVL(bl.txn_init_burdened_cost, 0))
3740 , bl.project_currency_code
3741 , (bl.project_burdened_cost - NVL(bl.project_init_burdened_cost, 0))
3742 , bl.projfunc_currency_code
3743 , (bl.burdened_cost - NVL(bl.init_burdened_cost, 0))
3744 , ROUND((rates.rate * (bl.burdened_cost - NVL(bl.init_burdened_cost, 0)) )/rates.mau)*rates.mau
3745 )
3746 , NULL) glb1_etc_brdn_cost
3747 , DECODE(ver.wp_flag
3748 , 'N'
3749 , DECODE (g_global1_currency_code
3750 , bl.txn_currency_code
3751 , (bl.txn_revenue - NVL(bl.txn_init_revenue, 0))
3752 , bl.project_currency_code
3753 , (bl.project_revenue - NVL(bl.project_init_revenue, 0))
3754 , bl.projfunc_currency_code
3755 , (bl.revenue - NVL(bl.init_revenue, 0))
3756 , ROUND((rates.rate * (bl.revenue - NVL(bl.init_revenue, 0)) )/rates.mau)*rates.mau
3757 )
3758 , NULL) glb1_etc_revenue
3759 , g_global2_currency_code glb2_currency_code -- g_global2_currency_code glb2_currency_code
3760 , DECODE (g_global2_currency_code
3761 , bl.txn_currency_code
3762 , bl.txn_raw_cost
3763 , bl.project_currency_code
3764 , bl.project_raw_cost
3765 , bl.projfunc_currency_code
3766 , bl.raw_cost
3767 , ROUND((rates.rate2 * raw_cost )/rates.mau2)*rates.mau2
3768 ) glb2_raw_cost
3769 , DECODE (g_global2_currency_code
3770 , bl.txn_currency_code
3771 , bl.txn_burdened_cost
3772 , bl.project_currency_code
3773 , bl.project_burdened_cost
3774 , bl.projfunc_currency_code
3775 , bl.burdened_cost
3776 , ROUND((rates.rate2 * burdened_cost )/rates.mau2)*rates.mau2
3777 ) glb2_BRDN_COST
3778 , DECODE (g_global2_currency_code
3779 , bl.txn_currency_code
3780 , bl.txn_revenue
3781 , bl.project_currency_code
3782 , bl.project_revenue
3783 , bl.projfunc_currency_code
3784 , bl.revenue
3785 , ROUND((rates.rate2 * revenue )/rates.mau2)*rates.mau2
3786 ) glb2_revenue
3787 , DECODE(ver.wp_flag
3788 , 'N'
3789 , DECODE (g_global2_currency_code
3790 , bl.txn_currency_code
3791 , bl.txn_init_raw_cost
3792 , bl.project_currency_code
3793 , bl.project_init_raw_cost
3794 , bl.projfunc_currency_code
3795 , bl.init_raw_cost
3796 , ROUND((rates.rate2 * bl.init_raw_cost )/rates.mau2)*rates.mau2
3797 )
3798 , TO_NUMBER(NULL)) glb2_actual_raw_cost
3799 , DECODE(ver.wp_flag
3800 , 'N'
3801 , DECODE (g_global2_currency_code
3802 , bl.txn_currency_code
3803 , bl.txn_init_burdened_cost
3804 , bl.project_currency_code
3805 , bl.project_init_burdened_cost
3806 , bl.projfunc_currency_code
3807 , bl.init_burdened_cost
3808 , ROUND((rates.rate2 * bl.init_burdened_cost )/rates.mau2)*rates.mau2
3809 )
3810 , TO_NUMBER(NULL)) glb2_actual_brdn_cost
3811 , DECODE(ver.wp_flag
3812 , 'N'
3813 , DECODE (g_global2_currency_code
3814 , bl.txn_currency_code
3815 , bl.txn_init_revenue
3816 , bl.project_currency_code
3817 , bl.project_init_revenue
3818 , bl.projfunc_currency_code
3819 , bl.init_revenue
3820 , ROUND((rates.rate2 * bl.init_revenue )/rates.mau2)*rates.mau2
3821 )
3822 , TO_NUMBER(NULL)) glb2_actual_revenue
3823 , DECODE(ver.wp_flag
3824 , 'N'
3825 , DECODE (g_global2_currency_code
3826 , bl.txn_currency_code
3827 , (bl.txn_raw_cost - NVL(bl.txn_init_raw_cost, 0))
3828 , bl.project_currency_code
3829 , (bl.project_raw_cost - NVL(bl.project_init_raw_cost, 0))
3830 , bl.projfunc_currency_code
3831 , (bl.raw_cost - NVL(bl.init_raw_cost, 0))
3832 , ROUND((rates.rate2 * (bl.raw_cost - NVL(bl.init_raw_cost, 0)) )/rates.mau2)*rates.mau2
3833 )
3834 , TO_NUMBER(NULL)) glb2_etc_raw_cost
3835 , DECODE(ver.wp_flag
3836 , 'N'
3837 , DECODE (g_global2_currency_code
3838 , bl.txn_currency_code
3839 , (bl.txn_burdened_cost - NVL(bl.txn_init_burdened_cost, 0))
3840 , bl.project_currency_code
3841 , (bl.project_burdened_cost - NVL(bl.project_init_burdened_cost, 0))
3842 , bl.projfunc_currency_code
3843 , (bl.burdened_cost - NVL(bl.init_burdened_cost, 0))
3844 , ROUND((rates.rate2 * (bl.burdened_cost - NVL(bl.init_burdened_cost, 0)) )/rates.mau2)*rates.mau2
3845 )
3846 , TO_NUMBER(NULL)) glb2_etc_brdn_cost
3847 , DECODE(ver.wp_flag
3848 , 'N'
3849 , DECODE (g_global2_currency_code
3850 , bl.txn_currency_code
3851 , (bl.txn_revenue - NVL(bl.txn_init_revenue, 0))
3852 , bl.project_currency_code
3853 , (bl.project_revenue - NVL(bl.project_init_revenue, 0))
3854 , bl.projfunc_currency_code
3855 , (bl.revenue - NVL(bl.init_revenue, 0))
3856 , ROUND((rates.rate2 * (bl.revenue - NVL(bl.init_revenue, 0)) )/rates.mau2)*rates.mau2
3857 )
3858 , TO_NUMBER(NULL)) glb2_etc_revenue
3859 , bl.quantity quantity
3860 , DECODE(ver.wp_flag, 'N' , bl.init_quantity, TO_NUMBER(NULL)) actual_quantity -- new
3861 , DECODE(ver.wp_flag, 'N' , (bl.quantity - NVL(bl.init_quantity, 0)), TO_NUMBER(NULL)) etc_quantity -- new
3862 , ra.planning_start_date
3863 , ra.planning_END_date
3864 , ver.time_phased_type_code time_phased_type_code
3865 , ppa.org_id project_org_id
3866 , ppa.carrying_out_organization_id project_organization_id
3867 , 'NTP' line_type
3868 ,decode(ver.rate_dangling_flag,'Y',-1,1) rate
3869 ,decode(ver.rate_dangling_flag,'Y',-1,1) rate2
3870 , ver.plan_type_code plan_type_code /* 4471527 */
3871 FROM
3872 PA_BUDGET_LINES bl
3873 , pa_resource_asSIGNments ra
3874 , PJI_FM_EXTR_PLNVER3_T ver
3875 , pa_projects_all ppa
3876 , PA_PROJ_ELEM_VER_STRUCTURE pevs
3877 , PJI_FM_AGGR_DLY_RATES_T rates
3878 WHERE 1=1
3879 AND ra.resource_asSIGNment_id = bl.resource_asSIGNment_id
3880 AND ra.project_id = ver.PROJECT_ID
3881 AND ra.budget_version_id = ver.plan_version_id
3882 AND ver.project_id = ppa.project_id
3883 AND txn_currency_code IS NOT NULL
3884 AND bl.project_currency_code IS NOT NULL
3885 AND bl.projfunc_currency_code IS NOT NULL
3886 AND ver.project_id = pevs.project_id -- Fix for bug : 4149422 in EXTRACT_PLAN_AMTS_PRIRBS_GLC12
3887 AND pevs.element_version_id = ver.wbs_struct_version_id
3888 AND ver.secondary_rbs_flag = 'N'
3889 AND ver.wp_flag = 'N'
3890 AND ver.time_phased_type_code = 'N'
3891 AND rates.time_id = DECODE ( g_currency_conversion_rule
3892 , 'S'
3893 , TO_NUMBER(to_CHAR(ra.planning_start_date, 'J'))
3894 , 'E'
3895 , TO_NUMBER(to_CHAR(ra.planning_end_date, 'J')) )
3896 ) spread_bl
3897 ---- end of third inline view 'spread_bl'...........
3898 ,
3899 (
3900 select 1 INVERT_ID from dual union all
3901 select 2 INVERT_ID from dual where PJI_UTILS.GET_SETUP_PARAMETER('GLOBAL_CURR2_FLAG') = 'Y' union all
3902 select 4 INVERT_ID from dual union all
3903 select 8 INVERT_ID from dual union all
3904 select 16 INVERT_ID from dual where PJI_UTILS.GET_SETUP_PARAMETER('TXN_CURR_FLAG') = 'Y'
3905 ) invert
3906 ) collapse_bl -- WHERE wbs_element_id = 7474 -- and rbs_element_id = 10266 -- and budget_version_id = 2909
3907 ---- End of second inline view 'collapse_bl' ..........
3908 GROUP BY
3909 collapse_bl.PROJECT_ID
3910 , collapse_bl.time_id
3911 , collapse_bl.WBS_ELEMENT_ID
3912 -- , time_id, period_type_id, calendar type.., slice type, rollpu flag...
3913 , collapse_bl.RBS_ELEMENT_ID
3914 , collapse_bl.RBS_STRUCT_VERSION_ID
3915 , collapse_bl.plan_type_id
3916 , collapse_bl.plan_version_id
3917 , collapse_bl.PROJECT_ORGANIZATION_ID
3918 , collapse_bl.PROJECT_ORG_ID
3919 , collapse_bl.RESOURCE_ASSIGNMENT_ID
3920 , collapse_bl.BILLABLE_FLAG
3921 , collapse_bl.RESOURCE_CLASS
3922 , collapse_bl.TIME_PHASED_TYPE_CODE
3923 , collapse_bl.CURRENCY_CODE
3924 , collapse_bl.start_date
3925 , collapse_bl.end_date
3926 , collapse_bl.row_id
3927 , collapse_bl.line_type
3928 , collapse_bl.calendar_type
3929 , collapse_bl.period_type_id
3930 ,collapse_bl.rate
3931 ,collapse_bl.rate2
3932 ,collapse_bl.plan_type_code /* 4471527 */
3933 ) plr
3934 ---- End of first inline view plr ..........
3935 , pji_fm_extr_plnver3_t vers
3936 WHERE 1=1
3937 AND vers.plan_version_id = plr.plan_version_id
3938 AND vers.plan_type_code = plr.plan_type_code /*4471527 */
3939 AND NVL(vers.rbs_struct_version_id, -1) = plr.rbs_struct_version_id
3940 -- AND plr.CURR_RECORD_TYPE IS NOT NULL
3941 AND plr.currency_code IS NOT NULL
3942 GROUP BY
3943 plr.PROJECT_ID
3944 , plr.PROJECT_ORG_ID
3945 , plr.project_ORGANIZATION_ID
3946 , plr.WBS_ELEMENT_ID
3947 , plr.time_id
3948 , plr.period_type_id
3949 , plr.CALENDAR_TYPE
3950 , plr.CURR_RECORD_TYPE -- curr code missing.
3951 , plr.currency_code
3952 , plr.RBS_ELEMENT_ID
3953 , plr.RBS_STRUCT_VERSION_ID
3954 , plr.plan_version_id
3955 , plr.plan_type_id
3956 , plr.start_date
3957 , plr.end_date
3958 , plr.line_type
3959 ,decode(sign(plr.rate),-1,'Y',NULL) ||decode(sign(plr.rate2),-1,'Y',NULL)
3960 , plr.plan_type_code; /* 4471527 */
3961
3962 print_time ( ' EXTRACT_PLAN_AMTS_PRIRBS_GLC12 end. Inserted rows # is: ' || SQL%ROWCOUNT );
3963
3964 EXCEPTION
3965 WHEN OTHERS THEN
3966 print_time('EXTRACT_PLAN_AMTS_PRIRBS_GLC12 : Exception ' || SQLERRM );
3967 FND_MSG_PUB.add_exc_msg( p_pkg_name => g_package_name ,
3968 p_procedure_name => 'EXTRACT_PLAN_AMTS_PRIRBS_GLC12');
3969 RAISE;
3970 END;
3971
3972
3973 PROCEDURE REVERSE_PLAN_AMTS IS
3974 BEGIN
3975
3976 print_time ( '.....Begin REVERSE_PLAN_AMTS. ' );
3977
3978 INSERT INTO pji_fp_aggr_pjp1_t fact
3979 (
3980 WORKER_ID
3981 , PRG_LEVEL
3982 , PROJECT_ID
3983 , PROJECT_ORG_ID
3984 , PROJECT_ORGANIZATION_ID
3985 , PROJECT_ELEMENT_ID
3986 , TIME_ID
3987 , PERIOD_TYPE_ID
3988 , CALENDAR_TYPE
3989 , RBS_AGGR_LEVEL
3990 , WBS_ROLLUP_FLAG
3991 , PRG_ROLLUP_FLAG
3992 , CURR_RECORD_TYPE_ID
3993 , CURRENCY_CODE
3994 , RBS_ELEMENT_ID
3995 , RBS_VERSION_ID
3996 , PLAN_VERSION_ID
3997 , PLAN_TYPE_ID
3998 , RAW_COST
3999 , BRDN_COST
4000 , REVENUE
4001 , BILL_RAW_COST
4002 , BILL_BRDN_COST
4003 , BILL_LABOR_RAW_COST
4004 , BILL_LABOR_BRDN_COST
4005 , BILL_LABOR_HRS
4006 , EQUIPMENT_RAW_COST
4007 , EQUIPMENT_BRDN_COST
4008 , CAPITALIZABLE_RAW_COST
4009 , CAPITALIZABLE_BRDN_COST
4010 , LABOR_RAW_COST
4011 , LABOR_BRDN_COST
4012 , LABOR_HRS
4013 , LABOR_REVENUE
4014 , EQUIPMENT_HOURS
4015 , BILLABLE_EQUIPMENT_HOURS
4016 , SUP_INV_COMMITTED_COST
4017 , PO_COMMITTED_COST
4018 , PR_COMMITTED_COST
4019 , OTH_COMMITTED_COST
4020 , ACT_LABOR_HRS
4021 , ACT_EQUIP_HRS
4022 , ACT_LABOR_BRDN_COST
4023 , ACT_EQUIP_BRDN_COST
4024 , ACT_BRDN_COST
4025 , ACT_RAW_COST
4026 , ACT_REVENUE
4027 , ACT_LABOR_RAW_COST
4028 , ACT_EQUIP_RAW_COST
4029 , ETC_LABOR_HRS
4030 , ETC_EQUIP_HRS
4031 , ETC_LABOR_BRDN_COST
4032 , ETC_EQUIP_BRDN_COST
4033 , ETC_BRDN_COST
4034 , ETC_RAW_COST
4035 , ETC_LABOR_RAW_COST
4036 , ETC_EQUIP_RAW_COST
4037 , CUSTOM1
4038 , CUSTOM2
4039 , CUSTOM3
4040 , CUSTOM4
4041 , CUSTOM5
4042 , CUSTOM6
4043 , CUSTOM7
4044 , CUSTOM8
4045 , CUSTOM9
4046 , CUSTOM10
4047 , CUSTOM11
4048 , CUSTOM12
4049 , CUSTOM13
4050 , CUSTOM14
4051 , CUSTOM15
4052 , LINE_TYPE
4053 , PLAN_TYPE_CODE
4054 )
4055 SELECT -- Reversal from fact for primary slice.
4056 g_worker_id
4057 , g_default_prg_level
4058 , fact.PROJECT_ID
4059 , fact.PROJECT_ORG_ID
4060 , fact.PROJECT_ORGANIZATION_ID
4061 , fact.PROJECT_ELEMENT_ID
4062 , fact.TIME_ID
4063 , fact.PERIOD_TYPE_ID
4064 , fact.CALENDAR_TYPE
4065 , fact.RBS_AGGR_LEVEL
4066 , fact.WBS_ROLLUP_FLAG
4067 , fact.PRG_ROLLUP_FLAG
4068 , fact.CURR_RECORD_TYPE_ID CURR_RECORD_TYPE_ID
4069 , fact.CURRENCY_CODE
4070 , fact.RBS_ELEMENT_ID
4071 , fact.RBS_VERSION_ID
4072 , fact.PLAN_VERSION_ID
4073 , fact.PLAN_TYPE_ID
4074 , -fact.RAW_COST
4075 , -fact.BRDN_COST
4076 , -fact.REVENUE
4077 , -fact.BILL_RAW_COST
4078 , -fact.BILL_BRDN_COST
4079 , -fact.BILL_LABOR_RAW_COST
4080 , -fact.BILL_LABOR_BRDN_COST
4081 , -fact.BILL_LABOR_HRS
4082 , -fact.EQUIPMENT_RAW_COST
4083 , -fact.EQUIPMENT_BRDN_COST
4084 , -fact.CAPITALIZABLE_RAW_COST
4085 , -fact.CAPITALIZABLE_BRDN_COST
4086 , -fact.LABOR_RAW_COST
4087 , -fact.LABOR_BRDN_COST
4088 , -fact.LABOR_HRS
4089 , -fact.LABOR_REVENUE
4090 , -fact.EQUIPMENT_HOURS
4091 , -fact.BILLABLE_EQUIPMENT_HOURS
4092 , -fact.SUP_INV_COMMITTED_COST
4093 , -fact.PO_COMMITTED_COST
4094 , -fact.PR_COMMITTED_COST
4095 , -fact.OTH_COMMITTED_COST
4096 , - fact.ACT_LABOR_HRS
4097 , -fact.ACT_EQUIP_HRS
4098 , -fact.ACT_LABOR_BRDN_COST
4099 , -fact.ACT_EQUIP_BRDN_COST
4100 , -fact.ACT_BRDN_COST
4101 , -fact.ACT_RAW_COST
4102 , -fact.ACT_REVENUE
4103 , -fact.ACT_LABOR_RAW_COST
4104 , -fact.ACT_EQUIP_RAW_COST
4105 , -fact.ETC_LABOR_HRS
4106 , -fact.ETC_EQUIP_HRS
4107 , -fact.ETC_LABOR_BRDN_COST
4108 , -fact.ETC_EQUIP_BRDN_COST
4109 , -fact.ETC_BRDN_COST
4110 , -fact.ETC_RAW_COST
4111 , -fact.ETC_LABOR_RAW_COST
4112 , -fact.ETC_EQUIP_RAW_COST
4113 , -fact.CUSTOM1
4114 , -fact.CUSTOM2
4115 , -fact.CUSTOM3
4116 , -fact.CUSTOM4
4117 , -fact.CUSTOM5
4118 , -fact.CUSTOM6
4119 , -fact.CUSTOM7
4120 , -fact.CUSTOM8
4121 , -fact.CUSTOM9
4122 , -fact.CUSTOM10
4123 , -fact.CUSTOM11
4124 , -fact.CUSTOM12
4125 , -fact.CUSTOM13
4126 , -fact.CUSTOM14
4127 , -fact.CUSTOM15
4128 , g_ntp_period_name
4129 , fact.plan_type_code /* 4471527 */
4130 FROM
4131 pji_fp_xbs_accum_f fact
4132 , pji_fm_extr_plnver3_t ver
4133 WHERE 1=1
4134 AND fact.plan_version_id = ver.plan_version_id
4135 AND fact.plan_type_code = ver.plan_type_code /* 4471527 */
4136 AND fact.project_id = ver.project_id
4137 AND fact.rbs_aggr_level = g_lowest_level
4138 AND fact.wbs_rollup_flag = 'N'
4139 AND ver.secondary_rbs_flag = 'N'
4140 AND (
4141 ((ver.time_phased_type_code IN ('P', 'G')) AND (fact.period_type_id = 32))
4142 OR ((ver.time_phased_type_code = 'N') AND (fact.period_type_id = 2048))
4143 );
4144
4145 print_time ( '.....End REVERSE_PLAN_AMTS. # rows = ' || SQL%ROWCOUNT );
4146
4147 EXCEPTION
4148 WHEN OTHERS THEN
4149 print_time('REVERSE_PLAN_AMTS : Exception ' || SQLERRM );
4150 FND_MSG_PUB.add_exc_msg( p_pkg_name => g_package_name ,
4151 p_procedure_name => 'REVERSE_PLAN_AMTS');
4152 RAISE;
4153 END;
4154
4155
4156 PROCEDURE DELETE_PRI_NONTIMEPH_ENTDAMTS IS
4157 BEGIN
4158
4159 DELETE FROM pji_fp_aggr_pjp1_t
4160 WHERE 1=1
4161 AND period_type_id = 32
4162 AND time_id = -1
4163 AND worker_id = g_worker_id;
4164
4165 EXCEPTION
4166 WHEN OTHERS THEN
4167 FND_MSG_PUB.add_exc_msg( p_pkg_name => g_package_name ,
4168 p_procedure_name => 'RETRIEVE_RL_SECSLC_TIMEPH');
4169 RAISE;
4170 END;
4171
4172
4173 --
4174 -- Inserts into FP reporting lines fact the data in the interim pjp1 table.
4175 --
4176 PROCEDURE INSERT_INTO_FP_FACT ( p_slice_type IN VARCHAR2 := NULL) IS
4177 l_last_update_date date := SYSDATE;
4178 l_last_updated_by NUMBER := FND_GLOBAL.USER_ID;
4179 l_creation_date date := SYSDATE;
4180 l_created_by NUMBER := FND_GLOBAL.USER_ID;
4181 l_last_update_login NUMBER := FND_GLOBAL.LOGIN_ID;
4182 BEGIN
4183
4184 IF ( (p_slice_type = 'PRI') OR (p_slice_type IS NULL) ) THEN
4185
4186 MERGE_INTO_FP_FACT;
4187
4188 ELSIF (p_slice_type = 'SEC') THEN
4189
4190 DELETE FROM pji_fp_aggr_pjp1_t
4191 WHERE line_type = 'OF'
4192 AND worker_id = g_worker_id; -- Data in entered calendar should not be rolled up.
4193
4194 MERGE_INTO_FP_FACT;
4195
4196 END IF;
4197
4198 EXCEPTION
4199 WHEN OTHERS THEN
4200 FND_MSG_PUB.add_exc_msg( p_pkg_name => g_package_name ,
4201 p_procedure_name => 'INSERT_INTO_FP_FACT');
4202 RAISE;
4203 END;
4204
4205
4206 PROCEDURE GET_PRI_SLICE_DATA(
4207 p_fp_version_ids IN SYSTEM.pa_num_tbl_type := pji_empty_num_tbl
4208 , p_commit IN VARCHAR2 := 'F') IS
4209 BEGIN
4210
4211 FORALL I IN p_fp_version_ids.FIRST..p_fp_version_ids.LAST
4212 INSERT INTO PJI_FP_AGGR_PJP1_T
4213 (
4214 WORKER_ID
4215 , PROJECT_ID
4216 , PROJECT_ORG_ID
4217 , PROJECT_ORGANIZATION_ID
4218 -- , PARTITION_ID
4219 , PROJECT_ELEMENT_ID
4220 , TIME_ID
4221 , PERIOD_TYPE_ID
4222 , CALENDAR_TYPE
4223 , RBS_AGGR_LEVEL
4224 , WBS_ROLLUP_FLAG
4225 , PRG_ROLLUP_FLAG
4226 , CURR_RECORD_TYPE_ID
4227 , CURRENCY_CODE
4228 , RBS_ELEMENT_ID
4229 , RBS_VERSION_ID
4230 , PLAN_VERSION_ID
4231 , PLAN_TYPE_ID
4232 , RAW_COST
4233 , BRDN_COST
4234 , REVENUE
4235 , BILL_RAW_COST
4236 , BILL_BRDN_COST
4237 , BILL_LABOR_RAW_COST
4238 , BILL_LABOR_BRDN_COST
4239 , BILL_LABOR_HRS
4240 , EQUIPMENT_RAW_COST
4241 , EQUIPMENT_BRDN_COST
4242 , CAPITALIZABLE_RAW_COST
4243 , CAPITALIZABLE_BRDN_COST
4244 , LABOR_RAW_COST
4245 , LABOR_BRDN_COST
4246 , LABOR_HRS
4247 , LABOR_REVENUE
4248 , EQUIPMENT_HOURS
4249 , BILLABLE_EQUIPMENT_HOURS
4250 , SUP_INV_COMMITTED_COST
4251 , PO_COMMITTED_COST
4252 , PR_COMMITTED_COST
4253 , OTH_COMMITTED_COST
4254 , ACT_LABOR_HRS
4255 , ACT_EQUIP_HRS
4256 , ACT_LABOR_BRDN_COST
4257 , ACT_EQUIP_BRDN_COST
4258 , ACT_BRDN_COST
4259 , ACT_RAW_COST
4260 , ACT_REVENUE
4261 , ACT_LABOR_RAW_COST
4262 , ACT_EQUIP_RAW_COST
4263 , ETC_LABOR_HRS
4264 , ETC_EQUIP_HRS
4265 , ETC_LABOR_BRDN_COST
4266 , ETC_EQUIP_BRDN_COST
4267 , ETC_BRDN_COST
4268 , ETC_RAW_COST
4269 , ETC_LABOR_RAW_COST
4270 , ETC_EQUIP_RAW_COST
4271 , CUSTOM1
4272 , CUSTOM2
4273 , CUSTOM3
4274 , CUSTOM4
4275 , CUSTOM5
4276 , CUSTOM6
4277 , CUSTOM7
4278 , CUSTOM8
4279 , CUSTOM9
4280 , CUSTOM10
4281 , CUSTOM11
4282 , CUSTOM12
4283 , CUSTOM13
4284 , CUSTOM14
4285 , CUSTOM15
4286 , PRG_LEVEL
4287 , PLAN_TYPE_CODE /* 4471527 */
4288 )
4289 (
4290 SELECT
4291 g_worker_id
4292 , rl.PROJECT_ID
4293 , rl.PROJECT_ORG_ID
4294 , rl.PROJECT_ORGANIZATION_ID
4295 -- , rl.PARTITION_ID
4296 , rl.PROJECT_ELEMENT_ID
4297 , rl.TIME_ID
4298 , rl.PERIOD_TYPE_ID
4299 , rl.CALENDAR_TYPE
4300 , rl.RBS_AGGR_LEVEL
4301 , rl.WBS_ROLLUP_FLAG
4302 , rl.PRG_ROLLUP_FLAG
4303 , rl.CURR_RECORD_TYPE_ID
4304 , rl.CURRENCY_CODE
4305 , rl.RBS_ELEMENT_ID
4306 , rl.RBS_VERSION_ID
4307 , rl.PLAN_VERSION_ID
4308 , rl.PLAN_TYPE_ID
4309 , rl.RAW_COST
4310 , rl.BRDN_COST
4311 , rl.REVENUE
4312 , rl.BILL_RAW_COST
4313 , rl.BILL_BRDN_COST
4314 , rl.BILL_LABOR_RAW_COST
4315 , rl.BILL_LABOR_BRDN_COST
4316 , rl.BILL_LABOR_HRS
4317 , rl.EQUIPMENT_RAW_COST
4318 , rl.EQUIPMENT_BRDN_COST
4319 , rl.CAPITALIZABLE_RAW_COST
4320 , rl.CAPITALIZABLE_BRDN_COST
4321 , rl.LABOR_RAW_COST
4322 , rl.LABOR_BRDN_COST
4323 , rl.LABOR_HRS
4324 , rl.LABOR_REVENUE
4325 , rl.EQUIPMENT_HOURS
4326 , rl.BILLABLE_EQUIPMENT_HOURS
4327 , rl.SUP_INV_COMMITTED_COST
4328 , rl.PO_COMMITTED_COST
4329 , rl.PR_COMMITTED_COST
4330 , rl.OTH_COMMITTED_COST
4331 , rl.ACT_LABOR_HRS
4332 , rl.ACT_EQUIP_HRS
4333 , rl.ACT_LABOR_BRDN_COST
4334 , rl.ACT_EQUIP_BRDN_COST
4335 , rl.ACT_BRDN_COST
4336 , rl.ACT_RAW_COST
4337 , rl.ACT_REVENUE
4338 , rl.ACT_LABOR_RAW_COST
4339 , rl.ACT_EQUIP_RAW_COST
4340 , rl.ETC_LABOR_HRS
4341 , rl.ETC_EQUIP_HRS
4342 , rl.ETC_LABOR_BRDN_COST
4343 , rl.ETC_EQUIP_BRDN_COST
4344 , rl.ETC_BRDN_COST
4345 , rl.ETC_RAW_COST
4346 , rl.ETC_LABOR_RAW_COST
4347 , rl.ETC_EQUIP_RAW_COST
4348 , rl.CUSTOM1
4349 , rl.CUSTOM2
4350 , rl.CUSTOM3
4351 , rl.CUSTOM4
4352 , rl.CUSTOM5
4353 , rl.CUSTOM6
4354 , rl.CUSTOM7
4355 , rl.CUSTOM8
4356 , rl.CUSTOM9
4357 , rl.CUSTOM10
4358 , rl.CUSTOM11
4359 , rl.CUSTOM12
4360 , rl.CUSTOM13
4361 , rl.CUSTOM14
4362 , rl.CUSTOM15
4363 , g_default_prg_level
4364 , rl.PLAN_TYPE_CODE /* 4471527 */
4365 FROM
4366 pji_fp_xbs_accum_f rl
4367 , pa_budget_versions bv -- @pjdev115 bv
4368 , pa_proj_fp_options fpo -- @pjdev115 fpo
4369 WHERE
4370 rl.project_id = bv.project_id
4371 AND bv.version_type IS NOT NULL
4372 AND bv.fin_plan_type_id IS NOT NULL
4373 AND fpo.project_id = bv.project_id
4374 AND bv.fin_plan_type_id = fpo.fin_plan_type_id
4375 AND bv.budget_version_id = fpo.fin_plan_version_id
4376 AND fpo.fin_plan_option_level_code = 'PLAN_VERSION'
4377 AND rl.calendar_type =
4378 DECODE( bv.version_type
4379 , g_all_timeph_code, fpo.all_time_phased_code
4380 , g_cost_timeph_code, fpo.cost_time_phased_code
4381 , g_rev_timeph_code, fpo.revenue_time_phased_code
4382 )
4383 AND rl.plan_version_id = p_fp_version_ids(i));
4384
4385
4386 EXCEPTION
4387 WHEN OTHERS THEN
4388 FND_MSG_PUB.add_exc_msg( p_pkg_name => g_package_name ,
4389 p_procedure_name => 'GET_PRI_SLICE_DATA');
4390 RAISE;
4391 END;
4392
4393
4394 PROCEDURE INSERT_ACTUALS_FROM_PREVPLAN IS
4395 BEGIN
4396
4397 NULL;
4398
4399 EXCEPTION
4400 WHEN OTHERS THEN
4401 FND_MSG_PUB.add_exc_msg( p_pkg_name => g_package_name ,
4402 p_procedure_name => 'GET_PRI_SLICE_DATA');
4403 RAISE;
4404 END;
4405
4406
4407 PROCEDURE UPDATE_ACTUALS_TO_NULL IS
4408 BEGIN
4409
4410 UPDATE PJI_FM_EXTR_PLAN_LINES bl
4411 SET
4412 bl.act_txn_raw_cost = NULL
4413 , bl.act_txn_burdened_cost = NULL
4414 , bl.act_txn_revenue = NULL
4415 , bl.act_prj_raw_cost = NULL
4416 , bl.act_prj_burdened_cost = NULL
4417 , bl.act_prj_revenue = NULL
4418 , bl.act_pfc_raw_cost = NULL
4419 , bl.act_pfc_burdened_cost = NULL
4420 , bl.act_pfc_revenue = NULL
4421 , bl.act_quantity = NULL
4422 WHERE 1=1
4423 AND bl.rowid IN ( SELECT extr_lines_rowid FROM pji_fp_rmap_fpr_update_t);
4424
4425 EXCEPTION
4426 WHEN OTHERS THEN
4427 FND_MSG_PUB.add_exc_msg( p_pkg_name => g_package_name ,
4428 p_procedure_name => 'UPDATE_ACTUALS_TO_NULL');
4429 RAISE;
4430 END;
4431
4432 -- RETRIEVE_DELTA_SLICE
4433 PROCEDURE RETRIEVE_DELTA_SLICE IS
4434 l_count NUMBER := NULL;
4435
4436 l_count_temp NUMBER := NULL;
4437 l_max_plnver_id NUMBER := NULL;
4438
4439 CURSOR c_struct_ver_ids IS
4440 SELECT wbs_struct_version_id
4441 FROM PJI_FM_EXTR_PLNVER3_T;
4442
4443 BEGIN
4444
4445 print_time('........RETRIEVE_DELTA_SLICE : Begin.' );
4446
4447 INSERT_NTP_CAL_RECORD ( x_max_plnver_id => l_max_plnver_id );
4448
4449 IF (l_max_plnver_id IS NULL) THEN
4450 RETURN;
4451 END IF;
4452
4453 INSERT INTO PJI_FP_AGGR_PJP1_T
4454 (
4455 WORKER_ID
4456 , PROJECT_ID
4457 , PROJECT_ORG_ID
4458 , PROJECT_ORGANIZATION_ID
4459 , PROJECT_ELEMENT_ID
4460 , TIME_ID
4461 , PERIOD_TYPE_ID
4462 , CALENDAR_TYPE
4463 , RBS_AGGR_LEVEL
4464 , WBS_ROLLUP_FLAG
4465 , PRG_ROLLUP_FLAG
4466 , CURR_RECORD_TYPE_ID
4467 , CURRENCY_CODE
4468 , RBS_ELEMENT_ID
4469 , RBS_VERSION_ID
4470 , PLAN_VERSION_ID
4471 , PLAN_TYPE_ID
4472 , RAW_COST
4473 , BRDN_COST
4474 , REVENUE
4475 , BILL_RAW_COST
4476 , BILL_BRDN_COST
4477 , BILL_LABOR_RAW_COST
4478 , BILL_LABOR_BRDN_COST
4479 , BILL_LABOR_HRS
4480 , EQUIPMENT_RAW_COST
4481 , EQUIPMENT_BRDN_COST
4482 , CAPITALIZABLE_RAW_COST
4483 , CAPITALIZABLE_BRDN_COST
4484 , LABOR_RAW_COST
4485 , LABOR_BRDN_COST
4486 , LABOR_HRS
4487 , LABOR_REVENUE
4488 , EQUIPMENT_HOURS
4489 , BILLABLE_EQUIPMENT_HOURS
4490 , SUP_INV_COMMITTED_COST
4491 , PO_COMMITTED_COST
4492 , PR_COMMITTED_COST
4493 , OTH_COMMITTED_COST
4494 , ACT_LABOR_HRS
4495 , ACT_EQUIP_HRS
4496 , ACT_LABOR_BRDN_COST
4497 , ACT_EQUIP_BRDN_COST
4498 , ACT_BRDN_COST
4499 , ACT_RAW_COST
4500 , ACT_REVENUE
4501 , ACT_LABOR_RAW_COST
4502 , ACT_EQUIP_RAW_COST
4503 , ETC_LABOR_HRS
4504 , ETC_EQUIP_HRS
4505 , ETC_LABOR_BRDN_COST
4506 , ETC_EQUIP_BRDN_COST
4507 , ETC_BRDN_COST
4508 , ETC_RAW_COST
4509 , ETC_LABOR_RAW_COST
4510 , ETC_EQUIP_RAW_COST
4511 , CUSTOM1
4512 , CUSTOM2
4513 , CUSTOM3
4514 , CUSTOM4
4515 , CUSTOM5
4516 , CUSTOM6
4517 , CUSTOM7
4518 , CUSTOM8
4519 , CUSTOM9
4520 , CUSTOM10
4521 , CUSTOM11
4522 , CUSTOM12
4523 , CUSTOM13
4524 , CUSTOM14
4525 , CUSTOM15
4526 , LINE_TYPE
4527 , RATE_DANGLING_FLAG
4528 , TIME_DANGLING_FLAG
4529 -- , START_DATE
4530 -- , END_DATE
4531 , PRG_LEVEL
4532 , PLAN_TYPE_CODE /* 4471527 */
4533 )
4534 SELECT
4535 g_worker_id
4536 , plr.PROJECT_ID
4537 , plr.PROJECT_ORG_ID
4538 , plr.project_ORGANIZATION_ID
4539 , plr.WBS_ELEMENT_ID
4540 , DECODE(plr.time_phased_type_code -- change from vers to plr for bug 4604617
4541 , 'N', -1
4542 , pji_time.cal_period_id) time_id
4543 , DECODE(plr.time_phased_type_code
4544 , g_pa_cal_str, 32
4545 , g_gl_cal_str, 32
4546 , 'N', 2048) period_type_id -- period type id...
4547 , DECODE(plr.time_phased_type_code
4548 , g_pa_cal_str, g_pa_cal_str
4549 , g_gl_cal_str, g_gl_cal_str
4550 , 'N', g_all
4551 , 'X') -- CALENDAR_TYPE
4552 , g_lowest_level RBS_AGGR_LEVEL
4553 , 'N' WBS_ROLLUP_FLAG
4554 , 'N' PRG_ROLLUP_FLAG
4555 , plr.CURR_RECORD_TYPE -- curr code missing.
4556 , plr.currency_code
4557 , plr.RBS_ELEMENT_ID
4558 , plr.RBS_STRUCT_VERSION_ID
4559 , plr.BUDGET_VERSION_ID
4560 , plr.plan_type_id
4561 , SUM(plr.RAW_COST)
4562 , SUM(plr.BRDN_COST)
4563 , SUM(plr.REVENUE)
4564 , SUM ( DECODE ( plr.billable_flag, 'Y', plr.raw_cost, 0 ) ) -- BILL_RAW_COST
4565 , SUM ( DECODE ( plr.billable_flag, 'Y', plr.BRDN_COST, 0 ) ) -- BILL_BRDN_COST
4566 , SUM ( DECODE ( plr.billable_flag || plr.resource_class, 'Y' || g_people_resclass_code, plr.raw_cost, 0 ) ) -- BILL_LABOR_RAW_COST
4567 , SUM ( DECODE ( plr.billable_flag || plr.resource_class, 'Y' || g_people_resclass_code , plr.BRDN_COST, 0 ) ) -- BILL_LABOR_BRDN_COST
4568 /* , SUM ( DECODE ( plr.billable_flag || plr.resource_class , 'Y' || g_people_resclass_code, plr.quantity, 0 ) ) -- BILL_LABOR_HRS */ -- bug 6039785
4569 , SUM ( DECODE ( plr.billable_flag || plr.resource_class , 'Y' || g_people_resclass_code,
4570 DECODE(plr.billable_flag,'Y',plr.quantity,0) , 0 ) ) -- BILL_LABOR_HRS -- bug 6039785
4571 , SUM ( DECODE ( plr.resource_class, g_equip_resclass_code , plr.raw_cost, 0 ) ) -- EQUIPMENT_RAW_COST
4572 , SUM ( DECODE ( plr.resource_class, g_equip_resclass_code , plr.BRDN_COST, 0 ) ) -- EQUIPMENT_BRDN_COST
4573 , SUM ( DECODE ( plr.billable_flag, 'Y', plr.raw_cost, 0 ) ) -- CAPITALIZABLE_RAW_COST
4574 , SUM ( DECODE ( plr.billable_flag, 'Y', plr.BRDN_COST, 0 ) ) -- CAPITALIZABLE_BRDN_COST
4575 , SUM ( DECODE ( plr.resource_class, g_people_resclass_code, plr.raw_cost, 0 ) ) -- LABOR_RAW_COST
4576 , SUM ( DECODE ( plr.resource_class, g_people_resclass_code, plr.BRDN_COST, 0 ) ) -- LABOR_BRDN_COST
4577 /* , SUM ( DECODE ( plr.resource_class, g_people_resclass_code,
4578 DECODE ( vers.wp_flag, 'N',
4579 DECODE ( plr.billable_flag, 'Y',plr.quantity,0),
4580 plr.quantity),
4581 0 ) ) -- labor_hrs */ -- bug 6039785
4582 , SUM ( DECODE ( plr.resource_class, g_people_resclass_code, DECODE(plr.billable_flag,'Y',
4583 DECODE ( vers.wp_flag, 'N',
4584 DECODE ( plr.billable_flag, 'Y',plr.quantity,0),
4585 plr.quantity),
4586 0 ),
4587 0 ) ) -- labor_hrs -- bug 6039785
4588 , SUM ( DECODE ( plr.resource_class, g_people_resclass_code, plr.revenue, 0 ) ) -- LABOR_REVENUE
4589 /* , SUM ( DECODE ( plr.resource_class, g_equip_resclass_code,
4590 DECODE ( vers.wp_flag, 'N',
4591 DECODE ( plr.billable_flag, 'Y',plr.quantity,0),
4592 plr.quantity),
4593 0 ) ) EQUIPMENT_HOURS */ -- bug 6039785
4594 , SUM ( DECODE ( plr.resource_class, g_equip_resclass_code,
4595 DECODE ( vers.wp_flag, 'N',
4596 DECODE ( plr.billable_flag, 'Y',plr.quantity,0),
4597 plr.quantity),
4598 0 ) ) EQUIPMENT_HOURS -- bug 6039785
4599 /* , SUM ( DECODE ( plr.billable_flag || plr.resource_class, 'YEQUIPMENT', plr.quantity, 0 ) ) */ -- BILLABLE_EQUIPMENT_HOURS -- bug 6039785
4600 , SUM ( DECODE ( plr.billable_flag || plr.resource_class, 'YEQUIPMENT',
4601 DECODE(plr.billable_flag,'Y',plr.quantity,0), 0 ) ) -- BILLABLE_EQUIPMENT_HOURS -- bug 6039785
4602 , NULL -- SUP_INV_COMMITTED_COST
4603 , NULL -- PO_COMMITTED_COST
4604 , NULL -- PR_COMMITTED_COST
4605 , NULL -- OTH_COMMITTED_COST
4606 /* , SUM ( DECODE ( plr.resource_class, g_people_resclass_code,
4607 DECODE ( vers.wp_flag, 'N',
4608 DECODE ( plr.billable_flag, 'Y',plr.actual_quantity,0),
4609 plr.actual_quantity),
4610 0 ) ) ACT_LABOR_HRS */ -- bug 6039785
4611 , SUM ( DECODE ( plr.resource_class, g_people_resclass_code,
4612 DECODE (plr.billable_flag ,'Y',
4613 DECODE ( vers.wp_flag, 'N',
4614 DECODE ( plr.billable_flag, 'Y',plr.actual_quantity,0),
4615 plr.actual_quantity),
4616 0 ),
4617 0 ) ) ACT_LABOR_HRS -- bug 6039785
4618 /* , SUM ( DECODE ( plr.resource_class, g_equip_resclass_code,
4619 DECODE ( vers.wp_flag, 'N',
4620 DECODE ( plr.billable_flag, 'Y',plr.actual_quantity,0),
4621 plr.actual_quantity),
4622 0 ) ) ACT_EQUIP_HOURS */ -- bug 6039785
4623 , SUM ( DECODE ( plr.resource_class, g_equip_resclass_code,
4624 DECODE ( vers.wp_flag, 'N',
4625 DECODE ( plr.billable_flag, 'Y',plr.actual_quantity,0),
4626 plr.actual_quantity),
4627 0 ) ) ACT_EQUIP_HOURS -- bug 6039785
4628 , SUM ( DECODE ( plr.resource_class, g_people_resclass_code, plr.actual_BRDN_COST, 0 ) ) ACT_LABOR_BRDN_COST
4629 , SUM ( DECODE ( plr.resource_class, g_equip_resclass_code , plr.actual_BRDN_COST, 0 ) ) ACT_EQUIPMENT_BRDN_COST
4630 , SUM ( plr.actual_brdn_cost ) ACT_BRDN_COST
4631 , SUM ( plr.actual_raw_cost ) ACT_RAW_COST
4632 , SUM ( plr.actual_revenue ) ACT_REVENUE
4633 , SUM ( DECODE ( plr.resource_class, g_people_resclass_code, plr.actual_RAW_COST, 0 ) ) ACT_LABOR_RAW_COST
4634 , SUM ( DECODE ( plr.resource_class, g_equip_resclass_code , plr.actual_RAW_COST, 0 ) ) ACT_EQUIPMENT_RAW_COST
4635 /* , SUM ( DECODE ( plr.resource_class, g_people_resclass_code,
4636 DECODE ( vers.wp_flag, 'N',
4637 DECODE ( plr.billable_flag, 'Y',plr.ETC_quantity,0),
4638 plr.ETC_quantity),
4639 g_equip_resclass_code, decode(plr.etc_quantity, null, null,0), NULL ) ) ETC_LABOR_HRS */ -- bug 6039785
4640 , SUM ( DECODE ( plr.resource_class, g_people_resclass_code,
4641 DECODE (plr.billable_flag ,'Y',
4642 DECODE ( vers.wp_flag, 'N',
4643 DECODE ( plr.billable_flag, 'Y',plr.ETC_quantity,0),
4644 plr.ETC_quantity),
4645 0),
4646 g_equip_resclass_code, decode(plr.etc_quantity, null, null,0), NULL ) ) ETC_LABOR_HRS -- bug 6039785
4647 /* , SUM ( DECODE ( plr.resource_class, g_equip_resclass_code,
4648 DECODE ( vers.wp_flag, 'N',
4649 DECODE ( plr.billable_flag, 'Y',plr.ETC_quantity,0),
4650 plr.ETC_quantity),
4651 g_people_resclass_code, decode(plr.etc_quantity, null, null, 0), NULL ) ) ETC_EQUIP_HOURS */ -- bug 6039785
4652 , SUM ( DECODE ( plr.resource_class, g_equip_resclass_code,
4653 DECODE (plr.billable_flag ,'Y', -- Bug 6348091
4654 DECODE ( vers.wp_flag, 'N',
4655 --DECODE (plr.billable_flag ,'Y', --Bug 6348091
4656 DECODE ( plr.billable_flag, 'Y',plr.ETC_quantity,0),
4657 plr.ETC_quantity),
4658 0),
4659 g_people_resclass_code, decode(plr.etc_quantity, null, null, 0), NULL ) ) ETC_EQUIP_HOURS -- bug 6039785
4660 , SUM ( DECODE ( plr.resource_class, g_people_resclass_code, plr.etc_BRDN_COST, g_equip_resclass_code, decode(plr.etc_BRDN_COST, null, null, 0), NULL ) ) ETC_LABOR_BRDN_COST
4661 , SUM ( DECODE ( plr.resource_class, g_equip_resclass_code, plr.etc_BRDN_COST, g_people_resclass_code, decode(plr.etc_BRDN_COST, null, null, 0), NULL ) ) ETC_EQUIP_BRDN_COST
4662 , SUM ( plr.etc_brdn_cost ) ETC_BRDN_COST
4663 , SUM ( plr.etc_raw_cost ) ETC_RAW_COST
4664 , SUM ( DECODE ( plr.resource_class, g_people_resclass_code, plr.etc_raw_COST, g_equip_resclass_code, decode(plr.etc_RAW_COST, null, null, 0), NULL ) ) ETC_LABOR_raw_COST
4665 , SUM ( DECODE ( plr.resource_class, g_equip_resclass_code, plr.etc_raw_COST, g_people_resclass_code, decode(plr.etc_RAW_COST, null, null, 0), NULL ) ) ETC_EQUIP_raw_COST
4666 , NULL CUSTOM1
4667 , NULL CUSTOM2
4668 , NULL CUSTOM3
4669 , NULL CUSTOM4
4670 , NULL CUSTOM5
4671 , NULL CUSTOM6
4672 , NULL CUSTOM7
4673 , NULL CUSTOM8
4674 , NULL CUSTOM9
4675 , NULL CUSTOM10
4676 , NULL CUSTOM11
4677 , NULL CUSTOM12
4678 , NULL CUSTOM13
4679 , NULL CUSTOM14
4680 , NULL CUSTOM15
4681 , 'OF' -- LINE_TYPE
4682 , NULL -- rate_dangling_flag
4683 , NULL -- time_dangling_flag
4684 , g_default_prg_level
4685 , plr.plan_type_code plan_type_code /* 4471527 */
4686 FROM
4687 ( ----- First inline view plr .............
4688 select
4689 collapse_bl.PROJECT_ID
4690 -- , 1 partition_id
4691 , collapse_bl.WBS_ELEMENT_ID
4692 -- , time_id, period_type_id, calendar type.., slice type, rollpu flag...
4693 , SUM(collapse_bl.CURR_RECORD_TYPE_ID) CURR_RECORD_TYPE
4694 , collapse_bl.RBS_ELEMENT_ID
4695 , collapse_bl.RBS_STRUCT_VERSION_ID
4696 , collapse_bl.plan_type_id
4697 , collapse_bl.BUDGET_VERSION_ID
4698 , collapse_bl.PROJECT_ORGANIZATION_ID
4699 , collapse_bl.PROJECT_ORG_ID
4700 , collapse_bl.BILLABLE_FLAG
4701 , collapse_bl.RESOURCE_CLASS
4702 , collapse_bl.TIME_PHASED_TYPE_CODE
4703 , collapse_bl.CURRENCY_CODE
4704 , max(collapse_bl.raw_cost) raw_cost
4705 , max(collapse_bl.BRDN_COST) BRDN_COST
4706 , max(collapse_bl.revenue) revenue
4707 , max(collapse_bl.act_raw_cost) actual_raw_cost
4708 , max(collapse_bl.act_BRDN_COST) actual_BRDN_COST
4709 , max(collapse_bl.act_revenue) actual_revenue
4710 , max(collapse_bl.etc_BRDN_COST) etc_raw_COST
4711 , max(collapse_bl.etc_BRDN_COST) etc_BRDN_COST
4712 , max(collapse_bl.quantity) quantity
4713 , max(collapse_bl.act_quantity) actual_quantity
4714 , max(collapse_bl.etc_quantity) etc_quantity
4715 , collapse_bl.start_date start_date
4716 , collapse_bl.end_date end_date
4717 , collapse_bl.period_name period_name
4718 -- , TRACK_AS_LABOR_FLAG track_as_labor_flag
4719 , collapse_bl.row_id
4720 , collapse_bl.plan_type_code plan_type_code /* 4471527 */
4721 from
4722 ( ----- Second inline view 'collapse_bl' begin .............
4723 select
4724 spread_bl.row_id row_id
4725 , spread_bl.PROJECT_ID
4726 , spread_bl.BUDGET_VERSION_ID
4727 -- , spread_bl.RESOURCE_ASSIGNMENT_ID
4728 , spread_bl.WBS_ELEMENT_ID
4729 , spread_bl.RBS_ELEMENT_ID
4730 , spread_bl.WBS_STRUCT_VERSION_ID
4731 , spread_bl.RBS_STRUCT_VERSION_ID
4732 , spread_bl.plan_type_id
4733 , spread_bl.BILLABLE_FLAG
4734 , spread_bl.RESOURCE_CLASS
4735 -- , spread_bl.CALENDAR_TYPE
4736 -- , pji_time.CALENDAR_ID
4737 , spread_bl.PROJECT_ORGANIZATION_ID
4738 , spread_bl.PROJECT_ORG_ID
4739 , spread_bl.TIME_PHASED_TYPE_CODE
4740 , DECODE( invert.INVERT_ID
4741 , 4, spread_bl.func_CURRENCY_CODE
4742 , 8, spread_bl.PRJ_CURRENCY_CODE
4743 , 16, spread_bl.TXN_CURRENCY_CODE ) CURRENCY_CODE
4744 , invert.INVERT_ID CURR_RECORD_TYPE_ID
4745 , DECODE ( invert.INVERT_ID
4746 , 4, spread_bl.func_raw_cost
4747 , 8, spread_bl.PRJ_raw_cost
4748 , 16, spread_bl.TXN_raw_cost) raw_cost
4749 , DECODE ( invert.INVERT_ID
4750 , 4, spread_bl.func_BRDN_COST
4751 , 8, spread_bl.PRJ_BRDN_COST
4752 , 16, spread_bl.TXN_BRDN_COST ) BRDN_COST
4753 , DECODE ( invert.INVERT_ID
4754 , 4, spread_bl.func_revenue
4755 , 8, spread_bl.PRJ_revenue
4756 , 16, spread_bl.TXN_revenue ) revenue
4757 , DECODE ( invert.INVERT_ID
4758 , 4, spread_bl.act_func_raw_cost
4759 , 8, spread_bl.act_PRJ_raw_cost
4760 , 16, spread_bl.act_TXN_raw_cost) act_raw_cost
4761 , DECODE ( invert.INVERT_ID
4762 , 4, spread_bl.act_func_BRDN_COST
4763 , 8, spread_bl.act_PRJ_BRDN_COST
4764 , 16, spread_bl.act_TXN_BRDN_COST ) act_BRDN_COST
4765 , DECODE ( invert.INVERT_ID
4766 , 4, spread_bl.act_func_revenue
4767 , 8, spread_bl.act_PRJ_revenue
4768 , 16, spread_bl.act_TXN_revenue ) act_revenue
4769 , DECODE ( invert.INVERT_ID
4770 , 4, spread_bl.etc_func_brdn_cost
4771 , 8, spread_bl.etc_PRJ_brdn_cost
4772 , 16, spread_bl.etc_TXN_brdn_cost ) etc_brdn_cost
4773 , DECODE ( invert.INVERT_ID
4774 , 4, spread_bl.etc_pfc_raw_cost
4775 , 8, spread_bl.etc_PRJ_raw_cost
4776 , 16, spread_bl.etc_TXN_raw_cost) etc_raw_cost
4777 , spread_bl.quantity quantity
4778 , spread_bl.act_quantity act_quantity
4779 , spread_bl.etc_quantity etc_quantity
4780 , spread_bl.start_date start_date
4781 , spread_bl.end_date end_date
4782 , spread_bl.period_name period_name
4783 -- , spread_bl.TRACK_AS_LABOR_FLAG track_as_labor_flag
4784 , spread_bl.plan_type_code plan_type_code /* 4471527 */
4785 from
4786 ( ----- Third inline view 'spread_bl' .............
4787 -- Added hint for bug 3828698
4788 SELECT
4789 bl.project_id
4790 , bl.rowid row_id
4791 , bl.plan_version_id budget_version_id
4792 -- , bl.resource_asSIGNment_id
4793 , DECODE(bl.project_element_id, 0, pevs.proj_element_id, bl.project_element_id) wbs_element_id
4794 , NVL(bl.rbs_element_id, -1) rbs_element_id
4795 , bl.struct_ver_id wbs_struct_version_id
4796 , DECODE( bl.rbs_element_id
4797 , NULL
4798 , -1
4799 , NVL(ver.rbs_struct_version_id, -1)
4800 ) rbs_struct_version_id
4801 , bl.plan_type_id plan_type_id -- ver.plan_type_id
4802 , bl.rate_based_flag billable_flag -- ra.rate_based_flag billable_flag
4803 , bl.resource_class_code resource_class -- ra.resource_class_code resource_class
4804 , bl.txn_currency_code txn_currency_code
4805 , bl.txn_raw_cost txn_raw_cost
4806 , bl.txn_burdened_COST txn_BRDN_COST
4807 , bl.txn_revenue txn_revenue
4808 , bl.act_txn_raw_cost act_txn_raw_cost
4809 , bl.act_txn_burdened_cost act_txn_brdn_cost
4810 , bl.act_txn_revenue act_txn_revenue
4811 , bl.etc_txn_burdened_cost etc_txn_brdn_cost
4812 , bl.prj_currency_code prj_currency_code
4813 , bl.prj_raw_cost prj_raw_cost
4814 , bl.prj_burdened_COST prj_BRDN_COST
4815 , bl.prj_revenue prj_revenue
4816 , bl.act_prj_raw_cost act_prj_raw_cost
4817 , bl.act_prj_burdened_cost act_prj_brdn_cost
4818 , bl.act_prj_revenue act_prj_revenue
4819 , bl.etc_prj_burdened_cost etc_prj_brdn_cost
4820 , bl.pfc_currency_code func_currency_code
4821 , bl.pfc_raw_cost func_raw_cost
4822 , bl.pfc_burdened_COST func_BRDN_COST
4823 , bl.pfc_revenue func_revenue
4824 , bl.act_pfc_raw_cost act_func_raw_cost
4825 , bl.act_pfc_burdened_cost act_func_brdn_cost
4826 , bl.act_pfc_revenue act_func_revenue
4827 , bl.etc_pfc_burdened_cost etc_func_brdn_cost
4828 , bl.ETC_TXN_RAW_COST ETC_TXN_RAW_COST
4829 , bl.ETC_PRJ_RAW_COST ETC_PRJ_RAW_COST
4830 , bl.ETC_PFC_RAW_COST ETC_PFC_RAW_COST
4831 , 'DEF' glb1_currency_code
4832 , NULL glb1_raw_cost
4833 , NULL glb1_BRDN_COST
4834 , NULL glb1_revenue
4835 , 'ACB' glb2_currency_code
4836 , NULL glb2_raw_cost
4837 , NULL glb1_BRDN_COST
4838 , NULL glb1_revenue
4839 , bl.quantity quantity
4840 , bl.act_quantity act_quantity
4841 , bl.etc_quantity etc_quantity
4842 , DECODE(ver.time_phased_type_code, 'N', bl.start_date, NULL) start_date
4843 , DECODE(ver.time_phased_type_code, 'N', bl.end_date, NULL) end_date
4844 , NVL(bl.period_name, g_ntp_period_name) period_name
4845 , NVL(bl.calendar_type, ver.time_phased_type_code) time_phased_type_code
4846 , bl.project_org_id project_org_id
4847 , ppa.carrying_out_organization_id project_organization_id
4848 , ver.plan_type_code plan_type_code /* 4471527 */
4849 FROM
4850 PJI_FM_EXTR_PLAN_LINES bl
4851 , PJI_FM_EXTR_PLNVER3_T ver
4852 , pa_projects_all ppa
4853 , PA_PROJ_ELEM_VER_STRUCTURE pevs
4854 , pji_fp_rmap_fpr_update_t rwid
4855 WHERE 1=1
4856 AND bl.project_id = ver.project_id
4857 AND bl.plan_version_id = ver.plan_version_id
4858 AND bl.plan_type_id = ver.plan_type_id
4859 AND ppa.project_id = ver.project_id
4860 AND bl.project_id = ppa.project_id -- Added for bug 3828698
4861 AND ppa.project_id = pevs.project_id -- Added for bug 3838698
4862 AND bl.TXN_CURRENCY_CODE IS NOT NULL
4863 AND bl.prj_currency_code IS NOT NULL
4864 AND bl.pfc_currency_code IS NOT NULL
4865 AND pevs.element_version_id = ver.wbs_struct_version_id
4866 AND pevs.project_id = ver.project_id -- Fix for bug : 4149422 in RETRIEVE_DELTA_SLICE
4867 AND bl.ROWID = rwid.extr_lines_rowid
4868 ) spread_bl
4869 ---- end of third inline view 'spread_bl'...........
4870 ,
4871 (
4872 select 4 INVERT_ID from dual union all
4873 select 8 INVERT_ID from dual union all
4874 select 16 INVERT_ID from dual where PJI_UTILS.GET_SETUP_PARAMETER('TXN_CURR_FLAG') = 'Y'
4875 ) invert
4876 ) collapse_bl
4877 ---- End of second inline view 'collapse_bl' ..........
4878 GROUP BY
4879 collapse_bl.PROJECT_ID
4880 , collapse_bl.WBS_ELEMENT_ID
4881 -- , time_id, period_type_id, calendar type.., slice type, rollpu flag...
4882 , collapse_bl.RBS_ELEMENT_ID
4883 , collapse_bl.RBS_STRUCT_VERSION_ID
4884 , collapse_bl.plan_type_id
4885 , collapse_bl.BUDGET_VERSION_ID
4886 , collapse_bl.PROJECT_ORGANIZATION_ID
4887 , collapse_bl.PROJECT_ORG_ID
4888 , collapse_bl.BILLABLE_FLAG
4889 , collapse_bl.RESOURCE_CLASS
4890 , collapse_bl.TIME_PHASED_TYPE_CODE
4891 , collapse_bl.CURRENCY_CODE
4892 , collapse_bl.start_date
4893 , collapse_bl.end_date
4894 , collapse_bl.period_name
4895 , collapse_bl.row_id
4896 , collapse_bl.plan_type_code /* 4471527 */
4897 ) plr
4898 ---- End of first inline view plr ..........
4899 , PJI_ORG_EXTR_INFO orginfo
4900 , PJI_FM_EXTR_PLNVER3_T vers
4901 , pji_time_cal_period_v pji_time
4902 WHERE 1=1
4903 AND plr.project_org_id = orginfo.org_id
4904 AND plr.project_id = vers.project_id
4905 AND plr.budget_version_id = vers.plan_version_id
4906 AND plr.plan_type_code = vers.plan_type_code /*4471527 */
4907 AND DECODE(plr.time_phased_type_code -- change from vers to plr for bug 4604617
4908 , g_pa_cal_str, orginfo.pa_calendar_id
4909 , g_gl_cal_str, orginfo.gl_calendar_id
4910 , -l_max_plnver_id ) = pji_time.calendar_id
4911 AND plr.period_name = pji_time.name
4912 AND plr.time_phased_type_code IN (g_pa_cal_str, g_gl_cal_str, 'N')
4913 GROUP BY
4914 plr.PROJECT_ID
4915 , plr.WBS_ELEMENT_ID
4916 , DECODE(plr.time_phased_type_code
4917 , 'N', -1
4918 , pji_time.cal_period_id)
4919 , DECODE(plr.time_phased_type_code
4920 , g_pa_cal_str, 32
4921 , g_gl_cal_str, 32
4922 , 'N', 2048) -- period type id...
4923 , DECODE(plr.time_phased_type_code
4924 , g_pa_cal_str, g_pa_cal_str
4925 , g_gl_cal_str, g_gl_cal_str
4926 , 'N', g_all
4927 , 'X') -- CALENDAR_TYPE
4928 , plr.CURR_RECORD_TYPE -- curr code missing.
4929 , plr.currency_code
4930 , plr.RBS_ELEMENT_ID
4931 , plr.RBS_STRUCT_VERSION_ID
4932 , plr.plan_type_id
4933 , plr.BUDGET_VERSION_ID
4934 , plr.project_ORGANIZATION_ID
4935 , plr.project_ORG_ID
4936 , plr.plan_type_code ; /* 4471527 */
4937
4938 print_time('count is ... ' || SQL%ROWCOUNT );
4939
4940 DELETE_NTP_CAL_RECORD ( p_max_plnver_id => l_max_plnver_id );
4941
4942 print_time('........RETRIEVE_DELTA_SLICE : End.' );
4943
4944 EXCEPTION
4945 WHEN OTHERS THEN
4946 FND_MSG_PUB.add_exc_msg( p_pkg_name => g_package_name ,
4947 p_procedure_name => 'RETRIEVE_DELTA_SLICE');
4948 print_time('........RETRIEVE_DELTA_SLICE : Exception ' || sqlerrm );
4949 RAISE;
4950 END;
4951
4952
4953 PROCEDURE POPULATE_PLN_VER_TABLE IS
4954 l_count NUMBER := 0;
4955 BEGIN
4956
4957 print_time('........POPULATE_PLN_VER_TABLE : Begin.' );
4958
4959 INSERT INTO PJI_FM_EXTR_PLNVER3_T
4960 (
4961 PROJECT_ID ,
4962 PLAN_VERSION_ID ,
4963 WBS_STRUCT_VERSION_ID ,
4964 RBS_STRUCT_VERSION_ID ,
4965 PLAN_TYPE_CODE ,
4966 PLAN_TYPE_ID ,
4967 TIME_PHASED_TYPE_CODE ,
4968 TIME_DANGLING_FLAG ,
4969 RATE_DANGLING_FLAG ,
4970 PROJECT_TYPE_CLASS ,
4971 WP_FLAG ,
4972 CURRENT_FLAG ,
4973 ORIGINAL_FLAG ,
4974 CURRENT_ORIGINAL_FLAG ,
4975 BASELINED_FLAG ,
4976 SECONDARY_RBS_FLAG
4977 )
4978 SELECT DISTINCT
4979 epl.project_id
4980 , epl.plan_version_id
4981 , DECODE ( NVL(bv.wp_version_flag, 'N')
4982 , 'Y', bv.project_structure_version_id
4983 , PA_PROJECT_STRUCTURE_UTILS.GET_FIN_STRUC_VER_ID(bv.project_id) -- -9999 --
4984 ) wbs_struct_version_id
4985 -- , epl.struct_ver_id
4986 , fpo.rbs_version_id -- epl.rbs_version_id
4987 -- , to_char(epl.plan_type_id) -- pln type code
4988 , DECODE (bv.version_type, 'COST' ,'C' , 'REVENUE', 'R', 'A') plan_type_code /* 4471527 */
4989 , epl.plan_type_id
4990 , DECODE(bv.version_type
4991 , g_all_timeph_code, fpo.all_time_phased_code
4992 , g_cost_timeph_code, fpo.cost_time_phased_code
4993 , g_rev_timeph_code, fpo.revenue_time_phased_code
4994 ) time_phased_type_code
4995 , null -- time dangling..
4996 , null -- time dangling..
4997 , null -- project type class is not used currently..
4998 , DECODE(bv.wp_version_flag, 'Y', 'Y', 'N') is_wp_flag
4999 , bv.current_flag current_flag
5000 , bv.original_flag original_flag
5001 , bv.current_original_flag current_original_flag
5002 , DECODE(bv.baselined_date, NULL, 'N', 'Y') baselined_flag
5003 , 'N'
5004 FROM PJI_FM_EXTR_PLAN_LINES epl
5005 , pa_budget_versions bv
5006 , pa_proj_fp_options fpo
5007 WHERE
5008 epl.plan_version_id = bv.budget_version_id
5009 AND fpo.project_id = bv.project_id
5010 AND bv.fin_plan_type_id = fpo.fin_plan_type_id
5011 AND bv.budget_version_id = fpo.fin_plan_version_id
5012 AND fpo.fin_plan_option_level_code = 'PLAN_VERSION'
5013 AND epl.rowid IN ( SELECT extr_lines_rowid FROM pji_fp_rmap_fpr_update_t);
5014
5015
5016 print_time('count is ... ' || SQL%ROWCOUNT );
5017
5018 print_time('........POPULATE_PLN_VER_TABLE : End.' );
5019
5020 EXCEPTION
5021 WHEN OTHERS THEN
5022 FND_MSG_PUB.add_exc_msg( p_pkg_name => g_package_name ,
5023 p_procedure_name => 'POPULATE_PLN_VER_TABLE');
5024 print_time('........POPULATE_PLN_VER_TABLE : Exception: ' || sqlerrm );
5025 RAISE;
5026 END;
5027
5028
5029 PROCEDURE GET_GLOBAL_EXCHANGE_RATES IS
5030
5031 l_gl1_cur_code VARCHAR2(15) := g_global1_currency_code;
5032 l_gl2_cur_code VARCHAR2(15) := g_global2_currency_code;
5033 l_gl1_mau NUMBER := g_global1_currency_mau;
5034 l_gl2_mau NUMBER := g_global2_currency_mau;
5035
5036 BEGIN
5037
5038 print_time('........GET_GLOBAL_EXCHANGE_RATES: Begin. ' );
5039
5040 PJI_PJP_FP_CURR_WRAP.get_global_currency_info (
5041 x_currency_conversion_rule => g_currency_conversion_rule
5042 , x_prorating_format => g_prorating_format
5043 , x_global1_currency_code => g_global1_currency_code
5044 , x_global2_currency_code => g_global2_currency_code
5045 , x_global1_currency_mau => g_global1_currency_mau
5046 , x_global2_currency_mau => g_global2_currency_mau ) ;
5047
5048 l_gl1_cur_code := g_global1_currency_code;
5049 l_gl2_cur_code := g_global2_currency_code;
5050 l_gl1_mau := g_global1_currency_mau;
5051 l_gl2_mau := g_global2_currency_mau;
5052
5053 print_time(' Got global currency settings. ');
5054 print_time(' g_currency_conversion_rule ' || g_currency_conversion_rule || ' g_prorating_format ' || g_prorating_format );
5055 print_time(' g_global1_currency_code ' || g_global1_currency_code || ' g_global2_currency_code ' || g_global2_currency_code );
5056 print_time(' g_global1_currency_mau ' || g_global1_currency_mau || ' g_global2_currency_mau ' || g_global2_currency_mau ) ;
5057
5058
5059 DELETE FROM PJI_FM_AGGR_DLY_RATES_T
5060 WHERE worker_id = g_worker_id;
5061 -- Removed pa_resource_assignments join and Added joins with pji_org_extr_info
5062 -- for bug 4149422
5063 -- SQL for getting rates for time phased budgets.
5064 PJI_UTILS.g_max_roll_days := 1500; /*5155692 */
5065
5066 INSERT INTO PJI_FM_AGGR_DLY_RATES_T (
5067 WORKER_ID ,
5068 PF_CURRENCY_CODE ,
5069 TIME_ID ,
5070 RATE ,
5071 MAU ,
5072 RATE2 ,
5073 MAU2)
5074 SELECT worker_id,
5075 projfunc_currency_code,
5076 time_id,
5077 PJI_UTILS.GET_GLOBAL_RATE_PRIMARY (temp.projfunc_currency_code
5078 , DECODE ( g_currency_conversion_rule
5079 , 'S'
5080 , temp.start_date
5081 , 'E'
5082 , temp.end_date ))
5083 rate1,
5084 l_gl1_mau mau1,
5085 DECODE ( PJI_UTILS.GET_SETUP_PARAMETER('GLOBAL_CURR2_FLAG'),
5086 'Y',
5087 PJI_UTILS.GET_GLOBAL_RATE_SECONDARY (temp.projfunc_currency_code,
5088 DECODE ( g_currency_conversion_rule
5089 , 'S'
5090 , temp.start_date
5091 , 'E'
5092 , temp.end_date ) ),
5093 NULL
5094 )
5095 rate2,
5096 l_gl2_mau mau2
5097 FROM (
5098 SELECT DISTINCT
5099 g_worker_id worker_id
5100 , ppa.projfunc_currency_code
5101 , cal_period_id time_id
5102 , DECODE( g_currency_conversion_rule
5103 , 'S'
5104 , prd.start_date
5105 , TO_DATE(NULL)
5106 ) start_date
5107 , DECODE( g_currency_conversion_rule
5108 , 'E'
5109 , prd.end_date
5110 , TO_DATE(NULL)
5111 ) end_date
5112 , l_gl1_mau mau1
5113 , l_gl2_mau mau2
5114 FROM pa_budget_lines bl
5115 , pa_budget_versions bv -- added for bug 5842896
5116 , pji_time_cal_period_v prd
5117 , PJI_FM_EXTR_PLNVER3_T ver
5118 , pa_projects_all ppa
5119 ,PJI_ORG_EXTR_INFO inf
5120 WHERE bl.budget_version_id = ver.plan_version_id
5121 AND bl.budget_version_id = bv.budget_version_id -- added for bug 5842896
5122 AND bv.project_id = ppa.project_id -- added for bug 5842896
5123 AND ver.time_phased_type_code IN ('P', 'G')
5124 AND bl.period_name = prd.name
5125 AND ver.wp_flag = 'N'
5126 AND ver.baselined_flag = 'Y'
5127 AND ver.project_id = ppa.project_id
5128 -- Fix for bug : 4149422
5129 AND ppa.org_id = inf.org_id
5130 AND DECODE (ver.time_phased_type_code
5131 , 'P'
5132 , inf.pa_calendar_id
5133 , 'G'
5134 , inf.gl_calendar_id) = prd.calendar_id
5135 UNION ALL
5136 SELECT DISTINCT
5137 g_worker_id worker_id
5138 , ppa.projfunc_currency_code
5139 , DECODE ( g_currency_conversion_rule
5140 , 'S'
5141 , TO_NUMBER(to_CHAR(ra.planning_start_date, 'J'))
5142 , 'E'
5143 , TO_NUMBER(to_CHAR(ra.planning_end_date, 'J')) ) time_id
5144 , DECODE( g_currency_conversion_rule
5145 , 'S'
5146 , ra.planning_start_date
5147 , TO_DATE(NULL)
5148 ) start_date
5149 , DECODE( g_currency_conversion_rule
5150 , 'E'
5151 , ra.planning_end_date
5152 , TO_DATE(NULL)
5153 ) end_date
5154 , l_gl1_mau mau1
5155 , l_gl2_mau mau2
5156 FROM pa_resource_assignments ra
5157 , PJI_FM_EXTR_PLNVER3_T ver
5158 , pa_projects_all ppa
5159 WHERE ra.budget_version_id = ver.plan_version_id
5160 AND ver.wp_flag = 'N'
5161 AND ver.baselined_flag = 'Y'
5162 AND ver.time_phased_type_code = 'N'
5163 AND ver.project_id = ppa.project_id
5164 ) temp;
5165
5166 PJI_UTILS.g_max_roll_days := NULL; /*5155692 */
5167
5168 /* See if any line with negative rate was derived. If so then update the
5169 corresponding line in ver3 as rate dangling*/
5170
5171 UPDATE PJI_FM_EXTR_PLNVER3_T ver
5172 SET rate_dangling_flag = 'Y'
5173 WHERE (project_id,plan_version_id) IN
5174 ( SELECT project_id,budget_version_id
5175 FROM PA_BUDGET_LINES bl,
5176 pji_time_cal_period_v prd,
5177 PJI_FM_AGGR_DLY_RATES_T rates
5178 WHERE rates.time_id=prd.cal_period_id
5179 AND bl.period_name = prd.name
5180 AND (sign(rates.rate)=-1 OR sign(rates.rate2) = -1)
5181 AND ver.time_phased_type_code IN ('P', 'G')
5182 UNION ALL
5183 SELECT project_id,budget_version_id
5184 FROM pa_resource_assignments ra,
5185 PJI_FM_AGGR_DLY_RATES_T rates
5186 WHERE rates.time_id= DECODE ( g_currency_conversion_rule
5187 , 'S'
5188 , TO_NUMBER(to_CHAR(ra.planning_start_date, 'J'))
5189 , 'E'
5190 , TO_NUMBER(to_CHAR(ra.planning_end_date, 'J')) )
5191 AND (sign(rates.rate)=-1 OR sign(rates.rate2) = -1)
5192 AND ver.time_phased_type_code = 'N'
5193 )
5194 AND ver.wp_flag = 'N'
5195 AND ver.baselined_flag = 'Y';
5196
5197
5198 print_time('........GET_GLOBAL_EXCHANGE_RATES: End. ' );
5199
5200 EXCEPTION
5201 WHEN OTHERS THEN
5202 FND_MSG_PUB.add_exc_msg( p_pkg_name => g_package_name ,
5203 p_procedure_name => 'GET_GLOBAL_EXCHANGE_RATES');
5204 print_time('........GET_GLOBAL_EXCHANGE_RATES: Exception: ' || sqlerrm );
5205 RAISE;
5206 END;
5207
5208
5209 PROCEDURE DELETE_GLOBAL_EXCHANGE_RATES IS
5210 BEGIN
5211
5212 print_time('........DELETE_GLOBAL_EXCHANGE_RATES: Begin. ' );
5213
5214 DELETE FROM PJI_FM_AGGR_DLY_RATES_T
5215 WHERE worker_id = g_worker_id;
5216
5217 print_time('........DELETE_GLOBAL_EXCHANGE_RATES: End. # rows is.. ' || SQL%ROWCOUNT );
5218
5219 EXCEPTION
5220 WHEN OTHERS THEN
5221 FND_MSG_PUB.add_exc_msg( p_pkg_name => g_package_name ,
5222 p_procedure_name => 'DELETE_GLOBAL_EXCHANGE_RATES');
5223 print_time('........DELETE_GLOBAL_EXCHANGE_RATES: Exception: ' || sqlerrm );
5224 RAISE;
5225 END;
5226
5227
5228 /*
5229 PROCEDURE UPDATE_CURR_RCD_TYPES_GL1_GL2
5230 IS BEGIN
5231
5232 -- Algorithm is as follows:
5233 -- ------------------------
5234 -- 1. Get all relevant rows from rpting lines into tmp1 table (GET_PRI_SLICE_DATA already did this).
5235 -- 2. Create/Update records as needed based on exchange rates as follows.
5236 -- SQL 1: Update existing rcds for TXN if GL1/GL2 are equal to TXN.
5237 -- SQL 2: Update existing rcds for PRJ if GL1/GL2 are equal to PRJ and PRJ<>TXN.
5238 -- SQL 3: Update existing rcds for FUNC if GL1/GL2 are equal to FUNC and FUNC<> TXN/PRJ and PRJ<>TXN and 1, 2 don't hold true.
5239 -- SQL 4: Create new rcds using existing records for TXN if GL1/GL2 are not in (TXN, PRJ, FUNC).
5240 -- SQL 5: Update existing rcds for GL1 if GL2 is equal to GL1, etc.
5241 -- SQL 6: Create new rcds using existing records for TXN if GL2 is not in (TXN, PRJ, FUNC, GL1).
5242 --3. Merge the new records into rpting lines.
5243
5244 PJI_FM_PLAN_MAINT_T_PVT.GET_GLOBAL_EXCHANGE_RATES;
5245
5246 PJI_FM_PLAN_MAINT_T_PVT.CONV_TO_GLOBAL_CURRENCIES;
5247
5248 -- This wont work!!!
5249 -- PJI_FM_PLAN_MAINT.MERGE_INTO_REPORTING_LNS_FACT;
5250 -- This wont work!!!
5251
5252 EXCEPTION
5253 WHEN OTHERS THEN
5254 FND_MSG_PUB.add_exc_msg( p_pkg_name => g_package_name ,
5255 p_procedure_name => 'UPDATE_CURR_RCD_TYPES_GL1_GL2');
5256 RAISE;
5257 END;
5258 */
5259
5260
5261 --
5262 -- Stubbed api.
5263 --
5264 /*
5265 PROCEDURE CONV_TO_GLOBAL_CURRENCIES IS
5266 l_return_status VARCHAR2(1);
5267 l_ver3_is_empty VARCHAR2(1);
5268 BEGIN
5269
5270 print_time('........CONV_TO_GLOBAL_CURRENCIES: Begin. ' );
5271
5272 --
5273 -- IF ver3 is empty, return.
5274 --
5275 l_ver3_is_empty := PJI_FM_PLAN_MAINT.CHECK_VER3_NOT_EMPTY ( p_online => 'T');
5276 IF (l_ver3_is_empty = 'T') THEN
5277 print_time ( ' ver3 is empty, nothing to process. Returning. ');
5278 RETURN;
5279 END IF;
5280
5281 --
5282 -- Get currency conversion rules, global currency codes and gl maus.
5283 --
5284 PJI_PJP_FP_CURR_WRAP.get_global_currency_info (
5285 x_currency_conversion_rule => g_currency_conversion_rule
5286 , x_prorating_format => g_prorating_format
5287 , x_global1_currency_code => g_global1_currency_code
5288 , x_global2_currency_code => g_global2_currency_code
5289 , x_global1_currency_mau => g_global1_currency_mau
5290 , x_global2_currency_mau => g_global2_currency_mau ) ;
5291
5292 --
5293 -- Todo: Remove hardcoded currency codes after making code work if one of the global currencies is null.
5294 --
5295 SELECT DECODE(g_global1_currency_code, NULL, 'USD', g_global1_currency_code)
5296 INTO g_global1_currency_code
5297 FROM DUAL;
5298
5299 SELECT DECODE(g_global2_currency_code, NULL, 'USD', g_global2_currency_code)
5300 INTO g_global2_currency_code
5301 FROM DUAL;
5302
5303 print_time(' Got global currency settings. ');
5304 print_time(' g_currency_conversion_rule ' || g_currency_conversion_rule || ' g_prorating_format ' || g_prorating_format );
5305 print_time(' g_global1_currency_code ' || g_global1_currency_code || ' g_global1_currency_code ' || g_global1_currency_code );
5306 print_time(' g_global1_currency_mau ' || g_global1_currency_mau || ' g_global1_currency_mau ' || g_global1_currency_mau ) ;
5307
5308
5309 --
5310 -- IF GL1 and GL2 currencies are not setup correctly, then return.
5311 --
5312 IF (g_global1_currency_code IS NULL AND g_global2_currency_code IS NULL) THEN
5313 print_time('Both global 1 currency and global 2 currency are not defined. Returning from conversion to Global currencies.');
5314 -- MARK_DANGLING_PLAN_VERSIONS; -- !!! Todo. Mark dangling versions.
5315 RETURN;
5316 END IF;
5317
5318 --
5319 -- Delete Smart Slice.
5320 --
5321 PJI_FM_XBS_ACCUM_MAINT.DELETE_SMART_SLICE (
5322 p_online_flag => 'Y'
5323 , x_return_status => l_return_status ) ;
5324 print_time(' Deleted smart slice rollups. # rows deleted is.. ' || SQL%ROWCOUNT);
5325
5326
5327 --
5328 -- Gets exchange rates for entries in fact for all those rows in fact and pjp1 based on
5329 -- if the currency code is same as functional currency code. Rates are based on start/end
5330 -- dates based on plan amt conversion. For non time phased amounts, it is based on
5331 -- start end dates for that period.
5332 --
5333 GET_GLOBAL_EXCHANGE_RATES;
5334 print_time(' Got exchange rates for global currencies. ');
5335
5336
5337 --
5338 -- Inserts rows present in fact and pjp1 into pjp1 with inserted row worker id as
5339 -- g_worker_id.
5340 -- Logic is as follows:
5341 --
5342 -- SQL1: Reverse primary slice from fact for only those rows whose crti can be updated.
5343 -- SQL2: Insert pri slice LNN from fact where CRTI can simply be updated.
5344 -- SQL3: Insert GL1/2 currency record into pjp1 from fact whose crti cannot be updated
5345 -- (meaning, whose func curr <> gl1, gl2).
5346 --
5347 -- SQL4: Insert primary slice from pjp0 for only those rows whose crti cannot be updated.
5348 -- SQL5: Insert pri slice LNN from pjp0 whose CRTI can simply be updated with updated crti.
5349 -- SQL6: Insert GL1/2 currency record into pjp1 from pjp0 whose crti cannot be updated
5350 -- (meaning, whose func curr <> gl1, gl2).
5351 --
5352 CREATE_GL1_GL2_CURR_RCDS;
5353 print_time(' Converted functional currency amounts to global 1, 2 currency amounts. ');
5354
5355
5356 --
5357 -- Proration to other calendars.
5358 --
5359 PRORATE_TO_ALL_CALENDARS;
5360 print_time(' Prorated to all other calendars. ');
5361
5362
5363 --
5364 -- RBS rollup.
5365 --
5366 PJI_FM_PLAN_MAINT_T_PVT.ROLLUP_FPR_RBS_T_SLICE;
5367 print_time(' Created RBS rollup slice. ');
5368
5369
5370 --
5371 -- WBS rollup.
5372 --
5373 PJI_FM_PLAN_MAINT_T_PVT.CREATE_WBSRLP;
5374 print_time(' Created WBS rollup slice. ');
5375
5376
5377 --
5378 -- Calendar rollup.
5379 --
5380 PJI_FM_PLAN_CAL_RLPS_T.CREATE_FP_PA_PRI_ROLLUP;
5381 print_time(' PA calendar rollup. ');
5382
5383 PJI_FM_PLAN_CAL_RLPS_T.CREATE_FP_GL_PRI_ROLLUP;
5384 print_time(' GL calendar rollup. ');
5385
5386 PJI_FM_PLAN_CAL_RLPS_T.CREATE_FP_ALLT_PRI_AGGREGATE;
5387 print_time(' All time slice rollup. ');
5388
5389 PJI_FM_PLAN_CAL_RLPS_T.CREATE_FP_ENT_ROLLUP;
5390 print_time(' Enterprise calendar rollup. ');
5391
5392 --
5393 -- Mark pji summarized flag in pa budget versions table.
5394 -- If rates are missing or GL1/GL2 definitions are missing, then mark those plans as 'P'
5395 --
5396 MARK_DANGLING_PLAN_VERSIONS;
5397
5398 print_time('........CONV_TO_GLOBAL_CURRENCIES: End. ' );
5399
5400 EXCEPTION
5401 WHEN OTHERS THEN
5402 print_time('........CONV_TO_GLOBAL_CURRENCIES: Exception ' || sqlerrm );
5403 FND_MSG_PUB.add_exc_msg( p_pkg_name => g_package_name ,
5404 p_procedure_name => 'CONV_TO_GLOBAL_CURRENCIES');
5405 RAISE;
5406 END;
5407 */
5408
5409
5410 PROCEDURE DELETE_DNGLRATE_PLNVER_DATA IS
5411 BEGIN
5412
5413 DELETE FROM pji_fp_aggr_pjp1_t
5414 WHERE plan_version_id IN
5415 (
5416 SELECT DISTINCT plan_version_id
5417 FROM pji_fp_aggr_pjp1_t
5418 WHERE worker_id = g_worker_id
5419 AND rate_dangling_flag IS NOT NULL )
5420 AND worker_id = g_worker_id;
5421
5422 EXCEPTION
5423 WHEN OTHERS THEN
5424 FND_MSG_PUB.add_exc_msg( p_pkg_name => g_package_name ,
5425 p_procedure_name => 'DELETE_DNGLRATE_PLNVER_DATA');
5426 RAISE;
5427 END;
5428
5429
5430 /*
5431 --
5432 -- Inserts rows present in fact and pjp1 into pjp1 with inserted row worker id as
5433 -- g_worker_id.
5434 -- Logic is as follows:
5435 --
5436 -- SQL1: Reverse primary slice from fact for only those rows whose crti can be updated.
5437 -- SQL2: Insert pri slice LNN from fact where CRTI can simply be updated.
5438 -- SQL3: Insert GL1/2 currency record into pjp1 from fact whose crti cannot be updated
5439 -- (meaning, whose func curr <> gl1, gl2).
5440 --
5441 -- SQL4: Insert primary slice from pjp0 for only those rows whose crti cannot be updated.
5442 -- SQL5: Insert pri slice LNN from pjp0 whose CRTI can simply be updated with updated crti.
5443 -- SQL6: Insert GL1/2 currency record into pjp1 from pjp0 whose crti cannot be updated
5444 -- (meaning, whose func curr <> gl1, gl2).
5445 --
5446 PROCEDURE CREATE_GL1_GL2_CURR_RCDS IS
5447 BEGIN
5448
5449 print_time('........CREATE_GL1_GL2_CURR_RCDS: Begin. ' );
5450
5451
5452
5453 INSERT INTO PJI_FP_AGGR_PJP1_T
5454 (
5455 WORKER_ID
5456 , PROJECT_ID
5457 , PROJECT_ORG_ID
5458 , PROJECT_ORGANIZATION_ID
5459 , PROJECT_ELEMENT_ID
5460 , TIME_ID
5461 , PERIOD_TYPE_ID
5462 , CALENDAR_TYPE
5463 , RBS_AGGR_LEVEL
5464 , WBS_ROLLUP_FLAG
5465 , PRG_ROLLUP_FLAG
5466 , CURR_RECORD_TYPE_ID
5467 , CURRENCY_CODE
5468 , RBS_ELEMENT_ID
5469 , RBS_VERSION_ID
5470 , PLAN_VERSION_ID
5471 , PLAN_TYPE_ID
5472 , RAW_COST
5473 , BRDN_COST
5474 , REVENUE
5475 , BILL_RAW_COST
5476 , BILL_BRDN_COST
5477 , BILL_LABOR_RAW_COST
5478 , BILL_LABOR_BRDN_COST
5479 , BILL_LABOR_HRS
5480 , EQUIPMENT_RAW_COST
5481 , EQUIPMENT_BRDN_COST
5482 , CAPITALIZABLE_RAW_COST
5483 , CAPITALIZABLE_BRDN_COST
5484 , LABOR_RAW_COST
5485 , LABOR_BRDN_COST
5486 , LABOR_HRS
5487 , LABOR_REVENUE
5488 , EQUIPMENT_HOURS
5489 , BILLABLE_EQUIPMENT_HOURS
5490 , SUP_INV_COMMITTED_COST
5491 , PO_COMMITTED_COST
5492 , PR_COMMITTED_COST
5493 , OTH_COMMITTED_COST
5494 , ACT_LABOR_HRS
5495 , ACT_EQUIP_HRS
5496 , ACT_LABOR_BRDN_COST
5497 , ACT_EQUIP_BRDN_COST
5498 , ACT_BRDN_COST
5499 , ACT_RAW_COST
5500 , ACT_REVENUE
5501 , ACT_LABOR_RAW_COST
5502 , ACT_EQUIP_RAW_COST
5503 , ETC_LABOR_HRS
5504 , ETC_EQUIP_HRS
5505 , ETC_LABOR_BRDN_COST
5506 , ETC_EQUIP_BRDN_COST
5507 , ETC_BRDN_COST
5508 , ETC_RAW_COST
5509 , ETC_LABOR_RAW_COST
5510 , ETC_EQUIP_RAW_COST
5511 , CUSTOM1
5512 , CUSTOM2
5513 , CUSTOM3
5514 , CUSTOM4
5515 , CUSTOM5
5516 , CUSTOM6
5517 , CUSTOM7
5518 , CUSTOM8
5519 , CUSTOM9
5520 , CUSTOM10
5521 , CUSTOM11
5522 , CUSTOM12
5523 , CUSTOM13
5524 , CUSTOM14
5525 , CUSTOM15
5526 , LINE_TYPE
5527 , RATE_DANGLING_FLAG
5528 , TIME_DANGLING_FLAG
5529 -- , START_DATE
5530 -- , END_DATE
5531 , PRG_LEVEL
5532 , PLAN_TYPE_CODE -- 4471527
5533 )
5534 SELECT
5535 g_worker_id WORKER_ID
5536 , PROJECT_ID
5537 , PROJECT_ORG_ID
5538 , PROJECT_ORGANIZATION_ID
5539 , PROJECT_ELEMENT_ID
5540 , TIME_ID
5541 , PERIOD_TYPE_ID
5542 , CALENDAR_TYPE
5543 , RBS_AGGR_LEVEL
5544 , WBS_ROLLUP_FLAG
5545 , PRG_ROLLUP_FLAG
5546 , SUM(CURR_RECORD_TYPE_ID)
5547 , CURRENCY_CODE
5548 , RBS_ELEMENT_ID
5549 , RBS_VERSION_ID
5550 , PLAN_VERSION_ID
5551 , PLAN_TYPE_ID
5552 , max(RAW_COST)
5553 , max(BRDN_COST)
5554 , max(REVENUE)
5555 , max(BILL_RAW_COST)
5556 , max(BILL_BRDN_COST)
5557 , max(BILL_LABOR_RAW_COST)
5558 , max(BILL_LABOR_BRDN_COST)
5559 , max(BILL_LABOR_HRS)
5560 , max(EQUIPMENT_RAW_COST)
5561 , max(EQUIPMENT_BRDN_COST)
5562 , max(CAPITALIZABLE_RAW_COST)
5563 , max(CAPITALIZABLE_BRDN_COST)
5564 , max(LABOR_RAW_COST)
5565 , max(LABOR_BRDN_COST)
5566 , max(LABOR_HRS)
5567 , max(LABOR_REVENUE)
5568 , max(EQUIPMENT_HOURS)
5569 , max(BILLABLE_EQUIPMENT_HOURS)
5570 , max(SUP_INV_COMMITTED_COST)
5571 , max(PO_COMMITTED_COST)
5572 , max(PR_COMMITTED_COST)
5573 , max(OTH_COMMITTED_COST)
5574 , max(ACT_LABOR_HRS)
5575 , max(ACT_EQUIP_HRS)
5576 , max(ACT_LABOR_BRDN_COST)
5577 , max(ACT_EQUIP_BRDN_COST)
5578 , max(ACT_BRDN_COST)
5579 , max(ACT_RAW_COST)
5580 , max(ACT_REVENUE)
5581 , max(ACT_LABOR_RAW_COST)
5582 , max(ACT_EQUIP_RAW_COST)
5583 , max(ETC_LABOR_HRS)
5584 , max(ETC_EQUIP_HRS)
5585 , max(ETC_LABOR_BRDN_COST)
5586 , max(ETC_EQUIP_BRDN_COST)
5587 , max(ETC_BRDN_COST)
5588 , max(ETC_RAW_COST)
5589 , max(ETC_LABOR_RAW_COST)
5590 , max(ETC_EQUIP_RAW_COST)
5591 , max(CUSTOM1)
5592 , max(CUSTOM2)
5593 , max(CUSTOM3)
5594 , max(CUSTOM4)
5595 , max(CUSTOM5)
5596 , max(CUSTOM6)
5597 , max(CUSTOM7)
5598 , max(CUSTOM8)
5599 , max(CUSTOM9)
5600 , max(CUSTOM10)
5601 , max(CUSTOM11)
5602 , max(CUSTOM12)
5603 , max(CUSTOM13)
5604 , max(CUSTOM14)
5605 , max(CUSTOM15)
5606 , 'CF' LINE_TYPE
5607 , RATE_DANGLING_FLAG
5608 , TIME_DANGLING_FLAG
5609 -- , START_DATE
5610 -- , END_DATE
5611 , g_default_prg_level PRG_LEVEL
5612 , PLAN_TYPE_CODE -- 4471527
5613 FROM
5614 (
5615 SELECT -- SQL1: Reversal of LNN Slice data in fact
5616 fact.PROJECT_ID
5617 , fact.PROJECT_ORG_ID
5618 , fact.PROJECT_ORGANIZATION_ID
5619 , fact.PROJECT_ELEMENT_ID
5620 , fact.TIME_ID
5621 , fact.PERIOD_TYPE_ID
5622 , fact.CALENDAR_TYPE
5623 , fact.RBS_AGGR_LEVEL
5624 , fact.WBS_ROLLUP_FLAG
5625 , fact.PRG_ROLLUP_FLAG
5626 , fact.CURR_RECORD_TYPE_ID
5627 , fact.CURRENCY_CODE
5628 , fact.RBS_ELEMENT_ID
5629 , fact.RBS_VERSION_ID
5630 , fact.PLAN_VERSION_ID
5631 , fact.PLAN_TYPE_ID
5632 , - RAW_COST RAW_COST
5633 , - BRDN_COST BRDN_COST
5634 , - REVENUE REVENUE
5635 , - BILL_RAW_COST BILL_RAW_COST
5636 , - BILL_BRDN_COST BILL_BRDN_COST
5637 , - BILL_LABOR_RAW_COST BILL_LABOR_RAW_COST
5638 , - BILL_LABOR_BRDN_COST BILL_LABOR_BRDN_COST
5639 , - BILL_LABOR_HRS BILL_LABOR_HRS
5640 , - EQUIPMENT_RAW_COST EQUIPMENT_RAW_COST
5641 , - EQUIPMENT_BRDN_COST EQUIPMENT_BRDN_COST
5642 , - CAPITALIZABLE_RAW_COST CAPITALIZABLE_RAW_COST
5643 , - CAPITALIZABLE_BRDN_COST CAPITALIZABLE_BRDN_COST
5644 , - LABOR_RAW_COST LABOR_RAW_COST
5645 , - LABOR_BRDN_COST LABOR_BRDN_COST
5646 , - LABOR_HRS LABOR_HRS
5647 , - LABOR_REVENUE LABOR_REVENUE
5648 , - EQUIPMENT_HOURS EQUIPMENT_HOURS
5649 , - BILLABLE_EQUIPMENT_HOURS BILLABLE_EQUIPMENT_HOURS
5650 , - SUP_INV_COMMITTED_COST SUP_INV_COMMITTED_COST
5651 , - PO_COMMITTED_COST PO_COMMITTED_COST
5652 , - PR_COMMITTED_COST PR_COMMITTED_COST
5653 , - OTH_COMMITTED_COST OTH_COMMITTED_COST
5654 , - ACT_LABOR_HRS ACT_LABOR_HRS
5655 , - ACT_EQUIP_HRS ACT_EQUIP_HRS
5656 , - ACT_LABOR_BRDN_COST ACT_LABOR_BRDN_COST
5657 , - ACT_EQUIP_BRDN_COST ACT_EQUIP_BRDN_COST
5658 , - ACT_BRDN_COST ACT_BRDN_COST
5659 , - ACT_RAW_COST ACT_RAW_COST
5660 , - ACT_REVENUE ACT_REVENUE
5661 , - ACT_LABOR_RAW_COST ACT_LABOR_RAW_COST
5662 , - ACT_EQUIP_RAW_COST ACT_EQUIP_RAW_COST
5663 , - ETC_LABOR_HRS ETC_LABOR_HRS
5664 , - ETC_EQUIP_HRS ETC_EQUIP_HRS
5665 , - ETC_LABOR_BRDN_COST ETC_LABOR_BRDN_COST
5666 , - ETC_EQUIP_BRDN_COST ETC_EQUIP_BRDN_COST
5667 , - ETC_BRDN_COST ETC_BRDN_COST
5668 , - ETC_RAW_COST ETC_RAW_COST
5669 , - ETC_LABOR_RAW_COST ETC_LABOR_RAW_COST
5670 , - ETC_EQUIP_RAW_COST ETC_EQUIP_RAW_COST
5671 , - CUSTOM1 CUSTOM1
5672 , - CUSTOM2 CUSTOM2
5673 , - CUSTOM3 CUSTOM3
5674 , - CUSTOM4 CUSTOM4
5675 , - CUSTOM5 CUSTOM5
5676 , - CUSTOM6 CUSTOM6
5677 , - CUSTOM7 CUSTOM7
5678 , - CUSTOM8 CUSTOM8
5679 , - CUSTOM9 CUSTOM9
5680 , - CUSTOM10 CUSTOM10
5681 , - CUSTOM11 CUSTOM11
5682 , - CUSTOM12 CUSTOM12
5683 , - CUSTOM13 CUSTOM13
5684 , - CUSTOM14 CUSTOM14
5685 , - CUSTOM15 CUSTOM15
5686 -- , 'OF' LINE_TYPE
5687 , null RATE_DANGLING_FLAG
5688 , null TIME_DANGLING_FLAG
5689 -- , 0 prg_level
5690 , fact.plan_type_code plan_type_code -- 4471527
5691 FROM pji_fp_xbs_accum_f fact
5692 , pji_fm_extr_plnver3_t ver3
5693 WHERE 1=1
5694 AND rbs_aggr_level = g_lowest_level
5695 AND wbs_rollup_flag = 'N'
5696 AND prg_rollup_flag = 'N'
5697 AND fact.project_id = ver3.project_id
5698 AND fact.plan_version_id = ver3.plan_version_id
5699 AND fact.plan_type_code = ver3.plan_type_code --4471527
5700 AND fact.currency_code IN (g_global1_currency_code, g_global2_currency_code)
5701 UNION ALL
5702 SELECT -- SQL4: Insert GL1/2 currency record into pjp1 from pjp0 where func curr <> gl1, gl2.
5703 fact.PROJECT_ID
5704 , PROJECT_ORG_ID
5705 , PROJECT_ORGANIZATION_ID
5706 , PROJECT_ELEMENT_ID
5707 , fact.TIME_ID
5708 , PERIOD_TYPE_ID
5709 , CALENDAR_TYPE
5710 , RBS_AGGR_LEVEL
5711 , WBS_ROLLUP_FLAG
5712 , PRG_ROLLUP_FLAG
5713 , DECODE ( curr.curr_code
5714 , g_global1_currency_code, 2 + DECODE ( g_global1_currency_code, g_global2_currency_code, 1, 0)
5715 , g_global2_currency_code, 1 ) CURR_RECORD_TYPE_ID
5716 , curr.curr_code CURRENCY_CODE
5717 , RBS_ELEMENT_ID
5718 , RBS_VERSION_ID
5719 , fact.PLAN_VERSION_ID
5720 , fact.PLAN_TYPE_ID
5721 , ROUND(decode (curr.curr_code, g_global1_currency_code, rates.rate, g_global2_currency_code, rates.rate2 ) *RAW_COST/curr.mau )*curr.mau RAW_COST -- curr.mau -- rates.mau rates.mau2
5722 , ROUND(decode (curr.curr_code, g_global1_currency_code, rates.rate, g_global2_currency_code, rates.rate2 ) *BRDN_COST/curr.mau )*curr.mau BRDN_COST
5723 , ROUND(decode (curr.curr_code, g_global1_currency_code, rates.rate, g_global2_currency_code, rates.rate2 ) *REVENUE/curr.mau )*curr.mau REVENUE
5724 , ROUND(decode (curr.curr_code, g_global1_currency_code, rates.rate, g_global2_currency_code, rates.rate2 ) *BILL_RAW_COST/curr.mau )*curr.mau BILL_RAW_COST
5725 , ROUND(decode (curr.curr_code, g_global1_currency_code, rates.rate, g_global2_currency_code, rates.rate2 ) *BILL_BRDN_COST/curr.mau )*curr.mau BILL_BRDN_COST
5726 , ROUND(decode (curr.curr_code, g_global1_currency_code, rates.rate, g_global2_currency_code, rates.rate2 ) *BILL_LABOR_RAW_COST/curr.mau )*curr.mau BILL_LABOR_RAW_COST
5727 , ROUND(decode (curr.curr_code, g_global1_currency_code, rates.rate, g_global2_currency_code, rates.rate2 ) *BILL_LABOR_BRDN_COST/curr.mau )*curr.mau BILL_LABOR_BRDN_COST
5728 , BILL_LABOR_HRS
5729 , ROUND(decode (curr.curr_code, g_global1_currency_code, rates.rate, g_global2_currency_code, rates.rate2 ) * EQUIPMENT_RAW_COST/curr.mau )*curr.mau EQUIPMENT_RAW_COST
5730 , ROUND(decode (curr.curr_code, g_global1_currency_code, rates.rate, g_global2_currency_code, rates.rate2 ) * EQUIPMENT_BRDN_COST/curr.mau )*curr.mau EQUIPMENT_BRDN_COST
5731 , ROUND(decode (curr.curr_code, g_global1_currency_code, rates.rate, g_global2_currency_code, rates.rate2 ) * CAPITALIZABLE_RAW_COST/curr.mau )*curr.mau CAPITALIZABLE_RAW_COST
5732 , ROUND(decode (curr.curr_code, g_global1_currency_code, rates.rate, g_global2_currency_code, rates.rate2 ) * CAPITALIZABLE_BRDN_COST/curr.mau )*curr.mau CAPITALIZABLE_BRDN_COST
5733 , ROUND(decode (curr.curr_code, g_global1_currency_code, rates.rate, g_global2_currency_code, rates.rate2 ) * LABOR_RAW_COST/curr.mau )*curr.mau LABOR_RAW_COST
5734 , ROUND(decode (curr.curr_code, g_global1_currency_code, rates.rate, g_global2_currency_code, rates.rate2 ) * LABOR_BRDN_COST/curr.mau )*curr.mau LABOR_BRDN_COST
5735 , LABOR_HRS
5736 , ROUND(decode (curr.curr_code, g_global1_currency_code, rates.rate, g_global2_currency_code, rates.rate2 ) * LABOR_REVENUE/curr.mau )*curr.mau LABOR_REVENUE
5737 , EQUIPMENT_HOURS
5738 , BILLABLE_EQUIPMENT_HOURS
5739 , ROUND(decode (curr.curr_code, g_global1_currency_code, rates.rate, g_global2_currency_code, rates.rate2 ) * SUP_INV_COMMITTED_COST/curr.mau )*curr.mau SUP_INV_COMMITTED_COST
5740 , ROUND(decode (curr.curr_code, g_global1_currency_code, rates.rate, g_global2_currency_code, rates.rate2 ) * PO_COMMITTED_COST/curr.mau )*curr.mau PO_COMMITTED_COST
5741 , ROUND(decode (curr.curr_code, g_global1_currency_code, rates.rate, g_global2_currency_code, rates.rate2 ) * PR_COMMITTED_COST/curr.mau )*curr.mau PR_COMMITTED_COST
5742 , ROUND(decode (curr.curr_code, g_global1_currency_code, rates.rate, g_global2_currency_code, rates.rate2 ) * OTH_COMMITTED_COST/curr.mau )*curr.mau OTH_COMMITTED_COST
5743 , ACT_LABOR_HRS
5744 , ACT_EQUIP_HRS
5745 , ROUND(decode (curr.curr_code, g_global1_currency_code, rates.rate, g_global2_currency_code, rates.rate2 ) * ACT_LABOR_BRDN_COST/curr.mau )*curr.mau ACT_LABOR_BRDN_COST
5746 , ROUND(decode (curr.curr_code, g_global1_currency_code, rates.rate, g_global2_currency_code, rates.rate2 ) * ACT_EQUIP_BRDN_COST/curr.mau )*curr.mau ACT_EQUIP_BRDN_COST
5747 , ROUND(decode (curr.curr_code, g_global1_currency_code, rates.rate, g_global2_currency_code, rates.rate2 ) * ACT_BRDN_COST/curr.mau )*curr.mau ACT_BRDN_COST
5748 , ROUND(decode (curr.curr_code, g_global1_currency_code, rates.rate, g_global2_currency_code, rates.rate2 ) * ACT_RAW_COST/curr.mau )*curr.mau ACT_RAW_COST
5749 , ROUND(decode (curr.curr_code, g_global1_currency_code, rates.rate, g_global2_currency_code, rates.rate2 ) * ACT_REVENUE/curr.mau )*curr.mau ACT_REVENUE
5750 , ROUND(decode (curr.curr_code, g_global1_currency_code, rates.rate, g_global2_currency_code, rates.rate2 ) * ACT_LABOR_RAW_COST/curr.mau )*curr.mau ACT_LABOR_RAW_COST
5751 , ROUND(decode (curr.curr_code, g_global1_currency_code, rates.rate, g_global2_currency_code, rates.rate2 ) * ACT_EQUIP_RAW_COST/curr.mau )*curr.mau ACT_EQUIP_RAW_COST
5752 , ETC_LABOR_HRS
5753 , ETC_EQUIP_HRS
5754 , ROUND(decode (curr.curr_code, g_global1_currency_code, rates.rate, g_global2_currency_code, rates.rate2 ) * ETC_LABOR_BRDN_COST/curr.mau )*curr.mau ETC_LABOR_BRDN_COST
5755 , ROUND(decode (curr.curr_code, g_global1_currency_code, rates.rate, g_global2_currency_code, rates.rate2 ) * ETC_EQUIP_BRDN_COST/curr.mau )*curr.mau ETC_EQUIP_BRDN_COST
5756 , ROUND(decode (curr.curr_code, g_global1_currency_code, rates.rate, g_global2_currency_code, rates.rate2 ) * ETC_BRDN_COST/curr.mau )*curr.mau ETC_BRDN_COST
5757 , ROUND(decode (curr.curr_code, g_global1_currency_code, rates.rate, g_global2_currency_code, rates.rate2 ) * ETC_RAW_COST/curr.mau )*curr.mau ETC_RAW_COST
5758 , ROUND(decode (curr.curr_code, g_global1_currency_code, rates.rate, g_global2_currency_code, rates.rate2 ) * ETC_LABOR_RAW_COST/curr.mau )*curr.mau ETC_LABOR_RAW_COST
5759 , ROUND(decode (curr.curr_code, g_global1_currency_code, rates.rate, g_global2_currency_code, rates.rate2 ) * ETC_EQUIP_RAW_COST/curr.mau )*curr.mau ETC_EQUIP_RAW_COST
5760 , CUSTOM1
5761 , CUSTOM2
5762 , CUSTOM3
5763 , CUSTOM4
5764 , CUSTOM5
5765 , CUSTOM6
5766 , CUSTOM7
5767 , CUSTOM8
5768 , CUSTOM9
5769 , CUSTOM10
5770 , CUSTOM11
5771 , CUSTOM12
5772 , CUSTOM13
5773 , CUSTOM14
5774 , CUSTOM15
5775 -- , 'OG' LINE_TYPE
5776 , DECODE ( DECODE (curr.curr_code
5777 , g_global1_currency_code, rates.rate
5778 , g_global2_currency_code, rates.rate2 )
5779 , NULL, curr.curr_code
5780 , NULL) rate_dangling_flag
5781 , null TIME_DANGLING_FLAG
5782 -- , 0 prg_level
5783 , fact.plan_type_code plan_type_code -- 4471527
5784 FROM pji_fp_aggr_pjp1_t fact
5785 , pa_projects_all ppa
5786 , ( SELECT g_global1_currency_code curr_code, 0.01 mau FROM DUAL
5787 UNION
5788 SELECT g_global2_currency_code curr_code, 0.01 mau FROM DUAL
5789 ) curr
5790 , PJI_FM_AGGR_DLY_RATES_T rates
5791 , ( SELECT cal_period_id period_id, start_date, end_date FROM pji_time_cal_period_v
5792 UNION ALL
5793 SELECT ent_period_id, start_date, end_date FROM pji_time_ent_period_v
5794 ) dates
5795 , pji_fm_extr_plnver3_t ver
5796 WHERE 1=1
5797 AND fact.project_id = ver.project_id -- new
5798 AND fact.plan_version_id = ver.plan_version_id
5799 AND fact.plan_type_code = ver.plan_type_code -- 4471527
5800 AND ver.wp_flag = 'N'
5801 AND ver.baselined_flag = 'Y'
5802 AND fact.project_id = ppa.project_id
5803 AND fact.time_id = dates.period_id
5804 AND fact.worker_id = -1
5805 AND ( ppa.projfunc_currency_code <> g_global1_currency_code
5806 OR ppa.projfunc_currency_code <> g_global2_currency_code )
5807 AND BITAND ( fact.curr_record_type_id, 4) = 4 -- 00100: Converting from Proj Func Currency.
5808 AND fact.currency_code = ppa.projfunc_currency_code
5809 AND rates.time_id = fact.time_id
5810 AND rates.pf_currency_code = ppa.projfunc_currency_code
5811 AND fact.calendar_type IN (g_gl_cal_str, g_pa_cal_str)
5812 UNION ALL
5813 SELECT -- SQL3: Insert GL1/2 currency record into pjp1 from fact where func curr <> gl1, gl2.
5814 fact.PROJECT_ID
5815 , PROJECT_ORG_ID
5816 , PROJECT_ORGANIZATION_ID
5817 -- , PARTITION_ID
5818 , PROJECT_ELEMENT_ID
5819 , fact.TIME_ID
5820 , PERIOD_TYPE_ID
5821 , CALENDAR_TYPE
5822 , RBS_AGGR_LEVEL
5823 , WBS_ROLLUP_FLAG
5824 , PRG_ROLLUP_FLAG
5825 , DECODE ( curr.curr_code
5826 , g_global1_currency_code, 2 + DECODE ( g_global1_currency_code, g_global2_currency_code, 1, 0)
5827 , g_global2_currency_code, 1 ) CURR_RECORD_TYPE_ID
5828 , curr.curr_code CURRENCY_CODE
5829 , RBS_ELEMENT_ID
5830 , RBS_VERSION_ID
5831 , fact.PLAN_VERSION_ID
5832 , fact.PLAN_TYPE_ID
5833 , ROUND(decode (curr.curr_code, g_global1_currency_code, rates.rate, g_global2_currency_code, rates.rate2 ) *RAW_COST/curr.mau )*curr.mau RAW_COST -- curr.mau -- rates.mau rates.mau2
5834 , ROUND(decode (curr.curr_code, g_global1_currency_code, rates.rate, g_global2_currency_code, rates.rate2 ) *BRDN_COST/curr.mau )*curr.mau BRDN_COST
5835 , ROUND(decode (curr.curr_code, g_global1_currency_code, rates.rate, g_global2_currency_code, rates.rate2 ) *REVENUE/curr.mau )*curr.mau REVENUE
5836 , ROUND(decode (curr.curr_code, g_global1_currency_code, rates.rate, g_global2_currency_code, rates.rate2 ) *BILL_RAW_COST/curr.mau )*curr.mau BILL_RAW_COST
5837 , ROUND(decode (curr.curr_code, g_global1_currency_code, rates.rate, g_global2_currency_code, rates.rate2 ) *BILL_BRDN_COST/curr.mau )*curr.mau BILL_BRDN_COST
5838 , ROUND(decode (curr.curr_code, g_global1_currency_code, rates.rate, g_global2_currency_code, rates.rate2 ) *BILL_LABOR_RAW_COST/curr.mau )*curr.mau BILL_LABOR_RAW_COST
5839 , ROUND(decode (curr.curr_code, g_global1_currency_code, rates.rate, g_global2_currency_code, rates.rate2 ) *BILL_LABOR_BRDN_COST/curr.mau )*curr.mau BILL_LABOR_BRDN_COST
5840 , BILL_LABOR_HRS
5841 , ROUND(decode (curr.curr_code, g_global1_currency_code, rates.rate, g_global2_currency_code, rates.rate2 ) * EQUIPMENT_RAW_COST/curr.mau )*curr.mau EQUIPMENT_RAW_COST
5842 , ROUND(decode (curr.curr_code, g_global1_currency_code, rates.rate, g_global2_currency_code, rates.rate2 ) * EQUIPMENT_BRDN_COST/curr.mau )*curr.mau EQUIPMENT_BRDN_COST
5843 , ROUND(decode (curr.curr_code, g_global1_currency_code, rates.rate, g_global2_currency_code, rates.rate2 ) * CAPITALIZABLE_RAW_COST/curr.mau )*curr.mau CAPITALIZABLE_RAW_COST
5844 , ROUND(decode (curr.curr_code, g_global1_currency_code, rates.rate, g_global2_currency_code, rates.rate2 ) * CAPITALIZABLE_BRDN_COST/curr.mau )*curr.mau CAPITALIZABLE_BRDN_COST
5845 , ROUND(decode (curr.curr_code, g_global1_currency_code, rates.rate, g_global2_currency_code, rates.rate2 ) * LABOR_RAW_COST/curr.mau )*curr.mau LABOR_RAW_COST
5846 , ROUND(decode (curr.curr_code, g_global1_currency_code, rates.rate, g_global2_currency_code, rates.rate2 ) * LABOR_BRDN_COST/curr.mau )*curr.mau LABOR_BRDN_COST
5847 , LABOR_HRS
5848 , ROUND(decode (curr.curr_code, g_global1_currency_code, rates.rate, g_global2_currency_code, rates.rate2 ) * LABOR_REVENUE/curr.mau )*curr.mau LABOR_REVENUE
5849 , EQUIPMENT_HOURS
5850 , BILLABLE_EQUIPMENT_HOURS
5851 , ROUND(decode (curr.curr_code, g_global1_currency_code, rates.rate, g_global2_currency_code, rates.rate2 ) * SUP_INV_COMMITTED_COST/curr.mau )*curr.mau SUP_INV_COMMITTED_COST
5852 , ROUND(decode (curr.curr_code, g_global1_currency_code, rates.rate, g_global2_currency_code, rates.rate2 ) * PO_COMMITTED_COST/curr.mau )*curr.mau PO_COMMITTED_COST
5853 , ROUND(decode (curr.curr_code, g_global1_currency_code, rates.rate, g_global2_currency_code, rates.rate2 ) * PR_COMMITTED_COST/curr.mau )*curr.mau PR_COMMITTED_COST
5854 , ROUND(decode (curr.curr_code, g_global1_currency_code, rates.rate, g_global2_currency_code, rates.rate2 ) * OTH_COMMITTED_COST/curr.mau )*curr.mau OTH_COMMITTED_COST
5855 , ACT_LABOR_HRS
5856 , ACT_EQUIP_HRS
5857 , ROUND(decode (curr.curr_code, g_global1_currency_code, rates.rate, g_global2_currency_code, rates.rate2 ) * ACT_LABOR_BRDN_COST/curr.mau )*curr.mau ACT_LABOR_BRDN_COST
5858 , ROUND(decode (curr.curr_code, g_global1_currency_code, rates.rate, g_global2_currency_code, rates.rate2 ) * ACT_EQUIP_BRDN_COST/curr.mau )*curr.mau ACT_EQUIP_BRDN_COST
5859 , ROUND(decode (curr.curr_code, g_global1_currency_code, rates.rate, g_global2_currency_code, rates.rate2 ) * ACT_BRDN_COST/curr.mau )*curr.mau ACT_BRDN_COST
5860 , ROUND(decode (curr.curr_code, g_global1_currency_code, rates.rate, g_global2_currency_code, rates.rate2 ) * ACT_RAW_COST/curr.mau )*curr.mau ACT_RAW_COST
5861 , ROUND(decode (curr.curr_code, g_global1_currency_code, rates.rate, g_global2_currency_code, rates.rate2 ) * ACT_REVENUE/curr.mau )*curr.mau ACT_REVENUE
5862 , ROUND(decode (curr.curr_code, g_global1_currency_code, rates.rate, g_global2_currency_code, rates.rate2 ) * ACT_LABOR_RAW_COST/curr.mau )*curr.mau ACT_LABOR_RAW_COST
5863 , ROUND(decode (curr.curr_code, g_global1_currency_code, rates.rate, g_global2_currency_code, rates.rate2 ) * ACT_EQUIP_RAW_COST/curr.mau )*curr.mau ACT_EQUIP_RAW_COST
5864 , ETC_LABOR_HRS
5865 , ETC_EQUIP_HRS
5866 , ROUND(decode (curr.curr_code, g_global1_currency_code, rates.rate, g_global2_currency_code, rates.rate2 ) * ETC_LABOR_BRDN_COST/curr.mau )*curr.mau ETC_LABOR_BRDN_COST
5867 , ROUND(decode (curr.curr_code, g_global1_currency_code, rates.rate, g_global2_currency_code, rates.rate2 ) * ETC_EQUIP_BRDN_COST/curr.mau )*curr.mau ETC_EQUIP_BRDN_COST
5868 , ROUND(decode (curr.curr_code, g_global1_currency_code, rates.rate, g_global2_currency_code, rates.rate2 ) * ETC_BRDN_COST/curr.mau )*curr.mau ETC_BRDN_COST
5869 , ROUND(decode (curr.curr_code, g_global1_currency_code, rates.rate, g_global2_currency_code, rates.rate2 ) * ETC_RAW_COST/curr.mau )*curr.mau ETC_RAW_COST
5870 , ROUND(decode (curr.curr_code, g_global1_currency_code, rates.rate, g_global2_currency_code, rates.rate2 ) * ETC_LABOR_RAW_COST/curr.mau )*curr.mau ETC_LABOR_RAW_COST
5871 , ROUND(decode (curr.curr_code, g_global1_currency_code, rates.rate, g_global2_currency_code, rates.rate2 ) * ETC_EQUIP_RAW_COST/curr.mau )*curr.mau ETC_EQUIP_RAW_COST
5872 , CUSTOM1
5873 , CUSTOM2
5874 , CUSTOM3
5875 , CUSTOM4
5876 , CUSTOM5
5877 , CUSTOM6
5878 , CUSTOM7
5879 , CUSTOM8
5880 , CUSTOM9
5881 , CUSTOM10
5882 , CUSTOM11
5883 , CUSTOM12
5884 , CUSTOM13
5885 , CUSTOM14
5886 , CUSTOM15
5887 -- , 'OG' LINE_TYPE
5888 , DECODE ( DECODE (curr.curr_code
5889 , g_global1_currency_code, rates.rate
5890 , g_global2_currency_code, rates.rate2 )
5891 , NULL, curr.curr_code
5892 , NULL) rate_dangling_flag
5893 , null TIME_DANGLING_FLAG
5894 -- , 0 prg_level
5895 , fact.plan_type_code plan_type_code -- 4471527
5896 FROM pji_fp_xbs_accum_f fact
5897 , pa_projects_all ppa
5898 , ( SELECT g_global1_currency_code curr_code, 0.01 mau FROM DUAL
5899 UNION
5900 SELECT g_global2_currency_code curr_code, 0.01 mau FROM DUAL
5901 ) curr
5902 , PJI_FM_AGGR_DLY_RATES_T rates
5903 , ( SELECT cal_period_id period_id, start_date, end_date FROM pji_time_cal_period_v
5904 UNION ALL
5905 SELECT ent_period_id, start_date, end_date FROM pji_time_ent_period_v
5906 ) dates
5907 , pji_fm_extr_plnver3_t ver
5908 WHERE 1=1
5909 AND fact.project_id = ver.project_id -- new
5910 AND fact.plan_version_id = ver.plan_version_id
5911 ANd fact.plan_type_code = ver.plan_type_code -- 4471527
5912 AND ver.wp_flag = 'N'
5913 AND ver.baselined_flag = 'Y'
5914 AND fact.project_id = ppa.project_id
5915 AND fact.time_id = dates.period_id
5916 AND ( ppa.projfunc_currency_code <> g_global1_currency_code
5917 OR ppa.projfunc_currency_code <> g_global2_currency_code )
5918 AND BITAND ( fact.curr_record_type_id, 4) = 4 -- 00100: Converting from Proj Func Currency.
5919 AND fact.currency_code = ppa.projfunc_currency_code
5920 AND rates.time_id = fact.time_id
5921 AND rates.pf_currency_code = ppa.projfunc_currency_code
5922 AND fact.calendar_type IN (g_gl_cal_str, g_pa_cal_str)
5923 AND fact.rbs_aggr_level = g_lowest_level
5924 AND fact.wbs_rollup_flag = 'N'
5925 AND fact.prg_rollup_flag = 'N'
5926 UNION ALL
5927 SELECT -- SQL 5: Insert pri slice LNN from pjp0 where CRTI can simply be updated.
5928 fact.PROJECT_ID
5929 , PROJECT_ORG_ID
5930 , PROJECT_ORGANIZATION_ID
5931 , PROJECT_ELEMENT_ID
5932 , TIME_ID
5933 , PERIOD_TYPE_ID
5934 , CALENDAR_TYPE
5935 , RBS_AGGR_LEVEL
5936 , WBS_ROLLUP_FLAG
5937 , PRG_ROLLUP_FLAG
5938 , CURR_RECORD_TYPE_ID
5939 + DECODE (currency_code, g_global1_currency_code
5940 , DECODE(BITAND(fact.curr_record_type_id, 2), 0, 2, 0)
5941 , 0) -- 000.000.010 = 2
5942 + DECODE (currency_code, g_global2_currency_code
5943 , DECODE(BITAND(fact.curr_record_type_id, 1), 0, 1, 0)
5944 , 0) -- 000.000.010 = 2
5945 , CURRENCY_CODE
5946 , RBS_ELEMENT_ID
5947 , RBS_VERSION_ID
5948 , fact.PLAN_VERSION_ID
5949 , fact.PLAN_TYPE_ID
5950 , RAW_COST
5951 , BRDN_COST
5952 , REVENUE
5953 , BILL_RAW_COST
5954 , BILL_BRDN_COST
5955 , BILL_LABOR_RAW_COST
5956 , BILL_LABOR_BRDN_COST
5957 , BILL_LABOR_HRS
5958 , EQUIPMENT_RAW_COST
5959 , EQUIPMENT_BRDN_COST
5960 , CAPITALIZABLE_RAW_COST
5961 , CAPITALIZABLE_BRDN_COST
5962 , LABOR_RAW_COST
5963 , LABOR_BRDN_COST
5964 , LABOR_HRS
5965 , LABOR_REVENUE
5966 , EQUIPMENT_HOURS
5967 , BILLABLE_EQUIPMENT_HOURS
5968 , SUP_INV_COMMITTED_COST
5969 , PO_COMMITTED_COST
5970 , PR_COMMITTED_COST
5971 , OTH_COMMITTED_COST
5972 , ACT_LABOR_HRS
5973 , ACT_EQUIP_HRS
5974 , ACT_LABOR_BRDN_COST
5975 , ACT_EQUIP_BRDN_COST
5976 , ACT_BRDN_COST
5977 , ACT_RAW_COST
5978 , ACT_REVENUE
5979 , ACT_LABOR_RAW_COST
5980 , ACT_EQUIP_RAW_COST
5981 , ETC_LABOR_HRS
5982 , ETC_EQUIP_HRS
5983 , ETC_LABOR_BRDN_COST
5984 , ETC_EQUIP_BRDN_COST
5985 , ETC_BRDN_COST
5986 , ETC_RAW_COST
5987 , ETC_LABOR_RAW_COST
5988 , ETC_EQUIP_RAW_COST
5989 , CUSTOM1
5990 , CUSTOM2
5991 , CUSTOM3
5992 , CUSTOM4
5993 , CUSTOM5
5994 , CUSTOM6
5995 , CUSTOM7
5996 , CUSTOM8
5997 , CUSTOM9
5998 , CUSTOM10
5999 , CUSTOM11
6000 , CUSTOM12
6001 , CUSTOM13
6002 , CUSTOM14
6003 , CUSTOM15
6004 -- , LINE_TYPE
6005 , fact.RATE_DANGLING_FLAG
6006 , fact.TIME_DANGLING_FLAG
6007 -- , 0
6008 , fact.plan_type_code plan_type_code -- 4471527
6009 FROM pji_fp_aggr_pjp1_t fact
6010 , pji_fm_extr_plnver3_t ver
6011 WHERE 1=1
6012 AND fact.worker_id = -1
6013 AND fact.project_id = ver.project_id
6014 AND fact.plan_version_id = ver.plan_version_id
6015 ANd fact.plan_type_code = ver.plan_type_code -- 4471527
6016 AND rbs_aggr_level = g_lowest_level
6017 AND wbs_rollup_flag = 'N'
6018 AND prg_rollup_flag = 'N'
6019 AND ver.wp_flag = 'N'
6020 AND ver.baselined_flag = 'Y'
6021 AND BITAND(curr_record_type_id, 7) IN (4, 5, 6)
6022 AND currency_code in ( g_global1_currency_code, g_global2_currency_code )
6023 UNION ALL
6024 SELECT -- SQL 5: Insert pri slice LNN from fact where CRTI can simply be updated.
6025 fact.PROJECT_ID
6026 , PROJECT_ORG_ID
6027 , PROJECT_ORGANIZATION_ID
6028 , PROJECT_ELEMENT_ID
6029 , TIME_ID
6030 , PERIOD_TYPE_ID
6031 , CALENDAR_TYPE
6032 , RBS_AGGR_LEVEL
6033 , WBS_ROLLUP_FLAG
6034 , PRG_ROLLUP_FLAG
6035 , CURR_RECORD_TYPE_ID
6036 + DECODE (currency_code, g_global1_currency_code
6037 , DECODE(BITAND(fact.curr_record_type_id, 2), 0, 2, 0)
6038 , 0) -- 000.000.010 = 2
6039 + DECODE (currency_code, g_global2_currency_code
6040 , DECODE(BITAND(fact.curr_record_type_id, 1), 0, 1, 0)
6041 , 0) -- 000.000.010 = 2
6042 , CURRENCY_CODE
6043 , RBS_ELEMENT_ID
6044 , RBS_VERSION_ID
6045 , fact.PLAN_VERSION_ID
6046 , fact.PLAN_TYPE_ID
6047 , RAW_COST
6048 , BRDN_COST
6049 , REVENUE
6050 , BILL_RAW_COST
6051 , BILL_BRDN_COST
6052 , BILL_LABOR_RAW_COST
6053 , BILL_LABOR_BRDN_COST
6054 , BILL_LABOR_HRS
6055 , EQUIPMENT_RAW_COST
6056 , EQUIPMENT_BRDN_COST
6057 , CAPITALIZABLE_RAW_COST
6058 , CAPITALIZABLE_BRDN_COST
6059 , LABOR_RAW_COST
6060 , LABOR_BRDN_COST
6061 , LABOR_HRS
6062 , LABOR_REVENUE
6063 , EQUIPMENT_HOURS
6064 , BILLABLE_EQUIPMENT_HOURS
6065 , SUP_INV_COMMITTED_COST
6066 , PO_COMMITTED_COST
6067 , PR_COMMITTED_COST
6068 , OTH_COMMITTED_COST
6069 , ACT_LABOR_HRS
6070 , ACT_EQUIP_HRS
6071 , ACT_LABOR_BRDN_COST
6072 , ACT_EQUIP_BRDN_COST
6073 , ACT_BRDN_COST
6074 , ACT_RAW_COST
6075 , ACT_REVENUE
6076 , ACT_LABOR_RAW_COST
6077 , ACT_EQUIP_RAW_COST
6078 , ETC_LABOR_HRS
6079 , ETC_EQUIP_HRS
6080 , ETC_LABOR_BRDN_COST
6081 , ETC_EQUIP_BRDN_COST
6082 , ETC_BRDN_COST
6083 , ETC_RAW_COST
6084 , ETC_LABOR_RAW_COST
6085 , ETC_EQUIP_RAW_COST
6086 , CUSTOM1
6087 , CUSTOM2
6088 , CUSTOM3
6089 , CUSTOM4
6090 , CUSTOM5
6091 , CUSTOM6
6092 , CUSTOM7
6093 , CUSTOM8
6094 , CUSTOM9
6095 , CUSTOM10
6096 , CUSTOM11
6097 , CUSTOM12
6098 , CUSTOM13
6099 , CUSTOM14
6100 , CUSTOM15
6101 -- , 'CF'
6102 , NULL
6103 , NULL
6104 -- , START_DATE
6105 -- , END_DATE
6106 -- , 0
6107 , fact.plan_type_code plan_type_code -- 4471527
6108 FROM pji_fp_xbs_accum_f fact
6109 , pji_fm_extr_plnver3_t ver
6110 WHERE 1=1
6111 AND fact.project_id = ver.project_id
6112 AND fact.plan_version_id = ver.plan_version_id
6113 AND fact.plan_type_code = ver.plan_type_code -- 4471527
6114 AND rbs_aggr_level = g_lowest_level
6115 AND wbs_rollup_flag = 'N'
6116 AND prg_rollup_flag = 'N'
6117 AND ver.wp_flag = 'N'
6118 AND ver.baselined_flag = 'Y'
6119 AND BITAND(curr_record_type_id, 7) IN (4, 5, 6)
6120 AND currency_code in ( g_global1_currency_code, g_global2_currency_code )
6121 ) fact
6122 GROUP BY
6123 PROJECT_ID
6124 , PROJECT_ORG_ID
6125 , PROJECT_ORGANIZATION_ID
6126 , PROJECT_ELEMENT_ID
6127 , TIME_ID
6128 , PERIOD_TYPE_ID
6129 , CALENDAR_TYPE
6130 , RBS_AGGR_LEVEL
6131 , WBS_ROLLUP_FLAG
6132 , PRG_ROLLUP_FLAG
6133 , CURRENCY_CODE
6134 , RBS_ELEMENT_ID
6135 , RBS_VERSION_ID
6136 , PLAN_VERSION_ID
6137 , PLAN_TYPE_ID
6138 , RATE_DANGLING_FLAG
6139 , TIME_DANGLING_FLAG
6140 , PLAN_TYPE_CODE ; --- 4471527
6141
6142
6143 print_time('........CREATE_GL1_GL2_CURR_RCDS: End. ' );
6144
6145 EXCEPTION
6146 WHEN OTHERS THEN
6147 print_time('........CREATE_GL1_GL2_CURR_RCDS: Exception. ' || sqlerrm );
6148 FND_MSG_PUB.add_exc_msg( p_pkg_name => g_package_name ,
6149 p_procedure_name => 'CREATE_GL1_GL2_CURR_RCDS');
6150 RAISE;
6151 END;
6152 */
6153
6154
6155 PROCEDURE UPDATE_TPFG1_CURR_RCDS
6156 IS BEGIN
6157
6158 print_time('........UPDATE_TPFG1_CURR_RCDS: Begin. ' );
6159
6160 UPDATE pji_fp_xbs_accum_f
6161 SET CURR_RECORD_TYPE_ID = CURR_RECORD_TYPE_ID +
6162 DECODE (currency_code, g_global1_currency_code, 2, 0) -- 000.000.010 = 2
6163 + DECODE (currency_code, g_global2_currency_code, 1, 0) -- 000.000.001 = 1
6164 WHERE BITAND(curr_record_type_id, 28) >= 4 -- 000.011.110 = 16 + 8 + 4 = 28
6165 AND (currency_code IN (g_global1_currency_code, g_global2_currency_code))
6166 AND plan_version_id IN
6167 (SELECT DISTINCT plan_version_id
6168 FROM PJI_FM_EXTR_PLNVER3_T
6169 WHERE 1=1
6170 AND baselined_flag = 'Y'
6171 AND wp_flag = 'N');
6172
6173 UPDATE pji_fp_aggr_pjp1_t
6174 SET CURR_RECORD_TYPE_ID = CURR_RECORD_TYPE_ID +
6175 DECODE (currency_code, g_global1_currency_code, 2, 0) -- 000.000.010 = 2
6176 + DECODE (currency_code, g_global2_currency_code, 1, 0) -- 000.000.001 = 1
6177 WHERE BITAND(curr_record_type_id, 28) >= 4 -- 000.011.110 = 16 + 8 + 4 = 28
6178 AND (currency_code IN (g_global1_currency_code, g_global2_currency_code))
6179 AND worker_id = g_worker_id
6180 AND plan_version_id IN
6181 (SELECT DISTINCT plan_version_id
6182 FROM PJI_FM_EXTR_PLNVER3_T
6183 WHERE 1=1
6184 AND baselined_flag = 'Y'
6185 AND wp_flag = 'N');
6186
6187 print_time('........UPDATE_TPFG1_CURR_RCDS: End. ' );
6188
6189 EXCEPTION
6190 WHEN OTHERS THEN
6191 print_time('........UPDATE_TPFG1_CURR_RCDS: Exception: ' || sqlerrm );
6192 FND_MSG_PUB.add_exc_msg( p_pkg_name => g_package_name ,
6193 p_procedure_name => 'UPDATE_TPFG1_CURR_RCDS');
6194 RAISE;
6195 END;
6196
6197
6198 PROCEDURE DO_CURRENCY_DANGLING_CHECK
6199 IS BEGIN
6200
6201 UPDATE PJI_FM_EXTR_PLNVER3_T
6202 SET rate_dangling_flag = 'Y'
6203 WHERE plan_version_id IN (
6204 SELECT
6205 fact.PLAN_VERSION_ID
6206 FROM pji_fp_aggr_pjp1_t fact
6207 , PJI_FM_AGGR_DLY_RATES_T rates
6208 , ( SELECT cal_period_id period_id, start_date, end_date FROM pji_time_cal_period_v
6209 UNION ALL
6210 SELECT cal_qtr_id, start_date, end_date FROM pji_time_cal_qtr_v
6211 UNION ALL
6212 SELECT cal_year_id, start_date, end_date FROM pji_time_cal_year_v
6213 UNION ALL
6214 SELECT ent_period_id, start_date, end_date FROM pji_time_ent_period_v
6215 UNION ALL
6216 SELECT ent_qtr_id, start_date, end_date FROM pji_time_ent_qtr
6217 UNION ALL
6218 SELECT ent_year_id, start_date, end_date FROM pji_time_ent_year
6219 UNION ALL
6220 SELECT week_id, start_date, end_date FROM pji_time_week
6221 ) dates
6222 WHERE 1=1
6223 AND fact.worker_id = g_worker_id
6224 AND dates.period_id = fact.time_id
6225 AND rates.time_id = DECODE ( g_start_str
6226 , g_start_str, TO_CHAR(dates.start_date, 'J')
6227 , g_end_str, TO_CHAR(dates.end_date, 'J') )
6228 AND ( rates.rate IS NULL or rates.rate2 IS NULL )
6229 );
6230
6231
6232 EXCEPTION
6233 WHEN OTHERS THEN
6234 FND_MSG_PUB.add_exc_msg( p_pkg_name => g_package_name ,
6235 p_procedure_name => 'DO_CURRENCY_DANGLING_CHECK');
6236 RAISE;
6237 END;
6238
6239
6240 PROCEDURE GET_PRORATE_FORMAT
6241 IS BEGIN
6242
6243 NULL;
6244
6245 EXCEPTION
6246 WHEN OTHERS THEN
6247 FND_MSG_PUB.add_exc_msg( p_pkg_name => g_package_name ,
6248 p_procedure_name => 'GET_PRORATE_FORMAT');
6249 RAISE;
6250 END;
6251
6252
6253 PROCEDURE GET_SPREAD_DATE_RANGE_AMOUNTS
6254 IS BEGIN
6255
6256 NULL;
6257
6258 EXCEPTION
6259 WHEN OTHERS THEN
6260 FND_MSG_PUB.add_exc_msg( p_pkg_name => g_package_name ,
6261 p_procedure_name => 'GET_SPREAD_DATE_RANGE_AMOUNTS');
6262 RAISE;
6263 END;
6264
6265
6266 PROCEDURE SPREAD_NON_TIME_PHASE_AMOUNTS
6267 IS BEGIN
6268
6269 NULL;
6270
6271 EXCEPTION
6272 WHEN OTHERS THEN
6273 FND_MSG_PUB.add_exc_msg( p_pkg_name => g_package_name ,
6274 p_procedure_name => 'SPREAD_NON_TIME_PHASE_AMOUNTS');
6275 RAISE;
6276 END;
6277
6278
6279 PROCEDURE PRORATE_NON_TIME_PHASED_AMTS(
6280 p_calENDar_type IN VARCHAR2 := NULL -- Values can be GL, PA, ENT, ENTW.
6281 ) IS BEGIN
6282
6283 -- What slices will be prorated to PA.
6284 -- Primary slice entries in GL calendar.
6285 -- How to identify? Programming construct OP.
6286
6287 NULL;
6288
6289 EXCEPTION
6290 WHEN OTHERS THEN
6291 FND_MSG_PUB.add_exc_msg( p_pkg_name => g_package_name ,
6292 p_procedure_name => 'PRORATE_NON_TIME_PHASED_AMTS');
6293 RAISE;
6294 END;
6295
6296
6297 PROCEDURE PRORATE_TO_OTHER_CALENDAR(
6298 p_calENDar_type IN VARCHAR2 := NULL -- Values can be GL, PA, ENT, ENTW.
6299 ) IS
6300 BEGIN
6301
6302 --
6303 -- Logic to identify the records that are 'original'/'converted' format
6304 -- etc is similar to that for PJI. This is to make it easy for dev working
6305 -- on one module (PJI/PRP) to understand the other with minimum effort.
6306 --
6307 -- Logic is as follows:
6308 -------------------------------------------------------------------------
6309 -- 1. All 'entered' amounts (from pri slice) will have a line type *tag* 'OF'
6310 -- if calendar type is PA/GL. If no calendar type is mentioned,
6311 -- then, it will be 'F1'. Tag == line type column in tmp table.
6312 -- 2. Non time phased amounts if prorated to ENT cal will be tagged 'OF'.
6313 -- This has not been decided yet.
6314 -- 3. Amounts from PA/GL cal entries that have been converted to global will
6315 -- have a tag 'OG'.
6316 -- 4. Non PA calendar entries of OF/OG when converted to PA calendar will have
6317 -- a tag 'CF/CG' respectively.
6318 -- 5. Non GL calendar entries of OF/OG when converted to GL calendar will have
6319 -- a tag 'CF/CG' respectively.
6320 -- 6. Non ENT calendar entries of OF/OG when converted to ENT calendar will have
6321 -- a tag 'CF/CG' respectively.
6322 -- 7. Non ENTW calendar entries of OF/OG when converted to ENTW calendar will have
6323 -- a tag 'CF/CG' respectively.
6324 --
6325
6326 IF (p_calENDar_type = 'PA') THEN
6327 PRORATE('PA');
6328 ELSIF (p_calENDar_type = 'GL') THEN
6329 PRORATE('GL');
6330 ELSIF (p_calENDar_type = 'ENT') THEN
6331 PRORATE_TO_ENT;
6332 END IF;
6333
6334 EXCEPTION
6335 WHEN OTHERS THEN
6336 FND_MSG_PUB.add_exc_msg( p_pkg_name => g_package_name ,
6337 p_procedure_name => 'PRORATE_TO_OTHER_CALENDAR');
6338 RAISE;
6339 END;
6340
6341
6342 --
6343 -- Prorate entries in RL fact and pjp1 table in
6344 -- 1. GL and Non time phased into PA.
6345 -- 2. PA into GL.
6346 -- 3. PA and GL into Ent.
6347 --
6348 PROCEDURE PRORATE_TO_ALL_CALENDARS IS
6349 BEGIN
6350
6351 print_time('PRORATE_TO_ALL_CALENDARS: Begin.. ');
6352
6353 PRORATE_TO_OTHER_CALENDAR('PA'); -- Prorate entries in Non time phased and GL cal entries into PA cal.
6354 PRORATE_TO_OTHER_CALENDAR('GL'); -- Prorate entries in PA cal into GL cal.
6355 PRORATE_TO_OTHER_CALENDAR('ENT'); -- Prorate entries in PA and GL cals into ENT cal.
6356
6357 print_time('PRORATE_TO_ALL_CALENDARS: End.. ');
6358
6359 EXCEPTION
6360 WHEN NO_DATA_FOUND THEN
6361
6362 /* This issue will come only when PJI_PJP_FP_CURR_WRAP.get_ent_dates_info gives a no_data_found error.
6363 updating the plan versions as time dangling so that the plan will be marked as dangling. Not updating
6364 the existing records so that data for the primary calendar is not impacted because of issue in proration to
6365 other calendars */
6366
6367 UPDATE PJI_FM_EXTR_PLNVER3_T
6368 SET time_dangling_flag='Y'
6369 WHERE wp_flag='N'
6370 AND baselined_flag = 'Y' ;
6371 -- Not raising any exception as we want the processing to happen properly.
6372 -- The where condition is added to make sure that workplan versions are not marked as dangling.
6373 WHEN OTHERS THEN
6374 print_time('PRORATE_TO_ALL_CALENDARS: Exception.. ' || sqlerrm);
6375 FND_MSG_PUB.add_exc_msg( p_pkg_name => g_package_name ,
6376 p_procedure_name => 'PRORATE_TO_ALL_CALENDARS');
6377 RAISE;
6378 END;
6379
6380
6381 PROCEDURE PRORATE_TO_ENT IS
6382 l_calendar_type VARCHAR2(15) := g_ent_cal_str;
6383 BEGIN
6384
6385 PJI_PJP_FP_CURR_WRAP.get_global_currency_info (
6386 x_currency_conversion_rule => g_currency_conversion_rule
6387 , x_prorating_format => g_prorating_format
6388 , x_global1_currency_code => g_global1_currency_code
6389 , x_global2_currency_code => g_global2_currency_code
6390 , x_global1_currency_mau => g_global1_currency_mau
6391 , x_global2_currency_mau => g_global2_currency_mau ) ;
6392
6393
6394 PJI_PJP_FP_CURR_WRAP.get_ent_dates_info (
6395 x_global_start_date => g_global_start_date
6396 , x_ent_start_period_id => g_ent_start_period_id
6397 , x_ent_start_period_name => g_ent_start_period_name
6398 , x_ent_start_date => g_ent_start_date
6399 , x_ent_END_date => g_ent_END_date
6400 , x_global_start_J => g_global_start_J
6401 , x_ent_start_J => g_ent_start_J
6402 , x_ent_END_J => g_ent_END_J
6403 ) ;
6404
6405 -- Refer to prorating logic in 'PRORATE_TO_OTHER_CALENDAR' proc.
6406 -- PRORATE('ENT');
6407
6408 IF (g_prorating_format = 'D') THEN
6409
6410 PJI_FM_PLAN_CAL_RLPS_T.PRORATE_TO_ENT_PG_PJP1_D;
6411 -- PJI_FM_PLAN_CAL_RLPS_T.PRORATE_TO_ENT_PG_FPRL_D;
6412 PJI_FM_PLAN_CAL_RLPS_T.PRORATE_TO_ENT_N_PJP1_D;
6413
6414 ELSIF (g_prorating_format IN ( g_end_str, g_start_str ) ) THEN
6415
6416 /*Added parameter g_prorating_format for bug 4005006*/
6417 PJI_FM_PLAN_CAL_RLPS_T.PRORATE_TO_ENT_PG_PJP1_SE(g_prorating_format);
6418 -- PJI_FM_PLAN_CAL_RLPS_T.PRORATE_TO_ENT_PG_FPRL_SE;
6419 PJI_FM_PLAN_CAL_RLPS_T.PRORATE_TO_ENT_N_PJP1_SE(g_prorating_format);
6420
6421 ELSE
6422 NULL;
6423 END IF;
6424
6425 EXCEPTION
6426 WHEN OTHERS THEN
6427 FND_MSG_PUB.add_exc_msg( p_pkg_name => g_package_name ,
6428 p_procedure_name => 'PRORATE_TO_ENT');
6429 RAISE;
6430 END;
6431
6432
6433 /*
6434 PROCEDURE PRORATE_TO_ENT_NONTIMEPH IS
6435 l_last_update_date date := SYSDATE;
6436 l_last_updated_by NUMBER := FND_GLOBAL.USER_ID;
6437 l_creation_date date := SYSDATE;
6438 l_created_by NUMBER := FND_GLOBAL.USER_ID;
6439 l_last_update_login NUMBER := FND_GLOBAL.LOGIN_ID;
6440
6441 l_calendar_type VARCHAR2(15) := 'ENT';
6442 BEGIN
6443
6444 NULL;
6445
6446 EXCEPTION
6447 WHEN OTHERS THEN
6448 RAISE;
6449 END;
6450 */
6451
6452
6453 PROCEDURE PRORATE(
6454 p_calENDar_type IN VARCHAR2 := NULL -- Values can be GL, PA, ENT, ENTW.
6455 ) IS
6456 l_calendar_type VARCHAR2(15);
6457
6458 BEGIN
6459
6460 IF (p_calENDar_type NOT IN ('PA', 'GL')) THEN RETURN; END IF;
6461
6462 IF (p_calENDar_type = 'PA') THEN l_calENDar_type := g_pa_cal_str;
6463 ELSIF (p_calENDar_type = 'GL') THEN l_calENDar_type := g_gl_cal_str;
6464 ELSE RETURN;
6465 END IF;
6466
6467
6468 PJI_PJP_FP_CURR_WRAP.get_global_currency_info (
6469 x_currency_conversion_rule => g_currency_conversion_rule
6470 , x_prorating_format => g_prorating_format
6471 , x_global1_currency_code => g_global1_currency_code
6472 , x_global2_currency_code => g_global2_currency_code
6473 , x_global1_currency_mau => g_global1_currency_mau
6474 , x_global2_currency_mau => g_global2_currency_mau ) ;
6475
6476
6477 PJI_PJP_FP_CURR_WRAP.get_ent_dates_info (
6478 x_global_start_date => g_global_start_date
6479 , x_ent_start_period_id => g_ent_start_period_id
6480 , x_ent_start_period_name => g_ent_start_period_name
6481 , x_ent_start_date => g_ent_start_date
6482 , x_ent_END_date => g_ent_END_date
6483 , x_global_start_J => g_global_start_J
6484 , x_ent_start_J => g_ent_start_J
6485 , x_ent_END_J => g_ent_END_J
6486 ) ;
6487
6488 print_time ( ' Prorating format is .. ' || g_prorating_format ) ;
6489
6490 IF (g_prorating_format = 'D') THEN
6491
6492 PJI_FM_PLAN_CAL_RLPS_T.PRORATE_TO_PAGL_PGE_PJP1_D( p_calendar_type => l_calendar_type );
6493 PJI_FM_PLAN_CAL_RLPS_T.PRORATE_TO_PAGL_N_PJP1_D( p_calendar_type => l_calendar_type );
6494
6495 ELSIF (g_prorating_format IN ( g_end_str, g_start_str ) ) THEN
6496
6497 -- Changed for bug 4005006
6498 PJI_FM_PLAN_CAL_RLPS_T.PRORATE_TO_PAGL_PGE_PJP1_SE( p_calendar_type => l_calendar_type ,
6499 p_prorating_format => g_prorating_format);
6500
6501 -- Commenting out the following call for 4252205.
6502 -- PJI_FM_PLAN_CAL_RLPS_T.PRORATE_TO_PAGL_PGE_FPRL_SE( p_calendar_type => l_calendar_type );
6503
6504 -- Added for bug 4005006
6505 PJI_FM_PLAN_CAL_RLPS_T.PRORATE_TO_PAGL_N_PJP1_SE( p_calendar_type => l_calendar_type ,
6506 p_prorating_format => g_prorating_format);
6507
6508 ELSE
6509 NULL;
6510 END IF;
6511
6512 EXCEPTION
6513 WHEN OTHERS THEN
6514 FND_MSG_PUB.add_exc_msg( p_pkg_name => g_package_name ,
6515 p_procedure_name => 'PRORATE');
6516 RAISE;
6517 END;
6518
6519
6520 PROCEDURE MERGE_INTO_FP_FACT IS
6521 BEGIN
6522
6523 print_time ( ' MERGE_INTO_FP_FACT 1 ' ) ;
6524 CLEANUP_FP_RMAP_FPR;
6525 print_time ( ' MERGE_INTO_FP_FACT 2 ' ) ;
6526 GET_FP_ROW_IDS;
6527 print_time ( ' MERGE_INTO_FP_FACT 3 ' ) ;
6528 UPDATE_FP_ROWS;
6529 print_time ( ' MERGE_INTO_FP_FACT 4 ' ) ;
6530 INSERT_FP_ROWS;
6531 print_time ( ' MERGE_INTO_FP_FACT 5 ' ) ;
6532
6533 EXCEPTION
6534 WHEN OTHERS THEN
6535 print_time ( ' MERGE_INTO_FP_FACT 6 ' ) ;
6536 FND_MSG_PUB.add_exc_msg( p_pkg_name => g_package_name ,
6537 p_procedure_name => 'MERGE_INTO_FP_FACT');
6538 RAISE;
6539 END;
6540
6541
6542 PROCEDURE CLEANUP_FP_RMAP_FPR IS
6543 BEGIN
6544
6545 print_time ( 'CLEANUP_FP_RMAP_FPR begin..');
6546
6547 DELETE FROM PJI_FP_RMAP_FPR_T
6548 WHERE worker_id = g_worker_id;
6549
6550 print_time ( 'CLEANUP_FP_RMAP_FPR end.' || g_worker_id );
6551
6552 EXCEPTION
6553 WHEN OTHERS THEN
6554 print_time ( 'ccc' || sqlerrm );
6555 FND_MSG_PUB.add_exc_msg( p_pkg_name => g_package_name ,
6556 p_procedure_name => 'CLEANUP_FP_RMAP_FPR');
6557 RAISE;
6558 END;
6559
6560
6561 PROCEDURE GET_FP_ROW_IDS IS
6562 BEGIN
6563
6564 INSERT INTO PJI_FP_RMAP_FPR_T
6565 (
6566 worker_id
6567 , pjp1_rowid
6568 , fpr_rowid
6569 )
6570 SELECT /*+ full(tmp) index(rl, PJI_FP_XBS_ACCUM_F_N1) use_nl(rl) */
6571 g_worker_id WORKER_ID
6572 , tmp.ROWID pjp1_rowid
6573 , rl.ROWID fpr_ROWID
6574 FROM
6575 pji_fp_aggr_pjp1_t tmp
6576 , pji_fp_xbs_accum_f rl
6577 WHERE 1 = 1
6578 AND tmp.WORKER_ID = g_worker_id
6579 AND tmp.PROJECT_ID = rl.PROJECT_ID (+)
6580 AND tmp.PLAN_VERSION_ID = rl.PLAN_VERSION_ID (+)
6581 AND tmp.PLAN_TYPE_ID = rl.PLAN_TYPE_ID (+)
6582 AND tmp.PROJECT_ORG_ID = rl.PROJECT_ORG_ID (+)
6583 AND tmp.PROJECT_ORGANIZATION_ID = rl.PROJECT_ORGANIZATION_ID (+)
6584 AND tmp.PROJECT_ELEMENT_ID = rl.PROJECT_ELEMENT_ID (+)
6585 AND tmp.TIME_ID = rl.TIME_ID (+)
6586 AND tmp.PERIOD_TYPE_ID = rl.PERIOD_TYPE_ID (+)
6587 AND tmp.CALENDAR_TYPE = rl.CALENDAR_TYPE (+)
6588 AND tmp.RBS_AGGR_LEVEL = rl.RBS_AGGR_LEVEL (+)
6589 AND tmp.WBS_ROLLUP_FLAG = rl.WBS_ROLLUP_FLAG (+)
6590 AND tmp.PRG_ROLLUP_FLAG = rl.PRG_ROLLUP_FLAG (+)
6591 AND tmp.CURR_RECORD_TYPE_ID = rl.CURR_RECORD_TYPE_ID (+)
6592 AND tmp.CURRENCY_CODE = rl.CURRENCY_CODE (+)
6593 AND tmp.RBS_ELEMENT_ID = rl.RBS_ELEMENT_ID (+)
6594 AND tmp.RBS_VERSION_ID = rl.RBS_VERSION_ID (+)
6595 AND tmp.PLAN_TYPE_CODE = rl.PLAN_TYPE_CODE (+) /* 4471527 */
6596 AND tmp.RATE_DANGLING_FLAG IS NULL
6597 AND tmp.TIME_DANGLING_FLAG IS NULL;
6598
6599 print_time ( ' MERGE_INTO_FP_FACT 1.1 ' || SQL%ROWCOUNT ) ;
6600
6601 EXCEPTION
6602 WHEN OTHERS THEN
6603 FND_MSG_PUB.add_exc_msg( p_pkg_name => g_package_name ,
6604 p_procedure_name => 'GET_FP_ROW_IDS');
6605 RAISE;
6606 END;
6607
6608
6609 PROCEDURE GET_ACTUALS (
6610 p_new_pub_version_id IN NUMBER
6611 , p_prev_pub_version_id IN NUMBER := NULL ) IS
6612
6613 BEGIN
6614
6615 NULL;
6616
6617 EXCEPTION
6618 WHEN OTHERS THEN
6619 FND_MSG_PUB.add_exc_msg( p_pkg_name => g_package_name ,
6620 p_procedure_name => 'GET_ACTUALS');
6621 RAISE;
6622 END;
6623
6624
6625 PROCEDURE REVERSE_ETC (
6626 p_new_pub_version_id IN NUMBER
6627 , p_prev_pub_version_id IN NUMBER := NULL ) IS
6628
6629 l_project_id NUMBER;
6630 l_struct_sharing_code pa_projects_all.structure_sharing_code%TYPE;
6631 l_prev_pub_version_id NUMBER;
6632 l_curr_wking_version_id NUMBER;
6633 l_actual_plan_version_id NUMBER;
6634 l_copied_from_version_id NUMBER;
6635 l_new_plan_type_id NUMBER;
6636 /*
6637 l_last_update_date DATE := SYSDATE;
6638 l_last_updated_by NUMBER := FND_GLOBAL.USER_ID;
6639 l_creation_date DATE := SYSDATE;
6640 l_created_by NUMBER := FND_GLOBAL.USER_ID;
6641 l_last_update_login NUMBER := FND_GLOBAL.LOGIN_ID;
6642 */
6643 l_max_plnver_id NUMBER := NULL;
6644
6645 BEGIN
6646
6647 print_time ( ' REVERSE_ETC BEGIN' ) ;
6648 print_time ( ' REVERSE_ETC p_new_pub_version_id = ' ||p_new_pub_version_id || ' p_prev_pub_version_id ' || p_prev_pub_version_id ) ;
6649
6650 INSERT_NTP_CAL_RECORD ( x_max_plnver_id => l_max_plnver_id );
6651
6652 IF (l_max_plnver_id IS NULL) THEN
6653 RETURN;
6654 END IF;
6655
6656 SELECT project_id, fin_plan_type_id
6657 INTO l_project_id, l_new_plan_type_id
6658 FROM pa_budget_versions
6659 WHERE budget_version_id = p_new_pub_version_id ;
6660
6661 SELECT structure_sharing_code
6662 INTO l_struct_sharing_code
6663 FROM pa_projects_all
6664 WHERE project_id = l_project_id;
6665
6666 l_prev_pub_version_id := p_prev_pub_version_id;
6667
6668 -- Fix for bug : 4213245
6669 /*
6670 delete from pji_fm_extr_plan_lines
6671 where
6672 PLAN_VERSION_ID = p_new_pub_version_id and
6673 ETC_QUANTITY is null and
6674 ETC_TXN_BURDENED_COST is null and
6675 ETC_PRJ_BURDENED_COST is null and
6676 ETC_PFC_BURDENED_COST is null and
6677 ETC_TXN_RAW_COST is null and
6678 ETC_PRJ_RAW_COST is null and
6679 ETC_PFC_RAW_COST is null and
6680 RBS_VERSION_ID is null;
6681 */
6682
6683 print_time ( ' REVERSE_ETC l_prev_pub_version_id ' || l_prev_pub_version_id || ' l_actual_plan_version_id ' || l_actual_plan_version_id || ' l_project_id ' || l_project_id ) ;
6684
6685
6686 INSERT INTO PJI_FP_AGGR_PJP1_T
6687 (
6688 WORKER_ID
6689 , PRG_LEVEL
6690 , PROJECT_ID
6691 , PROJECT_ORG_ID
6692 , PROJECT_ORGANIZATION_ID
6693 , PROJECT_ELEMENT_ID
6694 , TIME_ID
6695 , PERIOD_TYPE_ID
6696 , CALENDAR_TYPE
6697 , RBS_AGGR_LEVEL
6698 , WBS_ROLLUP_FLAG
6699 , PRG_ROLLUP_FLAG
6700 , CURR_RECORD_TYPE_ID
6701 , CURRENCY_CODE
6702 , RBS_ELEMENT_ID
6703 , RBS_VERSION_ID
6704 , PLAN_VERSION_ID
6705 , PLAN_TYPE_ID
6706 , RAW_COST
6707 , BRDN_COST
6708 , REVENUE
6709 , BILL_RAW_COST
6710 , BILL_BRDN_COST
6711 , BILL_LABOR_RAW_COST
6712 , BILL_LABOR_BRDN_COST
6713 , BILL_LABOR_HRS
6714 , EQUIPMENT_RAW_COST
6715 , EQUIPMENT_BRDN_COST
6716 , CAPITALIZABLE_RAW_COST
6717 , CAPITALIZABLE_BRDN_COST
6718 , LABOR_RAW_COST
6719 , LABOR_BRDN_COST
6720 , LABOR_HRS
6721 , LABOR_REVENUE
6722 , EQUIPMENT_HOURS
6723 , BILLABLE_EQUIPMENT_HOURS
6724 , SUP_INV_COMMITTED_COST
6725 , PO_COMMITTED_COST
6726 , PR_COMMITTED_COST
6727 , OTH_COMMITTED_COST
6728 , ACT_LABOR_HRS
6729 , ACT_EQUIP_HRS
6730 , ACT_LABOR_BRDN_COST
6731 , ACT_EQUIP_BRDN_COST
6732 , ACT_BRDN_COST
6733 , ACT_RAW_COST
6734 , ACT_REVENUE
6735 , ACT_LABOR_RAW_COST
6736 , ACT_EQUIP_RAW_COST
6737 , ETC_LABOR_HRS
6738 , ETC_EQUIP_HRS
6739 , ETC_LABOR_BRDN_COST
6740 , ETC_EQUIP_BRDN_COST
6741 , ETC_BRDN_COST
6742 , ETC_RAW_COST
6743 , ETC_LABOR_RAW_COST
6744 , ETC_EQUIP_RAW_COST
6745 , CUSTOM1
6746 , CUSTOM2
6747 , CUSTOM3
6748 , CUSTOM4
6749 , CUSTOM5
6750 , CUSTOM6
6751 , CUSTOM7
6752 , CUSTOM8
6753 , CUSTOM9
6754 , CUSTOM10
6755 , CUSTOM11
6756 , CUSTOM12
6757 , CUSTOM13
6758 , CUSTOM14
6759 , CUSTOM15
6760 , PLAN_TYPE_CODE /* 4471527 */
6761 )
6762 SELECT
6763 g_worker_id WORKER_ID
6764 , g_default_prg_level PRG_LEVEL
6765 , plr.PROJECT_ID
6766 , plr.PROJECT_ORG_ID
6767 , plr.project_ORGANIZATION_ID
6768 , plr.WBS_ELEMENT_ID project_element_id
6769 , DECODE(vers.time_phased_type_code
6770 , 'N', -1
6771 , pji_time.cal_period_id) time_id
6772 , DECODE(vers.time_phased_type_code
6773 , 'P', 32
6774 , 'G', 32
6775 , 'N', 2048) period_type_id -- period type id...
6776 , DECODE(vers.time_phased_type_code
6777 , 'P', 'P'
6778 , 'G', 'G'
6779 , 'N', 'A'
6780 , 'X') CALENDAR_TYPE
6781 , 'L' RBS_AGGR_LEVEL
6782 , 'N' WBS_ROLLUP_FLAG
6783 , 'N' PRG_ROLLUP_FLAG
6784 , plr.CURR_RECORD_TYPE CURR_RECORD_TYPE_ID
6785 , plr.currency_code
6786 , plr.RBS_ELEMENT_ID
6787 , plr.RBS_STRUCT_VERSION_ID rbs_version_id
6788 , plr.BUDGET_VERSION_ID PLAN_VERSION_ID
6789 , plr.plan_type_id
6790 , SUM(plr.RAW_COST) RAW_COST
6791 , SUM(plr.BRDN_COST) BRDN_COST
6792 , SUM(plr.REVENUE) REVENUE
6793 , SUM ( DECODE ( plr.billable_flag, 'Y', plr.raw_cost, TO_NUMBER(NULL) ) ) BILL_RAW_COST
6794 , SUM ( DECODE ( plr.billable_flag, 'Y', plr.BRDN_COST, TO_NUMBER(NULL) ) ) BILL_BRDN_COST
6795 , SUM ( DECODE ( plr.billable_flag || plr.resource_class, 'Y' || 'PEOPLE', plr.raw_cost, TO_NUMBER(NULL) ) ) BILL_LABOR_RAW_COST
6796 , SUM ( DECODE ( plr.billable_flag || plr.resource_class, 'Y' || 'PEOPLE' , plr.BRDN_COST, TO_NUMBER(NULL) ) ) BILL_LABOR_BRDN_COST
6797 /* , SUM ( DECODE ( plr.billable_flag || plr.resource_class , 'Y' || 'PEOPLE', plr.quantity, TO_NUMBER(NULL) ) ) BILL_LABOR_HRS */ -- bug 6039785
6798 , SUM ( DECODE ( plr.billable_flag || plr.resource_class , 'Y' || 'PEOPLE',
6799 decode(plr.billable_flag,'Y', plr.quantity, TO_NUMBER(NULL)),
6800 TO_NUMBER(NULL) ) ) BILL_LABOR_HRS -- bug 6039785
6801 , SUM ( DECODE ( plr.resource_class, 'EQUIPMENT' , plr.raw_cost, TO_NUMBER(NULL) ) ) EQUIPMENT_RAW_COST
6802 , SUM ( DECODE ( plr.resource_class, 'EQUIPMENT' , plr.BRDN_COST, TO_NUMBER(NULL) ) ) EQUIPMENT_BRDN_COST
6803 , SUM ( DECODE ( plr.billable_flag, 'Y', plr.raw_cost, TO_NUMBER(NULL) ) ) CAPITALIZABLE_RAW_COST
6804 , SUM ( DECODE ( plr.billable_flag, 'Y', plr.BRDN_COST, TO_NUMBER(NULL) ) ) CAPITALIZABLE_BRDN_COST
6805 , SUM ( DECODE ( plr.resource_class, 'PEOPLE', plr.raw_cost, TO_NUMBER(NULL) ) ) LABOR_RAW_COST
6806 , SUM ( DECODE ( plr.resource_class, 'PEOPLE', plr.BRDN_COST, TO_NUMBER(NULL) ) ) LABOR_BRDN_COST
6807 /* , SUM ( DECODE ( plr.resource_class, 'PEOPLE',
6808 DECODE ( vers.wp_flag, 'N',
6809 DECODE ( plr.billable_flag, 'Y',plr.quantity,0),
6810 plr.quantity),
6811 TO_NUMBER(NULL) ) ) labor_hrs */ -- bug 6039785
6812 , SUM ( DECODE ( plr.resource_class, 'PEOPLE',
6813 DECODE(plr.billable_flag,'Y',
6814 DECODE ( vers.wp_flag, 'N',
6815 DECODE ( plr.billable_flag, 'Y',plr.quantity,0),
6816 plr.quantity)
6817 , TO_NUMBER(NULL) ),
6818 TO_NUMBER(NULL) ) ) labor_hrs -- bug 6039785
6819 , SUM ( DECODE ( plr.resource_class, 'PEOPLE', plr.revenue, TO_NUMBER(NULL) ) ) LABOR_REVENUE
6820 /* , SUM ( -- s
6821 DECODE ( plr.resource_class -- d1
6822 , 'EQUIPMENT'
6823 , DECODE ( vers.wp_flag -- d2
6824 , 'N'
6825 , DECODE ( plr.billable_flag -- d3
6826 , 'Y'
6827 , plr.quantity
6828 , TO_NUMBER(NULL)
6829 ) -- d3
6830 , plr.quantity
6831 ) -- d2
6832 , TO_NUMBER(NULL)
6833 ) -- d1
6834 ) EQUIPMENT_HRS -- s */ -- bug 6039785
6835 , SUM ( -- s
6836 DECODE ( plr.resource_class -- d1
6837 , 'EQUIPMENT' , DECODE(plr.billable_flag,'Y'
6838 , DECODE ( vers.wp_flag -- d2
6839 , 'N'
6840 , DECODE ( plr.billable_flag -- d3
6841 , 'Y'
6842 , plr.quantity
6843 , TO_NUMBER(NULL)
6844 ) -- d3
6845 , plr.quantity
6846 ) -- d2
6847 , TO_NUMBER(NULL) ),
6848 TO_NUMBER(NULL)
6849 ) -- d1
6850 ) EQUIPMENT_HRS -- s -- bug 6039785
6851 /* , SUM ( DECODE ( plr.billable_flag || plr.resource_class, 'YEQUIPMENT', plr.quantity, 0 ) ) BILLABLE_EQUIPMENT_HOURS */ -- bug 6039785
6852 , SUM ( DECODE ( plr.billable_flag || plr.resource_class, 'YEQUIPMENT',
6853 DECODE(plr.billable_flag,'Y',plr.quantity,0 ) , 0 ) ) BILLABLE_EQUIPMENT_HOURS -- bug 6039785
6854 , TO_NUMBER(NULL) SUP_INV_COMMITTED_COST
6855 , TO_NUMBER(NULL) PO_COMMITTED_COST
6856 , TO_NUMBER(NULL) PR_COMMITTED_COST
6857 , TO_NUMBER(NULL) OTH_COMMITTED_COST
6858 /* , SUM ( DECODE ( plr.resource_class, 'PEOPLE',
6859 DECODE ( vers.wp_flag, 'N',
6860 DECODE ( plr.billable_flag, 'Y',plr.actual_quantity,0),
6861 plr.actual_quantity),
6862 TO_NUMBER(NULL) ) ) ACT_LABOR_HRS */ -- bug 6039785
6863 , SUM ( DECODE ( plr.resource_class, 'PEOPLE',
6864 DECODE (plr.billable_flag ,'Y',
6865 DECODE ( vers.wp_flag, 'N',
6866 DECODE ( plr.billable_flag, 'Y',plr.actual_quantity,0),
6867 plr.actual_quantity),
6868 TO_NUMBER(NULL) ),
6869 TO_NUMBER(NULL) ) ) ACT_LABOR_HRS -- bug 6039785
6870 /* , SUM ( DECODE ( plr.resource_class, 'EQUIPMENT',
6871 DECODE ( vers.wp_flag, 'N',
6872 DECODE ( plr.billable_flag, 'Y',plr.actual_quantity,0),
6873 plr.actual_quantity),
6874 TO_NUMBER(NULL) ) ) ACT_EQUIP_HRS */ -- bug 6039785
6875 , SUM ( DECODE ( plr.resource_class, 'EQUIPMENT',
6876 DECODE (plr.billable_flag ,'Y',
6877 DECODE ( vers.wp_flag, 'N',
6878 DECODE ( plr.billable_flag, 'Y',plr.actual_quantity,0),
6879 plr.actual_quantity),
6880 TO_NUMBER(NULL) ),
6881 TO_NUMBER(NULL) ) ) ACT_EQUIP_HRS -- bug 6039785
6882 , SUM ( DECODE ( plr.resource_class, 'PEOPLE', plr.actual_BRDN_COST, TO_NUMBER(NULL) ) ) ACT_LABOR_BRDN_COST
6883 , SUM ( DECODE ( plr.resource_class, 'EQUIPMENT' , plr.actual_BRDN_COST, TO_NUMBER(NULL) ) ) ACT_EQUIP_BRDN_COST
6884 , SUM ( plr.actual_brdn_cost ) ACT_BRDN_COST
6885 , SUM ( plr.actual_raw_cost ) ACT_RAW_COST
6886 , SUM ( plr.actual_revenue ) ACT_REVENUE
6887 , SUM ( DECODE ( plr.resource_class, 'PEOPLE', plr.actual_RAW_COST, TO_NUMBER(NULL) ) ) ACT_LABOR_RAW_COST
6888 , SUM ( DECODE ( plr.resource_class, 'EQUIPMENT' , plr.actual_RAW_COST, TO_NUMBER(NULL) ) ) ACT_EQUIP_RAW_COST
6889 /* , SUM ( DECODE ( plr.resource_class, 'PEOPLE',
6890 DECODE ( vers.wp_flag, 'N',
6891 DECODE ( plr.billable_flag, 'Y',plr.ETC_quantity,TO_NUMBER(NULL)),
6892 plr.ETC_quantity),
6893 'EQUIPMENT', TO_NUMBER(NULL) ) ) ETC_LABOR_HRS */ -- bug 6039785
6894 , SUM ( DECODE ( plr.resource_class, 'PEOPLE',
6895 DECODE (plr.billable_flag ,'Y',
6896 DECODE ( vers.wp_flag, 'N',
6897 DECODE ( plr.billable_flag, 'Y',plr.ETC_quantity,TO_NUMBER(NULL)),
6898 plr.ETC_quantity), TO_NUMBER(NULL) ),
6899 'EQUIPMENT', TO_NUMBER(NULL) ) ) ETC_LABOR_HRS -- bug 6039785
6900 /* , SUM ( DECODE ( plr.resource_class, 'EQUIPMENT',
6901 DECODE ( vers.wp_flag, 'N',
6902 DECODE ( plr.billable_flag, 'Y',plr.ETC_quantity,TO_NUMBER(NULL)),
6903 plr.ETC_quantity),
6904 'PEOPLE', TO_NUMBER(NULL) ) ) ETC_EQUIP_HRS */ -- bug 6039785
6905 , SUM ( DECODE ( plr.resource_class, 'EQUIPMENT',
6906 DECODE (plr.billable_flag ,'Y',
6907 DECODE ( vers.wp_flag, 'N',
6908 DECODE ( plr.billable_flag, 'Y',plr.ETC_quantity,TO_NUMBER(NULL)),
6909 plr.ETC_quantity), TO_NUMBER(NULL) ),
6910 'PEOPLE', TO_NUMBER(NULL) ) ) ETC_EQUIP_HRS -- bug 6039785
6911 , SUM ( DECODE ( plr.resource_class, 'PEOPLE', plr.etc_BRDN_COST, TO_NUMBER(NULL) ) ) ETC_LABOR_BRDN_COST
6912 , SUM ( DECODE ( plr.resource_class, 'EQUIPMENT', plr.etc_BRDN_COST, TO_NUMBER(NULL) ) ) ETC_EQUIP_BRDN_COST
6913 , SUM ( plr.etc_brdn_cost ) ETC_BRDN_COST
6914 , SUM ( plr.etc_raw_cost ) ETC_RAW_COST
6915 , SUM ( DECODE ( plr.resource_class, 'PEOPLE', plr.etc_raw_COST, TO_NUMBER(NULL) ) ) ETC_LABOR_raw_COST
6916 , SUM ( DECODE ( plr.resource_class, 'EQUIPMENT', plr.etc_raw_COST, TO_NUMBER(NULL) ) ) ETC_EQUIP_raw_COST
6917 , TO_NUMBER(NULL) CUSTOM1
6918 , TO_NUMBER(NULL) CUSTOM2
6919 , TO_NUMBER(NULL) CUSTOM3
6920 , TO_NUMBER(NULL) CUSTOM4
6921 , TO_NUMBER(NULL) CUSTOM5
6922 , TO_NUMBER(NULL) CUSTOM6
6923 , TO_NUMBER(NULL) CUSTOM7
6924 , TO_NUMBER(NULL) CUSTOM8
6925 , TO_NUMBER(NULL) CUSTOM9
6926 , TO_NUMBER(NULL) CUSTOM10
6927 , TO_NUMBER(NULL) CUSTOM11
6928 , TO_NUMBER(NULL) CUSTOM12
6929 , TO_NUMBER(NULL) CUSTOM13
6930 , TO_NUMBER(NULL) CUSTOM14
6931 , TO_NUMBER(NULL) CUSTOM15
6932 , plr.plan_type_code plan_type_code /* 4471527 */
6933 FROM
6934 ( ----- First inline view plr .............
6935 SELECT
6936 collapse_bl.PROJECT_ID
6937 , collapse_bl.WBS_ELEMENT_ID
6938 , SUM(collapse_bl.CURR_RECORD_TYPE_ID) CURR_RECORD_TYPE
6939 , collapse_bl.RBS_ELEMENT_ID
6940 , collapse_bl.RBS_STRUCT_VERSION_ID
6941 , collapse_bl.plan_type_id
6942 , collapse_bl.BUDGET_VERSION_ID
6943 , collapse_bl.PROJECT_ORGANIZATION_ID
6944 , collapse_bl.PROJECT_ORG_ID
6945 , collapse_bl.BILLABLE_FLAG
6946 , collapse_bl.RESOURCE_CLASS
6947 , collapse_bl.CURRENCY_CODE
6948 , MAX(collapse_bl.raw_cost) raw_cost
6949 , MAX(collapse_bl.BRDN_COST) BRDN_COST
6950 , MAX(collapse_bl.revenue) revenue
6951 , MAX(collapse_bl.act_raw_cost) actual_raw_cost
6952 , MAX(collapse_bl.act_BRDN_COST) actual_BRDN_COST
6953 , MAX(collapse_bl.act_revenue) actual_revenue
6954 , MAX(collapse_bl.etc_RAW_COST) etc_raw_COST
6955 , MAX(collapse_bl.etc_BRDN_COST) etc_BRDN_COST
6956 , MAX(collapse_bl.quantity) quantity
6957 , MAX(collapse_bl.act_quantity) actual_quantity
6958 , MAX(collapse_bl.etc_quantity) etc_quantity
6959 , collapse_bl.period_name period_name
6960 , collapse_bl.row_id
6961 , collapse_bl.plan_type_code plan_type_code /* 4471527 */
6962 FROM
6963 ( ----- Second inline view 'collapse_bl' begin .............
6964 SELECT
6965 spread_bl.row_id row_id
6966 , spread_bl.PROJECT_ID
6967 , spread_bl.BUDGET_VERSION_ID
6968 , spread_bl.WBS_ELEMENT_ID
6969 , spread_bl.RBS_ELEMENT_ID
6970 , spread_bl.WBS_STRUCT_VERSION_ID
6971 , spread_bl.RBS_STRUCT_VERSION_ID
6972 , spread_bl.plan_type_id
6973 , spread_bl.BILLABLE_FLAG
6974 , spread_bl.RESOURCE_CLASS
6975 , spread_bl.PROJECT_ORGANIZATION_ID
6976 , spread_bl.PROJECT_ORG_ID
6977 , DECODE( invert.INVERT_ID
6978 , 4, spread_bl.pfc_CURRENCY_CODE
6979 , 8, spread_bl.PRJ_CURRENCY_CODE
6980 , 16, spread_bl.TXN_CURRENCY_CODE ) CURRENCY_CODE
6981 , invert.INVERT_ID CURR_RECORD_TYPE_ID
6982 , DECODE ( invert.INVERT_ID
6983 , 4, spread_bl.pfc_raw_cost
6984 , 8, spread_bl.PRJ_raw_cost
6985 , 16, spread_bl.TXN_raw_cost) raw_cost
6986 , DECODE ( invert.INVERT_ID
6987 , 4, spread_bl.pfc_BRDN_COST
6988 , 8, spread_bl.PRJ_BRDN_COST
6989 , 16, spread_bl.TXN_BRDN_COST ) BRDN_COST
6990 , DECODE ( invert.INVERT_ID
6991 , 4, spread_bl.pfc_revenue
6992 , 8, spread_bl.PRJ_revenue
6993 , 16, spread_bl.TXN_revenue ) revenue
6994 , DECODE ( invert.INVERT_ID
6995 , 4, spread_bl.act_pfc_raw_cost
6996 , 8, spread_bl.act_PRJ_raw_cost
6997 , 16, spread_bl.act_TXN_raw_cost) act_raw_cost
6998 , DECODE ( invert.INVERT_ID
6999 , 4, spread_bl.act_pfc_BRDN_COST
7000 , 8, spread_bl.act_PRJ_BRDN_COST
7001 , 16, spread_bl.act_TXN_BRDN_COST ) act_BRDN_COST
7002 , DECODE ( invert.INVERT_ID
7003 , 4, spread_bl.act_pfc_revenue
7004 , 8, spread_bl.act_PRJ_revenue
7005 , 16, spread_bl.act_TXN_revenue ) act_revenue
7006 , DECODE ( invert.INVERT_ID
7007 , 4, spread_bl.etc_pfc_brdn_cost
7008 , 8, spread_bl.etc_PRJ_brdn_cost
7009 , 16, spread_bl.etc_TXN_brdn_cost ) etc_brdn_cost
7010 , DECODE ( invert.INVERT_ID
7011 , 4, spread_bl.etc_pfc_raw_cost
7012 , 8, spread_bl.etc_PRJ_raw_cost
7013 , 16, spread_bl.etc_TXN_raw_cost) etc_raw_cost
7014 , spread_bl.quantity quantity
7015 , spread_bl.act_quantity act_quantity
7016 , spread_bl.etc_quantity etc_quantity
7017 , spread_bl.period_name period_name
7018 , spread_bl.plan_type_code plan_type_code /* 4471527 */
7019 FROM
7020 (
7021 SELECT
7022 bl.project_id
7023 , bl.ROWID row_id
7024 , bl.plan_version_id budget_version_id
7025 , DECODE(bl.project_element_id, 0, pevs.proj_element_id, bl.project_element_id) wbs_element_id
7026 , NVL( bl.rbs_element_id, -1) rbs_element_id
7027 , bl.struct_ver_id wbs_struct_version_id
7028 , DECODE( bl.rbs_element_id
7029 , NULL
7030 , -1
7031 , NVL(ver.rbs_struct_version_id, -1)
7032 ) rbs_struct_version_id
7033 , bl.plan_type_id plan_type_id -- ver.plan_type_id
7034 , bl.rate_based_flag billable_flag -- ra.rate_based_flag billable_flag
7035 , bl.resource_class_code resource_class -- ra.resource_class_code resource_class
7036 , bl.txn_currency_code txn_currency_code
7037 , bl.txn_raw_cost txn_raw_cost
7038 , bl.txn_burdened_cost txn_BRDN_COST
7039 , bl.txn_revenue txn_revenue
7040 , TO_NUMBER(NULL) act_txn_raw_cost
7041 , TO_NUMBER(NULL) act_txn_brdn_cost
7042 , TO_NUMBER(NULL) act_txn_revenue
7043 , NVL(bl.txn_raw_cost, 0)+NVL(bl.etc_txn_raw_cost, 0) etc_txn_raw_cost
7044 , NVL(bl.txn_burdened_cost, 0)+NVL(bl.etc_txn_burdened_cost, 0) etc_txn_brdn_cost
7045 , bl.prj_currency_code prj_currency_code
7046 , bl.prj_raw_cost prj_raw_cost
7047 , bl.prj_burdened_cost prj_BRDN_COST
7048 , bl.prj_revenue prj_revenue
7049 , TO_NUMBER(NULL) act_prj_raw_cost
7050 , TO_NUMBER(NULL) act_prj_brdn_cost
7051 , TO_NUMBER(NULL) act_prj_revenue
7052 , NVL(bl.prj_raw_cost, 0)+NVL(bl.etc_prj_raw_cost, 0) etc_prj_raw_cost
7053 , NVL(bl.prj_burdened_cost, 0)+NVL(bl.etc_prj_burdened_cost, 0) etc_prj_brdn_cost
7054 , bl.pfc_currency_code pfc_currency_code
7055 , bl.pfc_raw_cost pfc_raw_cost
7056 , bl.pfc_burdened_cost pfc_BRDN_COST
7057 , bl.pfc_revenue pfc_revenue
7058 , TO_NUMBER(NULL) act_pfc_raw_cost
7059 , TO_NUMBER(NULL) act_pfc_brdn_cost
7060 , TO_NUMBER(NULL) act_pfc_revenue
7061 , NVL(bl.pfc_raw_cost, 0)+NVL(bl.etc_pfc_raw_cost, 0) etc_pfc_raw_cost
7062 , NVL(bl.pfc_burdened_cost, 0)+NVL(bl.etc_pfc_burdened_cost, 0) etc_pfc_brdn_cost
7063 , bl.quantity quantity
7064 , TO_NUMBER(NULL) act_quantity
7065 , NVL(bl.quantity, 0)+NVL(bl.etc_quantity, 0) etc_quantity
7066 , NVL(bl.period_name, 'XXX') period_name
7067 , bl.project_org_id project_org_id
7068 , ppa.carrying_out_organization_id project_organization_id
7069 , ver.plan_type_code plan_type_code /* 4471527 */
7070 FROM
7071 PJI_FM_EXTR_PLAN_LINES bl
7072 , PJI_FM_EXTR_PLNVER3_T ver
7073 , PA_PROJECTS_ALL ppa
7074 , PA_PROJ_ELEM_VER_STRUCTURE pevs
7075 , pji_fp_rmap_fpr_update_t rwid
7076 WHERE 1=1
7077 AND bl.project_id = ver.project_id
7078 AND bl.plan_version_id = ver.plan_version_id
7079 AND bl.plan_type_id = ver.plan_type_id
7080 AND ppa.project_id = ver.project_id
7081 AND bl.project_id = ppa.project_id -- Added for bug 3828698
7082 AND ppa.project_id = pevs.project_id -- Added for bug 3838698
7083 AND bl.TXN_CURRENCY_CODE IS NOT NULL
7084 AND bl.prj_currency_code IS NOT NULL
7085 AND bl.pfc_currency_code IS NOT NULL
7086 AND pevs.element_version_id = ver.wbs_struct_version_id
7087 AND pevs.project_id = ver.project_id -- Fix for bug : 4149422 in REVERSE_ETC
7088 AND bl.ROWID = rwid.extr_lines_rowid
7089 UNION ALL
7090 SELECT /*+ LEADING(VER) USE_NL(VER,PPA,PEVS,RA,BL)*/
7091 ra.project_id
7092 , bl.ROWID row_id
7093 , ra.budget_version_id
7094 , DECODE(ra.task_id, 0, pevs.proj_element_id, ra.task_id) wbs_element_id
7095 , NVL(ra.rbs_element_id, -1) rbs_element_id
7096 , ver.wbs_struct_version_id wbs_struct_version_id
7097 , NVL(ver.rbs_struct_version_id, -1) rbs_struct_version_id
7098 , ver.plan_type_id plan_type_id
7099 , ra.rate_based_flag billable_flag
7100 , ra.resource_class_code resource_class
7101 , bl.txn_currency_code txn_currency_code
7102 , TO_NUMBER(NULL) txn_raw_cost
7103 , TO_NUMBER(NULL) txn_brdn_COST
7104 , TO_NUMBER(NULL) txn_revenue
7105 , bl.txn_init_raw_cost txn_actual_raw_cost -- new
7106 , bl.txn_init_burdened_cost txn_actual_brdn_cost -- new
7107 , bl.txn_init_revenue txn_actual_revenue -- new
7108 , TO_NUMBER(NULL) txn_etc_raw_cost -- new
7109 , TO_NUMBER(NULL) txn_etc_brdn_cost -- new
7110 , bl.project_currency_code prj_currency_code
7111 , TO_NUMBER(NULL) prj_raw_cost
7112 , TO_NUMBER(NULL) prj_BRDN_COST
7113 , TO_NUMBER(NULL) prj_revenue
7114 , bl.project_init_raw_cost prj_actual_raw_cost -- new
7115 , bl.project_init_burdened_cost prj_actual_brdn_cost -- new
7116 , bl.project_init_revenue prj_actual_revenue -- new
7117 , TO_NUMBER(NULL) prj_etc_raw_cost -- new
7118 , TO_NUMBER(NULL) prj_etc_brdn_cost -- new
7119 , bl.projfunc_currency_code func_currency_code
7120 , TO_NUMBER(NULL) func_raw_cost
7121 , TO_NUMBER(NULL) func_BRDN_COST
7122 , TO_NUMBER(NULL) func_revenue
7123 , bl.init_raw_cost func_actual_raw_cost -- new
7124 , bl.init_burdened_cost func_actual_brdn_cost -- new
7125 , bl.init_revenue func_actual_revenue -- new
7126 , TO_NUMBER(NULL) func_etc_raw_cost -- new
7127 , TO_NUMBER(NULL) func_etc_brdn_cost -- new
7128 , TO_NUMBER(NULL) quantity
7129 , bl.init_quantity actual_quantity -- new
7130 , TO_NUMBER(NULL) etc_quantity -- new
7131 , NVL(bl.period_name, 'XXX') period_name
7132 , ppa.org_id project_org_id
7133 , ppa.carrying_out_organization_id project_organization_id
7134 , ver.plan_type_code plan_type_code /* 4471527 */
7135 FROM
7136 PA_BUDGET_LINES bl
7137 , PA_RESOURCE_ASSIGNMENTS ra
7138 , PJI_FM_EXTR_PLNVER3_T ver
7139 , PA_PROJECTS_ALL ppa
7140 , PA_PROJ_ELEM_VER_STRUCTURE pevs
7141 WHERE
7142 ra.resource_asSIGNment_id = bl.resource_asSIGNment_id
7143 AND ra.project_id = ver.PROJECT_ID
7144 AND ra.budget_version_id = ver.plan_version_id
7145 AND ver.project_id = ppa.project_id
7146 AND txn_currency_code IS NOT NULL
7147 AND bl.project_currency_code IS NOT NULL
7148 AND bl.projfunc_currency_code IS NOT NULL
7149 AND pevs.project_id = ver.project_id -- Fix for bug : 4149422 in REVERSE_ETC
7150 AND pevs.element_version_id = ver.wbs_struct_version_id
7151 AND ver.secondary_rbs_flag = 'N'
7152 ) spread_bl
7153 ---- end of third inline view 'spread_bl'...........
7154 ,
7155 (
7156 SELECT 4 INVERT_ID FROM dual UNION ALL
7157 SELECT 8 INVERT_ID FROM dual UNION ALL
7158 SELECT 16 INVERT_ID FROM dual where PJI_UTILS.GET_SETUP_PARAMETER('TXN_CURR_FLAG') = 'Y'
7159 ) invert
7160 ) collapse_bl
7161 ---- End of second inline view 'collapse_bl' ..........
7162 GROUP BY
7163 collapse_bl.PROJECT_ID
7164 , collapse_bl.WBS_ELEMENT_ID
7165 -- , time_id, period_type_id, calendar type.., slice type, rollpu flag...
7166 , collapse_bl.RBS_ELEMENT_ID
7167 , collapse_bl.RBS_STRUCT_VERSION_ID
7168 , collapse_bl.plan_type_id
7169 , collapse_bl.BUDGET_VERSION_ID
7170 , collapse_bl.PROJECT_ORGANIZATION_ID
7171 , collapse_bl.PROJECT_ORG_ID
7172 , collapse_bl.BILLABLE_FLAG
7173 , collapse_bl.RESOURCE_CLASS
7174 , collapse_bl.CURRENCY_CODE
7175 , collapse_bl.period_name
7176 , collapse_bl.row_id
7177 , collapse_bl.plan_type_code
7178 ) plr
7179 ---- End of first inline view plr ..........
7180 , PJI_ORG_EXTR_INFO orginfo
7181 , PJI_FM_EXTR_PLNVER3_T vers
7182 , pji_time_cal_period_v pji_time
7183 WHERE 1=1
7184 AND plr.project_org_id = orginfo.org_id
7185 AND plr.project_id = vers.project_id
7186 AND plr.budget_version_id = vers.plan_version_id
7187 AND plr.plan_type_code = vers.plan_type_code /* 4471527 */
7188 AND DECODE(vers.time_phased_type_code
7189 , 'P', orginfo.pa_calendar_id
7190 , 'G', orginfo.gl_calendar_id
7191 , - l_max_plnver_id )
7192 = pji_time.calendar_id
7193 AND plr.period_name = pji_time.name
7194 AND vers.time_phased_type_code IN ('P', 'G', 'N')
7195 GROUP BY
7196 plr.PROJECT_ID
7197 , plr.WBS_ELEMENT_ID
7198 , DECODE(vers.time_phased_type_code
7199 , 'N', -1
7200 , pji_time.cal_period_id)
7201 , DECODE(vers.time_phased_type_code
7202 , 'P', 32
7203 , 'G', 32
7204 , 'N', 2048) -- period type id...
7205 , DECODE(vers.time_phased_type_code
7206 , 'P', 'P'
7207 , 'G', 'G'
7208 , 'N', 'A'
7209 , 'X') -- CALENDAR_TYPE
7210 , plr.CURR_RECORD_TYPE -- curr code missing.
7211 , plr.currency_code
7212 , plr.RBS_ELEMENT_ID
7213 , plr.RBS_STRUCT_VERSION_ID
7214 , plr.plan_type_id
7215 , plr.BUDGET_VERSION_ID
7216 , plr.project_ORGANIZATION_ID
7217 , plr.project_ORG_ID
7218 , plr.plan_type_code ; /* 4471527 */
7219
7220
7221 print_time ( ' REVERSE_ETC END, # Processed rows is ' || SQL%ROWCOUNT ) ;
7222
7223 DELETE_NTP_CAL_RECORD ( p_max_plnver_id => l_max_plnver_id );
7224
7225 EXCEPTION
7226 WHEN OTHERS THEN
7227 FND_MSG_PUB.add_exc_msg( p_pkg_name => g_package_name ,
7228 p_procedure_name => 'REVERSE_ETC');
7229 RAISE;
7230 END;
7231
7232
7233 PROCEDURE UPDATE_FP_ROWS IS
7234
7235 l_last_update_date DATE := SYSDATE;
7236 l_last_updated_by NUMBER := FND_GLOBAL.USER_ID;
7237 l_last_update_login NUMBER := FND_GLOBAL.LOGIN_ID;
7238
7239 BEGIN
7240
7241 UPDATE /*+ ordered use_nl(rl) rowid(rl) */
7242 pji_fp_xbs_accum_f rl
7243 SET (
7244 rl.RAW_COST
7245 , rl.BRDN_COST
7246 , rl.REVENUE
7247 , rl.BILL_RAW_COST
7248 , rl.BILL_BRDN_COST
7249 , rl.BILL_LABOR_RAW_COST
7250 , rl.BILL_LABOR_BRDN_COST
7251 , rl.BILL_LABOR_HRS
7252 , rl.EQUIPMENT_RAW_COST
7253 , rl.EQUIPMENT_BRDN_COST
7254 , rl.CAPITALIZABLE_RAW_COST
7255 , rl.CAPITALIZABLE_BRDN_COST
7256 , rl.LABOR_RAW_COST
7257 , rl.LABOR_BRDN_COST
7258 , rl.LABOR_HRS
7259 , rl.LABOR_REVENUE
7260 , rl.EQUIPMENT_HOURS
7261 , rl.BILLABLE_EQUIPMENT_HOURS
7262 , rl.SUP_INV_COMMITTED_COST
7263 , rl.PO_COMMITTED_COST
7264 , rl.PR_COMMITTED_COST
7265 , rl.OTH_COMMITTED_COST
7266 , rl.ACT_LABOR_HRS
7267 , rl.ACT_EQUIP_HRS
7268 , rl.ACT_LABOR_BRDN_COST
7269 , rl.ACT_EQUIP_BRDN_COST
7270 , rl.ACT_BRDN_COST
7271 , rl.ACT_RAW_COST
7272 , rl.ACT_REVENUE
7273 , rl.ACT_LABOR_RAW_COST
7274 , rl.ACT_EQUIP_RAW_COST
7275 , rl.ETC_LABOR_HRS
7276 , rl.ETC_EQUIP_HRS
7277 , rl.ETC_LABOR_BRDN_COST
7278 , rl.ETC_EQUIP_BRDN_COST
7279 , rl.ETC_BRDN_COST
7280 , rl.ETC_RAW_COST
7281 , rl.ETC_LABOR_RAW_COST
7282 , rl.ETC_EQUIP_RAW_COST
7283 , rl.CUSTOM1
7284 , rl.CUSTOM2
7285 , rl.CUSTOM3
7286 , rl.CUSTOM4
7287 , rl.CUSTOM5
7288 , rl.CUSTOM6
7289 , rl.CUSTOM7
7290 , rl.CUSTOM8
7291 , rl.CUSTOM9
7292 , rl.CUSTOM10
7293 , rl.CUSTOM11
7294 , rl.CUSTOM12
7295 , rl.CUSTOM13
7296 , rl.CUSTOM14
7297 , rl.CUSTOM15
7298 , rl.last_update_date
7299 , rl.last_updated_by
7300 , rl.last_update_login
7301 ) =
7302 (
7303 SELECT /*+ ORDERED ROWID(TMP) index(rwid,PJI_FP_RMAP_FPR_T_N1) */
7304 NVL(rl.RAW_COST, 0) + NVL(tmp.RAW_COST, 0)
7305 , NVL(rl.BRDN_COST, 0) + NVL(tmp.BRDN_COST, 0)
7306 , NVL(rl.REVENUE, 0) + NVL(tmp.REVENUE, 0)
7307 , NVL(rl.BILL_RAW_COST, 0) + NVL(tmp.BILL_RAW_COST, 0)
7308 , NVL(rl.BILL_BRDN_COST, 0) + NVL(tmp.BILL_BRDN_COST, 0)
7309 , NVL(rl.BILL_LABOR_RAW_COST, 0) + NVL(tmp.BILL_LABOR_RAW_COST, 0)
7310 , NVL(rl.BILL_LABOR_BRDN_COST, 0) + NVL(tmp.BILL_LABOR_BRDN_COST, 0)
7311 , NVL(rl.BILL_LABOR_HRS, 0) + NVL(tmp.BILL_LABOR_HRS, 0)
7312 , NVL(rl.EQUIPMENT_RAW_COST, 0) + NVL(tmp.EQUIPMENT_RAW_COST, 0)
7313 , NVL(rl.EQUIPMENT_BRDN_COST, 0) + NVL(tmp.EQUIPMENT_BRDN_COST, 0)
7314 , NVL(rl.CAPITALIZABLE_RAW_COST, 0) + NVL(tmp.CAPITALIZABLE_RAW_COST , 0)
7315 , NVL(rl.CAPITALIZABLE_BRDN_COST, 0) + NVL(tmp.CAPITALIZABLE_BRDN_COST , 0)
7316 , NVL(rl.LABOR_RAW_COST, 0) + NVL(tmp.LABOR_RAW_COST, 0)
7317 , NVL(rl.LABOR_BRDN_COST, 0) + NVL(tmp.LABOR_BRDN_COST, 0)
7318 , NVL(rl.LABOR_HRS, 0) + NVL(tmp.LABOR_HRS, 0)
7319 , NVL(rl.LABOR_REVENUE, 0) + NVL(tmp.LABOR_REVENUE, 0)
7320 , NVL(rl.EQUIPMENT_HOURS, 0) + NVL(tmp.EQUIPMENT_HOURS, 0)
7321 , NVL(rl.BILLABLE_EQUIPMENT_HOURS, 0) + NVL(tmp.BILLABLE_EQUIPMENT_HOURS, 0)
7322 , NVL(rl.SUP_INV_COMMITTED_COST, 0) + NVL(tmp.SUP_INV_COMMITTED_COST, 0)
7323 , NVL(rl.PO_COMMITTED_COST, 0) + NVL(tmp.PO_COMMITTED_COST, 0)
7324 , NVL(rl.PR_COMMITTED_COST, 0) + NVL(tmp.PR_COMMITTED_COST, 0)
7325 , NVL(rl.OTH_COMMITTED_COST, 0) + NVL(tmp.OTH_COMMITTED_COST, 0)
7326 , NVL(rl.ACT_LABOR_HRS, 0) + NVL(tmp.ACT_LABOR_HRS, 0)
7327 , NVL(rl.ACT_EQUIP_HRS, 0) + NVL(tmp.ACT_EQUIP_HRS, 0)
7328 , NVL(rl.ACT_LABOR_BRDN_COST, 0) + NVL(tmp.ACT_LABOR_BRDN_COST, 0)
7329 , NVL(rl.ACT_EQUIP_BRDN_COST, 0) + NVL(tmp.ACT_EQUIP_BRDN_COST, 0)
7330 , NVL(rl.ACT_BRDN_COST, 0) + NVL(tmp.ACT_BRDN_COST, 0)
7331 , NVL(rl.ACT_RAW_COST, 0) + NVL(tmp.ACT_RAW_COST, 0)
7332 , NVL(rl.ACT_REVENUE, 0) + NVL(tmp.ACT_REVENUE, 0)
7333 , NVL(rl.ACT_LABOR_RAW_COST, 0) + NVL(tmp.ACT_LABOR_RAW_COST, 0)
7334 , NVL(rl.ACT_EQUIP_RAW_COST, 0) + NVL(tmp.ACT_EQUIP_RAW_COST, 0)
7335 , DECODE ( ver3.wp_flag
7336 , 'Y'
7337 , DECODE(TO_CHAR(tmp.ETC_LABOR_HRS)
7338 , NULL
7339 , NVL(rl.etc_labor_hrs, 0) + NVL(tmp.labor_hrs, 0)
7340 , NVL(rl.ETC_LABOR_HRS, 0) + tmp.ETC_LABOR_HRS
7341 )
7342 , NVL(rl.ETC_LABOR_HRS, 0) + NVL(tmp.ETC_LABOR_HRS, 0)
7343 ) ETC_LABOR_HRS
7344 , DECODE ( ver3.wp_flag
7345 , 'Y'
7346 , DECODE(TO_CHAR(tmp.ETC_EQUIP_HRS)
7347 , NULL
7348 , NVL(rl.ETC_EQUIP_HRS, 0) + NVL(tmp.EQUIPMENT_hours, 0)
7349 , NVL(rl.ETC_EQUIP_HRS, 0) + tmp.ETC_EQUIP_HRS
7350 )
7351 , NVL(rl.ETC_EQUIP_HRS, 0) + NVL(tmp.ETC_EQUIP_HRS, 0)
7352 ) ETC_EQUIP_HRS
7353 , DECODE ( ver3.wp_flag
7354 , 'Y'
7355 , DECODE(TO_CHAR(tmp.ETC_LABOR_BRDN_COST)
7356 , NULL
7357 , NVL(rl.ETC_LABOR_BRDN_COST, 0) + NVL(tmp.labor_BRDN_COST, 0)
7358 , NVL(rl.ETC_LABOR_BRDN_COST, 0) + tmp.ETC_LABOR_BRDN_COST
7359 )
7360 , NVL(rl.ETC_LABOR_BRDN_COST, 0) + NVL(tmp.ETC_LABOR_BRDN_COST, 0)
7361 ) ETC_LABOR_BRDN_COST
7362 , DECODE ( ver3.wp_flag
7363 , 'Y'
7364 , DECODE(TO_CHAR(tmp.ETC_EQUIP_BRDN_COST)
7365 , NULL
7366 , NVL(rl.ETC_equip_BRDN_COST, 0) + NVL(tmp.EQUIPment_BRDN_COST, 0)
7367 , NVL(rl.ETC_equip_BRDN_COST, 0) + tmp.ETC_equip_BRDN_COST
7368 )
7369 , NVL(rl.ETC_EQUIP_BRDN_COST, 0) + NVL(tmp.ETC_EQUIP_BRDN_COST, 0)
7370 ) ETC_EQUIP_BRDN_COST
7371 , DECODE ( ver3.wp_flag
7372 , 'Y'
7373 , DECODE(TO_CHAR(tmp.ETC_BRDN_COST)
7374 , NULL
7375 , NVL(rl.ETC_BRDN_COST, 0) + NVL(tmp.BRDN_COST, 0)
7376 , NVL(rl.ETC_BRDN_COST, 0) + tmp.ETC_BRDN_COST
7377
7378 )
7379 , NVL(rl.ETC_BRDN_COST, 0) + NVL(tmp.ETC_BRDN_COST, 0)
7380 ) ETC_BRDN_COST
7381 , DECODE ( ver3.wp_flag
7382 , 'Y'
7383 , DECODE(TO_CHAR(tmp.ETC_raw_COST)
7384 , NULL
7385 , NVL(rl.ETC_raw_COST, 0) + NVL(tmp.raw_COST, 0)
7386 , NVL(rl.ETC_raw_COST, 0) + tmp.ETC_raw_COST
7387 )
7388 , NVL(rl.ETC_raw_COST, 0) + NVL(tmp.ETC_raw_COST, 0)
7389 ) ETC_RAW_COST
7390 , DECODE ( ver3.wp_flag
7391 , 'Y'
7392 , DECODE(TO_CHAR(tmp.ETC_labor_raw_COST)
7393 , NULL
7394 , NVL(rl.ETC_labor_raw_COST, 0) + NVL(tmp.labor_raw_COST, 0)
7395 , NVL(rl.ETC_labor_raw_COST, 0) + tmp.ETC_labor_raw_COST
7396 )
7397 , NVL(rl.ETC_labor_raw_COST, 0) + NVL(tmp.ETC_labor_raw_COST, 0)
7398 ) ETC_LABOR_RAW_COST
7399 , DECODE ( ver3.wp_flag
7400 , 'Y'
7401 , DECODE(TO_CHAR(tmp.ETC_equip_raw_COST)
7402 , NULL
7403 , NVL(rl.ETC_equip_raw_COST, 0) + NVL(tmp.equipment_raw_COST, 0)
7404 , NVL(rl.ETC_equip_raw_COST, 0) + tmp.ETC_equip_raw_COST
7405 )
7406 , NVL(rl.ETC_equip_raw_COST, 0) + NVL(tmp.ETC_equip_raw_COST, 0)
7407 ) ETC_EQUIP_RAW_COST
7408 , NVL(rl.CUSTOM1, 0) + NVL(tmp.CUSTOM1, 0)
7409 , NVL(rl.CUSTOM2, 0) + NVL(tmp.CUSTOM2, 0)
7410 , NVL(rl.CUSTOM3, 0) + NVL(tmp.CUSTOM3, 0)
7411 , NVL(rl.CUSTOM4, 0) + NVL(tmp.CUSTOM4, 0)
7412 , NVL(rl.CUSTOM5, 0) + NVL(tmp.CUSTOM5, 0)
7413 , NVL(rl.CUSTOM6, 0) + NVL(tmp.CUSTOM6, 0)
7414 , NVL(rl.CUSTOM7, 0) + NVL(tmp.CUSTOM7, 0)
7415 , NVL(rl.CUSTOM8, 0) + NVL(tmp.CUSTOM8, 0)
7416 , NVL(rl.CUSTOM9, 0) + NVL(tmp.CUSTOM9, 0)
7417 , NVL(rl.CUSTOM10, 0) + NVL(tmp.CUSTOM10, 0)
7418 , NVL(rl.CUSTOM11, 0) + NVL(tmp.CUSTOM11, 0)
7419 , NVL(rl.CUSTOM12, 0) + NVL(tmp.CUSTOM12, 0)
7420 , NVL(rl.CUSTOM13, 0) + NVL(tmp.CUSTOM13, 0)
7421 , NVL(rl.CUSTOM14, 0) + NVL(tmp.CUSTOM14, 0)
7422 , NVL(rl.CUSTOM15, 0) + NVL(tmp.CUSTOM15, 0)
7423 , SYSDATE
7424 , l_last_updated_by
7425 , l_last_update_login
7426 FROM
7427 PJI_FP_RMAP_FPR_T rwid
7428 , pji_fp_aggr_pjp1_t tmp
7429 , pji_pjp_wbs_header ver3
7430 WHERE 1 = 1
7431 AND tmp.rowid = rwid.pjp1_rowid
7432 AND rl.rowid = rwid.fpr_rowid
7433 AND rwid.fpr_rowid IS NOT NULL
7434 AND ver3.plan_version_id = tmp.plan_version_id
7435 AND ver3.plan_type_code = tmp.plan_type_code /* 4471527 */
7436 AND rwid.worker_id = g_worker_id
7437 AND tmp.worker_id = g_worker_id
7438 -- AND ver3.worker_id = g_worker_id
7439 AND tmp.project_id = ver3.project_id
7440 AND tmp.plan_type_id = NVL(ver3.plan_type_id, -1) -- each plan type can have a different -3, -4 slice.
7441 )
7442 WHERE rl.rowid IN
7443 (
7444 SELECT rwid.fpr_rowid
7445 FROM PJI_FP_RMAP_FPR_T rwid
7446 WHERE rwid.fpr_rowid IS NOT NULL
7447 AND rwid.worker_id = g_worker_id
7448 );
7449
7450 print_time ( ' MERGE_INTO_FP_FACT 2.1 ' || sql%rowcount ) ;
7451
7452
7453 EXCEPTION
7454 WHEN OTHERS THEN
7455 FND_MSG_PUB.add_exc_msg( p_pkg_name => g_package_name ,
7456 p_procedure_name => 'UPDATE_FP_ROWS');
7457 RAISE;
7458 END;
7459
7460
7461 PROCEDURE INSERT_FP_ROWS IS
7462
7463 l_last_update_date date := SYSDATE;
7464 l_last_updated_by NUMBER := FND_GLOBAL.USER_ID;
7465 l_creation_date date := SYSDATE;
7466 l_created_by NUMBER := FND_GLOBAL.USER_ID;
7467 l_last_update_login NUMBER := FND_GLOBAL.LOGIN_ID;
7468
7469 BEGIN
7470
7471 INSERT INTO pji_fp_xbs_accum_f fact
7472 (
7473 PROJECT_ID
7474 , PROJECT_ORG_ID
7475 , PROJECT_ORGANIZATION_ID
7476 , PROJECT_ELEMENT_ID
7477 , TIME_ID
7478 , PERIOD_TYPE_ID
7479 , CALENDAR_TYPE
7480 , RBS_AGGR_LEVEL
7481 , WBS_ROLLUP_FLAG
7482 , PRG_ROLLUP_FLAG
7483 , CURR_RECORD_TYPE_ID
7484 , CURRENCY_CODE
7485 , RBS_ELEMENT_ID
7486 , RBS_VERSION_ID
7487 , PLAN_VERSION_ID
7488 , PLAN_TYPE_ID
7489 , LAST_UPDATE_DATE
7490 , LAST_UPDATED_BY
7491 , CREATION_DATE
7492 , CREATED_BY
7493 , LAST_UPDATE_LOGIN
7494 , RAW_COST
7495 , BRDN_COST
7496 , REVENUE
7497 , BILL_RAW_COST
7498 , BILL_BRDN_COST
7499 , BILL_LABOR_RAW_COST
7500 , BILL_LABOR_BRDN_COST
7501 , BILL_LABOR_HRS
7502 , EQUIPMENT_RAW_COST
7503 , EQUIPMENT_BRDN_COST
7504 , CAPITALIZABLE_RAW_COST
7505 , CAPITALIZABLE_BRDN_COST
7506 , LABOR_RAW_COST
7507 , LABOR_BRDN_COST
7508 , LABOR_HRS
7509 , LABOR_REVENUE
7510 , EQUIPMENT_HOURS
7511 , BILLABLE_EQUIPMENT_HOURS
7512 , SUP_INV_COMMITTED_COST
7513 , PO_COMMITTED_COST
7514 , PR_COMMITTED_COST
7515 , OTH_COMMITTED_COST
7516 , ACT_LABOR_HRS
7517 , ACT_EQUIP_HRS
7518 , ACT_LABOR_BRDN_COST
7519 , ACT_EQUIP_BRDN_COST
7520 , ACT_BRDN_COST
7521 , ACT_RAW_COST
7522 , ACT_REVENUE
7523 , ACT_LABOR_RAW_COST
7524 , ACT_EQUIP_RAW_COST
7525 , ETC_LABOR_HRS
7526 , ETC_EQUIP_HRS
7527 , ETC_LABOR_BRDN_COST
7528 , ETC_EQUIP_BRDN_COST
7529 , ETC_BRDN_COST
7530 , ETC_RAW_COST
7531 , ETC_LABOR_RAW_COST
7532 , ETC_EQUIP_RAW_COST
7533 , CUSTOM1
7534 , CUSTOM2
7535 , CUSTOM3
7536 , CUSTOM4
7537 , CUSTOM5
7538 , CUSTOM6
7539 , CUSTOM7
7540 , CUSTOM8
7541 , CUSTOM9
7542 , CUSTOM10
7543 , CUSTOM11
7544 , CUSTOM12
7545 , CUSTOM13
7546 , CUSTOM14
7547 , CUSTOM15
7548 , PLAN_TYPE_CODE /* 4471527 */
7549 )
7550 SELECT /*+ ordered full(rwid) rowid(tmp) */
7551 tmp.PROJECT_ID
7552 , tmp.PROJECT_ORG_ID
7553 , tmp.PROJECT_ORGANIZATION_ID
7554 -- , PARTITION_ID
7555 , tmp.PROJECT_ELEMENT_ID
7556 , tmp.TIME_ID
7557 , tmp.PERIOD_TYPE_ID
7558 , tmp.CALENDAR_TYPE
7559 , tmp.RBS_AGGR_LEVEL
7560 , tmp.WBS_ROLLUP_FLAG
7561 , tmp.PRG_ROLLUP_FLAG
7562 , tmp.CURR_RECORD_TYPE_ID
7563 , tmp.CURRENCY_CODE
7564 , tmp.RBS_ELEMENT_ID
7565 , tmp.RBS_VERSION_ID
7566 , ver3.PLAN_VERSION_ID
7567 , tmp.PLAN_TYPE_ID
7568 , l_last_update_date
7569 , l_last_updated_by
7570 , l_creation_date
7571 , l_created_by
7572 , l_last_update_login
7573 , RAW_COST
7574 , BRDN_COST
7575 , REVENUE
7576 , BILL_RAW_COST
7577 , BILL_BRDN_COST
7578 , BILL_LABOR_RAW_COST
7579 , BILL_LABOR_BRDN_COST
7580 , BILL_LABOR_HRS
7581 , EQUIPMENT_RAW_COST
7582 , EQUIPMENT_BRDN_COST
7583 , CAPITALIZABLE_RAW_COST
7584 , CAPITALIZABLE_BRDN_COST
7585 , LABOR_RAW_COST
7586 , LABOR_BRDN_COST
7587 , LABOR_HRS
7588 , LABOR_REVENUE
7589 , EQUIPMENT_HOURS
7590 , BILLABLE_EQUIPMENT_HOURS
7591 , SUP_INV_COMMITTED_COST
7592 , PO_COMMITTED_COST
7593 , PR_COMMITTED_COST
7594 , OTH_COMMITTED_COST
7595 , ACT_LABOR_HRS
7596 , ACT_EQUIP_HRS
7597 , ACT_LABOR_BRDN_COST
7598 , ACT_EQUIP_BRDN_COST
7599 , ACT_BRDN_COST
7600 , ACT_RAW_COST
7601 , ACT_REVENUE
7602 , ACT_LABOR_RAW_COST
7603 , ACT_EQUIP_RAW_COST
7604 , DECODE ( ver3.wp_flag
7605 , 'Y'
7606 , DECODE(TO_CHAR(tmp.ETC_LABOR_HRS) -- For Workplan
7607 , NULL
7608 , NVL(tmp.labor_hrs, 0)
7609 , NVL(tmp.ETC_LABOR_HRS, 0)
7610 )
7611 , NVL(tmp.ETC_LABOR_HRS, 0)
7612 ) ETC_LABOR_HRS
7613 , DECODE ( ver3.wp_flag
7614 , 'Y'
7615 , DECODE(TO_CHAR(tmp.ETC_EQUIP_HRS)
7616 , NULL
7617 , NVL(tmp.EQUIPMENT_hours, 0)
7618 , NVL(tmp.ETC_EQUIP_HRS, 0)
7619 )
7620 , NVL(tmp.ETC_EQUIP_HRS, 0)
7621 ) ETC_EQUIP_HRS
7622 , DECODE ( ver3.wp_flag
7623 , 'Y'
7624 , DECODE(TO_CHAR(tmp.ETC_LABOR_BRDN_COST)
7625 , NULL
7626 , NVL(tmp.labor_BRDN_COST, 0)
7627 , NVL(tmp.ETC_LABOR_BRDN_COST, 0)
7628 )
7629 , NVL(tmp.ETC_LABOR_BRDN_COST, 0)
7630 ) ETC_LABOR_BRDN_COST
7631 , DECODE ( ver3.wp_flag
7632 , 'Y'
7633 , DECODE(TO_CHAR(tmp.ETC_EQUIP_BRDN_COST)
7634 , NULL
7635 , NVL(tmp.EQUIPment_BRDN_COST, 0)
7636 , NVL(tmp.ETC_equip_BRDN_COST, 0)
7637 )
7638 , NVL(tmp.ETC_EQUIP_BRDN_COST, 0)
7639 ) ETC_equip_BRDN_COST
7640 , DECODE ( ver3.wp_flag
7641 , 'Y'
7642 , DECODE(TO_CHAR(tmp.ETC_BRDN_COST)
7643 , NULL
7644 , NVL(tmp.BRDN_COST, 0)
7645 , NVL(tmp.ETC_BRDN_COST, 0)
7646 )
7647 , NVL(tmp.ETC_BRDN_COST, 0)
7648 ) ETC_BRDN_COST
7649 , DECODE ( ver3.wp_flag
7650 , 'Y'
7651 , DECODE(TO_CHAR(tmp.ETC_raw_COST)
7652 , NULL
7653 , NVL(tmp.raw_COST, 0)
7654 , NVL(tmp.ETC_raw_COST, 0)
7655 )
7656 , NVL(tmp.ETC_raw_COST, 0)
7657 ) ETC_raw_COST
7658 , DECODE ( ver3.wp_flag
7659 , 'Y'
7660 , DECODE(TO_CHAR(tmp.ETC_labor_raw_COST)
7661 , NULL
7662 , NVL(tmp.labor_raw_COST, 0)
7663 , NVL(tmp.ETC_labor_raw_COST, 0)
7664 )
7665 , NVL(tmp.ETC_labor_raw_COST, 0)
7666 ) ETC_labor_raw_COST
7667 , DECODE ( ver3.wp_flag
7668 , 'Y'
7669 , DECODE(TO_CHAR(tmp.ETC_equip_raw_COST)
7670 , NULL
7671 , NVL(tmp.equipment_raw_COST, 0)
7672 , NVL(tmp.ETC_equip_raw_COST, 0)
7673 )
7674 , NVL(tmp.ETC_equip_raw_COST, 0)
7675 ) ETC_equip_raw_COST
7676 , CUSTOM1
7677 , CUSTOM2
7678 , CUSTOM3
7679 , CUSTOM4
7680 , CUSTOM5
7681 , CUSTOM6
7682 , CUSTOM7
7683 , CUSTOM8
7684 , CUSTOM9
7685 , CUSTOM10
7686 , CUSTOM11
7687 , CUSTOM12
7688 , CUSTOM13
7689 , CUSTOM14
7690 , CUSTOM15
7691 , tmp.plan_type_code /* 4471527 */
7692 FROM PJI_FP_RMAP_FPR_T rwid
7693 , pji_fp_aggr_pjp1_t tmp
7694 , pji_pjp_wbs_header ver3 -- replaced ver3 with wbs header for project-to-program association event.
7695 WHERE 1 = 1
7696 AND tmp.worker_id = g_worker_id
7697 AND rwid.worker_id = g_worker_id
7698 AND tmp.rowid = rwid.pjp1_rowid
7699 AND rwid.fpr_rowid IS NULL
7700 AND ver3.plan_version_id = tmp.plan_version_id
7701 AND ver3.plan_type_code = tmp.plan_type_code /* 4471527 */
7702 AND tmp.project_id = ver3.project_id -- use index.
7703 AND tmp.plan_type_id = NVL(ver3.plan_type_id, -1) -- each plan type can have a different -3, -4 slice.
7704 ORDER BY
7705 tmp.PROJECT_ID
7706 , ver3.PLAN_VERSION_ID
7707 , tmp.PROJECT_ELEMENT_ID
7708 , tmp.TIME_ID
7709 , tmp.RBS_VERSION_ID;
7710
7711 print_time ( ' MERGE_INTO_FP_FACT 3.1 worker id..' || g_worker_id || 'row count ' || SQL%ROWCOUNT) ;
7712
7713
7714 EXCEPTION
7715 WHEN OTHERS THEN
7716 FND_MSG_PUB.add_exc_msg( p_pkg_name => g_package_name ,
7717 p_procedure_name => 'INSERT_FP_ROWS');
7718 RAISE;
7719 END;
7720
7721
7722 PROCEDURE INSERT_INTO_AC_FACT IS
7723 l_last_update_date date := SYSDATE;
7724 l_last_updated_by NUMBER := FND_GLOBAL.USER_ID;
7725 l_creation_date date := SYSDATE;
7726 l_created_by NUMBER := FND_GLOBAL.USER_ID;
7727 l_last_update_login NUMBER := FND_GLOBAL.LOGIN_ID;
7728 BEGIN
7729
7730 INSERT INTO PJI_AC_XBS_ACCUM_F
7731 (
7732 PROJECT_ID
7733 , PROJECT_ORG_ID
7734 , PROJECT_ORGANIZATION_ID
7735 , PROJECT_ELEMENT_ID
7736 , TIME_ID
7737 , PERIOD_TYPE_ID
7738 , CALENDAR_TYPE
7739 , WBS_ROLLUP_FLAG
7740 , PRG_ROLLUP_FLAG
7741 , CURR_RECORD_TYPE_ID
7742 , CURRENCY_CODE
7743 , REVENUE
7744 , INITIAL_FUNDING_AMOUNT
7745 , INITIAL_FUNDING_COUNT
7746 , ADDITIONAL_FUNDING_AMOUNT
7747 , ADDITIONAL_FUNDING_COUNT
7748 , CANCELLED_FUNDING_AMOUNT
7749 , CANCELLED_FUNDING_COUNT
7750 , FUNDING_ADJUSTMENT_AMOUNT
7751 , FUNDING_ADJUSTMENT_COUNT
7752 , REVENUE_WRITEOFF
7753 , AR_INVOICE_AMOUNT
7754 , AR_INVOICE_COUNT
7755 , AR_CASH_APPLIED_AMOUNT
7756 , AR_INVOICE_WRITE_OFF_AMOUNT
7757 , AR_INVOICE_WRITEOFF_COUNT
7758 , AR_CREDIT_MEMO_AMOUNT
7759 , AR_CREDIT_MEMO_COUNT
7760 , UNBILLED_RECEIVABLES
7761 , UNEARNED_REVENUE
7762 , AR_UNAPPR_INVOICE_AMOUNT
7763 , AR_UNAPPR_INVOICE_COUNT
7764 , AR_APPR_INVOICE_AMOUNT
7765 , AR_APPR_INVOICE_COUNT
7766 , AR_AMOUNT_DUE
7767 , AR_COUNT_DUE
7768 , AR_AMOUNT_OVERDUE
7769 , AR_COUNT_OVERDUE
7770 , DORMANT_BACKLOG_INACTIV
7771 , DORMANT_BACKLOG_START
7772 , LOST_BACKLOG
7773 , ACTIVE_BACKLOG
7774 , REVENUE_AT_RISK
7775 , LAST_UPDATE_DATE
7776 , LAST_UPDATED_BY
7777 , CREATION_DATE
7778 , CREATED_BY
7779 , LAST_UPDATE_LOGIN
7780 , CUSTOM1
7781 , CUSTOM2
7782 , CUSTOM3
7783 , CUSTOM4
7784 , CUSTOM5
7785 , CUSTOM6
7786 , CUSTOM7
7787 , CUSTOM8
7788 , CUSTOM9
7789 , CUSTOM10
7790 , CUSTOM11
7791 , CUSTOM12
7792 , CUSTOM13
7793 , CUSTOM14
7794 , CUSTOM15
7795 )
7796 SELECT
7797 PROJECT_ID
7798 , PROJECT_ORG_ID
7799 , PROJECT_ORGANIZATION_ID
7800 , PROJECT_ELEMENT_ID
7801 , TIME_ID
7802 , PERIOD_TYPE_ID
7803 , CALENDAR_TYPE
7804 , WBS_ROLLUP_FLAG
7805 , PRG_ROLLUP_FLAG
7806 , CURR_RECORD_TYPE_ID
7807 , CURRENCY_CODE
7808 , REVENUE
7809 , INITIAL_FUNDING_AMOUNT
7810 , INITIAL_FUNDING_COUNT
7811 , ADDITIONAL_FUNDING_AMOUNT
7812 , ADDITIONAL_FUNDING_COUNT
7813 , CANCELLED_FUNDING_AMOUNT
7814 , CANCELLED_FUNDING_COUNT
7815 , FUNDING_ADJUSTMENT_AMOUNT
7816 , FUNDING_ADJUSTMENT_COUNT
7817 , REVENUE_WRITEOFF
7818 , AR_INVOICE_AMOUNT
7819 , AR_INVOICE_COUNT
7820 , AR_CASH_APPLIED_AMOUNT
7821 , AR_INVOICE_WRITE_OFF_AMOUNT
7822 , AR_INVOICE_WRITEOFF_COUNT
7823 , AR_CREDIT_MEMO_AMOUNT
7824 , AR_CREDIT_MEMO_COUNT
7825 , UNBILLED_RECEIVABLES
7826 , UNEARNED_REVENUE
7827 , AR_UNAPPR_INVOICE_AMOUNT
7828 , AR_UNAPPR_INVOICE_COUNT
7829 , AR_APPR_INVOICE_AMOUNT
7830 , AR_APPR_INVOICE_COUNT
7831 , AR_AMOUNT_DUE
7832 , AR_COUNT_DUE
7833 , AR_AMOUNT_OVERDUE
7834 , AR_COUNT_OVERDUE
7835 , DORMANT_BACKLOG_INACTIV
7836 , DORMANT_BACKLOG_START
7837 , LOST_BACKLOG
7838 , ACTIVE_BACKLOG
7839 , REVENUE_AT_RISK
7840 , l_last_update_date
7841 , l_last_updated_by
7842 , l_creation_date
7843 , l_created_by
7844 , l_last_update_login
7845 , CUSTOM1
7846 , CUSTOM2
7847 , CUSTOM3
7848 , CUSTOM4
7849 , CUSTOM5
7850 , CUSTOM6
7851 , CUSTOM7
7852 , CUSTOM8
7853 , CUSTOM9
7854 , CUSTOM10
7855 , CUSTOM11
7856 , CUSTOM12
7857 , CUSTOM13
7858 , CUSTOM14
7859 , CUSTOM15
7860 FROM PJI_AC_AGGR_PJP1_T
7861 WHERE worker_id = g_worker_id
7862 ORDER BY
7863 PROJECT_ID
7864 , PROJECT_ELEMENT_ID
7865 , TIME_ID
7866 , CURRENCY_CODE;
7867
7868 EXCEPTION
7869 WHEN OTHERS THEN
7870 FND_MSG_PUB.add_exc_msg( p_pkg_name => g_package_name ,
7871 p_procedure_name => 'INSERT_INTO_AC_FACT');
7872 RAISE;
7873 END;
7874
7875
7876 PROCEDURE MERGE_INTO_AC_FACT IS
7877 BEGIN
7878
7879 CLEANUP_AC_RMAP_FPR;
7880
7881 GET_AC_ROW_IDS;
7882
7883 UPDATE_AC_ROWS;
7884
7885 INSERT_AC_ROWS;
7886
7887 EXCEPTION
7888 WHEN OTHERS THEN
7889 FND_MSG_PUB.add_exc_msg( p_pkg_name => g_package_name ,
7890 p_procedure_name => 'MERGE_INTO_AC_FACT');
7891 RAISE;
7892 END;
7893
7894
7895 PROCEDURE CLEANUP_AC_RMAP_FPR IS
7896 BEGIN
7897
7898 DELETE FROM PJI_ac_RMAP_acR_T
7899 WHERE worker_id = g_worker_id;
7900
7901 EXCEPTION
7902 WHEN OTHERS THEN
7903 FND_MSG_PUB.add_exc_msg( p_pkg_name => g_package_name ,
7904 p_procedure_name => 'CLEANUP_AC_RMAP_FPR');
7905 RAISE;
7906 END;
7907
7908
7909 PROCEDURE GET_AC_ROW_IDS IS
7910 BEGIN
7911
7912 INSERT INTO PJI_ac_RMAP_acR_T
7913 (
7914 worker_id
7915 , pjp1_rowid
7916 , fpr_rowid
7917 )
7918 SELECT
7919 g_worker_id WORKER_ID
7920 , tmp.ROWID PJP1_ROWID
7921 , rl.ROWID FPR_ROWID
7922 FROM
7923 PJI_AC_AGGR_PJP1_T tmp
7924 , PJI_AC_XBS_ACCUM_F rl
7925 WHERE 1 = 1
7926 AND tmp.worker_id = g_worker_id
7927 AND tmp.PROJECT_ID = rl.PROJECT_ID (+)
7928 AND tmp.PROJECT_ORG_ID = rl.PROJECT_ORG_ID (+)
7929 AND tmp.PROJECT_ORGANIZATION_ID = rl.PROJECT_ORGANIZATION_ID (+)
7930 AND tmp.PROJECT_ELEMENT_ID = rl.PROJECT_ELEMENT_ID (+)
7931 AND tmp.TIME_ID = rl.TIME_ID (+)
7932 AND tmp.PERIOD_TYPE_ID = rl.PERIOD_TYPE_ID (+)
7933 AND tmp.CALENDAR_TYPE = rl.CALENDAR_TYPE (+)
7934 AND tmp.WBS_ROLLUP_FLAG = rl.WBS_ROLLUP_FLAG (+)
7935 AND tmp.PRG_ROLLUP_FLAG = rl.PRG_ROLLUP_FLAG (+)
7936 AND tmp.CURR_RECORD_TYPE_ID = rl.CURR_RECORD_TYPE_ID (+)
7937 AND tmp.CURRENCY_CODE = rl.CURRENCY_CODE (+) ;
7938
7939 EXCEPTION
7940 WHEN OTHERS THEN
7941 FND_MSG_PUB.add_exc_msg( p_pkg_name => g_package_name ,
7942 p_procedure_name => 'GET_AC_ROW_IDS');
7943 RAISE;
7944 END;
7945
7946
7947 PROCEDURE UPDATE_AC_ROWS IS
7948
7949 l_last_update_date DATE := SYSDATE;
7950 l_last_updated_by NUMBER := FND_GLOBAL.USER_ID;
7951 l_last_update_login NUMBER := FND_GLOBAL.LOGIN_ID;
7952
7953 BEGIN
7954
7955 UPDATE /*+ ordered use_nl(rl) rowid(rl) */
7956 PJI_AC_XBS_ACCUM_F rl
7957 SET (
7958 rl.REVENUE
7959 , rl.INITIAL_FUNDING_AMOUNT
7960 , rl.INITIAL_FUNDING_COUNT
7961 , rl.ADDITIONAL_FUNDING_AMOUNT
7962 , rl.ADDITIONAL_FUNDING_COUNT
7963 , rl.CANCELLED_FUNDING_AMOUNT
7964 , rl.CANCELLED_FUNDING_COUNT
7965 , rl.FUNDING_ADJUSTMENT_AMOUNT
7966 , rl.FUNDING_ADJUSTMENT_COUNT
7967 , rl.REVENUE_WRITEOFF
7968 , rl.AR_INVOICE_AMOUNT
7969 , rl.AR_INVOICE_COUNT
7970 , rl.AR_CASH_APPLIED_AMOUNT
7971 , rl.AR_INVOICE_WRITE_OFF_AMOUNT
7972 , rl.AR_INVOICE_WRITEOFF_COUNT
7973 , rl.AR_CREDIT_MEMO_AMOUNT
7974 , rl.AR_CREDIT_MEMO_COUNT
7975 , rl.UNBILLED_RECEIVABLES
7976 , rl.UNEARNED_REVENUE
7977 , rl.AR_UNAPPR_INVOICE_AMOUNT
7978 , rl.AR_UNAPPR_INVOICE_COUNT
7979 , rl.AR_APPR_INVOICE_AMOUNT
7980 , rl.AR_APPR_INVOICE_COUNT
7981 , rl.AR_AMOUNT_DUE
7982 , rl.AR_COUNT_DUE
7983 , rl.AR_AMOUNT_OVERDUE
7984 , rl.AR_COUNT_OVERDUE
7985 , rl.DORMANT_BACKLOG_INACTIV
7986 , rl.DORMANT_BACKLOG_START
7987 , rl.LOST_BACKLOG
7988 , rl.ACTIVE_BACKLOG
7989 , rl.REVENUE_AT_RISK
7990 , rl.CUSTOM1
7991 , rl.CUSTOM2
7992 , rl.CUSTOM3
7993 , rl.CUSTOM4
7994 , rl.CUSTOM5
7995 , rl.CUSTOM6
7996 , rl.CUSTOM7
7997 , rl.CUSTOM8
7998 , rl.CUSTOM9
7999 , rl.CUSTOM10
8000 , rl.CUSTOM11
8001 , rl.CUSTOM12
8002 , rl.CUSTOM13
8003 , rl.CUSTOM14
8004 , rl.CUSTOM15
8005 , rl.LAST_UPDATE_DATE
8006 , rl.LAST_UPDATED_BY
8007 , rl.LAST_UPDATE_LOGIN
8008 ) =
8009 (
8010 SELECT /*+ ORDERED ROWID(TMP) index(rwid,PJI_AC_RMAP_ACR_T_N1) */
8011 NVL(rl.REVENUE, 0) + NVL(tmp.REVENUE, 0)
8012 , NVL(rl.INITIAL_FUNDING_AMOUNT, 0) + NVL(tmp.INITIAL_FUNDING_AMOUNT, 0)
8013 , NVL(rl.INITIAL_FUNDING_COUNT, 0) + NVL(tmp.INITIAL_FUNDING_COUNT, 0)
8014 , NVL(rl.ADDITIONAL_FUNDING_AMOUNT, 0) + NVL(tmp.ADDITIONAL_FUNDING_AMOUNT, 0)
8015 , NVL(rl.ADDITIONAL_FUNDING_COUNT, 0) + NVL(tmp.ADDITIONAL_FUNDING_COUNT, 0)
8016 , NVL(rl.CANCELLED_FUNDING_AMOUNT, 0) + NVL(tmp.CANCELLED_FUNDING_AMOUNT, 0)
8017 , NVL(rl.CANCELLED_FUNDING_COUNT, 0) + NVL(tmp.CANCELLED_FUNDING_COUNT, 0)
8018 , NVL(rl.FUNDING_ADJUSTMENT_AMOUNT, 0) + NVL(tmp.FUNDING_ADJUSTMENT_AMOUNT, 0)
8019 , NVL(rl.FUNDING_ADJUSTMENT_COUNT, 0) + NVL(tmp.FUNDING_ADJUSTMENT_COUNT, 0)
8020 , NVL(rl.REVENUE_WRITEOFF, 0) + NVL(tmp.REVENUE_WRITEOFF, 0)
8021 , NVL(rl.AR_INVOICE_AMOUNT, 0) + NVL(tmp.AR_INVOICE_AMOUNT, 0)
8022 , NVL(rl.AR_INVOICE_COUNT, 0) + NVL(tmp.AR_INVOICE_COUNT, 0)
8023 , NVL(rl.AR_CASH_APPLIED_AMOUNT, 0) + NVL(tmp.AR_CASH_APPLIED_AMOUNT, 0)
8024 , NVL(rl.AR_INVOICE_WRITE_OFF_AMOUNT, 0) + NVL(tmp.AR_INVOICE_WRITE_OFF_AMOUNT, 0)
8025 , NVL(rl.AR_INVOICE_WRITEOFF_COUNT, 0) + NVL(tmp.AR_INVOICE_WRITEOFF_COUNT, 0)
8026 , NVL(rl.AR_CREDIT_MEMO_AMOUNT, 0) + NVL(tmp.AR_CREDIT_MEMO_AMOUNT, 0)
8027 , NVL(rl.AR_CREDIT_MEMO_COUNT, 0) + NVL(tmp.AR_CREDIT_MEMO_COUNT, 0)
8028 , NVL(rl.UNBILLED_RECEIVABLES, 0) + NVL(tmp.UNBILLED_RECEIVABLES, 0)
8029 , NVL(rl.UNEARNED_REVENUE, 0) + NVL(tmp.UNEARNED_REVENUE, 0)
8030 , NVL(rl.AR_UNAPPR_INVOICE_AMOUNT, 0) + NVL(tmp.AR_UNAPPR_INVOICE_AMOUNT, 0)
8031 , NVL(rl.AR_UNAPPR_INVOICE_COUNT, 0) + NVL(tmp.AR_UNAPPR_INVOICE_COUNT, 0)
8032 , NVL(rl.AR_APPR_INVOICE_AMOUNT, 0) + NVL(tmp.AR_APPR_INVOICE_AMOUNT, 0)
8033 , NVL(rl.AR_APPR_INVOICE_COUNT, 0) + NVL(tmp.AR_APPR_INVOICE_COUNT, 0)
8034 , NVL(rl.AR_AMOUNT_DUE, 0) + NVL(tmp.AR_AMOUNT_DUE, 0)
8035 , NVL(rl.AR_COUNT_DUE, 0) + NVL(tmp.AR_COUNT_DUE, 0)
8036 , NVL(rl.AR_AMOUNT_OVERDUE, 0) + NVL(tmp.AR_AMOUNT_OVERDUE, 0)
8037 , NVL(rl.AR_COUNT_OVERDUE, 0) + NVL(tmp.AR_COUNT_OVERDUE, 0)
8038 , NVL(rl.DORMANT_BACKLOG_INACTIV, 0) + NVL(tmp.DORMANT_BACKLOG_INACTIV, 0)
8039 , NVL(rl.DORMANT_BACKLOG_START, 0) + NVL(tmp.DORMANT_BACKLOG_START, 0)
8040 , NVL(rl.LOST_BACKLOG, 0) + NVL(tmp.LOST_BACKLOG, 0)
8041 , NVL(rl.ACTIVE_BACKLOG, 0) + NVL(tmp.ACTIVE_BACKLOG, 0)
8042 , NVL(rl.REVENUE_AT_RISK, 0) + NVL(tmp.REVENUE_AT_RISK, 0)
8043 , NVL(rl.CUSTOM1, 0) + NVL(tmp.CUSTOM1, 0)
8044 , NVL(rl.CUSTOM2, 0) + NVL(tmp.CUSTOM2, 0)
8045 , NVL(rl.CUSTOM3, 0) + NVL(tmp.CUSTOM3, 0)
8046 , NVL(rl.CUSTOM4, 0) + NVL(tmp.CUSTOM4, 0)
8047 , NVL(rl.CUSTOM5, 0) + NVL(tmp.CUSTOM5, 0)
8048 , NVL(rl.CUSTOM6, 0) + NVL(tmp.CUSTOM6, 0)
8049 , NVL(rl.CUSTOM7, 0) + NVL(tmp.CUSTOM7, 0)
8050 , NVL(rl.CUSTOM8, 0) + NVL(tmp.CUSTOM8, 0)
8051 , NVL(rl.CUSTOM9, 0) + NVL(tmp.CUSTOM9, 0)
8052 , NVL(rl.CUSTOM10, 0) + NVL(tmp.CUSTOM10, 0)
8053 , NVL(rl.CUSTOM11, 0) + NVL(tmp.CUSTOM11, 0)
8054 , NVL(rl.CUSTOM12, 0) + NVL(tmp.CUSTOM12, 0)
8055 , NVL(rl.CUSTOM13, 0) + NVL(tmp.CUSTOM13, 0)
8056 , NVL(rl.CUSTOM14, 0) + NVL(tmp.CUSTOM14, 0)
8057 , NVL(rl.CUSTOM15, 0) + NVL(tmp.CUSTOM15, 0)
8058 , l_last_update_date
8059 , l_last_updated_by
8060 , l_last_update_login
8061 FROM
8062 PJI_AC_RMAP_ACR_T rwid
8063 , PJI_AC_AGGR_PJP1_T tmp
8064 WHERE 1 = 1
8065 AND tmp.worker_id = g_worker_id
8066 AND rwid.worker_id = g_worker_id
8067 AND tmp.rowid = rwid.pjp1_rowid
8068 AND rl.rowid = rwid.fpr_rowid
8069 AND rwid.fpr_rowid IS NOT NULL
8070 )
8071 WHERE rl.rowid IN
8072 ( SELECT fpr_rowid
8073 FROM PJI_ac_RMAP_acR_T rwid
8074 WHERE 1=1
8075 AND rwid.fpr_rowid IS NOT NULL
8076 AND rwid.worker_id = g_worker_id);
8077
8078 EXCEPTION
8079 WHEN OTHERS THEN
8080 FND_MSG_PUB.add_exc_msg( p_pkg_name => g_package_name ,
8081 p_procedure_name => 'UPDATE_AC_ROWS');
8082 RAISE;
8083 END;
8084
8085
8086 PROCEDURE INSERT_AC_ROWS IS
8087 l_last_update_date date := SYSDATE;
8088 l_last_updated_by NUMBER := FND_GLOBAL.USER_ID;
8089 l_creation_date date := SYSDATE;
8090 l_created_by NUMBER := FND_GLOBAL.USER_ID;
8091 l_last_update_login NUMBER := FND_GLOBAL.LOGIN_ID;
8092 BEGIN
8093
8094 INSERT INTO PJI_AC_XBS_ACCUM_F
8095 (
8096 PROJECT_ID
8097 , PROJECT_ORG_ID
8098 , PROJECT_ORGANIZATION_ID
8099 , PROJECT_ELEMENT_ID
8100 , TIME_ID
8101 , PERIOD_TYPE_ID
8102 , CALENDAR_TYPE
8103 , WBS_ROLLUP_FLAG
8104 , PRG_ROLLUP_FLAG
8105 , CURR_RECORD_TYPE_ID
8106 , CURRENCY_CODE
8107 , REVENUE
8108 , INITIAL_FUNDING_AMOUNT
8109 , INITIAL_FUNDING_COUNT
8110 , ADDITIONAL_FUNDING_AMOUNT
8111 , ADDITIONAL_FUNDING_COUNT
8112 , CANCELLED_FUNDING_AMOUNT
8113 , CANCELLED_FUNDING_COUNT
8114 , FUNDING_ADJUSTMENT_AMOUNT
8115 , FUNDING_ADJUSTMENT_COUNT
8116 , REVENUE_WRITEOFF
8117 , AR_INVOICE_AMOUNT
8118 , AR_INVOICE_COUNT
8119 , AR_CASH_APPLIED_AMOUNT
8120 , AR_INVOICE_WRITE_OFF_AMOUNT
8121 , AR_INVOICE_WRITEOFF_COUNT
8122 , AR_CREDIT_MEMO_AMOUNT
8123 , AR_CREDIT_MEMO_COUNT
8124 , UNBILLED_RECEIVABLES
8125 , UNEARNED_REVENUE
8126 , AR_UNAPPR_INVOICE_AMOUNT
8127 , AR_UNAPPR_INVOICE_COUNT
8128 , AR_APPR_INVOICE_AMOUNT
8129 , AR_APPR_INVOICE_COUNT
8130 , AR_AMOUNT_DUE
8131 , AR_COUNT_DUE
8132 , AR_AMOUNT_OVERDUE
8133 , AR_COUNT_OVERDUE
8134 , DORMANT_BACKLOG_INACTIV
8135 , DORMANT_BACKLOG_START
8136 , LOST_BACKLOG
8137 , ACTIVE_BACKLOG
8138 , REVENUE_AT_RISK
8139 , LAST_UPDATE_DATE
8140 , LAST_UPDATED_BY
8141 , CREATION_DATE
8142 , CREATED_BY
8143 , LAST_UPDATE_LOGIN
8144 , CUSTOM1
8145 , CUSTOM2
8146 , CUSTOM3
8147 , CUSTOM4
8148 , CUSTOM5
8149 , CUSTOM6
8150 , CUSTOM7
8151 , CUSTOM8
8152 , CUSTOM9
8153 , CUSTOM10
8154 , CUSTOM11
8155 , CUSTOM12
8156 , CUSTOM13
8157 , CUSTOM14
8158 , CUSTOM15
8159 )
8160 SELECT
8161 PROJECT_ID
8162 , PROJECT_ORG_ID
8163 , PROJECT_ORGANIZATION_ID
8164 , PROJECT_ELEMENT_ID
8165 , TIME_ID
8166 , PERIOD_TYPE_ID
8167 , CALENDAR_TYPE
8168 , WBS_ROLLUP_FLAG
8169 , PRG_ROLLUP_FLAG
8170 , CURR_RECORD_TYPE_ID
8171 , CURRENCY_CODE
8172 , REVENUE
8173 , INITIAL_FUNDING_AMOUNT
8174 , INITIAL_FUNDING_COUNT
8175 , ADDITIONAL_FUNDING_AMOUNT
8176 , ADDITIONAL_FUNDING_COUNT
8177 , CANCELLED_FUNDING_AMOUNT
8178 , CANCELLED_FUNDING_COUNT
8179 , FUNDING_ADJUSTMENT_AMOUNT
8180 , FUNDING_ADJUSTMENT_COUNT
8181 , REVENUE_WRITEOFF
8182 , AR_INVOICE_AMOUNT
8183 , AR_INVOICE_COUNT
8184 , AR_CASH_APPLIED_AMOUNT
8185 , AR_INVOICE_WRITE_OFF_AMOUNT
8186 , AR_INVOICE_WRITEOFF_COUNT
8187 , AR_CREDIT_MEMO_AMOUNT
8188 , AR_CREDIT_MEMO_COUNT
8189 , UNBILLED_RECEIVABLES
8190 , UNEARNED_REVENUE
8191 , AR_UNAPPR_INVOICE_AMOUNT
8192 , AR_UNAPPR_INVOICE_COUNT
8193 , AR_APPR_INVOICE_AMOUNT
8194 , AR_APPR_INVOICE_COUNT
8195 , AR_AMOUNT_DUE
8196 , AR_COUNT_DUE
8197 , AR_AMOUNT_OVERDUE
8198 , AR_COUNT_OVERDUE
8199 , DORMANT_BACKLOG_INACTIV
8200 , DORMANT_BACKLOG_START
8201 , LOST_BACKLOG
8202 , ACTIVE_BACKLOG
8203 , REVENUE_AT_RISK
8204 , l_last_update_date
8205 , l_last_updated_by
8206 , l_creation_date
8207 , l_created_by
8208 , l_last_update_login
8209 , CUSTOM1
8210 , CUSTOM2
8211 , CUSTOM3
8212 , CUSTOM4
8213 , CUSTOM5
8214 , CUSTOM6
8215 , CUSTOM7
8216 , CUSTOM8
8217 , CUSTOM9
8218 , CUSTOM10
8219 , CUSTOM11
8220 , CUSTOM12
8221 , CUSTOM13
8222 , CUSTOM14
8223 , CUSTOM15
8224 FROM PJI_AC_AGGR_PJP1_T tmp
8225 , PJI_ac_RMAP_acR_T rwid
8226 WHERE 1 = 1
8227 AND tmp.worker_id = g_worker_id
8228 AND rwid.worker_id = g_worker_id
8229 AND tmp.rowid = rwid.pjp1_rowid
8230 AND rwid.fpr_rowid IS NULL
8231 ORDER BY
8232 PROJECT_ID
8233 , PROJECT_ELEMENT_ID
8234 , TIME_ID
8235 , CURRENCY_CODE;
8236
8237 EXCEPTION
8238 WHEN OTHERS THEN
8239 FND_MSG_PUB.add_exc_msg( p_pkg_name => g_package_name ,
8240 p_procedure_name => 'INSERT_AC_ROWS');
8241 RAISE;
8242 END;
8243
8244 PROCEDURE MARK_DANGLING_PLAN_VERSIONS IS
8245 BEGIN
8246
8247 -- Added INDEX for bug 3828698
8248 UPDATE /*+ INDEX(bv,PA_BUDGET_VERSIONS_U1)*/ pa_budget_versions bv
8249 SET pji_summarized_flag = 'P',
8250 record_version_number = nvl(record_version_number,0)+1
8251 WHERE budget_version_id IN (
8252 SELECT plan_version_id
8253 FROM
8254 (
8255 SELECT plan_version_id
8256 , ( COUNT(DISTINCT time_dangling_flag)
8257 + COUNT(DISTINCT rate_dangling_flag)
8258 ) dangling
8259 FROM pji_fp_aggr_pjp1_t
8260 WHERE worker_id = g_worker_id
8261 GROUP BY plan_version_id
8262 ) b
8263 WHERE dangling > 2
8264 );
8265
8266 UPDATE /*+ INDEX(bv,PA_BUDGET_VERSIONS_U1)*/ pa_budget_versions bv
8267 SET pji_summarized_flag = 'Y',
8268 record_version_number = nvl(record_version_number,0)+1
8269 WHERE budget_version_id IN (
8270 SELECT plan_version_id
8271 FROM
8272 (
8273 SELECT plan_version_id
8274 , ( COUNT(DISTINCT time_dangling_flag)
8275 + COUNT(DISTINCT rate_dangling_flag)
8276 ) dangling
8277 FROM pji_fp_aggr_pjp1_t
8278 WHERE worker_id = g_worker_id
8279 GROUP BY plan_version_id
8280 ) b
8281 WHERE dangling = 2
8282 );
8283
8284 EXCEPTION
8285 WHEN OTHERS THEN
8286 FND_MSG_PUB.add_exc_msg( p_pkg_name => g_package_name ,
8287 p_procedure_name => 'MARK_DANGLING_PLAN_VERSIONS');
8288 RAISE;
8289 END;
8290
8291
8292 --
8293 -- 0. Plans cannot have time / rate dangling records for primary slice.
8294 -- 1. Work plans have primary slice only.
8295 -- 2. Financial plans can have secondary slices only if the plan is baselined.
8296 -- 3. Only baselined financial plans can have time/rate dangling records.
8297 -- 4. Four states of pji_summarized_flag are N, Y, P, NULL.
8298 -- N - Not summarized..
8299 -- P - Have rate/time dangling records..
8300 -- Y - Project performance summaries fully created.
8301 -- NULL - PJI summaries fully created.
8302 --
8303 -- This api processes plans with pji_summarized_flag = N, i.e., secondary slice
8304 -- for dangling baselined financial plans.
8305 --
8306 PROCEDURE PULL_DANGLING_PLANS IS
8307
8308 l_fp_wp_version_ids SYSTEM.pa_num_tbl_type := SYSTEM.pa_num_tbl_type();
8309 l_fp_version_ids SYSTEM.pa_num_tbl_type := SYSTEM.pa_num_tbl_type();
8310
8311 /*
8312 CURSOR c_dangling_vers_cur IS
8313 SELECT budget_version_id
8314 FROM pa_budget_versions bv
8315 WHERE pji_summarized_flag = 'P';
8316 */
8317
8318 BEGIN
8319
8320 CLEANUP_INTERIM_TABLES;
8321
8322 -- FOR c_dangling IN c_dangling_vers_cur LOOP
8323
8324 -- print_time ( ' plan version id is ... ' || c_dangling.budget_version_id ) ;
8325 -- l_fp_wp_version_ids := SYSTEM.pa_num_tbl_type (c_dangling.budget_version_id);
8326
8327 PJI_FM_PLAN_MAINT.CREATE_SECONDARY_T_PVT(
8328 p_fp_version_ids => l_fp_wp_version_ids
8329 , p_process_all => 'T'
8330 , p_commit => 'F');
8331
8332 -- END LOOP;
8333
8334 EXCEPTION
8335 WHEN OTHERS THEN
8336 FND_MSG_PUB.add_exc_msg( p_pkg_name => g_package_name ,
8337 p_procedure_name => 'PULL_DANGLING_PLANS');
8338 RAISE;
8339 END;
8340
8341
8342 PROCEDURE RETRIEVE_ENTERED_SLICE (
8343 p_pln_ver_id IN NUMBER := NULL ) IS
8344 BEGIN
8345
8346 INSERT INTO pji_fp_aggr_pjp1_t
8347 (
8348 WORKER_ID
8349 , PROJECT_ID
8350 , PROJECT_ORG_ID
8351 , PROJECT_ORGANIZATION_ID
8352 -- , PARTITION_ID
8353 , PROJECT_ELEMENT_ID
8354 , TIME_ID
8355 , PERIOD_TYPE_ID
8356 , CALENDAR_TYPE
8357 , RBS_AGGR_LEVEL
8358 , WBS_ROLLUP_FLAG
8359 , PRG_ROLLUP_FLAG
8360 , CURR_RECORD_TYPE_ID
8361 , CURRENCY_CODE
8362 , RBS_ELEMENT_ID
8363 , RBS_VERSION_ID
8364 , PLAN_VERSION_ID
8365 , PLAN_TYPE_ID
8366 , RAW_COST
8367 , BRDN_COST
8368 , REVENUE
8369 , BILL_RAW_COST
8370 , BILL_BRDN_COST
8371 , BILL_LABOR_RAW_COST
8372 , BILL_LABOR_BRDN_COST
8373 , BILL_LABOR_HRS
8374 , EQUIPMENT_RAW_COST
8375 , EQUIPMENT_BRDN_COST
8376 , CAPITALIZABLE_RAW_COST
8377 , CAPITALIZABLE_BRDN_COST
8378 , LABOR_RAW_COST
8379 , LABOR_BRDN_COST
8380 , LABOR_HRS
8381 , LABOR_REVENUE
8382 , EQUIPMENT_HOURS
8383 , BILLABLE_EQUIPMENT_HOURS
8384 , SUP_INV_COMMITTED_COST
8385 , PO_COMMITTED_COST
8386 , PR_COMMITTED_COST
8387 , OTH_COMMITTED_COST
8388 , ACT_LABOR_HRS
8389 , ACT_EQUIP_HRS
8390 , ACT_LABOR_BRDN_COST
8391 , ACT_EQUIP_BRDN_COST
8392 , ACT_BRDN_COST
8393 , ACT_RAW_COST
8394 , ACT_REVENUE
8395 , ACT_LABOR_RAW_COST
8396 , ACT_EQUIP_RAW_COST
8397 , ETC_LABOR_HRS
8398 , ETC_EQUIP_HRS
8399 , ETC_LABOR_BRDN_COST
8400 , ETC_EQUIP_BRDN_COST
8401 , ETC_BRDN_COST
8402 , ETC_RAW_COST
8403 , ETC_LABOR_RAW_COST
8404 , ETC_EQUIP_RAW_COST
8405 , CUSTOM1
8406 , CUSTOM2
8407 , CUSTOM3
8408 , CUSTOM4
8409 , CUSTOM5
8410 , CUSTOM6
8411 , CUSTOM7
8412 , CUSTOM8
8413 , CUSTOM9
8414 , CUSTOM10
8415 , CUSTOM11
8416 , CUSTOM12
8417 , CUSTOM13
8418 , CUSTOM14
8419 , CUSTOM15
8420 , PRG_LEVEL
8421 , PLAN_TYPE_CODE
8422 )
8423 (
8424 SELECT
8425 g_worker_id
8426 , PROJECT_ID
8427 , PROJECT_ORG_ID
8428 , PROJECT_ORGANIZATION_ID
8429 -- , PARTITION_ID
8430 , PROJECT_ELEMENT_ID
8431 , TIME_ID
8432 , PERIOD_TYPE_ID
8433 , CALENDAR_TYPE
8434 , RBS_AGGR_LEVEL
8435 , WBS_ROLLUP_FLAG
8436 , PRG_ROLLUP_FLAG
8437 , CURR_RECORD_TYPE_ID
8438 , CURRENCY_CODE
8439 , RBS_ELEMENT_ID
8440 , RBS_VERSION_ID
8441 , PLAN_VERSION_ID
8442 , PLAN_TYPE_ID
8443 , RAW_COST
8444 , BRDN_COST
8445 , REVENUE
8446 , BILL_RAW_COST
8447 , BILL_BRDN_COST
8448 , BILL_LABOR_RAW_COST
8449 , BILL_LABOR_BRDN_COST
8450 , BILL_LABOR_HRS
8451 , EQUIPMENT_RAW_COST
8452 , EQUIPMENT_BRDN_COST
8453 , CAPITALIZABLE_RAW_COST
8454 , CAPITALIZABLE_BRDN_COST
8455 , LABOR_RAW_COST
8456 , LABOR_BRDN_COST
8457 , LABOR_HRS
8458 , LABOR_REVENUE
8459 , EQUIPMENT_HOURS
8460 , BILLABLE_EQUIPMENT_HOURS
8461 , SUP_INV_COMMITTED_COST
8462 , PO_COMMITTED_COST
8463 , PR_COMMITTED_COST
8464 , OTH_COMMITTED_COST
8465 , ACT_LABOR_HRS
8466 , ACT_EQUIP_HRS
8467 , ACT_LABOR_BRDN_COST
8468 , ACT_EQUIP_BRDN_COST
8469 , ACT_BRDN_COST
8470 , ACT_RAW_COST
8471 , ACT_REVENUE
8472 , ACT_LABOR_RAW_COST
8473 , ACT_EQUIP_RAW_COST
8474 , ETC_LABOR_HRS
8475 , ETC_EQUIP_HRS
8476 , ETC_LABOR_BRDN_COST
8477 , ETC_EQUIP_BRDN_COST
8478 , ETC_BRDN_COST
8479 , ETC_RAW_COST
8480 , ETC_LABOR_RAW_COST
8481 , ETC_EQUIP_RAW_COST
8482 , CUSTOM1
8483 , CUSTOM2
8484 , CUSTOM3
8485 , CUSTOM4
8486 , CUSTOM5
8487 , CUSTOM6
8488 , CUSTOM7
8489 , CUSTOM8
8490 , CUSTOM9
8491 , CUSTOM10
8492 , CUSTOM11
8493 , CUSTOM12
8494 , CUSTOM13
8495 , CUSTOM14
8496 , CUSTOM15
8497 , g_default_prg_level
8498 , plan_type_code
8499 FROM pji_fp_xbs_accum_f
8500 WHERE plan_version_id = p_pln_ver_id
8501 );
8502
8503 EXCEPTION
8504 WHEN OTHERS THEN
8505 FND_MSG_PUB.add_exc_msg( p_pkg_name => g_package_name ,
8506 p_procedure_name => 'RETRIEVE_ENTERED_SLICE');
8507 RAISE;
8508 END;
8509
8510
8511
8512
8513 PROCEDURE ROLLUP_FPR_RBS IS
8514 l_last_update_login NUMBER := FND_GLOBAL.LOGIN_ID;
8515 -- l_worker_id NUMBER := 1;
8516
8517 BEGIN
8518
8519 INSERT INTO pji_fp_aggr_pjp1_t
8520 (
8521 WORKER_ID
8522 , PROJECT_ID
8523 , PROJECT_ORG_ID
8524 , PROJECT_ORGANIZATION_ID
8525 , PROJECT_ELEMENT_ID
8526 , TIME_ID
8527 , PERIOD_TYPE_ID
8528 , CALENDAR_TYPE
8529 , RBS_AGGR_LEVEL
8530 , WBS_ROLLUP_FLAG
8531 , PRG_ROLLUP_FLAG
8532 , CURR_RECORD_TYPE_ID
8533 , CURRENCY_CODE
8534 , RBS_ELEMENT_ID
8535 , RBS_VERSION_ID
8536 , PLAN_VERSION_ID
8537 , PLAN_TYPE_ID
8538 , RAW_COST
8539 , BRDN_COST
8540 , REVENUE
8541 , BILL_RAW_COST
8542 , BILL_BRDN_COST
8543 , BILL_LABOR_RAW_COST
8544 , BILL_LABOR_BRDN_COST
8545 , BILL_LABOR_HRS
8546 , EQUIPMENT_RAW_COST
8547 , EQUIPMENT_BRDN_COST
8548 , CAPITALIZABLE_RAW_COST
8549 , CAPITALIZABLE_BRDN_COST
8550 , LABOR_RAW_COST
8551 , LABOR_BRDN_COST
8552 , LABOR_HRS
8553 , LABOR_REVENUE
8554 , EQUIPMENT_HOURS
8555 , BILLABLE_EQUIPMENT_HOURS
8556 , SUP_INV_COMMITTED_COST
8557 , PO_COMMITTED_COST
8558 , PR_COMMITTED_COST
8559 , OTH_COMMITTED_COST
8560 , ACT_LABOR_HRS
8561 , ACT_EQUIP_HRS
8562 , ACT_LABOR_BRDN_COST
8563 , ACT_EQUIP_BRDN_COST
8564 , ACT_BRDN_COST
8565 , ACT_RAW_COST
8566 , ACT_REVENUE
8567 , ACT_LABOR_RAW_COST
8568 , ACT_EQUIP_RAW_COST
8569 , ETC_LABOR_HRS
8570 , ETC_EQUIP_HRS
8571 , ETC_LABOR_BRDN_COST
8572 , ETC_EQUIP_BRDN_COST
8573 , ETC_BRDN_COST
8574 , ETC_RAW_COST
8575 , ETC_LABOR_RAW_COST
8576 , ETC_EQUIP_RAW_COST
8577 , CUSTOM1
8578 , CUSTOM2
8579 , CUSTOM3
8580 , CUSTOM4
8581 , CUSTOM5
8582 , CUSTOM6
8583 , CUSTOM7
8584 , CUSTOM8
8585 , CUSTOM9
8586 , CUSTOM10
8587 , CUSTOM11
8588 , CUSTOM12
8589 , CUSTOM13
8590 , CUSTOM14
8591 , CUSTOM15
8592 , LINE_TYPE
8593 , PRG_LEVEL
8594 , PLAN_TYPE_CODE
8595 )
8596 SELECT
8597 g_worker_id WORKER_ID
8598 , fact1.PROJECT_ID
8599 , fact1.PROJECT_ORG_ID
8600 , fact1.PROJECT_ORGANIZATION_ID
8601 , fact1.project_element_id
8602 , fact1.TIME_ID
8603 , fact1.PERIOD_TYPE_ID
8604 , fact1.CALENDAR_TYPE
8605 , g_rolled_up
8606 , fact1.WBS_ROLLUP_FLAG
8607 , fact1.PRG_ROLLUP_FLAG
8608 , fact1.CURR_RECORD_TYPE_ID
8609 , fact1.CURRENCY_CODE
8610 , rbs.sup_id
8611 , fact1.RBS_VERSION_ID
8612 , fact1.PLAN_VERSION_ID
8613 , fact1.PLAN_TYPE_ID
8614 , SUM(fact1.RAW_COST)
8615 , SUM(fact1.BRDN_COST)
8616 , SUM(fact1.REVENUE)
8617 , SUM(fact1.BILL_RAW_COST)
8618 , SUM(fact1.BILL_BRDN_COST )
8619 , SUM(fact1.BILL_LABOR_RAW_COST)
8620 , SUM(fact1.BILL_LABOR_BRDN_COST )
8621 , SUM(fact1.BILL_LABOR_HRS )
8622 , SUM(fact1.EQUIPMENT_RAW_COST )
8623 , SUM(fact1.EQUIPMENT_BRDN_COST )
8624 , SUM(fact1.CAPITALIZABLE_RAW_COST )
8625 , SUM(fact1.CAPITALIZABLE_BRDN_COST )
8626 , SUM(fact1.LABOR_RAW_COST )
8627 , SUM(fact1.LABOR_BRDN_COST )
8628 , SUM(fact1.LABOR_HRS)
8629 , SUM(fact1.LABOR_REVENUE)
8630 , SUM(fact1.EQUIPMENT_HOURS)
8631 , SUM(fact1.BILLABLE_EQUIPMENT_HOURS)
8632 , SUM(fact1.SUP_INV_COMMITTED_COST)
8633 , SUM(fact1.PO_COMMITTED_COST )
8634 , SUM(fact1.PR_COMMITTED_COST )
8635 , SUM(fact1.OTH_COMMITTED_COST)
8636 , SUM(fact1.ACT_LABOR_HRS)
8637 , SUM(fact1.ACT_EQUIP_HRS)
8638 , SUM(fact1.ACT_LABOR_BRDN_COST)
8639 , SUM(fact1.ACT_EQUIP_BRDN_COST)
8640 , SUM(fact1.ACT_BRDN_COST)
8641 , SUM(fact1.ACT_RAW_COST)
8642 , SUM(fact1.ACT_REVENUE)
8643 , SUM(fact1.ACT_LABOR_RAW_COST)
8644 , SUM(fact1.ACT_EQUIP_RAW_COST)
8645 , SUM(fact1.ETC_LABOR_HRS)
8646 , SUM(fact1.ETC_EQUIP_HRS)
8647 , SUM(fact1.ETC_LABOR_BRDN_COST)
8648 , SUM(fact1.ETC_EQUIP_BRDN_COST)
8649 , SUM(fact1.ETC_BRDN_COST )
8650 , SUM(fact1.ETC_RAW_COST )
8651 , SUM(fact1.ETC_LABOR_RAW_COST)
8652 , SUM(fact1.ETC_EQUIP_RAW_COST)
8653 , SUM(fact1.CUSTOM1 )
8654 , SUM(fact1.CUSTOM2 )
8655 , SUM(fact1.CUSTOM3 )
8656 , SUM(fact1.CUSTOM4 )
8657 , SUM(fact1.CUSTOM5 )
8658 , SUM(fact1.CUSTOM6 )
8659 , SUM(fact1.CUSTOM7 )
8660 , SUM(fact1.CUSTOM8 )
8661 , SUM(fact1.CUSTOM9 )
8662 , SUM(fact1.CUSTOM10 )
8663 , SUM(fact1.CUSTOM11 )
8664 , SUM(fact1.CUSTOM12 )
8665 , SUM(fact1.CUSTOM13 )
8666 , SUM(fact1.CUSTOM14 )
8667 , SUM(fact1.CUSTOM15 )
8668 , fact1.line_type
8669 , g_default_prg_level
8670 , fact1.plan_type_code /* 4471527 */
8671 FROM pji_fp_aggr_pjp1_t fact1
8672 , Pji_RBS_DENORM rbs
8673 , pji_rollup_level_status smart
8674 , pji_pjp_rbs_header rhdr
8675 WHERE 1 = 1
8676 AND fact1.project_id = rhdr.project_id
8677 AND fact1.plan_version_id = rhdr.plan_version_id
8678 AND fact1.plan_type_code = rhdr.plan_type_code /*4471527 */
8679 AND rbs.struct_version_id = rhdr.rbs_version_id
8680 AND fact1.rbs_ELEMENT_ID = rbs.sub_id
8681 AND rbs.sup_level <> rbs.sub_level
8682 AND rbs.sup_level <> 1
8683 AND fact1.RBS_AGGR_LEVEL = g_lowest_level
8684 AND smart.rbs_version_id = rbs.struct_version_id
8685 AND smart.plan_version_id = fact1.plan_version_id
8686 AND smart.plan_type_code = fact1.plan_type_code /*4471527 */
8687 AND fact1.worker_id = g_worker_id
8688 GROUP BY
8689 fact1.PROJECT_ID
8690 , fact1.PROJECT_ORG_ID
8691 , fact1.PROJECT_ORGANIZATION_ID
8692 , fact1.project_element_id
8693 , fact1.TIME_ID
8694 , fact1.PERIOD_TYPE_ID
8695 , fact1.CALENDAR_TYPE
8696 , fact1.WBS_ROLLUP_FLAG
8697 , fact1.PRG_ROLLUP_FLAG
8698 , fact1.CURR_RECORD_TYPE_ID
8699 , fact1.CURRENCY_CODE
8700 , rbs.sup_id
8701 , fact1.RBS_VERSION_ID
8702 , fact1.PLAN_VERSION_ID
8703 , fact1.PLAN_TYPE_ID
8704 , fact1.line_type
8705 , fact1.plan_type_code ;
8706
8707
8708 EXCEPTION
8709 WHEN OTHERS THEN
8710 FND_MSG_PUB.add_exc_msg( p_pkg_name => g_package_name ,
8711 p_procedure_name => 'ROLLUP_FPR_RBS');
8712 RAISE;
8713 END;
8714
8715
8716 PROCEDURE ROLLUP_FPR_RBS_T_SLICE IS
8717 l_last_update_login NUMBER := FND_GLOBAL.LOGIN_ID;
8718
8719 BEGIN
8720
8721 print_time(' worker id is ... ' || 1);
8722
8723 INSERT INTO pji_fp_aggr_pjp1_t
8724 (
8725 WORKER_ID
8726 , PROJECT_ID
8727 , PROJECT_ORG_ID
8728 , PROJECT_ORGANIZATION_ID
8729 , PROJECT_ELEMENT_ID
8730 , TIME_ID
8731 , PERIOD_TYPE_ID
8732 , CALENDAR_TYPE
8733 , RBS_AGGR_LEVEL
8734 , WBS_ROLLUP_FLAG
8735 , PRG_ROLLUP_FLAG
8736 , CURR_RECORD_TYPE_ID
8737 , CURRENCY_CODE
8738 , RBS_ELEMENT_ID
8739 , RBS_VERSION_ID
8740 , PLAN_VERSION_ID
8741 , PLAN_TYPE_ID
8742 , RAW_COST
8743 , BRDN_COST
8744 , REVENUE
8745 , BILL_RAW_COST
8746 , BILL_BRDN_COST
8747 , BILL_LABOR_RAW_COST
8748 , BILL_LABOR_BRDN_COST
8749 , BILL_LABOR_HRS
8750 , EQUIPMENT_RAW_COST
8751 , EQUIPMENT_BRDN_COST
8752 , CAPITALIZABLE_RAW_COST
8753 , CAPITALIZABLE_BRDN_COST
8754 , LABOR_RAW_COST
8755 , LABOR_BRDN_COST
8756 , LABOR_HRS
8757 , LABOR_REVENUE
8758 , EQUIPMENT_HOURS
8759 , BILLABLE_EQUIPMENT_HOURS
8760 , SUP_INV_COMMITTED_COST
8761 , PO_COMMITTED_COST
8762 , PR_COMMITTED_COST
8763 , OTH_COMMITTED_COST
8764 , ACT_LABOR_HRS
8765 , ACT_EQUIP_HRS
8766 , ACT_LABOR_BRDN_COST
8767 , ACT_EQUIP_BRDN_COST
8768 , ACT_BRDN_COST
8769 , ACT_RAW_COST
8770 , ACT_REVENUE
8771 , ACT_LABOR_RAW_COST
8772 , ACT_EQUIP_RAW_COST
8773 , ETC_LABOR_HRS
8774 , ETC_EQUIP_HRS
8775 , ETC_LABOR_BRDN_COST
8776 , ETC_EQUIP_BRDN_COST
8777 , ETC_BRDN_COST
8778 , ETC_RAW_COST
8779 , ETC_LABOR_RAW_COST
8780 , ETC_EQUIP_RAW_COST
8781 , CUSTOM1
8782 , CUSTOM2
8783 , CUSTOM3
8784 , CUSTOM4
8785 , CUSTOM5
8786 , CUSTOM6
8787 , CUSTOM7
8788 , CUSTOM8
8789 , CUSTOM9
8790 , CUSTOM10
8791 , CUSTOM11
8792 , CUSTOM12
8793 , CUSTOM13
8794 , CUSTOM14
8795 , CUSTOM15
8796 , LINE_TYPE
8797 , PRG_LEVEL
8798 , PLAN_TYPE_CODE /* 4471527 */
8799 )
8800 SELECT
8801 g_worker_id WORKER_ID
8802 , fact1.PROJECT_ID
8803 , fact1.PROJECT_ORG_ID
8804 , fact1.PROJECT_ORGANIZATION_ID
8805 , fact1.project_element_id
8806 , fact1.TIME_ID
8807 , fact1.PERIOD_TYPE_ID
8808 , fact1.CALENDAR_TYPE
8809 , g_top_level
8810 , fact1.WBS_ROLLUP_FLAG
8811 , fact1.PRG_ROLLUP_FLAG
8812 , fact1.CURR_RECORD_TYPE_ID
8813 , fact1.CURRENCY_CODE
8814 , -1
8815 , -1
8816 , fact1.PLAN_VERSION_ID
8817 , fact1.PLAN_TYPE_ID
8818 , SUM(fact1.RAW_COST)
8819 , SUM(fact1.BRDN_COST)
8820 , SUM(fact1.REVENUE)
8821 , SUM(fact1.BILL_RAW_COST)
8822 , SUM(fact1.BILL_BRDN_COST )
8823 , SUM(fact1.BILL_LABOR_RAW_COST)
8824 , SUM(fact1.BILL_LABOR_BRDN_COST )
8825 , SUM(fact1.BILL_LABOR_HRS )
8826 , SUM(fact1.EQUIPMENT_RAW_COST )
8827 , SUM(fact1.EQUIPMENT_BRDN_COST )
8828 , SUM(fact1.CAPITALIZABLE_RAW_COST )
8829 , SUM(fact1.CAPITALIZABLE_BRDN_COST )
8830 , SUM(fact1.LABOR_RAW_COST )
8831 , SUM(fact1.LABOR_BRDN_COST )
8832 , SUM(fact1.LABOR_HRS)
8833 , SUM(fact1.LABOR_REVENUE)
8834 , SUM(fact1.EQUIPMENT_HOURS)
8835 , SUM(fact1.BILLABLE_EQUIPMENT_HOURS)
8836 , SUM(fact1.SUP_INV_COMMITTED_COST)
8837 , SUM(fact1.PO_COMMITTED_COST )
8838 , SUM(fact1.PR_COMMITTED_COST )
8839 , SUM(fact1.OTH_COMMITTED_COST)
8840 , SUM(fact1.ACT_LABOR_HRS)
8841 , SUM(fact1.ACT_EQUIP_HRS)
8842 , SUM(fact1.ACT_LABOR_BRDN_COST)
8843 , SUM(fact1.ACT_EQUIP_BRDN_COST)
8844 , SUM(fact1.ACT_BRDN_COST)
8845 , SUM(fact1.ACT_RAW_COST)
8846 , SUM(fact1.ACT_REVENUE)
8847 , SUM(fact1.ACT_LABOR_RAW_COST)
8848 , SUM(fact1.ACT_EQUIP_RAW_COST)
8849 , SUM(fact1.ETC_LABOR_HRS)
8850 , SUM(fact1.ETC_EQUIP_HRS)
8851 , SUM(fact1.ETC_LABOR_BRDN_COST)
8852 , SUM(fact1.ETC_EQUIP_BRDN_COST)
8853 , SUM(fact1.ETC_BRDN_COST )
8854 , SUM(fact1.ETC_RAW_COST )
8855 , SUM(fact1.ETC_LABOR_RAW_COST)
8856 , SUM(fact1.ETC_EQUIP_RAW_COST)
8857 , SUM(fact1.CUSTOM1 )
8858 , SUM(fact1.CUSTOM2 )
8859 , SUM(fact1.CUSTOM3 )
8860 , SUM(fact1.CUSTOM4 )
8861 , SUM(fact1.CUSTOM5 )
8862 , SUM(fact1.CUSTOM6 )
8863 , SUM(fact1.CUSTOM7 )
8864 , SUM(fact1.CUSTOM8 )
8865 , SUM(fact1.CUSTOM9 )
8866 , SUM(fact1.CUSTOM10 )
8867 , SUM(fact1.CUSTOM11 )
8868 , SUM(fact1.CUSTOM12 )
8869 , SUM(fact1.CUSTOM13 )
8870 , SUM(fact1.CUSTOM14 )
8871 , SUM(fact1.CUSTOM15 )
8872 , fact1.line_type
8873 , g_default_prg_level
8874 , fact1.PLAN_TYPE_CODE /* 4471527 */
8875 FROM pji_fp_aggr_pjp1_t fact1
8876 , pji_fm_extr_plnver3_t ver3
8877 WHERE
8878 fact1.RBS_AGGR_LEVEL = g_lowest_level
8879 AND fact1.worker_id = g_worker_id
8880 AND fact1.plan_version_id = ver3.plan_version_id
8881 AND fact1.plan_type_code = ver3.plan_type_code /*4471527 */
8882 AND ( fact1.rbs_version_id = ver3.rbs_struct_version_id
8883 OR fact1.rbs_version_id = -1)
8884 AND ver3.secondary_rbs_flag = 'N'
8885 GROUP BY
8886 fact1.PROJECT_ID
8887 , fact1.PROJECT_ORG_ID
8888 , fact1.PROJECT_ORGANIZATION_ID
8889 , fact1.project_element_id
8890 , fact1.TIME_ID
8891 , fact1.PERIOD_TYPE_ID
8892 , fact1.CALENDAR_TYPE
8893 , fact1.WBS_ROLLUP_FLAG
8894 , fact1.PRG_ROLLUP_FLAG
8895 , fact1.CURR_RECORD_TYPE_ID
8896 , fact1.CURRENCY_CODE
8897 -- , fact1.RBS_VERSION_ID
8898 , fact1.PLAN_VERSION_ID
8899 , fact1.PLAN_TYPE_ID
8900 , fact1.line_type
8901 , fact1.plan_type_code ; /* 4471527 */
8902
8903
8904 EXCEPTION
8905 WHEN OTHERS THEN
8906 FND_MSG_PUB.add_exc_msg( p_pkg_name => g_package_name ,
8907 p_procedure_name => 'ROLLUP_FPR_RBS_T_SLICE');
8908 RAISE;
8909 END;
8910
8911
8912 PROCEDURE COMPUTE_XBS_UPDATED_ROLLUPS IS
8913 BEGIN
8914 NULL;
8915 EXCEPTION
8916 WHEN OTHERS THEN
8917 FND_MSG_PUB.add_exc_msg( p_pkg_name => g_package_name ,
8918 p_procedure_name => 'COMPUTE_XBS_UPDATED_ROLLUPS');
8919 RAISE;
8920 END;
8921
8922
8923 PROCEDURE POPULATE_RBS_HDR IS
8924
8925 l_last_update_date date := SYSDATE;
8926 l_last_updated_by NUMBER := FND_GLOBAL.USER_ID;
8927 l_creation_date date := SYSDATE;
8928 l_created_by NUMBER := FND_GLOBAL.USER_ID;
8929 l_last_update_login NUMBER := FND_GLOBAL.LOGIN_ID;
8930
8931 BEGIN
8932
8933 print_time ( ' Before update rbs header ' );
8934
8935 INSERT INTO pji_pjp_rbs_header
8936 (
8937 project_id
8938 , plan_version_id
8939 , rbs_version_id
8940 , reporting_usage_flag
8941 , prog_rep_usage_flag
8942 , plan_usage_flag
8943 , LAST_UPDATE_DATE
8944 , LAST_UPDATED_BY
8945 , CREATION_DATE
8946 , CREATED_BY
8947 , LAST_UPDATE_LOGIN
8948 , PLAN_TYPE_CODE /*4471527 */
8949 )
8950 SELECT rpa.project_id
8951 , bv.plan_version_id
8952 , rpa.rbs_version_id
8953 , rpa.reporting_usage_flag
8954 , rpa.prog_rep_usage_flag
8955 , DECODE(bv.wp_flag, 'Y', rpa.wp_usage_flag, rpa.fp_usage_flag)
8956 , l_last_update_date
8957 , l_last_updated_by
8958 , l_creation_date
8959 , l_created_by
8960 , l_last_update_login
8961 , bv.plan_type_code /*4471527 */
8962 FROM pa_rbs_prj_assignments rpa
8963 , PJI_FM_EXTR_PLNVER3_T bv
8964 , pji_pjp_rbs_header head
8965 WHERE bv.project_id = rpa.project_id
8966 AND bv.RBS_STRUCT_VERSION_ID = rpa.RBS_VERSION_ID
8967 AND bv.PROJECT_ID = head.PROJECT_ID (+)
8968 AND bv.PLAN_VERSION_ID = head.PLAN_VERSION_ID (+)
8969 AND bv.plan_type_code = head.plan_type_code (+) /* 4471527 */
8970 AND bv.RBS_STRUCT_VERSION_ID = head.RBS_VERSION_ID (+)
8971 AND head.PROJECT_ID IS NULL
8972 AND bv.plan_version_id > 0;
8973
8974 print_time ( ' After populate rbs header for WPs/FPs. # rows inserted = ' || SQL%ROWCOUNT );
8975
8976 INSERT INTO pji_pjp_rbs_header
8977 (
8978 project_id
8979 , plan_version_id
8980 , rbs_version_id
8981 , reporting_usage_flag
8982 , prog_rep_usage_flag
8983 , plan_usage_flag
8984 , LAST_UPDATE_DATE
8985 , LAST_UPDATED_BY
8986 , CREATION_DATE
8987 , CREATED_BY
8988 , LAST_UPDATE_LOGIN
8989 ,PLAN_TYPE_CODE /* 4471527 */
8990 )
8991 SELECT distinct bv.project_id
8992 , bv.plan_version_id
8993 , bv.rbs_struct_version_id
8994 , 'Y' -- rpa.reporting_usage_flag
8995 , 'Y' -- rpa.prog_rep_usage_flag
8996 , 'N' -- DECODE(bv.wp_flag, 'Y', rpa.wp_usage_flag, rpa.fp_usage_flag)
8997 , l_last_update_date
8998 , l_last_updated_by
8999 , l_creation_date
9000 , l_created_by
9001 , l_last_update_login
9002 , bv.plan_type_code /* 4471527 */
9003 FROM PJI_FM_EXTR_PLNVER3_T bv
9004 , pji_pjp_rbs_header head
9005 WHERE bv.PROJECT_ID = head.PROJECT_ID (+)
9006 AND bv.PLAN_VERSION_ID = head.PLAN_VERSION_ID (+)
9007 AND bv.plan_type_code = head.plan_type_code (+) /* 4471527 */
9008 AND bv.RBS_STRUCT_VERSION_ID = head.RBS_VERSION_ID (+)
9009 AND head.PROJECT_ID IS NULL
9010 AND bv.plan_version_id in (-3, -4)
9011 AND bv.RBS_STRUCT_VERSION_ID is not null; /*4882640*/
9012
9013 print_time ( ' After populate rbs header for -3/-4s. # rows inserted = ' || SQL%ROWCOUNT );
9014
9015 EXCEPTION
9016 WHEN OTHERS THEN
9017 print_time ( ' update rbs header exception ' || sqlerrm );
9018 FND_MSG_PUB.add_exc_msg( p_pkg_name => g_package_name ,
9019 p_procedure_name => 'POPULATE_RBS_HDR');
9020 RAISE;
9021 END;
9022
9023
9024 PROCEDURE POPULATE_WBS_HDR IS
9025
9026 l_last_update_date date := SYSDATE;
9027 l_last_updated_by NUMBER := FND_GLOBAL.USER_ID;
9028 l_creation_date date := SYSDATE;
9029 l_created_by NUMBER := FND_GLOBAL.USER_ID;
9030 l_last_update_login NUMBER := FND_GLOBAL.LOGIN_ID;
9031
9032 BEGIN
9033
9034 print_time ( ' Before populate wbs header ' );
9035
9036 INSERT INTO PJI_PJP_WBS_HEADER
9037 (
9038 PROJECT_ID
9039 , PLAN_VERSION_ID
9040 , WBS_VERSION_ID
9041 , WP_FLAG
9042 , CB_FLAG
9043 , CO_FLAG
9044 , LOCK_FLAG
9045 , PLAN_TYPE_ID
9046 , MIN_TXN_DATE
9047 , MAX_TXN_DATE
9048 , PLAN_TYPE_CODE /* 4471527 */
9049 , LAST_UPDATE_DATE
9050 , LAST_UPDATED_BY
9051 , CREATION_DATE
9052 , CREATED_BY
9053 , LAST_UPDATE_LOGIN
9054 )
9055 SELECT DISTINCT
9056 ver.project_id
9057 , ver.plan_version_id
9058 , ver.wbs_struct_version_id
9059 , ver.wp_flag
9060 , DECODE( (ver.current_flag || ver.baselined_flag) , 'YY', 'Y', 'N')
9061 , ver.current_original_flag
9062 , null
9063 , ver.plan_type_id
9064 , to_date('3000/01/01', 'YYYY/MM/DD') MIN_TXN_DATE
9065 , to_date('0001/01/01', 'YYYY/MM/DD') MAX_TXN_DATE
9066 , ver.plan_type_code /* 4471527 */
9067 , l_last_update_date
9068 , l_last_updated_by
9069 , l_creation_date
9070 , l_created_by
9071 , l_last_update_login
9072 FROM PJI_FM_EXTR_PLNVER3_T ver
9073 , PJI_PJP_WBS_HEADER whdr
9074 WHERE ver.plan_version_id = whdr.plan_version_id (+)
9075 AND ver.project_id = whdr.project_id (+)
9076 -- AND ver.wbs_struct_version_id = whdr.wbs_version_id (+)
9077 AND ver.plan_type_id = whdr.plan_type_id (+)
9078 AND ver.plan_type_code = whdr.plan_type_code (+) /* 4471527 */
9079 AND whdr.plan_version_id IS NULL
9080 ORDER BY
9081 ver.project_id
9082 , ver.plan_version_id;
9083
9084 print_time ( ' After populate wbs header. # rows inserted = ' || SQL%ROWCOUNT );
9085
9086 EXCEPTION
9087 WHEN OTHERS THEN
9088 print_time ( ' populate wbs header exception ' || sqlerrm );
9089 FND_MSG_PUB.add_exc_msg( p_pkg_name => g_package_name ,
9090 p_procedure_name => 'POPULATE_WBS_HDR');
9091 RAISE;
9092 END;
9093
9094
9095 PROCEDURE UPDATE_WBS_HDR IS
9096
9097 l_last_update_date date := SYSDATE;
9098 l_last_updated_by NUMBER := FND_GLOBAL.USER_ID;
9099 l_last_update_login NUMBER := FND_GLOBAL.LOGIN_ID;
9100
9101 BEGIN
9102
9103 print_time ( ' Before update wbs header ' );
9104
9105 UPDATE /*+ index(whdr,PJI_PJP_WBS_HEADER_N1) */
9106 PJI_PJP_WBS_HEADER whdr
9107 SET ( MIN_TXN_DATE
9108 , MAX_TXN_DATE
9109 , LAST_UPDATE_DATE
9110 , LAST_UPDATED_BY
9111 , LAST_UPDATE_LOGIN
9112 ) = (
9113 SELECT MIN(LEAST(cal.start_date, NVL(whdr.min_txn_date, cal.start_date))) start_date
9114 , MAX(GREATEST(cal.end_date, NVL(whdr.max_txn_date, cal.end_date))) end_date
9115 , l_last_update_date
9116 , l_last_updated_by
9117 , l_last_update_login
9118 FROM PJI_FP_AGGR_PJP1_T pjp1
9119 , pji_time_cal_period_v cal
9120 WHERE
9121 pjp1.worker_id = g_worker_id
9122 AND pjp1.plan_version_id = whdr.plan_version_id
9123 AND pjp1.project_id = whdr.project_id
9124 AND pjp1.plan_type_id = whdr.plan_type_id
9125 AND pjp1.time_id = cal.cal_period_id
9126 AND pjp1.calendar_type IN ('P', 'G') -- Non time ph and ent cals don't need to be considered.
9127 )
9128 WHERE (project_id, plan_version_id) IN
9129 (
9130 SELECT DISTINCT project_id, plan_version_id
9131 FROM pji_fp_aggr_pjp1_t
9132 );
9133
9134 print_time ( ' After update wbs header. # rows updated = ' || SQL%ROWCOUNT );
9135
9136 EXCEPTION
9137 WHEN OTHERS THEN
9138 print_time ( ' update wbs header exception ' || sqlerrm );
9139 FND_MSG_PUB.add_exc_msg( p_pkg_name => g_package_name ,
9140 p_procedure_name => 'POPULATE_WBS_HDR');
9141 RAISE;
9142 END;
9143
9144
9145
9146 PROCEDURE MARK_TIME_DANGLING_VERSIONS IS
9147 BEGIN
9148
9149 UPDATE PJI_FM_EXTR_PLNVER3_T
9150 SET TIME_DANGLING_FLAG = 'Y'
9151 WHERE plan_version_id IN
9152 (SELECT fact.plan_version_id
9153 FROM pji_fp_aggr_pjp1_t fact
9154 , pji_time_cal_period_v time
9155 , pji_org_extr_info orginfo
9156 WHERE fact.period_type_id = 32
9157 AND fact.worker_id = g_worker_id
9158 AND fact.calendar_type = 'P'
9159 AND fact.time_id = time.cal_period_id
9160 AND orginfo.org_id = fact.project_org_id
9161 AND TO_NUMBER(TO_CHAR(time.end_date, 'J')) > gl_calendar_max_date);
9162
9163 UPDATE PJI_FM_EXTR_PLNVER3_T
9164 SET TIME_DANGLING_FLAG = 'Y'
9165 WHERE plan_version_id IN
9166 (SELECT fact.plan_version_id
9167 FROM pji_fp_aggr_pjp1_t fact
9168 , pji_time_cal_period_v time
9169 , pji_org_extr_info orginfo
9170 WHERE fact.period_type_id = 32
9171 AND fact.worker_id = g_worker_id
9172 AND fact.calendar_type = 'G'
9173 AND fact.time_id = time.cal_period_id
9174 AND orginfo.org_id = fact.project_org_id
9175 AND TO_NUMBER(TO_CHAR(time.end_date, 'J')) > pa_calendar_max_date);
9176
9177 EXCEPTION
9178 WHEN OTHERS THEN
9179 FND_MSG_PUB.add_exc_msg( p_pkg_name => g_package_name ,
9180 p_procedure_name => 'MARK_TIME_DANGLING_VERSIONS');
9181 RAISE;
9182 END;
9183
9184
9185 PROCEDURE MARK_EXTRACTED_PLANS(p_slice_type IN VARCHAR2) IS
9186 l_dangling_flag VARCHAR2(1);
9187 l_plan_version_id NUMBER;
9188
9189 CURSOR PLANS_TO_MARK
9190 IS SELECT DISTINCT project_id,plan_version_id
9191 FROM pji_fm_extr_plnver3_t;
9192
9193 l_plans_to_mark PLANS_TO_MARK%ROWTYPE;
9194
9195 BEGIN
9196
9197 --
9198 -- On PA_BUDGET_VERSIONS, the PJI_SUMMARIZED_FLAG can have four values:
9199 -- 'N' the plan version has not been summarized
9200 -- 'P' the plan version has been partially summarized due to dangling currency or calendar records
9201 -- 'Y' the plan version has been fully summarized in Project Performance and
9202 -- NULL the plan version has been fully summarized in both PJI and Project Performance.
9203 --
9204 -- Note that, in PJI data extraction, data that existed before PJI was installed
9205 -- has PJI_SUMMARIZED_FLAG = null and new transactions are inserted with value 'N'.
9206 -- A similar situation does not occur in PA_BUDGET_VERSIONS. During the upgrade process
9207 -- will pull necessary data from PA_BUDGET_VERSIONS and set PJI_SUMMARIZATION_FLAG to 'P', 'N'
9208 -- or 'Y' accordingly. New versions will be inserted with value 'N'.)
9209 --
9210
9211 IF (p_slice_type = 'PRI') THEN
9212 /* Added index for bug 3818232 */
9213 UPDATE /*+ INDEX( pa_budget_versions PA_BUDGET_VERSIONS_U1)*/
9214 pa_budget_versions
9215 SET pji_summarized_flag =
9216 DECODE(wp_version_flag
9217 , 'Y', 'Y'
9218 , DECODE(budget_status_code
9219 , 'B', 'P'
9220 , 'Y')
9221 ),
9222 record_version_number=nvl(record_version_number,0)+1
9223 WHERE budget_version_id IN
9224 ( SELECT DISTINCT plan_version_id
9225 FROM pji_fm_extr_plnver3_t );
9226
9227 ELSE -- Secondary slice.
9228 FOR l_plans_to_mark IN PLANS_TO_MARK LOOP
9229 DECLARE
9230 BEGIN
9231 SELECT 'Y'
9232 INTO l_dangling_flag
9233 FROM DUAL
9234 WHERE EXISTS(
9235 SELECT 1
9236 FROM pji_fp_aggr_pjp1_t
9237 WHERE ( time_dangling_flag IS NOT NULL
9238 OR rate_dangling_flag IS NOT NULL )
9239 AND worker_id=g_worker_id
9240 AND project_id=l_plans_to_mark.project_id
9241 AND plan_version_id=l_plans_to_mark.plan_version_id
9242 UNION ALL
9243 SELECT 1
9244 FROM PJI_FM_EXTR_PLNVER3_T
9245 WHERE time_dangling_flag IS NOT NULL
9246 AND project_id=l_plans_to_mark.project_id
9247 AND plan_version_id=l_plans_to_mark.plan_version_id
9248 );
9249 EXCEPTION
9250 WHEN NO_DATA_FOUND THEN
9251 l_dangling_flag :='N';
9252 END;
9253
9254
9255
9256 UPDATE pa_budget_versions
9257 SET pji_summarized_flag = decode(l_dangling_flag,'Y','P','Y'),
9258 record_version_number=nvl(record_version_number,0)+1
9259 WHERE budget_version_id IN
9260 (
9261 SELECT plan_version_id
9262 FROM PJI_FM_EXTR_PLNVER3_T
9263 );
9264
9265 END LOOP;
9266 -- Added INDEX for bug 3828698
9267
9268 /* UPDATE pa_budget_versions
9269 SET pji_summarized_flag = 'Y',
9270 record_version_number=nvl(record_version_number,0)+1
9271 WHERE budget_version_id IN
9272 (
9273 SELECT DISTINCT plan_version_id
9274 FROM pji_fp_aggr_pjp1_t
9275 WHERE worker_id = g_worker_id
9276 )
9277 AND budget_version_id NOT IN
9278 (
9279 SELECT DISTINCT plan_version_id
9280 FROM pji_fp_aggr_pjp1_t
9281 WHERE worker_id = g_worker_id
9282 AND (time_dangling_flag IS NOT NULL
9283 OR rate_dangling_flag IS NOT NULL )
9284 )
9285 AND budget_version_id NOT IN
9286 ( SELECT distinct plan_version_id
9287 FROM PJI_FM_EXTR_PLNVER3_T
9288 WHERE time_dangling_flag IS NOT NULL
9289 );
9290
9291 UPDATE pa_budget_versions
9292 SET pji_summarized_flag = 'P',
9293 record_version_number=nvl(record_version_number,0)+1
9294 WHERE budget_version_id IN
9295 (
9296 SELECT DISTINCT plan_version_id
9297 FROM pji_fp_aggr_pjp1_t
9298 WHERE worker_id = g_worker_id
9299 AND (time_dangling_flag IS NOT NULL
9300 OR rate_dangling_flag IS NOT NULL )
9301 )
9302 OR budget_version_id in
9303 ( SELECT distinct plan_version_id
9304 FROM PJI_FM_EXTR_PLNVER3_T
9305 WHERE time_dangling_flag IS NOT NULL
9306 ); */
9307
9308 END IF;
9309
9310 EXCEPTION
9311 WHEN OTHERS THEN
9312 FND_MSG_PUB.add_exc_msg( p_pkg_name => g_package_name ,
9313 p_procedure_name => 'MARK_EXTRACTED_PLANS');
9314 RAISE;
9315 END;
9316
9317
9318
9319 ------------------------------------------------------------------------------
9320 ---- WBS rollup api..
9321 ------------------------------------------------------------------------------
9322
9323 PROCEDURE CREATE_WBSRLP IS
9324 BEGIN
9325
9326 print_time('... Begin CREATE_WBSRLP ' );
9327
9328 PRINT_NUM_WBSRLPRCDS_INPJP1;
9329
9330 print_time('... Before call to rollup_fpr_wbs...' );
9331
9332 PJI_PJP_SUM_ROLLUP.ROLLUP_FPR_WBS;
9333
9334 print_time('... after call to rollup_fpr_wbs. ' );
9335
9336 PRINT_NUM_WBSRLPRCDS_INPJP1;
9337
9338 print_time('... End CREATE_WBSRLP ' );
9339
9340 EXCEPTION
9341 WHEN OTHERS THEN
9342 print_time('... Exception CREATE_WBSRLP ' );
9343 FND_MSG_PUB.add_exc_msg( p_pkg_name => g_package_name ,
9344 p_procedure_name => 'CREATE_WBSRLP');
9345 RAISE;
9346 END;
9347
9348
9349
9350 PROCEDURE PRINT_NUM_WBSRLPRCDS_INPJP1 IS
9351 l_count NUMBER;
9352 l_wbs_rollup_flag VARCHAR2(1);
9353 l_prg_rollup_flag VARCHAR2(1);
9354 l_return_status VARCHAR2(1);
9355
9356 BEGIN
9357
9358 l_wbs_rollup_flag := 'N';
9359 l_prg_rollup_flag := 'N';
9360
9361 /*
9362 select count(1)
9363 INTO l_count
9364 FROM pji_fp_aggr_pjp1_t
9365 WHERE wbs_rollup_flag = l_wbs_rollup_flag
9366 AND prg_rollup_flag = l_prg_rollup_flag;
9367
9368 print_time ( ' l_worker_id = '|| g_worker_id || ' wbs rollup flag = ' || l_wbs_rollup_flag || ' prg rollup flag = ' || l_prg_rollup_flag || ' l_count ' || l_count);
9369
9370
9371 l_wbs_rollup_flag := 'N';
9372 l_prg_rollup_flag := 'Y';
9373
9374 select count(1)
9375 INTO l_count
9376 FROM pji_fp_aggr_pjp1_t
9377 WHERE wbs_rollup_flag = l_wbs_rollup_flag
9378 AND prg_rollup_flag = l_prg_rollup_flag;
9379
9380 print_time ( ' l_worker_id = '|| g_worker_id || ' wbs rollup flag = ' || l_wbs_rollup_flag || ' prg rollup flag = ' || l_prg_rollup_flag || ' l_count ' || l_count);
9381
9382
9383 l_wbs_rollup_flag := 'Y';
9384 l_prg_rollup_flag := 'N';
9385
9386 select count(1)
9387 INTO l_count
9388 FROM pji_fp_aggr_pjp1_t
9389 WHERE wbs_rollup_flag = l_wbs_rollup_flag
9390 AND prg_rollup_flag = l_prg_rollup_flag;
9391
9392 print_time ( ' l_worker_id = '|| g_worker_id || ' wbs rollup flag = ' || l_wbs_rollup_flag || ' prg rollup flag = ' || l_prg_rollup_flag || ' l_count ' || l_count);
9393
9394
9395 l_wbs_rollup_flag := 'Y';
9396 l_prg_rollup_flag := 'Y';
9397
9398 select count(1)
9399 INTO l_count
9400 FROM pji_fp_aggr_pjp1_t
9401 WHERE wbs_rollup_flag = l_wbs_rollup_flag
9402 AND prg_rollup_flag = l_prg_rollup_flag;
9403
9404 print_time ( ' l_worker_id = '|| g_worker_id || ' wbs rollup flag = ' || l_wbs_rollup_flag || ' prg rollup flag = ' || l_prg_rollup_flag || ' l_count ' || l_count);
9405 */
9406
9407 EXCEPTION
9408 WHEN OTHERS THEN
9409 PJI_PJP_FP_CURR_WRAP.EXCP_HANDLER
9410 ( p_package_name => g_package_name
9411 , p_procedure_name => 'PRINT_NUM_WBSRLPRCDS_INPJP1'
9412 , x_return_status => l_return_status ) ;
9413
9414 RAISE;
9415 END;
9416
9417
9418 PROCEDURE CLEANUP_INTERIM_TABLES IS
9419 l_count NUMBER;
9420 BEGIN
9421
9422 print_time('.......CLEANUP_INTERIM_TABLES: Begin. ');
9423
9424 DELETE FROM PJI_FM_EXTR_PLNVER3_T ; -- No worker id join needed for online case.
9425
9426 print_time('.......ver3 rows deleted: #= ' || sql%rowcount);
9427
9428 DELETE FROM pji_fp_aggr_pjp1_t ; -- No worker id join needed for online case.
9429
9430 print_time('.......pjp1 rows deleted: #= ' || sql%rowcount);
9431
9432 print_time('.......CLEANUP_INTERIM_TABLES: End. ');
9433
9434 EXCEPTION
9435 WHEN OTHERS THEN
9436 print_time('.......CLEANUP_INTERIM_TABLES: Exception. ' || sqlerrm);
9437 FND_MSG_PUB.add_exc_msg( p_pkg_name => g_package_name ,
9438 p_procedure_name => 'CLEANUP_INTERIM_TABLES');
9439 RAISE;
9440 END CLEANUP_INTERIM_TABLES;
9441
9442
9443 PROCEDURE SET_WORKER_ID(p_worker_id IN NUMBER := NULL) IS
9444 l_return_status VARCHAR2(1);
9445 BEGIN
9446 IF (p_worker_id IS NOT NULL) THEN
9447 g_worker_id := p_worker_id;
9448 ELSE
9449 g_worker_id := 1; -- PJI_PJP_FP_CURR_WRAP.GET_WORKER_ID;
9450 END IF;
9451 EXCEPTION
9452 WHEN OTHERS THEN
9453 PJI_PJP_FP_CURR_WRAP.EXCP_HANDLER
9454 ( p_package_name => g_package_name
9455 , p_procedure_name => 'SET_WORKER_ID'
9456 , x_return_status => l_return_status ) ;
9457
9458 RAISE;
9459 END;
9460
9461
9462
9463 --
9464 -- Temp fix until time table will have a record for non time phasing.
9465 --
9466 PROCEDURE INSERT_NTP_CAL_RECORD ( x_max_plnver_id OUT NOCOPY NUMBER ) IS
9467 l_last_update_date date := SYSDATE;
9468 l_last_updated_by NUMBER := FND_GLOBAL.USER_ID;
9469 l_creation_date date := SYSDATE;
9470 l_created_by NUMBER := FND_GLOBAL.USER_ID;
9471 l_last_update_login NUMBER := FND_GLOBAL.LOGIN_ID;
9472
9473 l_start_end_date DATE := TRUNC(SYSDATE);
9474
9475 BEGIN
9476
9477 BEGIN
9478
9479 SELECT MAX(plan_version_id)
9480 INTO x_max_plnver_id
9481 FROM pji_fm_extr_plnver3_t;
9482
9483 EXCEPTION
9484 WHEN NO_DATA_FOUND THEN
9485 RETURN;
9486 END;
9487
9488 IF (x_max_plnver_id IS NULL) THEN
9489 RETURN;
9490 END IF;
9491
9492 print_time (' Inside INSERT_NTP_CAL_RECORD, max project_id is: ' || x_max_plnver_id);
9493
9494 INSERT INTO pji_time_cal_period
9495 (
9496 CAL_PERIOD_ID,
9497 CAL_QTR_ID,
9498 CALENDAR_ID,
9499 SEQUENCE,
9500 NAME ,
9501 START_DATE,
9502 END_DATE,
9503 CREATION_DATE,
9504 LAST_UPDATE_DATE,
9505 LAST_UPDATED_BY,
9506 CREATED_BY,
9507 LAST_UPDATE_LOGIN
9508 )
9509 SELECT -x_max_plnver_id cal_period_id
9510 , -x_max_plnver_id cal_qtr_id
9511 , -x_max_plnver_id calendar_id
9512 , -x_max_plnver_id SEQUENCE
9513 , g_ntp_period_name name
9514 , l_start_end_date start_date
9515 , l_start_end_date end_date
9516 , l_creation_date creation_date
9517 , l_last_update_date last_update_date
9518 , l_last_updated_by last_updated_by
9519 , l_created_by created_by
9520 , l_last_update_login last_update_login
9521 FROM DUAL;
9522
9523 print_time (' INSERT_NTP_CAL_RECORD, # rows inserted is: ' || SQL%ROWCOUNT );
9524
9525 EXCEPTION
9526 WHEN OTHERS THEN
9527 FND_MSG_PUB.add_exc_msg( p_pkg_name => g_package_name ,
9528 p_procedure_name => 'INSERT_NTP_CAL_RECORD');
9529 RAISE;
9530 END;
9531
9532
9533 PROCEDURE DELETE_NTP_CAL_RECORD ( p_max_plnver_id IN NUMBER ) IS
9534 BEGIN
9535
9536 print_time (' DELETE_NTP_CAL_RECORD, max project_id is: ' || p_max_plnver_id);
9537
9538 DELETE FROM pji_time_cal_period
9539 WHERE cal_period_id = -p_max_plnver_id;
9540
9541 print_time (' DELETE_NTP_CAL_RECORD, # rows deleted is: ' || SQL%ROWCOUNT );
9542
9543 EXCEPTION
9544 WHEN OTHERS THEN
9545 FND_MSG_PUB.add_exc_msg( p_pkg_name => g_package_name ,
9546 p_procedure_name => 'DELETE_NTP_CAL_RECORD');
9547 RAISE;
9548 END;
9549
9550
9551 --
9552 -- MAP_ORG_CAL_INFO
9553 -- 1. Populates/updates the org extr info table with any calendar and org information
9554 -- that has changed from the last time this table was updated.
9555 -- 2. Populates pa/gl/ent calendar period tables with newly opened periods.
9556 --
9557 PROCEDURE MAP_ORG_CAL_INFO (
9558 p_fpm_upgrade IN VARCHAR2 := 'Y'
9559 ) IS
9560
9561 l_return_status VARCHAR2(1) := NULL;
9562 l_msg_count NUMBER := NULL;
9563 l_msg_data VARCHAR2(300) := NULL;
9564
9565 CURSOR c_cal_attributes_cur IS
9566 SELECT DISTINCT
9567 DECODE(split_cal.cal_type
9568 , 1
9569 , sob.period_set_name -- gl cal period set name.
9570 , 2
9571 , imp.period_set_name -- pa
9572 ) period_set_name
9573 , DECODE(split_cal.cal_type
9574 , 1
9575 , sob.accounted_period_type -- gl
9576 , 2
9577 , imp.pa_period_type -- pa
9578 ) period_type
9579 FROM pa_implementations_all imp
9580 , gl_sets_of_books sob
9581 , pa_projects_all proj
9582 , pji_fm_extr_plnver3_t ver
9583 , ( SELECT 1 cal_type FROM DUAL -- 1 GL, 2 PA.
9584 UNION ALL
9585 SELECT 2 FROM DUAL
9586 ) split_cal
9587 WHERE 1=1
9588 AND proj.org_id=imp.org_id
9589 AND ver.project_id = proj.project_id
9590 AND imp.set_of_books_id = sob.set_of_books_id;
9591
9592 BEGIN
9593
9594 print_time('MAP_ORG_CAL_INFO : begin calendar table updates.. ');
9595
9596 IF (p_fpm_upgrade = 'Y') THEN
9597
9598 NULL;
9599
9600 ELSIF (p_fpm_upgrade = 'N') THEN
9601
9602 FOR i IN c_cal_attributes_cur LOOP
9603
9604 print_time( ' i.period_set_name = ' || i.period_set_name );
9605 print_time( ' i.period_type = ' || i.period_type);
9606
9607 PJI_TIME_C.LOAD(
9608 p_period_set_name => i.period_set_name
9609 , p_period_type => i.period_type
9610 , x_return_status => l_return_status
9611 , x_msg_count => l_msg_count
9612 , x_msg_data => l_msg_data );
9613
9614 print_time( ' l_return_status = ' || l_return_status );
9615
9616 END LOOP;
9617
9618 END IF;
9619
9620 print_time(' Finished calendar table updates.. ');
9621
9622 IF (p_fpm_upgrade = 'Y') THEN
9623 PJI_PJP_EXTRACTION_UTILS.POPULATE_ORG_EXTR_INFO;
9624 ELSIF (p_fpm_upgrade = 'N') THEN
9625 PJI_PJP_EXTRACTION_UTILS.UPDATE_ORG_EXTR_INFO;
9626 END IF;
9627
9628 print_time(' Finished updating org extr info table. ');
9629 print_time(' MAP_ORG_CAL_INFO : end.. ');
9630
9631 EXCEPTION
9632 WHEN OTHERS THEN
9633 print_time('MAP_ORG_CAL_INFO : exception.. ');
9634 FND_MSG_PUB.add_exc_msg( p_pkg_name => g_package_name ,
9635 p_procedure_name => 'MAP_ORG_CAL_INFO');
9636 RAISE;
9637 END;
9638
9639
9640 ----------
9641 -- Print time API to measure time taken by each api. Also useful for debugging.
9642 ----------
9643 PROCEDURE PRINT_TIME(p_tag IN VARCHAR2) IS
9644 BEGIN
9645 PJI_PJP_FP_CURR_WRAP.print_time(p_tag);
9646 EXCEPTION
9647 WHEN OTHERS THEN
9648 FND_MSG_PUB.add_exc_msg( p_pkg_name => g_package_name ,
9649 p_procedure_name => 'PRINT_TIME');
9650 RAISE;
9651 END;
9652
9653
9654 BEGIN -- this portion is executed WHENever the package is initialized
9655
9656 g_worker_id := 1; -- PJI_PJP_FP_CURR_WRAP.GET_WORKER_ID;
9657
9658
9659 END PJI_FM_PLAN_MAINT_T_PVT;