3:
4: CURSOR c_term_exists(cp_person_id IGS_PE_PERSON.person_id%TYPE,
5: cp_program_cd IGS_PS_VER.course_cd%TYPE,
6: cp_program_version IGS_PS_VER.version_number%TYPE,
7: cp_term_cal_type IGS_CA_INST.cal_type%TYPE,
8: cp_term_sequence_number IGS_CA_INST.sequence_number%TYPE) IS
9: SELECT spat.term_record_id
10: FROM IGS_EN_SPA_TERMS spat, igs_ps_ver cv1
11: WHERE spat.person_id = cp_person_id
4: CURSOR c_term_exists(cp_person_id IGS_PE_PERSON.person_id%TYPE,
5: cp_program_cd IGS_PS_VER.course_cd%TYPE,
6: cp_program_version IGS_PS_VER.version_number%TYPE,
7: cp_term_cal_type IGS_CA_INST.cal_type%TYPE,
8: cp_term_sequence_number IGS_CA_INST.sequence_number%TYPE) IS
9: SELECT spat.term_record_id
10: FROM IGS_EN_SPA_TERMS spat, igs_ps_ver cv1
11: WHERE spat.person_id = cp_person_id
12: AND spat.term_cal_type = cp_term_cal_type
44: -- Check if the term calendar is subordinate to the acad cal type
45: -- as defined in its term record
46: cursor c_term_acad IS
47: SELECT 'x'
48: FROM igs_ca_inst_rel
49: WHERE sub_cal_type = p_term_rec.term_cal_type
50: AND sub_ci_sequence_number = p_term_rec.term_sequence_number
51: AND sup_cal_type = p_term_rec.acad_cal_type;
52:
88: END validate_term_rec;
89:
90:
91: FUNCTION find_key_effective_for(p_person_id IN IGS_PE_PERSON.PERSON_ID%TYPE,
92: p_term_cal_type IN igs_ca_inst.cal_type%TYPE,
93: p_term_sequence_number IN igs_ca_inst.sequence_number%TYPE) RETURN VARCHAR2
94: AS
95: -- Check if key term record exists for the passed in term calendar
96: cursor c_key_record_exists IS
89:
90:
91: FUNCTION find_key_effective_for(p_person_id IN IGS_PE_PERSON.PERSON_ID%TYPE,
92: p_term_cal_type IN igs_ca_inst.cal_type%TYPE,
93: p_term_sequence_number IN igs_ca_inst.sequence_number%TYPE) RETURN VARCHAR2
94: AS
95: -- Check if key term record exists for the passed in term calendar
96: cursor c_key_record_exists IS
97: select program_cd from igs_en_spa_terms where person_id = p_person_id
101:
102: -- Check the oldest key term record in terms table
103: CURSOR c_oldest_term IS
104: SELECT program_cd, acad_cal_type
105: FROM igs_en_spa_terms spat, igs_ca_inst ca1
106: WHERE person_id = p_person_id
107: AND spat.term_cal_type = ca1.cal_type
108: AND spat.term_sequence_number = ca1.sequence_number
109: AND spat.key_program_flag = 'Y'
110: ORDER BY ca1.start_dt ASC;
111:
112: -- Check the key term record before this term
113: CURSOR c_key_from_prev_term IS
114: select program_cd, acad_cal_type from igs_en_spa_terms spat, igs_ca_inst ca1, igs_ca_inst ca2
115: where key_program_flag = 'Y'
116: and person_id = p_person_id
117: and ca1.cal_type = term_cal_type
118: and ca1.sequence_number = term_sequence_number
124: CURSOR c_key_from_spa IS
125: select course_cd, cal_type from igs_en_stdnt_ps_att where person_id = p_person_id and key_program ='Y';
126:
127: -- Check if the academic calendar for the key determined is same as that of passed in term.
128: CURSOR c_key_in_same_acad(cp_acad_cal_type IGS_CA_INST.CAL_TYPE%TYPE) IS
129: SELECT 'x'
130: FROM igs_ca_inst_rel
131: WHERE sub_cal_type = p_term_cal_type
132: and sub_ci_sequence_number = p_term_sequence_number
126:
127: -- Check if the academic calendar for the key determined is same as that of passed in term.
128: CURSOR c_key_in_same_acad(cp_acad_cal_type IGS_CA_INST.CAL_TYPE%TYPE) IS
129: SELECT 'x'
130: FROM igs_ca_inst_rel
131: WHERE sub_cal_type = p_term_cal_type
132: and sub_ci_sequence_number = p_term_sequence_number
133: and sup_cal_type = cp_acad_cal_type;
134:
133: and sup_cal_type = cp_acad_cal_type;
134:
135: l_program_cd IGS_PS_VER.course_cd%TYPE;
136: l_dummy VARCHAR2(1);
137: l_acad_cal_type IGS_CA_INST.CAL_TYPE%TYPE;
138: BEGIN
139: OPEN c_key_record_exists;
140: FETCH c_key_record_exists INTO l_program_cd;
141: IF (c_key_record_exists%FOUND) THEN
183: SELECT
184: SPAT.*
185: FROM
186: IGS_EN_SPA_TERMS SPAT,
187: IGS_CA_INST CI1,
188: IGS_CA_INST CI2
189: WHERE
190: SPAT.PERSON_ID = p_person_id AND
191: spat.program_cd = p_program_cd AND
184: SPAT.*
185: FROM
186: IGS_EN_SPA_TERMS SPAT,
187: IGS_CA_INST CI1,
188: IGS_CA_INST CI2
189: WHERE
190: SPAT.PERSON_ID = p_person_id AND
191: spat.program_cd = p_program_cd AND
192: SPAT.TERM_CAL_TYPE = CI2.CAL_TYPE AND
194: CI1.CAL_TYPE = p_term_cal_type AND
195: CI1.SEQUENCE_NUMBER = p_term_sequence_number AND
196: CI1.START_DT > CI2.START_DT AND
197: SPAT.ACAD_CAL_TYPE IN (SELECT SUP_CAL_TYPE
198: FROM IGS_CA_INST_REL
199: WHERE SUB_CAL_TYPE = P_TERM_CAL_TYPE
200: AND SUB_CI_SEQUENCE_NUMBER = P_TERM_SEQUENCE_NUMBER)
201: ORDER BY CI2.START_DT DESC;
202:
398: vc_career_model_enabled VARCHAR2(1);
399: CURSOR c_term_rec_exists(cp_person_id IGS_PE_PERSON.person_id%TYPE,
400: cp_program_cd IGS_PS_VER.course_cd%TYPE,
401: cp_program_version IGS_PS_VER.version_number%TYPE,
402: cp_term_cal_type IGS_CA_INST.cal_type%TYPE,
403: cp_term_sequence_number IGS_CA_INST.sequence_number%TYPE) IS
404: SELECT spat.term_record_id
405: FROM IGS_EN_SPA_TERMS spat, igs_ps_ver cv1
406: WHERE spat.person_id = cp_person_id
399: CURSOR c_term_rec_exists(cp_person_id IGS_PE_PERSON.person_id%TYPE,
400: cp_program_cd IGS_PS_VER.course_cd%TYPE,
401: cp_program_version IGS_PS_VER.version_number%TYPE,
402: cp_term_cal_type IGS_CA_INST.cal_type%TYPE,
403: cp_term_sequence_number IGS_CA_INST.sequence_number%TYPE) IS
404: SELECT spat.term_record_id
405: FROM IGS_EN_SPA_TERMS spat, igs_ps_ver cv1
406: WHERE spat.person_id = cp_person_id
407: AND spat.term_cal_type = cp_term_cal_type
654:
655: -- cursor to fetch term records occuring in future
656: CURSOR c_future_terms (cp_chk_othr_prms VARCHAR2,
657: cp_program_version NUMBER,
658: cp_acad_cal_type igs_ca_inst.cal_type%TYPE) IS
659: SELECT spat.*
660: FROM IGS_EN_SPA_TERMS spat,
661: IGS_CA_INST_REL cr,
662: IGS_CA_INST_REL cr2,
657: cp_program_version NUMBER,
658: cp_acad_cal_type igs_ca_inst.cal_type%TYPE) IS
659: SELECT spat.*
660: FROM IGS_EN_SPA_TERMS spat,
661: IGS_CA_INST_REL cr,
662: IGS_CA_INST_REL cr2,
663: IGS_CA_INST ci,
664: IGS_PS_VER cv
665: WHERE cr.sup_cal_type = cp_acad_cal_type
658: cp_acad_cal_type igs_ca_inst.cal_type%TYPE) IS
659: SELECT spat.*
660: FROM IGS_EN_SPA_TERMS spat,
661: IGS_CA_INST_REL cr,
662: IGS_CA_INST_REL cr2,
663: IGS_CA_INST ci,
664: IGS_PS_VER cv
665: WHERE cr.sup_cal_type = cp_acad_cal_type
666: AND cr.sub_cal_type = p_term_cal_type
659: SELECT spat.*
660: FROM IGS_EN_SPA_TERMS spat,
661: IGS_CA_INST_REL cr,
662: IGS_CA_INST_REL cr2,
663: IGS_CA_INST ci,
664: IGS_PS_VER cv
665: WHERE cr.sup_cal_type = cp_acad_cal_type
666: AND cr.sub_cal_type = p_term_cal_type
667: AND cr.sub_ci_sequence_number = p_term_sequence_number
671: AND spat.person_id = p_person_id
672: AND ci.cal_type = cr2.sub_cal_type
673: AND ci.sequence_number = cr2.sub_ci_sequence_number
674: AND exists (SELECT 'x'
675: FROM IGS_CA_INST cii
676: WHERE cal_type = p_term_cal_type
677: AND sequence_number = p_term_sequence_number
678: AND ci.start_dt >= cii.start_dt)
679: AND ci.sequence_number <> p_term_sequence_number
691: ( cp_chk_othr_prms <> 'Y' AND spat.program_cd = p_program_cd));
692:
693:
694: vc_career_model_enabled VARCHAR2(1);
695: vd_start_dt IGS_CA_INST.START_DT%TYPE;
696: v_program_changed BOOLEAN;
697: v_check_othr_prgms VARCHAR2(1);
698: v_changed_term_rec EN_SPAT_REC_TYPE%TYPE;
699: BEGIN
750: c_backward_gap_exists t_ref_cur;
751:
752: v_backward_gap_exists_stmt VARCHAR2 (4000);
753:
754: v_context_cal_type IGS_CA_INST.CAL_TYPE%TYPE;
755: v_context_sequence_number IGS_CA_INST.SEQUENCE_NUMBER%TYPE;
756: v_next_cal_type IGS_CA_INST.CAL_TYPE%TYPE;
757: v_next_sequence_number IGS_CA_INST.SEQUENCE_NUMBER%TYPE;
758:
751:
752: v_backward_gap_exists_stmt VARCHAR2 (4000);
753:
754: v_context_cal_type IGS_CA_INST.CAL_TYPE%TYPE;
755: v_context_sequence_number IGS_CA_INST.SEQUENCE_NUMBER%TYPE;
756: v_next_cal_type IGS_CA_INST.CAL_TYPE%TYPE;
757: v_next_sequence_number IGS_CA_INST.SEQUENCE_NUMBER%TYPE;
758:
759: v_person_id IGS_EN_SPA_TERMS.PERSON_ID%TYPE;
752: v_backward_gap_exists_stmt VARCHAR2 (4000);
753:
754: v_context_cal_type IGS_CA_INST.CAL_TYPE%TYPE;
755: v_context_sequence_number IGS_CA_INST.SEQUENCE_NUMBER%TYPE;
756: v_next_cal_type IGS_CA_INST.CAL_TYPE%TYPE;
757: v_next_sequence_number IGS_CA_INST.SEQUENCE_NUMBER%TYPE;
758:
759: v_person_id IGS_EN_SPA_TERMS.PERSON_ID%TYPE;
760: v_program_cd IGS_EN_SPA_TERMS.PROGRAM_CD%TYPE;
753:
754: v_context_cal_type IGS_CA_INST.CAL_TYPE%TYPE;
755: v_context_sequence_number IGS_CA_INST.SEQUENCE_NUMBER%TYPE;
756: v_next_cal_type IGS_CA_INST.CAL_TYPE%TYPE;
757: v_next_sequence_number IGS_CA_INST.SEQUENCE_NUMBER%TYPE;
758:
759: v_person_id IGS_EN_SPA_TERMS.PERSON_ID%TYPE;
760: v_program_cd IGS_EN_SPA_TERMS.PROGRAM_CD%TYPE;
761: v_program_version IGS_EN_SPA_TERMS.PROGRAM_VERSION%TYPE;
768: v_fee_cat IGS_EN_SPA_TERMS.FEE_CAT%TYPE;
769: v_class_standing_id IGS_EN_SPA_TERMS.CLASS_STANDING_ID%TYPE;
770:
771: -- cursor to fetch backward term gaps
772: CURSOR c_backward_gap(cp_context_cal_type IGS_CA_INST.CAL_TYPE%TYPE,
773: cp_context_sequence_number IGS_CA_INST.SEQUENCE_NUMBER%TYPE,
774: cp_next_cal_type IGS_CA_INST.CAL_TYPE%TYPE,
775: cp_next_sequence_number IGS_CA_INST.SEQUENCE_NUMBER%TYPE)
776: IS
769: v_class_standing_id IGS_EN_SPA_TERMS.CLASS_STANDING_ID%TYPE;
770:
771: -- cursor to fetch backward term gaps
772: CURSOR c_backward_gap(cp_context_cal_type IGS_CA_INST.CAL_TYPE%TYPE,
773: cp_context_sequence_number IGS_CA_INST.SEQUENCE_NUMBER%TYPE,
774: cp_next_cal_type IGS_CA_INST.CAL_TYPE%TYPE,
775: cp_next_sequence_number IGS_CA_INST.SEQUENCE_NUMBER%TYPE)
776: IS
777: SELECT ci.cal_type, ci.sequence_number, ci.start_dt,
770:
771: -- cursor to fetch backward term gaps
772: CURSOR c_backward_gap(cp_context_cal_type IGS_CA_INST.CAL_TYPE%TYPE,
773: cp_context_sequence_number IGS_CA_INST.SEQUENCE_NUMBER%TYPE,
774: cp_next_cal_type IGS_CA_INST.CAL_TYPE%TYPE,
775: cp_next_sequence_number IGS_CA_INST.SEQUENCE_NUMBER%TYPE)
776: IS
777: SELECT ci.cal_type, ci.sequence_number, ci.start_dt,
778: ci.alternate_code, ci.description
771: -- cursor to fetch backward term gaps
772: CURSOR c_backward_gap(cp_context_cal_type IGS_CA_INST.CAL_TYPE%TYPE,
773: cp_context_sequence_number IGS_CA_INST.SEQUENCE_NUMBER%TYPE,
774: cp_next_cal_type IGS_CA_INST.CAL_TYPE%TYPE,
775: cp_next_sequence_number IGS_CA_INST.SEQUENCE_NUMBER%TYPE)
776: IS
777: SELECT ci.cal_type, ci.sequence_number, ci.start_dt,
778: ci.alternate_code, ci.description
779: FROM igs_ca_inst ci,
775: cp_next_sequence_number IGS_CA_INST.SEQUENCE_NUMBER%TYPE)
776: IS
777: SELECT ci.cal_type, ci.sequence_number, ci.start_dt,
778: ci.alternate_code, ci.description
779: FROM igs_ca_inst ci,
780: igs_ca_inst endterm,
781: igs_ca_inst beginterm,
782: igs_ca_type ct,
783: igs_ca_stat cs,
776: IS
777: SELECT ci.cal_type, ci.sequence_number, ci.start_dt,
778: ci.alternate_code, ci.description
779: FROM igs_ca_inst ci,
780: igs_ca_inst endterm,
781: igs_ca_inst beginterm,
782: igs_ca_type ct,
783: igs_ca_stat cs,
784: igs_ca_inst_rel cr,
777: SELECT ci.cal_type, ci.sequence_number, ci.start_dt,
778: ci.alternate_code, ci.description
779: FROM igs_ca_inst ci,
780: igs_ca_inst endterm,
781: igs_ca_inst beginterm,
782: igs_ca_type ct,
783: igs_ca_stat cs,
784: igs_ca_inst_rel cr,
785: igs_ca_inst_rel cr2,
780: igs_ca_inst endterm,
781: igs_ca_inst beginterm,
782: igs_ca_type ct,
783: igs_ca_stat cs,
784: igs_ca_inst_rel cr,
785: igs_ca_inst_rel cr2,
786: igs_ca_type ct2
787: WHERE ci.cal_type = cr.sub_cal_type
788: AND ci.sequence_number = cr.sub_ci_sequence_number
781: igs_ca_inst beginterm,
782: igs_ca_type ct,
783: igs_ca_stat cs,
784: igs_ca_inst_rel cr,
785: igs_ca_inst_rel cr2,
786: igs_ca_type ct2
787: WHERE ci.cal_type = cr.sub_cal_type
788: AND ci.sequence_number = cr.sub_ci_sequence_number
789: AND cr.sup_cal_type = ct2.cal_type
834: SPT.FEE_CAT,
835: SPT.CLASS_STANDING_ID
836: FROM IGS_EN_SPA_TERMS SPT,
837: IGS_PS_VER CV,
838: IGS_CA_INST CI,
839: IGS_CA_INST CI2
840: WHERE SPT.PERSON_ID = :1
841: AND SPT.PROGRAM_CD = CV.COURSE_CD
842: AND SPT.PROGRAM_VERSION = CV.VERSION_NUMBER
835: SPT.CLASS_STANDING_ID
836: FROM IGS_EN_SPA_TERMS SPT,
837: IGS_PS_VER CV,
838: IGS_CA_INST CI,
839: IGS_CA_INST CI2
840: WHERE SPT.PERSON_ID = :1
841: AND SPT.PROGRAM_CD = CV.COURSE_CD
842: AND SPT.PROGRAM_VERSION = CV.VERSION_NUMBER
843: AND CV.COURSE_TYPE IN (SELECT CV2.COURSE_TYPE
879: SPT.ATTENDANCE_TYPE,
880: SPT.FEE_CAT,
881: SPT.CLASS_STANDING_ID
882: FROM IGS_EN_SPA_TERMS SPT,
883: IGS_CA_INST CI,
884: IGS_CA_INST CI2
885: WHERE SPT.PERSON_ID = :1
886: AND SPT.PROGRAM_CD = :2
887: AND CI2.CAL_TYPE = SPT.TERM_CAL_TYPE
880: SPT.FEE_CAT,
881: SPT.CLASS_STANDING_ID
882: FROM IGS_EN_SPA_TERMS SPT,
883: IGS_CA_INST CI,
884: IGS_CA_INST CI2
885: WHERE SPT.PERSON_ID = :1
886: AND SPT.PROGRAM_CD = :2
887: AND CI2.CAL_TYPE = SPT.TERM_CAL_TYPE
888: AND CI2.SEQUENCE_NUMBER = SPT.TERM_SEQUENCE_NUMBER
977: c_forward_gap_exists t_ref_cur;
978:
979: v_forward_gap_exists_stmt VARCHAR2(4000);
980:
981: vc_curr_cal_type IGS_CA_INST.CAL_TYPE%TYPE;
982: vn_curr_sequence_number IGS_CA_INST.SEQUENCE_NUMBER%TYPE;
983: vc_next_cal_type IGS_CA_INST.CAL_TYPE%TYPE;
984: vn_next_sequence_number IGS_CA_INST.SEQUENCE_NUMBER%TYPE;
985:
978:
979: v_forward_gap_exists_stmt VARCHAR2(4000);
980:
981: vc_curr_cal_type IGS_CA_INST.CAL_TYPE%TYPE;
982: vn_curr_sequence_number IGS_CA_INST.SEQUENCE_NUMBER%TYPE;
983: vc_next_cal_type IGS_CA_INST.CAL_TYPE%TYPE;
984: vn_next_sequence_number IGS_CA_INST.SEQUENCE_NUMBER%TYPE;
985:
986: vn_person_id IGS_EN_SPA_TERMS.PERSON_ID%TYPE;
979: v_forward_gap_exists_stmt VARCHAR2(4000);
980:
981: vc_curr_cal_type IGS_CA_INST.CAL_TYPE%TYPE;
982: vn_curr_sequence_number IGS_CA_INST.SEQUENCE_NUMBER%TYPE;
983: vc_next_cal_type IGS_CA_INST.CAL_TYPE%TYPE;
984: vn_next_sequence_number IGS_CA_INST.SEQUENCE_NUMBER%TYPE;
985:
986: vn_person_id IGS_EN_SPA_TERMS.PERSON_ID%TYPE;
987: vc_program_cd IGS_EN_SPA_TERMS.PROGRAM_CD%TYPE;
980:
981: vc_curr_cal_type IGS_CA_INST.CAL_TYPE%TYPE;
982: vn_curr_sequence_number IGS_CA_INST.SEQUENCE_NUMBER%TYPE;
983: vc_next_cal_type IGS_CA_INST.CAL_TYPE%TYPE;
984: vn_next_sequence_number IGS_CA_INST.SEQUENCE_NUMBER%TYPE;
985:
986: vn_person_id IGS_EN_SPA_TERMS.PERSON_ID%TYPE;
987: vc_program_cd IGS_EN_SPA_TERMS.PROGRAM_CD%TYPE;
988: vn_program_version IGS_EN_SPA_TERMS.PROGRAM_VERSION%TYPE;
994: vc_attendance_type IGS_EN_SPA_TERMS.ATTENDANCE_TYPE%TYPE;
995: vc_fee_cat IGS_EN_SPA_TERMS.FEE_CAT%TYPE;
996: vc_class_standing_id IGS_EN_SPA_TERMS.CLASS_STANDING_ID%TYPE;
997:
998: CURSOR c_forward_gap (cp_next_cal_type IGS_CA_INST.CAL_TYPE%TYPE,
999: cp_next_sequence_number IGS_CA_INST.SEQUENCE_NUMBER%TYPE,
1000: cp_curr_cal_type IGS_CA_INST.CAL_TYPE%TYPE,
1001: cp_curr_sequence_number IGS_CA_INST.SEQUENCE_NUMBER%TYPE)
1002: IS
995: vc_fee_cat IGS_EN_SPA_TERMS.FEE_CAT%TYPE;
996: vc_class_standing_id IGS_EN_SPA_TERMS.CLASS_STANDING_ID%TYPE;
997:
998: CURSOR c_forward_gap (cp_next_cal_type IGS_CA_INST.CAL_TYPE%TYPE,
999: cp_next_sequence_number IGS_CA_INST.SEQUENCE_NUMBER%TYPE,
1000: cp_curr_cal_type IGS_CA_INST.CAL_TYPE%TYPE,
1001: cp_curr_sequence_number IGS_CA_INST.SEQUENCE_NUMBER%TYPE)
1002: IS
1003: SELECT ci.cal_type, ci.sequence_number,
996: vc_class_standing_id IGS_EN_SPA_TERMS.CLASS_STANDING_ID%TYPE;
997:
998: CURSOR c_forward_gap (cp_next_cal_type IGS_CA_INST.CAL_TYPE%TYPE,
999: cp_next_sequence_number IGS_CA_INST.SEQUENCE_NUMBER%TYPE,
1000: cp_curr_cal_type IGS_CA_INST.CAL_TYPE%TYPE,
1001: cp_curr_sequence_number IGS_CA_INST.SEQUENCE_NUMBER%TYPE)
1002: IS
1003: SELECT ci.cal_type, ci.sequence_number,
1004: ci.start_dt, ci.alternate_code, ci.description
997:
998: CURSOR c_forward_gap (cp_next_cal_type IGS_CA_INST.CAL_TYPE%TYPE,
999: cp_next_sequence_number IGS_CA_INST.SEQUENCE_NUMBER%TYPE,
1000: cp_curr_cal_type IGS_CA_INST.CAL_TYPE%TYPE,
1001: cp_curr_sequence_number IGS_CA_INST.SEQUENCE_NUMBER%TYPE)
1002: IS
1003: SELECT ci.cal_type, ci.sequence_number,
1004: ci.start_dt, ci.alternate_code, ci.description
1005: FROM IGS_CA_INST ci,
1001: cp_curr_sequence_number IGS_CA_INST.SEQUENCE_NUMBER%TYPE)
1002: IS
1003: SELECT ci.cal_type, ci.sequence_number,
1004: ci.start_dt, ci.alternate_code, ci.description
1005: FROM IGS_CA_INST ci,
1006: IGS_CA_INST ci2,
1007: IGS_CA_INST ci3,
1008: IGS_CA_TYPE ct,
1009: IGS_CA_STAT cs,
1002: IS
1003: SELECT ci.cal_type, ci.sequence_number,
1004: ci.start_dt, ci.alternate_code, ci.description
1005: FROM IGS_CA_INST ci,
1006: IGS_CA_INST ci2,
1007: IGS_CA_INST ci3,
1008: IGS_CA_TYPE ct,
1009: IGS_CA_STAT cs,
1010: IGS_CA_INST_REL cr,
1003: SELECT ci.cal_type, ci.sequence_number,
1004: ci.start_dt, ci.alternate_code, ci.description
1005: FROM IGS_CA_INST ci,
1006: IGS_CA_INST ci2,
1007: IGS_CA_INST ci3,
1008: IGS_CA_TYPE ct,
1009: IGS_CA_STAT cs,
1010: IGS_CA_INST_REL cr,
1011: IGS_CA_INST_REL cr2,
1006: IGS_CA_INST ci2,
1007: IGS_CA_INST ci3,
1008: IGS_CA_TYPE ct,
1009: IGS_CA_STAT cs,
1010: IGS_CA_INST_REL cr,
1011: IGS_CA_INST_REL cr2,
1012: IGS_CA_TYPE ct2
1013: WHERE ci.cal_type = cr.sub_cal_type
1014: AND ci.sequence_number = cr.sub_ci_sequence_number
1007: IGS_CA_INST ci3,
1008: IGS_CA_TYPE ct,
1009: IGS_CA_STAT cs,
1010: IGS_CA_INST_REL cr,
1011: IGS_CA_INST_REL cr2,
1012: IGS_CA_TYPE ct2
1013: WHERE ci.cal_type = cr.sub_cal_type
1014: AND ci.sequence_number = cr.sub_ci_sequence_number
1015: AND cr.sup_cal_type = ct2.cal_type
1030: AND cs.cal_status = ci.cal_status
1031: AND cs.s_cal_status = 'ACTIVE'
1032: ORDER BY ci.start_dt ASC;
1033:
1034: CURSOR c_other_recs ( cp_term_cal_type IGS_CA_INST.CAL_TYPE%TYPE,
1035: cp_term_sequence_number IGS_CA_INST.SEQUENCE_NUMBER%TYPE,
1036: cp_program_cd IGS_PS_VER.COURSE_CD%TYPE) IS
1037: SELECT *
1038: FROM IGS_EN_SPA_TERMS
1031: AND cs.s_cal_status = 'ACTIVE'
1032: ORDER BY ci.start_dt ASC;
1033:
1034: CURSOR c_other_recs ( cp_term_cal_type IGS_CA_INST.CAL_TYPE%TYPE,
1035: cp_term_sequence_number IGS_CA_INST.SEQUENCE_NUMBER%TYPE,
1036: cp_program_cd IGS_PS_VER.COURSE_CD%TYPE) IS
1037: SELECT *
1038: FROM IGS_EN_SPA_TERMS
1039: WHERE person_id = p_term_rec.person_id
1060: CI.CAL_TYPE,
1061: CI.SEQUENCE_NUMBER
1062: FROM IGS_EN_SPA_TERMS SPT,
1063: IGS_PS_VER CV,
1064: IGS_CA_INST CI,
1065: IGS_CA_INST CI2
1066: WHERE SPT.PERSON_ID = :1
1067: AND SPT.PROGRAM_CD = CV.COURSE_CD
1068: AND SPT.PROGRAM_VERSION = CV.VERSION_NUMBER
1061: CI.SEQUENCE_NUMBER
1062: FROM IGS_EN_SPA_TERMS SPT,
1063: IGS_PS_VER CV,
1064: IGS_CA_INST CI,
1065: IGS_CA_INST CI2
1066: WHERE SPT.PERSON_ID = :1
1067: AND SPT.PROGRAM_CD = CV.COURSE_CD
1068: AND SPT.PROGRAM_VERSION = CV.VERSION_NUMBER
1069: AND CV.COURSE_TYPE IN (SELECT CV2.COURSE_TYPE
1086: CI2.SEQUENCE_NUMBER,
1087: CI.CAL_TYPE,
1088: CI.SEQUENCE_NUMBER
1089: FROM IGS_EN_SPA_TERMS SPT,
1090: IGS_CA_INST CI,
1091: IGS_CA_INST CI2
1092: WHERE SPT.PERSON_ID = :1
1093: AND SPT.PROGRAM_CD = :2
1094: AND CI2.CAL_TYPE = SPT.TERM_CAL_TYPE
1087: CI.CAL_TYPE,
1088: CI.SEQUENCE_NUMBER
1089: FROM IGS_EN_SPA_TERMS SPT,
1090: IGS_CA_INST CI,
1091: IGS_CA_INST CI2
1092: WHERE SPT.PERSON_ID = :1
1093: AND SPT.PROGRAM_CD = :2
1094: AND CI2.CAL_TYPE = SPT.TERM_CAL_TYPE
1095: AND CI2.SEQUENCE_NUMBER = SPT.TERM_SEQUENCE_NUMBER
1180: p_program_changed IN BOOLEAN DEFAULT FALSE
1181: )
1182: AS
1183: cursor c_valid_term IS
1184: SELECT 'x' FROM IGS_CA_INST ca, IGS_CA_TYPE ct
1185: WHERE ca.cal_type = p_term_cal_type
1186: AND ca.sequence_number = p_term_sequence_number
1187: AND ca.cal_type = ct.cal_type
1188: and ct.s_cal_cat = 'LOAD';
1307: p_term_rec IN EN_SPAT_REC_TYPE%TYPE) AS
1308:
1309: CURSOR c_future_key_terms IS
1310: SELECT spat.rowid, spat.*
1311: FROM igs_en_spa_terms spat, igs_ca_inst ca1, igs_ca_inst ca2
1312: WHERE ca1.cal_type = spat.term_cal_type
1313: AND ca1.sequence_number = spat.term_sequence_number
1314: AND ca2.cal_type = p_term_cal_type
1315: AND ca2.sequence_number = p_term_sequence_number
1318: AND spat.key_program_flag = 'Y';
1319:
1320: CURSOR c_latest_term_in_acad IS -- check if the latest term in acad is for this program
1321: SELECT spat.rowid, spat.program_cd, term_cal_type, term_sequence_number
1322: FROM igs_en_spa_terms spat, igs_ca_inst ca, igs_ca_inst_rel cir
1323: WHERE spat.person_id = p_person_id
1324: AND ca.cal_type = spat.term_cal_type
1325: AND ca.sequence_number = spat.term_sequence_number
1326: AND cir.sub_cal_type = p_term_cal_type
1338:
1339: CURSOR c_dest_fut_terms IS
1340: SELECT spat.rowid,spat.*
1341: FROM IGS_EN_SPA_TERMS spat,
1342: IGS_CA_INST_REL cr,
1343: IGS_CA_INST_REL cr2,
1344: IGS_CA_INST ci,
1345: IGS_PS_VER cv
1346: WHERE cr.sub_cal_type = p_term_cal_type
1339: CURSOR c_dest_fut_terms IS
1340: SELECT spat.rowid,spat.*
1341: FROM IGS_EN_SPA_TERMS spat,
1342: IGS_CA_INST_REL cr,
1343: IGS_CA_INST_REL cr2,
1344: IGS_CA_INST ci,
1345: IGS_PS_VER cv
1346: WHERE cr.sub_cal_type = p_term_cal_type
1347: AND cr.sub_ci_sequence_number = p_term_sequence_number
1340: SELECT spat.rowid,spat.*
1341: FROM IGS_EN_SPA_TERMS spat,
1342: IGS_CA_INST_REL cr,
1343: IGS_CA_INST_REL cr2,
1344: IGS_CA_INST ci,
1345: IGS_PS_VER cv
1346: WHERE cr.sub_cal_type = p_term_cal_type
1347: AND cr.sub_ci_sequence_number = p_term_sequence_number
1348: AND cr.sup_cal_type = cr2.sup_cal_type
1352: AND ci.cal_type = cr2.sub_cal_type
1353: AND ci.sequence_number = cr2.sub_ci_sequence_number
1354: AND ci.start_dt >=
1355: (SELECT start_dt
1356: FROM IGS_CA_INST
1357: WHERE cal_type = cr.sub_cal_type
1358: AND sequence_number = cr.sub_ci_sequence_number)
1359: AND ci.sequence_number <> p_term_sequence_number
1360: AND cv.course_cd = spat.program_cd
1360: AND cv.course_cd = spat.program_cd
1361: AND cv.version_number = spat.program_version
1362: AND spat.program_cd = p_program_cd;
1363:
1364: l_term_cal IGS_CA_INST.CAL_TYPE%TYPE;
1365: l_term_seq IGS_CA_INST.SEQUENCE_NUMBER%TYPE;
1366: l_message_name VARCHAR2(2000);
1367: l_term_rec EN_SPAT_REC_TYPE%TYPE;
1368: l_rowid ROWID;
1361: AND cv.version_number = spat.program_version
1362: AND spat.program_cd = p_program_cd;
1363:
1364: l_term_cal IGS_CA_INST.CAL_TYPE%TYPE;
1365: l_term_seq IGS_CA_INST.SEQUENCE_NUMBER%TYPE;
1366: l_message_name VARCHAR2(2000);
1367: l_term_rec EN_SPAT_REC_TYPE%TYPE;
1368: l_rowid ROWID;
1369: l_term_id IGS_EN_SPA_TERMS.term_record_id%TYPE;
1529: SELECT
1530: SPAT.fee_cat
1531: FROM
1532: IGS_EN_SPA_TERMS SPAT,
1533: IGS_CA_INST CI1,
1534: IGS_CA_INST CI2
1535: WHERE
1536: SPAT.PERSON_ID = p_person_id AND
1537: spat.program_cd = p_program_cd AND
1530: SPAT.fee_cat
1531: FROM
1532: IGS_EN_SPA_TERMS SPAT,
1533: IGS_CA_INST CI1,
1534: IGS_CA_INST CI2
1535: WHERE
1536: SPAT.PERSON_ID = p_person_id AND
1537: spat.program_cd = p_program_cd AND
1538: SPAT.TERM_CAL_TYPE = CI2.CAL_TYPE AND
1540: CI1.CAL_TYPE = p_term_cal_type AND
1541: CI1.SEQUENCE_NUMBER = p_term_sequence_number AND
1542: CI1.START_DT > CI2.START_DT AND
1543: SPAT.ACAD_CAL_TYPE IN (SELECT SUP_CAL_TYPE
1544: FROM IGS_CA_INST_REL
1545: WHERE SUB_CAL_TYPE = CI1.CAL_TYPE
1546: AND SUB_CI_SEQUENCE_NUMBER = CI1.SEQUENCE_NUMBER)
1547: ORDER BY CI2.START_DT DESC;
1548:
1607: SELECT
1608: SPAT.class_standing_id
1609: FROM
1610: IGS_EN_SPA_TERMS SPAT,
1611: IGS_CA_INST CI1,
1612: IGS_CA_INST CI2
1613: WHERE
1614: SPAT.PERSON_ID = p_person_id AND
1615: spat.program_cd = p_program_cd AND
1608: SPAT.class_standing_id
1609: FROM
1610: IGS_EN_SPA_TERMS SPAT,
1611: IGS_CA_INST CI1,
1612: IGS_CA_INST CI2
1613: WHERE
1614: SPAT.PERSON_ID = p_person_id AND
1615: spat.program_cd = p_program_cd AND
1616: SPAT.TERM_CAL_TYPE = CI2.CAL_TYPE AND
1618: CI1.CAL_TYPE = p_term_cal_type AND
1619: CI1.SEQUENCE_NUMBER = p_term_sequence_number AND
1620: CI1.START_DT > CI2.START_DT AND
1621: SPAT.ACAD_CAL_TYPE IN (SELECT SUP_CAL_TYPE
1622: FROM IGS_CA_INST_REL
1623: WHERE SUB_CAL_TYPE = CI1.CAL_TYPE
1624: AND SUB_CI_SEQUENCE_NUMBER = CI1.SEQUENCE_NUMBER)
1625: ORDER BY CI2.START_DT DESC;
1626:
1685: SELECT
1686: SPAT.coo_id
1687: FROM
1688: IGS_EN_SPA_TERMS SPAT,
1689: IGS_CA_INST CI1,
1690: IGS_CA_INST CI2
1691: WHERE
1692: SPAT.PERSON_ID = p_person_id AND
1693: spat.program_cd = p_program_cd AND
1686: SPAT.coo_id
1687: FROM
1688: IGS_EN_SPA_TERMS SPAT,
1689: IGS_CA_INST CI1,
1690: IGS_CA_INST CI2
1691: WHERE
1692: SPAT.PERSON_ID = p_person_id AND
1693: spat.program_cd = p_program_cd AND
1694: SPAT.TERM_CAL_TYPE = CI2.CAL_TYPE AND
1696: CI1.CAL_TYPE = p_term_cal_type AND
1697: CI1.SEQUENCE_NUMBER = p_term_sequence_number AND
1698: CI1.START_DT > CI2.START_DT AND
1699: SPAT.ACAD_CAL_TYPE IN (SELECT SUP_CAL_TYPE
1700: FROM IGS_CA_INST_REL
1701: WHERE SUB_CAL_TYPE = CI1.CAL_TYPE
1702: AND SUB_CI_SEQUENCE_NUMBER = CI1.SEQUENCE_NUMBER)
1703: ORDER BY CI2.START_DT DESC;
1704:
1763: SELECT
1764: SPAT.attendance_type
1765: FROM
1766: IGS_EN_SPA_TERMS SPAT,
1767: IGS_CA_INST CI1,
1768: IGS_CA_INST CI2
1769: WHERE
1770: SPAT.PERSON_ID = p_person_id AND
1771: spat.program_cd = p_program_cd AND
1764: SPAT.attendance_type
1765: FROM
1766: IGS_EN_SPA_TERMS SPAT,
1767: IGS_CA_INST CI1,
1768: IGS_CA_INST CI2
1769: WHERE
1770: SPAT.PERSON_ID = p_person_id AND
1771: spat.program_cd = p_program_cd AND
1772: SPAT.TERM_CAL_TYPE = CI2.CAL_TYPE AND
1774: CI1.CAL_TYPE = p_term_cal_type AND
1775: CI1.SEQUENCE_NUMBER = p_term_sequence_number AND
1776: CI1.START_DT > CI2.START_DT AND
1777: SPAT.ACAD_CAL_TYPE IN (SELECT SUP_CAL_TYPE
1778: FROM IGS_CA_INST_REL
1779: WHERE SUB_CAL_TYPE = CI1.CAL_TYPE
1780: AND SUB_CI_SEQUENCE_NUMBER = CI1.SEQUENCE_NUMBER)
1781: ORDER BY CI2.START_DT DESC;
1782:
1841: SELECT
1842: SPAT.attendance_mode
1843: FROM
1844: IGS_EN_SPA_TERMS SPAT,
1845: IGS_CA_INST CI1,
1846: IGS_CA_INST CI2
1847: WHERE
1848: SPAT.PERSON_ID = p_person_id AND
1849: spat.program_cd = p_program_cd AND
1842: SPAT.attendance_mode
1843: FROM
1844: IGS_EN_SPA_TERMS SPAT,
1845: IGS_CA_INST CI1,
1846: IGS_CA_INST CI2
1847: WHERE
1848: SPAT.PERSON_ID = p_person_id AND
1849: spat.program_cd = p_program_cd AND
1850: SPAT.TERM_CAL_TYPE = CI2.CAL_TYPE AND
1852: CI1.CAL_TYPE = p_term_cal_type AND
1853: CI1.SEQUENCE_NUMBER = p_term_sequence_number AND
1854: CI1.START_DT > CI2.START_DT AND
1855: SPAT.ACAD_CAL_TYPE IN (SELECT SUP_CAL_TYPE
1856: FROM IGS_CA_INST_REL
1857: WHERE SUB_CAL_TYPE = CI1.CAL_TYPE
1858: AND SUB_CI_SEQUENCE_NUMBER = CI1.SEQUENCE_NUMBER)
1859: ORDER BY CI2.START_DT DESC;
1860:
1919: SELECT
1920: SPAT.location_cd
1921: FROM
1922: IGS_EN_SPA_TERMS SPAT,
1923: IGS_CA_INST CI1,
1924: IGS_CA_INST CI2
1925: WHERE
1926: SPAT.PERSON_ID = p_person_id AND
1927: spat.program_cd = p_program_cd AND
1920: SPAT.location_cd
1921: FROM
1922: IGS_EN_SPA_TERMS SPAT,
1923: IGS_CA_INST CI1,
1924: IGS_CA_INST CI2
1925: WHERE
1926: SPAT.PERSON_ID = p_person_id AND
1927: spat.program_cd = p_program_cd AND
1928: SPAT.TERM_CAL_TYPE = CI2.CAL_TYPE AND
1930: CI1.CAL_TYPE = p_term_cal_type AND
1931: CI1.SEQUENCE_NUMBER = p_term_sequence_number AND
1932: CI1.START_DT > CI2.START_DT AND
1933: SPAT.ACAD_CAL_TYPE IN (SELECT SUP_CAL_TYPE
1934: FROM IGS_CA_INST_REL
1935: WHERE SUB_CAL_TYPE = CI1.CAL_TYPE
1936: AND SUB_CI_SEQUENCE_NUMBER = CI1.SEQUENCE_NUMBER)
1937: ORDER BY CI2.START_DT DESC;
1938:
1997: SELECT
1998: SPAT.program_version
1999: FROM
2000: IGS_EN_SPA_TERMS SPAT,
2001: IGS_CA_INST CI1,
2002: IGS_CA_INST CI2
2003: WHERE
2004: SPAT.PERSON_ID = p_person_id AND
2005: spat.program_cd = p_program_cd AND
1998: SPAT.program_version
1999: FROM
2000: IGS_EN_SPA_TERMS SPAT,
2001: IGS_CA_INST CI1,
2002: IGS_CA_INST CI2
2003: WHERE
2004: SPAT.PERSON_ID = p_person_id AND
2005: spat.program_cd = p_program_cd AND
2006: SPAT.TERM_CAL_TYPE = CI2.CAL_TYPE AND
2008: CI1.CAL_TYPE = p_term_cal_type AND
2009: CI1.SEQUENCE_NUMBER = p_term_sequence_number AND
2010: CI1.START_DT > CI2.START_DT AND
2011: SPAT.ACAD_CAL_TYPE IN (SELECT SUP_CAL_TYPE
2012: FROM IGS_CA_INST_REL
2013: WHERE SUB_CAL_TYPE = CI1.CAL_TYPE
2014: AND SUB_CI_SEQUENCE_NUMBER = CI1.SEQUENCE_NUMBER)
2015: ORDER BY CI2.START_DT DESC;
2016:
2056:
2057: PROCEDURE delete_terms_for_program(
2058: p_person_id IN NUMBER,
2059: p_program_cd IN VARCHAR2) AS
2060: l_term_cal_type IGS_CA_INST.cal_type%TYPE;
2061: l_term_sequence_number IGS_CA_INST.sequence_number%TYPE;
2062: l_acad_cal_type IGS_CA_INST.cal_type%TYPE;
2063: l_acad_ci_seq_num IGS_CA_INST.sequence_number%TYPE;
2064: l_load_ci_alt_code IGS_CA_INST.alternate_code%TYPE;
2057: PROCEDURE delete_terms_for_program(
2058: p_person_id IN NUMBER,
2059: p_program_cd IN VARCHAR2) AS
2060: l_term_cal_type IGS_CA_INST.cal_type%TYPE;
2061: l_term_sequence_number IGS_CA_INST.sequence_number%TYPE;
2062: l_acad_cal_type IGS_CA_INST.cal_type%TYPE;
2063: l_acad_ci_seq_num IGS_CA_INST.sequence_number%TYPE;
2064: l_load_ci_alt_code IGS_CA_INST.alternate_code%TYPE;
2065: l_load_ci_start_dt DATE;
2058: p_person_id IN NUMBER,
2059: p_program_cd IN VARCHAR2) AS
2060: l_term_cal_type IGS_CA_INST.cal_type%TYPE;
2061: l_term_sequence_number IGS_CA_INST.sequence_number%TYPE;
2062: l_acad_cal_type IGS_CA_INST.cal_type%TYPE;
2063: l_acad_ci_seq_num IGS_CA_INST.sequence_number%TYPE;
2064: l_load_ci_alt_code IGS_CA_INST.alternate_code%TYPE;
2065: l_load_ci_start_dt DATE;
2066: l_load_ci_end_dt DATE;
2059: p_program_cd IN VARCHAR2) AS
2060: l_term_cal_type IGS_CA_INST.cal_type%TYPE;
2061: l_term_sequence_number IGS_CA_INST.sequence_number%TYPE;
2062: l_acad_cal_type IGS_CA_INST.cal_type%TYPE;
2063: l_acad_ci_seq_num IGS_CA_INST.sequence_number%TYPE;
2064: l_load_ci_alt_code IGS_CA_INST.alternate_code%TYPE;
2065: l_load_ci_start_dt DATE;
2066: l_load_ci_end_dt DATE;
2067: l_message_name VARCHAR2(200);
2060: l_term_cal_type IGS_CA_INST.cal_type%TYPE;
2061: l_term_sequence_number IGS_CA_INST.sequence_number%TYPE;
2062: l_acad_cal_type IGS_CA_INST.cal_type%TYPE;
2063: l_acad_ci_seq_num IGS_CA_INST.sequence_number%TYPE;
2064: l_load_ci_alt_code IGS_CA_INST.alternate_code%TYPE;
2065: l_load_ci_start_dt DATE;
2066: l_load_ci_end_dt DATE;
2067: l_message_name VARCHAR2(200);
2068: CURSOR c_future_terms(cp_term_cal_type IGS_CA_INST.cal_type%TYPE, cp_term_seq_num IGS_CA_INST.sequence_number%TYPE) IS
2064: l_load_ci_alt_code IGS_CA_INST.alternate_code%TYPE;
2065: l_load_ci_start_dt DATE;
2066: l_load_ci_end_dt DATE;
2067: l_message_name VARCHAR2(200);
2068: CURSOR c_future_terms(cp_term_cal_type IGS_CA_INST.cal_type%TYPE, cp_term_seq_num IGS_CA_INST.sequence_number%TYPE) IS
2069: select spat.rowid, spat.person_id, spat.program_cd, spat.term_cal_type,spat.term_sequence_number, spat.fee_cat
2070: from igs_en_spa_terms spat, igs_ca_inst c1, igs_ca_inst c2
2071: where person_id = p_person_id
2072: and program_cd = p_program_cd
2066: l_load_ci_end_dt DATE;
2067: l_message_name VARCHAR2(200);
2068: CURSOR c_future_terms(cp_term_cal_type IGS_CA_INST.cal_type%TYPE, cp_term_seq_num IGS_CA_INST.sequence_number%TYPE) IS
2069: select spat.rowid, spat.person_id, spat.program_cd, spat.term_cal_type,spat.term_sequence_number, spat.fee_cat
2070: from igs_en_spa_terms spat, igs_ca_inst c1, igs_ca_inst c2
2071: where person_id = p_person_id
2072: and program_cd = p_program_cd
2073: and term_cal_type = c1.cal_type
2074: and term_sequence_number = c1.sequence_number
2264: AND version_number = spat.program_version)
2265: AND spat.term_cal_type = p_term_cal_type
2266: AND spat.term_sequence_number = p_term_sequence_number;
2267:
2268: CURSOR ci_start_dt (cp_cal_type IGS_CA_INST.CAL_TYPE%TYPE,
2269: cp_ci_Sequence_number IGS_CA_INST.SEQUENCE_NUMBER%TYPE) IS
2270: SELECT start_dt
2271: FROM IGS_CA_INST
2272: WHERE cal_type = cp_cal_type
2265: AND spat.term_cal_type = p_term_cal_type
2266: AND spat.term_sequence_number = p_term_sequence_number;
2267:
2268: CURSOR ci_start_dt (cp_cal_type IGS_CA_INST.CAL_TYPE%TYPE,
2269: cp_ci_Sequence_number IGS_CA_INST.SEQUENCE_NUMBER%TYPE) IS
2270: SELECT start_dt
2271: FROM IGS_CA_INST
2272: WHERE cal_type = cp_cal_type
2273: AND sequence_number = cp_ci_Sequence_number;
2267:
2268: CURSOR ci_start_dt (cp_cal_type IGS_CA_INST.CAL_TYPE%TYPE,
2269: cp_ci_Sequence_number IGS_CA_INST.SEQUENCE_NUMBER%TYPE) IS
2270: SELECT start_dt
2271: FROM IGS_CA_INST
2272: WHERE cal_type = cp_cal_type
2273: AND sequence_number = cp_ci_Sequence_number;
2274:
2275: CURSOR cur_c3prev (cp_person_id igs_en_spa_terms.person_id%TYPE,
2273: AND sequence_number = cp_ci_Sequence_number;
2274:
2275: CURSOR cur_c3prev (cp_person_id igs_en_spa_terms.person_id%TYPE,
2276: cp_program_type igs_ps_ver.course_type%TYPE,
2277: cp_start_dt IGS_CA_INST.START_DT%TYPE) IS
2278: SELECT
2279: SPAT.PROGRAM_CD
2280: FROM
2281: IGS_EN_SPA_TERMS SPAT,
2278: SELECT
2279: SPAT.PROGRAM_CD
2280: FROM
2281: IGS_EN_SPA_TERMS SPAT,
2282: IGS_CA_INST CI2
2283: WHERE
2284: SPAT.PERSON_ID = cp_person_id AND
2285: cp_program_type = (SELECT course_type
2286: FROM igs_ps_ver cv
2305: l_profile VARCHAR2(1);
2306: l_program_type IGS_PS_VER.COURSE_TYPE%TYPE;
2307: l_check VARCHAR2(1);
2308: l_program_cd IGS_EN_STDNT_PS_ATT.COURSE_CD%TYPE;
2309: l_start_dt IGS_CA_INST.START_DT%TYPE;
2310:
2311: BEGIN
2312:
2313: -- check whether Career profile is set or not
2409: WHERE person_id = p_person_id;
2410:
2411: -- cursor to fetch number of terms containing key program for given
2412: -- person id, term cal type and sequence number
2413: CURSOR c_count_key (cp_term_cal_type IGS_CA_INST.CAL_TYPE%TYPE,
2414: cp_term_sequence_number IGS_CA_INST.SEQUENCE_NUMBER%TYPE)
2415: IS
2416: SELECT COUNT(key_program_flag)
2417: FROM IGS_EN_SPA_TERMS
2410:
2411: -- cursor to fetch number of terms containing key program for given
2412: -- person id, term cal type and sequence number
2413: CURSOR c_count_key (cp_term_cal_type IGS_CA_INST.CAL_TYPE%TYPE,
2414: cp_term_sequence_number IGS_CA_INST.SEQUENCE_NUMBER%TYPE)
2415: IS
2416: SELECT COUNT(key_program_flag)
2417: FROM IGS_EN_SPA_TERMS
2418: WHERE person_id = p_person_id
2460:
2461: ----------------------------------------------------------------------*/
2462:
2463: --local variables
2464: l_load_cal_type IGS_CA_INST.CAL_TYPE%TYPE;
2465: l_load_ci_seq_num IGS_CA_INST.SEQUENCE_NUMBER%TYPE;
2466: l_load_ci_alt_code IGS_CA_INST.ALTERNATE_CODE%TYPE;
2467: l_load_ci_start_dt DATE;
2468: l_load_ci_end_dt DATE;
2461: ----------------------------------------------------------------------*/
2462:
2463: --local variables
2464: l_load_cal_type IGS_CA_INST.CAL_TYPE%TYPE;
2465: l_load_ci_seq_num IGS_CA_INST.SEQUENCE_NUMBER%TYPE;
2466: l_load_ci_alt_code IGS_CA_INST.ALTERNATE_CODE%TYPE;
2467: l_load_ci_start_dt DATE;
2468: l_load_ci_end_dt DATE;
2469: l_message_name VARCHAR2(80);
2462:
2463: --local variables
2464: l_load_cal_type IGS_CA_INST.CAL_TYPE%TYPE;
2465: l_load_ci_seq_num IGS_CA_INST.SEQUENCE_NUMBER%TYPE;
2466: l_load_ci_alt_code IGS_CA_INST.ALTERNATE_CODE%TYPE;
2467: l_load_ci_start_dt DATE;
2468: l_load_ci_end_dt DATE;
2469: l_message_name VARCHAR2(80);
2470:
2513: -- given academic calendar
2514: CURSOR cur_c1(p_cur_term_cal IN VARCHAR2,
2515: p_cur_term_seq_num IN NUMBER) IS
2516: SELECT RPAD(ci2.sequence_number,6,' ') || ci2.cal_Type
2517: FROM igs_ca_inst ci2,
2518: igs_ca_inst_rel cir,
2519: igs_ca_type ct,
2520: igs_ca_inst ci1,
2521: igs_ca_stat cs
2514: CURSOR cur_c1(p_cur_term_cal IN VARCHAR2,
2515: p_cur_term_seq_num IN NUMBER) IS
2516: SELECT RPAD(ci2.sequence_number,6,' ') || ci2.cal_Type
2517: FROM igs_ca_inst ci2,
2518: igs_ca_inst_rel cir,
2519: igs_ca_type ct,
2520: igs_ca_inst ci1,
2521: igs_ca_stat cs
2522: WHERE
2516: SELECT RPAD(ci2.sequence_number,6,' ') || ci2.cal_Type
2517: FROM igs_ca_inst ci2,
2518: igs_ca_inst_rel cir,
2519: igs_ca_type ct,
2520: igs_ca_inst ci1,
2521: igs_ca_stat cs
2522: WHERE
2523: ci2.cal_type = cir.sub_cal_type AND
2524: ci2.sequence_number = cir.sub_ci_sequence_number AND
2532: ci2.start_dt < ci1.start_dt
2533: ORDER BY ci2.start_dt DESC;
2534:
2535: --local variables
2536: l_load_cal_type IGS_CA_INST.CAL_TYPE%TYPE;
2537: l_load_ci_seq_num IGS_CA_INST.SEQUENCE_NUMBER%TYPE;
2538: l_load_ci_alt_code IGS_CA_INST.ALTERNATE_CODE%TYPE;
2539: l_load_ci_start_dt DATE;
2540: l_load_ci_end_dt DATE;
2533: ORDER BY ci2.start_dt DESC;
2534:
2535: --local variables
2536: l_load_cal_type IGS_CA_INST.CAL_TYPE%TYPE;
2537: l_load_ci_seq_num IGS_CA_INST.SEQUENCE_NUMBER%TYPE;
2538: l_load_ci_alt_code IGS_CA_INST.ALTERNATE_CODE%TYPE;
2539: l_load_ci_start_dt DATE;
2540: l_load_ci_end_dt DATE;
2541: l_message_name VARCHAR2(80);
2534:
2535: --local variables
2536: l_load_cal_type IGS_CA_INST.CAL_TYPE%TYPE;
2537: l_load_ci_seq_num IGS_CA_INST.SEQUENCE_NUMBER%TYPE;
2538: l_load_ci_alt_code IGS_CA_INST.ALTERNATE_CODE%TYPE;
2539: l_load_ci_start_dt DATE;
2540: l_load_ci_end_dt DATE;
2541: l_message_name VARCHAR2(80);
2542:
2583: -- given academic calendar
2584: CURSOR cur_c1(p_cur_term_cal IN VARCHAR2,
2585: p_cur_term_seq_num IN NUMBER) IS
2586: SELECT RPAD(ci2.sequence_number,6,' ') || ci2.cal_type
2587: FROM igs_ca_inst ci2,
2588: igs_ca_inst_rel cir,
2589: igs_ca_type ct,
2590: igs_ca_inst ci1,
2591: igs_ca_stat cs
2584: CURSOR cur_c1(p_cur_term_cal IN VARCHAR2,
2585: p_cur_term_seq_num IN NUMBER) IS
2586: SELECT RPAD(ci2.sequence_number,6,' ') || ci2.cal_type
2587: FROM igs_ca_inst ci2,
2588: igs_ca_inst_rel cir,
2589: igs_ca_type ct,
2590: igs_ca_inst ci1,
2591: igs_ca_stat cs
2592: WHERE
2586: SELECT RPAD(ci2.sequence_number,6,' ') || ci2.cal_type
2587: FROM igs_ca_inst ci2,
2588: igs_ca_inst_rel cir,
2589: igs_ca_type ct,
2590: igs_ca_inst ci1,
2591: igs_ca_stat cs
2592: WHERE
2593: ci2.cal_type = cir.sub_cal_type AND
2594: ci2.sequence_number = cir.sub_ci_sequence_number AND
2602: ci2.start_dt > ci1.start_dt
2603: ORDER BY ci2.start_dt;
2604:
2605: --local variables
2606: l_load_cal_type IGS_CA_INST.CAL_TYPE%TYPE;
2607: l_load_ci_seq_num IGS_CA_INST.SEQUENCE_NUMBER%TYPE;
2608: l_load_ci_alt_code IGS_CA_INST.ALTERNATE_CODE%TYPE;
2609: l_load_ci_start_dt DATE;
2610: l_load_ci_end_dt DATE;
2603: ORDER BY ci2.start_dt;
2604:
2605: --local variables
2606: l_load_cal_type IGS_CA_INST.CAL_TYPE%TYPE;
2607: l_load_ci_seq_num IGS_CA_INST.SEQUENCE_NUMBER%TYPE;
2608: l_load_ci_alt_code IGS_CA_INST.ALTERNATE_CODE%TYPE;
2609: l_load_ci_start_dt DATE;
2610: l_load_ci_end_dt DATE;
2611: l_message_name VARCHAR2(80);
2604:
2605: --local variables
2606: l_load_cal_type IGS_CA_INST.CAL_TYPE%TYPE;
2607: l_load_ci_seq_num IGS_CA_INST.SEQUENCE_NUMBER%TYPE;
2608: l_load_ci_alt_code IGS_CA_INST.ALTERNATE_CODE%TYPE;
2609: l_load_ci_start_dt DATE;
2610: l_load_ci_end_dt DATE;
2611: l_message_name VARCHAR2(80);
2612:
2652: SELECT
2653: SPAT.acad_cal_type
2654: FROM
2655: IGS_EN_SPA_TERMS SPAT,
2656: IGS_CA_INST CI1,
2657: IGS_CA_INST CI2
2658: WHERE
2659: SPAT.PERSON_ID = p_person_id AND
2660: spat.program_cd = p_program_cd AND
2653: SPAT.acad_cal_type
2654: FROM
2655: IGS_EN_SPA_TERMS SPAT,
2656: IGS_CA_INST CI1,
2657: IGS_CA_INST CI2
2658: WHERE
2659: SPAT.PERSON_ID = p_person_id AND
2660: spat.program_cd = p_program_cd AND
2661: SPAT.TERM_CAL_TYPE = CI2.CAL_TYPE AND
2663: CI1.CAL_TYPE = p_term_cal_type AND
2664: CI1.SEQUENCE_NUMBER = p_term_sequence_number AND
2665: CI1.START_DT > CI2.START_DT AND
2666: SPAT.ACAD_CAL_TYPE IN (SELECT SUP_CAL_TYPE
2667: FROM IGS_CA_INST_REL
2668: WHERE SUB_CAL_TYPE = CI1.CAL_TYPE
2669: AND SUB_CI_SEQUENCE_NUMBER = CI1.SEQUENCE_NUMBER)
2670: ORDER BY CI2.START_DT DESC;
2671: