diff --git a/yuthon_hr_attendance/__manifest__.py b/yuthon_hr_attendance/__manifest__.py
index 2701e7f91..a14650f01 100644
--- a/yuthon_hr_attendance/__manifest__.py
+++ b/yuthon_hr_attendance/__manifest__.py
@@ -64,6 +64,7 @@
'views/hr_attendance_portal_templates.xml',
'views/meal_approval.xml',
'views/applet_address_views.xml',
+ 'views/yuthon.overtime.report.xml',
'views/all_attendance_menu.xml',
'views/overtime_approval_inherit_header.xml',
diff --git a/yuthon_hr_attendance/models/__init__.py b/yuthon_hr_attendance/models/__init__.py
index 70115ca77..84767ebfd 100644
--- a/yuthon_hr_attendance/models/__init__.py
+++ b/yuthon_hr_attendance/models/__init__.py
@@ -32,6 +32,7 @@ from . import meal_approval
from . import back_approval
from . import staff_dining_report
from . import message_reminder_tasks
+from . import yuthon_overtime_report
# from odoo.tools import SQL
# import odoo
diff --git a/yuthon_hr_attendance/models/yuthon_overtime_report.py b/yuthon_hr_attendance/models/yuthon_overtime_report.py
new file mode 100644
index 000000000..8137c7968
--- /dev/null
+++ b/yuthon_hr_attendance/models/yuthon_overtime_report.py
@@ -0,0 +1,34 @@
+from odoo import api, fields, models, tools, _
+from datetime import datetime, time, timedelta
+from odoo.exceptions import UserError
+from datetime import date, timedelta
+
+
+class YuthonOvertimeReport(models.Model):
+ _name = 'yuthon.overtime.report'
+ _description = '加班费记录'
+
+ employee_id = fields.Many2one('hr.employee', string="员工")
+ department_id = fields.Many2one('hr.department',string="部门")
+ overtime_date = fields.Char(string="加班时间")
+ carry_forward_date = fields.Date(string="结转日期")
+ carry_forward_duration = fields.Float(string="结转时长")
+ carry_forward_result = fields.Selection(
+ selection=[
+ ('success', '成功'),
+ ('failed', '失败')
+ ],
+ string='结转结果',
+ )
+ validity = fields.Char(string="有效期")
+ carry_forward_state = fields.Selection(
+ selection=[
+ ('pending', '待结转'),
+ ('completed', '已结转'),
+ ('partial', '部分结转')
+ ],
+ string='结转状态',
+ default='pending',
+ )
+ remaining_quantity = fields.Float(string='剩余数')
+
diff --git a/yuthon_hr_attendance/security/ir.model.access.csv b/yuthon_hr_attendance/security/ir.model.access.csv
index 8f6eb2365..ab8aa2057 100644
--- a/yuthon_hr_attendance/security/ir.model.access.csv
+++ b/yuthon_hr_attendance/security/ir.model.access.csv
@@ -82,4 +82,5 @@ access_vacation_put_wizard,vacation.put.wizard,model_vacation_put_wizard,base.gr
access_message_reminder_tasks,message.reminder.tasks,model_message_reminder_tasks,base.group_user,1,1,1,1
access_applet_security_quick_perm_wizard,access_applet_security_quick_perm_wizard,model_applet_security_quick_perm_wizard,base.group_user,1,1,1,1
-access_vacation_reports_wizard,vacation.reports.wizard,model_vacation_reports_wizard,base.group_user,1,1,1,1
\ No newline at end of file
+access_vacation_reports_wizard,vacation.reports.wizard,model_vacation_reports_wizard,base.group_user,1,1,1,1
+access_yuthon_overtime_report,access_yuthon_overtime_report,model_yuthon_overtime_report,base.group_user,1,1,1,1
\ No newline at end of file
diff --git a/yuthon_hr_attendance/views/all_attendance_menu.xml b/yuthon_hr_attendance/views/all_attendance_menu.xml
index 620d0b59c..8b9a3c509 100644
--- a/yuthon_hr_attendance/views/all_attendance_menu.xml
+++ b/yuthon_hr_attendance/views/all_attendance_menu.xml
@@ -222,4 +222,16 @@
parent="menu_hr_attendance_approval_request" sequence="15" action="view_back_approval_action"/>
+
+
+
+
+
diff --git a/yuthon_hr_attendance/views/yuthon.overtime.report.xml b/yuthon_hr_attendance/views/yuthon.overtime.report.xml
new file mode 100644
index 000000000..c56c91e82
--- /dev/null
+++ b/yuthon_hr_attendance/views/yuthon.overtime.report.xml
@@ -0,0 +1,31 @@
+
+
+
+ yuthon.overtime.report.tree
+ yuthon.overtime.report
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ 加班费记录
+ yuthon.overtime.report
+ tree
+
+
+ 暂无加班费记录
+
+
+
+
\ No newline at end of file