From 38109028d432652682fdcb08866664978fa1f4c4 Mon Sep 17 00:00:00 2001 From: guanhuan Date: Fri, 23 May 2025 15:13:01 +0800 Subject: [PATCH] =?UTF-8?q?=E9=87=87=E8=B4=AD=E7=94=B3=E8=AF=B7=E5=85=B3?= =?UTF-8?q?=E9=97=AD=E4=BF=AE=E6=94=B9?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../models/purchase_request.py | 31 ++++++++++--------- 1 file changed, 17 insertions(+), 14 deletions(-) diff --git a/jikimo_purchase_request/models/purchase_request.py b/jikimo_purchase_request/models/purchase_request.py index 70a2024b..0459dcd9 100644 --- a/jikimo_purchase_request/models/purchase_request.py +++ b/jikimo_purchase_request/models/purchase_request.py @@ -9,7 +9,7 @@ class PurchaseRequest(models.Model): _inherit = 'purchase.request' _description = '采购申请' - # 为state添加取消状态 + # 为state添加取消状态 state = fields.Selection( selection_add=[('cancel', '已取消')], ondelete={'cancel': 'set default'} # 添加 ondelete 策略 @@ -37,11 +37,13 @@ class PurchaseRequest(models.Model): lines = self.mapped("line_ids.purchase_lines.order_id") # 采购单产品和数量 product_summary = {} + product_rounding = {} if lines: for line in lines: for line_item in line.order_line: product_id = line_item.product_id.id qty = line_item.product_qty + product_rounding[product_id] = line_item.product_id.uom_id.rounding if product_id in product_summary: product_summary[product_id] += qty else: @@ -51,7 +53,7 @@ class PurchaseRequest(models.Model): discrepancies = [] for product_id, qty in product_qty_map.items(): if product_id in product_summary: - if float_compare(product_summary[product_id], qty, precision_digits=2) < 0: + if float_compare(product_summary[product_id], qty, precision_rounding=product_rounding[product_id]) < 0: discrepancies.append((product_id, qty, product_summary[product_id])) else: discrepancies.append((product_id, qty, 0)) @@ -65,17 +67,17 @@ class PurchaseRequest(models.Model): # 添加确认框 message += "确认关闭?" return { - 'name': _('采购申请'), - 'type': 'ir.actions.act_window', - 'views': [(self.env.ref( - 'jikimo_purchase_request.purchase_request_wizard_wizard_form_view').id, - 'form')], - 'res_model': 'purchase.request.wizard', - 'target': 'new', - 'context': { - 'default_purchase_request_id': self.id, - 'default_message': message, - }} + 'name': _('采购申请'), + 'type': 'ir.actions.act_window', + 'views': [(self.env.ref( + 'jikimo_purchase_request.purchase_request_wizard_wizard_form_view').id, + 'form')], + 'res_model': 'purchase.request.wizard', + 'target': 'new', + 'context': { + 'default_purchase_request_id': self.id, + 'default_message': message, + }} return super(PurchaseRequest, self).button_done() @@ -97,7 +99,8 @@ class PurchaseRequestLine(models.Model): ('outsourcing', "委外加工"), ], string='供货方式', compute='_compute_supply_method', store=True) - purchase_request_count = fields.Integer(string='采购申请数量', compute='_compute_purchase_request_count', readonly=True) + purchase_request_count = fields.Integer(string='采购申请数量', compute='_compute_purchase_request_count', + readonly=True) purchase_count = fields.Integer(string="采购订单数量", compute="_compute_purchase_count", readonly=True) @api.depends("purchase_lines")