You are on page 1of 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