Do not trigger the workflow transition on process

issue3676
review3511003
This commit is contained in:
Nicolas Évrard committed 2014-02-20 18:13:42 +01:00
1 parent e5a765c923
commit 20840c0e3f
1 file changed
+21 -5
+21 -5
View File
@@ -190,6 +190,7 @@ class Sale(Workflow, ModelSQL, ModelView):
('quotation', 'confirmed'),
('confirmed', 'processing'),
('processing', 'processing'),
('processing', 'done'),
('done', 'processing'),
('draft', 'cancel'),
('quotation', 'cancel'),
@@ -879,11 +880,23 @@ class Sale(Workflow, ModelSQL, ModelView):
pass
@classmethod
@ModelView.button
@Workflow.transition('processing')
def proceed(cls, sales):
pass
@classmethod
@Workflow.transition('done')
def do(cls, sales):
pass
@classmethod
@ModelView.button
def process(cls, sales):
done = []
process = []
for sale in sales:
if sale.state not in ('confirmed', 'processing', 'done'):
continue
sale.create_invoice('out_invoice')
sale.create_invoice('out_credit_note')
sale.set_invoice_state()
@@ -891,11 +904,14 @@ class Sale(Workflow, ModelSQL, ModelView):
sale.create_shipment('return')
sale.set_shipment_state()
if sale.is_done():
done.append(sale)
if sale.state != 'done':
done.append(sale)
elif sale.state != 'processing':
process.append(sale)
if process:
cls.proceed(process)
if done:
cls.write(done, {
'state': 'done',
})
cls.do(done)
class SaleInvoice(ModelSQL):