[trunk] No support for forcing full traceability of production lot # in internal stock moves

Bug #670451 reported by Tamás Dénes
76
This bug affects 11 people
Affects Status Importance Assigned to Milestone
Odoo Addons (MOVED TO GITHUB)
Status tracked in Trunk
5.0
Won't Fix
Undecided
Unassigned
Trunk
Confirmed
Wishlist
OpenERP R&D Addons Team 2

Bug Description

Product traceability works only in the simplest cases: When You buy product and sell them from the same location.
But if internal moves or manufacturing operations are involved then traceability can't be guaranteed or even impossible.

The one single reason for this is that there is no way to set "Tracking moves between physical locations" on products. You can track only incoming, outgoing and manufacturing LOTs: The ones from and to virtual locations but not between physical locations.
Doing internal moves the system don't force the usage of LOTs even if all tracking options is checked for a product.

The worst case is when You use mrp module for managing Manufacturing operations:
Two sets of stock.move object is generated when You click on "Confirm Production" in a Manufacturing Order. One set is for Consuming Products on which You are forced to set LOTs (when "tracking manufacturing LOTs" option is checked on the product). The other set of stock.move object (a picking list) is done behind the scenes. Since these (hidden) moves are internal moves and done automatically LOT assignment is not forced.

The effect is that the system moves the raw materials from Stock to the Work Center Location without LOT. Then when the user tries to set LOTs on the products to consume (from the Work Center Location to the virtual Production location) a warning message is shown: "Bad LOT assignation. You are moving 5 products but only 0 available in this lot." The available quantity turns to negative and the shortage is increasing by every Manufacturing Order.

The work around is to set the LOTs on both the products to consume and the internal picking list. But it's not forced by the system (so no guarantied) and is even a lot of unnecessary work. Imagine to do it on 20 ingredients: 2x20=40 LOT assignment. You have to set the same LOT on every two related moves one by one. Double work for nothing to gain. But certainly it's not intuitive.

Anyway I don't understand why are there 3 options for tracking LOTs? And it's even don't cover all the possibilities. So either there should be a 4th option to track internal moves or there should be only one to track all moves for a LOT (as in some other ERP systems)

As I know LOT tracking is for traceability. So what is the purpose of the possibility of partial LOT tracking? (only incoming or only outgoing) What useful information can You get from them? For product traceability You need to track all LOT moves.

While OpenERP is a promising product it's not yet usable in Food, chemical and pharma manufacturing industry where LOT management and full traceability is vital.

In essence two development would be needed:
1. Ability to track internal moves (Preferably with one single option on products for all LOT tracking)
2. In Manufacturing orders to automatically copy the LOT attribute from the products to be consumed to the internal picking list. (So that the user should not have to repeat the LOT assignment and tracking would be guarantied)

description: updated
description: updated
description: updated
Revision history for this message
Nhomar - Vauxoo (nhomar) wrote :

HEllo Tamás.

I'm agree in almost all your points we are working on this for a manufactures of food, and we found several issues.

I will change the importance to opinion inviting to you to share more specific features one by one published as bugs in a separate way, because is a little confusing for programmers solve especific and very important issues like this, with so extensive functional explanations.

I hope we can work toghether ASAP i will post some issues related to this too!.

Regards.

Changed in openobject-addons:
importance: Undecided → Medium
status: New → Confirmed
milestone: none → 5.0.15
status: Confirmed → Opinion
importance: Medium → High
Revision history for this message
Nhomar - Vauxoo (nhomar) wrote :

What i'm not agree?

>Anyway I don't understand why are there 3 options for tracking LOTs? And it's even don't cover all the possibilities. So either >there should be a 4th option to track internal moves or there should be only one to track all moves for a LOT (as in some other >ERP systems)

I think the concept for distinct lots is correct, the problem in in the traceability, i don't check the code yet, but i think this concept is correctly implemented right now, the problem is that it is _bad_ tested... is our responsability try it and post our opinions... ;-)

Revision history for this message
Tamás Dénes (tamas-denes) wrote :

Hello Nhomar!

Thanks for such fast response!
I think the possibility to deal with three kind of tracking options independently is conceptually wrong. It's even not usable in real life.
Try it Yourself:
1. Check "Track incoming LOTs" only for a product.
2. Buy 10 PCE from this product. So You have 10 PCE in LOT 0000001 now.
3. Buy 5 PCE from this product again with another LOT. So You have 10 PCE in LOT 0000001 and 5 PCE in LOT 0000002 now.
4. Sell 2 PCE from this product without LOT.
5. You have 10 PCE in Stock with LOT 0000001, 5 PCE in stock with LOT 0000002 and You have -2 PCE in stock with LOT 'Undefined'.

Have You expected this?

