From df589b43e7c158415dcbbbba3b417b3c3217912f Mon Sep 17 00:00:00 2001 From: "lixiaobin@jikimo.com" Date: Tue, 15 Jul 2025 14:13:01 +0800 Subject: [PATCH] BUG_7276_lxb_commit --- .../models/sf_production_demand_plan.py | 23 +++++++++++-------- 1 file changed, 14 insertions(+), 9 deletions(-) diff --git a/sf_demand_plan/models/sf_production_demand_plan.py b/sf_demand_plan/models/sf_production_demand_plan.py index cc4be231..9f53f163 100644 --- a/sf_demand_plan/models/sf_production_demand_plan.py +++ b/sf_demand_plan/models/sf_production_demand_plan.py @@ -34,7 +34,7 @@ class SfProductionDemandPlan(models.Model): company_id = fields.Many2one( related='sale_order_id.company_id', store=True, index=True, precompute=True) - customer_name = fields.Char(string='客户', related='sale_order_id.customer_name') + customer_name = fields.Char('客户', related='sale_order_id.customer_name') order_remark = fields.Text(related='sale_order_id.remark', string="订单备注", store=True) glb_url = fields.Char(related='sale_order_line_id.glb_url', string='glb文件地址') @@ -42,10 +42,10 @@ class SfProductionDemandPlan(models.Model): comodel_name='product.product', related='sale_order_line_id.product_id', string='产品', store=True, index=True) - model_id = fields.Char(string='模型ID', related='product_id.model_id') - part_name = fields.Char(string='零件名称', related='product_id.part_name') - part_number = fields.Char(string='零件图号', related='demand_plan_id.part_number') - is_incoming_material = fields.Boolean(string='客供料', related='sale_order_line_id.is_incoming_material', store=True) + model_id = fields.Char('模型ID', related='product_id.model_id') + part_name = fields.Char('零件名称', related='product_id.part_name') + part_number = fields.Char('零件图号', related='demand_plan_id.part_number') + is_incoming_material = fields.Boolean('客供料', related='sale_order_line_id.is_incoming_material', store=True) new_supply_method = fields.Selection([ ('custom_made', "自制"), @@ -81,7 +81,7 @@ class SfProductionDemandPlan(models.Model): related='product_id.blank_type') blank_precision = fields.Selection([('精坯', '精坯'), ('粗坯', '粗坯')], string='坯料类型', related='product_id.blank_precision') - unit_number = fields.Float(string='单件用量', digits=(16, 3), related='product_id.unit_number') + unit_number = fields.Float('单件用量', digits=(16, 3), related='product_id.unit_number') embryo_long = fields.Char('坯料尺寸(mm)', related='demand_plan_id.embryo_long') materials_id = fields.Char('材料', related='demand_plan_id.materials_id') model_machining_precision = fields.Selection(related='product_id.model_machining_precision', string='精度') @@ -166,11 +166,11 @@ class SfProductionDemandPlan(models.Model): ('生产报废', "生产报废"), ], string='补货原因', default='销售订单', readonly=True) - blank_arrival_date = fields.Date(string='采购计划到货(坯料)') - finished_product_arrival_date = fields.Date(string='采购计划到货(成品)') + blank_arrival_date = fields.Date('采购计划到货(坯料)') + finished_product_arrival_date = fields.Date('采购计划到货(成品)') bom_id = fields.Many2one('mrp.bom', string="BOM", readonly=True) location_id = fields.Many2one('stock.location', string='需求位置', default=get_location_id, readonly=True) - manual_quotation = fields.Boolean(string='人工编程', related='product_id.manual_quotation', default=False) + manual_quotation = fields.Boolean('人工编程', related='product_id.manual_quotation', default=False) @api.constrains('plan_uom_qty') def _check_plan_uom_qty(self): @@ -607,6 +607,11 @@ class SfProductionDemandPlan(models.Model): filtered_plan = self.filtered(lambda mo: mo.status == '30') if not filtered_plan: raise UserError(_("没有需要下达的计划!")) + check_overdelivery_allowed = False + if not self.demand_plan_id.overdelivery_allowed: + customer_location_id = self.env['ir.model.data']._xmlid_to_res_id('stock.stock_location_customers') + if self.location_id.id == customer_location_id: + check_overdelivery_allowed = True # 按产品分组并计算总数 product_data = {} for plan in filtered_plan: