8月29日,开发绩效板块
This commit is contained in:
@@ -10,11 +10,16 @@
|
||||
'category': 'Human Resources/Attendances',
|
||||
'version': '0.1',
|
||||
'license': 'LGPL-3',
|
||||
'depends': ['base'],
|
||||
'depends': ['hr','soong_workflow'],
|
||||
'data': [
|
||||
'security/ir.model.access.csv',
|
||||
'views/yuthon_performance_views.xml',
|
||||
'views/yuthon_performance_manage_views.xml'
|
||||
'views/yuthon_Index_management.xml',
|
||||
'views/yuthon_duty_management.xml',
|
||||
'views/yuthon_performance_menus.xml',
|
||||
'views/yuthon_plan_management.xml',
|
||||
'views/yuthon_Index_approval.xml',
|
||||
'views/yuthon_duty_approval.xml',
|
||||
'views/yuthon_plan_approval.xml',
|
||||
],
|
||||
'installable': True,
|
||||
'application': True,
|
||||
|
||||
@@ -1,4 +1,8 @@
|
||||
# -*- coding: utf-8 -*-
|
||||
|
||||
from . import yuthon_performance
|
||||
from . import yuthon_performance_manage
|
||||
from . import yuthon_Index_management
|
||||
from . import yuthon_duty_management
|
||||
from . import yuthon_plan_management
|
||||
from . import yuthon_Index_approval
|
||||
from . import yuthon_duty_approval
|
||||
from . import yuthon_plan_approval
|
||||
|
||||
@@ -0,0 +1,12 @@
|
||||
from odoo import models, fields, api, exceptions, _
|
||||
class YuthonIndexApproval(models.Model):
|
||||
_name = 'yuthon.index.approval'
|
||||
_description = "指标库变更管理"
|
||||
_rec_name = 'name'
|
||||
|
||||
name = fields.Char('标题')
|
||||
creation_time = fields.Datetime(string='申请日期', default=lambda self: fields.Datetime.now())
|
||||
job_id = fields.Many2one('hr.job', string="岗位")
|
||||
reason_text = fields.Html(string='申请事由')
|
||||
|
||||
change_index_library_ids = fields.One2many("yuthon.index.management",'change_index_library_id',string="指标库变更明细")
|
||||
@@ -0,0 +1,37 @@
|
||||
|
||||
from odoo import models, fields, api, exceptions, _
|
||||
class YuthonIndexManagement(models.Model):
|
||||
_name = 'yuthon.index.management'
|
||||
_description = "指标库"
|
||||
|
||||
dimension = fields.Char('维度', required=True)
|
||||
development_goals = fields.Char('发展目标', required=True)
|
||||
index_name = fields.Char('指标名称', required=True)
|
||||
index_definition = fields.Char('指标定义', required=True)
|
||||
index_type = fields.Selection([('kpi', 'KPI'),
|
||||
('gs', 'GS'),
|
||||
('refused_index', '否决指标'),],'指标类别')
|
||||
index_compute = fields.Char('指标计算公式', required=True)
|
||||
compute_type = fields.Selection([('bad_index', '反向指标'),
|
||||
('good_index', '正向指标'),
|
||||
('two_index', '双向指标'),],'计算类别')
|
||||
check_norm = fields.Char('考核标准', required=True)
|
||||
department_ids = fields.Many2many("hr.department", string="指标来源", required=True)
|
||||
in_charge_role = fields.Many2one('soong.user.role', string='角色')
|
||||
employee_id = fields.Many2one('hr.employee', string="员工")
|
||||
start_index_time = fields.Date(string='指标生效时间', required=True)
|
||||
end_index_time = fields.Date(string='指标失效时间')
|
||||
unit_compute = fields.Char('计算单位')
|
||||
weight = fields.Char(string="权重%")
|
||||
compute_method = fields.Char(string="计算方法")
|
||||
compute_act = fields.Char(string="计划安排及具体措施/行动")
|
||||
|
||||
change_index_library_id = fields.Many2one("yuthon.index.approval", string="指标库变更明细")
|
||||
index_duty_id = fields.Many2one('yuthon.duty.management', string="绩效明细")
|
||||
index_duty_approval_id = fields.Many2one('yuthon.duty.approval', string="部门责任变更明细")
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
@@ -0,0 +1,15 @@
|
||||
from odoo import models, fields, api, exceptions, _
|
||||
class YuthonDutyApproval(models.Model):
|
||||
_name = 'yuthon.duty.approval'
|
||||
_description = "部门责任书变更管理"
|
||||
_rec_name = 'name'
|
||||
|
||||
name = fields.Char('标题')
|
||||
creation_time = fields.Datetime(string='申请日期', default=lambda self: fields.Datetime.now())
|
||||
job_id = fields.Many2one('hr.job', string="岗位")
|
||||
reason_text = fields.Html(string='申请事由')
|
||||
|
||||
# 指标变更
|
||||
# change_duty_kpi_ids = fields.One2many('yuthon.kpi.line', 'change_duty_kpi_id', string="KPI变更明细")
|
||||
# change_duty_gs_ids = fields.One2many('yuthon.gs.line', 'change_duty_gs_id', string="GS变更明细")
|
||||
index_duty_approval_ids = fields.One2many('yuthon.index.management', 'index_duty_approval_id', string="部门责任变更明细")
|
||||
@@ -0,0 +1,89 @@
|
||||
from odoo import models, fields, api, exceptions, _
|
||||
|
||||
|
||||
class YuthonDutyManagement(models.Model):
|
||||
_name = 'yuthon.duty.management'
|
||||
_description = "部门责任书"
|
||||
_rec_name = 'name'
|
||||
|
||||
name = fields.Char('标题')
|
||||
assessment_time = fields.Char('考核时间', required=True)
|
||||
cycle = fields.Selection([('monthly', '月度'),
|
||||
('quarter', '季度'),
|
||||
('up_half', '上半年'),
|
||||
('down_half', '下半年'),
|
||||
('year', '年度'), ], '周期', required=True)
|
||||
|
||||
department_id = fields.Many2one("hr.department", string="部门", required=True)
|
||||
start_index_time = fields.Date('指标生效时间')
|
||||
end_index_time = fields.Date('指标失效时间')
|
||||
index_statu = fields.Selection([('work', '生效'), ('void', '作废')], '状态', required=True)
|
||||
# 绩效考核
|
||||
# performance_kpi_ids = fields.One2many('yuthon.kpi.line', 'performance_kpi_id', string="KPI")
|
||||
# performance_gs_ids = fields.One2many('yuthon.gs.line', 'performance_gs_id', string="GS")
|
||||
|
||||
index_duty_ids = fields.One2many('yuthon.index.management', 'index_duty_id', string="绩效明细")
|
||||
|
||||
@api.onchange('assessment_time', 'cycle', 'department_id')
|
||||
def _onchange_year_department(self):
|
||||
if self.cycle and self.department_id and self.assessment_time:
|
||||
cycle_dict = {'monthly': '月度', 'quarter': '季度', 'up_half': '上半年', 'down_half': '下半年',
|
||||
'year': '年度'}
|
||||
cycle_display = cycle_dict.get(self.cycle, self.cycle)
|
||||
self.name = f"{self.assessment_time}{cycle_display}{self.department_id.name}责任书"
|
||||
|
||||
|
||||
# class YuthonKpiLine(models.Model):
|
||||
# _name = 'yuthon.kpi.line'
|
||||
# _description = "KPI明细行"
|
||||
#
|
||||
# # 链接部门责任书和变更菜单
|
||||
# performance_kpi_id = fields.Many2one('yuthon.duty.management', string="KPI")
|
||||
# change_duty_kpi_id = fields.Many2one('yuthon.duty.approval', string="KPI变更明细")
|
||||
#
|
||||
# KPI
|
||||
# 指标名称
|
||||
# index_name_id = fields.Many2one('yuthon.index.management')
|
||||
# duty_index_name = fields.Char(related='index_name_id.index_name', string='考核任务名称', store=True)
|
||||
|
||||
# index_definition_id = fields.Many2one('yuthon.index.management')
|
||||
# duty_index_definition = fields.Char(related='index_definition_id.index_definition', string="指标定义")
|
||||
#
|
||||
# index_id = fields.Many2one('yuthon.index.management')
|
||||
# duty_index_type = fields.Selection(related='index_id.compute_type', string='计算类别', store=True)
|
||||
#
|
||||
# in_charge_role_id = fields.Many2one('yuthon.index.management')
|
||||
# in_charge_role = fields.Many2one('soong.user.role', related='in_charge_role_id.in_charge_role', string='角色')
|
||||
#
|
||||
# duty_employee_id = fields.Many2one('yuthon.index.management')
|
||||
# employee_id = fields.Many2one('hr.employee', related='duty_employee_id.employee_id', string="员工", store=True)
|
||||
#
|
||||
# unit_compute = fields.Char('计算单位')
|
||||
# weight = fields.Char(string="权重%")
|
||||
# compute_method = fields.Char(string="计算方法")
|
||||
#
|
||||
#
|
||||
# class YuthonGsLine(models.Model):
|
||||
# _name = 'yuthon.gs.line'
|
||||
# _description = "GS明细行"
|
||||
#
|
||||
# # 链接部门责任书和变更菜单
|
||||
# performance_gs_id = fields.Many2one('yuthon.duty.management', string="GS")
|
||||
# change_duty_gs_id = fields.Many2one('yuthon.duty.approval', string="GS变更明细")
|
||||
# # index_duty_gs_id = fields.Many2one('yuthon.index.management', string="GS变更明细")
|
||||
# # 指标名称
|
||||
# index_name_id = fields.Many2one('yuthon.index.management')
|
||||
# work_task = fields.Char(related='index_name_id.index_name', string="工作任务")
|
||||
#
|
||||
# compute_act = fields.Char(string="计划安排及具体措施/行动")
|
||||
#
|
||||
# index_id = fields.Many2one('yuthon.index.management', string='Index')
|
||||
# duty_index_type = fields.Selection(related='index_id.compute_type', string='计算类别', store=True)
|
||||
#
|
||||
# in_charge_role_id = fields.Many2one('yuthon.index.management')
|
||||
# in_charge_role = fields.Many2one('soong.user.role', related='in_charge_role_id.in_charge_role', string='角色')
|
||||
#
|
||||
# duty_employee_id = fields.Many2one('yuthon.index.management')
|
||||
# employee_id = fields.Many2one('hr.employee', string="员工", related='duty_employee_id.employee_id', store=True)
|
||||
#
|
||||
# weight = fields.Char(string="权重%")
|
||||
@@ -1,46 +0,0 @@
|
||||
# -*- coding: utf-8 -*-
|
||||
# Part of Odoo. See LICENSE file for full copyright and licensing details.
|
||||
from odoo import models, fields, api, exceptions, _
|
||||
|
||||
|
||||
class YuthonPerformace(models.Model):
|
||||
_name = 'yuthon.performance'
|
||||
_description = "员工绩效"
|
||||
|
||||
name = fields.Char(string="绩效名称")
|
||||
performance_type = fields.Char(string="指标来源")
|
||||
performance_ids = fields.One2many('yuthon.performance.line', 'performance_id', string="绩效类型")
|
||||
|
||||
|
||||
class YuthonPerformaceLine(models.Model):
|
||||
_name = 'yuthon.performance.line'
|
||||
_description = "员工绩效明细"
|
||||
|
||||
performance_id = fields.Many2one('yuthon.performance', string="绩效")
|
||||
metric_type = fields.Char(string="指标类型")
|
||||
metric_name = fields.Char(string="指标名称")
|
||||
metric_define = fields.Char(string="指标定义")
|
||||
work_task = fields.Char(string="工作任务")
|
||||
weight = fields.Char(string="权重%")
|
||||
compute_method = fields.Char(string="计算方法")
|
||||
compute_uom = fields.Char(string="计算单位")
|
||||
compute_act = fields.Char(string="计划安排及具体措施/行动")
|
||||
# 上半年
|
||||
half_t1 = fields.Integer(string="底线值T1")
|
||||
half_t2 = fields.Integer(string="基准值T2")
|
||||
half_t3 = fields.Integer(string="努力值T3")
|
||||
half_node = fields.Date(string="节点目标")
|
||||
half_quality = fields.Char(string="质量目标")
|
||||
# 下半年
|
||||
later_t1 = fields.Integer(string="底线值T1")
|
||||
later_t2 = fields.Integer(string="基准值T2")
|
||||
later_t3 = fields.Integer(string="努力值T3")
|
||||
later_node = fields.Date(string="节点目标")
|
||||
later_quality = fields.Char(string="质量目标")
|
||||
# 年度
|
||||
annual_t1 = fields.Integer(string="底线值T1")
|
||||
annual_t2 = fields.Integer(string="基准值T2")
|
||||
annual_t3 = fields.Integer(string="努力值T3")
|
||||
annual_node = fields.Date(string="节点目标")
|
||||
annual_quality = fields.Char(string="质量目标")
|
||||
|
||||
@@ -1,19 +0,0 @@
|
||||
# -*- coding: utf-8 -*-
|
||||
# Part of Odoo. See LICENSE file for full copyright and licensing details.
|
||||
|
||||
from odoo import models, fields, api, exceptions, _
|
||||
|
||||
|
||||
class YuthonPerformaceManage(models.Model):
|
||||
_name = 'yuthon.performance.manage'
|
||||
_description = "管理"
|
||||
#员工,时间,指标名称,指标类型,指标来源,绩效数值
|
||||
employee_id = fields.Many2one('hr.employee', string="员工")
|
||||
create_time = fields.Datetime(string="创建时间")
|
||||
metric_name = fields.Char(string="指标名称")
|
||||
metric_type = fields.Char(string="指标类型")
|
||||
performance_type = fields.Char(string="指标来源")
|
||||
Performance_numbers = fields.Float(string="绩效分值")
|
||||
|
||||
|
||||
|
||||
@@ -0,0 +1,12 @@
|
||||
from odoo import models, fields, api, exceptions, _
|
||||
class YuthonPlanApproval(models.Model):
|
||||
_name = 'yuthon.plan.approval'
|
||||
_description = "个人计划变更管理"
|
||||
_rec_name = 'name'
|
||||
|
||||
name = fields.Char('标题')
|
||||
creation_time = fields.Datetime(string='申请日期', default=lambda self: fields.Datetime.now())
|
||||
job_id = fields.Many2one('hr.job', string="岗位")
|
||||
reason_text = fields.Html(string='申请事由')
|
||||
|
||||
change_plan_ids = fields.One2many("yuthon.plan.management.line",'change_plan_id',string="个人计划变更明细")
|
||||
@@ -0,0 +1,31 @@
|
||||
|
||||
from odoo import models, fields, api, exceptions, _
|
||||
class YuthonPlanManagement(models.Model):
|
||||
_name = 'yuthon.plan.management'
|
||||
_description = "计划管理"
|
||||
_rec_name = 'name'
|
||||
|
||||
name = fields.Char('标题')
|
||||
creation_time = fields.Datetime(string='填报日期', default=lambda self: fields.Datetime.now())
|
||||
job_id = fields.Many2one('hr.job', string="岗位")
|
||||
employee_id = fields.Many2one('hr.employee', string="员工")
|
||||
department_id = fields.Many2one('hr.department', string="部门")
|
||||
plan_ids = fields.One2many('yuthon.plan.management.line','plan_id' ,'计划明细')
|
||||
|
||||
class YuthonPlanManagementLine(models.Model):
|
||||
_name = 'yuthon.plan.management.line'
|
||||
_description = "计划管理明细"
|
||||
|
||||
plan_id = fields.Many2one('yuthon.plan.management','计划明细')
|
||||
change_plan_id = fields.Many2one('yuthon.plan.approval','个人计划变更明细')
|
||||
|
||||
index_name = fields.Char('工作任务名称')
|
||||
index_plan = fields.Char('计划安排及具体措施/行动')
|
||||
index_type = fields.Selection([('kpi', 'KPI'),
|
||||
('gs', 'GS'),
|
||||
('refused_index', '否决指标'),],'指标类别')
|
||||
expected_goals = fields.Char('预期目标')
|
||||
resource_requirements = fields.Char('资源要求')
|
||||
completion_summary = fields.Char('完成情况总结')
|
||||
|
||||
|
||||
@@ -1,6 +1,10 @@
|
||||
id,name,model_id:id,group_id:id,perm_read,perm_write,perm_create,perm_unlink
|
||||
access_yuthon_performance,yuthon_performance,model_yuthon_performance,base.group_user,1,1,1,1
|
||||
access_yuthon_performance_line,yuthon_performance_line,model_yuthon_performance_line,base.group_user,1,1,1,1
|
||||
access_yuthon_performance_manage,yuthon_performance_manage,model_yuthon_performance_manage,base.group_user,1,1,1,1
|
||||
access_yuthon_index_management,yuthon_index_management,model_yuthon_index_management,base.group_user,1,1,1,1
|
||||
access_yuthon_duty_management,yuthon_duty_management,model_yuthon_duty_management,base.group_user,1,1,1,1
|
||||
access_yuthon_plan_management,yuthon_plan_management,model_yuthon_plan_management,base.group_user,1,1,1,1
|
||||
access_yuthon_plan_management_line,yuthon_plan_management_line,model_yuthon_plan_management_line,base.group_user,1,1,1,1
|
||||
access_yuthon_index_approval,yuthon_index_approval,model_yuthon_index_approval,base.group_user,1,1,1,1
|
||||
access_yuthon_duty_approval,yuthon_duty_approval,model_yuthon_duty_approval,base.group_user,1,1,1,1
|
||||
access_yuthon_plan_approval,yuthon_plan_approval,model_yuthon_plan_approval,base.group_user,1,1,1,1
|
||||
|
||||
|
||||
|
||||
|
@@ -0,0 +1,78 @@
|
||||
<?xml version="1.0" encoding="UTF-8" ?>
|
||||
<odoo>
|
||||
<!-- Views -->
|
||||
<record id="yuthon_Index_approval_tree" model="ir.ui.view">
|
||||
<field name="name">yuthon.index.approval.tree</field>
|
||||
<field name="model">yuthon.index.approval</field>
|
||||
<field name="arch" type="xml">
|
||||
<tree>
|
||||
<field name="name"/>
|
||||
<field name="creation_time"/>
|
||||
</tree>
|
||||
</field>
|
||||
</record>
|
||||
<!-- Form-->
|
||||
<record id="yuthon_Index_approval_form" model="ir.ui.view">
|
||||
<field name="name">yuthon.index.approval.form</field>
|
||||
<field name="model">yuthon.index.approval</field>
|
||||
<field name="arch" type="xml">
|
||||
<form>
|
||||
<sheet>
|
||||
<div class="oe_title">
|
||||
<label for="name"/>
|
||||
<h1>
|
||||
<field name="name"/>
|
||||
</h1>
|
||||
</div>
|
||||
<group>
|
||||
<group>
|
||||
<field name="creation_time"/>
|
||||
<field name="reason_text"/>
|
||||
</group>
|
||||
<group>
|
||||
<field name="job_id"/>
|
||||
</group>
|
||||
</group>
|
||||
<notebook>
|
||||
<page string="更改明细">
|
||||
<field name="change_index_library_ids">
|
||||
<tree editable="bottom">
|
||||
<field name="dimension"/>
|
||||
<field name="development_goals"/>
|
||||
<field name="index_name"/>
|
||||
<field name="index_definition"/>
|
||||
<field name="index_type"/>
|
||||
<field name="index_compute"/>
|
||||
<field name="compute_type"/>
|
||||
<field name="check_norm"/>
|
||||
<field name="department_ids" widget="many2many_tags"/>
|
||||
<field name="in_charge_role"/>
|
||||
<field name="employee_id"/>
|
||||
<field name="start_index_time"/>
|
||||
<field name="end_index_time"/>
|
||||
</tree>
|
||||
</field>
|
||||
</page>
|
||||
</notebook>
|
||||
</sheet>
|
||||
</form>
|
||||
</field>
|
||||
</record>
|
||||
|
||||
<record id="yuthon_Index_approval_search" model="ir.ui.view">
|
||||
<field name="name">yuthon.index.approval.search</field>
|
||||
<field name="model">yuthon.index.approval</field>
|
||||
<field name="arch" type="xml">
|
||||
<search string="指标库变更查询">
|
||||
<field name="name"/>
|
||||
</search>
|
||||
</field>
|
||||
</record>
|
||||
<!-- Action-->
|
||||
<record id="yuthon_Index_approval_action" model="ir.actions.act_window">
|
||||
<field name="name">指标库变更</field>
|
||||
<field name="res_model">yuthon.index.approval</field>
|
||||
<field name="view_mode">tree,form</field>
|
||||
</record>
|
||||
|
||||
</odoo>
|
||||
@@ -0,0 +1,32 @@
|
||||
<?xml version="1.0" encoding="UTF-8" ?>
|
||||
<odoo>
|
||||
<!-- Views -->
|
||||
<record id="yuthon_index_management_tree" model="ir.ui.view">
|
||||
<field name="name">yuthon.index.management.tree</field>
|
||||
<field name="model">yuthon.index.management</field>
|
||||
<field name="arch" type="xml">
|
||||
<tree>
|
||||
<field name="dimension"/>
|
||||
<field name="development_goals"/>
|
||||
<field name="index_name"/>
|
||||
<field name="index_definition"/>
|
||||
<field name="index_type"/>
|
||||
<field name="index_compute"/>
|
||||
<field name="compute_type"/>
|
||||
<field name="check_norm"/>
|
||||
<field name="department_ids" widget="many2many_tags"/>
|
||||
<field name="in_charge_role"/>
|
||||
<field name="employee_id"/>
|
||||
<field name="start_index_time"/>
|
||||
<field name="end_index_time"/>
|
||||
</tree>
|
||||
</field>
|
||||
</record>
|
||||
<!-- Action-->
|
||||
<record id="yuthon_index_management_action" model="ir.actions.act_window">
|
||||
<field name="name">指标库</field>
|
||||
<field name="res_model">yuthon.index.management</field>
|
||||
<field name="view_mode">tree</field>
|
||||
</record>
|
||||
|
||||
</odoo>
|
||||
@@ -0,0 +1,91 @@
|
||||
<?xml version="1.0" encoding="UTF-8" ?>
|
||||
<odoo>
|
||||
<!-- Views -->
|
||||
<record id="yuthon_duty_approval_tree" model="ir.ui.view">
|
||||
<field name="name">yuthon.duty.approval.tree</field>
|
||||
<field name="model">yuthon.duty.approval</field>
|
||||
<field name="arch" type="xml">
|
||||
<tree>
|
||||
<field name="name"/>
|
||||
<field name="creation_time"/>
|
||||
</tree>
|
||||
</field>
|
||||
</record>
|
||||
<!-- Form-->
|
||||
<record id="yuthon_duty_approval_form" model="ir.ui.view">
|
||||
<field name="name">yuthon.duty.approval.form</field>
|
||||
<field name="model">yuthon.duty.approval</field>
|
||||
<field name="arch" type="xml">
|
||||
<form>
|
||||
<sheet>
|
||||
<div class="oe_title">
|
||||
<label for="name"/>
|
||||
<h1>
|
||||
<field name="name"/>
|
||||
</h1>
|
||||
</div>
|
||||
<group>
|
||||
<group>
|
||||
<field name="creation_time"/>
|
||||
<field name="reason_text"/>
|
||||
</group>
|
||||
<group>
|
||||
<field name="job_id"/>
|
||||
</group>
|
||||
</group>
|
||||
<notebook>
|
||||
<page string="绩效明细">
|
||||
<group>
|
||||
<group string="KPI">
|
||||
<field name="index_duty_approval_ids">
|
||||
<tree editable="bottom">
|
||||
<field name="index_name" string="考核任务名称"/>
|
||||
<field name="index_definition" string="指标定义"/>
|
||||
<field name="compute_type" string="计算类别"/>
|
||||
<field name="weight"/>
|
||||
<field name="compute_method"/>
|
||||
<field name="unit_compute"/>
|
||||
<field name="employee_id"/>
|
||||
<field name="in_charge_role"/>
|
||||
</tree>
|
||||
</field>
|
||||
</group>
|
||||
</group>
|
||||
<group>
|
||||
<group string="GS">
|
||||
<field name="index_duty_approval_ids">
|
||||
<tree editable="bottom">
|
||||
<field name="index_name" string="工作任务"/>
|
||||
<field name="compute_type" string="计算类别"/>
|
||||
<field name="compute_act"/>
|
||||
<field name="weight"/>
|
||||
<field name="employee_id"/>
|
||||
<field name="in_charge_role"/>
|
||||
</tree>
|
||||
</field>
|
||||
</group>
|
||||
</group>
|
||||
</page>
|
||||
</notebook>
|
||||
</sheet>
|
||||
</form>
|
||||
</field>
|
||||
</record>
|
||||
|
||||
<record id="yuthon_duty_approval_search" model="ir.ui.view">
|
||||
<field name="name">yuthon.duty.approval.search</field>
|
||||
<field name="model">yuthon.duty.approval</field>
|
||||
<field name="arch" type="xml">
|
||||
<search string="责任书变更查询">
|
||||
<field name="name"/>
|
||||
</search>
|
||||
</field>
|
||||
</record>
|
||||
<!-- Action-->
|
||||
<record id="yuthon_duty_approval_action" model="ir.actions.act_window">
|
||||
<field name="name">部门责任变更</field>
|
||||
<field name="res_model">yuthon.duty.approval</field>
|
||||
<field name="view_mode">tree,form</field>
|
||||
</record>
|
||||
|
||||
</odoo>
|
||||
@@ -0,0 +1,86 @@
|
||||
<odoo>
|
||||
<!-- Views -->
|
||||
<record id="yuthon_duty_management_tree" model="ir.ui.view">
|
||||
<field name="name">yuthon.duty.management.tree</field>
|
||||
<field name="model">yuthon.duty.management</field>
|
||||
<field name="arch" type="xml">
|
||||
<tree string="责任书"
|
||||
decoration-danger="index_statu == 'void'"
|
||||
decoration-success="index_statu == 'work'">
|
||||
<field name="department_id"/>
|
||||
<field name="name"/>
|
||||
<field name="start_index_time"/>
|
||||
<field name="end_index_time"/>
|
||||
<field name="index_statu"/>
|
||||
</tree>
|
||||
</field>
|
||||
</record>
|
||||
|
||||
<record id="yuthon_duty_management_form" model="ir.ui.view">
|
||||
<field name="name">yuthon.duty.management.form</field>
|
||||
<field name="model">yuthon.duty.management</field>
|
||||
<field name="arch" type="xml">
|
||||
<form>
|
||||
<sheet>
|
||||
<div class="oe_title">
|
||||
<label for="name"/>
|
||||
<h1>
|
||||
<field name="name"/>
|
||||
</h1>
|
||||
</div>
|
||||
<group>
|
||||
<group>
|
||||
<field name="department_id"/>
|
||||
<field name="index_statu"/>
|
||||
</group>
|
||||
<group>
|
||||
<field name="assessment_time"/>
|
||||
<field name="cycle"/>
|
||||
</group>
|
||||
</group>
|
||||
<notebook>
|
||||
<page string="绩效明细">
|
||||
<group>
|
||||
<group string="KPI">
|
||||
<field name="index_duty_ids">
|
||||
<tree editable="bottom">
|
||||
<field name="index_name" string="考核任务名称"/>
|
||||
<field name="index_definition" string="指标定义"/>
|
||||
<field name="compute_type" string="计算类别"/>
|
||||
<field name="weight"/>
|
||||
<field name="compute_method"/>
|
||||
<field name="unit_compute"/>
|
||||
<field name="employee_id"/>
|
||||
<field name="in_charge_role"/>
|
||||
</tree>
|
||||
</field>
|
||||
</group>
|
||||
</group>
|
||||
<group>
|
||||
<group string="GS">
|
||||
<field name="index_duty_ids">
|
||||
<tree editable="bottom">
|
||||
<field name="index_name" string="工作任务"/>
|
||||
<field name="compute_type" string="计算类别"/>
|
||||
<field name="compute_act"/>
|
||||
<field name="weight"/>
|
||||
<field name="employee_id"/>
|
||||
<field name="in_charge_role"/>
|
||||
</tree>
|
||||
</field>
|
||||
</group>
|
||||
</group>
|
||||
</page>
|
||||
</notebook>
|
||||
</sheet>
|
||||
</form>
|
||||
</field>
|
||||
</record>
|
||||
|
||||
<!-- Action-->
|
||||
<record id="yuthon_duty_management_action" model="ir.actions.act_window">
|
||||
<field name="name">部门责任书</field>
|
||||
<field name="res_model">yuthon.duty.management</field>
|
||||
<field name="view_mode">tree,form</field>
|
||||
</record>
|
||||
</odoo>
|
||||
@@ -1,52 +0,0 @@
|
||||
<?xml version="1.0" encoding="UTF-8" ?>
|
||||
<odoo>
|
||||
<!-- Views -->
|
||||
<record id="yuthon_performance_manage_tree" model="ir.ui.view">
|
||||
<field name="name">yuthon.performance.manage.tree</field>
|
||||
<field name="model">yuthon.performance.manage</field>
|
||||
<field name="arch" type="xml">
|
||||
<tree >
|
||||
<field name="employee_id" string="员工"/>
|
||||
<field name="create_time" string="创建时间"/>
|
||||
<field name="metric_name" string="指标名称"/>
|
||||
<field name="metric_type" string="指标类型"/>
|
||||
<field name="performance_type" string="指标来源"/>
|
||||
<field name="Performance_numbers" type="float" string="绩效分值"/>
|
||||
</tree>
|
||||
</field>
|
||||
</record>
|
||||
<!-- Action-->
|
||||
<record id="yuthon_performance_manage_action" model="ir.actions.act_window">
|
||||
<field name="name">管理</field>
|
||||
<field name="res_model">yuthon.performance.manage</field>
|
||||
<field name="view_mode">tree,form</field>
|
||||
</record>
|
||||
|
||||
<!-- 菜单-->
|
||||
<menuitem
|
||||
id="yuthon_performance_menu_config_manage"
|
||||
parent="yuthon_performance_menu_config_root"
|
||||
name="经理"
|
||||
sequence="2"
|
||||
action="yuthon_performance_manage_action"/>
|
||||
<menuitem
|
||||
id="yuthon_performance_manage_menu"
|
||||
parent="yuthon_performance_menu_config_manage"
|
||||
name="员工"
|
||||
sequence="8"
|
||||
action="yuthon_performance_manage_action"/>
|
||||
<menuitem
|
||||
id="yuthon_performance_manage_performance_menu"
|
||||
parent="yuthon_performance_menu_config_manage"
|
||||
name="绩效"
|
||||
sequence="5"
|
||||
action="yuthon_performance_manage_action"/>
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
</odoo>
|
||||
@@ -0,0 +1,88 @@
|
||||
<?xml version="1.0" encoding="UTF-8" ?>
|
||||
<odoo>
|
||||
|
||||
<menuitem
|
||||
id="yuthon_performance_menu_config_root"
|
||||
name="绩效考核"
|
||||
web_icon="yuthon_performance,static/description/icon.png"
|
||||
sequence="4"/>
|
||||
<!-- 部门责任书-->
|
||||
<menuitem
|
||||
id="yuthon_performance_duty_menu"
|
||||
parent="yuthon_performance_menu_config_root"
|
||||
name="绩效考核"
|
||||
sequence="10"/>
|
||||
<menuitem
|
||||
id="yuthon_organization_performance_menu"
|
||||
parent="yuthon_performance_duty_menu"
|
||||
name="组织绩效"
|
||||
sequence="10"
|
||||
action="yuthon_duty_management_action"/>
|
||||
|
||||
<menuitem
|
||||
id="yuthon_employee_performance_menu"
|
||||
parent="yuthon_performance_duty_menu"
|
||||
name="员工绩效"
|
||||
sequence="20"
|
||||
action="yuthon_duty_management_action"/>
|
||||
|
||||
<!-- 指标库-->
|
||||
<menuitem
|
||||
id="yuthon_Index_management_menu"
|
||||
parent="yuthon_performance_menu_config_root"
|
||||
name="指标库"
|
||||
sequence="20"
|
||||
action="yuthon_index_management_action"/>
|
||||
<menuitem
|
||||
id="yuthon_organization_performance_library"
|
||||
parent="yuthon_Index_management_menu"
|
||||
name="组织绩效指标库"
|
||||
sequence="10"
|
||||
action="yuthon_index_management_action"/>
|
||||
<menuitem
|
||||
id="yuthon_employee_performance_library"
|
||||
parent="yuthon_Index_management_menu"
|
||||
name="员工绩效指标库"
|
||||
sequence="20"
|
||||
action="yuthon_index_management_action"/>
|
||||
|
||||
<!-- 计划管理-->
|
||||
<menuitem
|
||||
id="yuthon_plan_management_menu"
|
||||
parent="yuthon_performance_menu_config_root"
|
||||
name="计划管理"
|
||||
sequence="30"/>
|
||||
<menuitem
|
||||
id="yuthon_plan_management"
|
||||
parent="yuthon_plan_management_menu"
|
||||
name="个人计划"
|
||||
sequence="10"
|
||||
action="yuthon_plan_management_action"/>
|
||||
|
||||
|
||||
<!-- 绩效变更管理-->
|
||||
<menuitem
|
||||
id="yuthon_performance_approval_management_menu"
|
||||
parent="yuthon_performance_menu_config_root"
|
||||
name="指标变更管理"
|
||||
sequence="40"/>
|
||||
<menuitem
|
||||
id="yuthon_Index_approval_management"
|
||||
parent="yuthon_performance_approval_management_menu"
|
||||
name="指标库变更"
|
||||
sequence="10"
|
||||
action="yuthon_Index_approval_action"/>
|
||||
<menuitem
|
||||
id="yuthon_duty_approval_management"
|
||||
parent="yuthon_performance_approval_management_menu"
|
||||
name="部门责任书变更"
|
||||
sequence="20"
|
||||
action="yuthon_duty_approval_action"/>
|
||||
<menuitem
|
||||
id="yuthon_plan_approval_management"
|
||||
parent="yuthon_performance_approval_management_menu"
|
||||
name="个人计划变更"
|
||||
sequence="30"
|
||||
action="yuthon_plan_approval_action"/>
|
||||
|
||||
</odoo>
|
||||
@@ -1,116 +0,0 @@
|
||||
<?xml version="1.0" encoding="UTF-8" ?>
|
||||
<odoo>
|
||||
<!-- Views -->
|
||||
<record id="yuthon_performance_tree" model="ir.ui.view">
|
||||
<field name="name">yuthon.performance.tree</field>
|
||||
<field name="model">yuthon.performance</field>
|
||||
<field name="arch" type="xml">
|
||||
<tree string="员工绩效">
|
||||
<field name="name"/>
|
||||
<field name="performance_type"/>
|
||||
</tree>
|
||||
</field>
|
||||
</record>
|
||||
<record id="yuthon_performance_form" model="ir.ui.view">
|
||||
<field name="name">yuthon.performance.form</field>
|
||||
<field name="model">yuthon.performance</field>
|
||||
<field name="arch" type="xml">
|
||||
<form>
|
||||
<sheet>
|
||||
<group>
|
||||
<group>
|
||||
<field name="name"/>
|
||||
<field name="performance_type"/>
|
||||
</group>
|
||||
<group>
|
||||
|
||||
</group>
|
||||
</group>
|
||||
<notebook>
|
||||
<page string="绩效明细">
|
||||
<field name="performance_ids">
|
||||
<tree>
|
||||
<field name="performance_id" optional="hidden"/>
|
||||
<field name="metric_type"/>
|
||||
<field name="metric_name"/>
|
||||
<field name="metric_define"/>
|
||||
<field name="work_task"/>
|
||||
<field name="compute_act"/>
|
||||
</tree>
|
||||
<form>
|
||||
|
||||
# 上半年
|
||||
half_t1 = fields.Integer(string="底线值T1")
|
||||
half_t2 = fields.Integer(string="基准值T2")
|
||||
half_t3 = fields.Integer(string="努力值T3")
|
||||
half_node = fields.Date(string="节点目标")
|
||||
half_quality = fields.Char(string="质量目标")
|
||||
# 下半年
|
||||
later_t1 = fields.Integer(string="底线值T1")
|
||||
later_t2 = fields.Integer(string="基准值T2")
|
||||
later_t3 = fields.Integer(string="努力值T3")
|
||||
later_node = fields.Date(string="节点目标")
|
||||
later_quality = fields.Char(string="质量目标")
|
||||
# 年度
|
||||
annual_t1 = fields.Integer(string="底线值T1")
|
||||
annual_t2 = fields.Integer(string="基准值T2")
|
||||
annual_t3 = fields.Integer(string="努力值T3")
|
||||
annual_node = fields.Date(string="节点目标")
|
||||
annual_quality = fields.Char(string="质量目标")
|
||||
<sheet>
|
||||
<group>
|
||||
performance_id = fields.Many2one('yuthon.performance', string="绩效")
|
||||
metric_type = fields.Char(string="指标类型")
|
||||
metric_name = fields.Char(string="指标名称")
|
||||
metric_define = fields.Char(string="指标定义")
|
||||
work_task = fields.Char(string="工作任务")
|
||||
weight = fields.Char(string="权重%")
|
||||
compute_method = fields.Char(string="计算方法")
|
||||
compute_uom = fields.Char(string="计算单位")
|
||||
compute_act = fields.Char(string="计划安排及具体措施/行动")
|
||||
<group>
|
||||
<field name="performance_id" invisible="1"/>
|
||||
<field name="metric_type"/>
|
||||
<field name="metric_name"/>
|
||||
<field name="metric_define"/>
|
||||
</group>
|
||||
<group>
|
||||
<field name="work_task"/>
|
||||
<field name="compute_act"/>
|
||||
</group>
|
||||
</group>
|
||||
</sheet>
|
||||
</form>
|
||||
</field>
|
||||
</page>
|
||||
</notebook>
|
||||
</sheet>
|
||||
</form>
|
||||
</field>
|
||||
</record>
|
||||
<!-- Actions -->
|
||||
<record id="yuthon_performance_action" model="ir.actions.act_window">
|
||||
<field name="name">员工绩效配置</field>
|
||||
<field name="res_model">yuthon.performance</field>
|
||||
<field name="view_mode">tree,form</field>
|
||||
</record>
|
||||
<!-- Menus -->
|
||||
<menuitem
|
||||
id="yuthon_performance_menu_config_root"
|
||||
name="绩效考核"
|
||||
web_icon="yuthon_performance,static/description/icon.png"
|
||||
sequence="4"
|
||||
action="yuthon_performance_action"/>
|
||||
<menuitem
|
||||
id="yuthon_performance_menu_config_setting"
|
||||
parent="yuthon_performance_menu_config_root"
|
||||
name="配置"
|
||||
sequence="8"
|
||||
action="yuthon_performance_action"/>
|
||||
<menuitem
|
||||
id="yuthon_performance_menu_config"
|
||||
parent="yuthon_performance_menu_config_setting"
|
||||
name="绩效配置"
|
||||
action="yuthon_performance_action"
|
||||
sequence="1"/>
|
||||
</odoo>
|
||||
@@ -0,0 +1,72 @@
|
||||
<?xml version="1.0" encoding="UTF-8" ?>
|
||||
<odoo>
|
||||
<!-- Views -->
|
||||
<record id="yuthon_plan_approval_tree" model="ir.ui.view">
|
||||
<field name="name">yuthon.plan.approval.tree</field>
|
||||
<field name="model">yuthon.plan.approval</field>
|
||||
<field name="arch" type="xml">
|
||||
<tree>
|
||||
<field name="name"/>
|
||||
<field name="creation_time"/>
|
||||
</tree>
|
||||
</field>
|
||||
</record>
|
||||
<!-- Form-->
|
||||
<record id="yuthon_plan_approval_form" model="ir.ui.view">
|
||||
<field name="name">yuthon.plan.approval.form</field>
|
||||
<field name="model">yuthon.plan.approval</field>
|
||||
<field name="arch" type="xml">
|
||||
<form>
|
||||
<sheet>
|
||||
<div class="oe_title">
|
||||
<label for="name"/>
|
||||
<h1>
|
||||
<field name="name"/>
|
||||
</h1>
|
||||
</div>
|
||||
<group>
|
||||
<group>
|
||||
<field name="creation_time"/>
|
||||
<field name="reason_text"/>
|
||||
</group>
|
||||
<group>
|
||||
<field name="job_id"/>
|
||||
</group>
|
||||
</group>
|
||||
<notebook>
|
||||
<page string="计划明细">
|
||||
<field name="change_plan_ids">
|
||||
<tree editable="bottom">
|
||||
<field name="plan_id"/>
|
||||
<field name="index_name"/>
|
||||
<field name="index_plan"/>
|
||||
<field name="index_type"/>
|
||||
<field name="expected_goals"/>
|
||||
<field name="resource_requirements"/>
|
||||
<field name="completion_summary"/>
|
||||
</tree>
|
||||
</field>
|
||||
</page>
|
||||
</notebook>
|
||||
</sheet>
|
||||
</form>
|
||||
</field>
|
||||
</record>
|
||||
|
||||
<record id="yuthon_plan_approval_search" model="ir.ui.view">
|
||||
<field name="name">yuthon.plan.approval.search</field>
|
||||
<field name="model">yuthon.plan.approval</field>
|
||||
<field name="arch" type="xml">
|
||||
<search string="责任书变更查询">
|
||||
<field name="name"/>
|
||||
</search>
|
||||
</field>
|
||||
</record>
|
||||
<!-- Action-->
|
||||
<record id="yuthon_plan_approval_action" model="ir.actions.act_window">
|
||||
<field name="name">个人计划变更</field>
|
||||
<field name="res_model">yuthon.plan.approval</field>
|
||||
<field name="view_mode">tree,form</field>
|
||||
</record>
|
||||
|
||||
</odoo>
|
||||
@@ -0,0 +1,80 @@
|
||||
<odoo>
|
||||
<!-- Views -->
|
||||
<record id="yuthon_plan_management_tree" model="ir.ui.view">
|
||||
<field name="name">yuthon.plan.management.tree</field>
|
||||
<field name="model">yuthon.plan.management</field>
|
||||
<field name="arch" type="xml">
|
||||
<tree>
|
||||
<field name="name"/>
|
||||
<field name="department_id"/>
|
||||
<field name="job_id"/>
|
||||
<field name="employee_id"/>
|
||||
<field name="creation_time"/>
|
||||
</tree>
|
||||
</field>
|
||||
</record>
|
||||
|
||||
<record id="yuthon_plan_management_form" model="ir.ui.view">
|
||||
<field name="name">yuthon.plan.management.form</field>
|
||||
<field name="model">yuthon.plan.management</field>
|
||||
<field name="arch" type="xml">
|
||||
<form>
|
||||
<sheet>
|
||||
<div class="oe_title">
|
||||
<label for="name"/>
|
||||
<h1>
|
||||
<field name="name"/>
|
||||
</h1>
|
||||
</div>
|
||||
<group>
|
||||
<group>
|
||||
<field name="department_id"/>
|
||||
<field name="job_id"/>
|
||||
</group>
|
||||
<group>
|
||||
<field name="employee_id"/>
|
||||
<field name="creation_time"/>
|
||||
</group>
|
||||
</group>
|
||||
<notebook>
|
||||
<page string="计划明细">
|
||||
<field name="plan_ids">
|
||||
<tree editable="bottom">
|
||||
<field name="plan_id"/>
|
||||
<field name="index_name"/>
|
||||
<field name="index_plan"/>
|
||||
<field name="index_type"/>
|
||||
<field name="expected_goals"/>
|
||||
<field name="resource_requirements"/>
|
||||
<field name="completion_summary"/>
|
||||
</tree>
|
||||
</field>
|
||||
</page>
|
||||
</notebook>
|
||||
</sheet>
|
||||
</form>
|
||||
</field>
|
||||
</record>
|
||||
|
||||
<record id="yuthon_plan_management_search" model="ir.ui.view">
|
||||
<field name="name">yuthon.plan.management.search</field>
|
||||
<field name="model">yuthon.plan.management</field>
|
||||
<field name="arch" type="xml">
|
||||
<search string="计划查询">
|
||||
<field name="department_id"/>
|
||||
<field name="employee_id"/>
|
||||
<field name="job_id"/>
|
||||
<field name="creation_time"/>
|
||||
</search>
|
||||
</field>
|
||||
</record>
|
||||
|
||||
<!-- Action-->
|
||||
<record id="yuthon_plan_management_action" model="ir.actions.act_window">
|
||||
<field name="name">计划管理</field>
|
||||
<field name="res_model">yuthon.plan.management</field>
|
||||
<field name="view_mode">tree,form</field>
|
||||
</record>
|
||||
|
||||
|
||||
</odoo>
|
||||
Reference in New Issue
Block a user