Merge pull request !1718 from 李鹏宇/dev
This commit is contained in:
李鹏宇
2025-03-09 08:54:26 +00:00
committed by Gitee
12 changed files with 160 additions and 18 deletions
+4
View File
@@ -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',
@@ -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
pass
def button_confirm(self):
for record in self:
record.state = 'confirmed'
@@ -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",
});
@@ -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",
});
@@ -0,0 +1,10 @@
<?xml version="1.0" encoding="utf-8"?>
<templates>
<t t-name="month_module.ListView.Buttons" t-inherit="web.ListView.Buttons">
<xpath expr="//div[hasclass('o_list_buttons')]" position="after">
<button type="button" class="btn btn-primary" style="margin-left: 10px;" t-on-click="openMonthStatementsWizard">
考勤统计
</button>
</xpath>
</t>
</templates>
@@ -0,0 +1,10 @@
<?xml version="1.0" encoding="utf-8"?>
<templates>
<t t-name="detail_module.ListView.Buttons" t-inherit="web.ListView.Buttons">
<xpath expr="//div[hasclass('o_list_buttons')]" position="after">
<button type="button" class="btn btn-primary" style="margin-left: 10px;" t-on-click="openDetailStatementsWizard">
手动计算
</button>
</xpath>
</t>
</templates>
@@ -10,9 +10,9 @@
name="月度考勤"
parent="hr_attendance_root_board"
groups="group_he_attendance_manager"
sequence="1"/>
<menuitem id="menu_hr_attendance_month_wizard" name="考勤统计" parent="menu_hr_attendance_month_board"
action="action_hr_attendance_month_wizard"/>
sequence="4"/>
<!-- <menuitem id="menu_hr_attendance_month_wizard" name="考勤统计" parent="menu_hr_attendance_month_board"-->
<!-- action="action_hr_attendance_month_wizard"/>-->
<menuitem id="menu_hr_attendance_month_view_attendances" name="报表" parent="menu_hr_attendance_month_board"
sequence="30" action="hr_attendance_month_action"/>
<menuitem id="menu_hr_attendance_year_view_attendances" name="出勤年份维护" parent="menu_hr_attendance_month_board"
@@ -27,6 +27,11 @@
groups="group_he_attendance_manager"
action="hr_attendance_action1"
sequence="1"/>
<menuitem id="menu_hr_attendance_month_my_detail"
name="我的确认"
parent="hr_attendance_root_board"
sequence="2"
action="hr_attendance_month_my_detail_action"/>
<!-- <menuitem id="menu_hr_attendance_ce_record"-->
<!-- name="考勤提醒表单"-->
<!-- parent="hr_attendance_root_board"-->
@@ -38,31 +43,31 @@
parent="hr_attendance_root_board"
groups="group_he_attendance_manager"
action="hr_attendance_action_is_abnormal"
sequence="2"/>
sequence="5"/>
<menuitem id="menu_hr_attendance_tt_record_board"
name="考勤记录(天河投资)"
parent="hr_attendance_root_board"
groups="group_he_attendance_leader"
action="action_attendance_yuthon_company_form1"
sequence="3"/>
sequence="10"/>
<menuitem id="menu_hr_attendance_lc_record_board"
name="考勤记录(天河粮储)"
parent="hr_attendance_root_board"
groups="group_he_attendance_leader2"
action="action_attendance_yuthon_company_form2"
sequence="5"/>
sequence="15"/>
<menuitem id="menu_hr_attendance_wg_record_board"
name="考勤记录(天河物管)"
parent="hr_attendance_root_board"
groups="group_he_attendance_leader3"
action="action_attendance_yuthon_company_form3"
sequence="7"/>
sequence="20"/>
<!-- 计划相关 -->
<menuitem id="menu_hr_attendance_approval_request_board"
name="流程"
parent="hr_attendance_root_board"
sequence="15"/>
sequence="25"/>
<menuitem id="menu_hr_attendance_overtime_board"
name="加班申请"
parent="menu_hr_attendance_approval_request_board"
@@ -30,7 +30,7 @@
<field name="name">hr.attendance.detail.tree</field>
<field name="model">hr.attendance.detail</field>
<field name="arch" type="xml">
<tree string="hr attendance detail">
<tree string="hr attendance detail" js_class="custom_detail_statements_button">
<field name="employee_id"/>
<field name="department_id"/>
<field name="groupname"/>
@@ -74,7 +74,7 @@
</record>
<menuitem id="menu_hr_attendance_attendances_view" name="考勤" parent="hr_attendance.menu_hr_attendance_root" sequence="20"/>
<menuitem id="menu_hr_attendance_detail_view_attendances" name="打卡详情" parent="menu_hr_attendance_attendances_view" sequence="20" action="hr_attendance_detail_action"/>
<menuitem id="menu_hr_attendance_detail_view_attendances" name="打卡详情" parent="hr_attendance.menu_hr_attendance_root" sequence="20" action="hr_attendance_detail_action"/>
<menuitem id="menu_hr_attendance_attendances_setting_view" name="考勤维护" parent="hr_attendance.menu_hr_attendance_root" sequence="30"/>
</odoo>
@@ -4,7 +4,7 @@
<field name="name">hr.attendance.year.tree</field>
<field name="model">hr.attendance.year</field>
<field name="arch" type="xml">
<tree string="hr attendance year" editable="top">
<tree string="hr attendance year" editable="top" js_class="custom_month_statements_button">
<field name="year" />
</tree>
</field>
@@ -20,7 +20,7 @@
<field name="name">hr.attendance.month.tree</field>
<field name="model">hr.attendance.month</field>
<field name="arch" type="xml">
<tree string="hr attendance month">
<tree string="hr attendance month" js_class="custom_month_statements_button">
<field name="current_year" />
<field name="current_month" />
<field name="is_statistics"/>
@@ -74,6 +74,7 @@
<field name="come_late"/>
<field name="is_early_card" />
<field name="is_no_card" />
<field name="is_work"/>
<!-- 请假-->
<field name="unpaid_leave" />
<field name="cop_leave"/>
@@ -98,6 +99,49 @@
<button name="button_put" string="发送" type="object" class="oe_highlight"/>
</tree>
</field>
</record>
<record id="view_hr_attendance_month_detail_tree1" model="ir.ui.view">
<field name="name">hr.attendance.month.detail.tree</field>
<field name="model">hr.attendance.month.detail</field>
<field name="arch" type="xml">
<tree string="hr attendance detail" editable="bottom">
<field name="employee_id"/>
<field name="department_id" optional="hide"/>
<field name="current_year" />
<field name="current_month" />
<field name="entry_date"/>
<field name="expected_date"/>
<field name="work_overtime" />
<!-- todo 需要什么字段往上加什么-->
<!-- 打卡-->
<field name="come_late"/>
<field name="is_early_card" />
<field name="is_no_card" />
<field name="is_work"/>
<!-- 请假-->
<field name="unpaid_leave" />
<field name="cop_leave"/>
<field name="annual_leave"/>
<field name="duty_off_leave"/>
<field name="marriage_leave"/>
<field name="general_off_leave"/>
<field name="maternity_leave"/>
<field name="family_planning_leave"/>
<field name="bereavement_leave"/>
<field name="home_visit_leave"/>
<field name="parents_meeting_leave"/>
<field name="general_sick_leave"/>
<field name="hospital_sick_leave"/>
<field name="recovery_sick_leave"/>
<field name="exam_leave"/>
<!-- 其他-->
<field name="holiday_id"/>
<field name="note"/>
<field name="company_id"/>
<field name="state" widget="badge" decoration-info="state == 'unconfirmed'" decoration-success="state == 'confirmed'"/>
<button name="button_confirm" string="确认" type="object" class="oe_highlight"/>
</tree>
</field>
</record>
<record id="view_hr_attendance_month_detail_form" model="ir.ui.view">
<field name="name">hr.attendance.month.detail.form</field>
@@ -170,6 +214,21 @@
"search_default_group_by_current_month":1
}
</field>
</record>
<record id="hr_attendance_month_my_detail_action" model="ir.actions.act_window">
<field name="name">我的确认</field>
<field name="res_model">hr.attendance.month.detail</field>
<field name="view_mode">tree,form</field>
<field name="domain">[('employee_id.user_id', '=', uid)]</field>
<field name="search_view_id" ref="view_hr_attendance_month_detail_search"/>
<field name="view_ids" eval="[(5, 0, 0),
(0, 0, {'view_mode': 'tree', 'view_id': ref('yuthon_hr_attendance.view_hr_attendance_month_detail_tree1')})]"/>
<field name="context">
{
"search_default_group_by_current_year_id":1,
"search_default_group_by_current_month":1
}
</field>
</record>
<record id="all_data_attendance_put_month" model="ir.actions.server">
<field name="name">批量发送</field>
@@ -8,7 +8,7 @@
<group>
<field name="attendance_year_id"/>
<field name="current_month" />
<field name="company_id" string="公司名称"/>
<field name="company_id" string="公司名称" invisible="1"/>
</group>
<footer>
<button name="search_attendance_month" id="search_attendance_month" string="开始统计" type="object" class="btn-primary"/>
@@ -26,9 +26,7 @@ class PropertyApproval(models.Model):
urgency_level = fields.Selection([('normal', '普件'), ('urgent', '急件'), ('emergency', '特急件')], string='紧急度',
default='normal')
active = fields.Boolean('Active', default=True, tracking=True)
yuthon_company = fields.Selection([('thtz', '天河投资集团'), ('thwg', '天河物管'), ('thlc', '天河粮储')],
string='所属公司')
company_id = fields.Many2one('yuthon.property.company', string="所属公司")
def _get_default_name_title(self):
return self._description if self._description else self._name
@@ -51,7 +51,7 @@
</div>
<group>
<field name="property_source"/>
<field name="yuthon_company"/>
<field name="company_id"/>
<field name="users_id" invisible="1"/>
<field name="department_id" invisible="1"/>
<field name="property_documents_ids" widget="preview_many2many"/>