You are on page 1of 5

CREATE OR REPLACE FUNCTION APPS.

LC_BOE_GRN_BSRM (P_SHIPMENT_HEADER_ID NUMBER,


P_SHIPMENT_LINE_ID NUMBER, P_SL NUMBER)
RETURN NUMBER
IS
V_NUM NUMBER;

BEGIN

IF P_SL = 1 THEN -- GRN AMOUNT RCV SHIPMENT LINE WISE

SELECT
SUM(
(
CASE
WHEN POL.UNIT_MEAS_LOOKUP_CODE <> RT.UNIT_OF_MEASURE THEN
GBG.QUANTITY_RECEIVED / NVL(inv_convert.inv_um_convert(POL.ITEM_ID,
(SELECT UOM_CODE FROM MTL_UNITS_OF_MEASURE_VL WHERE UNIT_OF_MEASURE =
POL.UNIT_MEAS_LOOKUP_CODE),
(SELECT UOM_CODE FROM MTL_UNITS_OF_MEASURE_VL WHERE UNIT_OF_MEASURE =
RT.UNIT_OF_MEASURE)),
(SELECT
CONVERSION_RATE
FROM MTL_UOM_CONVERSIONS S
WHERE INVENTORY_ITEM_ID=0
AND UOM_CODE = (SELECT UOM_CODE FROM MTL_UNITS_OF_MEASURE_VL WHERE
UNIT_OF_MEASURE = POL.UNIT_MEAS_LOOKUP_CODE)
) )
ELSE
GBG.QUANTITY_RECEIVED
END )
* (POL.UNIT_PRICE * NVL (RT.CURRENCY_CONVERSION_RATE, 1)))
INTO V_NUM
FROM PO_LINES_ALL POL , RCV_TRANSACTIONS RT, GRN_BE_GRN_ITEMS_BSRM_IT
GBG
WHERE POL.PO_HEADER_ID = RT.PO_HEADER_ID
AND POL.PO_LINE_ID = RT.PO_LINE_ID
AND RT.SHIPMENT_HEADER_ID = GBG.SHIPMENT_HEADER_ID
AND RT.SHIPMENT_LINE_ID = GBG.SHIPMENT_LINE_ID
AND TRANSACTION_TYPE = 'RECEIVE'
AND GBG.SHIPMENT_HEADER_ID = P_SHIPMENT_HEADER_ID
AND GBG.SHIPMENT_LINE_ID = P_SHIPMENT_LINE_ID;

ELSIF P_SL = 2 THEN -- GRN AMOUNT RCV SHIPMENT LINE WISE

SELECT SUM(
(
CASE
WHEN POL.UNIT_MEAS_LOOKUP_CODE <> RT.UNIT_OF_MEASURE THEN
GBG.QUANTITY_RECEIVED / NVL(inv_convert.inv_um_convert(POL.ITEM_ID,
(SELECT UOM_CODE FROM MTL_UNITS_OF_MEASURE_VL WHERE UNIT_OF_MEASURE =
POL.UNIT_MEAS_LOOKUP_CODE),
(SELECT UOM_CODE FROM MTL_UNITS_OF_MEASURE_VL WHERE UNIT_OF_MEASURE =
RT.UNIT_OF_MEASURE)),
(SELECT
CONVERSION_RATE
FROM MTL_UOM_CONVERSIONS S
WHERE INVENTORY_ITEM_ID=0
AND UOM_CODE = (SELECT UOM_CODE FROM MTL_UNITS_OF_MEASURE_VL WHERE
UNIT_OF_MEASURE = POL.UNIT_MEAS_LOOKUP_CODE)
) )
ELSE
GBG.QUANTITY_RECEIVED
END ) * (POL.UNIT_PRICE * NVL (RT.CURRENCY_CONVERSION_RATE, 1))) INTO
V_NUM
FROM PO_LINES_ALL POL , RCV_TRANSACTIONS RT, GRN_BE_GRN_ITEMS_BSRM_IT
GBG
WHERE POL.PO_HEADER_ID = RT.PO_HEADER_ID
AND POL.PO_LINE_ID = RT.PO_LINE_ID
AND RT.SHIPMENT_HEADER_ID = GBG.SHIPMENT_HEADER_ID
AND RT.SHIPMENT_LINE_ID = GBG.SHIPMENT_LINE_ID
AND TRANSACTION_TYPE = 'RECEIVE'
--AND GBG.SHIPMENT_HEADER_ID = P_SHIPMENT_HEADER_ID;
AND GBG.GRN_BE_SL IN (SELECT GRN_BE_SL FROM
GRN_BE_GRN_ITEMS_BSRM_IT WHERE SHIPMENT_HEADER_ID = P_SHIPMENT_HEADER_ID);

