1: PACKAGE BODY ARP_CONFIRMATION AS
2: /* $Header: ARRECNFB.pls 120.15 2005/06/14 19:02:58 vcrisost ship $ */
3:
4: /* =======================================================================
5: | Global Data Types
74:
75: BEGIN
76:
77: IF PG_DEBUG in ('Y', 'C') THEN
78: arp_standard.debug('arp_confirmation.confirm()+');
79: arp_standard.debug('confirm: ' || '-- p_cr_id : ' || to_char(p_cr_id));
80: arp_standard.debug('-- p_confirm_gl_date: ' || to_char(p_confirm_gl_date));
81: arp_standard.debug('-- p_confirm_date : ' || to_char(p_confirm_date));
82: END IF;
164: p_confirm_date,
165: l_acctd_amount);
166:
167: IF PG_DEBUG in ('Y', 'C') THEN
168: arp_standard.debug('arp_confirmation.confirm()-');
169: END IF;
170:
171: EXCEPTION
172: WHEN OTHERS THEN
170:
171: EXCEPTION
172: WHEN OTHERS THEN
173: IF PG_DEBUG in ('Y', 'C') THEN
174: arp_util.debug('EXCEPTION: arp_confirmation.confirm()');
175: END IF;
176: RAISE;
177:
178: END; -- confirm()
236:
237: BEGIN
238:
239: IF PG_DEBUG in ('Y', 'C') THEN
240: arp_standard.debug('arp_confirmation.unconfirm()+');
241: arp_standard.debug('confirm: ' || to_char(p_cr_id));
242: END IF;
243:
244: -- validate IN parameters:
309: l_acctd_amount,
310: l_batch_id);
311:
312: IF PG_DEBUG in ('Y', 'C') THEN
313: arp_standard.debug('arp_confirmation.unconfirm()-');
314: END IF;
315:
316: EXCEPTION
317: WHEN OTHERS THEN
315:
316: EXCEPTION
317: WHEN OTHERS THEN
318: IF PG_DEBUG in ('Y', 'C') THEN
319: arp_util.debug('EXCEPTION: arp_confirmation.unconfirm()');
320: END IF;
321: RAISE;
322:
323: END; -- unconfirm()
385: l_cash_receipt_rec confirmCursor%ROWTYPE;
386:
387: BEGIN
388: IF PG_DEBUG in ('Y', 'C') THEN
389: arp_standard.debug('arp_confirmation.confirm_batch()+');
390: END IF;
391:
392: FOR l_cash_receipt_rec IN confirmCursor(p_batch_id) LOOP
393: BEGIN
397: UPDATE AR_CASH_RECEIPTS
398: SET confirmed_flag = 'Y'
399: WHERE cash_receipt_id = l_cash_receipt_rec.cash_receipt_id;
400:
401: arp_confirmation.confirm(
402: l_cash_receipt_rec.cash_receipt_id,
403: p_confirm_gl_date,
404: p_confirm_date,
405: 'ARXRWMAI',
409:
410: EXCEPTION
411: WHEN OTHERS THEN
412: IF PG_DEBUG in ('Y', 'C') THEN
413: arp_standard.debug('Exception in arp_confirmation.confirm_batch');
414: END IF;
415: ROLLBACK TO ar_confirm_batch_sp;
416: l_num_rec_error := l_num_rec_error + 1;
417: END;
421: p_num_rec_confirmed := l_num_rec_confirmed;
422: p_num_rec_error := l_num_rec_error;
423:
424: IF PG_DEBUG in ('Y', 'C') THEN
425: arp_standard.debug('arp_confirmation.confirm_batch()-');
426: END IF;
427:
428: END confirm_batch;
429:
464: l_status VARCHAR2(30);
465: l_confirmed_flag VARCHAR2(2);
466: BEGIN
467: IF PG_DEBUG in ('Y', 'C') THEN
468: arp_standard.debug('arp_confirmation.confirm_receipt()+');
469: arp_standard.debug('****** Begin Confirm Receipt ****** ');
470: arp_standard.debug('confirm: ' || '-- p_cr_id : ' || to_char(p_cr_id));
471: arp_standard.debug('-- p_confirm_gl_date: ' || to_char(p_confirm_gl_date));
472: arp_standard.debug('-- p_confirm_date : ' || to_char(p_confirm_date));
485: UPDATE AR_CASH_RECEIPTS
486: SET confirmed_flag = 'Y'
487: WHERE cash_receipt_id = p_cr_id;
488:
489: arp_confirmation.confirm(
490: p_cr_id,
491: p_confirm_gl_date,
492: p_confirm_date,
493: 'ARXRWMAI',
497: END IF;
498:
499: END IF;
500: IF PG_DEBUG in ('Y', 'C') THEN
501: arp_standard.debug('arp_confirmation.confirm_receipt: Invalid GL DATE ' || to_char(p_confirm_gl_date));
502: END IF;
503: END IF;
504: IF PG_DEBUG in ('Y', 'C') THEN
505: arp_standard.debug('arp_confirmation.confirm_receipt()-');
501: arp_standard.debug('arp_confirmation.confirm_receipt: Invalid GL DATE ' || to_char(p_confirm_gl_date));
502: END IF;
503: END IF;
504: IF PG_DEBUG in ('Y', 'C') THEN
505: arp_standard.debug('arp_confirmation.confirm_receipt()-');
506: END IF;
507:
508: EXCEPTION
509: WHEN OTHERS THEN
507:
508: EXCEPTION
509: WHEN OTHERS THEN
510: IF PG_DEBUG in ('Y', 'C') THEN
511: arp_standard.debug('EXCEPTION: arp_confirmation.confirm_receipt');
512: END IF;
513: RAISE;
514: END confirm_receipt; -- confirm_receipt()
515: /* End Bug fix 872506 */
631: AND reversal_gl_date IS NULL;
632:
633: BEGIN
634:
635: arp_standard.debug('arp_confirmation.do_confirm()+');
636:
637: -- initialize l_max_dates:
638:
639: l_max_dates.max_trx_date := p_confirm_date;
889: -- as UNAPP records are paired with their APP records
890:
891: create_matching_unapp_records(p_cr_rec.cash_receipt_id, l_app_id);
892:
893: arp_standard.debug('arp_confirmation.do_confirm()-');
894:
895: EXCEPTION
896: WHEN NO_DATA_FOUND THEN
897: arp_util.debug('EXCEPTION: NO DATA FOUND, arp_confirmation.do_confirm()');
893: arp_standard.debug('arp_confirmation.do_confirm()-');
894:
895: EXCEPTION
896: WHEN NO_DATA_FOUND THEN
897: arp_util.debug('EXCEPTION: NO DATA FOUND, arp_confirmation.do_confirm()');
898: RAISE;
899:
900: WHEN OTHERS THEN
901: arp_util.debug('EXCEPTION: arp_confirmation.do_confirm()');
897: arp_util.debug('EXCEPTION: NO DATA FOUND, arp_confirmation.do_confirm()');
898: RAISE;
899:
900: WHEN OTHERS THEN
901: arp_util.debug('EXCEPTION: arp_confirmation.do_confirm()');
902: RAISE;
903:
904: END; -- do_confirm()
905:
996: p_confirm_date);
997:
998: EXCEPTION
999: WHEN OTHERS THEN
1000: arp_util.debug('EXCEPTION: arp_confirmation.do_unconfirm()');
1001: RAISE;
1002:
1003: END; -- do_unconfirm()
1004:
1057:
1058: --
1059: BEGIN
1060:
1061: arp_standard.debug('arp_confirmation.update_cr_history_confirm()+');
1062:
1063: -- fetch current record from ar_cash_receipt_history
1064:
1065: arp_cr_history_pkg.fetch_f_crid(p_cr_rec.cash_receipt_id, l_crh_rec_old);
1223: l_dummy NUMBER;
1224:
1225: BEGIN
1226:
1227: arp_standard.debug('arp_confirmation.confirm_update_ps_rec()+');
1228: -- Fetch receipt's payment schedule record:
1229:
1230: SELECT *
1231: INTO l_receipt_ps_rec
1249: p_closed_gl_date,
1250: l_dummy,
1251: l_receipt_ps_rec);
1252:
1253: arp_standard.debug('arp_confirmation.confirm_update_ps_rec()-');
1254:
1255: EXCEPTION
1256: WHEN OTHERS THEN
1257: arp_util.debug('EXCEPTION: arp_confirmation.confirm_update_ps_rec()');
1253: arp_standard.debug('arp_confirmation.confirm_update_ps_rec()-');
1254:
1255: EXCEPTION
1256: WHEN OTHERS THEN
1257: arp_util.debug('EXCEPTION: arp_confirmation.confirm_update_ps_rec()');
1258: RAISE;
1259:
1260: END; -- confirm_update_ps_rec()
1261:
1322: AND app.application_rule IN ('97.0', '40.0');
1323:
1324: -- update record
1325:
1326: arp_standard.debug('arp_confirmation.modify_update_ra_rec()+');
1327:
1328: UPDATE ar_receivable_applications
1329: SET gl_date = p_confirm_gl_date,
1330: apply_date = p_confirm_date,
1354: l_ae_doc_rec.other_flag := '';
1355: arp_acct_main.Create_Acct_Entry(l_ae_doc_rec);
1356:
1357:
1358: arp_standard.debug('arp_confirmation.modify_update_ra_rec()+');
1359:
1360: EXCEPTION
1361: WHEN NO_DATA_FOUND THEN
1362: arp_util.debug('EXCEPTION: NO DATA FOUND, arp_confirmation.modify_update_ra_rec()');
1358: arp_standard.debug('arp_confirmation.modify_update_ra_rec()+');
1359:
1360: EXCEPTION
1361: WHEN NO_DATA_FOUND THEN
1362: arp_util.debug('EXCEPTION: NO DATA FOUND, arp_confirmation.modify_update_ra_rec()');
1363: RAISE;
1364:
1365: WHEN OTHERS THEN
1366: arp_util.debug('EXCEPTION: arp_confirmation.modify_update_ra_rec()');
1362: arp_util.debug('EXCEPTION: NO DATA FOUND, arp_confirmation.modify_update_ra_rec()');
1363: RAISE;
1364:
1365: WHEN OTHERS THEN
1366: arp_util.debug('EXCEPTION: arp_confirmation.modify_update_ra_rec()');
1367: RAISE;
1368:
1369: END; -- modify_update_ra_rec()
1370:
1447: AND unapp.status||'' = 'UNAPP';
1448:
1449: BEGIN
1450:
1451: arp_standard.debug('arp_confirmation.create_matching_unapp_records()+');
1452:
1453:
1454: FOR l_unapp_rec in get_rec_records LOOP
1455:
1621: arp_acct_main.Create_Acct_Entry(l_ae_doc_rec);
1622:
1623: END LOOP;
1624:
1625: arp_standard.debug('arp_confirmation.create_matching_unapp_records()-');
1626:
1627: EXCEPTION
1628: WHEN NO_DATA_FOUND THEN
1629: arp_util.debug('EXCEPTION: NO DATA FOUND arp_confirmation.create_matching_unapp_records()');
1625: arp_standard.debug('arp_confirmation.create_matching_unapp_records()-');
1626:
1627: EXCEPTION
1628: WHEN NO_DATA_FOUND THEN
1629: arp_util.debug('EXCEPTION: NO DATA FOUND arp_confirmation.create_matching_unapp_records()');
1630: RAISE;
1631:
1632: WHEN OTHERS THEN
1633: arp_util.debug('EXCEPTION: arp_confirmation.create_matching_unapp_records()');
1629: arp_util.debug('EXCEPTION: NO DATA FOUND arp_confirmation.create_matching_unapp_records()');
1630: RAISE;
1631:
1632: WHEN OTHERS THEN
1633: arp_util.debug('EXCEPTION: arp_confirmation.create_matching_unapp_records()');
1634: RAISE;
1635:
1636: END; -- create_matching_unapp_records()
1637:
1671: ) IS
1672:
1673: BEGIN
1674:
1675: arp_standard.debug('arp_confirmation.get_receipt_clearing_ccid()+');
1676:
1677: SELECT rma.receipt_clearing_ccid
1678: INTO p_receipt_clearing_ccid
1679: FROM ar_receipt_method_accounts rma
1679: FROM ar_receipt_method_accounts rma
1680: WHERE rma.remit_bank_acct_use_id = p_cr_rec.remit_bank_acct_use_id
1681: AND rma.receipt_method_id = p_cr_rec.receipt_method_id;
1682:
1683: arp_standard.debug('arp_confirmation.get_receipt_clearing_ccid()-');
1684:
1685: EXCEPTION
1686: WHEN OTHERS THEN
1687: arp_util.debug('EXCEPTION: arp_confirmation.get_receipt_clearing_ccid');
1683: arp_standard.debug('arp_confirmation.get_receipt_clearing_ccid()-');
1684:
1685: EXCEPTION
1686: WHEN OTHERS THEN
1687: arp_util.debug('EXCEPTION: arp_confirmation.get_receipt_clearing_ccid');
1688: RAISE;
1689:
1690: END; -- get_receipt_clearing_ccid()
1691:
1749: l_crh_id_new ar_cash_receipt_history.cash_receipt_history_id%TYPE;
1750:
1751: BEGIN
1752:
1753: arp_standard.debug('arp_confirmation.update_cr_history_unconfirm()+');
1754:
1755: -- fetch current record from ar_cash_receipt_history
1756:
1757: arp_cr_history_pkg.fetch_f_crid(p_cr_rec.cash_receipt_id, l_crh_rec_old);
1866:
1867: p_batch_id := l_batch_id;
1868: p_crh_id_rev := l_crh_id_rev;
1869:
1870: arp_standard.debug('arp_confirmation.update_cr_history_unconfirm()-');
1871:
1872:
1873: EXCEPTION
1874: WHEN OTHERS THEN
1871:
1872:
1873: EXCEPTION
1874: WHEN OTHERS THEN
1875: arp_util.debug('EXCEPTION: arp_confirmation.update_cr_history_unconfirm()');
1876: RAISE;
1877:
1878: END; -- update_cr_history_unconfirm()
1879:
1919: l_ar_ps_key_value_list gl_ca_utility_pkg.r_key_value_arr;
1920:
1921: BEGIN
1922:
1923: arp_standard.debug('arp_confirmation.reverse_application_to_ps()+');
1924:
1925: UPDATE
1926: ar_payment_schedules ps
1927: SET (
2025: p_table_name => 'AR_PAYMENT_SCHEDULES',
2026: p_mode => 'BATCH',
2027: p_key_value_list => l_ar_ps_key_value_list);
2028:
2029: arp_standard.debug('arp_confirmation.reverse_application_to_ps()-');
2030:
2031: EXCEPTION
2032: WHEN OTHERS THEN
2033: arp_util.debug('EXCEPTION: arp_confirmation.reverse_application_to_ps()');
2029: arp_standard.debug('arp_confirmation.reverse_application_to_ps()-');
2030:
2031: EXCEPTION
2032: WHEN OTHERS THEN
2033: arp_util.debug('EXCEPTION: arp_confirmation.reverse_application_to_ps()');
2034: RAISE;
2035:
2036: END; -- reverse_application_to_ps()
2037:
2088: n_new_con_data new_con_data; /* to store values retrieved from bulk collect */
2089:
2090: BEGIN
2091:
2092: arp_standard.debug('arp_confirmation.reverse_ra_recs()+');
2093:
2094: FOR l_app_rec IN get_app LOOP
2095:
2096: --retrieve sequence
2598: WHERE cash_receipt_id = p_cr_rec.cash_receipt_id
2599: AND nvl(confirmed_flag,'Y') = 'Y'
2600: AND reversal_gl_date IS NULL;
2601:
2602: arp_standard.debug('arp_confirmation.reverse_ra_recs()-');
2603:
2604: EXCEPTION
2605: WHEN NO_DATA_FOUND THEN
2606: arp_util.debug('EXCEPTION: NO DATA FOUND, arp_confirmation.do_confirm()');
2602: arp_standard.debug('arp_confirmation.reverse_ra_recs()-');
2603:
2604: EXCEPTION
2605: WHEN NO_DATA_FOUND THEN
2606: arp_util.debug('EXCEPTION: NO DATA FOUND, arp_confirmation.do_confirm()');
2607: RAISE;
2608:
2609: WHEN OTHERS THEN
2610: arp_util.debug('EXCEPTION: arp_confirmation.do_confirm()');
2606: arp_util.debug('EXCEPTION: NO DATA FOUND, arp_confirmation.do_confirm()');
2607: RAISE;
2608:
2609: WHEN OTHERS THEN
2610: arp_util.debug('EXCEPTION: arp_confirmation.do_confirm()');
2611: RAISE;
2612:
2613: END; -- reverse_ra_recs()
2614:
2656: l_dummy NUMBER;
2657:
2658: BEGIN
2659:
2660: arp_standard.debug('arp_confirmation.unconfirm_update_ps_rec()+');
2661: -- Fetch receipt's payment schedule record:
2662:
2663: SELECT *
2664: INTO l_receipt_ps_rec
2680: p_closed_gl_date,
2681: l_dummy,
2682: l_receipt_ps_rec);
2683:
2684: arp_standard.debug('arp_confirmation.unconfirm_update_ps_rec()-');
2685:
2686: EXCEPTION
2687: WHEN NO_DATA_FOUND THEN
2688: arp_util.debug('EXCEPTION: NO DATA FOUND, arp_confirmation.unconfirm_update_ps_rec()');
2684: arp_standard.debug('arp_confirmation.unconfirm_update_ps_rec()-');
2685:
2686: EXCEPTION
2687: WHEN NO_DATA_FOUND THEN
2688: arp_util.debug('EXCEPTION: NO DATA FOUND, arp_confirmation.unconfirm_update_ps_rec()');
2689: RAISE;
2690:
2691: WHEN OTHERS THEN
2692: arp_util.debug('EXCEPTION: arp_confirmation.unconfirm_update_ps_rec()');
2688: arp_util.debug('EXCEPTION: NO DATA FOUND, arp_confirmation.unconfirm_update_ps_rec()');
2689: RAISE;
2690:
2691: WHEN OTHERS THEN
2692: arp_util.debug('EXCEPTION: arp_confirmation.unconfirm_update_ps_rec()');
2693: RAISE;
2694:
2695: END; -- unconfirm_update_ps_rec()
2696:
2735: ) IS
2736:
2737: BEGIN
2738:
2739: arp_standard.debug('arp_confirmation.validate_in_parameters()+');
2740:
2741: -- make sure none of the arguments is NULL:
2742:
2743: IF (p_cr_id IS NULL) THEN
2759: END IF;
2760:
2761: -- ???? validate dates any further ????
2762:
2763: arp_standard.debug('arp_confirmation.validate_in_parameters()-');
2764:
2765: EXCEPTION
2766: WHEN OTHERS THEN
2767: arp_standard.debug('EXCEPTION: arp_confirmation.validate_in_parameters');
2763: arp_standard.debug('arp_confirmation.validate_in_parameters()-');
2764:
2765: EXCEPTION
2766: WHEN OTHERS THEN
2767: arp_standard.debug('EXCEPTION: arp_confirmation.validate_in_parameters');
2768: RAISE;
2769:
2770: END; -- validate_in_parameters()
2771:
2819: WHERE cust_trx_type_id = p_cust_trx_type_id;
2820:
2821: EXCEPTION
2822: WHEN NO_DATA_FOUND THEN
2823: arp_util.debug('EXCEPTION: NO DATA FOUND, arp_confirmation.get_application_flags()');
2824: RAISE;
2825:
2826: WHEN OTHERS THEN
2827: arp_util.debug('EXCEPTION: arp_confirmation.get_application_flags()');
2823: arp_util.debug('EXCEPTION: NO DATA FOUND, arp_confirmation.get_application_flags()');
2824: RAISE;
2825:
2826: WHEN OTHERS THEN
2827: arp_util.debug('EXCEPTION: arp_confirmation.get_application_flags()');
2828: RAISE;
2829:
2830: END; -- get_application_flags()
2831:
2880: p_max_dates.max_trx_date := GREATEST(p_max_dates.max_trx_date,
2881: p_apply_date);
2882: END; -- handle_max_dates()
2883:
2884: END ARP_CONFIRMATION;