Aurangzaib
Aurangzaib

Reputation: 3

copying custom field value from sale order line to stock.move in odoo

Copying value from sale order line to stock move it shows only second row value in both rows. code: [enter image description here][1]

from odoo import models, fields, api

class StockMove(models.Model):

@api.multi
    def get_data(self):
        data = self.env['sale.order.line'].search([])
        print("Get Data Function")
        for rec in data:
            print(rec.x_serialnumber)
            for record in self:
                record.x_serialnumber = rec.x_serialnumber

    _inherit = 'stock.move'
    x_serialnumber = fields.Text(string="Serial Number", compute='get_data')"

On Sale order line it shows like this:

Serial Number: in both lines

112233

445566

But in stock move:

Serial Number: in both lines

445566

445566

Upvotes: 0

Views: 751

Answers (1)

Dipen Shah
Dipen Shah

Reputation: 2444

Aurangzaib
Update your code:

@api.multi
def get_data(self):
    for move in self:
        if not (move.picking_id and move.picking_id.group_id):
            continue
        picking = move.picking_id
        sale_order = self.env['sale.order'].sudo().search([
            ('procurement_group_id', '=', picking.group_id.id)], limit=1)
        for line in sale_order.order_line:
            if line.product_id.id != move.product_id.id:
                continue
            move.update({
                'x_serialnumber': line.x_serialnumber,
            })

Upvotes: 1

Related Questions