From 722a044707015538d17357ba236d723d8afc8e98 Mon Sep 17 00:00:00 2001 From: liaodanlong Date: Fri, 15 Nov 2024 11:37:14 +0800 Subject: [PATCH] =?UTF-8?q?=E7=A7=BB=E5=8A=A8deadline=5Fof=5Fdelivery=20?= =?UTF-8?q?=E6=96=B9=E6=B3=95=E4=BD=8D=E7=BD=AE?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- sf_manufacturing/models/mrp_production.py | 43 ++++++++++++----------- 1 file changed, 22 insertions(+), 21 deletions(-) diff --git a/sf_manufacturing/models/mrp_production.py b/sf_manufacturing/models/mrp_production.py index d042db55..1145679c 100644 --- a/sf_manufacturing/models/mrp_production.py +++ b/sf_manufacturing/models/mrp_production.py @@ -34,6 +34,28 @@ class MrpProduction(models.Model): tool_state_remark = fields.Text(string='功能刀具状态备注(缺刀)', compute='_compute_tool_state_remark', store=True) tool_state_remark2 = fields.Text(string='功能刀具状态备注(无效刀)', readonly=True) + @api.depends('procurement_group_id.mrp_production_ids.move_dest_ids.group_id.sale_id') + def _compute_deadline_of_delivery(self): + for production in self: + # 确保 procurement_group_id 和相关字段存在 + if production.procurement_group_id: + # 获取相关的 sale_id + sale_order_id = production.procurement_group_id.mrp_production_ids.mapped( + 'move_dest_ids.group_id.sale_id') + + # 确保 sale_order_id 是有效的 ID 列表 + if sale_order_id: + # 获取 sale.order 记录 + sale_id = self.env['sale.order'].sudo().browse(sale_order_id.ids) # 使用 mapped 返回的 ID 列表 + + # 处理 sale_id + if sale_id: + # 假设我们只需要第一个 sale_id + production.deadline_of_delivery = sale_id[0].deadline_of_delivery if sale_id else False + else: + production.deadline_of_delivery = False + else: + production.deadline_of_delivery = False def _compute_default_delivery_status(self): try: if self.state == 'cancel': @@ -123,28 +145,7 @@ class MrpProduction(models.Model): else: return 0.0 - @api.depends('procurement_group_id.mrp_production_ids.move_dest_ids.group_id.sale_id') - def _compute_deadline_of_delivery(self): - for production in self: - # 确保 procurement_group_id 和相关字段存在 - if production.procurement_group_id: - # 获取相关的 sale_id - sale_order_id = production.procurement_group_id.mrp_production_ids.mapped( - 'move_dest_ids.group_id.sale_id') - # 确保 sale_order_id 是有效的 ID 列表 - if sale_order_id: - # 获取 sale.order 记录 - sale_id = self.env['sale.order'].sudo().browse(sale_order_id.ids) # 使用 mapped 返回的 ID 列表 - - # 处理 sale_id - if sale_id: - # 假设我们只需要第一个 sale_id - production.deadline_of_delivery = sale_id[0].deadline_of_delivery if sale_id else False - else: - production.deadline_of_delivery = False - else: - production.deadline_of_delivery = False @api.depends('workorder_ids.tool_state_remark') def _compute_tool_state_remark(self):