ELSIF P_SL = 3 THEN --SHIPMENT LINE WISE TOTAL GRN QTY

SELECT SUM(QUANTITY_RECEIVED) INTO V_NUM


FROM GRN_BE_GRN_ITEMS_BSRM_IT
WHERE SHIPMENT_HEADER_ID = P_SHIPMENT_HEADER_ID
AND SHIPMENT_LINE_ID = P_SHIPMENT_LINE_ID;

ELSIF P_SL = 4 THEN --SHIPMENT HEADER WISE TOTAL GRN QTY

SELECT SUM(QUANTITY_RECEIVED) INTO V_NUM


FROM GRN_BE_GRN_ITEMS_BSRM_IT
WHERE SHIPMENT_HEADER_ID = P_SHIPMENT_HEADER_ID;

ELSIF P_SL = 5 THEN --PO ITEM UNIT PRICE

SELECT POL.UNIT_PRICE INTO V_NUM --* NVL (RT.CURRENCY_CONVERSION_RATE, 1)


FROM PO_LINES_ALL POL , RCV_TRANSACTIONS RT
WHERE POL.PO_HEADER_ID = RT.PO_HEADER_ID
AND POL.PO_LINE_ID = RT.PO_LINE_ID
AND TRANSACTION_TYPE = 'RECEIVE'
AND SHIPMENT_HEADER_ID = P_SHIPMENT_HEADER_ID
AND SHIPMENT_LINE_ID = P_SHIPMENT_LINE_ID;

ELSIF P_SL = 6 THEN --PO ITEM UNIT PRICE BDT CURRENCY CONVERCRION

SELECT (POL.UNIT_PRICE * NVL (RT.CURRENCY_CONVERSION_RATE, 1)) INTO V_NUM


FROM PO_LINES_ALL POL , RCV_TRANSACTIONS RT
WHERE POL.PO_HEADER_ID = RT.PO_HEADER_ID
AND POL.PO_LINE_ID = RT.PO_LINE_ID
AND TRANSACTION_TYPE = 'RECEIVE'
AND SHIPMENT_HEADER_ID = P_SHIPMENT_HEADER_ID
AND SHIPMENT_LINE_ID = P_SHIPMENT_LINE_ID;

ELSIF P_SL = 7 THEN --CUSTOM DUTY SHIPMENT LINE WISE

SELECT SUM(
(
CASE
WHEN POL.UNIT_MEAS_LOOKUP_CODE <> RT.UNIT_OF_MEASURE THEN
GBG.QUANTITY_RECEIVED / NVL(inv_convert.inv_um_convert(POL.ITEM_ID,
(SELECT UOM_CODE FROM MTL_UNITS_OF_MEASURE_VL WHERE UNIT_OF_MEASURE =
POL.UNIT_MEAS_LOOKUP_CODE),
(SELECT UOM_CODE FROM MTL_UNITS_OF_MEASURE_VL WHERE UNIT_OF_MEASURE =
RT.UNIT_OF_MEASURE)),
(SELECT
CONVERSION_RATE
FROM MTL_UOM_CONVERSIONS S
WHERE INVENTORY_ITEM_ID=0
AND UOM_CODE = (SELECT UOM_CODE FROM MTL_UNITS_OF_MEASURE_VL WHERE
UNIT_OF_MEASURE = POL.UNIT_MEAS_LOOKUP_CODE)
) )
ELSE
GBG.QUANTITY_RECEIVED
END )
* (POL.UNIT_PRICE * NVL (RT.CURRENCY_CONVERSION_RATE, 1)) *
NVL(GBG.TTI_USER,1))/100 INTO V_NUM
FROM PO_LINES_ALL POL , RCV_TRANSACTIONS RT, GRN_BE_GRN_ITEMS_BSRM_IT
GBG
WHERE POL.PO_HEADER_ID = RT.PO_HEADER_ID
AND POL.PO_LINE_ID = RT.PO_LINE_ID
AND RT.SHIPMENT_HEADER_ID = GBG.SHIPMENT_HEADER_ID
AND RT.SHIPMENT_LINE_ID = GBG.SHIPMENT_LINE_ID
AND TRANSACTION_TYPE = 'RECEIVE'
AND GBG.SHIPMENT_HEADER_ID = P_SHIPMENT_HEADER_ID
AND GBG.SHIPMENT_LINE_ID = P_SHIPMENT_LINE_ID;

