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 @@
-
-
+
+
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