[IMP] Check if procurements are done before calling get shipped
authorJosse Colpaert <jco@openerp.com>
Mon, 24 Feb 2014 11:04:13 +0000 (12:04 +0100)
committerJosse Colpaert <jco@openerp.com>
Mon, 24 Feb 2014 11:04:13 +0000 (12:04 +0100)
bzr revid: jco@openerp.com-20140224110413-o4wvbnch90yxxt2i

addons/sale_stock/sale_stock.py
addons/stock/stock.py

index ed89fa4..dbe6446 100644 (file)
@@ -67,7 +67,7 @@ class sale_order(osv.osv):
     def _get_orders_procurements(self, cr, uid, ids, context=None):
         res = set()
         for proc in self.pool.get('procurement.order').browse(cr, uid, ids, context=context):
-            if proc.sale_line_id:
+            if proc.state =='done' and proc.sale_line_id:
                 res.add(proc.sale_line_id.order_id.id)
         return list(res)
 
@@ -102,7 +102,6 @@ class sale_order(osv.osv):
             ], 'Create Invoice', required=True, readonly=True, states={'draft': [('readonly', False)], 'sent': [('readonly', False)]},
             help="""On demand: A draft invoice can be created from the sales order when needed. \nOn delivery order: A draft invoice can be created from the delivery order when the products have been delivered. \nBefore delivery: A draft invoice is created from the sales order and must be paid before the products can be delivered."""),
         'shipped': fields.function(_get_shipped, string='Delivered', type='boolean', store={
-                'stock.move': (_get_orders, ['state'], 10),
                 'procurement.order': (_get_orders_procurements, ['state'], 10)
             }),
         'warehouse_id': fields.many2one('stock.warehouse', 'Warehouse', required=True),
index 12f3217..46b4776 100644 (file)
@@ -32,7 +32,6 @@ import openerp.addons.decimal_precision as dp
 import logging
 _logger = logging.getLogger(__name__)
 
-
 #----------------------------------------------------------
 # Incoterms
 #----------------------------------------------------------
@@ -728,7 +727,7 @@ class stock_picking(osv.osv):
         'note': fields.text('Notes', states={'done': [('readonly', True)], 'cancel': [('readonly', True)]}),
         'move_type': fields.selection([('direct', 'Partial'), ('one', 'All at once')], 'Delivery Method', required=True, states={'done': [('readonly', True)], 'cancel': [('readonly', True)]}, help="It specifies goods to be deliver partially or all at once"),
         'state': fields.function(_state_get, type="selection", store={
-            'stock.picking': (lambda self, cr, uid, ids, ctx: ids, ['move_type', 'move_lines'], 20),
+            'stock.picking': (lambda self, cr, uid, ids, ctx: ids, ['move_type'], 20),
             'stock.move': (_get_pickings, ['state', 'picking_id'], 20),
             'stock.quant': (_get_pickings_from_quant, ['reservation_id'], 20)}, selection=[
                 ('draft', 'Draft'),