@@ -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"/>
|
||||
|
||||
Reference in New Issue
Block a user