Dolibarr / dolibarr

Dolibarr ERP CRM is a modern software package to manage your company or foundation's activity (contacts, suppliers, invoices, orders, stocks, agenda, accounting, ...). it's an open source Web application (written in PHP) designed for businesses of any sizes, foundations and freelancers.
https://www.dolibarr.org
GNU General Public License v3.0
5.4k stars 2.78k forks source link

Introduce a manufacturing module #5824

Open eldy opened 8 years ago

eldy commented 8 years ago
defrance commented 7 years ago

Hello Propose to integrate this one https://www.dolistore.com/fr/gestion-produits-ou-services/397-Factory-Free--la-GPAO-pour-Dolibarr.html?search_query=factory&results=3

philippe-opendsi commented 7 years ago

As a newbee in the community, how such decision are taken to integrate an external module to the core ? Is there a vote or something similar ?

BebZ commented 7 years ago

In the community i think there are those who read/write the Github's code on a regular basis... = those who can influence decisions taken in the foundation... and forumers...

eldy commented 7 years ago

@philippe-opendsi The main rule that define if a module is integrated into core is the "common sense". Does the module is useful for more than 10% of common Dolibarr users ? If not, it is probably better to keep it as an external module. If yes, is it a good, and ready for the future, module ? What is clear is that, first, some idea of modules are suggested as PR or comments. Exchange may appears in the thread to get information on how module works, why this choice, etc.. If it looks to be "dolibarr" compatible in how it works and in code quality, and if i think there is no need to make other changes in priority before working on such a new modules, it is first introduced as a dev module, so other can enhance, test it easily. Then it is moved as experimental and finally as stable when everythin looks fine. Sometimes it is removed before to reach the stable step. Sometimes the module that come in stable is completely different than the one firstly introduced into dev status. Only "common sense" rule here to keep dolibarr philosophy:

Some modules features takes several years to appears, as stable (example: extrafields, accounting expert)

MartinFulgueiras commented 7 years ago

@defrance I support your idea :)

BebZ commented 7 years ago

So, first step is reviewing the code ? and second is putting in test on dev mode ?

hregis commented 7 years ago

@BebZ no ! the first is to stabilized all existing modules before to add new modules !! ;-))

borsti67 commented 6 years ago

does this (or will it) support serial numbers?

dolibarr95 commented 6 years ago

Hi ! @eldy @defrance For the module of GPAO it would be nice if the manufacturing could work in cascade. I explain (reference * quantity)

Product Composition
REF_A REF_X 5 + REF_Z 1 + REF_B * 8
REF_B REF_O 1 + REF_R 2
REF_R REF_E 8 + REF_M 2

So that when I start manufacturing 45 REF_A all it's child goes in fabrication too.

Tks for reading!

sabas1080 commented 5 years ago

Hi

any update on this?

sanjiiiv commented 5 years ago

Any update to add manufacturing module in near future?

atm-maxime commented 5 years ago

Priorities for this development :

  1. BOM (Bill of materials) => Allow to define the raw materials necessary for the manufacture of the finished product
  2. FO (Fabrication order) => Management of the fabrication with FO ref, status, stock movements
  3. Workstation => Allow to define worstations, include them in BOM and FO

Then we will be able to have theorical costs in BOM, real costs in FO, FO planning, ...

prietojc commented 5 years ago

Any schedule for this feature? Thanks.

BebZ commented 5 years ago

We made something by ourselves for virtual products stock incrementation / decrementation

We "reserve the products (it makes negatives stock movements), assemble, and put the qty in stock with new batch number for the assembled product + new date of expiry).

image

BebZ commented 5 years ago

does this (or will it) support serial numbers?

Let's HOPE so... 2 modules in Dolistore (Factory and Asset) have their own way to manage serials, different from what is inside the core... but maybe one of them will be ready to adapt the way it handles serials form supplier reception to manufacturing, untill customer shipment/invoice ?

defrance commented 5 years ago

Lol, when a troll gets fired from a forum ben he goes on github

eldy commented 5 years ago

@BebZ Currently the modules in dolistore does not manage correctly the lot/serial numbers in a manner we need to be ready for the future. So yes @borsti67 it MUST support lot/serial module. So we work on new implementation. Also it is a good way to have the module coded with the new architecture of "modulebuilder". Currently in v10.0.1, a first step (creating BOMs) is available. Any feedback / debug on this module are welcome so we can work on next step, the MO (Manufacturing Orders). We are waiting for that before starting this step 2. To make another answer in this thread, yes, the module will support cascading MO, but probably not into the first version.

