0% found this document useful (0 votes)
28 views9 pages

New 9

This stored procedure loops through a cursor containing delivery information and checks for existing cheque details. If a cheque is available, it updates the delivery details with the cheque number, bank and maturity date. If no cheque is available, it updates the delivery details with a message. It also handles updating delivery details if the status is 'Cheque Bounce' or the delivery amount is less than 52,000.

Uploaded by

anand yadav
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)
28 views9 pages

New 9

This stored procedure loops through a cursor containing delivery information and checks for existing cheque details. If a cheque is available, it updates the delivery details with the cheque number, bank and maturity date. If no cheque is available, it updates the delivery details with a message. It also handles updating delivery details if the status is 'Cheque Bounce' or the delivery amount is less than 52,000.

Uploaded by

anand yadav
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/ 9

CREATE OR REPLACE PROCEDURE APPS.

ERP_CHQ_TAG_AUTO1 IS

v_out number;

v_out1 number;

V_DEL_ID NUMBER;

v_chk_num varchar2(100);

v_chq_id NUMBER;

V_BANK_NAME varchar2(240);

V_MATURITY_DATE date;

CURSOR C1 IS

SELECT DISTINCT PARTY_NAME,PARTY_ID,PARTY_NUMBER,CUSTOMER_ID,


-- RELEASED_STATUS,
GST_TAX_INVOICE_NUM GST_INVOICE_NUM,
ROUND(SUM(TOTAL_VALUE)+SUM(GST_TAX),2)DELIVERY_AMT ,---round changed to 2 by
kunal on 10-6-2019 bcoz issue comming in 4 digits after decimal point
---round added by kunal on 1mar2019 bcoz issue comming in 4 digits after
decimal point
DIST_LOCATION,
-- PAYMENT_TERM_ID,
SHIP_FROM_ORG_ID,
TCS_EXEMPT_FLAG,
TDS_DEDUCTION,
ROUND(SUM(TOTAL_VAL_WITHOUT_TDS)+SUM(GST_TAX),2)DELIVERY_AMT_WITHOUT_TDS,
status
from
(
SELECT DISTINCT
BILL_PARTY.PARTY_NAME,
BILL_PARTY.PARTY_ID,
BILL_PARTY.PARTY_NUMBER,
HCA.CUST_ACCOUNT_ID CUSTOMER_ID,
BILL_PARTY.JGZZ_FISCAL_CODE DIST_LOCATION,
WD.DELIVERY_ID,
-- wd.delivery_detail_id,---added by kunal on 30-oct-2018 to select all rows
wd.RELEASED_STATUS,
-- H.ORDER_NUMBER,
-- null DELIVERY_DETAIL_ID,
null TAX_INVOICE_NUM,
(WDD.REQUESTED_QUANTITY * L.UNIT_SELLING_PRICE)TOTAL_VAL_WITHOUT_TDS,
decode(BILL_PARTY.ATTRIBUTE11,'Y',((WDD.REQUESTED_QUANTITY *
L.UNIT_SELLING_PRICE)-(((WDD.REQUESTED_QUANTITY * L.UNIT_SELLING_PRICE)*0.1)/100)),
(WDD.REQUESTED_QUANTITY * L.UNIT_SELLING_PRICE))TOTAL_VALUE,
(NVL(ERP_CGST_TAX_VALUE(WD.DELIVERY_ID,WDD.DELIVERY_DETAIL_ID ),0)+
NVL (ERP_SGST_TAX_VALUE (WD.DELIVERY_ID,WDD.DELIVERY_DETAIL_ID ),0)+
NVL (ERP_IGST_TAX_VALUE (WD.DELIVERY_ID,WDD.DELIVERY_DETAIL_ID ),0)+
NVL (ERP_UGST_TAX_VALUE (WD.DELIVERY_ID,WDD.DELIVERY_DETAIL_ID ),0)+
NVL (ERP_DISC_GST_VALUE (WD.DELIVERY_ID,WDD.DELIVERY_DETAIL_ID ),0)+
NVL (ERP_TCS_TAX_VALUE (WD.DELIVERY_ID,WDD.DELIVERY_DETAIL_ID ),0)) GST_TAX,
ERP_GST_TAX_INVOICE_NUM(WD.DELIVERY_ID,WDD.DELIVERY_DETAIL_ID)GST_TAX_INVOICE_NUM,
-- HCA.ACCOUNT_NAME ACC_NAME,
-- H.ORG_ID,
L.PAYMENT_TERM_ID,
-- H.ORDERED_DATE,
-- wnd.CREATION_DATE,
-- erp_get_org_code(L.SHIP_FROM_ORG_ID)line_org,
L.SHIP_FROM_ORG_ID,
BILL_PARTY.ATTRIBUTE11 TCS_EXEMPT_FLAG,
decode(BILL_PARTY.ATTRIBUTE11,'Y',(((WDD.REQUESTED_QUANTITY *
L.UNIT_SELLING_PRICE)*0.1)/100),0)TDS_DEDUCTION,
DECODE(ERP_CREDIT_HOLD_REASON(bill_party.PARTY_ID),NULL,NULL,'Cheque
Bounce')Status
FROM OE_ORDER_HEADERS_ALL H
,OE_ORDER_LINES_ALL L
,WSH_DELIVERY_DETAILS WDD
,WSH_DELIVERABLES_V WD
,APPS.WSH_NEW_DELIVERIES wnd
,HZ_CUST_SITE_USES_ALL BILL_SU
,HZ_PARTY_SITES BILL_PS
,HZ_LOCATIONS BILL_LOC
,HZ_CUST_ACCOUNTS HCA
,HZ_CUST_ACCT_SITES_ALL BILL_CAS
,HZ_PARTIES BILL_PARTY,
JAI_TAX_LINES_V TAX
--JAI_TAX_DET_FACTORS DD
WHERE H.HEADER_ID = L.HEADER_ID
AND H.HEADER_ID = WDD.SOURCE_HEADER_ID
AND L.LINE_ID = WDD.SOURCE_LINE_ID
AND HCA.CUSTOMER_CLASS_CODE LIKE'DISTRIBUT%'
AND WDD.RELEASED_STATUS = 'Y'
AND WDD.DELIVERY_DETAIL_ID = WD.DELIVERY_DETAIL_ID
and wnd.DELIVERY_ID = wd.DELIVERY_ID
AND WD.DELIVERY_ID IS NOT NULL
AND BILL_PS.PARTY_ID = HCA.PARTY_ID(+)
AND BILL_CAS.CUST_ACCOUNT_ID = HCA.CUST_ACCOUNT_ID
AND H.INVOICE_TO_ORG_ID = BILL_SU.SITE_USE_ID(+)
AND BILL_SU.CUST_ACCT_SITE_ID = BILL_CAS.CUST_ACCT_SITE_ID(+)
AND BILL_CAS.PARTY_SITE_ID = BILL_PS.PARTY_SITE_ID(+)
AND BILL_LOC.LOCATION_ID(+) = BILL_PS.LOCATION_ID
AND BILL_PS.PARTY_ID = BILL_PARTY.PARTY_ID
AND H.HEADER_ID = TAX.TRX_ID
AND L.LINE_ID = TAX.TRX_LINE_ID
AND HCA.ACCOUNT_NAME LIKE 'Reagent%' --added by kunal on 22-mar-2019 as SDI del
also comming
AND ERP_GET_PAYMENT_TERM(L.PAYMENT_TERM_ID) <> 'ADVANCE'
-- AND WD.DELIVERY_ID = 24228945
-- AND DD.TRX_LINE_ID = WDD.DELIVERY_DETAIL_ID
and BILL_PARTY.PARTY_ID = 18356--18356--23289
AND WND.DELIVERY_ID NOT IN (SELECT DELIVERY_NUMBER
FROM XXERP_CHEQUE_INVENTORY_LINES SS
WHERE SS.DELIVERY_NUMBER = WND.DELIVERY_ID
AND SS.CANCELLED_CHK_FLAG IS NULL)
)
GROUP BY SHIP_FROM_ORG_ID,
PARTY_NAME,
PARTY_ID,
PARTY_NUMBER,
CUSTOMER_ID,
GST_TAX_INVOICE_NUM,
DIST_LOCATION,
-- PAYMENT_TERM_ID,
TCS_EXEMPT_FLAG,
TDS_DEDUCTION,
status;

CURSOR C2(P_DELIVERY_NUMBER NUMBER) IS

select DELIVERY_DETAIL_ID from wsh_delivery_assignments wda where wda.DELIVERY_ID =


P_DELIVERY_NUMBER;

CURSOR C3(P_PARTY_ID NUMBER,P_ORG_ID NUMBER) IS

SELECT DISTINCT
WD.DELIVERY_ID -- into v_out1
FROM OE_ORDER_HEADERS_ALL H
,OE_ORDER_LINES_ALL L
,WSH_DELIVERY_DETAILS WDD
,WSH_DELIVERABLES_V WD
,APPS.WSH_NEW_DELIVERIES wnd
,HZ_CUST_SITE_USES_ALL BILL_SU
,HZ_PARTY_SITES BILL_PS
,HZ_LOCATIONS BILL_LOC
,HZ_CUST_ACCOUNTS HCA
,HZ_CUST_ACCT_SITES_ALL BILL_CAS
,HZ_PARTIES BILL_PARTY,
JAI_TAX_LINES_V TAX
--JAI_TAX_DET_FACTORS DD
WHERE H.HEADER_ID = L.HEADER_ID
AND H.HEADER_ID = WDD.SOURCE_HEADER_ID
AND L.LINE_ID = WDD.SOURCE_LINE_ID
AND HCA.CUSTOMER_CLASS_CODE LIKE'DISTRIBUT%'
AND WDD.RELEASED_STATUS = 'Y'
AND WDD.DELIVERY_DETAIL_ID = WD.DELIVERY_DETAIL_ID
and wnd.DELIVERY_ID = wd.DELIVERY_ID
AND WD.DELIVERY_ID IS NOT NULL
AND BILL_PS.PARTY_ID = HCA.PARTY_ID(+)
AND BILL_CAS.CUST_ACCOUNT_ID = HCA.CUST_ACCOUNT_ID
AND H.INVOICE_TO_ORG_ID = BILL_SU.SITE_USE_ID(+)
AND BILL_SU.CUST_ACCT_SITE_ID = BILL_CAS.CUST_ACCT_SITE_ID(+)
AND BILL_CAS.PARTY_SITE_ID = BILL_PS.PARTY_SITE_ID(+)
AND BILL_LOC.LOCATION_ID(+) = BILL_PS.LOCATION_ID
AND BILL_PS.PARTY_ID = BILL_PARTY.PARTY_ID
AND H.HEADER_ID = TAX.TRX_ID
AND L.LINE_ID = TAX.TRX_LINE_ID
AND HCA.ACCOUNT_NAME LIKE 'Reagent%' --added by kunal on 22-mar-2019 as SDI del
also comming
AND ERP_GET_PAYMENT_TERM(L.PAYMENT_TERM_ID) <> 'ADVANCE'
-- AND WD.DELIVERY_ID = 24228945
-- AND DD.TRX_LINE_ID = WDD.DELIVERY_DETAIL_ID
and BILL_PARTY.PARTY_ID = P_PARTY_ID
AND L.SHIP_FROM_ORG_ID = P_ORG_ID
AND WND.DELIVERY_ID NOT IN (SELECT DELIVERY_NUMBER
FROM XXERP_CHEQUE_INVENTORY_LINES SS
WHERE SS.DELIVERY_NUMBER = WND.DELIVERY_ID
AND SS.CANCELLED_CHK_FLAG IS NULL);

BEGIN

DBMS_OUTPUT.PUT_LINE( 'C1 started');

FOR I IN C1 LOOP

SELECT CHECK_NUMBER INTO V_CHK_NUM


FROM (SELECT
XDL.CHECK_NUMBER
FROM ERP_DB_CHQ_INVENTORY_V XDL
WHERE XDL.PARTY_ID = I.PARTY_ID
AND XDL.CHQ_USED_FLAG IS NULL
order by XDL.CHECK_NUMBER)
WHERE ROWNUM = 1;

SELECT CHQ_ID INTO V_CHQ_ID


FROM ERP_DB_CHQ_INVENTORY_V XDL
WHERE XDL.PARTY_ID = I.PARTY_ID
AND XDL.CHQ_USED_FLAG IS NULL
AND XDL.CHECK_NUMBER = V_CHK_NUM;

SELECT BANK_NAME INTO V_BANK_NAME


FROM ERP_DB_CHQ_INVENTORY_V XDL
WHERE XDL.PARTY_ID = I.PARTY_ID
AND XDL.CHQ_USED_FLAG IS NULL
AND XDL.CHECK_NUMBER = V_CHK_NUM;

SELECT MATURITY_DATE INTO V_MATURITY_DATE


FROM ERP_DB_CHQ_INVENTORY_V XDL
WHERE XDL.PARTY_ID = I.PARTY_ID
AND XDL.CHQ_USED_FLAG IS NULL
AND XDL.CHECK_NUMBER = V_CHK_NUM;

IF V_CHK_NUM IS NULL THEN

begin

DBMS_OUTPUT.PUT_LINE( 'C3 started');


OPEN C3(i.party_id,i.SHIP_FROM_ORG_ID);

LOOP

FETCH C3 INTO v_out1;

DBMS_OUTPUT.PUT_LINE( v_out1);
EXIT WHEN C3%notfound;
--FOR I2 IN C2 LOOP

--UPDATE WSH_DELIVERY_DETAILS WDD


--SET ATTRIBUTE15 = 'Delivery Number'||v_out1||'Reason: Cheque Bounce'
--where wdd.DELIVERY_DETAIL_ID = V_DEL_ID;

BEGIN
OPEN C2(v_out1);

LOOP

FETCH C2 INTO V_DEL_ID;


EXIT WHEN C2%notfound;
--FOR I2 IN C2 LOOP

UPDATE WSH_DELIVERY_DETAILS WDD


SET ATTRIBUTE15 = 'No Cheques Available For The DB'
where wdd.DELIVERY_DETAIL_ID = V_DEL_ID;

END LOOP;
CLOSE C2;
END;

END LOOP;
CLOSE C3;
END;

ELSIF (I.STATUS = 'Cheque Bounce') THEN

begin

DBMS_OUTPUT.PUT_LINE( 'C3 started');


OPEN C3(i.party_id,i.SHIP_FROM_ORG_ID);

LOOP

FETCH C3 INTO v_out1;

DBMS_OUTPUT.PUT_LINE( v_out1);
EXIT WHEN C3%notfound;
--FOR I2 IN C2 LOOP

--UPDATE WSH_DELIVERY_DETAILS WDD


--SET ATTRIBUTE15 = 'Delivery Number'||v_out1||'Reason: Cheque Bounce'
--where wdd.DELIVERY_DETAIL_ID = V_DEL_ID;

BEGIN

OPEN C2(v_out1);

LOOP

FETCH C2 INTO V_DEL_ID;


EXIT WHEN C2%notfound;
--FOR I2 IN C2 LOOP

UPDATE WSH_DELIVERY_DETAILS WDD


SET ATTRIBUTE15 = 'Delivery Number'||v_out1||'Reason: Cheque Bounce'
where wdd.DELIVERY_DETAIL_ID = V_DEL_ID;

END LOOP;
CLOSE C2;
END;
END LOOP;
CLOSE C3;
END;

--end;

ELSIF(I.DELIVERY_AMT < 52000)

THEN

begin

DBMS_OUTPUT.PUT_LINE( 'C3 started');


OPEN C3(i.party_id,i.SHIP_FROM_ORG_ID);

LOOP

FETCH C3 INTO v_out;

DBMS_OUTPUT.PUT_LINE( v_out);
EXIT WHEN C3%notfound;
--FOR I2 IN C2 LOOP

--UPDATE WSH_DELIVERY_DETAILS WDD


--SET ATTRIBUTE15 = 'Delivery Number'||v_out1||'Reason: Cheque Bounce'
--where wdd.DELIVERY_DETAIL_ID = V_DEL_ID;

BEGIN

OPEN C2(v_out);

LOOP

FETCH C2 INTO V_DEL_ID;


EXIT WHEN C2%notfound;
--FOR I2 IN C2 LOOP

UPDATE WSH_DELIVERY_DETAILS WDD


SET ATTRIBUTE15 = 'Delivery Number'||v_out||'Reason: Cheque Amount is less than
35000'
where wdd.DELIVERY_DETAIL_ID = V_DEL_ID;

END LOOP;
CLOSE C2;
END;

END LOOP;
CLOSE C3;
END;
--begin

--SELECT DISTINCT
-- WD.DELIVERY_ID into v_out
-- FROM OE_ORDER_HEADERS_ALL H
-- ,OE_ORDER_LINES_ALL L
-- ,WSH_DELIVERY_DETAILS WDD
-- ,WSH_DELIVERABLES_V WD
-- ,APPS.WSH_NEW_DELIVERIES wnd
-- ,HZ_CUST_SITE_USES_ALL BILL_SU
-- ,HZ_PARTY_SITES BILL_PS
-- ,HZ_LOCATIONS BILL_LOC
-- ,HZ_CUST_ACCOUNTS HCA
-- ,HZ_CUST_ACCT_SITES_ALL BILL_CAS
-- ,HZ_PARTIES BILL_PARTY,
-- JAI_TAX_LINES_V TAX
-- --JAI_TAX_DET_FACTORS DD
-- WHERE H.HEADER_ID = L.HEADER_ID
-- AND H.HEADER_ID = WDD.SOURCE_HEADER_ID
-- AND L.LINE_ID = WDD.SOURCE_LINE_ID
-- AND HCA.CUSTOMER_CLASS_CODE LIKE'DISTRIBUT%'
-- AND WDD.RELEASED_STATUS = 'Y'
-- AND WDD.DELIVERY_DETAIL_ID = WD.DELIVERY_DETAIL_ID
-- and wnd.DELIVERY_ID = wd.DELIVERY_ID
-- AND WD.DELIVERY_ID IS NOT NULL
-- AND BILL_PS.PARTY_ID = HCA.PARTY_ID(+)
-- AND BILL_CAS.CUST_ACCOUNT_ID = HCA.CUST_ACCOUNT_ID
-- AND H.INVOICE_TO_ORG_ID = BILL_SU.SITE_USE_ID(+)
-- AND BILL_SU.CUST_ACCT_SITE_ID = BILL_CAS.CUST_ACCT_SITE_ID(+)
-- AND BILL_CAS.PARTY_SITE_ID = BILL_PS.PARTY_SITE_ID(+)
-- AND BILL_LOC.LOCATION_ID(+) = BILL_PS.LOCATION_ID
-- AND BILL_PS.PARTY_ID = BILL_PARTY.PARTY_ID
-- AND H.HEADER_ID = TAX.TRX_ID
-- AND L.LINE_ID = TAX.TRX_LINE_ID
-- AND HCA.ACCOUNT_NAME LIKE 'Reagent%' --added by kunal on 22-mar-2019 as SDI
del also comming
-- AND ERP_GET_PAYMENT_TERM(L.PAYMENT_TERM_ID) <> 'ADVANCE'
-- -- AND WD.DELIVERY_ID = 24228945
-- -- AND DD.TRX_LINE_ID = WDD.DELIVERY_DETAIL_ID
-- and BILL_PARTY.PARTY_ID = I.PARTY_ID
-- AND L.SHIP_FROM_ORG_ID = I.SHIP_FROM_ORG_ID
-- AND WND.DELIVERY_ID NOT IN (SELECT DELIVERY_NUMBER
-- FROM XXERP_CHEQUE_INVENTORY_LINES SS
-- WHERE SS.DELIVERY_NUMBER = WND.DELIVERY_ID
-- AND SS.CANCELLED_CHK_FLAG IS NULL)
-- ;

--UPDATE WSH_DELIVERY_DETAILS WDD


--SET ATTRIBUTE15 = 'Delivery Number'||v_out||'Reason: Cheque amount is less than
35000.'
--where wdd.DELIVERY_DETAIL_ID = (select DELIVERY_DETAIL_ID from
wsh_delivery_assignments wda where wda.DELIVERY_ID = v_out);

--BEGIN

--OPEN C2(v_out);

--LOOP

--FETCH C2 INTO V_DEL_ID;


--EXIT WHEN C2%notfound;
----FOR I2 IN C2 LOOP

--UPDATE WSH_DELIVERY_DETAILS WDD


--SET ATTRIBUTE15 = 'Delivery Number'||v_out||'Reason: Cheque amount is less than
35000.'
--where wdd.DELIVERY_DETAIL_ID = V_DEL_ID;

--END LOOP;
--CLOSE C2;
--END;

--DBMS_OUTPUT.PUT_LINE( 'Delivery number'||v_out||'Cannot be tagged since the


amount is less than 35000');
-- fnd_file.put_line(fnd_file.log, 'Delivery number'||v_out||'Cannot be tagged
since the amount is less than 35000');

-- end loop;

-- end;

else

INSERT INTO XXERP_CHEQUE_INVENTORY_HDR


VALUES
(
I.PARTY_NAME,
I.PARTY_ID,
I.PARTY_NUMBER,
I.CUSTOMER_ID,
1090,
TO_DATE(SYSDATE),
1090,
TO_DATE(SYSDATE),
I.DIST_LOCATION,
V_CHK_NUM,
V_CHQ_ID,
V_BANK_NAME,
0,
I.DELIVERY_AMT,
TO_DATE(V_MATURITY_DATE),
XXERP_CHQ_INV_SEQ.NEXTVAL,
'CONFIRMED',
NULL,
NULL,
NULL,
NULL,
0,
NULL,
NULL,
'Y');

BEGIN
ERP_CHQ_TAG_AUTO2(I.SHIP_FROM_ORG_ID,I.PARTY_ID,XXERP_CHQ_INV_SEQ.CURRVAL);
END;
COMMIT;

end if;

END LOOP;
END;
/

You might also like