Ir al contenido
Menú
Se marcó esta pregunta
2 Respuestas
6695 Vistas

Hello, I added a new field to the model sale.order.line. When creating new record, field is not saved.

My code:


class SaleOrderLine(models.Model):

    _inherit = "sale.order.line"


    calculation = fields.Float(string='Cena kalkulacji', readonly=True, store=True)

    

    @api.onchange('product_uom', 'product_uom_qty')

    def product_uom_change(self):

        if not self.product_uom or not self.product_id:

            self.price_unit = 0.0

            self.calculation = 0.0

            return

        if self.order_id.pricelist_id and self.order_id.partner_id:

            product = self.product_id.with_context(

                lang=self.order_id.partner_id.lang,

                partner=self.order_id.partner_id,

                quantity=self.product_uom_qty,

                date=self.order_id.date_order,

                pricelist=self.order_id.pricelist_id.id,

                uom=self.product_uom.id,

                fiscal_position=self.env.context.get('fiscal_position')

            )

            self.price_unit = self.env['account.tax']._fix_tax_included_price_company(self._get_display_price(product), product.taxes_id, self.tax_id, self.company_id)

            self.calculation = self.env['account.tax']._fix_tax_included_price_company(self._get_display_price(product), product.taxes_id, self.tax_id, self.company_id)            


Avatar
Descartar
Mejor respuesta

Hi, 

Make sure that the onchange event/function gst triggered. It seems the value to the field is written inside the onchange function for the field product_uom, so just make sure that the function is getting executed while the value of the field product_uom is changing.

You can add some print statement or logger notes to check the function execution.


Thanks

Avatar
Descartar
Autor Mejor respuesta

If you change the value of a readonly field in onchange method, on save it will not be stored in the database. In order to do that you would need to override create/write methods where you would need to update the values dictionary with this value before creation.

In xml for field: force_save="1"


Avatar
Descartar
Publicaciones relacionadas Respuestas Vistas Actividad
1
feb 22
2921
2
abr 22
3423
3
may 20
11660
5
dic 19
5379
1
ene 23
7003