mirror of
https://github.com/OCA/manufacture.git
synced 2025-01-28 16:37:15 +02:00
34 lines
1.2 KiB
Python
34 lines
1.2 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 StockPicking(models.Model):
|
|
_inherit = "stock.picking"
|
|
|
|
subcontracting_purchase_order_id = fields.Many2one(
|
|
comodel_name="purchase.order",
|
|
compute="_compute_subcontracting_purchase_order_id",
|
|
store=True,
|
|
string="Subcontracting order",
|
|
)
|
|
|
|
@api.depends("move_lines", "move_lines.rule_id", "move_lines.move_dest_ids")
|
|
def _compute_subcontracting_purchase_order_id(self):
|
|
for item in self:
|
|
move_dests = item.move_lines.filtered(
|
|
lambda x: x.rule_id and x.move_dest_ids
|
|
)
|
|
order_id = False
|
|
if move_dests:
|
|
productions = move_dests.mapped(
|
|
"move_dest_ids.raw_material_production_id"
|
|
)
|
|
group = productions.picking_ids.group_id
|
|
moves = group.stock_move_ids.move_dest_ids.filtered(
|
|
lambda x: x.is_subcontract and x.purchase_line_id
|
|
)
|
|
order_id = fields.first(moves.mapped("purchase_line_id.order_id"))
|
|
item.subcontracting_purchase_order_id = order_id
|