Use function name in workflow instead of python code
This commit is contained in:
+102
@@ -723,6 +723,108 @@ class Purchase(ModelWorkflow, ModelSQL, ModelView):
|
||||
for line in purchase.lines:
|
||||
line_obj.create_move(line)
|
||||
|
||||
def wkf_draft(self, purchase):
|
||||
self.write(purchase.id, {'state': 'draft'})
|
||||
|
||||
def wkf_quotation(self, purchase):
|
||||
self.check_for_quotation(purchase.id)
|
||||
self.set_reference(purchase.id)
|
||||
self.write(purchase.id, {'state': 'quotation'})
|
||||
|
||||
def wkf_confirmed(self, purchase):
|
||||
self.set_purchase_date(purchase.id)
|
||||
self.write(purchase.id, {'state': 'confirmed'})
|
||||
|
||||
def wkf_invoice_waiting(self, purchase):
|
||||
self.create_invoice(purchase.id)
|
||||
self.write(purchase.id, {'invoice_state': 'waiting'})
|
||||
|
||||
def wkf_invoice_exception(self, purchase):
|
||||
self.write(purchase.id, {'invoice_state': 'exception'})
|
||||
|
||||
def wkf_invoice_done(self, purchase):
|
||||
self.write(purchase.id, {'invoice_state': 'paid'})
|
||||
|
||||
def wkf_shipment_waiting(self, purchase):
|
||||
self.write(purchase.id, {'shipment_state': 'waiting'})
|
||||
self.create_move(purchase.id)
|
||||
|
||||
def wkf_shipment_exception(self, purchase):
|
||||
self.write(purchase.id, {'shipment_state': 'exception'})
|
||||
|
||||
def wkf_invoice_shipment(self, purchase):
|
||||
self.create_invoice(purchase.id)
|
||||
self.write(purchase.id, {'invoice_state': 'waiting'})
|
||||
|
||||
def wkf_invoice_shipment_waiting(self, purchase):
|
||||
self.write(purchase.id,
|
||||
{'invoice_state': 'waiting', 'shipment_state': 'received'})
|
||||
|
||||
def wkf_invoice_shipment_exception(self, purchase):
|
||||
self.write(purchase.id, {'invoice_state': 'exception'})
|
||||
|
||||
def wkf_invoice_shipment_done(self, purchase):
|
||||
self.write(purchase.id, {'invoice_state': 'paid'})
|
||||
|
||||
def wkf_invoice_shipment_method_done(self, purchase):
|
||||
self.write(purchase.id, {'shipment_state': 'received'})
|
||||
|
||||
def wkf_done(self, purchase):
|
||||
self.write(purchase.id, {'state': 'done'})
|
||||
|
||||
def wkf_cancel(self, purchase):
|
||||
self.write(purchase.id, {'state': 'cancel'})
|
||||
|
||||
def wkf_draft2quotation(self, purchase):
|
||||
return bool(purchase.lines)
|
||||
|
||||
def wkf_invoice_method2invoice_waiting(self, purchase):
|
||||
return purchase.invoice_method == 'order'
|
||||
|
||||
def wkf_invoice_method2invoice_done(self, purchase):
|
||||
return purchase.invoice_method != 'order'
|
||||
|
||||
def wkf_triggered_invoices(self, purchase):
|
||||
return [x.id for x in purchase.invoices]
|
||||
|
||||
def wkf_invoice_waiting2invoice_purchase_exception(self, purchase):
|
||||
return purchase.invoice_exception
|
||||
|
||||
def wkf_invoice_waiting2invoice_done(self, purchase):
|
||||
return purchase.invoice_paid
|
||||
|
||||
def wkf_shipment_waiting2shipment_exception(self, purchase):
|
||||
return purchase.shipment_exception
|
||||
|
||||
def wkf_shipment_waiting2invoice_shipment_method(self, purchase):
|
||||
return not purchase.shipment_exception
|
||||
|
||||
def wkf_shipment_waiting2invoice_shipment_method_nosignal(self, purchase):
|
||||
return purchase.shipment_done
|
||||
|
||||
def wkf_invoice_shipment_method2invoice_shipment(self, purchase):
|
||||
return purchase.invoice_method == 'shipment'
|
||||
|
||||
def wkf_invoice_shipment_method2inv_shipment_method_done(self, purchase):
|
||||
return purchase.invoice_method != 'shipment' and purchase.shipment_done
|
||||
|
||||
def wkf_invoice_shipment_method2shipment_waiting(self, purchase):
|
||||
return (purchase.invoice_method != 'shipment'
|
||||
and not purchase.shipment_done)
|
||||
|
||||
def wkf_invoice_shipment2shipment_waiting(self, purchase):
|
||||
return not purchase.shipment_done
|
||||
|
||||
def wkf_invoice_shipment2waiting_invoice_shipment(self, purchase):
|
||||
return purchase.shipment_done
|
||||
|
||||
def wkf_waiting_invoice_shipment2invoice_shipment_exception(self,
|
||||
purchase):
|
||||
return purchase.invoice_exception
|
||||
|
||||
def wkf_waiting_invoice_shipment2invoice_shipment_done(self, purchase):
|
||||
return purchase.invoice_paid
|
||||
|
||||
Purchase()
|
||||
|
||||
|
||||
|
||||
+42
-48
@@ -382,22 +382,19 @@ this repository contains the full copyright notices and license terms. -->
|
||||
<record model="workflow.activity" id="purchase_activity_draft">
|
||||
<field name="name">Draft</field>
|
||||
<field name="workflow" ref="purchase_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="purchase_activity_quotation">
|
||||
<field name="name">Quotation</field>
|
||||
<field name="workflow" ref="purchase_workflow"/>
|
||||
<field name="kind">function</field>
|
||||
<field name="action">check_for_quotation() set_reference() write({'state': 'quotation'})</field>
|
||||
<field name="method">wkf_quotation</field>
|
||||
</record>
|
||||
<record model="workflow.activity" id="purchase_activity_confirmed">
|
||||
<field name="name">Confirmed</field>
|
||||
<field name="workflow" ref="purchase_workflow"/>
|
||||
<field name="split_mode">AND</field>
|
||||
<field name="kind">function</field>
|
||||
<field name="action">set_purchase_date() write({'state': 'confirmed'})</field>
|
||||
<field name="method">wkf_confirmed</field>
|
||||
</record>
|
||||
<record model="workflow.activity" id="purchase_activity_invoice_method">
|
||||
<field name="name">Invoice Method</field>
|
||||
@@ -407,20 +404,17 @@ this repository contains the full copyright notices and license terms. -->
|
||||
<record model="workflow.activity" id="purchase_activity_waiting_invoice_purchase">
|
||||
<field name="name">Waiting Invoice</field>
|
||||
<field name="workflow" ref="purchase_workflow"/>
|
||||
<field name="kind">function</field>
|
||||
<field name="action">create_invoice() write({'invoice_state': 'waiting'})</field>
|
||||
<field name="method">wkf_invoice_waiting</field>
|
||||
</record>
|
||||
<record model="workflow.activity" id="purchase_activity_invoice_purchase_exception">
|
||||
<field name="name">Invoice Exception</field>
|
||||
<field name="workflow" ref="purchase_workflow"/>
|
||||
<field name="kind">function</field>
|
||||
<field name="action">write({'invoice_state': 'exception'})</field>
|
||||
<field name="method">wkf_invoice_exception</field>
|
||||
</record>
|
||||
<record model="workflow.activity" id="purchase_activity_invoice_done">
|
||||
<field name="name">Invoice Done</field>
|
||||
<field name="workflow" ref="purchase_workflow"/>
|
||||
<field name="kind">function</field>
|
||||
<field name="action">write({'invoice_state': 'paid'})</field>
|
||||
<field name="method">wkf_invoice_done</field>
|
||||
</record>
|
||||
<record model="workflow.activity" id="purchase_activity_invoice_method_done">
|
||||
<field name="name">Invoice Method Done</field>
|
||||
@@ -429,14 +423,12 @@ this repository contains the full copyright notices and license terms. -->
|
||||
<record model="workflow.activity" id="purchase_activity_waiting_shipment">
|
||||
<field name="name">Waiting Shipment</field>
|
||||
<field name="workflow" ref="purchase_workflow"/>
|
||||
<field name="kind">function</field>
|
||||
<field name="action">write({'shipment_state': 'waiting'}) create_move()</field>
|
||||
<field name="method">wkf_shipment_waiting</field>
|
||||
</record>
|
||||
<record model="workflow.activity" id="purchase_activity_shipment_exception">
|
||||
<field name="name">Shipment Exception</field>
|
||||
<field name="workflow" ref="purchase_workflow"/>
|
||||
<field name="kind">function</field>
|
||||
<field name="action">write({'shipment_state': 'exception'})</field>
|
||||
<field name="method">wkf_shipment_exception</field>
|
||||
</record>
|
||||
<record model="workflow.activity" id="purchase_activity_invoice_shipment_method">
|
||||
<field name="name">Invoice Shipment Method</field>
|
||||
@@ -446,51 +438,45 @@ this repository contains the full copyright notices and license terms. -->
|
||||
<record model="workflow.activity" id="purchase_activity_invoice_shipment">
|
||||
<field name="name">Invoice Shipment</field>
|
||||
<field name="workflow" ref="purchase_workflow"/>
|
||||
<field name="kind">function</field>
|
||||
<field name="action">create_invoice() write({'invoice_state': 'waiting'})</field>
|
||||
<field name="method">wkf_invoice_shipment</field>
|
||||
</record>
|
||||
<record model="workflow.activity" id="purchase_activity_waiting_invoice_shipment">
|
||||
<field name="name">Waiting Invoice Shipment</field>
|
||||
<field name="workflow" ref="purchase_workflow"/>
|
||||
<field name="kind">function</field>
|
||||
<field name="action">write({'invoice_state': 'waiting', 'shipment_state': 'received'})</field>
|
||||
<field name="method">wkf_invoice_shipment_waiting</field>
|
||||
</record>
|
||||
<record model="workflow.activity" id="purchase_activity_invoice_shipment_exception">
|
||||
<field name="name">Invoice Shipment Exception</field>
|
||||
<field name="workflow" ref="purchase_workflow"/>
|
||||
<field name="action">write({'invoice_state': 'exception'})</field>
|
||||
<field name="method">wkf_invoice_shipment_exception</field>
|
||||
</record>
|
||||
<record model="workflow.activity" id="purchase_activity_invoice_shipment_done">
|
||||
<field name="name">Invoice Shipment Done</field>
|
||||
<field name="workflow" ref="purchase_workflow"/>
|
||||
<field name="kind">function</field>
|
||||
<field name="action">write({'invoice_state': 'paid'})</field>
|
||||
<field name="method">wkf_invoice_shipment_done</field>
|
||||
</record>
|
||||
<record model="workflow.activity" id="purchase_activity_invoice_shipment_method_done">
|
||||
<field name="name">Invoice Shipment Method Done</field>
|
||||
<field name="workflow" ref="purchase_workflow"/>
|
||||
<field name="kind">function</field>
|
||||
<field name="action">write({'shipment_state': 'received'})</field>
|
||||
<field name="method">wkf_invoice_shipment_method_done</field>
|
||||
</record>
|
||||
<record model="workflow.activity" id="purchase_activity_done">
|
||||
<field name="name">Done</field>
|
||||
<field name="workflow" ref="purchase_workflow"/>
|
||||
<field name="join_mode">AND</field>
|
||||
<field name="kind">function</field>
|
||||
<field name="action">write({'state': 'done'})</field>
|
||||
<field name="method">wkf_done</field>
|
||||
<field name="flow_stop" eval="True"/>
|
||||
</record>
|
||||
<record model="workflow.activity" id="purchase_activity_cancel">
|
||||
<field name="name">Canceled</field>
|
||||
<field name="workflow" ref="purchase_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="purchase_transition_draft_quotation">
|
||||
<field name="act_from" ref="purchase_activity_draft"/>
|
||||
<field name="act_to" ref="purchase_activity_quotation"/>
|
||||
<field name="condition">bool(lines)</field>
|
||||
<field name="condition">wkf_draft2quotation</field>
|
||||
<field name="signal">quotation</field>
|
||||
<field name="group" ref="group_purchase"/>
|
||||
</record>
|
||||
@@ -525,19 +511,19 @@ this repository contains the full copyright notices and license terms. -->
|
||||
<record model="workflow.transition" id="purchase_transition_invoice_method_waiting_invoice_purchase">
|
||||
<field name="act_from" ref="purchase_activity_invoice_method"/>
|
||||
<field name="act_to" ref="purchase_activity_waiting_invoice_purchase"/>
|
||||
<field name="condition">invoice_method == 'order'</field>
|
||||
<field name="condition">wkf_invoice_method2invoice_waiting</field>
|
||||
</record>
|
||||
<record model="workflow.transition" id="purchase_transition_invoice_method_invoice_done">
|
||||
<field name="act_from" ref="purchase_activity_invoice_method"/>
|
||||
<field name="act_to" ref="purchase_activity_invoice_method_done"/>
|
||||
<field name="condition">invoice_method != 'order'</field>
|
||||
<field name="condition">wkf_invoice_method2invoice_done</field>
|
||||
</record>
|
||||
<record model="workflow.transition" id="purchase_transition_waiting_invoice_purchase_invoice_purchase_exception">
|
||||
<field name="act_from" ref="purchase_activity_waiting_invoice_purchase"/>
|
||||
<field name="act_to" ref="purchase_activity_invoice_purchase_exception"/>
|
||||
<field name="trigger_model">account.invoice</field>
|
||||
<field name="trigger_expr_id">[x.id for x in invoices]</field>
|
||||
<field name="condition">invoice_exception</field>
|
||||
<field name="trigger_ids">wkf_triggered_invoices</field>
|
||||
<field name="condition">wkf_invoice_waiting2invoice_purchase_exception</field>
|
||||
</record>
|
||||
<record model="workflow.transition" id="purchase_transition_invoice_purchase_exception_invoice_purchase">
|
||||
<field name="act_from" ref="purchase_activity_invoice_purchase_exception"/>
|
||||
@@ -555,8 +541,8 @@ this repository contains the full copyright notices and license terms. -->
|
||||
<field name="act_from" ref="purchase_activity_waiting_invoice_purchase"/>
|
||||
<field name="act_to" ref="purchase_activity_invoice_done"/>
|
||||
<field name="trigger_model">account.invoice</field>
|
||||
<field name="trigger_expr_id">[x.id for x in invoices]</field>
|
||||
<field name="condition">invoice_paid</field>
|
||||
<field name="trigger_ids">wkf_triggered_invoices</field>
|
||||
<field name="condition">wkf_invoice_waiting2invoice_done</field>
|
||||
</record>
|
||||
<record model="workflow.transition" id="purchase_transition_invoice_done_invoice_method_done">
|
||||
<field name="act_from" ref="purchase_activity_invoice_done"/>
|
||||
@@ -574,7 +560,7 @@ this repository contains the full copyright notices and license terms. -->
|
||||
<field name="act_from" ref="purchase_activity_waiting_shipment"/>
|
||||
<field name="act_to" ref="purchase_activity_shipment_exception"/>
|
||||
<field name="signal">shipment_update</field>
|
||||
<field name="condition">shipment_exception</field>
|
||||
<field name="condition">wkf_shipment_waiting2shipment_exception</field>
|
||||
</record>
|
||||
<record model="workflow.transition" id="purchase_transition_shipment_exception_cancel">
|
||||
<field name="act_from" ref="purchase_activity_shipment_exception"/>
|
||||
@@ -592,44 +578,51 @@ this repository contains the full copyright notices and license terms. -->
|
||||
<field name="act_from" ref="purchase_activity_waiting_shipment"/>
|
||||
<field name="act_to" ref="purchase_activity_invoice_shipment_method"/>
|
||||
<field name="signal">shipment_update</field>
|
||||
<field name="condition">not shipment_exception</field>
|
||||
<field
|
||||
name="condition">wkf_shipment_waiting2invoice_shipment_method</field>
|
||||
</record>
|
||||
<record model="workflow.transition" id="purchase_transition_waiting_shipment_invoice_shipment_method2">
|
||||
<field name="act_from" ref="purchase_activity_waiting_shipment"/>
|
||||
<field name="act_to" ref="purchase_activity_invoice_shipment_method"/>
|
||||
<field name="condition">shipment_done</field>
|
||||
<field
|
||||
name="condition">wkf_shipment_waiting2invoice_shipment_method_nosignal</field>
|
||||
</record>
|
||||
<record model="workflow.transition" id="purchase_transition_invoice_shipment_method_invoice_shipment">
|
||||
<field name="act_from" ref="purchase_activity_invoice_shipment_method"/>
|
||||
<field name="act_to" ref="purchase_activity_invoice_shipment"/>
|
||||
<field name="condition">invoice_method == 'shipment'</field>
|
||||
<field
|
||||
name="condition">wkf_invoice_shipment_method2invoice_shipment</field>
|
||||
</record>
|
||||
<record model="workflow.transition" id="purchase_transition_invoice_shipment_method_invoice_shipment_method_done">
|
||||
<field name="act_from" ref="purchase_activity_invoice_shipment_method"/>
|
||||
<field name="act_to" ref="purchase_activity_invoice_shipment_method_done"/>
|
||||
<field name="condition">invoice_method != 'shipment' and shipment_done</field>
|
||||
<field
|
||||
name="condition">wkf_invoice_shipment_method2inv_shipment_method_done</field>
|
||||
</record>
|
||||
<record model="workflow.transition" id="purchase_transition_invoice_shipment_method_waiting_shipment">
|
||||
<field name="act_from" ref="purchase_activity_invoice_shipment_method"/>
|
||||
<field name="act_to" ref="purchase_activity_waiting_shipment"/>
|
||||
<field name="condition">invoice_method != 'shipment' and not shipment_done</field>
|
||||
<field
|
||||
name="condition">wkf_invoice_shipment_method2shipment_waiting</field>
|
||||
</record>
|
||||
<record model="workflow.transition" id="purchase_transition_invoice_shipment_waiting_shipment">
|
||||
<field name="act_from" ref="purchase_activity_invoice_shipment"/>
|
||||
<field name="act_to" ref="purchase_activity_waiting_shipment"/>
|
||||
<field name="condition">not shipment_done</field>
|
||||
<field name="condition">wkf_invoice_shipment2shipment_waiting</field>
|
||||
</record>
|
||||
<record model="workflow.transition" id="purchase_transition_invoice_shipment_waiting_invoice_shipment">
|
||||
<field name="act_from" ref="purchase_activity_invoice_shipment"/>
|
||||
<field name="act_to" ref="purchase_activity_waiting_invoice_shipment"/>
|
||||
<field name="condition">shipment_done</field>
|
||||
<field
|
||||
name="condition">wkf_invoice_shipment2waiting_invoice_shipment</field>
|
||||
</record>
|
||||
<record model="workflow.transition" id="purchase_transition_waiting_invoice_shipment_invoice_shipment_exception">
|
||||
<field name="act_from" ref="purchase_activity_waiting_invoice_shipment"/>
|
||||
<field name="act_to" ref="purchase_activity_invoice_shipment_exception"/>
|
||||
<field name="trigger_model">account.invoice</field>
|
||||
<field name="trigger_expr_id">[x.id for x in invoices]</field>
|
||||
<field name="condition">invoice_exception</field>
|
||||
<field name="trigger_ids">wkf_triggered_invoices</field>
|
||||
<field
|
||||
name="condition">wkf_waiting_invoice_shipment2invoice_shipment_exception</field>
|
||||
</record>
|
||||
<record model="workflow.transition" id="purchase_transition_invoice_shipment_exception_cancel">
|
||||
<field name="act_from" ref="purchase_activity_invoice_shipment_exception"/>
|
||||
@@ -647,8 +640,9 @@ this repository contains the full copyright notices and license terms. -->
|
||||
<field name="act_from" ref="purchase_activity_waiting_invoice_shipment"/>
|
||||
<field name="act_to" ref="purchase_activity_invoice_shipment_done"/>
|
||||
<field name="trigger_model">account.invoice</field>
|
||||
<field name="trigger_expr_id">[x.id for x in invoices]</field>
|
||||
<field name="condition">invoice_paid</field>
|
||||
<field name="trigger_ids">wkf_triggered_invoices</field>
|
||||
<field
|
||||
name="condition">wkf_waiting_invoice_shipment2invoice_shipment_done</field>
|
||||
</record>
|
||||
<record model="workflow.transition" id="purchase_transition_invoice_shipment_done_invoice_shipment_method_done">
|
||||
<field name="act_from" ref="purchase_activity_invoice_shipment_done"/>
|
||||
|
||||
Reference in New Issue
Block a user