155: END IF;
156:
157: --Initialize message list if p_init_msg_list is set to TRUE
158: IF fnd_api.to_boolean(p_init_msg_list) THEN
159: fnd_msg_pub.initialize;
160: END IF;
161:
162: --Initialize API return status to success
163: x_return_status := fnd_api.g_ret_sts_success;
170: p_v_manage_acc => l_v_manage_accounts,
171: p_v_message_name => l_v_message_name
172: );
173: IF (l_v_manage_accounts IS NULL OR l_v_manage_accounts = 'OTHER') THEN
174: IF fnd_msg_pub.check_msg_level(fnd_msg_pub.g_msg_lvl_error) THEN
175: fnd_message.set_name ( 'IGS', l_v_message_name );
176: fnd_msg_pub.add;
177: RAISE fnd_api.g_exc_error;
178: END IF;
172: );
173: IF (l_v_manage_accounts IS NULL OR l_v_manage_accounts = 'OTHER') THEN
174: IF fnd_msg_pub.check_msg_level(fnd_msg_pub.g_msg_lvl_error) THEN
175: fnd_message.set_name ( 'IGS', l_v_message_name );
176: fnd_msg_pub.add;
177: RAISE fnd_api.g_exc_error;
178: END IF;
179: END IF;
180:
186: p_n_conv_process_run_ind => l_n_conv_process_run_ind,
187: p_v_message_name => l_v_message_name
188: );
189: IF l_n_conv_process_run_ind = 1 AND l_v_message_name IS NULL THEN
190: IF fnd_msg_pub.check_msg_level(fnd_msg_pub.g_msg_lvl_error) THEN
191: fnd_message.set_name('IGS','IGS_FI_REASS_BAL_PRC_RUN');
192: fnd_msg_pub.add;
193: RAISE fnd_api.g_exc_error;
194: END IF;
188: );
189: IF l_n_conv_process_run_ind = 1 AND l_v_message_name IS NULL THEN
190: IF fnd_msg_pub.check_msg_level(fnd_msg_pub.g_msg_lvl_error) THEN
191: fnd_message.set_name('IGS','IGS_FI_REASS_BAL_PRC_RUN');
192: fnd_msg_pub.add;
193: RAISE fnd_api.g_exc_error;
194: END IF;
195: END IF;
196: IF l_v_message_name IS NOT NULL THEN
193: RAISE fnd_api.g_exc_error;
194: END IF;
195: END IF;
196: IF l_v_message_name IS NOT NULL THEN
197: IF fnd_msg_pub.check_msg_level(fnd_msg_pub.g_msg_lvl_error) THEN
198: fnd_message.set_name('IGS',l_v_message_name);
199: fnd_msg_pub.add;
200: RAISE fnd_api.g_exc_error;
201: END IF;
195: END IF;
196: IF l_v_message_name IS NOT NULL THEN
197: IF fnd_msg_pub.check_msg_level(fnd_msg_pub.g_msg_lvl_error) THEN
198: fnd_message.set_name('IGS',l_v_message_name);
199: fnd_msg_pub.add;
200: RAISE fnd_api.g_exc_error;
201: END IF;
202: END IF;
203:
211: p_n_version_number => l_n_version_number
212: );
213: --If no active holds balance rule exists, API would error out
214: IF l_n_version_number = 0 THEN
215: IF fnd_msg_pub.check_msg_level(fnd_msg_pub.g_msg_lvl_error) THEN
216: fnd_message.set_name('IGS','IGS_FI_CANNOT_CRT_TXN');
217: fnd_msg_pub.add;
218: RAISE fnd_api.g_exc_error;
219: END IF;
213: --If no active holds balance rule exists, API would error out
214: IF l_n_version_number = 0 THEN
215: IF fnd_msg_pub.check_msg_level(fnd_msg_pub.g_msg_lvl_error) THEN
216: fnd_message.set_name('IGS','IGS_FI_CANNOT_CRT_TXN');
217: fnd_msg_pub.add;
218: RAISE fnd_api.g_exc_error;
219: END IF;
220: END IF;
221:
273: IF l_v_return_status <> 'S' THEN
274: log_to_fnd(p_v_module => 'create_manual_waivers',
275: p_v_string => ' Procedure igs_fi_wav_utils_002.call_credits_api errored out'
276: );
277: IF fnd_msg_pub.check_msg_level(fnd_msg_pub.g_msg_lvl_error) THEN
278: fnd_message.set_name('IGS','IGS_FI_WAV_NO_TRANS_CREATED');
279: fnd_msg_pub.add;
280: RAISE fnd_api.g_exc_error;
281: END IF;
275: p_v_string => ' Procedure igs_fi_wav_utils_002.call_credits_api errored out'
276: );
277: IF fnd_msg_pub.check_msg_level(fnd_msg_pub.g_msg_lvl_error) THEN
278: fnd_message.set_name('IGS','IGS_FI_WAV_NO_TRANS_CREATED');
279: fnd_msg_pub.add;
280: RAISE fnd_api.g_exc_error;
281: END IF;
282: END IF;
283:
322: IF l_v_return_status <> 'S' THEN
323: log_to_fnd(p_v_module => 'create_manual_waivers',
324: p_v_string => ' Procedure igs_fi_wav_utils_001.apply_waivers errored out'
325: );
326: IF fnd_msg_pub.check_msg_level(fnd_msg_pub.g_msg_lvl_error) THEN
327: fnd_message.set_name('IGS','IGS_FI_WAV_NO_TRANS_CREATED');
328: fnd_msg_pub.add;
329: RAISE fnd_api.g_exc_error;
330: END IF;
324: p_v_string => ' Procedure igs_fi_wav_utils_001.apply_waivers errored out'
325: );
326: IF fnd_msg_pub.check_msg_level(fnd_msg_pub.g_msg_lvl_error) THEN
327: fnd_message.set_name('IGS','IGS_FI_WAV_NO_TRANS_CREATED');
328: fnd_msg_pub.add;
329: RAISE fnd_api.g_exc_error;
330: END IF;
331: END IF;
332:
363: IF l_v_return_status <> 'S' THEN
364: log_to_fnd(p_v_module => 'create_manual_waivers',
365: p_v_string => ' Procedure igs_fi_wav_utils_002.call_charges_api errored out'
366: );
367: IF fnd_msg_pub.check_msg_level(fnd_msg_pub.g_msg_lvl_error) THEN
368: fnd_message.set_name('IGS','IGS_FI_WAV_NO_TRANS_CREATED');
369: fnd_msg_pub.add;
370: RAISE fnd_api.g_exc_error;
371: END IF;
365: p_v_string => ' Procedure igs_fi_wav_utils_002.call_charges_api errored out'
366: );
367: IF fnd_msg_pub.check_msg_level(fnd_msg_pub.g_msg_lvl_error) THEN
368: fnd_message.set_name('IGS','IGS_FI_WAV_NO_TRANS_CREATED');
369: fnd_msg_pub.add;
370: RAISE fnd_api.g_exc_error;
371: END IF;
372: END IF;
373:
412: IF l_v_return_status <> 'S' THEN
413: log_to_fnd(p_v_module => 'create_manual_waivers',
414: p_v_string => ' Procedure igs_fi_wav_utils_001.apply_waivers errored out'
415: );
416: IF fnd_msg_pub.check_msg_level(fnd_msg_pub.g_msg_lvl_error) THEN
417: fnd_message.set_name('IGS','IGS_FI_WAV_NO_TRANS_CREATED');
418: fnd_msg_pub.add;
419: RAISE fnd_api.g_exc_error;
420: END IF;
414: p_v_string => ' Procedure igs_fi_wav_utils_001.apply_waivers errored out'
415: );
416: IF fnd_msg_pub.check_msg_level(fnd_msg_pub.g_msg_lvl_error) THEN
417: fnd_message.set_name('IGS','IGS_FI_WAV_NO_TRANS_CREATED');
418: fnd_msg_pub.add;
419: RAISE fnd_api.g_exc_error;
420: END IF;
421: END IF;
422: x_waiver_adjustment_id := l_n_invoice_id;
429: COMMIT WORK;
430: END IF;
431:
432: --Standard call to get message count and if count is 1, get message info.
433: fnd_msg_pub.count_and_get(
434: p_count => x_msg_count,
435: p_data => x_msg_data
436: );
437: EXCEPTION
437: EXCEPTION
438: WHEN fnd_api.g_exc_error THEN
439: ROLLBACK TO create_manual_waivers_pub;
440: x_return_status := fnd_api.g_ret_sts_error;
441: fnd_msg_pub.count_and_get(
442: p_count => x_msg_count ,
443: p_data => x_msg_data
444: );
445: WHEN fnd_api.g_exc_unexpected_error THEN
444: );
445: WHEN fnd_api.g_exc_unexpected_error THEN
446: ROLLBACK TO create_manual_waivers_pub ;
447: x_return_status := fnd_api.g_ret_sts_unexp_error;
448: fnd_msg_pub.count_and_get(
449: p_count => x_msg_count ,
450: p_data => x_msg_data
451: );
452: WHEN OTHERS THEN
454: x_return_status := fnd_api.g_ret_sts_unexp_error;
455: IF fnd_log.level_exception >= fnd_log.g_current_runtime_level THEN
456: fnd_log.string(fnd_log.level_exception,'igs.plsql.igs_fi_waivers_api_pub.create_manual_waivers.exception','Error : ' || SQLERRM);
457: END IF;
458: IF fnd_msg_pub.check_msg_level(fnd_msg_pub.g_msg_lvl_unexp_error) THEN
459: fnd_msg_pub.add_exc_msg(
460: p_pkg_name => g_pkg_name,
461: p_procedure_name => l_api_name
462: );
455: IF fnd_log.level_exception >= fnd_log.g_current_runtime_level THEN
456: fnd_log.string(fnd_log.level_exception,'igs.plsql.igs_fi_waivers_api_pub.create_manual_waivers.exception','Error : ' || SQLERRM);
457: END IF;
458: IF fnd_msg_pub.check_msg_level(fnd_msg_pub.g_msg_lvl_unexp_error) THEN
459: fnd_msg_pub.add_exc_msg(
460: p_pkg_name => g_pkg_name,
461: p_procedure_name => l_api_name
462: );
463: END IF;
460: p_pkg_name => g_pkg_name,
461: p_procedure_name => l_api_name
462: );
463: END IF;
464: fnd_msg_pub.count_and_get(
465: p_count => x_msg_count ,
466: p_data => x_msg_data
467: );
468: END create_manual_waivers;
578: IF ( p_fee_cal_type IS NULL OR p_fee_ci_seq_number IS NULL OR
579: p_waiver_name IS NULL OR p_person_id IS NULL OR
580: p_gl_date IS NULL OR p_currency_cd IS NULL
581: )THEN
582: IF fnd_msg_pub.check_msg_level(fnd_msg_pub.g_msg_lvl_error) THEN
583: fnd_message.set_name('IGS', 'IGS_GE_INSUFFICIENT_PARAMETER');
584: fnd_msg_pub.add;
585: l_b_validation_success := FALSE;
586: END IF;
580: p_gl_date IS NULL OR p_currency_cd IS NULL
581: )THEN
582: IF fnd_msg_pub.check_msg_level(fnd_msg_pub.g_msg_lvl_error) THEN
583: fnd_message.set_name('IGS', 'IGS_GE_INSUFFICIENT_PARAMETER');
584: fnd_msg_pub.add;
585: l_b_validation_success := FALSE;
586: END IF;
587: END IF;
588:
592: p_v_cal_type => p_fee_cal_type,
593: p_n_ci_sequence_number => p_fee_ci_seq_number,
594: p_v_s_cal_cat => 'FEE'
595: ) THEN
596: IF fnd_msg_pub.check_msg_level(fnd_msg_pub.g_msg_lvl_error) THEN
597: fnd_message.set_name('IGS', 'IGS_FI_FCI_NOTFOUND');
598: fnd_msg_pub.add;
599: l_b_validation_success := FALSE;
600: END IF;
594: p_v_s_cal_cat => 'FEE'
595: ) THEN
596: IF fnd_msg_pub.check_msg_level(fnd_msg_pub.g_msg_lvl_error) THEN
597: fnd_message.set_name('IGS', 'IGS_FI_FCI_NOTFOUND');
598: fnd_msg_pub.add;
599: l_b_validation_success := FALSE;
600: END IF;
601: END IF;
602:
611: p_v_message_name => l_v_message_name,
612: p_b_return_stat => l_b_ret_status
613: ) ;
614: IF NOT (l_b_ret_status) THEN
615: IF fnd_msg_pub.check_msg_level(fnd_msg_pub.g_msg_lvl_error) THEN
616: fnd_message.set_name('IGS', l_v_message_name);
617: fnd_msg_pub.add;
618: l_b_validation_success := FALSE;
619: END IF;
613: ) ;
614: IF NOT (l_b_ret_status) THEN
615: IF fnd_msg_pub.check_msg_level(fnd_msg_pub.g_msg_lvl_error) THEN
616: fnd_message.set_name('IGS', l_v_message_name);
617: fnd_msg_pub.add;
618: l_b_validation_success := FALSE;
619: END IF;
620: END IF;
621: END IF;
621: END IF;
622:
623: -- Verify if inbound parameter p_waiver_name holds a value or not
624: IF p_waiver_name IS NULL THEN
625: IF fnd_msg_pub.check_msg_level(fnd_msg_pub.g_msg_lvl_error) THEN
626: fnd_message.set_name('IGS', 'IGS_FI_WAV_PGM_INVALID');
627: fnd_msg_pub.add;
628: l_b_validation_success := FALSE;
629: END IF;
623: -- Verify if inbound parameter p_waiver_name holds a value or not
624: IF p_waiver_name IS NULL THEN
625: IF fnd_msg_pub.check_msg_level(fnd_msg_pub.g_msg_lvl_error) THEN
626: fnd_message.set_name('IGS', 'IGS_FI_WAV_PGM_INVALID');
627: fnd_msg_pub.add;
628: l_b_validation_success := FALSE;
629: END IF;
630: END IF;
631:
639: cp_v_waiver_name => p_waiver_name
640: );
641: FETCH c_waiver_pgms INTO rec_c_waiver_pgms;
642: IF c_waiver_pgms%NOTFOUND THEN
643: IF fnd_msg_pub.check_msg_level(fnd_msg_pub.g_msg_lvl_error) THEN
644: fnd_message.set_name('IGS', 'IGS_FI_WAV_FEE_CAL_INST');
645: fnd_msg_pub.add;
646: l_b_validation_success := FALSE;
647: END IF;
641: FETCH c_waiver_pgms INTO rec_c_waiver_pgms;
642: IF c_waiver_pgms%NOTFOUND THEN
643: IF fnd_msg_pub.check_msg_level(fnd_msg_pub.g_msg_lvl_error) THEN
644: fnd_message.set_name('IGS', 'IGS_FI_WAV_FEE_CAL_INST');
645: fnd_msg_pub.add;
646: l_b_validation_success := FALSE;
647: END IF;
648: END IF;
649: CLOSE c_waiver_pgms;
650:
651: -- Validate the status of waiver program retrieved by the cusor
652: -- API should process only waiver programs of status "Active"
653: IF rec_c_waiver_pgms.waiver_status_code <> 'ACTIVE' THEN
654: IF fnd_msg_pub.check_msg_level(fnd_msg_pub.g_msg_lvl_error) THEN
655: fnd_message.set_name('IGS', 'IGS_FI_WAV_PGM_INACTIVE');
656: fnd_msg_pub.add;
657: l_b_validation_success := FALSE;
658: END IF;
652: -- API should process only waiver programs of status "Active"
653: IF rec_c_waiver_pgms.waiver_status_code <> 'ACTIVE' THEN
654: IF fnd_msg_pub.check_msg_level(fnd_msg_pub.g_msg_lvl_error) THEN
655: fnd_message.set_name('IGS', 'IGS_FI_WAV_PGM_INACTIVE');
656: fnd_msg_pub.add;
657: l_b_validation_success := FALSE;
658: END IF;
659: END IF;
660:
660:
661: -- Validate if the Waiver program belongs to category "Manual"
662: -- API should process Manual waiver programs
663: IF rec_c_waiver_pgms.waiver_method_code <> 'MANUAL' THEN
664: IF fnd_msg_pub.check_msg_level(fnd_msg_pub.g_msg_lvl_error) THEN
665: fnd_message.set_name('IGS', 'IGS_FI_WAV_METHOD_INVALID');
666: fnd_msg_pub.add;
667: l_b_validation_success := FALSE;
668: END IF;
662: -- API should process Manual waiver programs
663: IF rec_c_waiver_pgms.waiver_method_code <> 'MANUAL' THEN
664: IF fnd_msg_pub.check_msg_level(fnd_msg_pub.g_msg_lvl_error) THEN
665: fnd_message.set_name('IGS', 'IGS_FI_WAV_METHOD_INVALID');
666: fnd_msg_pub.add;
667: l_b_validation_success := FALSE;
668: END IF;
669: END IF;
670:
670:
671: -- Validate the Manual waiver program is of type Fee Level
672: -- API should process Manual waiver program is of type Fee Level
673: IF rec_c_waiver_pgms.waiver_mode_code <> 'FEE_LEVEL' THEN
674: IF fnd_msg_pub.check_msg_level(fnd_msg_pub.g_msg_lvl_error) THEN
675: fnd_message.set_name('IGS', 'IGS_FI_WAV_MODE_INVALID');
676: fnd_message.set_token('WAIV_PGM',rec_c_waiver_pgms.waiver_name);
677: fnd_msg_pub.add;
678: l_b_validation_success := FALSE;
673: IF rec_c_waiver_pgms.waiver_mode_code <> 'FEE_LEVEL' THEN
674: IF fnd_msg_pub.check_msg_level(fnd_msg_pub.g_msg_lvl_error) THEN
675: fnd_message.set_name('IGS', 'IGS_FI_WAV_MODE_INVALID');
676: fnd_message.set_token('WAIV_PGM',rec_c_waiver_pgms.waiver_name);
677: fnd_msg_pub.add;
678: l_b_validation_success := FALSE;
679: END IF;
680: END IF;
681: END IF;
681: END IF;
682:
683: -- Validate if the person id passed as inbound parameter to the API is valid or not
684: IF igs_fi_gen_007.validate_person ( p_person_id) = 'N' THEN
685: IF fnd_msg_pub.check_msg_level(fnd_msg_pub.g_msg_lvl_error) THEN
686: fnd_message.set_name('IGS', 'IGS_FI_INVALID_PERSON');
687: fnd_message.set_token('PERSON_ID',p_person_id);
688: fnd_msg_pub.add;
689: l_b_validation_success := FALSE;
684: IF igs_fi_gen_007.validate_person ( p_person_id) = 'N' THEN
685: IF fnd_msg_pub.check_msg_level(fnd_msg_pub.g_msg_lvl_error) THEN
686: fnd_message.set_name('IGS', 'IGS_FI_INVALID_PERSON');
687: fnd_message.set_token('PERSON_ID',p_person_id);
688: fnd_msg_pub.add;
689: l_b_validation_success := FALSE;
690: END IF;
691: END IF;
692:
698: p_v_message_name => l_v_message_name
699: );
700:
701: IF l_v_message_name IS NOT NULL THEN
702: IF fnd_msg_pub.check_msg_level(fnd_msg_pub.g_msg_lvl_error) THEN
703: fnd_message.set_name('IGS', l_v_message_name);
704: fnd_msg_pub.add;
705: l_b_validation_success := FALSE;
706: END IF;
700:
701: IF l_v_message_name IS NOT NULL THEN
702: IF fnd_msg_pub.check_msg_level(fnd_msg_pub.g_msg_lvl_error) THEN
703: fnd_message.set_name('IGS', l_v_message_name);
704: fnd_msg_pub.add;
705: l_b_validation_success := FALSE;
706: END IF;
707: END IF;
708:
706: END IF;
707: END IF;
708:
709: IF l_v_closing_status NOT IN ('O','F') THEN
710: IF fnd_msg_pub.check_msg_level(fnd_msg_pub.g_msg_lvl_error) THEN
711: fnd_message.set_name('IGS', 'IGS_FI_INVALID_GL_DATE');
712: fnd_message.set_token('GL_DATE',p_gl_date);
713: fnd_msg_pub.add;
714: l_b_validation_success := FALSE;
709: IF l_v_closing_status NOT IN ('O','F') THEN
710: IF fnd_msg_pub.check_msg_level(fnd_msg_pub.g_msg_lvl_error) THEN
711: fnd_message.set_name('IGS', 'IGS_FI_INVALID_GL_DATE');
712: fnd_message.set_token('GL_DATE',p_gl_date);
713: fnd_msg_pub.add;
714: l_b_validation_success := FALSE;
715: END IF;
716: END IF;
717:
716: END IF;
717:
718: -- Validate if value of the inbound parameter P_CURRENCY_CD is active in the System
719: IF NOT igs_fi_crdapi_util.validate_curr ( p_v_currency_cd => p_currency_cd) THEN
720: IF fnd_msg_pub.check_msg_level(fnd_msg_pub.g_msg_lvl_error) THEN
721: fnd_message.set_name('IGS', 'IGS_FI_INVALID_CUR');
722: fnd_message.set_token('CUR_CD', p_currency_cd);
723: fnd_msg_pub.add;
724: l_b_validation_success := FALSE;
719: IF NOT igs_fi_crdapi_util.validate_curr ( p_v_currency_cd => p_currency_cd) THEN
720: IF fnd_msg_pub.check_msg_level(fnd_msg_pub.g_msg_lvl_error) THEN
721: fnd_message.set_name('IGS', 'IGS_FI_INVALID_CUR');
722: fnd_message.set_token('CUR_CD', p_currency_cd);
723: fnd_msg_pub.add;
724: l_b_validation_success := FALSE;
725: END IF;
726: END IF;
727:
726: END IF;
727:
728: -- Validate the waiver amount
729: IF p_waiver_amount = 0 OR p_waiver_amount IS NULL THEN
730: IF fnd_msg_pub.check_msg_level(fnd_msg_pub.g_msg_lvl_error) THEN
731: fnd_message.set_name('IGS', 'IGS_FI_WAV_INVALID_AMT');
732: fnd_msg_pub.add;
733: l_b_validation_success := FALSE;
734: END IF;
728: -- Validate the waiver amount
729: IF p_waiver_amount = 0 OR p_waiver_amount IS NULL THEN
730: IF fnd_msg_pub.check_msg_level(fnd_msg_pub.g_msg_lvl_error) THEN
731: fnd_message.set_name('IGS', 'IGS_FI_WAV_INVALID_AMT');
732: fnd_msg_pub.add;
733: l_b_validation_success := FALSE;
734: END IF;
735: END IF;
736:
742: p_v_fee_cal_type => p_fee_cal_type,
743: p_n_fee_ci_seq_number => p_fee_ci_seq_number
744: );
745: IF (l_b_chr_err_account=1) THEN
746: IF fnd_msg_pub.check_msg_level(fnd_msg_pub.g_msg_lvl_error) THEN
747: fnd_message.set_name('IGS','IGS_FI_WAV_CHG_ERR');
748: fnd_message.set_token('PERSON',igs_fi_gen_008.get_party_number(p_n_party_id => p_person_id));
749: fnd_message.set_token('FEE_TYPE',rec_c_waiver_pgms.target_fee_type);
750: fnd_message.set_token('FEE_PERIOD',
750: fnd_message.set_token('FEE_PERIOD',
751: igs_ca_gen_001.calp_get_alt_cd(p_cal_type => p_fee_cal_type,
752: p_sequence_number => p_fee_ci_seq_number)
753: );
754: fnd_msg_pub.add;
755: l_b_validation_success := FALSE;
756: END IF;
757: END IF;
758:
757: END IF;
758:
759: IF NVL(p_waiver_amount,0) > 0 THEN
760: IF p_source_credit_id IS NOT NULL THEN
761: IF fnd_msg_pub.check_msg_level(fnd_msg_pub.g_msg_lvl_error) THEN
762: fnd_message.set_name('IGS', 'IGS_FI_WAV_CRD_TXN_ID');
763: fnd_msg_pub.add;
764: l_b_validation_success := FALSE;
765: END IF;
759: IF NVL(p_waiver_amount,0) > 0 THEN
760: IF p_source_credit_id IS NOT NULL THEN
761: IF fnd_msg_pub.check_msg_level(fnd_msg_pub.g_msg_lvl_error) THEN
762: fnd_message.set_name('IGS', 'IGS_FI_WAV_CRD_TXN_ID');
763: fnd_msg_pub.add;
764: l_b_validation_success := FALSE;
765: END IF;
766: END IF;
767:
795: IF l_v_return_status = 'E' THEN
796: log_to_fnd(p_v_module => 'validate_parameters',
797: p_v_string => ' The Procedure igs_fi_wav_utils_001.get_eligible_waiver_amt returned a status of error '
798: );
799: IF fnd_msg_pub.check_msg_level(fnd_msg_pub.g_msg_lvl_error) THEN
800: fnd_message.set_name('IGS', 'IGS_FI_WAV_ELIG_AMT_FAIL');
801: fnd_msg_pub.add;
802: l_b_validation_success := FALSE;
803: END IF;
797: p_v_string => ' The Procedure igs_fi_wav_utils_001.get_eligible_waiver_amt returned a status of error '
798: );
799: IF fnd_msg_pub.check_msg_level(fnd_msg_pub.g_msg_lvl_error) THEN
800: fnd_message.set_name('IGS', 'IGS_FI_WAV_ELIG_AMT_FAIL');
801: fnd_msg_pub.add;
802: l_b_validation_success := FALSE;
803: END IF;
804: END IF;
805:
808: ' Eligible waiver amount : ' ||NVL(l_n_eligible_amount,0)
809: );
810:
811: IF ((NVL(p_waiver_amount,0) - NVL(l_n_eligible_amount,0))>0) THEN
812: IF fnd_msg_pub.check_msg_level(fnd_msg_pub.g_msg_lvl_error) THEN
813: fnd_message.set_name('IGS', 'IGS_FI_WAV_GREATER_AMT');
814: fnd_msg_pub.add;
815: l_b_validation_success := FALSE;
816: END IF;
810:
811: IF ((NVL(p_waiver_amount,0) - NVL(l_n_eligible_amount,0))>0) THEN
812: IF fnd_msg_pub.check_msg_level(fnd_msg_pub.g_msg_lvl_error) THEN
813: fnd_message.set_name('IGS', 'IGS_FI_WAV_GREATER_AMT');
814: fnd_msg_pub.add;
815: l_b_validation_success := FALSE;
816: END IF;
817: END IF;
818:
817: END IF;
818:
819: ELSIF NVL(p_waiver_amount,0) < 0 THEN
820: IF p_source_credit_id IS NULL THEN
821: IF fnd_msg_pub.check_msg_level(fnd_msg_pub.g_msg_lvl_error) THEN
822: fnd_message.set_name('IGS', 'IGS_FI_WAV_SRC_CRD_MAND');
823: fnd_msg_pub.add;
824: l_b_validation_success := FALSE;
825: END IF;
819: ELSIF NVL(p_waiver_amount,0) < 0 THEN
820: IF p_source_credit_id IS NULL THEN
821: IF fnd_msg_pub.check_msg_level(fnd_msg_pub.g_msg_lvl_error) THEN
822: fnd_message.set_name('IGS', 'IGS_FI_WAV_SRC_CRD_MAND');
823: fnd_msg_pub.add;
824: l_b_validation_success := FALSE;
825: END IF;
826: END IF;
827: -- Determine if a waiver credit record already exists in the system for the P_SOURCE_CREDIT_ID
833: cp_v_waiver_name => p_waiver_name
834: );
835: FETCH c_credits INTO rec_c_credits;
836: IF c_credits%NOTFOUND THEN
837: IF fnd_msg_pub.check_msg_level(fnd_msg_pub.g_msg_lvl_error) THEN
838: fnd_message.set_name('IGS', 'IGS_FI_WAV_SRC_CRD_INVALID');
839: fnd_msg_pub.add;
840: l_b_validation_success := FALSE;
841: END IF;
835: FETCH c_credits INTO rec_c_credits;
836: IF c_credits%NOTFOUND THEN
837: IF fnd_msg_pub.check_msg_level(fnd_msg_pub.g_msg_lvl_error) THEN
838: fnd_message.set_name('IGS', 'IGS_FI_WAV_SRC_CRD_INVALID');
839: fnd_msg_pub.add;
840: l_b_validation_success := FALSE;
841: END IF;
842: END IF;
843: CLOSE c_credits;
843: CLOSE c_credits;
844:
845: -- Validate the status of the waiver credit
846: IF rec_c_credits.status <> 'CLEARED' THEN
847: IF fnd_msg_pub.check_msg_level(fnd_msg_pub.g_msg_lvl_error) THEN
848: fnd_message.set_name('IGS', 'IGS_FI_WAV_SRC_CRD_REVERSED');
849: fnd_msg_pub.add;
850: l_b_validation_success := FALSE;
851: END IF;
845: -- Validate the status of the waiver credit
846: IF rec_c_credits.status <> 'CLEARED' THEN
847: IF fnd_msg_pub.check_msg_level(fnd_msg_pub.g_msg_lvl_error) THEN
848: fnd_message.set_name('IGS', 'IGS_FI_WAV_SRC_CRD_REVERSED');
849: fnd_msg_pub.add;
850: l_b_validation_success := FALSE;
851: END IF;
852: END IF;
853:
869: ' prior waiver charge adjustments : ' ||l_n_wavadj_amt
870: );
871:
872: IF ABS(p_waiver_amount) > (NVL(rec_c_credits.amount,0) - l_n_wavadj_amt) THEN
873: IF fnd_msg_pub.check_msg_level(fnd_msg_pub.g_msg_lvl_error) THEN
874: fnd_message.set_name('IGS', 'IGS_FI_WAV_ADJ_AMT_GREATER');
875: fnd_msg_pub.add;
876: l_b_validation_success := FALSE;
877: END IF;
871:
872: IF ABS(p_waiver_amount) > (NVL(rec_c_credits.amount,0) - l_n_wavadj_amt) THEN
873: IF fnd_msg_pub.check_msg_level(fnd_msg_pub.g_msg_lvl_error) THEN
874: fnd_message.set_name('IGS', 'IGS_FI_WAV_ADJ_AMT_GREATER');
875: fnd_msg_pub.add;
876: l_b_validation_success := FALSE;
877: END IF;
878: END IF;
879: END IF;