公文1.3 考勤1.0
This commit is contained in:
@@ -13,8 +13,7 @@
|
||||
'security/ir.model.access.csv',
|
||||
'data/approval_category_type_data.xml',
|
||||
'data/approval_group_data.xml',
|
||||
'views/generic_forms_overtime.xml',
|
||||
'views/wuguan_leave_registration_approval.xml',
|
||||
# 'views/generic_forms_overtime.xml',
|
||||
# 'views/tianhe_dsh_issues_declarations.xml',
|
||||
# 'views/tianhe_construction_business_approval.xml',
|
||||
# 'views/tianhe_management_declare_approval.xml',
|
||||
@@ -26,9 +25,9 @@
|
||||
# 'views/tianhe_property_submission_approval.xml',
|
||||
# 'views/tianhe_rental_receipt_approval.xml',
|
||||
# 'views/tianhe_meeting_file.xml',
|
||||
# 'views/generic_forms_replacement_card.xml',
|
||||
# 'views/generic_forms_outing.xml',
|
||||
# 'views/generic_forms_remove_holiday.xml',
|
||||
|
||||
|
||||
|
||||
# 'views/tianhe_dimission_approval.xml',
|
||||
# 'views/tianhe_tryout_official_approval.xml',
|
||||
# 'views/tianhe_exercitation_tryout_approval.xml',
|
||||
|
||||
@@ -62,26 +62,6 @@
|
||||
<field name="name">天河投资租赁合同收款单</field>
|
||||
<field name="approval_type">rental_receipt</field>
|
||||
</record>
|
||||
<!-- 公司通用表单- 补卡 -->
|
||||
<record id="approval_category_data_generic_forms_replacement_card" model="approval.category">
|
||||
<field name="name">补卡</field>
|
||||
<field name="approval_type">card_approval</field>
|
||||
</record>
|
||||
<!-- 公司通用表单- 加班 -->
|
||||
<record id="approval_category_data_generic_forms_overtime" model="approval.category">
|
||||
<field name="name">加班</field>
|
||||
<field name="approval_type">overtime_approval</field>
|
||||
</record>
|
||||
<!-- 公司通用表单- 外出 -->
|
||||
<record id="approval_category_data_generic_forms_outing" model="approval.category">
|
||||
<field name="name">外出</field>
|
||||
<field name="approval_type">go_approval</field>
|
||||
</record>
|
||||
<!-- 公司通用表单- 销假 -->
|
||||
<record id="approval_category_data_generic_forms_remove_holiday" model="approval.category">
|
||||
<field name="name">销假</field>
|
||||
<field name="approval_type">remove_holiday_approval</field>
|
||||
</record>
|
||||
<!-- 公司通用表单 - 通用离职表 -->
|
||||
<record id="approval_category_data_tianhe_dimission_approval" model="approval.category">
|
||||
<field name="name">离职表</field>
|
||||
@@ -167,11 +147,6 @@
|
||||
<field name="name">产权变更表申请表</field>
|
||||
<field name="approval_type">property_right_alter</field>
|
||||
</record>
|
||||
<!-- 天河物管 - 请假登记单 -->
|
||||
<record id="approval_category_data_wuguan_leave_registration_approval" model="approval.category">
|
||||
<field name="name">请假</field>
|
||||
<field name="approval_type">leave_registration</field>
|
||||
</record>
|
||||
<!-- 天河物管 - 物业管理变更申请表 -->
|
||||
<record id="approval_category_data_wuguan_property_management_application" model="approval.category">
|
||||
<field name="name">物业管理变更申请表</field>
|
||||
|
||||
@@ -1,8 +1,6 @@
|
||||
# -*- coding: utf-8 -*-
|
||||
from . import inherit_approval_category
|
||||
from . import inherit_approval_request
|
||||
from . import overtime_approval
|
||||
from . import holiday_approval
|
||||
# from . import tianhe_construction_business_approval
|
||||
# from . import tianhe_process_change_approval
|
||||
# from . import tianhe_contentious_matter_approval
|
||||
@@ -15,8 +13,6 @@ from . import holiday_approval
|
||||
# from . import tianhe_exercitation_tryout_approval
|
||||
# from . import tianhe_shift_registration_form
|
||||
# from . import tianhe_meeting_minutes_approval
|
||||
# from . import generic_forms_outing
|
||||
# from . import generic_forms_remove_holiday
|
||||
# from . import tianhe_dimission_approval
|
||||
# from . import tianhe_tryout_official_approval
|
||||
# from . import tianhe_exercitation_tryout_approval
|
||||
|
||||
@@ -1,13 +0,0 @@
|
||||
# -*- coding: utf-8 -*-
|
||||
from odoo import api, fields, models, tools
|
||||
from odoo.exceptions import ValidationError
|
||||
|
||||
|
||||
class GenericFormsOuting(models.Model):
|
||||
_inherit = "approval.request"
|
||||
_description = '公司通用表单——外出'
|
||||
|
||||
missed_meal_charges = fields.Char(string="误餐费")
|
||||
apply_unit = fields.Char(string="申请单位")
|
||||
|
||||
|
||||
@@ -1,13 +0,0 @@
|
||||
# -*- coding: utf-8 -*-
|
||||
from odoo import api, fields, models, tools
|
||||
from odoo.exceptions import ValidationError
|
||||
|
||||
|
||||
class GenericFormsRemoveHoliday(models.Model):
|
||||
_inherit = "approval.request"
|
||||
_description = '公司通用表单——销假'
|
||||
|
||||
entry_time = fields.Datetime(string="入职时间")
|
||||
type_remove_holiday = fields.Char(string="销假类型")
|
||||
|
||||
|
||||
@@ -1,23 +0,0 @@
|
||||
# -*- coding: utf-8 -*-
|
||||
from odoo import api, fields, models, tools
|
||||
from odoo.exceptions import ValidationError
|
||||
|
||||
|
||||
class GenericFormsReplacementCard(models.Model):
|
||||
_inherit = "approval.request"
|
||||
_description = '公司通用表单——补卡'
|
||||
|
||||
type_application = fields.Selection([
|
||||
('replacement_card', '补卡'),
|
||||
('overtime', '加班'),
|
||||
('outing', '外出'),
|
||||
('cancellation_of_fakes', '销假'),
|
||||
('Reassignment', '调岗'),
|
||||
('dimission', '离职'),
|
||||
('onboarding', '入职'),
|
||||
('regularization', '转正'),
|
||||
], string="申请类型")
|
||||
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="异常类型")
|
||||
@@ -1,24 +0,0 @@
|
||||
# -*- coding: utf-8 -*-
|
||||
from odoo import api, fields, models, tools, _
|
||||
from odoo.exceptions import ValidationError
|
||||
|
||||
|
||||
class WuguanLeaveRegistrationApproval(models.Model):
|
||||
_inherit = "approval.request"
|
||||
_description = '请假'
|
||||
|
||||
leave_category = fields.Many2many('holiday.setting', string="请假类别")
|
||||
leave_time = fields.Char(string="请假时间")
|
||||
leave_days = fields.Float(string='请假天数', compute='_compute_leave_days', store=True)
|
||||
|
||||
|
||||
@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
|
||||
@@ -20,12 +20,6 @@ class ApprovalCategory(models.Model):
|
||||
('document_processing', '文件处理表'),
|
||||
('property_submission', '物业部业务呈批表'),
|
||||
('rental_receipt', '租赁合同收款单'),
|
||||
('card_approval', '补卡审批'),
|
||||
('overtime_approval', '加班审批'),
|
||||
('go_approval', '外出审批'),
|
||||
('duty_approval', '值班审批'),
|
||||
('leave_approval', '调休审批'),
|
||||
('remove_holiday_approval', '销假审批'),
|
||||
('exit_form', '离职表'),
|
||||
('tryout_official', '试用期转正式员工'),
|
||||
('exercitation_tryout', '实习期转试用期'),
|
||||
@@ -34,7 +28,6 @@ class ApprovalCategory(models.Model):
|
||||
('meeting_minutes', '会议纪要'),
|
||||
('engineering', '工程立项'),
|
||||
('property_right_alter', '产权变更表申请表'),
|
||||
('leave_registration', '请假'),
|
||||
('tianhe_property_management_reporting', '物业经营报表管理'),
|
||||
('tianhe_fire_safety_management', '消防安全管理'),
|
||||
('tianhe_information_ublish_approval_form', '信息发布呈批表'),
|
||||
|
||||
@@ -1,4 +1,2 @@
|
||||
id,name,model_id:id,group_id:id,perm_read,perm_write,perm_create,perm_unlink
|
||||
access_approval_request_line,approval_request_line,model_approval_request_line,base.group_user,1,1,1,1
|
||||
access_overtime_user_line,approval_overtime_user_line,model_overtime_user_line,base.group_user,1,1,1,1
|
||||
|
||||
|
||||
|
@@ -1,24 +0,0 @@
|
||||
<?xml version="1.0" encoding="UTF-8" ?>
|
||||
<odoo>
|
||||
<record id="approvals_category_type_code_generic_forms_outing" model="ir.ui.view">
|
||||
<field name="name">approvals.category.type.code.generic.forms.outing</field>
|
||||
<field name="model">approval.request</field>
|
||||
<field name="inherit_id" ref="approvals.approval_request_view_form"/>
|
||||
<field name="arch" type="xml">
|
||||
<xpath expr="//field[@name='date_confirmed']" position="after">
|
||||
<!-- <field name="type_application" widget="radio" options="{'horizontal': true}" invisible="approval_category_name != 'generic_forms_outing'"/>-->
|
||||
<field name="date_start" invisible="approval_category_name != 'generic_forms_outing'"/>
|
||||
<field name="date_end" invisible="approval_category_name != 'generic_forms_outing'"/>
|
||||
<field name="approval_sex" widget="radio" options="{'horizontal': true}" invisible="approval_category_name != 'generic_forms_outing'"/>
|
||||
</xpath>
|
||||
<xpath expr="//field[@name='company_id']" position="after">
|
||||
<field name="job_id" invisible="approval_category_name != 'generic_forms_outing'"/>
|
||||
<field name="apply_unit" invisible="approval_category_name != 'generic_forms_outing'"/>
|
||||
<field name="missed_meal_charges" invisible="approval_category_name != 'generic_forms_outing'"/>
|
||||
<field name="reason_application" string="申请事由" invisible="approval_category_name != 'generic_forms_outing'"/>
|
||||
<field name="duration" string="外出申请时长" invisible="approval_category_name != 'generic_forms_outing'"/>
|
||||
</xpath>
|
||||
|
||||
</field>
|
||||
</record>
|
||||
</odoo>
|
||||
@@ -1,31 +0,0 @@
|
||||
<?xml version="1.0" encoding="UTF-8" ?>
|
||||
<odoo>
|
||||
<record id="approvals_category_type_code_overtime_approval" model="ir.ui.view">
|
||||
<field name="name">approvals.category.type.code.generic.forms.overtime</field>
|
||||
<field name="model">approval.request</field>
|
||||
<field name="inherit_id" ref="approvals.approval_request_view_form"/>
|
||||
<field name="arch" type="xml">
|
||||
<xpath expr="//field[@name='date_confirmed']" position="after">
|
||||
<field name="department_id" invisible="approval_category_name != 'overtime_approval'"/>
|
||||
<field name="overtime_department_id" invisible="approval_category_name != 'overtime_approval'"/>
|
||||
<field name="reason_application" string="申请事由" invisible="approval_category_name != 'overtime_approval'"/>
|
||||
</xpath>
|
||||
<xpath expr="//page[@name='approvers']" position="before">
|
||||
<page string="加班人员明细" invisible="approval_category_name != 'overtime_approval'">
|
||||
<field name="overtime_user_ids">
|
||||
<tree editable="bottom">
|
||||
<field name="user_id"/>
|
||||
<field name="start_time"/>
|
||||
<field name="end_time"/>
|
||||
<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>
|
||||
</xpath>
|
||||
</field>
|
||||
</record>
|
||||
</odoo>
|
||||
@@ -1,24 +0,0 @@
|
||||
<?xml version="1.0" encoding="UTF-8" ?>
|
||||
<odoo>
|
||||
<record id="approvals_category_type_code_generic_forms_remove_holiday" model="ir.ui.view">
|
||||
<field name="name">approvals.category.type.code.generic_forms_remove_holiday</field>
|
||||
<field name="model">approval.request</field>
|
||||
<field name="inherit_id" ref="approvals.approval_request_view_form"/>
|
||||
<field name="arch" type="xml">
|
||||
<xpath expr="//field[@name='date_confirmed']" position="after">
|
||||
<!-- <field name="type_application" widget="radio" options="{'horizontal': true}" invisible="approval_category_name != 'generic_forms_remove_holiday'"/>-->
|
||||
<field name="date_start" invisible="approval_category_name != 'generic_forms_remove_holiday'"/>
|
||||
<field name="date_end" invisible="approval_category_name != 'generic_forms_remove_holiday'"/>
|
||||
<field name="approval_sex" widget="radio" options="{'horizontal': true}" invisible="approval_category_name != 'generic_forms_remove_holiday'"/>
|
||||
</xpath>
|
||||
<xpath expr="//field[@name='company_id']" position="after">
|
||||
<field name="job_id" invisible="approval_category_name != 'generic_forms_remove_holiday'"/>
|
||||
<field name="entry_time" invisible="approval_category_name != 'generic_forms_remove_holiday'"/>
|
||||
<field name="type_remove_holiday" invisible="approval_category_name != 'generic_forms_remove_holiday'"/>
|
||||
<field name="reason_application" string="销假原因" invisible="approval_category_name != 'generic_forms_remove_holiday'"/>
|
||||
<field name="duration" string="销假时长" invisible="approval_category_name != 'generic_forms_remove_holiday'"/>
|
||||
</xpath>
|
||||
|
||||
</field>
|
||||
</record>
|
||||
</odoo>
|
||||
@@ -1,20 +0,0 @@
|
||||
<?xml version="1.0" encoding="UTF-8" ?>
|
||||
<odoo>
|
||||
<record id="approvals_category_type_code_generic_forms_replacement_card" model="ir.ui.view">
|
||||
<field name="name">approvals.category.type.code.generic.forms.replacement.card</field>
|
||||
<field name="model">approval.request</field>
|
||||
<field name="inherit_id" ref="approvals.approval_request_view_form"/>
|
||||
<field name="arch" type="xml">
|
||||
<xpath expr="//field[@name='date_confirmed']" position="after">
|
||||
<!-- <field name="type_application" widget="radio" options="{'horizontal': true}" invisible="approval_category_name != 'generic_forms_replacement_card'"/>-->
|
||||
<field name="replacement_time" invisible="approval_category_name != 'generic_forms_replacement_card'"/>
|
||||
</xpath>
|
||||
<xpath expr="//field[@name='company_id']" position="after">
|
||||
<field name="reason_application" invisible="approval_category_name != 'generic_forms_replacement_card'"/>
|
||||
<field name="type_of_exception" invisible="approval_category_name != 'generic_forms_replacement_card'"/>
|
||||
<field name="real_go_work_time" invisible="approval_category_name != 'generic_forms_replacement_card'"/>
|
||||
<field name="real_get_off_work_time" invisible="approval_category_name != 'generic_forms_replacement_card'"/>
|
||||
</xpath>
|
||||
</field>
|
||||
</record>
|
||||
</odoo>
|
||||
@@ -1,22 +0,0 @@
|
||||
<?xml version="1.0" encoding="UTF-8" ?>
|
||||
<odoo>
|
||||
<record id="approvals_category_type_code_leave_registration" model="ir.ui.view">
|
||||
<field name="name">approvals.category.type.code.leave.registration</field>
|
||||
<field name="model">approval.request</field>
|
||||
<field name="inherit_id" ref="approvals.approval_request_view_form"/>
|
||||
<field name="arch" type="xml">
|
||||
<xpath expr="//field[@name='date_confirmed']" position="after">
|
||||
<field name="leave_category" widget="many2many_tags" invisible="approval_category_name != 'leave_registration'"/>
|
||||
|
||||
<field name="date_start" string="请假开始时间" invisible="approval_category_name != 'leave_registration'"/>
|
||||
<field name="date_end" string="请假结束时间" invisible="approval_category_name != 'leave_registration'"/>
|
||||
<field name="leave_days" invisible="approval_category_name != 'leave_registration'"/>
|
||||
</xpath>
|
||||
<xpath expr="//field[@name='company_id']" position="after">
|
||||
<field name="department_id" invisible="approval_category_name != 'leave_registration'"/>
|
||||
<field name="creation_time" invisible="approval_category_name != 'leave_registration'"/>
|
||||
<field name="main_text" string="申请事由" invisible="approval_category_name != 'leave_registration'"/>
|
||||
</xpath>
|
||||
</field>
|
||||
</record>
|
||||
</odoo>
|
||||
@@ -12,13 +12,21 @@
|
||||
'category': 'Human Resources/Attendances',
|
||||
'sequence': 240,
|
||||
'website': 'https://www.pengyuthon.com',
|
||||
'depends': ['hr_attendance', 'resource', 'approvals', 'base', 'hr'],
|
||||
'depends': ['hr_attendance', 'resource', 'approvals', 'base', 'hr', 'mail'],
|
||||
'data': [
|
||||
'security/ir.model.access.csv',
|
||||
'security/approval_attendance.xml',
|
||||
'views/inherit_hr_employee_views.xml',
|
||||
'views/hr_attendance_views.xml',
|
||||
'views/resource_calendar_leaves_views.xml',
|
||||
'views/overtime_approval.xml',
|
||||
'views/go_approval.xml',
|
||||
'views/duty_approval.xml',
|
||||
'views/leave_approval.xml',
|
||||
'views/holidays_approval.xml',
|
||||
'views/remove_holiday_approval.xml',
|
||||
'views/card_approval.xml',
|
||||
'views/all_attendance_menu.xml',
|
||||
],
|
||||
'installable': True,
|
||||
'application': True,
|
||||
|
||||
@@ -0,0 +1,34 @@
|
||||
<?xml version="1.0" encoding="UTF-8" ?>
|
||||
<odoo>
|
||||
<date noupdate="1">
|
||||
<!-- 公司通用表单- 加班 -->
|
||||
<record id="approval_overtime_data" model="overtime.approval">
|
||||
<field name="name">加班申请</field>
|
||||
</record>
|
||||
|
||||
<!-- 公司通用表单- 外出 -->
|
||||
<record id="go_approval_data" model="go.approval">
|
||||
<field name="name">外出申请</field>
|
||||
</record>
|
||||
|
||||
<!-- 公司通用表单- 调休 -->
|
||||
<record id="approval_approval_data" model="go.approval">
|
||||
<field name="name">调休申请</field>
|
||||
</record>
|
||||
|
||||
<!-- 公司通用表单- 请假 -->
|
||||
<record id="approval_approval_holidays" model="holidays.approval">
|
||||
<field name="name">请假申请</field>
|
||||
</record>
|
||||
|
||||
<!-- 公司通用表单- 销假 -->
|
||||
<record id="approval_approval_remove_holidays" model="remove.holidays.approval">
|
||||
<field name="name">销假申请</field>
|
||||
</record>
|
||||
|
||||
<!-- 公司通用表单- 补卡 -->
|
||||
<record id="approval_approval_card" model="card.approval">
|
||||
<field name="name">补卡申请</field>
|
||||
</record>
|
||||
</date>
|
||||
</odoo>
|
||||
@@ -2,5 +2,13 @@
|
||||
|
||||
from . import hr_attendance
|
||||
from . import resource_calendar_leaves
|
||||
from . import attendance_category
|
||||
from . import hr_employee
|
||||
from . import overtime_approval
|
||||
from . import go_approval
|
||||
from . import duty_approval
|
||||
from . import leave_approval
|
||||
from . import holidays_approval
|
||||
from . import remove_holiday_approval
|
||||
from . import card_approval
|
||||
|
||||
|
||||
@@ -0,0 +1,17 @@
|
||||
# -*- coding: utf-8 -*-
|
||||
from odoo import api, fields, models, tools
|
||||
from odoo.exceptions import ValidationError, UserError
|
||||
|
||||
|
||||
class ApprovalCategory(models.Model):
|
||||
_inherit = 'approval.category'
|
||||
_description = '考勤审批'
|
||||
|
||||
approval_type = fields.Selection(selection_add=[
|
||||
('card_approval', '补卡审批'),
|
||||
('overtime_approval', '加班审批'),
|
||||
('go_approval', '外出审批'),
|
||||
('duty_approval', '值班审批'),
|
||||
('leave_approval', '调休审批'),
|
||||
('leave_registration', '请假'),
|
||||
('remove_holiday_approval', '销假审批')])
|
||||
@@ -0,0 +1,25 @@
|
||||
# -*- coding: utf-8 -*-
|
||||
from odoo import api, fields, models, tools, _
|
||||
from datetime import datetime, time, timedelta
|
||||
|
||||
|
||||
class CardApprovals(models.Model):
|
||||
_name = 'card.approval'
|
||||
_description = "补卡审批"
|
||||
_inherit = ['mail.thread.main.attachment', 'mail.activity.mixin']
|
||||
_rec_name = 'name'
|
||||
|
||||
name = fields.Char('名称')
|
||||
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="申请事由")
|
||||
|
||||
def card_approval(self):
|
||||
pass
|
||||
@@ -0,0 +1,20 @@
|
||||
# -*- coding: utf-8 -*-
|
||||
from odoo import api, fields, models, tools, _
|
||||
from datetime import datetime, time, timedelta
|
||||
|
||||
|
||||
class DutyApprovals(models.Model):
|
||||
_name = 'duty.approval'
|
||||
_description = "值班审批"
|
||||
_inherit = ['mail.thread.main.attachment', 'mail.activity.mixin']
|
||||
_rec_name = 'name'
|
||||
|
||||
name = fields.Char('名称')
|
||||
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')
|
||||
|
||||
def duty_approval(self):
|
||||
pass
|
||||
@@ -0,0 +1,38 @@
|
||||
# -*- coding: utf-8 -*-
|
||||
from odoo import api, fields, models, tools, _
|
||||
from datetime import datetime, time, timedelta
|
||||
|
||||
|
||||
class GoApprovals(models.Model):
|
||||
_name = 'go.approval'
|
||||
_description = "外出审批"
|
||||
_inherit = ['mail.thread.main.attachment', 'mail.activity.mixin']
|
||||
_rec_name = 'name'
|
||||
|
||||
name = fields.Char('名称')
|
||||
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="性别")
|
||||
role_id = fields.Many2one('yuthon.user.role', 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="申请单位")
|
||||
|
||||
@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
|
||||
@@ -0,0 +1,37 @@
|
||||
# -*- coding: utf-8 -*-
|
||||
from odoo import api, fields, models, tools, _
|
||||
from datetime import datetime, time, timedelta
|
||||
|
||||
|
||||
class HolidaysApprovals(models.Model):
|
||||
_name = 'holidays.approval'
|
||||
_description = "请假审批"
|
||||
_inherit = ['mail.thread.main.attachment', 'mail.activity.mixin']
|
||||
_rec_name = 'name'
|
||||
|
||||
name = fields.Char('名称')
|
||||
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')
|
||||
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='申请事由')
|
||||
|
||||
@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 holiday_approval(self):
|
||||
pass
|
||||
@@ -0,0 +1,20 @@
|
||||
# -*- coding: utf-8 -*-
|
||||
from odoo import api, fields, models, tools, _
|
||||
from datetime import datetime, time, timedelta
|
||||
|
||||
|
||||
class LeaveApprovals(models.Model):
|
||||
_name = 'leave.approval'
|
||||
_description = "调休审批"
|
||||
_inherit = ['mail.thread.main.attachment', 'mail.activity.mixin']
|
||||
_rec_name = 'name'
|
||||
|
||||
name = fields.Char('名称')
|
||||
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')
|
||||
|
||||
def leave_approval(self):
|
||||
pass
|
||||
+15
-2
@@ -4,15 +4,25 @@ from datetime import datetime, time, timedelta
|
||||
|
||||
|
||||
class OvertimeApprovals(models.Model):
|
||||
_inherit = 'approval.request'
|
||||
_name = 'overtime.approval'
|
||||
_description = "加班审批"
|
||||
_inherit = ['mail.thread.main.attachment', 'mail.activity.mixin']
|
||||
_rec_name = 'name'
|
||||
|
||||
name = fields.Char(string="名称", default="加班申请")
|
||||
overtime_department_id = fields.Many2one('hr.department', string="加班部门")
|
||||
overtime_user_ids = fields.One2many('overtime.user.line', 'approval_request_id', 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_approval_ids = fields.Many2one('approval.request', string='关联审批')
|
||||
|
||||
@api.onchange('overtime_department_id')
|
||||
def onchange_overtime_users(self):
|
||||
if self.approval_category_name == 'overtime_approval':
|
||||
if self.overtime_approval_ids.approval_category_name == 'overtime_approval':
|
||||
users_data_list = []
|
||||
default_datetime = datetime.combine(datetime.now().date(), time(hour=17, minute=30)) - timedelta(hours=8),
|
||||
users_list = []
|
||||
@@ -42,6 +52,9 @@ class OvertimeApprovals(models.Model):
|
||||
}))
|
||||
over.overtime_user_ids = users_data_list
|
||||
|
||||
def go_overtime_approval(self):
|
||||
pass
|
||||
|
||||
|
||||
class OvertimeUserLine(models.Model):
|
||||
_name = 'overtime.user.line'
|
||||
@@ -0,0 +1,27 @@
|
||||
# -*- coding: utf-8 -*-
|
||||
from odoo import api, fields, models, tools, _
|
||||
from datetime import datetime, time, timedelta
|
||||
|
||||
|
||||
class RemoveHolidayApprovals(models.Model):
|
||||
_name = 'remove.holiday.approval'
|
||||
_description = "销假审批"
|
||||
_inherit = ['mail.thread.main.attachment', 'mail.activity.mixin']
|
||||
_rec_name = 'name'
|
||||
|
||||
name = fields.Char('名称')
|
||||
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')
|
||||
entry_time = fields.Datetime(string="入职时间")
|
||||
type_remove_holiday = fields.Char(string="销假类型")
|
||||
user_sex = fields.Selection([('girl', '女'), ('boy', '男')], string="性别")
|
||||
role_id = fields.Many2one('yuthon.user.role', string="岗位")
|
||||
date_start = fields.Datetime(string="开始时间", default=fields.Datetime.now)
|
||||
date_end = fields.Datetime(string="结束时间")
|
||||
reason_application = fields.Char(string="申请事由")
|
||||
|
||||
def remove_holiday_approval(self):
|
||||
pass
|
||||
@@ -1,3 +1,10 @@
|
||||
id,name,model_id:id,group_id:id,perm_read,perm_write,perm_create,perm_unlink
|
||||
access_resource_calendar_holiday,access.resource.calendar.holiday,model_resource_calendar_holiday,base.group_user,1,1,1,1
|
||||
access_overtime_approval,access.overtime.approval,model_overtime_approval,base.group_user,1,1,1,1
|
||||
access_go_approval,access.go.approval,model_go_approval,base.group_user,1,1,1,1
|
||||
access_duty_approval,access.duty.approval,model_duty_approval,base.group_user,1,1,1,1
|
||||
access_leave_approval,access.leave.approval,model_leave_approval,base.group_user,1,1,1,1
|
||||
access_holidays_approval,access.holidays.approval,model_holidays_approval,base.group_user,1,1,1,1
|
||||
access_remove_holiday_approval,access.remove.holiday.approval,model_remove_holiday_approval,base.group_user,1,1,1,1
|
||||
access_card_approval,access.card.approval,model_card_approval,base.group_user,1,1,1,1
|
||||
|
||||
|
||||
|
@@ -0,0 +1,26 @@
|
||||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<odoo>
|
||||
<menuitem id="menu_hr_attendance_manager" name="经理" parent="hr_attendance.menu_hr_attendance_root" sequence="14"/>
|
||||
<menuitem id="menu_hr_attendance_manager_going" name="出勤" parent="menu_hr_attendance_manager" sequence="1"
|
||||
action="view_attendance_going_action"/>
|
||||
<!-- !!!!! -->
|
||||
<menuitem id="menu_hr_attendance_approval_request" name="考勤审批记录"
|
||||
parent="hr_attendance.menu_hr_attendance_root" sequence="13"/>
|
||||
<menuitem id="menu_hr_attendance_overtime" name="加班申请"
|
||||
parent="menu_hr_attendance_approval_request" sequence="3" action="approval_request_overtime"/>
|
||||
<menuitem id="menu_hr_attendance_going" name="外出申请"
|
||||
parent="menu_hr_attendance_approval_request" sequence="4" action="approval_request_going"/>
|
||||
<menuitem id="menu_hr_attendance_duty" name="值班申请" parent="menu_hr_attendance_approval_request"
|
||||
sequence="5" action="approval_request_duty"/>
|
||||
<menuitem id="menu_hr_attendance_leave" name="调休申请"
|
||||
parent="menu_hr_attendance_approval_request" sequence="6" action="approval_request_leave"/>
|
||||
<menuitem id="menu_hr_attendance_holiday" name="请假申请"
|
||||
parent="menu_hr_attendance_approval_request" sequence="8" action="approval_request_holiday"/>
|
||||
<menuitem id="menu_hr_attendance_remove_holiday" name="销假申请"
|
||||
parent="menu_hr_attendance_approval_request" sequence="10" action="approval_request_remove_holiday"/>
|
||||
<menuitem id="menu_hr_attendance_remove_card" name="补卡申请"
|
||||
parent="menu_hr_attendance_approval_request" sequence="12" action="approval_request_card"/>
|
||||
<!-- <!– !!!!! –>-->
|
||||
<menuitem id="menu_hr_attendance_work" name="考勤时间表配置" parent="hr_attendance.menu_hr_attendance_root"
|
||||
sequence="18" action="resource.action_resource_calendar_form"/>
|
||||
</odoo>
|
||||
@@ -0,0 +1,72 @@
|
||||
<?xml version="1.0" encoding="UTF-8" ?>
|
||||
<odoo>
|
||||
|
||||
<record id="card_approval_tree" model="ir.ui.view">
|
||||
<field name="name">card.approval.tree</field>
|
||||
<field name="model">card.approval</field>
|
||||
<field name="arch" type="xml">
|
||||
<tree>
|
||||
<field name="name"/>
|
||||
<field name="department_id"/>
|
||||
<field name="partner_id"/>
|
||||
<field name="date"/>
|
||||
<field name="statu"/>
|
||||
</tree>
|
||||
</field>
|
||||
</record>
|
||||
|
||||
<record id="card_approval_form" model="ir.ui.view">
|
||||
<field name="name">card.approval.actions</field>
|
||||
<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>
|
||||
<div class="oe_title">
|
||||
<label for="name"/>
|
||||
<h1>
|
||||
<field name="name" required="1"/>
|
||||
</h1>
|
||||
</div>
|
||||
<group>
|
||||
<group>
|
||||
<field name="department_id"/>
|
||||
<field name="partner_id"/>
|
||||
<field name="replacement_time"/>
|
||||
<field name="type_of_exception"/>
|
||||
</group>
|
||||
<group>
|
||||
<field name="real_go_work_time"/>
|
||||
<field name="real_get_off_work_time"/>
|
||||
<field name="reason_application"/>
|
||||
<field name="date"/>
|
||||
</group>
|
||||
</group>
|
||||
</sheet>
|
||||
</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>
|
||||
<field name="view_mode">tree,form</field>
|
||||
</record>
|
||||
</odoo>
|
||||
@@ -0,0 +1,67 @@
|
||||
<?xml version="1.0" encoding="UTF-8" ?>
|
||||
<odoo>
|
||||
|
||||
<record id="duty_approval_tree" model="ir.ui.view">
|
||||
<field name="name">duty.approval.tree</field>
|
||||
<field name="model">duty.approval</field>
|
||||
<field name="arch" type="xml">
|
||||
<tree>
|
||||
<field name="name"/>
|
||||
<field name="department_id"/>
|
||||
<field name="partner_id"/>
|
||||
<field name="date"/>
|
||||
<field name="statu"/>
|
||||
</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"/>
|
||||
<h1>
|
||||
<field name="name" required="1"/>
|
||||
</h1>
|
||||
</div>
|
||||
<group>
|
||||
<group>
|
||||
<field name="department_id"/>
|
||||
<field name="partner_id"/>
|
||||
</group>
|
||||
<group>
|
||||
<field name="date"/>
|
||||
</group>
|
||||
</group>
|
||||
</sheet>
|
||||
</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>
|
||||
<field name="view_mode">tree,form</field>
|
||||
</record>
|
||||
</odoo>
|
||||
@@ -0,0 +1,74 @@
|
||||
<?xml version="1.0" encoding="UTF-8" ?>
|
||||
<odoo>
|
||||
|
||||
<record id="go_approval_tree" model="ir.ui.view">
|
||||
<field name="name">go.approval.tree</field>
|
||||
<field name="model">go.approval</field>
|
||||
<field name="arch" type="xml">
|
||||
<tree>
|
||||
<field name="name"/>
|
||||
<field name="department_id"/>
|
||||
<field name="partner_id"/>
|
||||
<field name="date"/>
|
||||
<field name="statu"/>
|
||||
</tree>
|
||||
</field>
|
||||
</record>
|
||||
|
||||
<record id="go_approval_form" model="ir.ui.view">
|
||||
<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>
|
||||
<sheet>
|
||||
<div class="oe_title">
|
||||
<label for="name"/>
|
||||
<h1>
|
||||
<field name="name" required="1"/>
|
||||
</h1>
|
||||
</div>
|
||||
<group>
|
||||
<group>
|
||||
<field name="department_id"/>
|
||||
<field name="partner_id"/>
|
||||
<field name="apply_unit"/>
|
||||
<field name="date_start"/>
|
||||
<field name="date_end"/>
|
||||
</group>
|
||||
<group>
|
||||
<field name="role_id"/>
|
||||
<field name="missed_meal_charges"/>
|
||||
<field name="user_sex"/>
|
||||
<field name="leave_time"/>
|
||||
<field name="date"/>
|
||||
</group>
|
||||
</group>
|
||||
</sheet>
|
||||
</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>
|
||||
<field name="view_mode">tree,form</field>
|
||||
</record>
|
||||
</odoo>
|
||||
@@ -0,0 +1,74 @@
|
||||
<?xml version="1.0" encoding="UTF-8" ?>
|
||||
<odoo>
|
||||
|
||||
<record id="holiday_approval_tree" model="ir.ui.view">
|
||||
<field name="name">holiday.approval.tree</field>
|
||||
<field name="model">holidays.approval</field>
|
||||
<field name="arch" type="xml">
|
||||
<tree>
|
||||
<field name="name"/>
|
||||
<field name="department_id"/>
|
||||
<field name="partner_id"/>
|
||||
<field name="date"/>
|
||||
<field name="statu"/>
|
||||
</tree>
|
||||
</field>
|
||||
</record>
|
||||
|
||||
<record id="holiday_approval_form" model="ir.ui.view">
|
||||
<field name="name">holiday.approval.actions</field>
|
||||
<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>
|
||||
<sheet>
|
||||
<div class="oe_title">
|
||||
<label for="name"/>
|
||||
<h1>
|
||||
<field name="name" required="1"/>
|
||||
</h1>
|
||||
</div>
|
||||
<group>
|
||||
<group>
|
||||
<field name="department_id"/>
|
||||
<field name="partner_id"/>
|
||||
<field name="date_start"/>
|
||||
<field name="date_end"/>
|
||||
</group>
|
||||
<group>
|
||||
<field name="leave_category" widget="many2many_tags"/>
|
||||
<field name="leave_days"/>
|
||||
<field name="date"/>
|
||||
</group>
|
||||
</group>
|
||||
<group>
|
||||
<field name="main_text"/>
|
||||
</group>
|
||||
</sheet>
|
||||
</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>
|
||||
<field name="view_mode">tree,form</field>
|
||||
</record>
|
||||
</odoo>
|
||||
@@ -33,25 +33,4 @@
|
||||
<field name="res_model">hr.attendance</field>
|
||||
<field name="view_mode">tree,form</field>
|
||||
</record>
|
||||
|
||||
<!-- Menus -->
|
||||
<menuitem id="menu_hr_attendance_manager" name="经理" parent="hr_attendance.menu_hr_attendance_root" sequence="12"/>
|
||||
<menuitem id="menu_hr_attendance_manager_going" name="出勤" parent="menu_hr_attendance_manager" sequence="1"
|
||||
action="view_attendance_going_action"/>
|
||||
<!-- !!!!! -->
|
||||
<menuitem id="menu_hr_attendance_approval_request" name="考勤审批记录"
|
||||
parent="hr_attendance.menu_hr_attendance_root" sequence="13"/>
|
||||
<menuitem id="menu_hr_attendance_overtime" name="加班申请"
|
||||
parent="menu_hr_attendance_approval_request" sequence="3" action="approval_request_overtime"/>
|
||||
<menuitem id="menu_hr_attendance_going" name="外出申请"
|
||||
parent="menu_hr_attendance_approval_request" sequence="4" action="approval_request_going"/>
|
||||
<menuitem id="menu_hr_attendance_duty" name="值班申请" parent="menu_hr_attendance_approval_request"
|
||||
sequence="5" action="approval_request_duty"/>
|
||||
<menuitem id="menu_hr_attendance_leave" name="调休申请"
|
||||
parent="menu_hr_attendance_approval_request" sequence="6" action="approval_request_leave"/>
|
||||
<menuitem id="menu_hr_attendance_holiday" name="请假申请"
|
||||
parent="menu_hr_attendance_approval_request" sequence="8" action="approval_request_holiday"/>
|
||||
<!-- !!!!! -->
|
||||
<menuitem id="menu_hr_attendance_work" name="考勤时间表配置" parent="hr_attendance.menu_hr_attendance_root"
|
||||
sequence="18" action="resource.action_resource_calendar_form"/>
|
||||
</odoo>
|
||||
|
||||
@@ -0,0 +1,67 @@
|
||||
<?xml version="1.0" encoding="UTF-8" ?>
|
||||
<odoo>
|
||||
|
||||
<record id="leave_approval_tree" model="ir.ui.view">
|
||||
<field name="name">leave.approval.tree</field>
|
||||
<field name="model">leave.approval</field>
|
||||
<field name="arch" type="xml">
|
||||
<tree>
|
||||
<field name="name"/>
|
||||
<field name="department_id"/>
|
||||
<field name="partner_id"/>
|
||||
<field name="date"/>
|
||||
<field name="statu"/>
|
||||
</tree>
|
||||
</field>
|
||||
</record>
|
||||
|
||||
<record id="leave_approval_form" model="ir.ui.view">
|
||||
<field name="name">leave.approval.actions</field>
|
||||
<field name="model">leave.approval</field>
|
||||
<field name="arch" type="xml">
|
||||
<form>
|
||||
<header>
|
||||
<widget name="attach_document" string="附加文档" action="message_post"/>
|
||||
<button name="leave_approval" string="发起申请" type="object" class="oe_highlight"/>
|
||||
<field name="statu" widget="statusbar"/>
|
||||
</header>
|
||||
<sheet>
|
||||
<div class="oe_title">
|
||||
<label for="name"/>
|
||||
<h1>
|
||||
<field name="name" required="1"/>
|
||||
</h1>
|
||||
</div>
|
||||
<group>
|
||||
<group>
|
||||
<field name="department_id"/>
|
||||
<field name="partner_id"/>
|
||||
</group>
|
||||
<group>
|
||||
<field name="date"/>
|
||||
</group>
|
||||
</group>
|
||||
</sheet>
|
||||
</form>
|
||||
</field>
|
||||
</record>
|
||||
|
||||
<record id="leave_approval_search" model="ir.ui.view">
|
||||
<field name="name">leave.approval.search</field>
|
||||
<field name="model">leave.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_leave" model="ir.actions.act_window">
|
||||
<field name="name">调休</field>
|
||||
<field name="res_model">leave.approval</field>
|
||||
<field name="view_mode">tree,form</field>
|
||||
</record>
|
||||
</odoo>
|
||||
@@ -0,0 +1,84 @@
|
||||
<?xml version="1.0" encoding="UTF-8" ?>
|
||||
<odoo>
|
||||
|
||||
<record id="overtime_approval_tree" model="ir.ui.view">
|
||||
<field name="name">overtime.approval.tree</field>
|
||||
<field name="model">overtime.approval</field>
|
||||
<field name="arch" type="xml">
|
||||
<tree>
|
||||
<field name="name"/>
|
||||
<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>
|
||||
<field name="arch" type="xml">
|
||||
<form>
|
||||
<header>
|
||||
<widget name="attach_document" string="附加文档" action="message_post"/>
|
||||
<button name="go_overtime_approval" string="发起申请" type="object" class="oe_highlight"/>
|
||||
<field name="statu" widget="statusbar"/>
|
||||
</header>
|
||||
<sheet>
|
||||
<div class="oe_title">
|
||||
<label for="name"/>
|
||||
<h1>
|
||||
<field name="name" required="1"/>
|
||||
</h1>
|
||||
</div>
|
||||
<group>
|
||||
<group>
|
||||
<field name="department_id"/>
|
||||
<field name="overtime_department_id"/>
|
||||
<field name="partner_id"/>
|
||||
</group>
|
||||
<group>
|
||||
<field name="date"/>
|
||||
<field name="reason_application"/>
|
||||
</group>
|
||||
</group>
|
||||
<notebook>
|
||||
<page string="加班人员明细">
|
||||
<field name="overtime_user_ids">
|
||||
<tree editable="bottom">
|
||||
<field name="user_id"/>
|
||||
<field name="start_time"/>
|
||||
<field name="end_time"/>
|
||||
<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>
|
||||
</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>
|
||||
<field name="res_model">overtime.approval</field>
|
||||
<field name="view_mode">tree,form</field>
|
||||
</record>
|
||||
</odoo>
|
||||
@@ -0,0 +1,74 @@
|
||||
<?xml version="1.0" encoding="UTF-8" ?>
|
||||
<odoo>
|
||||
|
||||
<record id="remove_holiday_approval_tree" model="ir.ui.view">
|
||||
<field name="name">remove.holiday.approval.tree</field>
|
||||
<field name="model">remove.holiday.approval</field>
|
||||
<field name="arch" type="xml">
|
||||
<tree>
|
||||
<field name="name"/>
|
||||
<field name="department_id"/>
|
||||
<field name="partner_id"/>
|
||||
<field name="date"/>
|
||||
<field name="statu"/>
|
||||
</tree>
|
||||
</field>
|
||||
</record>
|
||||
|
||||
<record id="remove_holiday_approval_form" model="ir.ui.view">
|
||||
<field name="name">remove.holiday.approval.actions</field>
|
||||
<field name="model">remove.holiday.approval</field>
|
||||
<field name="arch" type="xml">
|
||||
<form>
|
||||
<header>
|
||||
<widget name="attach_document" string="附加文档" action="message_post"/>
|
||||
<button name="remove_holiday_approval" string="发起申请" type="object" class="oe_highlight"/>
|
||||
<field name="statu" widget="statusbar"/>
|
||||
</header>
|
||||
<sheet>
|
||||
<div class="oe_title">
|
||||
<label for="name"/>
|
||||
<h1>
|
||||
<field name="name" required="1"/>
|
||||
</h1>
|
||||
</div>
|
||||
<group>
|
||||
<group>
|
||||
<field name="department_id"/>
|
||||
<field name="partner_id"/>
|
||||
<field name="entry_time"/>
|
||||
<field name="type_remove_holiday"/>
|
||||
<field name="user_sex"/>
|
||||
</group>
|
||||
<group>
|
||||
<field name="date_start"/>
|
||||
<field name="date_end"/>
|
||||
<field name="date"/>
|
||||
</group>
|
||||
</group>
|
||||
<group>
|
||||
<field name="reason_application"/>
|
||||
</group>
|
||||
</sheet>
|
||||
</form>
|
||||
</field>
|
||||
</record>
|
||||
<record id="remove_holiday_approval_search" model="ir.ui.view">
|
||||
<field name="name">remove.holiday.approval.search</field>
|
||||
<field name="model">remove.holiday.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_remove_holiday" model="ir.actions.act_window">
|
||||
<field name="name">销假</field>
|
||||
<field name="res_model">remove.holiday.approval</field>
|
||||
<field name="view_mode">tree,form</field>
|
||||
</record>
|
||||
</odoo>
|
||||
@@ -19,7 +19,8 @@ class YuthonOfficial(models.Model):
|
||||
('financing_post', '投融资发文'),
|
||||
('official_account_cloud_sms_post_submission', '公众号/云短信发文呈批'),
|
||||
('post_submission', '发文呈批'),
|
||||
], default='official_issues', string="发文类型")
|
||||
('official_receipt', '公文收文'),
|
||||
], default='official_issues', string="公文类型")
|
||||
official_type = fields.Selection([('receipt', '收文'), ('post', '发文')], string="公文类型")
|
||||
reference_cold = fields.Integer(string="公文字号")
|
||||
major_event_category = fields.Integer(string="重大事项所属类别")
|
||||
@@ -31,10 +32,12 @@ class YuthonOfficial(models.Model):
|
||||
main_flats = fields.Char(string="主送")
|
||||
servings_number = fields.Integer(string="份数")
|
||||
urgency = fields.Selection([('normal', '一般'), ('urgent', '紧急'), ('extra_urgent', '特急')], string="紧急程度")
|
||||
secret_level = fields.Selection([('normal', '一般'), ('urgent', '秘密'), ('secret', '机密'), ('so_secret', '绝密')], string="密级")
|
||||
date = fields.Datetime(string="日期")
|
||||
secret_level = fields.Selection([('normal', '一般'), ('urgent', '秘密'), ('secret', '机密'), ('so_secret', '绝密')],
|
||||
string="密级")
|
||||
date = fields.Datetime(string="日期", default=fields.Datetime.now)
|
||||
department_id = fields.Many2one('hr.department', string="申请人部门")
|
||||
statu = fields.Selection([('drft', '草稿'), ('going', '执行中'), ('cancel', '已取消'), ('done', '已完成')], string="状态")
|
||||
statu = fields.Selection([('drft', '草稿'), ('going', '执行中'), ('cancel', '已取消'), ('done', '已完成')], string="状态",
|
||||
default='drft')
|
||||
|
||||
def go_official_approval(self):
|
||||
pass
|
||||
|
||||
@@ -42,22 +42,20 @@
|
||||
<field name="official_ids" invisible="1"/>
|
||||
<field name="document_number"
|
||||
invisible="send_type not in ['general_party_branch_post','party_branch_committee_post','financing_post']"/>
|
||||
<field name="partner_id" invisible="send_type != 'official_issues_for_son'"/>
|
||||
<field name="partner_id" invisible="send_type not in ['official_issues_for_son','official_receipt']"/>
|
||||
<field name="reference_cold" invisible="send_type != 'post_submission'"/>
|
||||
<field name="major_event_category" invisible="send_type != 'post_submission'"/>
|
||||
<field name="urgency"
|
||||
invisible="send_type in ['official_account_cloud_sms_post_submission','post_submission']"/>
|
||||
<field name="secret_level"
|
||||
invisible="send_type in ['official_account_cloud_sms_post_submission','post_submission']"/>
|
||||
<field name="date"
|
||||
invisible="send_type in ['official_account_cloud_sms_post_submission','post_submission']"/>
|
||||
<field name="date"/>
|
||||
<field name="send_type"/>
|
||||
</group>
|
||||
<group>
|
||||
<field name="department_id"
|
||||
invisible="send_type in ['official_account_cloud_sms_post_submission','post_submission','official_issues']"/>
|
||||
<field name="department_id"/>
|
||||
<field name="come_file_id"
|
||||
invisible="send_type not in ['official_issues','official_issues_for_son']"/>
|
||||
invisible="send_type not in ['official_issues','official_issues_for_son','official_receipt']"/>
|
||||
<field name="main_flats"
|
||||
invisible="send_type in ['official_account_cloud_sms_post_submission','official_issues_for_son']"/>
|
||||
<field name="servings_number"
|
||||
@@ -66,7 +64,7 @@
|
||||
</group>
|
||||
<group>
|
||||
<field name="main_text"
|
||||
invisible="send_type in ['post_submission','official_account_cloud_sms_post_submission']"/>
|
||||
invisible="send_type in ['post_submission','official_account_cloud_sms_post_submission','official_receipt']"/>
|
||||
<field name="remarks"
|
||||
invisible="send_type not in ['official_account_cloud_sms_post_submission','post_submission']"/>
|
||||
</group>
|
||||
@@ -81,4 +79,17 @@
|
||||
</field>
|
||||
</record>
|
||||
|
||||
<record id="send_receive_messages_management_search" model="ir.ui.view">
|
||||
<field name="name">send.receive.messages.management.search</field>
|
||||
<field name="model">yuthon.official</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>
|
||||
|
||||
</odoo>
|
||||
Reference in New Issue
Block a user