We have been working with ERPNext’s Manufacturing module and sometimes we feel that it does not reflect the actual manufacturing process and which leads to issues.
In real world manufacturing of a product is subdivided into tasks/operations which can be dependent or independent. Each operation requires certain inputs like raw material, machines, human resource, and time. Output of each operation is a sub product and inspection report.
In practical manufacturing, depending on the way you prioritise the inventory, there are items that are in stock, some are ordered of which some are long lead items. The operations which require the long lead items are planned for later and the operations which are independent of those are started initially. Items for only operation currently in work are moved to work in progress. This also prevents resource hogging where an operation in manufacturing of one product will start after 20 days but has an item allocated which can be used in another manufacturing order and requires it today.
stock movement happen only once. So we cannot do it till the time the last item is not in stock. Meaning either we wait for last item to arrive to start the production order and cause delays or start the production without starting it on ERP causing discrepancy in the physical status and record in the system.
The inspection reports in ERP can happen only on the final product. This is too late. Generally in process inspections are also important and should happen at the end of operations.
There is no planning tool which can allot machines and human resources and schedule operations.
The only way to currently correct these issues in ERPNext is to define each operation as a sub-product with its own BoM. But then it opens a plethora of production orders which can be difficult to track.
I believe that what should happen in ERP is :
We should be able to start and Finish an operation. When we start an operation, the material linked with the operation should move to WIP store. We should be able to print work orders with material request, human resource allocation, workstation allocation and time. When we finish the operation, we should be able to generate a quality report.
We should be only able to start a dependent operation when the all the operation on which this operation depends upon are completed. Also if there is a material which is not available, then also the operation should not start
When all the operation have been completed, then only we should be able to finish the production order. It should then create the stock entry where all the material from the different operations should be consumed and final product is created.
We should also remember that at times more material may be required then specified in BoM if there is a failure/rejection. There should be a way to allocate that material linked with the operation and production order number. This can give a good analysis if there is a repeated failure in particular operation or workstation.