mirror of
https://github.com/OCA/stock-logistics-warehouse.git
synced 2025-01-21 14:27:28 +02:00
50 lines
2.0 KiB
Python
50 lines
2.0 KiB
Python
# Copyright (C) 2018 - TODAY, Open Source Integrators
|
|
# (http://www.opensourceintegrators.com)
|
|
# Copyright 2019 ForgeFlow S.L. (https://www.forgeflow.com)
|
|
# License AGPL-3.0 or later (https://www.gnu.org/licenses/agpl.html).
|
|
|
|
from odoo import api, models
|
|
|
|
|
|
class ProcurementGroup(models.Model):
|
|
_inherit = "procurement.group"
|
|
|
|
@api.model
|
|
def run(self, procurements, raise_user_error=True):
|
|
# 'Procurement' is a 'namedtuple', which is not editable.
|
|
# The 'procurement' which needs to be edited is created new
|
|
# and the previous one is deleted.
|
|
Proc = self.env["procurement.group"].Procurement
|
|
indexes_to_pop = []
|
|
new_procs = []
|
|
for i, procurement in enumerate(procurements):
|
|
if "orderpoint_id" in procurement.values:
|
|
orderpoint = procurement.values.get("orderpoint_id")
|
|
if (
|
|
orderpoint.procure_uom_id
|
|
and procurement.product_uom != orderpoint.procure_uom_id
|
|
):
|
|
new_product_qty = procurement.product_uom._compute_quantity(
|
|
procurement.product_qty, orderpoint.procure_uom_id
|
|
)
|
|
new_product_uom = orderpoint.procure_uom_id
|
|
new_procs.append(
|
|
Proc(
|
|
procurement.product_id,
|
|
new_product_qty,
|
|
new_product_uom,
|
|
procurement.location_id,
|
|
procurement.name,
|
|
procurement.origin,
|
|
procurement.company_id,
|
|
procurement.values,
|
|
)
|
|
)
|
|
indexes_to_pop.append(i)
|
|
if new_procs:
|
|
indexes_to_pop.reverse()
|
|
for index in indexes_to_pop:
|
|
procurements.pop(index)
|
|
procurements.extend(new_procs)
|
|
return super(ProcurementGroup, self).run(procurements, raise_user_error)
|