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