Skip to Content
Menu
This question has been flagged
1 Reply
5177 Views

i will make condition end_date auto fill based selection field and start_date field

but have some error like this

File "...\Python\Python35\lib\site-packages\dateutil\relativedelta.py", line 393, in __radd__
    return self.__add__(other)
  File "...\Python\Python35\lib\site-packages\dateutil\relativedelta.py", line 351, in __add__
    raise TypeError("unsupported type for add operation")
TypeError: unsupported type for add operation

my py

from odoo import api, fields, models
from datetime import datetime, date, time
from dateutil.relativedelta import relativedelta
class LicenseID(models.Model):
_name = 'license.vehicle'
_inherit = 'ir.attachment'

name = fields.Selection([
('BPKB', 'BPKB'),
('STNK', 'STNK'),
('KIR', 'KIR'),
('UJI_EMISI', 'UJI EMISI'),
('KIU/SIPA/KKPKB', 'KIU/SIPA/KKPKB'),
('IBM', 'IBM'),
('STCK', 'STCK'),
('TNKB', 'TNKB')],
string='Document Name')
start_date = fields.Date(string='Start Date')
end_date = fields.Date(string='End Date')

@api.onchange('name', 'start_date')
def _change_date(self):
if self.name == 'STNK':
self.end_date = self.start_date + relativedelta(years=5)
self.end_date.strftime('%Y-%m-%d'),

can help me master ??



Avatar
Discard
Best Answer

Hello,

you should convert your start date (string type) into date type. (datetime.strptime)

For ref. see below code.

1) import libraries

from odoo.tools import DEFAULT_SERVER_DATE_FORMAT

from datetime import datetime


2) replace your method with this method in your code

                @api.onchange('name', 'start_date')

                def _change_date(self):

                    if self.name == 'STNK' and self.start_date:

                        date_start = datetime.strptime(self.start_date, DEFAULT_SERVER_DATE_FORMAT)

                        self.end_date = date_start + relativedelta(years=5)


Thanks,

Dipak


Avatar
Discard
Related Posts Replies Views Activity
1
Jan 20
4037
1
Aug 19
3645
0
Aug 19
4080
1
Jun 18
4603
0
May 15
4497