diff --git a/yuthon_holiday/models/inherit_hr_leave_allocation.py b/yuthon_holiday/models/inherit_hr_leave_allocation.py
index 502592ea8..484c032c2 100644
--- a/yuthon_holiday/models/inherit_hr_leave_allocation.py
+++ b/yuthon_holiday/models/inherit_hr_leave_allocation.py
@@ -218,67 +218,30 @@ class HrLeaveAllocation(models.Model):
leave_ids = self.env["hr.leave.allocation"].browse(
self._context.get('active_ids', self._context.get('active_id')))
for leave in leave_ids:
- leave_list = []
- compensatory_list = []
+ if leave.holiday_status_id.name != '年假':
+ continue
+
+ vacation_date = leave.date_from.replace(day=1) if leave.date_from else fields.Date.today().replace(day=1)
+
reports_id = self.env['yuthon.vacation.reports'].search([
('employee_id', '=', leave.employee_id.id),
- ('vacation_date', '=', leave.date_from)
+ ('vacation_date', '=', vacation_date)
], limit=1)
- other_list = []
-
- if leave.holiday_status_id.name == '年假':
- current_leave_hours = leave.number_of_days * 8
- existing_leave_line = False
- if reports_id and reports_id.leave_ids:
- existing_leave_line = reports_id.leave_ids.filtered(
- lambda l: l.text == '上月额度继承'
- )[:1]
- if existing_leave_line:
- update_leave_vals = {
- 'valid_date': leave.date_to,
- }
- existing_leave_line.write(update_leave_vals)
-
- leave_list.append([0, 0, {
- 'vacation_id': reports_id.id,
- 'update_type': 'add',
- 'update_date': fields.Datetime.now(),
- 'valid_date': leave.date_from,
- 'update_lines': current_leave_hours,
- 'text': '年假分配'
- }])
-
- elif leave.holiday_status_id.name == '补休':
- compensatory_list.append([0, 0, {
- 'vacation_id': reports_id.id,
- 'employee_id': reports_id.employee_id.id,
- 'update_type': 'add',
- 'valid_date': leave.date_from,
- 'workday': leave.number_of_hours_display,
- 'legal_day': 0,
- 'public_holidays': 0,
- 'meal_number': 0,
- 'text': f"上月额度继承"
- }])
- else:
- other_list.append([0, 0, {
- 'vacation_id': reports_id.id,
- 'holiday_type': leave.holiday_status_id.id,
- 'employee_id': leave.employee_id.id,
- 'update_date': fields.Date.today(),
- 'update_type': 'add',
- 'lines': leave.number_of_hours_display / 8,
- 'text': leave.name
- }])
-
+
if reports_id:
+ leave_hours = leave.number_of_days_display * 8
reports_id.write({
- 'leave_ids': leave_list,
- 'year_distribution': leave.number_of_days,
'valid_date': leave.date_to,
- 'overtime_ids': compensatory_list,
- 'other_fee_ids': other_list
+ 'leave_ids': [(0, 0, {
+ 'vacation_id': reports_id.id,
+ 'update_type': 'add',
+ 'update_date': fields.Datetime.now(),
+ 'valid_date': leave.date_from,
+ 'update_lines': leave_hours,
+ 'text': '年假分配'
+ })]
})
+ reports_id.update_line()
def update_employee(self):
leave_ids = self.env["hr.leave.allocation"].browse(
diff --git a/yuthon_holiday/views/inherit_hr_leave_allocation_views.xml b/yuthon_holiday/views/inherit_hr_leave_allocation_views.xml
index 6661e7249..40c54e6f5 100644
--- a/yuthon_holiday/views/inherit_hr_leave_allocation_views.xml
+++ b/yuthon_holiday/views/inherit_hr_leave_allocation_views.xml
@@ -70,7 +70,7 @@
action = model.action_uninstall_wizard()
- 更新报表
+ 同步考勤数据
code
diff --git a/yuthon_report/models/cum_arrears_report.py b/yuthon_report/models/cum_arrears_report.py
index dc7fee57f..b3f1a6a47 100644
--- a/yuthon_report/models/cum_arrears_report.py
+++ b/yuthon_report/models/cum_arrears_report.py
@@ -11,8 +11,8 @@ class CumArrearsReport(models.Model):
def get_cum_arrears_report(self, params):
"""
累计欠收报表(数据源:receivable.modify.line):
- - 状态为挂账(bank_state = 'registered')
- 应收开始日期(receivable_id.due_date)小于等于查询月月末
+ - 未收金额大于0(not_collected > 0)
- 排除押金和违约金类型
- 金额取 not_collected(未收)
"""
@@ -29,9 +29,9 @@ class CumArrearsReport(models.Model):
month_end = query_date.replace(day=last_day)
domain = [
- ('bank_state', '=', 'registered'),
('receivable_id.due_date', '<=', month_end),
('receivable_id.is_invalid', '=', False),
+ ('not_collected', '>', 0),
]
keyword = params.get("keyword")
@@ -57,6 +57,7 @@ class CumArrearsReport(models.Model):
if management_type_id:
domain.append(('receivable_id.management_type_id', '=', management_type_id))
else:
+ # 排除押金和违约金类型
domain.append(('receivable_id.management_type_id.name', 'not in', ['押金', '违约金']))
lines = self.search(domain, order="receivable_id asc")