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

Reply via email to