lundi 6 septembre 2021

Odoo 14 - How to Stock move object "forecast_availability" move to sale order line in

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")

enter image description here

Aucun commentaire:

Enregistrer un commentaire