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()&#10;create_move()&#10;write({'state': 'open'})&#10;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

Reply via email to