0% found this document useful (0 votes)
33 views5 pages

New Text Document

This stored procedure processes invoice data from a staging table and inserts it into interface tables to create invoice records. It loops through rows in the staging table, validates and looks up reference data for fields, handles errors, and either inserts the data or updates the status in the staging table. Variables are declared to store errors, messages and looked up attribute values during processing.

Uploaded by

gufran.momin25
Copyright
© © All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as TXT, PDF, TXT or read online on Scribd
0% found this document useful (0 votes)
33 views5 pages

New Text Document

This stored procedure processes invoice data from a staging table and inserts it into interface tables to create invoice records. It loops through rows in the staging table, validates and looks up reference data for fields, handles errors, and either inserts the data or updates the status in the staging table. Variables are declared to store errors, messages and looked up attribute values during processing.

Uploaded by

gufran.momin25
Copyright
© © All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as TXT, PDF, TXT or read online on Scribd
You are on page 1/ 5

CREATE OR REPLACE PROCEDURE XXSD_INV_CREAT_LINE

AS
V_ERR_FLAG VARCHAR2(100);
V_MESSAGE VARCHAR2(100);
V_ORG_ID NUMBER;
V_VENDOR_ID NUMBER;
V_VENDOR_SITE_ID NUMBER;
V_INV_TYPE_CODE VARCHAR2(100);
V_INV_COUNT NUMBER;
V_CURRENCY_CODE VARCHAR2(10);
V_INV_ID NUMBER;
V_INV_LINE_ID NUMBER;
V_INVOICE_AMOUNT NUMBER;
v_terms_id NUMBER;
V_PAY_METHOD VARCHAR2(10);
v_source_code VARCHAR2(10);
V_STARTING_TIME VARCHAR2(100);
V_ENDING_TIME VARCHAR2(100);
V_SOURCE_COUNT NUMBER;
V_CODE_COMBINATION_ID NUMBER;
v_line_type VARCHAR2(400);
c_inv_numbers NUMBER;
CURSOR c_invoice
IS
SELECT *
FROM XXSD_STAG_AP_INV_TABLE
WHERE NVL(STATUS,'NEW') NOT IN ('PROCESSED');
BEGIN
FOR i IN c_invoice
LOOP
----------------variable null---------------------------------
V_ERR_FLAG := NULL;
V_MESSAGE := NULL;
V_ORG_ID := NULL;
V_VENDOR_ID := NULL;
V_VENDOR_SITE_ID := NULL;
V_INV_COUNT := 0;
V_CURRENCY_CODE := NULL;
V_INV_TYPE_CODE := NULL;
V_INVOICE_AMOUNT :=0;
V_PAY_METHOD := NULL;
V_CODE_COMBINATION_ID :=NULL;
V_INV_LINE_ID := NULL;
-------------------------------------------startiing date update for staging
table----------------------------
V_STARTING_TIME := TO_CHAR (SYSDATE, 'DD-mm-YYYY');

