39: BEGIN
40: IF pg_debug = 'Y' THEN
41: debug ('ar_invoice_utils.validate_gdf(+)' );
42: END IF;
43: x_return_status := FND_API.G_RET_STS_SUCCESS;
44:
45: l_return_code := jg_zz_invoice_create.validate_gdff
46: (p_request_id => p_request_id);
47:
50: END IF;
51: EXCEPTION
52: WHEN OTHERS THEN
53: x_errmsg := 'error in ar_invoice_utils.validate_gdf ' || sqlerrm;
54: x_return_status := fnd_api.g_ret_sts_unexp_error;
55: RETURN;
56: END;
57:
58: -- Bug # 3099975
68: IF pg_debug = 'Y' THEN
69: debug ('ar_invoice_utils.validate_remit_to_address_id(+)' );
70: END IF;
71:
72: x_return_status := FND_API.G_RET_STS_SUCCESS;
73:
74: INSERT INTO ar_trx_errors_gt (
75: trx_header_id,
76: error_message,
92: EXCEPTION
93: WHEN OTHERS THEN
94: x_errmsg := 'error in ar_invoice_utils.validate_remit_to_address_id '
95: || sqlerrm;
96: x_return_status := fnd_api.g_ret_sts_unexp_error;
97: RETURN;
98:
99: END validate_remit_to_address_id;
100:
108: IF pg_debug = 'Y' THEN
109: debug ('ar_invoice_utils.validate_trx_class(+)' );
110: END IF;
111:
112: x_return_status := FND_API.G_RET_STS_SUCCESS;
113:
114: INSERT INTO ar_trx_errors_gt (
115: trx_header_id,
116: error_message,
128:
129: EXCEPTION
130: WHEN OTHERS THEN
131: x_errmsg := 'Error in ar_invoice_utils.validate_trx_class '||sqlerrm;
132: x_return_status := fnd_api.g_ret_sts_unexp_error;
133: RETURN;
134:
135: END validate_trx_class;
136:
144: IF pg_debug = 'Y' THEN
145: debug ('ar_invoice_utils.validate_ship_via(+)' );
146: END IF;
147:
148: x_return_status := FND_API.G_RET_STS_SUCCESS;
149:
150: INSERT INTO ar_trx_errors_gt (
151: trx_header_id,
152: error_message,
169:
170: EXCEPTION
171: WHEN OTHERS THEN
172: x_errmsg := 'error in ar_invoice_utils.validate_ship_via '|| sqlerrm;
173: x_return_status := fnd_api.g_ret_sts_unexp_error;
174: RETURN;
175:
176: END validate_ship_via;
177:
185: IF pg_debug = 'Y' THEN
186: debug ('ar_invoice_utils.validate_fob_point(+)' );
187: END IF;
188:
189: x_return_status := FND_API.G_RET_STS_SUCCESS;
190:
191: INSERT INTO ar_trx_errors_gt (
192: trx_header_id,
193: error_message,
211:
212: EXCEPTION
213: WHEN OTHERS THEN
214: x_errmsg := 'error in ar_invoice_utils.validate_fob_point '|| sqlerrm;
215: x_return_status := fnd_api.g_ret_sts_unexp_error;
216: RETURN;
217:
218: END validate_fob_point;
219:
227: IF pg_debug = 'Y' THEN
228: debug ('ar_invoice_utils.validate_ussgl_code(+)' );
229: END IF;
230:
231: x_return_status := FND_API.G_RET_STS_SUCCESS;
232:
233: INSERT INTO ar_trx_errors_gt (
234: trx_header_id,
235: error_message,
254:
255: EXCEPTION
256: WHEN OTHERS THEN
257: x_errmsg := 'error in ar_invoice_utils.validate_ussgl_code '|| sqlerrm;
258: x_return_status := fnd_api.g_ret_sts_unexp_error;
259: RETURN;
260:
261: END validate_ussgl_code;
262:
270: IF pg_debug = 'Y' THEN
271: debug ('ar_invoice_utils.validate_payment_method(+)' );
272: END IF;
273:
274: x_return_status := FND_API.G_RET_STS_SUCCESS;
275:
276: INSERT INTO ar_trx_errors_gt (
277: trx_header_id,
278: error_message,
365: EXCEPTION
366: WHEN OTHERS THEN
367: x_errmsg := 'error in ar_invoice_utils.validate_payment_method '
368: || sqlerrm;
369: x_return_status := fnd_api.g_ret_sts_unexp_error;
370: RETURN;
371:
372: END validate_payment_method;
373:
381: IF pg_debug = 'Y' THEN
382: debug ('ar_invoice_utils.validate_legal_entity(+)' );
383: END IF;
384:
385: x_return_status := FND_API.G_RET_STS_SUCCESS;
386:
387: INSERT INTO ar_trx_errors_gt (
388: trx_header_id,
389: error_message,
406: EXCEPTION
407: WHEN OTHERS THEN
408: x_errmsg := 'error in ar_invoice_utils.validate_legal_entity '
409: || sqlerrm;
410: x_return_status := fnd_api.g_ret_sts_unexp_error;
411: RETURN;
412:
413: END validate_legal_entity;
414:
421: IF pg_debug = 'Y' THEN
422: debug ('ar_invoice_utils.validate_cust_bank_account_id(+)' );
423: END IF;
424:
425: x_return_status := FND_API.G_RET_STS_SUCCESS;
426: /* payment uptake removed the validation for cust_bank_account_id */
427:
428: END validate_cust_bank_account_id;
429:
438: IF pg_debug = 'Y' THEN
439: debug ('ar_invoice_utils.validate_paying_customer_id(+)' );
440: END IF;
441:
442: x_return_status := FND_API.G_RET_STS_SUCCESS;
443: -- Removed the prospect join as per the bug 3310138
444: IF p_trx_system_param_rec.pay_unrelated_invoices_flag = 'Y'
445: THEN
446: INSERT INTO ar_trx_errors_gt (
499: EXCEPTION
500: WHEN OTHERS THEN
501: x_errmsg := 'error in ar_invoice_utils.validate_paying_customer_id '||
502: sqlerrm;
503: x_return_status := fnd_api.g_ret_sts_unexp_error;
504: RETURN;
505:
506: END validate_paying_customer_id;
507:
516: IF pg_debug = 'Y' THEN
517: debug ('ar_invoice_utils.validate_paying_site_use_id(+)' );
518: END IF;
519:
520: x_return_status := FND_API.G_RET_STS_SUCCESS;
521:
522: INSERT INTO ar_trx_errors_gt (
523: trx_header_id,
524: error_message,
546: EXCEPTION
547: WHEN OTHERS THEN
548: x_errmsg := 'error in ar_invoice_utils.validate_paying_site_use_id '||
549: sqlerrm;
550: x_return_status := fnd_api.g_ret_sts_unexp_error;
551: RETURN;
552:
553: END validate_paying_site_use_id;
554:
562: IF pg_debug = 'Y' THEN
563: debug ('ar_invoice_utils.validate_sold_to_customer_id(+)' );
564: END IF;
565:
566: x_return_status := FND_API.G_RET_STS_SUCCESS;
567:
568: INSERT INTO ar_trx_errors_gt (
569: trx_header_id,
570: error_message,
587: EXCEPTION
588: WHEN OTHERS THEN
589: x_errmsg := 'error in ar_invoice_utils.validate_sold_to_customer_id '||
590: sqlerrm;
591: x_return_status := fnd_api.g_ret_sts_unexp_error;
592: RETURN;
593:
594: END validate_sold_to_customer_id;
595:
603: IF pg_debug = 'Y' THEN
604: debug ('ar_invoice_utils.validate_ship_to_customer_name(+)' );
605: END IF;
606:
607: x_return_status := FND_API.G_RET_STS_SUCCESS;
608:
609: INSERT INTO ar_trx_errors_gt (
610: trx_header_id,
611: error_message,
629: EXCEPTION
630: WHEN OTHERS THEN
631: x_errmsg := 'error in ar_invoice_utils.validate_ship_to_customer_name '
632: || sqlerrm;
633: x_return_status := fnd_api.g_ret_sts_unexp_error;
634: RETURN;
635:
636: END validate_ship_to_customer_name;
637:
645: IF pg_debug = 'Y' THEN
646: debug ('ar_invoice_utils.validate_ship_to_cust_number(+)' );
647: END IF;
648:
649: x_return_status := FND_API.G_RET_STS_SUCCESS;
650:
651: INSERT INTO ar_trx_errors_gt (
652: trx_header_id,
653: error_message,
669: EXCEPTION
670: WHEN OTHERS THEN
671: x_errmsg := 'error in ar_invoice_utils.validate_ship_to_cust_number '
672: || sqlerrm;
673: x_return_status := fnd_api.g_ret_sts_unexp_error;
674: RETURN;
675:
676: END validate_ship_to_cust_number;
677:
685: IF pg_debug = 'Y' THEN
686: debug ('ar_invoice_utils.validate_bill_to_customer_name(+)' );
687: END IF;
688:
689: x_return_status := FND_API.G_RET_STS_SUCCESS;
690:
691: INSERT INTO ar_trx_errors_gt (
692: trx_header_id,
693: error_message,
711: EXCEPTION
712: WHEN OTHERS THEN
713: x_errmsg := 'error in ar_invoice_utils.validate_bill_to_customer_name '
714: || sqlerrm;
715: x_return_status := fnd_api.g_ret_sts_unexp_error;
716: RETURN;
717:
718: END validate_bill_to_customer_name;
719:
727: IF pg_debug = 'Y' THEN
728: debug ('ar_invoice_utils.validate_bill_to_cust_number(+)' );
729: END IF;
730:
731: x_return_status := FND_API.G_RET_STS_SUCCESS;
732:
733: INSERT INTO ar_trx_errors_gt (
734: trx_header_id,
735: error_message,
751: EXCEPTION
752: WHEN OTHERS THEN
753: x_errmsg := 'error in ar_invoice_utils.validate_bill_to_cust_number '
754: || sqlerrm;
755: x_return_status := fnd_api.g_ret_sts_unexp_error;
756: RETURN;
757:
758: END validate_bill_to_cust_number;
759:
767: IF pg_debug = 'Y' THEN
768: debug ('ar_invoice_utils.validate_bill_to_contact_id(+)' );
769: END IF;
770:
771: x_return_status := FND_API.G_RET_STS_SUCCESS;
772:
773: INSERT INTO ar_trx_errors_gt (
774: trx_header_id,
775: error_message,
806: EXCEPTION
807: WHEN OTHERS THEN
808: x_errmsg := 'error in ar_invoice_utils.validate_bill_to_contact_id '||
809: sqlerrm;
810: x_return_status := fnd_api.g_ret_sts_unexp_error;
811: RETURN;
812:
813: END validate_bill_to_contact_id;
814:
822: IF pg_debug = 'Y' THEN
823: debug ('ar_invoice_utils.validate_ship_to_contact_id(+)' );
824: END IF;
825:
826: x_return_status := FND_API.G_RET_STS_SUCCESS;
827:
828: INSERT INTO ar_trx_errors_gt (
829: trx_header_id,
830: error_message,
861: EXCEPTION
862: WHEN OTHERS THEN
863: x_errmsg := 'error in ar_invoice_utils.validate_ship_to_contact_id '||
864: sqlerrm;
865: x_return_status := fnd_api.g_ret_sts_unexp_error;
866: RETURN;
867:
868: END validate_ship_to_contact_id;
869:
877: IF pg_debug = 'Y' THEN
878: debug ('ar_invoice_utils.validate_exchange_rate_type(+)' );
879: END IF;
880:
881: x_return_status := FND_API.G_RET_STS_SUCCESS;
882:
883: INSERT INTO ar_trx_errors_gt (
884: trx_header_id,
885: error_message,
902: EXCEPTION
903: WHEN OTHERS THEN
904: x_errmsg := 'error in ar_invoice_utils.validate_exchange_rate_type '||
905: sqlerrm;
906: x_return_status := fnd_api.g_ret_sts_unexp_error;
907: RETURN;
908:
909: END validate_exchange_rate_type;
910:
1244:
1245: EXCEPTION
1246: WHEN OTHERS THEN
1247: x_errmsg := 'ar_invoice_utils.validate_dependent_parameters: '||sqlerrm;
1248: x_return_status := FND_API.G_RET_STS_UNEXP_ERROR;
1249: RETURN;
1250:
1251: END validate_dependent_parameters;
1252:
1260: IF pg_debug = 'Y' THEN
1261: debug ('ar_invoice_utils.validate_master_detail(+)' );
1262: END IF;
1263:
1264: x_return_status := FND_API.G_RET_STS_SUCCESS;
1265:
1266: -- Every header level row should have atleast one line level row.
1267: INSERT INTO ar_trx_errors_gt (
1268: trx_header_id,
1356: EXCEPTION
1357: WHEN OTHERS THEN
1358: x_errmsg := 'error in ar_invoice_utils.validate_master_detail '
1359: || sqlerrm;
1360: x_return_status := fnd_api.g_ret_sts_unexp_error;
1361: RETURN;
1362:
1363: END validate_master_detail;
1364:
1376: THEN
1377: debug ('AR_INVOICE_UTILS.validate_trx_number(+)' );
1378: END IF;
1379:
1380: x_return_status := FND_API.G_RET_STS_SUCCESS;
1381:
1382: INSERT INTO ar_trx_errors_gt (
1383: trx_header_id,
1384: error_message,
1430: END IF;
1431: EXCEPTION
1432: WHEN OTHERS THEN
1433: x_errmsg := 'Error in AR_INVOICE_UTILS.validate_trx_number '||sqlerrm;
1434: x_return_status := FND_API.G_RET_STS_UNEXP_ERROR;
1435: RETURN;
1436: END;
1437:
1438:
1446: THEN
1447: debug ('AR_INVOICE_UTILS.validate_batch_source(+)' );
1448: END IF;
1449:
1450: x_return_status := FND_API.G_RET_STS_SUCCESS;
1451:
1452: BEGIN
1453: INSERT INTO ar_trx_errors_gt (
1454: trx_header_id,
1476:
1477: EXCEPTION
1478: WHEN OTHERS THEN
1479: x_errmsg := 'Error in AR_INVOICE_UTILS.validate_batch_source '||sqlerrm;
1480: x_return_status := FND_API.G_RET_STS_UNEXP_ERROR;
1481: RETURN;
1482:
1483: END;
1484:
1493: THEN
1494: debug ('AR_INVOICE_UTILS.validate_currency(+)' );
1495: END IF;
1496:
1497: x_return_status := FND_API.G_RET_STS_SUCCESS;
1498:
1499: INSERT INTO ar_trx_errors_gt
1500: ( trx_header_id,
1501: error_message,
1518: END IF;
1519: EXCEPTION
1520: WHEN OTHERS THEN
1521: x_errmsg := 'Error in AR_INVOICE_UTILS.validate_currency '||sqlerrm;
1522: x_return_status := FND_API.G_RET_STS_UNEXP_ERROR;
1523: RETURN;
1524: END;
1525:
1526: PROCEDURE validate_transaction_type
1532: THEN
1533: debug ('AR_INVOICE_UTILS.validate_transaction_type(+)' );
1534: END IF;
1535:
1536: x_return_status := FND_API.G_RET_STS_SUCCESS;
1537: INSERT INTO ar_trx_errors_gt (
1538: trx_header_id,
1539: error_message,
1540: invalid_value)
1568:
1569: EXCEPTION
1570: WHEN OTHERS THEN
1571: x_errmsg := 'Error in AR_INVOICE_UTILS.validate_transaction_type '||sqlerrm;
1572: x_return_status := FND_API.G_RET_STS_UNEXP_ERROR;
1573: RETURN;
1574:
1575: END;
1576:
1582: THEN
1583: debug ('AR_INVOICE_UTILS.validate_bill_to_customer_id(+)' );
1584: END IF;
1585:
1586: x_return_status := FND_API.G_RET_STS_SUCCESS;
1587:
1588: INSERT INTO ar_trx_errors_gt (
1589: trx_header_id,
1590: error_message,
1606: END IF;
1607: EXCEPTION
1608: WHEN OTHERS THEN
1609: x_errmsg := 'Error in AR_INVOICE_UTILS.validate_bill_to_customer_id '||sqlerrm;
1610: x_return_status := FND_API.G_RET_STS_UNEXP_ERROR;
1611: RETURN;
1612:
1613: END;
1614:
1620: IF pg_debug = 'Y'
1621: THEN
1622: debug ('AR_INVOICE_UTILS.validate_bill_to_site_use_id(+)' );
1623: END IF;
1624: x_return_status := FND_API.G_RET_STS_SUCCESS;
1625:
1626: INSERT INTO ar_trx_errors_gt (
1627: trx_header_id,
1628: error_message,
1650: EXCEPTION
1651: WHEN OTHERS THEN
1652: x_errmsg := 'Error in AR_INVOICE_UTILS.validate_bill_to_site_use_id '
1653: ||sqlerrm;
1654: x_return_status := FND_API.G_RET_STS_UNEXP_ERROR;
1655: RETURN;
1656:
1657: END validate_bill_to_site_use_id;
1658:
1666: THEN
1667: debug ('AR_INVOICE_UTILS.validate_bill_to_address_id(+)' );
1668: END IF;
1669:
1670: x_return_status := FND_API.G_RET_STS_SUCCESS;
1671:
1672: INSERT INTO ar_trx_errors_gt (
1673: trx_header_id,
1674: error_message,
1703: END IF;
1704: EXCEPTION
1705: WHEN OTHERS THEN
1706: x_errmsg := 'Error in AR_INVOICE_UTILS.validate_bill_to_address_id '||sqlerrm;
1707: x_return_status := FND_API.G_RET_STS_UNEXP_ERROR;
1708: RETURN;
1709:
1710: END;
1711:
1721: THEN
1722: debug ('AR_INVOICE_UTILS.validate_ship_to_customer_id(+)' );
1723: END IF;
1724:
1725: x_return_status := FND_API.G_RET_STS_SUCCESS;
1726:
1727: INSERT INTO ar_trx_errors_gt (
1728: trx_header_id,
1729: error_message,
1748: EXCEPTION
1749: WHEN OTHERS THEN
1750: x_errmsg := 'Error in AR_INVOICE_UTILS.validate_ship_to_customer_id '
1751: ||sqlerrm;
1752: x_return_status := FND_API.G_RET_STS_UNEXP_ERROR;
1753: RETURN;
1754: END;
1755:
1756: PROCEDURE validate_ship_to_site_use_id (
1761: THEN
1762: debug ('AR_INVOICE_UTILS.validate_ship_to_site_use_id(+)' );
1763: END IF;
1764:
1765: x_return_status := FND_API.G_RET_STS_SUCCESS;
1766:
1767: INSERT INTO ar_trx_errors_gt (
1768: trx_header_id,
1769: error_message,
1800: END IF;
1801: EXCEPTION
1802: WHEN OTHERS THEN
1803: x_errmsg := 'Error in AR_INVOICE_UTILS.validate_ship_to_site_use_id '||sqlerrm;
1804: x_return_status := FND_API.G_RET_STS_UNEXP_ERROR;
1805: RETURN;
1806: END;
1807:
1808: PROCEDURE validate_ship_to_location (
1813: THEN
1814: debug ('AR_INVOICE_UTILS.validate_ship_to_location(+)' );
1815: END IF;
1816:
1817: x_return_status := FND_API.G_RET_STS_SUCCESS;
1818:
1819: INSERT INTO ar_trx_errors_gt (
1820: trx_header_id,
1821: error_message,
1851: END IF;
1852: EXCEPTION
1853: WHEN OTHERS THEN
1854: x_errmsg := 'Error in AR_INVOICE_UTILS.validate_ship_to_location '||sqlerrm;
1855: x_return_status := FND_API.G_RET_STS_UNEXP_ERROR;
1856: RETURN;
1857: END;
1858:
1859:
1866: IF pg_debug = 'Y' THEN
1867: debug ('AR_INVOICE_UTILS.populate_ship_to_site_use_id (+)' );
1868: END IF;
1869:
1870: x_return_status := FND_API.G_RET_STS_SUCCESS;
1871:
1872: -- We are here to populate ship_to_site_use_id column. We should only
1873: -- do it for rows where it is not already populated. Moreover, first we
1874: -- should see if ship_to_address_id is populated then we should derive the
1907: EXCEPTION
1908: WHEN OTHERS THEN
1909: x_errmsg := 'Error in AR_INVOICE_UTILS.populate_ship_to_site_use_id '
1910: ||sqlerrm;
1911: x_return_status := FND_API.G_RET_STS_UNEXP_ERROR;
1912: RETURN;
1913:
1914: END populate_ship_to_site_use_id;
1915:
1930: populate_ship_to_site_use_id(
1931: x_errmsg => x_errmsg,
1932: x_return_status => x_return_status);
1933:
1934: x_return_status := FND_API.G_RET_STS_SUCCESS;
1935:
1936: INSERT INTO ar_trx_errors_gt (
1937: trx_header_id,
1938: error_message,
1971:
1972: EXCEPTION
1973: WHEN OTHERS THEN
1974: x_errmsg := 'Error in AR_INVOICE_UTILS.validate_ship_to_address '||sqlerrm;
1975: x_return_status := FND_API.G_RET_STS_UNEXP_ERROR;
1976: RETURN;
1977: END validate_ship_to_address;
1978:
1979:
1985: IF pg_debug = 'Y'
1986: THEN
1987: debug ('AR_INVOICE_UTILS.validate_terms(+)' );
1988: END IF;
1989: x_return_status := FND_API.G_RET_STS_SUCCESS;
1990:
1991: INSERT INTO ar_trx_errors_gt (
1992: trx_header_id,
1993: error_message,
2043: END IF;
2044: EXCEPTION
2045: WHEN OTHERS THEN
2046: x_errmsg := 'Error in AR_INVOICE_UTILS.validate_terms '||sqlerrm;
2047: x_return_status := FND_API.G_RET_STS_UNEXP_ERROR;
2048: RETURN;
2049:
2050: END validate_terms;
2051:
2062: THEN
2063: debug ('AR_INVOICE_UTILS.validate_salesrep(+)' );
2064: END IF;
2065:
2066: x_return_status := FND_API.G_RET_STS_SUCCESS;
2067:
2068: /*
2069: INSERT INTO ar_trx_errors_gt (
2070: trx_header_id,
2145:
2146: EXCEPTION
2147: WHEN OTHERS THEN
2148: x_errmsg := 'Error in AR_INVOICE_UTILS.validate_salesrep '||sqlerrm;
2149: x_return_status := FND_API.G_RET_STS_UNEXP_ERROR;
2150: RETURN;
2151:
2152: END validate_salesrep;
2153:
2160: THEN
2161: debug ('AR_INVOICE_UTILS.validate_invoicing_rule_id(+)' );
2162: END IF;
2163:
2164: x_return_status := FND_API.G_RET_STS_SUCCESS;
2165:
2166: -- in case of debit memo invoice rule id is not required
2167: -- in case of credit memo invoice rule id is not required ER 5869149
2168: INSERT INTO ar_trx_errors_gt (
2198: EXCEPTION
2199: WHEN OTHERS THEN
2200: x_errmsg := 'Error in AR_INVOICE_UTILS.validate_invoicing_rule_id '
2201: ||sqlerrm;
2202: x_return_status := FND_API.G_RET_STS_UNEXP_ERROR;
2203: RETURN;
2204:
2205: END validate_invoicing_rule_id;
2206:
2215: THEN
2216: debug ('AR_INVOICE_UTILS.validate_print_option(+)' );
2217: END IF;
2218:
2219: x_return_status := FND_API.G_RET_STS_SUCCESS;
2220:
2221: INSERT INTO ar_trx_errors_gt (
2222: trx_header_id,
2223: error_message,
2236: EXCEPTION
2237: WHEN OTHERS THEN
2238: x_errmsg := 'Error in AR_INVOICE_UTILS.validate_print_option '
2239: ||sqlerrm;
2240: x_return_status := FND_API.G_RET_STS_UNEXP_ERROR;
2241: RETURN;
2242:
2243: END validate_print_option;
2244:
2254: THEN
2255: debug ('AR_INVOICE_UTILS.populate_printing_pendings(+)' );
2256: END IF;
2257:
2258: x_return_status := FND_API.G_RET_STS_SUCCESS;
2259:
2260: update ar_trx_header_gt gt
2261: set gt.printing_pending=decode(gt.PRINTING_OPTION,'PRI','Y','N');
2262:
2267:
2268: EXCEPTION
2269: WHEN OTHERS THEN
2270: x_errmsg := 'Error in AR_INVOICE_UTILS.populate_printing_pending '||sqlerrm;
2271: x_return_status := FND_API.G_RET_STS_UNEXP_ERROR;
2272: RETURN;
2273:
2274: End populate_printing_pending;
2275:
2284: THEN
2285: debug ('AR_INVOICE_UTILS.validate_default_tax(+)' );
2286: END IF;
2287:
2288: x_return_status := FND_API.G_RET_STS_SUCCESS;
2289: BEGIN
2290: /* 4257557 - changed to zx_product_options */
2291: select nvl(tax_use_customer_exempt_flag,'N')
2292: into l_tax_use_exempt_flag
2328:
2329: EXCEPTION
2330: WHEN OTHERS THEN
2331: x_errmsg := 'Error in AR_INVOICE_UTILS.validate_default_tax '||sqlerrm;
2332: x_return_status := FND_API.G_RET_STS_UNEXP_ERROR;
2333: RETURN;
2334:
2335: END validate_default_tax;
2336:
2344: THEN
2345: debug ('AR_INVOICE_UTILS.validate_Status(+)' );
2346: END IF;
2347:
2348: x_return_status := FND_API.G_RET_STS_SUCCESS;
2349:
2350: INSERT INTO ar_trx_errors_gt (
2351: trx_header_id,
2352: error_message,
2365:
2366: EXCEPTION
2367: WHEN OTHERS THEN
2368: x_errmsg := 'Error in AR_INVOICE_UTILS.validate_Status '||sqlerrm;
2369: x_return_status := FND_API.G_RET_STS_UNEXP_ERROR;
2370: RETURN;
2371:
2372: END validate_status;
2373:
2381: THEN
2382: debug ('AR_INVOICE_UTILS.validate_finance_charges(+)' );
2383: END IF;
2384:
2385: x_return_status := FND_API.G_RET_STS_SUCCESS;
2386:
2387: INSERT INTO ar_trx_errors_gt (
2388: trx_header_id,
2389: error_message,
2403: EXCEPTION
2404: WHEN OTHERS THEN
2405: x_errmsg := 'Error in AR_INVOICE_UTILS.validate_finance_charges '
2406: ||sqlerrm;
2407: x_return_status := FND_API.G_RET_STS_UNEXP_ERROR;
2408: RETURN;
2409:
2410: END validate_finance_charges;
2411:
2420: THEN
2421: debug ('AR_INVOICE_UTILS.validate_related_cust_trx_id(+)' );
2422: END IF;
2423:
2424: x_return_status := FND_API.G_RET_STS_SUCCESS;
2425:
2426: INSERT INTO ar_trx_errors_gt (
2427: trx_header_id,
2428: error_message,
2470: EXCEPTION
2471: WHEN OTHERS THEN
2472: x_errmsg := 'Error in AR_INVOICE_UTILS.validate_related_cust_trx_id '
2473: ||sqlerrm;
2474: x_return_status := FND_API.G_RET_STS_UNEXP_ERROR;
2475: RETURN;
2476:
2477: END validate_related_cust_trx_id;
2478:
2494: THEN
2495: debug ('AR_INVOICE_UTILS.validate_gl_date(+)' );
2496: END IF;
2497:
2498: x_return_status := FND_API.G_RET_STS_SUCCESS;
2499:
2500: FOR cglDateRec IN cglDate
2501: LOOP
2502:
2596:
2597: EXCEPTION
2598: WHEN OTHERS THEN
2599: x_errmsg := 'Error in AR_INVOICE_UTILS.validate_gl_date '||sqlerrm;
2600: x_return_status := FND_API.G_RET_STS_UNEXP_ERROR;
2601: RETURN;
2602: END;
2603:
2604: PROCEDURE validate_agreement_id (
2609: THEN
2610: debug ('AR_INVOICE_UTILS.validate_agreement_id(+)' );
2611: END IF;
2612:
2613: x_return_status := FND_API.G_RET_STS_SUCCESS;
2614:
2615: INSERT INTO ar_trx_errors_gt (
2616: trx_header_id,
2617: error_message,
2655: EXCEPTION
2656: WHEN OTHERS THEN
2657: x_errmsg := 'Error in AR_INVOICE_UTILS.validate_agreement_id '||
2658: sqlerrm;
2659: x_return_status := FND_API.G_RET_STS_UNEXP_ERROR;
2660: RETURN;
2661:
2662: END validate_agreement_id;
2663:
2675: THEN
2676: debug ('AR_INVOICE_UTILS.Get_batch_source_details(+)' );
2677: END IF;
2678:
2679: x_return_status := FND_API.G_RET_STS_SUCCESS;
2680:
2681: SELECT bs.auto_batch_numbering_flag,
2682: bs.auto_trx_numbering_flag,
2683: bs.default_reference,
2744: gt.batch_source_id
2745: FROM ar_trx_header_gt gt;
2746: WHEN OTHERS THEN
2747: x_errmsg := 'Error in AR_INVOICE_UTILS.Get_batch_source_details '||sqlerrm;
2748: x_return_status := FND_API.G_RET_STS_UNEXP_ERROR;
2749: RETURN;
2750:
2751: END get_batch_source_details;
2752:
2774: IF pg_debug = 'Y'
2775: THEN
2776: debug ('AR_INVOICE_UTILS.Get_trx_type_details(+)' );
2777: END IF;
2778: x_return_status := FND_API.G_RET_STS_SUCCESS;
2779:
2780: FOR cust_trx_type_rec IN cust_trx_type_c
2781: LOOP
2782: BEGIN
2855:
2856:
2857: WHEN OTHERS THEN
2858: x_errmsg := 'Error in AR_INVOICE_UTILS.Get_trx_type_details '||sqlerrm;
2859: x_return_status := FND_API.G_RET_STS_UNEXP_ERROR;
2860: RETURN;
2861:
2862: END get_trx_type_details;
2863:
2871: THEN
2872: debug ('AR_INVOICE_UTILS.populate_salesreps(+)' );
2873: END IF;
2874:
2875: x_return_status := FND_API.G_RET_STS_SUCCESS;
2876:
2877: UPDATE ar_trx_header_gt gt
2878: SET gt.primary_salesrep_id =
2879: ( SELECT SU.PRIMARY_SALESREP_ID
2901:
2902: EXCEPTION
2903: WHEN OTHERS THEN
2904: x_errmsg := 'Error in AR_INVOICE_UTILS.populate_salesreps '||sqlerrm;
2905: x_return_status := FND_API.G_RET_STS_UNEXP_ERROR;
2906: RETURN;
2907:
2908: END populate_salesreps;
2909:
2917: IF pg_debug = 'Y' THEN
2918: debug ('AR_INVOICE_UTILS.populate_bill_to_customer_id(+)' );
2919: END IF;
2920:
2921: x_return_status := FND_API.G_RET_STS_SUCCESS;
2922:
2923: -- if bill to customer number is passed then that should be used
2924: -- derive the bill to customer id.
2925:
2983: EXCEPTION
2984: WHEN OTHERS THEN
2985: x_errmsg := 'Error in AR_INVOICE_UTILS.populate_bill_to_customer_id '
2986: ||sqlerrm;
2987: x_return_status := FND_API.G_RET_STS_UNEXP_ERROR;
2988: RETURN;
2989:
2990: END populate_bill_to_customer_id;
2991:
2999: IF pg_debug = 'Y' THEN
3000: debug ('AR_INVOICE_UTILS.populate_bill_to_site_use_id (+)' );
3001: END IF;
3002:
3003: x_return_status := FND_API.G_RET_STS_SUCCESS;
3004:
3005: -- We are here to populate bill_to_site_use_id column. We should only
3006: -- do it for rows where it is not already populated. Moreover, first we
3007: -- should see if bill_to_address_id is populated then we should derive the
3040: EXCEPTION
3041: WHEN OTHERS THEN
3042: x_errmsg := 'Error in AR_INVOICE_UTILS.populate_bill_to_site_use_id '
3043: ||sqlerrm;
3044: x_return_status := FND_API.G_RET_STS_UNEXP_ERROR;
3045: RETURN;
3046:
3047: END populate_bill_to_site_use_id;
3048:
3105: IF pg_debug = 'Y' THEN
3106: debug ('AR_INVOICE_UTILS.populate_bill_to_address_id(+)' );
3107: END IF;
3108:
3109: x_return_status := FND_API.G_RET_STS_SUCCESS;
3110:
3111: -- We are here to populate bill_to_address_id column. We should only
3112: -- do it for rows where it is not already populated. Moreover, first we
3113: -- should see if bill_to_site_use_id is populated then we should derive the
3155: EXCEPTION
3156: WHEN OTHERS THEN
3157: x_errmsg := 'Error in AR_INVOICE_UTILS.populate_bill_to_address_id '
3158: ||sqlerrm;
3159: x_return_status := FND_API.G_RET_STS_UNEXP_ERROR;
3160: RETURN;
3161:
3162: END populate_bill_to_address_id;
3163:
3193: THEN
3194: debug ('AR_INVOICE_UTILS.populate_remit_to_address_id (+)' );
3195: END IF;
3196:
3197: x_return_status := FND_API.G_RET_STS_SUCCESS;
3198: FOR HdrGtRec IN HdrGtc
3199: LOOP
3200: l_site_use_id := HdrGtRec.bill_to_site_use_id;
3201: FOR bill_to_site_rec IN bill_to_site_c
3266:
3267: EXCEPTION
3268: WHEN OTHERS THEN
3269: x_errmsg := 'Error in AR_INVOICE_UTILS.populate_remit_to_address_id '||sqlerrm;
3270: x_return_status := FND_API.G_RET_STS_UNEXP_ERROR;
3271: RETURN;
3272:
3273: END populate_remit_to_address_id;
3274:
3287: IF pg_debug = 'Y'
3288: THEN
3289: debug ('AR_INVOICE_UTILS.populate_bill_to_contact_id(+)' );
3290: END IF;
3291: x_return_status := FND_API.G_RET_STS_SUCCESS;
3292: -- the cursor is required becoz the select to get the contact id
3293: -- returns more than one row. In case it returns more than one row
3294: -- then contact id will be null.
3295: FOR bill_to_customer_id_rec IN bill_to_customer_id_c
3337: EXCEPTION
3338: WHEN OTHERS THEN
3339: x_errmsg := 'Error in AR_INVOICE_UTILS.populate_bill_to_contact_id '
3340: ||sqlerrm;
3341: x_return_status := FND_API.G_RET_STS_UNEXP_ERROR;
3342: RETURN;
3343:
3344: END populate_bill_to_contact_id;
3345:
3353: IF pg_debug = 'Y' THEN
3354: debug ('AR_INVOICE_UTILS.populate_ship_to_customer_id(+)' );
3355: END IF;
3356:
3357: x_return_status := FND_API.G_RET_STS_SUCCESS;
3358:
3359: -- if bill to customer number is passed then that should be used
3360: -- derive the bill to customer id.
3361:
3396: EXCEPTION
3397: WHEN OTHERS THEN
3398: x_errmsg := 'Error in AR_INVOICE_UTILS.populate_ship_to_customer_id '
3399: ||sqlerrm;
3400: x_return_status := FND_API.G_RET_STS_UNEXP_ERROR;
3401: RETURN;
3402:
3403: END populate_ship_to_customer_id;
3404:
3412: IF pg_debug = 'Y' THEN
3413: debug ('AR_INVOICE_UTILS.populate_ship_to_address_id(+)' );
3414: END IF;
3415:
3416: x_return_status := FND_API.G_RET_STS_SUCCESS;
3417:
3418: -- We are here to populate ship_to_address_id column. We should only
3419: -- do it for rows where it is not already populated. Moreover, first we
3420: -- should see if ship_to_site_use_id is populated then we should derive the
3463: EXCEPTION
3464: WHEN OTHERS THEN
3465: x_errmsg := 'Error in AR_INVOICE_UTILS.populate_ship_to_address_id '
3466: ||sqlerrm;
3467: x_return_status := FND_API.G_RET_STS_UNEXP_ERROR;
3468: RETURN;
3469:
3470: END populate_ship_to_address_id;
3471:
3485: THEN
3486: debug ('AR_INVOICE_UTILS.populate_ship_to_contact_id(+)' );
3487: END IF;
3488:
3489: x_return_status := FND_API.G_RET_STS_SUCCESS;
3490:
3491: -- the cursor is required becoz the select to get the contact id
3492: -- returns more than one row. In case it returns more than one row
3493: -- then contact id will be null.
3535:
3536: EXCEPTION
3537: WHEN OTHERS THEN
3538: x_errmsg := 'Error in AR_INVOICE_UTILS.populate_ship_to_contact_id '||sqlerrm;
3539: x_return_status := FND_API.G_RET_STS_UNEXP_ERROR;
3540: RETURN;
3541:
3542: END;
3543:
3574: IF pg_debug = 'Y'
3575: THEN
3576: debug ('AR_INVOICE_UTILS.populate_populate_territory (+)' );
3577: END IF;
3578: x_return_status := FND_API.G_RET_STS_SUCCESS;
3579:
3580: /*----------------------------------------------------------------+
3581: | Default the territory flexfield from |
3582: | - The Bill To site use |
3617: END IF;
3618: EXCEPTION
3619: WHEN OTHERS THEN
3620: x_errmsg := 'Error in AR_INVOICE_UTILS.populate_territory '||sqlerrm;
3621: x_return_status := FND_API.G_RET_STS_UNEXP_ERROR;
3622: RETURN;
3623: END;
3624:
3625: /* 4188835 - call legal_entity function to default it for
3650:
3651: EXCEPTION
3652: WHEN OTHERS THEN
3653: x_errmsg := 'Error in AR_INVOICE_UTILS.populate_legal_entity '||sqlerrm;
3654: x_return_status := FND_API.G_RET_STS_UNEXP_ERROR;
3655: RETURN;
3656: END populate_legal_entity;
3657:
3658: procedure populate_customer_attributes (
3670: THEN
3671: debug ('Getting bill_to_site_use_id(+)' );
3672: END IF;
3673:
3674: x_return_status := FND_API.G_RET_STS_SUCCESS;
3675:
3676: UPDATE ar_trx_header_gt gt
3677: SET bill_to_site_use_id = (select site_use_id
3678: from hz_cust_site_uses
3813: END IF;
3814: populate_salesreps (
3815: x_errmsg => x_errmsg,
3816: x_return_status => x_return_status );
3817: IF x_return_status = FND_API.G_RET_STS_UNEXP_ERROR
3818: THEN
3819: RETURN;
3820: END IF;
3821: IF pg_debug = 'Y'
3826:
3827: populate_bill_to_customer_id (
3828: x_errmsg => x_errmsg,
3829: x_return_status => x_return_status );
3830: IF x_return_status = FND_API.G_RET_STS_UNEXP_ERROR THEN
3831: RETURN;
3832: ELSE
3833: INSERT INTO ar_trx_errors_gt (
3834: trx_header_id,
3843: populate_ship_to_site_use_id(
3844: x_errmsg => x_errmsg,
3845: x_return_status => x_return_status);
3846:
3847: IF x_return_status = FND_API.G_RET_STS_UNEXP_ERROR THEN
3848: RETURN;
3849: END IF;
3850: populate_paying_site_use_id (
3851: x_errmsg => x_errmsg,
3850: populate_paying_site_use_id (
3851: x_errmsg => x_errmsg,
3852: x_return_status => x_return_status );
3853:
3854: IF x_return_status = FND_API.G_RET_STS_UNEXP_ERROR THEN
3855: RETURN;
3856: END IF;
3857: populate_bill_to_address_id (
3858: x_errmsg => x_errmsg,
3857: populate_bill_to_address_id (
3858: x_errmsg => x_errmsg,
3859: x_return_status => x_return_status );
3860:
3861: IF x_return_status = FND_API.G_RET_STS_UNEXP_ERROR THEN
3862: RETURN;
3863: ELSE
3864: INSERT INTO ar_trx_errors_gt (
3865: trx_header_id,
3880: populate_remit_to_address_id (
3881: x_errmsg => x_errmsg,
3882: x_return_status => x_return_status );
3883:
3884: IF x_return_status = FND_API.G_RET_STS_UNEXP_ERROR
3885: THEN
3886: RETURN;
3887: END IF;
3888:
3895: populate_bill_to_contact_id (
3896: x_errmsg => x_errmsg,
3897: x_return_status => x_return_status );
3898:
3899: IF x_return_status = FND_API.G_RET_STS_UNEXP_ERROR
3900: THEN
3901: RETURN;
3902: END IF;
3903:
3913:
3914: EXCEPTION
3915: WHEN OTHERS THEN
3916: x_errmsg := 'Error in AR_INVOICE_UTILS.populate_customer_attributes '||sqlerrm;
3917: x_return_status := FND_API.G_RET_STS_UNEXP_ERROR;
3918: RETURN;
3919:
3920: END populate_customer_attributes;
3921:
3929: THEN
3930: debug ('AR_INVOICE_UTILS.populate_ref_hdr_attributes (+)' );
3931: END IF;
3932:
3933: x_return_status := FND_API.G_RET_STS_SUCCESS;
3934:
3935: IF pg_debug = 'Y'
3936: THEN
3937: debug ('AR_INVOICE_UTILS.Get_batch_source_details (+)' );
3939: Get_batch_source_details (
3940: x_errmsg => x_errmsg,
3941: x_return_status => x_return_status );
3942:
3943: IF x_return_status = FND_API.G_RET_STS_UNEXP_ERROR
3944: THEN
3945: RETURN;
3946: END IF;
3947: -- validate the trx type.
3952: END IF;
3953: validate_transaction_type(
3954: x_errmsg => x_errmsg,
3955: x_return_status => x_return_status);
3956: IF x_return_status = FND_API.G_RET_STS_UNEXP_ERROR
3957: THEN
3958: RETURN;
3959: END IF;
3960: IF pg_debug = 'Y'
3968: Get_trx_type_details (
3969: x_errmsg => x_errmsg,
3970: x_return_status => x_return_status );
3971:
3972: IF x_return_status = FND_API.G_RET_STS_UNEXP_ERROR
3973: THEN
3974: RETURN;
3975: END IF;
3976: IF pg_debug = 'Y'
3979: debug ('AR_INVOICE_DEFAULT_PVT.Default_gl_date (+)' );
3980: END IF;
3981: AR_INVOICE_DEFAULT_PVT.Default_gl_date;
3982:
3983: IF x_return_status = FND_API.G_RET_STS_UNEXP_ERROR
3984: THEN
3985: RETURN;
3986: END IF;
3987: IF pg_debug = 'Y'
3994: x_return_status => x_return_status );
3995:
3996: validate_bfb;
3997:
3998: IF x_return_status = FND_API.G_RET_STS_UNEXP_ERROR
3999: THEN
4000: RETURN;
4001: END IF;
4002: IF pg_debug = 'Y'
4010:
4011: EXCEPTION
4012: WHEN OTHERS THEN
4013: x_errmsg := 'Error in AR_INVOICE_UTILS.populate_ref_hdr_attributes '||sqlerrm;
4014: x_return_status := FND_API.G_RET_STS_UNEXP_ERROR;
4015: RETURN;
4016:
4017: END populate_ref_hdr_attributes;
4018:
4028: THEN
4029: debug ('AR_INVOICE_UTILS.validate_UOM_CODE (+)' );
4030: END IF;
4031:
4032: x_return_status := FND_API.G_RET_STS_SUCCESS;
4033:
4034: l_so_org_id := to_number(oe_profile.value('SO_ORGANIZATION_ID')); /*Bug 3752043*/
4035:
4036: INSERT INTO ar_trx_errors_gt
4096: END IF;
4097: EXCEPTION
4098: WHEN OTHERS THEN
4099: x_errmsg := 'Error in AR_INVOICE_UTILS.validate_UOM_CODE '||sqlerrm;
4100: x_return_status := FND_API.G_RET_STS_UNEXP_ERROR;
4101: RETURN;
4102:
4103: END validate_uom_code;
4104:
4111: IF pg_debug = 'Y'
4112: THEN
4113: debug ('AR_INVOICE_UTILS.validate_tax_code (+)' );
4114: END IF;
4115: x_return_status := FND_API.G_RET_STS_SUCCESS;
4116:
4117: /* With etax, they are now responsible for insuring that
4118: - tax is valid
4119: - not a location tax
4130:
4131: EXCEPTION
4132: WHEN OTHERS THEN
4133: x_errmsg := 'Error in AR_INVOICE_UTILS.validate_tax_code '||sqlerrm;
4134: x_return_status := FND_API.G_RET_STS_UNEXP_ERROR;
4135: RETURN;
4136:
4137: END validate_tax_code;
4138:
4145: THEN
4146: debug ('AR_INVOICE_UTILS.validate_tax_lines (+)' );
4147: END IF;
4148:
4149: x_return_status := FND_API.G_RET_STS_SUCCESS;
4150:
4151: INSERT INTO ar_trx_errors_gt
4152: ( trx_header_id,
4153: trx_line_id,
4205:
4206: EXCEPTION
4207: WHEN OTHERS THEN
4208: x_errmsg := 'Error in AR_INVOICE_UTILS.validate_tax_freight_lines '||sqlerrm;
4209: x_return_status := FND_API.G_RET_STS_UNEXP_ERROR;
4210: RETURN;
4211: END;
4212:
4213: PROCEDURE validate_tax_exemption (
4226: THEN
4227: debug ('AR_INVOICE_UTILS.validate_tax_exemption (+)' );
4228: END IF;
4229:
4230: x_return_status := FND_API.G_RET_STS_SUCCESS;
4231: BEGIN
4232: /* 4257557 - changed to zx_product_options */
4233: select nvl(tax_use_customer_exempt_flag,'N')
4234: into l_tax_use_exempt_flag
4308: EXCEPTION
4309: WHEN OTHERS THEN
4310: x_errmsg := 'Error in AR_INVOICE_UTILS.validate_tax_exemption '
4311: ||sqlerrm;
4312: x_return_status := FND_API.G_RET_STS_UNEXP_ERROR;
4313: RETURN;
4314:
4315: END validate_tax_exemption;
4316:
4324: THEN
4325: debug ('AR_INVOICE_UTILS.validate_more_tab (+)' );
4326: END IF;
4327:
4328: x_return_status := FND_API.G_RET_STS_SUCCESS;
4329:
4330: -- reason code
4331: INSERT INTO ar_trx_errors_gt
4332: ( trx_header_id,
4368:
4369: EXCEPTION
4370: WHEN OTHERS THEN
4371: x_errmsg := 'Error in AR_INVOICE_UTILS.validate_more_tab '||sqlerrm;
4372: x_return_status := FND_API.G_RET_STS_UNEXP_ERROR;
4373: RETURN;
4374:
4375: END validate_more_tab;
4376:
4384: IF pg_debug = 'Y' THEN
4385: debug ('AR_INVOICE_UTILS.validate_line_description (+)' );
4386: END IF;
4387:
4388: x_return_status := FND_API.G_RET_STS_SUCCESS;
4389:
4390: INSERT INTO ar_trx_errors_gt
4391: ( trx_header_id,
4392: error_message)
4441: EXCEPTION
4442: WHEN OTHERS THEN
4443: x_errmsg := 'Error in AR_INVOICE_UTILS.validate_line_description '||
4444: sqlerrm;
4445: x_return_status := FND_API.G_RET_STS_UNEXP_ERROR;
4446: RETURN;
4447:
4448: END validate_line_description;
4449:
4456: THEN
4457: debug ('AR_INVOICE_UTILS.validate_quantity_invoiced (+)' );
4458: END IF;
4459:
4460: x_return_status := FND_API.G_RET_STS_SUCCESS;
4461:
4462: INSERT INTO ar_trx_errors_gt
4463: ( trx_header_id,
4464: error_message)
4477:
4478: EXCEPTION
4479: WHEN OTHERS THEN
4480: x_errmsg := 'Error in AR_INVOICE_UTILS.validate_quantity_invoiced '||sqlerrm;
4481: x_return_status := FND_API.G_RET_STS_UNEXP_ERROR;
4482: RETURN;
4483:
4484: END;
4485:
4491: THEN
4492: debug ('AR_INVOICE_UTILS.validate_unit_selling_price (+)' );
4493: END IF;
4494:
4495: x_return_status := FND_API.G_RET_STS_SUCCESS;
4496:
4497: INSERT INTO ar_trx_errors_gt
4498: ( trx_header_id,
4499: error_message)
4511: END IF;
4512: EXCEPTION
4513: WHEN OTHERS THEN
4514: x_errmsg := 'Error in AR_INVOICE_UTILS.validate_unit_selling_price '||sqlerrm;
4515: x_return_status := FND_API.G_RET_STS_UNEXP_ERROR;
4516: RETURN;
4517: END;
4518:
4519: PROCEDURE validate_line_type (
4523: IF pg_debug = 'Y'
4524: THEN
4525: debug ('AR_INVOICE_UTILS.validate_line_type (+)' );
4526: END IF;
4527: x_return_status := FND_API.G_RET_STS_SUCCESS;
4528:
4529: INSERT INTO ar_trx_errors_gt
4530: ( trx_header_id,
4531: error_message,
4542:
4543: EXCEPTION
4544: WHEN OTHERS THEN
4545: x_errmsg := 'Error in AR_INVOICE_UTILS.validate_line_type '||sqlerrm;
4546: x_return_status := FND_API.G_RET_STS_UNEXP_ERROR;
4547: RETURN;
4548: END;
4549:
4550: PROCEDURE check_dup_line_number (
4555: IF pg_debug = 'Y'
4556: THEN
4557: debug ('AR_INVOICE_UTILS.check_dup_line_number (+)' );
4558: END IF;
4559: x_return_status := FND_API.G_RET_STS_SUCCESS;
4560: -- first check if line number is null or not
4561: INSERT INTO ar_trx_errors_gt
4562: ( trx_header_id,
4563: error_message)
4582:
4583: EXCEPTION
4584: WHEN OTHERS THEN
4585: x_errmsg := 'Error in AR_INVOICE_UTILS.check_dup_line_number '||sqlerrm;
4586: x_return_status := FND_API.G_RET_STS_UNEXP_ERROR;
4587: RETURN;
4588: END;
4589:
4590: PROCEDURE validate_line_integrity (
4607: THEN
4608: debug ('AR_INVOICE_UTILS.validate_line_integrity (+)' );
4609: END IF;
4610:
4611: x_return_status := FND_API.G_RET_STS_SUCCESS;
4612:
4613: -- first check whether all lines have line and header id
4614: INSERT INTO ar_trx_errors_gt
4615: ( trx_header_id,
4709:
4710: EXCEPTION
4711: WHEN OTHERS THEN
4712: x_errmsg := 'Error in AR_INVOICE_UTILS.validate_line_integrity '||sqlerrm;
4713: x_return_status := FND_API.G_RET_STS_UNEXP_ERROR;
4714: RETURN;
4715: END;
4716:
4717: PROCEDURE validate_freight (
4722: IF pg_debug = 'Y'
4723: THEN
4724: debug ('AR_INVOICE_UTILS.validate_freight (+)' );
4725: END IF;
4726: x_return_status := FND_API.G_RET_STS_SUCCESS;
4727:
4728: INSERT INTO ar_trx_errors_gt
4729: ( trx_header_id,
4730: trx_line_id,
4778: END IF;
4779: EXCEPTION
4780: WHEN OTHERS THEN
4781: x_errmsg := 'Error in AR_INVOICE_UTILS.validate_freight '||sqlerrm;
4782: x_return_status := FND_API.G_RET_STS_UNEXP_ERROR;
4783: RETURN;
4784: END;
4785:
4786: PROCEDURE populate_extended_amount (
4815: THEN
4816: debug ('AR_INVOICE_UTILS.populate_extended_amount (+)' );
4817: END IF;
4818:
4819: x_return_status := FND_API.G_RET_STS_SUCCESS;
4820:
4821: /* Bug 6397348 Set the amount precision as per currency precision*/
4822:
4823: For I in c_ext_amt
4896:
4897: EXCEPTION
4898: WHEN OTHERS THEN
4899: x_errmsg := 'Error in AR_INVOICE_UTILS.populate_extended_amount '||sqlerrm;
4900: x_return_status := FND_API.G_RET_STS_UNEXP_ERROR;
4901: RETURN;
4902: END;
4903:
4904: PROCEDURE validate_doc_sequence(
4910: IF pg_debug = 'Y'
4911: THEN
4912: debug ('AR_INVOICE_UTILS.validate_doc_sequence (+)' );
4913: END IF;
4914: x_return_status := FND_API.G_RET_STS_SUCCESS;
4915:
4916: INSERT INTO ar_trx_errors_gt
4917: ( trx_header_id,
4918: error_message)
4948:
4949: EXCEPTION
4950: WHEN OTHERS THEN
4951: x_errmsg := 'Error in AR_INVOICE_UTILS.validate_doc_sequence '||sqlerrm;
4952: x_return_status := FND_API.G_RET_STS_UNEXP_ERROR;
4953: RETURN;
4954: END;
4955:
4956:
4993: IF pg_debug = 'Y'
4994: THEN
4995: debug ('AR_INVOICE_UTILS.populate_doc_sequence (+)' );
4996: END IF;
4997: x_return_status := FND_API.G_RET_STS_SUCCESS;
4998:
4999: l_seq_num_profile := NVL(p_trx_profile_rec.ar_unique_seq_numbers, 'N');
5000:
5001: FOR ctrxHeaderRec IN ctrxHeader
5123: l_seq_err := FALSE;
5124: END LOOP;
5125:
5126: validate_doc_sequence ( x_errmsg , x_return_status);
5127: IF x_return_status = FND_API.G_RET_STS_UNEXP_ERROR
5128: THEN
5129: RETURN;
5130: END IF;
5131: IF pg_debug = 'Y'
5134: END IF;
5135: EXCEPTION
5136: WHEN OTHERS THEN
5137: x_errmsg := 'Error in AR_INVOICE_UTILS.populate_doc_sequence '||sqlerrm ;
5138: x_return_status := FND_API.G_RET_STS_UNEXP_ERROR;
5139: RETURN;
5140:
5141: END;
5142:
5162: l_party_id NUMBER;
5163: l_pmt_trxn_extension_id IBY_FNDCPT_COMMON_PUB.Id_tbl_type;
5164: o_payment_trxn_extension_id RA_CUSTOMER_TRX.PAYMENT_TRXN_EXTENSION_ID%TYPE;
5165:
5166: l_return_status VARCHAR2(1) := FND_API.G_RET_STS_SUCCESS;
5167: l_assignment_id NUMBER;
5168:
5169: l_msg_count NUMBER;
5170: l_msg_data VARCHAR2(2000);
5179: IF pg_debug = 'Y'
5180: THEN
5181: arp_standard.debug ( 'inside Copy payment trxn ');
5182: END IF;
5183: x_return_status := FND_API.G_RET_STS_SUCCESS;
5184:
5185: FOR ctrxHeaderRec IN ctrxHeader
5186: LOOP
5187: SELECT party.party_id
5231: arp_standard.debug('payment_trx_extension_id :<'|| l_pmt_trxn_extension_id(1) || '>');
5232:
5233: IBY_FNDCPT_TRXN_PUB.Copy_Transaction_Extension
5234: ( p_api_version => 1.0,
5235: p_init_msg_list => FND_API.G_TRUE,
5236: p_commit => FND_API.G_FALSE,
5237: x_return_status => l_return_status,
5238: x_msg_count => l_msg_count,
5239: x_msg_data => l_msg_data,
5232:
5233: IBY_FNDCPT_TRXN_PUB.Copy_Transaction_Extension
5234: ( p_api_version => 1.0,
5235: p_init_msg_list => FND_API.G_TRUE,
5236: p_commit => FND_API.G_FALSE,
5237: x_return_status => l_return_status,
5238: x_msg_count => l_msg_count,
5239: x_msg_data => l_msg_data,
5240: p_payer => l_payer_rec,
5245: x_response => l_response_rec -- out
5246: );
5247:
5248:
5249: IF l_return_status = FND_API.G_RET_STS_SUCCESS THEN
5250:
5251: o_payment_trxn_extension_id := p_trxn_entity_id ;
5252:
5253: arp_standard.debug('the copied value of trx_entn is ' || o_payment_trxn_extension_id );
5258: END IF;
5259:
5260:
5261:
5262: IF (l_return_status <> FND_API.G_RET_STS_SUCCESS) THEN
5263:
5264:
5265: l_cpy_msg_data := substrb( l_response_rec.Result_Code || ': '||
5266: l_response_rec.Result_Message , 1, 240);
5281:
5282: EXCEPTION
5283: WHEN OTHERS THEN
5284: x_errmsg := 'Error in AR_INVOICE_UTILS.copy_pmt_extension '||sqlerrm ;
5285: x_return_status := FND_API.G_RET_STS_UNEXP_ERROR;
5286: RETURN;
5287:
5288: END;
5289:
5306: THEN
5307: debug ('AR_INVOICE_UTILS.validate_item_kflex (+)' );
5308: END IF;
5309:
5310: x_return_status := FND_API.G_RET_STS_SUCCESS;
5311: oe_profile.get('SO_ID_FLEX_CODE', l_so_id_flex_code);
5312:
5313:
5314:
5372: END IF;
5373: EXCEPTION
5374: WHEN OTHERS THEN
5375: x_errmsg := 'Error in AR_INVOICE_UTILS.validate_item_kflex '||sqlerrm ;
5376: x_return_status := FND_API.G_RET_STS_UNEXP_ERROR;
5377: RETURN;
5378: END;
5379:
5380: PROCEDURE validate_territory_id (
5390: IF pg_debug = 'Y'
5391: THEN
5392: debug ('AR_INVOICE_UTILS.validate_territory_id (+)' );
5393: END IF;
5394: x_return_status := FND_API.G_RET_STS_SUCCESS;
5395:
5396: FOR cTerritoryRec IN cTerritory
5397: LOOP
5398: IF ( fnd_flex_keyval.validate_ccid(
5418: END IF;
5419: EXCEPTION
5420: WHEN OTHERS THEN
5421: x_errmsg := 'Error in AR_INVOICE_UTILS.validate_territory_id '||sqlerrm ;
5422: x_return_status := FND_API.G_RET_STS_UNEXP_ERROR;
5423: RETURN;
5424: END;
5425:
5426: PROCEDURE validate_warehouse_id (
5431: THEN
5432: debug ('AR_INVOICE_UTILS.validate_warehouse_id (+)' );
5433: END IF;
5434:
5435: x_return_status := FND_API.G_RET_STS_SUCCESS;
5436:
5437: INSERT INTO ar_trx_errors_gt
5438: ( trx_line_id,
5439: trx_header_id,
5470: END IF;
5471: EXCEPTION
5472: WHEN OTHERS THEN
5473: x_errmsg := 'Error in AR_INVOICE_UTILS.validate_warehouse_id '||sqlerrm ;
5474: x_return_status := FND_API.G_RET_STS_UNEXP_ERROR;
5475: RETURN;
5476: END;
5477:
5478:
5502: THEN
5503: debug ('AR_INVOICE_UTILS.validate_accounting_rules (+)' );
5504: END IF;
5505:
5506: x_return_status := FND_API.G_RET_STS_SUCCESS;
5507:
5508: --PPRR Added PP rule types in the type condition
5509: INSERT INTO ar_trx_errors_gt
5510: ( trx_header_id,
5756:
5757: EXCEPTION
5758: WHEN OTHERS THEN
5759: x_errmsg := 'Error in AR_INVOICE_UTILS.validate_accounting_rules '||sqlerrm;
5760: x_return_status := FND_API.G_RET_STS_UNEXP_ERROR;
5761: RETURN;
5762: END;
5763:
5764: PROCEDURE validate_line_ussgl_code (
5770: IF pg_debug = 'Y' THEN
5771: debug ('ar_invoice_utils.validate_line_ussgl_code(+)' );
5772: END IF;
5773:
5774: x_return_status := FND_API.G_RET_STS_SUCCESS;
5775:
5776: INSERT INTO ar_trx_errors_gt (
5777: trx_header_id,
5778: trx_line_id,
5799:
5800: EXCEPTION
5801: WHEN OTHERS THEN
5802: x_errmsg := 'error in ar_invoice_utils.validate_line_ussgl_code '|| sqlerrm;
5803: x_return_status := fnd_api.g_ret_sts_unexp_error;
5804: RETURN;
5805:
5806: END validate_line_ussgl_code;
5807:
5814: IF pg_debug = 'Y'
5815: THEN
5816: debug ('AR_INVOICE_UTILS.populate_line_attributes (+)' );
5817: END IF;
5818: x_return_status := FND_API.G_RET_STS_SUCCESS;
5819:
5820: -- check if memo line is passed and any unit of measue and unit price.
5821: BEGIN
5822: UPDATE ar_trx_lines_gt gt
5840: populate_extended_amount (
5841: x_errmsg => x_errmsg,
5842: x_return_status => x_return_status );
5843:
5844: IF x_return_status = FND_API.G_RET_STS_UNEXP_ERROR
5845: THEN
5846: RETURN;
5847: END IF;
5848:
5853:
5854: EXCEPTION
5855: WHEN OTHERS THEN
5856: x_errmsg := 'Error in AR_INVOICE_UTILS.populate_line_attributes '||sqlerrm;
5857: x_return_status := FND_API.G_RET_STS_UNEXP_ERROR;
5858: RETURN;
5859: END;
5860:
5861: PROCEDURE populate_exchange_rate (
5888: IF pg_debug = 'Y'
5889: THEN
5890: debug ('AR_INVOICE_UTILS.populate_exchange_rate (+)' );
5891: END IF;
5892: x_return_status := FND_API.G_RET_STS_SUCCESS;
5893:
5894: FOR cExchangeRateRec IN cExchangeRate
5895: LOOP
5896: BEGIN
5988: EXCEPTION
5989: WHEN OTHERS
5990: THEN
5991: x_errmsg := 'Error in AR_INVOICE_UTILS.populate_exchange_rate '||sqlerrm;
5992: x_return_status := FND_API.G_RET_STS_UNEXP_ERROR;
5993: RETURN;
5994:
5995: END;
5996:
6058: THEN
6059: debug ('AR_INVOICE_UTILS.validate_header (+)' );
6060: END IF;
6061:
6062: x_return_status := FND_API.G_RET_STS_SUCCESS;
6063:
6064:
6065: validate_trx_number (
6066: x_errmsg => x_errmsg,
6064:
6065: validate_trx_number (
6066: x_errmsg => x_errmsg,
6067: x_return_status => x_return_status);
6068: IF x_return_status = FND_API.G_RET_STS_UNEXP_ERROR
6069: THEN
6070: RETURN;
6071: END IF;
6072:
6073: --validate_no_of_batch_sources;
6074: validate_batch_source(
6075: x_errmsg => x_errmsg,
6076: x_return_status => x_return_status);
6077: IF x_return_status = FND_API.G_RET_STS_UNEXP_ERROR
6078: THEN
6079: RETURN;
6080: END IF;
6081:
6081:
6082: validate_currency(
6083: x_errmsg => x_errmsg,
6084: x_return_status => x_return_status);
6085: IF x_return_status = FND_API.G_RET_STS_UNEXP_ERROR
6086: THEN
6087: RETURN;
6088: END IF;
6089:
6092: -- batch source in case user does not pass any.
6093: /*validate_transaction_type(
6094: x_errmsg => x_errmsg,
6095: x_return_status => x_return_status);
6096: IF x_return_status = FND_API.G_RET_STS_UNEXP_ERROR
6097: THEN
6098: RETURN;
6099: END IF; */
6100:
6104:
6105: populate_bill_to_customer_id (
6106: x_errmsg => x_errmsg,
6107: x_return_status => x_return_status );
6108: IF x_return_status = FND_API.G_RET_STS_UNEXP_ERROR THEN
6109: RETURN;
6110: END IF;
6111:
6112: validate_bill_to_customer_id(
6111:
6112: validate_bill_to_customer_id(
6113: x_errmsg => x_errmsg,
6114: x_return_status => x_return_status);
6115: IF x_return_status = FND_API.G_RET_STS_UNEXP_ERROR
6116: THEN
6117: RETURN;
6118: END IF;
6119:
6119:
6120: validate_bill_to_customer_name(
6121: x_errmsg => x_errmsg,
6122: x_return_status => x_return_status);
6123: IF x_return_status = FND_API.G_RET_STS_UNEXP_ERROR
6124: THEN
6125: RETURN;
6126: END IF;
6127:
6127:
6128: validate_bill_to_cust_number(
6129: x_errmsg => x_errmsg,
6130: x_return_status => x_return_status);
6131: IF x_return_status = FND_API.G_RET_STS_UNEXP_ERROR
6132: THEN
6133: RETURN;
6134: END IF;
6135:
6136: populate_ship_to_customer_id (
6137: x_errmsg => x_errmsg,
6138: x_return_status => x_return_status );
6139:
6140: IF x_return_status = FND_API.G_RET_STS_UNEXP_ERROR THEN
6141: RETURN;
6142: END IF;
6143:
6144: validate_bill_to_site_use_id(
6143:
6144: validate_bill_to_site_use_id(
6145: x_errmsg => x_errmsg,
6146: x_return_status => x_return_status);
6147: IF x_return_status = FND_API.G_RET_STS_UNEXP_ERROR
6148: THEN
6149: RETURN;
6150: END IF;
6151:
6151:
6152: validate_bill_to_address_id(
6153: x_errmsg => x_errmsg,
6154: x_return_status => x_return_status);
6155: IF x_return_status = FND_API.G_RET_STS_UNEXP_ERROR
6156: THEN
6157: RETURN;
6158: END IF;
6159:
6159:
6160: validate_bill_to_contact_id(
6161: x_errmsg => x_errmsg,
6162: x_return_status => x_return_status);
6163: IF x_return_status = FND_API.G_RET_STS_UNEXP_ERROR
6164: THEN
6165: RETURN;
6166: END IF;
6167:
6168:
6169: validate_sold_to_customer_id(
6170: x_errmsg => x_errmsg,
6171: x_return_status => x_return_status);
6172: IF x_return_status = FND_API.G_RET_STS_UNEXP_ERROR
6173: THEN
6174: RETURN;
6175: END IF;
6176:
6176:
6177: validate_terms(
6178: x_errmsg => x_errmsg,
6179: x_return_status => x_return_status);
6180: IF x_return_status = FND_API.G_RET_STS_UNEXP_ERROR
6181: THEN
6182: RETURN;
6183: END IF;
6184:
6185: validate_salesrep(
6186: p_trx_system_param_rec => p_trx_system_param_rec,
6187: x_errmsg => x_errmsg,
6188: x_return_status => x_return_status);
6189: IF x_return_status = FND_API.G_RET_STS_UNEXP_ERROR
6190: THEN
6191: RETURN;
6192: END IF;
6193:
6193:
6194: validate_invoicing_rule_id(
6195: x_errmsg => x_errmsg,
6196: x_return_status => x_return_status);
6197: IF x_return_status = FND_API.G_RET_STS_UNEXP_ERROR
6198: THEN
6199: RETURN;
6200: END IF;
6201:
6201:
6202: validate_print_option(
6203: x_errmsg => x_errmsg,
6204: x_return_status => x_return_status);
6205: IF x_return_status = FND_API.G_RET_STS_UNEXP_ERROR
6206: THEN
6207: RETURN;
6208: END IF;
6209:
6209:
6210: validate_default_tax(
6211: x_errmsg => x_errmsg,
6212: x_return_status => x_return_status);
6213: IF x_return_status = FND_API.G_RET_STS_UNEXP_ERROR
6214: THEN
6215: RETURN;
6216: END IF;
6217:
6217:
6218: validate_status(
6219: x_errmsg => x_errmsg,
6220: x_return_status => x_return_status);
6221: IF x_return_status = FND_API.G_RET_STS_UNEXP_ERROR
6222: THEN
6223: RETURN;
6224: END IF;
6225:
6225:
6226: validate_finance_charges(
6227: x_errmsg => x_errmsg,
6228: x_return_status => x_return_status);
6229: IF x_return_status = FND_API.G_RET_STS_UNEXP_ERROR
6230: THEN
6231: RETURN;
6232: END IF;
6233:
6233:
6234: validate_related_cust_trx_id(
6235: x_errmsg => x_errmsg,
6236: x_return_status => x_return_status);
6237: IF x_return_status = FND_API.G_RET_STS_UNEXP_ERROR
6238: THEN
6239: RETURN;
6240: END IF;
6241:
6241:
6242: validate_agreement_id(
6243: x_errmsg => x_errmsg,
6244: x_return_status => x_return_status);
6245: IF x_return_status = FND_API.G_RET_STS_UNEXP_ERROR
6246: THEN
6247: RETURN;
6248: END IF;
6249:
6249:
6250: validate_trx_class (
6251: x_errmsg => x_errmsg,
6252: x_return_status => x_return_status);
6253: IF x_return_status = fnd_api.g_ret_sts_unexp_error THEN
6254: RETURN;
6255: END IF;
6256:
6257: validate_ship_via (
6256:
6257: validate_ship_via (
6258: x_errmsg => x_errmsg,
6259: x_return_status => x_return_status);
6260: IF x_return_status = fnd_api.g_ret_sts_unexp_error THEN
6261: RETURN;
6262: END IF;
6263:
6264: validate_fob_point (
6263:
6264: validate_fob_point (
6265: x_errmsg => x_errmsg,
6266: x_return_status => x_return_status);
6267: IF x_return_status = fnd_api.g_ret_sts_unexp_error THEN
6268: RETURN;
6269: END IF;
6270:
6271: validate_remit_to_address_id (
6270:
6271: validate_remit_to_address_id (
6272: x_errmsg => x_errmsg,
6273: x_return_status => x_return_status);
6274: IF x_return_status = fnd_api.g_ret_sts_unexp_error THEN
6275: RETURN;
6276: END IF;
6277:
6278: validate_ussgl_code (
6277:
6278: validate_ussgl_code (
6279: x_errmsg => x_errmsg,
6280: x_return_status => x_return_status);
6281: IF x_return_status = fnd_api.g_ret_sts_unexp_error THEN
6282: RETURN;
6283: END IF;
6284:
6285: validate_cust_bank_account_id (
6284:
6285: validate_cust_bank_account_id (
6286: x_errmsg => x_errmsg,
6287: x_return_status => x_return_status);
6288: IF x_return_status = fnd_api.g_ret_sts_unexp_error THEN
6289: RETURN;
6290: END IF;
6291:
6292: validate_doc_sequence_value (
6293: p_trx_system_param_rec => p_trx_system_param_rec,
6294: p_trx_profile_rec => p_trx_profile_rec,
6295: x_errmsg => x_errmsg,
6296: x_return_status => x_return_status);
6297: IF x_return_status = fnd_api.g_ret_sts_unexp_error THEN
6298: RETURN;
6299: END IF;
6300:
6301: validate_exchange_rate_type (
6300:
6301: validate_exchange_rate_type (
6302: x_errmsg => x_errmsg,
6303: x_return_status => x_return_status);
6304: IF x_return_status = fnd_api.g_ret_sts_unexp_error THEN
6305: RETURN;
6306: END IF;
6307:
6308: -- After validation of user input values
6310:
6311: populate_ref_hdr_attributes(
6312: x_errmsg => x_errmsg,
6313: x_return_status => x_return_status);
6314: IF x_return_status = FND_API.G_RET_STS_UNEXP_ERROR
6315: THEN
6316: RETURN;
6317: END IF;
6318:
6318:
6319: validate_gl_date (
6320: x_errmsg => x_errmsg,
6321: x_return_status => x_return_status);
6322: IF x_return_status = fnd_api.g_ret_sts_unexp_error THEN
6323: RETURN;
6324: END IF;
6325:
6326: validate_paying_customer_id (
6326: validate_paying_customer_id (
6327: p_trx_system_param_rec => p_trx_system_param_rec,
6328: x_errmsg => x_errmsg,
6329: x_return_status => x_return_status);
6330: IF x_return_status = fnd_api.g_ret_sts_unexp_error THEN
6331: RETURN;
6332: END IF;
6333:
6334: validate_paying_site_use_id (
6334: validate_paying_site_use_id (
6335: p_trx_system_param_rec => p_trx_system_param_rec,
6336: x_errmsg => x_errmsg,
6337: x_return_status => x_return_status);
6338: IF x_return_status = fnd_api.g_ret_sts_unexp_error THEN
6339: RETURN;
6340: END IF;
6341:
6342: populate_doc_sequence (
6343: p_trx_system_param_rec => p_trx_system_param_rec,
6344: p_trx_profile_rec => p_trx_profile_rec,
6345: x_errmsg => x_errmsg,
6346: x_return_status => x_return_status);
6347: IF x_return_status = FND_API.G_RET_STS_UNEXP_ERROR
6348: THEN
6349: RETURN;
6350: END IF;
6351:
6353:
6354: copy_pmt_extension(
6355: x_errmsg => x_errmsg,
6356: x_return_status => x_return_status);
6357: IF x_return_status = FND_API.G_RET_STS_UNEXP_ERROR
6358: THEN
6359: RETURN;
6360: END IF;
6361:
6362:
6363: populate_ship_to_site_use_id(
6364: x_errmsg => x_errmsg,
6365: x_return_status => x_return_status);
6366: IF x_return_status = FND_API.G_RET_STS_UNEXP_ERROR
6367: THEN
6368: RETURN;
6369: END IF;
6370:
6372:
6373: populate_ship_to_site_use_id(
6374: x_errmsg => x_errmsg,
6375: x_return_status => x_return_status);
6376: IF x_return_status = FND_API.G_RET_STS_UNEXP_ERROR
6377: THEN
6378: RETURN;
6379: END IF;
6380:
6380:
6381: populate_ship_to_address_id(
6382: x_errmsg => x_errmsg,
6383: x_return_status => x_return_status);
6384: IF x_return_status = FND_API.G_RET_STS_UNEXP_ERROR
6385: THEN
6386: RETURN;
6387: END IF;
6388:
6388:
6389: populate_ship_to_contact_id(
6390: x_errmsg => x_errmsg,
6391: x_return_status => x_return_status);
6392: IF x_return_status = FND_API.G_RET_STS_UNEXP_ERROR
6393: THEN
6394: RETURN;
6395: END IF;
6396: validate_ship_to_customer_name(
6395: END IF;
6396: validate_ship_to_customer_name(
6397: x_errmsg => x_errmsg,
6398: x_return_status => x_return_status);
6399: IF x_return_status = FND_API.G_RET_STS_UNEXP_ERROR
6400: THEN
6401: RETURN;
6402: END IF;
6403:
6403:
6404: validate_ship_to_cust_number(
6405: x_errmsg => x_errmsg,
6406: x_return_status => x_return_status);
6407: IF x_return_status = FND_API.G_RET_STS_UNEXP_ERROR
6408: THEN
6409: RETURN;
6410: END IF;
6411:
6411:
6412: validate_ship_to_customer_id(
6413: x_errmsg => x_errmsg,
6414: x_return_status => x_return_status);
6415: IF x_return_status = FND_API.G_RET_STS_UNEXP_ERROR
6416: THEN
6417: RETURN;
6418: END IF;
6419:
6420:
6421: validate_ship_to_site_use_id(
6422: x_errmsg => x_errmsg,
6423: x_return_status => x_return_status);
6424: IF x_return_status = FND_API.G_RET_STS_UNEXP_ERROR
6425: THEN
6426: RETURN;
6427: END IF;
6428:
6428:
6429: validate_ship_to_location(
6430: x_errmsg => x_errmsg,
6431: x_return_status => x_return_status);
6432: IF x_return_status = FND_API.G_RET_STS_UNEXP_ERROR
6433: THEN
6434: RETURN;
6435: END IF;
6436:
6436:
6437: validate_ship_to_address(
6438: x_errmsg => x_errmsg,
6439: x_return_status => x_return_status);
6440: IF x_return_status = FND_API.G_RET_STS_UNEXP_ERROR
6441: THEN
6442: RETURN;
6443: END IF;
6444:
6444:
6445: validate_ship_to_contact_id(
6446: x_errmsg => x_errmsg,
6447: x_return_status => x_return_status);
6448: IF x_return_status = FND_API.G_RET_STS_UNEXP_ERROR
6449: THEN
6450: RETURN;
6451: END IF;
6452:
6454: p_trx_system_parameters_rec => p_trx_system_param_rec,
6455: p_trx_profile_rec => p_trx_profile_rec,
6456: x_errmsg => x_errmsg,
6457: x_return_status => x_return_status);
6458: IF x_return_status = FND_API.G_RET_STS_UNEXP_ERROR
6459: THEN
6460: RETURN;
6461: END IF;
6462:
6464: p_trx_system_param_rec => p_trx_system_param_rec,
6465: x_errmsg => x_errmsg,
6466: x_return_status => x_return_status);
6467:
6468: IF x_return_status = FND_API.G_RET_STS_UNEXP_ERROR
6469: THEN
6470: RETURN;
6471: END IF;
6472:
6472:
6473: validate_territory_id (
6474: x_errmsg => x_errmsg,
6475: x_return_status => x_return_status);
6476: IF x_return_status = FND_API.G_RET_STS_UNEXP_ERROR
6477: THEN
6478: RETURN;
6479: END IF;
6480:
6481: populate_payment_method (
6482: x_errmsg => x_errmsg,
6483: x_return_status => x_return_status);
6484:
6485: IF x_return_status = FND_API.G_RET_STS_UNEXP_ERROR
6486: THEN
6487: RETURN;
6488: END IF;
6489:
6489:
6490: validate_payment_method (
6491: x_errmsg => x_errmsg,
6492: x_return_status => x_return_status);
6493: IF x_return_status = fnd_api.g_ret_sts_unexp_error THEN
6494: RETURN;
6495: END IF;
6496:
6497: /* 4188835 - Default legal_entity_id */
6497: /* 4188835 - Default legal_entity_id */
6498: populate_legal_entity (
6499: x_errmsg => x_errmsg,
6500: x_return_status => x_return_status);
6501: IF x_return_status = FND_API.G_RET_STS_UNEXP_ERROR
6502: THEN
6503: RETURN;
6504: END IF;
6505:
6506: /* 4188835 - validate legal entity */
6507: validate_legal_entity(
6508: x_errmsg => x_errmsg,
6509: x_return_status => x_return_status);
6510: IF x_return_status = FND_API.G_RET_STS_UNEXP_ERROR
6511: THEN
6512: RETURN;
6513: END IF;
6514:
6530: /*4369585-4589309*/
6531: populate_printing_pending(
6532: x_errmsg => x_errmsg,
6533: x_return_status => x_return_status);
6534: IF x_return_status = FND_API.G_RET_STS_UNEXP_ERROR
6535: THEN
6536: RETURN;
6537: END IF;
6538:
6548: THEN
6549: debug ('AR_INVOICE_UTILS.validate_lines (+)' );
6550: END IF;
6551:
6552: x_return_status := FND_API.G_RET_STS_SUCCESS;
6553:
6554: populate_line_attributes(
6555: x_errmsg => x_errmsg,
6556: x_return_status => x_return_status);
6553:
6554: populate_line_attributes(
6555: x_errmsg => x_errmsg,
6556: x_return_status => x_return_status);
6557: IF x_return_status = FND_API.G_RET_STS_UNEXP_ERROR
6558: THEN
6559: RETURN;
6560: END IF;
6561:
6561:
6562: validate_line_integrity(
6563: x_errmsg => x_errmsg,
6564: x_return_status => x_return_status);
6565: IF x_return_status = FND_API.G_RET_STS_UNEXP_ERROR
6566: THEN
6567: RETURN;
6568: END IF;
6569:
6569:
6570: validate_tax_freight_lines (
6571: x_errmsg => x_errmsg,
6572: x_return_status => x_return_status);
6573: IF x_return_status = FND_API.G_RET_STS_UNEXP_ERROR
6574: THEN
6575: RETURN;
6576: END IF;
6577: validate_item_kflex (
6576: END IF;
6577: validate_item_kflex (
6578: x_errmsg => x_errmsg,
6579: x_return_status => x_return_status);
6580: IF x_return_status = FND_API.G_RET_STS_UNEXP_ERROR
6581: THEN
6582: RETURN;
6583: END IF;
6584: validate_line_description(
6583: END IF;
6584: validate_line_description(
6585: x_errmsg => x_errmsg,
6586: x_return_status => x_return_status);
6587: IF x_return_status = FND_API.G_RET_STS_UNEXP_ERROR
6588: THEN
6589: RETURN;
6590: END IF;
6591: validate_quantity_invoiced(
6590: END IF;
6591: validate_quantity_invoiced(
6592: x_errmsg => x_errmsg,
6593: x_return_status => x_return_status);
6594: IF x_return_status = FND_API.G_RET_STS_UNEXP_ERROR
6595: THEN
6596: RETURN;
6597: END IF;
6598: validate_unit_selling_price(
6597: END IF;
6598: validate_unit_selling_price(
6599: x_errmsg => x_errmsg,
6600: x_return_status => x_return_status);
6601: IF x_return_status = FND_API.G_RET_STS_UNEXP_ERROR
6602: THEN
6603: RETURN;
6604: END IF;
6605: validate_accounting_rules(
6604: END IF;
6605: validate_accounting_rules(
6606: x_errmsg => x_errmsg,
6607: x_return_status => x_return_status);
6608: IF x_return_status = FND_API.G_RET_STS_UNEXP_ERROR
6609: THEN
6610: RETURN;
6611: END IF;
6612: validate_freight(
6611: END IF;
6612: validate_freight(
6613: x_errmsg => x_errmsg,
6614: x_return_status => x_return_status);
6615: IF x_return_status = FND_API.G_RET_STS_UNEXP_ERROR
6616: THEN
6617: RETURN;
6618: END IF;
6619: -- populate extended and revenue amount
6621:
6622: validate_line_type(
6623: x_errmsg => x_errmsg,
6624: x_return_status => x_return_status);
6625: IF x_return_status = FND_API.G_RET_STS_UNEXP_ERROR
6626: THEN
6627: RETURN;
6628: END IF;
6629: check_dup_line_number(
6628: END IF;
6629: check_dup_line_number(
6630: x_errmsg => x_errmsg,
6631: x_return_status => x_return_status);
6632: IF x_return_status = FND_API.G_RET_STS_UNEXP_ERROR
6633: THEN
6634: RETURN;
6635: END IF;
6636:
6636:
6637: validate_warehouse_id (
6638: x_errmsg => x_errmsg,
6639: x_return_status => x_return_status);
6640: IF x_return_status = FND_API.G_RET_STS_UNEXP_ERROR
6641: THEN
6642: RETURN;
6643: END IF;
6644:
6644:
6645: validate_uom_code(
6646: x_errmsg => x_errmsg,
6647: x_return_status => x_return_status);
6648: IF x_return_status = FND_API.G_RET_STS_UNEXP_ERROR
6649: THEN
6650: RETURN;
6651: END IF;
6652:
6654: routine
6655: validate_tax_code (
6656: x_errmsg => x_errmsg,
6657: x_return_status => x_return_status);
6658: IF x_return_status = FND_API.G_RET_STS_UNEXP_ERROR
6659: THEN
6660: RETURN;
6661: END IF;
6662: */
6663:
6664: validate_tax_exemption(
6665: x_errmsg => x_errmsg,
6666: x_return_status => x_return_status);
6667: IF x_return_status = FND_API.G_RET_STS_UNEXP_ERROR
6668: THEN
6669: RETURN;
6670: END IF;
6671:
6671:
6672: validate_more_tab (
6673: x_errmsg => x_errmsg,
6674: x_return_status => x_return_status);
6675: IF x_return_status = FND_API.G_RET_STS_UNEXP_ERROR
6676: THEN
6677: RETURN;
6678: END IF;
6679:
6680: validate_line_ussgl_code (
6681: x_errmsg => x_errmsg,
6682: x_return_status => x_return_status);
6683:
6684: IF x_return_status = FND_API.G_RET_STS_UNEXP_ERROR
6685: THEN
6686: RETURN;
6687: END IF;
6688:
6716: IF pg_debug = 'Y'
6717: THEN
6718: debug ('AR_INVOICE_UTILS.validate_accounting_flex (+)' );
6719: END IF;
6720: x_return_status := FND_API.G_RET_STS_SUCCESS;
6721: FOR CccidRec IN Cccid
6722: LOOP
6723: IF NOT fnd_flex_keyval.validate_ccid (
6724: appl_short_name => 'SQLGL',
6747:
6748: EXCEPTION
6749: WHEN OTHERS THEN
6750: x_errmsg := 'Error in AR_INVOICE_UTILS.validate_accounting_flex '||sqlerrm;
6751: x_return_status := FND_API.G_RET_STS_UNEXP_ERROR;
6752: RETURN;
6753: END;
6754:
6755: PROCEDURE validate_distributions (
6766: debug ('AR_INVOICE_UTILS.validate_distributions (+)' );
6767: debug ('Percentage Is null for Account Class: REC (+)' );
6768: END IF;
6769:
6770: x_return_status := FND_API.G_RET_STS_SUCCESS;
6771:
6772: l_precision := p_trx_system_parameters_rec.precision;
6773: l_min_acc_unit :=
6774: p_trx_system_parameters_rec.MINIMUM_ACCOUNTABLE_UNIT;
7201:
7202: validate_accounting_flex (
7203: x_errmsg => x_errmsg,
7204: x_return_status => x_return_status );
7205: IF x_return_status = FND_API.G_RET_STS_UNEXP_ERROR
7206: THEN
7207: RETURN;
7208: END IF;
7209:
7235:
7236: EXCEPTION
7237: WHEN OTHERS THEN
7238: x_errmsg := 'Error in AR_INVOICE_UTILS.validate_distributions '||sqlerrm;
7239: x_return_status := FND_API.G_RET_STS_UNEXP_ERROR;
7240: RETURN;
7241: END validate_distributions;
7242:
7243:
7292: THEN
7293: debug ('AR_INVOICE_UTILS.validate_salescredits (+)' );
7294: END IF;
7295:
7296: x_return_status := FND_API.G_RET_STS_SUCCESS;
7297:
7298: l_message_name := gl_public_sector.get_message_name (
7299: p_message_name => 'AR_INAPI_INVALID_SALESREP_ID',
7300: p_app_short_name => 'AR');
7722:
7723: EXCEPTION
7724: WHEN OTHERS THEN
7725: x_errmsg := 'AR_INVOICE_UTILS.validate_salescredits '||sqlerrm;
7726: x_return_status := FND_API.G_RET_STS_UNEXP_ERROR;
7727: RETURN;
7728:
7729: END validate_salescredits;
7730: