Api Ar Invoice

You might also like

Download as txt, pdf, or txt
Download as txt, pdf, or txt
You are on page 1of 5

/* Formatted on 2/2/2020 2:19:03 PM (QP5 v5.256.13226.

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;

-- DBMS_OUTPUT.put_line ('cust_id=' || cust_id);

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;

SELECT DISTINCT BATCH_SOURCE_ID


INTO BATCH_SOURCE_ID
FROM RA_BATCH_SOURCES_ALL
WHERE NAME = I.BATCH_SOURCE;

SELECT DISTINCT CUST_TRX_TYPE_ID


INTO V_CUST_TRX_TYPE_ID
FROM RA_CUST_TRX_TYPES_ALL
WHERE NAME = I.CUST_TRX_TYPE;

--mo_global.set_policy_context('S',81); -- take org_id

--fnd_global.apps_initialize(1133, 51190, 222); -- user_id, resp_id, app_id

mo_global.init ('AR');
-- xla_security_pkg.set_security_context (222);

l_trx_header_tbl (1).trx_header_id := i.TRX_HEADER_ID1; -- may be neglected


and take another id from system
l_trx_header_tbl (1).BILL_TO_ACCOUNT_NUMBER := BILL_TO_cust_NO;
--i.bill_to_customer_id;
l_trx_header_tbl (1).SOLD_TO_CUSTOMER_ID := BILL_TO_cust_ID;
--i.bill_to_customer_id;
l_trx_header_tbl (1).SHIP_TO_ACCOUNT_NUMBER := SHIP_TO_cust_NO;
l_trx_header_tbl (1).ORG_ID := VORG_ID;
l_trx_header_tbl (1).BILL_TO_SITE_USE_ID := I.SITE_USE_ID;
l_trx_header_tbl (1).cust_trx_type_id := V_CUST_TRX_TYPE_ID;
l_trx_header_tbl (1).gl_date := i.gl_date;
l_trx_header_tbl (1).trx_currency := i.trx_currency;
l_trx_header_tbl (1).term_id := I.term_id;
--i.term_id;
l_trx_header_tbl (1).trx_date := i.trx_date;

---- 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;

-- DBMS_OUTPUT.put_line ('cust_trx_type_id=' || i.cust_trx_type_id);

--l_batch_source_rec.batch_source_id := 24; -- batch Source_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);

--4. Populate line 1 information.


l_trx_lines_tbl (ii.line_number).trx_header_id := ii.TRX_HEADER_ID1;
l_trx_lines_tbl (ii.line_number).trx_line_id := ii.TRX_LINE_ID1;
l_trx_lines_tbl (ii.line_number).line_number := ii.line_number;
--l_trx_lines_tbl(ii.line_number).inventory_item_id := item_id;
l_trx_lines_tbl (ii.line_number).DESCRIPTION := ii.DESCRIPTION;
-- l_trx_lines_tbl(ii.line_number).TAX_CLASSIFICATION_CODE := 'NOTAX';

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;

l_trx_lines_tbl (ii.line_number).line_type := 'LINE';


/* l_trx_dist_tbl(lLineDistCouner).account_class := 'REV';
l_trx_dist_tbl(lLineDistCouner).PERCENT := 100;
l_trx_dist_tbl(lLineDistCouner).code_combination_id :=218919 ;*/
-- ii.Code_combination_id;

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);

DBMS_OUTPUT.put_line ('l_msg_count=' || l_msg_count);


DBMS_OUTPUT.put_line ('l_msg_data=' || l_msg_data);
DBMS_OUTPUT.put_line ('l_return_status=' || l_return_status);

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;
/

-- End of DDL Script for Procedure APPS.CITE_AR_INVOICE

You might also like