diff --git a/jikimo_purchase_request/__manifest__.py b/jikimo_purchase_request/__manifest__.py
index 24b28f13..2cca8da7 100644
--- a/jikimo_purchase_request/__manifest__.py
+++ b/jikimo_purchase_request/__manifest__.py
@@ -14,7 +14,9 @@
'views/purchase_request_view.xml',
'wizard/purchase_request_line_make_purchase_order_view.xml',
'views/purchase_request_line_view.xml',
+ 'views/stock_picking_views.xml'
'wizard/purchase_request_wizard_views.xml',
+ 'views/purchase_request_menu_views.xml',
],
'assets': {
'web.assets_backend': [
diff --git a/jikimo_purchase_request/models/purchase_order.py b/jikimo_purchase_request/models/purchase_order.py
index b5734b78..59a7959c 100644
--- a/jikimo_purchase_request/models/purchase_order.py
+++ b/jikimo_purchase_request/models/purchase_order.py
@@ -27,4 +27,14 @@ class PurchaseOrder(models.Model):
if reverse_move_ids:
reverse_move_ids.picking_id.action_cancel()
return res
+
+ def button_cancel(self):
+ """
+ 将取消的采购订单关联的库存移动撤销
+ """
+ move_ids = self.order_line.move_dest_ids.filtered(lambda move: move.state != 'done' and not move.scrapped)
+ res =super(PurchaseOrder, self).button_cancel()
+ if move_ids.mapped('created_purchase_request_line_id'):
+ move_ids.write({'state': 'waiting', 'is_done': False})
+ return res
diff --git a/jikimo_purchase_request/views/purchase_request_menu_views.xml b/jikimo_purchase_request/views/purchase_request_menu_views.xml
new file mode 100644
index 00000000..b5775099
--- /dev/null
+++ b/jikimo_purchase_request/views/purchase_request_menu_views.xml
@@ -0,0 +1,8 @@
+
+
+
+
+
+
+
+
diff --git a/jikimo_purchase_request/views/purchase_request_view.xml b/jikimo_purchase_request/views/purchase_request_view.xml
index ce6fba9c..ea52ebed 100644
--- a/jikimo_purchase_request/views/purchase_request_view.xml
+++ b/jikimo_purchase_request/views/purchase_request_view.xml
@@ -7,6 +7,12 @@
重置草稿
+
+ 1
+
+
+ oe_highlight
+