39: l_org_id NUMBER;
40:
41: BEGIN
42: IF PG_DEBUG in ('Y', 'C') THEN
43: arp_util.debug('arp_process_writeoff.submit_report()+');
44: END IF;
45:
46: l_request_id := fnd_global.conc_request_id;
47:
170: , argument99 => ''
171: , argument100 => '');
172: END IF;
173: IF PG_DEBUG in ('Y', 'C') THEN
174: arp_util.debug('arp_process_writeoff.submit_report()-');
175: END IF;
176:
177: EXCEPTION
178: WHEN OTHERS THEN
176:
177: EXCEPTION
178: WHEN OTHERS THEN
179: IF PG_DEBUG in ('Y', 'C') THEN
180: arp_util.debug('arp_process_writeoff.submit_report() '||SQLERRM);
181: END IF;
182:
183: END submit_report;
184: /*========================================================================
350: group by acr.cash_receipt_id,acr.receipt_number,acr.amount,
351: acr.exchange_rate,crh.batch_id,acr.org_id;
352:
353: BEGIN
354: arp_util.debug('arp_process_writeoff.creare_receipt_writeoff()+');
355:
356: arp_util.debug('p_receipt curreny '||p_receipt_currency_code);
357: arp_util.debug('p_unapp_amount '||p_unapp_amount);
358: arp_util.debug('p_unapp_amount_percent '||p_unapp_amount_percent);
352:
353: BEGIN
354: arp_util.debug('arp_process_writeoff.creare_receipt_writeoff()+');
355:
356: arp_util.debug('p_receipt curreny '||p_receipt_currency_code);
357: arp_util.debug('p_unapp_amount '||p_unapp_amount);
358: arp_util.debug('p_unapp_amount_percent '||p_unapp_amount_percent);
359: arp_util.debug('p_receipt_date_from '||p_receipt_date_from);
360: arp_util.debug('p_receipt_date_to '||p_receipt_date_to);
353: BEGIN
354: arp_util.debug('arp_process_writeoff.creare_receipt_writeoff()+');
355:
356: arp_util.debug('p_receipt curreny '||p_receipt_currency_code);
357: arp_util.debug('p_unapp_amount '||p_unapp_amount);
358: arp_util.debug('p_unapp_amount_percent '||p_unapp_amount_percent);
359: arp_util.debug('p_receipt_date_from '||p_receipt_date_from);
360: arp_util.debug('p_receipt_date_to '||p_receipt_date_to);
361: arp_util.debug('p_receipt_gl_date_from '||p_receipt_gl_date_from);
354: arp_util.debug('arp_process_writeoff.creare_receipt_writeoff()+');
355:
356: arp_util.debug('p_receipt curreny '||p_receipt_currency_code);
357: arp_util.debug('p_unapp_amount '||p_unapp_amount);
358: arp_util.debug('p_unapp_amount_percent '||p_unapp_amount_percent);
359: arp_util.debug('p_receipt_date_from '||p_receipt_date_from);
360: arp_util.debug('p_receipt_date_to '||p_receipt_date_to);
361: arp_util.debug('p_receipt_gl_date_from '||p_receipt_gl_date_from);
362: arp_util.debug('p_receipt_gl_date_to '||p_receipt_gl_date_to);
355:
356: arp_util.debug('p_receipt curreny '||p_receipt_currency_code);
357: arp_util.debug('p_unapp_amount '||p_unapp_amount);
358: arp_util.debug('p_unapp_amount_percent '||p_unapp_amount_percent);
359: arp_util.debug('p_receipt_date_from '||p_receipt_date_from);
360: arp_util.debug('p_receipt_date_to '||p_receipt_date_to);
361: arp_util.debug('p_receipt_gl_date_from '||p_receipt_gl_date_from);
362: arp_util.debug('p_receipt_gl_date_to '||p_receipt_gl_date_to);
363: arp_util.debug('p_receipt_method_id '||p_receipt_method_id);
356: arp_util.debug('p_receipt curreny '||p_receipt_currency_code);
357: arp_util.debug('p_unapp_amount '||p_unapp_amount);
358: arp_util.debug('p_unapp_amount_percent '||p_unapp_amount_percent);
359: arp_util.debug('p_receipt_date_from '||p_receipt_date_from);
360: arp_util.debug('p_receipt_date_to '||p_receipt_date_to);
361: arp_util.debug('p_receipt_gl_date_from '||p_receipt_gl_date_from);
362: arp_util.debug('p_receipt_gl_date_to '||p_receipt_gl_date_to);
363: arp_util.debug('p_receipt_method_id '||p_receipt_method_id);
364: arp_util.debug('p_customer_number '||p_customer_number);
357: arp_util.debug('p_unapp_amount '||p_unapp_amount);
358: arp_util.debug('p_unapp_amount_percent '||p_unapp_amount_percent);
359: arp_util.debug('p_receipt_date_from '||p_receipt_date_from);
360: arp_util.debug('p_receipt_date_to '||p_receipt_date_to);
361: arp_util.debug('p_receipt_gl_date_from '||p_receipt_gl_date_from);
362: arp_util.debug('p_receipt_gl_date_to '||p_receipt_gl_date_to);
363: arp_util.debug('p_receipt_method_id '||p_receipt_method_id);
364: arp_util.debug('p_customer_number '||p_customer_number);
365: arp_util.debug('p_receivable_trx_id '||p_receivable_trx_id);
358: arp_util.debug('p_unapp_amount_percent '||p_unapp_amount_percent);
359: arp_util.debug('p_receipt_date_from '||p_receipt_date_from);
360: arp_util.debug('p_receipt_date_to '||p_receipt_date_to);
361: arp_util.debug('p_receipt_gl_date_from '||p_receipt_gl_date_from);
362: arp_util.debug('p_receipt_gl_date_to '||p_receipt_gl_date_to);
363: arp_util.debug('p_receipt_method_id '||p_receipt_method_id);
364: arp_util.debug('p_customer_number '||p_customer_number);
365: arp_util.debug('p_receivable_trx_id '||p_receivable_trx_id);
366: arp_util.debug('p_apply_date '||p_apply_date);
359: arp_util.debug('p_receipt_date_from '||p_receipt_date_from);
360: arp_util.debug('p_receipt_date_to '||p_receipt_date_to);
361: arp_util.debug('p_receipt_gl_date_from '||p_receipt_gl_date_from);
362: arp_util.debug('p_receipt_gl_date_to '||p_receipt_gl_date_to);
363: arp_util.debug('p_receipt_method_id '||p_receipt_method_id);
364: arp_util.debug('p_customer_number '||p_customer_number);
365: arp_util.debug('p_receivable_trx_id '||p_receivable_trx_id);
366: arp_util.debug('p_apply_date '||p_apply_date);
367: arp_util.debug('p_gl_date '||p_gl_date);
360: arp_util.debug('p_receipt_date_to '||p_receipt_date_to);
361: arp_util.debug('p_receipt_gl_date_from '||p_receipt_gl_date_from);
362: arp_util.debug('p_receipt_gl_date_to '||p_receipt_gl_date_to);
363: arp_util.debug('p_receipt_method_id '||p_receipt_method_id);
364: arp_util.debug('p_customer_number '||p_customer_number);
365: arp_util.debug('p_receivable_trx_id '||p_receivable_trx_id);
366: arp_util.debug('p_apply_date '||p_apply_date);
367: arp_util.debug('p_gl_date '||p_gl_date);
368: arp_util.debug('p_receipt_number '||p_receipt_number);
361: arp_util.debug('p_receipt_gl_date_from '||p_receipt_gl_date_from);
362: arp_util.debug('p_receipt_gl_date_to '||p_receipt_gl_date_to);
363: arp_util.debug('p_receipt_method_id '||p_receipt_method_id);
364: arp_util.debug('p_customer_number '||p_customer_number);
365: arp_util.debug('p_receivable_trx_id '||p_receivable_trx_id);
366: arp_util.debug('p_apply_date '||p_apply_date);
367: arp_util.debug('p_gl_date '||p_gl_date);
368: arp_util.debug('p_receipt_number '||p_receipt_number);
369: arp_util.debug('p_comments '||p_comments);
362: arp_util.debug('p_receipt_gl_date_to '||p_receipt_gl_date_to);
363: arp_util.debug('p_receipt_method_id '||p_receipt_method_id);
364: arp_util.debug('p_customer_number '||p_customer_number);
365: arp_util.debug('p_receivable_trx_id '||p_receivable_trx_id);
366: arp_util.debug('p_apply_date '||p_apply_date);
367: arp_util.debug('p_gl_date '||p_gl_date);
368: arp_util.debug('p_receipt_number '||p_receipt_number);
369: arp_util.debug('p_comments '||p_comments);
370:
363: arp_util.debug('p_receipt_method_id '||p_receipt_method_id);
364: arp_util.debug('p_customer_number '||p_customer_number);
365: arp_util.debug('p_receivable_trx_id '||p_receivable_trx_id);
366: arp_util.debug('p_apply_date '||p_apply_date);
367: arp_util.debug('p_gl_date '||p_gl_date);
368: arp_util.debug('p_receipt_number '||p_receipt_number);
369: arp_util.debug('p_comments '||p_comments);
370:
371: --Convert the IN variables
364: arp_util.debug('p_customer_number '||p_customer_number);
365: arp_util.debug('p_receivable_trx_id '||p_receivable_trx_id);
366: arp_util.debug('p_apply_date '||p_apply_date);
367: arp_util.debug('p_gl_date '||p_gl_date);
368: arp_util.debug('p_receipt_number '||p_receipt_number);
369: arp_util.debug('p_comments '||p_comments);
370:
371: --Convert the IN variables
372: l_unapp_amount := FND_NUMBER.CANONICAL_TO_NUMBER(p_unapp_amount);
365: arp_util.debug('p_receivable_trx_id '||p_receivable_trx_id);
366: arp_util.debug('p_apply_date '||p_apply_date);
367: arp_util.debug('p_gl_date '||p_gl_date);
368: arp_util.debug('p_receipt_number '||p_receipt_number);
369: arp_util.debug('p_comments '||p_comments);
370:
371: --Convert the IN variables
372: l_unapp_amount := FND_NUMBER.CANONICAL_TO_NUMBER(p_unapp_amount);
373: l_unapp_amount_percent := FND_NUMBER.CANONICAL_TO_NUMBER(p_unapp_amount_percent);
419: ELSE
420: --Get the customer id for the customer number
421: IF p_customer_number IS NOT NULL
422: THEN
423: l_customer_id := to_number(arp_util.Get_Id( 'CUSTOMER_NUMBER',
424: l_customer_number,
425: l_return_status));
426: IF l_customer_id IS NULL THEN
427: FND_MESSAGE.SET_NAME('AR','AR_RAPI_CUS_NUM_INVALID');
429: l_return_status := FND_API.G_RET_STS_ERROR;
430: END IF;
431: END IF;
432:
433: arp_util.debug('Customer ID '||to_char(l_customer_id));
434:
435: arp_util.debug('User Approval Limits From : '||to_char(l_amount_from)||
436: 'To : '||to_char(l_amount_to));
437:
431: END IF;
432:
433: arp_util.debug('Customer ID '||to_char(l_customer_id));
434:
435: arp_util.debug('User Approval Limits From : '||to_char(l_amount_from)||
436: 'To : '||to_char(l_amount_to));
437:
438:
439: --Get the functional currency
438:
439: --Get the functional currency
440: l_functional_currency := arp_global.functional_currency;
441: l_min_wrt_off_amount := arp_global.sysparam.min_wrtoff_amount;
442: arp_util.debug('Minimum write-off limit :'||to_char(l_min_wrt_off_amount));
443: l_max_wrt_off_amount := arp_global.sysparam.max_wrtoff_amount;
444: arp_util.debug('Maximum write-off limit :'||to_char(l_max_wrt_off_amount));
445:
446: IF l_max_wrt_off_amount IS NULL THEN
440: l_functional_currency := arp_global.functional_currency;
441: l_min_wrt_off_amount := arp_global.sysparam.min_wrtoff_amount;
442: arp_util.debug('Minimum write-off limit :'||to_char(l_min_wrt_off_amount));
443: l_max_wrt_off_amount := arp_global.sysparam.max_wrtoff_amount;
444: arp_util.debug('Maximum write-off limit :'||to_char(l_max_wrt_off_amount));
445:
446: IF l_max_wrt_off_amount IS NULL THEN
447: fnd_message.set_name ('AR','AR_SYSTEM_WR_NO_LIMIT_SET');
448: app_exception.raise_exception;
447: fnd_message.set_name ('AR','AR_SYSTEM_WR_NO_LIMIT_SET');
448: app_exception.raise_exception;
449: END IF;
450:
451: arp_util.debug('Functional Currency :'||l_functional_currency);
452:
453: FOR writeoff_rec IN writeoff_cur(l_receipt_currency_code,
454: l_receipt_date_from,
455: l_receipt_date_to,
579:
580: IF (l_return_status <> FND_API.G_RET_STS_SUCCESS )
581: THEN
582:
583: arp_util.debug('arp_process_writeoff - Failed for Receipt : '||
584: writeoff_rec.receipt_number );
585: arp_util.debug('p_return_status : ' || l_return_status);
586: arp_util.debug('p_msg_count : ' || l_msg_count);
587: arp_util.debug('p_msg_data : ' || l_msg_data);
581: THEN
582:
583: arp_util.debug('arp_process_writeoff - Failed for Receipt : '||
584: writeoff_rec.receipt_number );
585: arp_util.debug('p_return_status : ' || l_return_status);
586: arp_util.debug('p_msg_count : ' || l_msg_count);
587: arp_util.debug('p_msg_data : ' || l_msg_data);
588:
589: --Bug 1788596 - begin changes
582:
583: arp_util.debug('arp_process_writeoff - Failed for Receipt : '||
584: writeoff_rec.receipt_number );
585: arp_util.debug('p_return_status : ' || l_return_status);
586: arp_util.debug('p_msg_count : ' || l_msg_count);
587: arp_util.debug('p_msg_data : ' || l_msg_data);
588:
589: --Bug 1788596 - begin changes
590:
583: arp_util.debug('arp_process_writeoff - Failed for Receipt : '||
584: writeoff_rec.receipt_number );
585: arp_util.debug('p_return_status : ' || l_return_status);
586: arp_util.debug('p_msg_count : ' || l_msg_count);
587: arp_util.debug('p_msg_data : ' || l_msg_data);
588:
589: --Bug 1788596 - begin changes
590:
591: IF l_msg_count = 1 THEN
612:
613: /*5444407*/
614: IF arp_process_writeoff.gt_rec_wrt_off_type.COUNT <> 0 THEN
615: l_cnt:=arp_process_writeoff.gt_rec_wrt_off_type.COUNT;
616: arp_util.debug(' Count of records in PL/SQL table :' || to_char(l_cnt));
617: i := arp_process_writeoff.gt_rec_wrt_off_type.FIRST;
618: WHILE i IS NOT NULL LOOP
619: l_batch_id:=arp_process_writeoff.gt_rec_wrt_off_type(i).batch_id;
620: arp_rw_batches_check_pkg.update_batch_status(l_batch_id);
631: --for 1644863
632: arp_process_writeoff.submit_report(l_receipt_currency_code,l_apply_date,l_gl_date);
633: END IF;
634: END IF;
635: arp_util.debug('Total Number of Receipts written off :'||to_char(l_number_of_records_writtenoff));
636:
637: arp_util.debug('arp_process_writeoff.creare_receipt_writeoff()-');
638:
639: EXCEPTION
633: END IF;
634: END IF;
635: arp_util.debug('Total Number of Receipts written off :'||to_char(l_number_of_records_writtenoff));
636:
637: arp_util.debug('arp_process_writeoff.creare_receipt_writeoff()-');
638:
639: EXCEPTION
640: WHEN OTHERS THEN
641: arp_util.debug('EXCEPTION:arp_process_writeoff.cretre_receipt_writeoff()'||SQLERRM);
637: arp_util.debug('arp_process_writeoff.creare_receipt_writeoff()-');
638:
639: EXCEPTION
640: WHEN OTHERS THEN
641: arp_util.debug('EXCEPTION:arp_process_writeoff.cretre_receipt_writeoff()'||SQLERRM);
642: RAISE;
643:
644: END;
645: /*========================================================================
699: l_amount_from NUMBER;
700: l_functional_currency ar_cash_receipts.currency_code%TYPE;
701:
702: BEGIN
703: arp_util.debug('arp_process_writeoff.unapplied_amount()+');
704: l_functional_currency := arp_global.functional_currency;
705:
706: IF nvl(p_request_id,0) = 0
707: THEN
802:
803: RETURN (l_unapp_amount_balance);
804: END IF;
805:
806: arp_util.debug('arp_process_writeoff.unapplied_amount()+');
807:
808: EXCEPTION
809: WHEN OTHERS THEN
810: arp_util.debug('EXCEPTION :arp_process_writeoff.unapplied_amount()'
806: arp_util.debug('arp_process_writeoff.unapplied_amount()+');
807:
808: EXCEPTION
809: WHEN OTHERS THEN
810: arp_util.debug('EXCEPTION :arp_process_writeoff.unapplied_amount()'
811: ||SQLERRM);
812: RETURN (0);
813: END;
814: /*========================================================================
846:
847: l_applied_amount NUMBER;
848:
849: BEGIN
850: arp_util.debug('arp_process_writeoff.applied_amount()+');
851:
852: IF NVL(p_request_id,0) <> 0
853: THEN
854: --Sum of the applied amount excluding the current one with the request id
888: ar_receivable_applications ra
889: WHERE ra.cash_receipt_id = p_cash_receipt_id;
890: END IF;
891:
892: arp_util.debug('arp_process_writeoff.applied_amount()-');
893: RETURN (l_applied_amount);
894:
895: EXCEPTION
896: WHEN OTHERS THEN
893: RETURN (l_applied_amount);
894:
895: EXCEPTION
896: WHEN OTHERS THEN
897: arp_util.debug('EXCEPTION :arp_process_writeoff.applied_amount()'||SQLERRM);
898: RETURN (0);
899:
900: END;
901:
929:
930: l_on_account_amount NUMBER;
931:
932: BEGIN
933: arp_util.debug('arp_process_writeoff.on_account_amount()+');
934:
935: SELECT
936: SUM(DECODE(ra.status,'ACC', NVL(ra.amount_applied, 0),
937: 0)) on_account_amount
939: FROM
940: ar_receivable_applications ra
941: WHERE ra.cash_receipt_id = p_cash_receipt_id;
942:
943: arp_util.debug('arp_process_writeoff.on_account_amount()-');
944:
945: RETURN (l_on_account_amount);
946: EXCEPTION
947: WHEN OTHERS THEN
944:
945: RETURN (l_on_account_amount);
946: EXCEPTION
947: WHEN OTHERS THEN
948: arp_util.debug('arp_process_writeoff.on_account_amount() '||SQLERRM);
949: RETURN (0);
950:
951: END;
952:
983: l_segment_value varchar2(25);
984:
985: BEGIN
986:
987: arp_util.debug('arp_process_writeoff.balancing_segment()+');
988:
989: SELECT fa_rx_flex_pkg.flex_sql(101,'GL#',chart_of_accounts_id,NULL,
990: 'SELECT','GL_BALANCING')
991: INTO l_balancing_segment
996: FROM gl_code_combinations where code_combination_id=:bind_ccid';
997:
998: EXECUTE IMMEDIATE l_str INTO l_segment_value USING p_code_combination_id;
999:
1000: arp_util.debug('arp_process_writeoff.balancing_segment()-');
1001:
1002: RETURN l_segment_value;
1003:
1004: EXCEPTION
1002: RETURN l_segment_value;
1003:
1004: EXCEPTION
1005: WHEN OTHERS THEN
1006: arp_util.debug('arp_process_writeoff.balancing_segment() '||SQLERRM);
1007: RETURN (NULL);
1008: END;
1009: BEGIN
1010: arp_global.init_global;