c2c-oerpscenario team mailing list archive
-
c2c-oerpscenario team
-
Mailing list archive
-
Message #15095
[Bug 700154] Re: Selling a product with phantom BOM ignores chained locations and procurement gets stuck
I see the problem even with a new product, so I'm not sure what we're
doing differently. I used the following steps to reproduce the problem
in stable 5.0.15 from lp:~openerp/openobject-addons/5.0.
1. Create a new database with the sample data included. Choose the Manufacturing Industry profile. Leave the rest as defaults and don't add any extra modules.
2. Create a new product called "Peripheral Kit" with code "KT99". Change the product's supply method to "make to order" instead of "make to stock". Change the supply method to "Produce". Choose the "Accessories" category.
3. Click the Bill of Materials button on the Product screen, and then create a new bill of materials. The name and product should all be filled in by default. Change the BOM Type to "Sets / Phantom".
4. Add a mouse and keyboard (codes MOU and KEYA) to the bill of materials.
5. Create a sales order to the Agrolait customer. Add a line with the phantom product (KT99).
4. Confirm the sales order and remember the order reference.
5. Go to the Stock Management: Outgoing Products screen. Double click on the packing list for your order reference.
6. You should see two stock moves: KEYA and MOU. Click the Check Availability button and they should all become available.
7. Click the Packing Done button and Make Picking and Close. The packing list should now be done.
8. Go to the Stock Management: Delivery Orders screen. Look for a packing list for your order reference.
Expected behaviour and actual behaviour were as described in the bug
description.
** Changed in: openobject-addons
Status: Incomplete => New
--
You received this bug notification because you are a member of C2C
OERPScenario, which is subscribed to the OpenERP Project Group.
https://bugs.launchpad.net/bugs/700154
Title:
Selling a product with phantom BOM ignores chained locations and
procurement gets stuck
Status in OpenERP Modules (addons):
New
Bug description:
I'm testing this bug on version 5.0.15 running on Ubuntu 10.04.
When you add a product to a sales order and that product has a phantom
bill of materials (BOM), there are two problems: the stock moves for
the component products ignore any chained locations that should affect
them, and the procurement for the main product never gets marked as
complete. This means that the sales order never gets marked as
shipped.
I will attach a merge proposal that includes a test for this bug, but here are detailed steps to reproduce the problem:
1. Create a new database with the sample data included. Choose the Manufacturing Industry profile. Leave the rest as defaults and don't add any extra modules.
2. Configure a product with a phantom BOM that you can sell. I used PC0. Change the product's supply method to "make to order" instead of "make to stock". Go to the bill of materials and change the BOM type to Sets / Phantom, and also . There's also an extra bill of materials that points to the PC0 product but is named RAM on demand. It appears to be a mistake, so just delete it. Make sure to save changes on both screens.
3. Create a sales order to the Agrolait customer. Add a line with the phantom product (PC0).
4. Confirm the sales order and remember the order reference.
5. Go to the Stock Management: Outgoing Products screen. Double click on the packing list for your order reference.
6. You should see three stock moves: KEYA, MOU, and PC1. Click the Check Availability button and they should all become available.
7. Click the Packing Done button and Make Picking and Close. The packing list should now be done.
8. Go to the Stock Management: Delivery Orders screen. Look for a packing list for your order reference.
Expected behaviour:
There should be a delivery order for your order reference, and it should have three stock moves for the same three products as the packing list from the Outgoing Products screen. When you ship that delivery order and reload the sales order, it should be marked as picked. This is the behaviour you will see if you sell products that don't have phantom BOM's.
Actual behaviour:
There is no delivery order for your order reference. The sales order isn't marked as picked, even though you've shipped the only packing list there is. If you go and look at the PC0 procurement order, you'll see that it's still waiting.
Analysis:
There are two problems here: the code that explodes the BOM doesn't call action_confirm on the stock moves it creates, and it doesn't link those stock moves to the original PC0 stock move with move_dest_id. All of this code is in the mrp module's StockMove._action_explode() method. Calling action_confirm is what generates the delivery order. If you don't linking to the PC0 stock move with move_dest_id, then it never gets marked as done and the procurement gets stuck.
References