CMR_AUTO_ACCRUAL_CLR_V

Details

  • Schema: FUSION

  • Object owner: CMR

  • Object type: VIEW

Columns

Name

CMR_PO_DISTRIBUTION_ID

PO_DISTRIBUTION_NUMBER

BUSINESS_UNIT_ID

POSTATUS

POMATCHOPTION

INVOICEFINALMATCH

INVENTORY_ITEM_ID

ITEM_NUMBER

INVENTORY_ORG_ID

CATEGORY_ID

CATEGORY_NAME

SUPPLIERID

VENDOR_NAME

SUPPLIERSITEID

VENDOR_SITE_CODE

INVOICEAGE

RECEIPTAGE

OVERINVOICEDQTY

UNDERINVOICEDQTY

PER_OVER_INVOICED

PER_UNDER_INVOICED

PERPOACCRUALAMT

ACCRUALCLRAMT

CMRACCRUALAMT

APACCRUALAMT

RECEIVEDACCRUALAMT

RECEIVEDNONRECTAXAMT

RECEIVEDRECTAXAMT

INVOICEACCRUALAMT

INVOICENONRECTAXAMT

INVOICERECTAXAMT

PO_NUMBER

LINE_NUMBER

SHIPMENT_NUMBER

PO_QUANTITY

PO_AMOUNT

PURCHASE_BASIS

ORGANIZATION_CODE

CMR_PO_LINE_LOCATION_ID

ACCRUALAMTDIFF

NONRECTAXAMTDIFF

PROCUREMENT_BU_ID

SHIP_TO_LOCATION_ID

RECEIVEDQTY

INVOICEQTY

BU_NAME

LOCATION_CODE

PROFIT_CENTER_BU_ID

PROFIT_CENTER_BU

PO_DESTINATION_TYPE

ITEM_DESCRIPTION

Query

SQL_Statement

with cmr_bus as (select organization_id bu_id, name as bu_name from

hr_organization_units_f_tl where language = userenv('LANG') and trunc(sysdate)

between effective_start_date and effective_end_date )

SELECT

/*+ FIRST_ROWS(10) */ cred.cmr_po_distribution_id,

cred.po_distribution_number,

cred.business_unit_id,

cred.postatus,

cred.pomatchoption,

cred.invoicefinalmatch,

cred.inventory_item_id,

egp.item_number,

cred.inventory_org_id,

cred.category_id,

egpc.category_name,

cred.supplierid,

supplier.vendor_name,

cred.suppliersiteid,

suppliersite.vendor_site_code,

cred.invoiceage,

cred.receiptage,

cred.overinvoicedqty,

cred.underinvoicedqty,

cred.per_over_invoiced,

cred.per_under_invoiced,

cred.perpoaccrualamt,

cred.accrualclramt,

cred.cmraccrualamt,

cred.apaccrualamt,

cred.receivedaccrualamt,

cred.receivednonrectaxamt,

cred.receivedrectaxamt,

cred.invoiceaccrualamt,

cred.invoicenonrectaxamt,

cred.invoicerectaxamt,

cred.po_number,

cred.line_number,

cred.shipment_number,

cred.po_quantity,

cred.po_amount,

cred.purchase_basis,

inv.organization_code,

cred.cmr_po_line_location_id,

cred.accrualamtdiff,

cred.nonrectaxamtdiff,

cred.procurement_bu_id,

cred.ship_to_location_id,

cred.receivedqty,

cred.invoiceqty,

bu.bu_name,

(select loc.location_code from hr_locations_all_f_vl loc where loc.location_id = cred.ship_to_location_id and trunc(sysdate) between loc.effective_start_date and loc.effective_end_date) as location_code,

cred.PROFIT_CENTER_BU_ID,

pcbu.bu_name as profit_center_bu,

cred.po_destination_type,

cred.item_description

FROM

