diff --git a/yuthon_hr_attendance/__manifest__.py b/yuthon_hr_attendance/__manifest__.py index a5bf68db1..4b5741e5d 100644 --- a/yuthon_hr_attendance/__manifest__.py +++ b/yuthon_hr_attendance/__manifest__.py @@ -62,6 +62,10 @@ 'yuthon_hr_attendance/static/src/planning_gantt/gantt_popover.js', 'yuthon_hr_attendance/static/src/planning_gantt/gantt_popover.xml', 'yuthon_hr_attendance/static/src/planning_gantt/planning_gantt_renderer.js', + 'yuthon_hr_attendance/static/src/js/button_attendance_month.js', + 'yuthon_hr_attendance/static/src/xml/button_attendance_month.xml', + 'yuthon_hr_attendance/static/src/js/button_detail_wechat.js', + 'yuthon_hr_attendance/static/src/xml/button_detail_wechat.xml', 'yuthon_hr_attendance/static/src/components/*/*.xml', 'yuthon_hr_attendance/static/src/css/*.css', 'yuthon_hr_attendance/static/src/js/planning_gantt_renderer.js', diff --git a/yuthon_hr_attendance/models/hr_attendance_month.py b/yuthon_hr_attendance/models/hr_attendance_month.py index 143909123..a93645174 100644 --- a/yuthon_hr_attendance/models/hr_attendance_month.py +++ b/yuthon_hr_attendance/models/hr_attendance_month.py @@ -121,6 +121,7 @@ class HrAttendanceMonthDetail(models.Model): come_late = fields.Integer(string="迟到") is_early_card = fields.Integer(string="早退") is_no_card = fields.Integer(string="缺卡") + is_work = fields.Boolean(string='旷工') # 假期 unpaid_leave = fields.Integer(string="无薪假") @@ -375,4 +376,8 @@ class HrAttendanceMonthDetail(models.Model): pass def button_all_put(self): - pass \ No newline at end of file + pass + + def button_confirm(self): + for record in self: + record.state = 'confirmed' \ No newline at end of file diff --git a/yuthon_hr_attendance/static/src/js/button_attendance_month.js b/yuthon_hr_attendance/static/src/js/button_attendance_month.js new file mode 100644 index 000000000..b7f264590 --- /dev/null +++ b/yuthon_hr_attendance/static/src/js/button_attendance_month.js @@ -0,0 +1,29 @@ +/** @odoo-module */ +import { ListController } from "@web/views/list/list_controller"; +import { registry } from '@web/core/registry'; +import { listView } from '@web/views/list/list_view'; + +export class CustomAttendanceMonthStatementsController extends ListController { + setup() { + super.setup(); + } + + openMonthStatementsWizard() { + this.actionService.doAction({ + type: 'ir.actions.act_window', + res_model: 'hr.attendance.month.wizard', + name: '考勤对账', + view_mode: 'form', + view_type: 'form', + views: [[false, 'form']], + target: 'new', // 以弹窗形式打开 + context: {}, + }); + } +} + +registry.category("views").add("custom_month_statements_button", { + ...listView, + Controller: CustomAttendanceMonthStatementsController, + buttonTemplate: "month_module.ListView.Buttons", +}); \ No newline at end of file diff --git a/yuthon_hr_attendance/static/src/js/button_detail_wechat.js b/yuthon_hr_attendance/static/src/js/button_detail_wechat.js new file mode 100644 index 000000000..3ead123b6 --- /dev/null +++ b/yuthon_hr_attendance/static/src/js/button_detail_wechat.js @@ -0,0 +1,22 @@ +/** @odoo-module */ +import { ListController } from "@web/views/list/list_controller"; +import { registry } from '@web/core/registry'; +import { listView } from '@web/views/list/list_view'; +import { useService } from '@web/core/utils/hooks'; + +export class CustomDetailWechatStatementsController extends ListController { + setup() { + super.setup(); + this.orm = useService('orm'); + } + + openDetailStatementsWizard() { + this.orm.call('hr.attendance.detail', 'get_hr_attendance_time'); + } +} + +registry.category("views").add("custom_detail_statements_button", { + ...listView, + Controller: CustomDetailWechatStatementsController, + buttonTemplate: "detail_module.ListView.Buttons", +}); \ No newline at end of file diff --git a/yuthon_hr_attendance/static/src/xml/button_attendance_month.xml b/yuthon_hr_attendance/static/src/xml/button_attendance_month.xml new file mode 100644 index 000000000..10cec2c1d --- /dev/null +++ b/yuthon_hr_attendance/static/src/xml/button_attendance_month.xml @@ -0,0 +1,10 @@ + + + + + + + + diff --git a/yuthon_hr_attendance/static/src/xml/button_detail_wechat.xml b/yuthon_hr_attendance/static/src/xml/button_detail_wechat.xml new file mode 100644 index 000000000..38c192114 --- /dev/null +++ b/yuthon_hr_attendance/static/src/xml/button_detail_wechat.xml @@ -0,0 +1,10 @@ + + + + + + + + diff --git a/yuthon_hr_attendance/views/all_attendance_menu.xml b/yuthon_hr_attendance/views/all_attendance_menu.xml index c6dcaeb04..9bbf425a2 100644 --- a/yuthon_hr_attendance/views/all_attendance_menu.xml +++ b/yuthon_hr_attendance/views/all_attendance_menu.xml @@ -10,9 +10,9 @@ name="月度考勤" parent="hr_attendance_root_board" groups="group_he_attendance_manager" - sequence="1"/> - + sequence="4"/> + + + @@ -38,31 +43,31 @@ parent="hr_attendance_root_board" groups="group_he_attendance_manager" action="hr_attendance_action_is_abnormal" - sequence="2"/> + sequence="5"/> + sequence="10"/> + sequence="15"/> + sequence="20"/> + sequence="25"/> hr.attendance.detail.tree hr.attendance.detail - + @@ -74,7 +74,7 @@ - + \ No newline at end of file diff --git a/yuthon_hr_attendance/views/hr_attendance_month_views.xml b/yuthon_hr_attendance/views/hr_attendance_month_views.xml index f6468186d..3e9835d0e 100644 --- a/yuthon_hr_attendance/views/hr_attendance_month_views.xml +++ b/yuthon_hr_attendance/views/hr_attendance_month_views.xml @@ -4,7 +4,7 @@ hr.attendance.year.tree hr.attendance.year - + @@ -20,7 +20,7 @@ hr.attendance.month.tree hr.attendance.month - + @@ -74,6 +74,7 @@ + @@ -98,6 +99,49 @@