添加功能

This commit is contained in:
zhouzhou
2024-10-12 18:54:58 +08:00
parent 3f7ad7a86f
commit 1a11b32be4
22 changed files with 332 additions and 288 deletions
+1
View File
@@ -34,6 +34,7 @@
'views/card_approval.xml',
'views/holiday_manage.xml',
'views/holiday_manage_balance.xml',
'views/attendance_scheme.xml',
'views/attendance_iot_datas.xml',
'views/all_attendance_menu.xml',
'wizard/attendance_iot_manager_wizard_views.xml',
+1
View File
@@ -15,4 +15,5 @@ from . import holiday_manage
from . import holiday_manage_balance
from . import attendance_iot_manager
from . import attendance_iot_datas
from . import attendance_scheme
@@ -0,0 +1,27 @@
from odoo import api, fields, models, tools
class AttendanceScheme(models.Model):
_name = 'attendance.scheme'
_description = '考勤方案'
name = fields.Char(string='名称', required=True)
employee_name = fields.Char(string='姓名', required=True)
phone = fields.Char(string='手机号', required=True)
form_employment = fields.Selection([('exercitation', '实习'),
('expatriate', '外派'),
('tryout', '试用'),
('official', '正式'),
], string="聘用形式")
department_id = fields.Many2one('hr.department', string="部门")
working_system = fields.Char(string='工时制',default='未设置')
start_time = fields.Datetime(string="入职日期")
shifts = fields.Char(string='排版制')
punch_way = fields.Char(string='打卡方式')
attendance_mode = fields.Char(string='出勤方式')
attendance_group = fields.Char(string='考勤组')
overtime_programs = fields.Char(string='加班方案')
subsidy_programme = fields.Char(string='补贴方案')
chargeback_schemes = fields.Char(string='扣款方案')
remarks = fields.Char(string='备注')
+16 -12
View File
@@ -10,17 +10,21 @@ class CardApprovals(models.Model):
_inherit = ['mail.thread.main.attachment', 'mail.activity.mixin']
_rec_name = 'name'
name = fields.Char(string="名称", default=lambda self: self.env['ir.sequence'].next_by_code('card_approval'))
date = fields.Datetime(string="日期", default=fields.Datetime.now)
department_id = fields.Many2one('hr.department', string="申请人部门")
partner_id = fields.Many2one('res.partner', string="来文单位")
statu = fields.Selection([('drft', '草稿'), ('going', '执行中'), ('cancel', '已取消'), ('done', '已完成')], string="状态",
default='drft')
replacement_time = fields.Datetime(string="补卡时间")
real_go_work_time = fields.Datetime(string="全天上班")
real_get_off_work_time = fields.Datetime(string="全天下班")
type_of_exception = fields.Char(string="异常类型")
reason_application = fields.Char(string="申请事由")
company_page = fields.Selection([('tz', '天河投资'), ('wg', '天河物管'), ('lc', '天河粮储')], string="公司")
name = fields.Char(string="名称", default=lambda self: self.env['ir.sequence'].next_by_code('overtime_approval'))
users_ids = fields.Many2one('res.users', string="申请人",default=lambda self: self.env.user.id)
card_ids = fields.One2many('card.approvals.line', 'card_id', string="补卡人明细")
department_id = fields.Many2one('hr.department', string="部门")
def card_approval(self):
pass
class CardApprovalsLine(models.Model):
_name = 'card.approvals.line'
_description = "补卡人明细"
card_id = fields.Many2one('card.approval', string="补卡审批")
overtime_people = fields.Char( string="补卡人")
replacement_time = fields.Datetime(string="补卡时间")
actual_punch = fields.Datetime(string="实际打卡")
reason = fields.Char(string="补卡原因")
documents_ids = fields.Many2many('documents.document', string="附件")
+23 -6
View File
@@ -10,12 +10,29 @@ class DutyApprovals(models.Model):
_inherit = ['mail.thread.main.attachment', 'mail.activity.mixin']
_rec_name = 'name'
company_page = fields.Selection([('tz', '天河投资'), ('wg', '天河物管'), ('lc', '天河粮储')], string="公司")
name = fields.Char(string="名称", default=lambda self: self.env['ir.sequence'].next_by_code('duty_approval'))
date = fields.Datetime(string="日期", default=fields.Datetime.now)
department_id = fields.Many2one('hr.department', string="申请人部门")
partner_id = fields.Many2one('res.partner', string="来文单位")
statu = fields.Selection([('drft', '草稿'), ('going', '执行中'), ('cancel', '已取消'), ('done', '已完成')], string="状态",
default='drft')
department_id = fields.Many2one('hr.department', string="部门")
users_id = fields.Many2one('res.users', string="申请人",default=lambda self: self.env.user.id)
duty_ids = fields.Many2many('duty.approval.line','duty_id',string="值班人明细")
@api.depends('date_start', 'date_end')
def _compute_duration(self):
for rec in self:
if rec.date_start and rec.date_end:
rec.duration = (rec.date_end - rec.date_start).total_seconds() / 3600
def duty_approval(self):
pass
pass
class DutyApprovalsLine(models.Model):
_name = 'duty.approval.line'
_description = "值班人明细行"
duty_id = fields.Many2one('duty.approval', string="值班审批")
duty_user_id = fields.Many2one('res.users', string="值班人员")
reason_application = fields.Char(string="事由")
date_start = fields.Datetime(string="开始时间", default=fields.Datetime.now)
date_end = fields.Datetime(string="结束时间")
duration = fields.Float(string="时长")
validity = fields.Char(string="有效期")
documents_ids = fields.Many2many('documents.document', string="附件")
+27 -25
View File
@@ -10,30 +10,32 @@ class GoApprovals(models.Model):
_inherit = ['mail.thread.main.attachment', 'mail.activity.mixin']
_rec_name = 'name'
name = fields.Char(string="名称", default=lambda self: self.env['ir.sequence'].next_by_code('go_approval'))
date = fields.Datetime(string="日期", default=fields.Datetime.now)
department_id = fields.Many2one('hr.department', string="申请人部门")
partner_id = fields.Many2one('res.partner', string="来文单位")
statu = fields.Selection([('drft', '草稿'), ('going', '执行中'), ('cancel', '已取消'), ('done', '已完成')], string="状态",
default='drft')
user_sex = fields.Selection([('girl', '女'), ('boy', '男')], string="性别")
job_id = fields.Many2one('hr.job', string="岗位")
date_start = fields.Datetime(string="开始时间", default=fields.Datetime.now)
date_end = fields.Datetime(string="结束时间")
leave_time = fields.Char(string="申请时长")
missed_meal_charges = fields.Char(string="误餐费")
apply_unit = fields.Char(string="申请单位")
company_page = fields.Selection([('tz', '天河投资'), ('wg', '天河物管'), ('lc', '天河粮储')], string="公司")
name = 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)
department_id = fields.Many2one('hr.department', string="部门")
go_approval_ids = fields.One2many('go.approvals.line', 'go_approval_id', string="外出详情")
# @api.depends('date_start', 'date_end')
# def _compute_leave_days(self):
# for record in self:
# if record.date_start and record.date_end:
# start_date = fields.Datetime.from_string(record.date_start)
# end_date = fields.Datetime.from_string(record.date_end)
# duration = end_date - start_date
# record.leave_days = duration.days
# else:
# record.leave_days = 0
#
# def go_approval(self):
# pass
@api.depends('date_start', 'date_end')
def _compute_leave_days(self):
for record in self:
if record.date_start and record.date_end:
start_date = fields.Datetime.from_string(record.date_start)
end_date = fields.Datetime.from_string(record.date_end)
duration = end_date - start_date
record.leave_days = duration.days
else:
record.leave_days = 0
class GoApprovalsLine(models.Model):
_name = 'go.approvals.line'
_description = "外出人明细"
def go_approval(self):
pass
go_approval_id = fields.Many2one('go.approval', string="关联外出申请")
overtime_people = fields.Char(string="外出人")
reason_application = fields.Char(string="事由")
documents_ids = fields.Many2many('documents.document', string="附件")
date_start = fields.Datetime(string="开始时间")
date_end = fields.Datetime(string="结束时间")
@@ -10,19 +10,29 @@ class HolidaysApprovals(models.Model):
_inherit = ['mail.thread.main.attachment', 'mail.activity.mixin']
_rec_name = 'name'
company_page = fields.Selection([('tz', '天河投资'), ('wg', '天河物管'), ('lc', '天河粮储')], string="公司")
applicant_id = fields.Many2one('hr.employee', string="申请人",default=lambda self: self.env.user.id)
name = fields.Char(string="名称", default=lambda self: self.env['ir.sequence'].next_by_code('holidays_approval'))
date = fields.Date(string="日期", default=fields.Date.today())
department_id = fields.Many2one('hr.department', string="申请人部门")
partner_id = fields.Many2one('res.partner', string="来文单位")
statu = fields.Selection([('drft', '草稿'), ('going', '执行中'), ('cancel', '已取消'), ('done', '已完成')], string="状态",
default='drft')
department_id = fields.Many2one('hr.department', string="部门")
documents_ids = fields.Many2many('documents.document', string="附件")
approvals_ids = fields.One2many('holidays.approvals.line', 'approvals_id', string="请假审批行")
def holiday_approval(self):
pass
class HolidaysApprovalsLine(models.Model):
_name = 'holidays.approvals.line'
_description = '请假审批行'
leave_absence_id = fields.Many2one('hr.employee', string="请假人")
main_text = fields.Text(string='事由')
approvals_id = fields.Many2one('holidays.approval', string="管理请假审批")
leave_category = fields.Char( string="请假类型")
days_available = fields.Char(string="可用天数")
applicants = fields.Selection([('hours', '按小时'),('days', '按天')], string="申请单位")
date_start = fields.Datetime(string="开始时间", default=fields.Datetime.now)
date_end = fields.Datetime(string="结束时间")
leave_category = fields.Many2many('holiday.setting', string="请假类别")
leave_time = fields.Char(string="请假时间")
leave_days = fields.Float(string='请假天数', compute='_compute_leave_days', store=True)
main_text = fields.Text(string='申请事由')
surplus_days = fields.Float(string="剩余天数")
@api.depends('date_start', 'date_end')
def _compute_leave_days(self):
for record in self:
@@ -33,6 +43,3 @@ class HolidaysApprovals(models.Model):
record.leave_days = duration.days
else:
record.leave_days = 0
def holiday_approval(self):
pass
@@ -10,18 +10,11 @@ class OvertimeApprovals(models.Model):
_inherit = ['mail.thread.main.attachment', 'mail.activity.mixin']
_rec_name = 'name'
company_page = fields.Selection([('tz', '天河投资'), ('wg', '天河物管'), ('lc', '天河粮储')], string="公司")
name = 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)
overtime_department_id = fields.Many2one('hr.department', string="加班部门")
reason_application = fields.Char(string="申请事由")
date = fields.Datetime(string="日期", default=fields.Datetime.now)
department_id = fields.Many2one('hr.department', string="申请人部门")
partner_id = fields.Many2one('res.partner', string="来文单位")
statu = fields.Selection([('drft', '草稿'), ('going', '执行中'), ('cancel', '已取消'), ('done', '已完成')],
string="状态", default='drft')
overtime_user_ids = fields.One2many('overtime.user.line', 'overtime_approval_id', string="加班明细行")
users_id = fields.Many2one('res.users', string="申请人",default=lambda self: self.env.user.id)
overtime_approval_ids = fields.One2many('overtime.users.line', 'overtime_approval_id', string="加班审批行")
department_id = fields.Many2one('hr.department', string="部门")
@api.onchange('overtime_department_id')
def onchange_overtime_users(self):
users_data_list = []
@@ -54,30 +47,26 @@ class OvertimeApprovals(models.Model):
over.overtime_user_ids = users_data_list
class OvertimeUserLine(models.Model):
_name = 'overtime.user.line'
class OvertimeUsersLine(models.Model):
_name = 'overtime.users.line'
_rec_name = 'overtime_approval_id'
_description = "加班明细行"
default_date = datetime.combine(datetime.now().date(), time(hour=17, minute=30))
overtime_approval_id = fields.Many2one('overtime.approval', string="关联加班单")
user_id = fields.Many2one('res.users', string="加班人员")
start_time = fields.Datetime(string="开始时间", default=default_date)
end_time = fields.Datetime(string="结束时间")
overtime_hours = fields.Float(string="加班时长")
type_overtime = fields.Selection([('work', '工作日',), ('rest', '休息日',), ('holiday', '节假日')],
string="加班类型", default="work")
compensation_mode = fields.Selection([('salary', '薪资',), ('rest', '调休',)], string="补偿方式", default="salary")
is_male_pay = fields.Boolean(string="加班餐费")
overtime_approval_id = fields.Many2one('overtime.approval', string="加班单号")
overtime_people = fields.Char(string="加班人员")
reason_application = fields.Char(string="事由")
department_id = fields.Many2one('hr.department', string="部门")
overtime_hours = fields.Float(string="本月加班时长")
documents_ids = fields.Many2many('documents.document', string="附件")
def attendance_button(self):
return {
'type': 'ir.actions.client',
'tag': 'display_notification',
'target': 'new',
'params': {
'title': '考勤信息',
'message': _(self.user_id.name + "的签到时间:2024-7-12 8:00:00 签出时间:2024-7-12 20:00:00"),
'sticky': True
}
}
# def attendance_button(self):
# return {
# 'type': 'ir.actions.client',
# 'tag': 'display_notification',
# 'target': 'new',
# 'params': {
# 'title': '考勤信息',
# 'message': _(self.user_id.name + "的签到时间:2024-7-12 8:00:00 签出时间:2024-7-12 20:00:00"),
# 'sticky': True
# }
# }
@@ -1,7 +1,6 @@
id,name,model_id:id,group_id:id,perm_read,perm_write,perm_create,perm_unlink
access_resource_calendar_holiday,resource.calendar.holiday,model_resource_calendar_holiday,base.group_user,1,1,1,1
access_overtime_approval,overtime.approval,model_overtime_approval,base.group_user,1,1,1,1
access_overtime_user_line,overtime_user_line,model_overtime_user_line,base.group_user,1,1,1,1
access_go_approval,go.approval,model_go_approval,base.group_user,1,1,1,1
access_duty_approval,duty.approval,model_duty_approval,base.group_user,1,1,1,1
access_leave_approval,leave.approval,model_leave_approval,base.group_user,1,1,1,1
@@ -14,6 +13,10 @@ access_attendance_iot_manager,attendance_iot_manager,model_attendance_iot_manage
access_attendance_iot_manager_wizard,attendance_iot_manager_wizard,model_attendance_iot_manager_wizard,base.group_user,1,1,1,1
access_holiday_manage_balance,holiday_manage_balance,model_holiday_manage_balance,base.group_user,1,1,1,1
access_attendance_iot_datas,attendance_iot_datas,model_attendance_iot_datas,base.group_user,1,1,1,1
access_attendance_scheme,attendance_scheme,model_attendance_scheme,base.group_user,1,1,1,1
access_holidays_approvals_line,holidays.approvals.line,model_holidays_approvals_line,base.group_user,1,1,1,1
access_card_approvals_line,card.approval.line,model_card_approvals_line,base.group_user,1,1,1,1
access_holidays_approvals_line,holidays.approvals.line,model_holidays_approvals_line,base.group_user,1,1,1,1
access_go_approvals_line,go.approvals.line,model_go_approvals_line,base.group_user,1,1,1,1
access_overtime_users_line,overtime.users.line,model_overtime_users_line,base.group_user,1,1
access_duty_approval_line,duty.approval.line,model_duty_approval_line,base.group_user,1,1,1,1
1 id name model_id:id group_id:id perm_read perm_write perm_create perm_unlink
2 access_resource_calendar_holiday resource.calendar.holiday model_resource_calendar_holiday base.group_user 1 1 1 1
3 access_overtime_approval overtime.approval model_overtime_approval base.group_user 1 1 1 1
access_overtime_user_line overtime_user_line model_overtime_user_line base.group_user 1 1 1 1
4 access_go_approval go.approval model_go_approval base.group_user 1 1 1 1
5 access_duty_approval duty.approval model_duty_approval base.group_user 1 1 1 1
6 access_leave_approval leave.approval model_leave_approval base.group_user 1 1 1 1
13 access_attendance_iot_manager_wizard attendance_iot_manager_wizard model_attendance_iot_manager_wizard base.group_user 1 1 1 1
14 access_holiday_manage_balance holiday_manage_balance model_holiday_manage_balance base.group_user 1 1 1 1
15 access_attendance_iot_datas attendance_iot_datas model_attendance_iot_datas base.group_user 1 1 1 1
16 access_attendance_scheme attendance_scheme model_attendance_scheme base.group_user 1 1 1 1
17 access_holidays_approvals_line holidays.approvals.line model_holidays_approvals_line base.group_user 1 1 1 1
18 access_card_approvals_line card.approval.line model_card_approvals_line base.group_user 1 1 1 1
19 access_holidays_approvals_line holidays.approvals.line model_holidays_approvals_line base.group_user 1 1 1 1
20 access_go_approvals_line go.approvals.line model_go_approvals_line base.group_user 1 1 1 1
21 access_overtime_users_line overtime.users.line model_overtime_users_line base.group_user 1 1
22 access_duty_approval_line duty.approval.line model_duty_approval_line base.group_user 1 1 1 1
@@ -0,0 +1,72 @@
<?xml version="1.0" encoding="UTF-8" ?>
<odoo>
<record id="view_attendance_scheme_tree" model="ir.ui.view">
<field name="name">attendance.scheme.tree</field>
<field name="model">attendance.scheme</field>
<field name="arch" type="xml">
<tree string="考勤方案">
<field name="name"/>
<field name="employee_name" optional="show"/>
<field name="phone" optional="show"/>
<field name="form_employment" optional="show"/>
<field name="department_id" optional="show"/>
<field name="working_system" optional="hide"/>
<field name="start_time" optional="show"/>
<field name="shifts" optional="hide"/>
<field name="punch_way" optional="hide"/>
<field name="attendance_mode" optional="hide"/>
<field name="attendance_group" optional="hide"/>
<field name="overtime_programs" optional="hide"/>
<field name="subsidy_programme" optional="hide"/>
<field name="chargeback_schemes" optional="hide"/>
<field name="remarks" optional="hide"/>
</tree>
</field>
</record>
<record id="view_attendance_scheme_form" model="ir.ui.view">
<field name="name">attendance.scheme.form</field>
<field name="model">attendance.scheme</field>
<field name="arch" type="xml">
<form>
<sheet>
<div class="oe_title">
<label for="name"/>
<h1>
<field name="name" required="1"/>
</h1>
</div>
<group col="4">
<group>
<field name="employee_name"/>
<field name="phone"/>
<field name="form_employment"/>
<field name="department_id"/>
</group>
<group>
<field name="working_system"/>
<field name="start_time"/>
<field name="shifts"/>
<field name="punch_way"/>
</group>
<group>
<field name="attendance_mode"/>
<field name="attendance_group"/>
<field name="overtime_programs"/>
<field name="subsidy_programme"/>
</group>
<group>
<field name="chargeback_schemes"/>
<field name="remarks"/>
</group>
</group>
</sheet>
</form>
</field>
</record>
<record id="attendance_scheme_action" model="ir.actions.act_window">
<field name="name">考勤方案</field>
<field name="res_model">attendance.scheme</field>
<field name="view_mode">tree,form</field>
</record>
</odoo>
+22 -36
View File
@@ -6,10 +6,9 @@
<field name="arch" type="xml">
<tree>
<field name="name"/>
<field name="users_ids"/>
<field name="company_page"/>
<field name="department_id"/>
<field name="partner_id"/>
<field name="date"/>
<field name="statu"/>
</tree>
</field>
</record>
@@ -19,12 +18,7 @@
<field name="model">card.approval</field>
<field name="arch" type="xml">
<form>
<header>
<widget name="attach_document" string="附加文档" action="message_post"/>
<button name="card_approval" string="发起申请" type="object" class="oe_highlight"/>
<field name="statu" widget="statusbar"/>
</header>
<sheet>
<sheet>
<div class="oe_title">
<label for="name"/>
<h1>
@@ -33,42 +27,34 @@
</div>
<group>
<group>
<field name="department_id"/>
<field name="partner_id"/>
<field name="replacement_time"/>
<field name="type_of_exception"/>
<field name="company_page"/>
</group>
<group>
<field name="real_go_work_time"/>
<field name="real_get_off_work_time"/>
<field name="reason_application"/>
<field name="date"/>
<field name="department_id"/>
</group>
<group>
<field name="users_ids"/>
</group>
</group>
<notebook>
<page string="补卡人明细">
<field name="card_ids" string="">
<tree editable="bottom">
<field name="card_id" column_invisible="1"/>
<field name="overtime_people"/>
<field name="replacement_time"/>
<field name="actual_punch"/>
<field name="reason"/>
<field name="documents_ids" widget="many2many_tags"/>
</tree>
</field>
</page>
</notebook>
</sheet>
<div class="o_attachment_preview"/>
<div class="oe_chatter">
<field name="message_follower_ids" groups="base.group_user"/>
<field name="activity_ids"/>
<field name="message_ids"/>
</div>
</form>
</field>
</record>
<record id="card_approval_search" model="ir.ui.view">
<field name="name">card.approval.search</field>
<field name="model">card.approval</field>
<field name="arch" type="xml">
<search string="考勤审批状态">
<filter string="草稿" name="Drft " domain="[('statu', '=', 'drft')]"/>
<filter string="执行中" name="Going " domain="[('statu', '=', 'going')]"/>
<filter string="已取消" name="Cancel " domain="[('statu', '=', 'cancel')]"/>
<filter string="已完成" name="Done " domain="[('statu', '=', 'done')]"/>
</search>
</field>
</record>
<record id="approval_request_card" model="ir.actions.act_window">
<field name="name">补卡</field>
<field name="res_model">card.approval</field>
+23 -31
View File
@@ -7,24 +7,17 @@
<field name="arch" type="xml">
<tree>
<field name="name"/>
<field name="company_page"/>
<field name="department_id"/>
<field name="partner_id"/>
<field name="date"/>
<field name="statu"/>
<field name="users_id"/>
</tree>
</field>
</record>
<record id="duty_approval_form" model="ir.ui.view">
<field name="name">duty.approval.actions</field>
<field name="model">duty.approval</field>
<field name="arch" type="xml">
<form>
<header>
<widget name="attach_document" string="附加文档" action="message_post"/>
<button name="duty_approval" string="发起申请" type="object" class="oe_highlight"/>
<field name="statu" widget="statusbar"/>
</header>
<sheet>
<div class="oe_title">
<label for="name"/>
@@ -34,37 +27,36 @@
</div>
<group>
<group>
<field name="department_id"/>
<field name="partner_id"/>
<field name="company_page"/>
</group>
<group>
<field name="date"/>
<field name="department_id"/>
</group>
<group>
<field name="users_id"/>
</group>
</group>
<notebook>
<page string="请假人明细">
<field name="duty_ids" string=" ">
<tree editable="bottom">
<field name="duty_id" column_invisible="1"/>
<field name="duty_user_id"/>
<field name="reason_application"/>
<field name="documents_ids" widget="many2many_tags"/>
<field name="date_start"/>
<field name="date_end"/>
<field name="duration"/>
<field name="validity"/>
</tree>
</field>
</page>
</notebook>
</sheet>
<div class="o_attachment_preview"/>
<div class="oe_chatter">
<field name="message_follower_ids" groups="base.group_user"/>
<field name="activity_ids"/>
<field name="message_ids"/>
</div>
</form>
</field>
</record>
<record id="duty_approval_search" model="ir.ui.view">
<field name="name">duty.approval.search</field>
<field name="model">duty.approval</field>
<field name="arch" type="xml">
<search string="考勤审批状态">
<filter string="草稿" name="Drft " domain="[('statu', '=', 'drft')]"/>
<filter string="执行中" name="Going " domain="[('statu', '=', 'going')]"/>
<filter string="已取消" name="Cancel " domain="[('statu', '=', 'cancel')]"/>
<filter string="已完成" name="Done " domain="[('statu', '=', 'done')]"/>
</search>
</field>
</record>
<record id="approval_request_duty" model="ir.actions.act_window">
<field name="name">值班</field>
<field name="res_model">duty.approval</field>
+23 -39
View File
@@ -6,11 +6,10 @@
<field name="model">go.approval</field>
<field name="arch" type="xml">
<tree>
<field name="name"/>
<field name="name"/>
<field name="company_page"/>
<field name="department_id"/>
<field name="partner_id"/>
<field name="date"/>
<field name="statu"/>
<field name="users_id"/>
</tree>
</field>
</record>
@@ -19,12 +18,7 @@
<field name="name">go.approval.actions</field>
<field name="model">go.approval</field>
<field name="arch" type="xml">
<form>
<header>
<widget name="attach_document" string="附加文档" action="message_post"/>
<button name="go_approval" string="发起申请" type="object" class="oe_highlight"/>
<field name="statu" widget="statusbar"/>
</header>
<form>
<sheet>
<div class="oe_title">
<label for="name"/>
@@ -34,44 +28,34 @@
</div>
<group>
<group>
<field name="department_id"/>
<field name="partner_id"/>
<field name="apply_unit"/>
<field name="date_start"/>
<field name="date_end"/>
<field name="company_page"/>
</group>
<group>
<field name="job_id"/>
<field name="missed_meal_charges"/>
<field name="user_sex"/>
<field name="leave_time"/>
<field name="date"/>
<field name="department_id"/>
</group>
<group>
<field name="users_id"/>
</group>
</group>
<notebook>
<page string="外出人明细">
<field name="go_approval_ids" string="">
<tree editable="bottom">
<field name="go_approval_id" column_invisible="1"/>
<field name="overtime_people"/>
<field name="reason_application"/>
<field name="documents_ids" widget="many2many_tags"/>
<field name="date_start"/>
<field name="date_end"/>
</tree>
</field>
</page>
</notebook>
</sheet>
<div class="o_attachment_preview"/>
<div class="oe_chatter">
<field name="message_follower_ids" groups="base.group_user"/>
<field name="activity_ids"/>
<field name="message_ids"/>
</div>
</form>
</field>
</record>
<record id="go_approval_search" model="ir.ui.view">
<field name="name">go.approval.search</field>
<field name="model">go.approval</field>
<field name="arch" type="xml">
<search string="考勤审批状态">
<filter string="草稿" name="Drft " domain="[('statu', '=', 'drft')]"/>
<filter string="执行中" name="Going " domain="[('statu', '=', 'going')]"/>
<filter string="已取消" name="Cancel " domain="[('statu', '=', 'cancel')]"/>
<filter string="已完成" name="Done " domain="[('statu', '=', 'done')]"/>
</search>
</field>
</record>
<record id="approval_request_going" model="ir.actions.act_window">
<field name="name">外出</field>
<field name="res_model">go.approval</field>
@@ -7,10 +7,9 @@
<field name="arch" type="xml">
<tree>
<field name="name"/>
<field name="company_page"/>
<field name="applicant_id"/>
<field name="department_id"/>
<field name="partner_id"/>
<field name="date"/>
<field name="statu"/>
</tree>
</field>
</record>
@@ -20,11 +19,9 @@
<field name="model">holidays.approval</field>
<field name="arch" type="xml">
<form>
<header>
<widget name="attach_document" string="附加文档" action="message_post"/>
<button name="holiday_approval" string="发起申请" type="object" class="oe_highlight"/>
<field name="statu" widget="statusbar"/>
</header>
<!-- <header>-->
<!-- <button name="holiday_approval" string="发起申请" type="object" class="oe_highlight"/>-->
<!-- </header>-->
<sheet>
<div class="oe_title">
<label for="name"/>
@@ -34,44 +31,39 @@
</div>
<group>
<group>
<field name="department_id"/>
<field name="partner_id"/>
<field name="date_start"/>
<field name="date_end"/>
<field name="company_page"/>
</group>
<group>
<field name="leave_category" widget="many2many_tags"/>
<field name="leave_days"/>
<field name="date"/>
<field name="department_id"/>
</group>
<group>
<field name="applicant_id"/>
</group>
</group>
<group>
<field name="main_text"/>
</group>
<notebook>
<page string="请假详情">
<field name="approvals_ids" string=" ">
<tree editable="bottom">
<field name="approvals_id" column_invisible="1"/>
<field name="leave_absence_id"/>
<field name="leave_category"/>
<field name="days_available"/>
<field name="applicants"/>
<field name="date_start"/>
<field name="date_end"/>
<field name="leave_days"/>
<field name="surplus_days"/>
<field name="main_text"/>
</tree>
</field>
<field name="documents_ids" widget="many2many_tags"/>
</page>
</notebook>
</sheet>
<div class="o_attachment_preview"/>
<div class="oe_chatter">
<field name="message_follower_ids" groups="base.group_user"/>
<field name="activity_ids"/>
<field name="message_ids"/>
</div>
</form>
</field>
</record>
<record id="holiday_approval_search" model="ir.ui.view">
<field name="name">holiday.approval.search</field>
<field name="model">holidays.approval</field>
<field name="arch" type="xml">
<search string="考勤审批状态">
<filter string="草稿" name="Drft " domain="[('statu', '=', 'drft')]"/>
<filter string="执行中" name="Going " domain="[('statu', '=', 'going')]"/>
<filter string="已取消" name="Cancel " domain="[('statu', '=', 'cancel')]"/>
<filter string="已完成" name="Done " domain="[('statu', '=', 'done')]"/>
</search>
</field>
</record>
<record id="approval_request_holiday" model="ir.actions.act_window">
<field name="name">请假</field>
<field name="res_model">holidays.approval</field>
@@ -7,14 +7,12 @@
<field name="arch" type="xml">
<tree>
<field name="name"/>
<field name="users_id"/>
<field name="company_page"/>
<field name="department_id"/>
<field name="partner_id"/>
<field name="date"/>
<field name="statu"/>
</tree>
</field>
</record>
<record id="overtime_approval_form" model="ir.ui.view">
<field name="name">overtime.approval.actions</field>
<field name="model">overtime.approval</field>
@@ -29,53 +27,32 @@
</div>
<group>
<group>
<field name="department_id"/>
<field name="overtime_department_id"/>
<field name="partner_id"/>
<field name="company_page"/>
</group>
<group>
<field name="date"/>
<field name="reason_application"/>
<field name="department_id"/>
</group>
<group>
<field name="users_id"/>
</group>
</group>
<notebook>
<page string="加班人员明细">
<field name="overtime_user_ids">
<page string="加班人明细行">
<field name="overtime_approval_ids">
<tree editable="bottom">
<field name="user_id"/>
<field name="start_time"/>
<field name="end_time"/>
<field name="overtime_approval_id" column_invisible="1"/>
<field name="overtime_people"/>
<field name="reason_application"/>
<field name="documents_ids" widget="many2many_tags"/>
<field name="overtime_hours"/>
<field name="type_overtime"/>
<field name="compensation_mode"/>
<field name="is_male_pay"/>
<button name="attendance_button" string="考勤信息" type="object" class="btn-primary"/>
</tree>
</field>
</page>
</notebook>
</sheet>
<div class="o_attachment_preview"/>
<div class="oe_chatter">
<field name="message_follower_ids" groups="base.group_user"/>
<field name="activity_ids"/>
<field name="message_ids"/>
</div>
</form>
</field>
</record>
<record id="overtime_approval_search" model="ir.ui.view">
<field name="name">overtime.approval.search</field>
<field name="model">overtime.approval</field>
<field name="arch" type="xml">
<search string="考勤审批状态">
<filter string="草稿" name="Drft " domain="[('statu', '=', 'drft')]"/>
<filter string="执行中" name="Going " domain="[('statu', '=', 'going')]"/>
<filter string="已取消" name="Cancel " domain="[('statu', '=', 'cancel')]"/>
<filter string="已完成" name="Done " domain="[('statu', '=', 'done')]"/>
</search>
</field>
</record>
<record id="approval_request_overtime" model="ir.actions.act_window">
<field name="name">加班</field>
@@ -104,10 +104,4 @@
<field name="padding">3</field>
</record>
<record id="yuthon_prepare_approval_code" model="ir.sequence">
<field name="name">编制调整需求表-编号</field>
<field name="code">yuthon_prepare_approval_code</field>
<field name="prefix">BZ%(y)s%(month)s%(day)s</field>
<field name="padding">3</field>
</record>
</odoo>
@@ -9,4 +9,4 @@ class YuthonEnrollmentApproval(models.Model):
name = fields.Char(string='名称')
code = fields.Char(string="编号",
default=lambda self: self.env['ir.sequence'].next_by_code('yuthon_enrollment_approval'))
default=lambda self: self.env['ir.sequence'].next_by_code('yuthon_enrollment_approval_code'))
@@ -10,7 +10,7 @@ class YuthonRewardApproval(models.Model):
name = fields.Char(string='名称')
code = fields.Char(string="编号",
default=lambda self: self.env['ir.sequence'].next_by_code('yuthon_prepare_approval_code'))
default=lambda self: self.env['ir.sequence'].next_by_code('yuthon_salary_approval_code'))
company_id = fields.Many2one("res.company", string="单位")
entrant = fields.Many2one('hr.employee', string="录入人")
entrant_date = fields.Date(string="录入日期")
@@ -62,7 +62,7 @@
<record id="yuthon_interview_approval_action" model="ir.actions.act_window">
<field name="name">面试申请表</field>
<field name="name">面试信息表</field>
<field name="res_model">yuthon.interview.approval</field>
<field name="view_mode">tree,form</field>
</record>
+1 -6
View File
@@ -7,12 +7,7 @@
<menuitem id="executive_manage_approval"
name="审批"
parent="yuthon_work_brand.executive_manage_union_root_board"
sequence="7"/>
<menuitem id="executive_manage_expenses"
name="费用"
parent="executive_manage_approval"
action="yuthon_trade_none_tree_action"
sequence="7"/>
sequence="11"/>
<menuitem id="executive_personal_condolences"
name="个人慰问"
+1
View File
@@ -29,6 +29,7 @@
'stock',
'resource',
'yuthon_hr_employee_approval',
'yuthon_hr_attendance',
'planning',
],
'data': [
+1 -1
View File
@@ -331,7 +331,7 @@
<menuitem id="menu_hr_attendance_scheme_request_board"
name="考勤方案"
parent="hr_attendance_root_board"
action="yuthon_none_action"
action="yuthon_hr_attendance.attendance_scheme_action"
sequence="1"/>
<menuitem id="menu_hr_attendance_plan_request_board"
name="考勤计划"