Commit Graph

74 Commits

Author SHA1 Message Date
Matt Taylor
f1c795f7c4 [FIX] mrp_multi_level: check for variant bom
fixes #1366

Using the _bom_find() method, we get the BOM with lowest sequence, whether it's a variant
BOM or a template BOM (no product_id).
2024-11-08 10:46:25 +01:00
Matt Taylor
19bf0298f8 [FIX] mrp_multi_level: fix kit/phantom planning
fixes #1362

Ignoring qty_available for phantom products prevents double counting the
qty_available of components.

Creating planned orders for phantom products is simpler than recursively
exploding phantom BOMs. This also makes it easier to analyze the planning data
generated by the MRP calculation.
2024-11-07 12:08:46 +01:00
Matt Taylor
5ddf7717d4 [IMP] mrp_multi_level: mrp cleanup performance
- Index the planned_order_id column on mrp.production model
- Delete from mrp.planned.order before deleting from mrp.inventory
2024-10-30 12:20:00 +01:00
Lois Rilo
5872a3b452 [IMP] mrp_multi_level: better logs during calculation
* Explicitly log which area and LLC is being computed.
* Correct LLC being logged.
2024-08-29 15:32:45 +02:00
Jordi Ballester Alomar
efd9abc073 [IMP] mrp_multi_level: add hooks to improve extensibility 2024-07-30 09:50:58 +02:00
JordiMForgeFlow
9220ca9adf [IMP] mrp_multi_level: use area from component in the explosion vals 2024-07-18 13:11:11 +02:00
BernatPForgeFlow
6dd80c9299 [FIX] mrp_multi_level: Prioritize safety stock with mrp moves today
If I have 0 units, my safety stock is 5 units and today I have a supply for 10 units, the procurement recommendation should be 0 units
2024-02-20 16:49:04 +01:00
Lois Rilo
8d811f3da6 [FIX] mrp_multi_level: wrong safety stock intial order in grouped demand mode
Three tests cases modelize the issues being solved.
2024-02-06 17:39:33 +01:00
Lois Rilo
08faae373c [FIX] mrp_multi_level: ariable 'move' referenced before assignment 2024-01-25 18:31:05 -07:00
Lois Rilo
f9b9f19244 [FIX] mrp_multi_level: starting qty on hand wrong when using lots
Unify the way to get the starting on hand whenever needed in MRP
calculations.
2024-01-24 08:23:03 -07:00
Alexandre Fayolle
0484184450 [IMP] mrp_multi_level: safety stock
When a product has a safety stock in an area, and the current stock is
below safety, but there are moves in the future, mrp_multi_level does
not compute an immediate action to get back to the safety stock.

This PR changes this behavior: when the mrp_moves are considered, before
processing the first move in the future, we insert a resupply action to
rebuild the safety stock.

We also add some refactoring in the process:

* add extension point on the wizard to compute the quantity to reorder
(so we can choose in a separate module whether to rebuild safety stock
or not)
* add extension point on the wizard to get the date at which the safety
stock must be rebuilt (defaults to today)
* make the code of the wizard symetric between the groupes and non
grouped configuration
2024-01-12 14:25:44 +01:00
Alexandre Fayolle
aadd0582ea [REF] mrp_multi_level: location management
Small refactoring adding a _get_locations method on product.mrp.area
which by defaults delegates the computation to the related mrp.area.

This enables extending a few things related to locations at the
product.mrp.area level.

Change the way `_get_locations()` work: don't return the list of child
locations, only the top-most locations, and then use the `child_of`
operator in the code that looks for locations.
2023-12-06 21:41:32 +01:00
Alexandre Fayolle
572a23d70c [IMP] mrp_multi_level: reduce some logging
When running the multi level planner, the wizard will delete the records
from the previous run (mrp.inventory, mrp.move, mrp.planned.order).
There can be hundreds of such records, and the call to unlink() will
create a log entry which is not really informative. We disable this log
during the call to the wizard (but keep if for manual unlinking of the
records which we want to trace).
2023-12-04 12:18:10 +01:00
BernatPForgeFlow
803cb14434 [IMP] mrp_multi_level: Get BoM to explode
When exploding requirements or calculating supply method, we will consider the first active BoM taking into account the routes.
2023-04-26 15:20:33 +02:00
Lois Rilo
2c301c3c5e [IMP] mrp_multi_level: do not create moves if not data
This improves extensibility, allowing to not create moves on
certain situations by extending the prepare vals hook method.
2023-01-11 13:05:11 +01:00
Lois Rilo
6f6ac94feb [IMP] mrp_multi_level: avoid recursion on LLC calculation.
Introduce a safe and configurable LLC depth limit to avoid infinite
recursion.

Also, improve extensibility of BoM finding and fix it to not
consider archived BoMs.
2022-10-17 17:34:21 +02:00
Bernat Puig Font
1f985df858 [FIX] mrp_multi_level: Descriptive order number in MRP Moves 2022-09-30 11:51:19 +02:00
OCA-git-bot
c24817055b Merge PR #851 into 15.0
Signed-off-by LoisRForgeFlow
2022-09-23 11:39:48 +00:00
Bernat Puig Font
1403cd378e [FIX] mrp_multi_level: Manage Kits in MRP Multi Level 2022-09-20 09:26:08 +02:00
Lois Rilo
14088614da [FIX] mrp_multi_level: do not include supplies on origin.
Planned orders' origin when groupping was including supplies
which could lead to confusion.
2022-09-16 13:41:32 +02:00
LaiaTForgeFlow
99a5c949c3 [FIX]mrp_multi_level: avoid mixing str with boolean 2022-06-30 17:02:33 +02:00
Miquel Raïch
5566d9e385 [IMP] mrp_multi_level: add utf8 encoding to xml files 2022-06-17 17:16:17 +02:00
Lois Rilo
d56ac64702 [IMP] mrp_multi_level: enchance traceability with origin.
* keept description of planned orders verbose.
* make it translatable in most cases.
* while grouping demand include the product in the description.
* add `origin` field not mrp moves and planned orders. Fill it
  with top level demand origin.
2022-03-17 18:32:26 +01:00
Jordi Ballester
e8a0b6107e improve usage of planned orders. - The description of the planned order includes the topmost requirement that caused the planned order. This makes it easier to trace, for example, what planned orders has a given sales order generated. The description of the planned order is passed on to the Manufacturing Orders / Purchase Orders / Transfers as the origin, so it can be possible to search for PO's / MO's that were originated as a result of a given sales order, for example.
- The MRP Inventory tree view is improved so as to add a button to allow you to
  jump to the planned orders.
2022-03-17 14:57:25 +01:00
Lois Rilo
0b69811aa3 [FIX] mrp_multi_level: date_planned required as date object after change upstream.
Due to aec7fcdb69.
2022-03-02 09:57:27 +01:00
NuriaXForgeFlow
5f8f026612 [FIX] mrp_multi_level: Fix case when Purchase Uom is different from Uom and PO in draft 2022-03-02 09:09:28 +01:00
Jordi Ballester
0a97b0583a [FIX] mrp_multi_level: Use running on hand quantity in mrp.inventory
We need to show the projected on hand as it evolves over time.
2022-02-18 09:42:54 +01:00
Christopher Ormaza
ec93a5fe41 [15.0][MIG] mrp_multi_level 2022-01-25 09:57:03 +01:00
Christopher Ormaza
eb236f7888 [IMP] mrp_multi_level: black, isort, prettier 2022-01-25 09:38:58 +01:00
Jordi Ballester
315aa3173c [14.0][mrp_multi_level][imp] improve speed by creating mrp.move records using the create_multi capabilities 2022-01-25 09:38:58 +01:00
Jordi Ballester
175dc5baf3 [mrp_multi_level][fix] allow to procure from planned orders 2022-01-25 09:38:58 +01:00
Lois Rilo
1e460e851c [FIX] mrp_multi_level: Consider timezone of the warehouse to generate mrp inventory records. 2022-01-25 09:38:58 +01:00
Lois Rilo
0275bbb14d [14.0][FIX] mrp_multi_level: error with 3 step delivery.
If the destination moves do not include a MO, the mrp move end
up without a name that raises an error later. This can happen
with 3 setep delivery but also with in more cases in wich there is
a chain of stock moves.

We ensure that the variable `order_number` always have a value.
2022-01-25 09:38:58 +01:00
Lois Rilo
cf161dab96 [MIG] mrp_multi_level: finish migration of test 2022-01-25 09:38:58 +01:00
davidborromeo
083781c02d [MIG] mrp_multi_level: Migration to 14.0 2022-01-25 09:38:58 +01:00
davidborromeo
334fe9b321 [IMP] mrp_multi_level: black, isort, prettier 2022-01-25 09:38:58 +01:00
Jordi Ballester Alomar
fb18b337a9 [FIX] mrp_multi_level: when a bom has quantity multiplier, consider it 2022-01-25 09:38:58 +01:00
AaronHForgeFlow
13972b93fd [IMP]mrp_multi_level
* let third modules to choose wether to continue exploding or not

This is useful for subcontracting and potentially for other flows.
2022-01-25 09:38:58 +01:00
Matt Taylor
27894e8d92 [FIX] mrp_multi_level: Check BoM Line Attrs
add a call to mrp.bom.line._skip_bom_line() method
fixes #505
2022-01-25 09:38:58 +01:00
Núria Martín Xifré
4362a4a74c [13.0][IMP] mrp_multi_level: index llc 2022-01-25 09:38:58 +01:00
hveficent
51fb73d8f5 [IMP] mrp_multi_level:
* Stock Moves Domain moved to product mrp area
2022-01-25 09:38:58 +01:00
OCA-git-bot
86be7f364c pre-commit update 2022-01-25 09:38:57 +01:00
Lois Rilo
07dcfb2f1d [11.0][FIX] mrp_multi_level: origin for "mv" was never being set.
Also, improve mrp.move by using picking name if the move is part of a picking.

[13.0] set "mo" as origin also for material consumption moves.
2022-01-25 09:38:57 +01:00
hveficent
416fa13203 [IMP] mrp_multi_level:
* Planned Order release and due date become required.
* Add button to Product MRP Area to update MOQ from Supplier Info.
* Link Manufacturing Orders with Planned Orders.
* Allow Mrp Inventory Procure Wizard to be used from other models.
* Make MRP Inventory creation more extensible.
* Main Supplier computation (v13 requires explicit False definitions).
2022-01-25 09:38:57 +01:00
hveficent
78423ae8ab [IMP] mrp_multi_level: Minor changes
* Planned Orders become fixed on manual creation by default
* Released Quantity become readonly
* Add product reference if Planned Order name is not defined on bom explosion
2022-01-25 09:38:57 +01:00
hveficent
5211466da1 [IMP] mrp_multi_level: Show supply method on mrp inventory 2022-01-25 09:38:57 +01:00
Lois Rilo
71d6c4bb86 [13.0][MIG] mrp_multi_level 2022-01-25 09:38:57 +01:00
Lois Rilo
1df4ba9c0b [IMP] mrp_multi_level: black, isort 2022-01-25 09:38:57 +01:00
Lois Rilo
ee5ed0104f [12.0][FIX] mrp_multi_level: when grouping demand, if supply and
demand moves have the same date it can happen that the supply is
effectively ignored if considered as staring move of the
grouping and there are more groups to be done after it.

A test case include in this fix depicts in detail the
the problem and ensures no regression.
2022-01-25 09:38:57 +01:00
Lois Rilo
7442a26b78 [12.0][FIX] mrp_multi_level: creating undesired planned orders.
add another exclude point at planned order creation.
2022-01-25 09:38:57 +01:00