Skip to Content
Menú
This question has been flagged
1 Respondre
1309 Vistes

I have created the following column in the sale.order.line:


class SaleOrderLine(models.Model):

    _inherit = 'sale.order.line'


    x_studio_roles = fields.Float(

        string="Roles",

        store=True,

        readonly=False, 

        required=False

    )

I have created the same column in the stock.move:

class StockMove(models.Model):

    _inherit = "stock.move"


    x_studio_roles = fields.Float(

        string="Roles",      

        store=True,

        readonly=False, 

        required=False

    )

How can I now transfer the value from sale.order.line to stock.move?

Avatar
Descartar
Best Answer

If you just want to have the same value from Sale Order Line in Stock Move, you should slightly modify your field definition in your stock.move inherit.

The module sale_stock introduces a new field, sale_line_id.

So, given dependencies add up, you can simply go for

class StockMove(models.Model):
    _inherit = 'stock.move'

    x_studio_roles = fields.Float(related='sale_line_id.x_studio_roles', readonly=False)


This defines a direct relationship between those two fields, see also https://www.odoo.com/documentation/16.0/developer/reference/backend/orm.html#reference-fields-related

Note that editing x_studio_roles on Stock Move now also changes the value in Sale Order Line.

If you don't want that, you can go for a "computed field" - which would allow you to set it only initially when the Stock Move is created and you then could check whether this field is set already and prevent further updates to it. What and how to apply this highly depends on what you would like to achieve at the end. For details about computed fields see https://www.odoo.com/documentation/16.0/developer/reference/backend/orm.html#computed-fields

Avatar
Descartar
Related Posts Respostes Vistes Activitat
1
de gen. 25
1588
1
de des. 24
1621
0
de gen. 22
3389
1
de març 15
7263
0
de març 15
4274