[Home] [Help]
PACKAGE BODY: APPS.IGS_AD_SS_GEN_001
Source
1 PACKAGE BODY IGS_AD_SS_GEN_001 AS
2 /* $Header: IGSADB8B.pls 120.36 2006/06/14 12:08:38 arvsrini ship $ */
3 /******************************************************************
4 Created By: tapash.ray
5 Date Created By: 11-DEC-2002
6 Purpose: Transfer API for transfer of data from SS Staging Table to IGS tables
7 Known limitations,enhancements,remarks:
8 Change History
9 Who When What
10 apadegal 21-Oct-2005 added set_adm_secur_on and set_adm_secur_off for enabling/disabling security for admin while app submission.
11 abhiskum 25-Aug-2005 Added procedures DELETE_PERSTMT_ATTACHMENT_UP, ADD_PERSTMT_ATTACHMENT_UP for
12 Update Submitted Applications Page in SS Admin Flow; and
13 DELETE_PERSTMT_ATTACHMENT, ADD_PERSTMT_ATTACHMENT for Supporting Evidence Page
14 in SS Applicant Floe, for the IGS.M build
15 abhiskum 21-Mar-2005 Removed call to Update_Appl_Ofres_Inst() in process_OneStop2 for Bug 4234911.
16 pathipat 17-Jun-2003 Enh 2831587 FI210 Credit Card Fund Transfer build
17 Modified procedure update_ad_offer_resp_and_fee() and call to
18 igs_ad_app_req_pkg.insert_row in insert_application_fee()
19 smadathi 29-Nov-2002 Enh#2584986.Modifications done in procedures update_ad_offer_resp_and_fee.
20 vvutukur 26-Nov-2002 Enh#2584986.Modifications done in procedures update_ad_offer_resp_and_fee,
21 insert_application_fee.
22 nshee 29-Aug-2002 Bug 2395510 added 6 columns as part of deferments build
23 knag 29-OCT-2002 Bug 2647482 removed local procedure insert_acad_honors and its calls
24 stammine 10-Jun-2005 Added procedures at for IGS.M build
25 ******************************************************************/
26 g_debug_level CONSTANT NUMBER := FND_LOG.G_CURRENT_RUNTIME_LEVEL;
27
28 --Fwd Declarations
29 PROCEDURE logHeader(p_proc_name VARCHAR2, p_mode VARCHAR2);
30 PROCEDURE logDetail(p_debug_msg VARCHAR2, p_mode VARCHAR2);
31 FUNCTION create_application_detail
32 (p_person_id IN igs_pe_typ_instances_all.person_id%TYPE,
33 p_adm_appl_number IN igs_pe_typ_instances_all.admission_appl_number%TYPE,
34 p_ss_adm_appl_number IN NUMBER) RETURN BOOLEAN;
35 FUNCTION create_application(p_appl_rec IN igs_ss_adm_appl_stg%ROWTYPE,
36 p_message_name OUT NOCOPY VARCHAR2,
37 p_return_status OUT NOCOPY VARCHAR2,
38 p_adm_appl_number OUT NOCOPY NUMBER)
39 RETURN BOOLEAN;
40 FUNCTION create_program(p_appl_rec IN igs_ss_adm_appl_stg%ROWTYPE,
41 p_message_name OUT NOCOPY VARCHAR2,
42 p_return_status OUT NOCOPY VARCHAR2,
43 p_adm_appl_number IN NUMBER) RETURN BOOLEAN;
44 PROCEDURE update_person_type(p_sequence_number IN igs_pe_typ_instances_all.sequence_number%TYPE,
45 p_nominated_course_cd IN igs_pe_typ_instances_all.nominated_course_cd%TYPE,
46 p_person_id IN igs_pe_typ_instances_all.person_id%TYPE,
47 p_adm_appl_number IN igs_pe_typ_instances_all.admission_appl_number%TYPE);
48 --dhan
49 PROCEDURE insert_othinst(p_person_id IN NUMBER,
50 p_adm_appl_id IN NUMBER,
51 p_admission_appl_number IN NUMBER);
52 --dhan
53 --modified insert_unit_set_dtls, doesn't have major code 1, 2 SS Bug 2622488
54 PROCEDURE insert_unit_set_dtls(p_sequence_number IN igs_ad_unit_sets.sequence_number%TYPE,
55 p_nominated_course_cd IN igs_ad_unit_sets.nominated_course_cd%TYPE,
56 p_person_id IN igs_ad_unit_sets.person_id%TYPE,
57 p_adm_appl_number IN igs_ad_unit_sets.admission_appl_number%TYPE,
58 p_ss_adm_appl_id IN igs_ss_app_pgm_stg.ss_adm_appl_id%TYPE);
59 -- ,p_unit_set_cd IN igs_ad_unit_sets.unit_set_cd%TYPE
60 -- ,p_ver_no IN igs_ad_unit_sets.version_number%TYPE);
61 --added by nshee during build for Applicant-BOSS SS Bug 2622488
62 PROCEDURE insert_acad_interest(p_person_id IN igs_ad_acad_interest.person_id%TYPE,
63 p_adm_appl_id IN igs_ss_ad_acadin_stg.ss_adm_appl_id%TYPE,
64 p_adm_appl_number IN igs_ad_acad_interest.admission_appl_number%TYPE);
65 PROCEDURE insert_applicant_intent(p_person_id IN igs_ad_app_intent.person_id%TYPE,
66 p_adm_appl_id IN igs_ss_ad_appint_stg.ss_adm_appl_id%TYPE,
67 p_adm_appl_number IN igs_ad_app_intent.admission_appl_number%TYPE);
68 PROCEDURE insert_spl_talent(p_person_id IN igs_ad_spl_talents.person_id%TYPE,
69 p_adm_appl_id IN igs_ss_ad_spltal_stg.ss_adm_appl_id%TYPE,
70 p_adm_appl_number IN igs_ad_spl_talents.admission_appl_number%TYPE);
71 PROCEDURE insert_special_interest(p_person_id IN igs_ad_spl_interests.person_id%TYPE,
72 p_adm_appl_id IN igs_ss_ad_splint_stg.ss_adm_appl_id%TYPE,
73 p_adm_appl_number IN igs_ad_spl_interests.admission_appl_number%TYPE);
74 --added by nshee during build for Applicant-BOSS SS Bug 2622488
75 PROCEDURE insert_edugoal_details(p_person_id IN igs_ad_edugoal.person_id%TYPE,
76 p_adm_appl_number IN igs_ad_edugoal.admission_appl_number%TYPE,
77 p_ss_adm_appl_id IN igs_ss_app_pgm_stg.ss_adm_appl_id%TYPE,
78 p_nominated_course_cd IN igs_ad_edugoal.nominated_course_cd%TYPE,
79 p_sequence_number IN igs_ad_edugoal.sequence_number%TYPE); --this procedure has been modified, nshee Bug 2622488
80 PROCEDURE transfer_attachment(p_person_id IN IGS_SS_APPL_PERSTAT.person_id%TYPE,
81 p_ss_adm_appl_id IN IGS_SS_APPL_PERSTAT.ss_adm_appl_id%TYPE,
82 p_admission_appl_number IN IGS_AD_APPL_PERSTAT.admission_appl_number%TYPE,
83 x_return_status OUT NOCOPY VARCHAR2);
84 -- Bug # 2389273 [ APPLICATION FEE SAVED IN SS IS NOT SAVED TO FORMS ]
85 --** added by nshee
86 PROCEDURE insert_application_fee(p_person_id IN igs_ad_app_req.person_id%TYPE,
87 p_adm_appl_id IN igs_ss_app_req_stg.ss_adm_appl_id%TYPE,
88 p_adm_appl_number IN igs_ad_app_req.admission_appl_number%TYPE);
89 --** end of addtion by nshee
90
91
92 -- begin apadegal
93 -- Procedure to set the admin security on
94 PROCEDURE set_adm_secur_on IS
95 BEGIN
96 IGS_AD_SS_GEN_001.g_admin_security_on := 'Y';
97 END;
98 -- proceudre to set the admin security off
99 PROCEDURE set_adm_secur_off IS
100 BEGIN
101 IGS_AD_SS_GEN_001.g_admin_security_on := 'N';
102 END;
103 -- end apadegal
104
105
106 --Main Proc to transfer data from Staging to IGS tables.
107 PROCEDURE transfer_data(x_person_id IN NUMBER,
108 x_application_id IN NUMBER,
109 x_message_name OUT NOCOPY VARCHAR2,
110 x_return_status OUT NOCOPY VARCHAR2,
111 p_adm_appl_number OUT NOCOPY NUMBER) AS
112
113 /*****************************************************************************************
114 Created By: [email protected]
115 Date Created : 11-DEC-2001
116 Purpose: 1.Main Procedure for
117 a.Creating an admission application
118 b.Creating Programs for the Application Created.
119 2.If transfer is successful , it returns a success indicator to the calling routine(SS Application in this case)
120 3.In Case of failure, it returns a failed indicator.
121 4.On Successful Transfer of data , deletes the Staging table Data.
122 Known limitations,enhancements,remarks:
123 Change History
124 Who When What
125 *****************************************************************************************/
126
127 l_message_name VARCHAR2(2000);
128 l_return_status VARCHAR2(2);
129 l_admission_appl_number IGS_AD_APPL.admission_appl_number%TYPE;
130 l_msg_index NUMBER;
131 l_msg_count NUMBER;
132 l_msg_data VARCHAR2(2000);
133 p_hash_msg_name_text_type_tab igs_ad_gen_016.g_msg_name_text_type_table;
134
135 --Cursor Declaration
136 CURSOR c_adm_appl IS
137 SELECT *
138 FROM igs_ss_adm_appl_stg
139 WHERE person_id = x_person_id
140 AND ss_adm_appl_id = x_application_id;
141
142 c_adm_appl_rec c_adm_appl%ROWTYPE;
143
144 BEGIN
145 logHeader('transfer_data', 'S');
146 -- Set the G_CALLED_FROM to 'S' to skip the commit happening in Tracking item completion job
147 IGS_AD_TI_COMP.G_CALLED_FROM := 'S';
148 l_msg_index := IGS_GE_MSG_STACK.count_msg;
149
150 OPEN c_adm_appl;
151 FETCH c_adm_appl
152 INTO c_adm_appl_rec;
153 CLOSE c_adm_appl;
154 SAVEPOINT sp_save_point1;
155 c_adm_appl_rec.APPL_DATE := SYSDATE;
156 IF create_application(p_appl_rec => c_adm_appl_rec,
157 p_message_name => l_message_name,
158 p_return_status => l_return_status,
159 p_adm_appl_number => l_admission_appl_number) THEN
160 IF create_program(p_appl_rec => c_adm_appl_rec,
161 p_message_name => l_message_name,
162 p_return_status => l_return_status,
163 p_adm_appl_number => l_admission_appl_number) THEN
164 IF create_application_detail(p_person_id => c_adm_appl_rec.person_id,
165 p_adm_appl_number => l_admission_appl_number,
166 p_ss_adm_appl_number => c_adm_appl_rec.ss_adm_appl_id) THEN
167 logDetail('create_program ' || ' is successul ' ||
168 ' Person Id : ' ||
169 IGS_GE_NUMBER.TO_CANN(c_adm_appl_rec.person_id),
170 'S');
171 END IF;
172
173 ELSE
174 --Program import failed, Set the message and return, in calling proc , check for ret_stat , if 'E' set message sent from here
175 IF FND_MSG_PUB.Count_Msg < 1 AND l_message_name IS NOT NULL THEN
176 FND_MESSAGE.SET_NAME('IGS', l_message_name);
177 IGS_GE_MSG_STACK.ADD;
178 END IF;
179 x_message_name := l_message_name;
180 x_return_status := l_return_status;
181 RETURN;
182 END IF;
183 ELSE
184 --Application import failed, Set the message and return, in calling proc , check for ret_stat , if 'E' set message sent from here
185 IF FND_MSG_PUB.Count_Msg < 1 AND l_message_name IS NOT NULL THEN
186 FND_MESSAGE.SET_NAME('IGS', l_message_name);
187 IGS_GE_MSG_STACK.ADD;
188 END IF;
189 x_message_name := l_message_name;
190 x_return_status := l_return_status;
191 RETURN;
192 END IF;
193
194
195 -- Removing the call from this procedure. Calling Explicitly in Terms and Detials page of Self Service
196 /* delete_ss_appl_stg(x_message_name => l_message_name,
197 x_return_status => l_return_status,
198 p_adm_appl_number => x_application_id,
199 p_person_id => x_person_id);
200 */
201 IF l_return_status NOT IN ('E') OR l_return_status IS NULL THEN
202 x_return_status := 'S'; --Indicate Success, To be used in Calling Proc , if Status = 'S' , then commit data.
203 p_adm_appl_number := l_admission_appl_number; -- Return the Admission Application Number as OUT NOCOPY Parameter to the calling procedure
204 END IF;
205 EXCEPTION
206 --Main Loop Exception
207 WHEN OTHERS THEN
208 logDetail('Exception from transfer_data, ' || SQLERRM, 'S');
209 x_return_status := 'E';
210
211 IF l_message_name <> 'IGS_SC_POLICY_EXCEPTION' AND l_message_name <> 'IGS_GE_UNHANDLED_EXP' AND
212 FND_MSG_PUB.Count_Msg < 1 THEN
213 Fnd_Message.Set_Name('IGS','IGS_GE_UNHANDLED_EXP');
214 Fnd_Message.Set_Token('NAME','IGS_AD_SS_GEN_001.transfer_data -'||SQLERRM);
215 IGS_GE_MSG_STACK.ADD;
216 x_message_name := 'IGS_GE_UNHANDLED_EXP';
217 END IF;
218 App_Exception.Raise_Exception;
219 -- App_Exception.Raise_Exception; x_return_status is an OUT NOCOPY parameter and will not show the value set, for it if the exception is raised. So commenting out NOCOPY Bug# 2224624
220 END transfer_data;
221
222 --This Function Creates an Application and Returns TRUE if Application is created.
223 FUNCTION create_application(p_appl_rec IN igs_ss_adm_appl_stg%ROWTYPE,
224 p_message_name OUT NOCOPY VARCHAR2,
225 p_return_status OUT NOCOPY VARCHAR2,
226 p_adm_appl_number OUT NOCOPY NUMBER)
227 RETURN BOOLEAN IS
228
229 /*****************************************************************************************
230 Created By: [email protected]
231 Date Created : 11-DEC-2001
232 Purpose: 1.Creates an admission application
233 2.If Application Creation is successful ,returns boolean true
234 3.In Case of failure, return boolean False.
235 4.Flow:
236 a.Check if Mandatory Params are Present
237 b.Insert admission application, using Common API Call IGS_AD_GEN_014.insert_adm_appl
238 Known limitations,enhancements,remarks:
239 Change History
240 Who When What
241 rrengara 11-jul-2002 Added UK Parameters choice_number and routre pref to insert_adm_appl procedure for bug 2448262 (D) and 2455053 (P)
242 knag 21-Nov-2002 Added alt_appl_id param to call to insert_adm_appl for bug 2664410
243 pbondugu 28-Mar-2003 Passed funding_source as NULL to procedure call IGS_AD_GEN_014.insert_adm_appl_prog_inst
244 *****************************************************************************************/
245
246 --Local Var Declaration
247 l_message_name VARCHAR2(2000);
248 l_adm_appl_status IGS_AD_APPL_STAT.adm_appl_status%TYPE;
249 l_adm_fee_status IGS_AD_FEE_STAT.adm_fee_status%TYPE;
250 l_admission_appl_number IGS_AD_APPL.admission_appl_number%TYPE;
251
252 BEGIN
253 --Main Begin
254
255 logHeader('create_application', 'S');
256
257 ----------------------------------------
258 -- Check if Mandatory Params are Present
259 ----------------------------------------
260 IF p_appl_rec.acad_cal_type IS NULL OR
261 p_appl_rec.acad_cal_seq_number IS NULL OR
262 p_appl_rec.adm_cal_type IS NULL OR
263 p_appl_rec.adm_cal_seq_number IS NULL THEN
264
265 p_message_name := 'IGS_SS_SEM_NOT_SUFFICI';
266 p_return_status := 'E';
267 logDetail('Failed in Create Application, Insufficient Sem Args', 'S');
268 RETURN FALSE;
269 END IF;
270
271 IF p_appl_rec.person_id IS NULL OR p_appl_rec.appl_date IS NULL THEN
272 p_message_name := 'IGS_SS_PERSDTLS_NOT_SUFFICI';
273 p_return_status := 'E';
274 logDetail('Failed in Create Application, Insufficient Pers Dtls',
275 'S');
276 END IF;
277
278 ----------------------------------
279 -- Insert admission application
280 ----------------------------------
281 l_adm_appl_status := Igs_Ad_Gen_008.ADMP_GET_SYS_AAS('RECEIVED');
282 l_adm_fee_status := Igs_Ad_Gen_009.ADMP_GET_SYS_AFS('NOT-APPLIC');
283
284 logDetail('Before call to IGS_AD_GEN_014.insert_adm_appl', 'S');
285 IF IGS_AD_GEN_014.insert_adm_appl( -- IF :1
286 p_person_id => p_appl_rec.person_id,
287 p_appl_dt => p_appl_rec.appl_date,
288 p_acad_cal_type => p_appl_rec.acad_cal_type,
289 p_acad_ci_sequence_number => p_appl_rec.acad_cal_seq_number,
290 p_adm_cal_type => p_appl_rec.adm_cal_type,
291 p_adm_ci_sequence_number => p_appl_rec.adm_cal_seq_number,
292 p_admission_cat => p_appl_rec.admission_cat,
293 p_s_admission_process_type => p_appl_rec.s_adm_process_type,
294 p_adm_appl_status => l_adm_appl_status,
295 p_adm_fee_status => l_adm_fee_status, --IN/OUT
296 p_tac_appl_ind => 'N',
297 p_adm_appl_number => l_admission_appl_number, --OUT
298 p_message_name => l_message_name, --OUT
299 p_spcl_grp_1 => p_appl_rec.spcl_grp_1,
300 p_spcl_grp_2 => p_appl_rec.spcl_grp_2,
301 p_common_app => NULL,
302 p_application_type => p_appl_rec.admission_application_type,
303 p_choice_number => null,
304 p_routeb_pref => NULL,
305 p_alt_appl_id => NULL,
306 p_appl_fee_amt => p_appl_rec.appl_fee_amt) =
307 FALSE THEN
308
309 ROLLBACK TO sp_save_point1;
310 p_message_name := l_message_name;
311 p_return_status := 'E';
312 logDetail('IGS_AD_GEN_014.insert_adm_appl Failed,Returned with FALSE and Message: ' ||
313 l_message_name,
314 'S');
315 RETURN FALSE;
316 ELSE
317
318 p_adm_appl_number := l_admission_appl_number;
319 p_return_status := 'S';
320 RETURN TRUE;
321 END IF;
322
323 EXCEPTION
324 --Main Loop Exception
325 WHEN OTHERS THEN
326 p_return_status := 'E';
327 logDetail('Exception from create_application, MAIN LOOP: ' || SQLERRM, 'S');
328
329 IF l_message_name <> 'IGS_SC_POLICY_EXCEPTION' AND l_message_name <> 'IGS_GE_UNHANDLED_EXP' AND
330 FND_MSG_PUB.Count_Msg < 1 THEN
331 Fnd_Message.Set_Name('IGS','IGS_GE_UNHANDLED_EXP');
332 Fnd_Message.Set_Token('NAME','IGS_AD_SS_GEN_001.create_application -'||SQLERRM);
333 IGS_GE_MSG_STACK.ADD;
334 p_message_name := 'IGS_GE_UNHANDLED_EXP';
335 END IF;
336 App_Exception.Raise_Exception;
337
338 END create_application; --Main End
339
340 --This Function Creates Program Application and Program Application Instance
341 FUNCTION create_program(p_appl_rec IN igs_ss_adm_appl_stg%ROWTYPE,
342 p_message_name OUT NOCOPY VARCHAR2,
343 p_return_status OUT NOCOPY VARCHAR2,
344 p_adm_appl_number IN NUMBER) RETURN BOOLEAN AS
345 /*****************************************************************************************
346 Created By: [email protected]
347 Date Created : 11-DEC-2001
348 Purpose: 1.Creates a program for Application Created
349 2.If Program Creation/Import is successful ,returns boolean true
350 3.In Case of failure, return boolean False.
351 4.Flow:
352 a.Insert Admission Program Application (IGS_AD_GEN_014.insert_adm_appl_prog)
353 b.validate descriptive flexfield columns.
354 c.Insert Admission Program Application Instance (IGS_AD_GEN_014.insert_adm_appl_prog_inst)
355 d.Change Person Type To Applicant (update_person_type- Local Procedure Call)
356 e.Insert Unit Set Details (Major First Choice/Major Second Choice) (insert_unit_set_dtls- Local Procedure Call)
357 Known limitations,enhancements,remarks:
358 Change History
359 Who When What
360 *****************************************************************************************/
361
362 --Local Variable Declarations
363 l_message_name VARCHAR2(2000);
364 v_hecs_payment_option IGS_FI_HECS_PAY_OPTN.hecs_payment_option%TYPE;
365 l_adm_fee_status IGS_AD_FEE_STAT.adm_fee_status%TYPE;
366 v_sequence_number IGS_AD_PS_APPL_INST.sequence_number%TYPE;
367 l_return_type VARCHAR2(127);
368 l_error_code VARCHAR2(30);
369
370 CURSOR c_admappl_pgm IS
371 SELECT d.*, m.app_source_id
372 FROM igs_ss_adm_appl_stg m, IGS_SS_APP_PGM_STG d
373 WHERE m.ss_adm_appl_id = d.ss_adm_appl_id
374 AND m.ss_adm_appl_id = p_appl_rec.ss_adm_appl_id
375 AND m.person_id = p_appl_rec.person_id;
376 --Autoadmit
377 l_error_text VARCHAR2(2000);
378 l_error_code1 NUMBER;
379 BEGIN
380 logHeader('create_program', 'S');
381
382 FOR c_admappl_pgm_rec in c_admappl_pgm LOOP
383 ----------------------------------------
384 -- Insert Admission Program Application
385 ----------------------------------------
386 logDetail('Before call to IGS_AD_GEN_014.insert_adm_appl_prog', 'S');
387 IF IGS_AD_GEN_014.insert_adm_appl_prog(p_person_id => p_appl_rec.person_id,
388 p_adm_appl_number => p_adm_appl_number,
389 p_nominated_course_cd => c_admappl_pgm_rec.nominated_course_cd,
390 p_transfer_course_cd => NULL,
391 p_basis_for_admission_type => NULL,
392 p_admission_cd => NULL,
393 p_req_for_reconsideration_ind => 'N', -- (request for reconsideration indicator)
394 p_req_for_adv_standing_ind => 'N', -- (request for advanced standing indicator)
395 p_message_name => l_message_name) =
396 FALSE THEN
397
398 ROLLBACK TO sp_save_point1;
399 p_message_name:= l_message_name;
400 p_return_status := 'E';
401 logDetail('IGS_AD_GEN_014.insert_adm_appl_prog Failed,Returned with FALSE and Message: ' ||
402 l_message_name,
403 'S');
404 RETURN FALSE;
405 END IF;
406 v_hecs_payment_option := NULL;
407
408 -----------------------------------------------------------
409 --To validate descriptive flexfield columns.
410 --Need to be modified after DAP, to add attributes 21 to 40
411 --This call not needed as the data in DFF is already validated by the Page
412 -----------------------------------------------------------
413 /*logDetail('before call to IGS_AD_IMP_018.validate_desc_flex','S');
414 IF NOT IGS_AD_IMP_018.validate_desc_flex_40_cols
415 ( p_attribute_category => c_admappl_pgm_rec.attribute_category,
416 p_attribute1 => c_admappl_pgm_rec.attribute1,
417 p_attribute2 => c_admappl_pgm_rec.attribute2,
418 p_attribute3 => c_admappl_pgm_rec.attribute3,
419 p_attribute4 => c_admappl_pgm_rec.attribute4,
420 p_attribute5 => c_admappl_pgm_rec.attribute5,
421 p_attribute6 => c_admappl_pgm_rec.attribute6,
422 p_attribute7 => c_admappl_pgm_rec.attribute7,
423 p_attribute8 => c_admappl_pgm_rec.attribute8,
424 p_attribute9 => c_admappl_pgm_rec.attribute9,
425 p_attribute10 => c_admappl_pgm_rec.attribute10,
426 p_attribute11 => c_admappl_pgm_rec.attribute11,
427 p_attribute12 => c_admappl_pgm_rec.attribute12,
428 p_attribute13 => c_admappl_pgm_rec.attribute13,
429 p_attribute14 => c_admappl_pgm_rec.attribute14,
430 p_attribute15 => c_admappl_pgm_rec.attribute15,
431 p_attribute16 => c_admappl_pgm_rec.attribute16,
432 p_attribute17 => c_admappl_pgm_rec.attribute17,
433 p_attribute18 => c_admappl_pgm_rec.attribute18,
434 p_attribute19 => c_admappl_pgm_rec.attribute19,
435 p_attribute20 => c_admappl_pgm_rec.attribute20,
436 p_attribute21 => c_admappl_pgm_rec.attribute21,
437 p_attribute22 => c_admappl_pgm_rec.attribute22,
438 p_attribute23 => c_admappl_pgm_rec.attribute23,
439 p_attribute24 => c_admappl_pgm_rec.attribute24,
440 p_attribute25 => c_admappl_pgm_rec.attribute25,
441 p_attribute26 => c_admappl_pgm_rec.attribute26,
442 p_attribute27 => c_admappl_pgm_rec.attribute27,
443 p_attribute28 => c_admappl_pgm_rec.attribute28,
444 p_attribute29 => c_admappl_pgm_rec.attribute29,
445 p_attribute30 => c_admappl_pgm_rec.attribute30,
446 p_attribute31 => c_admappl_pgm_rec.attribute31,
447 p_attribute32 => c_admappl_pgm_rec.attribute32,
448 p_attribute33 => c_admappl_pgm_rec.attribute33,
449 p_attribute34 => c_admappl_pgm_rec.attribute34,
450 p_attribute35 => c_admappl_pgm_rec.attribute35,
451 p_attribute36 => c_admappl_pgm_rec.attribute36,
452 p_attribute37 => c_admappl_pgm_rec.attribute37,
453 p_attribute38 => c_admappl_pgm_rec.attribute38,
454 p_attribute39 => c_admappl_pgm_rec.attribute39,
455 p_attribute40 => c_admappl_pgm_rec.attribute40,
456 p_desc_flex_name => 'IGS_SS_APP_PGM_STG_FLEX'
457 ) THEN
458 ROLLBACK TO sp_save_point1;
459 p_message_name := 'IGS_AD_INVALID_DESC_FLEX';
460 p_return_status := 'E';
461 logDetail('IGS_AD_IMP_018.validate_desc_flex Failed,Returned with FALSE and Message: ' || p_message_name,'S');
462 RETURN FALSE;
463 END IF;
464 */
465 ------------------------------------------------
466 -- Insert Admission Program Application Instance
467 ------------------------------------------------
468 l_adm_fee_status := Igs_Ad_Gen_009.ADMP_GET_SYS_AFS('NOT-APPLIC');
469
470 -- Setting Person Mandatory Validations to False
471 IGS_PE_GEN_004.SKIP_MAND_DATA_VAL;
472
473
474 logDetail('before call to local proc insert_adm_appl_prog_inst', 'S');
475 IF IGS_AD_GEN_014.insert_adm_appl_prog_inst(p_person_id => p_appl_rec.person_id,
476 p_admission_appl_number => p_adm_appl_number,
477 p_acad_cal_type => p_appl_rec.acad_cal_type,
478 p_acad_ci_sequence_number => p_appl_rec.acad_cal_seq_number,
479 p_adm_cal_type => p_appl_rec.adm_cal_type,
480 p_adm_ci_sequence_number => p_appl_rec.adm_cal_seq_number,
481 p_admission_cat => p_appl_rec.admission_cat,
482 p_s_admission_process_type => p_appl_rec.s_adm_process_type,
483 p_appl_dt => p_appl_rec.appl_date,
484 p_adm_fee_status => l_adm_fee_status,
485 p_preference_number => c_admappl_pgm_rec.preference_number,
486 p_offer_dt => NULL,
487 p_offer_response_dt => NULL,
488 p_course_cd => c_admappl_pgm_rec.nominated_course_cd,
489 p_crv_version_number => c_admappl_pgm_rec.crv_version_number,
490 p_location_cd => c_admappl_pgm_rec.location_cd,
491 p_attendance_mode => c_admappl_pgm_rec.attendance_mode,
492 p_attendance_type => c_admappl_pgm_rec.attendance_type,
493 p_unit_set_cd => c_admappl_pgm_rec.final_unit_set_cd, --earlier passed as null, build 2622488 nshee
494 p_us_version_number => c_admappl_pgm_rec.final_unit_set_cd_ver, --earlier passed as null, build 2622488 nshee
495 p_fee_cat => NULL,
496 p_correspondence_cat => NULL,
497 p_enrolment_cat => NULL,
498 p_funding_source => NULL,
499 p_edu_goal_prior_enroll => c_admappl_pgm_rec.edu_goal_prior_enroll,
500 p_app_source_id => c_admappl_pgm_rec.app_source_id,
501 p_apply_for_finaid => c_admappl_pgm_rec.apply_for_finaid,
502 p_finaid_apply_date => c_admappl_pgm_rec.finaid_apply_date,
503 p_attribute_category => c_admappl_pgm_rec.attribute_category,
504 p_attribute1 => c_admappl_pgm_rec.attribute1,
505 p_attribute2 => c_admappl_pgm_rec.attribute2,
506 p_attribute3 => c_admappl_pgm_rec.attribute3,
507 p_attribute4 => c_admappl_pgm_rec.attribute4,
508 p_attribute5 => c_admappl_pgm_rec.attribute5,
509 p_attribute6 => c_admappl_pgm_rec.attribute6,
510 p_attribute7 => c_admappl_pgm_rec.attribute7,
511 p_attribute8 => c_admappl_pgm_rec.attribute8,
512 p_attribute9 => c_admappl_pgm_rec.attribute9,
513 p_attribute10 => c_admappl_pgm_rec.attribute10,
514 p_attribute11 => c_admappl_pgm_rec.attribute11,
515 p_attribute12 => c_admappl_pgm_rec.attribute12,
516 p_attribute13 => c_admappl_pgm_rec.attribute13,
517 p_attribute14 => c_admappl_pgm_rec.attribute14,
518 p_attribute15 => c_admappl_pgm_rec.attribute15,
519 p_attribute16 => c_admappl_pgm_rec.attribute16,
520 p_attribute17 => c_admappl_pgm_rec.attribute17,
521 p_attribute18 => c_admappl_pgm_rec.attribute18,
522 p_attribute19 => c_admappl_pgm_rec.attribute19,
523 p_attribute20 => c_admappl_pgm_rec.attribute20,
524 p_attribute21 => c_admappl_pgm_rec.attribute21,
525 p_attribute22 => c_admappl_pgm_rec.attribute22,
526 p_attribute23 => c_admappl_pgm_rec.attribute23,
527 p_attribute24 => c_admappl_pgm_rec.attribute24,
528 p_attribute25 => c_admappl_pgm_rec.attribute25,
529 p_attribute26 => c_admappl_pgm_rec.attribute26,
530 p_attribute27 => c_admappl_pgm_rec.attribute27,
531 p_attribute28 => c_admappl_pgm_rec.attribute28,
532 p_attribute29 => c_admappl_pgm_rec.attribute29,
533 p_attribute30 => c_admappl_pgm_rec.attribute30,
534 p_attribute31 => c_admappl_pgm_rec.attribute31,
535 p_attribute32 => c_admappl_pgm_rec.attribute32,
536 p_attribute33 => c_admappl_pgm_rec.attribute33,
537 p_attribute34 => c_admappl_pgm_rec.attribute34,
538 p_attribute35 => c_admappl_pgm_rec.attribute35,
539 p_attribute36 => c_admappl_pgm_rec.attribute36,
540 p_attribute37 => c_admappl_pgm_rec.attribute37,
541 p_attribute38 => c_admappl_pgm_rec.attribute38,
542 p_attribute39 => c_admappl_pgm_rec.attribute39,
543 p_attribute40 => c_admappl_pgm_rec.attribute40,
544 p_ss_application_id => NULL,
545 p_sequence_number => v_sequence_number,
546 p_return_type => l_return_type,
547 p_error_code => l_error_code,
548 p_message_name => l_message_name,
549 p_entry_status => c_admappl_pgm_rec.entry_status,
550 p_entry_level => c_admappl_pgm_rec.entry_level,
551 p_sch_apl_to_id => c_admappl_pgm_rec.sch_apl_to_id) =
552 FALSE THEN
553
554 ROLLBACK TO sp_save_point1;
555 p_message_name := l_message_name;
556 p_return_status := 'E';
557 logDetail('insert_adm_appl_prog_inst Failed,Returned with FALSE and Message: ' ||
558 l_message_name,
559 'S');
560 RETURN FALSE;
561 ELSE
562 -- insert_adm_appl_prog_inst Returns with TRUE , since Program is transferred, rest of the processing can proceed.
563
564 -----------------------------------------------------------------
565 -- Insert Unit Set Details (Major First Choice/Major Second Choice)
566 -----------------------------------------------------------------
567 /* IF c_admappl_pgm_rec.unit_set_1 IS NOT NULL THEN
568 insert_unit_set_dtls(p_sequence_number =>v_sequence_number
569 ,p_nominated_course_cd =>c_admappl_pgm_rec.nominated_course_cd
570 ,p_person_id =>p_appl_rec.person_id
571 ,p_adm_appl_number =>p_adm_appl_number
572 ,p_unit_set_cd =>c_admappl_pgm_rec.unit_set_1
573 ,p_ver_no =>c_admappl_pgm_rec.unit_set_1_ver_number);
574 END IF;
575
576 IF c_admappl_pgm_rec.unit_set_2 IS NOT NULL THEN
577 insert_unit_set_dtls(p_sequence_number =>v_sequence_number
578 ,p_nominated_course_cd =>c_admappl_pgm_rec.nominated_course_cd
579 ,p_person_id =>p_appl_rec.person_id
580 ,p_adm_appl_number =>p_adm_appl_number
581 ,p_unit_set_cd =>c_admappl_pgm_rec.unit_set_2
582 ,p_ver_no =>c_admappl_pgm_rec.unit_set_2_ver_number);
583 END IF;*/ --not needed anymore since Major1, Major2 are obsolete. build 2622488
584 ------------------------------------------------------------------
585 -- Insert EduGoal Details (Post Enroll) For The Appl Prog Instance
586 ------------------------------------------------------------------
587 IF c_admappl_pgm_rec.nominated_course_cd IS NOT NULL AND
588 v_sequence_number IS NOT NULL THEN
589 insert_edugoal_details(p_person_id => p_appl_rec.person_id,
590 p_adm_appl_number => p_adm_appl_number,
591 p_ss_adm_appl_id => c_admappl_pgm_rec.ss_adm_appl_id,
592 p_nominated_course_cd => c_admappl_pgm_rec.nominated_course_cd,
593 p_sequence_number => v_sequence_number);
594 insert_unit_set_dtls(p_person_id => p_appl_rec.person_id,
595 p_adm_appl_number => p_adm_appl_number,
596 p_nominated_course_cd => c_admappl_pgm_rec.nominated_course_cd,
597 p_sequence_number => v_sequence_number,
598 p_ss_adm_appl_id => c_admappl_pgm_rec.ss_adm_appl_id); --added this call build 2622488
599 END IF;
600 -- Call The assign requirment procedure and admission tracking completion Procedure *** Autoadmit
601 -- This single process will call both the procedure
602 IGS_AD_GEN_014.auto_assign_requirement(
603 p_person_id => p_appl_rec.person_id,
604 p_admission_appl_number => p_adm_appl_number,
605 p_course_cd => c_admappl_pgm_rec.nominated_course_cd,
606 p_sequence_number => v_sequence_number,
607 p_called_from => 'SS',
608 p_error_text => l_error_text,
609 p_error_code => l_error_code1
610 );
611
612 --Assign Qualification Types to application instance being submitted
613 IGS_AD_GEN_014.assign_qual_type(p_person_id => p_appl_rec.person_id,
614 p_admission_appl_number => p_adm_appl_number,
615 p_course_cd => c_admappl_pgm_rec.nominated_course_cd,
616 p_sequence_number => v_sequence_number
617 );
618 igs_ad_wf_001.wf_raise_event(p_person_id => p_appl_rec.person_id,
619 p_raised_for => 'SAC',
620 p_admission_appl_number => p_adm_appl_number,
621 p_nominated_course_cd =>c_admappl_pgm_rec.nominated_course_cd,
622 p_sequence_number => v_sequence_number
623 );
624
625 END IF; -- insert_adm_appl_prog_inst IF ends.
626 END LOOP; -- LOOP for Main Cursor Ends
627 RETURN TRUE; -- Reaches Here Means That All The Programs For The Application Has Been Imported To OSS
628 EXCEPTION
629 --Main Exception
630 WHEN OTHERS THEN
631 p_return_status := 'E';
632 logDetail('Exception from create_program, MAIN LOOP: ' || SQLERRM, 'S');
633
634 IF l_message_name <> 'IGS_SC_POLICY_EXCEPTION' AND l_message_name <> 'IGS_GE_UNHANDLED_EXP' AND
635 FND_MSG_PUB.Count_Msg < 1 THEN
636 Fnd_Message.Set_Name('IGS','IGS_GE_UNHANDLED_EXP');
637 Fnd_Message.Set_Token('NAME','IGS_AD_SS_GEN_001.create_program -'||SQLERRM);
638 IGS_GE_MSG_STACK.ADD;
639 p_message_name := 'IGS_GE_UNHANDLED_EXP';
640 END IF;
641 App_Exception.Raise_Exception;
642
643 END create_program;
644
645 PROCEDURE update_person_type(p_sequence_number IN igs_pe_typ_instances_all.sequence_number%TYPE,
646 p_nominated_course_cd IN igs_pe_typ_instances_all.nominated_course_cd%TYPE,
647 p_person_id IN igs_pe_typ_instances_all.person_id%TYPE,
648 p_adm_appl_number IN igs_pe_typ_instances_all.admission_appl_number%TYPE) AS
649
650 /*****************************************************************************************
651 Created By: [email protected]
652 Date Created : 11-DEC-2001
653 Purpose:
654 1. Updates Person Type to Applicant on Successful Import/Transfer of the Application/Prog/Prog Inst
655 2. Flow:
656 a.IGS_PE_TYP_INSTANCES_PKG.insert_row
657
658 Known limitations,enhancements,remarks:
659 Change History
660 Who When What
661 npalanis 10-JUN-2003 Bug:2923413 igs_pe_typ_instances_pkg.update_row call
662 modified for the new employment category column added in the table
663 *****************************************************************************************/
664
665 l_rowid VARCHAR2(25);
666 l_org_id NUMBER(15);
667 l_type_instance_id NUMBER;
668 l_person_type_code IGS_PE_PERSON_TYPES.person_type_code%TYPE;
669
670 CURSOR c_person_type_code(l_system_type IGS_PE_PERSON_TYPES.system_type%TYPE) IS
671 SELECT person_type_code
672 FROM igs_pe_person_types
673 WHERE system_type = l_system_type;
674 lv_mode VARCHAR2(1) DEFAULT 'R';
675 BEGIN
676 --Begin Local Loop 1
677 logHeader('transfer_data', 'S');
678 l_org_id := igs_ge_gen_003.get_org_id;
679
680 OPEN c_person_type_code('APPLICANT');
681 FETCH c_person_type_code
682 INTO l_person_type_code;
683 CLOSE c_person_type_code;
684 logDetail('Before call to IGS_PE_TYP_INSTANCES_PKG.insert_row', 'S');
685
686 -- Setting Person Mandatory Validations to False
687 IGS_PE_GEN_004.SKIP_MAND_DATA_VAL;
688
689
690 IF NVL(IGS_AD_SS_GEN_001.g_admin_security_on,'N') = 'Y'
691 THEN
692 lv_mode := 'S';
693 END IF;
694
695 IGS_PE_TYP_INSTANCES_PKG.insert_row(x_rowid => l_rowid,
696 x_org_id => l_org_id,
697 x_person_id => p_person_id,
698 x_course_cd => NULL,
699 x_type_instance_id => l_type_instance_id,
700 x_person_type_code => l_person_type_code,
701 x_cc_version_number => NULL,
702 x_funnel_status => NULL,
703 x_admission_appl_number => p_adm_appl_number,
704 x_nominated_course_cd => p_nominated_course_cd, --c_admappl_pgm_rec.nominated_course_cd,
705 x_ncc_version_number => NULL,
706 x_sequence_number => p_sequence_number,
707 x_start_date => SYSDATE,
708 x_end_date => NULL,
709 x_create_method => 'CREATE_APPL_INSTANCE',
710 x_ended_by => NULL,
711 x_end_method => NULL,
712 x_mode => lv_mode, -- enable security for Admin
713 x_emplmnt_category_code => null);
714 logDetail('Person_type Changed to APPLICANT for the person', 'S');
715 EXCEPTION
716 WHEN OTHERS THEN
717 logDetail('inside update_person_type' ||
718 'Exception from IGS_PE_TYP_INSTANCES_PKG.insert_row ' ||
719 SQLERRM || 'person_id : ' ||
720 IGS_GE_NUMBER.TO_CANN(p_person_id),
721 'S');
722 IF FND_MSG_PUB.Count_Msg < 1 THEN
723 Fnd_Message.Set_Name('IGS', 'IGS_GE_UNHANDLED_EXP');
724 Fnd_Message.Set_Token('NAME','IGS_AD_SS_GEN_001.update_person_type -'||SQLERRM);
725 IGS_GE_MSG_STACK.ADD;
726 END IF;
727 App_Exception.Raise_Exception;
728 END update_person_type;
729
730 PROCEDURE insert_unit_set_dtls(p_sequence_number IN igs_ad_unit_sets.sequence_number%TYPE,
731 p_nominated_course_cd IN igs_ad_unit_sets.nominated_course_cd%TYPE,
732 p_person_id IN igs_ad_unit_sets.person_id%TYPE,
733 p_adm_appl_number IN igs_ad_unit_sets.admission_appl_number%TYPE,
734 p_ss_adm_appl_id IN igs_ss_app_pgm_stg.ss_adm_appl_id%TYPE) AS
735 -- ,p_unit_set_cd IN igs_ad_unit_sets.unit_set_cd%TYPE
736 -- ,p_ver_no IN igs_ad_unit_sets.version_number%TYPE) AS
737 /*****************************************************************************************
738 Created By: [email protected]
739 Date Created : 11-DEC-2001
740 Purpose: 1. Inserts Unit Set Details (Major1/Major2)
741 FLOW: IGS_AD_UNIT_SETS_PKG.insert_row
742 Known limitations,enhancements,remarks:
743 Change History
744 Who When What
745 nshee 29-OCT-2002 Modified it, now it inserts data from desired unit sets and not the major1/major2.
746 *****************************************************************************************/
747 l_rowid VARCHAR2(25);
748 l_unit_set_id igs_ad_unit_sets.unit_set_id%TYPE;
749 l_rank igs_ad_unit_sets.rank%TYPE;
750 lv_mode VARCHAR2(1) DEFAULT 'R';
751 /*
752 CURSOR c_nxt_rank IS
753 SELECT MAX(rank), 0) + 1
754 FROM igs_ad_unit_sets
755 WHERE
756 person_id = p_person_id AND
757 admission_appl_number = p_adm_appl_number AND
758 nominated_course_cd = p_nominated_course_cd;
759 */
760
761 CURSOR c_des_unit_sets IS
762 SELECT unit_set_cd, version_number, rank
763 FROM igs_ss_ad_unitse_stg
764 WHERE ss_admappl_pgm_id =
765 (SELECT ss_admappl_pgm_id
766 FROM igs_ss_app_pgm_stg
767 WHERE ss_adm_appl_id = p_ss_adm_appl_id --p_adm_appl_number
768 AND nominated_course_cd = p_nominated_course_cd
769 AND person_id = p_person_id);
770 BEGIN
771 logHeader('insert_unit_set_dtls', 'S');
772
773 /*OPEN c_nxt_rank;
774 FETCH c_nxt_rank INTO l_rank;
775 CLOSE c_nxt_rank;*/
776
777 FOR c_des_unit_sets_rec IN c_des_unit_sets LOOP
778 IF c_des_unit_sets_rec.unit_set_cd IS NOT NULL THEN
779 logDetail('Before call to IGS_AD_UNIT_SETS_PKG.insert_row', 'S');
780 l_rowid := '';
781 l_unit_set_id := 0;
782
783
784 IF NVL(IGS_AD_SS_GEN_001.g_admin_security_on,'N') = 'Y'
785 THEN
786 lv_mode := 'S';
787 END IF;
788
789 IGS_AD_UNIT_SETS_PKG.insert_row(x_rowid => l_rowid,
790 x_unit_set_id => l_unit_set_id,
791 x_person_id => p_person_id,
792 x_admission_appl_number => p_adm_appl_number,
793 x_nominated_course_cd => p_nominated_course_cd,
794 x_sequence_number => p_sequence_number,
795 x_unit_set_cd => c_des_unit_sets_rec.unit_set_cd,
796 x_version_number => c_des_unit_sets_rec.version_number,
797 x_rank => c_des_unit_sets_rec.rank,
798 x_mode => lv_mode -- enable security for Admin
799 );
800 END IF;
801 END LOOP;
802 EXCEPTION
803 WHEN OTHERS THEN
804 logDetail('Inside insert_unit_set_dtls' ||
805 'Exception from IGS_AD_UNIT_SETS_PKG.insert_row ' ||
806 SQLERRM || 'person_id : ' ||
807 IGS_GE_NUMBER.TO_CANN(p_person_id),
808 'S');
809 IF FND_MSG_PUB.Count_Msg < 1 THEN
810 Fnd_Message.Set_Name('IGS', 'IGS_GE_UNHANDLED_EXP');
811 Fnd_Message.Set_Token('NAME','IGS_AD_SS_GEN_001.insert_unit_set_dtls -'||SQLERRM);
812 IGS_GE_MSG_STACK.ADD;
813 END IF;
814
815 App_Exception.Raise_Exception;
816 END insert_unit_set_dtls;
817
818 --added by nshee during build for Applicant-BOSS SS Bug 2622488
819 PROCEDURE insert_acad_interest(p_person_id IN igs_ad_acad_interest.person_id%TYPE,
820 p_adm_appl_id IN igs_ss_ad_acadin_stg.ss_adm_appl_id%TYPE,
821 p_adm_appl_number IN igs_ad_acad_interest.admission_appl_number%TYPE) AS
822 /*****************************************************************************************
823 Created By: [email protected]
824 Date Created : 11-DEC-2001
825 Purpose: 1. Inserts Academic Honors Details (For an Application)
826 FLOW: IGS_AD_ACAD_HONORS_PKG.insert_row
827 Known limitations,enhancements,remarks:
828 Change History
829 Who When What
830 *****************************************************************************************/
831
832 l_rowid VARCHAR2(25);
833 l_acad_interest_id igs_ad_acad_interest.acad_interest_id%TYPE;
834 lv_mode VARCHAR2(1) DEFAULT 'R';
835 CURSOR c_acad_interest IS
836 SELECT field_of_study
837 FROM igs_ss_ad_acadin_stg
838 WHERE ss_adm_appl_id = p_adm_appl_id;
839
840 BEGIN
841 logHeader('insert_acad_interest', 'S');
842 FOR c_acad_interest_rec IN c_acad_interest LOOP
843 IF c_acad_interest_rec.field_of_study IS NOT NULL THEN
844 logDetail('Before call to IGS_AD_ACAD_INTEREST_PKG.insert_row',
845 'S');
846 l_rowid := '';
847 l_acad_interest_id := 0;
848
849
850 IF NVL(IGS_AD_SS_GEN_001.g_admin_security_on,'N') = 'Y'
851 THEN
852 lv_mode := 'S';
853 END IF;
854
855
856 IGS_AD_ACAD_INTEREST_PKG.insert_row(x_rowid => l_rowid,
857 x_acad_interest_id => l_acad_interest_id,
858 x_person_id => p_person_id,
859 x_admission_appl_number => p_adm_appl_number,
860 x_field_of_study => c_acad_interest_rec.field_of_study,
861 x_mode => lv_mode -- enable security for Admin
862 );
863 END IF;
864 END LOOP;
865 EXCEPTION
866 WHEN OTHERS THEN
867
868 logDetail('Inside insert_acad_interest' ||
869 'Exception from IGS_AD_ACAD_INTEREST_PKG.insert_row ' ||
870 SQLERRM || 'person_id : ' ||
871 IGS_GE_NUMBER.TO_CANN(p_person_id),
872 'S');
873 IF FND_MSG_PUB.Count_Msg < 1 THEN
874 Fnd_Message.Set_Name('IGS', 'IGS_GE_UNHANDLED_EXP');
875 Fnd_Message.Set_Token('NAME','IGS_AD_SS_GEN_001.insert_acad_interest -'||SQLERRM);
876 IGS_GE_MSG_STACK.ADD;
877 END IF;
878 App_Exception.Raise_Exception;
879 END insert_acad_interest;
880
881 PROCEDURE insert_applicant_intent(p_person_id IN igs_ad_app_intent.person_id%TYPE,
882 p_adm_appl_id IN igs_ss_ad_appint_stg.ss_adm_appl_id%TYPE,
883 p_adm_appl_number IN igs_ad_app_intent.admission_appl_number%TYPE) AS
884 /*****************************************************************************************
885 Created By: [email protected]
886 Date Created : 11-DEC-2001
887 Purpose: 1. Inserts Academic Honors Details (For an Application)
888 FLOW: IGS_AD_ACAD_HONORS_PKG.insert_row
889 Known limitations,enhancements,remarks:
890 Change History
891 Who When What
892 *****************************************************************************************/
893
894 l_rowid VARCHAR2(25);
895 l_app_intent_id igs_ad_app_intent.app_intent_id%TYPE;
896 lv_mode VARCHAR2(1) DEFAULT 'R';
897
898 CURSOR c_applicant_intent IS
899 SELECT intent_type_id
900 FROM igs_ss_ad_appint_stg
901 WHERE ss_adm_appl_id = p_adm_appl_id;
902
903 BEGIN
904 logHeader('insert_applicant_intent', 'S');
905 FOR c_applicant_intent_rec IN c_applicant_intent LOOP
906 IF c_applicant_intent_rec.intent_type_id IS NOT NULL THEN
907 logDetail('Before call to IGS_AD_APP_INTENT_PKG.insert_row', 'S');
908 l_rowid := '';
909 l_app_intent_id := 0;
910
911 IF NVL(IGS_AD_SS_GEN_001.g_admin_security_on,'N') = 'Y'
912 THEN
913 lv_mode := 'S';
914 END IF;
915 IGS_AD_APP_INTENT_PKG.insert_row(x_rowid => l_rowid,
916 x_app_intent_id => l_app_intent_id,
917 x_person_id => p_person_id,
918 x_admission_appl_number => p_adm_appl_number,
919 x_intent_type_id => c_applicant_intent_rec.intent_type_id,
920 x_attribute_category => NULL,
921 x_attribute1 => NULL,
922 x_attribute2 => NULL,
923 x_attribute3 => NULL,
924 x_attribute4 => NULL,
925 x_attribute5 => NULL,
926 x_attribute6 => NULL,
927 x_attribute7 => NULL,
928 x_attribute8 => NULL,
929 x_attribute9 => NULL,
930 x_attribute10 => NULL,
931 x_attribute11 => NULL,
932 x_attribute12 => NULL,
933 x_attribute13 => NULL,
934 x_attribute14 => NULL,
935 x_attribute15 => NULL,
936 x_attribute16 => NULL,
937 x_attribute17 => NULL,
938 x_attribute18 => NULL,
939 x_attribute19 => NULL,
940 x_attribute20 => NULL,
941 x_mode => lv_mode -- enable security for Admin
942 );
943 END IF;
944 END LOOP;
945 EXCEPTION
946 WHEN OTHERS THEN
947 logDetail('Inside insert_applicant_intent' ||
948 'Exception from IGS_AD_APP_INTENT_PKG.insert_row ' ||
949 SQLERRM || 'person_id : ' ||
950 IGS_GE_NUMBER.TO_CANN(p_person_id),
951 'S');
952 IF FND_MSG_PUB.Count_Msg < 1 THEN
953 Fnd_Message.Set_Name('IGS', 'IGS_GE_UNHANDLED_EXP');
954 Fnd_Message.Set_Token('NAME','IGS_AD_SS_GEN_001.insert_applicant_intent -'||SQLERRM);
955 IGS_GE_MSG_STACK.ADD;
956 END IF;
957 App_Exception.Raise_Exception;
958 END insert_applicant_intent;
959
960 PROCEDURE insert_spl_talent(p_person_id IN igs_ad_spl_talents.person_id%TYPE,
961 p_adm_appl_id IN igs_ss_ad_spltal_stg.ss_adm_appl_id%TYPE,
962 p_adm_appl_number IN igs_ad_spl_talents.admission_appl_number%TYPE) AS
963 /*****************************************************************************************
964 Created By: [email protected]
965 Date Created : 11-DEC-2001
966 Purpose: 1. Inserts Academic Honors Details (For an Application)
967 FLOW: IGS_AD_ACAD_HONORS_PKG.insert_row
968 Known limitations,enhancements,remarks:
969 Change History
970 Who When What
971 *****************************************************************************************/
972
973 l_rowid VARCHAR2(25);
974 l_spl_talent_id igs_ad_spl_talents.spl_talent_id%TYPE;
975 lv_mode VARCHAR2(1) DEFAULT 'R';
976
977 CURSOR c_spl_talent IS
978 SELECT special_talent_type_id
979 FROM igs_ss_ad_spltal_stg
980 WHERE ss_adm_appl_id = p_adm_appl_id;
981
982 BEGIN
983 logHeader('insert_spl_talent', 'S');
984 FOR c_spl_talent_rec IN c_spl_talent LOOP
985 IF c_spl_talent_rec.special_talent_type_id IS NOT NULL THEN
986 logDetail('Before call to IGS_AD_SPL_TALENTS_PKG.insert_row', 'S');
987 l_rowid := '';
988 l_spl_talent_id := 0;
989
990
991 IF NVL(IGS_AD_SS_GEN_001.g_admin_security_on,'N') = 'Y'
992 THEN
993 lv_mode := 'S';
994 END IF;
995 IGS_AD_SPL_TALENTS_PKG.insert_row(x_rowid => l_rowid,
996 x_spl_talent_id => l_spl_talent_id,
997 x_person_id => p_person_id,
998 x_admission_appl_number => p_adm_appl_number,
999 x_special_talent_type_id => c_spl_talent_rec.special_talent_type_id,
1000 x_mode => lv_mode -- enable security for Admin
1001 );
1002 END IF;
1003 END LOOP;
1004 EXCEPTION
1005 WHEN OTHERS THEN
1006 logDetail('Inside insert_spl_talent' ||
1007 'Exception from IGS_AD_SPL_TALENTS_PKG.insert_row ' ||
1008 SQLERRM || 'person_id : ' ||
1009 IGS_GE_NUMBER.TO_CANN(p_person_id),
1010 'S');
1011 IF FND_MSG_PUB.Count_Msg < 1 THEN
1012 Fnd_Message.Set_Name('IGS', 'IGS_GE_UNHANDLED_EXP');
1013 Fnd_Message.Set_Token('NAME','IGS_AD_SS_GEN_001.insert_spl_talent -'||SQLERRM);
1014 IGS_GE_MSG_STACK.ADD;
1015 END IF;
1016 App_Exception.Raise_Exception;
1017 END insert_spl_talent;
1018
1019 PROCEDURE insert_special_interest(p_person_id IN igs_ad_spl_interests.person_id%TYPE,
1020 p_adm_appl_id IN igs_ss_ad_splint_stg.ss_adm_appl_id%TYPE,
1021 p_adm_appl_number IN igs_ad_spl_interests.admission_appl_number%TYPE) AS
1022 /*****************************************************************************************
1023 Created By: [email protected]
1024 Date Created : 11-DEC-2001
1025 Purpose: 1. Inserts Academic Honors Details (For an Application)
1026 FLOW: IGS_AD_ACAD_HONORS_PKG.insert_row
1027 Known limitations,enhancements,remarks:
1028 Change History
1029 Who When What
1030 *****************************************************************************************/
1031 l_rowid VARCHAR2(25);
1032 l_spl_interest_id igs_ad_spl_interests.spl_interest_id%TYPE;
1033 lv_mode VARCHAR2(1) DEFAULT 'R';
1034
1035 CURSOR c_special_interest IS
1036 SELECT special_interest_type_id
1037 FROM igs_ss_ad_splint_stg
1038 WHERE ss_adm_appl_id = p_adm_appl_id;
1039
1040 BEGIN
1041 logHeader('insert_special_interest', 'S');
1042 FOR c_special_interest_rec IN c_special_interest LOOP
1043 IF c_special_interest_rec.special_interest_type_id IS NOT NULL THEN
1044 logDetail('Before call to IGS_AD_SPL_INTERESTS_PKG.insert_row',
1045 'S');
1046 l_rowid := '';
1047 l_spl_interest_id := 0;
1048
1049 IF NVL(IGS_AD_SS_GEN_001.g_admin_security_on,'N') = 'Y'
1050 THEN
1051 lv_mode := 'S';
1052 END IF;
1053
1054 IGS_AD_SPL_INTERESTS_PKG.insert_row(x_rowid => l_rowid,
1055 x_spl_interest_id => l_spl_interest_id,
1056 x_person_id => p_person_id,
1057 x_admission_appl_number => p_adm_appl_number,
1058 x_special_interest_type_id => c_special_interest_rec.special_interest_type_id,
1059 x_mode => lv_mode -- enable security for Admin
1060 );
1061 END IF;
1062 END LOOP;
1063 EXCEPTION
1064 WHEN OTHERS THEN
1065 logDetail('Inside insert_special_interest' ||
1066 'Exception from IGS_AD_SPL_INTERESTS_PKG.insert_row ' ||
1067 SQLERRM || 'person_id : ' ||
1068 IGS_GE_NUMBER.TO_CANN(p_person_id),
1069 'S');
1070 IF FND_MSG_PUB.Count_Msg < 1 THEN
1071 Fnd_Message.Set_Name('IGS', 'IGS_GE_UNHANDLED_EXP');
1072 Fnd_Message.Set_Token('NAME','IGS_AD_SS_GEN_001.insert_special_interest -'||SQLERRM);
1073 IGS_GE_MSG_STACK.ADD;
1074 END IF;
1075 App_Exception.Raise_Exception;
1076 END insert_special_interest;
1077 --added by nshee during build for Applicant-BOSS SS Bug 2622488
1078 --dhan
1079 PROCEDURE insert_othinst(p_person_id IN NUMBER,
1080 p_adm_appl_id IN NUMBER,
1081 p_admission_appl_number IN NUMBER) AS
1082 l_rowid VARCHAR2(25);
1083 l_other_inst_id IGS_AD_OTHER_INST.OTHER_INST_ID%TYPE;
1084 lv_mode VARCHAR2(1) DEFAULT 'R';
1085
1086 CURSOR c_othinst IS
1087 SELECT othinst.ss_othins_id,
1088 othinst.ss_adm_appl_id,
1089 othinst.institution_code,
1090 i.name,
1091 othinst.new_institution
1092 FROM igs_ss_ad_othins_stg othinst,
1093 igs_ss_adm_appl_stg appl,
1094 igs_or_institution i,
1095 igs_pe_hz_parties php
1096 WHERE othinst.ss_adm_appl_id = appl.ss_adm_appl_id
1097 AND othinst.institution_code = i.institution_cd
1098 AND othinst.institution_code = php.oss_org_unit_cd
1099 AND appl.person_id = p_person_id
1100 AND othinst.ss_adm_appl_id = p_adm_appl_id; -- p_admission_appl_number;
1101
1102 BEGIN
1103
1104 IF NVL(IGS_AD_SS_GEN_001.g_admin_security_on,'N') = 'Y'
1105 THEN
1106 lv_mode := 'S';
1107 END IF;
1108
1109 FOR c_othinst_rec IN c_othinst LOOP
1110 l_rowid := '';
1111 l_other_inst_id := 0;
1112 IGS_AD_OTHER_INST_PKG.insert_row(x_rowid => l_rowid,
1113 x_other_inst_id => l_other_inst_id,
1114 x_person_id => p_person_id,
1115 x_admission_appl_number => p_admission_appl_number,
1116 x_institution_code => c_othinst_rec.institution_code,
1117 x_mode => lv_mode, -- enable security for Admin
1118 x_new_institution => c_othinst_rec.new_institution);
1119
1120 END LOOP;
1121 EXCEPTION
1122 WHEN OTHERS THEN
1123 logDetail('Inside insert_othinst' ||
1124 'Exception from IGS_AD_OTHER_INST_PKG.insert_row ' ||
1125 SQLERRM || 'person_id : ' ||
1126 IGS_GE_NUMBER.TO_CANN(p_person_id),
1127 'S');
1128 IF FND_MSG_PUB.Count_Msg < 1 THEN
1129 Fnd_Message.Set_Name('IGS', 'IGS_GE_UNHANDLED_EXP');
1130 Fnd_Message.Set_Token('NAME','IGS_AD_SS_GEN_001.insert_othinst -'||SQLERRM);
1131 IGS_GE_MSG_STACK.ADD;
1132 END IF;
1133 App_Exception.Raise_Exception;
1134 END insert_othinst;
1135 --dhan
1136 PROCEDURE insert_edugoal_details(p_person_id IN igs_ad_edugoal.person_id%TYPE,
1137 p_adm_appl_number IN igs_ad_edugoal.admission_appl_number%TYPE,
1138 p_ss_adm_appl_id IN igs_ss_app_pgm_stg.ss_adm_appl_id%TYPE,
1139 p_nominated_course_cd IN igs_ad_edugoal.nominated_course_cd%TYPE,
1140 p_sequence_number IN igs_ad_edugoal.sequence_number%TYPE) AS
1141 /*****************************************************************************************
1142 Created By: [email protected]
1143 Date Created : 11-DEC-2001
1144 Purpose: 1. Inserts Post Educational Goal Details (For an Application Program Instance)
1145 FLOW: IGS_AD_EDUGOAL_PKG.insert_row
1146 Known limitations,enhancements,remarks:
1147 Change History
1148 Who When What
1149 nshee 29-oct-2002 modified due to design change in build 2622488
1150 *****************************************************************************************/
1151 l_rowid VARCHAR2(25);
1152 l_post_edugoal_id IGS_AD_EDUGOAL.post_edugoal_id%TYPE;
1153 lv_mode VARCHAR2(1) DEFAULT 'R';
1154 CURSOR c_postenroll_edu_goal IS
1155 SELECT edu_goal_id
1156 FROM igs_ss_ad_edugoa_stg
1157 WHERE ss_admappl_pgm_id =
1158 (SELECT ss_admappl_pgm_id
1159 FROM igs_ss_app_pgm_stg
1160 WHERE ss_adm_appl_id = p_ss_adm_appl_id -- p_adm_appl_number
1161 AND nominated_course_cd = p_nominated_course_cd
1162 AND person_id = p_person_id);
1163 BEGIN
1164 logHeader('insert_edugoal_details', 'S');
1165
1166 IF NVL(IGS_AD_SS_GEN_001.g_admin_security_on,'N') = 'Y'
1167 THEN
1168 lv_mode := 'S';
1169 END IF;
1170 FOR c_postenroll_edu_goal_rec IN c_postenroll_edu_goal LOOP
1171 IF c_postenroll_edu_goal_rec.edu_goal_id IS NOT NULL THEN
1172 logDetail('Before call to IGS_AD_EDUGOAL_PKG.insert_row', 'S');
1173
1174 l_rowid := '';
1175 l_post_edugoal_id := 0;
1176
1177 IGS_AD_EDUGOAL_PKG.insert_row(X_ROWID => l_rowid,
1178 X_POST_EDUGOAL_ID => l_post_edugoal_id,
1179 X_PERSON_ID => p_person_id,
1180 X_ADMISSION_APPL_NUMBER => p_adm_appl_number,
1181 X_NOMINATED_COURSE_CD => p_nominated_course_cd,
1182 X_SEQUENCE_NUMBER => p_sequence_number,
1183 X_EDU_GOAL_ID => c_postenroll_edu_goal_rec.edu_goal_id,
1184 x_mode => lv_mode-- enable security for Admin
1185 );
1186
1187 END IF;
1188 END LOOP;
1189 EXCEPTION
1190 WHEN OTHERS THEN
1191 logDetail('insert_edugoal_details' ||
1192 'Exception from IGS_AD_EDUGOAL_PKG.insert_row' || SQLERRM ||
1193 'person_id : ' || IGS_GE_NUMBER.TO_CANN(p_person_id),
1194 'S');
1195 IF FND_MSG_PUB.Count_Msg < 1 THEN
1196 Fnd_Message.Set_Name('IGS', 'IGS_GE_UNHANDLED_EXP');
1197 Fnd_Message.Set_Token('NAME','IGS_AD_SS_GEN_001.insert_edugoal_details -'||SQLERRM);
1198 IGS_GE_MSG_STACK.ADD;
1199 END IF;
1200 App_Exception.Raise_Exception;
1201 END insert_edugoal_details;
1202
1203 PROCEDURE insert_ss_appl_stg(x_message_name OUT NOCOPY VARCHAR2,
1204 x_return_status OUT NOCOPY VARCHAR2,
1205 p_person_id IN NUMBER,
1206 p_application_type IN VARCHAR2,
1207 p_adm_appl_number IN NUMBER,
1208 p_admission_cat IN VARCHAR2,
1209 p_s_adm_process_type IN VARCHAR2,
1210 p_login_id IN NUMBER,
1211 p_app_source_id IN NUMBER) AS
1212 /*****************************************************************************************
1213 Created By: [email protected]
1214 Date Created : 11-DEC-2001
1215 Purpose: 1. Inserts record from Self Service Admissions form (New Application Screen)
1216
1217 Known limitations,enhancements,remarks:
1218 Change History
1219 Who When What
1220 rboddu 17-FEB-2002 Added the parameter p_app_source_id. The same is inserted into the table.
1221 Bug : 2224624
1222 *****************************************************************************************/
1223
1224 BEGIN
1225 BEGIN
1226 INSERT INTO igs_ss_adm_appl_stg
1227 (ss_adm_appl_id,
1228 person_id,
1229 appl_date,
1230 admission_application_type,
1231 admission_cat,
1232 s_adm_process_type,
1233 last_update_date,
1234 last_updated_by,
1235 creation_date,
1236 created_by,
1237 last_update_login,
1238 app_source_id)
1239 VALUES
1240 (p_adm_appl_number,
1241 p_person_id,
1242 SYSDATE,
1243 p_application_type,
1244 p_admission_cat,
1245 p_s_adm_process_type,
1246 SYSDATE,
1247 p_login_id,
1248 SYSDATE,
1249 p_login_id,
1250 p_login_id,
1251 p_app_source_id);
1252 IF SQL%ROWCOUNT = 0 THEN
1253 x_return_status := 'E';
1254 x_message_name := 'IGS_GE_UNHANDLED_EXP';
1255 END IF;
1256 END;
1257 EXCEPTION
1258 WHEN OTHERS THEN
1259 logDetail('insert igs_ss_adm_appl_stg' || SQLERRM ||
1260 'person_id : ' || IGS_GE_NUMBER.TO_CANN(p_person_id),
1261 'S');
1262 x_return_status := 'E';
1263 x_message_name := 'IGS_GE_UNHANDLED_EXP';
1264 IF FND_MSG_PUB.Count_Msg < 1 THEN
1265 Fnd_Message.Set_Name('IGS', 'IGS_GE_UNHANDLED_EXP');
1266 Fnd_Message.Set_Token('NAME','IGS_AD_SS_GEN_001.insert_ss_appl_stg -'||SQLERRM);
1267 IGS_GE_MSG_STACK.ADD;
1268 END IF;
1269 App_Exception.Raise_Exception;
1270 END insert_ss_appl_stg;
1271
1272 PROCEDURE insert_ss_appl_perstat_stg(p_return_status OUT NOCOPY VARCHAR2,
1273 p_message_data OUT NOCOPY VARCHAR2,
1274 p_person_id IN NUMBER,
1275 p_adm_appl_id IN NUMBER,
1276 p_admission_application_type IN VARCHAR2,
1277 p_user_id IN NUMBER,
1278 p_date_received IN DATE)
1279 /*****************************************************************************************
1280 Created By:
1281 Date Created :
1282 Purpose: 1. Inserts record from Self Service Admissions form (New Application Screen)
1283
1284 Known limitations,enhancements,remarks:
1285 Change History
1286 Who When What
1287 rboddu 17-FEB-2002 Added the parameter p_date_received. The same is inserted into the table.
1288 Bug : 2224624
1289 rboddu 05-mar-2003 Inserting the Date_Received as TRUNC(p_date_received). Bug: 2731445
1290 *****************************************************************************************/
1291 AS
1292 CURSOR c_perstat_types(l_admission_application_type IN VARCHAR2) IS
1293 SELECT persl_stat_type
1294 From igs_ad_aptyp_pestat
1295 WHERE admission_application_type = l_admission_application_type;
1296 l_stmt_count NUMBER;
1297 BEGIN
1298 SELECT COUNT(ss_perstat_id)
1299 INTO l_stmt_count
1300 FROM igs_ss_appl_perstat
1301 WHERE person_id = p_person_id
1302 AND ss_adm_appl_id = p_adm_appl_id;
1303
1304 IF l_stmt_count = 0 THEN
1305 FOR c_perstat_types_data IN c_perstat_types(p_admission_application_type) LOOP
1306 BEGIN
1307 INSERT INTO igs_ss_appl_perstat
1308 (ss_perstat_id,
1309 person_id,
1310 ss_adm_appl_id,
1311 admission_application_type,
1312 persl_stat_type,
1313 date_received,
1314 created_by,
1315 creation_date,
1316 attach_exists,
1317 last_updated_by,
1318 last_update_date,
1319 last_update_login)
1320 VALUES
1321 (igs_ss_perstat_id_s.NEXTVAL,
1322 p_person_id,
1323 p_adm_appl_id,
1324 p_admission_application_type,
1325 c_perstat_types_data.persl_stat_type,
1326 TRUNC(p_date_received),
1327 p_user_id,
1328 SYSDATE,
1329 'N',
1330 p_user_id,
1331 SYSDATE,
1332 p_user_id);
1333 IF c_perstat_types%NOTFOUND THEN
1334 p_return_status := 'S';
1335 EXIT;
1336 END IF;
1337 END;
1338 END LOOP;
1339 p_return_status := 'S';
1340 ELSE
1341 p_return_status := 'S';
1342 END IF;
1343 EXCEPTION
1344 WHEN OTHERS THEN
1345 logDetail('insert igs_ss_appl_perstat' || SQLERRM ||
1346 'person_id : ' || IGS_GE_NUMBER.TO_CANN(p_person_id),
1347 'S');
1348 p_return_status := 'E';
1349 p_message_data := 'IGS_GE_UNHANDLED_EXP';
1350 IF FND_MSG_PUB.Count_Msg < 1 THEN
1351 Fnd_Message.Set_Name('IGS', 'IGS_GE_UNHANDLED_EXP');
1352 Fnd_Message.Set_Token('NAME','IGS_AD_SS_GEN_001.insert_ss_appl_perstat_stg -'||SQLERRM);
1353 IGS_GE_MSG_STACK.ADD;
1354 END IF;
1355 App_Exception.Raise_Exception;
1356 END insert_ss_appl_perstat_stg;
1357
1358 PROCEDURE delete_ss_appl_stg(x_message_name OUT NOCOPY VARCHAR2,
1359 x_return_status OUT NOCOPY VARCHAR2,
1360 p_adm_appl_number IN NUMBER,
1361 p_person_id IN NUMBER) AS
1362 /*****************************************************************************************
1363 Created By: [email protected]
1364 Date Created : 11-DEC-2001
1365 Purpose: 1. Deletes record from staging tables if the Application Creation is successful
1366 2. Also CAlled from SS Application Form to Delete an already Created Application
1367
1368 Known limitations,enhancements,remarks:
1369 Change History
1370 Who When What
1371 tray 16-APR-02 added DML delete for deleting data from igs_ss_ad_sec_stat
1372 after the application is transferred.
1373 *****************************************************************************************/
1374
1375 l_message_name VARCHAR2(2000);
1376 l_return_status VARCHAR2(2);
1377 l_msg_index NUMBER;
1378 l_msg_count NUMBER;
1379 l_msg_data VARCHAR2(2000);
1380 p_hash_msg_name_text_type_tab igs_ad_gen_016.g_msg_name_text_type_table;
1381
1382 BEGIN
1383 l_msg_index := IGS_GE_MSG_STACK.count_msg;
1384
1385 BEGIN
1386 DELETE FROM igs_ss_ad_sec_stat
1387 WHERE person_id = p_person_id
1388 AND ss_adm_appl_id = p_adm_appl_number;
1389
1390 DELETE FROM igs_ss_app_req_stg
1391 WHERE ss_adm_appl_id = p_adm_appl_number
1392 AND person_id = p_person_id;
1393
1394 -- dvivekan
1395 -- deleting the per stmt rows not having attachments
1396
1397 DELETE FROM igs_ss_appl_perstat
1398 WHERE ss_adm_appl_id = p_adm_appl_number
1399 AND person_id = p_person_id;
1400
1401 --added by nshee during build for Applicant-BOSS SS Bug 2622488
1402 DELETE FROM igs_ss_ad_unitse_stg
1403 WHERE ss_admappl_pgm_id IN
1404 (SELECT ss_admappl_pgm_id
1405 FROM igs_ss_app_pgm_stg
1406 WHERE ss_adm_appl_id = p_adm_appl_number
1407 AND person_id = p_person_id);
1408
1409 DELETE FROM igs_ss_ad_edugoa_stg
1410 WHERE ss_admappl_pgm_id IN
1411 (SELECT ss_admappl_pgm_id
1412 FROM igs_ss_app_pgm_stg
1413 WHERE ss_adm_appl_id = p_adm_appl_number
1414 AND person_id = p_person_id);
1415
1416 DELETE FROM igs_ss_ad_acadin_stg
1417 WHERE ss_adm_appl_id = p_adm_appl_number;
1418
1419 DELETE FROM igs_ss_ad_appint_stg
1420 WHERE ss_adm_appl_id = p_adm_appl_number;
1421
1422 DELETE FROM igs_ss_ad_splint_stg
1423 WHERE ss_adm_appl_id = p_adm_appl_number;
1424
1425 DELETE FROM igs_ss_ad_spltal_stg
1426 WHERE ss_adm_appl_id = p_adm_appl_number;
1427 --added by nshee during build for Applicant-BOSS SS Bug 2622488
1428 -- needs to include in the
1429 -- delete stg table records section
1430 DELETE FROM igs_ss_ad_othins_stg
1431 WHERE ss_adm_appl_id = p_adm_appl_number;
1432 --dhan
1433 DELETE FROM igs_ss_app_pgm_stg
1434 WHERE person_id = p_person_id
1435 AND ss_adm_appl_id = p_adm_appl_number;
1436
1437 DELETE FROM igs_ss_adm_appl_stg
1438 WHERE ss_adm_appl_id = p_adm_appl_number
1439 AND person_id = p_person_id;
1440
1441 END;
1442 EXCEPTION
1443 WHEN OTHERS THEN
1444 logDetail('Exception from delete_ss_appl_stg, ' || SQLERRM, 'S');
1445 x_return_status := 'E';
1446 x_message_name := 'IGS_GE_UNHANDLED_EXP';
1447 IF FND_MSG_PUB.Count_Msg < 1 THEN
1448 Fnd_Message.Set_Name('IGS', 'IGS_GE_UNHANDLED_EXP');
1449 Fnd_Message.Set_Token('NAME','IGS_AD_SS_GEN_001.delete_ss_appl_stg -'||SQLERRM);
1450 IGS_GE_MSG_STACK.ADD;
1451 END IF;
1452 App_Exception.Raise_Exception;
1453
1454 END delete_ss_appl_stg;
1455
1456 --Procedure for transferring Personal Statements/Attachments
1457 PROCEDURE transfer_attachment(p_person_id IN IGS_SS_APPL_PERSTAT.person_id%TYPE,
1458 p_ss_adm_appl_id IN IGS_SS_APPL_PERSTAT.ss_adm_appl_id%TYPE,
1459 p_admission_appl_number IN IGS_AD_APPL_PERSTAT.admission_appl_number%TYPE,
1460 x_return_status OUT NOCOPY VARCHAR2) IS
1461 /*****************************************************************************************
1462 Created By: [email protected]
1463 Date Created : 11-DEC-2001
1464 Purpose: 1. Deletes record from staging tables if the Application Creation is successful
1465 2. Also CAlled from SS Application Form to Delete an already Created Application
1466
1467 Known limitations,enhancements,remarks:
1468 Change History
1469 Who When What
1470 rboddu 17-FEB-2002 in IGS_AD_APPL_PERSTAT_PKG.Insert_Row, date_received is passed
1471 NVL(c_ss_appl_perstat_rec.date_received,SYSDATE). Earlier it was just SYSDATE
1472 Bug : 2224624
1473 rboddu 05-MAR-2003 Passing Received_Date as TRUNC(SYSDATE) if it's null in the SS Table. Bug: 2731445
1474 *****************************************************************************************/
1475 l_rowid VARCHAR2(25);
1476 l_appl_perstat_id IGS_AD_APPL_PERSTAT.appl_perstat_id%TYPE;
1477 l_from_pk1_value VARCHAR2(100);
1478 l_to_pk1_value VARCHAR2(100);
1479 lv_mode VARCHAR2(1) DEFAULT 'R';
1480
1481 CURSOR c_ss_appl_perstat IS
1482 SELECT ps.*
1483 FROM igs_ss_appl_perstat ps
1484 WHERE ps.ss_adm_appl_id = p_ss_adm_appl_id
1485 AND ps.person_id = p_person_id;
1486
1487 CURSOR c_ad_appl_perstat IS
1488 SELECT APPL_PERSTAT_ID
1489 FROM igs_ad_appl_perstat
1490 WHERE person_id = p_person_id
1491 AND admission_appl_number = p_admission_appl_number;
1492
1493 c_ss_appl_perstat_rec c_ss_appl_perstat%ROWTYPE;
1494
1495 BEGIN
1496
1497 IF NVL(IGS_AD_SS_GEN_001.g_admin_security_on,'N') = 'Y'
1498 THEN
1499 lv_mode := 'S';
1500 END IF;
1501 --
1502 OPEN c_ss_appl_perstat;
1503 LOOP
1504 FETCH c_ss_appl_perstat
1505 INTO c_ss_appl_perstat_rec; /*There is no way of ensuring that the student visited the personal statements page, if the personal statements page is not visited then no data will be there in the staging table ,
1506 and error will be caused , as per back office functionality application can be created without personal statement. So procedure should return status 'S' when there are no personal statement staging records */
1507 EXIT WHEN c_ss_appl_perstat%NOTFOUND;
1508 IF c_ss_appl_perstat_rec.ATTACH_EXISTS = 'Y' THEN
1509 BEGIN
1510 IGS_AD_APPL_PERSTAT_PKG.Insert_Row(x_rowid => l_rowid,
1511 x_appl_perstat_id => l_appl_perstat_id,
1512 x_person_id => c_ss_appl_perstat_rec.person_id,
1513 x_admission_appl_number => p_admission_appl_number,
1514 x_persl_stat_type => c_ss_appl_perstat_rec.persl_stat_type,
1515 x_date_received => NVL(c_ss_appl_perstat_rec.date_received,
1516 TRUNC(SYSDATE)), --If the date_received passed from Self Service is null then insert SYSDATE into OSS Table
1517 x_mode => lv_mode -- enable security for Admin
1518 );
1519 /* If insert is successful copy and delete the attachments to the IGS_AD_APPL_PERSTAT table */
1520 BEGIN
1521
1522 -- bug 2407148 fix (transferring multiple personal statements)
1523
1524 /*
1525 OPEN c_ad_appl_perstat;
1526 LOOP
1527 FETCH c_ad_appl_perstat INTO l_to_pk1_value;
1528 EXIT WHEN c_ad_appl_perstat%NOTFOUND;
1529 */
1530
1531 l_from_pk1_value := IGS_GE_NUMBER.TO_CANN(c_ss_appl_perstat_rec.SS_PERSTAT_ID);
1532 fnd_attached_documents2_pkg.copy_attachments(X_from_entity_name => 'IGS_SS_APPL_PERSTAT',
1533 X_from_pk1_value => l_from_pk1_value,
1534 X_from_pk2_value => NULL,
1535 X_from_pk3_value => NULL,
1536 X_from_pk4_value => NULL,
1537 X_from_pk5_value => NULL,
1538 X_to_entity_name => 'IGS_AD_APPL_PERSTAT',
1539 X_to_pk1_value => l_appl_perstat_id, -- l_to_pk1_value is not used bug 2407148 fix
1540 X_to_pk2_value => NULL,
1541 X_to_pk3_value => NULL,
1542 X_to_pk4_value => NULL,
1543 X_to_pk5_value => NULL,
1544 X_created_by => NULL,
1545 X_last_update_login => NULL,
1546 X_program_application_id => NULL,
1547 X_program_id => NULL,
1548 X_request_id => NULL,
1549 X_automatically_added_flag => 'N');
1550
1551 fnd_attached_documents2_pkg.delete_attachments(X_entity_name => 'IGS_SS_APPL_PERSTAT',
1552 X_pk1_value => l_from_pk1_value,
1553 X_pk2_value => NULL,
1554 X_pk3_value => NULL,
1555 X_pk4_value => NULL,
1556 X_pk5_value => NULL,
1557 X_delete_document_flag => 'N',
1558 X_automatically_added_flag => 'N');
1559 -- END LOOP;
1560 x_return_status := 'S';
1561 EXCEPTION
1562 WHEN OTHERS THEN
1563 /* If copy and delete is NOT successful */
1564 x_return_status := 'E';
1565 END;
1566 x_return_status := 'S';
1567 EXCEPTION
1568 WHEN OTHERS THEN
1569 /* If insert is NOT successful */
1570 x_return_status := 'E';
1571 END;
1572 DELETE FROM igs_ss_appl_perstat
1573 WHERE ss_perstat_id = c_ss_appl_perstat_rec.SS_PERSTAT_ID;
1574 END IF;
1575
1576 IF x_return_status <> 'E' OR x_return_status IS NULL THEN
1577 x_return_status := 'S';
1578 /*Indicate Success, to be used in Calling Proc, if Status = 'S', then commit
1579 data */
1580 END IF;
1581 END LOOP;
1582 x_return_status := 'S';
1583 EXCEPTION
1584 WHEN OTHERS THEN
1585 x_return_status := 'E';
1586 logDetail('Exception from transfer_attachment ' || SQLERRM, 'S');
1587 IF FND_MSG_PUB.Count_Msg < 1 THEN
1588 Fnd_Message.Set_Name('IGS', 'IGS_GE_UNHANDLED_EXP');
1589 Fnd_Message.Set_Token('NAME','IGS_AD_SS_GEN_001.transfer_attachment -'||SQLERRM);
1590 IGS_GE_MSG_STACK.ADD;
1591 END IF;
1592
1593 App_Exception.Raise_Exception;
1594 END transfer_attachment;
1595
1596 --Procedure sent from HQ to be added
1597 -----------------------------------
1598 PROCEDURE get_acad_cal(p_adm_cal_type IN igs_ca_type.cal_type%TYPE,
1599 p_adm_seq IN OUT NOCOPY igs_ca_inst.sequence_number%TYPE,
1600 p_acad_cal_type OUT NOCOPY igs_ca_type.cal_type%TYPE,
1601 p_acad_seq OUT NOCOPY igs_ca_inst.sequence_number%TYPE) AS
1602 l_message fnd_new_messages.message_name%TYPE;
1603 l_start_dt DATE;
1604 l_end_dt DATE;
1605 l_out VARCHAR2(2000);
1606
1607 -- Cursor for getting the Calendar Sequence for the
1608 -- Calendar Type. The Calendar Instance Selected for this calendar
1609 -- should be the nearest one to the System Date
1610 CURSOR cur_sequence(cp_cal_type igs_ca_type.cal_type%TYPE) IS
1611 SELECT ci_adm.sequence_number adm_sequence_number,
1612 ci_acad.cal_type acad_cal_type,
1613 ci_acad.sequence_number acad_sequence_number
1614 FROM igs_ca_type ct_adm,
1615 igs_ca_inst ci_adm,
1616 igs_ca_stat cs,
1617 igs_ca_inst_rel cir,
1618 igs_ca_inst ci_acad,
1619 igs_ca_type ct_acad
1620 WHERE ct_adm.cal_type = cp_cal_type
1621 AND ct_adm.cal_type = ci_adm.cal_type
1622 AND SYSDATE <= ci_adm.end_dt
1623 AND ct_adm.s_cal_cat = 'ADMISSION'
1624 AND ci_adm.cal_status = cs.cal_status
1625 AND cs.s_cal_status = 'ACTIVE'
1626 AND ci_adm.cal_type = cir.sub_cal_type
1627 AND ci_adm.sequence_number = cir.sub_ci_sequence_number
1628 AND ct_acad.cal_type = ci_acad.cal_type
1629 AND ci_acad.cal_type = cir.sup_cal_type
1630 AND ci_acad.sequence_number = cir.sup_ci_sequence_number
1631 AND ct_acad.s_cal_cat = 'ACADEMIC'
1632 ORDER BY ci_adm.end_dt;
1633
1634 sequence_rec cur_sequence%ROWTYPE;
1635 BEGIN
1636
1637 -- If the Admission Calendar Instance is not defined
1638 -- then derive the Admisssion Calendar Instance
1639 IF p_adm_seq IS NULL THEN
1640 OPEN cur_sequence(p_adm_cal_type);
1641 FETCH cur_sequence
1642 INTO sequence_rec;
1643
1644 IF cur_sequence%NOTFOUND THEN
1645 fnd_message.set_name('IGS', 'IGS_AD_INQ_ADMCAL_SEQ_NOTDFN');
1646 fnd_message.set_token('CAL_TYPE', p_adm_cal_type);
1647 IGS_GE_MSG_STACK.ADD;
1648 app_exception.raise_exception;
1649 END IF;
1650
1651 p_adm_seq := sequence_rec.adm_sequence_number;
1652 p_acad_cal_type := sequence_rec.acad_cal_type;
1653 p_acad_seq := sequence_rec.acad_sequence_number;
1654 CLOSE cur_sequence;
1655 END IF;
1656 EXCEPTION
1657 WHEN OTHERS THEN
1658 RAISE;
1659 END get_acad_cal;
1660
1661 ----------------------------------
1662 --Function Sent from HQ to be added
1663 ----------------------------------
1664 FUNCTION get_dflt_adm_cal RETURN VARCHAR2 IS
1665 CURSOR cur_adm_cal_conf IS
1666 SELECT inq_cal_type FROM igs_ad_cal_conf;
1667
1668 l_inq_cal_type igs_ad_cal_conf.inq_cal_type%TYPE;
1669
1670 BEGIN
1671
1672 OPEN cur_adm_cal_conf;
1673 FETCH cur_adm_cal_conf
1674 INTO l_inq_cal_type;
1675 CLOSE cur_adm_cal_conf;
1676 RETURN(l_inq_cal_type);
1677
1678 END get_dflt_adm_cal;
1679 ----------------------------------
1680
1681 --This is a Debug Mode Proc, outputs which proc is being processed, to stop Debugging pass 'H' to p_mode param
1682 PROCEDURE logHeader(p_proc_name VARCHAR2, p_mode VARCHAR2) AS
1683 BEGIN
1684 IF p_mode = 'S' THEN
1685 -- FND_FILE.PUT_LINE(FND_FILE.LOG,p_proc_name);
1686 -- dbms_output.put_line('*****************Inside Proc: '||p_proc_name||' **********************');
1687 null; --commented last line for GSCC , uncomment when using logheader
1688 ELSIF p_mode = 'H' THEN
1689 NULL;
1690 END IF;
1691 END;
1692
1693 --This is a Debug Mode Proc, outputs each call being processed, to stop Debugging pass 'H' to p_mode param
1694 PROCEDURE logDetail(p_debug_msg VARCHAR2, p_mode VARCHAR2) AS
1695 BEGIN
1696 IF p_mode = 'S' THEN
1697 -- FND_FILE.PUT_LINE(FND_FILE.LOG,p_debug_msg);
1698 -- dbms_output.put_line(p_debug_msg);
1699 null; --commented last line for GSCC , uncomment when using logheader
1700 ELSIF p_mode = 'H' THEN
1701 NULL;
1702 END IF;
1703 END;
1704
1705 -- Check to see if there exists any fee for this Application
1706 Procedure Check_FeeExists(p_person_id IN igs_ad_appl_all.person_id%TYPE,
1707 p_adm_appl_num IN igs_ad_appl_all.admission_appl_number%TYPE,
1708 x_return_status OUT NOCOPY VARCHAR2,
1709 x_message_data OUT NOCOPY VARCHAR2) AS
1710
1711 l_fee_amount NUMBER;
1712 l_msg_count NUMBER;
1713 l_revenue_acct_code igs_ad_app_req.REV_ACCOUNT_CD%TYPE;
1714 l_cash_acct_code igs_ad_app_req.CASH_ACCOUNT_CD%TYPE;
1715 l_revenue_acct_ccid igs_ad_app_req.REV_GL_CCID%TYPE;
1716 l_cash_acct_ccid igs_ad_app_req.CASH_GL_CCID%TYPE;
1717
1718
1719 BEGIN
1720
1721 -- check if application fee exists
1722
1723
1724 x_message_data := NULL;
1725 x_return_status := 'N';
1726
1727
1728 IGS_AD_SS_APPL_FEE_PKG.get_appl_type_fee_details(
1729 p_person_id =>p_person_id,
1730 p_admission_appl_number =>p_adm_appl_num,
1731 appl_fee_amt =>l_fee_amount,
1732 revenue_acct_code =>l_revenue_acct_code,
1733 cash_acct_code =>l_cash_acct_code,
1734 revenue_acct_ccid =>l_revenue_acct_ccid,
1735 cash_acct_ccid =>l_cash_acct_ccid,
1736 x_return_status =>x_return_status,
1737 x_msg_count =>l_msg_count,
1738 x_msg_data =>x_message_data);
1739
1740 IF l_fee_amount =0 THEN
1741 x_return_status := 'N';
1742 END IF;
1743
1744 IF (l_fee_amount IS NOT NULL) AND (l_fee_amount > 0) THEN
1745 x_return_status := 'S';
1746 END IF;
1747
1748 EXCEPTION
1749 WHEN OTHERS THEN
1750 x_return_status := 'E';
1751 x_message_data := 'IGS_GE_UNHANDLED_EXP';
1752 logDetail('Exception from Check_FeeExists ' || SQLERRM, 'S');
1753 IF FND_MSG_PUB.Count_Msg < 1 THEN
1754 Fnd_Message.Set_Name('IGS', 'IGS_GE_UNHANDLED_EXP');
1755 Fnd_Message.Set_Token('NAME','IGS_AD_SS_GEN_001.Check_FeeExists -'||SQLERRM);
1756 IGS_GE_MSG_STACK.ADD;
1757 END IF;
1758 App_Exception.Raise_Exception;
1759
1760 END Check_FeeExists;
1761
1762 -- Check to see if the application is a one-stop type application
1763 Procedure Check_OneStop(p_person_id IN NUMBER,
1764 p_admission_cat IN VARCHAR2,
1765 p_admission_process_type IN VARCHAR2,
1766 x_return_status OUT NOCOPY VARCHAR2,
1767 x_message_data OUT NOCOPY VARCHAR2) AS
1768
1769 l_accept VARCHAR2(1);
1770 l_offer VARCHAR2(1);
1771 l_one_stop VARCHAR2(1);
1772 l_msg_index NUMBER;
1773 l_msg_count NUMBER;
1774 l_msg_data VARCHAR2(2000);
1775 p_hash_msg_name_text_type_tab igs_ad_gen_016.g_msg_name_text_type_table;
1776
1777 l_prog_label VARCHAR2(100);
1778 l_label VARCHAR2(500);
1779 l_debug_str VARCHAR2(4000);
1780
1781 BEGIN
1782
1783 l_prog_label := 'igs.plsql.igs_ad_ss_gen_001.Check_OneStop';
1784 l_label := 'igs.plsql.igs_ad_ss_gen_001.Check_OneStop.start';
1785
1786 IF fnd_log.test(fnd_log.level_statement,l_prog_label) THEN
1787 l_debug_str := 'Starting values : Person ID =' || p_person_id || 'Admission cat ='||p_admission_cat ||
1788 'sytem Admission process type ='|| p_admission_process_type;
1789 fnd_log.string_with_context( fnd_log.level_statement,l_label,l_debug_str, NULL,NULL,NULL,NULL,NULL,null);
1790 END IF;
1791
1792
1793 Select 'X'
1794 Into l_accept
1795 From igs_ad_prcs_cat_step
1796 Where S_ADMISSION_STEP_TYPE = 'AUTO-ACCEPT'
1797 And ADMISSION_CAT = p_admission_cat
1798 And S_ADMISSION_PROCESS_TYPE = p_admission_process_type
1799 And STEP_GROUP_TYPE <> 'TRACK'; --2402377
1800
1801
1802 IF fnd_log.test(fnd_log.level_statement,l_prog_label) THEN
1803 l_label := 'igs.plsql.igs_ad_ss_gen_001.Check_OneStop.After_Auto_accept_Step_incl';
1804 l_debug_str := 'Auto Accept step is included for APC';
1805 fnd_log.string_with_context( fnd_log.level_statement,l_label,l_debug_str, NULL,NULL,NULL,NULL,NULL,null);
1806 END IF;
1807
1808 Select 'X'
1809 Into l_offer
1810 From igs_ad_prcs_cat_step
1811 Where S_ADMISSION_STEP_TYPE = 'AUTO-OFFER'
1812 And ADMISSION_CAT = p_admission_cat
1813 And S_ADMISSION_PROCESS_TYPE = p_admission_process_type
1814 And STEP_GROUP_TYPE <> 'TRACK'; -- 2402377
1815
1816 IF fnd_log.test(fnd_log.level_statement,l_prog_label) THEN
1817 l_label := 'igs.plsql.igs_ad_ss_gen_001.Check_OneStop.After_Auto_offer_Step_incl';
1818 l_debug_str := 'Auto Accept step is included for APC';
1819 fnd_log.string_with_context( fnd_log.level_statement,l_label,l_debug_str, NULL,NULL,NULL,NULL,NULL,null);
1820 END IF;
1821
1822 -- If no record exists for that combination RETURN 'N',
1823 -- else return 'S'
1824
1825 If (l_accept IS NOT NULL And l_offer IS NOT NULL) Then
1826 IF fnd_log.test(fnd_log.level_statement,l_prog_label) THEN
1827 l_label := 'igs.plsql.igs_ad_ss_gen_001.Check_OneStop.One_Stop';
1828 l_debug_str := 'Its One Stop Application !';
1829 fnd_log.string_with_context( fnd_log.level_statement,l_label,l_debug_str, NULL,NULL,NULL,NULL,NULL,null);
1830 END IF;
1831 l_one_stop := 'Y';
1832 End If;
1833
1834 If l_one_stop = 'Y' Then
1835 x_return_status := 'S';
1836 End If;
1837
1838 EXCEPTION
1839 WHEN NO_DATA_FOUND THEN
1840 IF fnd_log.test(fnd_log.level_statement,l_prog_label) THEN
1841 l_label := 'igs.plsql.igs_ad_ss_gen_001.Check_OneStop.No_data_found';
1842 l_debug_str := 'It Not An One Stop Application ';
1843 fnd_log.string_with_context( fnd_log.level_statement,l_label,l_debug_str, NULL,NULL,NULL,NULL,NULL,null);
1844 END IF;
1845
1846 FND_MESSAGE.SET_NAME('IGS', 'IGS_AD_ONESTOP_NO_DATA_FOUND');
1847 IGS_GE_MSG_STACK.ADD;
1848 x_return_status := 'N'; -- This is used to specify that application is not onestop
1849 x_message_data := 'IGS_AD_ONESTOP_NO_DATA_FOUND';
1850
1851 WHEN OTHERS THEN
1852 IF fnd_log.test(fnd_log.level_Exception,l_prog_label) THEN
1853 l_label := 'igs.plsql.igs_ad_ss_gen_001.Check_OneStop.Exception_when_others';
1854 l_debug_str := 'In Exception- When Others block of Check_OneStop';
1855 fnd_log.string_with_context( fnd_log.level_statement,l_label,l_debug_str, NULL,NULL,NULL,NULL,NULL,null);
1856 END IF;
1857
1858 x_return_status := 'E';
1859 x_message_data := 'IGS_GE_UNHANDLED_EXP';
1860 logDetail('Exception from Check_OneStop ' || SQLERRM, 'S');
1861 IF FND_MSG_PUB.Count_Msg < 1 THEN
1862 Fnd_Message.Set_Name('IGS', 'IGS_GE_UNHANDLED_EXP');
1863 Fnd_Message.Set_Token('NAME','IGS_AD_SS_GEN_001.Check_OneStop -'||SQLERRM);
1864 IGS_GE_MSG_STACK.ADD;
1865 END IF;
1866 App_Exception.Raise_Exception;
1867
1868 END Check_OneStop;
1869
1870 -- This procedure will only be called if it is a one-stop application
1871
1872 PROCEDURE Process_OneStop(p_admission_appl_number IN NUMBER,
1873 p_person_id IN NUMBER,
1874 p_admission_cat IN VARCHAR2,
1875 p_admission_process_type IN VARCHAR2,
1876 p_role IN VARCHAR2,
1877 x_return_status OUT NOCOPY VARCHAR2,
1878 x_message_data OUT NOCOPY VARCHAR2) AS
1879
1880 Cursor c_course IS
1881 Select NOMINATED_COURSE_CD, SEQUENCE_NUMBER
1882 From IGS_AD_PS_APPL_INST_ALL
1883 Where PERSON_ID = p_person_id
1884 And ADMISSION_APPL_NUMBER = p_admission_appl_number;
1885
1886 l_one_stop VARCHAR2(1);
1887 c_course_rec c_course%ROWTYPE;
1888 l_return_status VARCHAR2(1);
1889 l_msg_count NUMBER;
1890 l_msg_data VARCHAR2(1000);
1891 l_message_data VARCHAR2(1000);
1892 l_msg_index NUMBER;
1893 p_hash_msg_name_text_type_tab igs_ad_gen_016.g_msg_name_text_type_table;
1894
1895 l_prog_label VARCHAR2(100);
1896 l_label VARCHAR2(500);
1897 l_debug_str VARCHAR2(4000);
1898
1899
1900 BEGIN
1901
1902 l_prog_label := 'igs.plsql.igs_ad_ss_gen_001.Process_OneStop';
1903 l_label := 'igs.plsql.igs_ad_ss_gen_001.Process_OneStop.start';
1904
1905 IF fnd_log.test(fnd_log.level_statement,l_prog_label) THEN
1906 l_debug_str := 'Starting values : Adm appl No ='|| p_admission_appl_number ||'Person ID =' || p_person_id || 'Admission cat ='||p_admission_cat ||
1907 'sytem Admission process type ='|| p_admission_process_type;
1908 fnd_log.string_with_context( fnd_log.level_statement,l_label,l_debug_str, NULL,NULL,NULL,NULL,NULL,null);
1909 END IF;
1910
1911
1912 -- Check whether the Admission Entry qualification status be updated
1913 -- to system admission entry qualification 'QUALIFIED' and whether
1914 -- the Admission Application status can be updated to 'SATISFIED'
1915 -- If Yes, then update them to the respective values
1916 x_return_status := 'E';
1917 Open c_course;
1918
1919 LOOP
1920
1921 FETCH c_course
1922 INTO c_course_rec;
1923
1924 EXIT WHEN c_course%NOTFOUND;
1925
1926 BEGIN
1927
1928 IF fnd_log.test(fnd_log.level_statement,l_prog_label) THEN
1929 l_label := 'igs.plsql.igs_ad_ss_gen_001.Process_OneStop.Before_check_update_aeps_acs';
1930 l_debug_str := 'Beofore IGS_AD_SS_APPL_FEE_PKG.check_update_aeps_acs';
1931 fnd_log.string_with_context( fnd_log.level_statement,l_label,l_debug_str, NULL,NULL,NULL,NULL,NULL,null);
1932 END IF;
1933
1934 IGS_AD_SS_APPL_FEE_PKG.check_update_aeps_acs(p_person_id,
1935 p_admission_appl_number,
1936 c_course_rec.nominated_course_cd,
1937 c_course_rec.sequence_number,
1938 l_return_status,
1939 l_msg_count,
1940 l_msg_data);
1941
1942 IF fnd_log.test(fnd_log.level_statement,l_prog_label) THEN
1943 l_label := 'igs.plsql.igs_ad_ss_gen_001.Process_OneStop.After_check_update_aeps_acs_ret_Status';
1944 l_debug_str := 'After check_update_aeps_acs l_return_status: ' || l_return_status;
1945 fnd_log.string_with_context( fnd_log.level_statement,l_label,l_debug_str, NULL,NULL,NULL,NULL,NULL,null);
1946
1947 l_label := 'igs.plsql.igs_ad_ss_gen_001.Process_OneStop.After_check_update_aeps_acs_msg_Data';
1948 l_debug_str := 'After check_update_aeps_acs l_msg_data: ' || l_msg_data;
1949 fnd_log.string_with_context( fnd_log.level_statement,l_label,l_debug_str, NULL,NULL,NULL,NULL,NULL,null);
1950 END IF;
1951
1952 IF l_return_status = 'E' THEN ----check_update_aeps_acs return status
1953 IF p_role <> 'ADMIN' THEN
1954 l_msg_data := 'IGS_AD_APPL_PRC_FAILED';
1955 END IF;
1956 FND_MESSAGE.SET_NAME('IGS', l_msg_data);
1957 IGS_GE_MSG_STACK.ADD;
1958 x_return_status := 'E';
1959 x_message_data := l_msg_data;
1960 RETURN;
1961
1962 ELSIF l_return_status = 'S' THEN
1963
1964 Update_Appl_Eqdo_Inst(p_person_id,
1965 p_admission_appl_number,
1966 c_course_rec.nominated_course_cd,
1967 c_course_rec.sequence_number,
1968 l_return_status,
1969 l_message_data);
1970
1971
1972 IF fnd_log.test(fnd_log.level_statement,l_prog_label) THEN
1973 l_label := 'igs.plsql.igs_ad_ss_gen_001.Process_OneStop.after_Update_Appl_Eqdo_Inst_ret_Stat';
1974 l_debug_str := 'After Update_Appl_Eqdo_Inst l_return_status: ' || l_return_status;
1975 fnd_log.string_with_context( fnd_log.level_statement,l_label,l_debug_str, NULL,NULL,NULL,NULL,NULL,null);
1976
1977 l_label := 'igs.plsql.igs_ad_ss_gen_001.Process_OneStop.After_Update_Appl_Eqdo_Inst_msg_Data';
1978 l_debug_str := 'After Update_Appl_Eqdo_Inst l_message_data: ' || l_message_data;
1979 fnd_log.string_with_context( fnd_log.level_statement,l_label,l_debug_str, NULL,NULL,NULL,NULL,NULL,null);
1980
1981 END IF;
1982
1983 IF l_return_status = 'E' THEN --- Update_Appl_Eqdo_Inst return status
1984 IF p_role <> 'ADMIN' THEN
1985 IGS_GE_MSG_STACK.INITIALIZE; -- Remove all other messages from stack
1986 l_msg_data := 'IGS_AD_APPL_PRC_FAILED';
1987 FND_MESSAGE.SET_NAME('IGS', l_msg_data);
1988 IGS_GE_MSG_STACK.ADD;
1989 END IF;
1990 x_return_status := 'E';
1991 x_message_data := l_msg_data;
1992 RETURN;
1993
1994 ELSIF l_return_status = 'S' THEN
1995 -- check if an offer can be made for the application
1996 -- If Yes, then update the offer status to 'OFFER'
1997
1998 IGS_AD_SS_APPL_FEE_PKG.check_offer_update(p_person_id,
1999 p_admission_appl_number,
2000 c_course_rec.nominated_course_cd,
2001 c_course_rec.sequence_number,
2002 l_return_status,
2003 l_msg_count,
2004 l_msg_data);
2005
2006 IF fnd_log.test(fnd_log.level_statement,l_prog_label) THEN
2007 l_label := 'igs.plsql.igs_ad_ss_gen_001.Process_OneStop.After_check_offer_update_return_Stat';
2008 l_debug_str := 'After check_offer_update l_return_status: ' || l_return_status;
2009 fnd_log.string_with_context( fnd_log.level_statement,l_label,l_debug_str, NULL,NULL,NULL,NULL,NULL,null);
2010
2011 l_label := 'igs.plsql.igs_ad_ss_gen_001.Process_OneStop.After_check_offer_update_Data_msg_Data';
2012 l_debug_str := 'After check_offer_update l_msg_data: ' || l_msg_data;
2013 fnd_log.string_with_context( fnd_log.level_statement,l_label,l_debug_str, NULL,NULL,NULL,NULL,NULL,null);
2014 END IF;
2015
2016 IF l_return_status = 'E' THEN -- check_offer_update return status
2017 IF p_role <> 'ADMIN' THEN
2018 IGS_GE_MSG_STACK.INITIALIZE; -- Remove all other messages from stack
2019 l_msg_data := 'IGS_AD_APPL_PRC_FAILED';
2020 END IF;
2021 FND_MESSAGE.SET_NAME('IGS', l_msg_data);
2022 IGS_GE_MSG_STACK.ADD;
2023 x_return_status := 'E';
2024 x_message_data := l_msg_data;
2025 RETURN;
2026
2027 ELSIF l_return_status = 'S' THEN
2028 Update_Appl_Ofr_Inst(p_person_id,
2029 p_admission_appl_number,
2030 c_course_rec.nominated_course_cd,
2031 c_course_rec.sequence_number,
2032 l_return_status,
2033 l_message_data);
2034
2035 IF fnd_log.test(fnd_log.level_statement,l_prog_label) THEN
2036 l_label := 'igs.plsql.igs_ad_ss_gen_001.Process_OneStop.After_Update_Appl_Ofr_Inst_ret_Stat';
2037 l_debug_str := 'After Update_Appl_Ofr_Inst l_return_status: ' || l_return_status;
2038 fnd_log.string_with_context( fnd_log.level_statement,l_label,l_debug_str, NULL,NULL,NULL,NULL,NULL,null);
2039
2040 l_label := 'igs.plsql.igs_ad_ss_gen_001.Process_OneStop.After_Update_Appl_Ofr_Inst_msg_Data';
2041 l_debug_str := 'After Update_Appl_Ofr_Inst l_message_data: ' || l_message_data;
2042 fnd_log.string_with_context( fnd_log.level_statement,l_label,l_debug_str, NULL,NULL,NULL,NULL,NULL,null);
2043 END IF;
2044
2045 IF l_return_status = 'E' THEN -- Update_Appl_Ofr_Inst return status
2046 IF p_role <> 'ADMIN' THEN
2047 IGS_GE_MSG_STACK.INITIALIZE; -- Remove all other messages from stack
2048 l_message_data := 'IGS_AD_APPL_PRC_FAILED';
2049 FND_MESSAGE.SET_NAME('IGS', l_message_data);
2050 IGS_GE_MSG_STACK.ADD;
2051 END IF;
2052 x_return_status := 'E';
2053 x_message_data := l_message_data;
2054 RETURN;
2055 END IF; -- Update_Appl_Ofr_Inst return status
2056
2057 END IF; -- check_offer_update return status
2058 END IF; --- Update_Appl_Eqdo_Inst return status
2059 END IF; ----check_update_aeps_acs return status
2060
2061 EXCEPTION
2062 WHEN OTHERS THEN
2063 IF FND_MSG_PUB.Count_Msg < 1 AND l_message_data IS NOT NULL THEN
2064 FND_MESSAGE.SET_NAME('IGS', l_message_data);
2065 IGS_GE_MSG_STACK.ADD;
2066 END IF;
2067 x_return_status := 'E';
2068 x_message_data := l_message_data;
2069 END;
2070 END LOOP;
2071
2072 IF c_course%ISOPEN THEN
2073 CLOSE c_course;
2074 END IF;
2075
2076 x_return_status := 'S';
2077 x_message_data := NULL;
2078
2079 EXCEPTION
2080 WHEN OTHERS THEN
2081 logDetail('Exception from Process_OneStop, ' || SQLERRM, 'S');
2082 x_return_status := 'E';
2083 IF p_role <> 'ADMIN' THEN
2084 IGS_GE_MSG_STACK.INITIALIZE; -- Remove all other messages from stack
2085 FND_MESSAGE.SET_NAME('IGS', 'IGS_AD_APPL_PRC_FAILED');
2086 IGS_GE_MSG_STACK.ADD;
2087 x_message_data := 'IGS_AD_APPL_PRC_FAILED';
2088 ELSE
2089 IF FND_MSG_PUB.Count_Msg < 1 THEN
2090 Fnd_Message.Set_Name('IGS','IGS_GE_UNHANDLED_EXP');
2091 Fnd_Message.Set_Token('NAME','IGS_AD_SS_GEN_001.Process_OneStop -'||SQLERRM);
2092 IGS_GE_MSG_STACK.ADD;
2093 App_Exception.Raise_Exception;
2094 END IF;
2095 x_message_data := 'IGS_GE_UNHANDLED_EXP';
2096 END IF;
2097 END Process_OneStop;
2098
2099 -- This procedure will update the Application fee details,
2100 -- Will check if it is a one-stop application, if yes,then
2101 -- check if the offer response can be made 'ACCEPTED' for the offer
2102 -- if Yes, then update the offer resp status to 'ACCEPTED'
2103 -- This procedure will be called from Student Finance page
2104
2105 PROCEDURE update_ad_offer_resp_and_fee(p_person_id IN NUMBER,
2106 p_admission_appl_number IN NUMBER,
2107 p_one_stop_ind IN VARCHAR2,
2108 p_app_fee_amt IN NUMBER,
2109 p_authorization_number IN VARCHAR2,
2110 x_return_status OUT NOCOPY VARCHAR2,
2111 x_msg_count OUT NOCOPY NUMBER,
2112 x_msg_data OUT NOCOPY VARCHAR2,
2113 p_credit_card_code IN VARCHAR2,
2114 p_credit_card_holder_name IN VARCHAR2,
2115 p_credit_card_number IN VARCHAR2,
2116 p_credit_card_expiration_date IN DATE,
2117 p_gl_date IN DATE,
2118 p_rev_gl_ccid IN NUMBER,
2119 p_cash_gl_ccid IN NUMBER,
2120 p_rev_account_cd IN VARCHAR2,
2121 p_cash_account_cd IN VARCHAR2,
2122 p_credit_card_tangible_cd IN VARCHAR2) AS
2123 /******************************************************************
2124 Created By:
2125 Date Created By:
2126 Purpose:
2127 Known limitations,enhancements,remarks:
2128 Change History
2129 Who When What
2130 pathipat 17-Jun-2003 Enh 2831587 Credit Card Fund Transfer build
2131 Added new parameter p_credit_card_tangible_cd
2132 smadathi 26-Nov-2002 Enh#2584986. Passed system date to parameter gl_date in the call to igs_ad_ss_appl_fee_pkg.upd_fee_details
2133 vvutukur 26-Nov-2002 Enh#2584986.Added 9 new parameters to this procedure(attributing to credit card details, Accounting information and the GL_DATE) as part of GL Interface Build.Passed sysdate
2134 if gl_date parameter is null in the call to igs_ad_ss_appl_fee_pkg.upd_fee_details.
2135 schodava 24-Jul-2002 Bug # 2467918
2136 Application fee cannot be submitted
2137 knag 28-Oct-2002 Called func igs_ad_gen_003.get_core_or_optional_unit for bug 2647482
2138 ******************************************************************/
2139
2140 CURSOR c_course IS
2141 Select NOMINATED_COURSE_CD, SEQUENCE_NUMBER
2142 From IGS_AD_PS_APPL_INST_ALL
2143 Where PERSON_ID = p_person_id
2144 And ADMISSION_APPL_NUMBER = p_admission_appl_number;
2145
2146 --tray Bug 2405076
2147 CURSOR get_appl_dtl(cp_person_id igs_ad_appl.person_id%TYPE, cp_adm_appl_number igs_ad_appl.admission_appl_number%TYPE) IS
2148 SELECT acad_cal_type,
2149 acad_ci_sequence_number,
2150 admission_cat,
2151 s_admission_process_type
2152 FROM IGS_AD_APPL
2153 WHERE person_id = cp_person_id
2154 AND admission_appl_number = cp_adm_appl_number;
2155 get_appl_dtl_rec get_appl_dtl%ROWTYPE;
2156
2157 --tray Bug 2405076
2158 CURSOR get_enr_cat(cp_adm_cat igs_en_cat_mapping.admission_cat%TYPE) IS
2159 SELECT enrolment_cat
2160 FROM igs_en_cat_mapping
2161 WHERE admission_cat = cp_adm_cat
2162 AND dflt_cat_ind = 'Y';
2163 get_enr_cat_rec get_enr_cat%ROWTYPE;
2164
2165 l_one_stop VARCHAR2(1);
2166 c_course_rec c_course%ROWTYPE;
2167 l_return_status VARCHAR2(1);
2168 --l_adm_cat IGS_AD_APPL_ALL.ADMISSION_CAT%TYPE; changed to cursor now Bug 2405076
2169 --l_adm_proc_type IGS_AD_APPL_ALL. S_ADMISSION_PROCESS_TYPE%TYPE; changed to cursor now Bug 2405076
2170 l_msg_count NUMBER;
2171 l_msg_data VARCHAR2(1000);
2172 l_message_data VARCHAR2(1000);
2173 v_warn_level VARCHAR2(10);
2174 v_message_name VARCHAR2(30);
2175
2176 BEGIN
2177 l_return_status := 'E';
2178 x_return_status := 'E';
2179
2180 igs_ad_ss_appl_fee_pkg.upd_fee_details(p_person_id => p_person_id,
2181 p_admission_appl_number => p_admission_appl_number,
2182 p_app_fee_amt => p_app_fee_amt,
2183 p_authorization_number => p_authorization_number,
2184 p_sys_fee_status => 'PAID',
2185 p_sys_fee_type => 'APPL_FEE',
2186 p_sys_fee_method => 'CREDIT_CARD',
2187 x_return_status => l_return_status,
2188 x_msg_count => l_msg_count,
2189 x_msg_data => l_msg_data,
2190 p_credit_card_code => p_credit_card_code,
2191 p_credit_card_holder_name => p_credit_card_holder_name,
2192 p_credit_card_number => p_credit_card_number,
2193 p_credit_card_expiration_date => p_credit_card_expiration_date,
2194 p_gl_date => NVL(p_gl_date,
2195 TRUNC(SYSDATE)),
2196 p_rev_gl_ccid => p_rev_gl_ccid,
2197 p_cash_gl_ccid => p_cash_gl_ccid,
2198 p_rev_account_cd => p_rev_account_cd,
2199 p_cash_account_cd => p_cash_account_cd,
2200 p_credit_card_tangible_cd => p_credit_card_tangible_cd);
2201 -- For an application type other than 'One stop',
2202 -- this procedure returned a status of 'E', even if the above call to
2203 -- igs_ad_ss_appl_fee_pkg.upd_fee_details returned a success.
2204 -- This is corrected by equating the return status and message returned by the above
2205 -- call to the out NOCOPY variables x_return_status and x_msg_data
2206
2207 x_return_status := l_return_status;
2208 x_msg_count := l_msg_count;
2209 x_msg_data := l_msg_data;
2210
2211 --tray Bug 2405076
2212 OPEN get_appl_dtl(p_person_id, p_admission_appl_number);
2213 FETCH get_appl_dtl
2214 INTO get_appl_dtl_rec;
2215 CLOSE get_appl_dtl;
2216
2217 IF (p_one_stop_ind IS NULL) THEN
2218
2219 --tray: Select without cursor is not allowed, so changing this to cursor Bug 2405076
2220 /*
2221 Select ADMISSION_CAT, S_ADMISSION_PROCESS_TYPE
2222 Into l_adm_cat, l_adm_proc_type
2223 From IGS_AD_APPL_ALL
2224 Where person_id = p_person_id
2225 And admission_appl_number = p_admission_appl_number;
2226 */
2227 Check_OneStop(p_person_id => p_person_id,
2228 p_admission_cat => get_appl_dtl_rec.admission_cat,
2229 p_admission_process_type => get_appl_dtl_rec.s_admission_process_type,
2230 x_return_status => l_one_stop,
2231 x_message_data => l_msg_data);
2232
2233 END IF;
2234
2235 IF (p_one_stop_ind IS NOT NULL AND p_one_stop_ind ='S') OR (l_one_stop = 'S') THEN
2236
2237 OPEN c_course;
2238 LOOP
2239 FETCH c_course
2240 INTO c_course_rec;
2241 EXIT WHEN c_course%NOTFOUND;
2242 BEGIN
2243 IGS_AD_SS_APPL_FEE_PKG.check_offer_resp_update(p_person_id,
2244 p_admission_appl_number,
2245 c_course_rec.nominated_course_cd,
2246 c_course_rec.sequence_number,
2247 l_return_status,
2248 l_msg_count,
2249 l_msg_data);
2250 IF l_return_status = 'S' THEN
2251 --tray pre enr process called Bug 2405076
2252 OPEN get_enr_cat(get_appl_dtl_rec.admission_cat);
2253 FETCH get_enr_cat
2254 INTO get_enr_cat_rec;
2255 CLOSE get_enr_cat;
2256
2257 IF igs_ad_upd_initialise.perform_pre_enrol(p_person_id,
2258 p_admission_appl_number,
2259 c_course_rec.nominated_course_cd,
2260 c_course_rec.sequence_number,
2261 'Y', -- Confirm course indicator.
2262 'Y', -- Perform eligibility check indicator.
2263 v_message_name) =
2264 FALSE THEN
2265 x_return_status := 'E';
2266 x_msg_data := 'IGS_AD_AUTO_ENR_FAILED'; --Supressing the error message from the Pre Enr process as per communication on bug2405076
2267 ELSE
2268 Update_Appl_Ofres_Inst(p_person_id,
2269 p_admission_appl_number,
2270 c_course_rec.nominated_course_cd,
2271 c_course_rec.sequence_number,
2272 l_return_status,
2273 l_message_data);
2274 x_return_status := 'S';
2275 END IF;
2276 END IF;
2277 EXCEPTION
2278 when others then
2279 x_return_status := 'E';
2280 x_msg_data := l_message_data;
2281 END;
2282 END LOOP;
2283 CLOSE c_course;
2284 END IF;
2285
2286 IF x_return_status <> 'E' THEN
2287 x_return_status := 'S';
2288 END IF;
2289
2290
2291 EXCEPTION
2292 WHEN OTHERS THEN
2293 x_return_status := 'E';
2294 x_msg_data := 'IGS_GE_UNHANDLED_EXP';
2295 IF FND_MSG_PUB.Count_Msg < 1 THEN
2296 Fnd_Message.Set_Name('IGS','IGS_GE_UNHANDLED_EXP');
2297 Fnd_Message.Set_Token('NAME','IGS_AD_SS_GEN_001.update_ad_offer_resp_and_fee -'||SQLERRM);
2298 IGS_GE_MSG_STACK.ADD;
2299 END IF;
2300 END update_ad_offer_resp_and_fee;
2301
2302 -- This procedure will only be called if it is a one-stop application
2303
2304 PROCEDURE Process_OneStop2(p_admission_appl_number IN NUMBER,
2305 p_person_id IN NUMBER,
2306 p_admission_cat IN VARCHAR2,
2307 p_admission_process_type IN VARCHAR2,
2308 p_role IN VARCHAR2,
2309 x_return_status OUT NOCOPY VARCHAR2,
2310 x_msg_data OUT NOCOPY VARCHAR2) AS
2311 /******************************************************************
2312 Created By:
2313 Date Created By:
2314 Purpose:
2315 Known limitations,enhancements,remarks:
2316 Change History
2317 Who When What
2318 knag 28-Oct-2002 Called func igs_ad_gen_003.get_core_or_optional_unit for bug 2647482
2319 ******************************************************************/
2320
2321 Cursor c_course IS
2322 Select NOMINATED_COURSE_CD, SEQUENCE_NUMBER
2323 From IGS_AD_PS_APPL_INST_ALL
2324 Where PERSON_ID = p_person_id
2325 And ADMISSION_APPL_NUMBER = p_admission_appl_number;
2326
2327 --tray Bug 2405076
2328 CURSOR get_appl_dtl(cp_person_id igs_ad_appl.person_id%TYPE, cp_adm_appl_number igs_ad_appl.admission_appl_number%TYPE) IS
2329 SELECT acad_cal_type,
2330 acad_ci_sequence_number,
2331 admission_cat,
2332 s_admission_process_type
2333 FROM IGS_AD_APPL
2334 WHERE person_id = cp_person_id
2335 AND admission_appl_number = cp_adm_appl_number;
2336 get_appl_dtl_rec get_appl_dtl%ROWTYPE;
2337
2338 --tray Bug 2405076
2339 CURSOR get_enr_cat(cp_adm_cat igs_en_cat_mapping.admission_cat%TYPE) IS
2340 SELECT enrolment_cat
2341 FROM igs_en_cat_mapping
2342 WHERE admission_cat = cp_adm_cat
2343 AND dflt_cat_ind = 'Y';
2344 get_enr_cat_rec get_enr_cat%ROWTYPE;
2345
2346 l_one_stop VARCHAR2(1);
2347 c_course_rec c_course%ROWTYPE;
2348 l_return_status VARCHAR2(1);
2349 l_msg_count NUMBER;
2350 l_msg_data VARCHAR2(1000);
2351 l_message_data VARCHAR2(1000);
2352 v_warn_level VARCHAR2(10);
2353 v_message_name VARCHAR2(30);
2354 l_msg_index NUMBER;
2355 p_hash_msg_name_text_type_tab igs_ad_gen_016.g_msg_name_text_type_table;
2356
2357 l_prog_label VARCHAR2(100);
2358 l_label VARCHAR2(500);
2359 l_debug_str VARCHAR2(4000);
2360
2361 BEGIN
2362
2363 l_prog_label := 'igs.plsql.igs_ad_ss_gen_001.Process_OneStop';
2364 l_label := 'igs.plsql.igs_ad_ss_gen_001.Process_OneStop.start';
2365
2366
2367 IF fnd_log.test(fnd_log.level_statement,l_prog_label) THEN
2368 l_label := 'igs.plsql.igs_ad_ss_gen_001.Process_OneStop2.start';
2369 l_debug_str := 'In Process_OneStop2 Start';
2370 fnd_log.string_with_context( fnd_log.level_statement,l_label,l_debug_str, NULL,NULL,NULL,NULL,NULL,null);
2371 END IF;
2372
2373 -- Check whether the Admission offer resp status be updated
2374 -- to 'ACCEPTED', If Yes, then update them to the respective values
2375 x_return_status := 'E';
2376 x_msg_data := NULL;
2377 OPEN c_course;
2378 LOOP
2379 FETCH c_course
2380 INTO c_course_rec;
2381 EXIT WHEN c_course%NOTFOUND;
2382 BEGIN
2383 IF (FND_LOG.LEVEL_STATEMENT>= g_debug_level ) THEN
2384 FND_LOG.STRING(fnd_log.level_Statement, 'igs.patch.115.sql.igs_ad_ss_gen_001.Process_OneStop2 :', 'Before IGS_AD_SS_APPL_FEE_PKG.check_offer_resp_update');
2385 END IF;
2386 IGS_AD_SS_APPL_FEE_PKG.check_offer_resp_update(p_person_id,
2387 p_admission_appl_number,
2388 c_course_rec.nominated_course_cd,
2389 c_course_rec.sequence_number,
2390 l_return_status,
2391 l_msg_count,
2392 l_msg_data);
2393
2394
2395 IF fnd_log.test(fnd_log.level_statement,l_prog_label) THEN
2396 l_label := 'igs.plsql.igs_ad_ss_gen_001.Process_OneStop2.after_check_offer_resp_update_ret_Stat';
2397 l_debug_str := 'After IGS_AD_SS_APPL_FEE_PKG.check_offer_resp_update: l_return_status' || l_return_status;
2398 fnd_log.string_with_context( fnd_log.level_statement,l_label,l_debug_str, NULL,NULL,NULL,NULL,NULL,null);
2399
2400 l_label := 'igs.plsql.igs_ad_ss_gen_001.Process_OneStop2.after_check_offer_resp_update_msg_data';
2401 l_debug_str := 'After IGS_AD_SS_APPL_FEE_PKG.check_offer_resp_update: l_msg_data' || l_msg_data;
2402 fnd_log.string_with_context( fnd_log.level_statement,l_label,l_debug_str, NULL,NULL,NULL,NULL,NULL,null);
2403
2404 END IF;
2405
2406 IF l_return_status = 'E' THEN ----check_offer_resp_update return status
2407 IF p_role <> 'ADMIN' THEN
2408 l_msg_data := 'IGS_AD_APPL_PRC_FAILED';
2409 END IF;
2410 FND_MESSAGE.SET_NAME('IGS', l_msg_data);
2411 IGS_GE_MSG_STACK.ADD;
2412 x_return_status := 'E';
2413 x_msg_data := l_msg_data;
2414 RETURN;
2415
2416 ELSIF l_return_status = 'S' Then
2417 --tray pre enr process called Bug 2405076
2418 OPEN get_appl_dtl(p_person_id, p_admission_appl_number);
2419 FETCH get_appl_dtl
2420 INTO get_appl_dtl_rec;
2421 CLOSE get_appl_dtl;
2422
2423 OPEN get_enr_cat(get_appl_dtl_rec.admission_cat);
2424 FETCH get_enr_cat
2425 INTO get_enr_cat_rec;
2426 CLOSE get_enr_cat;
2427
2428
2429 IF fnd_log.test(fnd_log.level_statement,l_prog_label) THEN
2430 l_label := 'igs.plsql.igs_ad_ss_gen_001.Process_OneStop2.beofore_perform_pre_enrol';
2431 l_debug_str := 'Before igs_ad_upd_initialise.perform_pre_enrol';
2432 fnd_log.string_with_context( fnd_log.level_statement,l_label,l_debug_str, NULL,NULL,NULL,NULL,NULL,null);
2433 END IF;
2434
2435
2436 IF igs_ad_upd_initialise.perform_pre_enrol(p_person_id,
2437 p_admission_appl_number,
2438 c_course_rec.nominated_course_cd,
2439 c_course_rec.sequence_number,
2440 'Y', -- Confirm course indicator.
2441 'Y', -- Perform eligibility check indicator.
2442 v_message_name) =
2443 FALSE THEN
2444
2445 IF fnd_log.test(fnd_log.level_statement,l_prog_label) THEN
2446 l_label := 'igs.plsql.igs_ad_ss_gen_001.Process_OneStop2.after_a_perform_pre_enrol_failed';
2447 l_debug_str := 'After igs_ad_upd_initialise.perform_pre_enrol Failed v_message_name ' || v_message_name;
2448 fnd_log.string_with_context( fnd_log.level_statement,l_label,l_debug_str, NULL,NULL,NULL,NULL,NULL,null);
2449 END IF;
2450
2451 FND_MESSAGE.SET_NAME('IGS', 'IGS_AD_AUTO_ENR_FAILED');
2452 IGS_GE_MSG_STACK.ADD;
2453 x_return_status := 'E';
2454 x_msg_data := 'IGS_AD_AUTO_ENR_FAILED'; --Supressing the error message from the Pre Enr process as per communication on bug2405076
2455 RETURN;
2456 ELSE
2457
2458 IF fnd_log.test(fnd_log.level_statement,l_prog_label) THEN
2459 l_label := 'igs.plsql.igs_ad_ss_gen_001.Process_OneStop2.after_a_perform_pre_enrol_success';
2460 l_debug_str := 'igs_ad_upd_initialise.perform_pre_enrol Succesful';
2461 fnd_log.string_with_context( fnd_log.level_statement,l_label,l_debug_str, NULL,NULL,NULL,NULL,NULL,null);
2462 END IF;
2463
2464
2465 /*Commenting as part of Bug 4234911
2466 Update_Appl_Ofres_Inst( p_person_id,
2467 p_admission_appl_number,
2468 c_course_rec.nominated_course_cd,
2469 c_course_rec.sequence_number,
2470 l_return_status,
2471 l_message_data );*/
2472 x_return_status := 'S';
2473 END IF; -- igs_ad_upd_initialise.perform_pre_enrol
2474
2475 END IF; --- check_offer_resp_update return status
2476 END;
2477 END LOOP;
2478
2479 IF c_course%ISOPEN THEN
2480 CLOSE c_course; --tray bug2405076 , earlier cursor was getting inside the LOOP :-(
2481 END IF;
2482
2483 x_return_status := 'S';
2484
2485 EXCEPTION
2486 WHEN OTHERS THEN
2487 logDetail('Exception from Process_OneStop2, ' || SQLERRM, 'S');
2488 x_return_status := 'E';
2489 IF p_role <> 'ADMIN' THEN
2490 IGS_GE_MSG_STACK.INITIALIZE; -- Remove all other messages from stack
2491 FND_MESSAGE.SET_NAME('IGS', 'IGS_AD_APPL_PRC_FAILED');
2492 IGS_GE_MSG_STACK.ADD;
2493 x_msg_data := 'IGS_AD_APPL_PRC_FAILED';
2494 ELSE
2495 IF FND_MSG_PUB.Count_Msg < 1 THEN
2496 Fnd_Message.Set_Name('IGS','IGS_GE_UNHANDLED_EXP');
2497 Fnd_Message.Set_Token('NAME','IGS_AD_SS_GEN_001.Process_OneStop2 -'||SQLERRM);
2498 IGS_GE_MSG_STACK.ADD;
2499 App_Exception.Raise_Exception;
2500 END IF;
2501 x_msg_data := 'IGS_GE_UNHANDLED_EXP';
2502 END IF;
2503
2504 END Process_OneStop2;
2505
2506 PROCEDURE Update_Appl_Eqdo_Inst(p_person_id IN NUMBER,
2507 p_admission_appl_number IN NUMBER,
2508 p_nominated_course_cd IN VARCHAR2,
2509 p_sequence_number IN NUMBER,
2510 x_return_status OUT NOCOPY VARCHAR2,
2511 x_message_data OUT NOCOPY VARCHAR2) IS
2512
2513 CURSOR c_upd_acai_eqdo(cp_person_id IGS_AD_PS_APPL_INST.person_id%TYPE,
2514 cp_admission_appl_number IGS_AD_PS_APPL_INST.admission_appl_number%TYPE,
2515 cp_nominated_course_cd IGS_AD_PS_APPL_INST.nominated_course_cd%TYPE,
2516 cp_sequence_number IGS_AD_PS_APPL_INST.sequence_number%TYPE) IS
2517 SELECT ROWID, acai.*
2518 FROM IGS_AD_PS_APPL_INST acai
2519 WHERE acai.person_id = cp_person_id
2520 AND acai.admission_appl_number = cp_admission_appl_number
2521 AND acai.nominated_course_cd = cp_nominated_course_cd
2522 AND acai.sequence_number = cp_sequence_number
2523 FOR UPDATE OF acai.adm_doc_status, acai.adm_entry_qual_status NOWAIT;
2524
2525 CURSOR c_admission_process_type(cp_person_id igs_ad_appl_all.person_id%TYPE,
2526 cp_admission_appl_number igs_ad_appl_all.admission_appl_number%TYPE) IS
2527 SELECT s_admission_process_type
2528 FROM igs_ad_appl_all
2529 WHERE person_id = cp_person_id
2530 AND admission_appl_number = cp_admission_appl_number;
2531
2532 Rec_IGS_AD_PS_APPL_Inst c_upd_acai_eqdo%ROWTYPE;
2533
2534 l_offer_adm_outcome_status IGS_AD_PS_APPL_INST_ALL.adm_outcome_status%TYPE;
2535 l_application_status IGS_AD_PS_APPL_INST_ALL.adm_doc_status%TYPE;
2536
2537 l_offer_resp_status IGS_AD_PS_APPL_INST_ALL.adm_offer_resp_status%TYPE;
2538 l_entry_qual_status IGS_AD_PS_APPL_INST_ALL.adm_entry_qual_status%TYPE;
2539 l_admission_process_type IGS_AD_APPL_ALL.s_admission_process_type%TYPE;
2540 lv_mode VARCHAR2(1) DEFAULT 'R';
2541
2542 l_sc_encoded_text VARCHAR2(4000);
2543 l_sc_msg_count NUMBER;
2544 l_sc_msg_index NUMBER;
2545 l_sc_app_short_name VARCHAR2(50);
2546 l_sc_message_name VARCHAR2(50);
2547
2548 BEGIN
2549
2550 IF NVL(IGS_AD_SS_GEN_001.g_admin_security_on,'N') = 'Y'
2551 THEN
2552 lv_mode := 'S';
2553 END IF;
2554
2555
2556 -- hreddych 3419856 For a NON-AWARD Appl Type the Entry Qual Status and Appl Comp Status
2557 -- should be NOT-APPLIC
2558 OPEN c_admission_process_type(p_person_id, p_admission_appl_number);
2559 FETCH c_admission_process_type
2560 INTO l_admission_process_type;
2561 CLOSE c_admission_process_type;
2562 IF l_admission_process_type = 'NON-AWARD' THEN
2563 l_application_status := igs_ad_gen_009.admp_get_sys_ads('NOT-APPLIC');
2564 l_entry_qual_status := igs_ad_gen_009.admp_get_sys_aeqs('NOT-APPLIC');
2565 ELSE
2566 l_application_status := igs_ad_gen_009.admp_get_sys_ads('SATISFIED');
2567 l_entry_qual_status := igs_ad_gen_009.admp_get_sys_aeqs('QUALIFIED');
2568 END IF;
2569
2570 OPEN c_upd_acai_eqdo(p_person_id,
2571 p_admission_appl_number,
2572 p_nominated_course_cd,
2573 p_sequence_number);
2574
2575 FETCH c_upd_acai_eqdo
2576 INTO Rec_IGS_AD_PS_APPL_Inst;
2577
2578 --Commented for Bug Fix 2395667 Moved the code after TBH call :tray
2579 -- CLOSE c_upd_acai_eqdo;
2580
2581 IF (c_upd_acai_eqdo%FOUND) THEN
2582
2583 IGS_AD_PS_APPL_Inst_Pkg.UPDATE_ROW(X_ROWID => Rec_IGS_AD_PS_APPL_Inst.ROWID,
2584 X_PERSON_ID => Rec_IGS_AD_PS_APPL_Inst.PERSON_ID,
2585 X_ADMISSION_APPL_NUMBER => Rec_IGS_AD_PS_APPL_Inst.ADMISSION_APPL_NUMBER,
2586 X_NOMINATED_COURSE_CD => Rec_IGS_AD_PS_APPL_Inst.NOMINATED_COURSE_CD,
2587 X_SEQUENCE_NUMBER => Rec_IGS_AD_PS_APPL_Inst.SEQUENCE_NUMBER,
2588 X_PREDICTED_GPA => Rec_IGS_AD_PS_APPL_Inst.PREDICTED_GPA,
2589 X_ACADEMIC_INDEX => Rec_IGS_AD_PS_APPL_Inst.ACADEMIC_INDEX,
2590 X_Adm_Cal_Type => Rec_IGS_AD_PS_APPL_Inst.ADM_CAL_TYPE,
2591 X_APP_FILE_LOCATION => Rec_IGS_AD_PS_APPL_Inst.APP_FILE_LOCATION,
2592 X_Adm_Ci_Sequence_Number => Rec_IGS_AD_PS_APPL_Inst.ADM_CI_SEQUENCE_NUMBER,
2593 X_COURSE_CD => Rec_IGS_AD_PS_APPL_Inst.COURSE_CD,
2594 X_APP_SOURCE_ID => Rec_IGS_AD_PS_APPL_Inst.APP_SOURCE_ID,
2595 X_CRV_VERSION_NUMBER => Rec_IGS_AD_PS_APPL_Inst.CRV_VERSION_NUMBER,
2596 X_Waitlist_Rank => Rec_IGS_AD_PS_APPL_Inst.Waitlist_Rank,
2597 X_Waitlist_Status => Rec_IGS_AD_PS_APPL_Inst.Waitlist_Status,
2598 X_LOCATION_CD => Rec_IGS_AD_PS_APPL_Inst.LOCATION_CD,
2599 X_Attent_Other_Inst_Cd => Rec_IGS_AD_PS_APPL_Inst.Attent_Other_Inst_Cd,
2600 X_ATTENDANCE_MODE => Rec_IGS_AD_PS_APPL_Inst.ATTENDANCE_MODE,
2601 X_Edu_Goal_Prior_Enroll_Id => Rec_IGS_AD_PS_APPL_Inst.Edu_Goal_Prior_Enroll_Id,
2602 X_ATTENDANCE_TYPE => Rec_IGS_AD_PS_APPL_Inst.ATTENDANCE_TYPE,
2603 X_Decision_Make_Id => Rec_IGS_AD_PS_APPL_Inst.Decision_Make_Id,
2604 X_UNIT_SET_CD => Rec_IGS_AD_PS_APPL_Inst.UNIT_SET_CD,
2605 X_Decision_Date => Rec_IGS_AD_PS_APPL_Inst.Decision_Date,
2606 X_Attribute_Category => Rec_IGS_AD_PS_APPL_Inst.Attribute_Category,
2607 X_Attribute1 => Rec_IGS_AD_PS_APPL_Inst.Attribute1,
2608 X_Attribute2 => Rec_IGS_AD_PS_APPL_Inst.Attribute2,
2609 X_Attribute3 => Rec_IGS_AD_PS_APPL_Inst.Attribute3,
2610 X_Attribute4 => Rec_IGS_AD_PS_APPL_Inst.Attribute4,
2611 X_Attribute5 => Rec_IGS_AD_PS_APPL_Inst.Attribute5,
2612 X_Attribute6 => Rec_IGS_AD_PS_APPL_Inst.Attribute6,
2613 X_Attribute7 => Rec_IGS_AD_PS_APPL_Inst.Attribute7,
2614 X_Attribute8 => Rec_IGS_AD_PS_APPL_Inst.Attribute8,
2615 X_Attribute9 => Rec_IGS_AD_PS_APPL_Inst.Attribute9,
2616 X_Attribute10 => Rec_IGS_AD_PS_APPL_Inst.Attribute10,
2617 X_Attribute11 => Rec_IGS_AD_PS_APPL_Inst.Attribute11,
2618 X_Attribute12 => Rec_IGS_AD_PS_APPL_Inst.Attribute12,
2619 X_Attribute13 => Rec_IGS_AD_PS_APPL_Inst.Attribute13,
2620 X_Attribute14 => Rec_IGS_AD_PS_APPL_Inst.Attribute14,
2621 X_Attribute15 => Rec_IGS_AD_PS_APPL_Inst.Attribute15,
2622 X_Attribute16 => Rec_IGS_AD_PS_APPL_Inst.Attribute16,
2623 X_Attribute17 => Rec_IGS_AD_PS_APPL_Inst.Attribute17,
2624 X_Attribute18 => Rec_IGS_AD_PS_APPL_Inst.Attribute18,
2625 X_Attribute19 => Rec_IGS_AD_PS_APPL_Inst.Attribute19,
2626 X_Attribute20 => Rec_IGS_AD_PS_APPL_Inst.Attribute20,
2627 X_Decision_Reason_Id => Rec_IGS_AD_PS_APPL_Inst.Decision_Reason_Id,
2628 X_US_VERSION_NUMBER => Rec_IGS_AD_PS_APPL_Inst.US_VERSION_NUMBER,
2629 X_Decision_Notes => Rec_IGS_AD_PS_APPL_Inst.Decision_Notes,
2630 X_Pending_Reason_Id => Rec_IGS_AD_PS_APPL_Inst.Pending_Reason_Id,
2631 X_PREFERENCE_NUMBER => Rec_IGS_AD_PS_APPL_Inst.PREFERENCE_NUMBER,
2632 X_ADM_DOC_STATUS => l_application_status,
2633 X_ADM_ENTRY_QUAL_STATUS => l_entry_qual_status,
2634 X_DEFICIENCY_IN_PREP => Rec_IGS_AD_PS_APPL_Inst.DEFICIENCY_IN_PREP,
2635 X_LATE_ADM_FEE_STATUS => Rec_IGS_AD_PS_APPL_Inst.LATE_ADM_FEE_STATUS,
2636 X_Spl_Consider_Comments => Rec_IGS_AD_PS_APPL_Inst.Spl_Consider_Comments,
2637 X_Apply_For_Finaid => Rec_IGS_AD_PS_APPL_Inst.Apply_For_Finaid,
2638 X_Finaid_Apply_Date => Rec_IGS_AD_PS_APPL_Inst.Finaid_Apply_Date,
2639 X_ADM_OUTCOME_STATUS => Rec_IGS_AD_PS_APPL_Inst.ADM_OUTCOME_STATUS,
2640 X_ADM_OTCM_STAT_AUTH_PER_ID => Rec_IGS_AD_PS_APPL_Inst.ADM_OTCM_STATUS_AUTH_PERSON_ID,
2641 X_ADM_OUTCOME_STATUS_AUTH_DT => Rec_IGS_AD_PS_APPL_Inst.ADM_OUTCOME_STATUS_AUTH_DT,
2642 X_ADM_OUTCOME_STATUS_REASON => Rec_IGS_AD_PS_APPL_Inst.ADM_OUTCOME_STATUS_REASON,
2643 X_OFFER_DT => Rec_IGS_AD_PS_APPL_Inst.OFFER_DT,
2644 X_Offer_Response_Dt => Rec_IGS_AD_PS_APPL_Inst.OFFER_RESPONSE_DT,
2645 X_PRPSD_COMMENCEMENT_DT => Rec_IGS_AD_PS_APPL_Inst.Prpsd_Commencement_Dt,
2646 X_ADM_CNDTNL_OFFER_STATUS => Rec_IGS_AD_PS_APPL_Inst.ADM_CNDTNL_OFFER_STATUS,
2647 X_CNDTNL_OFFER_SATISFIED_DT => Rec_IGS_AD_PS_APPL_Inst.CNDTNL_OFFER_SATISFIED_DT,
2648 X_CNDNL_OFR_MUST_BE_STSFD_IND => Rec_IGS_AD_PS_APPL_Inst.CNDTNL_OFFER_MUST_BE_STSFD_IND,
2649 X_Adm_Offer_Resp_Status => Rec_IGS_AD_PS_APPL_Inst.ADM_OFFER_RESP_STATUS,
2650 X_Actual_Response_Dt => Rec_IGS_AD_PS_APPL_Inst.ACTUAL_RESPONSE_DT,
2651 X_Adm_Offer_Dfrmnt_Status => Rec_IGS_AD_PS_APPL_Inst.ADM_OFFER_DFRMNT_STATUS,
2652 X_Deferred_Adm_Cal_Type => Rec_IGS_AD_PS_APPL_Inst.DEFERRED_ADM_CAL_TYPE,
2653 X_Deferred_Adm_Ci_Sequence_Num => Rec_IGS_AD_PS_APPL_Inst.DEFERRED_ADM_CI_SEQUENCE_NUM,
2654 X_Deferred_Tracking_Id => Rec_IGS_AD_PS_APPL_Inst.DEFERRED_TRACKING_ID,
2655 X_ASS_RANK => Rec_IGS_AD_PS_APPL_Inst.ASS_RANK,
2656 X_SECONDARY_ASS_RANK => Rec_IGS_AD_PS_APPL_Inst.SECONDARY_ASS_RANK,
2657 X_INTR_ACCEPT_ADVICE_NUM => Rec_IGS_AD_PS_APPL_Inst.INTRNTNL_ACCEPTANCE_ADVICE_NUM,
2658 X_ASS_TRACKING_ID => Rec_IGS_AD_PS_APPL_Inst.ASS_TRACKING_ID,
2659 X_FEE_CAT => Rec_IGS_AD_PS_APPL_Inst.FEE_CAT,
2660 X_HECS_PAYMENT_OPTION => Rec_IGS_AD_PS_APPL_Inst.HECS_PAYMENT_OPTION,
2661 X_Expected_Completion_Yr => Rec_IGS_AD_PS_APPL_Inst.EXPECTED_COMPLETION_YR,
2662 X_Expected_Completion_Perd => Rec_IGS_AD_PS_APPL_Inst.EXPECTED_COMPLETION_PERD,
2663 X_CORRESPONDENCE_CAT => Rec_IGS_AD_PS_APPL_Inst.CORRESPONDENCE_CAT,
2664 X_ENROLMENT_CAT => Rec_IGS_AD_PS_APPL_Inst.ENROLMENT_CAT,
2665 X_FUNDING_SOURCE => Rec_IGS_AD_PS_APPL_Inst.FUNDING_SOURCE,
2666 X_APPLICANT_ACPTNCE_CNDTN => Rec_IGS_AD_PS_APPL_Inst.APPLICANT_ACPTNCE_CNDTN,
2667 X_CNDTNL_OFFER_CNDTN => Rec_IGS_AD_PS_APPL_Inst.CNDTNL_OFFER_CNDTN,
2668 X_SS_APPLICATION_ID => Rec_IGS_AD_PS_APPL_Inst.SS_APPLICATION_ID,
2669 X_SS_PWD => Rec_IGS_AD_PS_APPL_Inst.SS_PWD,
2670 X_AUTHORIZED_DT => Rec_IGS_AD_PS_APPL_Inst.AUTHORIZED_DT,
2671 X_AUTHORIZING_PERS_ID => Rec_IGS_AD_PS_APPL_Inst.AUTHORIZING_PERS_ID,
2672 X_IDX_CALC_DATE => Rec_IGS_AD_PS_APPL_Inst.IDX_CALC_DATE,
2673 X_ENTRY_STATUS => Rec_IGS_AD_PS_APPL_Inst.ENTRY_STATUS,
2674 X_ENTRY_LEVEL => Rec_IGS_AD_PS_APPL_Inst.ENTRY_LEVEL,
2675 X_SCH_APL_TO_ID => Rec_IGS_AD_PS_APPL_Inst.SCH_APL_TO_ID,
2676 X_MODE => lv_mode, -- enable security for Admin
2677 X_Attribute21 => Rec_IGS_AD_PS_APPL_Inst.Attribute21,
2678 X_Attribute22 => Rec_IGS_AD_PS_APPL_Inst.Attribute22,
2679 X_Attribute23 => Rec_IGS_AD_PS_APPL_Inst.Attribute23,
2680 X_Attribute24 => Rec_IGS_AD_PS_APPL_Inst.Attribute24,
2681 X_Attribute25 => Rec_IGS_AD_PS_APPL_Inst.Attribute25,
2682 X_Attribute26 => Rec_IGS_AD_PS_APPL_Inst.Attribute26,
2683 X_Attribute27 => Rec_IGS_AD_PS_APPL_Inst.Attribute27,
2684 X_Attribute28 => Rec_IGS_AD_PS_APPL_Inst.Attribute28,
2685 X_Attribute29 => Rec_IGS_AD_PS_APPL_Inst.Attribute29,
2686 X_Attribute30 => Rec_IGS_AD_PS_APPL_Inst.Attribute30,
2687 X_Attribute31 => Rec_IGS_AD_PS_APPL_Inst.Attribute31,
2688 X_Attribute32 => Rec_IGS_AD_PS_APPL_Inst.Attribute32,
2689 X_Attribute33 => Rec_IGS_AD_PS_APPL_Inst.Attribute33,
2690 X_Attribute34 => Rec_IGS_AD_PS_APPL_Inst.Attribute34,
2691 X_Attribute35 => Rec_IGS_AD_PS_APPL_Inst.Attribute35,
2692 X_Attribute36 => Rec_IGS_AD_PS_APPL_Inst.Attribute36,
2693 X_Attribute37 => Rec_IGS_AD_PS_APPL_Inst.Attribute37,
2694 X_Attribute38 => Rec_IGS_AD_PS_APPL_Inst.Attribute38,
2695 X_Attribute39 => Rec_IGS_AD_PS_APPL_Inst.Attribute39,
2696 X_Attribute40 => Rec_IGS_AD_PS_APPL_Inst.Attribute40,
2697 X_FUT_ACAD_CAL_TYPE => Rec_IGS_AD_PS_APPL_Inst.FUTURE_ACAD_CAL_TYPE,
2698 X_FUT_ACAD_CI_SEQUENCE_NUMBER => Rec_IGS_AD_PS_APPL_Inst.FUTURE_ACAD_CI_SEQUENCE_NUMBER,
2699 X_FUT_ADM_CAL_TYPE => Rec_IGS_AD_PS_APPL_Inst.FUTURE_ADM_CAL_TYPE,
2700 X_FUT_ADM_CI_SEQUENCE_NUMBER => Rec_IGS_AD_PS_APPL_Inst.FUTURE_ADM_CI_SEQUENCE_NUMBER,
2701 X_PREV_TERM_ADM_APPL_NUMBER => Rec_IGS_AD_PS_APPL_Inst.PREVIOUS_TERM_ADM_APPL_NUMBER,
2702 X_PREV_TERM_SEQUENCE_NUMBER => Rec_IGS_AD_PS_APPL_Inst.PREVIOUS_TERM_SEQUENCE_NUMBER,
2703 X_FUT_TERM_ADM_APPL_NUMBER => Rec_IGS_AD_PS_APPL_Inst.FUTURE_TERM_ADM_APPL_NUMBER,
2704 X_FUT_TERM_SEQUENCE_NUMBER => Rec_IGS_AD_PS_APPL_Inst.FUTURE_TERM_SEQUENCE_NUMBER,
2705 X_DEF_ACAD_CAL_TYPE => Rec_IGS_AD_PS_APPL_Inst.DEF_ACAD_CAL_TYPE, --Bug 2395510
2706 X_DEF_ACAD_CI_SEQUENCE_NUM => Rec_IGS_AD_PS_APPL_Inst.DEF_ACAD_CI_SEQUENCE_NUM, --Bug 2395510
2707 X_DEF_PREV_TERM_ADM_APPL_NUM => Rec_IGS_AD_PS_APPL_Inst.DEF_PREV_TERM_ADM_APPL_NUM, --Bug 2395510
2708 X_DEF_PREV_APPL_SEQUENCE_NUM => Rec_IGS_AD_PS_APPL_Inst.DEF_PREV_APPL_SEQUENCE_NUM, --Bug 2395510
2709 X_DEF_TERM_ADM_APPL_NUM => Rec_IGS_AD_PS_APPL_Inst.DEF_TERM_ADM_APPL_NUM, --Bug 2395510
2710 X_DEF_APPL_SEQUENCE_NUM => Rec_IGS_AD_PS_APPL_Inst.DEF_APPL_SEQUENCE_NUM, --Bug 2395510
2711 X_APPL_INST_STATUS => Rec_IGS_AD_PS_APPL_Inst.appl_inst_status,
2712 x_ais_reason => Rec_IGS_AD_PS_APPL_Inst.ais_reason,
2713 x_decline_ofr_reason => Rec_IGS_AD_PS_APPL_Inst.decline_ofr_reason
2714 );
2715
2716 -- COMMIT; --tray Bug 2405076 , not needed as the posted data is fine to work with , no need of commit
2717 END IF;
2718
2719 IF c_upd_acai_eqdo%ISOPEN THEN
2720 CLOSE c_upd_acai_eqdo;
2721 END IF;
2722 x_return_status := 'S';
2723 x_message_data := NULL;
2724 EXCEPTION
2725 WHEN OTHERS THEN
2726 l_sc_msg_count := IGS_GE_MSG_STACK.COUNT_MSG;
2727 WHILE l_sc_msg_count <> 0 loop
2728 igs_ge_msg_stack.get(l_sc_msg_count, 'T', l_sc_encoded_text, l_sc_msg_index);
2729 fnd_message.parse_encoded(l_sc_encoded_text, l_sc_app_short_name, l_sc_message_name);
2730 IF l_sc_message_name = 'IGS_SC_POLICY_EXCEPTION' OR l_sc_message_name = 'IGS_SC_POLICY_UPD_DEL_EXCEP' THEN
2731 x_return_status := 'E';
2732 x_message_data := 'IGS_SC_POLICY_EXCEPTION';
2733 RETURN;
2734 END IF;
2735 l_sc_msg_count := l_sc_msg_count - 1;
2736 END LOOP;
2737
2738 IF FND_MSG_PUB.Count_Msg < 1 THEN
2739 Fnd_Message.Set_Name('IGS','IGS_GE_UNHANDLED_EXP');
2740 Fnd_Message.Set_Token('NAME','IGS_AD_SS_GEN_001.Update_Appl_Eqdo_Inst -'||SQLERRM);
2741 IGS_GE_MSG_STACK.ADD;
2742 App_Exception.Raise_Exception;
2743 END IF;
2744 x_return_status := 'E';
2745 x_message_data := 'IGS_GE_UNHANDLED_EXP';
2746
2747 END Update_Appl_Eqdo_Inst;
2748
2749 PROCEDURE Update_Appl_Ofr_Inst(p_person_id IN NUMBER,
2750 p_admission_appl_number IN NUMBER,
2751 p_nominated_course_cd IN VARCHAR2,
2752 p_sequence_number IN NUMBER,
2753 x_return_status OUT NOCOPY VARCHAR2,
2754 x_message_data OUT NOCOPY VARCHAR2) IS
2755
2756 CURSOR c_upd_acai_outcm(cp_person_id IGS_AD_PS_APPL_INST.person_id%TYPE,
2757 cp_admission_appl_number IGS_AD_PS_APPL_INST.admission_appl_number%TYPE,
2758 cp_nominated_course_cd IGS_AD_PS_APPL_INST.nominated_course_cd%TYPE,
2759 cp_sequence_number IGS_AD_PS_APPL_INST.sequence_number%TYPE) IS
2760 SELECT ROWID, acai.*
2761 FROM IGS_AD_PS_APPL_INST acai
2762 WHERE acai.person_id = cp_person_id
2763 AND acai.admission_appl_number = cp_admission_appl_number
2764 AND acai.nominated_course_cd = cp_nominated_course_cd
2765 AND acai.sequence_number = cp_sequence_number
2766 FOR UPDATE OF acai.adm_outcome_status NOWAIT;
2767
2768 Rec_IGS_AD_PS_APPL_Inst c_upd_acai_outcm%ROWTYPE;
2769
2770 l_offer_adm_outcome_status IGS_AD_PS_APPL_INST_ALL.adm_outcome_status%TYPE;
2771 l_application_status IGS_AD_PS_APPL_INST_ALL.adm_doc_status%TYPE;
2772
2773 l_offer_resp_status IGS_AD_PS_APPL_INST_ALL.adm_offer_resp_status%TYPE;
2774 l_entry_qual_status IGS_AD_PS_APPL_INST_ALL.adm_entry_qual_status%TYPE;
2775
2776 lv_mode VARCHAR2(1) DEFAULT 'R';
2777
2778 l_sc_encoded_text VARCHAR2(4000);
2779 l_sc_msg_count NUMBER;
2780 l_sc_msg_index NUMBER;
2781 l_sc_app_short_name VARCHAR2(50);
2782 l_sc_message_name VARCHAR2(50);
2783 BEGIN
2784
2785 IF NVL(IGS_AD_SS_GEN_001.g_admin_security_on,'N') = 'Y'
2786 THEN
2787 lv_mode := 'S';
2788 END IF;
2789
2790 l_offer_adm_outcome_status := IGS_AD_GEN_009.ADMP_GET_SYS_AOS('OFFER');
2791 l_offer_resp_status := IGS_AD_GEN_009.ADMP_GET_SYS_AORS('PENDING');
2792
2793 OPEN c_upd_acai_outcm(p_person_id,
2794 p_admission_appl_number,
2795 p_nominated_course_cd,
2796 p_sequence_number);
2797
2798 FETCH c_upd_acai_outcm
2799 INTO Rec_IGS_AD_PS_APPL_Inst;
2800
2801 --Commented for Bug Fix 2395667 Moved the code after TBH call :tray
2802 -- CLOSE c_upd_acai_outcm;
2803
2804 IF (c_upd_acai_outcm%FOUND) THEN
2805
2806 IGS_AD_PS_APPL_Inst_Pkg.UPDATE_ROW(X_ROWID => Rec_IGS_AD_PS_APPL_Inst.ROWID,
2807 X_PERSON_ID => Rec_IGS_AD_PS_APPL_Inst.PERSON_ID,
2808 X_ADMISSION_APPL_NUMBER => Rec_IGS_AD_PS_APPL_Inst.ADMISSION_APPL_NUMBER,
2809 X_NOMINATED_COURSE_CD => Rec_IGS_AD_PS_APPL_Inst.NOMINATED_COURSE_CD,
2810 X_SEQUENCE_NUMBER => Rec_IGS_AD_PS_APPL_Inst.SEQUENCE_NUMBER,
2811 X_PREDICTED_GPA => Rec_IGS_AD_PS_APPL_Inst.PREDICTED_GPA,
2812 X_ACADEMIC_INDEX => Rec_IGS_AD_PS_APPL_Inst.ACADEMIC_INDEX,
2813 X_Adm_Cal_Type => Rec_IGS_AD_PS_APPL_Inst.ADM_CAL_TYPE,
2814 X_APP_FILE_LOCATION => Rec_IGS_AD_PS_APPL_Inst.APP_FILE_LOCATION,
2815 X_Adm_Ci_Sequence_Number => Rec_IGS_AD_PS_APPL_Inst.ADM_CI_SEQUENCE_NUMBER,
2816 X_COURSE_CD => Rec_IGS_AD_PS_APPL_Inst.COURSE_CD,
2817 X_APP_SOURCE_ID => Rec_IGS_AD_PS_APPL_Inst.APP_SOURCE_ID,
2818 X_CRV_VERSION_NUMBER => Rec_IGS_AD_PS_APPL_Inst.CRV_VERSION_NUMBER,
2819 X_Waitlist_Rank => Rec_IGS_AD_PS_APPL_Inst.Waitlist_Rank,
2820 X_Waitlist_Status => Rec_IGS_AD_PS_APPL_Inst.Waitlist_Status,
2821 X_LOCATION_CD => Rec_IGS_AD_PS_APPL_Inst.LOCATION_CD,
2822 X_Attent_Other_Inst_Cd => Rec_IGS_AD_PS_APPL_Inst.Attent_Other_Inst_Cd,
2823 X_ATTENDANCE_MODE => Rec_IGS_AD_PS_APPL_Inst.ATTENDANCE_MODE,
2824 X_Edu_Goal_Prior_Enroll_Id => Rec_IGS_AD_PS_APPL_Inst.Edu_Goal_Prior_Enroll_Id,
2825 X_ATTENDANCE_TYPE => Rec_IGS_AD_PS_APPL_Inst.ATTENDANCE_TYPE,
2826 X_Decision_Make_Id => Rec_IGS_AD_PS_APPL_Inst.Decision_Make_Id,
2827 X_UNIT_SET_CD => Rec_IGS_AD_PS_APPL_Inst.UNIT_SET_CD,
2828 X_Decision_Date => Rec_IGS_AD_PS_APPL_Inst.Decision_Date,
2829 X_Attribute_Category => Rec_IGS_AD_PS_APPL_Inst.Attribute_Category,
2830 X_Attribute1 => Rec_IGS_AD_PS_APPL_Inst.Attribute1,
2831 X_Attribute2 => Rec_IGS_AD_PS_APPL_Inst.Attribute2,
2832 X_Attribute3 => Rec_IGS_AD_PS_APPL_Inst.Attribute3,
2833 X_Attribute4 => Rec_IGS_AD_PS_APPL_Inst.Attribute4,
2834 X_Attribute5 => Rec_IGS_AD_PS_APPL_Inst.Attribute5,
2835 X_Attribute6 => Rec_IGS_AD_PS_APPL_Inst.Attribute6,
2836 X_Attribute7 => Rec_IGS_AD_PS_APPL_Inst.Attribute7,
2837 X_Attribute8 => Rec_IGS_AD_PS_APPL_Inst.Attribute8,
2838 X_Attribute9 => Rec_IGS_AD_PS_APPL_Inst.Attribute9,
2839 X_Attribute10 => Rec_IGS_AD_PS_APPL_Inst.Attribute10,
2840 X_Attribute11 => Rec_IGS_AD_PS_APPL_Inst.Attribute11,
2841 X_Attribute12 => Rec_IGS_AD_PS_APPL_Inst.Attribute12,
2842 X_Attribute13 => Rec_IGS_AD_PS_APPL_Inst.Attribute13,
2843 X_Attribute14 => Rec_IGS_AD_PS_APPL_Inst.Attribute14,
2844 X_Attribute15 => Rec_IGS_AD_PS_APPL_Inst.Attribute15,
2845 X_Attribute16 => Rec_IGS_AD_PS_APPL_Inst.Attribute16,
2846 X_Attribute17 => Rec_IGS_AD_PS_APPL_Inst.Attribute17,
2847 X_Attribute18 => Rec_IGS_AD_PS_APPL_Inst.Attribute18,
2848 X_Attribute19 => Rec_IGS_AD_PS_APPL_Inst.Attribute19,
2849 X_Attribute20 => Rec_IGS_AD_PS_APPL_Inst.Attribute20,
2850 X_Decision_Reason_Id => Rec_IGS_AD_PS_APPL_Inst.Decision_Reason_Id,
2851 X_US_VERSION_NUMBER => Rec_IGS_AD_PS_APPL_Inst.US_VERSION_NUMBER,
2852 X_Decision_Notes => Rec_IGS_AD_PS_APPL_Inst.Decision_Notes,
2853 X_Pending_Reason_Id => Rec_IGS_AD_PS_APPL_Inst.Pending_Reason_Id,
2854 X_PREFERENCE_NUMBER => Rec_IGS_AD_PS_APPL_Inst.PREFERENCE_NUMBER,
2855 X_ADM_DOC_STATUS => Rec_IGS_AD_PS_APPL_Inst.ADM_DOC_STATUS,
2856 X_ADM_ENTRY_QUAL_STATUS => Rec_IGS_AD_PS_APPL_Inst.ADM_ENTRY_QUAL_STATUS,
2857 X_DEFICIENCY_IN_PREP => Rec_IGS_AD_PS_APPL_Inst.DEFICIENCY_IN_PREP,
2858 X_LATE_ADM_FEE_STATUS => Rec_IGS_AD_PS_APPL_Inst.LATE_ADM_FEE_STATUS,
2859 X_Spl_Consider_Comments => Rec_IGS_AD_PS_APPL_Inst.Spl_Consider_Comments,
2860 X_Apply_For_Finaid => Rec_IGS_AD_PS_APPL_Inst.Apply_For_Finaid,
2861 X_Finaid_Apply_Date => Rec_IGS_AD_PS_APPL_Inst.Finaid_Apply_Date,
2862 X_ADM_OUTCOME_STATUS => l_offer_adm_outcome_status,
2863 X_ADM_OTCM_STAT_AUTH_PER_ID => Rec_IGS_AD_PS_APPL_Inst.ADM_OTCM_STATUS_AUTH_PERSON_ID,
2864 X_ADM_OUTCOME_STATUS_AUTH_DT => Rec_IGS_AD_PS_APPL_Inst.ADM_OUTCOME_STATUS_AUTH_DT,
2865 X_ADM_OUTCOME_STATUS_REASON => Rec_IGS_AD_PS_APPL_Inst.ADM_OUTCOME_STATUS_REASON,
2866 X_OFFER_DT => SYSDATE,
2867 X_Offer_Response_Dt => SYSDATE,
2868 X_PRPSD_COMMENCEMENT_DT => Rec_IGS_AD_PS_APPL_Inst.Prpsd_Commencement_Dt,
2869 X_ADM_CNDTNL_OFFER_STATUS => Rec_IGS_AD_PS_APPL_Inst.ADM_CNDTNL_OFFER_STATUS,
2870 X_CNDTNL_OFFER_SATISFIED_DT => Rec_IGS_AD_PS_APPL_Inst.CNDTNL_OFFER_SATISFIED_DT,
2871 X_CNDNL_OFR_MUST_BE_STSFD_IND => Rec_IGS_AD_PS_APPL_Inst.CNDTNL_OFFER_MUST_BE_STSFD_IND,
2872 X_Adm_Offer_Resp_Status => l_offer_resp_status,
2873 X_Actual_Response_Dt => Rec_IGS_AD_PS_APPL_Inst.ACTUAL_RESPONSE_DT,
2874 X_Adm_Offer_Dfrmnt_Status => Rec_IGS_AD_PS_APPL_Inst.ADM_OFFER_DFRMNT_STATUS,
2875 X_Deferred_Adm_Cal_Type => Rec_IGS_AD_PS_APPL_Inst.DEFERRED_ADM_CAL_TYPE,
2876 X_Deferred_Adm_Ci_Sequence_Num => Rec_IGS_AD_PS_APPL_Inst.DEFERRED_ADM_CI_SEQUENCE_NUM,
2877 X_Deferred_Tracking_Id => Rec_IGS_AD_PS_APPL_Inst.DEFERRED_TRACKING_ID,
2878 X_ASS_RANK => Rec_IGS_AD_PS_APPL_Inst.ASS_RANK,
2879 X_SECONDARY_ASS_RANK => Rec_IGS_AD_PS_APPL_Inst.SECONDARY_ASS_RANK,
2880 X_INTR_ACCEPT_ADVICE_NUM => Rec_IGS_AD_PS_APPL_Inst.INTRNTNL_ACCEPTANCE_ADVICE_NUM,
2881 X_ASS_TRACKING_ID => Rec_IGS_AD_PS_APPL_Inst.ASS_TRACKING_ID,
2882 X_FEE_CAT => Rec_IGS_AD_PS_APPL_Inst.FEE_CAT,
2883 X_HECS_PAYMENT_OPTION => Rec_IGS_AD_PS_APPL_Inst.HECS_PAYMENT_OPTION,
2884 X_Expected_Completion_Yr => Rec_IGS_AD_PS_APPL_Inst.EXPECTED_COMPLETION_YR,
2885 X_Expected_Completion_Perd => Rec_IGS_AD_PS_APPL_Inst.EXPECTED_COMPLETION_PERD,
2886 X_CORRESPONDENCE_CAT => Rec_IGS_AD_PS_APPL_Inst.CORRESPONDENCE_CAT,
2887 X_ENROLMENT_CAT => Rec_IGS_AD_PS_APPL_Inst.ENROLMENT_CAT,
2888 X_FUNDING_SOURCE => Rec_IGS_AD_PS_APPL_Inst.FUNDING_SOURCE,
2889 X_APPLICANT_ACPTNCE_CNDTN => Rec_IGS_AD_PS_APPL_Inst.APPLICANT_ACPTNCE_CNDTN,
2890 X_CNDTNL_OFFER_CNDTN => Rec_IGS_AD_PS_APPL_Inst.CNDTNL_OFFER_CNDTN,
2891 X_SS_APPLICATION_ID => Rec_IGS_AD_PS_APPL_Inst.SS_APPLICATION_ID,
2892 X_SS_PWD => Rec_IGS_AD_PS_APPL_Inst.SS_PWD,
2893 X_AUTHORIZED_DT => Rec_IGS_AD_PS_APPL_Inst.AUTHORIZED_DT,
2894 X_AUTHORIZING_PERS_ID => Rec_IGS_AD_PS_APPL_Inst.AUTHORIZING_PERS_ID,
2895 X_IDX_CALC_DATE => Rec_IGS_AD_PS_APPL_Inst.IDX_CALC_DATE,
2896 X_ENTRY_STATUS => Rec_IGS_AD_PS_APPL_Inst.ENTRY_STATUS,
2897 X_ENTRY_LEVEL => Rec_IGS_AD_PS_APPL_Inst.ENTRY_LEVEL,
2898 X_SCH_APL_TO_ID => Rec_IGS_AD_PS_APPL_Inst.SCH_APL_TO_ID,
2899 X_MODE => lv_mode, -- enable security for Admin
2900 X_Attribute21 => Rec_IGS_AD_PS_APPL_Inst.Attribute21,
2901 X_Attribute22 => Rec_IGS_AD_PS_APPL_Inst.Attribute22,
2902 X_Attribute23 => Rec_IGS_AD_PS_APPL_Inst.Attribute23,
2903 X_Attribute24 => Rec_IGS_AD_PS_APPL_Inst.Attribute24,
2904 X_Attribute25 => Rec_IGS_AD_PS_APPL_Inst.Attribute25,
2905 X_Attribute26 => Rec_IGS_AD_PS_APPL_Inst.Attribute26,
2906 X_Attribute27 => Rec_IGS_AD_PS_APPL_Inst.Attribute27,
2907 X_Attribute28 => Rec_IGS_AD_PS_APPL_Inst.Attribute28,
2908 X_Attribute29 => Rec_IGS_AD_PS_APPL_Inst.Attribute29,
2909 X_Attribute30 => Rec_IGS_AD_PS_APPL_Inst.Attribute30,
2910 X_Attribute31 => Rec_IGS_AD_PS_APPL_Inst.Attribute31,
2911 X_Attribute32 => Rec_IGS_AD_PS_APPL_Inst.Attribute32,
2912 X_Attribute33 => Rec_IGS_AD_PS_APPL_Inst.Attribute33,
2913 X_Attribute34 => Rec_IGS_AD_PS_APPL_Inst.Attribute34,
2914 X_Attribute35 => Rec_IGS_AD_PS_APPL_Inst.Attribute35,
2915 X_Attribute36 => Rec_IGS_AD_PS_APPL_Inst.Attribute36,
2916 X_Attribute37 => Rec_IGS_AD_PS_APPL_Inst.Attribute37,
2917 X_Attribute38 => Rec_IGS_AD_PS_APPL_Inst.Attribute38,
2918 X_Attribute39 => Rec_IGS_AD_PS_APPL_Inst.Attribute39,
2919 X_Attribute40 => Rec_IGS_AD_PS_APPL_Inst.Attribute40,
2920 X_FUT_ACAD_CAL_TYPE => Rec_IGS_AD_PS_APPL_Inst.FUTURE_ACAD_CAL_TYPE,
2921 X_FUT_ACAD_CI_SEQUENCE_NUMBER => Rec_IGS_AD_PS_APPL_Inst.FUTURE_ACAD_CI_SEQUENCE_NUMBER,
2922 X_FUT_ADM_CAL_TYPE => Rec_IGS_AD_PS_APPL_Inst.FUTURE_ADM_CAL_TYPE,
2923 X_FUT_ADM_CI_SEQUENCE_NUMBER => Rec_IGS_AD_PS_APPL_Inst.FUTURE_ADM_CI_SEQUENCE_NUMBER,
2924 X_PREV_TERM_ADM_APPL_NUMBER => Rec_IGS_AD_PS_APPL_Inst.PREVIOUS_TERM_ADM_APPL_NUMBER,
2925 X_PREV_TERM_SEQUENCE_NUMBER => Rec_IGS_AD_PS_APPL_Inst.PREVIOUS_TERM_SEQUENCE_NUMBER,
2926 X_FUT_TERM_ADM_APPL_NUMBER => Rec_IGS_AD_PS_APPL_Inst.FUTURE_TERM_ADM_APPL_NUMBER,
2927 X_FUT_TERM_SEQUENCE_NUMBER => Rec_IGS_AD_PS_APPL_Inst.FUTURE_TERM_SEQUENCE_NUMBER,
2928 X_DEF_ACAD_CAL_TYPE => Rec_IGS_AD_PS_APPL_Inst.DEF_ACAD_CAL_TYPE, --Bug 2395510
2929 X_DEF_ACAD_CI_SEQUENCE_NUM => Rec_IGS_AD_PS_APPL_Inst.DEF_ACAD_CI_SEQUENCE_NUM, --Bug 2395510
2930 X_DEF_PREV_TERM_ADM_APPL_NUM => Rec_IGS_AD_PS_APPL_Inst.DEF_PREV_TERM_ADM_APPL_NUM, --Bug 2395510
2931 X_DEF_PREV_APPL_SEQUENCE_NUM => Rec_IGS_AD_PS_APPL_Inst.DEF_PREV_APPL_SEQUENCE_NUM, --Bug 2395510
2932 X_DEF_TERM_ADM_APPL_NUM => Rec_IGS_AD_PS_APPL_Inst.DEF_TERM_ADM_APPL_NUM, --Bug 2395510
2933 X_DEF_APPL_SEQUENCE_NUM => Rec_IGS_AD_PS_APPL_Inst.DEF_APPL_SEQUENCE_NUM, --Bug 2395510
2934 X_APPL_INST_STATUS => Rec_IGS_AD_PS_APPL_Inst.appl_inst_status,
2935 x_ais_reason => Rec_IGS_AD_PS_APPL_Inst.ais_reason,
2936 x_decline_ofr_reason => Rec_IGS_AD_PS_APPL_Inst.decline_ofr_reason
2937 );
2938
2939 --COMMIT;
2940 END IF;
2941
2942 IF c_upd_acai_outcm%ISOPEN THEN
2943 CLOSE c_upd_acai_outcm;
2944 END IF;
2945 x_return_status := 'S';
2946 x_message_data := NULL;
2947 EXCEPTION
2948 WHEN OTHERS THEN
2949 l_sc_msg_count := IGS_GE_MSG_STACK.COUNT_MSG;
2950 WHILE l_sc_msg_count <> 0 loop
2951 igs_ge_msg_stack.get(l_sc_msg_count, 'T', l_sc_encoded_text, l_sc_msg_index);
2952 fnd_message.parse_encoded(l_sc_encoded_text, l_sc_app_short_name, l_sc_message_name);
2953 IF l_sc_message_name = 'IGS_SC_POLICY_EXCEPTION' OR l_sc_message_name = 'IGS_SC_POLICY_UPD_DEL_EXCEP' THEN
2954 x_return_status := 'E';
2955 x_message_data := 'IGS_SC_POLICY_EXCEPTION';
2956 RETURN;
2957 END IF;
2958 l_sc_msg_count := l_sc_msg_count - 1;
2959 END LOOP;
2960
2961 IF FND_MSG_PUB.Count_Msg < 1 THEN
2962 Fnd_Message.Set_Name('IGS','IGS_GE_UNHANDLED_EXP');
2963 Fnd_Message.Set_Token('NAME','IGS_AD_SS_GEN_001.Update_Appl_Ofr_Inst -'||SQLERRM);
2964 IGS_GE_MSG_STACK.ADD;
2965 App_Exception.Raise_Exception;
2966 END IF;
2967 x_return_status := 'E';
2968 x_message_data := 'IGS_GE_UNHANDLED_EXP';
2969
2970 END Update_Appl_Ofr_Inst;
2971
2972 PROCEDURE Update_Appl_Ofres_Inst(p_person_id IN NUMBER,
2973 p_admission_appl_number IN NUMBER,
2974 p_nominated_course_cd IN VARCHAR2,
2975 p_sequence_number IN NUMBER,
2976 x_return_status OUT NOCOPY VARCHAR2,
2977 x_message_data OUT NOCOPY VARCHAR2) IS
2978
2979 CURSOR c_upd_acai_resp(cp_person_id IGS_AD_PS_APPL_INST.person_id%TYPE,
2980 cp_admission_appl_number IGS_AD_PS_APPL_INST.admission_appl_number%TYPE,
2981 cp_nominated_course_cd IGS_AD_PS_APPL_INST.nominated_course_cd%TYPE,
2982 cp_sequence_number IGS_AD_PS_APPL_INST.sequence_number%TYPE) IS
2983 SELECT ROWID, acai.*
2984 FROM IGS_AD_PS_APPL_INST acai
2985 WHERE acai.person_id = cp_person_id
2986 AND acai.admission_appl_number = cp_admission_appl_number
2987 AND acai.nominated_course_cd = cp_nominated_course_cd
2988 AND acai.sequence_number = cp_sequence_number
2989 FOR UPDATE OF acai.ADM_OFFER_RESP_STATUS NOWAIT;
2990
2991 Rec_IGS_AD_PS_APPL_Inst c_upd_acai_resp%ROWTYPE;
2992
2993 l_offer_resp_status IGS_AD_PS_APPL_INST_ALL.adm_offer_resp_status%TYPE;
2994
2995 lv_mode VARCHAR2(1) DEFAULT 'R';
2996 BEGIN
2997
2998 IF NVL(IGS_AD_SS_GEN_001.g_admin_security_on,'N') = 'Y'
2999 THEN
3000 lv_mode := 'S';
3001 END IF;
3002
3003 l_offer_resp_status := IGS_AD_GEN_009.ADMP_GET_SYS_AORS('ACCEPTED');
3004
3005 OPEN c_upd_acai_resp(p_person_id,
3006 p_admission_appl_number,
3007 p_nominated_course_cd,
3008 p_sequence_number);
3009
3010 FETCH c_upd_acai_resp
3011 INTO Rec_IGS_AD_PS_APPL_Inst;
3012
3013 --Commented for Bug Fix 2395667, Moved the code after TBH call :tray
3014 -- CLOSE c_upd_acai_resp;
3015
3016 IF (c_upd_acai_resp%FOUND) THEN
3017
3018 IGS_AD_PS_APPL_Inst_Pkg.UPDATE_ROW(X_ROWID => Rec_IGS_AD_PS_APPL_Inst.ROWID,
3019 X_PERSON_ID => Rec_IGS_AD_PS_APPL_Inst.PERSON_ID,
3020 X_ADMISSION_APPL_NUMBER => Rec_IGS_AD_PS_APPL_Inst.ADMISSION_APPL_NUMBER,
3021 X_NOMINATED_COURSE_CD => Rec_IGS_AD_PS_APPL_Inst.NOMINATED_COURSE_CD,
3022 X_SEQUENCE_NUMBER => Rec_IGS_AD_PS_APPL_Inst.SEQUENCE_NUMBER,
3023 X_PREDICTED_GPA => Rec_IGS_AD_PS_APPL_Inst.PREDICTED_GPA,
3024 X_ACADEMIC_INDEX => Rec_IGS_AD_PS_APPL_Inst.ACADEMIC_INDEX,
3025 X_Adm_Cal_Type => Rec_IGS_AD_PS_APPL_Inst.ADM_CAL_TYPE,
3026 X_APP_FILE_LOCATION => Rec_IGS_AD_PS_APPL_Inst.APP_FILE_LOCATION,
3027 X_Adm_Ci_Sequence_Number => Rec_IGS_AD_PS_APPL_Inst.ADM_CI_SEQUENCE_NUMBER,
3028 X_COURSE_CD => Rec_IGS_AD_PS_APPL_Inst.COURSE_CD,
3029 X_APP_SOURCE_ID => Rec_IGS_AD_PS_APPL_Inst.APP_SOURCE_ID,
3030 X_CRV_VERSION_NUMBER => Rec_IGS_AD_PS_APPL_Inst.CRV_VERSION_NUMBER,
3031 X_Waitlist_Rank => Rec_IGS_AD_PS_APPL_Inst.Waitlist_Rank,
3032 X_Waitlist_Status => Rec_IGS_AD_PS_APPL_Inst.Waitlist_Status,
3033 X_LOCATION_CD => Rec_IGS_AD_PS_APPL_Inst.LOCATION_CD,
3034 X_Attent_Other_Inst_Cd => Rec_IGS_AD_PS_APPL_Inst.Attent_Other_Inst_Cd,
3035 X_ATTENDANCE_MODE => Rec_IGS_AD_PS_APPL_Inst.ATTENDANCE_MODE,
3036 X_Edu_Goal_Prior_Enroll_Id => Rec_IGS_AD_PS_APPL_Inst.Edu_Goal_Prior_Enroll_Id,
3037 X_ATTENDANCE_TYPE => Rec_IGS_AD_PS_APPL_Inst.ATTENDANCE_TYPE,
3038 X_Decision_Make_Id => Rec_IGS_AD_PS_APPL_Inst.Decision_Make_Id,
3039 X_UNIT_SET_CD => Rec_IGS_AD_PS_APPL_Inst.UNIT_SET_CD,
3040 X_Decision_Date => Rec_IGS_AD_PS_APPL_Inst.Decision_Date,
3041 X_Attribute_Category => Rec_IGS_AD_PS_APPL_Inst.Attribute_Category,
3042 X_Attribute1 => Rec_IGS_AD_PS_APPL_Inst.Attribute1,
3043 X_Attribute2 => Rec_IGS_AD_PS_APPL_Inst.Attribute2,
3044 X_Attribute3 => Rec_IGS_AD_PS_APPL_Inst.Attribute3,
3045 X_Attribute4 => Rec_IGS_AD_PS_APPL_Inst.Attribute4,
3046 X_Attribute5 => Rec_IGS_AD_PS_APPL_Inst.Attribute5,
3047 X_Attribute6 => Rec_IGS_AD_PS_APPL_Inst.Attribute6,
3048 X_Attribute7 => Rec_IGS_AD_PS_APPL_Inst.Attribute7,
3049 X_Attribute8 => Rec_IGS_AD_PS_APPL_Inst.Attribute8,
3050 X_Attribute9 => Rec_IGS_AD_PS_APPL_Inst.Attribute9,
3051 X_Attribute10 => Rec_IGS_AD_PS_APPL_Inst.Attribute10,
3052 X_Attribute11 => Rec_IGS_AD_PS_APPL_Inst.Attribute11,
3053 X_Attribute12 => Rec_IGS_AD_PS_APPL_Inst.Attribute12,
3054 X_Attribute13 => Rec_IGS_AD_PS_APPL_Inst.Attribute13,
3055 X_Attribute14 => Rec_IGS_AD_PS_APPL_Inst.Attribute14,
3056 X_Attribute15 => Rec_IGS_AD_PS_APPL_Inst.Attribute15,
3057 X_Attribute16 => Rec_IGS_AD_PS_APPL_Inst.Attribute16,
3058 X_Attribute17 => Rec_IGS_AD_PS_APPL_Inst.Attribute17,
3059 X_Attribute18 => Rec_IGS_AD_PS_APPL_Inst.Attribute18,
3060 X_Attribute19 => Rec_IGS_AD_PS_APPL_Inst.Attribute19,
3061 X_Attribute20 => Rec_IGS_AD_PS_APPL_Inst.Attribute20,
3062 X_Decision_Reason_Id => Rec_IGS_AD_PS_APPL_Inst.Decision_Reason_Id,
3063 X_US_VERSION_NUMBER => Rec_IGS_AD_PS_APPL_Inst.US_VERSION_NUMBER,
3064 X_Decision_Notes => Rec_IGS_AD_PS_APPL_Inst.Decision_Notes,
3065 X_Pending_Reason_Id => Rec_IGS_AD_PS_APPL_Inst.Pending_Reason_Id,
3066 X_PREFERENCE_NUMBER => Rec_IGS_AD_PS_APPL_Inst.PREFERENCE_NUMBER,
3067 X_ADM_DOC_STATUS => Rec_IGS_AD_PS_APPL_Inst.ADM_DOC_STATUS,
3068 X_ADM_ENTRY_QUAL_STATUS => Rec_IGS_AD_PS_APPL_Inst.ADM_ENTRY_QUAL_STATUS,
3069 X_DEFICIENCY_IN_PREP => Rec_IGS_AD_PS_APPL_Inst.DEFICIENCY_IN_PREP,
3070 X_LATE_ADM_FEE_STATUS => Rec_IGS_AD_PS_APPL_Inst.LATE_ADM_FEE_STATUS,
3071 X_Spl_Consider_Comments => Rec_IGS_AD_PS_APPL_Inst.Spl_Consider_Comments,
3072 X_Apply_For_Finaid => Rec_IGS_AD_PS_APPL_Inst.Apply_For_Finaid,
3073 X_Finaid_Apply_Date => Rec_IGS_AD_PS_APPL_Inst.Finaid_Apply_Date,
3074 X_ADM_OUTCOME_STATUS => Rec_IGS_AD_PS_APPL_Inst.ADM_OUTCOME_STATUS,
3075 X_ADM_OTCM_STAT_AUTH_PER_ID => Rec_IGS_AD_PS_APPL_Inst.ADM_OTCM_STATUS_AUTH_PERSON_ID,
3076 X_ADM_OUTCOME_STATUS_AUTH_DT => Rec_IGS_AD_PS_APPL_Inst.ADM_OUTCOME_STATUS_AUTH_DT,
3077 X_ADM_OUTCOME_STATUS_REASON => Rec_IGS_AD_PS_APPL_Inst.ADM_OUTCOME_STATUS_REASON,
3078 X_OFFER_DT => Rec_IGS_AD_PS_APPL_Inst.OFFER_DT,
3079 X_Offer_Response_Dt => Rec_IGS_AD_PS_APPL_Inst.OFFER_RESPONSE_DT,
3080 X_PRPSD_COMMENCEMENT_DT => Rec_IGS_AD_PS_APPL_Inst.Prpsd_Commencement_Dt,
3081 X_ADM_CNDTNL_OFFER_STATUS => Rec_IGS_AD_PS_APPL_Inst.ADM_CNDTNL_OFFER_STATUS,
3082 X_CNDTNL_OFFER_SATISFIED_DT => Rec_IGS_AD_PS_APPL_Inst.CNDTNL_OFFER_SATISFIED_DT,
3083 X_CNDNL_OFR_MUST_BE_STSFD_IND => Rec_IGS_AD_PS_APPL_Inst.CNDTNL_OFFER_MUST_BE_STSFD_IND,
3084 X_Adm_Offer_Resp_Status => l_offer_resp_status,
3085 X_Actual_Response_Dt => SYSDATE,
3086 X_Adm_Offer_Dfrmnt_Status => Rec_IGS_AD_PS_APPL_Inst.ADM_OFFER_DFRMNT_STATUS,
3087 X_Deferred_Adm_Cal_Type => Rec_IGS_AD_PS_APPL_Inst.DEFERRED_ADM_CAL_TYPE,
3088 X_Deferred_Adm_Ci_Sequence_Num => Rec_IGS_AD_PS_APPL_Inst.DEFERRED_ADM_CI_SEQUENCE_NUM,
3089 X_Deferred_Tracking_Id => Rec_IGS_AD_PS_APPL_Inst.DEFERRED_TRACKING_ID,
3090 X_ASS_RANK => Rec_IGS_AD_PS_APPL_Inst.ASS_RANK,
3091 X_SECONDARY_ASS_RANK => Rec_IGS_AD_PS_APPL_Inst.SECONDARY_ASS_RANK,
3092 X_INTR_ACCEPT_ADVICE_NUM => Rec_IGS_AD_PS_APPL_Inst.INTRNTNL_ACCEPTANCE_ADVICE_NUM,
3093 X_ASS_TRACKING_ID => Rec_IGS_AD_PS_APPL_Inst.ASS_TRACKING_ID,
3094 X_FEE_CAT => Rec_IGS_AD_PS_APPL_Inst.FEE_CAT,
3095 X_HECS_PAYMENT_OPTION => Rec_IGS_AD_PS_APPL_Inst.HECS_PAYMENT_OPTION,
3096 X_Expected_Completion_Yr => Rec_IGS_AD_PS_APPL_Inst.EXPECTED_COMPLETION_YR,
3097 X_Expected_Completion_Perd => Rec_IGS_AD_PS_APPL_Inst.EXPECTED_COMPLETION_PERD,
3098 X_CORRESPONDENCE_CAT => Rec_IGS_AD_PS_APPL_Inst.CORRESPONDENCE_CAT,
3099 X_ENROLMENT_CAT => Rec_IGS_AD_PS_APPL_Inst.ENROLMENT_CAT,
3100 X_FUNDING_SOURCE => Rec_IGS_AD_PS_APPL_Inst.FUNDING_SOURCE,
3101 X_APPLICANT_ACPTNCE_CNDTN => Rec_IGS_AD_PS_APPL_Inst.APPLICANT_ACPTNCE_CNDTN,
3102 X_CNDTNL_OFFER_CNDTN => Rec_IGS_AD_PS_APPL_Inst.CNDTNL_OFFER_CNDTN,
3103 X_SS_APPLICATION_ID => Rec_IGS_AD_PS_APPL_Inst.SS_APPLICATION_ID,
3104 X_SS_PWD => Rec_IGS_AD_PS_APPL_Inst.SS_PWD,
3105 X_AUTHORIZED_DT => Rec_IGS_AD_PS_APPL_Inst.AUTHORIZED_DT,
3106 X_AUTHORIZING_PERS_ID => Rec_IGS_AD_PS_APPL_Inst.AUTHORIZING_PERS_ID,
3107 X_IDX_CALC_DATE => Rec_IGS_AD_PS_APPL_Inst.IDX_CALC_DATE,
3108 X_ENTRY_STATUS => Rec_IGS_AD_PS_APPL_Inst.ENTRY_STATUS,
3109 X_ENTRY_LEVEL => Rec_IGS_AD_PS_APPL_Inst.ENTRY_LEVEL,
3110 X_SCH_APL_TO_ID => Rec_IGS_AD_PS_APPL_Inst.SCH_APL_TO_ID,
3111 X_MODE => lv_mode, -- enable security for Admin
3112 X_Attribute21 => Rec_IGS_AD_PS_APPL_Inst.Attribute21,
3113 X_Attribute22 => Rec_IGS_AD_PS_APPL_Inst.Attribute22,
3114 X_Attribute23 => Rec_IGS_AD_PS_APPL_Inst.Attribute23,
3115 X_Attribute24 => Rec_IGS_AD_PS_APPL_Inst.Attribute24,
3116 X_Attribute25 => Rec_IGS_AD_PS_APPL_Inst.Attribute25,
3117 X_Attribute26 => Rec_IGS_AD_PS_APPL_Inst.Attribute26,
3118 X_Attribute27 => Rec_IGS_AD_PS_APPL_Inst.Attribute27,
3119 X_Attribute28 => Rec_IGS_AD_PS_APPL_Inst.Attribute28,
3120 X_Attribute29 => Rec_IGS_AD_PS_APPL_Inst.Attribute29,
3121 X_Attribute30 => Rec_IGS_AD_PS_APPL_Inst.Attribute30,
3122 X_Attribute31 => Rec_IGS_AD_PS_APPL_Inst.Attribute31,
3123 X_Attribute32 => Rec_IGS_AD_PS_APPL_Inst.Attribute32,
3124 X_Attribute33 => Rec_IGS_AD_PS_APPL_Inst.Attribute33,
3125 X_Attribute34 => Rec_IGS_AD_PS_APPL_Inst.Attribute34,
3126 X_Attribute35 => Rec_IGS_AD_PS_APPL_Inst.Attribute35,
3127 X_Attribute36 => Rec_IGS_AD_PS_APPL_Inst.Attribute36,
3128 X_Attribute37 => Rec_IGS_AD_PS_APPL_Inst.Attribute37,
3129 X_Attribute38 => Rec_IGS_AD_PS_APPL_Inst.Attribute38,
3130 X_Attribute39 => Rec_IGS_AD_PS_APPL_Inst.Attribute39,
3131 X_Attribute40 => Rec_IGS_AD_PS_APPL_Inst.Attribute40,
3132 X_FUT_ACAD_CAL_TYPE => Rec_IGS_AD_PS_APPL_Inst.FUTURE_ACAD_CAL_TYPE,
3133 X_FUT_ACAD_CI_SEQUENCE_NUMBER => Rec_IGS_AD_PS_APPL_Inst.FUTURE_ACAD_CI_SEQUENCE_NUMBER,
3134 X_FUT_ADM_CAL_TYPE => Rec_IGS_AD_PS_APPL_Inst.FUTURE_ADM_CAL_TYPE,
3135 X_FUT_ADM_CI_SEQUENCE_NUMBER => Rec_IGS_AD_PS_APPL_Inst.FUTURE_ADM_CI_SEQUENCE_NUMBER,
3136 X_PREV_TERM_ADM_APPL_NUMBER => Rec_IGS_AD_PS_APPL_Inst.PREVIOUS_TERM_ADM_APPL_NUMBER,
3137 X_PREV_TERM_SEQUENCE_NUMBER => Rec_IGS_AD_PS_APPL_Inst.PREVIOUS_TERM_SEQUENCE_NUMBER,
3138 X_FUT_TERM_ADM_APPL_NUMBER => Rec_IGS_AD_PS_APPL_Inst.FUTURE_TERM_ADM_APPL_NUMBER,
3139 X_FUT_TERM_SEQUENCE_NUMBER => Rec_IGS_AD_PS_APPL_Inst.FUTURE_TERM_SEQUENCE_NUMBER,
3140 X_DEF_ACAD_CAL_TYPE => Rec_IGS_AD_PS_APPL_Inst.DEF_ACAD_CAL_TYPE, --Bug 2395510
3141 X_DEF_ACAD_CI_SEQUENCE_NUM => Rec_IGS_AD_PS_APPL_Inst.DEF_ACAD_CI_SEQUENCE_NUM, --Bug 2395510
3142 X_DEF_PREV_TERM_ADM_APPL_NUM => Rec_IGS_AD_PS_APPL_Inst.DEF_PREV_TERM_ADM_APPL_NUM, --Bug 2395510
3143 X_DEF_PREV_APPL_SEQUENCE_NUM => Rec_IGS_AD_PS_APPL_Inst.DEF_PREV_APPL_SEQUENCE_NUM, --Bug 2395510
3144 X_DEF_TERM_ADM_APPL_NUM => Rec_IGS_AD_PS_APPL_Inst.DEF_TERM_ADM_APPL_NUM, --Bug 2395510
3145 X_DEF_APPL_SEQUENCE_NUM => Rec_IGS_AD_PS_APPL_Inst.DEF_APPL_SEQUENCE_NUM, --Bug 2395510
3146 X_APPL_INST_STATUS => Rec_IGS_AD_PS_APPL_Inst.appl_inst_status,
3147 X_AIS_REASON => Rec_IGS_AD_PS_APPL_Inst.ais_reason,
3148 X_DECLINE_OFR_REASON => Rec_IGS_AD_PS_APPL_Inst.decline_ofr_reason
3149
3150 );
3151
3152 -- COMMIT;
3153 END IF;
3154 CLOSE c_upd_acai_resp;
3155 x_return_status := 'S';
3156
3157 EXCEPTION
3158 WHEN others THEN
3159 x_return_status := 'E';
3160 x_message_data := 'IGS_AD_OFFER_RESP_FAILED';
3161 END Update_Appl_ofres_Inst;
3162
3163 PROCEDURE insert_appl_section_stat(x_message_name OUT NOCOPY VARCHAR2,
3164 x_return_status OUT NOCOPY VARCHAR2,
3165 p_person_id IN NUMBER,
3166 p_adm_appl_number IN NUMBER,
3167 p_login_id IN NUMBER) AS
3168 /*****************************************************************************************
3169 Created By: [email protected]
3170 Date Created : 16-APR-2002
3171 Purpose: 1. Inserts record from Self Service Admissions form (New Application Screen).
3172 2. These Records are to be used in review and submit applications page as checklist items.
3173 Known limitations,enhancements,remarks:
3174 Change History
3175 Who When What
3176 stammine 10-June-05 Modified the Cursor of Checklist values.
3177 *****************************************************************************************/
3178
3179 CURSOR c_chklist(cp_ApplNum igs_ss_Adm_appl_stg.SS_ADM_APPL_ID%TYPE, cp_person_id igs_ss_Adm_appl_stg.PERSON_ID%TYPE) IS
3180 SELECT pgs.page_name section
3181 FROM igs_ad_ss_appl_pgs pgs
3182 WHERE pgs.admission_application_type =
3183 (SELECT admission_application_type
3184 FROM igs_ss_adm_appl_stg
3185 WHERE ss_adm_appl_id = cp_ApplNum)
3186 AND pgs.include_ind = 'Y'
3187 AND NOT EXISTS ( SELECT 'x'
3188 FROM igs_ss_ad_sec_stat
3189 WHERE person_id = cp_person_id
3190 AND ss_adm_appl_id = cp_ApplNum
3191 AND section = pgs.page_name);
3192
3193 BEGIN
3194 FOR c_chklist_values_rec IN c_chklist(p_adm_appl_number, p_person_id) LOOP
3195 INSERT INTO IGS_SS_AD_SEC_STAT
3196 (SS_ADM_APPL_ID,
3197 PERSON_ID,
3198 SECTION,
3199 COMPLETION_STATUS,
3200 LAST_UPDATED_BY,
3201 LAST_UPDATE_DATE,
3202 CREATION_DATE,
3203 CREATED_BY,
3204 LAST_UPDATE_LOGIN)
3205 VALUES
3206 (P_ADM_APPL_NUMBER,
3207 P_PERSON_ID,
3208 c_chklist_values_rec.section,
3209 'NOTSTARTED',
3210 P_LOGIN_ID,
3211 SYSDATE,
3212 SYSDATE,
3213 P_LOGIN_ID,
3214 P_LOGIN_ID);
3215 END LOOP;
3216
3217 EXCEPTION
3218 WHEN OTHERS THEN
3219 IF FND_MSG_PUB.Count_Msg < 1 THEN
3220 Fnd_Message.Set_Name('IGS','IGS_GE_UNHANDLED_EXP');
3221 Fnd_Message.Set_Token('NAME','IGS_AD_SS_GEN_001.insert_appl_section_stat -'||SQLERRM);
3222 IGS_GE_MSG_STACK.ADD;
3223 END IF;
3224 x_return_status := 'E';
3225 x_message_name := 'IGS_GE_UNHANDLED_EXP';
3226 App_Exception.Raise_Exception;
3227
3228 END insert_appl_section_stat;
3229
3230 -- Procedure added by tray
3231 -- Validates program instance in SS Appl
3232 PROCEDURE validate_prog_inst(p_course_cd IN VARCHAR2,
3233 p_crv_version_number IN NUMBER,
3234 p_location_cd IN VARCHAR2,
3235 p_attendance_mode IN VARCHAR2,
3236 p_attendance_type IN VARCHAR2,
3237 p_acad_cal_type IN VARCHAR2,
3238 p_acad_ci_sequence_number IN NUMBER,
3239 p_adm_cal_type IN VARCHAR2,
3240 p_adm_ci_sequence_number IN NUMBER,
3241 p_admission_cat IN VARCHAR2,
3242 p_s_admission_process_type IN VARCHAR2,
3243 p_message_name OUT NOCOPY VARCHAR2,
3244 p_return_type OUT NOCOPY VARCHAR2) IS
3245 CURSOR c_apcs IS
3246 SELECT s_admission_step_type, step_type_restriction_num
3247 FROM igs_ad_prcs_cat_step
3248 WHERE admission_cat = p_admission_cat
3249 AND s_admission_process_type = p_s_admission_process_type
3250 AND step_group_type <> 'TRACK';
3251
3252 l_late_ind VARCHAR2(1);
3253 v_apcs_late_app_ind VARCHAR2(127);
3254 lreader BOOLEAN;
3255 BEGIN
3256 v_apcs_late_app_ind := 'N';
3257
3258 FOR v_apcs_rec IN c_apcs LOOP
3259 IF (v_apcs_rec.s_admission_step_type = 'LATE-APP') THEN
3260 v_apcs_late_app_ind := 'Y';
3261 END IF;
3262 END LOOP;
3263
3264 -------------------------------------------------------------------------------------
3265
3266 -- Validate program offering patterns
3267
3268 --------------------------------------------------------------------------------------
3269
3270 lreader := igs_ad_val_acai.admp_val_acai_cop(p_course_cd,
3271 p_crv_version_number,
3272 p_location_cd,
3273 p_attendance_mode,
3274 p_attendance_type,
3275 p_acad_cal_type,
3276 p_acad_ci_sequence_number,
3277 p_adm_cal_type,
3278 p_adm_ci_sequence_number,
3279 p_admission_cat,
3280 p_s_admission_process_type,
3281 'N',
3282 TRUNC(SYSDATE),
3283 v_apcs_late_app_ind,
3284 'N',
3285 p_message_name,
3286 p_return_type,
3287 l_late_ind);
3288 END validate_prog_inst;
3289
3290 -- Bug # 2389273 [ APPLICATION FEE SAVED IN SS IS NOT SAVED TO FORMS ]
3291 PROCEDURE insert_application_fee(p_person_id IN igs_ad_app_req.person_id%TYPE,
3292 p_adm_appl_id IN igs_ss_app_req_stg.ss_adm_appl_id%TYPE,
3293 p_adm_appl_number IN igs_ad_app_req.admission_appl_number%TYPE) AS
3294 /*----------------------------------------------------------------------------
3295 || Created By :
3296 || Created On :
3297 || Purpose :
3298 || Known limitations, enhancements or remarks :
3299 || Change History :
3300 || Who When What
3301 || (reverse chronological order - newest change first)
3302 || pathipat 17-Jun-2003 Enh 2831587 - FI210 Credit Card Fund Transfer build
3303 || Added 3 new params in call to igs_ad_app_req_pkg.insert_row
3304 ||vvutukur 26-Nov-2002 Enh#2584986.Added 11 new parameters to the call to igs_ad_app_req_pkg.insert_row
3305 || (attributing to credit card details,Accounting information and the GL_DATE)
3306 || as part of GL Interface Build and passed NULL to all of them.
3307 ----------------------------------------------------------------------------*/
3308
3309 l_rowid VARCHAR2(25);
3310 l_app_req_id igs_ad_app_req.app_req_id%TYPE;
3311
3312 CURSOR c_appl_fee IS
3313 SELECT ss_app_req_id,
3314 applicant_fee_type,
3315 applicant_fee_status,
3316 fee_date,
3317 fee_payment_method,
3318 fee_amount,
3319 reference_num
3320 FROM IGS_SS_APP_REQ_STG
3321 WHERE person_id = p_person_id
3322 AND ss_adm_appl_id = p_adm_appl_id;
3323 lv_mode VARCHAR2(1) DEFAULT 'R';
3324 BEGIN
3325
3326 IF NVL(IGS_AD_SS_GEN_001.g_admin_security_on,'N') = 'Y'
3327 THEN
3328 lv_mode := 'S';
3329 END IF;
3330 logHeader('insert_application_fee', 'S');
3331 FOR c_appl_fee_rec IN c_appl_fee LOOP
3332 IF c_appl_fee_rec.ss_app_req_id IS NOT NULL THEN
3333 logDetail('Before call to IGS_AD_APP_REQ_PKG.insert_row', 'S');
3334 igs_ad_app_req_pkg.insert_row(x_rowid => l_rowid,
3335 x_app_req_id => l_app_req_id,
3336 x_person_id => p_person_id,
3337 x_admission_appl_number => p_adm_appl_number,
3338 x_applicant_fee_type => c_appl_fee_rec.applicant_fee_type,
3339 x_applicant_fee_status => c_appl_fee_rec.applicant_fee_status,
3340 x_fee_date => c_appl_fee_rec.FEE_DATE,
3341 X_FEE_PAYMENT_METHOD => c_appl_fee_rec.FEE_PAYMENT_METHOD,
3342 X_FEE_AMOUNT => c_appl_fee_rec.FEE_AMOUNT,
3343 X_REFERENCE_NUM => c_appl_fee_rec.REFERENCE_NUM,
3344 x_mode => lv_mode, -- enable security for Admin
3345 x_credit_card_code => NULL,
3346 x_credit_card_holder_name => NULL,
3347 x_credit_card_number => NULL,
3348 x_credit_card_expiration_date => NULL,
3349 x_rev_gl_ccid => NULL,
3350 x_cash_gl_ccid => NULL,
3351 x_rev_account_cd => NULL,
3352 x_cash_account_cd => NULL,
3353 x_gl_date => NULL,
3354 x_gl_posted_date => NULL,
3355 x_posting_control_id => NULL,
3356 x_credit_card_tangible_cd => NULL,
3357 x_credit_card_payee_cd => NULL,
3358 x_credit_card_status_code => NULL);
3359
3360 END IF;
3361 END LOOP;
3362 EXCEPTION
3363 WHEN OTHERS THEN
3364 logDetail('Inside insert_application_fee' ||
3365 'Exception from IGS_AD_APP_REQ_PKG.insert_row ' || SQLERRM ||
3366 'person_id : ' || IGS_GE_NUMBER.TO_CANN(p_person_id),
3367 'S');
3368 IF FND_MSG_PUB.Count_Msg < 1 THEN
3369 Fnd_Message.Set_Name('IGS','IGS_GE_UNHANDLED_EXP');
3370 Fnd_Message.Set_Token('NAME','IGS_AD_SS_GEN_001.insert_application_fee -'||SQLERRM);
3371 IGS_GE_MSG_STACK.ADD;
3372 END IF;
3373 App_Exception.Raise_Exception;
3374
3375 END insert_application_fee;
3376
3377 /*
3378 --------------------------------------------------------------------------------------------------
3379 --Function to get the major first choice and second choice to be displayed in the printable page
3380 -- Sent by Nagaraju from HQ to be added to the API
3381 --------------------------------------------------------------------------------------------------
3382 */
3383 FUNCTION get_major(p_person_id IN igs_ad_ps_appl_inst.person_id%TYPE,
3384 p_admission_appl_number IN igs_ad_ps_appl_inst.admission_appl_number%TYPE,
3385 p_nominated_course_cd IN igs_ad_ps_appl_inst.nominated_course_cd%TYPE,
3386 p_sequence_number IN igs_ad_ps_appl_inst.sequence_number%TYPE,
3387 p_rank IN igs_ad_unit_sets.rank%TYPE)
3388 RETURN VARCHAR2 IS
3389 CURSOR cur_adm_unit_sets(p_person_id igs_ad_ps_appl_inst.person_id%TYPE,
3390 p_admission_appl_number igs_ad_ps_appl_inst.admission_appl_number%TYPE,
3391 p_nominated_course_cd igs_ad_ps_appl_inst.nominated_course_cd%TYPE,
3392 p_sequence_number igs_ad_ps_appl_inst.sequence_number%TYPE, p_rank igs_ad_unit_sets.rank%TYPE) IS
3393 SELECT u.title
3394 FROM igs_ad_unit_sets us, igs_en_unit_set u
3395 WHERE us.person_id = p_person_id
3396 AND us.admission_appl_number = p_admission_appl_number
3397 AND us.nominated_course_cd = p_nominated_course_cd
3398 AND us.sequence_number = p_sequence_number
3399 AND us.rank = p_rank
3400 AND us.unit_set_cd = u.unit_set_cd
3401 AND us.version_number = u.version_number;
3402
3403 l_title igs_en_unit_set.title%TYPE;
3404
3405 BEGIN
3406
3407 OPEN cur_adm_unit_sets(p_person_id,
3408 p_admission_appl_number,
3409 p_nominated_course_cd,
3410 p_sequence_number,
3411 p_rank);
3412 FETCH cur_adm_unit_sets
3413 INTO l_title;
3414 CLOSE cur_adm_unit_sets;
3415 RETURN(l_title);
3416 END get_major;
3417
3418 FUNCTION DATESTR(P_START_DATE DATE, P_END_DATE DATE, P_COMP_DATE DATE)
3419 RETURN VARCHAR2 IS
3420 P_FINAL_STRING VARCHAR2(2000);
3421 BEGIN
3422
3423 IF P_START_DATE IS NOT NULL AND P_END_DATE IS NOT NULL THEN
3424 P_FINAL_STRING := IGS_GE_DATE.IGSCHAR(P_START_DATE) || ' - ' ||
3425 IGS_GE_DATE.IGSCHAR(P_END_DATE);
3426 END IF;
3427
3428 IF P_START_DATE IS NULL AND P_END_DATE IS NULL THEN
3429 IF P_COMP_DATE IS NULL THEN
3430 P_FINAL_STRING := ' - ';
3431 ELSE
3432 P_FINAL_STRING := ' - ' || IGS_GE_DATE.IGSCHAR(P_COMP_DATE);
3433 END IF;
3434 END IF;
3435
3436 IF P_START_DATE IS NULL AND P_END_DATE IS NOT NULL THEN
3437 P_FINAL_STRING := ' - ' || IGS_GE_DATE.IGSCHAR(P_END_DATE);
3438 END IF;
3439
3440 IF P_START_DATE IS NOT NULL AND P_END_DATE IS NULL THEN
3441 IF P_COMP_DATE IS NULL THEN
3442 P_FINAL_STRING := IGS_GE_DATE.IGSCHAR(P_START_DATE) || ' - ';
3443 ELSE
3444 P_FINAL_STRING := IGS_GE_DATE.IGSCHAR(P_START_DATE) || ' - ' ||
3445 IGS_GE_DATE.IGSCHAR(P_COMP_DATE);
3446 END IF;
3447 END IF;
3448
3449 RETURN P_FINAL_STRING;
3450
3451 END DATESTR;
3452
3453 FUNCTION getAltid(x_party_id number) RETURN VARCHAR2 IS
3454 /*----------------------------------------------------------------------------
3455 || Created By : stammine
3456 || Created On : 01-Oct-2004
3457 || Purpose : Procedure specially designed to get the Concatenated list of Alternate Ids
3458 || in the FindPerson Page
3459 || Known limitations, enhancements or remarks :
3460 || Change History :
3461 || Who When What
3462 || (reverse chronological order - newest change first)
3463 askapoor 31-JAN-05 Modified Cursor c_altpid definition to include validation
3464 Sysdate between start_dt and end_dt
3465
3466 ----------------------------------------------------------------------------*/
3467
3468 l_altid VARCHAR2(1000);
3469
3470 CURSOR c_altpid(cp_pe_person_id number) is
3471 SELECT api_person_id, person_id_type
3472 FROM igs_pe_alt_pers_id api
3473 WHERE api.pe_person_id = cp_pe_person_id
3474 AND Sysdate between api.start_dt and nvl(api.end_dt, sysdate);
3475
3476 BEGIN
3477
3478 l_altid := NULL;
3479
3480 FOR cv_caltpid in c_altpid(x_party_id) LOOP
3481 IF l_altid IS NOT NULL THEN
3482 l_altid := l_altid || '<BR>' || cv_caltpid.person_id_type || ' : ' ||
3483 cv_caltpid.api_person_id;
3484 ELSE
3485 l_altid := cv_caltpid.person_id_type || ' : ' ||
3486 cv_caltpid.api_person_id;
3487 END IF;
3488 END LOOP;
3489
3490 RETURN l_altid;
3491 END getAltid;
3492
3493 FUNCTION getApplid(x_party_id number) RETURN VARCHAR2 IS
3494 /*----------------------------------------------------------------------------
3495 || Created By : stammine
3496 || Created On : 01-Oct-2004
3497 || Purpose : Procedure specially designed to get the Concatenated list of Application Ids
3498 || in the FindPerson Page
3499 || Known limitations, enhancements or remarks :
3500 || Change History :
3501 || Who When What
3502 || (reverse chronological order - newest change first)
3503 ----------------------------------------------------------------------------*/
3504
3505 l_applid VARCHAR2(1000);
3506
3507 CURSOR c_applid(cp_person_id number) IS
3508 SELECT application_id
3509 FROM igs_ad_appl a
3510 WHERE a.person_id = cp_person_id;
3511
3512 BEGIN
3513 l_applid := NULL;
3514
3515 FOR cv_applid in c_applid(x_party_id) LOOP
3516 IF l_applid IS NOT NULL THEN
3517 l_applid := l_applid || '<BR>' || cv_applid.application_id;
3518 ELSE
3519 l_applid := cv_applid.application_id;
3520 END IF;
3521 END LOOP;
3522 RETURN l_applid;
3523 END getApplid;
3524
3525
3526 /* Added by stammine IGS.M */
3527 -- Local Procedure
3528 -- Concats the list of Incomplete Required Components and Incomplete Optional Components
3529 PROCEDURE concat_req_comps(p_req_flag IN VARCHAR2,
3530 p_req_comps IN OUT NOCOPY VARCHAR2,
3531 p_opt_comps IN OUT NOCOPY VARCHAR2,
3532 p_comp_desc IN VARCHAR2) AS
3533 BEGIN
3534 IF p_req_flag = 'Y' THEN
3535 IF p_req_comps IS NULL THEN
3536 p_req_comps := p_comp_desc;
3537 ELSE
3538 p_req_comps := p_req_comps || ', ' || p_comp_desc;
3539 END IF;
3540 ELSE
3541 IF p_opt_comps IS NULL THEN
3542 p_opt_comps := p_comp_desc;
3543 ELSE
3544 p_opt_comps := p_opt_comps || ', ' || p_comp_desc;
3545 END IF;
3546 END IF;
3547 END concat_req_comps;
3548
3549 /* Added procedure which will update the checklist w.r.t Application type configuration. */
3550
3551 PROCEDURE update_appl_section_stat(p_person_id IN NUMBER,
3552 p_adm_appl_number IN NUMBER,
3553 p_page_Name IN VARCHAR2,
3554 p_Appl_Type IN VARCHAR2,
3555 x_message_name OUT NOCOPY VARCHAR2,
3556 x_return_status OUT NOCOPY VARCHAR2,
3557 x_mand_incomplete OUT NOCOPY VARCHAR2) AS
3558 /*****************************************************************************************
3559 Created By: stammine
3560 Date Created : 10-Jun-2005
3561 Purpose: Procedure to update the Checklist Status as per application Type configuration for an Application
3562 Known limitations,enhancements,remarks:
3563 Change History
3564 Who When What
3565 *****************************************************************************************/
3566
3567 -- Cursor for Each Component to check for existance of the respective record
3568 --Personal Details { Basic Information - BASIC_INFO, Address- ADDRESS, Phone- PHONE, Email- EMAIL, Identification- ALT_ID
3569 --Address Details { Other Names- OTHER_NAMES, Biographic- BIOGRAPHIC, Special Needs- SPECIAL_NEEDS,Privacy- PRIVACY
3570 --Further Details { Relationships- RELATIONSHIPS, Felony- FELONY, Housing Status- HOUSING_STATUS, Health- HEALTH_INFO}
3571
3572 -- Residency and Citizenship {Country of Residence- COUNTRY_RESIDENCE, Citizenship- CITIZENSHIP,Language- LANGUAGE, Domicile- DOMICILE}
3573
3574 -- International Details {Country of Citizenship- COUNTRY_CITIZENSHIP, Visa- VISA, Passport- PASSPORT, Financial Verification- FIN_VER}
3575
3576 -- Application Details {Program Preferences- PROGRAM_PREF, Program Preference Details- PROG_PREF_DTLS,
3577 -- Desired Majors/Minors- DESIRED_UNITS, Educational Goals- EDUC_GOALS, Financial Aid- FIN_AID}
3578
3579 -- Education {High School- SECONDARY, College/University- POST_SECONDARY, Admission Test Results- ADM_TEST_RESULTS,
3580 -- Qualification Details- QUALIFICATION, Academic Honors- ACAD_HONORS}
3581
3582 -- Supporting Information {Personal Statements- PERSONAL_STMTS, Supporting Information- SUPPORTING_INFO,
3583 -- Other Institutions Applied- OTHER_INST, Academic Interest- ACAD_INTEREST, Special Talents- SPECIAL_TALENTS,
3584 -- Extracurricular Activities- EXTRACUR_ACTIVITIES, Employment History- EMPLOYMENT_HIST}
3585
3586 -- Basic Information - BASIC_INFO
3587 -- No validation
3588
3589 -- Address - ADDRESS
3590 CURSOR c_addr(cp_person_id igs_ad_appl.person_id%TYPE, cp_ApplType igs_ad_appl.APPLICATION_TYPE%TYPE) IS
3591 SELECT 'x'
3592 FROM IGS_PE_ADDR_V addr, IGS_PE_PARTYSITEUSE_V use
3593 WHERE addr.PERSON_ID = cp_person_id
3594 AND addr.STATUS = 'A'
3595 AND addr.party_site_id = use.party_site_id
3596 AND use.site_use_type IN
3597 (SELECT SS_Lookup_code
3598 FROM igs_ad_ss_lookups
3599 WHERE ss_lookup_type = 'SITE_USE_CODE'
3600 AND admission_application_type = cp_ApplType
3601 AND Closed_flag <> 'Y');
3602
3603 -- Phone - PHONE
3604 CURSOR c_phone(cp_person_id igs_ad_appl.person_id%TYPE, cp_ApplType igs_ad_appl.APPLICATION_TYPE%TYPE) IS
3605 SELECT 'x'
3606 FROM hz_contact_points
3607 WHERE CONTACT_POINT_TYPE = 'PHONE'
3608 AND OWNER_TABLE_NAME = 'HZ_PARTIES'
3609 AND STATUS = 'A'
3610 AND PHONE_LINE_TYPE IN
3611 (SELECT SS_Lookup_code
3612 FROM igs_ad_ss_lookups
3613 WHERE ss_lookup_type = 'PHONE_LINE_TYPE'
3614 AND admission_application_type = cp_ApplType
3615 AND Closed_flag <> 'Y')
3616 AND OWNER_TABLE_ID = cp_person_id;
3617
3618 -- Email- EMAIL
3619 CURSOR c_email(cp_person_id igs_ad_appl.person_id%TYPE) IS
3620 SELECT 'x'
3621 FROM hz_contact_points
3622 WHERE CONTACT_POINT_TYPE = 'EMAIL'
3623 AND OWNER_TABLE_NAME = 'HZ_PARTIES'
3624 AND STATUS = 'A'
3625 AND OWNER_TABLE_ID = cp_person_id;
3626
3627 -- Identification- ALT_ID
3628 CURSOR c_altId(cp_person_id igs_ad_appl.person_id%TYPE, cp_ApplType igs_ad_appl.APPLICATION_TYPE%TYPE) IS
3629 SELECT 'x'
3630 FROM IGS_PE_ALT_PERS_ID
3631 WHERE PE_PERSON_ID = cp_person_id
3632 AND PERSON_ID_TYPE IN
3633 (SELECT SS_Lookup_code
3634 FROM igs_ad_ss_lookups
3635 WHERE ss_lookup_type = 'PERSON_ID_TYPE'
3636 AND admission_application_type = cp_ApplType
3637 AND Closed_flag <> 'Y')
3638 AND (END_DT IS NULL OR START_DT <> END_DT);
3639
3640 -- Other Names- OTHER_NAMES
3641 CURSOR c_other_Names(cp_person_id igs_ad_appl.person_id%TYPE, cp_ApplType igs_ad_appl.APPLICATION_TYPE%TYPE) IS
3642 SELECT 'x'
3643 FROM IGS_PE_PERSON_ALIAS_V pon
3644 WHERE pon.PERSON_ID = cp_person_id
3645 AND ALIAS_TYPE IN
3646 (SELECT SS_Lookup_code
3647 FROM igs_ad_ss_lookups
3648 WHERE ss_lookup_type = 'PE_ALIAS_TYPE'
3649 AND admission_application_type = cp_ApplType
3650 AND Closed_flag <> 'Y');
3651 -- Ask PM for Date Check
3652
3653 -- Biographic- BIOGRAPHIC
3654 -- check only in IGS_PE_RACE
3655 CURSOR c_race (cp_person_id igs_ad_appl.person_id%TYPE) IS
3656 SELECT 'x'
3657 FROM IGS_PE_RACE race
3658 WHERE race.PERSON_ID = cp_person_id;
3659
3660 -- Special Needs- SPECIAL_NEEDS
3661 CURSOR c_spl_Needs(cp_person_id igs_ad_appl.person_id%TYPE) IS
3662 SELECT 'x' FROM IGS_PE_PERS_DISABLTY WHERE person_id = cp_person_id
3663 AND SYSDATE <= NVL(END_DATE,SYSDATE);
3664
3665 -- Privacy- PRIVACY
3666 CURSOR c_privacy(cp_person_id igs_ad_appl.person_id%TYPE, cp_ApplType igs_ad_appl.APPLICATION_TYPE%TYPE) IS
3667 SELECT 'x'
3668 FROM IGS_PE_PRIV_LEVEL priv
3669 WHERE PERSON_ID = cp_person_id
3670 AND to_char(DATA_GROUP_ID) IN
3671 (SELECT SS_Lookup_code
3672 FROM igs_ad_ss_lookups
3673 WHERE ss_lookup_type = 'PRIVACY_PREF_DATA_GROUP'
3674 AND admission_application_type = cp_ApplType
3675 AND Closed_flag <> 'Y');
3676
3677 -- Relationships- RELATIONSHIPS
3678 CURSOR c_relations(cp_person_id igs_ad_appl.person_id%TYPE, cp_ApplType igs_ad_appl.APPLICATION_TYPE%TYPE) IS
3679 SELECT 'x'
3680 FROM IGS_PE_HZ_REL_V rel
3681 WHERE rel.SUBJECT_ID = cp_person_id
3682 AND rel.SUBJECT_TYPE = 'PERSON'
3683 AND rel.OBJECT_TYPE = 'PERSON'
3684 AND rel.STATUS = 'A'
3685 AND SYSDATE BETWEEN rel.START_DATE AND NVL(rel.END_DATE, SYSDATE)
3686 AND RELATIONSHIP_CODE IN
3687 (SELECT SS_Lookup_code
3688 FROM igs_ad_ss_lookups
3689 WHERE ss_lookup_type = 'PARTY_RELATIONS_TYPE'
3690 AND admission_application_type = cp_ApplType
3691 AND Closed_flag <> 'Y');
3692
3693 -- Felony- FELONY
3694 CURSOR c_felony(cp_person_id igs_ad_appl.person_id%TYPE) IS
3695 SELECT FELONY_CONVICTED_FLAG
3696 FROM IGS_PE_HZ_PARTIES
3697 WHERE PARTY_ID = cp_person_id;
3698
3699 -- Housing Status- HOUSING_STATUS
3700 CURSOR c_housing(cp_person_id igs_ad_appl.person_id%TYPE) IS
3701 SELECT 'x'
3702 FROM IGS_PE_TEACH_PERIODS_ALL
3703 WHERE person_id = cp_person_id;
3704
3705 -- Health- HEALTH_INFO
3706 -- Health Insurance
3707 CURSOR c_health_insu(cp_person_id igs_ad_appl.person_id%TYPE) IS
3708 SELECT 'x' FROM IGS_PE_HLTH_INS_ALL
3709 WHERE person_id = cp_person_id
3710 AND SYSDATE BETWEEN START_DATE AND NVL(END_DATE,SYSDATE);
3711
3712 -- Immunization
3713 CURSOR c_health_immu(cp_person_id igs_ad_appl.person_id%TYPE) IS
3714 SELECT 'x' FROM IGS_PE_IMMU_DTLS WHERE person_id = cp_person_id
3715 AND SYSDATE BETWEEN START_DATE AND NVL(END_DATE,SYSDATE);
3716
3717 -- Applicant Citizenship- CITIZENSHIP
3718 -- None Dynamic Behaviour
3719
3720 -- Country of Residence- COUNTRY_RESIDENCE
3721 CURSOR c_residence(cp_person_id igs_ad_appl.person_id%TYPE) IS
3722 SELECT 'x'
3723 FROM IGS_PE_EIT T
3724 WHERE T.INFORMATION_TYPE = 'PE_STAT_RES_COUNTRY'
3725 AND Person_id = cp_person_id;
3726
3727 -- Language- LANGUAGE
3728 CURSOR c_lang(cp_person_id igs_ad_appl.person_id%TYPE) IS
3729 SELECT 'x'
3730 FROM HZ_PERSON_LANGUAGE lang
3731 WHERE PARTY_ID = cp_person_id
3732 AND STATUS = 'A';
3733
3734 -- Domicile- DOMICILE
3735 -- State of Residence
3736 CURSOR c_sor(cp_person_id igs_ad_appl.person_id%TYPE) IS
3737 SELECT 'x'
3738 FROM IGS_PE_EIT
3739 WHERE INFORMATION_TYPE = 'PE_STAT_RES_STATE'
3740 AND Person_id = cp_person_id;
3741
3742 -- Voter Info
3743 CURSOR c_vinfo(cp_person_id igs_ad_appl.person_id%TYPE) IS
3744 SELECT 'x' FROM IGS_PE_VOTE_INFO_ALL WHERE Person_id = cp_person_id;
3745
3746 -- Income Tax
3747 CURSOR c_itax(cp_person_id igs_ad_appl.person_id%TYPE) IS
3748 SELECT 'x' FROM IGS_PE_INCOME_TAX_ALL WHERE Person_id = cp_person_id;
3749
3750 -- Military Service
3751 CURSOR c_military(cp_person_id igs_ad_appl.person_id%TYPE) IS
3752 SELECT 'x' FROM IGS_PE_MIL_SERVICES_ALL WHERE Person_id = cp_person_id;
3753
3754 -- Country of Citizenship- COUNTRY_CITIZENSHIP
3755 CURSOR c_citizenship(cp_person_id igs_ad_appl.person_id%TYPE) IS
3756 SELECT 'x'
3757 FROM HZ_CITIZENSHIP cz
3758 WHERE cz.PARTY_ID = cp_person_id
3759 AND cz.STATUS = 'A';
3760
3761 -- Visa- VISA
3762 CURSOR c_visa(cp_person_id igs_ad_appl.person_id%TYPE) IS
3763 SELECT 'x'
3764 FROM IGS_PE_VISIT_HISTRY_V visa
3765 WHERE visa.PERSON_ID = cp_person_id;
3766
3767 -- Passport- PASSPORT
3768 CURSOR c_passport(cp_person_id igs_ad_appl.person_id%TYPE) IS
3769 SELECT 'x'
3770 FROM IGS_PE_PASSPORT pport
3771 WHERE pport.PERSON_ID = cp_person_id;
3772
3773 -- Financial Verification- FIN_VER
3774 -- None
3775
3776 -- Program Preferences- PROGRAM_PREF
3777 CURSOR c_prog_pref(cp_adm_appl_number IGS_SS_APP_PGM_STG.ss_adm_appl_id%TYPE) IS
3778 SELECT SS_ADMAPPL_PGM_ID, ATTENDANCE_TYPE,
3779 ATTENDANCE_MODE,
3780 NOMINATED_COURSE_CD
3781 FROM IGS_SS_APP_PGM_STG
3782 WHERE ss_adm_appl_id = cp_adm_appl_number;
3783
3784 -- Program Preference Details- PROG_PREF_DTLS
3785 CURSOR c_prog_dtls(cp_adm_appl_number IGS_SS_APP_PGM_STG.ss_adm_appl_id%TYPE) IS
3786 SELECT SS_ADMAPPL_PGM_ID,
3787 ENTRY_STATUS,
3788 ENTRY_LEVEL,
3789 FINAL_UNIT_SET_CD,
3790 NOMINATED_COURSE_CD,
3791 SCH_APL_TO_ID
3792 FROM IGS_SS_APP_PGM_STG
3793 WHERE ss_adm_appl_id = cp_adm_appl_number;
3794
3795 -- Desired Majors/Minors- DESIRED_UNITS
3796 CURSOR c_dunits(cp_ss_admappl_pgm igs_ss_ad_unitse_stg.ss_admappl_pgm_id%TYPE) IS
3797 SELECT 'x'
3798 FROM IGS_SS_AD_UNITSE_STG
3799 WHERE ss_admappl_pgm_id = cp_ss_admappl_pgm;
3800
3801 -- Educational Goals- EDUC_GOALS
3802 CURSOR c_educ_goals(cp_ss_admappl_pgm igs_ss_ad_unitse_stg.ss_admappl_pgm_id%TYPE) IS
3803 SELECT 'x'
3804 FROM IGS_SS_AD_EDUGOA_STG
3805 WHERE ss_admappl_pgm_id = cp_ss_admappl_pgm;
3806
3807 -- Financial Aid- FIN_AID
3808 CURSOR c_fin_aid(cp_adm_appl_number IGS_SS_APP_PGM_STG.ss_adm_appl_id%TYPE) IS
3809 SELECT APPLY_FOR_FINAID, FINAID_APPLY_DATE
3810 FROM IGS_SS_APP_PGM_STG
3811 WHERE ss_adm_appl_id = cp_adm_appl_number;
3812
3813 -- High School- SECONDARY
3814 CURSOR c_sec(cp_person_id igs_ad_appl.person_id%TYPE) IS
3815 SELECT 'x'
3816 FROM HZ_EDUCATION HE
3817 WHERE HE.PARTY_ID = cp_person_id
3818 AND HE.STATUS = 'A'
3819 AND EXISTS (SELECT 'X'
3820 FROM IGS_OR_ORG_INST_TYPE_ALL
3821 WHERE INSTITUTION_TYPE = DECODE (HE.SCHOOL_PARTY_ID, NULL, NULL,
3822 (SELECT OI_INSTITUTION_TYPE
3823 FROM IGS_PE_HZ_PARTIES
3824 WHERE HE.SCHOOL_PARTY_ID = PARTY_ID
3825 AND INST_ORG_IND = 'I'
3826 )
3827 )
3828 AND SYSTEM_INST_TYPE = 'SECONDARY');
3829
3830 -- College/University- POST_SECONDARY
3831 CURSOR c_post_sec(cp_person_id igs_ad_appl.person_id%TYPE) IS
3832 SELECT 'x'
3833 FROM HZ_EDUCATION HE
3834 WHERE HE.PARTY_ID = cp_person_id
3835 AND HE.STATUS = 'A'
3836 AND EXISTS (SELECT 'X'
3837 FROM IGS_OR_ORG_INST_TYPE_ALL
3838 WHERE INSTITUTION_TYPE = DECODE (HE.SCHOOL_PARTY_ID, NULL, NULL, (SELECT OI_INSTITUTION_TYPE
3839 FROM IGS_PE_HZ_PARTIES
3840 WHERE HE.SCHOOL_PARTY_ID = PARTY_ID
3841 AND INST_ORG_IND = 'I') )
3842 AND SYSTEM_INST_TYPE IN ('POST-SECONDARY', 'OTHER')
3843 );
3844
3845 -- Local College/University
3846 CURSOR c_local_post_sec(cp_person_id igs_ad_appl.person_id%TYPE) IS
3847 SELECT 'x'
3848 FROM igs_en_stdnt_ps_att_all psattmpt
3849 WHERE psattmpt.person_id = cp_person_id
3850 AND psattmpt.course_attempt_status <> 'UNCONFIRM'
3851 AND((NVL(fnd_profile.VALUE('CAREER_MODEL_ENABLED'), 'N') = 'N')
3852 OR(fnd_profile.VALUE('CAREER_MODEL_ENABLED') = 'Y' AND psattmpt.primary_program_type = 'PRIMARY'));
3853
3854
3855 -- Admission Test Results- ADM_TEST_RESULTS
3856 CURSOR c_test_rslts(cp_person_id igs_ad_appl.person_id%TYPE, cp_ApplType igs_ad_appl.APPLICATION_TYPE%TYPE) IS
3857 SELECT 'x'
3858 FROM IGS_AD_TEST_RESULTS
3859 WHERE PERSON_ID = cp_person_id
3860 AND ADMISSION_TEST_TYPE IN
3861 (SELECT SS_Lookup_code
3862 FROM igs_ad_ss_lookups
3863 WHERE ss_lookup_type = 'ADMISSION_TEST_TYPE'
3864 AND admission_application_type = cp_ApplType
3865 AND Closed_flag <> 'Y');
3866
3867 -- Qualification Details- QUALIFICATION
3868 CURSOR c_qual(cp_person_id igs_ad_appl.person_id%TYPE) IS
3869 SELECT 'x' FROM IGS_UC_QUAL_DETS WHERE person_id = cp_person_id;
3870
3871 -- Academic Honors- ACAD_HONORS
3872 CURSOR c_acad_hon(cp_person_id igs_ad_appl.person_id%TYPE) IS
3873 SELECT 'x' FROM IGS_PE_ACAD_HONORS WHERE person_id = cp_person_id;
3874
3875 -- Personal Statements- PERSONAL_STMTS
3876 -- Cursors c_perstat and c_perstat_group added by abhiskum
3877 CURSOR c_perstat(cp_person_id igs_ad_appl.person_id%TYPE,
3878 cp_adm_appl_number IGS_SS_APP_PGM_STG.ss_adm_appl_id%TYPE,
3879 cp_group_number IGS_AD_APTYP_PESTAT.group_number%TYPE) IS
3880 SELECT stg.persl_stat_type statement,
3881 DECODE(NVL(mandatory,'N'),'N','No','Yes') required,
3882 group_number,
3883 stg.SS_PERSTAT_ID SS_PERSTAT_ID,
3884 stg.attach_exists
3885 FROM IGS_SS_APPL_PERSTAT stg,
3886 IGS_AD_APTYP_PESTAT aptypperstat
3887 WHERE stg.persl_Stat_type = aptypperstat.persl_Stat_type
3888 AND stg.admission_application_type = aptypperstat.admission_application_type
3889 AND stg.ss_Adm_appl_id = cp_adm_appl_number
3890 AND stg.PERSON_ID = cp_person_id
3891 AND group_number = cp_group_number ;
3892
3893 CURSOR c_perstat_group(cp_person_id igs_ad_appl.person_id%TYPE,
3894 cp_adm_appl_number IGS_SS_APP_PGM_STG.ss_adm_appl_id%TYPE,
3895 cp_ApplType igs_ad_appl.APPLICATION_TYPE%TYPE) IS
3896 SELECT
3897 group_name statement,
3898 DECODE(NVL(group_required_flag,'N'),'N','No','Yes') required,
3899 group_number ,
3900 0 SS_PERSTAT_ID,
3901 null attach_exists,
3902 group_min
3903 FROM IGS_AD_PESTAT_GROUP
3904 WHERE group_number IN
3905 (SELECT distinct group_number FROM IGS_SS_APPL_PERSTAT stg, IGS_AD_APTYP_PESTAT setup
3906 WHERE setup.persl_Stat_type = stg.persl_Stat_type
3907 AND setup.admission_application_type = stg.admission_application_type
3908 AND stg.ss_Adm_appl_id = cp_adm_appl_number AND stg.PERSON_ID = cp_person_id )
3909 AND admission_application_type = cp_ApplType
3910 AND NVL(GROUP_REQUIRED_FLAG,'N') = 'Y'
3911 UNION ALL
3912 SELECT
3913 stg.persl_stat_type statement,
3914 DECODE(NVL(mandatory,'N'),'N','No','Yes') required,
3915 -1 group_number,
3916 stg.SS_PERSTAT_ID SS_PERSTAT_ID,
3917 stg.attach_exists,
3918 0 group_min
3919 FROM IGS_SS_APPL_PERSTAT stg,
3920 IGS_AD_APTYP_PESTAT aptypperstat
3921 WHERE stg.persl_Stat_type = aptypperstat.persl_Stat_type
3922 AND stg.admission_application_type = aptypperstat.admission_application_type
3923 AND group_number IS NULL
3924 AND stg.ss_Adm_appl_id = cp_adm_appl_number
3925 AND stg.PERSON_ID = cp_person_id ;
3926
3927 -- Supporting Information- SUPPORTING_INFO
3928 CURSOR c_supp_info(cp_person_id igs_ad_appl.person_id%TYPE, cp_ApplType igs_ad_appl.APPLICATION_TYPE%TYPE) IS
3929 SELECT 'x'
3930 FROM IGS_PE_CREDENTIALS
3931 WHERE person_id = cp_person_id
3932 AND to_char(CREDENTIAL_TYPE_ID) IN
3933 (SELECT SS_Lookup_code
3934 FROM igs_ad_ss_lookups
3935 WHERE ss_lookup_type = 'CREDENTIAL_TYPE'
3936 AND admission_application_type = cp_ApplType
3937 AND Closed_flag <> 'Y');
3938
3939 -- Other Institutions Applied- OTHER_INST
3940 CURSOR c_oth_inst(cp_Appl_Num IGS_SS_AD_OTHINS_STG.SS_ADM_APPL_ID%TYPE) IS
3941 SELECT 'x'
3942 FROM IGS_SS_AD_OTHINS_STG
3943 WHERE SS_ADM_APPL_ID = cp_Appl_Num;
3944
3945 -- Academic Interest- ACAD_INTEREST
3946 CURSOR c_acad_int(cp_Appl_Num IGS_SS_AD_ACADIN_STG.SS_ADM_APPL_ID%TYPE) IS
3947 SELECT 'x'
3948 FROM IGS_SS_AD_ACADIN_STG
3949 WHERE SS_ADM_APPL_ID = cp_Appl_Num;
3950
3951 -- Special Talents- SPECIAL_TALENTS
3952 CURSOR c_spl_tal(cp_Appl_Num IGS_SS_AD_SPLTAL_STG.SS_ADM_APPL_ID%TYPE) IS
3953 SELECT 'x'
3954 FROM IGS_SS_AD_SPLTAL_STG
3955 WHERE SS_ADM_APPL_ID = cp_Appl_Num;
3956
3957 -- Extracurricular Activities- EXTRACUR_ACTIVITIES
3958 CURSOR c_ext_curr(cp_person_id igs_ad_appl.person_id%TYPE) IS
3959 SELECT 'x'
3960 FROM HZ_PERSON_INTEREST PI, IGS_AD_HZ_EXTRACURR_ACT HEA
3961 WHERE PI.PERSON_INTEREST_ID = HEA.PERSON_INTEREST_ID
3962 AND PI.PARTY_ID = cp_person_id;
3963
3964 -- Employment History- EMPLOYMENT_HIST
3965 CURSOR c_emp_hist(cp_person_id igs_ad_appl.person_id%TYPE) IS
3966 SELECT 'x' FROM HZ_EMPLOYMENT_HISTORY WHERE party_id = cp_person_id;
3967
3968 -- Cursor for selecting components for a given page.
3969 CURSOR c_pgcomps(cp_Appl_Type IGS_AD_SS_APPL_COMPS.Admission_application_type%TYPE, cp_page_Name IGS_AD_SS_APPL_COMPS.page_name%TYPE) IS
3970 SELECT Admission_application_type ApplType,
3971 page_name PageName,
3972 component_code Component,
3973 comp_disp_name ComponentDesc,
3974 required_flag
3975 FROM IGS_AD_SS_APPL_COMPS
3976 WHERE Admission_application_type = cp_Appl_Type
3977 AND page_name = cp_page_Name
3978 AND include_flag = 'Y';
3979
3980 -- Cursor to check whether AppType has required components for a given page.
3981 CURSOR c_req_comps_exist(cp_Appl_Type IGS_AD_SS_APPL_COMPS.Admission_application_type%TYPE, cp_page_Name IGS_AD_SS_APPL_COMPS.page_name%TYPE) IS
3982 SELECT 'x'
3983 FROM IGS_AD_SS_APPL_COMPS
3984 WHERE Admission_application_type = cp_Appl_Type
3985 AND page_name = cp_page_Name
3986 AND include_flag = 'Y'
3987 AND required_flag = 'Y';
3988
3989
3990 lv_temp_rec VARCHAR2(10);
3991 c_felony_rec c_felony%ROWTYPE;
3992 c_prog_pref_rec c_prog_pref%ROWTYPE;
3993 c_prog_dtls_rec c_prog_dtls%ROWTYPE;
3994
3995 c_fin_aid_rec c_fin_aid%ROWTYPE;
3996
3997 -- l_perstat_group_rec,l_perstat_rec,l_flag and l_perstat_count added by abhiskum
3998 -- for Personal Statements Validation
3999 l_perstat_group_rec c_perstat_group%ROWTYPE := NULL;
4000 l_perstat_rec c_perstat%ROWTYPE := NULL;
4001 l_flag VARCHAR2(1) := 'Y';
4002 l_perstat_count NUMBER;
4003
4004 c_pgcomps_rec c_pgcomps%ROWTYPE;
4005 c_req_comps_exist_rec c_req_comps_exist%ROWTYPE;
4006 l_comp_status VARCHAR2(30);
4007 l_req_comps VARCHAR2(2000);
4008 l_opt_comps VARCHAR2(2000);
4009 finaidrecordfound VARCHAR2(1);
4010 progpreffound VARCHAR2(1);
4011
4012 l_prog_label VARCHAR2(100);
4013 l_label VARCHAR2(500);
4014 l_debug_str VARCHAR2(4000);
4015
4016
4017 BEGIN
4018
4019 l_prog_label := 'igs.plsql.igs_ad_ss_gen_001.update_appl_section_stat';
4020 l_label := 'igs.plsql.igs_ad_ss_gen_001.update_appl_section_stat.start';
4021
4022
4023 -- Status Flag = Optional
4024 -- String Required_componets = Null
4025 -- Open the cursor for the Included components list
4026 -- Loop thru the cursor and Concatenate the component_display name to Require_Componnents if the component doesn't have the record
4027 -- If the Required_components string is not null then Update the Checklist record with In-Progress Status and return the Required_Components String.
4028 -- If the Required_components string is null then Update the Checklist record with Completed Status and return Null.
4029 -- If there are no requied components in the given page Update the Checklist record with Optional Status and return Null.
4030
4031 l_req_comps := null;
4032 l_opt_comps := null;
4033 x_return_status := 'S';
4034
4035
4036 FOR pgComps IN c_pgcomps(p_Appl_Type, p_page_Name)
4037 LOOP
4038 IF pgComps.Component = 'ADDRESS' THEN
4039 OPEN c_addr(p_person_id, p_Appl_Type);
4040 FETCH c_addr INTO lv_temp_rec;
4041 IF c_addr%NOTFOUND THEN
4042 concat_req_comps(pgComps.required_flag, l_req_comps, l_opt_comps, pgComps.ComponentDesc);
4043 END IF;
4044 IF c_addr%ISOPEN THEN
4045 CLOSE c_addr;
4046 END IF;
4047
4048 ELSIF pgComps.Component = 'PHONE' THEN
4049 OPEN c_phone(p_person_id, p_Appl_Type);
4050 FETCH c_phone INTO lv_temp_rec;
4051 IF c_phone%NOTFOUND THEN
4052 concat_req_comps(pgComps.required_flag, l_req_comps, l_opt_comps, pgComps.ComponentDesc);
4053 END IF;
4054 IF c_phone%ISOPEN THEN
4055 CLOSE c_phone;
4056 END IF;
4057
4058 ELSIF pgComps.Component = 'EMAIL' THEN
4059 OPEN c_email(p_person_id);
4060 FETCH c_email INTO lv_temp_rec;
4061 IF c_email%NOTFOUND THEN
4062 concat_req_comps(pgComps.required_flag, l_req_comps, l_opt_comps, pgComps.ComponentDesc);
4063 END IF;
4064 IF c_email%ISOPEN THEN
4065 CLOSE c_email;
4066 END IF;
4067
4068 ELSIF pgComps.Component = 'ALT_ID' THEN
4069 OPEN c_altId(p_person_id, p_Appl_Type);
4070 FETCH c_altId INTO lv_temp_rec;
4071 IF c_altId%NOTFOUND THEN
4072 concat_req_comps(pgComps.required_flag, l_req_comps, l_opt_comps, pgComps.ComponentDesc);
4073 END IF;
4074 IF c_altId%ISOPEN THEN
4075 CLOSE c_altId;
4076 END IF;
4077
4078 ELSIF pgComps.Component = 'OTHER_NAMES' THEN
4079 OPEN c_other_Names(p_person_id, p_Appl_Type);
4080 FETCH c_other_Names INTO lv_temp_rec;
4081 IF c_other_Names%NOTFOUND THEN
4082 concat_req_comps(pgComps.required_flag, l_req_comps, l_opt_comps, pgComps.ComponentDesc);
4083 END IF;
4084 IF c_other_Names%ISOPEN THEN
4085 CLOSE c_other_Names;
4086 END IF;
4087
4088 ELSIF pgComps.Component = 'BIOGRAPHIC' THEN
4089 OPEN c_race(p_person_id);
4090 FETCH c_race INTO lv_temp_rec;
4091 IF c_race%NOTFOUND THEN
4092 concat_req_comps(pgComps.required_flag, l_req_comps, l_opt_comps, pgComps.ComponentDesc);
4093 END IF;
4094 IF c_race%ISOPEN THEN
4095 CLOSE c_race;
4096 END IF;
4097
4098 ELSIF pgComps.Component = 'SPECIAL_NEEDS' THEN
4099 OPEN c_spl_Needs(p_person_id);
4100 FETCH c_spl_Needs INTO lv_temp_rec;
4101 IF c_spl_Needs%NOTFOUND THEN
4102 concat_req_comps(pgComps.required_flag, l_req_comps, l_opt_comps, pgComps.ComponentDesc);
4103 END IF;
4104 IF c_spl_Needs%ISOPEN THEN
4105 CLOSE c_spl_Needs;
4106 END IF;
4107
4108 ELSIF pgComps.Component = 'PRIVACY' THEN
4109 OPEN c_privacy(p_person_id, p_Appl_Type);
4110 FETCH c_privacy INTO lv_temp_rec;
4111 IF c_privacy%NOTFOUND THEN
4112 concat_req_comps(pgComps.required_flag, l_req_comps, l_opt_comps, pgComps.ComponentDesc);
4113 END IF;
4114 IF c_privacy%ISOPEN THEN
4115 CLOSE c_privacy;
4116 END IF;
4117
4118 ELSIF pgComps.Component = 'RELATIONSHIPS' THEN
4119 OPEN c_relations(p_person_id, p_Appl_Type);
4120 FETCH c_relations INTO lv_temp_rec;
4121 IF c_relations%NOTFOUND THEN
4122 concat_req_comps(pgComps.required_flag, l_req_comps, l_opt_comps, pgComps.ComponentDesc);
4123 END IF;
4124 IF c_relations%ISOPEN THEN
4125 CLOSE c_relations;
4126 END IF;
4127
4128 ELSIF pgComps.Component = 'FELONY' THEN
4129 OPEN c_felony(p_person_id);
4130 FETCH c_felony INTO c_felony_rec;
4131 IF c_felony%NOTFOUND THEN
4132 concat_req_comps(pgComps.required_flag, l_req_comps, l_opt_comps, pgComps.ComponentDesc);
4133 ELSIF c_felony_rec.FELONY_CONVICTED_FLAG IS NULL THEN
4134 concat_req_comps(pgComps.required_flag, l_req_comps, l_opt_comps, pgComps.ComponentDesc);
4135 END IF;
4136 IF c_felony%ISOPEN THEN
4137 CLOSE c_felony;
4138 END IF;
4139
4140 ELSIF pgComps.Component = 'HOUSING_STATUS' THEN
4141 OPEN c_housing(p_person_id);
4142 FETCH c_housing INTO lv_temp_rec;
4143 IF c_housing%NOTFOUND THEN
4144 concat_req_comps(pgComps.required_flag, l_req_comps, l_opt_comps, pgComps.ComponentDesc);
4145 END IF;
4146 IF c_housing%ISOPEN THEN
4147 CLOSE c_housing;
4148 END IF;
4149
4150 ELSIF pgComps.Component = 'HEALTH_INSU' THEN
4151 OPEN c_health_insu(p_person_id);
4152 FETCH c_health_insu INTO lv_temp_rec;
4153 IF c_health_insu%NOTFOUND THEN
4154 concat_req_comps(pgComps.required_flag, l_req_comps, l_opt_comps, pgComps.ComponentDesc);
4155 END IF;
4156 IF c_health_insu%ISOPEN THEN
4157 CLOSE c_health_insu;
4158 END IF;
4159
4160 ELSIF pgComps.Component = 'HEALTH_IMMU' THEN
4161 OPEN c_health_immu(p_person_id);
4162 FETCH c_health_immu INTO lv_temp_rec;
4163 IF c_health_immu%NOTFOUND THEN
4164 concat_req_comps(pgComps.required_flag, l_req_comps, l_opt_comps, pgComps.ComponentDesc);
4165 END IF;
4166 IF c_health_immu%ISOPEN THEN
4167 CLOSE c_health_immu;
4168 END IF;
4169
4170 ELSIF pgComps.Component = 'COUNTRY_RESIDENCE' THEN
4171 OPEN c_residence(p_person_id);
4172 FETCH c_residence INTO lv_temp_rec;
4173 IF c_residence%NOTFOUND THEN
4174 concat_req_comps(pgComps.required_flag, l_req_comps, l_opt_comps, pgComps.ComponentDesc);
4175 END IF;
4176 IF c_residence%ISOPEN THEN
4177 CLOSE c_residence;
4178 END IF;
4179
4180 ELSIF pgComps.Component = 'LANGUAGE' THEN
4181 OPEN c_lang(p_person_id);
4182 FETCH c_lang INTO lv_temp_rec;
4183 IF c_lang%NOTFOUND THEN
4184 concat_req_comps(pgComps.required_flag, l_req_comps, l_opt_comps, pgComps.ComponentDesc);
4185 END IF;
4186 IF c_lang%ISOPEN THEN
4187 CLOSE c_lang;
4188 END IF;
4189
4190 ELSIF pgComps.Component = 'STATE_RESI' THEN
4191 OPEN c_sor(p_person_id);
4192 FETCH c_sor INTO lv_temp_rec;
4193 IF c_sor%NOTFOUND THEN
4194 concat_req_comps(pgComps.required_flag, l_req_comps, l_opt_comps, pgComps.ComponentDesc);
4195 END IF;
4196 IF c_sor%ISOPEN THEN
4197 CLOSE c_sor;
4198 END IF;
4199
4200 ELSIF pgComps.Component = 'VOTER_INFO' THEN
4201 OPEN c_vinfo(p_person_id);
4202 FETCH c_vinfo INTO lv_temp_rec;
4203 IF c_vinfo%NOTFOUND THEN
4204 concat_req_comps(pgComps.required_flag, l_req_comps, l_opt_comps, pgComps.ComponentDesc);
4205 END IF;
4206 IF c_vinfo%ISOPEN THEN
4207 CLOSE c_vinfo;
4208 END IF;
4209
4210 ELSIF pgComps.Component = 'INCOME_TAX' THEN
4211 OPEN c_itax(p_person_id);
4212 FETCH c_itax INTO lv_temp_rec;
4213 IF c_itax%NOTFOUND THEN
4214 concat_req_comps(pgComps.required_flag, l_req_comps, l_opt_comps, pgComps.ComponentDesc);
4215 END IF;
4216 IF c_itax%ISOPEN THEN
4217 CLOSE c_itax;
4218 END IF;
4219
4220 /* ELSIF pgComps.Component = 'MILITARY' THEN
4221 OPEN c_military(p_person_id);
4222 FETCH c_military INTO lv_temp_rec;
4223 IF c_military%NOTFOUND THEN
4224 concat_req_comps(pgComps.required_flag, l_req_comps, l_opt_comps, pgComps.ComponentDesc);
4225 END IF;
4226 IF c_military%ISOPEN THEN
4227 CLOSE c_military;
4228 END IF; */
4229
4230 ELSIF pgComps.Component IN ('COUNTRY_CITIZENSHIP','CITIZENSHIP') THEN
4231 OPEN c_citizenship(p_person_id);
4232 FETCH c_citizenship INTO lv_temp_rec;
4233 IF c_citizenship%NOTFOUND THEN
4234 concat_req_comps(pgComps.required_flag, l_req_comps, l_opt_comps, pgComps.ComponentDesc);
4235 END IF;
4236 IF c_citizenship%ISOPEN THEN
4237 CLOSE c_citizenship;
4238 END IF;
4239
4240 ELSIF pgComps.Component = 'VISA' THEN
4241 OPEN c_visa(p_person_id);
4242 FETCH c_visa INTO lv_temp_rec;
4243 IF c_visa%NOTFOUND THEN
4244 concat_req_comps(pgComps.required_flag, l_req_comps, l_opt_comps, pgComps.ComponentDesc);
4245 END IF;
4246 IF c_visa%ISOPEN THEN
4247 CLOSE c_visa;
4248 END IF;
4249
4250 ELSIF pgComps.Component = 'PASSPORT' THEN
4251 OPEN c_passport(p_person_id);
4252 FETCH c_passport INTO lv_temp_rec;
4253 IF c_passport%NOTFOUND THEN
4254 concat_req_comps(pgComps.required_flag, l_req_comps, l_opt_comps, pgComps.ComponentDesc);
4255 END IF;
4256 IF c_passport%ISOPEN THEN
4257 CLOSE c_passport;
4258 END IF;
4259
4260 -- ELSIF pgComps.Component = 'FIN_VER' THEN
4261 -- None
4262
4263 ELSIF pgComps.Component = 'PROGRAM_PREF' THEN
4264 OPEN c_prog_pref(p_adm_appl_number);
4265 FETCH c_prog_pref INTO c_prog_pref_rec;
4266 IF c_prog_pref%NOTFOUND THEN
4267 concat_req_comps(pgComps.required_flag, l_req_comps, l_opt_comps, pgComps.ComponentDesc);
4268 END IF;
4269 IF c_prog_pref%ISOPEN THEN
4270 CLOSE c_prog_pref;
4271 END IF;
4272
4273 /* ELSIF pgComps.Component = 'PROG_PREF_DTLS' THEN
4274 OPEN c_prog_dtls(p_adm_appl_number);
4275 FETCH c_prog_dtls INTO c_prog_dtls_rec;
4276 IF c_prog_dtls%NOTFOUND THEN
4277 concat_req_comps(pgComps.required_flag, l_req_comps, l_opt_comps, pgComps.ComponentDesc);
4278 END IF;
4279 IF c_prog_dtls%ISOPEN THEN
4280 CLOSE c_prog_dtls;
4281 END IF;
4282 */
4283
4284 ELSIF pgComps.Component = 'DESIRED_UNITS' THEN
4285 progpreffound := 'N' ;
4286 FOR c_prog_pref_rec_desus IN c_prog_pref(p_adm_appl_number) LOOP
4287 progpreffound := 'Y';
4288 OPEN c_dunits(c_prog_pref_rec_desus.ss_admappl_pgm_id);
4289 FETCH c_dunits INTO lv_temp_rec;
4290 IF c_dunits%NOTFOUND THEN
4291 concat_req_comps(pgComps.required_flag, l_req_comps, l_opt_comps, pgComps.ComponentDesc);
4292 CLOSE c_dunits;
4293 EXIT;
4294 END IF;
4295 IF c_dunits%ISOPEN THEN
4296 CLOSE c_dunits;
4297 END IF;
4298 IF progpreffound = 'N' THEN
4299 concat_req_comps(pgComps.required_flag, l_req_comps, l_opt_comps, pgComps.ComponentDesc);
4300 END IF;
4301 END LOOP;
4302
4303
4304
4305 ELSIF pgComps.Component = 'EDUC_GOALS' THEN
4306 progpreffound := 'N' ;
4307 FOR c_prog_pref_rec_deedu IN c_prog_pref(p_adm_appl_number) LOOP
4308 progpreffound := 'Y';
4309 OPEN c_educ_goals(c_prog_pref_rec_deedu.ss_admappl_pgm_id);
4310 FETCH c_educ_goals INTO lv_temp_rec;
4311 IF c_educ_goals%NOTFOUND THEN
4312 concat_req_comps(pgComps.required_flag, l_req_comps, l_opt_comps, pgComps.ComponentDesc);
4313 CLOSE c_educ_goals;
4314 EXIT;
4315 END IF;
4316 IF c_educ_goals%ISOPEN THEN
4317 CLOSE c_educ_goals;
4318 END IF;
4319 IF progpreffound = 'N' THEN
4320 concat_req_comps(pgComps.required_flag, l_req_comps, l_opt_comps, pgComps.ComponentDesc);
4321 END IF;
4322 END LOOP;
4323
4324 ELSIF pgComps.Component = 'FIN_AID' THEN
4325 finaidrecordfound := 'N';
4326 FOR c_fin_aid_rec IN c_fin_aid(p_adm_appl_number) LOOP
4327 finaidrecordfound := 'Y';
4328 IF c_fin_aid_rec.apply_for_finaid IS NULL THEN
4329 finaidrecordfound := 'N';
4330 EXIT;
4331 END IF;
4332 END LOOP;
4333
4334 IF finaidrecordfound ='N' THEN
4335 concat_req_comps(pgComps.required_flag, l_req_comps, l_opt_comps, pgComps.ComponentDesc);
4336 END IF;
4337
4338
4339 ELSIF pgComps.Component = 'SECONDARY' THEN
4340 OPEN c_sec(p_person_id);
4341 FETCH c_sec INTO lv_temp_rec;
4342 IF c_sec%NOTFOUND THEN
4343 concat_req_comps(pgComps.required_flag, l_req_comps, l_opt_comps, pgComps.ComponentDesc);
4344 END IF;
4345 IF c_sec%ISOPEN THEN
4346 CLOSE c_sec;
4347 END IF;
4348
4349 ELSIF pgComps.Component = 'POST_SECONDARY' THEN
4350 OPEN c_post_sec(p_person_id);
4351 FETCH c_post_sec INTO lv_temp_rec;
4352 IF c_post_sec%NOTFOUND THEN
4353 -- Check for program attempt in local institution.
4354 OPEN c_local_post_sec(p_person_id);
4355 FETCH c_local_post_sec INTO lv_temp_rec;
4356 IF c_local_post_sec%NOTFOUND THEN
4357 concat_req_comps(pgComps.required_flag, l_req_comps, l_opt_comps, pgComps.ComponentDesc);
4358 END IF;
4359 IF c_local_post_sec%ISOPEN THEN
4360 CLOSE c_local_post_sec;
4361 END IF;
4362 END IF;
4363 IF c_post_sec%ISOPEN THEN
4364 CLOSE c_post_sec;
4365 END IF;
4366
4367 ELSIF pgComps.Component = 'ADM_TEST_RESULTS' THEN
4368 OPEN c_test_rslts(p_person_id, p_Appl_Type);
4369 FETCH c_test_rslts INTO lv_temp_rec;
4370 IF c_test_rslts%NOTFOUND THEN
4371 concat_req_comps(pgComps.required_flag, l_req_comps, l_opt_comps, pgComps.ComponentDesc);
4372 END IF;
4373 IF c_test_rslts%ISOPEN THEN
4374 CLOSE c_test_rslts;
4375 END IF;
4376
4377 ELSIF pgComps.Component = 'QUALIFICATION' THEN
4378 OPEN c_qual(p_person_id);
4379 FETCH c_qual INTO lv_temp_rec;
4380 IF c_qual%NOTFOUND THEN
4381 concat_req_comps(pgComps.required_flag, l_req_comps, l_opt_comps, pgComps.ComponentDesc);
4382 END IF;
4383 IF c_qual%ISOPEN THEN
4384 CLOSE c_qual;
4385 END IF;
4386
4387 ELSIF pgComps.Component = 'ACAD_HONORS' THEN
4388 OPEN c_acad_hon(p_person_id);
4389 FETCH c_acad_hon INTO lv_temp_rec;
4390 IF c_acad_hon%NOTFOUND THEN
4391 concat_req_comps(pgComps.required_flag, l_req_comps, l_opt_comps, pgComps.ComponentDesc);
4392 END IF;
4393 IF c_acad_hon%ISOPEN THEN
4394 CLOSE c_acad_hon;
4395 END IF;
4396
4397 ELSIF pgComps.Component = 'PERSONAL_STMTS' THEN
4398 IF fnd_log.test(fnd_log.level_statement,l_prog_label) THEN
4399 l_debug_str := ' Validating Personal Statements Component';
4400 fnd_log.string_with_context( fnd_log.level_statement,l_label,l_debug_str, NULL,NULL,NULL,NULL,NULL,null);
4401 END IF;
4402
4403 OPEN c_perstat_group(p_person_id,p_adm_appl_number,p_Appl_Type);
4404 LOOP
4405 IF fnd_log.test(fnd_log.level_statement,l_prog_label) THEN
4406 l_debug_str := 'In c_perstat_group with p_person_id ->' || p_person_id || ', p_adm_appl_number -> ' ||
4407 p_adm_appl_number || ', p_Appl_Type -> ' || p_Appl_Type;
4408 fnd_log.string_with_context( fnd_log.level_statement,l_label,l_debug_str, NULL,NULL,NULL,NULL,NULL,null);
4409 END IF;
4410
4411 FETCH c_perstat_group INTO l_perstat_group_rec;
4412 EXIT WHEN c_perstat_group%NOTFOUND;
4413 IF l_perstat_group_rec.group_number = -1 THEN
4414
4415 IF fnd_log.test(fnd_log.level_statement,l_prog_label) THEN
4416 l_debug_str := ' Personal Satement is not associated to Group with ss perstat id -> ' || l_perstat_group_rec.SS_PERSTAT_ID;
4417 fnd_log.string_with_context( fnd_log.level_statement,l_label,l_debug_str, NULL,NULL,NULL,NULL,NULL,null);
4418 END IF;
4419
4420 IF (l_perstat_group_rec.required = 'Yes' AND l_perstat_group_rec.attach_exists = 'N') THEN
4421 IF fnd_log.test(fnd_log.level_statement,l_prog_label) THEN
4422 l_debug_str := ' Personal Satement is Required but not provided -> ' ;
4423 fnd_log.string_with_context( fnd_log.level_statement,l_label,l_debug_str, NULL,NULL,NULL,NULL,NULL,null);
4424 END IF;
4425 l_flag := 'N';
4426 END IF;
4427 ELSE
4428 IF fnd_log.test(fnd_log.level_statement,l_prog_label) THEN
4429 l_debug_str := ' Personal Satement Group -> ' || l_perstat_group_rec.group_number;
4430 fnd_log.string_with_context( fnd_log.level_statement,l_label,l_debug_str, NULL,NULL,NULL,NULL,NULL,null);
4431 END IF;
4432
4433 l_perstat_count := 0;
4434 OPEN c_perstat(p_person_id,p_adm_appl_number,l_perstat_group_rec.group_number);
4435 LOOP
4436
4437 FETCH c_perstat INTO l_perstat_rec;
4438 EXIT WHEN c_perstat%NOTFOUND;
4439
4440 IF fnd_log.test(fnd_log.level_statement,l_prog_label) THEN
4441 l_debug_str := ' Personal Satements ID -> ' || l_perstat_rec.SS_PERSTAT_ID ||
4442 'Presnt Count of statments for this group' || l_perstat_count;
4443 fnd_log.string_with_context( fnd_log.level_statement,l_label,l_debug_str, NULL,NULL,NULL,NULL,NULL,null);
4444 END IF;
4445
4446 IF (l_perstat_rec.attach_exists = 'Y') THEN
4447 l_perstat_count := l_perstat_count + 1;
4448 ELSE
4449 IF l_perstat_rec.required = 'Yes'THEN
4450 l_flag := 'N';
4451 END IF;
4452 END IF;
4453 END LOOP;
4454 CLOSE c_perstat;
4455
4456 IF fnd_log.test(fnd_log.level_statement,l_prog_label) THEN
4457 l_debug_str := ' Personal Satements count for Group -> ' || l_perstat_group_rec.group_number ||' is ' || l_perstat_count;
4458 fnd_log.string_with_context( fnd_log.level_statement,l_label,l_debug_str, NULL,NULL,NULL,NULL,NULL,null);
4459 END IF;
4460
4461 IF l_perstat_count < l_perstat_group_rec.group_min THEN
4462 l_flag := 'N';
4463 END IF;
4464 END IF;
4465 END LOOP;
4466 CLOSE c_perstat_group;
4467
4468 IF l_flag = 'N' THEN
4469 concat_req_comps(pgComps.required_flag, l_req_comps, l_opt_comps, pgComps.ComponentDesc);
4470 END IF;
4471
4472 ELSIF pgComps.Component = 'SUPPORTING_INFO' THEN
4473 OPEN c_supp_info(p_person_id, p_Appl_Type);
4474 FETCH c_supp_info INTO lv_temp_rec;
4475 IF c_supp_info%NOTFOUND THEN
4476 concat_req_comps(pgComps.required_flag, l_req_comps, l_opt_comps, pgComps.ComponentDesc);
4477 END IF;
4478 IF c_supp_info%ISOPEN THEN
4479 CLOSE c_supp_info;
4480 END IF;
4481
4482 ELSIF pgComps.Component = 'OTHER_INST' THEN
4483 OPEN c_oth_inst(p_adm_appl_number);
4484 FETCH c_oth_inst INTO lv_temp_rec;
4485 IF c_oth_inst%NOTFOUND THEN
4486 concat_req_comps(pgComps.required_flag, l_req_comps, l_opt_comps, pgComps.ComponentDesc);
4487 END IF;
4488 IF c_oth_inst%ISOPEN THEN
4489 CLOSE c_oth_inst;
4490 END IF;
4491
4492 ELSIF pgComps.Component = 'ACAD_INTEREST' THEN
4493 OPEN c_acad_int(p_adm_appl_number);
4494 FETCH c_acad_int INTO lv_temp_rec;
4495 IF c_acad_int%NOTFOUND THEN
4496 concat_req_comps(pgComps.required_flag, l_req_comps, l_opt_comps, pgComps.ComponentDesc);
4497 END IF;
4498 IF c_acad_int%ISOPEN THEN
4499 CLOSE c_acad_int;
4500 END IF;
4501
4502 ELSIF pgComps.Component = 'SPECIAL_TALENTS' THEN
4503 OPEN c_spl_tal(p_adm_appl_number);
4504 FETCH c_spl_tal INTO lv_temp_rec;
4505 IF c_spl_tal%NOTFOUND THEN
4506 concat_req_comps(pgComps.required_flag, l_req_comps, l_opt_comps, pgComps.ComponentDesc);
4507 END IF;
4508 IF c_spl_tal%ISOPEN THEN
4509 CLOSE c_spl_tal;
4510 END IF;
4511
4512 ELSIF pgComps.Component = 'EXTRACUR_ACTIVITIES' THEN
4513 OPEN c_ext_curr(p_person_id);
4514 FETCH c_ext_curr INTO lv_temp_rec;
4515 IF c_ext_curr%NOTFOUND THEN
4516 concat_req_comps(pgComps.required_flag, l_req_comps, l_opt_comps, pgComps.ComponentDesc);
4517 END IF;
4518 IF c_ext_curr%ISOPEN THEN
4519 CLOSE c_ext_curr;
4520 END IF;
4521
4522 ELSIF pgComps.Component = 'EMPLOYMENT_HIST' THEN
4523 OPEN c_emp_hist(p_person_id);
4524 FETCH c_emp_hist INTO lv_temp_rec;
4525 IF c_emp_hist%NOTFOUND THEN
4526 concat_req_comps(pgComps.required_flag, l_req_comps, l_opt_comps, pgComps.ComponentDesc);
4527 END IF;
4528 IF c_emp_hist%ISOPEN THEN
4529 CLOSE c_emp_hist;
4530 END IF;
4531
4532 END IF;
4533 END LOOP;
4534
4535 IF l_req_comps IS NOT NULL THEN
4536 l_comp_status:='INPROGRESS';
4537 ELSIF l_opt_comps IS NULL THEN
4538 l_comp_status:='COMPLETE';
4539 ELSE
4540 OPEN c_req_comps_exist(p_Appl_Type, p_page_Name);
4541 FETCH c_req_comps_exist INTO c_req_comps_exist_rec;
4542 IF c_req_comps_exist%NOTFOUND THEN
4543 l_comp_status:='OPTIONAL';
4544 ELSE
4545 l_comp_status:='COMPLETE';
4546 END IF;
4547 END IF;
4548
4549 UPDATE IGS_SS_AD_SEC_STAT
4550 SET COMPLETION_STATUS = l_comp_status
4551 WHERE SS_ADM_APPL_ID = p_adm_appl_number
4552 AND PERSON_ID = p_person_id
4553 AND SECTION = p_page_Name;
4554
4555 x_mand_incomplete := l_req_comps;
4556
4557 EXCEPTION
4558 WHEN OTHERS THEN
4559 IF c_perstat_group%ISOPEN THEN
4560 CLOSE c_perstat_group;
4561 END IF;
4562 IF c_perstat%ISOPEN THEN
4563 CLOSE c_perstat;
4564 END IF;
4565 logDetail( 'Exception from update of Application Status, ' || SQLERRM,'S');
4566 x_return_status:='E';
4567 x_message_name := 'IGS_GE_UNHANDLED_EXP';
4568
4569 IF FND_MSG_PUB.Count_Msg < 1 THEN
4570 Fnd_Message.Set_Name('IGS','IGS_GE_UNHANDLED_EXP');
4571 Fnd_Message.Set_Token('NAME','IGS_AD_SS_GEN_001.update_appl_section_stat -'||SQLERRM);
4572 IGS_GE_MSG_STACK.ADD;
4573 END IF;
4574 END update_appl_section_stat;
4575
4576
4577 /* Procedure which will Sync the checklist w.r.t Application type configuration. */
4578 PROCEDURE sync_appl_section_stat(p_person_id IN NUMBER,
4579 p_adm_appl_number IN NUMBER,
4580 p_Appl_Type IN VARCHAR2,
4581 p_login_id IN NUMBER,
4582 x_message_name OUT NOCOPY VARCHAR2,
4583 x_return_status OUT NOCOPY VARCHAR2,
4584 x_max_Sections OUT NOCOPY NUMBER) AS
4585 /*****************************************************************************************
4586 Created By: stammine
4587 Date Created : 10-Jun-2005
4588 Purpose: 1. Inserts records from Self Service Admissions Application Type Configuration
4589 if any discrepancy exists with existing Status data and setup.
4590 2. Update the COMPLETION_STATUS with COMPLETE if COMPLETION_STATUS = ERROR.
4591 3. Returns the No. of Pages/Sections included for the Application Type.
4592 This is used to set the sMaxSection Session Variable - Used throughout the Application Create/Update flow.
4593 Known limitations,enhancements,remarks:
4594 Change History
4595 Who When What
4596 *****************************************************************************************/
4597 CURSOR c_NoPgs(cp_ApplType igs_ss_Adm_appl_stg.ADMISSION_APPLICATION_TYPE%TYPE) IS
4598 SELECT count(*)
4599 FROM igs_ad_ss_appl_pgs
4600 WHERE admission_application_type = cp_ApplType
4601 AND include_ind = 'Y';
4602
4603 BEGIN
4604
4605 -- Inserts records from Self Service Admissions Application Type Configuration
4606 -- if any discrepancy exists with existing Status data and setup.
4607 insert_appl_section_stat(x_message_name,
4608 x_return_status,
4609 p_person_id,
4610 p_adm_appl_number,
4611 p_login_id);
4612
4613 -- Update the COMPLETION_STATUS with COMPLETE if COMPLETION_STATUS = ERROR for person in Context.
4614 UPDATE IGS_SS_AD_SEC_STAT
4615 SET COMPLETION_STATUS = 'COMPLETE'
4616 WHERE SS_ADM_APPL_ID = p_adm_appl_number
4617 AND PERSON_ID = p_person_id
4618 AND COMPLETION_STATUS = 'ERROR';
4619
4620 -- Returns the No. of Pages/Sections included for the Application Type.
4621 -- This is used to set the sMaxSection Session Variable - Used throughout the Application Create/Update flow.
4622 OPEN c_NoPgs(p_Appl_Type);
4623 FETCH c_NoPgs
4624 INTO x_max_Sections;
4625 IF c_NoPgs%ISOPEN THEN
4626 CLOSE c_NoPgs;
4627 END IF;
4628
4629 EXCEPTION
4630 WHEN OTHERS THEN
4631 x_return_status := 'E';
4632 x_message_name := 'IGS_GE_UNHANDLED_EXP';
4633 x_max_Sections := 0;
4634 logDetail('Exception from sync_appl_section_stat: ' || SQLERRM, 'S');
4635 IF FND_MSG_PUB.Count_Msg < 1 THEN
4636 Fnd_Message.Set_Name('IGS','IGS_GE_UNHANDLED_EXP');
4637 Fnd_Message.Set_Token('NAME','IGS_AD_SS_GEN_001.sync_appl_section_stat -'||SQLERRM);
4638 IGS_GE_MSG_STACK.ADD;
4639 END IF;
4640 IF c_NoPgs%ISOPEN THEN
4641 CLOSE c_NoPgs;
4642 END IF;
4643 END sync_appl_section_stat;
4644
4645
4646 PROCEDURE auto_assign_pgs_comps_terms(
4647 x_message_name OUT NOCOPY VARCHAR2,
4648 x_return_status OUT NOCOPY VARCHAR2,
4649 p_appl_type IN VARCHAR2,
4650 p_admission_cat IN VARCHAR2 ,
4651 p_s_admission_process_type IN VARCHAR2
4652 )
4653 AS
4654 /*****************************************************************************************
4655 Created By: stammine
4656 Date Created : 10-Jun-2005
4657 Purpose: procedure which will create the records in following areas when Application Type is created
4658 Application Type pages
4659 Application Type page Components
4660 Terms and Conditions.
4661 Invoked when New application type is created.
4662 Known limitations,enhancements,remarks:
4663 Change History
4664 Who When What
4665 *****************************************************************************************/
4666 /* List of Cursors --
4667 -- Cursor To retrieve the SS Pages from Application Type Configuration Setup table.
4668 -- Cursor to retrieve the SS page Components from Application Type Configuration Setup table
4669 */
4670
4671 CURSOR cpcs (cp_admission_cat IGS_AD_PRCS_CAT_STEP.admission_Cat%TYPE,
4672 cp_s_admission_process_type IGS_AD_PRCS_CAT_STEP.s_admission_process_type%TYPE,
4673 cp_page_code IGS_AD_SS_APPL_CONF.page_code%TYPE,
4674 cp_comp_code IGS_AD_SS_APPL_CONF.component_code%TYPE) IS
4675 SELECT mandatory_step_ind --, s_admission_step_type --, step_group_type
4676 FROM IGS_AD_PRCS_CAT_STEP
4677 WHERE admission_Cat = cp_admission_cat
4678 AND s_admission_process_type = cp_s_admission_process_type
4679 AND s_admission_step_type = (SELECT apc_step FROM igs_ad_ss_appl_conf
4680 WHERE page_code = cp_page_code
4681 AND component_code = cp_comp_code);
4682
4683 CURSOR cpgs IS
4684 SELECT
4685 DISTINCT conf.page_code,
4686 lkv.meaning page_desc
4687 FROM igs_ad_ss_appl_conf conf,
4688 igs_lookup_values lkv
4689 WHERE
4690 lkv.lookup_type = 'SS_APPL_SELFSERVICE_PAGES'
4691 AND lkv.lookup_code = conf.page_code
4692 AND lkv.ENABLED_FLAG = 'Y'
4693 AND SYSDATE BETWEEN NVL(START_DATE_ACTIVE,SYSDATE) AND NVL(END_DATE_ACTIVE,SYSDATE) ;
4694
4695 CURSOR cpcomps (cp_page_code IGS_AD_SS_APPL_CONF.page_code%TYPE)
4696 IS
4697 SELECT conf.page_code, conf.component_code,
4698 lkv.meaning component_desc,
4699 conf.include_flag, conf.apc_step
4700 FROM IGS_AD_SS_APPL_CONF conf,
4701 igs_lookup_values lkv
4702 WHERE
4703 lkv.lookup_type = 'IGS_AD_SS_PG_COMPS'
4704 AND lkv.lookup_code = conf.component_code
4705 AND conf.page_code = cp_page_code
4706 AND lkv.ENABLED_FLAG = 'Y'
4707 AND SYSDATE BETWEEN NVL(START_DATE_ACTIVE,SYSDATE) AND NVL(END_DATE_ACTIVE,SYSDATE);
4708
4709 CURSOR c_app_pgs (cp_appl_type igs_ad_ss_appl_pgs.admission_application_type%TYPE)
4710 IS
4711 SELECT page_name FROM igs_ad_ss_appl_pgs WHERE
4712 admission_application_type = cp_appl_type;
4713
4714 lv_order igs_ad_ss_appl_pgs.disp_order%type;
4715 lv_rowid VARCHAR2(25);
4716 lv_mand_ind VARCHAR2(1);
4717 lv_cond_disp_name igs_ad_ss_terms.COND_DISP_NAME%type;
4718 lv_cond_disp_txt igs_ad_ss_terms.COND_DISP_TEXT%type;
4719 lv_incl_flag igs_ad_ss_terms.INCLUDE_FLAG%type;
4720 lv_req_flag igs_ad_ss_appl_comps.required_flag%type;
4721 lv_appl_type igs_ad_ss_appl_typ.admission_application_type%TYPE;
4722
4723 BEGIN
4724
4725 lv_rowid := '';
4726 lv_order := 0;
4727 lv_mand_ind := 'N';
4728 lv_cond_disp_name := NULL;
4729 lv_cond_disp_txt := NULL;
4730 lv_incl_flag := 'N';
4731
4732 FOR cpgs_rec IN cpgs
4733 LOOP
4734 IF cpgs_rec.page_code='PERSONAL_INFO' THEN
4735 lv_order := 2;
4736 ELSIF cpgs_rec.page_code='ADDRESS_INFO' THEN
4737 lv_order := 4;
4738 ELSIF cpgs_rec.page_code='FURTHER_INFO' THEN
4739 lv_order := 6;
4740 ELSIF cpgs_rec.page_code='RESIDENCY_INFO' THEN
4741 lv_order := 8;
4742 ELSIF cpgs_rec.page_code='INTL_INFO' THEN
4743 lv_order := 10;
4744 ELSIF cpgs_rec.page_code='APPLICATION_INFO' THEN
4745 lv_order := 12;
4746 ELSIF cpgs_rec.page_code='EDUCATIONAL_INFO' THEN
4747 lv_order := 14;
4748 ELSIF cpgs_rec.page_code='PERSONAL_STATEMENTS' THEN
4749 lv_order := 16;
4750 END IF;
4751 lv_appl_type := p_appl_type;
4752 -- dbms_output.put_line('Satya - Before Inserting Page : '||cpgs_rec.page_code);
4753 igs_ad_ss_appl_pgs_pkg.add_row (
4754 x_mode => 'R',
4755 x_rowid => lv_rowid,
4756 x_admission_application_type => lv_appl_type,
4757 x_page_name => cpgs_rec.page_code,
4758 x_include_ind => 'Y',
4759 x_required_ind => NULL,
4760 x_disp_order => lv_order,
4761 x_page_disp_name => cpgs_rec.page_desc
4762 );
4763 -- dbms_output.put_line('Satya - After Inserting Page : '||cpgs_rec.page_code);
4764 END LOOP;
4765
4766 lv_rowid := '';
4767
4768 FOR cpgs_rec IN c_app_pgs(p_appl_type)
4769 LOOP
4770 FOR cpcomps_rec IN cpcomps(cpgs_rec.page_name)
4771 LOOP
4772
4773 IF cpcomps_rec.component_code IN ('BASIC_INFO','PROGRAM_PREF') THEN
4774 lv_req_flag := 'Y';
4775 ELSIF cpcomps_rec.include_flag <> 'Y' THEN
4776 lv_req_flag := 'N';
4777 ELSE
4778 OPEN cpcs(p_admission_cat, p_s_admission_process_type, cpcomps_rec.page_code, cpcomps_rec.component_code);
4779 FETCH cpcs INTO lv_mand_ind;
4780
4781 IF cpcs%NOTFOUND OR cpcomps_rec.component_code IN ('FIN_VER','MILITARY') THEN
4782 lv_req_flag := 'N';
4783 ELSE
4784 lv_req_flag := lv_mand_ind;
4785 END IF;
4786
4787 IF cpcs%ISOPEN THEN
4788 CLOSE cpcs;
4789 END IF;
4790 END IF;
4791 lv_appl_type := p_appl_type;
4792
4793 -- dbms_output.put_line('Satya - Before Inserting component : '||cpcomps_rec.component_code);
4794 igs_ad_ss_appl_comps_pkg.add_row (
4795 x_mode => 'R',
4796 x_rowid => lv_rowid,
4797 x_admission_application_type => lv_appl_type,
4798 x_page_name => cpcomps_rec.page_code,
4799 x_component_code => cpcomps_rec.component_code,
4800 x_comp_disp_name => cpcomps_rec.component_desc,
4801 x_include_flag => cpcomps_rec.include_flag,
4802 x_required_flag => lv_req_flag
4803 );
4804
4805 -- dbms_output.put_line('Satya - After Inserting component : '||cpcomps_rec.component_code);
4806 END LOOP; -- Components
4807 END LOOP; -- Pages
4808
4809 -- Check if the Terms and Conditions exist in the table... If exists Donont modify.
4810 -- Inserting Terms and Conditions
4811 lv_rowid := '';
4812 FOR i IN 1 .. 10
4813 LOOP
4814 IF i = 1 then
4815 lv_cond_disp_name := FND_MESSAGE.GET_STRING('IGS','IGS_AD_SS_PRIVACY_STMT_HDR'); --'Privacy Statement'
4816 -- lv_cond_disp_txt := FND_MESSAGE.GET_STRING('IGS','IGS_SS_PRIVACY_STMT');
4817 lv_incl_flag := 'Y';
4818 ELSIF i = 2 then
4819 lv_cond_disp_name := FND_MESSAGE.GET_STRING('IGS','IGS_AD_SS_VERIFY_STMT_HDR'); --'Verification Statement';
4820 -- lv_cond_disp_txt := FND_MESSAGE.GET_STRING('IGS','IGS_SS_VERIFICATION_STMT');
4821 lv_incl_flag := 'Y';
4822 ELSE
4823 FND_MESSAGE.SET_NAME('IGS','IGS_AD_SS_COND_HDR');
4824 FND_MESSAGE.SET_TOKEN('COND_ID',i);
4825 lv_cond_disp_name := FND_MESSAGE.GET;
4826 lv_incl_flag := 'N';
4827 END IF;
4828 lv_appl_type := p_appl_type;
4829 lv_cond_disp_txt := NULL;
4830
4831 -- dbms_output.put_line('Satya - Before Inserting Term : '||lv_cond_disp_name);
4832 igs_ad_ss_terms_pkg.add_row(
4833 x_mode => 'R',
4834 x_rowid => lv_rowid,
4835 x_admission_application_type => lv_appl_type,
4836 x_cond_id => i,
4837 x_cond_disp_name => lv_cond_disp_name,
4838 x_cond_disp_text => lv_cond_disp_txt,
4839 x_include_flag => lv_incl_flag
4840 );
4841 -- dbms_output.put_line('Satya - After Inserting Term : '||lv_cond_disp_name);
4842
4843 END LOOP;
4844
4845 x_message_name := 'S';
4846 x_return_status := NULL;
4847
4848 EXCEPTION
4849 WHEN OTHERS THEN
4850 x_return_status := 'E';
4851 x_message_name := 'IGS_GE_UNHANDLED_EXP';
4852 IF FND_MSG_PUB.Count_Msg < 1 THEN
4853 Fnd_Message.Set_Name('IGS','IGS_GE_UNHANDLED_EXP');
4854 Fnd_Message.Set_Token('NAME','IGS_AD_SS_GEN_001.auto_assign_pgs_comps_terms -'||SQLERRM);
4855 IGS_GE_MSG_STACK.ADD;
4856 END IF;
4857 END auto_assign_pgs_comps_terms;
4858
4859
4860 /* Local function to check if component is included in an Application Type for a Page */
4861 FUNCTION isPgCompIncluded
4862 (
4863 p_Appl_type IGS_AD_SS_APPL_COMPS.Admission_application_type%TYPE,
4864 p_page_code IGS_AD_SS_APPL_COMPS.Page_name%TYPE,
4865 p_comp_code IGS_AD_SS_APPL_COMPS.component_code%TYPE
4866 ) RETURN BOOLEAN IS
4867
4868 CURSOR sspc (cp_p_Appl_type IGS_AD_SS_APPL_COMPS.Admission_application_type%TYPE,
4869 cp_page_code IGS_AD_SS_APPL_COMPS.Page_name%TYPE,
4870 cp_comp_code IGS_AD_SS_APPL_COMPS.component_code%TYPE ) IS
4871 SELECT 'x'
4872 FROM IGS_AD_SS_APPL_COMPS
4873 WHERE Admission_application_type = cp_p_Appl_type
4874 AND Page_name = cp_page_code
4875 AND component_code = cp_comp_code
4876 AND Include_flag = 'Y';
4877
4878 l_inc VARCHAR2(1);
4879 BEGIN
4880
4881 OPEN sspc(p_Appl_type,p_page_code,p_comp_code);
4882 FETCH sspc INTO l_inc;
4883 IF (sspc%FOUND) THEN
4884 CLOSE sspc;
4885 RETURN(TRUE);
4886 ELSE
4887 CLOSE sspc;
4888 RETURN(FALSE);
4889 END IF;
4890 END isPgCompIncluded;
4891
4892
4893 PROCEDURE update_assign_pgs_comps( x_message_name OUT NOCOPY VARCHAR2,
4894 x_return_status OUT NOCOPY VARCHAR2,
4895 p_appl_type IN VARCHAR2 DEFAULT NULL,
4896 p_admission_cat IN VARCHAR2,
4897 p_s_admission_process_type IN VARCHAR2
4898 ) AS
4899 /*****************************************************************************************
4900 Created By: stammine
4901 Date Created : 10-Jun-2005
4902 Purpose: procedure which will update the records in following areas when Application Category
4903 is Changed for an Application Type:
4904 Application Type pages
4905 Application Type page Components
4906 Terms and Conditions.
4907 Invoked when existing application type is updated.
4908 Known limitations,enhancements,remarks:
4909 Change History
4910 Who When What
4911 *****************************************************************************************/
4912
4913 CURSOR cpcs(cp_admission_cat IGS_AD_PRCS_CAT_STEP_ALL.admission_Cat%TYPE,
4914 cp_s_admission_process_type IGS_AD_PRCS_CAT_STEP_ALL.s_admission_process_type%TYPE,
4915 cp_page_code IGS_AD_SS_APPL_CONF.page_code%TYPE,
4916 cp_comp_code IGS_AD_SS_APPL_CONF.component_code%TYPE) IS
4917 SELECT mandatory_step_ind, s_admission_step_type, step_group_type
4918 FROM IGS_AD_PRCS_CAT_STEP_ALL
4919 WHERE admission_Cat = cp_admission_cat
4920 AND s_admission_process_type = cp_s_admission_process_type
4921 AND s_admission_step_type =
4922 (SELECT apc_step
4923 FROM IGS_AD_SS_APPL_CONF
4924 WHERE page_code = cp_page_code
4925 AND component_code = cp_comp_code
4926 AND apc_step IS NOT NULL);
4927
4928 CURSOR sspg_upd(cp_Admission_application_type IGS_AD_SS_APPL_PGS.Admission_application_type%TYPE) IS
4929 SELECT Admission_application_type, Page_name, Include_Ind
4930 FROM IGS_AD_SS_APPL_PGS
4931 WHERE Admission_application_type = cp_Admission_application_type;
4932
4933 CURSOR sspc_upd(cp_Admission_application_type IGS_AD_SS_APPL_COMPS.Admission_application_type%TYPE, cp_page_code IGS_AD_SS_APPL_COMPS.Page_name%TYPE) IS
4934 SELECT Admission_application_type, Page_name,component_code, Include_flag, Required_flag
4935 FROM IGS_AD_SS_APPL_COMPS
4936 WHERE Admission_application_type = cp_Admission_application_type
4937 AND Page_name = cp_page_code;
4938
4939 TYPE appl_type IS TABLE OF IGS_AD_SS_APPL_TYP.admission_application_type%TYPE INDEX BY BINARY_INTEGER;
4940 appl_type_table appl_type;
4941
4942 TYPE ApplCurType IS REF CURSOR;
4943 ssat_cv ApplCurType;
4944
4945 lv_mand_ind IGS_AD_PRCS_CAT_STEP_ALL.mandatory_step_ind%TYPE;
4946 lv_step IGS_AD_PRCS_CAT_STEP_ALL.s_admission_step_type%TYPE;
4947 lv_step_grp IGS_AD_PRCS_CAT_STEP_ALL.step_group_type%TYPE;
4948 lv_include_flag IGS_AD_SS_APPL_COMPS.include_flag%TYPE;
4949 lv_required_flag IGS_AD_SS_APPL_COMPS.required_flag%TYPE;
4950 appl_type_count NUMBER;
4951
4952 BEGIN
4953
4954 appl_type_count := 0;
4955
4956 IF p_appl_type IS NOT NULL THEN
4957 OPEN ssat_cv FOR
4958 SELECT admission_application_type
4959 FROM IGS_AD_SS_APPL_TYP
4960 WHERE
4961 admission_application_type = p_appl_type
4962 AND admission_cat = p_admission_cat
4963 AND s_admission_process_type = p_s_admission_process_type;
4964 ELSE
4965 OPEN ssat_cv FOR
4966 SELECT admission_application_type
4967 FROM IGS_AD_SS_APPL_TYP
4968 WHERE
4969 admission_cat = p_admission_cat
4970 AND s_admission_process_type = p_s_admission_process_type;
4971 END IF;
4972
4973 FETCH ssat_cv BULK COLLECT INTO appl_type_table;
4974 IF ssat_cv%ISOPEN THEN
4975 CLOSE ssat_cv;
4976 END IF;
4977
4978 appl_type_count := appl_type_table.COUNT;
4979
4980 FOR i IN 1 .. appl_type_count -- Application Type
4981 LOOP
4982 FOR appl_pgs_rec IN sspg_upd(appl_type_table(i)) -- page (Application Type)
4983 LOOP
4984
4985 FOR appl_pg_comps_rec IN sspc_upd(appl_pgs_rec.Admission_application_type,
4986 appl_pgs_rec.Page_name) --each component (Application Type, page)
4987 LOOP
4988
4989 IF appl_pg_comps_rec.component_code IN
4990 ('BASIC_INFO', 'PROGRAM_PREF') AND
4991 (appl_pg_comps_rec.include_flag <> 'Y' OR
4992 appl_pg_comps_rec.required_flag <> 'Y') THEN
4993
4994 -- Upadate the compoents table with Required_ind = Y and Include_ind = Y for the page=component.page_name
4995 -- and component =component.comp_name
4996
4997 UPDATE igs_ad_ss_appl_comps
4998 SET include_flag = 'Y' , required_flag = 'Y'
4999 WHERE Admission_application_type =
5000 appl_pg_comps_rec.Admission_application_type
5001 AND page_name = appl_pg_comps_rec.page_name
5002 AND component_code = appl_pg_comps_rec.component_code;
5003 ELSE
5004 OPEN cpcs(p_admission_cat,
5005 p_s_admission_process_type,
5006 appl_pg_comps_rec.page_name,
5007 appl_pg_comps_rec.component_code);
5008 FETCH cpcs
5009 INTO lv_mand_ind, lv_step, lv_step_grp;
5010 IF cpcs%FOUND THEN
5011 CLOSE cpcs;
5012 IF lv_step IN ('PER-ALTERNATE', 'PER-ALIASES', 'PER-SPLNEEDS') THEN
5013 IF appl_pg_comps_rec.page_name IN
5014 ('PERSONAL_INFO', 'FURTHER_INFO') AND
5015 appl_pg_comps_rec.Include_flag = 'Y' THEN
5016 IF appl_pg_comps_rec.Required_flag <> 'Y' THEN
5017 -- Upadate the compoents table with Required_ind = Y for the page=component.page_name
5018 -- and component =component.comp_name
5019 UPDATE igs_ad_ss_appl_comps
5020 SET required_flag = 'Y'
5021 WHERE Admission_application_type =
5022 appl_pg_comps_rec.Admission_application_type
5023 AND page_name = appl_pg_comps_rec.page_name
5024 AND component_code = appl_pg_comps_rec.component_code;
5025
5026 END IF;
5027
5028 ELSIF (appl_pg_comps_rec.page_name = 'PERSONAL_INFO' AND
5029 NOT isPgCompIncluded(appl_pg_comps_rec.Admission_application_type,'FURTHER_INFO',appl_pg_comps_rec.component_code))
5030 THEN
5031 UPDATE igs_ad_ss_appl_comps
5032 SET include_flag = 'Y' , required_flag = 'Y'
5033 WHERE Admission_application_type =
5034 appl_pg_comps_rec.Admission_application_type
5035 AND page_name = appl_pg_comps_rec.page_name
5036 AND component_code = appl_pg_comps_rec.component_code;
5037
5038 END IF;
5039 ELSIF lv_step = 'PER-ADDR' AND
5040 appl_pg_comps_rec.component_code = 'ADDRESS' THEN
5041 IF appl_pg_comps_rec.page_name IN
5042 ('PERSONAL_INFO', 'ADDRESS_INFO') AND
5043 appl_pg_comps_rec.Include_flag = 'Y' THEN
5044 IF appl_pg_comps_rec.Required_flag <> 'Y' THEN
5045
5046 -- Upadate the compoents table with Required_ind = Y for the page=component.page_name
5047 -- and component =component.comp_name and application_type = component.application_type
5048
5049 UPDATE igs_ad_ss_appl_comps
5050 SET required_flag = 'Y'
5051 WHERE Admission_application_type =
5052 appl_pg_comps_rec.Admission_application_type
5053 AND page_name = appl_pg_comps_rec.page_name
5054 AND component_code = appl_pg_comps_rec.component_code;
5055
5056 END IF;
5057 ELSIF (appl_pg_comps_rec.page_name = 'ADDRESS_INFO' AND
5058 NOT isPgCompIncluded(appl_pg_comps_rec.Admission_application_type,'PERSONAL_INFO',appl_pg_comps_rec.component_code)) THEN
5059
5060 UPDATE igs_ad_ss_appl_comps
5061 SET include_flag = 'Y' , required_flag = 'Y'
5062 WHERE Admission_application_type =
5063 appl_pg_comps_rec.Admission_application_type
5064 AND page_name = appl_pg_comps_rec.page_name
5065 AND component_code = appl_pg_comps_rec.component_code;
5066 END IF;
5067
5068 ELSIF lv_mand_ind = 'Y' THEN
5069 IF appl_pg_comps_rec.include_flag <> 'Y' OR
5070 appl_pg_comps_rec.required_flag <> 'Y' THEN
5071
5072 IF appl_pg_comps_rec.component_code IN ('MILITARY','FIN_VER') THEN
5073 UPDATE igs_ad_ss_appl_comps
5074 SET include_flag = 'Y' , required_flag = 'N'
5075 WHERE Admission_application_type = appl_pg_comps_rec.Admission_application_type
5076 AND page_name = appl_pg_comps_rec.page_name
5077 AND component_code = appl_pg_comps_rec.component_code;
5078 ELSE
5079 UPDATE igs_ad_ss_appl_comps
5080 SET include_flag = 'Y' , required_flag = 'Y'
5081 WHERE Admission_application_type = appl_pg_comps_rec.Admission_application_type
5082 AND page_name = appl_pg_comps_rec.page_name
5083 AND component_code = appl_pg_comps_rec.component_code;
5084 END IF;
5085 END IF;
5086 END IF;
5087 END IF;
5088 END IF;
5089
5090 IF cpcs%ISOPEN THEN
5091 CLOSE cpcs;
5092 END IF;
5093 END LOOP; -- Components
5094 END LOOP; -- Pages
5095 END LOOP; -- Application Types
5096
5097
5098 -- Include the page if the component for the page is included.
5099 -- Update the pages table IGS_AD_SS_APPL_PGS set Include_ind = Y where application_type = page.application_type
5100 -- and page_name = page.page_name;
5101 FORALL i IN 1 .. appl_type_count
5102 UPDATE IGS_AD_SS_APPL_PGS pgs SET Include_ind = 'Y' WHERE
5103 pgs.ADMISSION_APPLICATION_TYPE = appl_type_table(i) AND
5104 EXISTS (SELECT 'x' FROM IGS_AD_SS_APPL_COMPS comps WHERE
5105 comps.ADMISSION_APPLICATION_TYPE = appl_type_table(i)
5106 AND comps.Page_name = pgs.page_name
5107 AND comps.Include_flag = 'Y');
5108
5109 x_return_status := 'S';
5110 x_message_name := NULL;
5111
5112 EXCEPTION
5113 WHEN OTHERS THEN
5114 x_return_status := 'E';
5115 x_message_name := SQLERRM;
5116
5117 END update_assign_pgs_comps;
5118
5119 PROCEDURE validate_prog_pref (p_ss_adm_appl_id IN NUMBER ,
5120 p_course_cd IN VARCHAR2,
5121 p_crv_version_number IN NUMBER,
5122 p_location_cd IN VARCHAR2,
5123 p_attendance_mode IN VARCHAR2,
5124 p_attendance_type IN VARCHAR2,
5125 p_final_unit_set_cd IN VARCHAR2,
5126 p_us_version_number IN NUMBER,
5127 p_message_name OUT NOCOPY VARCHAR2,
5128 p_return_type OUT NOCOPY VARCHAR2) IS
5129 /*----------------------------------------------------------------------------
5130 || Created By : pbondugu
5131 || Created On : 9-Aug-2005
5132 || Purpose : For validating program preference record
5133 || Known limitations, enhancements or remarks :
5134 || Change History :
5135 || Who When What
5136 ----------------------------------------------------------------------------*/
5137
5138 CURSOR c_appl_Stg(cp_ss_adm_appl_id NUMBER) IS
5139 SELECT person_id, acad_cal_type, acad_cal_seq_number, adm_cal_type,
5140 adm_cal_seq_number , admission_cat, s_adm_process_type
5141 FROM igs_ss_adm_appl_stg
5142 WHERE ss_adm_appl_id = cp_ss_adm_appl_id;
5143
5144 CURSOR c_apcs (cp_step_type VARCHAR2, cp_admission_cat VARCHAR2, cp_s_admission_process_type VARCHAR2) IS
5145 SELECT s_admission_step_type, step_type_restriction_num
5146 FROM igs_ad_prcs_cat_step
5147 WHERE admission_cat = cp_admission_cat
5148 AND s_admission_process_type = cp_s_admission_process_type
5149 AND s_admission_step_type = cp_step_type
5150 AND step_group_type <> 'TRACK';
5151
5152
5153 CURSOR c_acaiv (
5154 cp_person_id IGS_AD_PS_APPL_INST.person_id%TYPE,
5155 cp_course_cd IGS_AD_PS_APPL_INST.course_cd%TYPE,
5156 cp_location_cd IGS_AD_PS_APPL_INST.location_cd%TYPE,
5157 cp_attendance_mode IGS_AD_PS_APPL_INST.attendance_mode%TYPE,
5158 cp_attendance_type IGS_AD_PS_APPL_INST.attendance_type%TYPE,
5159 cp_unit_set_cd IGS_AD_PS_APPL_INST.unit_set_cd%TYPE,
5160 cp_us_version_number IGS_AD_PS_APPL_INST.us_version_number%TYPE,
5161 cp_adm_cal_type IGS_AD_APPL.adm_cal_type%TYPE,
5162 cp_adm_ci_sequence_number IGS_AD_APPL.adm_ci_sequence_number%TYPE) IS
5163 SELECT 'x'
5164 FROM IGS_AD_APPL aav, IGS_AD_PS_APPL_INST acaiv
5165 WHERE aav.person_id = acaiv.person_id AND
5166 aav.admission_appl_number = acaiv.admission_appl_number AND
5167 acaiv.person_id = cp_person_id AND
5168 acaiv.course_cd = cp_course_cd AND
5169 NVL(acaiv.location_cd,'NULL') = NVL(cp_location_cd,'NULL') AND
5170 NVL(acaiv.attendance_mode,'NULL') = NVL(cp_attendance_mode,'NULL') AND
5171 NVL(acaiv.attendance_type,'NULL') = NVL(cp_attendance_type,'NULL') AND
5172 NVL(acaiv.unit_set_cd, 'NULL') = NVL(cp_unit_set_cd, 'NULL') AND
5173 NVL(acaiv.us_version_number,0) = NVL(cp_us_version_number,0) AND
5174 NVL(acaiv.adm_cal_type, aav.adm_cal_type) = cp_adm_cal_type AND
5175 NVL(acaiv.adm_ci_sequence_number, aav.adm_ci_sequence_number)
5176 = cp_adm_ci_sequence_number AND
5177 -- Check for CANCELLED added for bug 2678766
5178 NVL(IGS_AD_GEN_008.ADMP_GET_SAOS(acaiv.adm_outcome_status),'x') <> 'CANCELLED';
5179
5180
5181 apcs_rec c_apcs%ROWTYPE;
5182
5183 appl_Stg_rec c_appl_Stg%ROWTYPE;
5184 l_unit_set_appl VARCHAR2(1);
5185 lSuccess boolean;
5186
5187 BEGIN
5188 OPEN c_appl_Stg(p_ss_adm_appl_id);
5189 FETCH c_appl_Stg INTO appl_Stg_rec;
5190 IF c_appl_Stg%NOTFOUND THEN
5191 CLOSE c_appl_Stg;
5192 p_return_type := 'E';
5193 p_message_name := 'IGS_AD_APPL_NOT_FOUND';
5194
5195 RETURN;
5196 END IF;
5197
5198 -- Validate for a matching admission course application instance for the
5199 -- IGS_PE_PERSON in the same admission period.
5200 FOR v_acaiv_rec IN c_acaiv(
5201 appl_Stg_rec.person_id,
5202 p_course_cd,
5203 p_location_cd,
5204 p_attendance_mode,
5205 p_attendance_type,
5206 p_final_unit_set_cd,
5207 p_us_version_number,
5208 appl_Stg_rec.adm_cal_type,
5209 appl_Stg_rec.adm_cal_seq_number) LOOP
5210 p_message_name := 'IGS_AD_ANOTHER_ADMAPPL_EXISTS';
5211 p_return_type := 'E';
5212 RETURN;
5213 END LOOP;
5214
5215
5216 -- Late Application Validation is done here
5217 validate_prog_inst(p_course_cd => p_course_cd,
5218 p_crv_version_number => p_crv_version_number,
5219 p_location_cd => p_location_cd,
5220 p_attendance_mode => p_attendance_mode,
5221 p_attendance_type => p_attendance_type,
5222 p_acad_cal_type => appl_Stg_rec.acad_cal_type,
5223 p_acad_ci_sequence_number => appl_Stg_rec.acad_cal_seq_number,
5224 p_adm_cal_type => appl_Stg_rec.adm_cal_type,
5225 p_adm_ci_sequence_number => appl_Stg_rec.adm_cal_seq_number,
5226 p_admission_cat => appl_Stg_rec.admission_cat,
5227 p_s_admission_process_type => appl_Stg_rec.s_adm_process_type,
5228 p_message_name => p_message_name,
5229 p_return_type => p_return_type);
5230 IF p_return_type = 'E' THEN
5231 IF c_appl_Stg%ISOPEN THEN
5232 CLOSE c_appl_Stg;
5233 END IF;
5234 RETURN;
5235 END IF;
5236
5237
5238 lSuccess := igs_ad_val_acai.admp_val_aca_sca(
5239 p_person_id => appl_Stg_rec.person_id,
5240 p_course_cd => p_course_cd,
5241 p_appl_dt => TRUNC(SYSDATE),
5242 p_admission_cat => appl_Stg_rec.admission_cat,
5243 p_s_admission_process_type => appl_Stg_rec.s_adm_process_type,
5244 p_fee_cat => NULL,
5245 p_correspondence_cat => NULL,
5246 p_enrolment_cat => NULL,
5247 p_offer_ind => 'N',
5248 p_message_name => p_message_name,
5249 p_return_type => p_return_type);
5250
5251 IF p_return_type = 'E' THEN
5252 IF c_appl_Stg%ISOPEN THEN
5253 CLOSE c_appl_Stg;
5254 END IF;
5255 RETURN;
5256 END IF;
5257
5258 OPEN c_apcs('UNIT-SET', appl_Stg_rec.admission_cat, appl_Stg_rec.s_adm_process_type);
5259 FETCH c_apcs INTO apcs_rec;
5260 CLOSE c_apcs;
5261
5262 IF apcs_rec.s_admission_step_type IS NULL THEN
5263 l_unit_set_appl := 'N';
5264 ELSE
5265 l_unit_set_appl := 'Y';
5266 END IF;
5267
5268 lSuccess := igs_ad_val_acai.admp_val_acai_us(
5269 p_unit_set_cd => p_final_unit_set_cd,
5270 p_us_version_number => p_us_version_number,
5271 p_course_cd => p_course_cd,
5272 p_crv_version_number => p_crv_version_number,
5273 p_acad_cal_type => appl_Stg_rec.acad_cal_type,
5274 p_location_cd => p_location_cd,
5275 p_attendance_mode => p_attendance_mode,
5276 p_attendance_type => p_attendance_type,
5277 p_admission_cat => appl_Stg_rec.admission_cat,
5278 p_offer_ind => 'N',
5279 p_unit_set_appl => l_unit_set_appl,
5280 p_message_name => p_message_name,
5281 p_return_type => p_return_type);
5282
5283 IF p_return_type = 'E' THEN
5284 p_message_name := 'IGS_AD_SS_INV_FINAL_US';
5285 IF c_appl_Stg%ISOPEN THEN
5286 CLOSE c_appl_Stg;
5287 END IF;
5288 RETURN;
5289 END IF;
5290
5291 IF c_appl_Stg%ISOPEN THEN
5292 CLOSE c_appl_Stg;
5293 END IF;
5294 END validate_prog_pref;
5295
5296
5297 PROCEDURE validate_unit_Set (p_ss_adm_appl_id IN NUMBER ,
5298 p_course_cd VARCHAR2,
5299 p_crv_version_number NUMBER,
5300 p_location_cd VARCHAR2,
5301 p_attendance_mode VARCHAR2,
5302 p_attendance_type VARCHAR2,
5303 p_unit_set_cd VARCHAR2,
5304 p_us_version_number NUMBER ,
5305 p_message_name OUT NOCOPY VARCHAR2,
5306 p_return_type OUT NOCOPY VARCHAR2) IS
5307
5308
5309 CURSOR c_appl_Stg(cp_ss_adm_appl_id NUMBER) IS
5310 SELECT person_id, acad_cal_type, acad_cal_seq_number, adm_cal_type,
5311 adm_cal_seq_number , admission_cat, s_adm_process_type
5312 FROM igs_ss_adm_appl_stg
5313 WHERE ss_adm_appl_id = cp_ss_adm_appl_id;
5314
5315 CURSOR c_apcs (cp_step_type VARCHAR2, cp_admission_cat VARCHAR2, cp_s_admission_process_type VARCHAR2) IS
5316 SELECT s_admission_step_type, step_type_restriction_num
5317 FROM igs_ad_prcs_cat_step
5318 WHERE admission_cat = cp_admission_cat
5319 AND s_admission_process_type = cp_s_admission_process_type
5320 AND s_admission_step_type = cp_step_type
5321 AND step_group_type <> 'TRACK';
5322
5323
5324 apcs_rec c_apcs%ROWTYPE;
5325
5326 appl_Stg_rec c_appl_Stg%ROWTYPE;
5327 l_unit_set_appl VARCHAR2(1);
5328 lSuccess boolean;
5329
5330
5331 BEGIN
5332
5333 OPEN c_appl_Stg(p_ss_adm_appl_id);
5334 FETCH c_appl_Stg INTO appl_Stg_rec;
5335 IF c_appl_Stg%NOTFOUND THEN
5336 CLOSE c_appl_Stg;
5337 p_return_type := 'E';
5338 p_message_name := 'IGS_AD_APPL_NOT_FOUND';
5339 RETURN;
5340 END IF;
5341
5342 lSuccess := igs_ad_val_acai.admp_val_acai_us(
5343 p_unit_set_cd => p_unit_set_cd,
5344 p_us_version_number => p_us_version_number,
5345 p_course_cd => p_course_cd,
5346 p_crv_version_number => p_crv_version_number,
5347 p_acad_cal_type => appl_Stg_rec.acad_cal_type,
5348 p_location_cd => p_location_cd,
5349 p_attendance_mode => p_attendance_mode,
5350 p_attendance_type => p_attendance_type,
5351 p_admission_cat => appl_Stg_rec.admission_cat,
5352 p_offer_ind => 'N',
5353 p_unit_set_appl => l_unit_set_appl,
5354 p_message_name => p_message_name,
5355 p_return_type => p_return_type);
5356
5357 IF p_return_type = 'E' THEN
5358 IF c_appl_Stg%ISOPEN THEN
5359 CLOSE c_appl_Stg;
5360 END IF;
5361 RETURN;
5362 END IF;
5363
5364 IF c_appl_Stg%ISOPEN THEN
5365 CLOSE c_appl_Stg;
5366 END IF;
5367
5368 END validate_unit_Set;
5369
5370 PROCEDURE DELETE_PERSTMT_ATTACHMENT(p_document_id IN NUMBER,
5371 p_ss_perstat_id IN NUMBER,
5372 x_return_status OUT NOCOPY VARCHAR2
5373 ) AS
5374 -- This method will be used to delete the Personal Statement Attachment record
5375 -- from the tables FND_ATTCHED_DOCUMENTS, FND_DOCUMENTS and FND_LOBS.
5376 BEGIN
5377 x_return_status := 'S';
5378 FND_DOCUMENTS_PKG.DELETE_ROW (
5379 x_document_id => p_document_id,
5380 x_datatype_id => 6,
5381 delete_ref_Flag => 'Y'
5382 );
5383 Update IGS_SS_APPL_PERSTAT SET attach_exists ='N' WHERE SS_PERSTAT_ID = p_ss_perstat_id;
5384 EXCEPTION
5385 WHEN OTHERS THEN
5386 x_return_status := 'E';
5387
5388 END DELETE_PERSTMT_ATTACHMENT;
5389
5390
5391 PROCEDURE ADD_PERSTMT_ATTACHMENT(p_person_id IN NUMBER,
5392 P_SS_PERSTAT_ID IN NUMBER,
5393 p_file_name IN VARCHAR2,
5394 p_file_content_type IN VARCHAR2,
5395 p_file_format IN VARCHAR2,
5396 p_file_id OUT NOCOPY NUMBER,
5397 x_return_status OUT NOCOPY VARCHAR2
5398 )AS
5399
5400 CURSOR cat_cur(cp_name VARCHAR2) IS
5401 SELECT category_id
5402 FROM fnd_document_categories_tl
5403 WHERE name = cp_name;
5404
5405 l_fileid FND_LOBS.FILE_ID%TYPE;
5406 l_category_id FND_DOCUMENT_CATEGORIES_TL.category_id%TYPE;
5407 BEGIN
5408 x_return_status := 'S';
5409
5410
5411 -- Insert data in the FND_LOBS table without the FILE_DATA.
5412 -- FILE_DATA would be updated from the Controller of the calling page since
5413 -- there is issue of passing BLOB data type to PL/SQL from OA Framework.
5414 SELECT FND_LOBS_S.NEXTVAL INTO l_fileid FROM dual;
5415
5416 INSERT INTO FND_LOBS(
5417 FILE_ID,
5418 FILE_NAME,
5419 FILE_CONTENT_TYPE,
5420 UPLOAD_DATE,
5421 EXPIRATION_DATE,
5422 PROGRAM_NAME,
5423 PROGRAM_TAG,
5424 LANGUAGE,
5425 ORACLE_CHARSET,
5426 FILE_FORMAT) VALUES
5427 (
5428 l_fileid,
5429 p_file_name,
5430 p_file_content_type,
5431 SYSDATE,
5432 NULL,
5433 NULL,
5434 NULL,
5435 USERENV('LANG'),
5436 NULL,
5437 p_file_format
5438 );
5439
5440 p_file_id := l_fileid;
5441
5442 OPEN cat_cur('CUSTOM1475');
5443 FETCH cat_cur INTO l_category_id;
5444 CLOSE cat_cur;
5445
5446 FND_WEBATTCH.Add_Attachment (
5447 seq_num => '1',
5448 category_id => l_category_id,
5449 document_description => NULL,
5450 datatype_id => 6,
5451 text => NULL,
5452 file_name => p_file_name,
5453 url => NULL,
5454 function_name => NULL,
5455 entity_name => 'IGS_SS_APPL_PERSTAT',
5456 pk1_value => P_SS_PERSTAT_ID,
5457 pk2_value => NULL,
5458 pk3_value => NULL,
5459 pk4_value => NULL,
5460 pk5_value => NULL,
5461 media_id => l_fileid,
5462 user_id => FND_GLOBAL.USER_ID
5463 );
5464
5465 Update IGS_SS_APPL_PERSTAT SET attach_exists ='Y' WHERE SS_PERSTAT_ID = P_SS_PERSTAT_ID;
5466
5467 EXCEPTION
5468 WHEN OTHERS THEN
5469 x_return_status := 'E';
5470
5471 END ADD_PERSTMT_ATTACHMENT;
5472
5473 PROCEDURE DELETE_PERSTMT_ATTACHMENT_UP(p_document_id IN NUMBER,
5474 x_return_status OUT NOCOPY VARCHAR2
5475 ) AS
5476 -- This method will be used to delete the Personal Statement Attachment record
5477 -- from the tables FND_ATTCHED_DOCUMENTS, FND_DOCUMENTS and FND_LOBS.
5478 BEGIN
5479 x_return_status := 'S';
5480 FND_DOCUMENTS_PKG.DELETE_ROW (
5481 x_document_id => p_document_id,
5482 x_datatype_id => 6,
5483 delete_ref_Flag => 'Y'
5484 );
5485
5486 EXCEPTION
5487 WHEN OTHERS THEN
5488 x_return_status := 'E';
5489
5490 END DELETE_PERSTMT_ATTACHMENT_UP;
5491
5492
5493 PROCEDURE ADD_PERSTMT_ATTACHMENT_UP(p_person_id IN NUMBER,
5494 P_APPL_PERSTAT_ID IN NUMBER,
5495 p_file_name IN VARCHAR2,
5496 p_file_content_type IN VARCHAR2,
5497 p_file_format IN VARCHAR2,
5498 p_file_id OUT NOCOPY NUMBER,
5499 x_return_status OUT NOCOPY VARCHAR2
5500 )AS
5501
5502 CURSOR cat_cur(cp_name VARCHAR2) IS
5503 SELECT category_id
5504 FROM fnd_document_categories_tl
5505 WHERE name = cp_name;
5506
5507 l_fileid FND_LOBS.FILE_ID%TYPE;
5508 l_category_id FND_DOCUMENT_CATEGORIES_TL.category_id%TYPE;
5509 BEGIN
5510 x_return_status := 'S';
5511
5512
5513 -- Insert data in the FND_LOBS table without the FILE_DATA.
5514 -- FILE_DATA would be updated from the Controller of the calling page since
5515 -- there is issue of passing BLOB data type to PL/SQL from OA Framework.
5516 SELECT FND_LOBS_S.NEXTVAL INTO l_fileid FROM dual;
5517
5518 INSERT INTO FND_LOBS(
5519 FILE_ID,
5520 FILE_NAME,
5521 FILE_CONTENT_TYPE,
5522 UPLOAD_DATE,
5523 EXPIRATION_DATE,
5524 PROGRAM_NAME,
5525 PROGRAM_TAG,
5526 LANGUAGE,
5527 ORACLE_CHARSET,
5528 FILE_FORMAT) VALUES
5529 (
5530 l_fileid,
5531 p_file_name,
5532 p_file_content_type,
5533 SYSDATE,
5534 NULL,
5535 NULL,
5536 NULL,
5537 USERENV('LANG'),
5538 NULL,
5539 p_file_format
5540 );
5541
5542 p_file_id := l_fileid;
5543
5544 OPEN cat_cur('CUSTOM1475');
5545 FETCH cat_cur INTO l_category_id;
5546 CLOSE cat_cur;
5547
5548 FND_WEBATTCH.Add_Attachment (
5549 seq_num => '1',
5550 category_id => l_category_id,
5551 document_description => NULL,
5552 datatype_id => 6,
5553 text => NULL,
5554 file_name => p_file_name,
5555 url => NULL,
5556 function_name => NULL,
5557 entity_name => 'IGS_AD_APPL_PERSTAT',
5558 pk1_value => P_APPL_PERSTAT_ID,
5559 pk2_value => NULL,
5560 pk3_value => NULL,
5561 pk4_value => NULL,
5562 pk5_value => NULL,
5563 media_id => l_fileid,
5564 user_id => FND_GLOBAL.USER_ID
5565 );
5566
5567 EXCEPTION
5568 WHEN OTHERS THEN
5569 x_return_status := 'E';
5570
5571 END ADD_PERSTMT_ATTACHMENT_UP;
5572 -- PERSONAL_STMTS
5573
5574 /* Get Concatenated Enabled SS Lookup Code Descriptions for a given lookup type with given delimiter */
5575 PROCEDURE get_ss_lookup_desc(p_application_type IN igs_ad_ss_lookups.admission_application_type%type,
5576 p_lookup_type IN igs_ad_ss_lookups.ss_lookup_type%TYPE,
5577 p_delimiter IN VARCHAR2,
5578 x_message_name OUT NOCOPY VARCHAR2,
5579 x_return_status OUT NOCOPY VARCHAR2,
5580 x_concat_desc OUT NOCOPY VARCHAR2) AS
5581
5582 CURSOR c_addr_purpose IS
5583 SELECT al.meaning lookup_desc
5584 FROM AR_LOOKUPS al
5585 WHERE al.LOOKUP_TYPE = 'PARTY_SITE_USE_CODE'
5586 AND al.ENABLED_FLAG = 'Y'
5587 AND EXISTS (SELECT 1 FROM IGS_AD_SS_LOOKUPS sslkps
5588 WHERE sslkps.SS_LOOKUP_TYPE = 'SITE_USE_CODE' AND
5589 sslkps.admission_application_type = p_application_type AND
5590 sslkps.ss_lookup_code = al.lookup_code AND
5591 sslkps.closed_flag <> 'Y');
5592
5593 CURSOR c_phone_type IS
5594 SELECT lv.meaning lookup_desc
5595 FROM FND_LOOKUP_VALUES lv
5596 WHERE lv.LOOKUP_TYPE = 'PHONE_LINE_TYPE'
5597 AND lv.LANGUAGE(+) = USERENV('LANG')
5598 AND lv.VIEW_APPLICATION_ID = 222
5599 AND lv.SECURITY_GROUP_ID = 0
5600 AND lv.ENABLED_FLAG = 'Y'
5601 AND EXISTS
5602 (SELECT 1 FROM IGS_AD_SS_LOOKUPS sslkps
5603 WHERE sslkps.SS_LOOKUP_TYPE = 'PHONE_LINE_TYPE' AND
5604 sslkps.admission_application_type = p_application_type AND
5605 sslkps.ss_lookup_code = lv.lookup_code AND
5606 sslkps.closed_flag <> 'Y');
5607
5608 CURSOR c_person_id_type IS
5609 SELECT pit.description lookup_desc
5610 FROM IGS_PE_PERSON_ID_TYP pit
5611 WHERE pit.closed_ind <> 'Y'
5612 AND EXISTS (SELECT 1 FROM IGS_AD_SS_LOOKUPS sslkps
5613 WHERE sslkps.SS_LOOKUP_TYPE = 'PERSON_ID_TYPE' AND
5614 sslkps.admission_application_type = p_application_type AND
5615 sslkps.ss_lookup_code = pit.person_id_type AND
5616 sslkps.closed_flag <> 'Y');
5617
5618 CURSOR c_relation_type IS
5619 SELECT lv.meaning lookup_desc
5620 FROM FND_LOOKUP_VALUES lv,
5621 HZ_RELATIONSHIP_TYPES hz
5622 WHERE HZ.FORWARD_REL_CODE=lv.lookup_code
5623 AND hz.subject_type = 'PERSON'
5624 AND hz.object_type = 'PERSON'
5625 AND hz.status = 'A'
5626 AND lv.LOOKUP_TYPE = 'PARTY_RELATIONS_TYPE'
5627 AND lv.LANGUAGE(+) = USERENV('LANG')
5628 AND lv.VIEW_APPLICATION_ID = 222
5629 AND lv.SECURITY_GROUP_ID = 0
5630 AND lv.ENABLED_FLAG = 'Y'
5631 AND EXISTS (SELECT 1 FROM IGS_AD_SS_LOOKUPS sslkps
5632 WHERE sslkps.SS_LOOKUP_TYPE = 'PARTY_RELATIONS_TYPE' AND
5633 sslkps.admission_application_type = p_application_type AND
5634 sslkps.ss_lookup_code = lv.lookup_code AND
5635 sslkps.closed_flag <> 'Y');
5636
5637 CURSOR c_privacy_data IS
5638 SELECT pdg.description lookup_desc
5639 FROM IGS_PE_DATA_GROUPS_ALL pdg
5640 WHERE pdg.closed_ind <> 'Y'
5641 AND EXISTS (SELECT 1 FROM IGS_AD_SS_LOOKUPS sslkps
5642 WHERE sslkps.ss_lookup_type = 'PRIVACY_PREF_DATA_GROUP' AND
5643 sslkps.admission_application_type = p_application_type AND
5644 sslkps.ss_lookup_code = to_char(pdg.data_group_id) AND
5645 sslkps.closed_flag <> 'Y');
5646
5647 CURSOR c_alias_type IS
5648 SELECT lv.meaning lookup_desc
5649 FROM igs_lookup_values lv
5650 WHERE lv.LOOKUP_TYPE = 'PE_ALIAS_TYPE'
5651 AND lv.ENABLED_FLAG = 'Y'
5652 AND EXISTS (SELECT 1 FROM IGS_AD_SS_LOOKUPS sslkps
5653 WHERE sslkps.SS_LOOKUP_TYPE = 'PE_ALIAS_TYPE' AND
5654 sslkps.admission_application_type = p_application_type AND
5655 sslkps.ss_lookup_code = lv.lookup_code AND
5656 sslkps.closed_flag <> 'Y');
5657
5658 CURSOR c_credential_type IS
5659 SELECT act.description lookup_desc
5660 FROM IGS_AD_CRED_TYPES act
5661 WHERE act.closed_ind <> 'Y'
5662 AND EXISTS (SELECT 1 FROM IGS_AD_SS_LOOKUPS sslkps
5663 WHERE sslkps.ss_lookup_type = 'CREDENTIAL_TYPE' AND
5664 sslkps.admission_application_type = p_application_type AND
5665 sslkps.ss_lookup_code = to_char(act.credential_type_id) AND
5666 sslkps.closed_flag <> 'Y');
5667
5668 CURSOR c_admission_test_type IS
5669 SELECT att.description lookup_desc
5670 FROM IGS_AD_TEST_TYPE att
5671 WHERE att.closed_ind <> 'Y'
5672 AND EXISTS (SELECT 1 FROM IGS_AD_SS_LOOKUPS sslkps
5673 WHERE sslkps.SS_LOOKUP_TYPE = 'ADMISSION_TEST_TYPE' AND
5674 sslkps.admission_application_type = p_application_type AND
5675 sslkps.ss_lookup_code = att.admission_test_type AND
5676 sslkps.closed_flag <> 'Y');
5677
5678 lv_desc VARCHAR2(20000);
5679
5680 BEGIN
5681
5682 lv_desc := NULL;
5683 IF p_lookup_type = 'SITE_USE_CODE' THEN
5684 FOR desc_rec IN c_addr_purpose
5685 LOOP
5686 IF lv_desc IS NULL THEN
5687 lv_desc := desc_rec.lookup_desc;
5688 ELSE
5689 lv_desc := lv_desc || p_delimiter || desc_rec.lookup_desc;
5690 END IF;
5691 END LOOP;
5692
5693 ELSIF p_lookup_type = 'PHONE_LINE_TYPE' THEN
5694 FOR desc_rec IN c_phone_type
5695 LOOP
5696 IF lv_desc IS NULL THEN
5697 lv_desc := desc_rec.lookup_desc;
5698 ELSE
5699 lv_desc := lv_desc || p_delimiter || desc_rec.lookup_desc;
5700 END IF;
5701 END LOOP;
5702
5703 ELSIF p_lookup_type = 'PERSON_ID_TYPE' THEN
5704 FOR desc_rec IN c_person_id_type
5705 LOOP
5706 IF lv_desc IS NULL THEN
5707 lv_desc := desc_rec.lookup_desc;
5708 ELSE
5709 lv_desc := lv_desc || p_delimiter || desc_rec.lookup_desc;
5710 END IF;
5711 END LOOP;
5712
5713 ELSIF p_lookup_type = 'PARTY_RELATIONS_TYPE' THEN
5714 FOR desc_rec IN c_relation_type
5715 LOOP
5716 IF lv_desc IS NULL THEN
5717 lv_desc := desc_rec.lookup_desc;
5718 ELSE
5719 lv_desc := lv_desc || p_delimiter || desc_rec.lookup_desc;
5720 END IF;
5721 END LOOP;
5722
5723 ELSIF p_lookup_type = 'PRIVACY_PREF_DATA_GROUP' THEN
5724 FOR desc_rec IN c_privacy_data
5725 LOOP
5726 IF lv_desc IS NULL THEN
5727 lv_desc := desc_rec.lookup_desc;
5728 ELSE
5729 lv_desc := lv_desc || p_delimiter || desc_rec.lookup_desc;
5730 END IF;
5731 END LOOP;
5732
5733 ELSIF p_lookup_type = 'PE_ALIAS_TYPE' THEN
5734 FOR desc_rec IN c_alias_type
5735 LOOP
5736 IF lv_desc IS NULL THEN
5737 lv_desc := desc_rec.lookup_desc;
5738 ELSE
5739 lv_desc := lv_desc || p_delimiter || desc_rec.lookup_desc;
5740 END IF;
5741 END LOOP;
5742
5743 ELSIF p_lookup_type = 'CREDENTIAL_TYPE' THEN
5744 FOR desc_rec IN c_credential_type
5745 LOOP
5746 IF lv_desc IS NULL THEN
5747 lv_desc := desc_rec.lookup_desc;
5748 ELSE
5749 lv_desc := lv_desc || p_delimiter || desc_rec.lookup_desc;
5750 END IF;
5751 END LOOP;
5752
5753 ELSIF p_lookup_type = 'ADMISSION_TEST_TYPE' THEN
5754 FOR desc_rec IN c_admission_test_type
5755 LOOP
5756 IF lv_desc IS NULL THEN
5757 lv_desc := desc_rec.lookup_desc;
5758 ELSE
5759 lv_desc := lv_desc || p_delimiter || desc_rec.lookup_desc;
5760 END IF;
5761 END LOOP;
5762
5763 END IF;
5764
5765 x_return_status := 'S';
5766 x_message_name := NULL;
5767 x_concat_desc := lv_desc;
5768
5769 EXCEPTION
5770 WHEN OTHERS THEN
5771 x_return_status := 'E';
5772 x_message_name := 'IGS_GE_UNHANDLED_EXP';
5773 x_concat_desc := NULL;
5774 IF FND_MSG_PUB.Count_Msg < 1 THEN
5775 Fnd_Message.Set_Name('IGS','IGS_GE_UNHANDLED_EXP');
5776 Fnd_Message.Set_Token('NAME','IGS_AD_SS_GEN_001.get_ss_lookup_desc -'||SQLERRM);
5777 IGS_GE_MSG_STACK.ADD;
5778 END IF;
5779 END get_ss_lookup_desc;
5780
5781 PROCEDURE CHECK_INSTANCE_SECURITY( p_person_id IN NUMBER,
5782 p_adm_appl_number IN NUMBER,
5783 x_return_status OUT NOCOPY VARCHAR2,
5784 x_error_msg OUT NOCOPY VARCHAR2) IS
5785 CURSOR get_appl_inst_rowid(cp_person_id NUMBER,cp_admission_appl_number NUMBER) IS
5786 SELECT ROWID
5787 FROM IGS_AD_PS_APPL_INST_ALL
5788 WHERE person_id = cp_person_id
5789 AND ADMISSION_APPL_NUMBER = cp_admission_appl_number;
5790
5791 l_select_access BOOLEAN;
5792 l_return_value BOOLEAN;
5793 l_msg_data VARCHAR2(2000);
5794 BEGIN
5795 l_select_access := FALSE;
5796 FOR c_admappl_pgm_rec IN get_appl_inst_rowid(p_person_id,p_adm_appl_number) LOOP
5797 l_return_value := igs_sc_gen_001.check_sel_upd_del_security
5798 ('IGS_AD_PS_APPL_INST_SV',
5799 c_admappl_pgm_rec.rowid,
5800 'S',
5801 l_msg_data
5802 );
5803 IF l_return_value THEN
5804 l_select_access := TRUE;
5805 EXIT;
5806 END IF;
5807 END LOOP;
5808
5809 IF l_select_access THEN
5810 x_return_status := 'S';
5811 x_error_msg := NULL;
5812 ELSE
5813 x_return_status := 'E';
5814 IF l_msg_data IS NOT NULL THEN
5815 fnd_message.set_name( 'IGS', 'IGS_SC_PRE_CHECK_EXCEP');
5816 fnd_message.set_token('ERRM',l_msg_data);
5817 fnd_message.set_token('TABLE','IGS_AD_PS_APPL_INST_SV');
5818 fnd_message.set_token('OPERATION','SELECT');
5819 x_error_msg := 'IGS_SC_PRE_CHECK_EXCEP';
5820 ELSE
5821 fnd_message.set_name( 'IGS', 'IGS_SC_NO_ACCESS_PRIV');
5822 x_error_msg := 'IGS_SC_NO_ACCESS_PRIV';
5823 END IF;
5824 IGS_GE_MSG_STACK.ADD;
5825 END IF;
5826
5827 END CHECK_INSTANCE_SECURITY;
5828
5829 FUNCTION create_application_detail
5830 (p_person_id IN igs_pe_typ_instances_all.person_id%TYPE,
5831 p_adm_appl_number IN igs_pe_typ_instances_all.admission_appl_number%TYPE,
5832 p_ss_adm_appl_number IN NUMBER) RETURN BOOLEAN IS
5833 lRetStat VARCHAR2(1);
5834 BEGIN
5835 lRetStat := 'S';
5836 IF p_adm_appl_number IS NOT NULL THEN
5837 --added by nshee during build for Applicant-BOSS SS Bug 2622488
5838 insert_acad_interest(p_person_id => p_person_id,
5839 p_adm_appl_id => p_ss_adm_appl_number,
5840 p_adm_appl_number => p_adm_appl_number);
5841 insert_applicant_intent(p_person_id => p_person_id,
5842 p_adm_appl_id => p_ss_adm_appl_number,
5843 p_adm_appl_number => p_adm_appl_number);
5844 insert_spl_talent(p_person_id => p_person_id,
5845 p_adm_appl_id => p_ss_adm_appl_number,
5846 p_adm_appl_number => p_adm_appl_number);
5847 insert_special_interest(p_person_id => p_person_id,
5848 p_adm_appl_id => p_ss_adm_appl_number,
5849 p_adm_appl_number => p_adm_appl_number);
5850 --added by nshee during build for Applicant-BOSS SS Bug 2622488
5851 insert_othinst(p_person_id => p_person_id,
5852 p_adm_appl_id => p_ss_adm_appl_number,
5853 p_admission_appl_number => p_adm_appl_number);
5854 --dhan
5855 -- Bug # 2389273 [ APPLICATION FEE SAVED IN SS IS NOT SAVED TO FORMS ]
5856 logheader('before inserting application_fee into IGS tables', 'S');
5857 insert_application_fee(p_person_id => p_person_id,
5858 p_adm_appl_id => p_ss_adm_appl_number,
5859 p_adm_appl_number => p_adm_appl_number);
5860
5861 ------------------------------------------------------------------------------------
5862 -- Routine to transfer Personal Statements and Attachments from Staging to IGS Tables
5863 ------------------------------------------------------------------------------------
5864 transfer_attachment(p_person_id => p_person_id,
5865 p_ss_adm_appl_id => p_ss_adm_appl_number,
5866 p_admission_appl_number => p_adm_appl_number,
5867 x_return_status => lRetStat);
5868 END IF;
5869
5870
5871 IF lRetStat = 'S' THEN
5872 RETURN TRUE;
5873 ELSE
5874 ROLLBACK TO sp_save_point1;
5875 RETURN FALSE;
5876 END IF;
5877 EXCEPTION
5878 --Main Loop Exception
5879 WHEN OTHERS THEN
5880 logDetail('Exception from create_application_detail, MAIN LOOP: ' || SQLERRM, 'S');
5881 IF FND_MSG_PUB.Count_Msg < 1 THEN
5882 Fnd_Message.Set_Name('IGS', 'IGS_GE_UNHANDLED_EXP');
5883 Fnd_Message.Set_Token('NAME','IGS_AD_SS_GEN_001.create_application_detail -'||SQLERRM);
5884 IGS_GE_MSG_STACK.ADD;
5885 END IF;
5886 App_Exception.Raise_Exception;
5887
5888 END create_application_detail;
5889
5890 FUNCTION wf_submit_application_sub(p_subscription_guid IN RAW,
5891 p_event IN OUT NOCOPY WF_EVENT_T) return varchar2
5892 IS
5893 CURSOR c_pre_sub_uhk_prl IS
5894 SELECT FND_PROFILE.VALUE('IGS_AD_PRESUB_APPL_UHK') value
5895 FROM dual;
5896
5897
5898 l_person_id NUMBER;
5899 l_ss_adm_appl_id NUMBER;
5900 l_return_status VARCHAR2(10);
5901 l_msg_data fnd_new_messages.message_text%TYPE;
5902 l_pre_sub_uhk_prl c_pre_sub_uhk_prl%ROWTYPE;
5903 l_msg_index NUMBER;
5904 l_hash_msg_name_text_type_tab igs_ad_gen_016.g_msg_name_text_type_table;
5905 l_msg_count NUMBER;
5906 l_def_rule VARCHAR2(200);
5907 BEGIN
5908
5909 l_person_id := p_event.GetValueForParameter('P_PERSON_ID');
5910 l_ss_adm_appl_id := p_event.GetValueForParameter('P_SS_ADM_APPL_ID');
5911 l_return_status := p_event.GetValueForParameter('P_RETURN_STATUS');
5912 l_msg_data := NULL;
5913
5914 OPEN c_pre_sub_uhk_prl;
5915 FETCH c_pre_sub_uhk_prl INTO l_pre_sub_uhk_prl;
5916 CLOSE c_pre_sub_uhk_prl;
5917
5918 IF l_pre_sub_uhk_prl.value ='Y' THEN
5919 igs_ad_uhk_pre_create_appl_pkg.pre_submit_application (
5920 p_person_id => l_person_id,
5921 p_ss_adm_appl_id => l_ss_adm_appl_id,
5922 p_return_status => l_return_status,
5923 p_msg_data => l_msg_data
5924 );
5925
5926 p_event.AddParameterToList('P_RETURN_STATUS',l_return_status);
5927 p_event.AddParameterToList('P_MSG_DATA',l_msg_data);
5928 END IF;
5929 l_def_rule := WF_RULE.Default_Rule(p_subscription_guid,p_event);
5930 return 'SUCCESS';
5931
5932 EXCEPTION
5933 WHEN OTHERS THEN
5934 igs_ad_gen_016.extract_msg_from_stack (
5935 p_msg_at_index => l_msg_index,
5936 p_return_status => l_return_status,
5937 p_msg_count => l_msg_count,
5938 p_msg_data => l_msg_data,
5939 p_hash_msg_name_text_type_tab => l_hash_msg_name_text_type_tab);
5940
5941 IF l_hash_msg_name_text_type_tab(l_msg_count - 1).name <> 'ORA' THEN
5942 l_return_status := 'E';
5943 ELSE
5944 l_return_status := 'U';
5945 END IF;
5946 l_msg_data := l_hash_msg_name_text_type_tab(l_msg_count-1).text;
5947 p_event.AddParameterToList('P_RETURN_STATUS',l_return_status);
5948 p_event.AddParameterToList('P_MSG_DATA',l_msg_data);
5949
5950 WF_CORE.CONTEXT('IGS_AD_SS_GEN_001','WF_SUBMIT_APPLICATION_SUB',p_event.getEventName(),p_subscription_guid);
5951 WF_EVENT.setErrorInfo(p_event, 'ERROR');
5952 return 'ERROR';
5953 END wf_submit_application_sub;
5954
5955 END IGS_AD_SS_GEN_001;