--- 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 }