The fact is that the implementation is fine. You have to manage stocks with LOTs and without LOTs independently. Otherwise how could the software found out from which LOT should it fulfill Your Sale Orders? From LOT 0000001? Or from LOT 0000002? So it is implemented correctly according to the concept.

So my opinion is that the concept of 3 independent tracking options is fundamentally wrong. If You want to manage LOTs for a product You have to do it from beginning to the end.

But there is a chance that I don't know something what would prove the present functionality. So please show me the use case for that three kind of tracking options if there are any.

In my opinion there should be only one single tracking option for the product and it should include moves between physical locations and not just moves between physical and virtual locations.

In the present state the software manages internal moves similarly to the above example. There is no way to make the "Production LOT" attribute mandatory for internal moves. (There is no such option on the product form)

Anyway I have had the chance to extensively test some other commercial ERP softwares and there are only one tracking option for products in these softwares. (Namely the Italian Mago.Net and the German ABAS).

Revision history for this message
Nathan (nathan-bowden-kiwi) wrote :

I still using 5.0 and affected,i must want to know about its future fix in next version 6.

Revision history for this message
Steffi Frank (Bremskerl, DE) (steffi-frank) wrote :

When you start thinking of changing your concept in the code please think of changing the terminolgy as well: not only in Food, chemical and pharma manufacturing industry we are talking about batches instead of lots, true?

Yes, it's true: in all ERP systems I've ever worked in (even if I just had a look at them):
you have to enable/disable ONE parameter to set a product batch handled or not. And if you enabled this parameter the software guarantees that NO stock move could be validated without assigning a batch.

@Nhomar: this is not just a claim in food industry. Even for manufacturing brake linings we have to ensure a full traceability, including material sent to subcontractors and its usage in finished goods in China.

We reported a few bugs about this issue - still waiting for answers (and it does not sound very promising when you find out your bug is set to 'whishlist')

If OpenERP still pursures the strategy to become one of the top 10 ERP providers (and I really would appreciate this!) you quite soon should start reviewing the philosophy in stock management and manufacturing

It would be fair enough to let us know about the descisions made by OpenERP....

Revision history for this message
Vinay Rana (OpenERP) (vra-openerp) wrote :

Hello,

Our R&D Teams are focused on the latest OpenERP version, and this issue does not affect it.
We stand of course ready to backport the change to stable releases if it has an impact on any customer. In this case please report it to our maintenance team via the OpenERP Publisher's Warranty. They will quickly help solve the issue and backport the fix if needed.

Thank you for your understanding!

summary: - [trunk][stock and mrp] LOT traceability is broken
+ [trunk] No support for forcing full traceability of production lot # in
+ internal stock moves
Revision history for this message
Olivier Dony (Odoo) (odo-openerp) wrote :

This bug report is a good summary of the current limitations of traceability features in OpenERP.
I am confirming it as a wishlist, which could be implemented in a separate module and/or perhaps in the next release.

By default, OpenERP is designed to keep track of 3 kinds of stock moves:
 - incoming goods from suppliers (where you can indicate the batch number/production lot coming from your supplier)
 - outgoing goods to customers (where you can indicate the batch number/production of goods you deliver)
 - manufacturing operations (where you can indicate batch number/production lot for both raw materials and finished products, in order to connect them together in the traceability)

It is possible to make the input of batch number/production lot mandatory for these 3 kinds of operations, but it is not possible to make it mandatory for *all* stock moves, such as internal stock moves.

With this, you get end-to-end traceability of goods (disregarding intermediary steps!) :
 - When some raw materials entered your warehouse, and from which supplier
 - Which raw materials were used to produce which finished products
 - When some finished products exited the warehouse, and to which customer they were sent

This is sufficient for most companies, but may not be suited for all industries, such as agro-food or pharma indeed. For these industries, it may be necessary to develop an additional module providing a way to force full traceability including all internal moves.

A consequence of the above is that OpenERP never makes assumptions about the actual batch number/production lot of products in a given location, and never forces or prevent an operation based on it.

It is very important to understand this limitation... otherwise it leads to a lot of confusion, and incorrect bug reports, such as the following ones (some are invalid, some are only partially valid, and some should be undone or reviewed because they will lead to other problems):
- bug 724820
- bug 739181
- bug 722538
- etc.

Revision history for this message
Michael Schwessinger (schwessinger) wrote :

OK.
In this case we do NOT need any OPW and will cancel our latest one....
Also we will stop any introduction of OpenERP in our companies because it is not usable.
Why OPW, if all promised features are not working and bug reports are declared as "wishlist" and "no bug"....

Revision history for this message
Steffi Frank (Bremskerl, DE) (steffi-frank) wrote :

Olivier,

after reading your comment I hope there is a chance to agree on a solution.

I will stop discuss about philossophies and missing functionalities.

But we've got one big issue: for one of our companies we set 1st of April as date for going live. Cause of all the trouble with production lots we moved that already to 1st of May.....

