inventree / InvenTree

Open Source Inventory Management System
https://docs.inventree.org
MIT License
4.23k stars 762 forks source link

Add "multiple BOM" option #1078

Closed SchrodingersGat closed 2 years ago

SchrodingersGat commented 3 years ago

Under certain circumstances there are reasons for a buildable part to have multiple BOMs.

So when a BuildOrder is created, the user can select from multiple available BOMs (if provided for that part)

eeintech commented 3 years ago

Under certain circumstances

I'm curious to know which are the circumstances driving this idea.

I'm really attached to the one BOM per part relationship, it's easy enough to make a part variant and replace some BOM items then use the variant for the build instead.

On the other hand, InvenTree is lacking a revision system (hasn't been implemented yet). It would be nice to be able to store one BOM per revision for the same part and be able to switch between those revisions and BOMs directly from the part detail page and when creating the build. This would make the "multiple BOM" per part available in a sleek manner.

SchrodingersGat commented 3 years ago

I'm curious to know which are the circumstances driving this idea.

This use-case might not be super appealing to many others, but could provide a lot of usefulness in my company at least. I'll try to explain the concept:

Imagine you have a PCB which has two "variants" PCB-XYZ-A and PCB_XYZ_B. They are almost the same, except the _B variant has an extra processor loaded for additional functionality.

So, the BOMs for both variants are almost identical - except that the _B variant has one more line item.

Let's say you wanted to build some _B variants and you actually had some _A variants in stock but just sitting on the shelf. Potentially you could take those items off the shelf, add in some of the special processors, and hey presto you've now got stock of the _B units.

Alternatively you could have built the _B variants from the original BOM.

In this situation there are two different ways of building _B units based on the stock you have in hand... Which could be represented in the database by two different BOM listings.

eeintech commented 3 years ago

Isn't it what "variant" parts are for? It seems like the perfect use-case to me, at least that's how I planned on using them.

I still don't see the appeal and I feel like it's adding complexity to solve a problem which can already be solved with the current features, maybe at the expense of little more setup (eg. create Part variant vs create BOM variant).

Edit: Now I see the appeal 😄

eeintech commented 3 years ago

@SchrodingersGat Coming back to this discussion, I backtracked on my previous comment and think it would be great if we introduced a variant management system to part's BOM, in addition to part variants (which have use cases in certain type of inventories).

I changed my mind after seeing more complexity introduced into my company database, the term "BOM variant" makes a lot of sense now.

matmair commented 2 years ago

@eeintech @SchrodingersGat is this still valid?

eeintech commented 2 years ago

@matmair Ha that's old, in our company we can function without it.

SchrodingersGat commented 2 years ago

The "multiple BOM" concept is probably not something worth pursuing any longer.