Reviewers: ,
Please review this at http://codereview.tryton.org/81001/
Affected files:
M invoice.py
M invoice.xml
Index: invoice.py
===================================================================
--- a/invoice.py
+++ b/invoice.py
@@ -1189,6 +1189,30 @@
move_line_obj.reconcile(line_ids)
return new_ids
+ def wkf_draft(self, invoice):
+ self.write(invoice.id, {'state': 'draft'})
+
+ def wkf_proforma(self, invoice):
+ self.write(invoice.id, {'state': 'proforma'})
+
+ def wkf_open(self, invoice):
+ self.set_number(invoice.id)
+ self.create_move(invoice.id)
+ self.write(invoice.id, {'state': 'open'})
+ self.print_invoice(invoice.id)
+
+ def wkf_paid(self, invoice):
+ self.write(invoice.id, {'state': 'paid'})
+
+ def wkf_cancel(self, invoice):
+ self.write(invoice.id, {'state': 'cancel'})
+
+ def wkf_triggered_moves(self, invoice):
+ return [x.id for x in invoice.lines_to_pay]
+
+ def wkf_open2paid(self, invoice):
+ return invoice.reconciled
+
Invoice()
Index: invoice.xml
===================================================================
--- a/invoice.xml
+++ b/invoice.xml
@@ -549,34 +549,29 @@
<record model="workflow.activity" id="invoice_activity_draft">
<field name="name">Draft</field>
<field name="workflow" ref="invoice_workflow"/>
- <field name="kind">function</field>
- <field name="action">write({'state': 'draft'})</field>
+ <field name="method">wkf_draft</field>
<field name="flow_start" eval="True"/>
</record>
<record model="workflow.activity" id="invoice_activity_proforma">
<field name="name">Pro forma</field>
<field name="workflow" ref="invoice_workflow"/>
- <field name="kind">function</field>
- <field name="action">write({'state': 'proforma'})</field>
+ <field name="method">wkf_proforma</field>
</record>
<record model="workflow.activity" id="invoice_activity_open">
<field name="name">Open</field>
<field name="workflow" ref="invoice_workflow"/>
- <field name="kind">function</field>
- <field
name="action">set_number() create_move() write({'state': 'open'}) print_invoice()</field>
+ <field name="method">wkf_open</field>
</record>
<record model="workflow.activity" id="invoice_activity_paid">
<field name="name">Paid</field>
<field name="workflow" ref="invoice_workflow"/>
- <field name="kind">function</field>
- <field name="action">write({'state': 'paid'})</field>
+ <field name="method">wkf_paid</field>
<field name="flow_stop" eval="True"/>
</record>
<record model="workflow.activity" id="invoice_activity_cancel">
<field name="name">Canceled</field>
<field name="workflow" ref="invoice_workflow"/>
- <field name="kind">function</field>
- <field name="action">write({'state': 'cancel'})</field>
+ <field name="method">wkf_cancel</field>
<field name="flow_stop" eval="True"/>
</record>
<record model="workflow.transition"
id="invoice_transition_draft_proforma">
@@ -605,8 +600,8 @@
<field name="act_from" ref="invoice_activity_open"/>
<field name="act_to" ref="invoice_activity_paid"/>
<field name="trigger_model">account.move.line</field>
- <field name="trigger_expr_id">[x.id for x in
lines_to_pay]</field>
- <field name="condition">reconciled</field>
+ <field name="trigger_expr_id">wkf_triggered_moves</field>
+ <field name="condition">wkf_open2paid</field>
</record>
<record model="workflow.transition"
id="invoice_transition_draft_cancel">
<field name="act_from" ref="invoice_activity_draft"/>
--
[email protected] mailing list