revert change of workflow
authorMartin Trigaux <mat@openerp.com>
Thu, 17 Oct 2013 10:44:26 +0000 (12:44 +0200)
committerMartin Trigaux <mat@openerp.com>
Thu, 17 Oct 2013 10:44:26 +0000 (12:44 +0200)
bzr revid: mat@openerp.com-20131017104426-260y7v0113q8iue9

addons/procurement/procurement.py
addons/procurement/procurement_workflow.xml
addons/procurement/schedulers.py
addons/purchase/purchase.py

index a39b2d7..2bc095a 100644 (file)
@@ -371,7 +371,7 @@ class procurement_order(osv.osv):
                     #temporary context passed in write to prevent an infinite loop
                     ctx_wkf = dict(context or {})
                     ctx_wkf['workflow.trg_write.%s' % self._name] = False
-                    self.write(cr, uid, [procurement.id], {'message': message, 'state': 'exception'},context=ctx_wkf)
+                    self.write(cr, uid, [procurement.id], {'message': message},context=ctx_wkf)
         return ok
 
     def _workflow_trigger(self, cr, uid, ids, trigger, context=None):
index 086a922..76b5437 100644 (file)
@@ -29,6 +29,8 @@
         <record id="act_confirm_wait" model="workflow.activity">
             <field name="wkf_id" ref="wkf_procurement"/>
             <field name="name">confirm_wait</field>
+            <field name="kind">function</field>
+            <field name="action">write({'state':'exception'})</field>
         </record>
         <record id="act_confirm_mts" model="workflow.activity">
             <field name="wkf_id" ref="wkf_procurement"/>
         </record>
         <record id="trans_confirm_mts_confirm" model="workflow.transition">
             <field name="act_from" ref="act_confirm_mts"/>
-            <field name="act_to" ref="act_confirm_wait"/>
+            <field name="act_to" ref="act_confirm"/>
             <field name="signal">button_restart</field>
         </record>
         <record id="trans_confirm_mto_cancel" model="workflow.transition">
         </record>
         <record id="trans_confirm_mto_confirm" model="workflow.transition">
             <field name="act_from" ref="act_confirm_mto"/>
-            <field name="act_to" ref="act_confirm_wait"/>
+            <field name="act_to" ref="act_confirm"/>
             <field name="signal">button_restart</field>
         </record>
         <record id="trans_draft_cancel" model="workflow.transition">
index cf08cb9..07280b3 100644 (file)
@@ -72,6 +72,10 @@ class procurement_order(osv.osv):
             maxdate = (datetime.today() + relativedelta(days=company.schedule_range)).strftime(tools.DEFAULT_SERVER_DATE_FORMAT)
             start_date = fields.datetime.now()
             offset = 0
+            report = []
+            report_total = 0
+            report_except = 0
+            report_later = 0
             while True:
                 ids = procurement_obj.search(cr, uid, [('state', '=', 'confirmed'), ('procure_method', '=', 'make_to_order')], offset=offset, limit=500, order='priority, date_planned', context=context)
                 for proc in procurement_obj.browse(cr, uid, ids, context=context):
@@ -79,7 +83,14 @@ class procurement_order(osv.osv):
                         wf_service.trg_validate(uid, 'procurement.order', proc.id, 'button_check', cr)
                     else:
                         offset += 1
+                        report_later += 1
 
+                    if proc.state == 'exception':
+                        report.append(_('PROC %d: on order - %3.2f %-5s - %s') % \
+                                (proc.id, proc.product_qty, proc.product_uom.name,
+                                    proc.product_id.name))
+                        report_except += 1
+                    report_total += 1
                 if use_new_cursor:
                     cr.commit()
                 if not ids:
@@ -87,10 +98,22 @@ class procurement_order(osv.osv):
             offset = 0
             ids = []
             while True:
+                report_ids = []
                 ids = procurement_obj.search(cr, uid, [('state', '=', 'confirmed'), ('procure_method', '=', 'make_to_stock')], offset=offset)
                 for proc in procurement_obj.browse(cr, uid, ids):
                     if maxdate >= proc.date_planned:
                         wf_service.trg_validate(uid, 'procurement.order', proc.id, 'button_check', cr)
+                        report_ids.append(proc.id)
+                    else:
+                        report_later += 1
+                    report_total += 1
+
+                    if proc.state == 'exception':
+                        report.append(_('PROC %d: from stock - %3.2f %-5s - %s') % \
+                                (proc.id, proc.product_qty, proc.product_uom.name,
+                                    proc.product_id.name,))
+                        report_except += 1
+
 
                 if use_new_cursor:
                     cr.commit()
index 04b380e..992af37 100644 (file)
@@ -1044,9 +1044,10 @@ class procurement_order(osv.osv):
                 message = _('No default supplier defined for this product')
             elif not partner_obj.address_get(cr, uid, [partner.id], ['delivery'])['delivery']:
                 message = _('No address defined for the supplier')
+
             if message:
                 if procurement.message != message:
-                    cr.execute("update procurement_order set message=%s, state='exception' where id=%s", (message, procurement.id))
+                    cr.execute('update procurement_order set message=%s where id=%s', (message, procurement.id))
                 return False
 
             if user.company_id and user.company_id.partner_id: