CML_PO_SCHED_RCNCILE_DTLS_V

Details

  • Schema: FUSION

  • Object owner: CML

  • Object type: VIEW

Columns

Name

CMR_PO_LINE_LOCATION_ID

PO_NUMBER

LINE_NUMBER

SHIPMENT_NUMBER

ORDERED_QTY

TRACKED_QTY

RECEIPT_QTY

QTY_DIFF

UOM_TYPE_CODE

UOM_CODE

SHED_AGE

ALLOC_AMOUNT

ABS_AMOUNT

BAL_AMOUNT

BAL_PERCENT

CURRENCY_NAME

CURRENCY_PRECISION

RECONCILE_STATUS

TROP_STATUS

TROP_STATUS_CODE

BU_NAME

BU_ID

PARTY_NAME

VENDOR_SITE_ID

VENDOR_SITE_CODE

ORGANIZATION_NAME

ORGANIZATION_ID

CLOSE_STATUS_FLAG

TRADE_OPERATION_ID

TRADE_OPERATION_NUMBER

TRADE_OPERATION_NAME

RECONCILE_STATUS_CODE

ITEM_NUMBER

Query

SQL_Statement

with rcpt as

(SELECT

SUM(ct.source_doc_qty) RECEIPT_QTY,

ct.cmr_po_line_location_id,

ctos.trade_operation_id

FROM

cmr_transactions ct,

cml_trade_operation_shipments ctos,

cmr_rcv_transactions crt,

cml_trade_operations cto

WHERE

ct.transaction_type IN (

SELECT

transaction_type_code

FROM

cmr_transaction_types_b

WHERE

transaction_group_name = 'RECEIVING'

)

AND ctos.trade_operation_id = cto.trade_operation_id

AND ctos.shipment_header_id = crt.shipment_header_id

AND ct.cmr_rcv_transaction_id = crt.cmr_rcv_transaction_id

GROUP BY

ct.cmr_po_line_location_id,ctos.trade_operation_id

UNION ALL

SELECT

SUM(ct.source_doc_qty) RECEIPT_QTY,

ct.cmr_po_line_location_id,

-1 as trade_operation_id

FROM

cmr_transactions ct

WHERE

transaction_type IN (

SELECT

transaction_type_code

FROM

cmr_transaction_types_b

WHERE

transaction_group_name = 'RECEIVING'

)

GROUP BY

ct.cmr_po_line_location_id),

crce AS

(SELECT crcee.cmr_po_line_location_id,

trop_charge_line_id ,

MAX(unit_amount) UNIT_AMOUNT,

MAX(unit_tax) UNIT_TAX,

currency_code

FROM cml_rcv_charge_estimates crcee

WHERE NVL(active_flag,'Y') ='Y'

GROUP BY crcee.cmr_po_line_location_id,

trop_charge_line_id,

currency_code

),

PO_LINE_LOC_STATUS AS

(SELECT CMR_PO_LINE_LOCATION_ID,PO_NUMBER,LINE_NUMBER,SHIPMENT_NUMBER,MAX(EVENT_DATE) EVENT_DATE,VENDOR_ID,VENDOR_SITE_ID,DELIVER_TO_BUSINESS_UNIT_ID,DELIVER_TO_INVENTORY_ORG_ID,INVENTORY_ITEM_ID,DEFAULT_INVENTORY_ORG_ID,

DECODE(SUM(DECODE(CPOD.event_type,'PO Close',0,1)),0,'Y','N') CLOSE_STATUS_FLAG,

(SUM(secondary_quantity)/SUM(quantity_ordered)) conversion_factor

FROM cmr_purchase_order_dtls cpod

WHERE CPOD.ACTIVE_FLAG='Y'

AND quantity_ordered > 0

GROUP BY CMR_PO_LINE_LOCATION_ID,PO_NUMBER,LINE_NUMBER,SHIPMENT_NUMBER,VENDOR_ID,VENDOR_SITE_ID,DELIVER_TO_BUSINESS_UNIT_ID,DELIVER_TO_INVENTORY_ORG_ID,INVENTORY_ITEM_ID,DEFAULT_INVENTORY_ORG_ID

),

