diff --git a/jikimo_purchase_request/models/purchase_order.py b/jikimo_purchase_request/models/purchase_order.py index 59a7959c..95f81e9f 100644 --- a/jikimo_purchase_request/models/purchase_order.py +++ b/jikimo_purchase_request/models/purchase_order.py @@ -1,4 +1,5 @@ from odoo import api, fields, models, _ +from odoo.tools import float_compare class PurchaseOrder(models.Model): @@ -38,3 +39,18 @@ class PurchaseOrder(models.Model): move_ids.write({'state': 'waiting', 'is_done': False}) return res + def write(self, vals): + res = super(PurchaseOrder, self).write(vals) + if 'state' in vals and vals['state'] == 'purchase': + purchase_request = self.order_line.purchase_request_lines.request_id + if purchase_request: + finished = True + # 判断该采购申请所有明细行是否都完成 + for purchase_request_line in purchase_request.line_ids: + finished_qty = sum(purchase_request_line.purchase_lines.filtered(lambda line: line.state == 'purchase').mapped('product_qty')) + if float_compare(finished_qty ,purchase_request_line.product_qty, precision_rounding=purchase_request_line.product_id.uom_id.rounding) < 0: + finished = False + break + if finished: + purchase_request.button_done() + return res diff --git a/jikimo_purchase_request/views/purchase_request_menu_views.xml b/jikimo_purchase_request/views/purchase_request_menu_views.xml index b5775099..85864351 100644 --- a/jikimo_purchase_request/views/purchase_request_menu_views.xml +++ b/jikimo_purchase_request/views/purchase_request_menu_views.xml @@ -1,8 +1,14 @@ - - + + 0 + + + + 1 + + diff --git a/jikimo_purchase_request/views/purchase_request_view.xml b/jikimo_purchase_request/views/purchase_request_view.xml index ea52ebed..151152e8 100644 --- a/jikimo_purchase_request/views/purchase_request_view.xml +++ b/jikimo_purchase_request/views/purchase_request_view.xml @@ -7,12 +7,6 @@ 重置草稿 - - 1 - - - oe_highlight - @@ -21,18 +15,29 @@ - + 1 - + oe_highlight + + purchase.request.sf.tree + purchase.request + + + + hide + + + + purchase.request.line.sf.tree purchase.request.line @@ -78,4 +83,9 @@ + + + Purchase Requests + + \ No newline at end of file