Q. Can anyone think of any potential issues with sending BOM scrap items to store warehouse (rather than scrap)? I’m investigating if I can create a workaround for process manufacturing where I use the scrap-item function to create multiple items from a single BOM.
Further Context
We manufacture plywood parts which we then assemble into a finished product. In our workflow 1 x Plywood Sheet (raw material) is consumed (CNC milled) to create a mix of plywood parts (sub-assemblies), which are then assembled into plywood furniture (finished product). We have many different sheet/part configurations, but we always know the number of parts we create per configuration.
This is a type of process manufacturing – since ERPNext doesn’t allow for a more than one item to be created from a BOM we can’t just make a BOM that has the input raw material and the output parts.
I’ve investigated some work-arounds to make this work:
creating multiple BOMs per plywood sheet and part, and then for each using scrap function to decrease stock for the other parts. The collection of BOMs when executed together would result in the correct stock adjustments.
manually adjusting stock through stock-entries
Both aren’t great options.
Instead is there any reason why we couldn’t:
Create an item which represents the plywood sheet configuration i.e. CUTSHEET-TYPEA-001
Create a BOM where the finished good is the cut sheet CUTSHEET-TYPEA-001
Set the raw material to the plywood item i.e. 12x1200x2400mm Pine Plywood
Set the scrap items to the parts and quantities on the cut sheet
When creating the work order, set the Target Warehouse to a new warehouse called Cutsheets and the scrap warehouse to Stores
Sending the cut sheet item to the new “cutsheet” warehouse (effectively a scrap or placeholder warehouse) is a workaround for ignoring its stock quantity – in reality the cut sheet item doesn’t physically exist, is just a placeholder for describing the different plywood parts we need per BOM. Sending the “scrap items” to the stores warehouse effectively sends them to the target warehouse.
I’ve tested this out and from everything I can see it works? In our design software I would setup API calls that would create the cut sheet items, BOMs and probably the Work Orders as well.
Seems like a great workaround to me but feels like I’m missing something – are scrap items somehow treated differently, somewhere?
BOM with Item as Cut Sheet, Raw Material as Plywood Sheet
This will work. You have to do some customization to handle the scap valuation.
By default, scrap is valued at zero rate or at valuration rate defined in the Item.
In our case we have done customization to distribute the total input cost based on scrap quanity and calculate the scrap rate dynamically at the time of entry.
I did find the the valuation rates for both the finished item and the scrap parts weren’t behaving how I expected – for the finished item (the cut sheet), I tried to set this to zero, however it kept wanting to update itself (based off the stock valuation?) I would have thought it would have a zero valuation since the item valuation is zero.
For scrap items, are you able to explain what customization is need? My understanding is I would need to calculate the item valuation per BOM. Factoring process waste would give me a overall costing, but scrap is added to the total costing instead of deducting (as would happen if I wasn’t using scrap?) Is this what you are referring too?
Thanks again @mangroliya, the spreadsheet example makes a lot of sense!
Do you know if its possible to do something like this, where CUT SHEET-TYPEA-001 doesn’t contribute to the valuation amount at all?
Ideally I would calculate the valuation of each part based off the their area, and then set process loss to the remainder – do you know if that is possible?
Process Loss = (Material + Operational Cost) - Sum of All Part Rates
Which means to balance Input/Output values, the process loss has to be assigned to CUT SHEET-TYPEA-001?
This is basically the same as your dynamically calculated scrap rate, just with the addition of using areas to calculate the part rates rather than evenly allocating the scrap rate across the output items?
Thanks in advance, hopefully the above makes sense