crca AS

(SELECT crcaa.cmr_po_line_location_id,

trop_charge_line_id ,

MAX(unit_amount) UNIT_AMOUNT,

MAX(unit_tax) UNIT_TAX,

currency_code

FROM cml_rcv_charge_actuals crcaa

WHERE NVL(active_flag,'Y') ='Y'

GROUP BY crcaa.cmr_po_line_location_id,

trop_charge_line_id,

currency_code

),

rec_status AS

(SELECT ctcps.CMR_PO_LINE_LOCATION_ID,

CASE

WHEN MAX(NVL(CML_RECONCILIATION_STATUS,10))<>MIN(NVL(CML_RECONCILIATION_STATUS,10))

THEN

CASE

WHEN MAX(CML_RECONCILIATION_STATUS) =40

AND MIN(NVL(CML_RECONCILIATION_STATUS,10))=10

THEN 10

ELSE 25

END

ELSE

CASE

WHEN MAX(CML_RECONCILIATION_STATUS) =20

AND MIN(CML_RECONCILIATION_STATUS) =20

AND (ctcps.tracked_qty*DECODE(ctcps.UOM_TYPE_CODE,'PRIMARY',1,'ASN',NVL(ctcps.po_uom_conv_factor,1),(1/PO_LINE_LOC_STATUS.conversion_factor)))-((rcpt.RECEIPT_QTY))<>0

THEN 25

ELSE MAX(NVL(CML_RECONCILIATION_STATUS,10))

END

END reconcile_status,

cto.trade_operation_id trade_operation_id

FROM cml_trop_charge_po_schedules ctcps,

crce,

rcpt,

PO_LINE_LOC_STATUS,

cml_trade_operation_charges ctoc,

cml_trade_operations cto

WHERE rcpt.CMR_PO_LINE_LOCATION_ID=ctcps.CMR_PO_LINE_LOCATION_ID

AND (rcpt.trade_operation_id = DECODE(cto.ALLOCATION_OBJECT,'SHIP_QTY',cto.trade_operation_id,-1))

AND ctcps.CMR_PO_LINE_LOCATION_ID=PO_LINE_LOC_STATUS.CMR_PO_LINE_LOCATION_ID(+)

AND ctcps.CMR_PO_LINE_LOCATION_ID =crce.CMR_PO_LINE_LOCATION_ID(+)

AND ctcps.trade_operation_charge_id=crce.TROP_CHARGE_LINE_ID(+)

AND ctoc.trade_operation_charge_id=ctcps.trade_operation_charge_id

AND ctoc.trade_operation_id =cto.trade_operation_id

AND ctoc.line_status_code IN ('ALLOC_ERROR','ALLOCATED','ALLOCATED_WARN')

GROUP BY ctcps.CMR_PO_LINE_LOCATION_ID ,

ctcps.ordered_qty,

ctcps.tracked_qty,

rcpt.RECEIPT_QTY,

ctcps.uom_type_code,

ctcps.po_uom_conv_factor,

ctcps.uom_code,

PO_LINE_LOC_STATUS.CLOSE_STATUS_FLAG,

PO_LINE_LOC_STATUS.conversion_factor,

cto.trade_operation_id,

CTO.TRADE_OPERATION_NUMBER,

CTO.NAME,

CTO.STATUS_CODE

)

SELECT CMR_PO_LINE_LOCATION_ID,

PO_NUMBER,

LINE_NUMBER,

SHIPMENT_NUMBER,

ORDERED_QTY,

TRACKED_QTY,

RECEIPT_QTY,

QTY_DIFF,

UOM_TYPE_CODE,

