We have sub-assembly item codes that are common to different projects, e.g. RF1-1 is part of the BOM for project 1000 and project 1200. However, the composition of part RF1-1 is different for both projects. Is there a way to distinguish between the two in the system apart from creating project-specific warehouses?
No other option but to attentively select BOM of sub-assembly item based on Project. Please create Github Issue to filter BOM result in BOM Item and Project based on Project.
Ishan: I would use Project Specific Part Numbers, like RF1-1-A for Project 1000 and RF1-1-B for Project 1200. That way you will anyway need to maintain separate BoMs.
I’d do that out of an abundance of caution and my philosophy is the following:
I’d only use the same part number if the parts are interchangeable.
Like if you can ship RF1-1-B to Project 1000 and RF1-1-A to Project 1200, then (and only then) would I use a single part number.
Unless I am missing something about your business.
The issue is that RF1-1 is present in almost all projects. For each project, RF1-1 would be unique and have separate components. We thought of creating items based on the project code such as RF1-1-1000 and RF1-1-2000 for projects 1000 and 2000 for example. But this would create thousands of entries in our item master. This isn’t ideal since these item codes would be used once only (for that particular project only). They would clutter the item table and we wouldn’t be able to delete them in the future since there would be transactions against them.
Please don’t. I can’t give you compelling arguments about why, but I instinctively know that if you don’t create separate part numbers, you may end up having trouble with valuations, accounting! How will the system know what the price of RF1-1 ought to be. What if you are executing two project simultaneously? How will you distinguish the part for one project from the other? On ERPNext? Your fabrication guys will know of course. You will need to maintain serial numbers or batch numbers to make those distinctions. But you still won’t solve the accounting and the valuation problem. And it is VERY onerous to the people carrying out the transactions, if you turn on Serial Numbers and Batch Numbers.
You can always disable an item after completing a project.
If we go with this approach, our item table might receive about 20,000 additional entries each year. So is there a limit to the number of rows a table can have? And would this affect performance in any way? As an alternative, would the valuation and accounting still be incorrect if we had separate warehouses for each project and the entries were made against those warehouses for each project?
Whoa! 20K items is way too much. Yes, at those numbers you do have to worry about performance.
Can’t you optimize the number of parts you create? Like create a Part Number only for the main assembles of the shippable items and directly upload the exploded BoMs as the BoM for these Items.
On the shop floor you can use Job Cards to track intermediate sub assemblies.
The Valuation based on Warehouses should be a good approach and the manufacturing entries will capture the valuation in the appropriate account (Cost of Goods Sold?), so you should have a record of the valuation rates as well.
Your approach has it’s merits as well, and you will never know till you try. You should pilot it out on two past projects that you executed more or less simultaneously and see what kind of data you get.
Ishan: If it’s okay with you, will you send me the BoM for a main assembly or something. It would be nice to see the complexities of your business. Best Case: I may be able to suggest a way to make it optimal for you to manage your activities on ERPNext. Let me know if this is okay and I will send you my E-Mail ID.