ELSIF P_SL = 8 THEN --CUSTOM DUTY SHIPMENT HEADER WISE

SELECT SUM(
(
CASE
WHEN POL.UNIT_MEAS_LOOKUP_CODE <> RT.UNIT_OF_MEASURE THEN
GBG.QUANTITY_RECEIVED / NVL(inv_convert.inv_um_convert(POL.ITEM_ID,
(SELECT UOM_CODE FROM MTL_UNITS_OF_MEASURE_VL WHERE UNIT_OF_MEASURE =
POL.UNIT_MEAS_LOOKUP_CODE),
(SELECT UOM_CODE FROM MTL_UNITS_OF_MEASURE_VL WHERE UNIT_OF_MEASURE =
RT.UNIT_OF_MEASURE)),
(SELECT
CONVERSION_RATE
FROM MTL_UOM_CONVERSIONS S
WHERE INVENTORY_ITEM_ID=0
AND UOM_CODE = (SELECT UOM_CODE FROM MTL_UNITS_OF_MEASURE_VL WHERE
UNIT_OF_MEASURE = POL.UNIT_MEAS_LOOKUP_CODE)
) )
ELSE
GBG.QUANTITY_RECEIVED
END )
* (POL.UNIT_PRICE * NVL (RT.CURRENCY_CONVERSION_RATE, 1)) *
NVL(GBG.TTI_USER,1))/100 INTO V_NUM
FROM PO_LINES_ALL POL , RCV_TRANSACTIONS RT, GRN_BE_GRN_ITEMS_BSRM_IT
GBG
WHERE POL.PO_HEADER_ID = RT.PO_HEADER_ID
AND POL.PO_LINE_ID = RT.PO_LINE_ID
AND RT.SHIPMENT_HEADER_ID = GBG.SHIPMENT_HEADER_ID
AND RT.SHIPMENT_LINE_ID = GBG.SHIPMENT_LINE_ID
AND TRANSACTION_TYPE = 'RECEIVE'
AND GBG.GRN_BE_SL IN (SELECT GRN_BE_SL FROM
GRN_BE_GRN_ITEMS_BSRM_IT WHERE SHIPMENT_HEADER_ID = P_SHIPMENT_HEADER_ID);
--AND GBG.SHIPMENT_HEADER_ID = P_SHIPMENT_HEADER_ID ;

ELSIF P_SL = 9 THEN

SELECT SUM(POL.QUANTITY * (POL.UNIT_PRICE * NVL(PDA.RATE, 1)))


TOT_LINE_AMT INTO V_NUM
FROM PO_HEADERS_ALL POH,
PO_LINES_ALL POL,
PO_DISTRIBUTIONS_ALL PDA,
LC_PO_INFO_LINES_BSRM_IT LCP,
LC_INFO_HEADERS_BSRM_IT LCM
WHERE POH.PO_HEADER_ID = POL.PO_HEADER_ID

AND POH.PO_HEADER_ID = LCP.PO_HEADER_ID


AND LCM.LC_ID = LCP.LC_ID
AND POL.PO_HEADER_ID = PDA.PO_HEADER_ID
AND POL.PO_LINE_ID = PDA.PO_LINE_ID
AND LCM.LC_ID IN (SELECT LC_ID FROM GRN_BE_GRN_ITEMS_BSRM_IT GBG
WHERE SHIPMENT_HEADER_ID = P_SHIPMENT_HEADER_ID

AND SHIPMENT_LINE_ID = P_SHIPMENT_LINE_ID


AND GBG.PO_LINE_ID= POL.PO_LINE_ID
AND GBG.PO_HEADER_ID = POL.PO_HEADER_ID);

