Merge pull request !594 from 李鹏宇/dev_zhou
This commit is contained in:
李鹏宇
2024-11-27 12:42:19 +00:00
committed by Gitee
16 changed files with 360 additions and 71 deletions
+2
View File
@@ -25,6 +25,8 @@
'views/resource_calendar_leaves_views.xml',
'views/yuthon_adjustments_approval_views.xml',
'views/yuthon_duty_arrangement_views.xml',
'views/inherit_planning_role_views.xml',
'views/inherit_planning_slot_template_views.xml',
'views/yuthon_duty_summary_views.xml',
'views/yuthon_duty_setting_views.xml',
'views/yuthon_shift_approval_views.xml',
+1
View File
@@ -30,5 +30,6 @@ from . import yuthon_abnormal_approval
from . import yuthon_shift_approval
from . import yuthon_abnormal_setting
from . import yuthon_duty_plan
from . import inherit_planning_slot_template
@@ -6,3 +6,4 @@ class PlanningRole(models.Model):
_inherit = 'planning.role'
name = fields.Char(string='班次名称', required=True)
department_id = fields.Many2one('hr.department', string="部门")
@@ -0,0 +1,8 @@
from odoo import api, fields, models, tools
from odoo.exceptions import ValidationError
class PlanningSlotTemplate(models.Model):
_inherit = 'planning.slot.template'
department_id = fields.Many2one('hr.department', string="部门")
@@ -44,15 +44,27 @@
<field name="domain">[('employee_id.user_id', '=', uid)]</field>
</record>
<record id="hr_attendance_action2" model="ir.actions.act_window">
<field name="name">保安部考勤</field>
<field name="name">全部考勤</field>
<field name="res_model">hr.attendance</field>
<field name="view_mode">tree,form</field>
<field name="domain">[('employee_id.department_id.name', '=', '保安部')]</field>
</record>
<record id="hr_attendance_action3" model="ir.actions.act_window">
<field name="name">工程部考勤</field>
<field name="name">全部考勤</field>
<field name="res_model">hr.attendance</field>
<field name="view_mode">tree,form</field>
<field name="domain">[('employee_id.department_id.name', '=', '工程部')]</field>
<field name="view_mode">tree</field>
<field name="domain">[('employee_id.department_id.name', '=', '运行班')]</field>
</record>
<record id="hr_attendance_action4" model="ir.actions.act_window">
<field name="name">全部考勤</field>
<field name="res_model">hr.attendance</field>
<field name="view_mode">tree</field>
<field name="domain">[('employee_id.department_id.name' , '=' , '高压班')]</field>
</record>
<record id="hr_attendance_action5" model="ir.actions.act_window">
<field name="name">全部考勤</field>
<field name="res_model">hr.attendance</field>
<field name="view_mode">tree</field>
<field name="domain">[('employee_id.department_id.name', '=', '综合班')]</field>
</record>
</odoo>
@@ -0,0 +1,39 @@
<odoo>
<record id="hr_planning_role_inherit" model="ir.ui.view">
<field name="name">planning.role.tree.inherit</field>
<field name="model">planning.role</field>
<field name="inherit_id" ref="planning.planning_role_view_tree"/>
<field name="arch" type="xml">
<xpath expr="//field[@name='resource_ids']" position="after">
<field name="department_id" string="部门"/>
</xpath>
<xpath expr="//field[@name='resource_ids']" position="attributes">
<attribute name="string">员工</attribute>
</xpath>
</field>
</record>
<record id="action_planning_role_form1" model="ir.actions.act_window">
<field name="name">班次名称</field>
<field name="res_model">planning.role</field>
<field name="view_mode">tree</field>
<field name="domain">[('department_id.name','=','保安部')]</field>
</record>
<record id="action_planning_role_form2" model="ir.actions.act_window">
<field name="name">班次名称</field>
<field name="res_model">planning.role</field>
<field name="view_mode">tree</field>
<field name="domain">[('department_id.name', '=', '运行班')]</field>
</record>
<record id="action_planning_role_form3" model="ir.actions.act_window">
<field name="name">班次名称</field>
<field name="res_model">planning.role</field>
<field name="view_mode">tree</field>
<field name="domain">[('department_id.name', '=', '高压班')]</field>
</record>
<record id="action_planning_role_form4" model="ir.actions.act_window">
<field name="name">班次名称</field>
<field name="res_model">planning.role</field>
<field name="view_mode">tree</field>
<field name="domain">[('department_id.name', '=', '综合班')]</field>
</record>
</odoo>
@@ -0,0 +1,36 @@
<odoo>
<record id="hr_planning_slot_inherit" model="ir.ui.view">
<field name="name">planning.slot.template.tree.inherit</field>
<field name="model">planning.slot.template</field>
<field name="inherit_id" ref="planning.planning_slot_template_view_tree"/>
<field name="arch" type="xml">
<xpath expr="//field[@name='role_id']" position="after">
<field name="department_id" string="部门"/>
</xpath>
</field>
</record>
<record id="action_planning_slot_form1" model="ir.actions.act_window">
<field name="name">班次模板</field>
<field name="res_model">planning.slot.template</field>
<field name="view_mode">tree</field>
<field name="domain">[('department_id.name', '=', '保安部')]</field>
</record>
<record id="action_planning_slot_form2" model="ir.actions.act_window">
<field name="name">班次模板</field>
<field name="res_model">planning.slot.template</field>
<field name="view_mode">tree</field>
<field name="domain">[('department_id.name', '=', '运行班')]</field>
</record>
<record id="action_planning_slot_form3" model="ir.actions.act_window">
<field name="name">班次模板</field>
<field name="res_model">planning.slot.template</field>
<field name="view_mode">tree</field>
<field name="domain">[('department_id.name', '=', '高压班')]</field>
</record>
<record id="action_planning_slot_form4" model="ir.actions.act_window">
<field name="name">班次模板</field>
<field name="res_model">planning.slot.template</field>
<field name="view_mode">tree</field>
<field name="domain">[('department_id.name', '=', '综合班')]</field>
</record>
</odoo>
@@ -5,13 +5,12 @@ class YuthonIndexEmployee(models.Model):
_name = 'yuthon.index.employee'
_description = '员工绩效标准库'
name = fields.Char('标题', required=True)
start_index_time = fields.Date(string='生效时间', required=True)
end_index_time = fields.Date(string='失效时间')
users_role_ids = fields.Many2many('soong.user.role', string='角色')
department_ids = fields.Many2many('hr.department', string='部门')
employee_ids = fields.Many2many('hr.employee', string='人员')
dimension = fields.Char('评价维度', required=True)
name = fields.Char('评价维度', required=True)
change_employee_library_id = fields.Many2one('yuthon.employee.approval', string='变更指标库')
index_employee_ids = fields.One2many('yuthon.index.employee.line', 'index_employee_id', string='指标库明细')
def put_employees_approval(self):
@@ -9,7 +9,7 @@
<button name="put_employees_approval" type="object" string="提交员工指标变更申请"/>
<button name="put_assessment_tasks1_approval" type="object" string="提交考核任务"/>
</header>
<field name="dimension"/>
<field name="name"/>
<field name="department_ids" widget="many2many_tags"/>
<field name="users_role_ids" widget="many2many_tags"/>
<field name="employee_ids" widget="many2many_tags"/>
@@ -24,14 +24,9 @@
<field name="arch" type="xml">
<form>
<sheet>
<div class="col-12 text-center">
<h1>
<field name="name" required="1"/>
</h1>
</div>
<group col="3">
<group>
<field name="department_ids" widget="many2many_tags"/>
<field name="name"/>
<field name="start_index_time"/>
</group>
<group>
@@ -40,18 +35,18 @@
</group>
<group>
<field name="users_role_ids" widget="many2many_tags"/>
<field name="dimension"/>
<field name="department_ids" widget="many2many_tags"/>
</group>
</group>
<notebook>
<page string="评分详细">
<field name="index_employee_ids">
<tree editable="bottom">
<field name="index_employee_id" column_invisible="1"/>
<field name="grading_criteria"/>
<field name="grading_content"/>
</tree>
</field>
<field name="index_employee_ids">
<tree editable="bottom">
<field name="index_employee_id" column_invisible="1"/>
<field name="grading_criteria"/>
<field name="grading_content"/>
</tree>
</field>
</page>
</notebook>
</sheet>
+1
View File
@@ -40,6 +40,7 @@
'views/property_check_stairs_views.xml',
'views/property_check_decorate_views.xml',
'views/property_other_list_views.xml',
'views/property_meter_reading_views.xml',
'views/menuitem.xml',
],
'demo': [],
+2 -1
View File
@@ -29,4 +29,5 @@ from . import property_check_list
from . import property_check_lobby
from . import property_check_project
from . import property_check_room
from . import property_check_stairs
from . import property_check_stairs
from . import property_meter_reading
@@ -0,0 +1,25 @@
from odoo import models, fields, api
class PropertyMeterReading(models.Model):
_name = 'property.meter.reading'
_description = '抄表'
code = fields.Char(string='仪表编号')
position = fields.Char(string='位置')
property_id = fields.Many2one('yuthon.property', string='物业')
contract = fields.Char(string='合同')
customer = fields.Char(string='客户')
state = fields.Char(string='状态')
meter_type = fields.Selection([('electric', '电表'), ('water', '水表')], string='仪表类型')
payment_account = fields.Selection([('prepaid', '电费'), ('postpaid', '水费')], string='缴费科目')
billing_period = fields.Date(string='账期')
meter_date= fields.Date(string='抄表年月')
last_meter = fields.Date(string='上次抄表')
current_meter = fields.Float(string='本次抄表')
apply_standards = fields.Char(string='应用标准')
price_unit = fields.Float(string='单价')
ratio = fields.Float(string='倍率')
amount_wastage = fields.Float(string='损耗量')
dosage = fields.Float(string='本次用量')
generate_charges = fields.Float(string='生成费用')
+2 -1
View File
@@ -39,4 +39,5 @@ access_property_check_list,property_check_list,model_property_check_list,base.gr
access_property_check_lobby,property_check_lobby,model_property_check_lobby,base.group_user,1,1,1,1
access_property_check_project,property_check_project,model_property_check_project,base.group_user,1,1,1,1
access_property_check_room,property_check_room,model_property_check_room,base.group_user,1,1,1,1
access_property_check_stairs,property_check_stairs,model_property_check_stairs,base.group_user,1,1,1,1
access_property_check_stairs,property_check_stairs,model_property_check_stairs,base.group_user,1,1,1,1
access_property_meter_reading,property_meter_reading,model_property_meter_reading,base.group_user,1,1,1,1
1 id name model_id:id group_id:id perm_read perm_write perm_create perm_unlink
39 access_property_check_lobby property_check_lobby model_property_check_lobby base.group_user 1 1 1 1
40 access_property_check_project property_check_project model_property_check_project base.group_user 1 1 1 1
41 access_property_check_room property_check_room model_property_check_room base.group_user 1 1 1 1
42 access_property_check_stairs property_check_stairs model_property_check_stairs base.group_user 1 1 1 1
43 access_property_meter_reading property_meter_reading model_property_meter_reading base.group_user 1 1 1 1
+1 -1
View File
@@ -92,7 +92,7 @@
sequence="1"
name="抄表"
parent="yuthon_property_meter_menu"
action="property_assess_action"/>
action="view_property_meter_reading_action"/>
<menuitem id="yuthon_property_meter_archives_menu"
sequence="3"
name="档案"
@@ -0,0 +1,71 @@
<?xml version="1.0" encoding="UTF-8" ?>
<odoo>
<record id="view_property_meter_reading_tree" model="ir.ui.view">
<field name="name">property.meter.reading.tree</field>
<field name="model">property.meter.reading</field>
<field name="arch" type="xml">
<tree string="抄表">
<field name="code"/>
<field name="position"/>
<field name="property_id"/>
<field name="contract"/>
<field name="customer"/>
<field name="state"/>
<field name="meter_type"/>
<field name="payment_account"/>
<field name="billing_period"/>
<field name="meter_date"/>
<field name="last_meter"/>
<field name="current_meter"/>
<field name="apply_standards"/>
<field name="price_unit"/>
<field name="ratio"/>
<field name="amount_wastage"/>
<field name="dosage"/>
<field name="generate_charges"/>
</tree>
</field>
</record>
<record id="view_property_meter_reading_form" model="ir.ui.view">
<field name="name">property.meter.reading.form</field>
<field name="model">property.meter.reading</field>
<field name="arch" type="xml">
<form string="抄表">
<sheet>
<group col="2">
<group>
<field name="code"/>
<field name="position"/>
<field name="property_id"/>
<field name="contract"/>
<field name="customer"/>
<field name="state"/>
<field name="meter_type"/>
<field name="payment_account"/>
<field name="billing_period"/>
</group>
<group>
<field name="meter_date"/>
<field name="last_meter"/>
<field name="current_meter"/>
<field name="apply_standards"/>
<field name="price_unit"/>
<field name="ratio"/>
<field name="amount_wastage"/>
<field name="dosage"/>
<field name="generate_charges"/>
</group>
</group>
</sheet>
</form>
</field>
</record>
<record id="view_property_meter_reading_action" model="ir.actions.act_window">
<field name="name">抄表</field>
<field name="res_model">property.meter.reading</field>
<field name="view_mode">tree,form</field>
</record>
</odoo>
+144 -47
View File
@@ -5,34 +5,156 @@
name="考勤管理"
parent="human_resources_menu_root_board"
sequence="7"/>
<menuitem id="menu_hr_attendance_my_record_board"
name="我的考勤"
parent="hr_attendance_root_board"
action="yuthon_hr_attendance.hr_attendance_action1"
sequence="1"/>
<menuitem id="menu_hr_attendance_plan_request_board"
name="考勤计划"
parent="hr_attendance_root_board"
sequence="3"/>
<menuitem id="menu_hr_plan_arrange_board"
name="计划总览"
parent="menu_hr_attendance_plan_request_board"
sequence="1"/>
<!-- <menuitem id="menu_hr_plan_arrange_board"-->
<!-- name="计划总览"-->
<!-- parent="menu_hr_attendance_plan_request_board"-->
<!-- sequence="1"/>-->
<menuitem id="menu_hr_plan_sources_board"
name="按资源分类"
parent="menu_hr_plan_arrange_board"
name="人员排班计划"
parent="menu_hr_attendance_plan_request_board"
action="planning.planning_action_schedule_by_resource"
sequence="1"/>
<menuitem id="menu_hr_plan_employee_board"
name="按角色分类"
parent="menu_hr_plan_arrange_board"
action="planning.planning_action_schedule_by_role"
sequence="3"/>
<menuitem id="menu_hr_my_plan_board"
name="我的计划"
parent="menu_hr_attendance_plan_request_board"
action="planning.planning_action_my_calendar"
sequence="3"/>
<menuitem id="menu_hr_plan_approval_board"
name="计划分析"
parent="menu_hr_attendance_plan_request_board"
action="planning.planning_report_action_analysis"
<menuitem id="menu_hr_attendance_security_record_board"
name="保安部计划"
parent="hr_attendance_root_board"
sequence="5"/>
<menuitem id="menu_hr_attendance_security_record"
name="考勤记录"
parent="menu_hr_attendance_security_record_board"
action="yuthon_hr_attendance.hr_attendance_action2"
sequence="1"/>
<menuitem id="menu_hr_attendance_security_process_record"
name="流程"
parent="menu_hr_attendance_security_record_board"
action="yuthon_hr_attendance.hr_attendance_action2"
sequence="3"/>
<menuitem id="menu_hr_attendance_planning_setting"
name="配置"
parent="menu_hr_attendance_security_record_board"
sequence="5"/>
<menuitem id="menu_hr_attendance_planning_board"
name="班次名称"
parent="menu_hr_attendance_planning_setting"
action="yuthon_hr_attendance.action_planning_role_form1"
sequence="1"/>
<menuitem id="menu_hr_attendance_slot_template_role"
name="班次模板"
parent="menu_hr_attendance_planning_setting"
action="yuthon_hr_attendance.action_planning_slot_form1"
sequence="3"/>
<menuitem id="menu_hr_attendance_engineering_record_board"
name="工程部计划"
parent="hr_attendance_root_board"
action="yuthon_hr_attendance.hr_attendance_action3"
sequence="7"/>
<menuitem id="menu_hr_attendance_engineering_run_board"
name="运行班"
parent="menu_hr_attendance_engineering_record_board"
sequence="1"/>
<menuitem id="menu_hr_attendance_security_record1"
name="考勤记录"
parent="menu_hr_attendance_engineering_run_board"
action="yuthon_hr_attendance.hr_attendance_action3"
sequence="1"/>
<menuitem id="menu_hr_attendance_security_process_record1"
name="流程"
parent="menu_hr_attendance_engineering_run_board"
action="yuthon_hr_attendance.hr_attendance_action2"
sequence="3"/>
<menuitem id="menu_hr_attendance_planning_setting1"
name="配置"
parent="menu_hr_attendance_engineering_run_board"
sequence="5"/>
<menuitem id="menu_hr_attendance_planning_board1"
name="班次名称"
parent="menu_hr_attendance_planning_setting1"
action="yuthon_hr_attendance.action_planning_role_form2"
sequence="1"/>
<menuitem id="menu_hr_attendance_slot_template_role1"
name="班次模板"
parent="menu_hr_attendance_planning_setting1"
action="yuthon_hr_attendance.action_planning_slot_form2"
sequence="3"/>
<menuitem id="menu_hr_attendance_engineering_hv_board"
name="高压班"
parent="menu_hr_attendance_engineering_record_board"
sequence="3"/>
<menuitem id="menu_hr_attendance_security_record2"
name="考勤记录"
parent="menu_hr_attendance_engineering_hv_board"
action="yuthon_hr_attendance.hr_attendance_action4"
sequence="1"/>
<menuitem id="menu_hr_attendance_security_process_record2"
name="流程"
parent="menu_hr_attendance_engineering_hv_board"
action="yuthon_hr_attendance.hr_attendance_action3"
sequence="3"/>
<menuitem id="menu_hr_attendance_planning_setting2"
name="配置"
parent="menu_hr_attendance_engineering_hv_board"
sequence="5"/>
<menuitem id="menu_hr_attendance_planning_board2"
name="班次名称"
parent="menu_hr_attendance_planning_setting2"
action="yuthon_hr_attendance.action_planning_role_form3"
sequence="1"/>
<menuitem id="menu_hr_attendance_slot_template_role2"
name="班次模板"
parent="menu_hr_attendance_planning_setting2"
action="yuthon_hr_attendance.action_planning_slot_form3"
sequence="3"/>
<menuitem id="menu_hr_attendance_engineering_integrated_board"
name="综合班"
parent="menu_hr_attendance_engineering_record_board"
sequence="5"/>
<menuitem id="menu_hr_attendance_security_record3"
name="考勤记录"
parent="menu_hr_attendance_engineering_integrated_board"
action="yuthon_hr_attendance.hr_attendance_action5"
sequence="1"/>
<menuitem id="menu_hr_attendance_security_process_record3"
name="流程"
parent="menu_hr_attendance_engineering_integrated_board"
action="yuthon_hr_attendance.hr_attendance_action3"
sequence="3"/>
<menuitem id="menu_hr_attendance_planning_setting3"
name="配置"
parent="menu_hr_attendance_engineering_integrated_board"
sequence="5"/>
<menuitem id="menu_hr_attendance_planning_board3"
name="班次名称"
parent="menu_hr_attendance_planning_setting3"
action="yuthon_hr_attendance.action_planning_role_form4"
sequence="1"/>
<menuitem id="menu_hr_attendance_slot_template_role3"
name="班次模板"
parent="menu_hr_attendance_planning_setting3"
action="yuthon_hr_attendance.action_planning_slot_form4"
sequence="3"/>
<!-- <menuitem id="menu_hr_plan_employee_board"-->
<!-- name="按角色分类"-->
<!-- parent="menu_hr_plan_arrange_board"-->
<!-- action="planning.planning_action_schedule_by_role"-->
<!-- sequence="3"/>-->
<!-- <menuitem id="menu_hr_my_plan_board"-->
<!-- name="我的计划"-->
<!-- parent="menu_hr_attendance_plan_request_board"-->
<!-- action="planning.planning_action_my_calendar"-->
<!-- sequence="3"/>-->
<!-- <menuitem id="menu_hr_plan_approval_board"-->
<!-- name="计划分析"-->
<!-- parent="menu_hr_attendance_plan_request_board"-->
<!-- action="planning.planning_report_action_analysis"-->
<!-- sequence="5"/>-->
<menuitem id="hr_attendance_record_root_board"
name="考勤记录"
parent="hr_attendance_root_board"
@@ -42,26 +164,11 @@
parent="hr_attendance_record_root_board"
action="hr_attendance.hr_attendance_action"
sequence="1"/>
<menuitem id="menu_hr_attendance_my_record_board"
name="我的考勤"
parent="hr_attendance_record_root_board"
action="yuthon_hr_attendance.hr_attendance_action1"
sequence="5"/>
<menuitem id="menu_hr_attendance_security_record_board"
name="保安部"
parent="hr_attendance_record_root_board"
action="yuthon_hr_attendance.hr_attendance_action2"
sequence="7"/>
<menuitem id="menu_hr_attendance_engineering_record_board"
name="工程部"
parent="hr_attendance_record_root_board"
action="yuthon_hr_attendance.hr_attendance_action3"
sequence="9"/>
<!-- 值班相关 -->
<menuitem id="menu_hr_attendance_duty_summary_menu_board"
name="值班管理"
name="粮库值班管理"
parent="hr_attendance_root_board"
sequence="8"/>
sequence="9"/>
<menuitem id="menu_hr_attendance_duty_plan_board"
name="值班计划"
parent="menu_hr_attendance_duty_summary_menu_board"
@@ -164,16 +271,6 @@
name="配置"
parent="hr_attendance_root_board"
sequence="99"/>
<menuitem id="menu_hr_plan_set_role_board"
name="班次名称"
parent="attendance_resources_setting_root_board"
action="planning.planning_action_roles"
sequence="1"/>
<menuitem id="menu_hr_plan_set_formwork_board"
name="班次模板"
parent="attendance_resources_setting_root_board"
action="planning.planning_action_shift_template"
sequence="2"/>
<menuitem id="menu_hr_attendance_work_board"
name="考勤时间表"
parent="attendance_resources_setting_root_board"