(SELECT cre.cmr_po_distribution_id,

cre.po_distribution_number,

cre.business_unit_id,

cre.postatus,

cre.pomatchoption,

nvl(caid.invoicefinalmatch, 'No') invoicefinalmatch,

cre.inventory_item_id,

cre.inventory_org_id,

cre.category_id,

cre.supplierid,

cre.suppliersiteid,

nvl(caid.invoiceage, 0) invoiceage,

nvl(cre.receiptage, 0) receiptage,

decode(decode(cre.purchase_basis, 'GOODS', SIGN(nvl(cre.netrecptqty, 0) -nvl(caid.invoiceqty, 0)), SIGN(nvl(cre.netrecptamt, 0) -nvl(caid.apaccrualamt, 0))), -1, decode(cre.purchase_basis, 'GOODS', ABS(nvl(cre.netrecptqty, 0) -nvl(caid.invoiceqty, 0)), ABS(nvl(cre.netrecptamt, 0) -nvl(caid.apaccrualamt, 0))), 0, 0, 1, 0) overinvoicedqty,

decode(decode(cre.purchase_basis, 'GOODS', SIGN(nvl(cre.netrecptqty, 0) -nvl(caid.invoiceqty, 0)), SIGN(nvl(cre.netrecptamt, 0) -nvl(caid.apaccrualamt, 0))), 1, decode(cre.purchase_basis, 'GOODS', ABS(nvl(cre.netrecptqty, 0) -nvl(caid.invoiceqty, 0)), ABS(nvl(cre.netrecptamt, 0) -nvl(caid.apaccrualamt, 0))), 0, 0, -1, 0) underinvoicedqty,

decode(decode(cre.purchase_basis, 'GOODS', SIGN(nvl(cre.netrecptqty, 0) -nvl(caid.invoiceqty, 0)), SIGN(nvl(cre.netrecptamt, 0) -nvl(caid.apaccrualamt, 0))), -1, decode(cre.purchase_basis, 'GOODS', ABS(nvl(cre.netrecptqty, 0) -nvl(caid.invoiceqty, 0)) / decode(cre.netrecptqty, 0, 1, NULL, 1, cre.netrecptqty) *100, ABS(nvl(cre.netrecptamt,0) -nvl(caid.apaccrualamt,0)) / decode(cre.netrecptamt, 0, 1, NULL, 1, cre.netrecptamt) *100), 0, 0, 1, 0) per_over_invoiced,

decode(decode(cre.purchase_basis, 'GOODS', SIGN(nvl(cre.netrecptqty, 0) -nvl(caid.invoiceqty, 0)), SIGN(nvl(cre.netrecptamt, 0) -nvl(caid.apaccrualamt, 0))), 1, decode(cre.purchase_basis, 'GOODS', ABS(nvl(cre.netrecptqty, 0) -nvl(caid.invoiceqty, 0)) / decode(cre.netrecptqty, 0, 1, NULL, 1, cre.netrecptqty) *100, ABS(nvl(cre.netrecptamt,0) -nvl(caid.apaccrualamt,0)) / decode(cre.netrecptamt, 0, 1, NULL, 1, cre.netrecptamt) *100), 0, 0, -1, 0) per_under_invoiced,

(cre.cmr_accrual_amt + nvl(caid.apaccrualamt, 0)) / decode(cre.poamount, NULL, 1, 0, 1, cre.poamount) *100 perpoaccrualamt,

(cre.cmr_accrual_amt + nvl(caid.apaccrualamt, 0)) accrualclramt,

cre.cmr_accrual_amt cmraccrualamt,

cre.received_accrual_amt receivedaccrualamt,

cre.received_nonrectax_amt receivednonrectaxamt,

cre.received_rectax_amt receivedrectaxamt,

nvl(caid.apaccrualamt, 0) apaccrualamt,

nvl(caid.invoice_accrual_amt,0) invoiceaccrualamt,

nvl(caid.invoice_nonrectax_amt,0) invoicenonrectaxamt,

nvl(caid.invoice_rectax_amt,0) invoicerectaxamt,

cre.received_accrual_amt + nvl(caid.invoice_accrual_amt,0) accrualamtdiff,

cre.received_nonrectax_amt + nvl(caid.invoice_nonrectax_amt,0) nonrectaxamtdiff,

cre.cmr_po_line_location_id,

cre.po_number,

cre.line_number,

cre.shipment_number,

cre.po_quantity,

cre.po_amount,

cre.purchase_basis,

cre.procurement_bu_id,

cre.ship_to_location_id,

cre.netrecptqty receivedqty,

nvl(caid.invoiceqty,0) invoiceqty,

cre.PROFIT_CENTER_BU_ID,

cre.po_destination_type,

cre.item_description

FROM

(SELECT cpod.BILL_TO_BUSINESS_UNIT_ID business_unit_id,

cpod.cmr_po_distribution_id cmr_po_distribution_id,

cpod.distribution_number po_distribution_number,

SUM(round(nvl(crd.ledger_amount, 0),fncur.precision)) cmr_accrual_amt,

SUM(DECODE(crec.event_cost_source, 'TRANSACTION_TAX', 0, round(nvl(crd.ledger_amount, 0),fncur.precision))) received_accrual_amt,

SUM(DECODE(crec.event_cost_source_type, 'NONREC_TAX', round(nvl(crd.ledger_amount, 0),fncur.precision), 0)) received_nonrectax_amt,

SUM(DECODE(crec.event_cost_source_type, 'REC_TAX', round(nvl(crd.ledger_amount, 0),fncur.precision), 0)) received_rectax_amt,

SUM(decode(cpod.purchase_basis, 'GOODS', DECODE(cre1.event_class_code, 'RECEIVING', DECODE(crec.event_cost_source, 'PO_PRICE', NVL(cre1.source_doc_qty, 0),0),'TRADE_ACCRUALS', DECODE(crec.event_cost_source, 'PO_PRICE', NVL(cre1.source_doc_qty, 0),0), 0),0)) netrecptqty,

SUM(decode(cpod.purchase_basis, 'SERVICES', decode(cre1.event_class_code, 'RECEIVING', DECODE(crec.event_cost_source, 'PO_PRICE', cre1.transaction_amt), 'TRADE_ACCRUALS', DECODE(crec.event_cost_source, 'PO_PRICE', cre1.transaction_amt), 0), 0)) netrecptamt,

TRUNC(sysdate -MAX(decode(cre1.event_class_code, 'RECEIVING', cre1.transaction_date, to_date('01/01/1900', 'dd/mm/YYYY'))), 0) receiptage,

decode(cpod.purchase_basis, 'GOODS', MAX(nvl(cpod.price, 0)) *MAX((cpod.quantity_ordered -nvl(cpod.quantity_cancelled, 0))), MAX((cpod.amount_ordered -nvl(cpod.amount_cancelled, 0)))) poamount,

decode(cpod.event_type, 'PO Close', 'Closed', 'Open') postatus,

decode(cpod.match_option, 'R', 'Receipt', 'P', 'PO', 'C', 'Consigned') pomatchoption,

cpod.purchase_basis,

cpod.inventory_item_id,

cre1.inventory_org_id,

cpod.category_id,

cpod.vendor_id supplierid,

cpod.vendor_site_id suppliersiteid,

cpod.cmr_po_line_location_id,

cpod.po_number,

cpod.line_number,

cpod.shipment_number,

MAX((nvl(cpod.quantity_ordered,0) -nvl(cpod.quantity_cancelled, 0))) po_quantity,

MAX((nvl(cpod.amount_ordered,0) -nvl(cpod.amount_cancelled, 0))) po_amount,

cpod.procurement_business_unit_id procurement_bu_id,

cpod.ship_to_location_id,

cre1.BUSINESS_UNIT_ID PROFIT_CENTER_BU_ID,

cpod.destination_type_code po_destination_type,

cpod.item_description item_description

FROM cmr_rcv_events cre1,

cmr_rcv_distributions crd,

cmr_rcv_event_costs crec,

cmr_purchase_order_dtls cpod,

fnd_currencies fncur

WHERE cre1.accounting_event_id = crec.accounting_event_id

AND crec.event_cost_id = crd.event_cost_id

AND crd.accounting_event_id = cre1.accounting_event_id

AND crd.accounting_line_type IN('ACCRUAL', 'EXPENSE_ACCRUAL')

AND cpod.active_flag = 'Y'

AND cpod.accrue_on_receipt_flag = 'Y'

AND cpod.cmr_po_distribution_id = cre1.cmr_po_distribution_id

and crd.ledger_currency_code=fncur.currency_code

GROUP BY cpod.cmr_po_distribution_id,

cpod.distribution_number,

cre1.business_unit_id,

cpod.purchase_basis,

cpod.event_type,

cpod.match_option,

cpod.inventory_item_id,

cre1.inventory_org_id,

cpod.category_id,

cpod.vendor_id,

cpod.vendor_site_id,

cpod.cmr_po_line_location_id,

cpod.po_number,

cpod.line_number,

cpod.shipment_number,

cpod.procurement_business_unit_id,

cpod.ship_to_location_id,

cpod.BILL_TO_BUSINESS_UNIT_ID,

cpod.destination_type_code,

cpod.item_description)

cre,

(SELECT cpod.cmr_po_distribution_id cmr_po_distribution_id,

cpod.cmr_po_line_location_id,

decode(SUM(decode(final_match_flag, 'Y', 1, 0, NULL, 0)), 0, 'No', 'Yes') invoicefinalmatch,

TRUNC(sysdate -MAX(TRUNC(accounting_date)), 0) invoiceage,

SUM(decode(invoice_distribution_type, 'ACCRUAL', nvl(invoice_qty_in_po_uom, 0), 0)) invoiceqty,

SUM(nvl(invoice_base_amount,0)) apaccrualamt,

SUM(DECODE(invoice_distribution_type, 'ACCRUAL', NVL(invoice_base_amount, 0), 0)) invoice_accrual_amt,

SUM(DECODE(invoice_distribution_type, 'NONREC_TAX', NVL(invoice_base_amount, 0), 0)) invoice_nonrectax_amt,

SUM(DECODE(invoice_distribution_type, 'REC_TAX', NVL(invoice_base_amount, 0), 0)) invoice_rectax_amt

FROM cmr_ap_invoice_dtls cap, CMR_PURCHASE_ORDER_DTLS cpod

WHERE (invoice_distribution_type IN('ACCRUAL', 'NONREC_TAX') or (invoice_distribution_type = 'REC_TAX' and tax_point_basis = 'DELIVERY'))

AND NVL(self_assessed_flag,'N') <> 'Y'

and cap.cmr_po_distribution_id = cpod.cmr_po_distribution_id

and cpod.active_flag = 'Y'

and cpod.accrue_on_receipt_flag = 'Y'

GROUP BY cpod.cmr_po_distribution_id,

cpod.cmr_po_line_location_id)

caid

WHERE caid.cmr_po_distribution_id(+) = cre.cmr_po_distribution_id

and caid.cmr_po_line_location_id(+) = cre.cmr_po_line_location_id

)

cred,

egp_system_items_vl egp,

inv_org_parameters iop,

egp_categories_vl egpc,

poz_suppliers_v supplier,

poz_supplier_sites_all_m suppliersite,

inv_org_parameters inv,

cmr_bus bu,

cmr_bus pcbu

WHERE cred.inventory_item_id = egp.inventory_item_id(+)

AND cred.inventory_org_id = iop.organization_id

AND nvl(iop.master_organization_id,cred.inventory_org_id) = egp.organization_id(+)

AND cred.inventory_org_id = inv.organization_id

AND cred.category_id = egpc.category_id

AND cred.supplierid = supplier.vendor_id(+)

AND cred.suppliersiteid = suppliersite.vendor_site_id(+)

AND bu.bu_id = cred.procurement_bu_id

AND cred.accrualclramt <> 0

and pcbu.bu_id = cred.PROFIT_CENTER_BU_ID