ELSIF P_SL = 10 THEN

SELECT SUM(POL.QUANTITY * (POL.UNIT_PRICE * NVL(PDA.RATE, 1)))


TOT_LC_PO_AMT INTO V_NUM
FROM PO_HEADERS_ALL POH,
PO_LINES_ALL POL,
PO_DISTRIBUTIONS_ALL PDA,
LC_PO_INFO_LINES_BSRM_IT LCP,
LC_INFO_HEADERS_BSRM_IT LCM
WHERE POH.PO_HEADER_ID = POL.PO_HEADER_ID

AND POH.PO_HEADER_ID = LCP.PO_HEADER_ID


AND LCM.LC_ID = LCP.LC_ID
AND POL.PO_HEADER_ID = PDA.PO_HEADER_ID
AND POL.PO_LINE_ID = PDA.PO_LINE_ID

AND LCM.LC_ID IN (SELECT LC_ID FROM


GRN_BE_GRN_ITEMS_BSRM_IT GBG
WHERE SHIPMENT_HEADER_ID =
P_SHIPMENT_HEADER_ID
AND SHIPMENT_LINE_ID =
P_SHIPMENT_LINE_ID
) ;

ELSIF P_SL = 11 THEN

SELECT SUM(POL.QUANTITY) TOT_LINE_QTY INTO V_NUM


FROM PO_HEADERS_ALL POH,
PO_LINES_ALL POL,
PO_DISTRIBUTIONS_ALL PDA,
LC_PO_INFO_LINES_BSRM_IT LCP,
LC_INFO_HEADERS_BSRM_IT LCM
WHERE POH.PO_HEADER_ID = POL.PO_HEADER_ID

AND POH.PO_HEADER_ID = LCP.PO_HEADER_ID


AND LCM.LC_ID = LCP.LC_ID
AND POL.PO_HEADER_ID = PDA.PO_HEADER_ID
AND POL.PO_LINE_ID = PDA.PO_LINE_ID
AND LCM.LC_ID IN (SELECT LC_ID FROM GRN_BE_GRN_ITEMS_BSRM_IT GBG
WHERE SHIPMENT_HEADER_ID = P_SHIPMENT_HEADER_ID

AND SHIPMENT_LINE_ID = P_SHIPMENT_LINE_ID


AND GBG.PO_LINE_ID= POL.PO_LINE_ID
AND GBG.PO_HEADER_ID = POL.PO_HEADER_ID);

ELSIF P_SL = 15 THEN --LCM SHIPMENT HEADER ID

SELECT SH.SHIP_HEADER_ID INTO V_NUM--, SL.SHIP_LINE_ID


FROM inl_ship_headers_all SH,
inl_ship_lines_all SL,
RCV_TRANSACTIONS RT
WHERE SH.SHIP_HEADER_ID = SL.SHIP_HEADER_ID
AND RT.LCM_SHIPMENT_LINE_ID = SL.SHIP_LINE_ID
AND RT.TRANSACTION_TYPE = 'RECEIVE'
AND SH.SHIP_STATUS_CODE <> 'CLOSED'
AND RT.SHIPMENT_HEADER_ID = P_SHIPMENT_HEADER_ID
AND RT.SHIPMENT_LINE_ID = P_SHIPMENT_LINE_ID;

ELSIF P_SL = 16 THEN --LCM SHIPMENT LINE ID

SELECT SL.SHIP_LINE_ID INTO V_NUM


FROM inl_ship_headers_all SH,
inl_ship_lines_all SL,
RCV_TRANSACTIONS RT
WHERE SH.SHIP_HEADER_ID = SL.SHIP_HEADER_ID
AND RT.LCM_SHIPMENT_LINE_ID = SL.SHIP_LINE_ID
AND RT.TRANSACTION_TYPE = 'RECEIVE'
AND SH.SHIP_STATUS_CODE <> 'CLOSED'
AND RT.SHIPMENT_HEADER_ID = P_SHIPMENT_HEADER_ID
AND RT.SHIPMENT_LINE_ID = P_SHIPMENT_LINE_ID;

END IF;

RETURN V_NUM;

EXCEPTION
WHEN OTHERS THEN
RETURN 0;

END;
/

You might also like