My requirement is
hire_date = fields.Date;
calculate_start = fields.Date;
If hire_date is after calculate_start ,the date of calculate_start should be equal hire_date
hr_employee_base.py
from odoo.tools import format_time
from datetime import date, datetime, timedelta, time
from time import time
import datetime
import time
import calendar
##### the hire_date;resign_date;calcucate_start must be fields.Date
hire_date = fields.Date(string="Hire Date")
calculate_start = fields.Date(string="Start Date", store=True, compute='_get_calculate_date')
@api.onchange('hire_date')
def _get_calcuate_date(self):
firstday = datetime.datetime.strptime(self.hire_date, "%Y-%m-%d")
secondday = datetime.datetime.strptime(self.calculate_start, "%Y-%m-%d")
if firstday > secondday:
self.calculate_start = self.hire_date
File "/opt/bitnami/apps/odoo/lib/odoo-13.0.post20191110-py3.7.egg/odoo/addons/hr/models/hr_employee_base.py", line 110, in _get_calcuate_date firstday = datetime.datetime.strptime(self.hire_date, "%Y-%m-%d") TypeError: strptime() argument 1 must be str, not datetime.date
To avoid the type error re-write the following lines as below
firstday = datetime.datetime.strptime(str(self.hire_date), "%Y-%m-%d")
secondday = datetime.datetime.strptime(str(self.calculate_start), "%Y-%m-%d")