frappe / erpnext

Free and Open Source Enterprise Resource Planning (ERP)
https://erpnext.com
GNU General Public License v3.0
19.71k stars 7k forks source link

Nested BOM Changes #9414

Open epochc opened 7 years ago

epochc commented 7 years ago

What is needed:

Ability to add items without the BOM field getting automatically populated, even when the item has a default BOM.

Why this is needed:

Let's say an organization uses up raw material to make a Component A. This Components goes out for sub contracting and comes back as Component B. Now Component B gets clubbed with inhouse manufactured items Components C, D & E (all made from raw material) and finally Finished Goods F is Produced.

Now you need two types of BOM:

  1. For Material Planning, which includes the Exploded BOM for Components B, C, D & E.
  2. Manufacture: 2.1: Here you flush out the raw materials for component A as the A is finished and goes to the Sub Contractor 2.2: You flush out Component B (Inputs for making B is A and the raw material for making A has already got flushed out as A was sent to the Sub Contractor), and the raw materials for Components C, D & E.

The objective of the BOM for Raw Materials is to ensure that you can plan the raw materials.

The objective of the BOM for Manufacture is to ensure that you do not flush out the raw materials for a sub assembly twice which is what will happen if you already passed a manufacturing entry for any Assembly. Since, especially for sub contracting, you really do need to pass the manufacturing entry for Component A, else you wouldn't be able to send it out, the only way to prevent double flushing out of raw materials of certain assemblies/components is to do the following:

To do this on ERPNext, you first have to do the BOM for manufacture (So that Component B does not have a default BOM) and then you have to make the BOM for Raw Materials.

So, if you fail to do that, and you end up creating the BOM for materials planning first, which is a completely nested BOM and which is what an organization will end up doing first, then trying to create the BOM for manufacture is a serious task, the way ERPNext is configured currently.

Providing the ability to include an item in a BOM, without having the BOM for the item getting automatically populated even when the item has a default BOM (And you need a default BOM for Sub Contracting), will ensure that, in the above example, the BOM for Manufacture for Finished Goods F will flush out Component B and the Raw Materials required for Components C, D & E.

Trust that helps.

Thanks

Jay

bcornwellmott commented 7 years ago

I'm struggling a little bit to understand, but could you not just use the Production Planning Tool and set the default material request type for each of your components to make the requests for you?

It would generate purchase MRs for the raw materials, a purchase MR for component B (with subcontracting), and manufacture MRs for A, C, D E? It also would create a Production Order for F.

Is it not working the way it should, or am I missing the point?

epochc commented 7 years ago

Not sure, Brian. Let me check out the enhanced Production Planning tool and let you know if that solves my problem.

Thanks for all your contributions.

Cheers

Jay

djpalshikar commented 6 years ago

And you need a default BOM for Sub Contracting @epochc This has been fixed, you do not need a default BOM for subcontracting. I think this should solve your problem. You can now create Nested BOMs which do not explode every item.