[Home] [Help]
81: --If it is the first period, then if dat(i+1) is a Begin Date in schedule lines, period prompt would be
82: --from dat(i) to (dat(i+1)-1), else dat(i) to dat(i+1).
83: --
84: if ((start_period+n)=1) then
85: select count(*) into v_count1 from psp_schedule_lines
86: where schedule_begin_date = dat(start_period+n+1)
87: and schedule_hierarchy_id = s_id;
88: if v_count1 = 0 then
89: prompt1 := to_char(dat(start_period+n));
109: --if dat(i) = dat(i+1) or dat(i+1) = dat(i)+1, period prompt would be from dat(i) to dat(i+1).
110: --
111:
112: else
113: select count(*) into v_count1 from psp_schedule_lines
114: where schedule_begin_date = dat(start_period+n)
115: and schedule_hierarchy_id = s_id;
116:
117: select count(*) into v_count2 from psp_schedule_lines
113: select count(*) into v_count1 from psp_schedule_lines
114: where schedule_begin_date = dat(start_period+n)
115: and schedule_hierarchy_id = s_id;
116:
117: select count(*) into v_count2 from psp_schedule_lines
118: where schedule_begin_date = dat(start_period+n+1)
119: and schedule_hierarchy_id = s_id;
120:
121: select count(*) into v_count3 from psp_schedule_lines
117: select count(*) into v_count2 from psp_schedule_lines
118: where schedule_begin_date = dat(start_period+n+1)
119: and schedule_hierarchy_id = s_id;
120:
121: select count(*) into v_count3 from psp_schedule_lines
122: where schedule_end_date = dat(start_period+n)
123: and schedule_hierarchy_id = s_id;
124:
125: select count(*) into v_count4 from psp_schedule_lines
121: select count(*) into v_count3 from psp_schedule_lines
122: where schedule_end_date = dat(start_period+n)
123: and schedule_hierarchy_id = s_id;
124:
125: select count(*) into v_count4 from psp_schedule_lines
126: where schedule_end_date = dat(start_period+n+1)
127: and schedule_hierarchy_id = s_id;
128:
129: if v_count1 = 0 then
243: SELECT schedule_line_id l_id,
244: schedule_begin_date sbd,
245: schedule_end_date sed,
246: schedule_percent sp
247: FROM psp_schedule_lines
248: WHERE schedule_hierarchy_id = s_id;
249:
250: --Get the dates (schedule begin dates and end dates) in ascending order of dates. If a date is present in
251: --begin as well as the end date, bring the End Date first.
250: --Get the dates (schedule begin dates and end dates) in ascending order of dates. If a date is present in
251: --begin as well as the end date, bring the End Date first.
252: CURSOR dates(s_id NUMBER) IS
253: SELECT schedule_begin_date dat , 'B'
254: FROM psp_schedule_lines
255: WHERE schedule_hierarchy_id = s_id
256: UNION
257: SELECT schedule_end_date dat , 'E'
258: FROM psp_schedule_lines
254: FROM psp_schedule_lines
255: WHERE schedule_hierarchy_id = s_id
256: UNION
257: SELECT schedule_end_date dat , 'E'
258: FROM psp_schedule_lines
259: WHERE schedule_hierarchy_id = s_id
260: ORDER BY 1, 2 ;
261:
262: i BINARY_INTEGER :=0;
318:
319: --
320: --Insert records in temporary table PSP_MATRIX_DRIVER. There may be some dates in 'dat1' which were not
321: --included in 'dat' because Begin Date was exactly 1 day greater than the End Date. In such a case,
322: --instead of comparing dates of 'dat' with those of psp_schedule_lines, compare (Begin Date+1) and End
323: --Date of 'dat' with those of psp_schedule_lines.
324: --
325: OPEN sched_lines(sch_id);
326: LOOP
319: --
320: --Insert records in temporary table PSP_MATRIX_DRIVER. There may be some dates in 'dat1' which were not
321: --included in 'dat' because Begin Date was exactly 1 day greater than the End Date. In such a case,
322: --instead of comparing dates of 'dat' with those of psp_schedule_lines, compare (Begin Date+1) and End
323: --Date of 'dat' with those of psp_schedule_lines.
324: --
325: OPEN sched_lines(sch_id);
326: LOOP
327: FETCH sched_lines INTO sch_rec;
413: SELECT global_run_id, schedule_line_id,
414: schedule_chunk.schedule_begin_date(rowno),
415: schedule_chunk.schedule_end_date(rowno),
416: schedule_percent
417: FROM psp_schedule_lines psl
418: WHERE schedule_hierarchy_id = sch_id
419: AND psl.schedule_begin_date <= schedule_chunk.schedule_end_date(rowno)
420: AND psl.schedule_end_date >= schedule_chunk.schedule_begin_date(rowno);
421:
428: SELECT global_run_id, schedule_line_id,
429: schedule_chunk.schedule_begin_date(rowno),
430: schedule_chunk.schedule_end_date(rowno),
431: 0
432: FROM psp_schedule_lines psl
433: WHERE schedule_hierarchy_id = sch_id
434: AND (psl.schedule_begin_date > schedule_chunk.schedule_end_date(rowno)
435: OR psl.schedule_end_date < schedule_chunk.schedule_begin_date(rowno));
436:
577:
578: CURSOR sch_hier_cur(v_organization_id NUMBER) IS
579: SELECT distinct psh.schedule_hierarchy_id
580: FROM psp_schedule_hierarchy psh,
581: psp_schedule_lines psl,
582: per_assignments_f paf
583: WHERE psh.schedule_hierarchy_id = psl.schedule_hierarchy_id
584: AND paf.assignment_id = psh.assignment_id
585: AND paf.organization_id = v_organization_id
607: SELECT schedule_line_id l_id,
608: schedule_begin_date sbd,
609: schedule_end_date sed,
610: schedule_percent sp
611: FROM psp_schedule_lines
612: WHERE schedule_hierarchy_id = schedule_hierarchy_id
613: AND schedule_end_date >= p_period_from
614: AND schedule_begin_date <= p_period_to;
615:
614: AND schedule_begin_date <= p_period_to;
615:
616: CURSOR dates(p_schedule_hierarchy_id NUMBER) IS
617: SELECT schedule_begin_date dat , 'B'
618: FROM psp_schedule_lines
619: WHERE schedule_hierarchy_id = p_schedule_hierarchy_id
620: AND schedule_end_date >= p_period_from
621: AND schedule_begin_date <= p_period_to
622: UNION
620: AND schedule_end_date >= p_period_from
621: AND schedule_begin_date <= p_period_to
622: UNION
623: SELECT schedule_end_date dat , 'E'
624: FROM psp_schedule_lines
625: WHERE schedule_hierarchy_id = p_schedule_hierarchy_id
626: AND schedule_end_date >= p_period_from
627: AND schedule_begin_date <= p_period_to
628: ORDER BY 1, 2 ;
634:
635: Cursor c_all_org is
636: SELECT distinct paf.organization_id
637: FROM psp_schedule_hierarchy psh,
638: psp_schedule_lines psl,
639: per_assignments_f paf
640: WHERE psh.schedule_hierarchy_id = psl.schedule_hierarchy_id
641: AND paf.assignment_id = psh.assignment_id
642: AND psl.schedule_begin_date <= p_period_to
703: SELECT global_run_id, schedule_line_id,
704: GREATEST(p_period_from, schedule_chunk.schedule_begin_date(rowno)),
705: LEAST(p_period_to, schedule_chunk.schedule_end_date(rowno)),
706: schedule_percent
707: FROM psp_schedule_lines psl
708: WHERE schedule_hierarchy_id = sch_hier_rec.schedule_hierarchy_id
709: AND psl.schedule_begin_date <= p_period_to
710: AND psl.schedule_end_date >= p_period_from
711: AND psl.schedule_begin_date <= schedule_chunk.schedule_end_date(rowno)
788: SELECT global_run_id, schedule_line_id,
789: GREATEST(p_period_from, schedule_chunk.schedule_begin_date(rowno)),
790: LEAST(p_period_to, schedule_chunk.schedule_end_date(rowno)),
791: schedule_percent
792: FROM psp_schedule_lines psl
793: WHERE schedule_hierarchy_id = sch_hier_rec.schedule_hierarchy_id
794: AND psl.schedule_begin_date <= p_period_to
795: AND psl.schedule_end_date >= p_period_from
796: AND psl.schedule_begin_date <= schedule_chunk.schedule_end_date(rowno)
825: UPDATE psp_matrix_driver pmd
826: SET period_start_date = period_start_date + 1
827: WHERE run_id = global_run_id
828: AND EXISTS (SELECT 1
829: FROM psp_schedule_lines psl,
830: psp_schedule_lines psl2
831: WHERE psl.schedule_line_id = pmd.schedule_line_id
832: AND psl2.schedule_hierarchy_id = psl.schedule_hierarchy_id
833: AND psl2.schedule_end_date = pmd.period_start_date
826: SET period_start_date = period_start_date + 1
827: WHERE run_id = global_run_id
828: AND EXISTS (SELECT 1
829: FROM psp_schedule_lines psl,
830: psp_schedule_lines psl2
831: WHERE psl.schedule_line_id = pmd.schedule_line_id
832: AND psl2.schedule_hierarchy_id = psl.schedule_hierarchy_id
833: AND psl2.schedule_end_date = pmd.period_start_date
834: AND psl2.schedule_line_id <> psl.schedule_line_id);
836: UPDATE psp_matrix_driver pmd
837: SET period_end_date = period_end_date - 1
838: WHERE run_id = global_run_id
839: AND EXISTS (SELECT 1
840: FROM psp_schedule_lines psl,
841: psp_schedule_lines psl2
842: WHERE psl.schedule_line_id = pmd.schedule_line_id
843: AND psl2.schedule_hierarchy_id = psl.schedule_hierarchy_id
844: AND psl2.schedule_begin_date = pmd.period_end_date
837: SET period_end_date = period_end_date - 1
838: WHERE run_id = global_run_id
839: AND EXISTS (SELECT 1
840: FROM psp_schedule_lines psl,
841: psp_schedule_lines psl2
842: WHERE psl.schedule_line_id = pmd.schedule_line_id
843: AND psl2.schedule_hierarchy_id = psl.schedule_hierarchy_id
844: AND psl2.schedule_begin_date = pmd.period_end_date
845: AND psl2.schedule_line_id <> psl.schedule_line_id);
852: SET period_end_date = period_end_date - 1
853: WHERE run_id = global_run_id
854: AND period_start_date < period_end_date
855: AND period_start_date = (SELECT MIN(psl1.schedule_begin_date)
856: FROM psp_schedule_lines psl1
857: WHERE psl1.schedule_hierarchy_id = (SELECT psl2.schedule_hierarchy_id
858: FROM psp_schedule_lines psl2
859: WHERE psl2.schedule_line_id = pmd.schedule_line_id))
860: AND EXISTS (SELECT 1
854: AND period_start_date < period_end_date
855: AND period_start_date = (SELECT MIN(psl1.schedule_begin_date)
856: FROM psp_schedule_lines psl1
857: WHERE psl1.schedule_hierarchy_id = (SELECT psl2.schedule_hierarchy_id
858: FROM psp_schedule_lines psl2
859: WHERE psl2.schedule_line_id = pmd.schedule_line_id))
860: AND EXISTS (SELECT 1
861: FROM psp_schedule_lines psl1
862: WHERE psl1.schedule_line_id <> pmd.schedule_line_id
857: WHERE psl1.schedule_hierarchy_id = (SELECT psl2.schedule_hierarchy_id
858: FROM psp_schedule_lines psl2
859: WHERE psl2.schedule_line_id = pmd.schedule_line_id))
860: AND EXISTS (SELECT 1
861: FROM psp_schedule_lines psl1
862: WHERE psl1.schedule_line_id <> pmd.schedule_line_id
863: AND psl1.schedule_begin_date = pmd.period_end_date
864: AND psl1.schedule_hierarchy_id = (SELECT psl2.schedule_hierarchy_id
865: FROM psp_schedule_lines psl2
861: FROM psp_schedule_lines psl1
862: WHERE psl1.schedule_line_id <> pmd.schedule_line_id
863: AND psl1.schedule_begin_date = pmd.period_end_date
864: AND psl1.schedule_hierarchy_id = (SELECT psl2.schedule_hierarchy_id
865: FROM psp_schedule_lines psl2
866: WHERE psl2.schedule_line_id = pmd.schedule_line_id));
867:
868: UPDATE psp_matrix_driver pmd
869: SET period_end_date = period_end_date - 1
869: SET period_end_date = period_end_date - 1
870: WHERE run_id = global_run_id
871: AND period_start_date < period_end_date
872: AND NOT (NOT EXISTS (SELECT 1
873: FROM psp_schedule_lines psl1
874: WHERE psl1.schedule_line_id <> pmd.schedule_line_id
875: AND psl1.schedule_begin_date = pmd.period_end_date
876: AND psl1.schedule_hierarchy_id = (SELECT psl2.schedule_hierarchy_id
877: FROM psp_schedule_lines psl2
873: FROM psp_schedule_lines psl1
874: WHERE psl1.schedule_line_id <> pmd.schedule_line_id
875: AND psl1.schedule_begin_date = pmd.period_end_date
876: AND psl1.schedule_hierarchy_id = (SELECT psl2.schedule_hierarchy_id
877: FROM psp_schedule_lines psl2
878: where psl2.schedule_line_id = pmd.schedule_line_id))
879: AND EXISTS (SELECT 1
880: FROM psp_schedule_lines psl1
881: WHERE psl1.schedule_end_date = pmd.period_end_date
876: AND psl1.schedule_hierarchy_id = (SELECT psl2.schedule_hierarchy_id
877: FROM psp_schedule_lines psl2
878: where psl2.schedule_line_id = pmd.schedule_line_id))
879: AND EXISTS (SELECT 1
880: FROM psp_schedule_lines psl1
881: WHERE psl1.schedule_end_date = pmd.period_end_date
882: AND psl1.schedule_hierarchy_id = (SELECT psl2.schedule_hierarchy_id
883: FROM psp_schedule_lines psl2
884: WHERE psl2.schedule_line_id = pmd.schedule_line_id)))
879: AND EXISTS (SELECT 1
880: FROM psp_schedule_lines psl1
881: WHERE psl1.schedule_end_date = pmd.period_end_date
882: AND psl1.schedule_hierarchy_id = (SELECT psl2.schedule_hierarchy_id
883: FROM psp_schedule_lines psl2
884: WHERE psl2.schedule_line_id = pmd.schedule_line_id)))
885: AND period_start_date <> (SELECT MIN(psl1.schedule_begin_date)
886: FROM psp_schedule_lines psl1
887: WHERE psl1.schedule_hierarchy_id = (SELECT psl2.schedule_hierarchy_id
882: AND psl1.schedule_hierarchy_id = (SELECT psl2.schedule_hierarchy_id
883: FROM psp_schedule_lines psl2
884: WHERE psl2.schedule_line_id = pmd.schedule_line_id)))
885: AND period_start_date <> (SELECT MIN(psl1.schedule_begin_date)
886: FROM psp_schedule_lines psl1
887: WHERE psl1.schedule_hierarchy_id = (SELECT psl2.schedule_hierarchy_id
888: FROM psp_schedule_lines psl2
889: WHERE psl2.schedule_line_id = pmd.schedule_line_id));
890:
884: WHERE psl2.schedule_line_id = pmd.schedule_line_id)))
885: AND period_start_date <> (SELECT MIN(psl1.schedule_begin_date)
886: FROM psp_schedule_lines psl1
887: WHERE psl1.schedule_hierarchy_id = (SELECT psl2.schedule_hierarchy_id
888: FROM psp_schedule_lines psl2
889: WHERE psl2.schedule_line_id = pmd.schedule_line_id));
890:
891: -- Updating the period_start_date for periods in between schedule begin and end dates
892: -- errbuf := 'Period Start Date Update of Matrix Driver failed';
894: SET period_start_date = period_start_date + 1
895: WHERE run_id = global_run_id
896: AND period_start_date < period_end_date
897: AND NOT EXISTS (SELECT 1
898: FROM psp_schedule_lines psl1
899: WHERE psl1.schedule_begin_date = pmd.period_start_date
900: AND psl1.schedule_hierarchy_id = (SELECT psl2.schedule_hierarchy_id
901: FROM psp_schedule_lines psl2
902: WHERE psl2.schedule_line_id = pmd.schedule_line_id))
897: AND NOT EXISTS (SELECT 1
898: FROM psp_schedule_lines psl1
899: WHERE psl1.schedule_begin_date = pmd.period_start_date
900: AND psl1.schedule_hierarchy_id = (SELECT psl2.schedule_hierarchy_id
901: FROM psp_schedule_lines psl2
902: WHERE psl2.schedule_line_id = pmd.schedule_line_id))
903: AND period_start_date <> (SELECT MIN(psl1.schedule_begin_date)
904: FROM psp_schedule_lines psl1
905: WHERE psl1.schedule_hierarchy_id = (SELECT psl2.schedule_hierarchy_id
900: AND psl1.schedule_hierarchy_id = (SELECT psl2.schedule_hierarchy_id
901: FROM psp_schedule_lines psl2
902: WHERE psl2.schedule_line_id = pmd.schedule_line_id))
903: AND period_start_date <> (SELECT MIN(psl1.schedule_begin_date)
904: FROM psp_schedule_lines psl1
905: WHERE psl1.schedule_hierarchy_id = (SELECT psl2.schedule_hierarchy_id
906: FROM psp_schedule_lines psl2
907: WHERE psl2.schedule_line_id = pmd.schedule_line_id));
908:
902: WHERE psl2.schedule_line_id = pmd.schedule_line_id))
903: AND period_start_date <> (SELECT MIN(psl1.schedule_begin_date)
904: FROM psp_schedule_lines psl1
905: WHERE psl1.schedule_hierarchy_id = (SELECT psl2.schedule_hierarchy_id
906: FROM psp_schedule_lines psl2
907: WHERE psl2.schedule_line_id = pmd.schedule_line_id));
908:
909: UPDATE psp_matrix_driver pmd
910: SET period_start_date = period_start_date + 1
910: SET period_start_date = period_start_date + 1
911: WHERE run_id = global_run_id
912: AND period_start_date < period_end_date
913: AND EXISTS (SELECT 1
914: FROM psp_schedule_lines psl1
915: WHERE psl1.schedule_begin_date = pmd.period_start_date
916: AND psl1.schedule_hierarchy_id = (SELECT psl2.schedule_hierarchy_id
917: FROM psp_schedule_lines psl2
918: WHERE psl2.schedule_line_id = pmd.schedule_line_id))
913: AND EXISTS (SELECT 1
914: FROM psp_schedule_lines psl1
915: WHERE psl1.schedule_begin_date = pmd.period_start_date
916: AND psl1.schedule_hierarchy_id = (SELECT psl2.schedule_hierarchy_id
917: FROM psp_schedule_lines psl2
918: WHERE psl2.schedule_line_id = pmd.schedule_line_id))
919: AND EXISTS (SELECT 1
920: FROM psp_schedule_lines psl1
921: WHERE psl1.schedule_line_id <> pmd.schedule_line_id
916: AND psl1.schedule_hierarchy_id = (SELECT psl2.schedule_hierarchy_id
917: FROM psp_schedule_lines psl2
918: WHERE psl2.schedule_line_id = pmd.schedule_line_id))
919: AND EXISTS (SELECT 1
920: FROM psp_schedule_lines psl1
921: WHERE psl1.schedule_line_id <> pmd.schedule_line_id
922: AND psl1.schedule_end_date = pmd.period_start_date
923: AND psl1.schedule_hierarchy_id = (SELECT psl2.schedule_hierarchy_id
924: FROM psp_schedule_lines psl2
920: FROM psp_schedule_lines psl1
921: WHERE psl1.schedule_line_id <> pmd.schedule_line_id
922: AND psl1.schedule_end_date = pmd.period_start_date
923: AND psl1.schedule_hierarchy_id = (SELECT psl2.schedule_hierarchy_id
924: FROM psp_schedule_lines psl2
925: WHERE psl2.schedule_line_id = pmd.schedule_line_id))
926: AND period_start_date <> (SELECT MIN(psl1.schedule_begin_date)
927: FROM psp_schedule_lines psl1
928: WHERE psl1.schedule_hierarchy_id = (SELECT psl2.schedule_hierarchy_id
923: AND psl1.schedule_hierarchy_id = (SELECT psl2.schedule_hierarchy_id
924: FROM psp_schedule_lines psl2
925: WHERE psl2.schedule_line_id = pmd.schedule_line_id))
926: AND period_start_date <> (SELECT MIN(psl1.schedule_begin_date)
927: FROM psp_schedule_lines psl1
928: WHERE psl1.schedule_hierarchy_id = (SELECT psl2.schedule_hierarchy_id
929: FROM psp_schedule_lines psl2
930: WHERE psl2.schedule_line_id = pmd.schedule_line_id));
931: -- End of Bug fix 2368498
925: WHERE psl2.schedule_line_id = pmd.schedule_line_id))
926: AND period_start_date <> (SELECT MIN(psl1.schedule_begin_date)
927: FROM psp_schedule_lines psl1
928: WHERE psl1.schedule_hierarchy_id = (SELECT psl2.schedule_hierarchy_id
929: FROM psp_schedule_lines psl2
930: WHERE psl2.schedule_line_id = pmd.schedule_line_id));
931: -- End of Bug fix 2368498
932: End of changes for bug fix 3697471 *****/
933:
937: l_report_type := 'Exception';
938: DELETE psp_matrix_driver pmd
939: WHERE run_id = global_run_id
940: AND EXISTS (SELECT 1
941: FROM psp_schedule_lines psl,
942: psp_schedule_lines psl2
943: WHERE psl2.schedule_hierarchy_id = psl.schedule_hierarchy_id
944: AND psl.schedule_line_id = pmd.schedule_line_id
945: AND psl2.schedule_begin_date <= pmd.period_end_date
938: DELETE psp_matrix_driver pmd
939: WHERE run_id = global_run_id
940: AND EXISTS (SELECT 1
941: FROM psp_schedule_lines psl,
942: psp_schedule_lines psl2
943: WHERE psl2.schedule_hierarchy_id = psl.schedule_hierarchy_id
944: AND psl.schedule_line_id = pmd.schedule_line_id
945: AND psl2.schedule_begin_date <= pmd.period_end_date
946: AND psl2.schedule_end_date >= pmd.period_start_date
1306:
1307: --
1308: --Insert records in temporary table PSP_MATRIX_DRIVER. There may be some dates in 'dat1' which were not
1309: --included in 'dat' because Begin Date was exactly 1 day greater than the End Date. In such a case,
1310: --instead of comparing dates of 'dat' with those of psp_schedule_lines, compare (Begin Date+1) and End
1311: --Date of 'dat' with those of psp_schedule_lines.
1312: --
1313: OPEN sched_lines(sch_id);
1314: LOOP
1307: --
1308: --Insert records in temporary table PSP_MATRIX_DRIVER. There may be some dates in 'dat1' which were not
1309: --included in 'dat' because Begin Date was exactly 1 day greater than the End Date. In such a case,
1310: --instead of comparing dates of 'dat' with those of psp_schedule_lines, compare (Begin Date+1) and End
1311: --Date of 'dat' with those of psp_schedule_lines.
1312: --
1313: OPEN sched_lines(sch_id);
1314: LOOP
1315: FETCH sched_lines INTO sch_rec;