Professional Documents
Culture Documents
Api Ar Invoice
Api Ar Invoice
Api Ar Invoice
35538) */
DECLARE
--1.
l_return_status VARCHAR2 (1);
l_msg_count NUMBER;
l_msg_data VARCHAR2 (2000);
l_batch_id NUMBER;
l_cnt NUMBER := 0;
l_customer_trx_id NUMBER;
cnt NUMBER;
item_id NUMBER;
BILL_TO_cust_NO VARCHAR2 (100);
SHIP_TO_cust_NO VARCHAR2 (100);
VORG_ID NUMBER;
SI_ID NUMBER;
V_CUST_TRX_TYPE_ID NUMBER;
BATCH_SOURCE_ID NUMBER;
BILL_TO_cust_ID NUMBER;
lLineDistCouner NUMBER := 1;
l_batch_source_rec ar_invoice_api_pub.batch_source_rec_type;
l_trx_header_tbl ar_invoice_api_pub.trx_header_tbl_type;
l_trx_lines_tbl ar_invoice_api_pub.trx_line_tbl_type;
l_trx_dist_tbl ar_invoice_api_pub.trx_dist_tbl_type;
l_trx_salescredits_tbl ar_invoice_api_pub.trx_salescredits_tbl_type;
CURSOR s1
IS
SELECT DISTINCT
A.ORG_NAME,
BILL_TO_CUSTOMER_NAME,
SHIP_TO_CUSTOMER_NAME,
(SELECT MAX (CUSTOMER_TRX_ID) + 1 FROM RA_CUSTOMER_TRX_ALL)
trx_header_id,
A.CUST_TRX_TYPE,
A.BATCH_SOURCE,
A.gl_date,
A.trx_currency,
A.term_id,
A.trx_date,
A.exchange_rate_type,
A.exchange_date,
A.exchange_rate,
A.salesrep_id,
A.user_id,
A.resp_id,
A.app_id-- ,BILL_TO_ACCOUNT_NUMBER
,
A.CODE_COMBINATION_ID,
A.CUS_SITE,
B.SITE_USE_ID,
A.ATTRIBUTE1,
A.TRX_HEADER_ID1
FROM raya_ar_invoice_table A, WSH_CUSTOMER_SITES_V B
WHERE A.status IS NULL AND
B.SITE_USE_ID = A.CUS_SITE
AND a.TRX_HEADER_ID1 = 3910018;
CURSOR s2 (
trx_header1 IN NUMBER)
IS
SELECT ORG_NAME,
BILL_TO_CUSTOMER_NAME,
SHIP_TO_CUSTOMER_NAME,
TO_NUMBER (
(SELECT MAX (CUSTOMER_TRX_ID) + 1 FROM RA_CUSTOMER_TRX_ALL))
trx_header_id,
CUST_TRX_TYPE,
BATCH_SOURCE,
(SELECT MAX (CUSTOMER_TRX_LINE_ID) + 1
FROM RA_CUSTOMER_TRX_LINES_ALL)
trx_line_id,
line_number,
description,
quantity_invoiced,
unit_selling_price,
trx_date-- ,item_number
--,item_desc
,
status,
gl_date,
trx_currency,
term_id,
exchange_rate_type,
exchange_date,
exchange_rate,
user_id,
resp_id,
app_id,
CODE_COMBINATION_ID,
TRX_HEADER_ID1,
TRX_LINE_ID1
FROM raya_ar_invoice_table
WHERE TRX_HEADER_ID1 = trx_header1
AND status IS NULL
AND TRX_HEADER_ID1 = 3910018;
--xx number;
BEGIN ---2.
mo_global.init ('AR');
FOR i IN s1
LOOP
/*
SELECT SITE_USE_ID
INTO SI_ID
FROM WSH_CUSTOMER_SITES_V
WHERE LOCATION = I.CUS_SITE ;
*/
SELECT CUSTOMER_NUMBER ,CUSTOMER_ID
INTO BILL_TO_cust_NO , BILL_TO_cust_ID
FROM ar_customers_all_v
WHERE CUSTOMER_NAME = i.BILL_TO_CUSTOMER_NAME;
BEGIN
SELECT CUSTOMER_NUMBER
INTO SHIP_TO_cust_NO
FROM ar_customers_all_v
WHERE CUSTOMER_NAME = i.SHIP_TO_CUSTOMER_NAME;
EXCEPTION
WHEN NO_DATA_FOUND
THEN
SHIP_TO_cust_NO := NULL;
END;
SELECT ORGANIZATION_ID
INTO VORG_ID
FROM hr_operating_units
WHERE NAME = I.ORG_NAME;
mo_global.init ('AR');
-- xla_security_pkg.set_security_context (222);
---- l_trx_header_tbl(1).exchange_rate_type:=i.exchange_rate_type;
-- l_trx_header_tbl(1).exchange_date:=i.exchange_date;
-- l_trx_header_tbl(1).exchange_rate:=i.exchange_rate;
l_batch_source_rec.batch_source_id := BATCH_SOURCE_ID; -- batch Source_id
-- l_trx_header_tbl(1).primary_salesrep_id:=-3; --i.salesrep_id;
FOR ii IN s2 (i.TRX_HEADER_ID1)
LOOP
/*
select distinct inventory_item_id
into item_id
from mtl_system_items
where segment1=ii.item_number;
*/
DBMS_OUTPUT.put_line ('item_id=' || item_id);
l_trx_lines_tbl (ii.line_number).quantity_invoiced :=
ii.quantity_invoiced;
l_trx_lines_tbl (ii.line_number).unit_selling_price :=
ii.unit_selling_price;
END LOOP;
AR_INVOICE_API_PUB.create_single_invoice (
p_api_version => 1.0,
p_batch_source_rec => l_batch_source_rec,
p_trx_header_tbl => l_trx_header_tbl,
p_trx_lines_tbl => l_trx_lines_tbl,
p_trx_dist_tbl => l_trx_dist_tbl,
p_trx_salescredits_tbl => l_trx_salescredits_tbl,
x_customer_trx_id => l_customer_trx_id,
x_return_status => l_return_status,
x_msg_count => l_msg_count,
x_msg_data => l_msg_data);
IF l_return_status = fnd_api.g_ret_sts_error
OR l_return_status = fnd_api.g_ret_sts_unexp_error
THEN
DBMS_OUTPUT.put_line ('unexpected errors found!');
ELSE
SELECT COUNT (*) INTO cnt FROM ar_trx_errors_gt;
IF cnt = 0
THEN
DBMS_OUTPUT.put_line ('Customer Trx id ' || l_customer_trx_id);
UPDATE raya_ar_invoice_table
SET status = 'S'
WHERE TRX_HEADER_ID1 =
i.TRX_HEADER_ID1;
ELSE
INSERT INTO raya_ar_trx_errors_gt
(SELECT * FROM ar_trx_errors_gt);
UPDATE raya_ar_invoice_table
SET status = 'E'
WHERE TRX_HEADER_ID1 =
i.TRX_HEADER_ID1;
DBMS_OUTPUT.put_line (
'Transaction not Created, Please check
ar_trx_errors_gt table');
END IF;
END IF;
commit;
END LOOP;
END;
/