dolibarr95 commented 5 years ago

hi !

...yes, the module will support cascading MO...

😃 YEPEE!!!!!!!!!!!!!!

danijelkusic commented 4 years ago

It would be good if in the future there is an option (as many programs have) to choose consumption of materials for each invoice individually. Because e.g. we (we make custom furniture) can't always make a new product, then virtual products (of which it consists), etc., and finally introduce that product on the invoice...it's a long way.

In the previous program, I had the option "consuming materials" when making an invoice. There is material in the warehouse. I select the material that was used for the current product and and done. I could always see which and how much material went to a particular invoice. These materijal are not visible on the invoice but are required by an accountant.

eldy commented 4 years ago

In current develop (for coming v12), a first version of manufacturing order is now available (no cascading Manufacturing Order yet, but Lot management is ready). @danijelkusic For your need, You may be able to create a MO (with this new module) to define the product to consume and link it to the invoice. Another solution is just to create stock movement to consume product and enter the ref of invoice into the movement code

cfoellmann commented 4 years ago

Any plans to improve the lot/serial management? We have major problems with the way these unique identifiers are handled.

A serial number must enforce to be unique for 1 piece. While a lot defines a number of pieces/units > 1.

Example: BOM contains an item (product) with the count 3 per unit to produce, the item has serial numbers.

How do I track the individual serial numbers?

MartinFulgueiras commented 4 years ago

Very good point Christian.

El jue., 19 de mar. de 2020 08:33, Christian Foellmann < notifications@github.com> escribió:

Any plans to improve the lot/serial management? We have major problems with the way these unique identifiers are handled.

A serial number must enforce to be unique for 1 piece. While a lot defines a number of pieces/units > 1.

Example: BOM contains an item (product) with the count 3 per unit to produce, the item has serial numbers.

How do I track the individual serial numbers?

— You are receiving this because you commented. Reply to this email directly, view it on GitHub https://github.com/Dolibarr/dolibarr/issues/5824#issuecomment-601212917, or unsubscribe https://github.com/notifications/unsubscribe-auth/AHWGP2HYWDMHRPRGAYNHWULRIIUL3ANCNFSM4CRO5U6A .

eldy commented 4 years ago

@cfoellmann This should not be a problem as this was anticipated. When you produce a quantity of 3, you can produce with 3 different serial number. For the moment the interface has only on field to enter the serial so you have to produce in 3 steps (From the manufacturing order MO1, you click on button "Produce" to produce qty 1 for lot 1, then click produce to produce qty 1 for lot 2, produce qty 1 for lot 3). But an enhancement of interface should be done to allow to enter the 3 serial in the same step "Produce" It is same for consumming. You can consume qty X from serial X, qty Y for serial Y, etc...

RiseAdministrative77 commented 4 years ago

Hello,

Will BOMs incorporate prices in the future?

cfoellmann commented 4 years ago

I think we should have a look at the manufacturing modules by ATM. I dont want to replace their business but there are a lot of things we need in core to make it a "complete" solution in this field.

Also we might want to look at adding a hook system for developers to extend the core features without the need to replace everything to get things added.

mudassar791 commented 4 years ago

Hi, I found manufacturing order decreases/increases virtual stock, why so? If any MO got complete it should effect physical stock instead of virtual stock,

cfoellmann commented 4 years ago

Is it a bug or feature that the consumables for the productions have NOT autoselected the standard warehouse set for the product?

DONE: https://github.com/Dolibarr/dolibarr/issues/5824#issuecomment-618392346

eldy commented 4 years ago

Auto select warehouse for consumption is now fixed in develop branch to use the default warehouse of product.

dolibarr95 commented 4 years ago

+1

cfoellmann commented 4 years ago

If a MO is still a draft it should be possible to delete it. Right? At the moment you have to approve it and then cancel it.

BebZ commented 4 years ago

Hello @cfoellmann do you mean this part of batch/lot has to be proposed (like on the shipments) and consumed to create a new batch/lot of the product produced ?

image

image

cfoellmann commented 4 years ago

@BebZ I don't exactly understand what you mean. For us the current usage for serialized items only gives us the ability to "produce" one resulting item per screen. Even small batches give you headaches

BebZ commented 4 years ago

image

i tried to consume an non existing batch/lot and it says it is not possible. batch/lots should be proposed instead of "searched" but looking at stock movements it looks like it is fully supported I confirm ;)

eldy commented 4 years ago

