Skip to Content
Menu
This question has been flagged
1 Odpoveď
1955 Zobrazenia
@ api.onchange ( 'duration' ) 
def compute_status ( self ): 
if self .duration! = 0 :
for record in self .subscription:
record.write ({ 'subscription_months_calc' : record.duration + record.subscription_months_calc})
record. write ({ 'subscription_expiry_date' : record.subscription_registration_date + relativedelta (
months = record.subscription_months_calc)})


I have wrote the above function to make change into my another custom module. It is not changing the value nor it is giving an error. Kindly help me.

Avatar
Zrušiť
Best Answer

Hi,

Please try his code

from odoo.fields import Date
from dateutil.relativedelta import relativedelta

@api.onchange('duration')
def compute_status(self):
if self.duration: 
   
for record in self.subscription:
       
record.write({'subscription_months_calc': record.duration + record.subscription_months_calc})
       
       
if record.subscription_registration_date:
            expiry_date = Date.from_string(
record.subscription_registration_date) + relativedelta(
                months=
record.subscription_months_calc)
           
record.write({'subscription_expiry_date': Date.to_string(expiry_date)})

Hope it helps

Avatar
Zrušiť
Related Posts Replies Zobrazenia Aktivita
1
nov 24
1174
1
apr 23
2525
7
feb 23
9027
0
sep 22
1691
1
júl 22
1412