------------------------Operating unit----------------------------------
BEGIN
SELECT ORGANIZATION_ID
INTO V_ORG_ID
FROM HR_ALL_ORGANIZATION_UNITS
WHERE TRIM(name) = TRIM(i.OPERATING_UNIT);
EXCEPTION
WHEN OTHERS THEN
V_MESSAGE :=V_MESSAGE||'---'||'Invalid Operating Unit';
V_ERR_FLAG :='Y';
END;
---------------------------Supplier---------------------------
BEGIN
SELECT VENDOR_ID
INTO v_vendor_id
FROM AP_SUPPLIERS
WHERE upper(vendor_name)=upper(i.TRADING_PARTNER);
EXCEPTION
WHEN OTHERS THEN
V_ERR_FLAG :='Y';
V_MESSAGE :=V_MESSAGE||'---'||'Invalid Supplier';
END;
---------------------------Supplier
site---------------------------------------------
BEGIN
SELECT VENDOR_SITE_ID
INTO v_vendor_site_id
FROM AP_SUPPLIER_SITES_ALL
WHERE VENDOR_ID =V_VENDOR_ID
AND ORG_ID =V_ORG_ID
AND UPPER(VENDOR_SITE_CODE)=UPPER(I.SUPPLIER_SITE_NAME);
EXCEPTION
WHEN OTHERS THEN
V_ERR_FLAG :='Y';
V_MESSAGE :=V_MESSAGE||'Invalid Supplier Site';
END;
--------------------------------Payment
method-----------------------------------------------
BEGIN
SELECT LOOKUP_CODE
INTO V_PAY_METHOD
FROM FND_LOOKUP_VALUES
WHERE LOOKUP_TYPE='PAYMENT METHOD'
AND trim(meaning)=trim(i.payment_method);
EXCEPTION
WHEN OTHERS THEN
V_ERR_FLAG :='Y';
V_MESSAGE :=V_MESSAGE|| 'Invalid Payment Method';
END;
---------------------------------Invoice
num----------------------------------------
BEGIN
SELECT COUNT(*)
INTO V_INV_COUNT
FROM AP_INVOICES_ALL
WHERE ORG_ID =V_ORG_ID
AND VENDOR_ID =V_VENDOR_ID
AND VENDOR_SITE_ID =V_VENDOR_SITE_ID
AND trim(invoice_num)=trim(i.invoice_num);
EXCEPTION
WHEN OTHERS THEN
V_ERR_FLAG :='Y';
V_MESSAGE :=V_MESSAGE|| 'Invalid Payment Method';
END;
--------------------Invoice
currency------------------------------------------------
BEGIN
SELECT CURRENCY_CODE
INTO V_CURRENCY_CODE
FROM FND_CURRENCIES_TL
WHERE trim(currency_code)=trim(i.PAYMENT_CURR);
EXCEPTION
WHEN OTHERS THEN
V_ERR_FLAG :='Y';
V_MESSAGE :=V_MESSAGE||'Invalid Invoice Currency';
END;
-------------------------------Terms
name------------------------------------------
BEGIN
SELECT TERM_ID
INTO V_TERMS_ID
FROM AP_TERMS_TL
WHERE upper(name)=upper(i.TERMS);
EXCEPTION
WHEN OTHERS THEN
V_ERR_FLAG :='Y';
V_MESSAGE :=V_MESSAGE|| 'Invalid Terms Name';
END;
--------------------------------Invoice
source-------------------------------------------
BEGIN
SELECT lookup_code
INTO v_source_code
FROM fnd_lookup_values
WHERE lookup_type='SOURCE'
AND meaning ='EXTERNAL';
EXCEPTION
WHEN OTHERS THEN
V_ERR_FLAG :='Y';
V_MESSAGE :=V_MESSAGE||'Invalid invoice source';
END;
------------------------------Invoice
type-----------------------------------------------
BEGIN
SELECT LOOKUP_CODE
INTO V_INV_TYPE_CODE
FROM FND_LOOKUP_VALUES
WHERE LOOKUP_TYPE ='INVOICE TYPE'
AND TRIM(MEANING) =TRIM(I.type)
AND VIEW_APPLICATION_ID=200;
EXCEPTION
WHEN OTHERS THEN
v_inv_type_code :=NULL;
V_ERR_FLAG :='Y';
V_MESSAGE :='Invalid Invoice Type';
END;
---------------------------------------insert interface
number---------------------------------------------
IF NVL(V_ERR_FLAG,'NEW')='NEW' THEN
SELECT AP_INVOICES_INTERFACE_S.NEXTVAL INTO V_INV_ID FROM DUAL;
INSERT
INTO AP_INVOICES_INTERFACE
(
org_id,
INVOICE_TYPE_LOOKUP_CODE,
VENDOR_ID,
vendor_site_id,
INVOICE_DATE,
INVOICE_NUM,
INVOICE_ID,
invoice_currency_code,
invoice_amount,
gl_date,
PAYMENT_METHOD_LOOKUP_CODE,
payment_method_code,
terms_id,
CREATION_DATE,
LAST_UPDATE_DATE,
source
)
VALUES
(
v_org_id,
V_INV_TYPE_CODE,
V_VENDOR_ID,
v_vendor_site_id,
I.INVOICE_DATE,
I.INVOICE_NUM,
V_INV_ID,
i.invoice_currency,
i.INVOICE_AMOUNT,
i.GL_DATE,
V_PAY_METHOD,
v_pay_method,
v_terms_id,
sysdate,
SYSDATE,
v_source_code
);
--- COMMIT;
--------------------------INTERFACE LINE--------------------
INSERT
INTO ap_invoice_lines_interface
(
invoice_id,
invoice_line_id,
---line_number,
---amount,
org_id,
CREATION_DATE,
LAST_UPDATE_DATE,
DIST_CODE_COMBINATION_ID,
line_type_lookup_code
)
VALUES
(
v_inv_id,
v_inv_line_id,
--i.line_number,
--i.LINE_AMOUNT,
v_org_id,
sysdate,
SYSDATE,
V_CODE_COMBINATION_ID,
'ITEM'
);
V_Ending_Time:= TO_CHAR (SYSDATE, 'DD-MON-YYYY HH:MI:SS');
UPDATE XXSD_STAG_AP_INV_TABLE
SET STATUS ='P',
----Ending_Time = V_Ending_Time,
MESSAGE = V_MESSAGE
WHERE invoice_num=i.invoice_num
AND SUPPLIER_NUM =i.SUPPLIER_NUM;
---and id =i.id;
ELSE
UPDATE XXSD_STAG_AP_INV_TABLE
SET STATUS ='E',
MESSAGE =V_MESSAGE
WHERE invoice_num=i.invoice_num
AND SUPPLIER_NUM =i.SUPPLIER_NUM;
--and id=i.id;
END IF;
END LOOP;
END;

You might also like

pFad - Phonifier reborn

Pfad - The Proxy pFad of © 2024 Garber Painting. All rights reserved.

Note: This service is not intended for secure transactions such as banking, social media, email, or purchasing. Use at your own risk. We assume no liability whatsoever for broken pages.


Alternative Proxies:

Alternative Proxy

pFad Proxy

pFad v3 Proxy

pFad v4 Proxy