[MERGE] stock: fixed flows with negative quantities in inventory
lp bug: https://launchpad.net/bugs/1271244 fixed bzr revid: qdp-launchpad@openerp.com-20140130080835-wn3u27sgt1y06kl3
This commit is contained in:
+11
-1
@@ -2052,7 +2052,7 @@ class stock_inventory(osv.osv):
|
||||
'date': fields.datetime('Inventory Date', required=True, readonly=True, states={'draft': [('readonly', False)]}, help="Inventory Create Date."),
|
||||
'date_done': fields.datetime('Date done', help="Inventory Validation Date."),
|
||||
'line_ids': fields.one2many('stock.inventory.line', 'inventory_id', 'Inventories', readonly=False, states={'done': [('readonly', True)]}, help="Inventory Lines."),
|
||||
'move_ids': fields.one2many('stock.move', 'inventory_id', 'Created Moves', help="Inventory Moves."),
|
||||
'move_ids': fields.one2many('stock.move', 'inventory_id', 'Created Moves', help="Inventory Moves.", states={'done': [('readonly', True)]}),
|
||||
'state': fields.selection([('draft', 'Draft'), ('cancel', 'Cancelled'), ('confirm', 'In Progress'), ('done', 'Validated')], 'Status', readonly=True, select=True),
|
||||
'company_id': fields.many2one('res.company', 'Company', required=True, select=True, readonly=True, states={'draft': [('readonly', False)]}),
|
||||
'location_id': fields.many2one('stock.location', 'Location', required=True, readonly=True, states={'draft': [('readonly', False)]}),
|
||||
@@ -2107,6 +2107,9 @@ class stock_inventory(osv.osv):
|
||||
context = {}
|
||||
move_obj = self.pool.get('stock.move')
|
||||
for inv in self.browse(cr, uid, ids, context=context):
|
||||
for inventory_line in inv.line_ids:
|
||||
if inventory_line.product_qty < 0:
|
||||
raise osv.except_osv(_('Warning'),_('You cannot set a negative product quantity in an inventory line'))
|
||||
if not inv.move_ids:
|
||||
self.action_check(cr, uid, [inv.id], context=context)
|
||||
inv.refresh()
|
||||
@@ -2219,6 +2222,13 @@ class stock_inventory(osv.osv):
|
||||
for key, value in product_line.items():
|
||||
if not value:
|
||||
product_line[key] = False
|
||||
if product_line['product_qty'] < 0:
|
||||
summary = _('Product: ') + product_obj.browse(cr, uid, product_line['product_id'], context=context).name + '\n'
|
||||
summary += _('Location: ') + location_obj.browse(cr, uid, product_line['location_id'], context=context).complete_name + '\n'
|
||||
summary += (_('Partner: ') + self.pool.get('res.partner').browse(cr, uid, product_line['partner_id'], context=context).name + '\n') if product_line['partner_id'] else ''
|
||||
summary += (_('Lot: ') + self.pool.get('stock.production.lot').browse(cr, uid, product_line['prod_lot_id'], context=context).name + '\n') if product_line['prod_lot_id'] else ''
|
||||
summary += (_('Package: ') + self.pool.get('stock.quant.package').browse(cr, uid, product_line['package_id'], context=context).name + '\n') if product_line['package_id'] else ''
|
||||
raise osv.except_osv(_('Warning'),_('This inventory line has a theoretical negative quantity, please fix it before doing an inventory\n%s' % (summary)))
|
||||
product_line['inventory_id'] = inventory.id
|
||||
product_line['th_qty'] = product_line['product_qty']
|
||||
if product_line['product_id']:
|
||||
|
||||
Reference in New Issue
Block a user