1: PACKAGE BODY ar_revenue_management_pvt AS
2: /* $Header: ARXRVMGB.pls 120.100.12010000.3 2008/10/10 15:17:02 mraymond ship $ */
3:
4:
5: /*=======================================================================+
331: AND ct.cust_trx_type_id = ctt.cust_trx_type_id
332: AND ctt.type = 'INV'
333: AND ctl.line_type = 'LINE'
334: AND NVL(ctl.deferral_exclusion_flag, 'N') = 'N'
335: AND ar_revenue_management_pvt.creditworthy
336: (ct.bill_to_customer_id, ct.bill_to_site_use_id)= 0
337: AND NOT EXISTS
338: (SELECT 'errors'
339: FROM ar_trx_errors_gt teg,
393: AND ct.cust_trx_type_id = ctt.cust_trx_type_id
394: AND ctt.type = 'INV'
395: AND ctl.line_type = 'LINE'
396: AND NVL(ctl.deferral_exclusion_flag, 'N') = 'N'
397: AND ar_revenue_management_pvt.creditworthy
398: (ct.bill_to_customer_id, ct.bill_to_site_use_id)= 0
399: AND NOT EXISTS
400: (SELECT 'errors'
401: FROM ra_interface_errors ie
452: AND ct.cust_trx_type_id = ctt.cust_trx_type_id
453: AND ctt.type = 'INV'
454: AND ctl.line_type = 'LINE'
455: AND NVL(ctl.deferral_exclusion_flag, 'N') = 'N'
456: AND ar_revenue_management_pvt.creditworthy
457: (ct.bill_to_customer_id, ct.bill_to_site_use_id)= 0
458: AND NOT EXISTS
459: (SELECT 'prevent duplicate contingency'
460: FROM ar_line_conts alc
1112: FROM ra_customer_trx_lines ctl,
1113: ra_customer_trx ct
1114: WHERE ctl.customer_trx_id = ct.customer_trx_id
1115: AND ctl.request_id = p_request_id
1116: AND ar_revenue_management_pvt.creditworthy
1117: (ct.bill_to_customer_id, ct.bill_to_site_use_id)= 1)
1118: AND EXISTS
1119: (SELECT 'its a CREDIT_CLASSIFICATION'
1120: FROM ar_deferral_reasons dr
1211: FROM ra_customer_trx_lines ctl,
1212: ra_customer_trx ct
1213: WHERE ctl.customer_trx_id = ct.customer_trx_id
1214: AND ctl.customer_trx_line_id = p_customer_trx_line_id
1215: AND ar_revenue_management_pvt.creditworthy
1216: (ct.bill_to_customer_id, ct.bill_to_site_use_id)= 1);
1217:
1218: IF PG_DEBUG IN ('Y','C')
1219: THEN
4440: -- it automatically means Revenue Management would not manage that
4441: -- transaction. So, this subroutine returns TRUE in hard coded
4442: -- fashion.
4443:
4444: arp_standard.debug('ar_revenue_management_pvt.revenue_management_enabled()+');
4445: l_return_value := TRUE;
4446:
4447: arp_standard.debug('ar_revenue_management_pvt.revenue_management_enabled()-');
4448: RETURN l_return_value;
4443:
4444: arp_standard.debug('ar_revenue_management_pvt.revenue_management_enabled()+');
4445: l_return_value := TRUE;
4446:
4447: arp_standard.debug('ar_revenue_management_pvt.revenue_management_enabled()-');
4448: RETURN l_return_value;
4449:
4450: EXCEPTION
4451:
4514:
4515: BEGIN
4516:
4517: IF pg_debug IN ('Y', 'C') THEN
4518: arp_standard.debug('ar_revenue_management_pvt.line_collectible()+');
4519: arp_standard.debug('** line_collectible parameters **');
4520: arp_standard.debug(' p_customer_trx_id : ' || p_customer_trx_id);
4521: arp_standard.debug(' p_customer_trx_line_id : ' ||
4522: p_customer_trx_line_id);
4535:
4536: CLOSE c;
4537:
4538: IF pg_debug IN ('Y', 'C') THEN
4539: arp_standard.debug('ar_revenue_management_pvt.line_collectible()-');
4540: END IF;
4541:
4542: RETURN l_return_value;
4543:
4606:
4607: BEGIN
4608:
4609: IF pg_debug IN ('Y', 'C') THEN
4610: arp_standard.debug('ar_revenue_management_pvt.txn_collectible()+');
4611: arp_standard.debug('** txn_collectible parameters **');
4612: arp_standard.debug(' p_customer_trx_id : ' || p_customer_trx_id);
4613: END IF;
4614:
4617: l_return_value := c%NOTFOUND;
4618: CLOSE c;
4619:
4620: IF pg_debug IN ('Y', 'C') THEN
4621: arp_standard.debug('ar_revenue_management_pvt.txn_collectible()-');
4622: END IF;
4623:
4624: RETURN l_return_value;
4625:
4672:
4673: BEGIN
4674:
4675: IF pg_debug IN ('Y', 'C') THEN
4676: arp_standard.debug('ar_revenue_management_pvt.delete_failed_rows()+');
4677: arp_standard.debug('** delete_failed_rows parameters **');
4678: arp_standard.debug(' p_request_id : ' || p_request_id);
4679: END IF;
4680:
4684: DELETE FROM ar_line_conts
4685: WHERE request_id = p_request_id;
4686:
4687: IF pg_debug IN ('Y', 'C') THEN
4688: arp_standard.debug('ar_revenue_management_pvt.delete_failed_rows()-');
4689: END IF;
4690:
4691: EXCEPTION
4692:
4738: PROCEDURE delete_rejected_rows (p_request_id IN NUMBER) IS
4739:
4740: BEGIN
4741:
4742: debug('ar_revenue_management_pvt.delete_rejected_rows()+');
4743: debug('** delete_rejected_rows parameters **');
4744: debug(' p_request_id : ' || p_request_id);
4745:
4746: ---------------------------------------------------------------------------
4785: AND il.request_id = p_request_id
4786: );
4787:
4788: debug('lines deleted : ' || SQL%ROWCOUNT);
4789: debug('ar_revenue_management_pvt.delete_rejected_rows()-');
4790:
4791: EXCEPTION
4792:
4793: WHEN NO_DATA_FOUND THEN
4866: | do not have an acceptance problem.
4867: +------------------------------------------------------------------------*/
4868:
4869: IF pg_debug IN ('Y', 'C') THEN
4870: arp_standard.debug('ar_revenue_management_pvt.acceptance_allowed()+');
4871: arp_standard.debug('** acceptance_allowed parameters **');
4872: arp_standard.debug(' p_customer_trx_id : ' || p_customer_trx_id);
4873: arp_standard.debug(' p_customer_trx_line_id : ' ||
4874: p_customer_trx_line_id);
4900: END IF;
4901:
4902: IF pg_debug IN ('Y', 'C') THEN
4903: arp_standard.debug('Acceptance Allowed? : ' || l_return_value);
4904: arp_standard.debug('ar_revenue_management_pvt.acceptance_allowed()-');
4905: END IF;
4906:
4907: RETURN l_return_value;
4908:
4969:
4970: BEGIN
4971:
4972: IF pg_debug IN ('Y', 'C') THEN
4973: arp_standard.debug('ar_revenue_management_pvt.cash_based()+');
4974: arp_standard.debug('** cash_based parameters **');
4975: arp_standard.debug(' p_customer_trx_id : ' || p_customer_trx_id);
4976: END IF;
4977:
4993:
4994: CLOSE contingencies;
4995:
4996: IF pg_debug IN ('Y', 'C') THEN
4997: arp_standard.debug('ar_revenue_management_pvt.cash_based()-');
4998: END IF;
4999:
5000: EXCEPTION
5001:
5306:
5307: BEGIN
5308:
5309: IF pg_debug IN ('Y', 'C') THEN
5310: arp_standard.debug('ar_revenue_management_pvt.revenue_synchronizer +');
5311: arp_standard.debug('** revenue_synchronizer parameters **');
5312: arp_standard.debug(' p_mode : ' || p_mode);
5313: arp_standard.debug(' p_customer_trx_id : ' || p_customer_trx_id);
5314: arp_standard.debug(' p_customer_trx_line_id : ' ||
5665:
5666: END IF;
5667:
5668: IF pg_debug IN ('Y', 'C') THEN
5669: arp_standard.debug('ar_revenue_management_pvt.revenue_synchronizer()-');
5670: END IF;
5671:
5672: EXCEPTION
5673:
5777: l_request_id NUMBER;
5778:
5779: BEGIN
5780:
5781: debug('ar_revenue_management_pvt.periodic_sweeper +');
5782:
5783: retcode := SUCCESS;
5784:
5785: l_request_id := fnd_global.conc_request_id;
5983: END LOOP; -- cur_orgs Bug4675710
5984:
5985: retcode := SUCCESS;
5986:
5987: debug('ar_revenue_management_pvt.periodic_sweeper -');
5988:
5989: EXCEPTION
5990:
5991: WHEN NO_DATA_FOUND THEN
6220:
6221: BEGIN
6222:
6223: IF pg_debug IN ('Y', 'C') THEN
6224: arp_standard.debug('ar_revenue_management_pvt.receipt_analyzer +');
6225: END IF;
6226:
6227: get_receipt_parameters (
6228: p_mode => p_mode,
6766:
6767: END LOOP; -- (rev_lines => bulk collect)
6768:
6769: IF pg_debug IN ('Y', 'C') THEN
6770: arp_standard.debug('ar_revenue_management_pvt.receipt_analyzer()-');
6771: END IF;
6772:
6773: EXCEPTION
6774:
6853: l_gl_date_tbl date_table;
6854:
6855: BEGIN
6856:
6857: debug('ar_revenue_management_pvt.receipt_analyzer()+ ');
6858: debug(' p_request_id : ' || p_request_id);
6859:
6860: OPEN receipts;
6861: LOOP
6925: END LOOP;
6926:
6927: CLOSE receipts;
6928:
6929: debug('ar_revenue_management_pvt.receipt_analyzer()- ');
6930:
6931: EXCEPTION
6932:
6933: WHEN NO_DATA_FOUND THEN
6982: l_line_verdict NUMBER;
6983:
6984: BEGIN
6985:
6986: debug('ar_revenue_management_pvt.line_collectibility()+');
6987: debug('** line_collectibility parameters **');
6988: debug(' p_customer_trx_id : ' || p_customer_trx_id);
6989: debug(' p_customer_trx_line_id : ' || p_customer_trx_line_id);
6990:
6995: IF (l_line_verdict = not_analyzed) THEN
6996: RETURN collect;
6997: END IF;
6998:
6999: debug('ar_revenue_management_pvt.line_collectibility()-');
7000:
7001: RETURN l_line_verdict;
7002:
7003: EXCEPTION
7073: BEGIN
7074:
7075: g_source := p_source;
7076:
7077: debug('ar_revenue_management_pvt.line_collectibility()+');
7078: debug(' p_request_id : ' || p_request_id);
7079: debug(' p_source : ' || p_source);
7080: debug(' p_customer_trx_line_id : ' || p_customer_trx_line_id);
7081:
7119: debug('Verdict: ' || revline.verdict);
7120: l_line_verdicts_tbl(revline.customer_trx_line_id) := revline.verdict;
7121: END LOOP;
7122:
7123: debug('ar_revenue_management_pvt.line_collectibility()-');
7124:
7125: RETURN l_line_verdicts_tbl;
7126:
7127: EXCEPTION
7164:
7165: EXCEPTION
7166:
7167: WHEN NO_DATA_FOUND THEN
7168: arp_standard.debug(' ar_revenue_management_pvt.initialize');
7169: arp_standard.debug(sqlerrm);
7170: RAISE;
7171:
7172: WHEN OTHERS THEN
7169: arp_standard.debug(sqlerrm);
7170: RAISE;
7171:
7172: WHEN OTHERS THEN
7173: arp_standard.debug(' ar_revenue_management_pvt.initialize');
7174: arp_standard.debug(sqlerrm);
7175: RAISE;
7176:
7177: END ar_revenue_management_pvt;
7173: arp_standard.debug(' ar_revenue_management_pvt.initialize');
7174: arp_standard.debug(sqlerrm);
7175: RAISE;
7176:
7177: END ar_revenue_management_pvt;