@@ -11,13 +11,15 @@
|
||||
'license': 'LGPL-3',
|
||||
'author': 'pengyuthon',
|
||||
'website': 'https://www.pengyuthon.com',
|
||||
'depends': ['base', 'hr', 'hr_recruitment'],
|
||||
'depends': ['base', 'hr', 'hr_recruitment','soong_workflow'],
|
||||
'data': [
|
||||
'data/yuthon.job.lv.csv',
|
||||
'data/job_lv_groups_data.xml',
|
||||
'data/employee_code_data.xml',
|
||||
'data/applicant_tage_setting_data.xml',
|
||||
'data/publish_applicant_setting_data.xml',
|
||||
'security/ir.model.access.csv',
|
||||
'security/job_lv_security_group.xml',
|
||||
'views/yuthon_hr_employee_views.xml',
|
||||
'views/yuthon_hr_department_views.xml',
|
||||
'views/yuthon_job_lv_views.xml',
|
||||
|
||||
@@ -0,0 +1,19 @@
|
||||
<?xml version="1.0" encoding="UTF-8" ?>
|
||||
<odoo>
|
||||
<record id="job_lv_setting_sequence1" model="soong.user.role">
|
||||
<field name="name">职级管理员</field>
|
||||
<field name="user_type">departmental_role</field>
|
||||
</record>
|
||||
<record id="job_lv_setting_sequence2" model="soong.user.role">
|
||||
<field name="name">天河投资职级</field>
|
||||
<field name="user_type">departmental_role</field>
|
||||
</record>
|
||||
<record id="job_lv_setting_sequence3" model="soong.user.role">
|
||||
<field name="name">天河物管职级</field>
|
||||
<field name="user_type">departmental_role</field>
|
||||
</record>
|
||||
<record id="job_lv_setting_sequence4" model="soong.user.role">
|
||||
<field name="name">天河粮储职级</field>
|
||||
<field name="user_type">departmental_role</field>
|
||||
</record>
|
||||
</odoo>
|
||||
@@ -8,5 +8,5 @@ from . import inherit_hr_applicant
|
||||
from . import applicant_tage_setting
|
||||
from . import publish_applicant_setting
|
||||
from . import yuthon_job_postings
|
||||
|
||||
from . import inherit_hr_employee
|
||||
|
||||
|
||||
@@ -0,0 +1,29 @@
|
||||
# -*- coding: utf-8 -*-
|
||||
from odoo import api, fields, models
|
||||
|
||||
|
||||
class YuthonHrEmployee(models.Model):
|
||||
_inherit = "hr.employee"
|
||||
|
||||
user_role_ids_changed = fields.Boolean(compute='_compute_user_roles')
|
||||
|
||||
@api.depends('user_role_ids')
|
||||
def _compute_job_lv_roles(self):
|
||||
group_mapping = {
|
||||
'职级管理员': 'group_topic_admin',
|
||||
'天河投资职级': 'group_party_topic',
|
||||
'天河物管职级': 'group_team_topic',
|
||||
'天河粮储职级': 'group_board_topic',
|
||||
}
|
||||
|
||||
old_users_ids = self.user_role_ids
|
||||
for employee in self:
|
||||
for role in employee.user_role_ids:
|
||||
group_id = group_mapping.get(role.name)
|
||||
if group_id:
|
||||
group = self.env.ref('yuthon_issue.' + group_id, raise_if_not_found=False)
|
||||
if group:
|
||||
# 未知因素屏蔽选择值
|
||||
group.write({'users': [(4, employee.user_id.id)]})
|
||||
self.user_role_ids = old_users_ids
|
||||
self.user_role_ids_changed = True
|
||||
@@ -9,7 +9,7 @@ class YuthonJobLv(models.Model):
|
||||
_description = "职级管理"
|
||||
_order = 'lv desc'
|
||||
|
||||
lv = fields.Integer(string="级别")
|
||||
lv = fields.Char(string="级别")
|
||||
name = fields.Char(string="职级名称")
|
||||
base_wage = fields.Float(string="基本工资")
|
||||
job_wage = fields.Float(string="职级工资")
|
||||
|
||||
@@ -1,5 +1,5 @@
|
||||
id,name,model_id:id,group_id:id,perm_read,perm_write,perm_create,perm_unlink
|
||||
access_yuthon_job_lv,yuthon_job_lv,model_yuthon_job_lv,base.group_user,1,1,1,1
|
||||
access_yuthon_job_lv,yuthon_job_lv,model_yuthon_job_lv,,1,1,1,1
|
||||
access_hr_job_type,hr_job_type,model_hr_job_type,base.group_user,1,1,1,1
|
||||
access_yuthon_hr_employee_wizard,yuthon_hr_employee_wizard,model_yuthon_hr_employee_wizard,base.group_user,1,1,1,1
|
||||
access_yuthon_emergency_contact_line,yuthon_emergency_contact_line,model_yuthon_emergency_contact_line,base.group_user,1,1,1,1
|
||||
@@ -11,4 +11,4 @@ access_yuthon_directly_detail_lines,yuthon_directly_detail_lines,model_yuthon_di
|
||||
access_yuthon_recent_work_detail_line,yuthon_recent_work_detail_line,model_yuthon_recent_work_detail_line,base.group_user,1,1,1,1
|
||||
access_publish_applicant_setting,publish_applicant_setting,model_publish_applicant_setting,base.group_user,1,1,1,1
|
||||
access_applicant_tage_setting,applicant_tage_setting,model_applicant_tage_setting,base.group_user,1,1,1,1
|
||||
access_yuthon_job_postings,yuthon_job_postings,model_yuthon_job_postings,base.group_user,1,1,1,1
|
||||
access_yuthon_job_postings,yuthon_job_postings,model_yuthon_job_postings,base.group_user,1,1,1,1
|
||||
|
||||
|
@@ -0,0 +1,30 @@
|
||||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<odoo>
|
||||
<record id="module_category_yuthon_job_lv" model="ir.module.category">
|
||||
<field name="name">职级权限</field>
|
||||
</record>
|
||||
<!-- 天河投资职级群组 -->
|
||||
<record id="group_party_topic" model="res.groups">
|
||||
<field name="name">天河投资职级</field>
|
||||
<field name="category_id" ref="module_category_yuthon_job_lv"/>
|
||||
</record>
|
||||
<!-- 天河物管职级群组 -->
|
||||
<record id="group_team_topic" model="res.groups">
|
||||
<field name="name">天河物管职级</field>
|
||||
<field name="category_id" ref="module_category_yuthon_job_lv"/>
|
||||
</record>
|
||||
|
||||
<!-- 天河粮储职级群组 -->
|
||||
<record id="group_board_topic" model="res.groups">
|
||||
<field name="name">天河粮储职级</field>
|
||||
<field name="category_id" ref="module_category_yuthon_job_lv"/>
|
||||
</record>
|
||||
<!-- 职级群组 -->
|
||||
<record id="group_topic_admin" model="res.groups">
|
||||
<field name="name">职级管理员</field>
|
||||
<field name="category_id" ref="module_category_yuthon_job_lv"/>
|
||||
<field name="implied_ids" eval="[(4, ref('group_party_topic')), (4, ref('group_team_topic')), (4, ref('group_team_topic')) ,
|
||||
(4, ref('group_board_topic'))]"/>
|
||||
<field name="users" eval="[(4, ref('base.user_admin'))]"/>
|
||||
</record>
|
||||
</odoo>
|
||||
@@ -1,14 +1,11 @@
|
||||
<?xml version="1.0" encoding="UTF-8" ?>
|
||||
<odoo>
|
||||
<!-- Views -->
|
||||
<!-- 全部 -->
|
||||
<record id="view_yuthon_job_lv_tree" model="ir.ui.view">
|
||||
<field name="name">yuthon.job.lv.tree</field>
|
||||
<field name="model">yuthon.job.lv</field>
|
||||
<field name="arch" type="xml">
|
||||
<tree editable="bottom">
|
||||
<!-- <header>-->
|
||||
<!-- <button name="pub_lv_approval" string="提交职级调整申请" type="object"/>-->
|
||||
<!-- </header>-->
|
||||
<field name="lv"/>
|
||||
<field name="name"/>
|
||||
<field name="base_wage"/>
|
||||
@@ -45,11 +42,126 @@
|
||||
<field name="view_mode">tree</field>
|
||||
<field name="context">{'search_default_group_company': True, 'search_default_group_lv': True}</field>
|
||||
</record>
|
||||
<!-- Menus -->
|
||||
<!--天河投资 -->
|
||||
<record id="view_yuthon_job_lv_tree2" model="ir.ui.view">
|
||||
<field name="name">yuthon.job.lv.tree</field>
|
||||
<field name="model">yuthon.job.lv</field>
|
||||
<field name="arch" type="xml">
|
||||
<tree editable="bottom">
|
||||
<field name="lv"/>
|
||||
<field name="name"/>
|
||||
<field name="base_wage"/>
|
||||
<field name="job_wage"/>
|
||||
<field name="post_wage"/>
|
||||
<field name="performance_bonus"/>
|
||||
<field name="phone_subsidy"/>
|
||||
<field name="attendance_bonus"/>
|
||||
<field name="all_wage"/>
|
||||
<field name="yuthon_company"/>
|
||||
<field name="create_time"/>
|
||||
<field name="end_time"/>
|
||||
<field name="company_page"/>
|
||||
</tree>
|
||||
</field>
|
||||
</record>
|
||||
<record id="view_yuthon_job_lv_action2" model="ir.actions.act_window">
|
||||
<field name="name">职级管理</field>
|
||||
<field name="res_model">yuthon.job.lv</field>
|
||||
<field name="view_mode">tree</field>
|
||||
<field name="domain">[('yuthon_company', '=', 'tz')]</field>
|
||||
<field name="view_ids" eval="[(5, 0, 0),
|
||||
(0, 0, {'view_mode': 'tree', 'view_id': ref('yuthon_hr_employee.view_yuthon_job_lv_tree2')})]"/>
|
||||
<field name="context">{'search_default_group_company': True, 'search_default_group_lv': True}</field>
|
||||
</record>
|
||||
<!--天河物管 -->
|
||||
<record id="view_yuthon_job_lv_tree3" model="ir.ui.view">
|
||||
<field name="name">yuthon.job.lv.tree</field>
|
||||
<field name="model">yuthon.job.lv</field>
|
||||
<field name="arch" type="xml">
|
||||
<tree editable="bottom">
|
||||
<field name="lv"/>
|
||||
<field name="name"/>
|
||||
<field name="base_wage"/>
|
||||
<field name="job_wage"/>
|
||||
<field name="post_wage"/>
|
||||
<field name="phone_subsidy"/>
|
||||
<field name="attendance_bonus"/>
|
||||
<field name="all_wage"/>
|
||||
<field name="yuthon_company"/>
|
||||
<field name="create_time"/>
|
||||
<field name="end_time"/>
|
||||
<field name="company_page"/>
|
||||
</tree>
|
||||
</field>
|
||||
</record>
|
||||
<record id="view_yuthon_job_lv_action3" model="ir.actions.act_window">
|
||||
<field name="name">职级管理</field>
|
||||
<field name="res_model">yuthon.job.lv</field>
|
||||
<field name="view_mode">tree</field>
|
||||
<field name="domain">[('yuthon_company', '=', 'wg')]</field>
|
||||
<field name="view_ids" eval="[(5, 0, 0),
|
||||
(0, 0, {'view_mode': 'tree', 'view_id': ref('yuthon_hr_employee.view_yuthon_job_lv_tree3')})]"/>
|
||||
<field name="context">{'search_default_group_company': True, 'search_default_group_lv': True}</field>
|
||||
</record>
|
||||
<!--天河粮储 -->
|
||||
<record id="view_yuthon_job_lv_tree4" model="ir.ui.view">
|
||||
<field name="name">yuthon.job.lv.tree</field>
|
||||
<field name="model">yuthon.job.lv</field>
|
||||
<field name="arch" type="xml">
|
||||
<tree editable="bottom">
|
||||
<field name="lv"/>
|
||||
<field name="name"/>
|
||||
<field name="base_wage"/>
|
||||
<field name="job_wage"/>
|
||||
<field name="post_wage"/>
|
||||
<field name="performance_bonus"/>
|
||||
<field name="phone_subsidy"/>
|
||||
<field name="attendance_bonus"/>
|
||||
<field name="all_wage"/>
|
||||
<field name="yuthon_company"/>
|
||||
<field name="create_time"/>
|
||||
<field name="end_time"/>
|
||||
<field name="company_page"/>
|
||||
</tree>
|
||||
</field>
|
||||
</record>
|
||||
<record id="view_yuthon_job_lv_action4" model="ir.actions.act_window">
|
||||
<field name="name">职级管理</field>
|
||||
<field name="res_model">yuthon.job.lv</field>
|
||||
<field name="view_mode">tree</field>
|
||||
<field name="domain">[('yuthon_company', '=', 'thlc')]</field>
|
||||
<field name="view_ids" eval="[(5, 0, 0),
|
||||
(0, 0, {'view_mode': 'tree', 'view_id': ref('yuthon_hr_employee.view_yuthon_job_lv_tree4')})]"/>
|
||||
<field name="context">{'search_default_group_company': True, 'search_default_group_lv': True}</field>
|
||||
</record>
|
||||
<!-- Menus -->
|
||||
<menuitem
|
||||
id="menu_yuthon_job_lv"
|
||||
name="职级管理"
|
||||
action="view_yuthon_job_lv_action"
|
||||
parent="hr.menu_config_employee"
|
||||
sequence="6"/>
|
||||
<menuitem
|
||||
id="menu_yuthon_job_lv_all"
|
||||
name="全部"
|
||||
parent="menu_yuthon_job_lv"
|
||||
action="view_yuthon_job_lv_action"
|
||||
sequence="1"/>
|
||||
<menuitem
|
||||
id="menu_yuthon_job_lv_all2"
|
||||
name="天河投资职级"
|
||||
parent="menu_yuthon_job_lv"
|
||||
action="view_yuthon_job_lv_action2"
|
||||
sequence="3"/>
|
||||
<menuitem
|
||||
id="menu_yuthon_job_lv_all3"
|
||||
name="天河物管职级"
|
||||
parent="menu_yuthon_job_lv"
|
||||
action="view_yuthon_job_lv_action3"
|
||||
sequence="5"/>
|
||||
<menuitem
|
||||
id="menu_yuthon_job_lv_all4"
|
||||
name="天河粮储职级"
|
||||
parent="menu_yuthon_job_lv"
|
||||
action="view_yuthon_job_lv_action4"
|
||||
sequence="7"/>
|
||||
</odoo>
|
||||
Reference in New Issue
Block a user