---
# System prepended metadata

title: E2 Inventory Pricing Updates
tags: [cru]

---

---
tags: cru
---
# E2 Inventory Pricing Updates
Below is an information-flow diagram of purchased-inventory price.
Notably:
* RFQs alone do not update an item's vendor price-breaks. (Can't do easy forecasts in quotes to customers.)
    * Price breaks can only be updated by processing a PO.
* While recording an invoice users can optionally update the unit-cost on a PO. This update does not trigger re-processing of a PO. Invoices do not affect:
    * price-breaks, 
    * stocking costs, or
    * bin costs.
* POs spawned *without* RFQs will effectively pull the "last PO price break".
    * While E2 supports recording that a part can be sourced from multiple vendors, E2 does not support vendor-specific price breaks or vendor specific SKUs.
        * When two suppliers exist, extra care must be taken during the purchase process. RFQs —while time-consuming for all parties— are the safest process.

Out of scope of this diagram: There is a company-setting for how parts in bins get posted to a job. It defaults to using the average cost of the parts. Other options include using stocking, FIFO, or LIFO costs.

```graphviz
digraph purchasing{
    //rankdir="BT"
    edge [color="blue" fontcolor="blue"]
    subgraph cluster_QuickView{
        label="Inventory Item"
        scost[label="stocking\ncost"]
        bincost[label="bin cost\n(actual value)"]
        avgcost[label="average cost:\nweighted avg\nof on-hand"]
        price [label="vendor\nprice breaks"]
        bincost->avgcost
    }
    subgraph cluster_quote{
        label="Request\nfor Quote\n(Optional)"
        rfqprice [label="unit price\n(& break)"]
    }
    subgraph cluster_po{
        label="Purchase\nOrder"
        //edge[style="invis"]
        oprice [label="initial\nunit price\n(& break)"]
        opprice [label="unit price\n(& break)\nduring\nprocessing"]
        ilprice [label="unit price\nafter\nprocessing"]
        oprice->opprice
    }
    subgraph cluster_receive{
        label="Receiver"
        rece [label="there is no field\nfor unit price.\nReferences PO's\nunit price."]
    }
    subgraph cluster_invoice{
        label="Invoice\nfrom\nVendor"
        iprice [label="Initial\ntotal $\namount"]
        ioprice [label="manually\noverwritten\ntotal cost"]
        iprice ->ioprice
    }
    
    price->oprice [style="dotted"]
    rfqprice->oprice [style="dotted"]
    opprice->{price scost}[label="optional" style="dashed"]
    opprice->rece
    rece->iprice
    rece->bincost[label="creates new tag & bin"]
    //oprice->iprice [label="Initial"]
    ioprice->ilprice [label="optional" style="dashed"]
    //ljprice->qprice
    
    
}