Reviewers: ,
Please review this at http://codereview.tryton.org/192002/
Affected files:
M sale.py
M sale.xml
Index: sale.py
===================================================================
--- a/sale.py
+++ b/sale.py
@@ -39,6 +39,7 @@
('draft', 'Draft'),
('quotation', 'Quotation'),
('confirmed', 'Confirmed'),
+ ('running', 'Running'),
('done', 'Done'),
('cancel', 'Canceled'),
], 'State', readonly=True, required=True)
@@ -191,6 +192,16 @@
# Migration from 2.2
table.not_null_action('sale_date', 'remove')
+ # state confirmed splitted into confirmed and running
+ confirmed2running = []
+ for sale in self.browse(self.search([
+ ('state', '=', 'confirmed'),
+ ])):
+ if sale.invoices or sale.moves:
+ confirmed2running.append(sale.id)
+ if confirmed2running:
+ self.write(confirmed2running, {'state': 'running'})
+
# Add index on create_date
table = TableHandler(cursor, self, module_name)
table.index_action('create_date', action='add')
@@ -871,6 +882,9 @@
self.set_sale_date(sale)
self.write(sale.id, {'state': 'confirmed'})
+ def wkf_running(self, sale):
+ self.write(sale.id, {'state': 'running'})
+
def wkf_waiting_invoice_sale(self, sale):
self.create_invoice(sale.id)
self.write(sale.id, {'invoice_state': 'waiting'})
Index: sale.xml
===================================================================
--- a/sale.xml
+++ b/sale.xml
@@ -100,7 +100,7 @@
<field name="tax_amount" xalign="1.0"
xexpand="0"/>
<label name="total_amount" xalign="1.0"
xexpand="1"/>
<field name="total_amount" xalign="1.0"
xexpand="0"/>
- <group col="6" colspan="2" id="buttons">
+ <group col="7" colspan="2" id="buttons">
<button name="cancel" string="Cancel"
states="{'invisible':
Or(Equal(Eval('state'), 'cancel'), And(Not(In(Eval('state'),
['draft', 'quotation'])), Not(Equal(Eval('invoice_state'), 'exception')),
Not(Equal(Eval('shipment_state'), 'exception')))), 'readonly':
Not(In(%(group_sale)d, Eval('groups', [])))}"
icon="tryton-cancel"/>
@@ -123,6 +123,9 @@
<button name="confirm" string="Confirm"
states="{'invisible':
Not(Equal(Eval('state'), 'quotation')), 'readonly': Not(In(%(group_sale)d,
Eval('groups', [])))}"
icon="tryton-go-next"/>
+ <button name="run" string="Run"
+ states="{'invisible':
Not(Equal(Eval('state'), 'confirmed')), 'readonly': Not(In(%(group_sale)d,
Eval('groups', [])))}"
+ icon="tryton-go-next"/>
</group>
</group>
</page>
@@ -342,6 +345,24 @@
<menuitem parent="menu_sale_form" action="act_sale_form_confirmed"
id="menu_sale_form_confirmed" sequence="40"/>
+ <record model="ir.action.act_window" id="act_sale_form_running">
+ <field name="name">Running Sales</field>
+ <field name="res_model">sale.sale</field>
+ <field name="domain">[('state', '=', 'running')]</field>
+ </record>
+ <record model="ir.action.act_window.view"
id="act_sale_form_running_view1">
+ <field name="sequence" eval="10"/>
+ <field name="view" ref="sale_view_tree"/>
+ <field name="act_window" ref="act_sale_form_running"/>
+ </record>
+ <record model="ir.action.act_window.view"
id="act_sale_form_running_view2">
+ <field name="sequence" eval="20"/>
+ <field name="view" ref="sale_view_form"/>
+ <field name="act_window" ref="act_sale_form_running"/>
+ </record>
+ <menuitem parent="menu_sale_form" action="act_sale_form_running"
+ id="menu_sale_form_running" sequence="50"/>
+
<record model="ir.model.access" id="access_sale">
<field name="model" search="[('model', '=', 'sale.sale')]"/>
<field name="perm_read" eval="False"/>
@@ -397,8 +418,14 @@
<record model="workflow.activity" id="sale_activity_confirmed">
<field name="name">Confirmed</field>
<field name="workflow" ref="sale_workflow"/>
+ <field name="split_mode">XOR</field>
+ <field name="method">wkf_confirmed</field>
+ </record>
+ <record model="workflow.activity" id="sale_activity_running">
+ <field name="name">Running</field>
+ <field name="workflow" ref="sale_workflow"/>
<field name="split_mode">AND</field>
- <field name="method">wkf_confirmed</field>
+ <field name="method">wkf_running</field>
</record>
<record model="workflow.activity"
id="sale_activity_invoice_method">
<field name="name">Invoice Method</field>
@@ -545,14 +572,20 @@
<field name="signal">confirm</field>
<field name="group" ref="group_sale"/>
</record>
+ <record model="workflow.transition"
id="sale_transition_confirmed_running">
+ <field name="act_from" ref="sale_activity_confirmed"/>
+ <field name="act_to" ref="sale_activity_running"/>
+ <field name="signal">run</field>
+ <field name="group" ref="group_sale"/>
+ </record>
<record model="workflow.transition"
id="sale_transition_quotation_cancel">
<field name="act_from" ref="sale_activity_quotation"/>
<field name="act_to" ref="sale_activity_cancel"/>
<field name="signal">cancel</field>
<field name="group" ref="group_sale"/>
</record>
- <record model="workflow.transition"
id="sale_transition_confirmed_invoice_method">
- <field name="act_from" ref="sale_activity_confirmed"/>
+ <record model="workflow.transition"
id="sale_transition_running_invoice_method">
+ <field name="act_from" ref="sale_activity_running"/>
<field name="act_to" ref="sale_activity_invoice_method"/>
</record>
@@ -653,8 +686,8 @@
<field name="act_from"
ref="sale_activity_invoice_method_done"/>
<field name="act_to" ref="sale_activity_done"/>
</record>
- <record model="workflow.transition"
id="sale_transition_confirmed_shipment_method">
- <field name="act_from" ref="sale_activity_confirmed"/>
+ <record model="workflow.transition"
id="sale_transition_running_shipment_method">
+ <field name="act_from" ref="sale_activity_running"/>
<field name="act_to" ref="sale_activity_shipment_method"/>
</record>
<record model="workflow.transition"
id="sale_transition_shipment_method_shipment_method_done">
--
[email protected] mailing list