[FIX] purchase: truncate description for stock.move.line
Before this commit, when creating a PO line with a description that was long enough (~2712 bytes long) and then confirming the PO, a traceback would pop up with an error from postgres "index row size exceeds maximum". This is because when confirming a PO, a stock.move is created with a stock.move.line mirroring the purchase.order.line, however the "name" field on stock.move.line is indexed (whereas the purchase.order.line is not), thus triggering the aforementioned error. This commit solves this issue by truncating the name field on the stock.move.line to 2000 bytes (for simplicity's sake) upon creation. Fixes #33549 closes odoo/odoo#33607 Signed-off-by: Raphael Collet (rco) <rco@openerp.com>
This commit is contained in:
@@ -722,7 +722,9 @@ class PurchaseOrderLine(models.Model):
|
||||
for move in self.move_ids.filtered(lambda x: x.state != 'cancel' and not x.location_dest_id.usage == "supplier"):
|
||||
qty += move.product_uom._compute_quantity(move.product_uom_qty, self.product_uom, rounding_method='HALF-UP')
|
||||
template = {
|
||||
'name': self.name or '',
|
||||
# truncate to 2000 to avoid triggering index limit error
|
||||
# TODO: remove index in master?
|
||||
'name': (self.name or '')[:2000],
|
||||
'product_id': self.product_id.id,
|
||||
'product_uom': self.product_uom.id,
|
||||
'date': self.order_id.date_approve,
|
||||
|
||||
Reference in New Issue
Block a user