Files
manufacture/mrp_subcontracting_inhibit/models/purchase_order.py
Víctor Martínez 10d9afca0f [ADD] mrp_subcontracting_inhibit: New module
TT38580 TT38581
2022-08-30 09:57:32 +02:00

34 lines
1.3 KiB
Python

# Copyright 2022 Tecnativa - Víctor Martínez
# License AGPL-3.0 or later (http://www.gnu.org/licenses/agpl.html).
from odoo import api, fields, models
class PurchaseOrderLine(models.Model):
_inherit = "purchase.order.line"
subcontracting_inhibit = fields.Boolean(string="Inhibit subcontracting")
@api.model
def _prepare_purchase_order_line_from_procurement(
self, product_id, product_qty, product_uom, company_id, values, po
):
"""We need to inject the context to set the right price"""
subcontracting_inhibit_value = False
if values.get("route_ids"):
subcontracting_inhibit_value = any(
values.get("route_ids").mapped("subcontracting_inhibit")
)
product_id = product_id.with_context(
subcontracting_inhibit=subcontracting_inhibit_value
)
res = super()._prepare_purchase_order_line_from_procurement(
product_id, product_qty, product_uom, company_id, values, po
)
res.update({"subcontracting_inhibit": subcontracting_inhibit_value})
return res
def _onchange_quantity(self):
"""We need to inject the context to set the right price"""
_self = self.with_context(subcontracting_inhibit=self.subcontracting_inhibit)
return super(PurchaseOrderLine, _self)._onchange_quantity()