[MERGE] forward port of branch 7.0 up to 529e920
authorDenis Ledoux <dle@odoo.com>
Wed, 19 Nov 2014 13:06:48 +0000 (14:06 +0100)
committerDenis Ledoux <dle@odoo.com>
Wed, 19 Nov 2014 13:06:48 +0000 (14:06 +0100)
1  2 
addons/account/project/project.py
addons/mrp/stock.py

@@@ -38,6 -38,13 +38,12 @@@ class account_analytic_journal(osv.osv)
          'company_id': lambda self,cr,uid,c: self.pool.get('res.users').browse(cr, uid, uid, c).company_id.id,
      }
  
+     def copy_data(self, cr, uid, id, default=None, context=None):
+         if not default:
+             default = {}
+         default.update({'line_ids': False})
+         return super(account_analytic_journal, self).copy_data(cr, uid, id, default, context)
 -account_analytic_journal()
  
  class account_journal(osv.osv):
      _inherit="account.journal"
@@@ -46,5 -53,6 +52,5 @@@
          'analytic_journal_id':fields.many2one('account.analytic.journal','Analytic Journal', help="Journal for analytic entries"),
      }
  
 -account_journal()
  
  # vim:expandtab:smartindent:tabstop=4:softtabstop=4:shiftwidth=4:
diff --combined addons/mrp/stock.py
@@@ -21,6 -21,7 +21,6 @@@
  
  from openerp.osv import fields
  from openerp.osv import osv
 -from openerp import netsvc
  
  
  class StockMove(osv.osv):
@@@ -44,6 -45,7 +44,6 @@@
          move_obj = self.pool.get('stock.move')
          procurement_obj = self.pool.get('procurement.order')
          product_obj = self.pool.get('product.product')
 -        wf_service = netsvc.LocalService("workflow")
          processed_ids = [move.id]
          if move.product_id.supply_method == 'produce':
              bis = bom_obj.search(cr, uid, [
@@@ -54,9 -56,6 +54,6 @@@
                  factor = move.product_qty
                  bom_point = bom_obj.browse(cr, uid, bis[0], context=context)
                  res = bom_obj._bom_explode(cr, uid, bom_point, factor, [])
-                 state = 'confirmed'
-                 if move.state == 'assigned':
-                     state = 'assigned'
                  for line in res[0]: 
                      valdef = {
                          'picking_id': move.picking_id.id,
@@@ -66,7 -65,7 +63,7 @@@
                          'product_uos': line['product_uos'],
                          'product_uos_qty': line['product_uos_qty'],
                          'move_dest_id': move.id,
-                         'state': state,
+                         'state': 'draft',  #will be confirmed below
                          'name': line['name'],
                          'move_history_ids': [(6,0,[move.id])],
                          'move_history_ids2': [(6,0,[])],
                          'procure_method': prodobj.procure_method,
                          'move_id': mid,
                      })
 -                    wf_service.trg_validate(uid, 'procurement.order', proc_id, 'button_confirm', cr)
 +                    procurement_obj.signal_button_confirm(cr, uid, [proc_id])
 +                    
                  move_obj.write(cr, uid, [move.id], {
                      'location_dest_id': move.location_id.id, # dummy move for the kit
                      'auto_validate': True,
                      'picking_id': False,
                      'state': 'confirmed'
                  })
 -                for m in procurement_obj.search(cr, uid, [('move_id','=',move.id)], context):
 -                    wf_service.trg_validate(uid, 'procurement.order', m, 'button_confirm', cr)
 -                    wf_service.trg_validate(uid, 'procurement.order', m, 'button_wait_done', cr)
 +                procurement_ids = procurement_obj.search(cr, uid, [('move_id','=',move.id)], context)
 +                procurement_obj.signal_button_confirm(cr, uid, procurement_ids)
 +                procurement_obj.signal_button_wait_done(cr, uid, procurement_ids)
+         if processed_ids and move.state == 'assigned':
+             # Set the state of resulting moves according to 'assigned' as the original move is assigned
+             move_obj.write(cr, uid, list(set(processed_ids) - set([move.id])), {'state': 'assigned'}, context=context)
          return processed_ids
      
      def action_consume(self, cr, uid, ids, product_qty, location_id=False, context=None):
          """       
          res = []
          production_obj = self.pool.get('mrp.production')
 -        wf_service = netsvc.LocalService("workflow")
          for move in self.browse(cr, uid, ids):
              move.action_confirm(context)
              new_moves = super(StockMove, self).action_consume(cr, uid, [move.id], product_qty, location_id, context=context)
              for prod in production_obj.browse(cr, uid, production_ids, context=context):
                  if prod.state == 'confirmed':
                      production_obj.force_production(cr, uid, [prod.id])
 -                wf_service.trg_validate(uid, 'mrp.production', prod.id, 'button_produce', cr)
 +            production_obj.signal_button_produce(cr, uid, production_ids)                
              for new_move in new_moves:
                  if new_move == move.id:
                      #This move is already there in move lines of production order
          """  
          res = []
          production_obj = self.pool.get('mrp.production')
 -        wf_service = netsvc.LocalService("workflow")
          for move in self.browse(cr, uid, ids, context=context):
              new_moves = super(StockMove, self).action_scrap(cr, uid, [move.id], product_qty, location_id, context=context)
              #If we are not scrapping our whole move, tracking and lot references must not be removed
              #self.write(cr, uid, [move.id], {'prodlot_id': False, 'tracking_id': False})
              production_ids = production_obj.search(cr, uid, [('move_lines', 'in', [move.id])])
              for prod_id in production_ids:
 -                wf_service.trg_validate(uid, 'mrp.production', prod_id, 'button_produce', cr)
 +                production_obj.signal_button_produce(cr, uid, [prod_id])
              for new_move in new_moves:
                  production_obj.write(cr, uid, production_ids, {'move_lines': [(4, new_move)]})
                  res.append(new_move)
          return res
  
 -StockMove()
  
  
  class StockPicking(osv.osv):
              todo.extend(move.id for move in moves if move.state not in ['confirmed', 'assigned', 'done'])
          return list(set(todo))
  
 -StockPicking()
  
  
  class split_in_production_lot(osv.osv_memory):
          production_obj.write(cr, uid, production_ids, {'move_lines': [(4, m) for m in new_moves]})
          return new_moves
  
 -split_in_production_lot()
  
  # vim:expandtab:smartindent:tabstop=4:softtabstop=4:shiftwidth=4: