20: l_debug_str VARCHAR2(2000);
21: l_residency_class igs_pe_res_dtls.residency_class_cd%TYPE;
22: BEGIN
23: fnd_profile.get('IGS_FI_RES_CLASS_ID',l_residency_class);
24: IF fnd_log.level_statement >= fnd_log.g_current_runtime_level THEN
25: fnd_log.string(fnd_log.level_statement,'igs.plsql.igs_pe_gen_003.process_res_dtls.debug','l_residency_class:'||l_residency_class);
26: END IF;
27: IF (p_action = 'I' AND NVL(l_residency_class,'*') = p_new_record.residency_class_cd)
28: OR (p_action = 'U' AND NVL(l_residency_class,'*') = p_new_record.residency_class_cd AND NVL(p_old_record.residency_status_cd,'*') <> NVL(p_new_record.residency_status_cd,'*')) THEN
21: l_residency_class igs_pe_res_dtls.residency_class_cd%TYPE;
22: BEGIN
23: fnd_profile.get('IGS_FI_RES_CLASS_ID',l_residency_class);
24: IF fnd_log.level_statement >= fnd_log.g_current_runtime_level THEN
25: fnd_log.string(fnd_log.level_statement,'igs.plsql.igs_pe_gen_003.process_res_dtls.debug','l_residency_class:'||l_residency_class);
26: END IF;
27: IF (p_action = 'I' AND NVL(l_residency_class,'*') = p_new_record.residency_class_cd)
28: OR (p_action = 'U' AND NVL(l_residency_class,'*') = p_new_record.residency_class_cd AND NVL(p_old_record.residency_status_cd,'*') <> NVL(p_new_record.residency_status_cd,'*')) THEN
29: igf_aw_coa_gen.ins_coa_todo(
33: END IF;
34: EXCEPTION
35: WHEN OTHERS THEN
36: l_label := 'igs.plsql.igs_pe_gen_003.process_res_dtls.exception';
37: IF fnd_log.test(fnd_log.level_exception,l_label) THEN
38: fnd_message.set_name('IGS','IGS_GE_UNHANDLED_EXCEPTION');
39: l_debug_str := fnd_message.get || '. Residency Details Id : '||P_NEW_RECORD.RESIDENT_DETAILS_ID ||' '|| SQLERRM;
40: fnd_log.string_with_context( fnd_log.level_exception,l_label,l_debug_str, NULL,NULL,NULL,NULL,NULL,NULL);
41: END IF;
36: l_label := 'igs.plsql.igs_pe_gen_003.process_res_dtls.exception';
37: IF fnd_log.test(fnd_log.level_exception,l_label) THEN
38: fnd_message.set_name('IGS','IGS_GE_UNHANDLED_EXCEPTION');
39: l_debug_str := fnd_message.get || '. Residency Details Id : '||P_NEW_RECORD.RESIDENT_DETAILS_ID ||' '|| SQLERRM;
40: fnd_log.string_with_context( fnd_log.level_exception,l_label,l_debug_str, NULL,NULL,NULL,NULL,NULL,NULL);
41: END IF;
42: END process_res_dtls;
43:
44: PROCEDURE process_housing_dtls(
58: END IF;
59: EXCEPTION
60: WHEN OTHERS THEN
61: l_label := 'igs.plsql.igs_pe_gen_003.process_housing_dtls.exception';
62: IF fnd_log.test(fnd_log.level_exception,l_label) THEN
63: fnd_message.set_name('IGS','IGS_GE_UNHANDLED_EXCEPTION');
64: l_debug_str := fnd_message.get || '. Teaching Period Id : '||P_NEW_RECORD.TEACHING_PERIOD_ID ||' '|| SQLERRM;
65: fnd_log.string_with_context( fnd_log.level_exception,l_label,l_debug_str, NULL,NULL,NULL,NULL,NULL,NULL);
66: END IF;
61: l_label := 'igs.plsql.igs_pe_gen_003.process_housing_dtls.exception';
62: IF fnd_log.test(fnd_log.level_exception,l_label) THEN
63: fnd_message.set_name('IGS','IGS_GE_UNHANDLED_EXCEPTION');
64: l_debug_str := fnd_message.get || '. Teaching Period Id : '||P_NEW_RECORD.TEACHING_PERIOD_ID ||' '|| SQLERRM;
65: fnd_log.string_with_context( fnd_log.level_exception,l_label,l_debug_str, NULL,NULL,NULL,NULL,NULL,NULL);
66: END IF;
67: END process_housing_dtls;
68:
69:
123: OPEN c_seq_num;
124: FETCH c_seq_num INTO ln_seq_val ;
125: CLOSE c_seq_num ;
126:
127: -- fnd_logging before raising business event
128: IF fnd_log.test(fnd_log.level_procedure,l_prog_label) THEN
129: l_label := 'igs.plsql.igs_pe_gen_003.raise_person_type_event.raise_event';
130: l_debug_str := fnd_message.get || ' Action : ' || p_action ||'/' ||' Person : ' ||p_person_id ||'/'||' S person type : '||l_system_type ||'/' || ' Sequence is : '||ln_seq_val ;
131: fnd_log.string_with_context( fnd_log.level_procedure,l_label,l_debug_str, NULL,NULL,NULL,NULL,NULL,NULL);
124: FETCH c_seq_num INTO ln_seq_val ;
125: CLOSE c_seq_num ;
126:
127: -- fnd_logging before raising business event
128: IF fnd_log.test(fnd_log.level_procedure,l_prog_label) THEN
129: l_label := 'igs.plsql.igs_pe_gen_003.raise_person_type_event.raise_event';
130: l_debug_str := fnd_message.get || ' Action : ' || p_action ||'/' ||' Person : ' ||p_person_id ||'/'||' S person type : '||l_system_type ||'/' || ' Sequence is : '||ln_seq_val ;
131: fnd_log.string_with_context( fnd_log.level_procedure,l_label,l_debug_str, NULL,NULL,NULL,NULL,NULL,NULL);
132: END IF;
127: -- fnd_logging before raising business event
128: IF fnd_log.test(fnd_log.level_procedure,l_prog_label) THEN
129: l_label := 'igs.plsql.igs_pe_gen_003.raise_person_type_event.raise_event';
130: l_debug_str := fnd_message.get || ' Action : ' || p_action ||'/' ||' Person : ' ||p_person_id ||'/'||' S person type : '||l_system_type ||'/' || ' Sequence is : '||ln_seq_val ;
131: fnd_log.string_with_context( fnd_log.level_procedure,l_label,l_debug_str, NULL,NULL,NULL,NULL,NULL,NULL);
132: END IF;
133:
134: -- raise event
135: WF_EVENT.RAISE (p_event_name => 'oracle.apps.igs.pe.person_type_change',
145: -- Exception Handling
146: EXCEPTION
147: WHEN OTHERS THEN
148:
149: IF fnd_log.test(fnd_log.level_procedure,l_prog_label) THEN
150: l_label := 'igs.plsql.igs_pe_gen_003.raise_person_type_event.execption';
151: l_debug_str := fnd_message.get || 'Person : ' ||p_person_id ||'/'||' S person type : '||l_system_type ||'/' || ' sequence is : '||ln_seq_val ||'/'|| SQLERRM ;
152: fnd_log.string_with_context( fnd_log.level_procedure,l_label,l_debug_str, NULL,NULL,NULL,NULL,NULL,NULL);
153: END IF;
148:
149: IF fnd_log.test(fnd_log.level_procedure,l_prog_label) THEN
150: l_label := 'igs.plsql.igs_pe_gen_003.raise_person_type_event.execption';
151: l_debug_str := fnd_message.get || 'Person : ' ||p_person_id ||'/'||' S person type : '||l_system_type ||'/' || ' sequence is : '||ln_seq_val ||'/'|| SQLERRM ;
152: fnd_log.string_with_context( fnd_log.level_procedure,l_label,l_debug_str, NULL,NULL,NULL,NULL,NULL,NULL);
153: END IF;
154:
155: END RAISE_PERSON_TYPE_EVENT;
156:
268: IF l_action IN ('INSERT', 'UPDATE') THEN
269:
270: FOR inactive_resp_rec IN get_inactive_resp_cur(l_user_id, l_system_person_type) LOOP
271:
272: --fnd_logging
273: IF fnd_log.test(fnd_log.level_statement,l_prog_label) THEN
274: l_label := 'igs.plsql.igs_pe_gen_003.resp_assignment.'||l_action;
275: l_debug_str := fnd_message.get || 'System Person Type : '||l_system_person_type ||'/'|| ' User id : ' ||l_user_id || ' End Date ' ||'/' ||l_end_date;
276: fnd_log.string_with_context( fnd_log.level_statement,l_label,l_debug_str, NULL,NULL,NULL,NULL,NULL,NULL);
269:
270: FOR inactive_resp_rec IN get_inactive_resp_cur(l_user_id, l_system_person_type) LOOP
271:
272: --fnd_logging
273: IF fnd_log.test(fnd_log.level_statement,l_prog_label) THEN
274: l_label := 'igs.plsql.igs_pe_gen_003.resp_assignment.'||l_action;
275: l_debug_str := fnd_message.get || 'System Person Type : '||l_system_person_type ||'/'|| ' User id : ' ||l_user_id || ' End Date ' ||'/' ||l_end_date;
276: fnd_log.string_with_context( fnd_log.level_statement,l_label,l_debug_str, NULL,NULL,NULL,NULL,NULL,NULL);
277: END IF;
272: --fnd_logging
273: IF fnd_log.test(fnd_log.level_statement,l_prog_label) THEN
274: l_label := 'igs.plsql.igs_pe_gen_003.resp_assignment.'||l_action;
275: l_debug_str := fnd_message.get || 'System Person Type : '||l_system_person_type ||'/'|| ' User id : ' ||l_user_id || ' End Date ' ||'/' ||l_end_date;
276: fnd_log.string_with_context( fnd_log.level_statement,l_label,l_debug_str, NULL,NULL,NULL,NULL,NULL,NULL);
277: END IF;
278:
279: IF l_action = 'INSERT' THEN
280: -- if any existing resp exists, then update them with the MAX end date between PTI end date and existing resp end date.
323: END IF;
324: END LOOP;
325:
326: FOR resp_info_rec IN get_resp_info_cur(l_system_person_type, l_user_id) LOOP
327: --fnd_logging
328: IF fnd_log.test(fnd_log.level_statement,l_prog_label) THEN
329: l_label := 'igs.plsql.igs_pe_gen_003.resp_assignment.'||l_action;
330: l_debug_str := fnd_message.get || 'System Person Type : '||l_system_person_type ||'/'|| ' User id : ' ||l_user_id || ' End Date ' ||'/' ||l_end_date;
331: fnd_log.string_with_context( fnd_log.level_statement,l_label,l_debug_str, NULL,NULL,NULL,NULL,NULL,NULL);
324: END LOOP;
325:
326: FOR resp_info_rec IN get_resp_info_cur(l_system_person_type, l_user_id) LOOP
327: --fnd_logging
328: IF fnd_log.test(fnd_log.level_statement,l_prog_label) THEN
329: l_label := 'igs.plsql.igs_pe_gen_003.resp_assignment.'||l_action;
330: l_debug_str := fnd_message.get || 'System Person Type : '||l_system_person_type ||'/'|| ' User id : ' ||l_user_id || ' End Date ' ||'/' ||l_end_date;
331: fnd_log.string_with_context( fnd_log.level_statement,l_label,l_debug_str, NULL,NULL,NULL,NULL,NULL,NULL);
332: END IF;
327: --fnd_logging
328: IF fnd_log.test(fnd_log.level_statement,l_prog_label) THEN
329: l_label := 'igs.plsql.igs_pe_gen_003.resp_assignment.'||l_action;
330: l_debug_str := fnd_message.get || 'System Person Type : '||l_system_person_type ||'/'|| ' User id : ' ||l_user_id || ' End Date ' ||'/' ||l_end_date;
331: fnd_log.string_with_context( fnd_log.level_statement,l_label,l_debug_str, NULL,NULL,NULL,NULL,NULL,NULL);
332: END IF;
333: Fnd_User_Resp_Groups_api.insert_assignment (
334: user_id => l_user_id,
335: responsibility_id => resp_info_rec.responsibility_id,
343: ---- l_action is DELETE
344: ELSIF l_action = 'DELETE' THEN
345:
346: FOR resp_sys_rec IN get_resp_sys_cur(l_user_id, l_system_person_type) LOOP
347: --fnd_logging
348: IF fnd_log.test(fnd_log.level_statement,l_prog_label) THEN
349: l_label := 'igs.plsql.igs_pe_gen_003.resp_assignment.delete';
350: l_debug_str := fnd_message.get || 'System Person Type : '||l_system_person_type ||'/'|| ' User id : ' ||l_user_id || ' Resp ' ||resp_sys_rec.responsibility_id ;
351: fnd_log.string_with_context( fnd_log.level_statement,l_label,l_debug_str, NULL,NULL,NULL,NULL,NULL,NULL);
344: ELSIF l_action = 'DELETE' THEN
345:
346: FOR resp_sys_rec IN get_resp_sys_cur(l_user_id, l_system_person_type) LOOP
347: --fnd_logging
348: IF fnd_log.test(fnd_log.level_statement,l_prog_label) THEN
349: l_label := 'igs.plsql.igs_pe_gen_003.resp_assignment.delete';
350: l_debug_str := fnd_message.get || 'System Person Type : '||l_system_person_type ||'/'|| ' User id : ' ||l_user_id || ' Resp ' ||resp_sys_rec.responsibility_id ;
351: fnd_log.string_with_context( fnd_log.level_statement,l_label,l_debug_str, NULL,NULL,NULL,NULL,NULL,NULL);
352: END IF;
347: --fnd_logging
348: IF fnd_log.test(fnd_log.level_statement,l_prog_label) THEN
349: l_label := 'igs.plsql.igs_pe_gen_003.resp_assignment.delete';
350: l_debug_str := fnd_message.get || 'System Person Type : '||l_system_person_type ||'/'|| ' User id : ' ||l_user_id || ' Resp ' ||resp_sys_rec.responsibility_id ;
351: fnd_log.string_with_context( fnd_log.level_statement,l_label,l_debug_str, NULL,NULL,NULL,NULL,NULL,NULL);
352: END IF;
353:
354: -- Delete event will only be called for Others person type. And will always be for sysdate.
355: -- if the resp is already end date with a past end date. Then dont touch it.
372:
373: EXCEPTION
374: WHEN OTHERS THEN
375:
376: --fnd_logging
377: IF fnd_log.test(fnd_log.level_statement,l_prog_label) THEN
378: l_label := 'igs.plsql.igs_pe_gen_003.resp_assignment.exception';
379: l_debug_str := fnd_message.get || 'System Person Type : '||l_system_person_type ||'/'|| ' User id : ' ||l_user_id || SQLERRM;
380: fnd_log.string_with_context( fnd_log.level_statement,l_label,l_debug_str, NULL,NULL,NULL,NULL,NULL,NULL);
373: EXCEPTION
374: WHEN OTHERS THEN
375:
376: --fnd_logging
377: IF fnd_log.test(fnd_log.level_statement,l_prog_label) THEN
378: l_label := 'igs.plsql.igs_pe_gen_003.resp_assignment.exception';
379: l_debug_str := fnd_message.get || 'System Person Type : '||l_system_person_type ||'/'|| ' User id : ' ||l_user_id || SQLERRM;
380: fnd_log.string_with_context( fnd_log.level_statement,l_label,l_debug_str, NULL,NULL,NULL,NULL,NULL,NULL);
381: END IF;
376: --fnd_logging
377: IF fnd_log.test(fnd_log.level_statement,l_prog_label) THEN
378: l_label := 'igs.plsql.igs_pe_gen_003.resp_assignment.exception';
379: l_debug_str := fnd_message.get || 'System Person Type : '||l_system_person_type ||'/'|| ' User id : ' ||l_user_id || SQLERRM;
380: fnd_log.string_with_context( fnd_log.level_statement,l_label,l_debug_str, NULL,NULL,NULL,NULL,NULL,NULL);
381: END IF;
382:
383: WF_CORE.CONTEXT('IGS_PE_ELEARNING_PKG','RESP_ASSIGNMENT',1, p_subscription_guid);
384: wf_event.setErrorInfo(p_event,'ERROR');