223:
224: SELECT nvl(max(end_date), trunc(sysdate)), count(1) INTO l_max_end_date, l_period_count
225: FROM fii_time_ent_period;
226:
227: SELECT NVL(fii_time_api.ent_cper_START(trunc(sysdate)), l_max_end_date) INTO l_sys_month_start FROM DUAL;
228:
229: /* 4439400 : Added g_bud_as_of_date for Public Sector Budgets */
230: IF g_as_of_date > trunc(sysdate) THEN
231: SELECT NVL(fii_time_api.ent_cper_END(g_as_of_date),l_max_end_date) INTO g_as_of_date FROM dual;
227: SELECT NVL(fii_time_api.ent_cper_START(trunc(sysdate)), l_max_end_date) INTO l_sys_month_start FROM DUAL;
228:
229: /* 4439400 : Added g_bud_as_of_date for Public Sector Budgets */
230: IF g_as_of_date > trunc(sysdate) THEN
231: SELECT NVL(fii_time_api.ent_cper_END(g_as_of_date),l_max_end_date) INTO g_as_of_date FROM dual;
232: g_bud_as_of_date := g_as_of_date;
233: ELSIF g_as_of_date < trunc(sysdate) AND g_as_of_date >= l_sys_month_start THEN
234: SELECT NVL(fii_time_api.ent_pper_END(g_as_of_date),l_max_end_date) INTO g_as_of_date FROM dual;
235: g_bud_as_of_date := g_as_of_date;
230: IF g_as_of_date > trunc(sysdate) THEN
231: SELECT NVL(fii_time_api.ent_cper_END(g_as_of_date),l_max_end_date) INTO g_as_of_date FROM dual;
232: g_bud_as_of_date := g_as_of_date;
233: ELSIF g_as_of_date < trunc(sysdate) AND g_as_of_date >= l_sys_month_start THEN
234: SELECT NVL(fii_time_api.ent_pper_END(g_as_of_date),l_max_end_date) INTO g_as_of_date FROM dual;
235: g_bud_as_of_date := g_as_of_date;
236: ELSIF g_as_of_date = trunc(sysdate) THEN
237: g_as_of_date := nvl(to_date(FND_PROFILE.value('FII_TEST_SYSDATE'), 'DD/MM/YYYY'),trunc(sysdate));
238: SELECT NVL(fii_time_api.ent_cper_END(g_as_of_date),l_max_end_date) INTO g_bud_as_of_date FROM dual;
234: SELECT NVL(fii_time_api.ent_pper_END(g_as_of_date),l_max_end_date) INTO g_as_of_date FROM dual;
235: g_bud_as_of_date := g_as_of_date;
236: ELSIF g_as_of_date = trunc(sysdate) THEN
237: g_as_of_date := nvl(to_date(FND_PROFILE.value('FII_TEST_SYSDATE'), 'DD/MM/YYYY'),trunc(sysdate));
238: SELECT NVL(fii_time_api.ent_cper_END(g_as_of_date),l_max_end_date) INTO g_bud_as_of_date FROM dual;
239: g_snapshot := 'Y';
240: IF l_period_count = 0 THEN --time dimension is null, so join to fii_time_structures which is null to report no data found.
241: g_snapshot := 'N';
242: END IF;
240: IF l_period_count = 0 THEN --time dimension is null, so join to fii_time_structures which is null to report no data found.
241: g_snapshot := 'N';
242: END IF;
243: ELSE
244: SELECT NVL(fii_time_api.ent_cper_END(g_as_of_date),l_max_end_date) INTO g_as_of_date FROM dual;
245: g_bud_as_of_date := g_as_of_date;
246: END IF;
247:
248: SELECT nvl(min(start_date), g_min_start_date) INTO g_curr_month_start
254: g_previous_asof_date := g_min_start_date;
255: END IF;
256:
257: -- Added for P&L Analysis
258: SELECT NVL( fii_time_api.sd_lyswk(g_as_of_date),g_min_start_date),
259: NVL(fii_time_api.ent_pyr_end(g_as_of_date),g_min_start_date),
260: NVL(fii_time_api.ent_cyr_end(g_as_of_date),g_min_start_date)
261: INTO g_py_sday,
262: g_ent_pyr_end,
255: END IF;
256:
257: -- Added for P&L Analysis
258: SELECT NVL( fii_time_api.sd_lyswk(g_as_of_date),g_min_start_date),
259: NVL(fii_time_api.ent_pyr_end(g_as_of_date),g_min_start_date),
260: NVL(fii_time_api.ent_cyr_end(g_as_of_date),g_min_start_date)
261: INTO g_py_sday,
262: g_ent_pyr_end,
263: g_ent_cyr_end
256:
257: -- Added for P&L Analysis
258: SELECT NVL( fii_time_api.sd_lyswk(g_as_of_date),g_min_start_date),
259: NVL(fii_time_api.ent_pyr_end(g_as_of_date),g_min_start_date),
260: NVL(fii_time_api.ent_cyr_end(g_as_of_date),g_min_start_date)
261: INTO g_py_sday,
262: g_ent_pyr_end,
263: g_ent_cyr_end
264: FROM dual;
349: ELSE
350: g_curr_view := '_p_v';
351: END IF;
352:
353: SELECT NVL(fii_time_api.ent_sd_lysper_end(g_as_of_date), g_min_start_date) INTO g_sd_prior FROM DUAL;
354: SELECT NVL(fii_time_api.ent_sd_lysper_end(fii_time_api.ent_sd_lysper_end(g_as_of_date)), g_min_start_date) INTO g_sd_prior_prior FROM DUAL;
355:
356: /* Bug 4439400: Added g_previous_bud_asof_date for public sector budget */
357: CASE g_page_period_type
350: g_curr_view := '_p_v';
351: END IF;
352:
353: SELECT NVL(fii_time_api.ent_sd_lysper_end(g_as_of_date), g_min_start_date) INTO g_sd_prior FROM DUAL;
354: SELECT NVL(fii_time_api.ent_sd_lysper_end(fii_time_api.ent_sd_lysper_end(g_as_of_date)), g_min_start_date) INTO g_sd_prior_prior FROM DUAL;
355:
356: /* Bug 4439400: Added g_previous_bud_asof_date for public sector budget */
357: CASE g_page_period_type
358: WHEN 'FII_TIME_ENT_PERIOD' THEN
361: g_budget_bitand := 4;
362: g_hist_budget_bitand := 4;
363: g_forecast_bitand := 4;
364: IF g_time_comp = 'SEQUENTIAL' THEN
365: SELECT NVL(fii_time_api.ent_sd_pper_end(g_as_of_date),g_min_start_date) INTO g_previous_asof_date FROM dual;
366: SELECT NVL(fii_time_api.ent_sd_pper_end(g_bud_as_of_date),g_min_start_date) INTO g_previous_bud_asof_date FROM dual;
367: ELSE
368: SELECT NVL(fii_time_api.ent_sd_lysper_END(g_as_of_date),g_min_start_date) INTO g_previous_asof_date FROM dual;
369: SELECT NVL(fii_time_api.ent_sd_lysper_END(g_bud_as_of_date),g_min_start_date) INTO g_previous_bud_asof_date FROM dual;
362: g_hist_budget_bitand := 4;
363: g_forecast_bitand := 4;
364: IF g_time_comp = 'SEQUENTIAL' THEN
365: SELECT NVL(fii_time_api.ent_sd_pper_end(g_as_of_date),g_min_start_date) INTO g_previous_asof_date FROM dual;
366: SELECT NVL(fii_time_api.ent_sd_pper_end(g_bud_as_of_date),g_min_start_date) INTO g_previous_bud_asof_date FROM dual;
367: ELSE
368: SELECT NVL(fii_time_api.ent_sd_lysper_END(g_as_of_date),g_min_start_date) INTO g_previous_asof_date FROM dual;
369: SELECT NVL(fii_time_api.ent_sd_lysper_END(g_bud_as_of_date),g_min_start_date) INTO g_previous_bud_asof_date FROM dual;
370: END IF;
364: IF g_time_comp = 'SEQUENTIAL' THEN
365: SELECT NVL(fii_time_api.ent_sd_pper_end(g_as_of_date),g_min_start_date) INTO g_previous_asof_date FROM dual;
366: SELECT NVL(fii_time_api.ent_sd_pper_end(g_bud_as_of_date),g_min_start_date) INTO g_previous_bud_asof_date FROM dual;
367: ELSE
368: SELECT NVL(fii_time_api.ent_sd_lysper_END(g_as_of_date),g_min_start_date) INTO g_previous_asof_date FROM dual;
369: SELECT NVL(fii_time_api.ent_sd_lysper_END(g_bud_as_of_date),g_min_start_date) INTO g_previous_bud_asof_date FROM dual;
370: END IF;
371: SELECT NVL(fii_time_api.ent_cper_start(g_as_of_date), g_min_start_date) INTO g_curr_per_start FROM DUAL;
372: SELECT NVL(fii_time_api.ent_cper_end(g_as_of_date), g_min_start_date) INTO g_curr_per_end FROM DUAL;
365: SELECT NVL(fii_time_api.ent_sd_pper_end(g_as_of_date),g_min_start_date) INTO g_previous_asof_date FROM dual;
366: SELECT NVL(fii_time_api.ent_sd_pper_end(g_bud_as_of_date),g_min_start_date) INTO g_previous_bud_asof_date FROM dual;
367: ELSE
368: SELECT NVL(fii_time_api.ent_sd_lysper_END(g_as_of_date),g_min_start_date) INTO g_previous_asof_date FROM dual;
369: SELECT NVL(fii_time_api.ent_sd_lysper_END(g_bud_as_of_date),g_min_start_date) INTO g_previous_bud_asof_date FROM dual;
370: END IF;
371: SELECT NVL(fii_time_api.ent_cper_start(g_as_of_date), g_min_start_date) INTO g_curr_per_start FROM DUAL;
372: SELECT NVL(fii_time_api.ent_cper_end(g_as_of_date), g_min_start_date) INTO g_curr_per_end FROM DUAL;
373: SELECT NVL(fii_time_api.ent_cper_start(g_previous_asof_date), g_min_start_date) INTO g_prior_per_start FROM DUAL;
367: ELSE
368: SELECT NVL(fii_time_api.ent_sd_lysper_END(g_as_of_date),g_min_start_date) INTO g_previous_asof_date FROM dual;
369: SELECT NVL(fii_time_api.ent_sd_lysper_END(g_bud_as_of_date),g_min_start_date) INTO g_previous_bud_asof_date FROM dual;
370: END IF;
371: SELECT NVL(fii_time_api.ent_cper_start(g_as_of_date), g_min_start_date) INTO g_curr_per_start FROM DUAL;
372: SELECT NVL(fii_time_api.ent_cper_end(g_as_of_date), g_min_start_date) INTO g_curr_per_end FROM DUAL;
373: SELECT NVL(fii_time_api.ent_cper_start(g_previous_asof_date), g_min_start_date) INTO g_prior_per_start FROM DUAL;
374: SELECT NVL(fii_time_api.ent_cper_end(g_previous_asof_date), g_min_start_date) INTO g_prior_per_end FROM DUAL;
375:
368: SELECT NVL(fii_time_api.ent_sd_lysper_END(g_as_of_date),g_min_start_date) INTO g_previous_asof_date FROM dual;
369: SELECT NVL(fii_time_api.ent_sd_lysper_END(g_bud_as_of_date),g_min_start_date) INTO g_previous_bud_asof_date FROM dual;
370: END IF;
371: SELECT NVL(fii_time_api.ent_cper_start(g_as_of_date), g_min_start_date) INTO g_curr_per_start FROM DUAL;
372: SELECT NVL(fii_time_api.ent_cper_end(g_as_of_date), g_min_start_date) INTO g_curr_per_end FROM DUAL;
373: SELECT NVL(fii_time_api.ent_cper_start(g_previous_asof_date), g_min_start_date) INTO g_prior_per_start FROM DUAL;
374: SELECT NVL(fii_time_api.ent_cper_end(g_previous_asof_date), g_min_start_date) INTO g_prior_per_end FROM DUAL;
375:
376: SELECT ent_period_id INTO g_time_id
369: SELECT NVL(fii_time_api.ent_sd_lysper_END(g_bud_as_of_date),g_min_start_date) INTO g_previous_bud_asof_date FROM dual;
370: END IF;
371: SELECT NVL(fii_time_api.ent_cper_start(g_as_of_date), g_min_start_date) INTO g_curr_per_start FROM DUAL;
372: SELECT NVL(fii_time_api.ent_cper_end(g_as_of_date), g_min_start_date) INTO g_curr_per_end FROM DUAL;
373: SELECT NVL(fii_time_api.ent_cper_start(g_previous_asof_date), g_min_start_date) INTO g_prior_per_start FROM DUAL;
374: SELECT NVL(fii_time_api.ent_cper_end(g_previous_asof_date), g_min_start_date) INTO g_prior_per_end FROM DUAL;
375:
376: SELECT ent_period_id INTO g_time_id
377: FROM fii_time_ent_period per
370: END IF;
371: SELECT NVL(fii_time_api.ent_cper_start(g_as_of_date), g_min_start_date) INTO g_curr_per_start FROM DUAL;
372: SELECT NVL(fii_time_api.ent_cper_end(g_as_of_date), g_min_start_date) INTO g_curr_per_end FROM DUAL;
373: SELECT NVL(fii_time_api.ent_cper_start(g_previous_asof_date), g_min_start_date) INTO g_prior_per_start FROM DUAL;
374: SELECT NVL(fii_time_api.ent_cper_end(g_previous_asof_date), g_min_start_date) INTO g_prior_per_end FROM DUAL;
375:
376: SELECT ent_period_id INTO g_time_id
377: FROM fii_time_ent_period per
378: WHERE g_as_of_date BETWEEN start_date AND end_date;
377: FROM fii_time_ent_period per
378: WHERE g_as_of_date BETWEEN start_date AND end_date;
379:
380: -- Added for P&L Analysis
381: SELECT NVL(fii_time_api.ent_pper_end(g_as_of_date),g_min_start_date),
382: NVL(fii_time_api.ent_sd_lysper_end(g_as_of_date),g_min_start_date)
383: INTO g_cy_period_end,
384: g_exp_asof_date
385: FROM DUAL;
378: WHERE g_as_of_date BETWEEN start_date AND end_date;
379:
380: -- Added for P&L Analysis
381: SELECT NVL(fii_time_api.ent_pper_end(g_as_of_date),g_min_start_date),
382: NVL(fii_time_api.ent_sd_lysper_end(g_as_of_date),g_min_start_date)
383: INTO g_cy_period_end,
384: g_exp_asof_date
385: FROM DUAL;
386:
387: SELECT DISTINCT a.sequence INTO g_curr_per_sequence
388: FROM fii_time_ent_period a
389: WHERE g_as_of_date BETWEEN a.START_DATE AND a.END_DATE;
390:
391: SELECT NVL(fii_time_api.ent_sd_lysper_end(g_exp_asof_date),g_min_start_date)
392: INTO g_exp_start
393: FROM dual;
394:
395: g_exp_begin_date := g_exp_asof_date;
400: g_budget_bitand := 8;
401: g_hist_budget_bitand := 4;
402: g_forecast_bitand := 8;
403: IF g_time_comp = 'SEQUENTIAL' THEN
404: SELECT NVL(fii_time_api.ent_sd_pqtr_end(g_as_of_date),g_min_start_date) INTO g_previous_asof_date FROM dual;
405: SELECT NVL(fii_time_api.ent_sd_pqtr_end(g_bud_as_of_date),g_min_start_date) INTO g_previous_bud_asof_date FROM dual;
406: ELSE
407: SELECT NVL(fii_time_api.ent_sd_lysqtr_end(g_as_of_date),g_min_start_date) INTO g_previous_asof_date FROM dual;
408: SELECT NVL(fii_time_api.ent_sd_lysqtr_end(g_bud_as_of_date),g_min_start_date) INTO g_previous_bud_asof_date FROM dual;
401: g_hist_budget_bitand := 4;
402: g_forecast_bitand := 8;
403: IF g_time_comp = 'SEQUENTIAL' THEN
404: SELECT NVL(fii_time_api.ent_sd_pqtr_end(g_as_of_date),g_min_start_date) INTO g_previous_asof_date FROM dual;
405: SELECT NVL(fii_time_api.ent_sd_pqtr_end(g_bud_as_of_date),g_min_start_date) INTO g_previous_bud_asof_date FROM dual;
406: ELSE
407: SELECT NVL(fii_time_api.ent_sd_lysqtr_end(g_as_of_date),g_min_start_date) INTO g_previous_asof_date FROM dual;
408: SELECT NVL(fii_time_api.ent_sd_lysqtr_end(g_bud_as_of_date),g_min_start_date) INTO g_previous_bud_asof_date FROM dual;
409: END IF;
403: IF g_time_comp = 'SEQUENTIAL' THEN
404: SELECT NVL(fii_time_api.ent_sd_pqtr_end(g_as_of_date),g_min_start_date) INTO g_previous_asof_date FROM dual;
405: SELECT NVL(fii_time_api.ent_sd_pqtr_end(g_bud_as_of_date),g_min_start_date) INTO g_previous_bud_asof_date FROM dual;
406: ELSE
407: SELECT NVL(fii_time_api.ent_sd_lysqtr_end(g_as_of_date),g_min_start_date) INTO g_previous_asof_date FROM dual;
408: SELECT NVL(fii_time_api.ent_sd_lysqtr_end(g_bud_as_of_date),g_min_start_date) INTO g_previous_bud_asof_date FROM dual;
409: END IF;
410: SELECT NVL(fii_time_api.ent_cqtr_start(g_as_of_date), g_min_start_date) INTO g_curr_per_start FROM DUAL;
411: SELECT NVL(fii_time_api.ent_cqtr_end(g_as_of_date), g_min_start_date) INTO g_curr_per_end FROM DUAL;
404: SELECT NVL(fii_time_api.ent_sd_pqtr_end(g_as_of_date),g_min_start_date) INTO g_previous_asof_date FROM dual;
405: SELECT NVL(fii_time_api.ent_sd_pqtr_end(g_bud_as_of_date),g_min_start_date) INTO g_previous_bud_asof_date FROM dual;
406: ELSE
407: SELECT NVL(fii_time_api.ent_sd_lysqtr_end(g_as_of_date),g_min_start_date) INTO g_previous_asof_date FROM dual;
408: SELECT NVL(fii_time_api.ent_sd_lysqtr_end(g_bud_as_of_date),g_min_start_date) INTO g_previous_bud_asof_date FROM dual;
409: END IF;
410: SELECT NVL(fii_time_api.ent_cqtr_start(g_as_of_date), g_min_start_date) INTO g_curr_per_start FROM DUAL;
411: SELECT NVL(fii_time_api.ent_cqtr_end(g_as_of_date), g_min_start_date) INTO g_curr_per_end FROM DUAL;
412: SELECT NVL(fii_time_api.ent_cqtr_start(g_previous_asof_date), g_min_start_date) INTO g_prior_per_start FROM DUAL;
406: ELSE
407: SELECT NVL(fii_time_api.ent_sd_lysqtr_end(g_as_of_date),g_min_start_date) INTO g_previous_asof_date FROM dual;
408: SELECT NVL(fii_time_api.ent_sd_lysqtr_end(g_bud_as_of_date),g_min_start_date) INTO g_previous_bud_asof_date FROM dual;
409: END IF;
410: SELECT NVL(fii_time_api.ent_cqtr_start(g_as_of_date), g_min_start_date) INTO g_curr_per_start FROM DUAL;
411: SELECT NVL(fii_time_api.ent_cqtr_end(g_as_of_date), g_min_start_date) INTO g_curr_per_end FROM DUAL;
412: SELECT NVL(fii_time_api.ent_cqtr_start(g_previous_asof_date), g_min_start_date) INTO g_prior_per_start FROM DUAL;
413: SELECT NVL(fii_time_api.ent_cqtr_end(g_previous_asof_date), g_min_start_date) INTO g_prior_per_end FROM DUAL;
414:
407: SELECT NVL(fii_time_api.ent_sd_lysqtr_end(g_as_of_date),g_min_start_date) INTO g_previous_asof_date FROM dual;
408: SELECT NVL(fii_time_api.ent_sd_lysqtr_end(g_bud_as_of_date),g_min_start_date) INTO g_previous_bud_asof_date FROM dual;
409: END IF;
410: SELECT NVL(fii_time_api.ent_cqtr_start(g_as_of_date), g_min_start_date) INTO g_curr_per_start FROM DUAL;
411: SELECT NVL(fii_time_api.ent_cqtr_end(g_as_of_date), g_min_start_date) INTO g_curr_per_end FROM DUAL;
412: SELECT NVL(fii_time_api.ent_cqtr_start(g_previous_asof_date), g_min_start_date) INTO g_prior_per_start FROM DUAL;
413: SELECT NVL(fii_time_api.ent_cqtr_end(g_previous_asof_date), g_min_start_date) INTO g_prior_per_end FROM DUAL;
414:
415: SELECT ent_qtr_id INTO g_time_id
408: SELECT NVL(fii_time_api.ent_sd_lysqtr_end(g_bud_as_of_date),g_min_start_date) INTO g_previous_bud_asof_date FROM dual;
409: END IF;
410: SELECT NVL(fii_time_api.ent_cqtr_start(g_as_of_date), g_min_start_date) INTO g_curr_per_start FROM DUAL;
411: SELECT NVL(fii_time_api.ent_cqtr_end(g_as_of_date), g_min_start_date) INTO g_curr_per_end FROM DUAL;
412: SELECT NVL(fii_time_api.ent_cqtr_start(g_previous_asof_date), g_min_start_date) INTO g_prior_per_start FROM DUAL;
413: SELECT NVL(fii_time_api.ent_cqtr_end(g_previous_asof_date), g_min_start_date) INTO g_prior_per_end FROM DUAL;
414:
415: SELECT ent_qtr_id INTO g_time_id
416: FROM fii_time_ent_period per
409: END IF;
410: SELECT NVL(fii_time_api.ent_cqtr_start(g_as_of_date), g_min_start_date) INTO g_curr_per_start FROM DUAL;
411: SELECT NVL(fii_time_api.ent_cqtr_end(g_as_of_date), g_min_start_date) INTO g_curr_per_end FROM DUAL;
412: SELECT NVL(fii_time_api.ent_cqtr_start(g_previous_asof_date), g_min_start_date) INTO g_prior_per_start FROM DUAL;
413: SELECT NVL(fii_time_api.ent_cqtr_end(g_previous_asof_date), g_min_start_date) INTO g_prior_per_end FROM DUAL;
414:
415: SELECT ent_qtr_id INTO g_time_id
416: FROM fii_time_ent_period per
417: WHERE g_as_of_date BETWEEN start_date AND end_date;
416: FROM fii_time_ent_period per
417: WHERE g_as_of_date BETWEEN start_date AND end_date;
418:
419: -- Added for P&L Analysis
420: SELECT NVL( fii_time_api.ent_pqtr_end(g_as_of_date),g_min_start_date) INTO g_cy_period_end FROM dual;
421:
422: IF (g_time_comp = 'SEQUENTIAL') THEN
423: SELECT DISTINCT a.ent_qtr_id INTO g_curr_per_sequence
424: FROM fii_time_ent_qtr a
423: SELECT DISTINCT a.ent_qtr_id INTO g_curr_per_sequence
424: FROM fii_time_ent_qtr a
425: WHERE g_as_of_date BETWEEN a.START_DATE AND a.END_DATE;
426:
427: SELECT NVL(fii_time_api.ent_sd_lysqtr_end(g_as_of_date),g_min_start_date)
428: INTO g_exp_asof_date
429: FROM dual;
430:
431: SELECT NVL(fii_time_api.ent_sd_lysqtr_end(fii_time_api.ent_sd_lysqtr_end(g_exp_asof_date)),g_min_start_date)
427: SELECT NVL(fii_time_api.ent_sd_lysqtr_end(g_as_of_date),g_min_start_date)
428: INTO g_exp_asof_date
429: FROM dual;
430:
431: SELECT NVL(fii_time_api.ent_sd_lysqtr_end(fii_time_api.ent_sd_lysqtr_end(g_exp_asof_date)),g_min_start_date)
432: INTO g_exp_begin_date
433: FROM dual;
434: ELSE
435: SELECT DISTINCT a.sequence INTO g_curr_per_sequence
435: SELECT DISTINCT a.sequence INTO g_curr_per_sequence
436: FROM fii_time_ent_qtr a
437: WHERE g_as_of_date BETWEEN a.START_DATE AND a.END_DATE;
438:
439: SELECT NVL(fii_time_api.ent_sd_lysqtr_end(g_as_of_date),g_min_start_date)
440: INTO g_exp_asof_date
441: FROM dual;
442:
443: g_exp_begin_date := g_exp_asof_date;
442:
443: g_exp_begin_date := g_exp_asof_date;
444: END IF;
445:
446: SELECT NVL(fii_time_api.ent_sd_lysqtr_end(g_exp_asof_date),g_min_start_date)
447: INTO g_exp_start
448: FROM dual;
449:
450: WHEN 'FII_TIME_ENT_YEAR' THEN
452: g_hist_actual_bitand := 128;
453: g_budget_bitand := 16;
454: g_hist_budget_bitand := 8;
455: g_forecast_bitand := 16;
456: SELECT NVL(fii_time_api.ent_sd_lyr_end(g_as_of_date),g_min_start_date) INTO g_previous_asof_date FROM dual;
457: SELECT NVL(fii_time_api.ent_sd_lyr_end(g_bud_as_of_date),g_min_start_date) INTO g_previous_bud_asof_date FROM dual;
458: SELECT NVL(fii_time_api.ent_cyr_start(g_as_of_date), g_min_start_date) INTO g_curr_per_start FROM DUAL;
459: SELECT NVL(fii_time_api.ent_cyr_end(g_as_of_date), g_min_start_date) INTO g_curr_per_end FROM DUAL;
460: SELECT NVL(fii_time_api.ent_cyr_start(g_previous_asof_date), g_min_start_date) INTO g_prior_per_start FROM DUAL;
453: g_budget_bitand := 16;
454: g_hist_budget_bitand := 8;
455: g_forecast_bitand := 16;
456: SELECT NVL(fii_time_api.ent_sd_lyr_end(g_as_of_date),g_min_start_date) INTO g_previous_asof_date FROM dual;
457: SELECT NVL(fii_time_api.ent_sd_lyr_end(g_bud_as_of_date),g_min_start_date) INTO g_previous_bud_asof_date FROM dual;
458: SELECT NVL(fii_time_api.ent_cyr_start(g_as_of_date), g_min_start_date) INTO g_curr_per_start FROM DUAL;
459: SELECT NVL(fii_time_api.ent_cyr_end(g_as_of_date), g_min_start_date) INTO g_curr_per_end FROM DUAL;
460: SELECT NVL(fii_time_api.ent_cyr_start(g_previous_asof_date), g_min_start_date) INTO g_prior_per_start FROM DUAL;
461: SELECT NVL(fii_time_api.ent_cyr_end(g_previous_asof_date), g_min_start_date) INTO g_prior_per_end FROM DUAL;
454: g_hist_budget_bitand := 8;
455: g_forecast_bitand := 16;
456: SELECT NVL(fii_time_api.ent_sd_lyr_end(g_as_of_date),g_min_start_date) INTO g_previous_asof_date FROM dual;
457: SELECT NVL(fii_time_api.ent_sd_lyr_end(g_bud_as_of_date),g_min_start_date) INTO g_previous_bud_asof_date FROM dual;
458: SELECT NVL(fii_time_api.ent_cyr_start(g_as_of_date), g_min_start_date) INTO g_curr_per_start FROM DUAL;
459: SELECT NVL(fii_time_api.ent_cyr_end(g_as_of_date), g_min_start_date) INTO g_curr_per_end FROM DUAL;
460: SELECT NVL(fii_time_api.ent_cyr_start(g_previous_asof_date), g_min_start_date) INTO g_prior_per_start FROM DUAL;
461: SELECT NVL(fii_time_api.ent_cyr_end(g_previous_asof_date), g_min_start_date) INTO g_prior_per_end FROM DUAL;
462:
455: g_forecast_bitand := 16;
456: SELECT NVL(fii_time_api.ent_sd_lyr_end(g_as_of_date),g_min_start_date) INTO g_previous_asof_date FROM dual;
457: SELECT NVL(fii_time_api.ent_sd_lyr_end(g_bud_as_of_date),g_min_start_date) INTO g_previous_bud_asof_date FROM dual;
458: SELECT NVL(fii_time_api.ent_cyr_start(g_as_of_date), g_min_start_date) INTO g_curr_per_start FROM DUAL;
459: SELECT NVL(fii_time_api.ent_cyr_end(g_as_of_date), g_min_start_date) INTO g_curr_per_end FROM DUAL;
460: SELECT NVL(fii_time_api.ent_cyr_start(g_previous_asof_date), g_min_start_date) INTO g_prior_per_start FROM DUAL;
461: SELECT NVL(fii_time_api.ent_cyr_end(g_previous_asof_date), g_min_start_date) INTO g_prior_per_end FROM DUAL;
462:
463: SELECT ent_year_id INTO g_time_id
456: SELECT NVL(fii_time_api.ent_sd_lyr_end(g_as_of_date),g_min_start_date) INTO g_previous_asof_date FROM dual;
457: SELECT NVL(fii_time_api.ent_sd_lyr_end(g_bud_as_of_date),g_min_start_date) INTO g_previous_bud_asof_date FROM dual;
458: SELECT NVL(fii_time_api.ent_cyr_start(g_as_of_date), g_min_start_date) INTO g_curr_per_start FROM DUAL;
459: SELECT NVL(fii_time_api.ent_cyr_end(g_as_of_date), g_min_start_date) INTO g_curr_per_end FROM DUAL;
460: SELECT NVL(fii_time_api.ent_cyr_start(g_previous_asof_date), g_min_start_date) INTO g_prior_per_start FROM DUAL;
461: SELECT NVL(fii_time_api.ent_cyr_end(g_previous_asof_date), g_min_start_date) INTO g_prior_per_end FROM DUAL;
462:
463: SELECT ent_year_id INTO g_time_id
464: FROM fii_time_ent_period per
457: SELECT NVL(fii_time_api.ent_sd_lyr_end(g_bud_as_of_date),g_min_start_date) INTO g_previous_bud_asof_date FROM dual;
458: SELECT NVL(fii_time_api.ent_cyr_start(g_as_of_date), g_min_start_date) INTO g_curr_per_start FROM DUAL;
459: SELECT NVL(fii_time_api.ent_cyr_end(g_as_of_date), g_min_start_date) INTO g_curr_per_end FROM DUAL;
460: SELECT NVL(fii_time_api.ent_cyr_start(g_previous_asof_date), g_min_start_date) INTO g_prior_per_start FROM DUAL;
461: SELECT NVL(fii_time_api.ent_cyr_end(g_previous_asof_date), g_min_start_date) INTO g_prior_per_end FROM DUAL;
462:
463: SELECT ent_year_id INTO g_time_id
464: FROM fii_time_ent_period per
465: WHERE g_as_of_date BETWEEN start_date AND end_date;
484: g_amount_type := NVL(FND_PROFILE.value('FII_PSI_AMOUNT_TYPE'), 'YTD');
485: g_boundary := NVL(FND_PROFILE.value('FII_PSI_BOUNDARY'), 'Y');
486:
487: IF g_boundary = 'P' THEN
488: g_boundary_end := NVL(fii_time_api.ent_cper_end(g_as_of_date), g_min_start_date);
489: g_prior_boundary_end := NVL(fii_time_api.ent_cper_end(g_previous_asof_date), g_min_start_date);
490: ELSIF g_boundary = 'Q' THEN
491: g_boundary_end := NVL(fii_time_api.ent_cqtr_end(g_as_of_date), g_min_start_date);
492: g_prior_boundary_end := NVL(fii_time_api.ent_cqtr_end(g_previous_asof_date), g_min_start_date);
485: g_boundary := NVL(FND_PROFILE.value('FII_PSI_BOUNDARY'), 'Y');
486:
487: IF g_boundary = 'P' THEN
488: g_boundary_end := NVL(fii_time_api.ent_cper_end(g_as_of_date), g_min_start_date);
489: g_prior_boundary_end := NVL(fii_time_api.ent_cper_end(g_previous_asof_date), g_min_start_date);
490: ELSIF g_boundary = 'Q' THEN
491: g_boundary_end := NVL(fii_time_api.ent_cqtr_end(g_as_of_date), g_min_start_date);
492: g_prior_boundary_end := NVL(fii_time_api.ent_cqtr_end(g_previous_asof_date), g_min_start_date);
493: ELSIF g_boundary ='Y' THEN
487: IF g_boundary = 'P' THEN
488: g_boundary_end := NVL(fii_time_api.ent_cper_end(g_as_of_date), g_min_start_date);
489: g_prior_boundary_end := NVL(fii_time_api.ent_cper_end(g_previous_asof_date), g_min_start_date);
490: ELSIF g_boundary = 'Q' THEN
491: g_boundary_end := NVL(fii_time_api.ent_cqtr_end(g_as_of_date), g_min_start_date);
492: g_prior_boundary_end := NVL(fii_time_api.ent_cqtr_end(g_previous_asof_date), g_min_start_date);
493: ELSIF g_boundary ='Y' THEN
494: g_boundary_end := NVL(fii_time_api.ent_cyr_end(g_as_of_date), g_min_start_date);
495: g_prior_boundary_end := NVL(fii_time_api.ent_cyr_end(g_previous_asof_date), g_min_start_date);
488: g_boundary_end := NVL(fii_time_api.ent_cper_end(g_as_of_date), g_min_start_date);
489: g_prior_boundary_end := NVL(fii_time_api.ent_cper_end(g_previous_asof_date), g_min_start_date);
490: ELSIF g_boundary = 'Q' THEN
491: g_boundary_end := NVL(fii_time_api.ent_cqtr_end(g_as_of_date), g_min_start_date);
492: g_prior_boundary_end := NVL(fii_time_api.ent_cqtr_end(g_previous_asof_date), g_min_start_date);
493: ELSIF g_boundary ='Y' THEN
494: g_boundary_end := NVL(fii_time_api.ent_cyr_end(g_as_of_date), g_min_start_date);
495: g_prior_boundary_end := NVL(fii_time_api.ent_cyr_end(g_previous_asof_date), g_min_start_date);
496: END IF;
490: ELSIF g_boundary = 'Q' THEN
491: g_boundary_end := NVL(fii_time_api.ent_cqtr_end(g_as_of_date), g_min_start_date);
492: g_prior_boundary_end := NVL(fii_time_api.ent_cqtr_end(g_previous_asof_date), g_min_start_date);
493: ELSIF g_boundary ='Y' THEN
494: g_boundary_end := NVL(fii_time_api.ent_cyr_end(g_as_of_date), g_min_start_date);
495: g_prior_boundary_end := NVL(fii_time_api.ent_cyr_end(g_previous_asof_date), g_min_start_date);
496: END IF;
497:
498: IF g_amount_type ='PTD' THEN
491: g_boundary_end := NVL(fii_time_api.ent_cqtr_end(g_as_of_date), g_min_start_date);
492: g_prior_boundary_end := NVL(fii_time_api.ent_cqtr_end(g_previous_asof_date), g_min_start_date);
493: ELSIF g_boundary ='Y' THEN
494: g_boundary_end := NVL(fii_time_api.ent_cyr_end(g_as_of_date), g_min_start_date);
495: g_prior_boundary_end := NVL(fii_time_api.ent_cyr_end(g_previous_asof_date), g_min_start_date);
496: END IF;
497:
498: IF g_amount_type ='PTD' THEN
499: g_amount_type_bitand := 64;
516:
517: CASE g_page_period_type
518:
519: WHEN 'FII_TIME_ENT_YEAR' THEN
520: SELECT NVL(fii_time_api.ent_pqtr_END(g_as_of_date),g_min_start_date) INTO g_previous_one_END_date FROM dual;
521: SELECT NVL(fii_time_api.ent_pqtr_END(g_previous_one_END_date),g_min_start_date) INTO g_previous_two_END_date FROM dual;
522: SELECT NVL(fii_time_api.ent_pqtr_END(g_previous_two_END_date),g_min_start_date) INTO g_previous_three_END_date FROM dual;
523: WHEN 'FII_TIME_ENT_QTR' THEN
524: SELECT NVL(fii_time_api.ent_pper_END(g_as_of_date),g_min_start_date) INTO g_previous_one_END_date FROM dual;
517: CASE g_page_period_type
518:
519: WHEN 'FII_TIME_ENT_YEAR' THEN
520: SELECT NVL(fii_time_api.ent_pqtr_END(g_as_of_date),g_min_start_date) INTO g_previous_one_END_date FROM dual;
521: SELECT NVL(fii_time_api.ent_pqtr_END(g_previous_one_END_date),g_min_start_date) INTO g_previous_two_END_date FROM dual;
522: SELECT NVL(fii_time_api.ent_pqtr_END(g_previous_two_END_date),g_min_start_date) INTO g_previous_three_END_date FROM dual;
523: WHEN 'FII_TIME_ENT_QTR' THEN
524: SELECT NVL(fii_time_api.ent_pper_END(g_as_of_date),g_min_start_date) INTO g_previous_one_END_date FROM dual;
525: SELECT NVL(fii_time_api.ent_pper_END(g_previous_one_END_date),g_min_start_date) INTO g_previous_two_END_date FROM dual;
518:
519: WHEN 'FII_TIME_ENT_YEAR' THEN
520: SELECT NVL(fii_time_api.ent_pqtr_END(g_as_of_date),g_min_start_date) INTO g_previous_one_END_date FROM dual;
521: SELECT NVL(fii_time_api.ent_pqtr_END(g_previous_one_END_date),g_min_start_date) INTO g_previous_two_END_date FROM dual;
522: SELECT NVL(fii_time_api.ent_pqtr_END(g_previous_two_END_date),g_min_start_date) INTO g_previous_three_END_date FROM dual;
523: WHEN 'FII_TIME_ENT_QTR' THEN
524: SELECT NVL(fii_time_api.ent_pper_END(g_as_of_date),g_min_start_date) INTO g_previous_one_END_date FROM dual;
525: SELECT NVL(fii_time_api.ent_pper_END(g_previous_one_END_date),g_min_start_date) INTO g_previous_two_END_date FROM dual;
526: SELECT NVL(fii_time_api.ent_pper_END(g_previous_two_END_date),g_min_start_date) INTO g_previous_three_END_date FROM dual;
520: SELECT NVL(fii_time_api.ent_pqtr_END(g_as_of_date),g_min_start_date) INTO g_previous_one_END_date FROM dual;
521: SELECT NVL(fii_time_api.ent_pqtr_END(g_previous_one_END_date),g_min_start_date) INTO g_previous_two_END_date FROM dual;
522: SELECT NVL(fii_time_api.ent_pqtr_END(g_previous_two_END_date),g_min_start_date) INTO g_previous_three_END_date FROM dual;
523: WHEN 'FII_TIME_ENT_QTR' THEN
524: SELECT NVL(fii_time_api.ent_pper_END(g_as_of_date),g_min_start_date) INTO g_previous_one_END_date FROM dual;
525: SELECT NVL(fii_time_api.ent_pper_END(g_previous_one_END_date),g_min_start_date) INTO g_previous_two_END_date FROM dual;
526: SELECT NVL(fii_time_api.ent_pper_END(g_previous_two_END_date),g_min_start_date) INTO g_previous_three_END_date FROM dual;
527: WHEN 'FII_TIME_ENT_PERIOD' THEN
528: g_previous_one_END_date := NULL;
521: SELECT NVL(fii_time_api.ent_pqtr_END(g_previous_one_END_date),g_min_start_date) INTO g_previous_two_END_date FROM dual;
522: SELECT NVL(fii_time_api.ent_pqtr_END(g_previous_two_END_date),g_min_start_date) INTO g_previous_three_END_date FROM dual;
523: WHEN 'FII_TIME_ENT_QTR' THEN
524: SELECT NVL(fii_time_api.ent_pper_END(g_as_of_date),g_min_start_date) INTO g_previous_one_END_date FROM dual;
525: SELECT NVL(fii_time_api.ent_pper_END(g_previous_one_END_date),g_min_start_date) INTO g_previous_two_END_date FROM dual;
526: SELECT NVL(fii_time_api.ent_pper_END(g_previous_two_END_date),g_min_start_date) INTO g_previous_three_END_date FROM dual;
527: WHEN 'FII_TIME_ENT_PERIOD' THEN
528: g_previous_one_END_date := NULL;
529: g_previous_two_END_date := NULL;
522: SELECT NVL(fii_time_api.ent_pqtr_END(g_previous_two_END_date),g_min_start_date) INTO g_previous_three_END_date FROM dual;
523: WHEN 'FII_TIME_ENT_QTR' THEN
524: SELECT NVL(fii_time_api.ent_pper_END(g_as_of_date),g_min_start_date) INTO g_previous_one_END_date FROM dual;
525: SELECT NVL(fii_time_api.ent_pper_END(g_previous_one_END_date),g_min_start_date) INTO g_previous_two_END_date FROM dual;
526: SELECT NVL(fii_time_api.ent_pper_END(g_previous_two_END_date),g_min_start_date) INTO g_previous_three_END_date FROM dual;
527: WHEN 'FII_TIME_ENT_PERIOD' THEN
528: g_previous_one_END_date := NULL;
529: g_previous_two_END_date := NULL;
530: g_previous_three_END_date :=NULL;
1940:
1941: CASE p_sequence
1942:
1943: WHEN '1' THEN
1944: l_temp_date := fii_time_api.ent_pqtr_END(fii_time_api.ent_pqtr_END(fii_time_api.ent_pqtr_END(l_asof_date)));
1945: WHEN '2' THEN
1946: l_temp_date := fii_time_api.ent_pqtr_END(fii_time_api.ent_pqtr_END(l_asof_date));
1947: WHEN '3' THEN
1948: l_temp_date := fii_time_api.ent_pqtr_END(l_asof_date);
1942:
1943: WHEN '1' THEN
1944: l_temp_date := fii_time_api.ent_pqtr_END(fii_time_api.ent_pqtr_END(fii_time_api.ent_pqtr_END(l_asof_date)));
1945: WHEN '2' THEN
1946: l_temp_date := fii_time_api.ent_pqtr_END(fii_time_api.ent_pqtr_END(l_asof_date));
1947: WHEN '3' THEN
1948: l_temp_date := fii_time_api.ent_pqtr_END(l_asof_date);
1949: WHEN '4' THEN
1950: stmt := FND_Message.get_string('FII', 'FII_QTD');
1944: l_temp_date := fii_time_api.ent_pqtr_END(fii_time_api.ent_pqtr_END(fii_time_api.ent_pqtr_END(l_asof_date)));
1945: WHEN '2' THEN
1946: l_temp_date := fii_time_api.ent_pqtr_END(fii_time_api.ent_pqtr_END(l_asof_date));
1947: WHEN '3' THEN
1948: l_temp_date := fii_time_api.ent_pqtr_END(l_asof_date);
1949: WHEN '4' THEN
1950: stmt := FND_Message.get_string('FII', 'FII_QTD');
1951: RETURN stmt;
1952: ELSE
1964:
1965: CASE p_sequence
1966:
1967: WHEN '1' THEN
1968: l_temp_date := fii_time_api.ent_pper_END(fii_time_api.ent_pper_END(fii_time_api.ent_pper_END(l_asof_date)));
1969: WHEN '2' THEN
1970: l_temp_date := fii_time_api.ent_pper_END(fii_time_api.ent_pper_END(l_asof_date));
1971: WHEN '3' THEN
1972: l_temp_date := fii_time_api.ent_pper_END(l_asof_date);
1966:
1967: WHEN '1' THEN
1968: l_temp_date := fii_time_api.ent_pper_END(fii_time_api.ent_pper_END(fii_time_api.ent_pper_END(l_asof_date)));
1969: WHEN '2' THEN
1970: l_temp_date := fii_time_api.ent_pper_END(fii_time_api.ent_pper_END(l_asof_date));
1971: WHEN '3' THEN
1972: l_temp_date := fii_time_api.ent_pper_END(l_asof_date);
1973: WHEN '4' THEN
1974: stmt := FND_Message.get_string('FII', 'FII_MTD');
1968: l_temp_date := fii_time_api.ent_pper_END(fii_time_api.ent_pper_END(fii_time_api.ent_pper_END(l_asof_date)));
1969: WHEN '2' THEN
1970: l_temp_date := fii_time_api.ent_pper_END(fii_time_api.ent_pper_END(l_asof_date));
1971: WHEN '3' THEN
1972: l_temp_date := fii_time_api.ent_pper_END(l_asof_date);
1973: WHEN '4' THEN
1974: stmt := FND_Message.get_string('FII', 'FII_MTD');
1975: RETURN stmt;
1976: ELSE