Skip to Content
เมนู
คุณต้องลงทะเบียนเพื่อโต้ตอบกับคอมมูนิตี้
คำถามนี้ถูกตั้งค่าสถานะ
1 ตอบกลับ
1949 มุมมอง
@ 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.

อวตาร
ละทิ้ง
คำตอบที่ดีที่สุด

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

อวตาร
ละทิ้ง
Related Posts ตอบกลับ มุมมอง กิจกรรม
1
พ.ย. 24
1173
1
เม.ย. 23
2520
7
ก.พ. 23
9021
0
ก.ย. 22
1689
1
ก.ค. 22
1412