@cfoellmann With current v12, when you have several quantities to produce, you can define all lot number and produce several items in one step (just click on the "fork" picto to enter a new lot/serial number): image

In a future, we may imagine another picto to open a popup to enter all lot/serial number by scanning all lot/serial with your barcode reader or by making a cut and paste from an excel of a list of serial/lot

MartinFulgueiras commented 4 years ago

Hi, this works as I use it regularly. Is there a way to use serialization? meaning each produced item has a specific and unique number.

Gracias!

Martín

El dom., 2 ago. 2020 a las 8:22, Laurent Destailleur (< notifications@github.com>) escribió:

@cfoellmann https://github.com/cfoellmann With current v12, when you have several quantities to produce, you can define all lot number and produce serveral items in one step (just click on the "fork" picto to enter a new lot/serial number): [image: image] https://user-images.githubusercontent.com/883887/89123994-df6ef400-d4d3-11ea-8980-8f32808815ab.png

— You are receiving this because you commented. Reply to this email directly, view it on GitHub https://github.com/Dolibarr/dolibarr/issues/5824#issuecomment-667673559, or unsubscribe https://github.com/notifications/unsubscribe-auth/AHWGP2EIVFSZR76MF4CUXWLR6VSBVANCNFSM4CRO5U6A .

--

cfoellmann commented 4 years ago

Hi, this works as I use it regularly. Is there a way to use serialization? meaning each produced item has a specific and unique number. Gracias! Martín

This seems to be the same issue we have.

Example to illustrate this:

BOM with 3 items. 2 of these with serials (unique to each piece). Target product with serial, unique to each piece produced.

Now I need to produce an amount of 10 of the target item.

Problem: How can I track these serials?

Workaround for now:

  1. Create a MO for target amount 10
  2. Produce 1. Set the serials for input and output.
  3. Produce 2 and so on individually.
BebZ commented 4 years ago

@cfoellmann what you don't understand ?

serialization of products composed has to be a pull request i think

consumption of serial / lot / batches is already implemented I think, you can track which batch numbers of components are in the final product by looking at the Manufacturing order and the batches of the components consumed in the M.O.

but if you want to make a unique product with unique serial, you have to create as many M.O. you wish to have as many unique serials.

With serialization, say you have to make 10 serialized products with 3 components with unique serials

everytime a unique product is created, there is a unique "combination" of the 3 components Human can choose it quite "logically"

How would you like the machine/computer to do it ?

image

cfoellmann commented 4 years ago

@BebZ everything you describe is what we need/do.

Our problem is that part:

but if you want to make a unique product with unique serial, you have to create as many M.O. you wish to have as many unique serials.

you do not need to make many MOs but just "produce" one endproduct at a time. That is getting exhausting at times but for now it is a workaround.

A solution of any kind would be great. I am willing to contribute code and time but I need the discussion on how to handle this in a good way.

eldy commented 4 years ago

@BebZ If you want to produce 10 product P with 10 different serial, 1 MO is enough. Enter quantity 10 in quantity of MO Then when you produce, just enter the 10 different serial number (Need v12).

For consumption, an enhancement can be done to add:

BebZ commented 4 years ago

True ;) I did not realize we could make many different finished product's serials in one M.O. with different components serials.

For consumption : both enhancements would fit the majority Do you think someone can do it or I ask my developer if he has time to make a P.R. in 3 weeks (minimum) ?

For serialization of unique finished product's serials, another PR could be made, we will see if we really need it or not.

Thanks again :)

eldy commented 4 years ago

I don't know anybody working on the 2 suggested enhancement. So if you can push a PR for this (one for each enhancement that are completely different need), it is welcome.

For serialization that is "unique", the idea is to modify the property field "Use lot/serial number" of a product, that is currently "Yes" or "No" to introduce a third value "Yes and unique" Then we add a check in the method that updates the qty of stock for 1 batch (into table llx_product_batch) if product is ""Yes and unique" to check that after the update the qty is always 1 or 0 (and it return an error if not). A PR for this is also welcome.

MartinFulgueiras commented 4 years ago

This solution sounds good.

It is a problem when you need 150 serialized productos out of each batch/lot.

Regards

El vie., 7 ago. 2020 a las 5:55, Laurent Destailleur (< notifications@github.com>) escribió:

I don't know anybody working on the 2 suggested enhancement. So if you can push a PR for this (one for each enhancement that are completely different need), it is welcome.

For serialization that is "unique", the idea is to modify the field "Use lot/serial number" that is currently "Yes" or "No" to introduce a third value "Yes and unique" Then we add a check in the method that update qty of stock for 1 batch if product is ""Yes and unique" to check that after update the qty is always 1 or 0. A PR for this is also welcome.

