diff --git a/yuthon_base/models/fields_piyin.py b/yuthon_base/models/fields_piyin.py index e212830a1..1de67b818 100644 --- a/yuthon_base/models/fields_piyin.py +++ b/yuthon_base/models/fields_piyin.py @@ -24,7 +24,8 @@ def _my_setup_fields(self): cls = self.env.registry[self._name] for name in list(cls._fields): field = self._fields[name] - if isinstance(field, CharWithPinyin): + # if isinstance(field, CharWithPinyin): + if type(field) == fields.CharWithPinyin: new_field_name = f'{name}_pinyin' compute_method_name = f'_compute_{new_field_name}' if new_field_name not in cls._fields: @@ -67,7 +68,8 @@ def _replace_char_with_pinyin_order(self, order): continue field_name, direction = m.groups() field = self._fields.get(field_name) - if field and isinstance(field, fields.CharWithPinyin): + # if field and isinstance(field, fields.CharWithPinyin): + if field and type(field) == fields.CharWithPinyin: # 替换成 _pinyin 字段 field_name = f"{field_name}_pinyin" if direction: diff --git a/yuthon_hr_attendance/models/yuthon_vacation_reports.py b/yuthon_hr_attendance/models/yuthon_vacation_reports.py index e3d627684..fe92ecfa3 100644 --- a/yuthon_hr_attendance/models/yuthon_vacation_reports.py +++ b/yuthon_hr_attendance/models/yuthon_vacation_reports.py @@ -181,7 +181,7 @@ class YuthonVacationReports(models.Model): month_end = date(year, month, days_in_month) leave_days = rec._create_leave_record(rec.employee_id, month_start, month_end) entry_date = rec.employee_id.entry_date - if month_start > entry_date: + if not entry_date or month_start > entry_date: start_day = 1 else: days_in_month = (date(year, month + 1, 1) - timedelta(days=1)).day