Ir al contenido
Menú
Se marcó esta pregunta
1 Responder
5358 Vistas
good morning,
by calculations I need to have 2 additional columns in the detail of the invoice.
unit_price2 and price_subtotal2
where:
unit_price2 = product price * 20
price_subtotal2 = unit_price2 * quantity

my code works well before recording, or save the document in draft.
There seems to be a method that overwrites it.
probe with the following codes but I get different errors.
please your support.

code 1:
class AccountInvoiceLine (models.Model):
    _inherit = "account.invoice.line"

price_unit2 = fields.Float ("Unit Price", readonly = False)

   @ api.one
    @ api.onchange ('product_id')
    def price_prod (self):
self.price_unit2 = self.product_id.lst_price * 20

This code works, but when I create or save the document the price is changed with the current value of the product.

probe with overwrite the method "product_id_change"
    @ api.one
    @ api.onchange ('product_id')
    def product_id_change (self):
        res = super (AccountInvoiceLine, self) .product_id_change (self)
        for line in self:
            line.price_unit2 = self.product_id.lst_price
        return res

error:
    method_res = method (self)
  File "/mnt/extra-addons/models/account/account_invoice_line.py", line 31, in product_id_change
    res = super (AccountInvoiceLine, self) .product_id_change ()
AttributeError: 'super' object has no attribute 'product_id_change'


Avatar
Descartar
Mejor respuesta

Hello ,

Try to replace the "product_id_change" function with "_onchange_product_id" 

Check here Code

Then you can add super like this 

res = super (AccountInvoiceLine, self) ._onchange_product_id(self)
Avatar
Descartar
Publicaciones relacionadas Respuestas Vistas Actividad
2
ago 25
2726
1
jul 25
1090
1
ago 25
1151
0
may 25
1518
2
abr 25
3706