from odoo import models, fields, api, _ from odoo.exceptions import ValidationError import logging _logger = logging.getLogger(__name__) class PurchaseRequest(models.Model): _inherit = 'purchase.request' def _validate_tier(self, tiers=False): res = super(PurchaseRequest, self)._validate_tier(tiers) # 检查是否所有审批都已通过 all_approved = all( tier_review.status == 'approved' for tier_review in self.review_ids ) if self.review_ids and all_approved: # 确保有审批记录 self.state = 'approved' return res @api.model def _get_under_validation_exceptions(self): res = super(PurchaseRequest, self)._get_under_validation_exceptions() res.append("state") return res