We definitely can't go live without a solution for our reported bugs concerning production lots (automobil industry is bounded for full traceability too). So 'whishlist' and 'next version' won't help at all... But the idea of a new module 'track internal moves' sounds good (as far as I know c2c started working on it already?) - subject to one condition: for testing we need it at least in 2 weeks.

Any chance? We have to be honest. As Michael wrote above: otherwise we have to stop the implementation of OpenERP in our companies.

I know, it's sounds like as if I would try to put some pressure on your. Sorry, I have to....

Revision history for this message
Olivier Dony (Odoo) (odo-openerp) wrote : Re: [Bug 670451] Re: [trunk] No support for forcing full traceability of production lot # in internal stock moves

On 31/03/11 18:11, Michael Schwessinger wrote:
> OK. In this case we do NOT need any OPW and will cancel our latest
> one.... Also we will stop any introduction of OpenERP in our
> companies because it is not usable. Why OPW, if all promised features
> are not working and bug reports are declared as "wishlist" and "no
> bug"....

Sorry Michael, I'm just trying to be honest and give everyone realistic
expectations about what OpenERP does and what it does not do.

I think it's much better than confirming more and more bugs about
"apparent issues" with production lots/batch numbers, ignoring the
possibly big consequences this has behind the scene.

On 31/03/11 18:49, Steffi Frank (Bremskerl, DE) wrote:
> after reading your comment I hope there is a chance to agree on a
> solution.

We had a very long meeting in R&D yesterday about these issues, and we
are going to see what can be done about it. I realize this looks like a
major shortcoming in OpenERP when you are in automotive industry, but I
hope I showed what was the philosophy in the OpenERP implementation, so
you can actually make the correct assumptions based on that.

> But we've got one big issue: for one of our companies we set 1st of
> April as date for going live. Cause of all the trouble with production
> lots we moved that already to 1st of May.....

I understand and I'm sorry you were not warned before about this. The
number of apparent bugs you encountered with production lots should have
acted as a warning sign that something bigger was behind it :-(

> We definitely can't go live without a solution for our reported bugs
> concerning production lots (automobil industry is bounded for full
> traceability too). So 'whishlist' and 'next version' won't help at
> all... But the idea of a new module 'track internal moves' sounds good
> (as far as I know c2c started working on it already?) - subject to one
> condition: for testing we need it at least in 2 weeks.

We'll let you know what we'll do asap.

Revision history for this message
Steffi Frank (Bremskerl, DE) (steffi-frank) wrote :

Thanks for this open words!

Yes, since November we assumed "there is something going wrong" and it has driven us crazy.... We had Francois over here in January, Jacques two weeks ago - we paid a lot for finding out: we're still left alone.....

Okay, leave that all behind! I won't disturb you any longer but give you the time to find a solution :)

Whish you all a nice weekend!

Revision history for this message
Borja López Soilán (NeoPolus) (borjals) wrote :

By the way, if my memories are right, Omar from Pexego already worked around these problems on the 5.0 version for one customer: he created several modules to do full stock traceability as needed by the dairy industry (cheese, yogurt, cream... fabrication from milk).

I don't recall the exact features, but I remember it managed cost price and lot info in stock moves (cost price per lot, not per product), and was able to report the full forward/backward traceability of lots (i.e. 'everything that has been made using milk from this lot' / 'every product lot that has been used to make this cheese').

Some references:
http://translate.google.com/translate?hl=es&sl=es&tl=en&u=http%3A%2F%2Fwww.pexego.es%2Fblog%2F2010%2F04%2F24%2Ftazabilidad-para-la-industria-agroalimentaria-en-openerp (Google translation from Spanish, sorry!)
http://bazaar.launchpad.net/~openerp-community/openobject-addons/trunk-addons-community/revision/277 (I don't know if that was the last version)

Also, I know that people from Ting! (another Spanish OpenERP partner), Ana Juaristi and others have been working hard on creating modules to improve the MRP, production and cost management.
http://translate.google.com/translate?js=n&prev=_t&hl=es&ie=UTF-8&layout=2&eotf=1&sl=es&tl=en&u=http%3A%2F%2Fwww.openerpsite.com%2Ffabricacion-en-openerp%2F2227.html (Google translation from Spanish, sorry!)

So, as a summary: Several OpenERP partners from Spain have been working on this for a while (*), maybe they can contribute here.

* @Olivier: do you remember the "Jornadas OpenERP 2010" in Spain? :) Omar, Carlos and Juaristi spent half of the time between of the conferences speaking of this topic!

Revision history for this message
Ana Juaristi Olalde (ajuaristio) wrote :

OK, several things here:

We are improving manufacturing modules and we need not only managing lots on consuming or produced for an order but also for materials consumed and produced for an operation. We still did not begin working on this but we will do for sure.

