[FIX] purchase: fixed workflow problem in purchase.order (if a PO was having its picking split, then its workflow wasn't listenning to the new move.. which lead to wrong PO state and 'shipped' boolean)

bzr revid: qdp-launchpad@openerp.com-20140217204244-78sui3bdzw2yl2wp
This commit is contained in:
Quentin (OpenERP) 2014-02-17 21:42:44 +01:00
parent 4a1eb6eb12
commit 0e0443e2d2
2 changed files with 10 additions and 36 deletions

View File

@ -189,9 +189,7 @@
<record id="trans_picking_except_picking" model="workflow.transition">
<field name="act_from" ref="act_picking"/>
<field name="act_to" ref="act_except_picking"/>
<field name="trigger_model">stock.move</field>
<field name="trigger_expr_id">move_lines_get()</field>
<field name="condition">test_moves_except()</field>
<field name="signal">picking_cancel</field>
</record>
<record id="trans_invoice_except_invoice" model="workflow.transition">
<field name="act_from" ref="act_invoice"/>
@ -201,9 +199,7 @@
<record id="trans_picking_picking_done" model="workflow.transition">
<field name="act_from" ref="act_picking"/>
<field name="act_to" ref="act_picking_done"/>
<field name="trigger_model">stock.move</field>
<field name="trigger_expr_id">move_lines_get()</field>
<field name="condition">test_moves_done()</field>
<field name="signal">picking_done</field>
</record>
<record id="trans_invoice_invoice_done" model="workflow.transition">
@ -225,33 +221,5 @@
<field name="condition">invoiced</field>
</record>
<!-- Procurement -->
<!-- TODO csn : check if fix is needed since no more workflow in procurement -->
<!-- <record id="act_buy" model="workflow.activity">
<field name="wkf_id" ref="procurement.wkf_procurement"/>
<field name="name">buy</field>
<field name="kind">subflow</field>
<field name="subflow_id" search="[('osv','=','purchase.order')]"/>
<field name="action">action_po_assign()</field>
</record>
<record id="trans_confirm_mto_purchase" model="workflow.transition">
<field name="act_from" ref="procurement.act_confirm_mto"/>
<field name="act_to" ref="act_buy"/>
<field name="condition">check_buy() and check_supplier_info() and not check_product_requisition()</field>
</record>
<record id="trans_buy_make_done" model="workflow.transition">
<field name="act_from" ref="act_buy"/>
<field name="act_to" ref="procurement.act_make_done"/>
<field name="signal">subflow.delivery_done</field>
</record>
<record id="trans_buy_cancel" model="workflow.transition">
<field name="act_from" ref="act_buy"/>
<field name="act_to" ref="procurement.act_cancel"/>
<field name="signal">subflow.cancel</field>
</record>
-->
</data>
</openerp>

View File

@ -35,8 +35,14 @@ class stock_move(osv.osv):
ids = [ids]
res = super(stock_move, self).write(cr, uid, ids, vals, context=context)
from openerp import workflow
for id in ids:
workflow.trg_trigger(uid, 'stock.move', id, cr)
if 'state' in vals:
for move in self.browse(cr, uid, ids, context=context):
if move.purchase_line_id and move.purchase_line_id.order_id:
order_id = move.purchase_line_id.order_id.id
if self.pool.get('purchase.order').test_moves_done(cr, uid, [order_id], context=context):
workflow.trg_validate(uid, 'purchase.order', order_id, 'picking_done', cr)
if self.pool.get('purchase.order').test_moves_except(cr, uid, [order_id], context=context):
workflow.trg_validate(uid, 'purchase.order', order_id, 'picking_cancel', cr)
return res
def copy(self, cr, uid, id, default=None, context=None):