From 8a90b3ecfed46d14c54a26f86cfbd9d96214b57d Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E6=9D=8E=E9=B9=8F=E5=AE=87?= <9664676+pengyuthon@user.noreply.gitee.com> Date: Mon, 26 Jan 2026 17:35:10 +0800 Subject: [PATCH] =?UTF-8?q?=E6=B7=BB=E5=8A=A0=E5=8A=9F=E8=83=BD?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- yuthon_hr_attendance/__manifest__.py | 1 + yuthon_hr_attendance/models/__init__.py | 1 + yuthon_hr_attendance/models/card_approval.py | 1 + .../models/overtime_approval.py | 1 + .../models/yuthon_overtime_line.py | 23 ++++++++++++++++ .../security/ir.model.access.csv | 4 ++- .../static/src/js/button_vacation_confirm.js | 6 +++++ .../static/src/js/button_vacation_put.js | 18 ++----------- .../src/xml/button_vacation_confirm.xml | 6 +++++ yuthon_hr_attendance/views/card_approval.xml | 1 + .../views/yuthon_overtime_line_views.xml | 26 +++++++++++++++++++ .../views/yuthon_vacation_reports_views.xml | 2 +- 12 files changed, 72 insertions(+), 18 deletions(-) create mode 100644 yuthon_hr_attendance/models/yuthon_overtime_line.py create mode 100644 yuthon_hr_attendance/views/yuthon_overtime_line_views.xml diff --git a/yuthon_hr_attendance/__manifest__.py b/yuthon_hr_attendance/__manifest__.py index f775b316b..2162b408c 100644 --- a/yuthon_hr_attendance/__manifest__.py +++ b/yuthon_hr_attendance/__manifest__.py @@ -58,6 +58,7 @@ 'views/card_remind_form.xml', 'views/yuthon_customer_planning_views.xml', 'views/planning_slot_template_views.xml', + 'views/yuthon_overtime_line_views.xml', 'views/vacation_overtime_active_views.xml', 'views/hr_attendance_month_views.xml', 'views/wifi_message_view.xml', diff --git a/yuthon_hr_attendance/models/__init__.py b/yuthon_hr_attendance/models/__init__.py index c401c8c4e..523464933 100644 --- a/yuthon_hr_attendance/models/__init__.py +++ b/yuthon_hr_attendance/models/__init__.py @@ -36,6 +36,7 @@ from . import yuthon_holiday_statement from . import yuthon_meal_case from . import yuthon_parenting_allocate from . import vacation_overtime_active +from . import yuthon_overtime_line # from odoo.tools import SQL # import odoo # odoo.models.READ_GROUP_AGGREGATE.update({ diff --git a/yuthon_hr_attendance/models/card_approval.py b/yuthon_hr_attendance/models/card_approval.py index 5f628d663..8411d2866 100644 --- a/yuthon_hr_attendance/models/card_approval.py +++ b/yuthon_hr_attendance/models/card_approval.py @@ -23,6 +23,7 @@ class CardApprovals(models.Model): reason_application = fields.Text(string="申请事由") documents_ids = fields.Many2many('ir.attachment', string="附件") attendance_id = fields.Many2one('hr.attendance', string="补卡日期") + number_cards_replaced = fields.Integer(string="已补卡次数") attendance = fields.Char(string="补卡日期") is_attendance = fields.Boolean(string="字段隐藏") replacement_time = fields.Selection([('work', '上班卡'), ('quitting', '下班卡'), ('all', '全天卡')], string="补卡", store=True) diff --git a/yuthon_hr_attendance/models/overtime_approval.py b/yuthon_hr_attendance/models/overtime_approval.py index 4c2611136..6d0b44506 100644 --- a/yuthon_hr_attendance/models/overtime_approval.py +++ b/yuthon_hr_attendance/models/overtime_approval.py @@ -14,6 +14,7 @@ class OvertimeApprovals(models.Model): _rec_name = 'name' name = fields.Char(string="标题", compute='_compute_name') + number_card = fields.Char(string="补卡次数") code = fields.Char(string="编号", default=lambda self: self.env['ir.sequence'].next_by_code('overtime_approval')) users_id = fields.Many2one('res.users', string="申请人", default=lambda self: self.env.user.id) company_id = fields.Many2one(related='users_id.employee_ids.company_id', string="公司") diff --git a/yuthon_hr_attendance/models/yuthon_overtime_line.py b/yuthon_hr_attendance/models/yuthon_overtime_line.py new file mode 100644 index 000000000..6c0d97cc1 --- /dev/null +++ b/yuthon_hr_attendance/models/yuthon_overtime_line.py @@ -0,0 +1,23 @@ +from odoo import api, fields, models, tools, _ +from datetime import datetime, time, timedelta +from odoo.exceptions import UserError +from datetime import date, timedelta + + + +class YuthonOvertimeLine(models.Model): + _name = 'yuthon.overtime.line' + _description = '加班明细' + + employee_id = fields.Many2one('hr.employee', string="员工") + last_balance = fields.Float(string="上年结余") + valid_date = fields.Date(string="有效至") + workday = fields.Float(string='工作日') + public_holidays = fields.Float(string='公休日') + vacation_sum = fields.Float(string='合计数') + carry_forward_quantity = fields.Float(string="结转时长") + carry_forward_date = fields.Date(string="结转日期") + remaining_quantity = fields.Float(string="剩余数") + + def open_record(self): + pass \ No newline at end of file diff --git a/yuthon_hr_attendance/security/ir.model.access.csv b/yuthon_hr_attendance/security/ir.model.access.csv index b6c9c65d3..c19fbb2f2 100644 --- a/yuthon_hr_attendance/security/ir.model.access.csv +++ b/yuthon_hr_attendance/security/ir.model.access.csv @@ -88,4 +88,6 @@ access_yuthon_meal_case,access_yuthon_meal_case,model_yuthon_meal_case,base.grou access_pay_carryover_wizard,pay.carryover.wizard,model_pay_carryover_wizard,base.group_user,1,1,1,1 access_vacation_parenting_line,vacation.parenting.line,model_vacation_parenting_line,base.group_user,1,1,1,1 access_yuthon_parenting_allocate,yuthon.parenting.allocate,model_yuthon_parenting_allocate,base.group_user,1,1,1,1 -access_vacation_overtime_active,vacation.overtime.active,model_vacation_overtime_active,base.group_user,1,1,1,1 \ No newline at end of file +access_vacation_overtime_active,vacation.overtime.active,model_vacation_overtime_active,base.group_user,1,1,1,1 + +access_yuthon_overtime_line,yuthon.overtime.line,model_yuthon_overtime_line,base.group_user,1,1,1,1 \ No newline at end of file diff --git a/yuthon_hr_attendance/static/src/js/button_vacation_confirm.js b/yuthon_hr_attendance/static/src/js/button_vacation_confirm.js index d70f42708..ef52c8ffa 100644 --- a/yuthon_hr_attendance/static/src/js/button_vacation_confirm.js +++ b/yuthon_hr_attendance/static/src/js/button_vacation_confirm.js @@ -11,6 +11,12 @@ export class CustomAttendanceVacationConfirmController extends ListController { async getAction(lock_type) { await this.orm.call('vacation.over.line', 'confirm', []); } + async getNextAction(lock_type) { + await this.orm.call('vacation.meal.line', 'confirm', []); + } + async getLastAction(lock_type) { + await this.orm.call('vacation.meal.line', 'confirm', []); + } } registry.category("views").add("custom_vacation_confirm_button", { diff --git a/yuthon_hr_attendance/static/src/js/button_vacation_put.js b/yuthon_hr_attendance/static/src/js/button_vacation_put.js index db91e9075..51b4db269 100644 --- a/yuthon_hr_attendance/static/src/js/button_vacation_put.js +++ b/yuthon_hr_attendance/static/src/js/button_vacation_put.js @@ -42,27 +42,13 @@ export class CustomAttendanceVacationPutController extends ListController { openVacationOverWizard() { this.actionService.doAction({ type: 'ir.actions.act_window', - res_model: 'vacation.over.line', + res_model: 'yuthon.overtime.line', name: '加班合计数报表', view_mode: 'tree', view_type: 'form', views: [[false, 'tree']], target: 'current', - context: {'tree_view_ref': "yuthon_hr_attendance.view_yuthon_vacation_overtime_briefly_tree"}, - domain: [ - '|', - ['is_initial_number', '=', true], - '&', - ['is_initial_number', '=', false], - '&', - ['update_type', '=', 'add'], - '&', - ['workflow_record_id', '!=', false], - '!', - '&', - ['start_time', '>=', '2025-12-01 00:00:00'], - ['start_time', '<', '2026-01-01 00:00:00'] - ], + context: {'tree_view_ref': "yuthon_hr_attendance.view_yuthon_overtime_line_tree"}, }); } diff --git a/yuthon_hr_attendance/static/src/xml/button_vacation_confirm.xml b/yuthon_hr_attendance/static/src/xml/button_vacation_confirm.xml index a62709af5..14211cb33 100644 --- a/yuthon_hr_attendance/static/src/xml/button_vacation_confirm.xml +++ b/yuthon_hr_attendance/static/src/xml/button_vacation_confirm.xml @@ -5,6 +5,12 @@ + + \ No newline at end of file diff --git a/yuthon_hr_attendance/views/card_approval.xml b/yuthon_hr_attendance/views/card_approval.xml index 090e92c4f..34b519359 100644 --- a/yuthon_hr_attendance/views/card_approval.xml +++ b/yuthon_hr_attendance/views/card_approval.xml @@ -49,6 +49,7 @@ + diff --git a/yuthon_hr_attendance/views/yuthon_overtime_line_views.xml b/yuthon_hr_attendance/views/yuthon_overtime_line_views.xml new file mode 100644 index 000000000..26dd21690 --- /dev/null +++ b/yuthon_hr_attendance/views/yuthon_overtime_line_views.xml @@ -0,0 +1,26 @@ + + + + yuthon.overtime.line.tree + yuthon.overtime.line + + + + + + + + + + + +