Cancel sales move when cancelling a purchase request
issue5107 review19591002
This commit is contained in:
1 parent
d97ebeb94c
commit
4ff573a3ba
2 files changed
+26
-1
No files matched your search
@@ -17,3 +17,6 @@ def register():
|
||||
ShipmentIn,
|
||||
Template,
|
||||
module='sale_supply', type_='model')
|
||||
Pool.register(
|
||||
HandlePurchaseCancellationException,
|
||||
module='sale_supply', type_='wizard')
|
||||
+23
-1
@@ -7,7 +7,8 @@ from trytond.pool import Pool, PoolMeta
|
||||
from trytond.transaction import Transaction
|
||||
from trytond.tools import grouped_slice
|
||||
|
||||
__all__ = ['PurchaseRequest', 'Purchase']
|
||||
__all__ = ['PurchaseRequest', 'Purchase',
|
||||
'HandlePurchaseCancellationException']
|
||||
__metaclass__ = PoolMeta
|
||||
|
||||
|
||||
@@ -81,3 +82,24 @@ class Purchase:
|
||||
def cancel(cls, purchases):
|
||||
super(Purchase, cls).cancel(purchases)
|
||||
cls._sale_supply_process(purchases)
|
||||
|
||||
|
||||
class HandlePurchaseCancellationException:
|
||||
__name__ = 'purchase.request.handle.purchase.cancellation'
|
||||
|
||||
def transition_cancel_request(self):
|
||||
pool = Pool()
|
||||
SaleLine = pool.get('sale.line')
|
||||
Move = pool.get('stock.move')
|
||||
|
||||
next_state = super(HandlePurchaseCancellationException,
|
||||
self).transition_cancel_request()
|
||||
moves = []
|
||||
for sub_ids in grouped_slice(Transaction().context['active_ids']):
|
||||
sale_lines = SaleLine.search([
|
||||
('purchase_request', 'in', sub_ids),
|
||||
])
|
||||
moves += [m for line in sale_lines for m in line.moves]
|
||||
if moves:
|
||||
Move.cancel(moves)
|
||||
return next_state
|
||||
Reference in new issue
Block a user