← Back to team overview

openerp-wms-expert team mailing list archive

[Bug 1008099] Re: stock inventory - wrong stock_moves if moves with prodlots and without exists for one product and location

 

The patch in the branch you linked seems to fix the problem and it applies cleanly to v6.0.
Does it have bad known side-effects?
Lionel.

-- 
You received this bug notification because you are a member of OpenERP
WMS Expert, which is subscribed to the bug report.
https://bugs.launchpad.net/bugs/1008099

Title:
  stock inventory - wrong stock_moves if moves with prodlots and without
  exists for one  product and location

Status in OpenERP Addons (modules):
  In Progress

Bug description:
  the following code in
  stock/product.py
  does not distinguish between
  * select all move_lines without prodlots
  * select all move_lines with prodlot = null

  a query without prodlot returns all moves regardless if these have
  lots and not

  this gives very wrong results for inventory postings

  the fix is complex and for now I put in into the module
  http://bazaar.launchpad.net/~c2c/c2c-rd-addons/trunk/files/head:/c2c_stock_accounting/
  stock.py
  wizard/stock_fill_inventory.py

  I didn't want to patch stock/product.py because it might break some
  applications which rely on exaclty this behavior.

  257     # TODO: perhaps merge in one query.
  258         if date_values:
  259             where.append(tuple(date_values))
  260         if 'in' in what:
  261             # all moves from a location out of the set to a location in the set
  262             cr.execute(
  263                 'select sum(product_qty), product_id, product_uom '\
  264                 'from stock_move '\
  265                 'where location_dest_id IN %s '\
  266                 'and product_id IN %s '\
  267                 '' + (prodlot_id and ('and prodlot_id = ' + str(prodlot_id)) or '') + ' '\
  268                 'and state IN %s ' + (date_str and 'and '+date_str+' ' or '') +' '\
  269                 'group by product_id,product_uom',tuple(where))
  270             results = cr.fetchall()
  271         if 'out' in what:
  272             # all moves from a location in the set to a location out of the set
  273             cr.execute(
  274                 'select sum(product_qty), product_id, product_uom '\
  275                 'from stock_move '\
  276                 'where location_id IN %s '\
  277                 'and product_id  IN %s '\
  278                 '' + (prodlot_id and ('and prodlot_id = ' + str(prodlot_id)) or '') + ' '\
  279                 'and state in %s ' + (date_str and 'and '+date_str+' ' or '') + ' '\
  280                 'group by product_id,product_uom',tuple(where))
  281             results2 = cr.fetchall()

To manage notifications about this bug go to:
https://bugs.launchpad.net/openobject-addons/+bug/1008099/+subscriptions