[FIX] procurement: magic bypass transition was incomplete and preventing pulled flows from working
The procurement workflow has a magic `bypass` transition that acts as a fallback for MTO procurements in case the necessary modules are not (yet) installed. For example it will consider a MTO+Buy procurement directly satisfied if the Purchase module is not yet installed. However this bypass transition did not properly take "internal pulled flows" into account, which are added by the `stock_location` module as a third kind of procurement type. In this case the bypass would match and never give stock_location the chance to run. In order to be consistent with the other procurement methods, the bypass transition needs to be adapted. Also updated the check_move() method to make it more explicit rather than a side-effect. bzr revid: odo@openerp.com-20131112151747-da67h4yavhz3k29c
This commit is contained in:
parent
fe2fd41d7d
commit
a382e0cc2e
|
@ -182,10 +182,6 @@ class procurement_order(osv.osv):
|
|||
"""
|
||||
return all(procurement.move_id.state == 'cancel' for procurement in self.browse(cr, uid, ids, context=context))
|
||||
|
||||
#This Function is create to avoid a server side Error Like 'ERROR:tests.mrp:name 'check_move' is not defined'
|
||||
def check_move(self, cr, uid, ids, context=None):
|
||||
pass
|
||||
|
||||
def check_move_done(self, cr, uid, ids, context=None):
|
||||
""" Checks if move is done or not.
|
||||
@return: True or False.
|
||||
|
@ -298,6 +294,12 @@ class procurement_order(osv.osv):
|
|||
"""
|
||||
return False
|
||||
|
||||
def check_move(self, cr, uid, ids, context=None):
|
||||
""" Check whether the given procurement can be satisfied by an internal move,
|
||||
typically a pulled flow. By default, it's False. Overwritten by the `stock_location` module.
|
||||
"""
|
||||
return False
|
||||
|
||||
def check_conditions_confirm2wait(self, cr, uid, ids):
|
||||
""" condition on the transition to go from 'confirm' activity to 'confirm_wait' activity """
|
||||
return not self.test_cancel(cr, uid, ids)
|
||||
|
|
|
@ -147,9 +147,11 @@
|
|||
|
||||
<record id="trans_confirm_mto_make_done" model="workflow.transition">
|
||||
<!-- This transition is there to unblock products that would be in MTO with a supply method that would be
|
||||
produce or buy without MRP or purchase module installed. These modules overwrite the check_produce()
|
||||
produce or buy, and without MRP or Purchase modules installed. These modules overwrite the check_produce()
|
||||
and check_buy() methods -so that it invalidates their part of this 'bypass transition'-, and define
|
||||
their own workflow paths.
|
||||
The stock_location module also introduces a check_move() alternative, for pulled flows that are
|
||||
satisfied with an internal product move. This yields a threefold test for the bypass transition.
|
||||
-->
|
||||
<field name="act_from" ref="act_confirm_mto"/>
|
||||
<field name="act_to" ref="act_make_done"/>
|
||||
|
|
Loading…
Reference in New Issue