I want to put the forecast_availability value in the field added to the sale order line in the stock move. When there is only one field, the value is entered well, but when there are multiple fields, the last value called in the for statement is displayed in the field. What should I do?
class QtyReserved(models.Model):
_inherit = "sale.order"
qty_reserved = fields.Float(string="Qty Reserved", compute='_compute_qty_reserved')
stock_picking_id = fields.Many2one('stock.move')
sale_order_line_id = fields.Many2one('sale.order.line')
def _compute_qty_reserved(self):
for item in self:
picking = self.env['stock.picking'].search([('origin', '=', item.name), ('state', '=', 'assigned')],
limit=1)
if picking:
for move in picking.move_ids_without_package:
if move.sale_line_id == self.sale_order_line_id.product_id:
item.qty_reserved = move.forecast_availability
_logger.warning('------------------- %s -----------------', move.forecast_availability)
item.qty_reserved = move.forecast_availability
else:
item.qty_reserved = 0
class QtyReservedSaleLine(models.Model):
_inherit = "sale.order.line"
qty_reserved_id = fields.Float(string="Qty", related="order_id.qty_reserved")
Aucun commentaire:
Enregistrer un commentaire