Accept Merge Request #2141: (feature/6694 -> develop)

Merge Request: 取消采购单时,如果该采购单关联的库存移动是由采购申请创建的,则不取消

Created By: @胡尧
Accepted By: @胡尧
URL: https://jikimo-hn.coding.net/p/jikimo_sfs/d/jikimo_sf/git/merge/2141
This commit is contained in:
胡尧
2025-05-23 09:43:07 +08:00
committed by Coding
4 changed files with 26 additions and 0 deletions

View File

@@ -14,7 +14,9 @@
'views/purchase_request_view.xml', 'views/purchase_request_view.xml',
'wizard/purchase_request_line_make_purchase_order_view.xml', 'wizard/purchase_request_line_make_purchase_order_view.xml',
'views/purchase_request_line_view.xml', 'views/purchase_request_line_view.xml',
'views/stock_picking_views.xml'
'wizard/purchase_request_wizard_views.xml', 'wizard/purchase_request_wizard_views.xml',
'views/purchase_request_menu_views.xml',
], ],
'assets': { 'assets': {
'web.assets_backend': [ 'web.assets_backend': [

View File

@@ -27,4 +27,14 @@ class PurchaseOrder(models.Model):
if reverse_move_ids: if reverse_move_ids:
reverse_move_ids.picking_id.action_cancel() reverse_move_ids.picking_id.action_cancel()
return res 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

View File

@@ -0,0 +1,8 @@
<?xml version="1.0" encoding="utf-8"?>
<odoo>
<data>
<menuitem id="purchase_request.menu_purchase_request_pro_mgt" sequence="0"/>
<menuitem id="purchase.menu_purchase_rfq" sequence="1"/>
</data>
</odoo>

View File

@@ -7,6 +7,12 @@
<xpath expr="//button[@name='button_draft']" position="attributes"> <xpath expr="//button[@name='button_draft']" position="attributes">
<attribute name="string">重置草稿</attribute> <attribute name="string">重置草稿</attribute>
</xpath> </xpath>
<xpath expr="//button[@name='button_done']" position="attributes">
<attribute name="invisible">1</attribute>
</xpath>
<xpath expr="//button[@name='%(purchase_request.action_purchase_request_line_make_purchase_order)d']" position="attributes">
<attribute name="class">oe_highlight</attribute>
</xpath>
<xpath expr="//field[@name='line_ids']//field[@name='purchased_qty']" position="after"> <xpath expr="//field[@name='line_ids']//field[@name='purchased_qty']" position="after">
<field name="supply_method"/> <field name="supply_method"/>
</xpath> </xpath>