UOM_CODE ,

SHED_AGE,

ALLOC_AMOUNT,

ABS_AMOUNT,

BAL_AMOUNT,

(QTY_DIFF/TRACKED_QTY)*100 BAL_PERCENT,

CURRENCY_NAME,

CURRENCY_PRECISION,

fl.meaning RECONCILE_STATUS,

fl2.meaning TROP_STATUS,

temp_results.STATUS_CODE TROP_STATUS_CODE,

BU_NAME,

BU_ID,

PARTY_NAME,

VENDOR_SITE_ID,

VENDOR_SITE_CODE,

ORGANIZATION_NAME,

ORGANIZATION_ID,

CLOSE_STATUS_FLAG ,

TRADE_OPERATION_ID,

TRADE_OPERATION_NUMBER,

TRADE_OPERATION_NAME,

RECONCILE_STATUS RECONCILE_STATUS_CODE,

ITEM_NUMBER

FROM

(SELECT ctcps.CMR_PO_LINE_LOCATION_ID,

PO_LINE_LOC_STATUS.po_number,

PO_LINE_LOC_STATUS.line_number,

PO_LINE_LOC_STATUS.SHIPMENT_NUMBER,

ctcps.ordered_qty,

(ctcps.tracked_qty*DECODE(ctcps.uom_type_code,'PRIMARY',1,'ASN',NVL(ctcps.po_uom_conv_factor,1),(1/PO_LINE_LOC_STATUS.conversion_factor))) TRACKED_QTY,

rcpt.RECEIPT_QTY RECEIPT_QTY,

ctcps.uom_type_code,

ctcps.uom_code,

(ctcps.tracked_qty*DECODE(ctcps.uom_type_code,'PRIMARY',1,'ASN',NVL(ctcps.po_uom_conv_factor,1),(1/PO_LINE_LOC_STATUS.conversion_factor))-(rcpt.RECEIPT_QTY)) qty_diff,

ROUND(sysdate -TRUNC(PO_LINE_LOC_STATUS.event_date)) shed_age,

(ctcps.tracked_qty/DECODE(ctcps.uom_type_code,'PRIMARY',1,'ASN',NVL(1/ctcps.po_uom_conv_factor,1),PO_LINE_LOC_STATUS.conversion_factor))*SUM(

CASE

WHEN (crca.UNIT_AMOUNT IS NOT NULL

OR crca.unit_tax IS NOT NULL)

THEN (NVL(crca.UNIT_AMOUNT,0)+NVL(crca.unit_tax,0))*NVL(ctoc.CHARGE_REQ_BU_CURR_CONV_RATE,0)

ELSE (NVL(crce.UNIT_AMOUNT,0)+NVL(crce.unit_tax,0))*NVL(ctoc.CHARGE_REQ_BU_CURR_CONV_RATE,0)

END ) alloc_amount,

(rcpt.RECEIPT_QTY)*SUM(

CASE

WHEN (crca.UNIT_AMOUNT IS NOT NULL

OR crca.unit_tax IS NOT NULL)

THEN (NVL(crca.UNIT_AMOUNT,0)+NVL(crca.unit_tax,0))*NVL(ctoc.CHARGE_REQ_BU_CURR_CONV_RATE,0)

ELSE (NVL(crce.UNIT_AMOUNT,0)+NVL(crce.unit_tax,0))*NVL(ctoc.CHARGE_REQ_BU_CURR_CONV_RATE,0)

END ) abs_amount,

((ctcps.tracked_qty/DECODE(ctcps.UOM_TYPE_CODE,'PRIMARY',1,'ASN',NVL(1/ctcps.po_uom_conv_factor,1),PO_LINE_LOC_STATUS.conversion_factor))*SUM(

CASE

WHEN (crca.UNIT_AMOUNT IS NOT NULL

OR crca.unit_tax IS NOT NULL)

THEN (NVL(crca.UNIT_AMOUNT,0)+NVL(crca.unit_tax,0))

ELSE NVL(crce.UNIT_AMOUNT,0) +NVL(crce.unit_tax,0)

END )) -((rcpt.RECEIPT_QTY)*SUM(

CASE

WHEN (crca.UNIT_AMOUNT IS NOT NULL

OR crca.unit_tax IS NOT NULL)

THEN (NVL(crca.UNIT_AMOUNT,0)+NVL(crca.unit_tax,0))

ELSE NVL(crce.UNIT_AMOUNT,0) +NVL(crce.unit_tax,0)

END )) bal_amount,

DECODE(MAX(curr1.CURRENCY_CODE),NULL,MAX(curr2.CURRENCY_CODE),MAX(curr1.CURRENCY_CODE))CURRENCY_NAME,

DECODE(MAX(curr1.PRECISION),NULL,MAX(curr2.PRECISION),MAX(curr1.PRECISION))CURRENCY_PRECISION,

rec_status.reconcile_status,

BU.NAME BU_NAME,

BU.ORGANIZATION_ID BU_ID,

hp.PARTY_NAME,

pssam.VENDOR_SITE_ID,

pssam.VENDOR_SITE_CODE,

INV_ORG.ORGANIZATION_NAME,

INV_ORG.ORGANIZATION_ID,

PO_LINE_LOC_STATUS.CLOSE_STATUS_FLAG,

DECODE(ctcps.UOM_TYPE_CODE,'PRIMARY',1,'ASN',NVL(ctcps.po_uom_conv_factor,1),(1/PO_LINE_LOC_STATUS.conversion_factor)) conversion_factor,

cto.trade_operation_id trade_operation_id,

cto.TRADE_OPERATION_NUMBER TRADE_OPERATION_NUMBER,

CTO.NAME TRADE_OPERATION_NAME,

CTO.STATUS_CODE,

ItemPEO.ITEM_NUMBER

FROM cml_trop_charge_po_schedules ctcps,

rec_status,

crca,

crce,

rcpt,

PO_LINE_LOC_STATUS,

HZ_PARTIES hp,

POZ_SUPPLIERS ps,

POZ_SUPPLIER_SITES_ALL_M pssam,

HR_ALL_ORGANIZATION_UNITS_F_VL BU,

HR_ORG_UNIT_CLASSIFICATIONS_F CLS,

RCS_ORG_DEFINITIONS_LW_V INV_ORG,

FND_CURRENCIES_VL curr1,

FND_CURRENCIES_VL curr2,

cml_trade_operation_charges ctoc,

cml_trade_operations cto,

EGP_SYSTEM_ITEMS_B ItemPEO

WHERE rcpt.CMR_PO_LINE_LOCATION_ID =ctcps.CMR_PO_LINE_LOCATION_ID

AND rcpt.trade_operation_id = DECODE(cto.ALLOCATION_OBJECT,'SHIP_QTY',cto.TRADE_OPERATION_ID,-1)

AND PO_LINE_LOC_STATUS.CMR_PO_LINE_LOCATION_ID =ctcps.CMR_PO_LINE_LOCATION_ID

AND rec_status.CMR_PO_LINE_LOCATION_ID =ctcps.CMR_PO_LINE_LOCATION_ID

AND rec_status.trade_operation_id = cto.trade_operation_id

AND ctcps.CMR_PO_LINE_LOCATION_ID =crca.CMR_PO_LINE_LOCATION_ID(+)

AND ctcps.trade_operation_charge_id =crca.TROP_CHARGE_LINE_ID(+)

AND crca.CURRENCY_CODE =curr1.CURRENCY_CODE(+)

AND ctcps.CMR_PO_LINE_LOCATION_ID =crce.CMR_PO_LINE_LOCATION_ID(+)

AND ctcps.trade_operation_charge_id =crce.TROP_CHARGE_LINE_ID(+)

AND crce.CURRENCY_CODE =curr2.CURRENCY_CODE(+)

AND (ctcps.ordered_qty*DECODE(ctcps.uom_type_code,'PRIMARY',1,'ASN',1,(1/PO_LINE_LOC_STATUS.conversion_factor)) <> rcpt.RECEIPT_QTY OR (ctcps.ordered_qty*DECODE(ctcps.uom_type_code,'PRIMARY',1,'ASN',1,(1/PO_LINE_LOC_STATUS.conversion_factor)) =(rcpt.RECEIPT_QTY) AND RECONCILE_STATUS IN(25,40)))

AND (TRACKED_QTY <> rcpt.RECEIPT_QTY or (TRACKED_QTY = rcpt.RECEIPT_QTY and RECONCILE_STATUS IN (20,25,40)))

AND PO_LINE_LOC_STATUS.VENDOR_ID = ps.VENDOR_ID

AND PO_LINE_LOC_STATUS.VENDOR_SITE_ID = pssam.VENDOR_SITE_ID

AND ps.PARTY_ID = hp.PARTY_ID

AND PO_LINE_LOC_STATUS.DELIVER_TO_BUSINESS_UNIT_ID=BU.ORGANIZATION_ID

AND PO_LINE_LOC_STATUS.DELIVER_TO_INVENTORY_ORG_ID=INV_ORG.ORGANIZATION_ID

AND ctoc.trade_operation_charge_id =ctcps.trade_operation_charge_id

AND ctoc.trade_operation_id =cto.trade_operation_id

AND ctoc.line_status_code IN ('ALLOC_ERROR','ALLOCATED','ALLOCATED_WARN')

AND crce.cmr_po_line_location_id =rcpt.cmr_po_line_location_id

AND trunc(SYSDATE) BETWEEN bu.effective_start_date AND bu.effective_end_date

AND cls.organization_id = bu.organization_id

AND cls.classification_code = 'FUN_BUSINESS_UNIT'

AND PO_LINE_LOC_STATUS.INVENTORY_ITEM_ID = ItemPEO.INVENTORY_ITEM_ID(+)

AND PO_LINE_LOC_STATUS.DEFAULT_INVENTORY_ORG_ID = ItemPEO.ORGANIZATION_ID(+)

GROUP BY ctcps.CMR_PO_LINE_LOCATION_ID,

ctcps.ordered_qty,

ctcps.tracked_qty,

rcpt.RECEIPT_QTY,

ctcps.uom_type_code,

ctcps.uom_code,

ctcps.po_uom_conv_factor,

PO_LINE_LOC_STATUS.event_date,

rec_status.reconcile_status,

PO_LINE_LOC_STATUS.po_number,

PO_LINE_LOC_STATUS.line_number,

PO_LINE_LOC_STATUS.SHIPMENT_NUMBER,

BU.NAME,

BU.ORGANIZATION_ID,

pssam.VENDOR_SITE_ID,

pssam.VENDOR_SITE_CODE,

hp.PARTY_NAME,

INV_ORG.ORGANIZATION_NAME,

INV_ORG.ORGANIZATION_ID,

PO_LINE_LOC_STATUS.CLOSE_STATUS_FLAG,

PO_LINE_LOC_STATUS.conversion_factor,

cto.trade_operation_id,

CTO.TRADE_OPERATION_NUMBER,

CTO.NAME,

CTO.STATUS_CODE,

ItemPEO.ITEM_NUMBER

) temp_results,

fnd_lookups fl,

fnd_lookups fl2

WHERE fl.lookup_type='ORA_CML_RECONCILIATION_STATUS'

AND fl.lookup_code =temp_results.RECONCILE_STATUS

AND fl2.lookup_type ='ORA_CML_TROP_STATUS'

AND fl2.lookup_code =temp_results.STATUS_CODE

AND RECEIPT_QTY > 0