[IMP] stock: improve SN quant restriction
This commit makes it so the quantity of a SN in a location is now restricted between -1 < quantity < 1 (previously it was only quantity < 1). This change provides stronger protection against a duplicated SN (e.g. a quantity of -2 means that the SN was somehow moved from that location twice). This restriction was also relaxed to not include location.usage='inventory' because this could prevent the user from fixing a duplicated SN (since they were prevented from creating a quantity of 2+ in an Inventory Loss location). closes odoo/odoo#59834 Task: 2336455 Related: odoo/upgrade#1839 Related: odoo/enterprise#14667 Signed-off-by: Arnold Moyaux <amoyaux@users.noreply.github.com>
This commit is contained in:
committed by
Arnold Moyaux
parent
cf39afacf7
commit
274dd3bf50
@@ -239,7 +239,8 @@ class StockQuant(models.Model):
|
||||
@api.constrains('quantity')
|
||||
def check_quantity(self):
|
||||
for quant in self:
|
||||
if float_compare(quant.quantity, 1, precision_rounding=quant.product_uom_id.rounding) > 0 and quant.lot_id and quant.product_id.tracking == 'serial':
|
||||
if quant.location_id.usage != 'inventory' and quant.lot_id and quant.product_id.tracking == 'serial' \
|
||||
and float_compare(abs(quant.quantity), 1, precision_rounding=quant.product_uom_id.rounding) > 0:
|
||||
raise ValidationError(_('The serial number has already been assigned: \n Product: %s, Serial Number: %s') % (quant.product_id.display_name, quant.lot_id.name))
|
||||
|
||||
@api.constrains('location_id')
|
||||
|
||||
Reference in New Issue
Block a user