[Home] [Help]
PACKAGE BODY: APPS.PJI_FM_XBS_ACCUM_UTILS
Source
1 PACKAGE BODY PJI_FM_XBS_ACCUM_UTILS AS
2 /* $Header: PJIPUT1B.pls 120.53.12020000.12 2013/04/26 19:15:06 sachandr ship $ */
3
4 g_package_name VARCHAR2(100) := 'PJI_FM_XBS_ACCUM_UTILS';
5 g_debug_mode varchar2(1) := NVL(FND_PROFILE.value('PA_DEBUG_MODE'),'N') ;
6
7 PROCEDURE PRINT_TIME(p_tag IN VARCHAR2);
8
9
10 -----------------------------------------------------------------
11 -- This API supports 3 kinds of data retrieval
12 -- 1. Entered level data at task level by resource list member
13 -- 2. Entered level data at project level by resource list member
14 -- 3. Rollup data by task (no resource list member context)
15 -----------------------------------------------------------------
16 /*Changed for workplan progress. p_end_date IN DATE ,
17 p_calendar_type IN VARCHAR2
18 and added p_extraction_type IN VARCHAR2 := NULL,
19 p_calling_context IN VARCHAR2 := NULL,
20 */
21
22 /* added procedure for bug#3993830 */
23 PROCEDURE debug_accum
24 IS
25 BEGIN
26 INSERT INTO pji_fm_xbs_accum_tmp1_debug
27 (
28 PROJECT_ID ,
29 STRUCT_VERSION_ID ,
30 PROJECT_ELEMENT_ID ,
31 CALENDAR_TYPE ,
32 PERIOD_NAME ,
33 PLAN_VERSION_ID ,
34 RES_LIST_MEMBER_ID ,
35 QUANTITY ,
36 TXN_CURRENCY_CODE ,
37 TXN_RAW_COST ,
38 TXN_BRDN_COST ,
39 TXN_REVENUE ,
40 TXN_LABOR_RAW_COST ,
41 TXN_LABOR_BRDN_COST ,
42 TXN_EQUIP_RAW_COST ,
43 TXN_EQUIP_BRDN_COST ,
44 TXN_BASE_RAW_COST ,
45 TXN_BASE_BRDN_COST ,
46 TXN_BASE_LABOR_RAW_COST ,
47 TXN_BASE_LABOR_BRDN_COST ,
48 TXN_BASE_EQUIP_RAW_COST ,
49 TXN_BASE_EQUIP_BRDN_COST ,
50 PRJ_RAW_COST ,
51 PRJ_BRDN_COST ,
52 PRJ_REVENUE ,
53 PRJ_LABOR_RAW_COST ,
54 PRJ_LABOR_BRDN_COST ,
55 PRJ_EQUIP_RAW_COST ,
56 PRJ_EQUIP_BRDN_COST ,
57 PRJ_BASE_RAW_COST ,
58 PRJ_BASE_BRDN_COST ,
59 PRJ_BASE_LABOR_RAW_COST ,
60 PRJ_BASE_LABOR_BRDN_COST ,
61 PRJ_BASE_EQUIP_RAW_COST ,
62 PRJ_BASE_EQUIP_BRDN_COST ,
63 POU_RAW_COST ,
64 POU_BRDN_COST ,
65 POU_REVENUE ,
66 POU_LABOR_RAW_COST ,
67 POU_LABOR_BRDN_COST ,
68 POU_EQUIP_RAW_COST ,
69 POU_EQUIP_BRDN_COST ,
70 POU_BASE_RAW_COST ,
71 POU_BASE_BRDN_COST ,
72 POU_BASE_LABOR_RAW_COST ,
73 POU_BASE_LABOR_BRDN_COST ,
74 POU_BASE_EQUIP_RAW_COST ,
75 POU_BASE_EQUIP_BRDN_COST ,
76 LABOR_HOURS ,
77 EQUIPMENT_HOURS ,
78 BASE_LABOR_HOURS ,
79 BASE_EQUIP_HOURS ,
80 SOURCE_ID ,
81 ACT_LABOR_HRS ,
82 ACT_EQUIP_HRS ,
83 ACT_TXN_LABOR_BRDN_COST ,
84 ACT_TXN_EQUIP_BRDN_COST ,
85 ACT_TXN_BRDN_COST ,
86 ACT_PRJ_LABOR_BRDN_COST ,
87 ACT_PRJ_EQUIP_BRDN_COST ,
88 ACT_PRJ_BRDN_COST ,
89 ACT_PFC_LABOR_BRDN_COST ,
90 ACT_PFC_EQUIP_BRDN_COST ,
91 ACT_PFC_BRDN_COST ,
92 ETC_LABOR_HRS ,
93 ETC_EQUIP_HRS ,
94 ETC_TXNLABOR_BRDN_COST ,
95 ETC_TXN_EQUIP_BRDN_COST ,
96 ETC_TXN_BRDN_COST ,
97 ETC_PRJ_LABOR_BRDN_COST ,
98 ETC_PRJ_EQUIP_BRDN_COST ,
99 ETC_PRJ_BRDN_COST ,
100 ETC_POU_LABOR_BRDN_COST ,
101 ETC_POU_EQUIP_BRDN_COST ,
102 ETC_POU_BRDN_COST ,
103 ACT_TXN_RAW_COST ,
104 ACT_PRJ_RAW_COST ,
105 ACT_POU_RAW_COST ,
106 ETC_TXN_RAW_COST ,
107 ETC_PRJ_RAW_COST ,
108 ETC_POU_RAW_COST ,
109 ACT_TXN_LABOR_RAW_COST ,
110 ACT_TXN_EQUIP_RAW_COST ,
111 ACT_PRJ_LABOR_RAW_COST ,
112 ACT_PRJ_EQUIP_RAW_COST ,
113 ACT_POU_LABOR_RAW_COST ,
114 ACT_POU_EQUIP_RAW_COST ,
115 ETC_TXN_LABOR_RAW_COST ,
116 ETC_TXN_EQUIP_RAW_COST ,
117 ETC_PRJ_LABOR_RAW_COST ,
118 ETC_PRJ_EQUIP_RAW_COST ,
119 ETC_POU_LABOR_RAW_COST ,
120 ETC_POU_EQUIP_RAW_COST ,
121 ACT_POU_LABOR_BRDN_COST ,
122 ACT_POU_EQUIP_BRDN_COST ,
123 ACT_POU_BRDN_COST ,
124 ETC_TXN_LABOR_BRDN_COST ,
125 TXN_LPB_RAW_COST ,
126 TXN_LPB_BRDN_COST ,
127 TXN_LPB_LABOR_RAW_COST ,
128 TXN_LPB_LABOR_BRDN_COST ,
129 TXN_LPB_EQUIP_RAW_COST ,
130 TXN_LPB_EQUIP_BRDN_COST ,
131 PRJ_LPB_RAW_COST ,
132 PRJ_LPB_BRDN_COST ,
133 PRJ_LPB_LABOR_RAW_COST ,
134 PRJ_LPB_LABOR_BRDN_COST ,
135 PRJ_LPB_EQUIP_RAW_COST ,
136 PRJ_LPB_EQUIP_BRDN_COST ,
137 POU_LPB_RAW_COST ,
138 POU_LPB_BRDN_COST ,
139 POU_LPB_LABOR_RAW_COST ,
140 POU_LPB_LABOR_BRDN_COST ,
141 POU_LPB_EQUIP_RAW_COST ,
142 POU_LPB_EQUIP_BRDN_COST ,
143 LPB_LABOR_HOURS ,
144 LPB_EQUIP_HOURS ,
145 PERIOD_FLAG ,
146 CREATION_DATE
147 )
148 SELECT
149 PROJECT_ID ,
150 STRUCT_VERSION_ID ,
151 PROJECT_ELEMENT_ID ,
152 CALENDAR_TYPE ,
153 PERIOD_NAME ,
154 PLAN_VERSION_ID ,
155 RES_LIST_MEMBER_ID ,
156 QUANTITY ,
157 TXN_CURRENCY_CODE ,
158 TXN_RAW_COST ,
159 TXN_BRDN_COST ,
160 TXN_REVENUE ,
161 TXN_LABOR_RAW_COST ,
162 TXN_LABOR_BRDN_COST ,
163 TXN_EQUIP_RAW_COST ,
164 TXN_EQUIP_BRDN_COST ,
165 TXN_BASE_RAW_COST ,
166 TXN_BASE_BRDN_COST ,
167 TXN_BASE_LABOR_RAW_COST ,
168 TXN_BASE_LABOR_BRDN_COST ,
169 TXN_BASE_EQUIP_RAW_COST ,
170 TXN_BASE_EQUIP_BRDN_COST ,
171 PRJ_RAW_COST ,
172 PRJ_BRDN_COST ,
173 PRJ_REVENUE ,
174 PRJ_LABOR_RAW_COST ,
175 PRJ_LABOR_BRDN_COST ,
176 PRJ_EQUIP_RAW_COST ,
177 PRJ_EQUIP_BRDN_COST ,
178 PRJ_BASE_RAW_COST ,
179 PRJ_BASE_BRDN_COST ,
180 PRJ_BASE_LABOR_RAW_COST ,
181 PRJ_BASE_LABOR_BRDN_COST ,
182 PRJ_BASE_EQUIP_RAW_COST ,
183 PRJ_BASE_EQUIP_BRDN_COST ,
184 POU_RAW_COST ,
185 POU_BRDN_COST ,
186 POU_REVENUE ,
187 POU_LABOR_RAW_COST ,
188 POU_LABOR_BRDN_COST ,
189 POU_EQUIP_RAW_COST ,
190 POU_EQUIP_BRDN_COST ,
191 POU_BASE_RAW_COST ,
192 POU_BASE_BRDN_COST ,
193 POU_BASE_LABOR_RAW_COST ,
194 POU_BASE_LABOR_BRDN_COST ,
195 POU_BASE_EQUIP_RAW_COST ,
196 POU_BASE_EQUIP_BRDN_COST ,
197 LABOR_HOURS ,
198 EQUIPMENT_HOURS ,
199 BASE_LABOR_HOURS ,
200 BASE_EQUIP_HOURS ,
201 SOURCE_ID ,
202 ACT_LABOR_HRS ,
203 ACT_EQUIP_HRS ,
204 ACT_TXN_LABOR_BRDN_COST ,
205 ACT_TXN_EQUIP_BRDN_COST ,
206 ACT_TXN_BRDN_COST ,
207 ACT_PRJ_LABOR_BRDN_COST ,
208 ACT_PRJ_EQUIP_BRDN_COST ,
209 ACT_PRJ_BRDN_COST ,
210 ACT_PFC_LABOR_BRDN_COST ,
211 ACT_PFC_EQUIP_BRDN_COST ,
212 ACT_PFC_BRDN_COST ,
213 ETC_LABOR_HRS ,
214 ETC_EQUIP_HRS ,
215 ETC_TXNLABOR_BRDN_COST ,
216 ETC_TXN_EQUIP_BRDN_COST ,
217 ETC_TXN_BRDN_COST ,
218 ETC_PRJ_LABOR_BRDN_COST ,
219 ETC_PRJ_EQUIP_BRDN_COST ,
220 ETC_PRJ_BRDN_COST ,
221 ETC_POU_LABOR_BRDN_COST ,
222 ETC_POU_EQUIP_BRDN_COST ,
223 ETC_POU_BRDN_COST ,
224 ACT_TXN_RAW_COST ,
225 ACT_PRJ_RAW_COST ,
226 ACT_POU_RAW_COST ,
227 ETC_TXN_RAW_COST ,
228 ETC_PRJ_RAW_COST ,
229 ETC_POU_RAW_COST ,
230 ACT_TXN_LABOR_RAW_COST ,
231 ACT_TXN_EQUIP_RAW_COST ,
232 ACT_PRJ_LABOR_RAW_COST ,
233 ACT_PRJ_EQUIP_RAW_COST ,
234 ACT_POU_LABOR_RAW_COST ,
235 ACT_POU_EQUIP_RAW_COST ,
236 ETC_TXN_LABOR_RAW_COST ,
237 ETC_TXN_EQUIP_RAW_COST ,
238 ETC_PRJ_LABOR_RAW_COST ,
239 ETC_PRJ_EQUIP_RAW_COST ,
240 ETC_POU_LABOR_RAW_COST ,
241 ETC_POU_EQUIP_RAW_COST ,
242 ACT_POU_LABOR_BRDN_COST ,
243 ACT_POU_EQUIP_BRDN_COST ,
244 ACT_POU_BRDN_COST ,
245 ETC_TXN_LABOR_BRDN_COST ,
246 TXN_LPB_RAW_COST ,
247 TXN_LPB_BRDN_COST ,
248 TXN_LPB_LABOR_RAW_COST ,
249 TXN_LPB_LABOR_BRDN_COST ,
250 TXN_LPB_EQUIP_RAW_COST ,
251 TXN_LPB_EQUIP_BRDN_COST ,
252 PRJ_LPB_RAW_COST ,
253 PRJ_LPB_BRDN_COST ,
254 PRJ_LPB_LABOR_RAW_COST ,
255 PRJ_LPB_LABOR_BRDN_COST ,
256 PRJ_LPB_EQUIP_RAW_COST ,
257 PRJ_LPB_EQUIP_BRDN_COST ,
258 POU_LPB_RAW_COST ,
259 POU_LPB_BRDN_COST ,
260 POU_LPB_LABOR_RAW_COST ,
261 POU_LPB_LABOR_BRDN_COST ,
262 POU_LPB_EQUIP_RAW_COST ,
263 POU_LPB_EQUIP_BRDN_COST ,
264 LPB_LABOR_HOURS ,
265 LPB_EQUIP_HOURS ,
266 PERIOD_FLAG ,
267 SYSDATE
268 FROM
269 pji_fm_xbs_accum_tmp1 ;
270
271 END;
272 ----------------------------------------------------------------------------
273 -- Created DEGUPTA
274 -- To delete fin8 table data from pa_progress_pub.get_summarized_actuals API
275 -- Removing the delete from this package API get_summarized_actuals
276 -- Bug No. 5349102
277 ----------------------------------------------------------------------------
278 PROCEDURE DELETE_FIN8(
279 p_project_id IN NUMBER,
280 p_calendar_type IN VARCHAR2 DEFAULT NULL,
281 p_end_date IN DATE DEFAULT NULL,
282 p_err_flag IN NUMBER DEFAULT 0,
283 p_err_msg IN VARCHAR2 DEFAULT NULL
284 ) IS
285
286 l_period_type_id NUMBER;
287 l_calendar_type VARCHAR2(1);
288 l_org_id NUMBER;
289 l_end_period_id NUMBER;
290 BEGIN
291
292 pa_debug.log_message('DELETE_FIN8: p_project_id'||p_project_id||'p_err_flag'||p_err_flag||'p_err_msg '||p_err_msg , 3);
293 IF p_err_flag =1 THEN
294 update pji_pjp_proj_batch_map set act_err_msg=p_err_msg
295 where project_id=p_project_id;
296
297 else
298 print_time ( ' Deleting pji_fm_aggr_fin8 0001 p_calendar_type ' || p_calendar_type ) ;
299 IF (p_calendar_type = 'N') THEN
300 print_time ( ' Deleting pji_fm_aggr_fin8 0001.1 ' ) ;
301 l_calendar_type := 'A';
302 l_period_type_id := 2048;
303 ELSIF (p_calendar_type = 'P') THEN
304 print_time ( ' Deleting pji_fm_aggr_fin8 0001.2 ' ) ;
305 l_calendar_type := 'P';
306 l_period_type_id := 32;
307 ELSE
308 print_time ( ' Deleting pji_fm_aggr_fin8 0001.3 ' ) ;
309 l_calendar_type := 'G';
310 l_period_type_id := 32;
311 END IF;
312 print_time ( ' get_summarized_data 0002 ' ) ;
313
314 SELECT ORG_ID
315 INTO l_org_id
316 FROM pa_projects_all
317 WHERE project_id = p_project_id;
318
319 IF l_calendar_type ='A' then
320 l_end_period_id :=-1;
321 ELSE
322 BEGIN
323 SELECT cal.CAL_PERIOD_ID
324 INTO l_end_period_id
325 FROM pji_time_cal_period_v cal,
326 pji_org_extr_info info
327 WHERE TRUNC(p_end_date) BETWEEN
328 TRUNC(cal.START_DATE) AND TRUNC(cal.END_DATE) AND
329 info.ORG_ID = l_org_id AND
330 DECODE(l_calendar_type, 'P', info.PA_CALENDAR_ID,
331 info.GL_CALENDAR_ID) = cal.CALENDAR_ID;
332 EXCEPTION WHEN NO_DATA_FOUND THEN
333 Pa_Debug.log_message('Project Id:' || p_project_id
334 || ' Org Id:' || l_org_id
335 || ' End Date:' || p_end_date);
336 print_time ('Project Id:' || p_project_id
337 || ' Org Id:' || l_org_id
338 || ' End Date:' || p_end_date);
339 END;
340 END IF;
341
342 IF l_calendar_type = 'A' THEN
343 delete from pji_fm_aggr_fin8 fin where
344 fin.PROJECT_ID = p_project_id;
345 ELSE
346 delete from pji_fm_aggr_fin8 fin where
347 fin.PROJECT_ID = p_project_id
348 AND fin.RECVR_PERIOD_ID <= l_end_period_id;
349 END IF;
350 END IF;
351
352 END;
353
354
355
356 PROCEDURE get_summarized_data (
357 p_project_ids IN SYSTEM.pa_num_tbl_type := SYSTEM.pa_num_tbl_type(),
358 p_resource_list_ids IN SYSTEM.pa_num_tbl_type := SYSTEM.pa_num_tbl_type(),
359 p_struct_ver_ids IN SYSTEM.pa_num_tbl_type := SYSTEM.pa_num_tbl_type(),
360 p_start_date IN DATE := NULL,
361 p_end_date IN SYSTEM.pa_date_tbl_type := system.pa_date_tbl_type(),
362 p_start_period_name IN VARCHAR2 := NULL,
363 p_end_period_name IN VARCHAR2 := NULL,
364 p_calendar_type IN SYSTEM.PA_VARCHAR2_1_TBL_TYPE := SYSTEM. PA_VARCHAR2_1_TBL_TYPE(),
365 p_extraction_type IN VARCHAR2 := NULL,
366 p_calling_context IN VARCHAR2 := NULL,
367 p_record_type IN VARCHAR2,
368 p_currency_type IN NUMBER,
369 x_return_status OUT NOCOPY VARCHAR2,
370 x_msg_code OUT NOCOPY VARCHAR2) IS
371
372 /* Commented for workplan progress
373 l_end_period_id NUMBER;
374 l_period_type_id NUMBER;
375 l_org_id NUMBER;
376 End of workplan progress */
377 l_end_period_id SYSTEM.pa_num_tbl_type := SYSTEM.pa_num_tbl_type(); /* Added for workplan progress */
378 l_currency_mask NUMBER;
379 l_period_type_id SYSTEM.pa_num_tbl_type := SYSTEM.pa_num_tbl_type();/*Added for workplan progress */
380 l_periodic_flag VARCHAR2(1);
381 l_planres_level_flag VARCHAR2(1);
382 l_task_level_flag VARCHAR2(1);
383 l_task_rollup_flag VARCHAR2(1);
384 l_proj_level_flag VARCHAR2(1);
385 l_summarized_flag VARCHAR2(1);
386 l_msg_count NUMBER;
387 l_calendar_type SYSTEM.PA_VARCHAR2_1_TBL_TYPE := SYSTEM.PA_VARCHAR2_1_TBL_TYPE();
388 l_org_id SYSTEM.pa_num_tbl_type := SYSTEM.pa_num_tbl_type();/*Added for workplan progress */
389 l_map_resource_list EXCEPTION;
390 l_get_summarized_data varchar2(1) :='Y';
391 l_summ_hasrun varchar2(1) :='N';
392
393
394 BEGIN
395
396 PJI_PJP_FP_CURR_WRAP.INIT_ERR_STACK
397 ( p_package_name => g_package_name
398 , x_return_status => x_return_status );
399
400
401 -- Cleanup tmp1 table for 3750147.
402 DELETE FROM pji_fm_xbs_accum_tmp1;
403
404 DELETE FROM pa_res_list_map_tmp1; /* Uncommented for bug 9859199 */
405 DELETE FROM pa_res_list_map_tmp2; -- Bug#4726170
406
407
408 /* Commented for workplan progress
409 print_time ( ' get_summarized_data 0001 p_calendar_type ' || p_calendar_type ) ;
410
411 --------------------------------------------------
412 --Identifying the period type id and calendar type
413 --------------------------------------------------
414 --TODO: Need to add calendar type joins throughout
415 IF (p_calendar_type = 'N') THEN print_time ( ' get_summarized_data 0001.1 ' ) ;
416 l_calendar_type := 'A';
417 l_period_type_id := 2048;
418 ELSIF (p_calendar_type = 'P') THEN print_time ( ' get_summarized_data 0001.2 ' ) ;
419 l_calendar_type := 'P';
420 l_period_type_id := 32;
421 ELSE print_time ( ' get_summarized_data 0001.3 ' ) ;
422 l_calendar_type := 'G';
423 l_period_type_id := 32;
424 END IF; print_time ( ' get_summarized_data 0002 ' ) ;
425
426 End of workplan progress */
427
428 ----------------------
429 --Decoding record type
430 ----------------------
431 l_periodic_flag := SUBSTR( p_record_type, 1, 1);
432 l_planres_level_flag := SUBSTR( p_record_type, 2, 1);
433 l_task_level_flag := SUBSTR( p_record_type, 3, 1);
434 l_task_rollup_flag := NVL(SUBSTR( p_record_type, 4, 1), 'Y');
435
436 -- If l_proj_level_flag is Y, then return task id as 0, else return project element id.
437 IF (l_task_rollup_flag = 'N' AND l_task_level_flag = 'N') THEN -- BandF
438 l_proj_level_flag := 'Y';
439 ELSE -- Used by progress: NY, YN. YY never used.
440 l_proj_level_flag := 'N';
441 END IF;
442
443 /* Commented and moved down for workplan progress
444 IF l_planres_level_flag = 'Y' THEN
445 print_time ( ' get_summarized_data 0003 ' ) ; */
446
447 /* Changed the logic. Existing loop is split into 2 for loops.
448 Because to find the values of l_calendar_type, l_end_period_id, l_org_id
449 which are used in the rollup */
450
451 FOR i IN 1..p_project_ids.COUNT LOOP
452 print_time ( ' get_summarized_data 0004 ' ) ;
453
454 /* Added here for workplan progress */
455
456 l_calendar_type.extend;
457 l_end_period_id.extend;
458 l_period_type_id.extend;
459 l_org_id.extend;
460
461 print_time ( ' get_summarized_data 0001 p_calendar_type ' || p_calendar_type(i) ) ;
462 IF (p_calendar_type(i) = 'N') THEN
463 print_time ( ' get_summarized_data 0001.1 ' ) ;
464 l_calendar_type(i) := 'A';
465 l_period_type_id(i) := 2048;
466 ELSIF (p_calendar_type(i) = 'P') THEN
467 print_time ( ' get_summarized_data 0001.2 ' ) ;
468 l_calendar_type(i) := 'P';
469 l_period_type_id(i) := 32;
470 ELSE
471 print_time ( ' get_summarized_data 0001.3 ' ) ;
472 l_calendar_type(i) := 'G';
473 l_period_type_id(i) := 32;
474 END IF;
475 print_time ( ' get_summarized_data 0002 ' ) ;
476 /* End for workplan progress */
477
478
479 --Get org for the project
480 SELECT ORG_ID
481 INTO l_org_id(i)
482 FROM pa_projects_all
483 WHERE project_id = p_project_ids(i);
484 print_time ( ' get_summarized_data 0004.1 ' || l_org_id(i) || ' l_calendar_type ' || l_calendar_type(i) ) ;
485
486 -------------------------------
487 --Identifying the end period id
488 -------------------------------
489 /* Commented for workplan progress
490 SELECT cal.CAL_PERIOD_ID
491 INTO l_end_period_id
492 FROM pji_time_cal_period_v cal,
493 pji_org_extr_info info
494 WHERE TRUNC(p_end_date) BETWEEN TRUNC(cal.START_DATE) AND TRUNC(cal.END_DATE) AND
495 info.ORG_ID = l_org_id AND
496 DECODE(l_calendar_type, 'P',
497 info.PA_CALENDAR_ID,
498 info.GL_CALENDAR_ID) = cal.CALENDAR_ID; */
499
500 IF l_calendar_type(i) ='A' then
501 l_end_period_id(i) :=-1;
502 ELSE
503 BEGIN
504 SELECT cal.CAL_PERIOD_ID
505 INTO l_end_period_id(i)
506 FROM pji_time_cal_period_v cal,
507 pji_org_extr_info info
508 WHERE TRUNC(p_end_date(i)) BETWEEN
509 TRUNC(cal.START_DATE) AND TRUNC(cal.END_DATE) AND
510 info.ORG_ID = l_org_id(i) AND
511 DECODE(l_calendar_type(i), 'P', info.PA_CALENDAR_ID,
512 info.GL_CALENDAR_ID) = cal.CALENDAR_ID;
513 EXCEPTION
514 WHEN NO_DATA_FOUND THEN
515 Pa_Debug.log_message('Project Id:' || p_project_ids(i)
516 || ' Org Id:' || l_org_id(i)
517 || ' End Date:' || p_end_date(i));
518 print_time ('Project Id:' || p_project_ids(i)
519 || ' Org Id:' || l_org_id(i)
520 || ' End Date:' || p_end_date(i));
521 END;
522 END IF;
523
524 print_time ( ' get_summarized_data 0004.2 ' ) ;
525
526 END LOOP;
527
528 ---------------------------------------------
529 --ENTERED LEVEL DATA RETREIVAL
530 --If planning resource level data is required
531 --map to resource list and get data from
532 --transaction accum
533 ---------------------------------------------
534
535 FOR i IN 1..p_project_ids.COUNT LOOP
536 /*bug#4415960 added the summarization check in Publish mode */
537 /* commenting this as this is already handled,keeping the code for future requirement
538 l_summ_hasrun:='N';
539 l_get_summarized_data:='Y';
540 IF p_calling_context='P' THEN
541 begin
542 select 'Y'
543 into l_summ_hasrun
544 from dual
545 where exists (select 1 from pji_fp_xbs_accum_f
546 where project_id=p_project_ids(i)
547 and plan_version_id=-1
548 and rownum=1);
549 exception when no_data_found then
550 l_summ_hasrun:='N';
551 end;
552
553 if l_summ_hasrun ='N' and p_calling_context='P' then
554 l_get_summarized_data :='N';
555 end if;
556 END IF;
557 */
558 IF l_planres_level_flag = 'Y' THEN
559
560 --DELETE FROM pa_res_list_map_tmp1;
561 DELETE FROM pa_res_list_map_tmp2; -- Bug#4726170
562
563 print_time ( ' get_summarized_data 0004 ' ) ;
564
565 INSERT INTO pa_res_list_map_tmp1 (
566 PERSON_ID,
567 JOB_ID,
568 ORGANIZATION_ID,
569 VENDOR_ID,
570 EXPENDITURE_TYPE,
571 EVENT_TYPE,
572 NON_LABOR_RESOURCE,
573 EXPENDITURE_CATEGORY,
574 REVENUE_CATEGORY,
575 EVENT_TYPE_CLASSIFICATION,
576 SYSTEM_LINKAGE_FUNCTION,
577 PROJECT_ROLE_ID,
578 RESOURCE_CLASS_ID,
579 RESOURCE_CLASS_CODE,
580 BOM_LABOR_RESOURCE_ID,
581 BOM_EQUIP_RESOURCE_ID,
582 INVENTORY_ITEM_ID,
583 ITEM_CATEGORY_ID,
584 PERSON_TYPE_CODE,
585 BOM_RESOURCE_ID,
586 NAMED_ROLE,
587 TXN_SOURCE_ID,
588 FC_RES_TYPE_CODE ) --bug#3804500
589 SELECT DISTINCT /* Added for bug 3729366*/
590 decode(head.PERSON_ID, -1, null, head.PERSON_ID),
591 decode(head.JOB_ID, -1, null, head.JOB_ID),
592 decode(head.EXPENDITURE_ORGANIZATION_ID, -1, null, head.EXPENDITURE_ORGANIZATION_ID),
593 decode(head.VENDOR_ID,-1, null, head.VENDOR_ID),
594 decode(head.EXPENDITURE_TYPE, 'PJI$NULL', null,head.EXPENDITURE_TYPE),
595 decode(head.EVENT_TYPE, 'PJI$NULL', null, head.EVENT_TYPE),
596 nlr.NON_LABOR_RESOURCE,
597 decode(head.EXPENDITURE_CATEGORY, 'PJI$NULL', null, head.EXPENDITURE_CATEGORY),
598 decode(head.REVENUE_CATEGORY,'PJI$NULL', null,head.REVENUE_CATEGORY),
599 decode(head.EVENT_TYPE_CLASSIFICATION,'PJI$NULL', null, head.EVENT_TYPE_CLASSIFICATION),
600 decode(head.SYSTEM_LINKAGE_FUNCTION,'PJI$NULL', null,head.SYSTEM_LINKAGE_FUNCTION),
601 decode(head.PROJECT_ROLE_ID,-1,null, head.PROJECT_ROLE_ID), /*For bug 4590810 */
602 head.RESOURCE_CLASS_ID,
603 cls.RESOURCE_CLASS_CODE,
604 decode(head.BOM_LABOR_RESOURCE_ID, -1, null, head.BOM_LABOR_RESOURCE_ID),
605 decode(head.BOM_EQUIPMENT_RESOURCE_ID, -1, null, head.BOM_EQUIPMENT_RESOURCE_ID),
606 decode(head.INVENTORY_ITEM_ID, -1, null, head.INVENTORY_ITEM_ID),
607 decode(head.ITEM_CATEGORY_ID, -1, null, head.ITEM_CATEGORY_ID),
608 decode(head.PERSON_TYPE,'PJI$NULL', null,head.PERSON_TYPE),
609 decode(head.BOM_LABOR_RESOURCE_ID, -1, decode(head.BOM_EQUIPMENT_RESOURCE_ID, -1, null, head.BOM_EQUIPMENT_RESOURCE_ID), head.BOM_LABOR_RESOURCE_ID),
610 decode(accum.NAMED_ROLE,'PJI$NULL',null,accum.NAMED_ROLE), /*For Bug 5564306 and bug 4034467 */
611 head.TXN_ACCUM_HEADER_ID,
612 decode(head.EXPENDITURE_TYPE,'PJI$NULL',
613 decode(head.EVENT_TYPE,'PJI$NULL',
614 decode(head.EXPENDITURE_CATEGORY,'PJI$NULL',
615 decode(head.REVENUE_CATEGORY,'PJI$NULL',null,'REVENUE_CATEGORY'),'EXPENDITURE_CATEGORY'),'EVENT_TYPE'),'EXPENDITURE_TYPE')
616 FROM
617 (
618 SELECT /*+ NO_MERGE */ DISTINCT txn_accum_header_id, project_id,named_role -- Bug#5377911
619 FROM (
620 SELECT
621 txn_accum_header_id,
622 project_id,
623 named_role /*For bug 4590810 */
624 FROM
625 pji_fp_txn_accum
626 WHERE project_id = p_project_ids(i)
627 AND recvr_period_type='GL' --Bug#5356978
628 UNION ALL
629 SELECT
630 txn_accum_header_id,
631 project_id,
632 named_role /*For bug 4590810 */
633 FROM
634 pji_fm_aggr_fin7
635 WHERE project_id = p_project_ids(i)
636 AND recvr_period_type='GL' --Bug#5356978
637 )
638 ) accum,
639 pji_fp_txn_accum_header head,
640 pa_non_labor_resources nlr,
641 pa_resource_classes_b cls
642 WHERE
643 head.TXN_ACCUM_HEADER_ID = accum.TXN_ACCUM_HEADER_ID AND
644 accum.PROJECT_ID = p_project_ids(i) AND
645 nlr.NON_LABOR_RESOURCE_ID (+) = head.NON_LABOR_RESOURCE_ID AND
646 cls.RESOURCE_CLASS_ID = head.RESOURCE_CLASS_ID ;
647
648 print_time ( ' get_summarized_data 0004.3 ' ) ;
649
650
651
652 /* Added for bug 3729366 - Start */
653
654 INSERT INTO pa_res_list_map_tmp2
655 (TXN_SOURCE_ID,VENDOR_ID,PERSON_ID)
656 SELECT /* + index(hr, per_assignments_f_n12) index(prd, pji_time_cal_period_u1) */
657 distinct T.TXN_SOURCE_ID,HR.VENDOR_ID,HR.PERSON_ID
658 FROM pa_res_list_map_tmp1 t,
659 per_all_assignments_f hr, --Bug#5356978
660 pji_time_cal_period_v prd,
661 ( SELECT txn_accum_header_id,max(recvr_period_id) recvr_period_id -- Bug#5262851
662 FROM
663 (
664 SELECT
665 txn_accum_header_id,recvr_period_id
666 FROM pji_fp_txn_accum
667 WHERE recvr_period_type = 'GL'
668 and project_id = p_project_ids(i)
669 UNION ALL
670 SELECT /*+ index(pji_fm_aggr_fin7 pji_fm_aggr_fin7_n2) */
671 txn_accum_header_id,recvr_period_id
672 FROM pji_fm_aggr_fin7
673 WHERE recvr_period_type = 'GL'
674 and project_id = p_project_ids(i)
675 )
676 GROUP BY txn_accum_header_id -- Bug#5262851
677 )
678 det
679 WHERE
680 det.TXN_ACCUM_HEADER_ID = t.TXN_SOURCE_ID AND
681 t.PERSON_TYPE_CODE = 'CWK' AND
682 prd.CAL_PERIOD_ID = det.RECVR_PERIOD_ID AND
683 (prd.START_DATE BETWEEN hr.EFFECTIVE_START_DATE AND hr.EFFECTIVE_END_DATE) AND
684 hr.PERSON_ID = t.PERSON_ID AND
685 hr.PRIMARY_FLAG = 'Y' AND
686 hr.ASSIGNMENT_TYPE = 'C' AND
687 hr.VENDOR_ID is not null;
688
689
690
691 print_time ( ' get_summarized_data 0004.4 ' ) ;
692
693 UPDATE pa_res_list_map_tmp1 tmp
694 SET VENDOR_ID =
695 (
696 SELECT t1.VENDOR_ID
697 FROM pa_res_list_map_tmp2 t1
698 WHERE t1.TXN_SOURCE_ID=tmp.TXN_SOURCE_ID
699 AND t1.PERSON_ID=tmp.PERSON_ID
700 AND tmp.PERSON_ID IS NOT NULL
701 AND EXISTS
702 (
703 SELECT NULL
704 FROM pa_res_list_map_tmp2 t1
705 WHERE t1.TXN_SOURCE_ID=tmp.TXN_SOURCE_ID
706 AND t1.PERSON_ID=tmp.PERSON_ID
707 )
708 )
709 WHERE VENDOR_ID IS NULL;
710
711 /* Added for bug 3729366 - End */
712 print_time ( ' get_summarized_data 0004.41 ' ) ;
713
714 pa_resource_mapping.g_called_process :='ACTUALS';
715
716 pa_resource_mapping.map_resource_list (
717 p_resource_list_id => p_resource_list_ids (i),
718 p_project_id => p_project_ids(i),
719 x_return_status => x_return_status,
720 x_msg_count => l_msg_count,
721 x_msg_data => x_msg_code );
722
723 IF x_return_status <> FND_API.G_RET_STS_SUCCESS THEN /* Bug No. 4461060 */
724 RAISE l_map_resource_list;
725 END IF;
726
727
728 pa_resource_mapping.g_called_process :='PLAN';
729
730 print_time ( ' get_summarized_data 0004.42 ' ) ;
731
732 IF nvl(p_calling_context,'F') in ('P','W') THEN
733 IF p_extraction_type <>'INCREMENTAL' THEN
734
735 INSERT INTO pji_fm_xbs_accum_tmp1
736 (
737 SOURCE_ID, RES_LIST_MEMBER_ID, PROJECT_ID, STRUCT_VERSION_ID,
738 PROJECT_ELEMENT_ID, CALENDAR_TYPE, PERIOD_NAME, PLAN_VERSION_ID,
739 TXN_CURRENCY_CODE, TXN_RAW_COST, TXN_BRDN_COST, TXN_REVENUE,
740 TXN_LABOR_RAW_COST, TXN_LABOR_BRDN_COST, TXN_EQUIP_RAW_COST, TXN_EQUIP_BRDN_COST,
741 QUANTITY, PRJ_RAW_COST, PRJ_BRDN_COST, PRJ_REVENUE,
742 PRJ_LABOR_RAW_COST, PRJ_LABOR_BRDN_COST, PRJ_EQUIP_RAW_COST, PRJ_EQUIP_BRDN_COST,
743 POU_RAW_COST, POU_BRDN_COST, POU_REVENUE, POU_LABOR_RAW_COST,
744 POU_LABOR_BRDN_COST, POU_EQUIP_RAW_COST, POU_EQUIP_BRDN_COST, LABOR_HOURS,
745 EQUIPMENT_HOURS, PERIOD_FLAG, BASE_LABOR_HOURS, POU_LPB_RAW_COST,
746 POU_LPB_BRDN_COST, ACT_TXN_RAW_COST, ACT_TXN_BRDN_COST, ACT_TXN_LABOR_RAW_COST,
747 ACT_TXN_LABOR_BRDN_COST,ACT_TXN_EQUIP_RAW_COST, ACT_TXN_EQUIP_BRDN_COST,ACT_PRJ_RAW_COST,
748 ACT_PRJ_BRDN_COST, ACT_PRJ_LABOR_RAW_COST, ACT_PRJ_LABOR_BRDN_COST,ACT_PRJ_EQUIP_RAW_COST,
749 ACT_PRJ_EQUIP_BRDN_COST,ACT_POU_RAW_COST, ACT_POU_BRDN_COST, ACT_POU_LABOR_RAW_COST,
750 ACT_POU_LABOR_BRDN_COST,ACT_POU_EQUIP_RAW_COST, ACT_POU_EQUIP_BRDN_COST,ACT_LABOR_HRS,
751 ACT_EQUIP_HRS, MIN_START_DATE, MAX_END_DATE,
752 --OLAP
753 CBS_ELEMENT_ID
754 --End OLAP
755 )
756 SELECT /*+ NO_MERGE */ --Bug#5356978
757 SOURCE_ID, RES_LIST_MEMBER_ID, PROJECT_ID, STRUCT_VERSION_ID,
758 PROJECT_ELEMENT_ID, CALENDAR_TYPE, PERIOD_NAME, PLAN_VERSION_ID,
759 TXN_CURRENCY_CODE, TXN_RAW_COST, TXN_BRDN_COST, TXN_REVENUE,
760 TXN_LABOR_RAW_COST, TXN_LABOR_BRDN_COST, TXN_EQUIP_RAW_COST, TXN_EQUIP_BRDN_COST,
761 QUANTITY, PRJ_RAW_COST, PRJ_BRDN_COST, PRJ_REVENUE,
762 PRJ_LABOR_RAW_COST, PRJ_LABOR_BRDN_COST, PRJ_EQUIP_RAW_COST, PRJ_EQUIP_BRDN_COST,
763 POU_RAW_COST, POU_BRDN_COST, POU_REVENUE, POU_LABOR_RAW_COST,
764 POU_LABOR_BRDN_COST, POU_EQUIP_RAW_COST, POU_EQUIP_BRDN_COST, LABOR_HOURS,
765 EQUIPMENT_HOURS, PERIOD_FLAG, BASE_LABOR_HOURS, POU_LPB_RAW_COST,
766 POU_LPB_BRDN_COST, TXN_RAW_COST, TXN_BRDN_COST, TXN_LABOR_RAW_COST,
767 TXN_LABOR_BRDN_COST, TXN_EQUIP_RAW_COST, TXN_EQUIP_BRDN_COST, PRJ_RAW_COST,
768 PRJ_BRDN_COST, PRJ_LABOR_RAW_COST, PRJ_LABOR_BRDN_COST, PRJ_EQUIP_RAW_COST,
769 PRJ_EQUIP_BRDN_COST, POU_RAW_COST, POU_BRDN_COST, POU_LABOR_RAW_COST,
770 POU_LABOR_BRDN_COST, POU_EQUIP_RAW_COST, POU_EQUIP_BRDN_COST, LABOR_HOURS,
771 EQUIPMENT_HOURS, MIN_START_DATE, MAX_END_DATE,
772 --OLAP
773 CBS_ELEMENT_ID
774 --END OLAP
775 FROM
776 (
777
778 /* Below select statment is added for workplan progress (periodic data) from PJI_FP_TXN_ACCUM
779 To identify those records check for period_flag ='Y'. This is for FULL and PARTIAL
780 Retrieve Task / Project Level Data for PA/ GL Period
781 */
782 SELECT
783 /*tmp4.TXN_SOURCE_ID, Commented for workplan progress */
784 min(null) SOURCE_ID,
785 tmp4.RESOURCE_LIST_MEMBER_ID RES_LIST_MEMBER_ID,
786 accum.PROJECT_ID PROJECT_ID,
787 p_struct_ver_ids(i) STRUCT_VERSION_ID,
788 DECODE(l_proj_level_flag,'Y',0,accum.TASK_ID) PROJECT_ELEMENT_ID,
789 l_calendar_type(i) CALENDAR_TYPE,
790 time.NAME PERIOD_NAME,
791 -1 PLAN_VERSION_ID,
792 accum.TXN_CURRENCY_CODE TXN_CURRENCY_CODE,
793 sum(accum.TXN_RAW_COST) TXN_RAW_COST,
794 sum(accum.TXN_BRDN_COST) TXN_BRDN_COST,
795 sum(accum.TXN_REVENUE) TXN_REVENUE,
796 sum(decode(tmp4.RESOURCE_CLASS_CODE,'PEOPLE',accum.TXN_RAW_COST,0)) TXN_LABOR_RAW_COST,
797 sum(decode(tmp4.RESOURCE_CLASS_CODE,'PEOPLE',accum.TXN_BRDN_COST,0)) TXN_LABOR_BRDN_COST,
798 sum(decode(tmp4.RESOURCE_CLASS_CODE,'EQUIPMENT',accum.TXN_RAW_COST,0)) TXN_EQUIP_RAW_COST,
799 sum(decode(tmp4.RESOURCE_CLASS_CODE,'EQUIPMENT',accum.TXN_BRDN_COST,0)) TXN_EQUIP_BRDN_COST,
800 sum(accum.QUANTITY) QUANTITY,
801 sum(accum.PRJ_RAW_COST) PRJ_RAW_COST,
802 sum(accum.PRJ_BRDN_COST) PRJ_BRDN_COST,
803 sum(accum.PRJ_REVENUE) PRJ_REVENUE,
804 sum(decode(tmp4.RESOURCE_CLASS_CODE,'PEOPLE',accum.PRJ_RAW_COST,0)) PRJ_LABOR_RAW_COST,
805 sum(decode(tmp4.RESOURCE_CLASS_CODE,'PEOPLE',accum.PRJ_BRDN_COST,0)) PRJ_LABOR_BRDN_COST,
806 sum(decode(tmp4.RESOURCE_CLASS_CODE,'EQUIPMENT',accum.PRJ_RAW_COST,0)) PRJ_EQUIP_RAW_COST,
807 sum(decode(tmp4.RESOURCE_CLASS_CODE,'EQUIPMENT',accum.PRJ_BRDN_COST,0)) PRJ_EQUIP_BRDN_COST,
808 sum(accum.POU_RAW_COST) POU_RAW_COST,
809 sum(accum.POU_BRDN_COST) POU_BRDN_COST,
810 sum(accum.POU_REVENUE) POU_REVENUE,
811 sum(decode(tmp4.RESOURCE_CLASS_CODE,'PEOPLE',accum.POU_RAW_COST,0)) POU_LABOR_RAW_COST,
812 sum(decode(tmp4.RESOURCE_CLASS_CODE,'PEOPLE',accum.POU_BRDN_COST,0)) POU_LABOR_BRDN_COST,
813 sum(decode(tmp4.RESOURCE_CLASS_CODE,'EQUIPMENT',accum.POU_RAW_COST,0)) POU_EQUIP_RAW_COST,
814 sum(decode(tmp4.RESOURCE_CLASS_CODE,'EQUIPMENT',accum.POU_BRDN_COST,0)) POU_EQUIP_BRDN_COST,
815 sum(decode(tmp4.RESOURCE_CLASS_CODE,'PEOPLE',accum.QUANTITY,0)) LABOR_HOURS,
816 sum(decode(tmp4.RESOURCE_CLASS_CODE,'EQUIPMENT',accum.QUANTITY,0)) EQUIPMENT_HOURS,
817 MIN('Y') PERIOD_FLAG,
818 null BASE_LABOR_HOURS,
819 null POU_LPB_RAW_COST,
820 null POU_LPB_BRDN_COST,
821 MIN(time.START_DATE) MIN_START_DATE,
822 MAX(time.END_DATE) MAX_END_DATE,
823 --OLAP
824 accum.cbs_element_id CBS_ELEMENT_ID
825 -- End OLAP
826 FROM
827 pa_res_list_map_tmp4 tmp4,
828 pji_fm_aggr_fin8 accum,
829 pji_time_cal_period_v time,
830 pji_org_extr_info info
831 WHERE
832 tmp4.TXN_SOURCE_ID = accum.TXN_ACCUM_HEADER_ID AND
833 accum.PROJECT_ID = p_project_ids(i) AND
834 accum.NAMED_ROLE = NVL(tmp4.NAMED_ROLE, 'PJI$NULL') AND -- Bug 8294762
835 accum.RECVR_PERIOD_ID = time.CAL_PERIOD_ID AND
836 /*Added 'G' in below decode for workplan progress */
837 accum.RECVR_PERIOD_TYPE = decode(l_calendar_type(i) , 'P', 'PA', 'G','GL') AND
838 time.CALENDAR_ID = decode(l_calendar_type(i) , 'P', info.PA_CALENDAR_ID,
839 'G',info.GL_CALENDAR_ID) AND
840 info.ORG_ID = l_org_id(i) AND
841 time.CAL_PERIOD_ID <= l_end_period_id(i) AND
842 p_calling_context in ('P', 'W') /* added for workplan progress*/ AND
843 p_extraction_type in ('FULL','PARTIAL')
844 GROUP BY
845 /*tmp4.TXN_SOURCE_ID, Commented for workplan progress */
846 tmp4.RESOURCE_LIST_MEMBER_ID,
847 accum.PROJECT_ID,
848 p_struct_ver_ids(i),
849 DECODE(l_proj_level_flag, 'Y', 0, accum.TASK_ID) ,
850 l_calendar_type(i),
851 time.NAME,
852 -1,
853 accum.TXN_CURRENCY_CODE,
854 --OLAP
855 accum.cbs_element_id
856 --End OLAP
857
858 -- Added the following Two union all caluses to populate
859 -- data for nontime phase: Bug : 4224314
860 UNION ALL
861 /* Below select statment is added for workplan progress (periodic data) from PJI_FP_TXN_ACCUM
862 To identify those records check for period_flag ='Y'. This is for FULL and PARTIAL
863 Retrieve Task / Project Level Data for Non Time Phased Period
864 */
865 SELECT
866 min(null) SOURCE_ID,
867 tmp4.RESOURCE_LIST_MEMBER_ID RES_LIST_MEMBER_ID,
868 accum.PROJECT_ID PROJECT_ID,
869 p_struct_ver_ids(i) STRUCT_VERSION_ID,
870 DECODE(l_proj_level_flag,'Y',0,accum.TASK_ID) PROJECT_ELEMENT_ID,
871 l_calendar_type(i) CALENDAR_TYPE,
872 NULL PERIOD_NAME,
873 -1 PLAN_VERSION_ID,
874 accum.TXN_CURRENCY_CODE TXN_CURRENCY_CODE,
875 sum(accum.TXN_RAW_COST) TXN_RAW_COST,
876 sum(accum.TXN_BRDN_COST) TXN_BRDN_COST,
877 sum(accum.TXN_REVENUE) TXN_REVENUE,
878 sum(decode(tmp4.RESOURCE_CLASS_CODE,'PEOPLE',accum.TXN_RAW_COST,0)) TXN_LABOR_RAW_COST,
879 sum(decode(tmp4.RESOURCE_CLASS_CODE,'PEOPLE',accum.TXN_BRDN_COST,0)) TXN_LABOR_BRDN_COST,
880 sum(decode(tmp4.RESOURCE_CLASS_CODE,'EQUIPMENT',accum.TXN_RAW_COST,0)) TXN_EQUIP_RAW_COST,
881 sum(decode(tmp4.RESOURCE_CLASS_CODE,'EQUIPMENT',accum.TXN_BRDN_COST,0)) TXN_EQUIP_BRDN_COST,
882 sum(accum.QUANTITY) QUANTITY,
883 sum(accum.PRJ_RAW_COST) PRJ_RAW_COST,
884 sum(accum.PRJ_BRDN_COST) PRJ_BRDN_COST,
885 sum(accum.PRJ_REVENUE) PRJ_REVENUE,
886 sum(decode(tmp4.RESOURCE_CLASS_CODE,'PEOPLE',accum.PRJ_RAW_COST,0)) PRJ_LABOR_RAW_COST,
887 sum(decode(tmp4.RESOURCE_CLASS_CODE,'PEOPLE',accum.PRJ_BRDN_COST,0)) PRJ_LABOR_BRDN_COST,
888 sum(decode(tmp4.RESOURCE_CLASS_CODE,'EQUIPMENT',accum.PRJ_RAW_COST,0)) PRJ_EQUIP_RAW_COST,
889 sum(decode(tmp4.RESOURCE_CLASS_CODE,'EQUIPMENT',accum.PRJ_BRDN_COST,0)) PRJ_EQUIP_BRDN_COST,
890 sum(accum.POU_RAW_COST) POU_RAW_COST,
891 sum(accum.POU_BRDN_COST) POU_BRDN_COST,
892 sum(accum.POU_REVENUE) POU_REVENUE,
893 sum(decode(tmp4.RESOURCE_CLASS_CODE,'PEOPLE',accum.POU_RAW_COST,0)) POU_LABOR_RAW_COST,
894 sum(decode(tmp4.RESOURCE_CLASS_CODE,'PEOPLE',accum.POU_BRDN_COST,0)) POU_LABOR_BRDN_COST,
895 sum(decode(tmp4.RESOURCE_CLASS_CODE,'EQUIPMENT',accum.POU_RAW_COST,0)) POU_EQUIP_RAW_COST,
896 sum(decode(tmp4.RESOURCE_CLASS_CODE,'EQUIPMENT',accum.POU_BRDN_COST,0)) POU_EQUIP_BRDN_COST,
897 sum(decode(tmp4.RESOURCE_CLASS_CODE,'PEOPLE',accum.QUANTITY,0)) LABOR_HOURS,
898 sum(decode(tmp4.RESOURCE_CLASS_CODE,'EQUIPMENT',accum.QUANTITY,0)) EQUIPMENT_HOURS,
899 MIN('Y') PERIOD_FLAG,
900 null BASE_LABOR_HOURS,
901 null POU_LPB_RAW_COST,
902 null POU_LPB_BRDN_COST,
903 MIN(time.START_DATE) MIN_START_DATE,
904 MAX(time.END_DATE) MAX_END_DATE,
905 --OLAP
906 accum.CBS_ELEMENT_ID CBS_ELEMENT_ID
907 -- End OLAP
908 FROM
909 pa_res_list_map_tmp4 tmp4,
910 pji_fm_aggr_fin8 accum ,
911 pji_time_cal_period_v time --, pji_org_extr_info info
912 WHERE
913 tmp4.TXN_SOURCE_ID = accum.TXN_ACCUM_HEADER_ID AND
914 accum.PROJECT_ID = p_project_ids(i) AND
915 accum.NAMED_ROLE = NVL(tmp4.NAMED_ROLE, 'PJI$NULL') AND -- Bug 8294762
916 accum.RECVR_PERIOD_ID = time.CAL_PERIOD_ID AND
917 accum.RECVR_PERIOD_TYPE = 'GL' AND
918 l_calendar_type(i) = 'A' AND
919 p_calling_context in ('P', 'W') AND
920 p_extraction_type in ('FULL','PARTIAL')
921 GROUP BY
922 tmp4.RESOURCE_LIST_MEMBER_ID,
923 accum.PROJECT_ID,
924 p_struct_ver_ids(i),
925 DECODE(l_proj_level_flag, 'Y', 0, accum.TASK_ID) ,
926 l_calendar_type(i),
927 -1 ,
928 accum.TXN_CURRENCY_CODE,
929 --OLAP
930 accum.cbs_element_id
931 --End OLAP
932 );
933
934 else /* p_extraction_type ='INCREMENTAL*/
935
936 INSERT INTO pji_fm_xbs_accum_tmp1
937 (
938 SOURCE_ID, RES_LIST_MEMBER_ID, PROJECT_ID, STRUCT_VERSION_ID,
939 PROJECT_ELEMENT_ID, CALENDAR_TYPE, PERIOD_NAME, PLAN_VERSION_ID,
940 TXN_CURRENCY_CODE, TXN_RAW_COST, TXN_BRDN_COST, TXN_REVENUE,
941 TXN_LABOR_RAW_COST, TXN_LABOR_BRDN_COST, TXN_EQUIP_RAW_COST, TXN_EQUIP_BRDN_COST,
942 QUANTITY, PRJ_RAW_COST, PRJ_BRDN_COST, PRJ_REVENUE,
943 PRJ_LABOR_RAW_COST, PRJ_LABOR_BRDN_COST, PRJ_EQUIP_RAW_COST, PRJ_EQUIP_BRDN_COST,
944 POU_RAW_COST, POU_BRDN_COST, POU_REVENUE, POU_LABOR_RAW_COST,
945 POU_LABOR_BRDN_COST, POU_EQUIP_RAW_COST, POU_EQUIP_BRDN_COST, LABOR_HOURS,
946 EQUIPMENT_HOURS, PERIOD_FLAG, BASE_LABOR_HOURS, POU_LPB_RAW_COST,
947 POU_LPB_BRDN_COST, ACT_TXN_RAW_COST, ACT_TXN_BRDN_COST, ACT_TXN_LABOR_RAW_COST,
948 ACT_TXN_LABOR_BRDN_COST,ACT_TXN_EQUIP_RAW_COST, ACT_TXN_EQUIP_BRDN_COST,ACT_PRJ_RAW_COST,
949 ACT_PRJ_BRDN_COST, ACT_PRJ_LABOR_RAW_COST, ACT_PRJ_LABOR_BRDN_COST,ACT_PRJ_EQUIP_RAW_COST,
950 ACT_PRJ_EQUIP_BRDN_COST,ACT_POU_RAW_COST, ACT_POU_BRDN_COST, ACT_POU_LABOR_RAW_COST,
951 ACT_POU_LABOR_BRDN_COST,ACT_POU_EQUIP_RAW_COST, ACT_POU_EQUIP_BRDN_COST,ACT_LABOR_HRS,
952 ACT_EQUIP_HRS, MIN_START_DATE, MAX_END_DATE,
953 --OLAP
954 CBS_ELEMENT_ID
955 --End OLAP
956 )
957 SELECT /*+ NO_MERGE */ --Bug#5356978
958 SOURCE_ID, RES_LIST_MEMBER_ID, PROJECT_ID, STRUCT_VERSION_ID,
959 PROJECT_ELEMENT_ID, CALENDAR_TYPE, PERIOD_NAME, PLAN_VERSION_ID,
960 TXN_CURRENCY_CODE, TXN_RAW_COST, TXN_BRDN_COST, TXN_REVENUE,
961 TXN_LABOR_RAW_COST, TXN_LABOR_BRDN_COST, TXN_EQUIP_RAW_COST, TXN_EQUIP_BRDN_COST,
962 QUANTITY, PRJ_RAW_COST, PRJ_BRDN_COST, PRJ_REVENUE,
963 PRJ_LABOR_RAW_COST, PRJ_LABOR_BRDN_COST, PRJ_EQUIP_RAW_COST, PRJ_EQUIP_BRDN_COST,
964 POU_RAW_COST, POU_BRDN_COST, POU_REVENUE, POU_LABOR_RAW_COST,
965 POU_LABOR_BRDN_COST, POU_EQUIP_RAW_COST, POU_EQUIP_BRDN_COST, LABOR_HOURS,
966 EQUIPMENT_HOURS, PERIOD_FLAG, BASE_LABOR_HOURS, POU_LPB_RAW_COST,
967 POU_LPB_BRDN_COST, TXN_RAW_COST, TXN_BRDN_COST, TXN_LABOR_RAW_COST,
968 TXN_LABOR_BRDN_COST, TXN_EQUIP_RAW_COST, TXN_EQUIP_BRDN_COST, PRJ_RAW_COST,
969 PRJ_BRDN_COST, PRJ_LABOR_RAW_COST, PRJ_LABOR_BRDN_COST, PRJ_EQUIP_RAW_COST,
970 PRJ_EQUIP_BRDN_COST, POU_RAW_COST, POU_BRDN_COST, POU_LABOR_RAW_COST,
971 POU_LABOR_BRDN_COST, POU_EQUIP_RAW_COST, POU_EQUIP_BRDN_COST, LABOR_HOURS,
972 EQUIPMENT_HOURS, MIN_START_DATE, MAX_END_DATE,
973 --OLAP
974 CBS_ELEMENT_ID
975 --End OLAP
976 FROM
977 (
978 /* Below select statment is added for workplan progress (periodic data) from PJI_FM_AGGR_FIN7
979 To identify those records check for period_flag ='Y'. This is for INCREMENTAL
980 Retrieve Task / Project Level Data for PA/ GL Period
981 */
982 SELECT /*+ ordered index (fin PJI_FM_AGGR_FIN8_U1) */ /* Added for bug 11843459 */
983 /* tmp4.TXN_SOURCE_ID, Commented for workplan progress */
984 min(null) SOURCE_ID,
985 tmp4.RESOURCE_LIST_MEMBER_ID RES_LIST_MEMBER_ID,
986 fin.PROJECT_ID PROJECT_ID,
987 p_struct_ver_ids(i) STRUCT_VERSION_ID,
988 DECODE(l_proj_level_flag,'Y',0,fin.TASK_ID) PROJECT_ELEMENT_ID,
989 l_calendar_type(i) CALENDAR_TYPE,
990 time.NAME PERIOD_NAME,
991 -1 PLAN_VERSION_ID,
992 fin.TXN_CURRENCY_CODE TXN_CURRENCY_CODE,
993 sum(fin.TXN_RAW_COST) TXN_RAW_COST,
994 sum(fin.TXN_BRDN_COST) TXN_BRDN_COST,
995 sum(fin.TXN_REVENUE) TXN_REVENUE,
996 sum(decode(tmp4.RESOURCE_CLASS_CODE,'PEOPLE',fin.TXN_RAW_COST,0)) TXN_LABOR_RAW_COST,
997 sum(decode(tmp4.RESOURCE_CLASS_CODE,'PEOPLE',fin.TXN_BRDN_COST,0)) TXN_LABOR_BRDN_COST,
998 sum(decode(tmp4.RESOURCE_CLASS_CODE,'EQUIPMENT',fin.TXN_RAW_COST,0)) TXN_EQUIP_RAW_COST,
999 sum(decode(tmp4.RESOURCE_CLASS_CODE,'EQUIPMENT',fin.TXN_BRDN_COST,0)) TXN_EQUIP_BRDN_COST,
1000 sum(fin.QUANTITY) QUANTITY,
1001 sum(fin.PRJ_RAW_COST) PRJ_RAW_COST,
1002 sum(fin.PRJ_BRDN_COST) PRJ_BRDN_COST,
1003 sum(fin.PRJ_REVENUE) PRJ_REVENUE,
1004 sum(decode(tmp4.RESOURCE_CLASS_CODE,'PEOPLE',fin.PRJ_RAW_COST,0)) PRJ_LABOR_RAW_COST,
1005 sum(decode(tmp4.RESOURCE_CLASS_CODE,'PEOPLE',fin.PRJ_BRDN_COST,0)) PRJ_LABOR_BRDN_COST,
1006 sum(decode(tmp4.RESOURCE_CLASS_CODE,'EQUIPMENT',fin.PRJ_RAW_COST,0)) PRJ_EQUIP_RAW_COST,
1007 sum(decode(tmp4.RESOURCE_CLASS_CODE,'EQUIPMENT',fin.PRJ_BRDN_COST,0)) PRJ_EQUIP_BRDN_COST,
1008 sum(fin.POU_RAW_COST) POU_RAW_COST,
1009 sum(fin.POU_BRDN_COST) POU_BRDN_COST,
1010 sum(fin.POU_REVENUE) POU_REVENUE,
1011 sum(decode(tmp4.RESOURCE_CLASS_CODE,'PEOPLE',fin.POU_RAW_COST,0)) POU_LABOR_RAW_COST,
1012 sum(decode(tmp4.RESOURCE_CLASS_CODE,'PEOPLE',fin.POU_BRDN_COST,0)) POU_LABOR_BRDN_COST,
1013 sum(decode(tmp4.RESOURCE_CLASS_CODE,'EQUIPMENT',fin.POU_RAW_COST,0)) POU_EQUIP_RAW_COST,
1014 sum(decode(tmp4.RESOURCE_CLASS_CODE,'EQUIPMENT',fin.POU_BRDN_COST,0)) POU_EQUIP_BRDN_COST,
1015 sum(decode(tmp4.RESOURCE_CLASS_CODE,'PEOPLE',fin.QUANTITY,0)) LABOR_HOURS,
1016 sum(decode(tmp4.RESOURCE_CLASS_CODE,'EQUIPMENT',fin.QUANTITY,0)) EQUIPMENT_HOURS,
1017 MIN('Y') PERIOD_FLAG,
1018 null BASE_LABOR_HOURS,
1019 null POU_LPB_RAW_COST,
1020 null POU_LPB_BRDN_COST,
1021 MIN(time.START_DATE) MIN_START_DATE,
1022 MAX(time.END_DATE) MAX_END_DATE,
1023 --OLAP
1024 fin.CBS_ELEMENT_ID CBS_ELEMENT_ID
1025 -- End OLAP
1026 FROM
1027 pa_res_list_map_tmp4 tmp4,
1028 pji_fm_aggr_fin8 fin,
1029 pji_time_cal_period_v time,
1030 pji_org_extr_info info
1031 WHERE
1032 tmp4.TXN_SOURCE_ID = fin.TXN_ACCUM_HEADER_ID AND
1033 fin.PROJECT_ID = p_project_ids(i) AND
1034 fin.NAMED_ROLE = NVL(tmp4.NAMED_ROLE, 'PJI$NULL') AND -- Bug 8294762
1035 fin.RECVR_PERIOD_ID = time.CAL_PERIOD_ID AND
1036 /*Added 'G' in below decode for workplan progress */
1037 fin.RECVR_PERIOD_TYPE = decode(l_calendar_type(i) , 'P', 'PA', 'G','GL') AND
1038 time.CALENDAR_ID = decode(l_calendar_type(i) , 'P', info.PA_CALENDAR_ID,
1039 'G',info.GL_CALENDAR_ID) AND
1040 info.ORG_ID = l_org_id(i) AND
1041 time.CAL_PERIOD_ID <= l_end_period_id(i) AND
1042 p_calling_context in ('P', 'W') /* added for workplan progress*/ AND
1043 p_extraction_type = 'INCREMENTAL'
1044 GROUP BY
1045 /*tmp4.TXN_SOURCE_ID, Commented for workplan progress */
1046 tmp4.RESOURCE_LIST_MEMBER_ID,
1047 fin.PROJECT_ID,
1048 p_struct_ver_ids(i),
1049 DECODE(l_proj_level_flag, 'Y', 0, fin.TASK_ID),
1050 l_calendar_type(i),
1051 time.NAME,
1052 -1,
1053 fin.TXN_CURRENCY_CODE,
1054 --OLAP
1055 fin.CBS_ELEMENT_ID
1056 -- End OLAP
1057
1058 -- Added the following Two union all caluses to populate
1059 -- data for nontime phase: Bug : 4224314
1060 UNION ALL
1061 /* Below select statment is added for workplan progress (periodic data) from PJI_FP_TXN_ACCUM
1062 To identify those records check for period_flag ='Y'. This is for FULL and PARTIAL
1063 Retrieve Task / Project Level Data for Non Time Phased Period
1064 */
1065 SELECT /*+ ordered index (fin PJI_FM_AGGR_FIN8_U1) */ /* Added for bug 11843459 */
1066 min(null) SOURCE_ID,
1067 tmp4.RESOURCE_LIST_MEMBER_ID RES_LIST_MEMBER_ID,
1068 fin.PROJECT_ID PROJECT_ID,
1069 p_struct_ver_ids(i) STRUCT_VERSION_ID,
1070 DECODE(l_proj_level_flag,'Y',0,fin.TASK_ID) PROJECT_ELEMENT_ID,
1071 l_calendar_type(i) CALENDAR_TYPE,
1072 NULL PERIOD_NAME,
1073 -1 PLAN_VERSION_ID,
1074 fin.TXN_CURRENCY_CODE TXN_CURRENCY_CODE,
1075 sum(fin.TXN_RAW_COST) TXN_RAW_COST,
1076 sum(fin.TXN_BRDN_COST) TXN_BRDN_COST,
1077 sum(fin.TXN_REVENUE) TXN_REVENUE,
1078 sum(decode(tmp4.RESOURCE_CLASS_CODE,'PEOPLE',fin.TXN_RAW_COST,0)) TXN_LABOR_RAW_COST,
1079 sum(decode(tmp4.RESOURCE_CLASS_CODE,'PEOPLE',fin.TXN_BRDN_COST,0)) TXN_LABOR_BRDN_COST,
1080 sum(decode(tmp4.RESOURCE_CLASS_CODE,'EQUIPMENT',fin.TXN_RAW_COST,0)) TXN_EQUIP_RAW_COST,
1081 sum(decode(tmp4.RESOURCE_CLASS_CODE,'EQUIPMENT',fin.TXN_BRDN_COST,0)) TXN_EQUIP_BRDN_COST,
1082 sum(fin.QUANTITY) QUANTITY,
1083 sum(fin.PRJ_RAW_COST) PRJ_RAW_COST,
1084 sum(fin.PRJ_BRDN_COST) PRJ_BRDN_COST,
1085 sum(fin.PRJ_REVENUE) PRJ_REVENUE,
1086 sum(decode(tmp4.RESOURCE_CLASS_CODE,'PEOPLE',fin.PRJ_RAW_COST,0)) PRJ_LABOR_RAW_COST,
1087 sum(decode(tmp4.RESOURCE_CLASS_CODE,'PEOPLE',fin.PRJ_BRDN_COST,0)) PRJ_LABOR_BRDN_COST,
1088 sum(decode(tmp4.RESOURCE_CLASS_CODE,'EQUIPMENT',fin.PRJ_RAW_COST,0)) PRJ_EQUIP_RAW_COST,
1089 sum(decode(tmp4.RESOURCE_CLASS_CODE,'EQUIPMENT',fin.PRJ_BRDN_COST,0)) PRJ_EQUIP_BRDN_COST,
1090 sum(fin.POU_RAW_COST) POU_RAW_COST,
1091 sum(fin.POU_BRDN_COST) POU_BRDN_COST,
1092 sum(fin.POU_REVENUE) POU_REVENUE,
1093 sum(decode(tmp4.RESOURCE_CLASS_CODE,'PEOPLE',fin.POU_RAW_COST,0)) POU_LABOR_RAW_COST,
1094 sum(decode(tmp4.RESOURCE_CLASS_CODE,'PEOPLE',fin.POU_BRDN_COST,0)) POU_LABOR_BRDN_COST,
1095 sum(decode(tmp4.RESOURCE_CLASS_CODE,'EQUIPMENT',fin.POU_RAW_COST,0)) POU_EQUIP_RAW_COST,
1096 sum(decode(tmp4.RESOURCE_CLASS_CODE,'EQUIPMENT',fin.POU_BRDN_COST,0)) POU_EQUIP_BRDN_COST,
1097 sum(decode(tmp4.RESOURCE_CLASS_CODE,'PEOPLE',fin.QUANTITY,0)) LABOR_HOURS,
1098 sum(decode(tmp4.RESOURCE_CLASS_CODE,'EQUIPMENT',fin.QUANTITY,0)) EQUIPMENT_HOURS,
1099 MIN('Y') PERIOD_FLAG,
1100 null BASE_LABOR_HOURS,
1101 null POU_LPB_RAW_COST,
1102 null POU_LPB_BRDN_COST,
1103 MIN(time.START_DATE) MIN_START_DATE,
1104 MAX(time.END_DATE) MAX_END_DATE,
1105 --OLAP
1106 fin.CBS_ELEMENT_ID
1107 -- End OLAP
1108 FROM
1109 pa_res_list_map_tmp4 tmp4,
1110 pji_fm_aggr_fin8 fin ,
1111 pji_time_cal_period_v time --, pji_org_extr_info info
1112 WHERE
1113 tmp4.TXN_SOURCE_ID = fin.TXN_ACCUM_HEADER_ID AND
1114 fin.PROJECT_ID = p_project_ids(i) AND
1115 fin.NAMED_ROLE = NVL(tmp4.NAMED_ROLE, 'PJI$NULL') AND -- Bug 8294762
1116 fin.RECVR_PERIOD_ID = time.CAL_PERIOD_ID AND
1117 fin.RECVR_PERIOD_TYPE = 'GL' and
1118 l_calendar_type(i) = 'A' AND
1119 p_calling_context in ('P', 'W') AND
1120 p_extraction_type in ('INCREMENTAL')
1121 GROUP BY
1122 tmp4.RESOURCE_LIST_MEMBER_ID,
1123 fin.PROJECT_ID,
1124 p_struct_ver_ids(i),
1125 DECODE(l_proj_level_flag, 'Y', 0, fin.TASK_ID),
1126 l_calendar_type(i),
1127 -1 ,
1128 fin.TXN_CURRENCY_CODE,
1129 --OLAP
1130 fin.CBS_ELEMENT_ID
1131 --End OLAP
1132 );
1133 END IF;/* IF p_extraction_type <>'INCREMENTAL' THEN*/
1134 ELSE /* nvl(p_calling_context,'F') NOT IN ('P','W') */
1135
1136 INSERT INTO pji_fm_xbs_accum_tmp1
1137 (
1138 SOURCE_ID, RES_LIST_MEMBER_ID, PROJECT_ID, STRUCT_VERSION_ID,
1139 PROJECT_ELEMENT_ID, CALENDAR_TYPE, PERIOD_NAME, PLAN_VERSION_ID,
1140 TXN_CURRENCY_CODE, TXN_RAW_COST, TXN_BRDN_COST, TXN_REVENUE,
1141 TXN_LABOR_RAW_COST, TXN_LABOR_BRDN_COST, TXN_EQUIP_RAW_COST, TXN_EQUIP_BRDN_COST,
1142 QUANTITY, PRJ_RAW_COST, PRJ_BRDN_COST, PRJ_REVENUE,
1143 PRJ_LABOR_RAW_COST, PRJ_LABOR_BRDN_COST, PRJ_EQUIP_RAW_COST, PRJ_EQUIP_BRDN_COST,
1144 POU_RAW_COST, POU_BRDN_COST, POU_REVENUE, POU_LABOR_RAW_COST,
1145 POU_LABOR_BRDN_COST, POU_EQUIP_RAW_COST, POU_EQUIP_BRDN_COST, LABOR_HOURS,
1146 EQUIPMENT_HOURS, PERIOD_FLAG, BASE_LABOR_HOURS, POU_LPB_RAW_COST,
1147 POU_LPB_BRDN_COST, ACT_TXN_RAW_COST, ACT_TXN_BRDN_COST, ACT_TXN_LABOR_RAW_COST,
1148 ACT_TXN_LABOR_BRDN_COST,ACT_TXN_EQUIP_RAW_COST, ACT_TXN_EQUIP_BRDN_COST,ACT_PRJ_RAW_COST,
1149 ACT_PRJ_BRDN_COST, ACT_PRJ_LABOR_RAW_COST, ACT_PRJ_LABOR_BRDN_COST,ACT_PRJ_EQUIP_RAW_COST,
1150 ACT_PRJ_EQUIP_BRDN_COST,ACT_POU_RAW_COST, ACT_POU_BRDN_COST, ACT_POU_LABOR_RAW_COST,
1151 ACT_POU_LABOR_BRDN_COST,ACT_POU_EQUIP_RAW_COST, ACT_POU_EQUIP_BRDN_COST,ACT_LABOR_HRS,
1152 ACT_EQUIP_HRS, MIN_START_DATE, MAX_END_DATE,
1153 -- OLAP
1154 CBS_ELEMENT_ID
1155 -- End OLAP
1156 )
1157 SELECT
1158 SOURCE_ID, RES_LIST_MEMBER_ID, PROJECT_ID, STRUCT_VERSION_ID,
1159 PROJECT_ELEMENT_ID, CALENDAR_TYPE, PERIOD_NAME, PLAN_VERSION_ID,
1160 TXN_CURRENCY_CODE, TXN_RAW_COST, TXN_BRDN_COST, TXN_REVENUE,
1161 TXN_LABOR_RAW_COST, TXN_LABOR_BRDN_COST, TXN_EQUIP_RAW_COST, TXN_EQUIP_BRDN_COST,
1162 QUANTITY, PRJ_RAW_COST, PRJ_BRDN_COST, PRJ_REVENUE,
1163 PRJ_LABOR_RAW_COST, PRJ_LABOR_BRDN_COST, PRJ_EQUIP_RAW_COST, PRJ_EQUIP_BRDN_COST,
1164 POU_RAW_COST, POU_BRDN_COST, POU_REVENUE, POU_LABOR_RAW_COST,
1165 POU_LABOR_BRDN_COST, POU_EQUIP_RAW_COST, POU_EQUIP_BRDN_COST, LABOR_HOURS,
1166 EQUIPMENT_HOURS, PERIOD_FLAG, BASE_LABOR_HOURS, POU_LPB_RAW_COST,
1167 POU_LPB_BRDN_COST, TXN_RAW_COST, TXN_BRDN_COST, TXN_LABOR_RAW_COST,
1168 TXN_LABOR_BRDN_COST, TXN_EQUIP_RAW_COST, TXN_EQUIP_BRDN_COST, PRJ_RAW_COST,
1169 PRJ_BRDN_COST, PRJ_LABOR_RAW_COST, PRJ_LABOR_BRDN_COST, PRJ_EQUIP_RAW_COST,
1170 PRJ_EQUIP_BRDN_COST, POU_RAW_COST, POU_BRDN_COST, POU_LABOR_RAW_COST,
1171 POU_LABOR_BRDN_COST, POU_EQUIP_RAW_COST, POU_EQUIP_BRDN_COST, LABOR_HOURS,
1172 EQUIPMENT_HOURS, MIN_START_DATE, MAX_END_DATE,
1173 --OLAP
1174 CBS_ELEMENT_ID
1175 -- End OLAP
1176 FROM
1177 (
1178 SELECT
1179 MIN(SOURCE_ID) SOURCE_ID,
1180 RES_LIST_MEMBER_ID RES_LIST_MEMBER_ID,
1181 PROJECT_ID PROJECT_ID,
1182 STRUCT_VERSION_ID STRUCT_VERSION_ID,
1183 DECODE(l_proj_level_flag,'Y',0,PROJECT_ELEMENT_ID) PROJECT_ELEMENT_ID ,
1184 CALENDAR_TYPE CALENDAR_TYPE,
1185 PERIOD_NAME PERIOD_NAME,
1186 PLAN_VERSION_ID PLAN_VERSION_ID,
1187 TXN_CURRENCY_CODE TXN_CURRENCY_CODE,
1188 SUM(TXN_RAW_COST) TXN_RAW_COST,
1189 SUM(TXN_BRDN_COST) TXN_BRDN_COST,
1190 SUM(TXN_REVENUE) TXN_REVENUE,
1191 SUM(TXN_LABOR_RAW_COST) TXN_LABOR_RAW_COST,
1192 SUM(TXN_LABOR_BRDN_COST) TXN_LABOR_BRDN_COST,
1193 SUM(TXN_EQUIP_RAW_COST) TXN_EQUIP_RAW_COST,
1194 SUM(TXN_EQUIP_BRDN_COST) TXN_EQUIP_BRDN_COST,
1195 SUM(QUANTITY) QUANTITY,
1196 SUM(PRJ_RAW_COST) PRJ_RAW_COST,
1197 SUM(PRJ_BRDN_COST) PRJ_BRDN_COST,
1198 SUM(PRJ_REVENUE) PRJ_REVENUE,
1199 SUM(PRJ_LABOR_RAW_COST) PRJ_LABOR_RAW_COST,
1200 SUM(PRJ_LABOR_BRDN_COST) PRJ_LABOR_BRDN_COST,
1201 SUM(PRJ_EQUIP_RAW_COST) PRJ_EQUIP_RAW_COST,
1202 SUM(PRJ_EQUIP_BRDN_COST) PRJ_EQUIP_BRDN_COST,
1203 SUM(POU_RAW_COST) POU_RAW_COST,
1204 SUM(POU_BRDN_COST) POU_BRDN_COST,
1205 SUM(POU_REVENUE) POU_REVENUE,
1206 SUM(POU_LABOR_RAW_COST) POU_LABOR_RAW_COST,
1207 SUM(POU_LABOR_BRDN_COST) POU_LABOR_BRDN_COST,
1208 SUM(POU_EQUIP_RAW_COST) POU_EQUIP_RAW_COST,
1209 SUM(POU_EQUIP_BRDN_COST) POU_EQUIP_BRDN_COST,
1210 SUM(LABOR_HOURS) LABOR_HOURS,
1211 SUM(EQUIP_HOURS) EQUIPMENT_HOURS,
1212 MIN(PERIOD_FLAG) PERIOD_FLAG,
1213 SUM(INCR_QUANTITY) BASE_LABOR_HOURS,
1214 SUM(INCR_POU_RAW_COST) POU_LPB_RAW_COST,
1215 SUM(INCR_POU_BRDN_COST) POU_LPB_BRDN_COST,
1216 MIN(START_DATE) MIN_START_DATE,
1217 MAX(END_DATE) MAX_END_DATE,
1218 --OLAP
1219 CBS_ELEMENT_ID
1220 --End OLAP
1221 FROM
1222 (
1223 SELECT --DISTINCT /* Added distinct clause for Bug 9691708 */ -- Bug 15843264
1224 --Retreives actuals data by resource list as ITD amounts for TIME PHASED Calendar
1225 --from pji_fp_txn_Accum
1226 /*tmp4.TXN_SOURCE_ID, Commented for workplan progress */
1227 (null) SOURCE_ID,
1228 tmp4.RESOURCE_LIST_MEMBER_ID RES_LIST_MEMBER_ID,
1229 accum.PROJECT_ID PROJECT_ID,
1230 p_struct_ver_ids(i) STRUCT_VERSION_ID,
1231 accum.TASK_ID PROJECT_ELEMENT_ID,
1232 l_calendar_type(i) CALENDAR_TYPE,
1233 decode(l_periodic_flag,'Y',time.NAME,null) PERIOD_NAME, /* Added for workplan progress */
1234 -1 PLAN_VERSION_ID,
1235 accum.TXN_CURRENCY_CODE TXN_CURRENCY_CODE,
1236 accum.TXN_RAW_COST TXN_RAW_COST,
1237 accum.TXN_BRDN_COST TXN_BRDN_COST,
1238 accum.TXN_REVENUE TXN_REVENUE,
1239 decode(tmp4.RESOURCE_CLASS_CODE, 'PEOPLE', accum.TXN_RAW_COST, 0) TXN_LABOR_RAW_COST,
1240 decode(tmp4.RESOURCE_CLASS_CODE, 'PEOPLE', accum.TXN_BRDN_COST, 0) TXN_LABOR_BRDN_COST,
1241 decode(tmp4.RESOURCE_CLASS_CODE, 'EQUIPMENT', accum.TXN_RAW_COST, 0) TXN_EQUIP_RAW_COST,
1242 decode(tmp4.RESOURCE_CLASS_CODE, 'EQUIPMENT', accum.TXN_BRDN_COST, 0) TXN_EQUIP_BRDN_COST,
1243 accum.QUANTITY QUANTITY,
1244 accum.PRJ_RAW_COST PRJ_RAW_COST,
1245 accum.PRJ_BRDN_COST PRJ_BRDN_COST,
1246 accum.PRJ_REVENUE PRJ_REVENUE,
1247 decode(tmp4.RESOURCE_CLASS_CODE, 'PEOPLE', accum.PRJ_RAW_COST, 0) PRJ_LABOR_RAW_COST,
1248 decode(tmp4.RESOURCE_CLASS_CODE, 'PEOPLE', accum.PRJ_BRDN_COST, 0) PRJ_LABOR_BRDN_COST,
1249 decode(tmp4.RESOURCE_CLASS_CODE, 'EQUIPMENT', accum.PRJ_RAW_COST, 0) PRJ_EQUIP_RAW_COST,
1250 decode(tmp4.RESOURCE_CLASS_CODE, 'EQUIPMENT', accum.PRJ_BRDN_COST, 0) PRJ_EQUIP_BRDN_COST,
1251 accum.POU_RAW_COST POU_RAW_COST,
1252 accum.POU_BRDN_COST POU_BRDN_COST,
1253 accum.POU_REVENUE POU_REVENUE,
1254 decode(tmp4.RESOURCE_CLASS_CODE, 'PEOPLE', accum.POU_RAW_COST, 0) POU_LABOR_RAW_COST,
1255 decode(tmp4.RESOURCE_CLASS_CODE, 'PEOPLE', accum.POU_BRDN_COST, 0) POU_LABOR_BRDN_COST,
1256 decode(tmp4.RESOURCE_CLASS_CODE, 'EQUIPMENT', accum.POU_RAW_COST, 0) POU_EQUIP_RAW_COST,
1257 decode(tmp4.RESOURCE_CLASS_CODE, 'EQUIPMENT', accum.POU_BRDN_COST, 0) POU_EQUIP_BRDN_COST,
1258 decode(tmp4.RESOURCE_CLASS_CODE, 'PEOPLE', accum.QUANTITY, 0) LABOR_HOURS,
1259 decode(tmp4.RESOURCE_CLASS_CODE, 'EQUIPMENT', accum.QUANTITY, 0) EQUIP_HOURS,
1260 null PERIOD_FLAG,
1261 null INCR_QUANTITY,
1262 null INCR_POU_RAW_COST,
1263 null INCR_POU_BRDN_COST,
1264 time.START_DATE,
1265 time.END_DATE,
1266 --OLAP
1267 accum.CBS_ELEMENT_ID
1268 --End OLAP
1269 FROM
1270 pa_res_list_map_tmp4 tmp4,
1271 pji_fp_txn_accum accum,
1272 pji_time_cal_period_v time,
1273 pji_org_extr_info info
1274 WHERE
1275 tmp4.TXN_SOURCE_ID = accum.TXN_ACCUM_HEADER_ID AND
1276 accum.PROJECT_ID = p_project_ids(i) AND
1277 accum.NAMED_ROLE = NVL(tmp4.NAMED_ROLE, 'PJI$NULL') AND -- Bug 8294762
1278 accum.RECVR_PERIOD_ID = time.CAL_PERIOD_ID AND
1279 /*Added 'G' in below decode for workplan progress */
1280 accum.RECVR_PERIOD_TYPE = decode(l_calendar_type(i), 'P', 'PA', 'G','GL') AND
1281 time.CALENDAR_ID = decode(l_calendar_type(i) , 'P', info.PA_CALENDAR_ID,
1282 'G',info.GL_CALENDAR_ID) AND
1283 info.ORG_ID = l_org_id(i) AND
1284 time.CAL_PERIOD_ID <= l_end_period_id(i) AND
1285 nvl(p_calling_context,'F') not in ('P', 'W')
1286 )
1287 GROUP BY
1288 RES_LIST_MEMBER_ID,
1289 PROJECT_ID,
1290 STRUCT_VERSION_ID,
1291 DECODE(l_proj_level_flag, 'Y', 0, PROJECT_ELEMENT_ID) ,
1292 CALENDAR_TYPE,
1293 PERIOD_NAME,
1294 PLAN_VERSION_ID,
1295 TXN_CURRENCY_CODE,
1296 --OLAP
1297 CBS_ELEMENT_ID
1298 --End OLAP
1299
1300 UNION ALL
1301
1302 SELECT
1303 MIN(SOURCE_ID) SOURCE_ID,
1304 RES_LIST_MEMBER_ID RES_LIST_MEMBER_ID,
1305 PROJECT_ID PROJECT_ID,
1306 STRUCT_VERSION_ID STRUCT_VERSION_ID,
1307 DECODE(l_proj_level_flag,'Y',0,PROJECT_ELEMENT_ID) PROJECT_ELEMENT_ID,
1308 CALENDAR_TYPE CALENDAR_TYPE,
1309 PERIOD_NAME PERIOD_NAME,
1310 PLAN_VERSION_ID PLAN_VERSION_ID,
1311 TXN_CURRENCY_CODE TXN_CURRENCY_CODE,
1312 SUM(TXN_RAW_COST) TXN_RAW_COST,
1313 SUM(TXN_BRDN_COST) TXN_BRDN_COST,
1314 SUM(TXN_REVENUE) TXN_REVENUE,
1315 SUM(TXN_LABOR_RAW_COST) TXN_LABOR_RAW_COST,
1316 SUM(TXN_LABOR_BRDN_COST) TXN_LABOR_BRDN_COST,
1317 SUM(TXN_EQUIP_RAW_COST) TXN_EQUIP_RAW_COST,
1318 SUM(TXN_EQUIP_BRDN_COST) TXN_EQUIP_BRDN_COST,
1319 SUM(QUANTITY) QUANTITY,
1320 SUM(PRJ_RAW_COST) PRJ_RAW_COST,
1321 SUM(PRJ_BRDN_COST) PRJ_BRDN_COST,
1322 SUM(PRJ_REVENUE) PRJ_REVENUE,
1323 SUM(PRJ_LABOR_RAW_COST) PRJ_LABOR_RAW_COST,
1324 SUM(PRJ_LABOR_BRDN_COST) PRJ_LABOR_BRDN_COST,
1325 SUM(PRJ_EQUIP_RAW_COST) PRJ_EQUIP_RAW_COST,
1326 SUM(PRJ_EQUIP_BRDN_COST) PRJ_EQUIP_BRDN_COST,
1327 SUM(POU_RAW_COST) POU_RAW_COST,
1328 SUM(POU_BRDN_COST) POU_BRDN_COST,
1329 SUM(POU_REVENUE) POU_REVENUE,
1330 SUM(POU_LABOR_RAW_COST) POU_LABOR_RAW_COST,
1331 SUM(POU_LABOR_BRDN_COST) POU_LABOR_BRDN_COST,
1332 SUM(POU_EQUIP_RAW_COST) POU_EQUIP_RAW_COST,
1333 SUM(POU_EQUIP_BRDN_COST) POU_EQUIP_BRDN_COST,
1334 SUM(LABOR_HOURS) LABOR_HOURS,
1335 SUM(EQUIP_HOURS) EQUIPMENT_HOURS,
1336 MIN(PERIOD_FLAG) PERIOD_FLAG,
1337 SUM(INCR_QUANTITY) BASE_LABOR_HOURS,
1338 SUM(INCR_POU_RAW_COST) POU_LPB_RAW_COST,
1339 SUM(INCR_POU_BRDN_COST) POU_LPB_BRDN_COST,
1340 MIN(START_DATE) MIN_START_DATE,
1341 MAX(END_DATE) MAX_END_DATE,
1342 CBS_ELEMENT_ID
1343 FROM
1344 (
1345 SELECT --Retreives actuals data by resource list as ITD amounts for NON-TIME PHASED Calendar
1346 --from pji_fp_txn_Accum
1347 /*tmp4.TXN_SOURCE_ID, Commented for workplan progress */
1348 (null) SOURCE_ID,
1349 tmp4.RESOURCE_LIST_MEMBER_ID RES_LIST_MEMBER_ID,
1350 accum.PROJECT_ID PROJECT_ID,
1351 p_struct_ver_ids(i) STRUCT_VERSION_ID,
1352 accum.TASK_ID PROJECT_ELEMENT_ID,
1353 l_calendar_type(i) CALENDAR_TYPE,
1354 NULL PERIOD_NAME, /* Added for workplan progress */
1355 -1 PLAN_VERSION_ID,
1356 accum.TXN_CURRENCY_CODE TXN_CURRENCY_CODE,
1357 accum.TXN_RAW_COST TXN_RAW_COST,
1358 accum.TXN_BRDN_COST TXN_BRDN_COST,
1359 accum.TXN_REVENUE TXN_REVENUE,
1360 decode(tmp4.RESOURCE_CLASS_CODE, 'PEOPLE', accum.TXN_RAW_COST, 0) TXN_LABOR_RAW_COST,
1361 decode(tmp4.RESOURCE_CLASS_CODE, 'PEOPLE', accum.TXN_BRDN_COST, 0) TXN_LABOR_BRDN_COST,
1362 decode(tmp4.RESOURCE_CLASS_CODE, 'EQUIPMENT', accum.TXN_RAW_COST, 0) TXN_EQUIP_RAW_COST,
1363 decode(tmp4.RESOURCE_CLASS_CODE, 'EQUIPMENT', accum.TXN_BRDN_COST, 0) TXN_EQUIP_BRDN_COST,
1364 accum.QUANTITY QUANTITY,
1365 accum.PRJ_RAW_COST PRJ_RAW_COST,
1366 accum.PRJ_BRDN_COST PRJ_BRDN_COST,
1367 accum.PRJ_REVENUE PRJ_REVENUE,
1368 decode(tmp4.RESOURCE_CLASS_CODE, 'PEOPLE', accum.PRJ_RAW_COST, 0) PRJ_LABOR_RAW_COST,
1369 decode(tmp4.RESOURCE_CLASS_CODE, 'PEOPLE', accum.PRJ_BRDN_COST, 0) PRJ_LABOR_BRDN_COST,
1370 decode(tmp4.RESOURCE_CLASS_CODE, 'EQUIPMENT', accum.PRJ_RAW_COST, 0) PRJ_EQUIP_RAW_COST,
1371 decode(tmp4.RESOURCE_CLASS_CODE, 'EQUIPMENT', accum.PRJ_BRDN_COST, 0) PRJ_EQUIP_BRDN_COST,
1372 accum.POU_RAW_COST POU_RAW_COST,
1373 accum.POU_BRDN_COST POU_BRDN_COST,
1374 accum.POU_REVENUE POU_REVENUE,
1375 decode(tmp4.RESOURCE_CLASS_CODE, 'PEOPLE', accum.POU_RAW_COST, 0) POU_LABOR_RAW_COST,
1376 decode(tmp4.RESOURCE_CLASS_CODE, 'PEOPLE', accum.POU_BRDN_COST, 0) POU_LABOR_BRDN_COST,
1377 decode(tmp4.RESOURCE_CLASS_CODE, 'EQUIPMENT', accum.POU_RAW_COST, 0) POU_EQUIP_RAW_COST,
1378 decode(tmp4.RESOURCE_CLASS_CODE, 'EQUIPMENT', accum.POU_BRDN_COST, 0) POU_EQUIP_BRDN_COST,
1379 decode(tmp4.RESOURCE_CLASS_CODE, 'PEOPLE', accum.QUANTITY, 0) LABOR_HOURS,
1380 decode(tmp4.RESOURCE_CLASS_CODE, 'EQUIPMENT', accum.QUANTITY, 0) EQUIP_HOURS,
1381 null PERIOD_FLAG,
1382 null INCR_QUANTITY,
1383 null INCR_POU_RAW_COST,
1384 null INCR_POU_BRDN_COST,
1385 time.START_DATE,
1386 time.END_DATE,
1387 --OLAP
1388 accum.CBS_ELEMENT_ID
1389 -- End OLAP
1390 FROM
1391 pa_res_list_map_tmp4 tmp4,
1392 pji_fp_txn_accum accum,
1393 pji_time_cal_period_v time
1394 WHERE
1395 tmp4.TXN_SOURCE_ID = accum.TXN_ACCUM_HEADER_ID AND
1396 accum.PROJECT_ID = p_project_ids(i) AND
1397 accum.NAMED_ROLE = NVL(tmp4.NAMED_ROLE, 'PJI$NULL') AND -- Bug 8294762
1398 l_calendar_type(i) = 'A' AND
1399 accum.RECVR_PERIOD_ID = time.CAL_PERIOD_ID AND
1400 accum.RECVR_PERIOD_TYPE = 'GL' AND
1401 nvl(p_calling_context,'F') not in ('P', 'W')
1402 )
1403 GROUP BY
1404 RES_LIST_MEMBER_ID,
1405 PROJECT_ID,
1406 STRUCT_VERSION_ID,
1407 DECODE(l_proj_level_flag, 'Y', 0, PROJECT_ELEMENT_ID) ,
1408 CALENDAR_TYPE,
1409 PERIOD_NAME,
1410 PLAN_VERSION_ID,
1411 TXN_CURRENCY_CODE,
1412 CBS_ELEMENT_ID
1413 );
1414 END IF;/*p_calling_context*/
1415
1416 print_time ( ' get_summarized_data 0004.4 ' ) ;
1417
1418 delete from pa_res_list_map_tmp4;
1419
1420 /* Added for populating periodic actuals till as_of_data parameter */
1421 /* Bug 5349102 :shifted the code to delete_fin8
1422 IF p_calling_context in ('P', 'W') THEN
1423
1424 IF l_calendar_type(i) = 'A' THEN
1425
1426 delete from pji_fm_aggr_fin8 fin where
1427 fin.PROJECT_ID = p_project_ids(i);
1428 ELSE
1429
1430 delete from pji_fm_aggr_fin8 fin where
1431 fin.PROJECT_ID = p_project_ids(i)
1432 AND fin.RECVR_PERIOD_ID <= l_end_period_id(i);
1433 END IF;
1434
1435 END IF; */
1436 /* Added for populating periodic actuals till as_of_data parameter */
1437
1438 END IF;/* End of l_plan_ver_flag='Y' and l_get_summarized_Data='Y' */
1439 END LOOP;
1440
1441 delete
1442 from PJI_FM_XBS_ACCUM_TMP1
1443 where nvl(TXN_RAW_COST, 0) = 0 and
1444 nvl(TXN_BRDN_COST, 0) = 0 and
1445 nvl(TXN_LABOR_RAW_COST, 0) = 0 and
1446 nvl(TXN_LABOR_BRDN_COST, 0) = 0 and
1447 nvl(TXN_EQUIP_RAW_COST, 0) = 0 and
1448 nvl(TXN_EQUIP_BRDN_COST, 0) = 0 and
1449 nvl(TXN_BASE_RAW_COST, 0) = 0 and
1450 nvl(TXN_BASE_BRDN_COST, 0) = 0 and
1451 nvl(TXN_BASE_LABOR_RAW_COST, 0) = 0 and
1452 nvl(TXN_BASE_LABOR_BRDN_COST, 0) = 0 and
1453 nvl(TXN_BASE_EQUIP_RAW_COST, 0) = 0 and
1454 nvl(TXN_BASE_EQUIP_BRDN_COST, 0) = 0 and
1455 nvl(PRJ_RAW_COST, 0) = 0 and
1456 nvl(PRJ_BRDN_COST, 0) = 0 and
1457 nvl(PRJ_LABOR_RAW_COST, 0) = 0 and
1458 nvl(PRJ_LABOR_BRDN_COST, 0) = 0 and
1459 nvl(PRJ_EQUIP_RAW_COST, 0) = 0 and
1460 nvl(PRJ_EQUIP_BRDN_COST, 0) = 0 and
1461 nvl(PRJ_BASE_RAW_COST, 0) = 0 and
1462 nvl(PRJ_BASE_BRDN_COST, 0) = 0 and
1463 nvl(PRJ_BASE_LABOR_RAW_COST, 0) = 0 and
1464 nvl(PRJ_BASE_LABOR_BRDN_COST, 0) = 0 and
1465 nvl(PRJ_BASE_EQUIP_RAW_COST, 0) = 0 and
1466 nvl(PRJ_BASE_EQUIP_BRDN_COST, 0) = 0 and
1467 nvl(POU_RAW_COST, 0) = 0 and
1468 nvl(POU_BRDN_COST, 0) = 0 and
1469 nvl(POU_LABOR_RAW_COST, 0) = 0 and
1470 nvl(POU_LABOR_BRDN_COST, 0) = 0 and
1471 nvl(POU_EQUIP_RAW_COST, 0) = 0 and
1472 nvl(POU_EQUIP_BRDN_COST, 0) = 0 and
1473 nvl(POU_BASE_RAW_COST, 0) = 0 and
1474 nvl(POU_BASE_BRDN_COST, 0) = 0 and
1475 nvl(POU_BASE_LABOR_RAW_COST, 0) = 0 and
1476 nvl(POU_BASE_LABOR_BRDN_COST, 0) = 0 and
1477 nvl(POU_BASE_EQUIP_RAW_COST, 0) = 0 and
1478 nvl(POU_BASE_EQUIP_BRDN_COST, 0) = 0 and
1479 nvl(LABOR_HOURS, 0) = 0 and
1480 nvl(EQUIPMENT_HOURS, 0) = 0 and
1481 nvl(BASE_LABOR_HOURS, 0) = 0 and
1482 nvl(BASE_EQUIP_HOURS, 0) = 0 and
1483 nvl(SOURCE_ID, 0) = 0 and
1484 nvl(ACT_LABOR_HRS, 0) = 0 and
1485 nvl(ACT_EQUIP_HRS, 0) = 0 and
1486 nvl(ACT_TXN_LABOR_BRDN_COST, 0) = 0 and
1487 nvl(ACT_TXN_EQUIP_BRDN_COST, 0) = 0 and
1488 nvl(ACT_TXN_BRDN_COST, 0) = 0 and
1489 nvl(ACT_PRJ_LABOR_BRDN_COST, 0) = 0 and
1490 nvl(ACT_PRJ_EQUIP_BRDN_COST, 0) = 0 and
1491 nvl(ACT_PRJ_BRDN_COST, 0) = 0 and
1492 nvl(ACT_PFC_LABOR_BRDN_COST, 0) = 0 and
1493 nvl(ACT_PFC_EQUIP_BRDN_COST, 0) = 0 and
1494 nvl(ACT_PFC_BRDN_COST, 0) = 0 and
1495 nvl(ETC_LABOR_HRS, 0) = 0 and
1496 nvl(ETC_EQUIP_HRS, 0) = 0 and
1497 nvl(ETC_TXNLABOR_BRDN_COST, 0) = 0 and
1498 nvl(ETC_TXN_EQUIP_BRDN_COST, 0) = 0 and
1499 nvl(ETC_TXN_BRDN_COST, 0) = 0 and
1500 nvl(ETC_PRJ_LABOR_BRDN_COST, 0) = 0 and
1501 nvl(ETC_PRJ_EQUIP_BRDN_COST, 0) = 0 and
1502 nvl(ETC_PRJ_BRDN_COST, 0) = 0 and
1503 nvl(ETC_POU_LABOR_BRDN_COST, 0) = 0 and
1504 nvl(ETC_POU_EQUIP_BRDN_COST, 0) = 0 and
1505 nvl(ETC_POU_BRDN_COST, 0) = 0 and
1506 nvl(ACT_TXN_RAW_COST, 0) = 0 and
1507 nvl(ACT_PRJ_RAW_COST, 0) = 0 and
1508 nvl(ACT_POU_RAW_COST, 0) = 0 and
1509 nvl(ETC_TXN_RAW_COST, 0) = 0 and
1510 nvl(ETC_PRJ_RAW_COST, 0) = 0 and
1511 nvl(ETC_POU_RAW_COST, 0) = 0 and
1512 nvl(ACT_TXN_LABOR_RAW_COST, 0) = 0 and
1513 nvl(ACT_TXN_EQUIP_RAW_COST, 0) = 0 and
1514 nvl(ACT_PRJ_LABOR_RAW_COST, 0) = 0 and
1515 nvl(ACT_PRJ_EQUIP_RAW_COST, 0) = 0 and
1516 nvl(ACT_POU_LABOR_RAW_COST, 0) = 0 and
1517 nvl(ACT_POU_EQUIP_RAW_COST, 0) = 0 and
1518 nvl(ETC_TXN_LABOR_RAW_COST, 0) = 0 and
1519 nvl(ETC_TXN_EQUIP_RAW_COST, 0) = 0 and
1520 nvl(ETC_PRJ_LABOR_RAW_COST, 0) = 0 and
1521 nvl(ETC_PRJ_EQUIP_RAW_COST, 0) = 0 and
1522 nvl(ETC_POU_LABOR_RAW_COST, 0) = 0 and
1523 nvl(ETC_POU_EQUIP_RAW_COST, 0) = 0 and
1524 nvl(ACT_POU_LABOR_BRDN_COST, 0) = 0 and
1525 nvl(ACT_POU_EQUIP_BRDN_COST, 0) = 0 and
1526 nvl(ACT_POU_BRDN_COST, 0) = 0 and
1527 nvl(ETC_TXN_LABOR_BRDN_COST, 0) = 0 and
1528 nvl(TXN_LPB_RAW_COST, 0) = 0 and
1529 nvl(TXN_LPB_BRDN_COST, 0) = 0 and
1530 nvl(TXN_LPB_LABOR_RAW_COST, 0) = 0 and
1531 nvl(TXN_LPB_LABOR_BRDN_COST, 0) = 0 and
1532 nvl(TXN_LPB_EQUIP_RAW_COST, 0) = 0 and
1533 nvl(TXN_LPB_EQUIP_BRDN_COST, 0) = 0 and
1534 nvl(PRJ_LPB_RAW_COST, 0) = 0 and
1535 nvl(PRJ_LPB_BRDN_COST, 0) = 0 and
1536 nvl(PRJ_LPB_LABOR_RAW_COST, 0) = 0 and
1537 nvl(PRJ_LPB_LABOR_BRDN_COST, 0) = 0 and
1538 nvl(PRJ_LPB_EQUIP_RAW_COST, 0) = 0 and
1539 nvl(PRJ_LPB_EQUIP_BRDN_COST, 0) = 0 and
1540 nvl(POU_LPB_RAW_COST, 0) = 0 and
1541 nvl(POU_LPB_BRDN_COST, 0) = 0 and
1542 nvl(POU_LPB_LABOR_RAW_COST, 0) = 0 and
1543 nvl(POU_LPB_LABOR_BRDN_COST, 0) = 0 and
1544 nvl(POU_LPB_EQUIP_RAW_COST, 0) = 0 and
1545 nvl(POU_LPB_EQUIP_BRDN_COST, 0) = 0 and
1546 nvl(LPB_LABOR_HOURS, 0) = 0 and
1547 nvl(LPB_EQUIP_HOURS, 0) = 0 and
1548 RES_LIST_MEMBER_ID > 0 and
1549 p_calling_context = 'W';
1550
1551 IF NVL(FND_PROFILE.value('PA_DEBUG_MODE'),'N') = 'Y' THEN
1552 debug_accum ; /* bug#3993830 */
1553 END IF;
1554
1555 print_time ( ' get_summarized_data 0010 ' ) ;
1556
1557 EXCEPTION
1558 WHEN l_map_resource_list THEN /* Bug No. 4461060 */
1559 print_time('Error in pkg ' || g_package_name || 'Procedure GET_SUMMARIZED_DATA' || ' is: ' || 'Error is in pa_resource_mapping.map_resource_list' );
1560 x_return_status :='E' ;
1561
1562 WHEN OTHERS THEN
1563 PJI_PJP_FP_CURR_WRAP.EXCP_HANDLER
1564 ( p_package_name => g_package_name
1565 , p_procedure_name => 'GET_SUMMARIZED_DATA'
1566 , x_return_status => x_return_status ) ;
1567
1568 RAISE;
1569 END;
1570
1571
1572
1573 /*********************************************************
1574 This procedure populates data in PJI_FM_XBS_ACCUM_TMP1
1575 for workplans.
1576 API supports both work plans and progress actuals
1577 The parameters that the API accepts can have one of the
1578 following combinations
1579 - p_struct_ver_id, p_base_struct_ver_id
1580 - p_plan_version_id
1581 **********************************************************/
1582
1583 PROCEDURE populate_updatewbs_data (
1584 p_project_id IN NUMBER,
1585 p_struct_ver_id IN NUMBER := NULL,
1586 p_base_struct_ver_id IN NUMBER := NULL,
1587 p_plan_version_id IN NUMBER := NULL,
1588 p_as_of_date IN DATE := NULL,
1589 p_delete_flag IN VARCHAR2 := 'Y',
1590 p_project_element_id IN NUMBER := NULL,
1591 p_level IN NUMBER := 1,
1592 p_structure_flag IN VARCHAR2 := 'N',
1593 x_return_status OUT NOCOPY VARCHAR2,
1594 x_msg_code OUT NOCOPY VARCHAR2 ) IS
1595
1596 l_plan_ver_id NUMBER;
1597 l_base_plan_ver_id NUMBER := 0;
1598 l_wking_struct_ver_id NUMBER;
1599 l_prd_start_date DATE;
1600 l_calendar_id NUMBER;
1601 l_org_id NUMBER;
1602 l_calendar_type VARCHAR2(1);
1603 -- changes made for populate_workplan_data fix for bug : 4158221
1604 l_cal_type VARCHAR2(1) := 'A' ;
1605 l_prd_type_id NUMBER := 2048 ;
1606 l_end_period_id NUMBER := -1 ; -- Added Defalut value of -1 if calander_type = 'A'
1607
1608 l_lpb_plan_ver_id Number; /*Added for workplan progress */
1609 l_lpb_struct_ver_id Number; /* Added for workplan progress*/
1610 l_return_status VARCHAR2(1);
1611 p_workplan_flag VARCHAR2(1) :='Y';
1612 p_program_rollup_flag VARCHAR2(1) :='N';
1613
1614
1615 -- SRI_BUG START
1616
1617 -- OLAP START CHANGE
1618
1619 l_pjt_rollup_enabled_flag varchar2(1) ;
1620
1621 -- OLAP END CHANGE
1622
1623 -- OLAP START
1624
1625 l_new_count number ;
1626 l_new_elem_id number ;
1627 l_start_object_id number ;
1628 l_cbs_enabled_flag varchar2(1);
1629
1630 cursor c1 is
1631 SELECT object_id , LEVEL +1,
1632 SYS_CONNECT_BY_PATH(object_id, '/') connect_path,
1633 connect_by_isleaf leaf_node
1634 FROM pa_ppr_obj_tmp_view r
1635 -- OLAP_BUG
1636 -- START WITH r.parent_object_id = p_element_version_id CONNECT BY
1637 START WITH r.parent_object_id = l_start_object_id CONNECT BY
1638 PRIOR r.object_id = r.parent_object_id ;
1639
1640 l_task_arr PA_PLSQL_DATATYPES.NumTabTyp;
1641 l_task_level_arr PA_PLSQL_DATATYPES.NumTabTyp;
1642 l_connect_path_arr PA_PLSQL_DATATYPES.Char240TabTyp;
1643 l_leaf_node_arr PA_PLSQL_DATATYPES.NumTabTyp;
1644
1645 -- OLAP END
1646
1647 -- SRI_BUG END
1648
1649 BEGIN
1650
1651 PJI_PJP_FP_CURR_WRAP.INIT_ERR_STACK
1652 ( p_package_name => g_package_name
1653 , x_return_status => x_return_status );
1654
1655 print_time (' p_project_id ' || p_project_id || ' p_struct_ver_id ' || p_struct_ver_id );
1656 print_time (' p_base_struct_ver_id ' || p_base_struct_ver_id || ' p_plan_version_id ' || p_plan_version_id );
1657 print_time ( ' p_as_of_date ' || p_as_of_date );
1658 print_time (' p_delete_flag ' || p_delete_flag || ' p_workplan_flag ' || p_workplan_flag );
1659
1660 -- fnd_stats.set_table_stats('PJI','PJI_PLAN_EXTR_TMP',10,10,10);
1661 pji_pjp_fp_curr_wrap.set_table_stats('PJI','PJI_PLAN_EXTR_TMP',10,10,10);
1662
1663 l_return_status := Fnd_Api.G_RET_STS_SUCCESS;
1664 /* Added for workplan progress */
1665 -- Get the Latest Published Version for the Project
1666
1667 -- SRI_BUG START
1668
1669 -- OLAP START
1670
1671 select nvl(p.pjt_rollup_enabled_flag , 'N' ), p.cbs_enable_flag -- SCOPE_00 Added getting cbs_enabled_flag say l_cbs_enabled_flag
1672 into l_pjt_rollup_enabled_flag, l_cbs_enabled_flag
1673 from pa_projects_all p
1674 where p.project_id = p_project_id;
1675
1676 -- OLAP END
1677
1678 -- SRI_BUG END
1679
1680 BEGIN
1681 SELECT element_version_id
1682 INTO l_lpb_struct_ver_id
1683 FROM pa_proj_elem_ver_structure ppevs,
1684 pa_proj_structure_types ppst
1685 WHERE ppevs.project_id = p_project_id
1686 AND latest_eff_published_flag = 'Y'
1687 AND ppst.proj_element_id = ppevs.proj_element_id
1688 AND ppst.structure_type_id = 1;
1689 EXCEPTION
1690 WHEN NO_DATA_FOUND THEN
1691 l_lpb_struct_ver_id := null;
1692 END;
1693
1694
1695 IF l_lpb_struct_ver_id <> -1 then -- To find out the latest published plan version Id
1696
1697 BEGIN
1698 SELECT budget_version_id
1699 INTO l_lpb_plan_ver_id
1700 FROM PA_BUDGET_VERSIONS
1701 WHERE project_structure_Version_id = l_lpb_struct_ver_id
1702 AND wp_version_flag ='Y'
1703 AND project_id = p_project_id;
1704
1705 EXCEPTION
1706 WHEN NO_DATA_FOUND THEN
1707 l_lpb_plan_ver_id := null;
1708 END;
1709 ELSE
1710 l_lpb_struct_ver_id :=null;
1711 l_lpb_plan_ver_id := null;
1712 END IF;
1713
1714
1715 /* End of workplan progress change */
1716
1717
1718
1719 IF (p_plan_version_id IS NOT NULL) THEN
1720
1721 l_plan_ver_id := p_plan_version_id;
1722
1723 BEGIN
1724
1725 print_time ( ' populate_updatewbs_data 0003.2 ' ) ;
1726 -- SRI_BUG START
1727 -- OLAP START
1728
1729 if l_pjt_rollup_enabled_flag = 'N' then
1730
1731 SELECT WBS_VERSION_ID
1732 INTO l_wking_struct_ver_id
1733 FROM pji_pjp_wbs_header
1734 WHERE plan_version_id = p_plan_version_id;
1735 else
1736
1737 select project_structure_version_id
1738 into l_wking_struct_ver_id
1739 from pa_budget_versions
1740 where budget_version_id = p_plan_version_id ;
1741
1742 end if;
1743
1744 -- OLAP END
1745 -- SRI_BUG END
1746
1747 EXCEPTION
1748 WHEN NO_DATA_FOUND THEN
1749 print_time( 'PJI_FM_XBS_ACCUM_UTILS.POPULATE_WORKPLAN_DATA. Structure info does not exist for this plan version in WBS header table ' || NVL(p_plan_version_id, -99));
1750 END;
1751
1752 ELSE
1753
1754 print_time ( ' populate_updatewbs_data 0003.3 ' ) ;
1755
1756 l_wking_struct_ver_id := p_struct_ver_id ;
1757
1758 --Get the plan version for work plan
1759
1760 BEGIN
1761 print_time ( ' populate_updatewbs_data 0003.4 ' ) ;
1762
1763 -- SRI_BUG START
1764 -- OLAP START
1765
1766 if l_pjt_rollup_enabled_flag = 'N' then
1767
1768
1769 SELECT head.PLAN_VERSION_ID
1770 INTO l_plan_ver_id
1771 FROM pji_pjp_wbs_header head,
1772 pa_budget_versions bv
1773 WHERE 1=1
1774 AND head.plan_version_id = bv.budget_version_id
1775 AND NVL(bv.wp_version_flag, 'N') = head.wp_flag
1776 AND NVL(bv.wp_version_flag, 'N') = p_workplan_flag
1777 AND head.WBS_VERSION_ID = p_struct_ver_id
1778 AND head.PROJECT_ID = p_project_id
1779 AND DECODE(p_workplan_flag
1780 , 'N'
1781 , DECODE(bv.budget_status_code||bv.current_working_flag
1782 , 'WY'
1783 ,'X'
1784 , 'Y')
1785 , 'X') = 'X'
1786 AND head.PLAN_VERSION_ID > 0;
1787 else
1788
1789
1790 select budget_version_id
1791 into l_plan_ver_id
1792 from pa_budget_versions bv
1793 where bv.project_id = p_project_id
1794 AND bv.fin_plan_type_id = 10
1795 AND DECODE(p_workplan_flag
1796 , 'N'
1797 , DECODE(bv.budget_status_code||bv.current_working_flag
1798 , 'WY'
1799 ,'X'
1800 , 'Y')
1801 , 'X') = 'X'
1802 and bv.project_structure_version_id = p_struct_ver_id;
1803
1804
1805 end if;
1806 -- OLAP END
1807
1808 -- SRI_BUG END
1809
1810 EXCEPTION
1811 WHEN no_data_found THEN
1812 print_time( 'PJI_FM_XBS_ACCUM_UTILS.POPULATE_WORKPLAN_DATA. Plan info does not exists for this project id ' || p_project_id || ' and this structure version id ' || p_struct_ver_id || ' in WBS header table.');
1813
1814 END;
1815
1816 print_time ( ' populate_updatewbs_data 0003.5 ' ) ;
1817
1818
1819 --Get the baselined plan version
1820
1821 BEGIN
1822
1823 print_time ( ' populate_updatewbs_data 0003.6 ' ) ;
1824
1825 -- SRI_BUG
1826 -- OLAP START
1827
1828 if l_pjt_rollup_enabled_flag = 'N' then
1829
1830
1831 SELECT head.PLAN_VERSION_ID
1832 INTO l_base_plan_ver_id
1833 FROM pji_pjp_wbs_header head,
1834 pa_budget_versions bv
1835 WHERE 1=1
1836 AND head.plan_version_id = bv.budget_version_id
1837 AND NVL(bv.wp_version_flag, 'N') = head.wp_flag
1838 AND NVL(bv.wp_version_flag, 'N') = p_workplan_flag
1839 AND head.WBS_VERSION_ID = p_base_struct_ver_id
1840 AND head.PROJECT_ID = p_project_id
1841 AND DECODE(p_workplan_flag
1842 , 'N'
1843 , DECODE(bv.budget_status_code||bv.current_flag
1844 , 'BY','X'
1845 , 'Y')
1846 , 'X')
1847 = 'X'
1848 AND head.PLAN_VERSION_ID > 0;
1849
1850 else
1851
1852
1853 select budget_version_id
1854 into l_plan_ver_id
1855 from pa_budget_versions bv
1856 where bv.project_id = p_project_id
1857 AND bv.fin_plan_type_id = 10
1858 AND DECODE(p_workplan_flag
1859 , 'N'
1860 , DECODE(bv.budget_status_code||bv.current_flag
1861 , 'BY','X'
1862 , 'Y')
1863 , 'X')
1864 = 'X'
1865 and bv.project_structure_version_id = p_base_struct_ver_id;
1866
1867
1868 end if;
1869 -- OLAP END
1870 -- SRI_BUG
1871
1872 EXCEPTION
1873 WHEN no_data_found THEN
1874 print_time( 'PJI_FM_XBS_ACCUM_UTILS.POPULATE_WORKPLAN_DATA no current baselined plan version');
1875 END;
1876
1877 END IF;
1878
1879
1880 print_time ( ' populate_updatewbs_data 0003.7 p_project_id' || p_project_id ) ;
1881 print_time ( ' l_base_plan_ver_id ' || l_base_plan_ver_id || ' plan_ver_id ' || l_plan_ver_id ) ;
1882
1883 -- Changes made for populate_work_plan_data chagnes : Fix for bug : 4158221
1884 If p_as_of_date IS NOT NULL then -- Fix for bug : 4196808
1885 BEGIN
1886 SELECT calendar_type, DECODE(calendar_type, 'A', 2048, 32) PERIOD_TYPE_ID
1887 INTO l_cal_type, l_prd_type_id
1888 FROM
1889 (
1890 SELECT
1891 DECODE(NVL(NVL(cost_time_phased_code, revenue_time_phased_code), all_time_phased_code), 'G', 'G', 'P', 'P', 'A') calendar_type
1892 FROM pa_proj_fp_options
1893 WHERE fin_plan_option_level_code = 'PLAN_VERSION'
1894 AND fin_plan_version_id = l_plan_ver_id
1895 ) ;
1896 EXCEPTION
1897 when no_data_found then
1898 print_time( 'PJI_FM_XBS_ACCUM_UTILS.POPULATE_WORKPLAN_DATA : No calendar_type');
1899 when others then
1900 print_time( 'PJI_FM_XBS_ACCUM_UTILS.POPULATE_WORKPLAN_DATA : No Calander_Type');
1901 END ;
1902
1903 BEGIN
1904 SELECT ORG_ID
1905 INTO l_org_id
1906 FROM pa_projects_all
1907 WHERE project_id = p_project_id ;
1908
1909 IF L_CAL_TYPE IN ('P', 'G') THEN -- retrieve CAL_PERIOD_ID only if calander_type is 'P' or 'G'
1910 SELECT cal.CAL_PERIOD_ID
1911 INTO l_end_period_id
1912 FROM pji_time_cal_period_v cal, pji_org_extr_info info
1913 WHERE TRUNC(p_as_of_date)
1914 BETWEEN TRUNC(cal.START_DATE) AND TRUNC(cal.END_DATE)
1915 AND info.ORG_ID = l_org_id
1916 AND DECODE(l_cal_type, 'P', info.PA_CALENDAR_ID, info.GL_CALENDAR_ID) = cal.CALENDAR_ID;
1917 END IF ;
1918 EXCEPTION
1919 when no_data_found then
1920 print_time( 'PJI_FM_XBS_ACCUM_UTILS.POPULATE_WORKPLAN_DATA : No Calander Period Id');
1921 when others then
1922 print_time( 'PJI_FM_XBS_ACCUM_UTILS.POPULATE_WORKPLAN_DATA : No Calander Period Id');
1923 END ;
1924 END IF ; -- end if for If p_as_of_date IS NOT NULL then
1925
1926
1927
1928 DELETE FROM PJI_PLAN_EXTR_TMP;
1929 print_time ( ' # rows deleted from tmp = ' || SQL%ROWCOUNT ) ;
1930
1931
1932 --Ensures that data is cleaned up for the Project / Program and the linked sub projects
1933 IF (p_delete_flag = 'Y') THEN
1934
1935 print_time ( ' populate_updatewbs_data 0002 ' ) ;
1936 DELETE FROM pji_fm_xbs_accum_tmp1;
1937 print_time ( ' # rows deleted from tmp1 = ' || SQL%ROWCOUNT ) ;
1938
1939 END IF;
1940
1941 print_time ( ' populate_updatewbs_data 0003 ' ) ;
1942
1943 -- The Temp table is populated with the PROJECT_ID and the PROJECT_ELEMENT_ID
1944
1945 IF p_structure_flag ='N' THEN
1946
1947 insert into PJI_PLAN_EXTR_TMP(project_id,plan_ver_id)
1948 select sup_project_id,sub_emt_id
1949 from pji_xbs_Denorm
1950 where sup_project_id=p_project_id
1951 and struct_version_id = p_struct_ver_id
1952 and sup_emt_id=p_project_element_id
1953 and sup_level <> sub_level
1954 and abs(sup_level - sub_level) <=p_level ;
1955 ELSE
1956 insert into PJI_PLAN_EXTR_TMP(project_id,plan_ver_id)
1957 select sub.sup_project_id,sub.sub_emt_id
1958 from pji_xbs_Denorm sup,pji_xbs_Denorm sub
1959 where sup.sup_project_id=p_project_id
1960 and sup.sup_project_id =sub.sup_project_id
1961 and sup.sup_id = p_struct_ver_id
1962 and sup.sub_id = sub.sup_id
1963 and sub.struct_type<> 'XBS'
1964 and sup.struct_type<> 'WBS'
1965 and abs(sub.sup_level - sub.sub_level) <=p_level -1;
1966 END IF;
1967
1968
1969 -- SRI_BUG START
1970
1971 -- OLAP START
1972
1973 -- SCOPE_00 change the below If state to cbs_enabled_flag
1974
1975 --if l_pjt_rollup_enabled_flag = 'Y' then
1976 if l_cbs_enabled_flag = 'Y' then
1977
1978 select proj_element_id
1979 into l_new_elem_id
1980 FROM
1981 PA_PROJ_ELEMENT_VERSIONS
1982 where element_version_id = l_wking_struct_ver_id; -- modified for 16594243
1983
1984 DELETE FROM pa_ppr_obj_tmp_view; --16679474
1985 insert into pa_ppr_obj_tmp_view ( object_id , parent_object_id )
1986 select /*+ ordered */
1987 distinct a.proj_element_id , nvl(c.proj_element_id,l_new_elem_id ) -- BUG_00
1988 from PA_PROJ_ELEMENT_VERSIONS a , pa_object_relationships b , PA_PROJ_ELEMENT_VERSIONS c
1989 where a.project_id = p_project_id
1990 and a.object_type = 'PA_TASKS'
1991 and a.parent_structure_version_id = p_base_struct_ver_id -- BUG_00
1992 and a.element_version_id = b.object_id_to1 (+)
1993 and b.object_type_From (+) = 'PA_TASKS'
1994 and b.relationship_type (+) = 'S'
1995 and b.object_id_from1 = c.element_version_id (+) ;
1996
1997
1998 insert into pa_ppr_obj_tmp_view ( object_id , parent_object_id ) values ( l_new_elem_id , -1 );
1999
2000 l_task_arr.delete;
2001 l_task_level_arr.delete;
2002 l_connect_path_arr.delete;
2003 l_leaf_node_arr.delete;
2004
2005 if ( p_structure_flag ='N' ) then
2006 l_start_object_id := p_project_element_id;
2007 else
2008 l_start_object_id := -1 ;
2009 end if;
2010
2011 OPEN c1;
2012
2013 FETCH c1
2014 BULK COLLECT INTO l_task_arr, l_task_level_arr,l_connect_path_arr , l_leaf_node_arr ;
2015
2016 CLOSE c1;
2017
2018 FORALL k IN 1..l_task_arr.COUNT
2019 UPDATE pa_ppr_obj_tmp_view
2020 SET connect_path = l_connect_path_arr(k),
2021 leaf_node = l_leaf_node_arr(k),
2022 wbs_rbs_level = l_task_level_arr(k)
2023 WHERE object_id = l_task_arr(k);
2024
2025
2026 end if ;
2027
2028
2029 -- OLAP END
2030
2031 -- SRI_BUG END
2032
2033 --
2034 -- Get task level data from reporting lines
2035 -- Data is rolled up by WBS hierarchy
2036 -- Data inserted is the Totals
2037 --
2038 -- SRI_BUG START
2039 -- OLAP START
2040 if l_pjt_rollup_enabled_flag = 'N' then
2041 -- OLAP END
2042 -- SRI_BUG END
2043
2044
2045 INSERT INTO pji_fm_xbs_accum_tmp1 (
2046 PROJECT_ID, STRUCT_VERSION_ID, PROJECT_ELEMENT_ID, CALENDAR_TYPE,
2047 PERIOD_NAME, PLAN_VERSION_ID, QUANTITY, TXN_RAW_COST,
2048 TXN_BRDN_COST, TXN_REVENUE, TXN_LABOR_RAW_COST, TXN_LABOR_BRDN_COST,
2049 TXN_EQUIP_RAW_COST, TXN_EQUIP_BRDN_COST, TXN_BASE_RAW_COST, TXN_BASE_BRDN_COST,
2050 TXN_BASE_LABOR_RAW_COST, TXN_BASE_LABOR_BRDN_COST,TXN_BASE_EQUIP_RAW_COST, TXN_BASE_EQUIP_BRDN_COST,
2051 TXN_LPB_RAW_COST, TXN_LPB_BRDN_COST, TXN_LPB_LABOR_RAW_COST, TXN_LPB_LABOR_BRDN_COST,
2052 TXN_LPB_EQUIP_RAW_COST, TXN_LPB_EQUIP_BRDN_COST, PRJ_RAW_COST, PRJ_BRDN_COST,
2053 PRJ_REVENUE, PRJ_LABOR_RAW_COST, PRJ_LABOR_BRDN_COST, PRJ_EQUIP_RAW_COST,
2054 PRJ_EQUIP_BRDN_COST, PRJ_BASE_RAW_COST, PRJ_BASE_BRDN_COST, PRJ_BASE_LABOR_RAW_COST,
2055 PRJ_BASE_LABOR_BRDN_COST,PRJ_BASE_EQUIP_RAW_COST, PRJ_BASE_EQUIP_BRDN_COST,PRJ_LPB_RAW_COST,
2056 PRJ_LPB_BRDN_COST, PRJ_LPB_LABOR_RAW_COST, PRJ_LPB_LABOR_BRDN_COST, PRJ_LPB_EQUIP_RAW_COST,
2057 PRJ_LPB_EQUIP_BRDN_COST, POU_RAW_COST, POU_BRDN_COST, POU_REVENUE,
2058 POU_LABOR_RAW_COST, POU_LABOR_BRDN_COST, POU_EQUIP_RAW_COST, POU_EQUIP_BRDN_COST,
2059 POU_BASE_RAW_COST, POU_BASE_BRDN_COST, POU_BASE_LABOR_RAW_COST, POU_BASE_LABOR_BRDN_COST,
2060 POU_BASE_EQUIP_RAW_COST, POU_BASE_EQUIP_BRDN_COST,POU_LPB_RAW_COST, POU_LPB_BRDN_COST,
2061 POU_LPB_LABOR_RAW_COST, POU_LPB_LABOR_BRDN_COST, POU_LPB_EQUIP_RAW_COST, POU_LPB_EQUIP_BRDN_COST,
2062 LABOR_HOURS, EQUIPMENT_HOURS, BASE_LABOR_HOURS, BASE_EQUIP_HOURS,
2063 LPB_LABOR_HOURS, LPB_EQUIP_HOURS, ACT_LABOR_HRS, ACT_EQUIP_HRS,
2064 ACT_TXN_LABOR_BRDN_COST, ACT_TXN_EQUIP_BRDN_COST, ACT_TXN_RAW_COST, ACT_TXN_BRDN_COST,
2065 ACT_PRJ_LABOR_BRDN_COST, ACT_PRJ_EQUIP_BRDN_COST, ACT_PRJ_RAW_COST, ACT_PRJ_BRDN_COST,
2066 ACT_POU_LABOR_BRDN_COST, ACT_POU_EQUIP_BRDN_COST, ACT_POU_RAW_COST, ACT_POU_BRDN_COST,
2067 ETC_LABOR_HRS, ETC_EQUIP_HRS, ETC_TXN_LABOR_BRDN_COST, ETC_TXN_EQUIP_BRDN_COST,
2068 ETC_TXN_RAW_COST, ETC_TXN_BRDN_COST, ETC_PRJ_LABOR_BRDN_COST, ETC_PRJ_EQUIP_BRDN_COST,
2069 ETC_PRJ_RAW_COST, ETC_PRJ_BRDN_COST, ETC_POU_LABOR_BRDN_COST, ETC_POU_EQUIP_BRDN_COST,
2070 ETC_POU_RAW_COST, ETC_POU_BRDN_COST, ACT_TXN_LABOR_RAW_COST , ACT_PRJ_LABOR_RAW_COST,
2071 ACT_POU_LABOR_RAW_COST, ACT_TXN_EQUIP_RAW_COST, ACT_PRJ_EQUIP_RAW_COST, ACT_POU_EQUIP_RAW_COST,
2072 ETC_TXN_LABOR_RAW_COST, ETC_PRJ_LABOR_RAW_COST, ETC_POU_LABOR_RAW_COST, ETC_TXN_EQUIP_RAW_COST,
2073 ETC_PRJ_EQUIP_RAW_COST, ETC_POU_EQUIP_RAW_COST, P_RAW_COST,P_BRDN_COST, P_REVENUE,
2074 P_LBR_RAW_COST, P_LBR_BRDN_COST, P_EQP_RAW_COST, P_EQP_BRDN_COST,
2075 P_BASE_RAW_COST, P_BASE_BRDN_COST, P_BASE_LBR_RAW_COST, P_BASE_LBR_BRDN_COST,
2076 P_BASE_EQP_RAW_COST, P_BASE_EQP_BRDN_COST, P_LPB_RAW_COST, P_LPB_BRDN_COST,
2077 P_LPB_LBR_RAW_COST, P_LPB_LBR_BRDN_COST, P_LPB_EQP_RAW_COST, P_LPB_EQP_BRDN_COST,
2078 P_LBR_HOURS, P_EQP_HOURS, P_BASE_LBR_HOURS, P_BASE_EQP_HOURS,
2079 P_LPB_LBR_HOURS, P_LPB_EQP_HOURS, P_ACT_LBR_HOURS, P_ACT_EQP_HOURS,
2080 P_ACT_LBR_BRDN_COST, P_ACT_EQP_BRDN_COST, P_ACT_RAW_COST, P_ACT_BRDN_COST,
2081 P_ACT_LBR_RAW_COST, P_ACT_EQP_RAW_COST, P_ETC_EQP_HOURS, P_ETC_LBR_HOURS,
2082 P_ETC_RAW_COST, P_ETC_BRDN_COST, P_ETC_LBR_BRDN_COST, P_ETC_EQP_BRDN_COST,
2083 P_ETC_LBR_RAW_COST,P_ETC_EQP_RAW_COST
2084 )
2085 SELECT /*+ LEADING(head) use_hash(fact) */ -- Modified hints for bug 13897252
2086 fact.PROJECT_ID,
2087 l_wking_struct_ver_id STRUCT_VERSION_ID,
2088 fact.PROJECT_ELEMENT_ID PROJECT_ELEMENT_ID,
2089 'A',
2090 null PERIOD_NAME,
2091 l_plan_ver_id PLAN_VERSION_ID,
2092 0 QUANTITY,
2093 sum(case when fact.plan_version_id = l_plan_ver_id then fact.raw_cost*TXN_MASK else 0 end) TXN_RAW_COST,
2094 sum(case when fact.plan_version_id = l_plan_ver_id then fact.brdn_cost*TXN_MASK else 0 end) TXN_BRDN_COST,
2095 sum(case when fact.plan_version_id = l_plan_ver_id then fact.revenue*TXN_MASK else 0 end) TXN_REVENUE,
2096 sum(case when fact.plan_version_id = l_plan_ver_id then fact.labor_raw_cost*TXN_MASK else 0 end) TXN_LABOR_RAW_COST,
2097 sum(case when fact.plan_version_id = l_plan_ver_id then fact.labor_brdn_cost*TXN_MASK else 0 end) TXN_LABOR_BRDN_COST,
2098 sum(case when fact.plan_version_id = l_plan_ver_id then fact.equipment_raw_cost*TXN_MASK else 0 end) TXN_EQUIP_RAW_COST,
2099 sum(case when fact.plan_version_id = l_plan_ver_id then fact.equipment_brdn_cost*TXN_MASK else 0 end) TXN_EQUIP_BRDN_COST,
2100
2101 sum(case when fact.plan_version_id = l_base_plan_ver_id then fact.raw_cost*TXN_MASK else 0 end) TXN_BASE_RAW_COST,
2102 sum(case when fact.plan_version_id = l_base_plan_ver_id then fact.brdn_cost*TXN_MASK else 0 end) TXN_BASE_BRDN_COST,
2103 sum(case when fact.plan_version_id = l_base_plan_ver_id then fact.labor_raw_cost*TXN_MASK else 0 end) TXN_BASE_LABOR_RAW_COST,
2104 sum(case when fact.plan_version_id = l_base_plan_ver_id then fact.labor_brdn_cost*TXN_MASK else 0 end) TXN_BASE_LABOR_BRDN_COST,
2105 sum(case when fact.plan_version_id = l_base_plan_ver_id then fact.equipment_raw_cost*TXN_MASK else 0 end) TXN_BASE_EQUIP_RAW_COST,
2106 sum(case when fact.plan_version_id = l_base_plan_ver_id then fact.equipment_brdn_cost*TXN_MASK else 0 end) TXN_BASE_EQUIP_BRDN_COST,
2107
2108 sum(case when fact.plan_version_id = l_lpb_plan_ver_id then fact.raw_cost*TXN_MASK else 0 end) TXN_LPB_RAW_COST,
2109 sum(case when fact.plan_version_id = l_lpb_plan_ver_id then fact.brdn_cost*TXN_MASK else 0 end) TXN_LPB_BRDN_COST,
2110 sum(case when fact.plan_version_id = l_lpb_plan_ver_id then fact.labor_raw_cost*TXN_MASK else 0 end) TXN_LPB_LABOR_RAW_COST,
2111 sum(case when fact.plan_version_id = l_lpb_plan_ver_id then fact.labor_brdn_cost*TXN_MASK else 0 end) TXN_LPB_LABOR_BRDN_COST,
2112 sum(case when fact.plan_version_id = l_lpb_plan_ver_id then fact.equipment_raw_cost*TXN_MASK else 0 end) TXN_LPB_EQUIP_RAW_COST,
2113 sum(case when fact.plan_version_id = l_lpb_plan_ver_id then fact.equipment_brdn_cost*TXN_MASK else 0 end) TXN_LPB_EQUIP_BRDN_COST,
2114
2115 sum(case when fact.plan_version_id = l_plan_ver_id then fact.raw_cost*PRJ_MASK else 0 end) PRJ_RAW_COST,
2116 sum(case when fact.plan_version_id = l_plan_ver_id then fact.brdn_cost*PRJ_MASK else 0 end) PRJ_BRDN_COST,
2117 sum(case when fact.plan_version_id = l_plan_ver_id then fact.revenue*PRJ_MASK else 0 end) PRJ_REVENUE,
2118 sum(case when fact.plan_version_id = l_plan_ver_id then fact.labor_raw_cost*PRJ_MASK else 0 end) PRJ_LABOR_RAW_COST,
2119 sum(case when fact.plan_version_id = l_plan_ver_id then fact.labor_brdn_cost*PRJ_MASK else 0 end) PRJ_LABOR_BRDN_COST,
2120 sum(case when fact.plan_version_id = l_plan_ver_id then fact.equipment_raw_cost*PRJ_MASK else 0 end) PRJ_EQUIP_RAW_COST,
2121 sum(case when fact.plan_version_id = l_plan_ver_id then fact.equipment_brdn_cost*PRJ_MASK else 0 end) PRJ_EQUIP_BRDN_COST,
2122
2123 sum(case when fact.plan_version_id = l_base_plan_ver_id then fact.raw_cost*PRJ_MASK else 0 end) PRJ_BASE_RAW_COST,
2124 sum(case when fact.plan_version_id = l_base_plan_ver_id then fact.brdn_cost*PRJ_MASK else 0 end) PRJ_BASE_BRDN_COST,
2125 sum(case when fact.plan_version_id = l_base_plan_ver_id then fact.labor_raw_cost*PRJ_MASK else 0 end) PRJ_BASE_LABOR_RAW_COST,
2126 sum(case when fact.plan_version_id = l_base_plan_ver_id then fact.labor_brdn_cost*PRJ_MASK else 0 end) PRJ_BASE_LABOR_BRDN_COST,
2127 sum(case when fact.plan_version_id = l_base_plan_ver_id then fact.equipment_raw_cost*PRJ_MASK else 0 end) PRJ_BASE_EQUIP_RAW_COST,
2128 sum(case when fact.plan_version_id = l_base_plan_ver_id then fact.equipment_brdn_cost*PRJ_MASK else 0 end) PRJ_BASE_EQUIP_BRDN_COST,
2129
2130 sum(case when fact.plan_version_id = l_lpb_plan_ver_id then fact.raw_cost*PRJ_MASK else 0 end) PRJ_LPB_RAW_COST,
2131 sum(case when fact.plan_version_id = l_lpb_plan_ver_id then fact.brdn_cost*PRJ_MASK else 0 end) PRJ_LPB_BRDN_COST,
2132 sum(case when fact.plan_version_id = l_lpb_plan_ver_id then fact.labor_raw_cost*PRJ_MASK else 0 end) PRJ_LPB_LABOR_RAW_COST,
2133 sum(case when fact.plan_version_id = l_lpb_plan_ver_id then fact.labor_brdn_cost*PRJ_MASK else 0 end) PRJ_LPB_LABOR_BRDN_COST,
2134 sum(case when fact.plan_version_id = l_lpb_plan_ver_id then fact.equipment_raw_cost*PRJ_MASK else 0 end) PRJ_LBP_EQUIP_RAW_COST,
2135 sum(case when fact.plan_version_id = l_lpb_plan_ver_id then fact.equipment_brdn_cost*PRJ_MASK else 0 end) PRJ_LBP_EQUIP_BRDN_COST,
2136
2137 sum(case when fact.plan_version_id = l_plan_ver_id then fact.raw_cost*POU_MASK else 0 end) POU_RAW_COST,
2138 sum(case when fact.plan_version_id = l_plan_ver_id then fact.brdn_cost*POU_MASK else 0 end) POU_BRDN_COST,
2139 sum(case when fact.plan_version_id = l_plan_ver_id then fact.revenue*POU_MASK else 0 end) POU_REVENUE,
2140 sum(case when fact.plan_version_id = l_plan_ver_id then fact.labor_raw_cost*POU_MASK else 0 end) POU_LABOR_RAW_COST,
2141 sum(case when fact.plan_version_id = l_plan_ver_id then fact.labor_brdn_cost*POU_MASK else 0 end) POU_LABOR_BRDN_COST,
2142 sum(case when fact.plan_version_id = l_plan_ver_id then fact.equipment_raw_cost*POU_MASK else 0 end) POU_EQUIP_RAW_COST,
2143 sum(case when fact.plan_version_id = l_plan_ver_id then fact.equipment_brdn_cost*POU_MASK else 0 end) POU_EQUIP_BRDN_COST,
2144
2145 sum(case when fact.plan_version_id = l_base_plan_ver_id then fact.raw_cost*POU_MASK else 0 end) POU_BASE_RAW_COST,
2146 sum(case when fact.plan_version_id = l_base_plan_ver_id then fact.brdn_cost*POU_MASK else 0 end) POU_BASE_BRDN_COST,
2147 sum(case when fact.plan_version_id = l_base_plan_ver_id then fact.labor_raw_cost*POU_MASK else 0 end) POU_BASE_LABOR_RAW_COST,
2148 sum(case when fact.plan_version_id = l_base_plan_ver_id then fact.labor_brdn_cost*POU_MASK else 0 end) POU_BASE_LABOR_BRDN_COST,
2149 sum(case when fact.plan_version_id = l_base_plan_ver_id then fact.equipment_raw_cost*POU_MASK else 0 end) POU_BASE_EQUIP_RAW_COST,
2150 sum(case when fact.plan_version_id = l_base_plan_ver_id then fact.equipment_brdn_cost*POU_MASK else 0 end) POU_BASE_EQUIP_BRDN_COST,
2151
2152 sum(case when fact.plan_version_id = l_lpb_plan_ver_id then fact.raw_cost*POU_MASK else 0 end) POU_LPB_RAW_COST,
2153 sum(case when fact.plan_version_id = l_lpb_plan_ver_id then fact.brdn_cost*POU_MASK else 0 end) POU_LPB_BRDN_COST,
2154 sum(case when fact.plan_version_id = l_lpb_plan_ver_id then fact.labor_raw_cost*POU_MASK else 0 end) POU_LPB_LABOR_RAW_COST,
2155 sum(case when fact.plan_version_id = l_lpb_plan_ver_id then fact.labor_brdn_cost*POU_MASK else 0 end) POU_LPB_LABOR_BRDN_COST,
2156 sum(case when fact.plan_version_id = l_lpb_plan_ver_id then fact.equipment_raw_cost*POU_MASK else 0 end) POU_LPB_EQUIP_RAW_COST,
2157 sum(case when fact.plan_version_id = l_lpb_plan_ver_id then fact.equipment_brdn_cost*POU_MASK else 0 end) POU_LPB_EQUIP_BRDN_COST,
2158
2159 sum(case when fact.plan_version_id = l_plan_ver_id then fact.LABOR_HRS else 0 end) LABOR_HOURS,
2160 sum(case when fact.plan_version_id = l_plan_ver_id then fact.EQUIPMENT_HOURS else 0 end) EQUIPMENT_HOURS,
2161 sum(case when fact.plan_version_id = l_base_plan_ver_id then fact.LABOR_HRS else 0 end) BASE_LABOR_HOURS,
2162 sum(case when fact.plan_version_id = l_base_plan_ver_id then fact.EQUIPMENT_HOURS else 0 end) BASE_EQUIP_HOURS,
2163 sum(case when fact.plan_version_id = l_lpb_plan_ver_id then fact.LABOR_HRS else 0 end) LPB_LABOR_HOURS,
2164 sum(case when fact.plan_version_id = l_lpb_plan_ver_id then fact.EQUIPMENT_HOURS else 0 end) LPB_EQUIP_HOURS,
2165
2166 sum( case when fact.time_id <= l_end_period_id
2167 then
2168 decode(fact.plan_version_id, l_plan_ver_id, fact.ACT_LABOR_HRS, 0)
2169 else
2170 NULL
2171 end
2172 ) ACT_LABOR_HRS,
2173 sum( case when fact.time_id <= l_end_period_id
2174 then
2175 decode(fact.plan_version_id, l_plan_ver_id, fact.ACT_EQUIP_HRS, 0)
2176 else
2177 NULL
2178 end
2179 ) ACT_EQUIP_HRS,
2180 sum( case when fact.time_id <= l_end_period_id
2181 then
2182 decode(fact.plan_version_id, l_plan_ver_id, TXN_MASK* fact.act_labor_brdn_cost, 0 )
2183 else
2184 NULL
2185 end
2186 ) ACT_TXN_LABOR_BRDN_COST,
2187 sum( case when fact.time_id <= l_end_period_id
2188 then
2189 decode(fact.plan_version_id, l_plan_ver_id, TXN_MASK* fact.act_equip_brdn_cost, 0 )
2190 else
2191 NULL
2192 end
2193 ) ACT_TXN_EQUIP_BRDN_COST,
2194 sum( case when fact.time_id <= l_end_period_id
2195 then
2196 decode(fact.plan_version_id, l_plan_ver_id, TXN_MASK* fact.act_raw_cost, 0 )
2197 else
2198 NULL
2199 end
2200 ) ACT_TXN_RAW_COST,
2201 sum( case when fact.time_id <= l_end_period_id
2202 then
2203 decode(fact.plan_version_id, l_plan_ver_id, TXN_MASK* fact.act_brdn_cost, 0 )
2204 else
2205 NULL
2206 end
2207 ) ACT_TXN_BRDN_COST,
2208 sum( case when fact.time_id <= l_end_period_id
2209 then
2210 decode(fact.plan_version_id, l_plan_ver_id, PRJ_MASK* fact.act_labor_brdn_cost, 0)
2211 else
2212 NULL
2213 end
2214 ) ACT_PRJ_LABOR_BRDN_COST,
2215 sum( case when fact.time_id <= l_end_period_id
2216 then
2217 decode(fact.plan_version_id, l_plan_ver_id, PRJ_MASK* fact.act_equip_brdn_cost, 0)
2218 else
2219 NULL
2220 end
2221 ) ACT_PRJ_EQUIP_BRDN_COST,
2222 sum( case when fact.time_id <= l_end_period_id
2223 then
2224 decode(fact.plan_version_id, l_plan_ver_id, PRJ_MASK* fact.act_raw_cost, 0 )
2225 else
2226 NULL
2227 end
2228 ) ACT_PRJ_RAW_COST,
2229 sum( case when fact.time_id <= l_end_period_id
2230 then
2231 decode(fact.plan_version_id, l_plan_ver_id, PRJ_MASK* fact.act_brdn_cost, 0 )
2232 else
2233 NULL
2234 end
2235 ) ACT_PRJ_BRDN_COST,
2236 sum( case when fact.time_id <= l_end_period_id
2237 then
2238 decode(fact.plan_version_id, l_plan_ver_id, POU_MASK* fact.act_labor_brdn_cost, 0 )
2239 else
2240 NULL
2241 end
2242 ) ACT_POU_LABOR_BRDN_COST,
2243 sum( case when fact.time_id <= l_end_period_id
2244 then
2245 decode(fact.plan_version_id, l_plan_ver_id, POU_MASK* fact.act_equip_brdn_cost, 0 )
2246 else
2247 NULL
2248 end
2249 ) ACT_POU_EQUIP_BRDN_COST,
2250 sum( case when fact.time_id <= l_end_period_id
2251 then
2252 decode(fact.plan_version_id, l_plan_ver_id, POU_MASK* fact.act_raw_cost, 0 )
2253 else
2254 NULL
2255 end
2256 ) ACT_POU_RAW_COST,
2257 sum( case when fact.time_id <= l_end_period_id
2258 then
2259 decode(fact.plan_version_id, l_plan_ver_id, POU_MASK* fact.act_brdn_cost, 0 )
2260 else
2261 NULL
2262 end
2263 ) ACT_POU_BRDN_COST,
2264
2265 sum(case when fact.plan_version_id = l_plan_ver_id then fact.ETC_LABOR_HRS else 0 end) ETC_LABOR_HRS,
2266 sum(case when fact.plan_version_id = l_plan_ver_id then fact.ETC_EQUIP_HRS else 0 end) ETC_EQUIP_HRS,
2267 sum(case when fact.plan_version_id = l_plan_ver_id then fact.ETC_labor_brdn_cost*TXN_MASK else 0 end) ETC_TXN_LABOR_BRDN_COST,
2268 sum(case when fact.plan_version_id = l_plan_ver_id then fact.ETC_equip_brdn_cost*TXN_MASK else 0 end) ETC_TXN_EQUIP_BRDN_COST,
2269 sum(case when fact.plan_version_id = l_plan_ver_id then fact.ETC_raw_cost*TXN_MASK else 0 end) ETC_TXN_RAW_COST,
2270 sum(case when fact.plan_version_id = l_plan_ver_id then fact.ETC_brdn_cost*TXN_MASK else 0 end) ETC_TXN_BRDN_COST,
2271 sum(case when fact.plan_version_id = l_plan_ver_id then fact.ETC_labor_brdn_cost*PRJ_MASK else 0 end) ETC_PRJ_LABOR_BRDN_COST,
2272 sum(case when fact.plan_version_id = l_plan_ver_id then fact.ETC_equip_brdn_cost*PRJ_MASK else 0 end) ETC_PRJ_EQUIP_BRDN_COST,
2273 sum(case when fact.plan_version_id = l_plan_ver_id then fact.ETC_raw_cost*PRJ_MASK else 0 end) ETC_PRJ_RAW_COST,
2274 sum(case when fact.plan_version_id = l_plan_ver_id then fact.ETC_brdn_cost*PRJ_MASK else 0 end) ETC_PRJ_BRDN_COST,
2275 sum(case when fact.plan_version_id = l_plan_ver_id then fact.ETC_labor_brdn_cost*POU_MASK else 0 end) ETC_POU_LABOR_BRDN_COST,
2276 sum(case when fact.plan_version_id = l_plan_ver_id then fact.ETC_equip_brdn_cost*POU_MASK else 0 end) ETC_POU_EQUIP_BRDN_COST,
2277 sum(case when fact.plan_version_id = l_plan_ver_id then fact.ETC_raw_cost*POU_MASK else 0 end) ETC_POU_RAW_COST,
2278 sum(case when fact.plan_version_id = l_plan_ver_id then fact.ETC_brdn_cost*POU_MASK else 0 end) ETC_POU_BRDN_COST,
2279 sum( case when fact.time_id <= l_end_period_id
2280 then
2281 decode(fact.plan_version_id, l_plan_ver_id, TXN_MASK*fact.act_labor_raw_cost,0)
2282 else
2283 NULL
2284 end
2285 ) ACT_TXN_LABOR_RAW_COST,
2286 sum( case when fact.time_id <= l_end_period_id
2287 then
2288 decode(fact.plan_version_id, l_plan_ver_id, PRJ_MASK* fact.act_labor_raw_cost,0)
2289 else
2290 NULL
2291 end
2292 ) ACT_PRJ_LABOR_RAW_COST,
2293 sum( case when fact.time_id <= l_end_period_id
2294 then
2295 decode(fact.plan_version_id, l_plan_ver_id, POU_MASK* fact.act_labor_raw_cost,0)
2296 else
2297 NULL
2298 end
2299 ) ACT_POU_LABOR_RAW_COST,
2300 sum( case when fact.time_id <= l_end_period_id
2301 then
2302 decode(fact.plan_version_id, l_plan_ver_id, TXN_MASK*fact.act_equip_raw_cost,0)
2303 else
2304 NULL
2305 end
2306 ) ACT_TXN_EQUIP_RAW_COST,
2307 sum( case when fact.time_id <= l_end_period_id
2308 then
2309 decode(fact.plan_version_id, l_plan_ver_id, PRJ_MASK* fact.act_equip_raw_cost,0)
2310 else
2311 NULL
2312 end
2313 ) ACT_PRJ_EQUIP_RAW_COST,
2314 sum( case when fact.time_id <= l_end_period_id
2315 then
2316 decode(fact.plan_version_id, l_plan_ver_id, POU_MASK* fact.act_equip_raw_cost,0)
2317 else
2318 NULL
2319 end
2320 ) ACT_POU_EQUIP_RAW_COST,
2321
2322 sum(case when fact.plan_version_id = l_plan_ver_id then fact.ETC_labor_raw_cost*TXN_MASK else 0 end) ETC_TXN_LABOR_RAW_COST,
2323 sum(case when fact.plan_version_id = l_plan_ver_id then fact.ETC_labor_raw_cost*PRJ_MASK else 0 end) ETC_PRJ_LABOR_RAW_COST,
2324 sum(case when fact.plan_version_id = l_plan_ver_id then fact.ETC_labor_raw_cost*POU_MASK else 0 end) ETC_POU_LABOR_RAW_COST,
2325 sum(case when fact.plan_version_id = l_plan_ver_id then fact.ETC_equip_raw_cost*TXN_MASK else 0 end) ETC_TXN_EQUIP_RAW_COST,
2326 sum(case when fact.plan_version_id = l_plan_ver_id then fact.ETC_equip_raw_cost*PRJ_MASK else 0 end) ETC_PRJ_EQUIP_RAW_COST,
2327 sum(case when fact.plan_version_id = l_plan_ver_id then fact.ETC_equip_raw_cost*POU_MASK else 0 end) ETC_POU_EQUIP_RAW_COST,
2328 /* Retrival of Project Level Data Starts*/
2329 sum(case when fact.plan_version_id = l_plan_ver_id then fact.raw_cost*PRJ_MASK*ROLLUP_MASK else 0 end) P_RAW_COST,
2330 sum(case when fact.plan_version_id = l_plan_ver_id then fact.brdn_cost*PRJ_MASK*ROLLUP_MASK else 0 end) P_BRDN_COST,
2331 sum(case when fact.plan_version_id = l_plan_ver_id then fact.revenue*PRJ_MASK*ROLLUP_MASK else 0 end) P_REVENUE,
2332 sum(case when fact.plan_version_id = l_plan_ver_id then fact.labor_raw_cost*PRJ_MASK*ROLLUP_MASK else 0 end) P_LBR_RAW_COST,
2333 sum(case when fact.plan_version_id = l_plan_ver_id then fact.labor_brdn_cost*PRJ_MASK*ROLLUP_MASK else 0 end) P_LBR_BRDN_COST,
2334 sum(case when fact.plan_version_id = l_plan_ver_id then fact.equipment_raw_cost*PRJ_MASK*ROLLUP_MASK else 0 end) P_EQP_RAW_COST,
2335 sum(case when fact.plan_version_id = l_plan_ver_id then fact.equipment_brdn_cost*PRJ_MASK*ROLLUP_MASK else 0 end) P_EQP_BRDN_COST,
2336 sum(case when fact.plan_version_id = l_base_plan_ver_id then fact.raw_cost*PRJ_MASK*ROLLUP_MASK else 0 end) P_BASE_RAW_COST,
2337 sum(case when fact.plan_version_id = l_base_plan_ver_id then fact.brdn_cost*PRJ_MASK*ROLLUP_MASK else 0 end) P_BASE_BRDN_COST,
2338 sum(case when fact.plan_version_id = l_base_plan_ver_id then fact.labor_raw_cost*PRJ_MASK*ROLLUP_MASK else 0 end) P_BASE_LBR_RAW_COST,
2339 sum(case when fact.plan_version_id = l_base_plan_ver_id then fact.labor_brdn_cost*PRJ_MASK*ROLLUP_MASK else 0 end) P_BASE_LBR_BRDN_COST,
2340 sum(case when fact.plan_version_id = l_base_plan_ver_id then fact.equipment_raw_cost*PRJ_MASK*ROLLUP_MASK else 0 end) P_BASE_EQP_RAW_COST,
2341 sum(case when fact.plan_version_id = l_base_plan_ver_id then fact.equipment_brdn_cost*PRJ_MASK*ROLLUP_MASK else 0 end) P_BASE_EQP_BRDN_COST,
2342 sum(case when fact.plan_version_id = l_lpb_plan_ver_id then fact.raw_cost*PRJ_MASK*ROLLUP_MASK else 0 end) P_LPB_RAW_COST,
2343 sum(case when fact.plan_version_id = l_lpb_plan_ver_id then fact.brdn_cost*PRJ_MASK*ROLLUP_MASK else 0 end) P_LPB_BRDN_COST,
2344 sum(case when fact.plan_version_id = l_lpb_plan_ver_id then fact.labor_raw_cost*PRJ_MASK*ROLLUP_MASK else 0 end) P_LPB_LBR_RAW_COST,
2345 sum(case when fact.plan_version_id = l_lpb_plan_ver_id then fact.labor_brdn_cost*PRJ_MASK*ROLLUP_MASK else 0 end) P_LPB_LBR_BRDN_COST,
2346 sum(case when fact.plan_version_id = l_lpb_plan_ver_id then fact.equipment_raw_cost*PRJ_MASK*ROLLUP_MASK else 0 end) P_LPB_EQP_RAW_COST,
2347 sum(case when fact.plan_version_id = l_lpb_plan_ver_id then fact.equipment_brdn_cost*PRJ_MASK*ROLLUP_MASK else 0 end) P_LPB_EQP_BRDN_COST,
2348 sum(case when fact.plan_version_id = l_plan_ver_id then fact.LABOR_HRS*ROLLUP_MASK else 0 end) P_LBR_HOURS,
2349 sum(case when fact.plan_version_id = l_plan_ver_id then fact.EQUIPMENT_HOURS*ROLLUP_MASK else 0 end) P_EQP_HOURS,
2350 sum(case when fact.plan_version_id = l_base_plan_ver_id then fact.LABOR_HRS*ROLLUP_MASK else 0 end) P_BASE_LBR_HOURS,
2351 sum(case when fact.plan_version_id = l_base_plan_ver_id then fact.EQUIPMENT_HOURS*ROLLUP_MASK else 0 end) P_BASE_EQP_HOURS,
2352 sum(case when fact.plan_version_id = l_lpb_plan_ver_id then fact.LABOR_HRS*ROLLUP_MASK else 0 end) P_LPB_LBR_HOURS,
2353 sum(case when fact.plan_version_id = l_lpb_plan_ver_id then fact.EQUIPMENT_HOURS*ROLLUP_MASK else 0 end) P_LPB_EQP_HOURS,
2354
2355
2356 sum( case when fact.time_id <= l_end_period_id
2357 then
2358 decode(fact.plan_version_id, l_plan_ver_id, ROLLUP_MASK*fact.ACT_LABOR_HRS, 0)
2359 else
2360 NULL
2361 end
2362 ) P_ACT_LBR_HOURS,
2363 sum( case when fact.time_id <= l_end_period_id
2364 then
2365 decode(fact.plan_version_id, l_plan_ver_id, ROLLUP_MASK*fact.ACT_EQUIP_HRS, 0)
2366 else
2367 NULL
2368 end
2369 ) P_ACT_EQP_HOURS,
2370 sum( case when fact.time_id <= l_end_period_id
2371 then
2372 decode(fact.plan_version_id, l_plan_ver_id, PRJ_MASK*ROLLUP_MASK* fact.act_labor_brdn_cost, 0)
2373 else
2374 NULL
2375 end
2376 ) P_ACT_LBR_BRDN_COST,
2377 sum( case when fact.time_id <= l_end_period_id
2378 then
2379 decode(fact.plan_version_id, l_plan_ver_id, PRJ_MASK*ROLLUP_MASK* fact.act_equip_brdn_cost, 0)
2380 else
2381 NULL
2382 end
2383 ) P_ACT_EQP_BRDN_COST,
2384 sum( case when fact.time_id <= l_end_period_id
2385 then
2386 decode(fact.plan_version_id, l_plan_ver_id, PRJ_MASK*ROLLUP_MASK* fact.act_raw_cost, 0 )
2387 else
2388 NULL
2389 end
2390 ) P_ACT_RAW_COST,
2391 sum( case when fact.time_id <= l_end_period_id
2392 then
2393 decode(fact.plan_version_id, l_plan_ver_id, PRJ_MASK*ROLLUP_MASK* fact.act_brdn_cost, 0 )
2394 else
2395 NULL
2396 end
2397 ) P_ACT_BRDN_COST,
2398 sum( case when fact.time_id <= l_end_period_id
2399 then
2400 decode(fact.plan_version_id, l_plan_ver_id, PRJ_MASK*ROLLUP_MASK* fact.act_labor_raw_cost,0)
2401 else
2402 NULL
2403 end
2404 ) P_ACT_LBR_RAW_COST,
2405 sum( case when fact.time_id <= l_end_period_id
2406 then
2407 decode(fact.plan_version_id, l_plan_ver_id, PRJ_MASK*ROLLUP_MASK* fact.act_equip_raw_cost,0)
2408 else
2409 NULL
2410 end
2411 ) P_ACT_EQP_RAW_COST,
2412
2413 sum(case when fact.plan_version_id = l_plan_ver_id then fact.ETC_EQUIP_HRS*ROLLUP_MASK else 0 end) P_ETC_EQP_HOURS,
2414 sum(case when fact.plan_version_id = l_plan_ver_id then fact.ETC_LABOR_HRS*ROLLUP_MASK else 0 end) P_ETC_LBR_HOURS,
2415 sum(case when fact.plan_version_id = l_plan_ver_id then fact.ETC_raw_cost*PRJ_MASK*ROLLUP_MASK else 0 end) P_ETC_RAW_COST,
2416 sum(case when fact.plan_version_id = l_plan_ver_id then fact.ETC_brdn_cost*PRJ_MASK*ROLLUP_MASK else 0 end) P_ETC_BRDN_COST,
2417 sum(case when fact.plan_version_id = l_plan_ver_id then fact.ETC_labor_brdn_cost*PRJ_MASK*ROLLUP_MASK else 0 end) P_ETC_LBR_BRDN_COST,
2418 sum(case when fact.plan_version_id = l_plan_ver_id then fact.ETC_equip_brdn_cost*PRJ_MASK*ROLLUP_MASK else 0 end) P_ETC_EQP_BRDN_COST,
2419 sum(case when fact.plan_version_id = l_plan_ver_id then fact.ETC_labor_raw_cost*PRJ_MASK*ROLLUP_MASK else 0 end) P_ETC_LBR_RAW_COST,
2420 sum(case when fact.plan_version_id = l_plan_ver_id then fact.ETC_equip_raw_cost*PRJ_MASK*ROLLUP_MASK else 0 end) P_ETC_EQP_RAW_COST
2421 /* Retrival of Project Level Data Ends*/
2422 FROM
2423 (
2424 SELECT
2425 PROJECT_ID ,
2426 PROJECT_ORG_ID ,
2427 PROJECT_ORGANIZATION_ID ,
2428 PROJECT_ELEMENT_ID ,
2429 TIME_ID ,
2430 PERIOD_TYPE_ID ,
2431 CALENDAR_TYPE ,
2432 RBS_AGGR_LEVEL ,
2433 WBS_ROLLUP_FLAG ,
2434 PRG_ROLLUP_FLAG ,
2435 decode ( cc_src.curr_type, 'TXN', 16, 'PRJ', 8, 'POU', 4) CURR_RECORD_TYPE_ID ,
2436 CURRENCY_CODE ,
2437 RBS_ELEMENT_ID ,
2438 RBS_VERSION_ID ,
2439 PLAN_VERSION_ID ,
2440 -- PLAN_TYPE_ID ,
2441 RAW_COST ,
2442 BRDN_COST ,
2443 REVENUE ,
2444 BILL_RAW_COST ,
2445 BILL_BRDN_COST ,
2446 BILL_LABOR_RAW_COST ,
2447 BILL_LABOR_BRDN_COST ,
2448 decode ( cc_src.curr_type, 'PRJ', BILL_LABOR_HRS, 0) BILL_LABOR_HRS ,
2449 EQUIPMENT_RAW_COST ,
2450 EQUIPMENT_BRDN_COST ,
2451 CAPITALIZABLE_RAW_COST ,
2452 CAPITALIZABLE_BRDN_COST ,
2453 LABOR_RAW_COST ,
2454 LABOR_BRDN_COST ,
2455 decode ( cc_src.curr_type, 'PRJ', LABOR_HRS, 0) LABOR_HRS ,
2456 LABOR_REVENUE ,
2457 decode ( cc_src.curr_type, 'PRJ', EQUIPMENT_HOURS, 0) EQUIPMENT_HOURS ,
2458 decode ( cc_src.curr_type, 'PRJ', BILLABLE_EQUIPMENT_HOURS, 0) BILLABLE_EQUIPMENT_HOURS ,
2459 SUP_INV_COMMITTED_COST ,
2460 PO_COMMITTED_COST ,
2461 PR_COMMITTED_COST ,
2462 OTH_COMMITTED_COST ,
2463 CUSTOM1 ,
2464 CUSTOM2 ,
2465 CUSTOM3 ,
2466 CUSTOM4 ,
2467 CUSTOM5 ,
2468 CUSTOM6 ,
2469 CUSTOM7 ,
2470 CUSTOM8 ,
2471 CUSTOM9 ,
2472 CUSTOM10 ,
2473 CUSTOM11 ,
2474 CUSTOM12 ,
2475 CUSTOM13 ,
2476 CUSTOM14 ,
2477 CUSTOM15 ,
2478 decode ( cc_src.curr_type, 'PRJ', ACT_LABOR_HRS, 0) ACT_LABOR_HRS ,
2479 decode ( cc_src.curr_type, 'PRJ', ACT_EQUIP_HRS, 0) ACT_EQUIP_HRS ,
2480 ACT_LABOR_BRDN_COST ,
2481 ACT_EQUIP_BRDN_COST ,
2482 ACT_BRDN_COST ,
2483 decode ( cc_src.curr_type, 'PRJ', ETC_LABOR_HRS, 0) ETC_LABOR_HRS ,
2484 decode ( cc_src.curr_type, 'PRJ', ETC_EQUIP_HRS, 0) ETC_EQUIP_HRS ,
2485 ETC_LABOR_BRDN_COST ,
2486 ETC_EQUIP_BRDN_COST ,
2487 ETC_BRDN_COST ,
2488 ACT_RAW_COST ,
2489 ACT_REVENUE ,
2490 ETC_RAW_COST ,
2491 ACT_LABOR_RAW_COST ,
2492 ACT_EQUIP_RAW_COST ,
2493 ETC_LABOR_RAW_COST ,
2494 ETC_EQUIP_RAW_COST ,
2495 decode(fact.prg_rollup_flag,'N',1,0) ROLLUP_MASK,
2496 decode ( cc_src.curr_type, 'TXN',1,0) TXN_MASK,
2497 decode ( cc_src.curr_type, 'PRJ',1,0) PRJ_MASK,
2498 decode ( cc_src.curr_type, 'POU',1,0) POU_MASK
2499 from
2500 pji_fp_xbs_accum_f fact,
2501 /* (
2502 SELECT 'TXN' curr_type FROM DUAL
2503 UNION ALL
2504 SELECT 'PRJ' curr_type FROM DUAL
2505 UNION ALL
2506 SELECT 'POU' curr_type FROM DUAL
2507 ) cc_src commented for bug 14040849 */
2508 ( SELECT DECODE( ROWNUM, 1, 'TXN',2, 'PRJ', 3,'POU') CURR_TYPE
2509 FROM DUAL CONNECT BY ROWNUM < 4 ) cc_src
2510 where 1=1
2511 and ( decode ( cc_src.curr_type, 'TXN', DECODE(BITAND(fact.curr_record_type_id, 16), 16, 'a'), 'b') = 'a'
2512 or decode ( cc_src.curr_type, 'PRJ', DECODE(BITAND(fact.curr_record_type_id, 8), 8, 'a'), 'b') = 'a'
2513 or decode ( cc_src.curr_type, 'POU', DECODE(BITAND(fact.curr_record_type_id, 4), 4, 'a'), 'b') = 'a' )
2514 ) fact,
2515 pji_plan_extr_tmp head
2516 WHERE 1=1
2517 and fact.PROJECT_ID = head.PROJECT_ID
2518 and fact.PLAN_VERSION_ID in (l_plan_ver_id,l_lpb_plan_ver_id,l_base_plan_ver_id)
2519 and fact.PROJECT_ELEMENT_ID = head.plan_ver_id -- plan_version_id contains the project_element_id
2520 and fact.CALENDAR_TYPE = l_cal_type
2521 and fact.PERIOD_TYPE_ID = l_prd_type_id
2522 and BITAND(fact.CURR_RECORD_TYPE_ID,28) <= 28
2523 and BITAND(fact.CURR_RECORD_TYPE_ID,28) >= 4
2524 and fact.RBS_AGGR_LEVEL = 'T'
2525 and fact.prg_rollup_flag ='N'
2526 and fact.rbs_version_id = -1 /* Bug 6930211 */
2527 GROUP BY
2528 fact.PROJECT_ID,
2529 fact.PROJECT_ELEMENT_ID,
2530 fact.CALENDAR_TYPE;
2531
2532
2533 -- OLAP START
2534
2535 else
2536
2537
2538 null;
2539
2540 INSERT INTO pji_fm_xbs_accum_tmp1 (
2541 PROJECT_ID, STRUCT_VERSION_ID, PROJECT_ELEMENT_ID, CALENDAR_TYPE,
2542 PERIOD_NAME, PLAN_VERSION_ID, QUANTITY, TXN_RAW_COST,
2543 TXN_BRDN_COST, TXN_REVENUE, TXN_LABOR_RAW_COST, TXN_LABOR_BRDN_COST,
2544 TXN_EQUIP_RAW_COST, TXN_EQUIP_BRDN_COST, TXN_BASE_RAW_COST, TXN_BASE_BRDN_COST,
2545 TXN_BASE_LABOR_RAW_COST, TXN_BASE_LABOR_BRDN_COST,TXN_BASE_EQUIP_RAW_COST, TXN_BASE_EQUIP_BRDN_COST,
2546 TXN_LPB_RAW_COST, TXN_LPB_BRDN_COST, TXN_LPB_LABOR_RAW_COST, TXN_LPB_LABOR_BRDN_COST,
2547 TXN_LPB_EQUIP_RAW_COST, TXN_LPB_EQUIP_BRDN_COST, PRJ_RAW_COST, PRJ_BRDN_COST,
2548 PRJ_REVENUE, PRJ_LABOR_RAW_COST, PRJ_LABOR_BRDN_COST, PRJ_EQUIP_RAW_COST,
2549 PRJ_EQUIP_BRDN_COST, PRJ_BASE_RAW_COST, PRJ_BASE_BRDN_COST, PRJ_BASE_LABOR_RAW_COST,
2550 PRJ_BASE_LABOR_BRDN_COST,PRJ_BASE_EQUIP_RAW_COST, PRJ_BASE_EQUIP_BRDN_COST,PRJ_LPB_RAW_COST,
2551 PRJ_LPB_BRDN_COST, PRJ_LPB_LABOR_RAW_COST, PRJ_LPB_LABOR_BRDN_COST, PRJ_LPB_EQUIP_RAW_COST,
2552 PRJ_LPB_EQUIP_BRDN_COST, POU_RAW_COST, POU_BRDN_COST, POU_REVENUE,
2553 POU_LABOR_RAW_COST, POU_LABOR_BRDN_COST, POU_EQUIP_RAW_COST, POU_EQUIP_BRDN_COST,
2554 POU_BASE_RAW_COST, POU_BASE_BRDN_COST, POU_BASE_LABOR_RAW_COST, POU_BASE_LABOR_BRDN_COST,
2555 POU_BASE_EQUIP_RAW_COST, POU_BASE_EQUIP_BRDN_COST,POU_LPB_RAW_COST, POU_LPB_BRDN_COST,
2556 POU_LPB_LABOR_RAW_COST, POU_LPB_LABOR_BRDN_COST, POU_LPB_EQUIP_RAW_COST, POU_LPB_EQUIP_BRDN_COST,
2557 LABOR_HOURS, EQUIPMENT_HOURS, BASE_LABOR_HOURS, BASE_EQUIP_HOURS,
2558 LPB_LABOR_HOURS, LPB_EQUIP_HOURS, ACT_LABOR_HRS, ACT_EQUIP_HRS,
2559 ACT_TXN_LABOR_BRDN_COST, ACT_TXN_EQUIP_BRDN_COST, ACT_TXN_RAW_COST, ACT_TXN_BRDN_COST,
2560 ACT_PRJ_LABOR_BRDN_COST, ACT_PRJ_EQUIP_BRDN_COST, ACT_PRJ_RAW_COST, ACT_PRJ_BRDN_COST,
2561 ACT_POU_LABOR_BRDN_COST, ACT_POU_EQUIP_BRDN_COST, ACT_POU_RAW_COST, ACT_POU_BRDN_COST,
2562 ETC_LABOR_HRS, ETC_EQUIP_HRS, ETC_TXN_LABOR_BRDN_COST, ETC_TXN_EQUIP_BRDN_COST,
2563 ETC_TXN_RAW_COST, ETC_TXN_BRDN_COST, ETC_PRJ_LABOR_BRDN_COST, ETC_PRJ_EQUIP_BRDN_COST,
2564 ETC_PRJ_RAW_COST, ETC_PRJ_BRDN_COST, ETC_POU_LABOR_BRDN_COST, ETC_POU_EQUIP_BRDN_COST,
2565 ETC_POU_RAW_COST, ETC_POU_BRDN_COST, ACT_TXN_LABOR_RAW_COST , ACT_PRJ_LABOR_RAW_COST,
2566 ACT_POU_LABOR_RAW_COST, ACT_TXN_EQUIP_RAW_COST, ACT_PRJ_EQUIP_RAW_COST, ACT_POU_EQUIP_RAW_COST,
2567 ETC_TXN_LABOR_RAW_COST, ETC_PRJ_LABOR_RAW_COST, ETC_POU_LABOR_RAW_COST, ETC_TXN_EQUIP_RAW_COST,
2568 ETC_PRJ_EQUIP_RAW_COST, ETC_POU_EQUIP_RAW_COST, P_RAW_COST,P_BRDN_COST, P_REVENUE,
2569 P_LBR_RAW_COST, P_LBR_BRDN_COST, P_EQP_RAW_COST, P_EQP_BRDN_COST,
2570 P_BASE_RAW_COST, P_BASE_BRDN_COST, P_BASE_LBR_RAW_COST, P_BASE_LBR_BRDN_COST,
2571 P_BASE_EQP_RAW_COST, P_BASE_EQP_BRDN_COST, P_LPB_RAW_COST, P_LPB_BRDN_COST,
2572 P_LPB_LBR_RAW_COST, P_LPB_LBR_BRDN_COST, P_LPB_EQP_RAW_COST, P_LPB_EQP_BRDN_COST,
2573 P_LBR_HOURS, P_EQP_HOURS, P_BASE_LBR_HOURS, P_BASE_EQP_HOURS,
2574 P_LPB_LBR_HOURS, P_LPB_EQP_HOURS, P_ACT_LBR_HOURS, P_ACT_EQP_HOURS,
2575 P_ACT_LBR_BRDN_COST, P_ACT_EQP_BRDN_COST, P_ACT_RAW_COST, P_ACT_BRDN_COST,
2576 P_ACT_LBR_RAW_COST, P_ACT_EQP_RAW_COST, P_ETC_EQP_HOURS, P_ETC_LBR_HOURS,
2577 P_ETC_RAW_COST, P_ETC_BRDN_COST, P_ETC_LBR_BRDN_COST, P_ETC_EQP_BRDN_COST,
2578 P_ETC_LBR_RAW_COST,P_ETC_EQP_RAW_COST
2579 )
2580 SELECT /*+ LEADING(head) use_hash(fact) */ -- Modified hints for bug 13897252
2581 fact.PROJECT_ID,
2582 l_wking_struct_ver_id STRUCT_VERSION_ID,
2583 fact.PROJECT_ELEMENT_ID PROJECT_ELEMENT_ID,
2584 'A',
2585 null PERIOD_NAME,
2586 l_plan_ver_id PLAN_VERSION_ID,
2587 0 QUANTITY,
2588 sum(case when fact.plan_version_id = l_plan_ver_id then fact.raw_cost*TXN_MASK else 0 end) TXN_RAW_COST,
2589 sum(case when fact.plan_version_id = l_plan_ver_id then fact.brdn_cost*TXN_MASK else 0 end) TXN_BRDN_COST,
2590 sum(case when fact.plan_version_id = l_plan_ver_id then fact.revenue*TXN_MASK else 0 end) TXN_REVENUE,
2591 sum(case when fact.plan_version_id = l_plan_ver_id then fact.labor_raw_cost*TXN_MASK else 0 end) TXN_LABOR_RAW_COST,
2592 sum(case when fact.plan_version_id = l_plan_ver_id then fact.labor_brdn_cost*TXN_MASK else 0 end) TXN_LABOR_BRDN_COST,
2593 sum(case when fact.plan_version_id = l_plan_ver_id then fact.equipment_raw_cost*TXN_MASK else 0 end) TXN_EQUIP_RAW_COST,
2594 sum(case when fact.plan_version_id = l_plan_ver_id then fact.equipment_brdn_cost*TXN_MASK else 0 end) TXN_EQUIP_BRDN_COST,
2595 sum(case when fact.plan_version_id = l_base_plan_ver_id then fact.raw_cost*TXN_MASK else 0 end) TXN_BASE_RAW_COST,
2596 sum(case when fact.plan_version_id = l_base_plan_ver_id then fact.brdn_cost*TXN_MASK else 0 end) TXN_BASE_BRDN_COST,
2597 sum(case when fact.plan_version_id = l_base_plan_ver_id then fact.labor_raw_cost*TXN_MASK else 0 end) TXN_BASE_LABOR_RAW_COST,
2598 sum(case when fact.plan_version_id = l_base_plan_ver_id then fact.labor_brdn_cost*TXN_MASK else 0 end) TXN_BASE_LABOR_BRDN_COST,
2599 sum(case when fact.plan_version_id = l_base_plan_ver_id then fact.equipment_raw_cost*TXN_MASK else 0 end) TXN_BASE_EQUIP_RAW_COST,
2600 sum(case when fact.plan_version_id = l_base_plan_ver_id then fact.equipment_brdn_cost*TXN_MASK else 0 end) TXN_BASE_EQUIP_BRDN_COST,
2601 sum(case when fact.plan_version_id = l_lpb_plan_ver_id then fact.raw_cost*TXN_MASK else 0 end) TXN_LPB_RAW_COST,
2602 sum(case when fact.plan_version_id = l_lpb_plan_ver_id then fact.brdn_cost*TXN_MASK else 0 end) TXN_LPB_BRDN_COST,
2603 sum(case when fact.plan_version_id = l_lpb_plan_ver_id then fact.labor_raw_cost*TXN_MASK else 0 end) TXN_LPB_LABOR_RAW_COST,
2604 sum(case when fact.plan_version_id = l_lpb_plan_ver_id then fact.labor_brdn_cost*TXN_MASK else 0 end) TXN_LPB_LABOR_BRDN_COST,
2605 sum(case when fact.plan_version_id = l_lpb_plan_ver_id then fact.equipment_raw_cost*TXN_MASK else 0 end) TXN_LPB_EQUIP_RAW_COST,
2606 sum(case when fact.plan_version_id = l_lpb_plan_ver_id then fact.equipment_brdn_cost*TXN_MASK else 0 end) TXN_LPB_EQUIP_BRDN_COST,
2607 sum(case when fact.plan_version_id = l_plan_ver_id then fact.raw_cost*PRJ_MASK else 0 end) PRJ_RAW_COST,
2608 sum(case when fact.plan_version_id = l_plan_ver_id then fact.brdn_cost*PRJ_MASK else 0 end) PRJ_BRDN_COST,
2609 sum(case when fact.plan_version_id = l_plan_ver_id then fact.revenue*PRJ_MASK else 0 end) PRJ_REVENUE,
2610 sum(case when fact.plan_version_id = l_plan_ver_id then fact.labor_raw_cost*PRJ_MASK else 0 end) PRJ_LABOR_RAW_COST,
2611 sum(case when fact.plan_version_id = l_plan_ver_id then fact.labor_brdn_cost*PRJ_MASK else 0 end) PRJ_LABOR_BRDN_COST,
2612 sum(case when fact.plan_version_id = l_plan_ver_id then fact.equipment_raw_cost*PRJ_MASK else 0 end) PRJ_EQUIP_RAW_COST,
2613 sum(case when fact.plan_version_id = l_plan_ver_id then fact.equipment_brdn_cost*PRJ_MASK else 0 end) PRJ_EQUIP_BRDN_COST,
2614 sum(case when fact.plan_version_id = l_base_plan_ver_id then fact.raw_cost*PRJ_MASK else 0 end) PRJ_BASE_RAW_COST,
2615 sum(case when fact.plan_version_id = l_base_plan_ver_id then fact.brdn_cost*PRJ_MASK else 0 end) PRJ_BASE_BRDN_COST,
2616 sum(case when fact.plan_version_id = l_base_plan_ver_id then fact.labor_raw_cost*PRJ_MASK else 0 end) PRJ_BASE_LABOR_RAW_COST,
2617 sum(case when fact.plan_version_id = l_base_plan_ver_id then fact.labor_brdn_cost*PRJ_MASK else 0 end) PRJ_BASE_LABOR_BRDN_COST,
2618 sum(case when fact.plan_version_id = l_base_plan_ver_id then fact.equipment_raw_cost*PRJ_MASK else 0 end) PRJ_BASE_EQUIP_RAW_COST,
2619 sum(case when fact.plan_version_id = l_base_plan_ver_id then fact.equipment_brdn_cost*PRJ_MASK else 0 end) PRJ_BASE_EQUIP_BRDN_COST,
2620 sum(case when fact.plan_version_id = l_lpb_plan_ver_id then fact.raw_cost*PRJ_MASK else 0 end) PRJ_LPB_RAW_COST,
2621 sum(case when fact.plan_version_id = l_lpb_plan_ver_id then fact.brdn_cost*PRJ_MASK else 0 end) PRJ_LPB_BRDN_COST,
2622 sum(case when fact.plan_version_id = l_lpb_plan_ver_id then fact.labor_raw_cost*PRJ_MASK else 0 end) PRJ_LPB_LABOR_RAW_COST,
2623 sum(case when fact.plan_version_id = l_lpb_plan_ver_id then fact.labor_brdn_cost*PRJ_MASK else 0 end) PRJ_LPB_LABOR_BRDN_COST,
2624 sum(case when fact.plan_version_id = l_lpb_plan_ver_id then fact.equipment_raw_cost*PRJ_MASK else 0 end) PRJ_LBP_EQUIP_RAW_COST,
2625 sum(case when fact.plan_version_id = l_lpb_plan_ver_id then fact.equipment_brdn_cost*PRJ_MASK else 0 end) PRJ_LBP_EQUIP_BRDN_COST,
2626 sum(case when fact.plan_version_id = l_plan_ver_id then fact.raw_cost*POU_MASK else 0 end) POU_RAW_COST,
2627 sum(case when fact.plan_version_id = l_plan_ver_id then fact.brdn_cost*POU_MASK else 0 end) POU_BRDN_COST,
2628 sum(case when fact.plan_version_id = l_plan_ver_id then fact.revenue*POU_MASK else 0 end) POU_REVENUE,
2629 sum(case when fact.plan_version_id = l_plan_ver_id then fact.labor_raw_cost*POU_MASK else 0 end) POU_LABOR_RAW_COST,
2630 sum(case when fact.plan_version_id = l_plan_ver_id then fact.labor_brdn_cost*POU_MASK else 0 end) POU_LABOR_BRDN_COST,
2631 sum(case when fact.plan_version_id = l_plan_ver_id then fact.equipment_raw_cost*POU_MASK else 0 end) POU_EQUIP_RAW_COST,
2632 sum(case when fact.plan_version_id = l_plan_ver_id then fact.equipment_brdn_cost*POU_MASK else 0 end) POU_EQUIP_BRDN_COST,
2633 sum(case when fact.plan_version_id = l_base_plan_ver_id then fact.raw_cost*POU_MASK else 0 end) POU_BASE_RAW_COST,
2634 sum(case when fact.plan_version_id = l_base_plan_ver_id then fact.brdn_cost*POU_MASK else 0 end) POU_BASE_BRDN_COST,
2635 sum(case when fact.plan_version_id = l_base_plan_ver_id then fact.labor_raw_cost*POU_MASK else 0 end) POU_BASE_LABOR_RAW_COST,
2636 sum(case when fact.plan_version_id = l_base_plan_ver_id then fact.labor_brdn_cost*POU_MASK else 0 end) POU_BASE_LABOR_BRDN_COST,
2637 sum(case when fact.plan_version_id = l_base_plan_ver_id then fact.equipment_raw_cost*POU_MASK else 0 end) POU_BASE_EQUIP_RAW_COST,
2638 sum(case when fact.plan_version_id = l_base_plan_ver_id then fact.equipment_brdn_cost*POU_MASK else 0 end) POU_BASE_EQUIP_BRDN_COST,
2639 sum(case when fact.plan_version_id = l_lpb_plan_ver_id then fact.raw_cost*POU_MASK else 0 end) POU_LPB_RAW_COST,
2640 sum(case when fact.plan_version_id = l_lpb_plan_ver_id then fact.brdn_cost*POU_MASK else 0 end) POU_LPB_BRDN_COST,
2641 sum(case when fact.plan_version_id = l_lpb_plan_ver_id then fact.labor_raw_cost*POU_MASK else 0 end) POU_LPB_LABOR_RAW_COST,
2642 sum(case when fact.plan_version_id = l_lpb_plan_ver_id then fact.labor_brdn_cost*POU_MASK else 0 end) POU_LPB_LABOR_BRDN_COST,
2643 sum(case when fact.plan_version_id = l_lpb_plan_ver_id then fact.equipment_raw_cost*POU_MASK else 0 end) POU_LPB_EQUIP_RAW_COST,
2644 sum(case when fact.plan_version_id = l_lpb_plan_ver_id then fact.equipment_brdn_cost*POU_MASK else 0 end) POU_LPB_EQUIP_BRDN_COST,
2645 sum(case when fact.plan_version_id = l_plan_ver_id then fact.LABOR_HRS else 0 end) LABOR_HOURS,
2646 sum(case when fact.plan_version_id = l_plan_ver_id then fact.EQUIPMENT_HOURS else 0 end) EQUIPMENT_HOURS,
2647 sum(case when fact.plan_version_id = l_base_plan_ver_id then fact.LABOR_HRS else 0 end) BASE_LABOR_HOURS,
2648 sum(case when fact.plan_version_id = l_base_plan_ver_id then fact.EQUIPMENT_HOURS else 0 end) BASE_EQUIP_HOURS,
2649 sum(case when fact.plan_version_id = l_lpb_plan_ver_id then fact.LABOR_HRS else 0 end) LPB_LABOR_HOURS,
2650 sum(case when fact.plan_version_id = l_lpb_plan_ver_id then fact.EQUIPMENT_HOURS else 0 end) LPB_EQUIP_HOURS,
2651 sum( decode(fact.plan_version_id, l_plan_ver_id, fact.ACT_LABOR_HRS, 0)) ACT_LABOR_HRS,
2652 sum( decode(fact.plan_version_id, l_plan_ver_id, fact.ACT_EQUIP_HRS, 0)) ACT_EQUIP_HRS,
2653 sum(
2654 decode(fact.plan_version_id, l_plan_ver_id, TXN_MASK* fact.act_labor_brdn_cost, 0 )
2655 ) ACT_TXN_LABOR_BRDN_COST,
2656 sum(
2657 decode(fact.plan_version_id, l_plan_ver_id, TXN_MASK* fact.act_equip_brdn_cost, 0 )
2658 ) ACT_TXN_EQUIP_BRDN_COST,
2659 sum( decode(fact.plan_version_id, l_plan_ver_id, TXN_MASK* fact.act_raw_cost, 0 )
2660 ) ACT_TXN_RAW_COST,
2661 sum( decode(fact.plan_version_id, l_plan_ver_id, TXN_MASK* fact.act_brdn_cost, 0 )
2662 ) ACT_TXN_BRDN_COST,
2663 sum( decode(fact.plan_version_id, l_plan_ver_id, PRJ_MASK* fact.act_labor_brdn_cost, 0)
2664 ) ACT_PRJ_LABOR_BRDN_COST,
2665 sum( decode(fact.plan_version_id, l_plan_ver_id, PRJ_MASK* fact.act_equip_brdn_cost, 0)
2666 ) ACT_PRJ_EQUIP_BRDN_COST,
2667 sum( decode(fact.plan_version_id, l_plan_ver_id, PRJ_MASK* fact.act_raw_cost, 0 )
2668 ) ACT_PRJ_RAW_COST,
2669 sum( decode(fact.plan_version_id, l_plan_ver_id, PRJ_MASK* fact.act_brdn_cost, 0 )
2670 ) ACT_PRJ_BRDN_COST,
2671 sum( decode(fact.plan_version_id, l_plan_ver_id, POU_MASK* fact.act_labor_brdn_cost, 0 )
2672 ) ACT_POU_LABOR_BRDN_COST,
2673 sum( decode(fact.plan_version_id, l_plan_ver_id, POU_MASK* fact.act_equip_brdn_cost, 0 )
2674 ) ACT_POU_EQUIP_BRDN_COST,
2675 sum( decode(fact.plan_version_id, l_plan_ver_id, POU_MASK* fact.act_raw_cost, 0 )
2676 ) ACT_POU_RAW_COST,
2677 sum( decode(fact.plan_version_id, l_plan_ver_id, POU_MASK* fact.act_brdn_cost, 0 )
2678 ) ACT_POU_BRDN_COST,
2679 sum(case when fact.plan_version_id = l_plan_ver_id then fact.ETC_LABOR_HRS else 0 end) ETC_LABOR_HRS,
2680 sum(case when fact.plan_version_id = l_plan_ver_id then fact.ETC_EQUIP_HRS else 0 end) ETC_EQUIP_HRS,
2681 sum(case when fact.plan_version_id = l_plan_ver_id then fact.ETC_labor_brdn_cost*TXN_MASK else 0 end) ETC_TXN_LABOR_BRDN_COST,
2682 sum(case when fact.plan_version_id = l_plan_ver_id then fact.ETC_equip_brdn_cost*TXN_MASK else 0 end) ETC_TXN_EQUIP_BRDN_COST,
2683 sum(case when fact.plan_version_id = l_plan_ver_id then fact.ETC_raw_cost*TXN_MASK else 0 end) ETC_TXN_RAW_COST,
2684 sum(case when fact.plan_version_id = l_plan_ver_id then fact.ETC_brdn_cost*TXN_MASK else 0 end) ETC_TXN_BRDN_COST,
2685 sum(case when fact.plan_version_id = l_plan_ver_id then fact.ETC_labor_brdn_cost*PRJ_MASK else 0 end) ETC_PRJ_LABOR_BRDN_COST,
2686 sum(case when fact.plan_version_id = l_plan_ver_id then fact.ETC_equip_brdn_cost*PRJ_MASK else 0 end) ETC_PRJ_EQUIP_BRDN_COST,
2687 sum(case when fact.plan_version_id = l_plan_ver_id then fact.ETC_raw_cost*PRJ_MASK else 0 end) ETC_PRJ_RAW_COST,
2688 sum(case when fact.plan_version_id = l_plan_ver_id then fact.ETC_brdn_cost*PRJ_MASK else 0 end) ETC_PRJ_BRDN_COST,
2689 sum(case when fact.plan_version_id = l_plan_ver_id then fact.ETC_labor_brdn_cost*POU_MASK else 0 end) ETC_POU_LABOR_BRDN_COST,
2690 sum(case when fact.plan_version_id = l_plan_ver_id then fact.ETC_equip_brdn_cost*POU_MASK else 0 end) ETC_POU_EQUIP_BRDN_COST,
2691 sum(case when fact.plan_version_id = l_plan_ver_id then fact.ETC_raw_cost*POU_MASK else 0 end) ETC_POU_RAW_COST,
2692 sum(case when fact.plan_version_id = l_plan_ver_id then fact.ETC_brdn_cost*POU_MASK else 0 end) ETC_POU_BRDN_COST,
2693 sum( decode(fact.plan_version_id, l_plan_ver_id, TXN_MASK*fact.act_labor_raw_cost,0) ) ACT_TXN_LABOR_RAW_COST,
2694 sum(
2695 decode(fact.plan_version_id, l_plan_ver_id, PRJ_MASK* fact.act_labor_raw_cost,0)
2696 ) ACT_PRJ_LABOR_RAW_COST,
2697 sum( decode(fact.plan_version_id, l_plan_ver_id, POU_MASK* fact.act_labor_raw_cost,0)
2698 ) ACT_POU_LABOR_RAW_COST,
2699 sum( decode(fact.plan_version_id, l_plan_ver_id, TXN_MASK*fact.act_equip_raw_cost,0)
2700 ) ACT_TXN_EQUIP_RAW_COST,
2701 sum( decode(fact.plan_version_id, l_plan_ver_id, PRJ_MASK* fact.act_equip_raw_cost,0)
2702 ) ACT_PRJ_EQUIP_RAW_COST,
2703 sum( decode(fact.plan_version_id, l_plan_ver_id, POU_MASK* fact.act_equip_raw_cost,0)
2704 ) ACT_POU_EQUIP_RAW_COST,
2705 sum(case when fact.plan_version_id = l_plan_ver_id then fact.ETC_labor_raw_cost*TXN_MASK else 0 end) ETC_TXN_LABOR_RAW_COST,
2706 sum(case when fact.plan_version_id = l_plan_ver_id then fact.ETC_labor_raw_cost*PRJ_MASK else 0 end) ETC_PRJ_LABOR_RAW_COST,
2707 sum(case when fact.plan_version_id = l_plan_ver_id then fact.ETC_labor_raw_cost*POU_MASK else 0 end) ETC_POU_LABOR_RAW_COST,
2708 sum(case when fact.plan_version_id = l_plan_ver_id then fact.ETC_equip_raw_cost*TXN_MASK else 0 end) ETC_TXN_EQUIP_RAW_COST,
2709 sum(case when fact.plan_version_id = l_plan_ver_id then fact.ETC_equip_raw_cost*PRJ_MASK else 0 end) ETC_PRJ_EQUIP_RAW_COST,
2710 sum(case when fact.plan_version_id = l_plan_ver_id then fact.ETC_equip_raw_cost*POU_MASK else 0 end) ETC_POU_EQUIP_RAW_COST,
2711 /* Retrival of Project Level Data Starts*/
2712 sum(case when fact.plan_version_id = l_plan_ver_id then fact.raw_cost*PRJ_MASK*ROLLUP_MASK else 0 end) P_RAW_COST,
2713 sum(case when fact.plan_version_id = l_plan_ver_id then fact.brdn_cost*PRJ_MASK*ROLLUP_MASK else 0 end) P_BRDN_COST,
2714 sum(case when fact.plan_version_id = l_plan_ver_id then fact.revenue*PRJ_MASK*ROLLUP_MASK else 0 end) P_REVENUE,
2715 sum(case when fact.plan_version_id = l_plan_ver_id then fact.labor_raw_cost*PRJ_MASK*ROLLUP_MASK else 0 end) P_LBR_RAW_COST,
2716 sum(case when fact.plan_version_id = l_plan_ver_id then fact.labor_brdn_cost*PRJ_MASK*ROLLUP_MASK else 0 end) P_LBR_BRDN_COST,
2717 sum(case when fact.plan_version_id = l_plan_ver_id then fact.equipment_raw_cost*PRJ_MASK*ROLLUP_MASK else 0 end) P_EQP_RAW_COST,
2718 sum(case when fact.plan_version_id = l_plan_ver_id then fact.equipment_brdn_cost*PRJ_MASK*ROLLUP_MASK else 0 end) P_EQP_BRDN_COST,
2719 sum(case when fact.plan_version_id = l_base_plan_ver_id then fact.raw_cost*PRJ_MASK*ROLLUP_MASK else 0 end) P_BASE_RAW_COST,
2720 sum(case when fact.plan_version_id = l_base_plan_ver_id then fact.brdn_cost*PRJ_MASK*ROLLUP_MASK else 0 end) P_BASE_BRDN_COST,
2721 sum(case when fact.plan_version_id = l_base_plan_ver_id then fact.labor_raw_cost*PRJ_MASK*ROLLUP_MASK else 0 end) P_BASE_LBR_RAW_COST,
2722 sum(case when fact.plan_version_id = l_base_plan_ver_id then fact.labor_brdn_cost*PRJ_MASK*ROLLUP_MASK else 0 end) P_BASE_LBR_BRDN_COST,
2723 sum(case when fact.plan_version_id = l_base_plan_ver_id then fact.equipment_raw_cost*PRJ_MASK*ROLLUP_MASK else 0 end) P_BASE_EQP_RAW_COST,
2724 sum(case when fact.plan_version_id = l_base_plan_ver_id then fact.equipment_brdn_cost*PRJ_MASK*ROLLUP_MASK else 0 end) P_BASE_EQP_BRDN_COST,
2725 sum(case when fact.plan_version_id = l_lpb_plan_ver_id then fact.raw_cost*PRJ_MASK*ROLLUP_MASK else 0 end) P_LPB_RAW_COST,
2726 sum(case when fact.plan_version_id = l_lpb_plan_ver_id then fact.brdn_cost*PRJ_MASK*ROLLUP_MASK else 0 end) P_LPB_BRDN_COST,
2727 sum(case when fact.plan_version_id = l_lpb_plan_ver_id then fact.labor_raw_cost*PRJ_MASK*ROLLUP_MASK else 0 end) P_LPB_LBR_RAW_COST,
2728 sum(case when fact.plan_version_id = l_lpb_plan_ver_id then fact.labor_brdn_cost*PRJ_MASK*ROLLUP_MASK else 0 end) P_LPB_LBR_BRDN_COST,
2729 sum(case when fact.plan_version_id = l_lpb_plan_ver_id then fact.equipment_raw_cost*PRJ_MASK*ROLLUP_MASK else 0 end) P_LPB_EQP_RAW_COST,
2730 sum(case when fact.plan_version_id = l_lpb_plan_ver_id then fact.equipment_brdn_cost*PRJ_MASK*ROLLUP_MASK else 0 end) P_LPB_EQP_BRDN_COST,
2731 sum(case when fact.plan_version_id = l_plan_ver_id then fact.LABOR_HRS*ROLLUP_MASK else 0 end) P_LBR_HOURS,
2732 sum(case when fact.plan_version_id = l_plan_ver_id then fact.EQUIPMENT_HOURS*ROLLUP_MASK else 0 end) P_EQP_HOURS,
2733 sum(case when fact.plan_version_id = l_base_plan_ver_id then fact.LABOR_HRS*ROLLUP_MASK else 0 end) P_BASE_LBR_HOURS,
2734 sum(case when fact.plan_version_id = l_base_plan_ver_id then fact.EQUIPMENT_HOURS*ROLLUP_MASK else 0 end) P_BASE_EQP_HOURS,
2735 sum(case when fact.plan_version_id = l_lpb_plan_ver_id then fact.LABOR_HRS*ROLLUP_MASK else 0 end) P_LPB_LBR_HOURS,
2736 sum(case when fact.plan_version_id = l_lpb_plan_ver_id then fact.EQUIPMENT_HOURS*ROLLUP_MASK else 0 end) P_LPB_EQP_HOURS,
2737 sum( decode(fact.plan_version_id, l_plan_ver_id, ROLLUP_MASK*fact.ACT_LABOR_HRS, 0)
2738 ) P_ACT_LBR_HOURS,
2739 sum( decode(fact.plan_version_id, l_plan_ver_id, ROLLUP_MASK*fact.ACT_EQUIP_HRS, 0)
2740 ) P_ACT_EQP_HOURS,
2741 sum( decode(fact.plan_version_id, l_plan_ver_id, PRJ_MASK*ROLLUP_MASK* fact.act_labor_brdn_cost, 0)
2742 ) P_ACT_LBR_BRDN_COST,
2743 sum( decode(fact.plan_version_id, l_plan_ver_id, PRJ_MASK*ROLLUP_MASK* fact.act_equip_brdn_cost, 0)
2744 ) P_ACT_EQP_BRDN_COST,
2745 sum( decode(fact.plan_version_id, l_plan_ver_id, PRJ_MASK*ROLLUP_MASK* fact.act_raw_cost, 0 )
2746 ) P_ACT_RAW_COST,
2747 sum( decode(fact.plan_version_id, l_plan_ver_id, PRJ_MASK*ROLLUP_MASK* fact.act_brdn_cost, 0 )
2748 ) P_ACT_BRDN_COST,
2749 sum( decode(fact.plan_version_id, l_plan_ver_id, PRJ_MASK*ROLLUP_MASK* fact.act_labor_raw_cost,0)
2750 ) P_ACT_LBR_RAW_COST,
2751 sum( decode(fact.plan_version_id, l_plan_ver_id, PRJ_MASK*ROLLUP_MASK* fact.act_equip_raw_cost,0)
2752 ) P_ACT_EQP_RAW_COST,
2753 sum(case when fact.plan_version_id = l_plan_ver_id then fact.ETC_EQUIP_HRS*ROLLUP_MASK else 0 end) P_ETC_EQP_HOURS,
2754 sum(case when fact.plan_version_id = l_plan_ver_id then fact.ETC_LABOR_HRS*ROLLUP_MASK else 0 end) P_ETC_LBR_HOURS,
2755 sum(case when fact.plan_version_id = l_plan_ver_id then fact.ETC_raw_cost*PRJ_MASK*ROLLUP_MASK else 0 end) P_ETC_RAW_COST,
2756 sum(case when fact.plan_version_id = l_plan_ver_id then fact.ETC_brdn_cost*PRJ_MASK*ROLLUP_MASK else 0 end) P_ETC_BRDN_COST,
2757 sum(case when fact.plan_version_id = l_plan_ver_id then fact.ETC_labor_brdn_cost*PRJ_MASK*ROLLUP_MASK else 0 end) P_ETC_LBR_BRDN_COST,
2758 sum(case when fact.plan_version_id = l_plan_ver_id then fact.ETC_equip_brdn_cost*PRJ_MASK*ROLLUP_MASK else 0 end) P_ETC_EQP_BRDN_COST,
2759 sum(case when fact.plan_version_id = l_plan_ver_id then fact.ETC_labor_raw_cost*PRJ_MASK*ROLLUP_MASK else 0 end) P_ETC_LBR_RAW_COST,
2760 sum(case when fact.plan_version_id = l_plan_ver_id then fact.ETC_equip_raw_cost*PRJ_MASK*ROLLUP_MASK else 0 end) P_ETC_EQP_RAW_COST
2761 /* Retrival of Project Level Data Ends*/
2762 FROM
2763 (
2764 SELECT
2765 p1.PROJECT_ID ,
2766 p1.org_id PROJECT_ORG_ID ,
2767 p1.carrying_out_organization_id PROJECT_ORGANIZATION_ID ,
2768 PROJECT_ELEMENT_ID ,
2769 -- null TIME_ID ,
2770 -- PERIOD_TYPE_ID ,
2771 -- CALENDAR_TYPE ,
2772 -- RBS_AGGR_LEVEL ,
2773 WBS_ROLLUP_FLAG ,
2774 PRG_ROLLUP_FLAG ,
2775 decode (fact.currency_code, p1.project_currency_code ,8 ,p1.projfunc_currency_code,4, 16) CURR_RECORD_TYPE_ID ,
2776 CURRENCY_CODE ,
2777 -1 RBS_ELEMENT_ID ,
2778 -1 RBS_VERSION_ID ,
2779 PLAN_VERSION_ID ,
2780 -- PLAN_TYPE_ID ,
2781 RAW_COST ,
2782 BRDN_COST ,
2783 REVENUE ,
2784 BILL_RAW_COST ,
2785 BILL_BRDN_COST ,
2786 BILL_LABOR_RAW_COST ,
2787 BILL_LABOR_BRDN_COST ,
2788 decode (p1.project_currency_code , fact.currency_code, BILL_LABOR_HRS, 0) BILL_LABOR_HRS ,
2789 EQUIPMENT_RAW_COST ,
2790 EQUIPMENT_BRDN_COST ,
2791 CAPITALIZABLE_RAW_COST ,
2792 CAPITALIZABLE_BRDN_COST ,
2793 LABOR_RAW_COST ,
2794 LABOR_BRDN_COST ,
2795 decode ( p1.project_currency_code , fact.currency_code, LABOR_HRS, 0) LABOR_HRS ,
2796 LABOR_REVENUE ,
2797 decode ( p1.project_currency_code , fact.currency_code, EQUIPMENT_HOURS, 0) EQUIPMENT_HOURS ,
2798 decode ( p1.project_currency_code , fact.currency_code, BILLABLE_EQUIPMENT_HOURS, 0) BILLABLE_EQUIPMENT_HOURS ,
2799 SUP_INV_COMMITTED_COST ,
2800 PO_COMMITTED_COST ,
2801 PR_COMMITTED_COST ,
2802 OTH_COMMITTED_COST ,
2803 CUSTOM1 ,
2804 CUSTOM2 ,
2805 CUSTOM3 ,
2806 CUSTOM4 ,
2807 CUSTOM5 ,
2808 CUSTOM6 ,
2809 CUSTOM7 ,
2810 CUSTOM8 ,
2811 CUSTOM9 ,
2812 CUSTOM10 ,
2813 CUSTOM11 ,
2814 CUSTOM12 ,
2815 CUSTOM13 ,
2816 CUSTOM14 ,
2817 CUSTOM15 ,
2818 decode ( p1.project_currency_code , fact.currency_code, ACT_LABOR_HRS, 0) ACT_LABOR_HRS ,
2819 decode ( p1.project_currency_code , fact.currency_code, ACT_EQUIP_HRS, 0) ACT_EQUIP_HRS ,
2820 ACT_LABOR_BRDN_COST ,
2821 ACT_EQUIP_BRDN_COST ,
2822 ACT_BRDN_COST ,
2823 decode ( p1.project_currency_code , fact.currency_code, ETC_LABOR_HRS, 0) ETC_LABOR_HRS ,
2824 decode ( p1.project_currency_code , fact.currency_code, ETC_EQUIP_HRS, 0) ETC_EQUIP_HRS ,
2825 ETC_LABOR_BRDN_COST ,
2826 ETC_EQUIP_BRDN_COST ,
2827 ETC_BRDN_COST ,
2828 ACT_RAW_COST ,
2829 ACT_REVENUE ,
2830 ETC_RAW_COST ,
2831 ACT_LABOR_RAW_COST ,
2832 ACT_EQUIP_RAW_COST ,
2833 ETC_LABOR_RAW_COST ,
2834 ETC_EQUIP_RAW_COST ,
2835 decode(fact.prg_rollup_flag,'N',1,0) ROLLUP_MASK,
2836 0 TXN_MASK,
2837 decode (p1.project_currency_code , fact.currency_code,1,0) PRJ_MASK,
2838 decode (p1.projfunc_currency_code , fact.currency_code,1,0) POU_MASK
2839 from
2840 pa_projects_all p1 ,
2841 pa_ppr_obj_tmp_view obj1,
2842 pa_pjt_wbs_fact fact
2843 where 1 = 1
2844 AND p1.project_id = p_project_id
2845 AND fact.project_id = p_project_id
2846 and fact.PLAN_VERSION_ID in (l_plan_ver_id,l_lpb_plan_ver_id,l_base_plan_ver_id)
2847 and fact.PROJECT_ELEMENT_ID = obj1.object_id
2848 and fact.prg_rollup_flag ='N'
2849 ) fact
2850 GROUP BY
2851 fact.PROJECT_ID,
2852 fact.PROJECT_ELEMENT_ID;
2853
2854 end if ;
2855
2856 -- OLAP END
2857
2858
2859
2860
2861 IF NVL(FND_PROFILE.value('PA_DEBUG_MODE'),'N') = 'Y' THEN
2862 debug_accum ; /* bug#3993830 */
2863 END IF;
2864 DELETE FROM PJI_PLAN_EXTR_TMP; --- Bug 5653800
2865 x_return_status := l_return_status;
2866
2867 EXCEPTION
2868 WHEN OTHERS THEN
2869
2870 PJI_PJP_FP_CURR_WRAP.EXCP_HANDLER
2871 ( p_package_name => g_package_name
2872 , p_procedure_name => 'POPULATE_UPDATEWBS_DATA'
2873 , x_return_status => x_return_status ) ;
2874
2875 RAISE;
2876 END;
2877
2878
2879
2880 /*********************************************************
2881 This procedure populates data in PJI_FM_XBS_ACCUM_TMP1
2882 for workplans.
2883 API supports both work plans and progress actuals
2884 The parameters that the API accepts can have one of the
2885 following combinations
2886 - p_struct_ver_id, p_base_struct_ver_id
2887 - p_plan_version_id
2888 **********************************************************/
2889
2890 PROCEDURE populate_workplan_data (
2891 p_populate_in_tbl IN populate_in_tbl_type := populate_in_default_tbl,
2892 p_project_id IN NUMBER := NULL,
2893 p_struct_ver_id IN NUMBER := NULL,
2894 p_base_struct_ver_id IN NUMBER := NULL,
2895 p_plan_version_id IN NUMBER := NULL,
2896 p_progress_actuals_flag IN VARCHAR2 := 'N',
2897 p_as_of_date IN DATE := NULL,
2898 p_delete_flag IN VARCHAR2 := 'Y',
2899 p_workplan_flag IN VARCHAR2 := 'Y',
2900 p_project_element_id IN NUMBER := NULL,
2901 p_calling_context IN VARCHAR2 := NULL,
2902 p_program_rollup_flag IN VARCHAR2 := 'N',
2903 x_return_status OUT NOCOPY VARCHAR2,
2904 x_msg_code OUT NOCOPY VARCHAR2 ) IS
2905
2906 l_project_id_tbl system.pa_num_tbl_type := system.pa_num_tbl_type ();
2907 l_wk_struct_ver_id_tbl system.pa_num_tbl_type := system.pa_num_tbl_type();
2908 l_lpb_struct_ver_id_tbl system.pa_num_tbl_type := system.pa_num_tbl_type();
2909 l_base_struct_ver_id_tbl system.pa_num_tbl_type := system.pa_num_tbl_type();
2910 l_cal_type_tbl SYSTEM.pa_varchar2_15_tbl_type := SYSTEM.pa_varchar2_15_tbl_type();
2911 l_period_id_tbl system.pa_num_tbl_type := system.pa_num_tbl_type();
2912 l_end_period_id_tbl system.pa_num_tbl_type := system.pa_num_tbl_type();
2913
2914 l_org_id NUMBER;
2915 l_return_status VARCHAR2(1);
2916
2917 -- SCOPE_00 new variable
2918 l_scoped_out_flag varchar2(1) := 'Y' ;
2919
2920
2921
2922 BEGIN
2923
2924 PJI_PJP_FP_CURR_WRAP.INIT_ERR_STACK
2925 ( p_package_name => g_package_name
2926 , x_return_status => x_return_status );
2927
2928 pa_debug.log_message('populate_workplan_data:p_project_id_tbl'||p_populate_in_tbl.COUNT, 3);
2929 pa_debug.log_message('populate_workplan_data: p_delete_flag '|| p_delete_flag, 3);
2930 pji_pjp_fp_curr_wrap.set_table_stats('PJI','PJI_PLAN_EXTR_TMP',10,10,10);
2931
2932 l_return_status := Fnd_Api.G_RET_STS_SUCCESS;
2933 delete from pji_plan_extr_tmp;
2934 PRINT_TIME ( ' populate_workplan_data 0003.1 ' ) ;
2935
2936 IF p_project_id is not null then
2937
2938 INSERT INTO pji_plan_extr_tmp
2939 ( PROJECT_ID , PLAN_VER_ID , STRUCT_VER_ID , BASE_STRUCT_VER_ID , AS_OF_DATE , PROJ_ELEM_ID )
2940 VALUES ( p_project_id,p_plan_version_id,p_struct_ver_id , p_base_struct_ver_id,p_as_of_date,p_project_element_id );
2941
2942 print_time (' p_project_id ' || p_project_id || ' p_struct_ver_id ' || p_struct_ver_id );
2943 print_time (' p_base_struct_ver_id ' || p_base_struct_ver_id || ' p_plan_version_id ' || p_plan_version_id );
2944 print_time (' p_progress_actuals_flag ' || p_progress_actuals_flag || ' p_as_of_date ' || p_as_of_date );
2945 print_time (' p_delete_flag ' || p_delete_flag || ' p_workplan_flag ' || p_workplan_flag );
2946
2947 ELSE
2948 IF p_populate_in_tbl.COUNT >0 THEN
2949 FOR i IN p_populate_in_tbl.FIRST .. p_populate_in_tbl.LAST
2950 LOOP
2951 INSERT INTO pji_plan_extr_tmp
2952 ( PROJECT_ID , PLAN_VER_ID , STRUCT_VER_ID , BASE_STRUCT_VER_ID , AS_OF_DATE , PROJ_ELEM_ID )
2953 VALUES ( p_populate_in_tbl(i).PROJECT_ID,p_populate_in_tbl(i).plan_version_id, p_populate_in_tbl(i).struct_ver_id,p_populate_in_tbl(i).base_struct_ver_id,
2954 p_populate_in_tbl(i).as_of_date,p_populate_in_tbl(i).project_element_id );
2955
2956 PRINT_TIME ( ' p_project_id ' || p_populate_in_tbl(i).PROJECT_ID || ' p_struct_ver_id ' || p_populate_in_tbl(i).struct_ver_id );
2957 PRINT_TIME ( ' p_base_struct_ver_id ' || p_populate_in_tbl(i).base_struct_ver_id || ' p_plan_version_id ' || p_populate_in_tbl(i).plan_version_id );
2958 PRINT_TIME ( ' p_project_element_id ' || p_populate_in_tbl(i).project_element_id || ' p_as_of_date ' || p_populate_in_tbl(i).as_of_date );
2959 PRINT_TIME ( ' p_delete_flag '|| p_delete_flag || ' p_calling_context ' || p_calling_context || ' p_workplan_flag ' || p_workplan_flag ||' p_program_rollup_flag ' || p_program_rollup_flag );
2960
2961 END LOOP;
2962 ELSE
2963 PRINT_TIME ( ' InValid parameters Passed to populate_workplan_data' );
2964 END IF;
2965 end if;
2966
2967 IF g_debug_mode='Y' THEN
2968 PRINT_TIME ( ' populate_workplan_data 0003.2 ' ) ;
2969 end if;
2970
2971
2972 -- SCOPE_00
2973 if l_scoped_out_flag = 'N' then
2974
2975 -- OLAP START CHANGE
2976
2977
2978 -- since project_id is changed to negative value , the downstream code will not process new ppr enabled projects .
2979
2980 update pji_plan_extr_tmp t1
2981 set t1.project_id = ( select -1*p.project_id from pa_projects_all p where p.project_id = t1.project_id
2982 and nvl(p.pjt_rollup_enabled_flag,'N') = 'Y' )
2983 where exists
2984 ( select 'x' from pa_projects_all p2 where p2.project_id = t1.project_id and nvl(p2.pjt_rollup_enabled_flag,'N') = 'Y' );
2985
2986 IF (p_delete_flag = 'Y') THEN -- satya
2987
2988 PRINT_TIME ( ' populate_workplan_data 0003.10 ' ) ;
2989
2990
2991 DELETE FROM PJI_FM_XBS_ACCUM_TMP1 TMP1
2992 WHERE EXISTS ( SELECT 'x'
2993 FROM PJI_PLAN_EXTR_TMP HEAD
2994 WHERE -1*HEAD.PROJECT_ID=TMP1.PROJECT_ID);
2995
2996 END IF;
2997
2998
2999 IF p_workplan_flag ='Y' THEN
3000
3001
3002 UPDATE pji_plan_extr_tmp TMP
3003 SET (WK_PLAN_VER_ID)=
3004 (
3005 SELECT bv.budget_version_id
3006 FROM pa_budget_versions bv
3007 WHERE TMP.STRUCT_VER_ID=bv.project_structure_Version_id
3008 AND -1*tmp.project_id = bv.project_id
3009 )
3010 where tmp.project_id < 0 ;
3011
3012 UPDATE pji_plan_extr_tmp TMP
3013 SET (LPB_STRUCT_VER_ID,LPB_PLAN_VER_ID)=
3014 (
3015 SELECT element_version_id,bv.budget_version_id
3016 FROM pa_proj_elem_ver_structure ppevs,
3017 pa_proj_structure_types ppst,
3018 pa_budget_versions bv
3019 WHERE 1=1
3020 and latest_eff_published_flag = 'Y'
3021 and ppst.proj_element_id = ppevs.proj_element_id
3022 and ppst.structure_type_id = 1
3023 and element_version_id=bv.project_structure_Version_id
3024 and bv.wp_version_flag ='Y'
3025 and bv.project_id=ppevs.project_id
3026 and -1*tmp.project_id=ppevs.project_id -- add -1 * project_id
3027 )
3028 where tmp.project_id < 0 ;
3029
3030
3031 UPDATE pji_plan_extr_tmp TMP
3032 SET BASE_PLAN_VER_ID= (
3033 SELECT bv.budget_version_id
3034 FROM pa_budget_versions bv
3035 WHERE 1=1
3036 AND NVL(bv.wp_version_flag , 'N') = p_workplan_flag
3037 AND bv.project_structure_Version_id = TMP.BASE_STRUCT_VER_ID
3038 AND bv.PROJECT_ID = -1*tmp.PROJECT_ID
3039 AND DECODE(p_workplan_flag
3040 , 'N'
3041 , DECODE(bv.budget_status_code||bv.current_flag
3042 , 'BY','X'
3043 , 'Y')
3044 , 'X')
3045 = 'X' )
3046 where tmp.project_id < 0 ;
3047
3048
3049 else
3050
3051
3052 UPDATE pji_plan_extr_tmp TMP
3053 SET (LPB_STRUCT_VER_ID,LPB_PLAN_VER_ID,BASE_STRUCT_VER_ID,BASE_PLAN_VER_ID,
3054 WK_STRUCT_VER_ID,WK_PLAN_VER_ID)=
3055 (SELECT p_struct_ver_id,p_plan_version_id,p_struct_ver_id,p_plan_version_id,p_struct_ver_id,p_plan_version_id from dual )
3056 where tmp.project_id < 0 ;
3057
3058
3059
3060 end if;
3061
3062
3063
3064 INSERT INTO pji_fm_xbs_accum_tmp1 (
3065 PROJECT_ID, STRUCT_VERSION_ID, PROJECT_ELEMENT_ID, CALENDAR_TYPE,
3066 PERIOD_NAME, PLAN_VERSION_ID, QUANTITY, TXN_RAW_COST,
3067 TXN_BRDN_COST, TXN_REVENUE, TXN_LABOR_RAW_COST, TXN_LABOR_BRDN_COST,
3068 TXN_EQUIP_RAW_COST, TXN_EQUIP_BRDN_COST, TXN_BASE_RAW_COST, TXN_BASE_BRDN_COST,
3069 TXN_BASE_LABOR_RAW_COST, TXN_BASE_LABOR_BRDN_COST,TXN_BASE_EQUIP_RAW_COST, TXN_BASE_EQUIP_BRDN_COST,
3070 TXN_LPB_RAW_COST, TXN_LPB_BRDN_COST, TXN_LPB_LABOR_RAW_COST, TXN_LPB_LABOR_BRDN_COST,
3071 TXN_LPB_EQUIP_RAW_COST, TXN_LPB_EQUIP_BRDN_COST, PRJ_RAW_COST, PRJ_BRDN_COST,
3072 PRJ_REVENUE, PRJ_LABOR_RAW_COST, PRJ_LABOR_BRDN_COST, PRJ_EQUIP_RAW_COST,
3073 PRJ_EQUIP_BRDN_COST, PRJ_BASE_RAW_COST, PRJ_BASE_BRDN_COST, PRJ_BASE_LABOR_RAW_COST,
3074 PRJ_BASE_LABOR_BRDN_COST,PRJ_BASE_EQUIP_RAW_COST, PRJ_BASE_EQUIP_BRDN_COST,PRJ_LPB_RAW_COST,
3075 PRJ_LPB_BRDN_COST, PRJ_LPB_LABOR_RAW_COST, PRJ_LPB_LABOR_BRDN_COST, PRJ_LPB_EQUIP_RAW_COST,
3076 PRJ_LPB_EQUIP_BRDN_COST, POU_RAW_COST, POU_BRDN_COST, POU_REVENUE,
3077 POU_LABOR_RAW_COST, POU_LABOR_BRDN_COST, POU_EQUIP_RAW_COST, POU_EQUIP_BRDN_COST,
3078 POU_BASE_RAW_COST, POU_BASE_BRDN_COST, POU_BASE_LABOR_RAW_COST, POU_BASE_LABOR_BRDN_COST,
3079 POU_BASE_EQUIP_RAW_COST, POU_BASE_EQUIP_BRDN_COST,POU_LPB_RAW_COST, POU_LPB_BRDN_COST,
3080 POU_LPB_LABOR_RAW_COST, POU_LPB_LABOR_BRDN_COST, POU_LPB_EQUIP_RAW_COST, POU_LPB_EQUIP_BRDN_COST,
3081 LABOR_HOURS, EQUIPMENT_HOURS, BASE_LABOR_HOURS, BASE_EQUIP_HOURS,
3082 LPB_LABOR_HOURS, LPB_EQUIP_HOURS, ACT_LABOR_HRS, ACT_EQUIP_HRS,
3083 ACT_TXN_LABOR_BRDN_COST, ACT_TXN_EQUIP_BRDN_COST, ACT_TXN_RAW_COST, ACT_TXN_BRDN_COST,
3084 ACT_PRJ_LABOR_BRDN_COST, ACT_PRJ_EQUIP_BRDN_COST, ACT_PRJ_RAW_COST, ACT_PRJ_BRDN_COST,
3085 ACT_POU_LABOR_BRDN_COST, ACT_POU_EQUIP_BRDN_COST, ACT_POU_RAW_COST, ACT_POU_BRDN_COST,
3086 ETC_LABOR_HRS, ETC_EQUIP_HRS, ETC_TXN_LABOR_BRDN_COST, ETC_TXN_EQUIP_BRDN_COST,
3087 ETC_TXN_RAW_COST, ETC_TXN_BRDN_COST, ETC_PRJ_LABOR_BRDN_COST, ETC_PRJ_EQUIP_BRDN_COST,
3088 ETC_PRJ_RAW_COST, ETC_PRJ_BRDN_COST, ETC_POU_LABOR_BRDN_COST, ETC_POU_EQUIP_BRDN_COST,
3089 ETC_POU_RAW_COST, ETC_POU_BRDN_COST, ACT_TXN_LABOR_RAW_COST , ACT_PRJ_LABOR_RAW_COST,
3090 ACT_POU_LABOR_RAW_COST, ACT_TXN_EQUIP_RAW_COST, ACT_PRJ_EQUIP_RAW_COST, ACT_POU_EQUIP_RAW_COST,
3091 ETC_TXN_LABOR_RAW_COST, ETC_PRJ_LABOR_RAW_COST, ETC_POU_LABOR_RAW_COST, ETC_TXN_EQUIP_RAW_COST,
3092 ETC_PRJ_EQUIP_RAW_COST, ETC_POU_EQUIP_RAW_COST, P_RAW_COST,P_BRDN_COST, P_REVENUE,
3093 P_LBR_RAW_COST, P_LBR_BRDN_COST, P_EQP_RAW_COST, P_EQP_BRDN_COST,
3094 P_BASE_RAW_COST, P_BASE_BRDN_COST, P_BASE_LBR_RAW_COST, P_BASE_LBR_BRDN_COST,
3095 P_BASE_EQP_RAW_COST, P_BASE_EQP_BRDN_COST, P_LPB_RAW_COST, P_LPB_BRDN_COST,
3096 P_LPB_LBR_RAW_COST, P_LPB_LBR_BRDN_COST, P_LPB_EQP_RAW_COST, P_LPB_EQP_BRDN_COST,
3097 P_LBR_HOURS, P_EQP_HOURS, P_BASE_LBR_HOURS, P_BASE_EQP_HOURS,
3098 P_LPB_LBR_HOURS, P_LPB_EQP_HOURS, P_ACT_LBR_HOURS, P_ACT_EQP_HOURS,
3099 P_ACT_LBR_BRDN_COST, P_ACT_EQP_BRDN_COST, P_ACT_RAW_COST, P_ACT_BRDN_COST,
3100 P_ACT_LBR_RAW_COST, P_ACT_EQP_RAW_COST, P_ETC_EQP_HOURS, P_ETC_LBR_HOURS,
3101 P_ETC_RAW_COST, P_ETC_BRDN_COST, P_ETC_LBR_BRDN_COST, P_ETC_EQP_BRDN_COST,
3102 P_ETC_LBR_RAW_COST,P_ETC_EQP_RAW_COST
3103 )
3104 select
3105 fact.project_id ,
3106 struct_ver_id STRUCT_VERSION_ID,
3107 fact.project_element_id,
3108 'A',
3109 null PERIOD_NAME,
3110 WK_PLAN_VER_ID PLAN_VERSION_ID,
3111 0 QUANTITY,
3112 -- regular columns are for progream rollup.
3113 /****
3114 sum(case when fact.plan_version_id = WK_PLAN_VER_ID then fact.raw_cost*TXN_MASK else 0 end) TXN_RAW_COST,
3115 sum(case when fact.plan_version_id = WK_PLAN_VER_ID then fact.brdn_cost*TXN_MASK else 0 end) TXN_BRDN_COST,
3116 sum(case when fact.plan_version_id = WK_PLAN_VER_ID then fact.revenue*TXN_MASK else 0 end) TXN_REVENUE,
3117 sum(case when fact.plan_version_id = WK_PLAN_VER_ID then fact.labor_raw_cost*TXN_MASK else 0 end) TXN_LABOR_RAW_COST,
3118 sum(case when fact.plan_version_id = WK_PLAN_VER_ID then fact.labor_brdn_cost*TXN_MASK else 0 end) TXN_LABOR_BRDN_COST,
3119 sum(case when fact.plan_version_id = WK_PLAN_VER_ID then fact.equipment_raw_cost*TXN_MASK else 0 end) TXN_EQUIP_RAW_COST,
3120 sum(case when fact.plan_version_id = WK_PLAN_VER_ID then fact.equipment_brdn_cost*TXN_MASK else 0 end) TXN_EQUIP_BRDN_COST,
3121 sum(case when fact.plan_version_id = base_plan_ver_id then fact.raw_cost*TXN_MASK else 0 end) TXN_BASE_RAW_COST,
3122 sum(case when fact.plan_version_id = base_plan_ver_id then fact.brdn_cost*TXN_MASK else 0 end) TXN_BASE_BRDN_COST,
3123 sum(case when fact.plan_version_id = base_plan_ver_id then fact.labor_raw_cost*TXN_MASK else 0 end) TXN_BASE_LABOR_RAW_COST,
3124 sum(case when fact.plan_version_id = base_plan_ver_id then fact.labor_brdn_cost*TXN_MASK else 0 end) TXN_BASE_LABOR_BRDN_COST,
3125 sum(case when fact.plan_version_id = base_plan_ver_id then fact.equipment_raw_cost*TXN_MASK else 0 end) TXN_BASE_EQUIP_RAW_COST,
3126 sum(case when fact.plan_version_id = base_plan_ver_id then fact.equipment_brdn_cost*TXN_MASK else 0 end) TXN_BASE_EQUIP_BRDN_COST,
3127 sum(case when fact.plan_version_id = lpb_plan_ver_id then fact.raw_cost*TXN_MASK else 0 end) TXN_LPB_RAW_COST,
3128 sum(case when fact.plan_version_id = lpb_plan_ver_id then fact.brdn_cost*TXN_MASK else 0 end) TXN_LPB_BRDN_COST,
3129 sum(case when fact.plan_version_id = lpb_plan_ver_id then fact.labor_raw_cost*TXN_MASK else 0 end) TXN_LPB_LABOR_RAW_COST,
3130 sum(case when fact.plan_version_id = lpb_plan_ver_id then fact.labor_brdn_cost*TXN_MASK else 0 end) TXN_LPB_LABOR_BRDN_COST,
3131 sum(case when fact.plan_version_id = lpb_plan_ver_id then fact.equipment_raw_cost*TXN_MASK else 0 end) TXN_LPB_EQUIP_RAW_COST,
3132 sum(case when fact.plan_version_id = lpb_plan_ver_id then fact.equipment_brdn_cost*TXN_MASK else 0 end) TXN_LPB_EQUIP_BRDN_COST,
3133 ****/
3134 sum(0) TXN_RAW_COST,
3135 sum(0) TXN_BRDN_COST,
3136 sum(0) TXN_REVENUE,
3137 sum(0) TXN_LABOR_RAW_COST,
3138 sum(0) TXN_LABOR_BRDN_COST,
3139 sum(0) TXN_EQUIP_RAW_COST,
3140 sum(0) TXN_EQUIP_BRDN_COST,
3141 sum(0) TXN_BASE_RAW_COST,
3142 sum(0) TXN_BASE_BRDN_COST,
3143 sum(0) TXN_BASE_LABOR_RAW_COST,
3144 sum(0) TXN_BASE_LABOR_BRDN_COST,
3145 sum(0) TXN_BASE_EQUIP_RAW_COST,
3146 sum(0) TXN_BASE_EQUIP_BRDN_COST,
3147 sum(0) TXN_LPB_RAW_COST,
3148 sum(0) TXN_LPB_BRDN_COST,
3149 sum(0) TXN_LPB_LABOR_RAW_COST,
3150 sum(0) TXN_LPB_LABOR_BRDN_COST,
3151 sum(0) TXN_LPB_EQUIP_RAW_COST,
3152 sum(0) TXN_LPB_EQUIP_BRDN_COST,
3153 sum(decode(p.project_currency_code,
3154 fact.currency_code, decode(fact.plan_version_id , tmp.WK_PLAN_VER_ID,fact.raw_cost,0)
3155 , 0 )) PRJ_RAW_COST,
3156 sum(decode(p.project_currency_code,
3157 fact.currency_code, decode(fact.plan_version_id , tmp.WK_PLAN_VER_ID,fact.brdn_cost,0)
3158 , 0 )) PRJ_BRDN_COST,
3159 sum(decode(p.project_currency_code,
3160 fact.currency_code, decode(fact.plan_version_id , tmp.WK_PLAN_VER_ID,fact.revenue,0)
3161 , 0 )) PRJ_REVENUE,
3162 sum(decode(p.project_currency_code,
3163 fact.currency_code, decode(fact.plan_version_id , tmp.WK_PLAN_VER_ID,fact.labor_raw_cost,0)
3164 , 0 )) PRJ_LABOR_RAW_COST,
3165 sum(decode(p.project_currency_code,
3166 fact.currency_code, decode(fact.plan_version_id , tmp.WK_PLAN_VER_ID,fact.labor_brdn_cost,0)
3167 , 0 )) PRJ_LABOR_BRDN_COST,
3168 sum(decode(p.project_currency_code,
3169 fact.currency_code, decode(fact.plan_version_id , tmp.WK_PLAN_VER_ID,fact.equipment_raw_cost,0)
3170 , 0 )) PRJ_EQUIP_RAW_COST,
3171 sum(decode(p.project_currency_code,
3172 fact.currency_code, decode(fact.plan_version_id , tmp.WK_PLAN_VER_ID,fact.equipment_brdn_cost,0)
3173 , 0 )) PRJ_EQUIP_BRDN_COST,
3174
3175 sum(decode(p.project_currency_code,
3176 fact.currency_code, decode(fact.plan_version_id , tmp.base_plan_ver_id,fact.raw_cost,0)
3177 , 0 )) PRJ_BASE_RAW_COST,
3178 sum(decode(p.project_currency_code,
3179 fact.currency_code, decode(fact.plan_version_id , tmp.base_plan_ver_id,fact.brdn_cost,0)
3180 , 0 )) PRJ_BASE_BRDN_COST,
3181 --sum(decode(p.project_currency_code,
3182 -- fact.currency_code, decode(fact.plan_version_id , tmp.base_plan_ver_id,fact.revenue,0)
3183 -- , 0 )) PRJ_BASE_REVENUE,
3184 sum(decode(p.project_currency_code,
3185 fact.currency_code, decode(fact.plan_version_id , tmp.base_plan_ver_id,fact.labor_raw_cost,0)
3186 , 0 )) PRJ_BASE_LABOR_RAW_COST,
3187 sum(decode(p.project_currency_code,
3188 fact.currency_code, decode(fact.plan_version_id , tmp.base_plan_ver_id,fact.labor_brdn_cost,0)
3189 , 0 )) PRJ_BASE_LABOR_BRDN_COST,
3190 sum(decode(p.project_currency_code,
3191 fact.currency_code, decode(fact.plan_version_id , tmp.base_plan_ver_id,fact.equipment_raw_cost,0)
3192 , 0 )) PRJ_BASE_EQUIP_RAW_COST,
3193 sum(decode(p.project_currency_code,
3194 fact.currency_code, decode(fact.plan_version_id , tmp.base_plan_ver_id,fact.equipment_brdn_cost,0)
3195 , 0 )) PRJ_BASE_EQUIP_BRDN_COST,
3196
3197 sum(decode(p.project_currency_code,
3198 fact.currency_code, decode(fact.plan_version_id , tmp.lpb_plan_ver_id,fact.raw_cost,0)
3199 , 0 )) PRJ_LPB_RAW_COST,
3200 sum(decode(p.project_currency_code,
3201 fact.currency_code, decode(fact.plan_version_id , tmp.lpb_plan_ver_id,fact.brdn_cost,0)
3202 , 0 )) PRJ_LPB_BRDN_COST,
3203 --sum(decode(p.project_currency_code,
3204 -- fact.currency_code, decode(fact.plan_version_id , tmp.lpb_plan_ver_id,fact.revenue,0)
3205 -- , 0 )) PRJ_LPB_REVENUE,
3206 sum(decode(p.project_currency_code,
3207 fact.currency_code, decode(fact.plan_version_id , tmp.lpb_plan_ver_id,fact.labor_raw_cost,0)
3208 , 0 )) PRJ_LPB_LABOR_RAW_COST,
3209 sum(decode(p.project_currency_code,
3210 fact.currency_code, decode(fact.plan_version_id , tmp.lpb_plan_ver_id,fact.labor_brdn_cost,0)
3211 , 0 )) PRJ_LPB_LABOR_BRDN_COST,
3212 sum(decode(p.project_currency_code,
3213 fact.currency_code, decode(fact.plan_version_id , tmp.lpb_plan_ver_id,fact.equipment_raw_cost,0)
3214 , 0 )) PRJ_LPB_EQUIP_RAW_COST,
3215 sum(decode(p.project_currency_code,
3216 fact.currency_code, decode(fact.plan_version_id , tmp.lpb_plan_ver_id,fact.equipment_brdn_cost,0)
3217 , 0 )) PRJ_LPB_EQUIP_BRDN_COST,
3218
3219 sum(decode(p.PROJFUNC_CURRENCY_CODE,
3220 fact.currency_code, decode(fact.plan_version_id , tmp.WK_PLAN_VER_ID,fact.raw_cost,0)
3221 , 0 )) POU_RAW_COST,
3222 sum(decode(p.PROJFUNC_CURRENCY_CODE,
3223 fact.currency_code, decode(fact.plan_version_id , tmp.WK_PLAN_VER_ID,fact.brdn_cost,0)
3224 , 0 )) POU_BRDN_COST,
3225 sum(decode(p.PROJFUNC_CURRENCY_CODE,
3226 fact.currency_code, decode(fact.plan_version_id , tmp.WK_PLAN_VER_ID,fact.revenue,0)
3227 , 0 )) POU_REVENUE,
3228 sum(decode(p.PROJFUNC_CURRENCY_CODE,
3229 fact.currency_code, decode(fact.plan_version_id , tmp.WK_PLAN_VER_ID,fact.labor_raw_cost,0)
3230 , 0 )) POU_LABOR_RAW_COST,
3231 sum(decode(p.PROJFUNC_CURRENCY_CODE,
3232 fact.currency_code, decode(fact.plan_version_id , tmp.WK_PLAN_VER_ID,fact.labor_brdn_cost,0)
3233 , 0 )) POU_LABOR_BRDN_COST,
3234 sum(decode(p.PROJFUNC_CURRENCY_CODE,
3235 fact.currency_code, decode(fact.plan_version_id , tmp.WK_PLAN_VER_ID,fact.equipment_raw_cost,0)
3236 , 0 )) POU_EQUIP_RAW_COST,
3237 sum(decode(p.PROJFUNC_CURRENCY_CODE,
3238 fact.currency_code, decode(fact.plan_version_id , tmp.WK_PLAN_VER_ID,fact.equipment_brdn_cost,0)
3239 , 0 )) POU_EQUIP_BRDN_COST,
3240
3241 sum(decode(p.PROJFUNC_CURRENCY_CODE,
3242 fact.currency_code, decode(fact.plan_version_id , tmp.base_plan_ver_id,fact.raw_cost,0)
3243 , 0 )) POU_BASE_RAW_COST,
3244 sum(decode(p.PROJFUNC_CURRENCY_CODE,
3245 fact.currency_code, decode(fact.plan_version_id , tmp.base_plan_ver_id,fact.brdn_cost,0)
3246 , 0 )) POU_BASE_BRDN_COST,
3247 --sum(decode(p.PROJFUNC_CURRENCY_CODE,
3248 -- fact.currency_code, decode(fact.plan_version_id , tmp.base_plan_ver_id,fact.revenue,0)
3249 -- , 0 )) POU_BASE_REVENUE,
3250 sum(decode(p.PROJFUNC_CURRENCY_CODE,
3251 fact.currency_code, decode(fact.plan_version_id , tmp.base_plan_ver_id,fact.labor_raw_cost,0)
3252 , 0 )) POU_BASE_LABOR_RAW_COST,
3253 sum(decode(p.PROJFUNC_CURRENCY_CODE,
3254 fact.currency_code, decode(fact.plan_version_id , tmp.base_plan_ver_id,fact.labor_brdn_cost,0)
3255 , 0 )) POU_BASE_LABOR_BRDN_COST,
3256 sum(decode(p.PROJFUNC_CURRENCY_CODE,
3257 fact.currency_code, decode(fact.plan_version_id , tmp.base_plan_ver_id,fact.equipment_raw_cost,0)
3258 , 0 )) POU_BASE_EQUIP_RAW_COST,
3259 sum(decode(p.PROJFUNC_CURRENCY_CODE,
3260 fact.currency_code, decode(fact.plan_version_id , tmp.base_plan_ver_id,fact.equipment_brdn_cost,0)
3261 , 0 )) POU_BASE_EQUIP_BRDN_COST,
3262
3263 sum(decode(p.PROJFUNC_CURRENCY_CODE,
3264 fact.currency_code, decode(fact.plan_version_id , tmp.lpb_plan_ver_id,fact.raw_cost,0)
3265 , 0 )) POU_LPB_RAW_COST,
3266 sum(decode(p.PROJFUNC_CURRENCY_CODE,
3267 fact.currency_code, decode(fact.plan_version_id , tmp.lpb_plan_ver_id,fact.brdn_cost,0)
3268 , 0 )) POU_LPB_BRDN_COST,
3269 --sum(decode(p.PROJFUNC_CURRENCY_CODE,
3270 -- fact.currency_code, decode(fact.plan_version_id , tmp.lpb_plan_ver_id,fact.revenue,0)
3271 -- , 0 )) POU_LPB_REVENUE,
3272 sum(decode(p.PROJFUNC_CURRENCY_CODE,
3273 fact.currency_code, decode(fact.plan_version_id , tmp.lpb_plan_ver_id,fact.labor_raw_cost,0)
3274 , 0 )) POU_LPB_LABOR_RAW_COST,
3275 sum(decode(p.PROJFUNC_CURRENCY_CODE,
3276 fact.currency_code, decode(fact.plan_version_id , tmp.lpb_plan_ver_id,fact.labor_brdn_cost,0)
3277 , 0 )) POU_LPB_LABOR_BRDN_COST,
3278 sum(decode(p.PROJFUNC_CURRENCY_CODE,
3279 fact.currency_code, decode(fact.plan_version_id , tmp.lpb_plan_ver_id,fact.equipment_raw_cost,0)
3280 , 0 )) POU_LPB_EQUIP_RAW_COST,
3281 sum(decode(p.PROJFUNC_CURRENCY_CODE,
3282 fact.currency_code, decode(fact.plan_version_id , tmp.lpb_plan_ver_id,fact.equipment_brdn_cost,0)
3283 , 0 )) POU_LPB_EQUIP_BRDN_COST,
3284
3285 sum(decode(fact.plan_version_id , tmp.WK_PLAN_VER_ID, fact.LABOR_HRS, 0 )) LABOR_HOURS,
3286 sum(decode(fact.plan_version_id , tmp.WK_PLAN_VER_ID, fact.EQUIPMENT_HOURS, 0 )) EQUIPMENT_HOURS,
3287 sum(decode(fact.plan_version_id , tmp.base_plan_ver_id, fact.LABOR_HRS, 0 )) BASE_LABOR_HOURS,
3288 sum(decode(fact.plan_version_id , tmp.base_plan_ver_id, fact.EQUIPMENT_HOURS, 0 )) BASE_EQUIP_HOURS,
3289 sum(decode(fact.plan_version_id , tmp.lpb_plan_ver_id,fact.LABOR_HRS, 0 )) LPB_LABOR_HOURS,
3290 sum(decode(fact.plan_version_id , tmp.lpb_plan_ver_id, fact.EQUIPMENT_HOURS,0)) LPB_EQUIP_HOURS,
3291
3292 sum( decode( fact.plan_version_id, WK_PLAN_VER_ID, fact.ACT_LABOR_HRS, 0)) ACT_LABOR_HRS,
3293 sum( decode(fact.plan_version_id, WK_PLAN_VER_ID, fact.ACT_EQUIP_HRS, 0)) ACT_EQUIP_HRS,
3294 /*sum( decode( fact.plan_version_id, WK_PLAN_VER_ID, TXN_MASK* fact.act_labor_brdn_cost, 0 )) ACT_TXN_LABOR_BRDN_COST,
3295 sum( decode(fact.plan_version_id, WK_PLAN_VER_ID, TXN_MASK* fact.act_equip_brdn_cost, 0 )) ACT_TXN_EQUIP_BRDN_COST,
3296 sum( decode(fact.plan_version_id, WK_PLAN_VER_ID, TXN_MASK* fact.act_raw_cost, 0 )) ACT_TXN_RAW_COST,
3297 sum( decode(fact.plan_version_id, WK_PLAN_VER_ID, TXN_MASK* fact.act_brdn_cost, 0 )) ACT_TXN_BRDN_COST,*/
3298 0 ACT_TXN_LABOR_BRDN_COST,
3299 0 ACT_TXN_EQUIP_BRDN_COST,
3300 0 ACT_TXN_RAW_COST,
3301 0 ACT_TXN_BRDN_COST,
3302 sum( decode(p.project_currency_code,
3303 fact.currency_code, decode(fact.plan_version_id, WK_PLAN_VER_ID, fact.act_labor_brdn_cost, 0))) ACT_PRJ_LABOR_BRDN_COST,
3304 sum( decode(p.project_currency_code,
3305 fact.currency_code, decode( fact.plan_version_id, WK_PLAN_VER_ID, fact.act_equip_brdn_cost, 0)) )ACT_PRJ_EQUIP_BRDN_COST,
3306 sum( decode(p.project_currency_code,
3307 fact.currency_code, decode(fact.plan_version_id, WK_PLAN_VER_ID, fact.act_raw_cost, 0 )) )ACT_PRJ_RAW_COST,
3308 sum( decode(p.project_currency_code,
3309 fact.currency_code, decode(fact.plan_version_id, WK_PLAN_VER_ID, fact.act_brdn_cost, 0 )) )ACT_PRJ_BRDN_COST,
3310 sum( decode(p.PROJFUNC_CURRENCY_CODE,
3311 fact.currency_code, decode(fact.plan_version_id, WK_PLAN_VER_ID, fact.act_labor_brdn_cost, 0 )) )ACT_POU_LABOR_BRDN_COST,
3312 sum( decode(p.PROJFUNC_CURRENCY_CODE,
3313 fact.currency_code, decode(fact.plan_version_id, WK_PLAN_VER_ID, fact.act_equip_brdn_cost, 0 )) )ACT_POU_EQUIP_BRDN_COST,
3314 sum( decode(p.PROJFUNC_CURRENCY_CODE,
3315 fact.currency_code, decode(fact.plan_version_id, WK_PLAN_VER_ID, fact.act_raw_cost, 0 )) )ACT_POU_RAW_COST,
3316 sum(decode(p.PROJFUNC_CURRENCY_CODE,
3317 fact.currency_code, decode(fact.plan_version_id, WK_PLAN_VER_ID, fact.act_brdn_cost, 0 ))) ACT_POU_BRDN_COST,
3318 sum(decode(fact.plan_version_id, WK_PLAN_VER_ID, fact.ETC_LABOR_HRS, 0 )) ETC_LABOR_HRS,
3319 sum(decode(fact.plan_version_id, WK_PLAN_VER_ID, fact.ETC_EQUIP_HRS, 0 )) ETC_EQUIP_HRS,
3320 /*sum(decode(fact.plan_version_id, WK_PLAN_VER_ID, fact.ETC_labor_brdn_cost*TXN_MASK else 0 end) ETC_TXN_LABOR_BRDN_COST,
3321 sum(decode(fact.plan_version_id, WK_PLAN_VER_ID, fact.ETC_equip_brdn_cost*TXN_MASK else 0 end) ETC_TXN_EQUIP_BRDN_COST,
3322 sum(decode(fact.plan_version_id, WK_PLAN_VER_ID, fact.ETC_raw_cost*TXN_MASK else 0 end) ETC_TXN_RAW_COST,
3323 sum(decode(fact.plan_version_id, WK_PLAN_VER_ID, fact.ETC_brdn_cost*TXN_MASK else 0 end) ETC_TXN_BRDN_COST,*/
3324 0 ETC_TXN_LABOR_BRDN_COST,
3325 0 ETC_TXN_EQUIP_BRDN_COST,
3326 0 ETC_TXN_RAW_COST,
3327 0 ETC_TXN_BRDN_COST,
3328 sum(decode(p.project_currency_code,
3329 fact.currency_code,decode(fact.plan_version_id, WK_PLAN_VER_ID, fact.ETC_labor_brdn_cost, 0 ))) ETC_PRJ_LABOR_BRDN_COST,
3330 sum(decode(p.project_currency_code,
3331 fact.currency_code,decode(fact.plan_version_id, WK_PLAN_VER_ID, fact.ETC_equip_brdn_cost,0 ))) ETC_PRJ_EQUIP_BRDN_COST,
3332 sum(decode(p.project_currency_code,
3333 fact.currency_code,decode(fact.plan_version_id, WK_PLAN_VER_ID, fact.ETC_raw_cost, 0 ))) ETC_PRJ_RAW_COST,
3334 sum(decode(p.project_currency_code,
3335 fact.currency_code,decode(fact.plan_version_id, WK_PLAN_VER_ID, fact.ETC_brdn_cost, 0 ))) ETC_PRJ_BRDN_COST,
3336 sum(decode(p.PROJFUNC_CURRENCY_CODE,
3337 fact.currency_code,decode(fact.plan_version_id, WK_PLAN_VER_ID, fact.ETC_labor_brdn_cost,0 ))) ETC_POU_LABOR_BRDN_COST,
3338 sum(decode(p.PROJFUNC_CURRENCY_CODE,
3339 fact.currency_code,decode(fact.plan_version_id, WK_PLAN_VER_ID, fact.ETC_equip_brdn_cost,0 ))) ETC_POU_EQUIP_BRDN_COST,
3340 sum(decode(p.PROJFUNC_CURRENCY_CODE,
3341 fact.currency_code,decode(fact.plan_version_id, WK_PLAN_VER_ID, fact.ETC_raw_cost, 0 ))) ETC_POU_RAW_COST,
3342 sum(decode(p.PROJFUNC_CURRENCY_CODE,
3343 fact.currency_code,decode(fact.plan_version_id, WK_PLAN_VER_ID, fact.ETC_brdn_cost, 0 ))) ETC_POU_BRDN_COST,
3344 /*sum( case when fact.time_id <= END_PERIOD_ID
3345 then
3346 decode(fact.plan_version_id , WK_PLAN_VER_ID,
3347 TXN_MASK*fact.act_labor_raw_cost,0)
3348 else
3349 NULL
3350 end
3351 ) ACT_TXN_LABOR_RAW_COST,*/
3352 0 ACT_TXN_LABOR_RAW_COST,
3353 sum( decode(p.project_currency_code,
3354 fact.currency_code,
3355 decode(fact.plan_version_id, WK_PLAN_VER_ID, fact.act_labor_raw_cost,0))) ACT_PRJ_LABOR_RAW_COST,
3356 sum(decode(p.PROJFUNC_CURRENCY_CODE,
3357 fact.currency_code, decode( fact.plan_version_id, WK_PLAN_VER_ID,
3358 fact.act_labor_raw_cost,0))) ACT_POU_LABOR_RAW_COST,
3359 /* sum( case when fact.time_id <= END_PERIOD_ID
3360 then
3361 decode(fact.plan_version_id, WK_PLAN_VER_ID,
3362 TXN_MASK*fact.act_equip_raw_cost,0)
3363 else
3364 NULL
3365 end
3366 ) ACT_TXN_EQUIP_RAW_COST,*/
3367 0 ACT_TXN_EQUIP_RAW_COST,
3368 sum(decode(p.project_currency_code,
3369 fact.currency_code, decode(fact.plan_version_id, WK_PLAN_VER_ID, fact.act_equip_raw_cost,0))) ACT_PRJ_EQUIP_RAW_COST,
3370 sum( decode(p.PROJFUNC_CURRENCY_CODE,
3371 fact.currency_code,
3372 decode( fact.plan_version_id, WK_PLAN_VER_ID, fact.act_equip_raw_cost,0))) ACT_POU_EQUIP_RAW_COST,
3373 /*sum(case when fact.plan_version_id = WK_PLAN_VER_ID then
3374 fact.ETC_labor_raw_cost*TXN_MASK else 0 end) ETC_TXN_LABOR_RAW_COST,*/
3375 0 ETC_TXN_LABOR_RAW_COST,
3376
3377 sum(decode(p.project_currency_code,
3378 fact.currency_code,decode( fact.plan_version_id, WK_PLAN_VER_ID, fact.ETC_labor_raw_cost, 0 ))) ETC_PRJ_LABOR_RAW_COST,
3379
3380 sum(decode(p.PROJFUNC_CURRENCY_CODE,
3381 fact.currency_code,decode(fact.plan_version_id, WK_PLAN_VER_ID, fact.ETC_labor_raw_cost, 0 ))) ETC_POU_LABOR_RAW_COST,
3382
3383 /*sum(case when fact.plan_version_id = WK_PLAN_VER_ID then
3384 fact.ETC_equip_raw_cost*TXN_MASK else 0 end) ETC_TXN_EQUIP_RAW_COST,*/
3385
3386 0 ETC_TXN_EQUIP_RAW_COST,
3387 sum(decode(p.project_currency_code,
3388 fact.currency_code,decode(fact.plan_version_id, WK_PLAN_VER_ID, fact.ETC_equip_raw_cost, 0 ))) ETC_PRJ_EQUIP_RAW_COST,
3389
3390 sum(decode(p.PROJFUNC_CURRENCY_CODE,
3391 fact.currency_code, decode(fact.plan_version_id, WK_PLAN_VER_ID, fact.ETC_equip_raw_cost, 0 ))) ETC_POU_EQUIP_RAW_COST,
3392 /* Retrival of Project Level Data Starts*/
3393 sum(decode(p.project_currency_code,
3394 fact.currency_code,decode(fact.plan_version_id, WK_PLAN_VER_ID, fact.raw_cost,0 ))) P_RAW_COST,
3395 sum(decode(p.project_currency_code,
3396 fact.currency_code, decode(fact.plan_version_id, WK_PLAN_VER_ID, fact.brdn_cost, 0 ))) P_BRDN_COST,
3397 sum(decode(p.project_currency_code,
3398 fact.currency_code,decode(fact.plan_version_id, WK_PLAN_VER_ID, fact.revenue, 0 ))) P_REVENUE,
3399 sum(decode(p.project_currency_code,
3400 fact.currency_code,decode(fact.plan_version_id, WK_PLAN_VER_ID, fact.labor_raw_cost, 0 ))) P_LBR_RAW_COST,
3401 sum(decode(p.project_currency_code,
3402 fact.currency_code, decode(fact.plan_version_id, WK_PLAN_VER_ID, fact.labor_brdn_cost,0 ))) P_LBR_BRDN_COST,
3403 sum(decode(p.project_currency_code,
3404 fact.currency_code,decode(fact.plan_version_id, WK_PLAN_VER_ID, fact.equipment_raw_cost, 0 ))) P_EQP_RAW_COST,
3405 sum(decode(p.project_currency_code,
3406 fact.currency_code,decode(fact.plan_version_id, WK_PLAN_VER_ID, fact.equipment_brdn_cost, 0 ))) P_EQP_BRDN_COST,
3407 sum(decode(p.project_currency_code,
3408 fact.currency_code,decode(fact.plan_version_id , base_plan_ver_id, fact.raw_cost,0 ))) P_BASE_RAW_COST,
3409 sum(decode(p.project_currency_code,
3410 fact.currency_code, decode(fact.plan_version_id , base_plan_ver_id, fact.brdn_cost,0 ))) P_BASE_BRDN_COST,
3411 sum(decode(p.project_currency_code,
3412 fact.currency_code, decode(fact.plan_version_id , base_plan_ver_id, fact.labor_raw_cost,0 ))) P_BASE_LBR_RAW_COST,
3413 sum(decode(p.project_currency_code,
3414 fact.currency_code, decode(fact.plan_version_id , base_plan_ver_id, fact.labor_brdn_cost, 0 ))) P_BASE_LBR_BRDN_COST,
3415 sum(decode(p.project_currency_code,
3416 fact.currency_code,decode(fact.plan_version_id , base_plan_ver_id, fact.equipment_raw_cost,0 ))) P_BASE_EQP_RAW_COST,
3417 sum(decode(p.project_currency_code,
3418 fact.currency_code, decode(fact.plan_version_id , base_plan_ver_id, fact.equipment_brdn_cost,0 ))) P_BASE_EQP_BRDN_COST,
3419 sum(decode(p.project_currency_code,
3420 fact.currency_code,decode(fact.plan_version_id , lpb_plan_ver_id, fact.raw_cost,0 ))) P_LPB_RAW_COST,
3421 sum(decode(p.project_currency_code,
3422 fact.currency_code, decode(fact.plan_version_id , lpb_plan_ver_id, fact.brdn_cost, 0 ))) P_LPB_BRDN_COST,
3423 sum(decode(p.project_currency_code,
3424 fact.currency_code, decode(fact.plan_version_id , lpb_plan_ver_id, labor_raw_cost, 0 ))) P_LPB_LBR_RAW_COST,
3425 sum(decode(p.project_currency_code,
3426 fact.currency_code, decode(fact.plan_version_id , lpb_plan_ver_id, fact.labor_brdn_cost,0 ))) P_LPB_LBR_BRDN_COST,
3427 sum(decode(p.project_currency_code,
3428 fact.currency_code, decode(fact.plan_version_id , lpb_plan_ver_id, fact.equipment_raw_cost,0 ))) P_LPB_EQP_RAW_COST,
3429 sum(decode(p.project_currency_code,
3430 fact.currency_code,decode(fact.plan_version_id , lpb_plan_ver_id, fact.equipment_brdn_cost, 0 ))) P_LPB_EQP_BRDN_COST,
3431 sum( decode(fact.plan_version_id, WK_PLAN_VER_ID, fact.LABOR_HRS,0 )) P_LBR_HOURS,
3432 sum( decode(fact.plan_version_id, WK_PLAN_VER_ID, fact.EQUIPMENT_HOURS, 0 )) P_EQP_HOURS,
3433 sum(decode(fact.plan_version_id , base_plan_ver_id, fact.LABOR_HRS, 0 )) P_BASE_LBR_HOURS,
3434 sum(decode(fact.plan_version_id , base_plan_ver_id, fact.EQUIPMENT_HOURS,0 )) P_BASE_EQP_HOURS,
3435 sum(decode(fact.plan_version_id , lpb_plan_ver_id, fact.LABOR_HRS, 0 )) P_LPB_LBR_HOURS,
3436 sum(decode(fact.plan_version_id , lpb_plan_ver_id, fact.EQUIPMENT_HOURS,0 )) P_LPB_EQP_HOURS,
3437 sum( decode(fact.plan_version_id, WK_PLAN_VER_ID, fact.ACT_LABOR_HRS, 0)) P_ACT_LBR_HOURS,
3438 sum( decode(fact.plan_version_id, WK_PLAN_VER_ID, fact.ACT_EQUIP_HRS, 0)) P_ACT_EQP_HOURS,
3439 sum(decode(p.project_currency_code,
3440 fact.currency_code, decode(fact.plan_version_id, WK_PLAN_VER_ID, fact.act_labor_brdn_cost, 0))) P_ACT_LBR_BRDN_COST,
3441 sum(decode(p.project_currency_code,
3442 fact.currency_code, decode( fact.plan_version_id, WK_PLAN_VER_ID, fact.act_equip_brdn_cost, 0))) P_ACT_EQP_BRDN_COST,
3443 sum(decode(p.project_currency_code,
3444 fact.currency_code, decode(fact.plan_version_id, WK_PLAN_VER_ID, fact.act_raw_cost , 0 ))) P_ACT_RAW_COST,
3445 sum(decode(p.project_currency_code,
3446 fact.currency_code, decode(fact.plan_version_id, WK_PLAN_VER_ID, fact.act_brdn_cost, 0 ))) P_ACT_BRDN_COST,
3447 sum(decode(p.project_currency_code,
3448 fact.currency_code, decode( fact.plan_version_id, WK_PLAN_VER_ID, fact.act_labor_raw_cost,0))) P_ACT_LBR_RAW_COST,
3449 sum(decode(p.project_currency_code,
3450 fact.currency_code, decode(fact.plan_version_id, WK_PLAN_VER_ID, fact.act_equip_raw_cost ,0))) P_ACT_EQP_RAW_COST,
3451 sum( decode(fact.plan_version_id, WK_PLAN_VER_ID, fact.ETC_EQUIP_HRS, 0 )) P_ETC_EQP_HOURS,
3452 sum(decode(fact.plan_version_id, WK_PLAN_VER_ID, fact.ETC_LABOR_HRS, 0 )) P_ETC_LBR_HOURS,
3453 sum(decode(p.project_currency_code,
3454 fact.currency_code,decode(fact.plan_version_id, WK_PLAN_VER_ID, fact.ETC_raw_cost, 0 ))) P_ETC_RAW_COST,
3455 sum(decode(p.project_currency_code,
3456 fact.currency_code,decode(fact.plan_version_id, WK_PLAN_VER_ID, fact.ETC_brdn_cost, 0 ))) P_ETC_BRDN_COST,
3457 sum(decode(p.project_currency_code,
3458 fact.currency_code,decode(fact.plan_version_id, WK_PLAN_VER_ID, fact.ETC_labor_brdn_cost,0 ))) P_ETC_LBR_BRDN_COST,
3459 sum(decode(p.project_currency_code,
3460 fact.currency_code,decode(fact.plan_version_id, WK_PLAN_VER_ID, fact.ETC_equip_brdn_cost, 0 ))) P_ETC_EQP_BRDN_COST,
3461 sum(decode(p.project_currency_code,
3462 fact.currency_code, decode(fact.plan_version_id, WK_PLAN_VER_ID, fact.ETC_labor_raw_cost, 0 ))) P_ETC_LBR_RAW_COST,
3463 sum(decode(p.project_currency_code,
3464 fact.currency_code,decode(fact.plan_version_id, WK_PLAN_VER_ID, fact.ETC_equip_raw_cost, 0 ))) P_ETC_EQP_RAW_COST
3465 from pji_plan_extr_tmp tmp, pa_pjt_wbs_fact fact, pa_projects_all p
3466 where -1*tmp.project_id = fact.project_id
3467 and tmp.WK_PLAN_VER_ID = fact.plan_version_id
3468 and p.project_id = fact.project_id
3469 and fact.wbs_rollup_flag = 'Y'
3470 GROUP BY
3471 fact.PROJECT_ID,
3472 fact.PROJECT_ELEMENT_ID,
3473 tmp.WK_PLAN_VER_ID,
3474 tmp.STRUCT_VER_ID;
3475
3476 IF g_debug_mode='Y' THEN
3477 debug_accum ; /* bug#3993830 */
3478
3479 END IF;
3480 delete from pji_plan_extr_tmp where project_id < 0 ;
3481
3482 -- OLAP END CHANGE
3483
3484 end if ;
3485 -- SCOPE_00
3486
3487
3488 /* Added for workplan progress */
3489 -- Get the Latest Published Version for the Project
3490
3491 IF p_workplan_flag ='Y' THEN --bug#5554311
3492
3493 UPDATE pji_plan_extr_tmp TMP
3494 SET (LPB_STRUCT_VER_ID,LPB_PLAN_VER_ID)=
3495 (
3496 SELECT element_version_id,bv.budget_version_id
3497 FROM pa_proj_elem_ver_structure ppevs,
3498 pa_proj_structure_types ppst,
3499 pa_budget_versions bv
3500 WHERE 1=1
3501 and latest_eff_published_flag = 'Y'
3502 and ppst.proj_element_id = ppevs.proj_element_id
3503 and ppst.structure_type_id = 1
3504 and element_version_id=bv.project_structure_Version_id
3505 and bv.wp_version_flag ='Y'
3506 and bv.project_id=ppevs.project_id
3507 and tmp.project_id=ppevs.project_id
3508 );
3509
3510
3511
3512
3513 PRINT_TIME ( ' populate_workplan_data 0003.3 ' ) ;
3514
3515 UPDATE pji_plan_extr_tmp TMP
3516 SET WK_STRUCT_VER_ID=
3517 (
3518 SELECT WBS_VERSION_ID
3519 FROM pji_pjp_wbs_header wbs
3520 WHERE wbs.project_id=tmp.project_id AND
3521 plan_version_id = tmp.plan_ver_id
3522 );
3523
3524 PRINT_TIME ( ' populate_workplan_data 0003.4 ' ) ;
3525
3526 UPDATE pji_plan_extr_tmp TMP
3527 SET WK_PLAN_VER_ID= (
3528 SELECT head.PLAN_VERSION_ID
3529 FROM pji_pjp_wbs_header head,
3530 pa_budget_versions bv
3531 WHERE 1=1
3532 AND head.plan_version_id = bv.budget_version_id
3533 AND NVL(bv.wp_version_flag, 'N') = head.wp_flag
3534 AND NVL(bv.wp_version_flag, 'N') = p_workplan_flag
3535 AND head.WBS_VERSION_ID = tmp.struct_ver_id
3536 AND head.PROJECT_ID = tmp.project_id
3537 AND DECODE(p_workplan_flag
3538 , 'N'
3539 , DECODE(bv.budget_status_code||bv.current_working_flag
3540 , 'WY'
3541 ,'X'
3542 , 'Y')
3543 , 'X') = 'X'
3544 AND head.PLAN_VERSION_ID > 0);
3545
3546 PRINT_TIME ( ' populate_workplan_data 0003.4.1 ' ) ;
3547
3548 UPDATE pji_plan_extr_tmp TMP
3549 SET WK_STRUCT_VER_ID = STRUCT_VER_ID
3550 where WK_STRUCT_VER_ID is null;
3551
3552 PRINT_TIME ( ' populate_workplan_data 0003.5 ' ) ;
3553
3554 UPDATE pji_plan_extr_tmp TMP
3555 SET BASE_PLAN_VER_ID= (
3556 SELECT head.PLAN_VERSION_ID
3557 FROM pji_pjp_wbs_header head,
3558 pa_budget_versions bv
3559 WHERE 1=1
3560 AND head.plan_version_id = bv.budget_version_id
3561 AND NVL(bv.wp_version_flag, 'N') = head.wp_flag
3562 AND NVL(bv.wp_version_flag , 'N') = p_workplan_flag
3563 AND head.WBS_VERSION_ID = TMP.BASE_STRUCT_VER_ID
3564 AND head.PROJECT_ID = tmp.PROJECT_ID
3565 AND DECODE(p_workplan_flag
3566 , 'N'
3567 , DECODE(bv.budget_status_code||bv.current_flag
3568 , 'BY','X'
3569 , 'Y')
3570 , 'X')
3571 = 'X'
3572 AND head.PLAN_VERSION_ID > 0);
3573
3574 ELSE --- when p_workplan_flag ='N' bug#5554311
3575
3576 PRINT_TIME ( ' populate_workplan_data 0003.5.1 ' ) ;
3577
3578 UPDATE pji_plan_extr_tmp TMP
3579 SET (LPB_STRUCT_VER_ID,LPB_PLAN_VER_ID,BASE_STRUCT_VER_ID,BASE_PLAN_VER_ID,
3580 WK_STRUCT_VER_ID,WK_PLAN_VER_ID)=
3581 (SELECT p_struct_ver_id,p_plan_version_id,p_struct_ver_id,p_plan_version_id,p_struct_ver_id,p_plan_version_id from dual );
3582
3583 END IF;
3584
3585 PRINT_TIME ( ' populate_workplan_data 0003.6 ' ) ;
3586
3587
3588
3589 UPDATE pji_plan_extr_tmp TMP
3590 SET (CAL_TYPE,ORG_ID)=
3591 (
3592 SELECT DECODE(NVL(NVL(fp.cost_time_phased_code, fp.revenue_time_phased_code ), fp.all_time_phased_code), 'G', 'G', 'P', 'P', 'A') calendar_type,
3593 pa.ORG_ID
3594 FROM
3595 pa_proj_fp_options fp,
3596 pa_projects_all pa
3597 WHERE 1=1
3598 and pa.project_id=fp.project_id
3599 and pa.project_id=tmp.project_id
3600 and fp.fin_plan_option_level_code = 'PLAN_VERSION'
3601 and fp.fin_plan_version_id =tmp.WK_PLAN_VER_ID
3602 )
3603 WHERE tmp.AS_OF_DATE is not null;
3604
3605 PRINT_TIME ( ' populate_workplan_data 0003.7.1 ' ) ;
3606
3607 UPDATE pji_plan_extr_tmp TMP
3608 SET (END_PERIOD_ID,PERIOD_ID)=
3609 (
3610 SELECT cal.CAL_PERIOD_ID ,DECODE(tmp.cal_type, 'A', 2048, 32) PERIOD_TYPE_ID
3611 FROM pji_time_cal_period_v cal,
3612 pji_org_extr_info info
3613 WHERE TRUNC(tmp.AS_OF_DATE)
3614 BETWEEN TRUNC(cal.START_DATE) AND TRUNC(cal.END_DATE)
3615 AND info.ORG_ID = tmp.ORG_ID
3616 AND DECODE(tmp.cal_type, 'P', info.PA_CALENDAR_ID , info.GL_CALENDAR_ID) = cal.CALENDAR_ID
3617 )
3618 WHERE tmp.AS_OF_DATE is not null;
3619
3620 PRINT_TIME ( ' populate_workplan_data 0003.8 ' ) ;
3621
3622 -- The Temp table is populated with the Program and the Linked Projects and their corresponding plan versions
3623
3624
3625 SELECT
3626 project_id,WK_STRUCT_VER_ID,LPB_STRUCT_VER_ID,BASE_STRUCT_VER_ID,
3627 CAL_TYPE,PERIOD_ID,END_PERIOD_ID
3628 BULK COLLECT INTO
3629 l_project_id_tbl,l_wk_struct_ver_id_tbl,l_lpb_struct_ver_id_tbl,l_base_struct_ver_id_tbl,
3630 l_cal_type_tbl,l_period_id_tbl, l_end_period_id_tbl
3631 FROM PJI_PLAN_EXTR_TMP;
3632
3633 PRINT_TIME ( ' populate_workplan_data 0003.9 ' ) ;
3634
3635 IF p_program_rollup_flag='Y' and p_calling_context='SUMMARIZE' and p_workplan_flag ='Y' THEN
3636 /* Populates Data for the given Project and all the projects above and a level below */
3637 PRINT_TIME ( ' populate_workplan_data 0003.9.1 ' ) ;
3638
3639 FOR i IN 1 .. l_project_id_tbl.count
3640 LOOP
3641 INSERT into PJI_PLAN_EXTR_TMP
3642 (project_id,wk_plan_ver_id,lpb_plan_ver_id,base_plan_ver_id,struct_ver_id,cal_type,period_id,end_period_id) --Bug#5660324
3643 SELECT
3644 head.PROJECT_ID,
3645 MAX(DECODE(SUBSTR(den.RECORD_TYPE,1,1), 'W', head.plan_version_id, NULL)) wk_plan_ver_id,
3646 MAX(DECODE(SUBSTR( den.RECORD_TYPE,1,1), 'P', head.plan_version_id, NULL)) lpb_plan_ver_id ,
3647 MAX(DECODE(SUBSTR(den.RECORD_TYPE,1,1), 'B', head.plan_version_id, NULL)) base_plan_ver_id,
3648 MAX(DECODE(SUBSTR( den.RECORD_TYPE,1,1), 'W', den.wbs_version_id, NULL)) struct_ver_id,
3649 MAX(l_cal_type_tbl(i)),
3650 MAX(l_period_id_tbl(i)),
3651 MAX(l_end_period_id_tbl(i))
3652 FROM (
3653 SELECT
3654 DECODE(SUBSTR(record_type,2,1),'R',sub_id,'S',sup_id) wbs_version_id,record_type,
3655 DECODE(NVL(sub_rollup_id,sup_emt_id),sup_emt_id,0,1) relationship
3656 FROM
3657 (
3658 SELECT
3659 sub_id,sup_id,sub_rollup_id,sup_emt_id,'WR' record_type
3660 FROM
3661 pji_xbs_Denorm wrk
3662 WHERE
3663 wrk.STRUCT_TYPE = 'PRG' AND
3664 wrk.SUP_ID = l_wk_struct_ver_id_tbl(i) AND
3665 ( wrk.RELATIONSHIP_TYPE <>'LF' OR wrk.RELATIONSHIP_TYPE IS NULL) AND
3666 wrk.struct_version_id is null
3667 UNION ALL
3668 SELECT
3669 sub_id,sup_id,sub_rollup_id,sup_emt_id,'PR' record_type
3670 FROM
3671 pji_xbs_Denorm pub
3672 WHERE
3673 pub.STRUCT_TYPE = 'PRG' AND
3674 pub.SUP_ID = l_lpb_struct_ver_id_tbl(i) AND
3675 ( pub.RELATIONSHIP_TYPE <>'LF' OR pub.RELATIONSHIP_TYPE IS NULL) AND
3676 pub.struct_version_id is null
3677 UNION ALL
3678 SELECT
3679 sub_id,sup_id,sub_rollup_id,sup_emt_id,'BR' record_type
3680 FROM
3681 pji_xbs_Denorm base
3682 WHERE
3683 base.STRUCT_TYPE = 'PRG' AND
3684 base.SUP_ID = l_base_struct_ver_id_tbl(i) AND
3685 ( base.RELATIONSHIP_TYPE <>'LF' OR base.RELATIONSHIP_TYPE IS NULL) AND
3686 base.struct_version_id is null
3687 UNION ALL
3688 SELECT sub_id,sup_id,sub_rollup_id,sup_emt_id,'WS' record_type
3689 FROM
3690 pji_xbs_Denorm wrk
3691 WHERE
3692 wrk.STRUCT_TYPE = 'PRG' AND
3693 wrk.SUB_ID = l_wk_struct_ver_id_tbl(i) AND
3694 ( wrk.RELATIONSHIP_TYPE <>'LF' OR wrk.RELATIONSHIP_TYPE IS NULL) AND
3695 wrk.struct_version_id is null
3696 UNION ALL
3697 SELECT sub_id,sup_id,sub_rollup_id,sup_emt_id,'PS' record_type
3698 FROM
3699 pji_xbs_Denorm pub
3700 WHERE
3701 pub.STRUCT_TYPE = 'PRG' AND
3702 pub.SUB_ID = l_lpb_struct_ver_id_tbl(i) AND
3703 ( pub.RELATIONSHIP_TYPE <>'LF' OR pub.RELATIONSHIP_TYPE IS NULL) AND
3704 pub.struct_version_id is null
3705 UNION ALL
3706 SELECT sub_id,sup_id,sub_rollup_id,sup_emt_id,'BS' record_type
3707 FROM
3708 pji_xbs_Denorm base
3709 WHERE
3710 base.STRUCT_TYPE = 'PRG' AND
3711 base.SUB_ID = l_base_struct_ver_id_tbl(i) AND
3712 ( base.RELATIONSHIP_TYPE <>'LF' OR base.RELATIONSHIP_TYPE IS NULL) AND
3713 base.struct_version_id is null
3714 )
3715 )
3716 den,
3717 pa_proj_element_versions ver,
3718 pji_pjp_wbs_header head
3719 WHERE
3720 den.WBS_VERSION_ID = ver.element_version_id AND
3721 den.record_type is not null AND
3722 DECODE(SUBSTR(den.RECORD_TYPE,2,1),'S',1,'R',den.RELATIONSHIP) =1 AND
3723 ver.project_id = head.project_id AND
3724 den.WBS_VERSION_ID = head.wbs_version_id AND
3725 head.WP_FLAG = 'Y'
3726 GROUP BY head.project_id;
3727 END LOOP;
3728
3729
3730
3731 ELSIF p_program_rollup_flag='Y' and p_calling_context='ROLLUP' and p_workplan_flag ='Y' THEN
3732 /* Populates Data for the Project and all the projects below the given project */
3733
3734 PRINT_TIME ( ' populate_workplan_data 0003.9.2 ' ) ;
3735
3736 FOR i IN 1 .. l_project_id_tbl.count
3737 LOOP
3738
3739 INSERT into PJI_PLAN_EXTR_TMP
3740 (project_id,wk_plan_ver_id,lpb_plan_ver_id,base_plan_ver_id,struct_ver_id,cal_type,period_id,end_period_id) --Bug#5660324
3741 SELECT
3742 head.PROJECT_ID,
3743 MAX(DECODE(den.RECORD_TYPE, 'W', head.plan_version_id, NULL)) wk_plan_ver_id,
3744 MAX(DECODE(den.RECORD_TYPE, 'P', head.plan_version_id, NULL)) lpb_plan_ver_id ,
3745 MAX(DECODE(den.RECORD_TYPE, 'B', head.plan_version_id, NULL)) base_plan_ver_id,
3746 MAX(DECODE(den.RECORD_TYPE, 'W', den.wbs_version_id, NULL)) struct_ver_id,
3747 MAX(l_cal_type_tbl(i)),
3748 MAX(l_period_id_tbl(i)),
3749 MAX(l_end_period_id_tbl(i))
3750 FROM
3751 (
3752 SELECT
3753 wrk.SUB_ID wbs_version_id,'W' record_type
3754 FROM
3755 pji_xbs_Denorm wrk
3756 WHERE
3757 wrk.STRUCT_TYPE = 'PRG' AND
3758 wrk.SUP_ID = l_wk_struct_ver_id_tbl(i) AND
3759 ( wrk.RELATIONSHIP_TYPE <>'LF' OR wrk.RELATIONSHIP_TYPE IS NULL) AND
3760 wrk.struct_version_id is null
3761 UNION ALL
3762 SELECT
3763 pub.SUB_ID wbs_version_id,'P' record_type
3764 FROM
3765 pji_xbs_Denorm pub
3766 WHERE
3767 pub.STRUCT_TYPE = 'PRG' AND
3768 pub.SUP_ID = l_lpb_struct_ver_id_tbl(i) AND
3769 ( pub.RELATIONSHIP_TYPE <>'LF' OR pub.RELATIONSHIP_TYPE IS NULL) AND
3770 pub.struct_version_id is null
3771 UNION ALL
3772 SELECT
3773 base.SUB_ID wbs_version_id,'B' record_type
3774 FROM
3775 pji_xbs_Denorm base
3776 WHERE
3777 base.STRUCT_TYPE = 'PRG' AND
3778 base.SUP_ID = l_base_struct_ver_id_tbl(i) AND
3779 ( base.RELATIONSHIP_TYPE <>'LF' OR base.RELATIONSHIP_TYPE IS NULL) AND
3780 base.struct_version_id is null
3781 )
3782 den,
3783 pa_proj_element_versions ver,
3784 pji_pjp_wbs_header head
3785 WHERE
3786 den.wbs_version_id = ver.element_version_id AND
3787 ver.project_id = head.project_id AND
3788 den.wbs_version_id = head.wbs_version_id AND
3789 head.WP_FLAG = 'Y'
3790 GROUP BY head.project_id;
3791
3792 END LOOP;
3793
3794 END IF;
3795
3796 /* Start of changes for bug 5751250 */
3797
3798 IF p_calling_context = 'MSP' THEN
3799
3800 UPDATE pji_plan_extr_tmp
3801 SET WK_PLAN_VER_ID = -1, BASE_PLAN_VER_ID = -1, LPB_PLAN_VER_ID = -1;
3802
3803 END IF;
3804
3805 /* End of changes for bug 5751250 */
3806
3807 --Ensures that data is cleaned up for the Project / Program and the linked sub projects
3808 IF (p_delete_flag = 'Y') THEN
3809
3810 PRINT_TIME ( ' populate_workplan_data 0003.10 ' ) ;
3811
3812 -- Bug 10049710
3813 /*
3814 DELETE FROM pji_fm_xbs_accum_tmp1
3815 WHERE rowid IN
3816 (
3817 SELECT tmp.rowid
3818 FROM pji_plan_extr_tmp head, pji_fm_xbs_accum_tmp1 tmp
3819 WHERE head.project_id=tmp.project_id
3820 );
3821 */
3822 DELETE FROM PJI_FM_XBS_ACCUM_TMP1 TMP1
3823 WHERE EXISTS ( SELECT 'x'
3824 FROM PJI_PLAN_EXTR_TMP HEAD
3825 WHERE HEAD.PROJECT_ID=TMP1.PROJECT_ID);
3826
3827 END IF;
3828
3829 PRINT_TIME ( ' populate_workplan_data 0003.10.1 ' ) ;
3830
3831 DELETE FROM PJI_PLAN_EXTR_TMP tmp1
3832 WHERE EXISTS
3833 ( SELECT * FROM PJI_PLAN_EXTR_TMP tmp2
3834 WHERE tmp1.PROJECT_ID=tmp2.PROJECT_ID
3835 AND tmp1.ROWID > tmp2.ROWID );
3836
3837 IF g_debug_mode='Y' THEN
3838 PRINT_TIME ( ' populate_workplan_data 0003.11 ' ) ;
3839 END IF;
3840
3841
3842
3843 --
3844 -- Get task level data from reporting lines
3845 -- Data is rolled up by WBS hierarchy
3846 -- Data inserted is the Totals
3847 --
3848
3849 INSERT INTO pji_fm_xbs_accum_tmp1 (
3850 PROJECT_ID, STRUCT_VERSION_ID, PROJECT_ELEMENT_ID, CALENDAR_TYPE,
3851 PERIOD_NAME, PLAN_VERSION_ID, QUANTITY, TXN_RAW_COST,
3852 TXN_BRDN_COST, TXN_REVENUE, TXN_LABOR_RAW_COST, TXN_LABOR_BRDN_COST,
3853 TXN_EQUIP_RAW_COST, TXN_EQUIP_BRDN_COST, TXN_BASE_RAW_COST, TXN_BASE_BRDN_COST,
3854 TXN_BASE_LABOR_RAW_COST, TXN_BASE_LABOR_BRDN_COST,TXN_BASE_EQUIP_RAW_COST, TXN_BASE_EQUIP_BRDN_COST,
3855 TXN_LPB_RAW_COST, TXN_LPB_BRDN_COST, TXN_LPB_LABOR_RAW_COST, TXN_LPB_LABOR_BRDN_COST,
3856 TXN_LPB_EQUIP_RAW_COST, TXN_LPB_EQUIP_BRDN_COST, PRJ_RAW_COST, PRJ_BRDN_COST,
3857 PRJ_REVENUE, PRJ_LABOR_RAW_COST, PRJ_LABOR_BRDN_COST, PRJ_EQUIP_RAW_COST,
3858 PRJ_EQUIP_BRDN_COST, PRJ_BASE_RAW_COST, PRJ_BASE_BRDN_COST, PRJ_BASE_LABOR_RAW_COST,
3859 PRJ_BASE_LABOR_BRDN_COST,PRJ_BASE_EQUIP_RAW_COST, PRJ_BASE_EQUIP_BRDN_COST,PRJ_LPB_RAW_COST,
3860 PRJ_LPB_BRDN_COST, PRJ_LPB_LABOR_RAW_COST, PRJ_LPB_LABOR_BRDN_COST, PRJ_LPB_EQUIP_RAW_COST,
3861 PRJ_LPB_EQUIP_BRDN_COST, POU_RAW_COST, POU_BRDN_COST, POU_REVENUE,
3862 POU_LABOR_RAW_COST, POU_LABOR_BRDN_COST, POU_EQUIP_RAW_COST, POU_EQUIP_BRDN_COST,
3863 POU_BASE_RAW_COST, POU_BASE_BRDN_COST, POU_BASE_LABOR_RAW_COST, POU_BASE_LABOR_BRDN_COST,
3864 POU_BASE_EQUIP_RAW_COST, POU_BASE_EQUIP_BRDN_COST,POU_LPB_RAW_COST, POU_LPB_BRDN_COST,
3865 POU_LPB_LABOR_RAW_COST, POU_LPB_LABOR_BRDN_COST, POU_LPB_EQUIP_RAW_COST, POU_LPB_EQUIP_BRDN_COST,
3866 LABOR_HOURS, EQUIPMENT_HOURS, BASE_LABOR_HOURS, BASE_EQUIP_HOURS,
3867 LPB_LABOR_HOURS, LPB_EQUIP_HOURS, ACT_LABOR_HRS, ACT_EQUIP_HRS,
3868 ACT_TXN_LABOR_BRDN_COST, ACT_TXN_EQUIP_BRDN_COST, ACT_TXN_RAW_COST, ACT_TXN_BRDN_COST,
3869 ACT_PRJ_LABOR_BRDN_COST, ACT_PRJ_EQUIP_BRDN_COST, ACT_PRJ_RAW_COST, ACT_PRJ_BRDN_COST,
3870 ACT_POU_LABOR_BRDN_COST, ACT_POU_EQUIP_BRDN_COST, ACT_POU_RAW_COST, ACT_POU_BRDN_COST,
3871 ETC_LABOR_HRS, ETC_EQUIP_HRS, ETC_TXN_LABOR_BRDN_COST, ETC_TXN_EQUIP_BRDN_COST,
3872 ETC_TXN_RAW_COST, ETC_TXN_BRDN_COST, ETC_PRJ_LABOR_BRDN_COST, ETC_PRJ_EQUIP_BRDN_COST,
3873 ETC_PRJ_RAW_COST, ETC_PRJ_BRDN_COST, ETC_POU_LABOR_BRDN_COST, ETC_POU_EQUIP_BRDN_COST,
3874 ETC_POU_RAW_COST, ETC_POU_BRDN_COST, ACT_TXN_LABOR_RAW_COST , ACT_PRJ_LABOR_RAW_COST,
3875 ACT_POU_LABOR_RAW_COST, ACT_TXN_EQUIP_RAW_COST, ACT_PRJ_EQUIP_RAW_COST, ACT_POU_EQUIP_RAW_COST,
3876 ETC_TXN_LABOR_RAW_COST, ETC_PRJ_LABOR_RAW_COST, ETC_POU_LABOR_RAW_COST, ETC_TXN_EQUIP_RAW_COST,
3877 ETC_PRJ_EQUIP_RAW_COST, ETC_POU_EQUIP_RAW_COST, P_RAW_COST,P_BRDN_COST, P_REVENUE,
3878 P_LBR_RAW_COST, P_LBR_BRDN_COST, P_EQP_RAW_COST, P_EQP_BRDN_COST,
3879 P_BASE_RAW_COST, P_BASE_BRDN_COST, P_BASE_LBR_RAW_COST, P_BASE_LBR_BRDN_COST,
3880 P_BASE_EQP_RAW_COST, P_BASE_EQP_BRDN_COST, P_LPB_RAW_COST, P_LPB_BRDN_COST,
3881 P_LPB_LBR_RAW_COST, P_LPB_LBR_BRDN_COST, P_LPB_EQP_RAW_COST, P_LPB_EQP_BRDN_COST,
3882 P_LBR_HOURS, P_EQP_HOURS, P_BASE_LBR_HOURS, P_BASE_EQP_HOURS,
3883 P_LPB_LBR_HOURS, P_LPB_EQP_HOURS, P_ACT_LBR_HOURS, P_ACT_EQP_HOURS,
3884 P_ACT_LBR_BRDN_COST, P_ACT_EQP_BRDN_COST, P_ACT_RAW_COST, P_ACT_BRDN_COST,
3885 P_ACT_LBR_RAW_COST, P_ACT_EQP_RAW_COST, P_ETC_EQP_HOURS, P_ETC_LBR_HOURS,
3886 P_ETC_RAW_COST, P_ETC_BRDN_COST, P_ETC_LBR_BRDN_COST, P_ETC_EQP_BRDN_COST,
3887 P_ETC_LBR_RAW_COST,P_ETC_EQP_RAW_COST
3888 )
3889 -- SELECT /*+ LEADING(head) USE_NL(fact.fact) */
3890 -- SELECT /*+ LEADING(head) cardinality(head,1) USE_NL(fact.fact) no_expand*/ -- for Bug14040849 to improve performance
3891 -- SELECT /*+ LEADING(head) cardinality(head,1) USE_NL(fact.fact) no_expand opt_param('_gby_hash_aggregation_enabled','false') */ -- for Bug14040849 to improve performance
3892 SELECT /*+ LEADING(head) use_hash(fact) */ -- Modified hints for bug 13897252
3893
3894 fact.PROJECT_ID,
3895 struct_ver_id STRUCT_VERSION_ID,
3896 fact.PROJECT_ELEMENT_ID PROJECT_ELEMENT_ID,
3897 'A',
3898 null PERIOD_NAME,
3899 WK_PLAN_VER_ID PLAN_VERSION_ID,
3900 0 QUANTITY,
3901 sum(case when fact.plan_version_id = WK_PLAN_VER_ID then fact.raw_cost*TXN_MASK else 0 end) TXN_RAW_COST,
3902 sum(case when fact.plan_version_id = WK_PLAN_VER_ID then fact.brdn_cost*TXN_MASK else 0 end) TXN_BRDN_COST,
3903 sum(case when fact.plan_version_id = WK_PLAN_VER_ID then fact.revenue*TXN_MASK else 0 end) TXN_REVENUE,
3904 sum(case when fact.plan_version_id = WK_PLAN_VER_ID then fact.labor_raw_cost*TXN_MASK else 0 end) TXN_LABOR_RAW_COST,
3905 sum(case when fact.plan_version_id = WK_PLAN_VER_ID then fact.labor_brdn_cost*TXN_MASK else 0 end) TXN_LABOR_BRDN_COST,
3906 sum(case when fact.plan_version_id = WK_PLAN_VER_ID then fact.equipment_raw_cost*TXN_MASK else 0 end) TXN_EQUIP_RAW_COST,
3907 sum(case when fact.plan_version_id = WK_PLAN_VER_ID then fact.equipment_brdn_cost*TXN_MASK else 0 end) TXN_EQUIP_BRDN_COST,
3908 sum(case when fact.plan_version_id = base_plan_ver_id then fact.raw_cost*TXN_MASK else 0 end) TXN_BASE_RAW_COST,
3909 sum(case when fact.plan_version_id = base_plan_ver_id then fact.brdn_cost*TXN_MASK else 0 end) TXN_BASE_BRDN_COST,
3910 sum(case when fact.plan_version_id = base_plan_ver_id then fact.labor_raw_cost*TXN_MASK else 0 end) TXN_BASE_LABOR_RAW_COST,
3911 sum(case when fact.plan_version_id = base_plan_ver_id then fact.labor_brdn_cost*TXN_MASK else 0 end) TXN_BASE_LABOR_BRDN_COST,
3912 sum(case when fact.plan_version_id = base_plan_ver_id then fact.equipment_raw_cost*TXN_MASK else 0 end) TXN_BASE_EQUIP_RAW_COST,
3913 sum(case when fact.plan_version_id = base_plan_ver_id then fact.equipment_brdn_cost*TXN_MASK else 0 end) TXN_BASE_EQUIP_BRDN_COST,
3914 sum(case when fact.plan_version_id = lpb_plan_ver_id then fact.raw_cost*TXN_MASK else 0 end) TXN_LPB_RAW_COST,
3915 sum(case when fact.plan_version_id = lpb_plan_ver_id then fact.brdn_cost*TXN_MASK else 0 end) TXN_LPB_BRDN_COST,
3916 sum(case when fact.plan_version_id = lpb_plan_ver_id then fact.labor_raw_cost*TXN_MASK else 0 end) TXN_LPB_LABOR_RAW_COST,
3917 sum(case when fact.plan_version_id = lpb_plan_ver_id then fact.labor_brdn_cost*TXN_MASK else 0 end) TXN_LPB_LABOR_BRDN_COST,
3918 sum(case when fact.plan_version_id = lpb_plan_ver_id then fact.equipment_raw_cost*TXN_MASK else 0 end) TXN_LPB_EQUIP_RAW_COST,
3919 sum(case when fact.plan_version_id = lpb_plan_ver_id then fact.equipment_brdn_cost*TXN_MASK else 0 end) TXN_LPB_EQUIP_BRDN_COST,
3920 sum(case when fact.plan_version_id = WK_PLAN_VER_ID then fact.raw_cost*PRJ_MASK else 0 end) PRJ_RAW_COST,
3921 sum(case when fact.plan_version_id = WK_PLAN_VER_ID then fact.brdn_cost*PRJ_MASK else 0 end) PRJ_BRDN_COST,
3922 sum(case when fact.plan_version_id = WK_PLAN_VER_ID then fact.revenue*PRJ_MASK else 0 end) PRJ_REVENUE,
3923 sum(case when fact.plan_version_id = WK_PLAN_VER_ID then fact.labor_raw_cost*PRJ_MASK else 0 end) PRJ_LABOR_RAW_COST,
3924 sum(case when fact.plan_version_id = WK_PLAN_VER_ID then fact.labor_brdn_cost*PRJ_MASK else 0 end) PRJ_LABOR_BRDN_COST,
3925 sum(case when fact.plan_version_id = WK_PLAN_VER_ID then fact.equipment_raw_cost*PRJ_MASK else 0 end) PRJ_EQUIP_RAW_COST,
3926 sum(case when fact.plan_version_id = WK_PLAN_VER_ID then fact.equipment_brdn_cost*PRJ_MASK else 0 end) PRJ_EQUIP_BRDN_COST,
3927 sum(case when fact.plan_version_id = base_plan_ver_id then fact.raw_cost*PRJ_MASK else 0 end) PRJ_BASE_RAW_COST,
3928 sum(case when fact.plan_version_id = base_plan_ver_id then fact.brdn_cost*PRJ_MASK else 0 end) PRJ_BASE_BRDN_COST,
3929 sum(case when fact.plan_version_id = base_plan_ver_id then fact.labor_raw_cost*PRJ_MASK else 0 end) PRJ_BASE_LABOR_RAW_COST,
3930 sum(case when fact.plan_version_id = base_plan_ver_id then fact.labor_brdn_cost*PRJ_MASK else 0 end) PRJ_BASE_LABOR_BRDN_COST,
3931 sum(case when fact.plan_version_id = base_plan_ver_id then fact.equipment_raw_cost*PRJ_MASK else 0 end) PRJ_BASE_EQUIP_RAW_COST,
3932 sum(case when fact.plan_version_id = base_plan_ver_id then fact.equipment_brdn_cost*PRJ_MASK else 0 end) PRJ_BASE_EQUIP_BRDN_COST,
3933
3934 sum(case when fact.plan_version_id = lpb_plan_ver_id then fact.raw_cost*PRJ_MASK else 0 end) PRJ_LPB_RAW_COST,
3935 sum(case when fact.plan_version_id = lpb_plan_ver_id then fact.brdn_cost*PRJ_MASK else 0 end) PRJ_LPB_BRDN_COST,
3936 sum(case when fact.plan_version_id = lpb_plan_ver_id then fact.labor_raw_cost*PRJ_MASK else 0 end) PRJ_LPB_LABOR_RAW_COST,
3937 sum(case when fact.plan_version_id = lpb_plan_ver_id then fact.labor_brdn_cost*PRJ_MASK else 0 end) PRJ_LPB_LABOR_BRDN_COST,
3938 sum(case when fact.plan_version_id = lpb_plan_ver_id then fact.equipment_raw_cost*PRJ_MASK else 0 end) PRJ_LBP_EQUIP_RAW_COST,
3939 sum(case when fact.plan_version_id = lpb_plan_ver_id then fact.equipment_brdn_cost*PRJ_MASK else 0 end) PRJ_LBP_EQUIP_BRDN_COST,
3940
3941 sum(case when fact.plan_version_id = WK_PLAN_VER_ID then fact.raw_cost*POU_MASK else 0 end) POU_RAW_COST,
3942 sum(case when fact.plan_version_id = WK_PLAN_VER_ID then fact.brdn_cost*POU_MASK else 0 end) POU_BRDN_COST,
3943 sum(case when fact.plan_version_id = WK_PLAN_VER_ID then fact.revenue*POU_MASK else 0 end) POU_REVENUE,
3944 sum(case when fact.plan_version_id = WK_PLAN_VER_ID then fact.labor_raw_cost*POU_MASK else 0 end) POU_LABOR_RAW_COST,
3945 sum(case when fact.plan_version_id = WK_PLAN_VER_ID then fact.labor_brdn_cost*POU_MASK else 0 end) POU_LABOR_BRDN_COST,
3946 sum(case when fact.plan_version_id = WK_PLAN_VER_ID then fact.equipment_raw_cost*POU_MASK else 0 end) POU_EQUIP_RAW_COST,
3947 sum(case when fact.plan_version_id = WK_PLAN_VER_ID then fact.equipment_brdn_cost*POU_MASK else 0 end) POU_EQUIP_BRDN_COST,
3948
3949 sum(case when fact.plan_version_id = base_plan_ver_id then fact.raw_cost*POU_MASK else 0 end) POU_BASE_RAW_COST,
3950 sum(case when fact.plan_version_id = base_plan_ver_id then fact.brdn_cost*POU_MASK else 0 end) POU_BASE_BRDN_COST,
3951 sum(case when fact.plan_version_id = base_plan_ver_id then fact.labor_raw_cost*POU_MASK else 0 end) POU_BASE_LABOR_RAW_COST,
3952 sum(case when fact.plan_version_id = base_plan_ver_id then fact.labor_brdn_cost*POU_MASK else 0 end) POU_BASE_LABOR_BRDN_COST,
3953 sum(case when fact.plan_version_id = base_plan_ver_id then fact.equipment_raw_cost*POU_MASK else 0 end) POU_BASE_EQUIP_RAW_COST,
3954 sum(case when fact.plan_version_id = base_plan_ver_id then fact.equipment_brdn_cost*POU_MASK else 0 end) POU_BASE_EQUIP_BRDN_COST,
3955
3956 sum(case when fact.plan_version_id = lpb_plan_ver_id then fact.raw_cost*POU_MASK else 0 end) POU_LPB_RAW_COST,
3957 sum(case when fact.plan_version_id = lpb_plan_ver_id then fact.brdn_cost*POU_MASK else 0 end) POU_LPB_BRDN_COST,
3958 sum(case when fact.plan_version_id = lpb_plan_ver_id then fact.labor_raw_cost*POU_MASK else 0 end) POU_LPB_LABOR_RAW_COST,
3959 sum(case when fact.plan_version_id = lpb_plan_ver_id then fact.labor_brdn_cost*POU_MASK else 0 end) POU_LPB_LABOR_BRDN_COST,
3960 sum(case when fact.plan_version_id = lpb_plan_ver_id then fact.equipment_raw_cost*POU_MASK else 0 end) POU_LPB_EQUIP_RAW_COST,
3961 sum(case when fact.plan_version_id = lpb_plan_ver_id then fact.equipment_brdn_cost*POU_MASK else 0 end) POU_LPB_EQUIP_BRDN_COST,
3962
3963 sum(case when fact.plan_version_id = WK_PLAN_VER_ID then fact.LABOR_HRS else 0 end) LABOR_HOURS,
3964 sum(case when fact.plan_version_id = WK_PLAN_VER_ID then fact.EQUIPMENT_HOURS else 0 end) EQUIPMENT_HOURS,
3965 sum(case when fact.plan_version_id = base_plan_ver_id then fact.LABOR_HRS else 0 end) BASE_LABOR_HOURS,
3966 sum(case when fact.plan_version_id = base_plan_ver_id then fact.EQUIPMENT_HOURS else 0 end) BASE_EQUIP_HOURS,
3967 sum(case when fact.plan_version_id = lpb_plan_ver_id then fact.LABOR_HRS else 0 end) LPB_LABOR_HOURS,
3968 sum(case when fact.plan_version_id = lpb_plan_ver_id then fact.EQUIPMENT_HOURS else 0 end) LPB_EQUIP_HOURS,
3969
3970 sum( case when fact.time_id <= END_PERIOD_ID
3971 then
3972 decode( fact.plan_version_id, WK_PLAN_VER_ID, fact.ACT_LABOR_HRS, 0)
3973 else
3974 NULL
3975 end
3976 ) ACT_LABOR_HRS,
3977 sum( case when fact.time_id <= END_PERIOD_ID
3978 then
3979 decode(fact.plan_version_id, WK_PLAN_VER_ID, fact.ACT_EQUIP_HRS, 0)
3980 else
3981 NULL
3982 end
3983 ) ACT_EQUIP_HRS,
3984 sum( case when fact.time_id <= END_PERIOD_ID
3985 then
3986 decode( fact.plan_version_id, WK_PLAN_VER_ID, TXN_MASK* fact.act_labor_brdn_cost, 0 )
3987 else
3988 NULL
3989 end
3990 ) ACT_TXN_LABOR_BRDN_COST,
3991 sum( case when fact.time_id <= END_PERIOD_ID
3992 then
3993 decode(fact.plan_version_id, WK_PLAN_VER_ID, TXN_MASK* fact.act_equip_brdn_cost, 0 )
3994 else
3995 NULL
3996 end
3997 ) ACT_TXN_EQUIP_BRDN_COST,
3998 sum( case when fact.time_id <= END_PERIOD_ID
3999 then
4000 decode(fact.plan_version_id, WK_PLAN_VER_ID, TXN_MASK* fact.act_raw_cost, 0 )
4001 else
4002 NULL
4003 end
4004 ) ACT_TXN_RAW_COST,
4005 sum( case when fact.time_id <= END_PERIOD_ID
4006 then
4007 decode(fact.plan_version_id, WK_PLAN_VER_ID, TXN_MASK* fact.act_brdn_cost, 0 )
4008 else
4009 NULL
4010 end
4011 ) ACT_TXN_BRDN_COST,
4012 sum( case when fact.time_id <= END_PERIOD_ID
4013 then
4014 decode(fact.plan_version_id, WK_PLAN_VER_ID, PRJ_MASK* fact.act_labor_brdn_cost, 0)
4015 else
4016 NULL
4017 end
4018 ) ACT_PRJ_LABOR_BRDN_COST,
4019 sum( case when fact.time_id <= END_PERIOD_ID
4020 then
4021 decode( fact.plan_version_id, WK_PLAN_VER_ID, PRJ_MASK* fact.act_equip_brdn_cost, 0)
4022 else
4023 NULL
4024 end
4025 ) ACT_PRJ_EQUIP_BRDN_COST,
4026 sum( case when fact.time_id <= END_PERIOD_ID
4027 then
4028 decode(fact.plan_version_id, WK_PLAN_VER_ID, PRJ_MASK* fact.act_raw_cost, 0 )
4029 else
4030 NULL
4031 end
4032 ) ACT_PRJ_RAW_COST,
4033 sum( case when fact.time_id <= END_PERIOD_ID
4034 then
4035 decode(fact.plan_version_id, WK_PLAN_VER_ID, PRJ_MASK* fact.act_brdn_cost, 0 )
4036 else
4037 NULL
4038 end
4039 ) ACT_PRJ_BRDN_COST,
4040 sum( case when fact.time_id <= END_PERIOD_ID
4041 then
4042 decode(fact.plan_version_id, WK_PLAN_VER_ID, POU_MASK* fact.act_labor_brdn_cost, 0 )
4043 else
4044 NULL
4045 end
4046 ) ACT_POU_LABOR_BRDN_COST,
4047 sum( case when fact.time_id <= END_PERIOD_ID
4048 then
4049 decode(fact.plan_version_id, WK_PLAN_VER_ID, POU_MASK* fact.act_equip_brdn_cost, 0 )
4050 else
4051 NULL
4052 end
4053 ) ACT_POU_EQUIP_BRDN_COST,
4054 sum( case when fact.time_id <= END_PERIOD_ID
4055 then
4056 decode(fact.plan_version_id, WK_PLAN_VER_ID, POU_MASK* fact.act_raw_cost, 0 )
4057 else
4058 NULL
4059 end
4060 ) ACT_POU_RAW_COST,
4061 sum( case when fact.time_id <= END_PERIOD_ID
4062 then
4063 decode(fact.plan_version_id, WK_PLAN_VER_ID, POU_MASK* fact.act_brdn_cost, 0 )
4064 else
4065 NULL
4066 end
4067 ) ACT_POU_BRDN_COST,
4068
4069 sum(case when fact.plan_version_id = WK_PLAN_VER_ID then fact.ETC_LABOR_HRS else 0 end) ETC_LABOR_HRS,
4070 sum(case when fact.plan_version_id = WK_PLAN_VER_ID then fact.ETC_EQUIP_HRS else 0 end) ETC_EQUIP_HRS,
4071 sum(case when fact.plan_version_id = WK_PLAN_VER_ID then fact.ETC_labor_brdn_cost*TXN_MASK else 0 end) ETC_TXN_LABOR_BRDN_COST,
4072 sum(case when fact.plan_version_id = WK_PLAN_VER_ID then fact.ETC_equip_brdn_cost*TXN_MASK else 0 end) ETC_TXN_EQUIP_BRDN_COST,
4073 sum(case when fact.plan_version_id = WK_PLAN_VER_ID then fact.ETC_raw_cost*TXN_MASK else 0 end) ETC_TXN_RAW_COST,
4074 sum(case when fact.plan_version_id = WK_PLAN_VER_ID then fact.ETC_brdn_cost*TXN_MASK else 0 end) ETC_TXN_BRDN_COST,
4075 sum(case when fact.plan_version_id = WK_PLAN_VER_ID then fact.ETC_labor_brdn_cost*PRJ_MASK else 0 end) ETC_PRJ_LABOR_BRDN_COST,
4076 sum(case when fact.plan_version_id = WK_PLAN_VER_ID then fact.ETC_equip_brdn_cost*PRJ_MASK else 0 end) ETC_PRJ_EQUIP_BRDN_COST,
4077 sum(case when fact.plan_version_id = WK_PLAN_VER_ID then fact.ETC_raw_cost*PRJ_MASK else 0 end) ETC_PRJ_RAW_COST,
4078 sum(case when fact.plan_version_id = WK_PLAN_VER_ID then fact.ETC_brdn_cost*PRJ_MASK else 0 end) ETC_PRJ_BRDN_COST,
4079 sum(case when fact.plan_version_id = WK_PLAN_VER_ID then fact.ETC_labor_brdn_cost*POU_MASK else 0 end) ETC_POU_LABOR_BRDN_COST,
4080 sum(case when fact.plan_version_id = WK_PLAN_VER_ID then fact.ETC_equip_brdn_cost*POU_MASK else 0 end) ETC_POU_EQUIP_BRDN_COST,
4081 sum(case when fact.plan_version_id = WK_PLAN_VER_ID then fact.ETC_raw_cost*POU_MASK else 0 end) ETC_POU_RAW_COST,
4082 sum(case when fact.plan_version_id = WK_PLAN_VER_ID then fact.ETC_brdn_cost*POU_MASK else 0 end) ETC_POU_BRDN_COST,
4083 sum( case when fact.time_id <= END_PERIOD_ID
4084 then
4085 decode(fact.plan_version_id , WK_PLAN_VER_ID, TXN_MASK*fact.act_labor_raw_cost,0)
4086 else
4087 NULL
4088 end
4089 ) ACT_TXN_LABOR_RAW_COST,
4090 sum( case when fact.time_id <= END_PERIOD_ID
4091 then
4092 decode(fact.plan_version_id, WK_PLAN_VER_ID, PRJ_MASK* fact.act_labor_raw_cost,0)
4093 else
4094 NULL
4095 end
4096 ) ACT_PRJ_LABOR_RAW_COST,
4097 sum( case when fact.time_id <= END_PERIOD_ID
4098 then
4099 decode( fact.plan_version_id, WK_PLAN_VER_ID, POU_MASK* fact.act_labor_raw_cost,0)
4100 else
4101 NULL
4102 end
4103 ) ACT_POU_LABOR_RAW_COST,
4104 sum( case when fact.time_id <= END_PERIOD_ID
4105 then
4106 decode(fact.plan_version_id, WK_PLAN_VER_ID, TXN_MASK*fact.act_equip_raw_cost,0)
4107 else
4108 NULL
4109 end
4110 ) ACT_TXN_EQUIP_RAW_COST,
4111 sum( case when fact.time_id <= END_PERIOD_ID
4112 then
4113 decode(fact.plan_version_id, WK_PLAN_VER_ID, PRJ_MASK* fact.act_equip_raw_cost,0)
4114 else
4115 NULL
4116 end
4117 ) ACT_PRJ_EQUIP_RAW_COST,
4118 sum( case when fact.time_id <= END_PERIOD_ID
4119 then
4120 decode( fact.plan_version_id, WK_PLAN_VER_ID, POU_MASK* fact.act_equip_raw_cost,0)
4121 else
4122 NULL
4123 end
4124 ) ACT_POU_EQUIP_RAW_COST,
4125
4126 sum(case when fact.plan_version_id = WK_PLAN_VER_ID then fact.ETC_labor_raw_cost*TXN_MASK else 0 end) ETC_TXN_LABOR_RAW_COST,
4127 sum(case when fact.plan_version_id = WK_PLAN_VER_ID then fact.ETC_labor_raw_cost*PRJ_MASK else 0 end) ETC_PRJ_LABOR_RAW_COST,
4128 sum(case when fact.plan_version_id = WK_PLAN_VER_ID then fact.ETC_labor_raw_cost*POU_MASK else 0 end) ETC_POU_LABOR_RAW_COST,
4129 sum(case when fact.plan_version_id = WK_PLAN_VER_ID then fact.ETC_equip_raw_cost*TXN_MASK else 0 end) ETC_TXN_EQUIP_RAW_COST,
4130 sum(case when fact.plan_version_id = WK_PLAN_VER_ID then fact.ETC_equip_raw_cost*PRJ_MASK else 0 end) ETC_PRJ_EQUIP_RAW_COST,
4131 sum(case when fact.plan_version_id = WK_PLAN_VER_ID then fact.ETC_equip_raw_cost*POU_MASK else 0 end) ETC_POU_EQUIP_RAW_COST,
4132 /* Retrival of Project Level Data Starts*/
4133 sum(case when fact.plan_version_id = WK_PLAN_VER_ID then fact.raw_cost*PRJ_MASK*ROLLUP_MASK else 0 end) P_RAW_COST,
4134 sum(case when fact.plan_version_id = WK_PLAN_VER_ID then fact.brdn_cost*PRJ_MASK*ROLLUP_MASK else 0 end) P_BRDN_COST,
4135 sum(case when fact.plan_version_id = WK_PLAN_VER_ID then fact.revenue*PRJ_MASK*ROLLUP_MASK else 0 end) P_REVENUE,
4136 sum(case when fact.plan_version_id = WK_PLAN_VER_ID then fact.labor_raw_cost*PRJ_MASK*ROLLUP_MASK else 0 end) P_LBR_RAW_COST,
4137 sum(case when fact.plan_version_id = WK_PLAN_VER_ID then fact.labor_brdn_cost*PRJ_MASK*ROLLUP_MASK else 0 end) P_LBR_BRDN_COST,
4138 sum(case when fact.plan_version_id = WK_PLAN_VER_ID then fact.equipment_raw_cost*PRJ_MASK*ROLLUP_MASK else 0 end) P_EQP_RAW_COST,
4139 sum(case when fact.plan_version_id = WK_PLAN_VER_ID then fact.equipment_brdn_cost*PRJ_MASK*ROLLUP_MASK else 0 end) P_EQP_BRDN_COST,
4140 sum(case when fact.plan_version_id = base_plan_ver_id then fact.raw_cost*PRJ_MASK*ROLLUP_MASK else 0 end) P_BASE_RAW_COST,
4141 sum(case when fact.plan_version_id = base_plan_ver_id then fact.brdn_cost*PRJ_MASK*ROLLUP_MASK else 0 end) P_BASE_BRDN_COST,
4142 sum(case when fact.plan_version_id = base_plan_ver_id then fact.labor_raw_cost*PRJ_MASK*ROLLUP_MASK else 0 end) P_BASE_LBR_RAW_COST,
4143 sum(case when fact.plan_version_id = base_plan_ver_id then fact.labor_brdn_cost*PRJ_MASK*ROLLUP_MASK else 0 end) P_BASE_LBR_BRDN_COST,
4144 sum(case when fact.plan_version_id = base_plan_ver_id then fact.equipment_raw_cost*PRJ_MASK*ROLLUP_MASK else 0 end) P_BASE_EQP_RAW_COST,
4145 sum(case when fact.plan_version_id = base_plan_ver_id then fact.equipment_brdn_cost*PRJ_MASK*ROLLUP_MASK else 0 end) P_BASE_EQP_BRDN_COST,
4146 sum(case when fact.plan_version_id = lpb_plan_ver_id then fact.raw_cost*PRJ_MASK*ROLLUP_MASK else 0 end) P_LPB_RAW_COST,
4147 sum(case when fact.plan_version_id = lpb_plan_ver_id then fact.brdn_cost*PRJ_MASK*ROLLUP_MASK else 0 end) P_LPB_BRDN_COST,
4148 sum(case when fact.plan_version_id = lpb_plan_ver_id then fact.labor_raw_cost*PRJ_MASK*ROLLUP_MASK else 0 end) P_LPB_LBR_RAW_COST,
4149 sum(case when fact.plan_version_id = lpb_plan_ver_id then fact.labor_brdn_cost*PRJ_MASK*ROLLUP_MASK else 0 end) P_LPB_LBR_BRDN_COST,
4150 sum(case when fact.plan_version_id = lpb_plan_ver_id then fact.equipment_raw_cost*PRJ_MASK*ROLLUP_MASK else 0 end) P_LPB_EQP_RAW_COST,
4151 sum(case when fact.plan_version_id = lpb_plan_ver_id then fact.equipment_brdn_cost*PRJ_MASK*ROLLUP_MASK else 0 end) P_LPB_EQP_BRDN_COST,
4152 sum(case when fact.plan_version_id = WK_PLAN_VER_ID then fact.LABOR_HRS*ROLLUP_MASK else 0 end) P_LBR_HOURS,
4153 sum(case when fact.plan_version_id = WK_PLAN_VER_ID then fact.EQUIPMENT_HOURS*ROLLUP_MASK else 0 end) P_EQP_HOURS,
4154 sum(case when fact.plan_version_id = base_plan_ver_id then fact.LABOR_HRS*ROLLUP_MASK else 0 end) P_BASE_LBR_HOURS,
4155 sum(case when fact.plan_version_id = base_plan_ver_id then fact.EQUIPMENT_HOURS*ROLLUP_MASK else 0 end) P_BASE_EQP_HOURS,
4156 sum(case when fact.plan_version_id = lpb_plan_ver_id then fact.LABOR_HRS*ROLLUP_MASK else 0 end) P_LPB_LBR_HOURS,
4157 sum(case when fact.plan_version_id = lpb_plan_ver_id then fact.EQUIPMENT_HOURS*ROLLUP_MASK else 0 end) P_LPB_EQP_HOURS,
4158
4159
4160 sum( case when fact.time_id <= END_PERIOD_ID
4161 then
4162 decode(fact.plan_version_id, WK_PLAN_VER_ID, ROLLUP_MASK*fact.ACT_LABOR_HRS, 0)
4163 else
4164 NULL
4165 end
4166 ) P_ACT_LBR_HOURS,
4167 sum( case when fact.time_id <= END_PERIOD_ID
4168 then
4169 decode(fact.plan_version_id, WK_PLAN_VER_ID, ROLLUP_MASK*fact.ACT_EQUIP_HRS, 0)
4170 else
4171 NULL
4172 end
4173 ) P_ACT_EQP_HOURS,
4174 sum( case when fact.time_id <= END_PERIOD_ID
4175 then
4176 decode(fact.plan_version_id, WK_PLAN_VER_ID, PRJ_MASK*ROLLUP_MASK* fact.act_labor_brdn_cost, 0)
4177 else
4178 NULL
4179 end
4180 ) P_ACT_LBR_BRDN_COST,
4181 sum( case when fact.time_id <= END_PERIOD_ID
4182 then
4183 decode( fact.plan_version_id, WK_PLAN_VER_ID, PRJ_MASK*ROLLUP_MASK* fact.act_equip_brdn_cost, 0)
4184 else
4185 NULL
4186 end
4187 ) P_ACT_EQP_BRDN_COST,
4188 sum( case when fact.time_id <= END_PERIOD_ID
4189 then
4190 decode(fact.plan_version_id, WK_PLAN_VER_ID, PRJ_MASK*ROLLUP_MASK* fact.act_raw_cost , 0 )
4191 else
4192 NULL
4193 end
4194 ) P_ACT_RAW_COST,
4195 sum( case when fact.time_id <= END_PERIOD_ID
4196 then
4197 decode(fact.plan_version_id, WK_PLAN_VER_ID, PRJ_MASK*ROLLUP_MASK* fact.act_brdn_cost, 0 )
4198 else
4199 NULL
4200 end
4201 ) P_ACT_BRDN_COST,
4202 sum( case when fact.time_id <= END_PERIOD_ID
4203 then
4204 decode( fact.plan_version_id, WK_PLAN_VER_ID, PRJ_MASK*ROLLUP_MASK* fact.act_labor_raw_cost,0)
4205 else
4206 NULL
4207 end
4208 ) P_ACT_LBR_RAW_COST,
4209 sum( case when fact.time_id <= END_PERIOD_ID
4210 then
4211 decode(fact.plan_version_id, WK_PLAN_VER_ID, PRJ_MASK*ROLLUP_MASK* fact.act_equip_raw_cost ,0)
4212 else
4213 NULL
4214 end
4215 ) P_ACT_EQP_RAW_COST,
4216
4217 sum(case when fact.plan_version_id = WK_PLAN_VER_ID then fact.ETC_EQUIP_HRS*ROLLUP_MASK else 0 end) P_ETC_EQP_HOURS,
4218 sum(case when fact.plan_version_id = WK_PLAN_VER_ID then fact.ETC_LABOR_HRS*ROLLUP_MASK else 0 end) P_ETC_LBR_HOURS,
4219 sum(case when fact.plan_version_id = WK_PLAN_VER_ID then fact.ETC_raw_cost*PRJ_MASK*ROLLUP_MASK else 0 end) P_ETC_RAW_COST,
4220 sum(case when fact.plan_version_id = WK_PLAN_VER_ID then fact.ETC_brdn_cost*PRJ_MASK*ROLLUP_MASK else 0 end) P_ETC_BRDN_COST,
4221 sum(case when fact.plan_version_id = WK_PLAN_VER_ID then fact.ETC_labor_brdn_cost*PRJ_MASK*ROLLUP_MASK else 0 end) P_ETC_LBR_BRDN_COST,
4222 sum(case when fact.plan_version_id = WK_PLAN_VER_ID then fact.ETC_equip_brdn_cost*PRJ_MASK*ROLLUP_MASK else 0 end) P_ETC_EQP_BRDN_COST,
4223 sum(case when fact.plan_version_id = WK_PLAN_VER_ID then fact.ETC_labor_raw_cost*PRJ_MASK*ROLLUP_MASK else 0 end) P_ETC_LBR_RAW_COST,
4224 sum(case when fact.plan_version_id = WK_PLAN_VER_ID then fact.ETC_equip_raw_cost*PRJ_MASK*ROLLUP_MASK else 0 end) P_ETC_EQP_RAW_COST
4225 /* Retrival of Project Level Data Ends*/
4226 FROM
4227 (
4228 SELECT
4229 PROJECT_ID ,
4230 PROJECT_ORG_ID ,
4231 PROJECT_ORGANIZATION_ID ,
4232 PROJECT_ELEMENT_ID ,
4233 TIME_ID ,
4234 PERIOD_TYPE_ID ,
4235 CALENDAR_TYPE ,
4236 RBS_AGGR_LEVEL ,
4237 WBS_ROLLUP_FLAG ,
4238 PRG_ROLLUP_FLAG ,
4239 decode ( cc_src.curr_type, 'TXN', 16, 'PRJ', 8, 'POU', 4) CURR_RECORD_TYPE_ID ,
4240 CURRENCY_CODE ,
4241 RBS_ELEMENT_ID ,
4242 RBS_VERSION_ID ,
4243 PLAN_VERSION_ID ,
4244 -- PLAN_TYPE_ID ,
4245 RAW_COST ,
4246 BRDN_COST ,
4247 REVENUE ,
4248 BILL_RAW_COST ,
4249 BILL_BRDN_COST ,
4250 BILL_LABOR_RAW_COST ,
4251 BILL_LABOR_BRDN_COST ,
4252 decode ( cc_src.curr_type, 'PRJ', BILL_LABOR_HRS, 0) BILL_LABOR_HRS ,
4253 EQUIPMENT_RAW_COST ,
4254 EQUIPMENT_BRDN_COST ,
4255 CAPITALIZABLE_RAW_COST ,
4256 CAPITALIZABLE_BRDN_COST ,
4257 LABOR_RAW_COST ,
4258 LABOR_BRDN_COST ,
4259 decode ( cc_src.curr_type, 'PRJ', LABOR_HRS, 0) LABOR_HRS ,
4260 LABOR_REVENUE ,
4261 decode ( cc_src.curr_type, 'PRJ', EQUIPMENT_HOURS, 0) EQUIPMENT_HOURS ,
4262 decode ( cc_src.curr_type, 'PRJ', BILLABLE_EQUIPMENT_HOURS, 0) BILLABLE_EQUIPMENT_HOURS ,
4263 SUP_INV_COMMITTED_COST ,
4264 PO_COMMITTED_COST ,
4265 PR_COMMITTED_COST ,
4266 OTH_COMMITTED_COST ,
4267 CUSTOM1 ,
4268 CUSTOM2 ,
4269 CUSTOM3 ,
4270 CUSTOM4 ,
4271 CUSTOM5 ,
4272 CUSTOM6 ,
4273 CUSTOM7 ,
4274 CUSTOM8 ,
4275 CUSTOM9 ,
4276 CUSTOM10 ,
4277 CUSTOM11 ,
4278 CUSTOM12 ,
4279 CUSTOM13 ,
4280 CUSTOM14 ,
4281 CUSTOM15 ,
4282 decode ( cc_src.curr_type, 'PRJ', ACT_LABOR_HRS, 0) ACT_LABOR_HRS ,
4283 decode ( cc_src.curr_type, 'PRJ', ACT_EQUIP_HRS, 0) ACT_EQUIP_HRS ,
4284 ACT_LABOR_BRDN_COST ,
4285 ACT_EQUIP_BRDN_COST ,
4286 ACT_BRDN_COST ,
4287 decode ( cc_src.curr_type, 'PRJ', ETC_LABOR_HRS, 0) ETC_LABOR_HRS ,
4288 decode ( cc_src.curr_type, 'PRJ', ETC_EQUIP_HRS, 0) ETC_EQUIP_HRS ,
4289 ETC_LABOR_BRDN_COST ,
4290 ETC_EQUIP_BRDN_COST ,
4291 ETC_BRDN_COST ,
4292 ACT_RAW_COST ,
4293 ACT_REVENUE ,
4294 ETC_RAW_COST ,
4295 ACT_LABOR_RAW_COST ,
4296 ACT_EQUIP_RAW_COST ,
4297 ETC_LABOR_RAW_COST ,
4298 ETC_EQUIP_RAW_COST ,
4299 decode(fact.prg_rollup_flag,'N',1,0) ROLLUP_MASK,
4300 decode ( cc_src.curr_type, 'TXN',1,0) TXN_MASK,
4301 decode ( cc_src.curr_type, 'PRJ',1,0) PRJ_MASK,
4302 decode ( cc_src.curr_type, 'POU',1,0) POU_MASK
4303 FROM
4304 pji_fp_xbs_accum_f fact,
4305 /* (
4306 SELECT 'TXN' curr_type FROM DUAL
4307 UNION ALL
4308 SELECT 'PRJ' curr_type FROM DUAL
4309 UNION ALL
4310 SELECT 'POU' curr_type FROM DUAL
4311 ) cc_src commented for bug 14040849 */
4312 ( SELECT DECODE( ROWNUM, 1, 'TXN',2, 'PRJ', 3,'POU') CURR_TYPE
4313 FROM DUAL CONNECT BY ROWNUM < 4 ) cc_src -- added for bug 14040849
4314 WHERE 1=1
4315 and ( decode ( cc_src.curr_type, 'TXN', DECODE(BITAND(fact.curr_record_type_id, 16), 16, 'a'), 'b') = 'a'
4316 or decode ( cc_src.curr_type, 'PRJ', DECODE(BITAND(fact.curr_record_type_id , 8), 8, 'a'), 'b') = 'a'
4317 or decode ( cc_src.curr_type, 'POU', DECODE(BITAND(fact.curr_record_type_id, 4), 4, 'a'), 'b') = 'a' )
4318 ) fact,
4319 pji_plan_extr_tmp head
4320 WHERE 1=1
4321 and fact.PROJECT_ID = head.PROJECT_ID
4322 and fact.PLAN_VERSION_ID in (head.WK_PLAN_VER_ID , head.BASE_PLAN_VER_ID,
4323 head.LPB_PLAN_VER_ID )
4324 and fact.PROJECT_ELEMENT_ID = nvl(head.PROJ_ELEM_ID, fact.PROJECT_ELEMENT_ID )
4325 and fact.CALENDAR_TYPE = CAL_TYPE
4326 and fact.PERIOD_TYPE_ID = PERIOD_ID
4327 and BITAND(fact.CURR_RECORD_TYPE_ID,28) <= 28
4328 and BITAND(fact.CURR_RECORD_TYPE_ID,28) >= 4
4329 and fact.RBS_AGGR_LEVEL = 'T'
4330 and fact.prg_rollup_flag in (p_program_rollup_flag,'N')
4331 and fact.rbs_version_id = -1 /* Bug 6930211 */
4332 GROUP BY
4333 fact.PROJECT_ID,
4334 fact.PROJECT_ELEMENT_ID,
4335 fact.CALENDAR_TYPE,
4336 head.WK_PLAN_VER_ID,
4337 head.STRUCT_VER_ID;
4338
4339 PRINT_TIME ( ' populate_workplan_data 0003.12 '||SQL%ROWCOUNT ) ;
4340
4341 IF g_debug_mode='Y' THEN
4342 -- debug_accum ; /* bug#3993830 */
4343 null;
4344 END IF;
4345
4346
4347
4348
4349 DELETE FROM PJI_PLAN_EXTR_TMP;
4350
4351 x_return_status := l_return_status;
4352
4353 PRINT_TIME ( ' populate_workplan_data 0003.13 ' ) ;
4354
4355 EXCEPTION
4356 WHEN OTHERS THEN
4357
4358 PJI_PJP_FP_CURR_WRAP.EXCP_HANDLER
4359 ( p_package_name => g_package_name
4360 , p_procedure_name => 'POPULATE_WORKPLAN_DATA'
4361 , x_return_status => x_return_status ) ;
4362
4363 RAISE;
4364 END;
4365
4366
4367 PROCEDURE FPM_UPGRADE_INITIALIZE IS
4368
4369 c_upgr_proc_name VARCHAR2(30) := 'PJI_FPM_UPGRADE';
4370 l_worker_id NUMBER;
4371 l_process VARCHAR2(30);
4372 l_extr_start_date DATE;
4373 l_pa_period_flag VARCHAR2(10);
4374 l_gl_period_flag VARCHAR2(10);
4375 l_return_status VARCHAR2(100);
4376
4377 BEGIN
4378
4379 PJI_PJP_FP_CURR_WRAP.INIT_ERR_STACK
4380 ( p_package_name => g_package_name
4381 , x_return_status => l_return_status );
4382
4383 l_worker_id := 1;
4384 l_process := PJI_PJP_SUM_MAIN.g_process || l_worker_id;
4385 l_extr_start_date := PJI_UTILS.GET_EXTRACTION_START_DATE; PRINT_TIME ( ' FPM_UPGRADE_INITIALIZE 001 ' ) ;
4386
4387 Pji_utils.set_parameter(c_upgr_proc_name, 'P'); -- table pji_system_parameters
4388 PJI_PROCESS_UTIL.SET_PROCESS_PARAMETER(l_process, 'EXTRACTION_TYPE', 'FULL'); -- table pji_system_parameters
4389 PJI_PROCESS_UTIL.SET_PROCESS_PARAMETER(l_process, 'PROCESS_RUNNING', 'Y'); -- table pji_system_parameters
4390 PJI_PJP_EXTRACTION_UTILS.SET_WORKER_ID(l_worker_id); -- Private global pkg var: PJI_PJP_EXTRACTION_UTILS.g_worker_id.
4391
4392 PRINT_TIME ( ' FPM_UPGRADE_INITIALIZE 002 ' ) ;
4393
4394
4395 insert into PJI_SYSTEM_CONFIG_HIST
4396 (
4397 REQUEST_ID,
4398 USER_NAME,
4399 PROCESS_NAME,
4400 RUN_TYPE,
4401 PARAMETERS,
4402 CONFIG_PROJ_PERF_FLAG,
4403 CONFIG_COST_FLAG,
4404 CONFIG_PROFIT_FLAG,
4405 CONFIG_UTIL_FLAG,
4406 START_DATE,
4407 END_DATE,
4408 COMPLETION_TEXT
4409 )
4410 select
4411 FND_GLOBAL.CONC_REQUEST_ID REQUEST_ID,
4412 substr(FND_GLOBAL.USER_NAME, 1, 10) USER_NAME,
4413 l_process PROCESS_NAME,
4414 'FPM_UPGRADE' RUN_TYPE,
4415 null PARAMETERS,
4416 null CONFIG_PROJ_PERF_FLAG,
4417 null CONFIG_COST_FLAG,
4418 null CONFIG_PROFIT_FLAG,
4419 null CONFIG_UTIL_FLAG,
4420 sysdate START_DATE,
4421 null END_DATE,
4422 null COMPLETION_TEXT
4423 from
4424 dual;
4425
4426 insert into PJI_PJP_PROJ_BATCH_MAP
4427 (
4428 WORKER_ID,
4429 PROJECT_ID,
4430 PJI_PROJECT_STATUS,
4431 EXTRACTION_TYPE,
4432 EXTRACTION_STATUS,
4433 PROJECT_TYPE,
4434 PROJECT_ORG_ID,
4435 PROJECT_ORGANIZATION_ID,
4436 PROJECT_TYPE_CLASS,
4437 PRJ_CURRENCY_CODE,
4438 PROJECT_ACTIVE_FLAG
4439 )
4440 select
4441 l_worker_id,
4442 prj.PROJECT_ID,
4443 null,
4444 null,
4445 'F',
4446 prj.PROJECT_TYPE,
4447 prj.ORG_ID,
4448 prj.CARRYING_OUT_ORGANIZATION_ID,
4449 decode(pt.PROJECT_TYPE_CLASS_CODE,
4450 'CAPITAL', 'C',
4451 'CONTRACT', 'B',
4452 'INDIRECT', 'I'),
4453 prj.PROJECT_CURRENCY_CODE,
4454 null
4455 from
4456 PA_PROJECTS_ALL prj,
4457 PA_PROJECT_TYPES_ALL pt
4458 where
4459 -- We cannot depend on extraction start date as it will not be
4460 -- set at the time of upgrade.
4461 nvl(prj.CLOSED_DATE, nvl(l_extr_start_date, to_date(1, 'J')))
4462 >= nvl(l_extr_start_date, to_date(1, 'J')) and
4463 prj.ORG_ID = pt.ORG_ID and
4464 prj.PROJECT_TYPE = pt.PROJECT_TYPE and
4465 prj.PROJECT_ID in (select ver.PROJECT_ID
4466 from PA_BUDGET_VERSIONS ver
4467 where ver.BUDGET_TYPE_CODE is null);
4468
4469 PRINT_TIME ( ' FPM_UPGRADE_INITIALIZE 004 ' ) ;
4470
4471 SELECT PJI_UTILS.GET_SETUP_PARAMETER('PA_PERIOD_FLAG') , PJI_UTILS.GET_SETUP_PARAMETER('GL_PERIOD_FLAG')
4472 INTO l_pa_period_flag, l_gl_period_flag
4473 FROM DUAL;
4474
4475 if (l_pa_period_flag = 'N') then
4476 PJI_PROCESS_UTIL.SET_PROCESS_PARAMETER(l_process,
4477 'PA_CALENDAR_FLAG',
4478 'N');
4479 else
4480 PJI_PROCESS_UTIL.SET_PROCESS_PARAMETER(l_process,
4481 'PA_CALENDAR_FLAG',
4482 'Y');
4483 end if;
4484
4485 if (l_gl_period_flag = 'N') then
4486 PJI_PROCESS_UTIL.SET_PROCESS_PARAMETER(l_process,
4487 'GL_CALENDAR_FLAG',
4488 'N');
4489 else
4490 PJI_PROCESS_UTIL.SET_PROCESS_PARAMETER(l_process,
4491 'GL_CALENDAR_FLAG',
4492 'Y');
4493 end if; PRINT_TIME ( ' FPM_UPGRADE_INITIALIZE 004 ' ) ;
4494
4495 --
4496 -- 4682341
4497 -- Parameter 'EXTRACT_ETC_FULLLOAD' has been added to check whether
4498 -- etc (due to act or overridden) is not extracted twice after upgrade
4499 -- and initial load.
4500 -- Assumption: After fpm upgrade, an initial load is run for *All* projects
4501 -- before new actuals are entered in the system.
4502 -- Use: If the value of this param is 'Y', then etc from get plan res actuals will
4503 -- be extracted during FULL sumz.
4504
4505 DELETE FROM pji_system_parameters
4506 WHERE name = 'EXTRACT_ETC_FULLLOAD';
4507
4508 INSERT INTO pji_system_parameters ( name, value )
4509 VALUES ( 'EXTRACT_ETC_FULLLOAD' , 'N' );
4510
4511 commit;
4512
4513 EXCEPTION
4514 WHEN OTHERS THEN
4515
4516 PJI_PJP_FP_CURR_WRAP.EXCP_HANDLER
4517 ( p_package_name => g_package_name
4518 , p_procedure_name => 'FPM_UPGRADE_INITIALIZE'
4519 , x_return_status => l_return_status ) ;
4520
4521 RAISE;
4522 END;
4523
4524
4525 PROCEDURE FPM_UPGRADE_END IS
4526
4527 l_worker_id NUMBER;
4528 l_process VARCHAR2(30);
4529 l_extr_start_date DATE;
4530 l_return_status VARCHAR2(100);
4531 l_sqlerrm VARCHAR2(240);
4532
4533 BEGIN
4534
4535 PJI_PJP_FP_CURR_WRAP.INIT_ERR_STACK
4536 ( p_package_name => g_package_name
4537 , x_return_status => l_return_status );
4538
4539 l_worker_id := 1;
4540 l_process := PJI_PJP_SUM_MAIN.g_process || l_worker_id;
4541 l_extr_start_date := PJI_UTILS.GET_EXTRACTION_START_DATE;
4542
4543 PJI_PJP_SUM_ROLLUP.CLEANUP(l_worker_id);
4544
4545 Pji_utils.set_parameter('PJI_FPM_UPGRADE', 'C');
4546
4547 PJI_PROCESS_UTIL.WRAPUP_PROCESS(l_process);
4548
4549 update PJI_SYSTEM_CONFIG_HIST
4550 set END_DATE = sysdate,
4551 COMPLETION_TEXT = 'Normal completion'
4552 where PROCESS_NAME = l_process and
4553 RUN_TYPE = 'FPM_UPGRADE' and
4554 END_DATE is null;
4555
4556 PJI_UTILS.SET_PARAMETER('PJP_FPM_UPGRADE_DATE',
4557 to_char(sysdate, PJI_PJP_SUM_MAIN.g_date_mask));
4558
4559 DELETE FROM PJI_PJP_PROJ_BATCH_MAP WHERE WORKER_ID = l_worker_id;
4560
4561 commit;
4562
4563 EXCEPTION
4564 WHEN OTHERS THEN
4565
4566 rollback;
4567
4568 PJI_PJP_FP_CURR_WRAP.EXCP_HANDLER
4569 ( p_package_name => g_package_name
4570 , p_procedure_name => 'FPM_UPGRADE_END'
4571 , x_return_status => l_return_status ) ;
4572
4573 l_sqlerrm := substr(sqlerrm, 1, 240);
4574
4575 update PJI_SYSTEM_CONFIG_HIST
4576 set END_DATE = sysdate,
4577 COMPLETION_TEXT = l_sqlerrm
4578 where RUN_TYPE = 'FPM_UPGRADE' and
4579 END_DATE is null;
4580
4581 commit;
4582
4583 RAISE;
4584 END;
4585
4586
4587 PROCEDURE REMAP_RBS_TXN_ACCUM_HDRS (
4588 x_return_status OUT NOCOPY VARCHAR2
4589 ,x_msg_data OUT NOCOPY VARCHAR2
4590 ,x_msg_count OUT NOCOPY NUMBER ) IS
4591
4592 CURSOR c_current_rbs_versions IS
4593 SELECT prv.RBS_VERSION_ID
4594 FROM pa_rbs_versions_b prv
4595 WHERE 1=1
4596 AND prv.CURRENT_REPORTING_FLAG = 'Y'
4597 AND prv.STATUS_CODE = 'FROZEN';
4598 --AND prv.RBS_VERSION_ID not in ( 10000, 10142, 10224, 10821);
4599
4600 CURSOR c_plan_versions (l_rbs_version_id NUMBER) IS -- This can be combined with the previous cursor.
4601 SELECT bv.budget_version_id, bv.project_id
4602 FROM pa_budget_versions bv
4603 , pa_proj_fp_options fpo
4604 WHERE 1=1
4605 AND bv.budget_version_id = fpo.fin_plan_version_id
4606 AND bv.fin_plan_type_id = fpo.fin_plan_type_id
4607 AND fpo.project_id = bv.project_id
4608 AND bv.version_type is not NULL
4609 AND bv.fin_plan_type_id is not NULL
4610 AND fpo.fin_plan_option_level_code = 'PLAN_VERSION'
4611 AND bv.version_type IN ( 'ALL' , 'COST' , 'REVENUE')
4612 AND fpo.RBS_VERSION_ID = l_rbs_version_id;
4613
4614 l_res_list_member_id_tbl SYSTEM.pa_num_tbl_type := SYSTEM.pa_num_tbl_type();
4615 l_txn_source_id_tbl SYSTEM.pa_num_tbl_type := SYSTEM.pa_num_tbl_type();
4616 l_rbs_element_id_tbl SYSTEM.pa_num_tbl_type := SYSTEM.pa_num_tbl_type();
4617 l_txn_accum_header_id_tbl SYSTEM.pa_num_tbl_type := SYSTEM.pa_num_tbl_type();
4618
4619 BEGIN
4620
4621 x_msg_count := 0;
4622 x_return_status := FND_API.G_RET_STS_SUCCESS;
4623 pa_debug.reset_curr_function;
4624
4625 /* Added for bug 13030627 */
4626 if PJI_UTILS.GET_PARAMETER('PJP_SIN_PRG') = 'Y' then
4627
4628 PJI_PJP_PRG_PERF_ALL.REMAP_RBS_TXN_ACCUM_HDRS(
4629 x_return_status => x_return_status
4630 ,x_msg_data => x_msg_data
4631 ,x_msg_count => x_msg_count);
4632
4633 else
4634 /* Added for bug 13030627 */
4635
4636 /* UPDATE pa_resource_assignments
4637 SET txn_accum_header_id = NULL; */
4638
4639 FOR l_curr_rbs_vers IN c_current_rbs_versions LOOP
4640
4641
4642 FOR l_plan_versions in c_plan_versions(l_curr_rbs_vers.RBS_VERSION_ID) LOOP
4643
4644 UPDATE pa_resource_assignments
4645 SET txn_accum_header_id = NULL
4646 where budget_version_id = l_plan_versions.budget_version_id
4647 and project_id =l_plan_versions.project_id
4648 and txn_accum_header_id is not null;
4649
4650 BEGIN
4651 pa_rlmi_rbs_map_pub.Map_Rlmi_Rbs (
4652 p_budget_version_id => l_plan_versions.budget_version_id
4653 ,p_project_id => l_plan_versions.project_id
4654 ,p_rbs_version_id => l_curr_rbs_vers.RBS_VERSION_ID
4655 ,p_calling_process => 'RBS_REFRESH'
4656 ,p_calling_context => 'SELF_SERVICE'
4657 ,p_process_code => 'RBS_MAP'
4658 ,p_calling_mode => 'BUDGET_VERSION'
4659 ,x_txn_source_id_tab => l_txn_source_id_tbl
4660 ,x_res_list_member_id_tab => l_res_list_member_id_tbl
4661 ,x_rbs_element_id_tab => l_rbs_element_id_tbl
4662 ,x_txn_accum_header_id_tab => l_txn_accum_header_id_tbl
4663 ,x_return_status => x_return_status
4664 ,x_msg_count => x_msg_count
4665 ,x_msg_data => x_msg_data);
4666
4667
4668 FORALL i IN l_txn_source_id_tbl.FIRST..l_txn_source_id_tbl.LAST
4669 UPDATE pa_resource_assignments
4670 SET TXN_ACCUM_HEADER_ID = l_txn_accum_header_id_tbl(i),
4671 RBS_ELEMENT_ID = l_rbs_element_id_tbl(i)
4672 WHERE
4673 RESOURCE_ASSIGNMENT_ID = l_txn_source_id_tbl(i);
4674
4675 EXCEPTION
4676 WHEN OTHERS THEN
4677 null;
4678 END;
4679
4680 COMMIT;
4681
4682 END LOOP;
4683 END LOOP;
4684
4685 end if;
4686
4687 EXCEPTION
4688
4689 WHEN OTHERS THEN
4690 x_return_status := FND_API.G_RET_STS_UNEXP_ERROR;
4691 x_msg_count := 1;
4692 x_msg_data := SQLERRM;
4693 FND_MSG_PUB.add_exc_msg( p_pkg_name => g_package_name ,
4694 p_procedure_name => 'REMAP_RBS_TXN_ACCUM_HDRS');
4695 RAISE;
4696 END;
4697
4698
4699
4700 ----------
4701 -- Print time API to measure time taken by each api. Also useful for debugging.
4702 ----------
4703 PROCEDURE PRINT_TIME(p_tag IN VARCHAR2) IS
4704 BEGIN
4705 PJI_PJP_FP_CURR_WRAP.print_time(p_tag);
4706 EXCEPTION
4707 WHEN OTHERS THEN
4708 FND_MSG_PUB.add_exc_msg( p_pkg_name => g_package_name ,
4709 p_procedure_name => 'PRINT_TIME');
4710 RAISE;
4711 END;
4712
4713 PROCEDURE get_msp_actuals_data(
4714 p_project_id IN NUMBER,
4715 p_calendar_type IN VARCHAR2,
4716 p_resource_list_id IN NUMBER DEFAULT NULL,
4717 p_task_res_flag IN VARCHAR2,
4718 p_end_date IN DATE,
4719 x_return_status OUT NOCOPY VARCHAR2,
4720 x_msg_code OUT NOCOPY VARCHAR2) IS
4721
4722 l_struct_element_id NUMBER;
4723 l_project_id_tab SYSTEM.pa_num_tbl_type:=SYSTEM.pa_num_tbl_type();
4724 l_resource_list_id_tab SYSTEM.pa_num_tbl_type:=SYSTEM.pa_num_tbl_type();
4725 l_struct_ver_id_tab SYSTEM.pa_num_tbl_type:=SYSTEM.pa_num_tbl_type();
4726 l_calendar_type_tab SYSTEM.pa_varchar2_1_tbl_type :=
4727 SYSTEM.pa_varchar2_1_tbl_type();
4728 l_end_date_tab SYSTEM.pa_date_tbl_type := SYSTEM.pa_date_tbl_type();
4729
4730 l_populate_in_tbl populate_in_tbl_type ;
4731 l_populate_in_rec populate_in_rec_type;
4732
4733 BEGIN
4734
4735 SELECT wbs_version_id
4736 INTO l_struct_element_id
4737 FROM pji_pjp_wbs_header
4738 WHERE project_id = p_project_id AND plan_version_id=-1;
4739
4740 l_populate_in_rec.project_id := p_project_id;
4741 l_populate_in_rec.struct_ver_id := l_struct_element_id;
4742 l_populate_in_rec.base_struct_ver_id := NULL;
4743 l_populate_in_rec.plan_version_id := NULL;
4744 l_populate_in_rec.as_of_date := p_end_date;
4745 l_populate_in_rec.project_element_id := NULL;
4746 l_populate_in_tbl(1) := l_populate_in_rec;
4747
4748
4749 l_project_id_tab.extend;
4750 l_resource_list_id_tab.extend;
4751 l_struct_ver_id_tab.extend;
4752 l_calendar_type_tab.extend;
4753 l_end_date_tab.extend;
4754
4755
4756 l_project_id_tab(1) := p_project_id;
4757 l_resource_list_id_tab(1) := p_resource_list_id;
4758 l_struct_ver_id_tab(1) := l_struct_element_id;
4759 l_calendar_type_tab(1) := p_calendar_type;
4760 l_end_date_tab(1) := p_end_date;
4761
4762 IF(p_task_res_flag ='R') THEN
4763 get_summarized_data(
4764 p_project_ids => l_project_id_tab,
4765 p_resource_list_ids => l_resource_list_id_tab,
4766 p_struct_ver_ids => l_struct_ver_id_tab,
4767 p_end_date => l_end_date_tab,
4768 p_calendar_type => l_calendar_type_tab,
4769 p_extraction_type => 'FULL',
4770 p_record_type => 'NYYY',
4771 p_currency_type => 4,
4772 x_return_status => x_return_status,
4773 x_msg_code => x_msg_code);
4774 ELSE IF(p_task_res_flag='T') THEN
4775 populate_workplan_data (
4776 p_populate_in_tbl => l_populate_in_tbl,
4777 p_calling_context => 'MSP', -- added for bug 5751250
4778 x_return_status => x_return_status,
4779 x_msg_code => x_msg_code
4780 );
4781 end if;
4782 END IF;
4783 EXCEPTION
4784 WHEN OTHERS THEN
4785 PJI_PJP_FP_CURR_WRAP.EXCP_HANDLER
4786 (p_package_name => g_package_name
4787 , p_procedure_name => 'GET_MSP_ACTUALS_DATA'
4788 , x_return_status => x_return_status ) ;
4789 END;
4790
4791
4792
4793 END PJI_FM_XBS_ACCUM_UTILS;