From 9f00fddc09fac667cab711a5c5c12e7c3702c71c Mon Sep 17 00:00:00 2001 From: guanhuan Date: Wed, 25 Jun 2025 09:57:19 +0800 Subject: [PATCH] =?UTF-8?q?=E7=89=A9=E6=96=99=E9=9C=80=E6=B1=82=E8=AE=A1?= =?UTF-8?q?=E5=88=92=E7=AE=A1=E7=90=86?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- sf_demand_plan/models/sf_demand_plan.py | 14 ++++++++++++++ 1 file changed, 14 insertions(+) diff --git a/sf_demand_plan/models/sf_demand_plan.py b/sf_demand_plan/models/sf_demand_plan.py index b57ed713..45b60ab5 100644 --- a/sf_demand_plan/models/sf_demand_plan.py +++ b/sf_demand_plan/models/sf_demand_plan.py @@ -2,6 +2,7 @@ from odoo import models, fields, api, _ from odoo.tools import float_compare +from odoo.exceptions import ValidationError class SfDemandPlan(models.Model): @@ -178,3 +179,16 @@ class SfDemandPlan(models.Model): line.state = '30' else: line.state = '10' + + def write(self, vals): + res = super(SfDemandPlan, self).write(vals) + line_ids = self.line_ids.filtered(lambda p: p.plan_uom_qty == 0 or p.plan_uom_qty < 0) + if line_ids: + raise ValidationError(f"计划量不能小于等于0") + if 'line_ids' in vals: + for line in self.line_ids: + if not line.sale_order_id: + line.sale_order_id = self.sale_order_id + if not line.sale_order_line_id: + line.sale_order_line_id = self.sale_order_line_id + return res