mirror of
https://github.com/OCA/manufacture.git
synced 2025-01-28 16:37:15 +02:00
[13.0][MIG] mrp_multi_level
This commit is contained in:
@@ -1,5 +1,4 @@
|
||||
# Copyright 2018-19 Eficent Business and IT Consulting Services S.L.
|
||||
# (http://www.eficent.com)
|
||||
# Copyright 2018-19 ForgeFlow S.L. (https://www.forgeflow.com)
|
||||
# License LGPL-3.0 or later (https://www.gnu.org/licenses/lgpl.html).
|
||||
|
||||
from odoo import _, api, fields, models
|
||||
@@ -64,30 +63,36 @@ class MrpInventoryProcure(models.TransientModel):
|
||||
res["item_ids"] = [(6, 0, items.ids)]
|
||||
return res
|
||||
|
||||
@api.multi
|
||||
def make_procurement(self):
|
||||
self.ensure_one()
|
||||
errors = []
|
||||
pg = self.env["procurement.group"]
|
||||
procurements = []
|
||||
for item in self.item_ids:
|
||||
if not item.qty:
|
||||
raise ValidationError(_("Quantity must be positive."))
|
||||
values = item._prepare_procurement_values()
|
||||
# Run procurement
|
||||
try:
|
||||
self.env["procurement.group"].run(
|
||||
procurements.append(
|
||||
pg.Procurement(
|
||||
item.product_id,
|
||||
item.qty,
|
||||
item.uom_id,
|
||||
item.location_id,
|
||||
"INT: " + str(self.env.user.login), # name?
|
||||
"INT: " + str(self.env.user.login), # origin?
|
||||
"MRP: " + str(self.env.user.login), # name?
|
||||
"MRP: " + str(self.env.user.login), # origin?
|
||||
item.mrp_inventory_id.company_id,
|
||||
values,
|
||||
)
|
||||
)
|
||||
# Run procurements
|
||||
try:
|
||||
pg.run(procurements)
|
||||
for item in self.item_ids:
|
||||
item.planned_order_id.qty_released += item.qty
|
||||
except UserError as error:
|
||||
errors.append(error.name)
|
||||
if errors:
|
||||
raise UserError("\n".join(errors))
|
||||
except UserError as error:
|
||||
errors.append(error.name)
|
||||
if errors:
|
||||
raise UserError("\n".join(errors))
|
||||
return {"type": "ir.actions.act_window_close"}
|
||||
|
||||
|
||||
@@ -122,7 +127,6 @@ class MrpInventoryProcureItem(models.TransientModel):
|
||||
"group_id": group,
|
||||
}
|
||||
|
||||
@api.multi
|
||||
@api.onchange("uom_id")
|
||||
def onchange_uom_id(self):
|
||||
for rec in self:
|
||||
|
||||
@@ -1,7 +1,7 @@
|
||||
# Copyright 2016 Ucamco - Wim Audenaert <wim.audenaert@ucamco.com>
|
||||
# Copyright 2016-19 Eficent Business and IT Consulting Services S.L.
|
||||
# - Jordi Ballester Alomar <jordi.ballester@eficent.com>
|
||||
# - Lois Rilo <lois.rilo@eficent.com>
|
||||
# Copyright 2016-19 ForgeFlow S.L. (https://www.forgeflow.com)
|
||||
# - Jordi Ballester Alomar <jordi.ballester@forgeflow.com>
|
||||
# - Lois Rilo <lois.rilo@forgeflow.com>
|
||||
# License LGPL-3.0 or later (https://www.gnu.org/licenses/lgpl.html).
|
||||
|
||||
import logging
|
||||
@@ -298,7 +298,9 @@ class MultiLevelMrp(models.TransientModel):
|
||||
products.write({"llc": llc})
|
||||
products = self.env["product.product"].search([("llc", "=", llc)])
|
||||
counter = len(products)
|
||||
log_msg = "Low level code {} finished - Nbr. products: {}".format(llc, counter)
|
||||
log_msg = "Low level code {} finished - Nbr. products: {}".format(
|
||||
llc, counter
|
||||
)
|
||||
logger.info(log_msg)
|
||||
|
||||
mrp_lowest_llc = llc
|
||||
@@ -473,8 +475,7 @@ class MultiLevelMrp(models.TransientModel):
|
||||
continue
|
||||
init_counter += 1
|
||||
log_msg = "MRP Init: {} - {} ".format(
|
||||
init_counter,
|
||||
product_mrp_area.display_name,
|
||||
init_counter, product_mrp_area.display_name
|
||||
)
|
||||
logger.info(log_msg)
|
||||
self._init_mrp_move(product_mrp_area)
|
||||
@@ -603,8 +604,7 @@ class MultiLevelMrp(models.TransientModel):
|
||||
counter += 1
|
||||
|
||||
log_msg = "MRP Calculation LLC {} Finished - Nbr. products: {}".format(
|
||||
llc - 1,
|
||||
counter,
|
||||
llc - 1, counter
|
||||
)
|
||||
logger.info(log_msg)
|
||||
|
||||
@@ -723,7 +723,6 @@ class MultiLevelMrp(models.TransientModel):
|
||||
self._init_mrp_inventory(product_mrp_area)
|
||||
logger.info("End MRP final process")
|
||||
|
||||
@api.multi
|
||||
def run_mrp_multi_level(self):
|
||||
self._mrp_cleanup(self.mrp_area_ids)
|
||||
mrp_lowest_llc = self._low_level_code_calculation()
|
||||
|
||||
@@ -20,10 +20,9 @@
|
||||
|
||||
<act_window name="Run MRP"
|
||||
res_model="mrp.multi.level"
|
||||
src_model="mrp.multi.level"
|
||||
binding_model="mrp.multi.level"
|
||||
view_mode="form"
|
||||
target="new"
|
||||
key2="client_action_multi"
|
||||
id="action_mrp_multi_level"/>
|
||||
|
||||
</odoo>
|
||||
|
||||
Reference in New Issue
Block a user