Skip to Content
Menú
This question has been flagged
2 Respostes
6698 Vistes

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
Best Answer

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 Best Answer

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
Related Posts Respostes Vistes Activitat
1
de febr. 22
2922
2
d’abr. 22
3425
3
de maig 20
11661
5
de des. 19
5381
1
de gen. 23
7003