— You are receiving this because you commented. Reply to this email directly, view it on GitHub https://github.com/Dolibarr/dolibarr/issues/5824#issuecomment-670458846, or unsubscribe https://github.com/notifications/unsubscribe-auth/AHWGP2H5BE6VTCA2S7AS36DR7PMQJANCNFSM4CRO5U6A .

--

StephaneLesage commented 3 years ago

For serialization that is "unique", the idea is to modify the property field "Use lot/serial number" of a product, that is currently "Yes" or "No" to introduce a third value "Yes and unique" Then we add a check in the method that updates the qty of stock for 1 batch (into table llx_product_batch) if product is ""Yes and unique" to check that after the update the qty is always 1 or 0 (and it return an error if not). A PR for this is also welcome.

  • 1 picto to open a popup with an input textfield and a button "Add serial" and a button "Close" so we can scan with a barcode reader to add a lot of different serial.
  • 1 picto to open a popup with list of existing serial so you can pick one without knowing which serial are available.

Yes please do all that and generalize to all pages with stock movement :

  1. Picking with checkboxes: for consumption, shipments and transfers.

  2. Popup to enter list: mandatory for production and receptions, but should be available for the rest also to generalize barcode scanner uses.

  3. For production, add an automatic serial number generator: We need 2 new columns in the product table. Setup a mask in each product like other objects like customer/supplier code, propal/order/invoice number, which can use: a. MO number + auto index b. classical product-specific counter, eventually resettable c. global counter ?

We definetely need this in 2021 S2 and maybe I'll have some time to contribute.

AlbanDurrheimer commented 3 years ago

Hi,

I'm looking for some news on the cascading MO feature, It's something that our company requires for its manufacturing processes so we would like to know if this is still in development before choosing an ERP.

Thank you

cfoellmann commented 3 years ago

@AlbanDurrheimer I am with you. Before going for another feature the existing ones need to extensions and polishing

fappels commented 3 years ago

For serialization that is "unique", the idea is to modify the property field "Use lot/serial number" of a product, that is currently "Yes" or "No" to introduce a third value "Yes and unique" Then we add a check in the method that updates the qty of stock for 1 batch (into table llx_product_batch) if product is ""Yes and unique" to check that after the update the qty is always 1 or 0 (and it return an error if not). A PR for this is also welcome.

  • 1 picto to open a popup with an input textfield and a button "Add serial" and a button "Close" so we can scan with a barcode reader to add a lot of different serial.
  • 1 picto to open a popup with list of existing serial so you can pick one without knowing which serial are available.

Yes please do all that and generalize to all pages with stock movement :

  1. Picking with checkboxes: for consumption, shipments and transfers.
  2. Popup to enter list: mandatory for production and receptions, but should be available for the rest also to generalize barcode scanner uses.
  3. For production, add an automatic serial number generator: We need 2 new columns in the product table. Setup a mask in each product like other objects like customer/supplier code, propal/order/invoice number, which can use: a. MO number + auto index b. classical product-specific counter, eventually resettable c. global counter ?

We definetely need this in 2021 S2 and maybe I'll have some time to contribute.

Some idea on serialization: Add htdocs/core/modules/productbatch/mod_serialization_xxx.php and have it auto generated for field batch on class ProductLot->create with option to use MO ref in mask defined for mod_serialization_xxx.php

Edit: Not like in other dolibarr object, mask should be set in product card and not on lot module setup.

altairis-tof commented 3 years ago

i am working on this for the moment; different batch status is already integrated : https://github.com/Dolibarr/dolibarr/pull/16434 and https://github.com/Dolibarr/dolibarr/pull/16537

altairis-tof commented 3 years ago

other PRs to come...

eldy commented 3 years ago

Hi,

I'm looking for some news on the cascading MO feature, It's something that our company requires for its manufacturing processes so we would like to know if this is still in development before choosing an ERP.

Thank you

The cascading MO feature has been anticipated into database structure. However, there is no development for the moment because we have other priorities on the road for MO/BOM (like disassemble feature that will be available in v14 or "unique" serial number, also available for v14). I'am afraid there is not ETA (Estimated Time of Arrival) for the feature of cascading MO.

AlbanDurrheimer commented 2 years ago

Hi,

@eldy I just noticed that the disassemble functionality is well integrated in v14 which is now available. Can you update the initial post. Thank you.

And does anyone have news for the cascade functionality?