@steffi and @Michael: OpenERP is an impresive free, open and strong functionality ERP. If you don't want using it, don't do. If you find something to improve... 3 options: 1-Pay someone to build it, 2-Do it yourself, 3-wait undefined time until someone does it for community.

@Olivier: I think you haven't got to be sorry or worried about this comments. They can choose. They can work, they don't understand the open source world.

About traceability control. For me it's right that there is 3 tracking lot checkboxes. We discussed this also for 5.0. Imaging the case where you don't want to register traceability on incoming but you need it on outgoing (repairs on tech good, for instance). It's big problem registering thousands of lines on incoming, but maybe it's right capturing lot on outgoing to identify the computer or engine sold. So, there is at less one industry where it's needed like it is now.

Sistem allows including prodlog on EVERY stock move you do, nevermind the kind of movement, so the traceability functionality is right covered in OpenERP. If you need making this assignement mandatory in a kind of movement that is not covered, it's easy. Put another check on product and inherit function to check this field every time a movement is going to be made. So... even if it's not valid for you as it is now... it would be clearly a wishlist.

Thank you:

Ana

Revision history for this message
Steffi Frank (Bremskerl, DE) (steffi-frank) wrote :

"They can choose. They can work, they don't understand the open source world."

WE DO!

Ana, we could do this all on our own, but THINKING OF THE COMMUNITY we

a) use launchpad to share our issues with the community
b) try to explain (via 'functional' bugs) which important functionality is missing for manufacturing companies, so OpenERP gets an idea of what needs to be done to establish this software in a producing market......

We just offer our knowledge - it's OpenERPs descision to use it or not..... Tip: first read all bugs we reported or signed in

So, please reconsider your statement.

Revision history for this message
Ana Juaristi Olalde (ajuaristio) wrote :

First of all, sorry everybody for my hard words, but I don't like reading someone telling that they are not going to use the application like it was mandatory using it just to make presure.

Discussion on software development if always the same. For customer everything are bugs. For developpers almost all of them are not. They are just missing functionality. For me the one discussed here is clearly missing functionality, not a bug.

For big manufacturing companies there is a lot functionality missing but it does not mean that OpenERP is not valid for them. They just need building or financing missing functionality or waiting until someone builds it. That's all.

Sorry again:

Ana

Revision history for this message
Michael Schwessinger (schwessinger) wrote :

@ana:
1. you'd better talk to openerp before posting such comments.
2. our goal is to make openerp a good standard software
3. b.t.w. .... who is paying our knowledge? ...
4. we will do our best (and pay) to make OpenERP a good standard software.

in this case let us all take a look at IBM marketing in the 80's ..... THINK! ... (and work)

Revision history for this message
claude dunnigan (claudedunnigan) wrote :

and i tougth the idea of a good community was to make openerp fully functionnal and above the competion.....

im doing a small sawmill and for them, its not a functionality missing, it's complete loss of control...

Revision history for this message
Nathan (nathan-bowden-kiwi) wrote :

Am I the only one who wishes to get it solved? No progress yet?

Revision history for this message
Steffi Frank (Bremskerl, DE) (steffi-frank) wrote :

Hi Nathan,

ask for module 'stock_trackall'....

Revision history for this message
Steffi Frank (Bremskerl, DE) (steffi-frank) wrote :
Revision history for this message
Omar (Pexego) (omar7r) wrote :

Hi Nathan,

Soon, we will publish a stable version of full_stock_traceability module for 6.0, it allows to trace all, including, internal moves, mixes, sales... stock_trackall isn't enough, only add a constraint to require lots, it followes breaking traceability in several occasions.

Revision history for this message
Nathan (nathan-bowden-kiwi) wrote :

Thank you Omar.

Revision history for this message
t.o (emailbox4oerp) wrote :

hi,

Please find below the REGULATION (EC) No 178/2002 OF THE EUROPEAN PARLIAMENT AND OF THE COUNCIL of 28 January 2002 laying down the general principles and requirements of food law.

Chapter I

15. ‘traceability’ means the ability to trace and follow a food, feed, food-producing animal or substance intended to be, or expected to be incorporated into a food or feed, through all stages of production, processing and distribution;

16. ‘stages of production, processing and distribution’ means any stage, including import, from and including the primary production of a food, up to and including its storage, transport, sale or supply to the final consumer and, where relevant, the importation, production, manufacture, storage, transport, distribution, sale and supply of feed;

source http://eur-lex.europa.eu/LexUriServ/LexUriServ.do?uri=CONSLEG:2002R0178:20090807:EN:HTML

tags: added: traceability
tags: added: maintenance
To post a comment you must log in.
This report contains Public information  
Everyone can see this information.

Other bug subscribers

Remote bug watches

Bug watches keep track of this bug in other bug trackers.