@@ -11,11 +11,15 @@ class YuthonHrEmployee(models.Model):
|
||||
def _compute_user_roles(self):
|
||||
group_mapping = {
|
||||
'运行班排班计划管理员': 'group_property_run_admin',
|
||||
'运行班:用户':'group_property_run_user',
|
||||
'高压班排班计划管理员': 'group_property_hv_admin',
|
||||
'高压班:用户': 'group_property_hv_user',
|
||||
'综合班排班计划管理员': 'group_property_integrated_admin',
|
||||
'班组A排班计划管理员': 'group_property_class_a_admin',
|
||||
'班组B排班计划管理员': 'group_property_class_b_admin',
|
||||
'班组C排班计划管理员': 'group_property_class_c_admin',
|
||||
'综合班:用户': 'group_property_integrated_user',
|
||||
'保安部排班计划管理员': 'group_property_class_a_admin',
|
||||
'保安部:用户': 'group_property_security_user',
|
||||
'联安粮库排班计划管理员': 'group_property_grain_depot_admin',
|
||||
'联安粮库:用户':'group_property_grain_depot_user',
|
||||
}
|
||||
old_users_ids = self.user_role_ids
|
||||
for employee in self:
|
||||
|
||||
@@ -36,12 +36,11 @@ class InheritPlanningSlot(models.Model):
|
||||
_inherit = 'planning.slot'
|
||||
|
||||
department_id = fields.Many2one('hr.department', string="部门")
|
||||
display_sequence = fields.Integer(string=" ")
|
||||
|
||||
@api.depends('start_datetime', 'end_datetime', 'template_id')
|
||||
def _compute_display_name(self):
|
||||
for slot in self:
|
||||
start_str = (slot.start_datetime + timedelta(hours=8)).strftime("%Y/%m/%d %H:%M") if slot.start_datetime else ""
|
||||
end_str = (slot.end_datetime + timedelta(hours=8)).strftime("%Y/%m/%d %H:%M") if slot.end_datetime else ""
|
||||
planning_name = slot.template_id.planning_name if slot.template_id and slot.template_id.planning_name else ""
|
||||
slot.display_name = f"{start_str}-{end_str}-{planning_name}"
|
||||
slot.display_name = f"{planning_name}"
|
||||
|
||||
|
||||
@@ -19,11 +19,6 @@ class YuthonDutyPlan(models.Model):
|
||||
('5', '五月'), ('6', '六月'), ('7', '七月'), ('8', '八月'),
|
||||
('9', '九月'), ('10', '十月'), ('11', '十一月'),
|
||||
('12', '十二月')], string='选择月份', default=lambda self: self._get_default_month())
|
||||
# default = lambda self: self._default_month()
|
||||
# @api.model
|
||||
# def _default_month(self):
|
||||
# current_month = datetime.now().strftime('%B')
|
||||
# return current_month
|
||||
|
||||
def auto_duty_plan(self, next_date=False):
|
||||
selected_month = int(self.select_time)
|
||||
@@ -33,14 +28,14 @@ class YuthonDutyPlan(models.Model):
|
||||
# 计算结束日期(下个月的第一天)
|
||||
next_month = (selected_month % 12) + 1
|
||||
next_year = year + (1 if next_month == 1 else 0) # 如果是12月,年份加1
|
||||
last_day_of_month = datetime(next_year, next_month, 1)
|
||||
last_day_of_month = datetime(next_year, next_month, 1)- timedelta(days=1)
|
||||
else:
|
||||
next_month = (selected_month % 12) + 1
|
||||
next_year = year + (1 if next_month == 1 else 0)
|
||||
first_day_of_month = datetime(next_year, next_month, 1)
|
||||
next_next_month = (next_month % 12) + 1
|
||||
next_next_year = next_year + (1 if next_next_month == 1 else 0)
|
||||
last_day_of_month = datetime(next_next_year, next_next_month, 1)
|
||||
last_day_of_month = datetime(next_next_year, next_next_month, 1)- timedelta(days=1)
|
||||
|
||||
role_a = self.env['planning.role'].search([('name', '=', '联安粮库')], limit=1)
|
||||
role_template_a = self.env['planning.slot.template'].search([('planning_name', '=', '白班'), ('role_id', '=', role_a.id)])
|
||||
@@ -71,7 +66,7 @@ class YuthonDutyPlan(models.Model):
|
||||
if zu == len(self.plan_line_ids):
|
||||
zu = 0
|
||||
for employee in self.plan_line_ids[zu].employee_ids:
|
||||
employee_id = self.env['planning.slot'].search([('resource_id', '=', employee.resource_id.id)]).sorted('start_datetime')
|
||||
employee_id = self.env['planning.slot'].search([('resource_id', '=', employee.resource_id.id),('start_datetime', '>=', first_day_of_month), ('start_datetime', '<=', last_day_of_month)]).sorted('start_datetime')
|
||||
if i < len(employee_id):
|
||||
start_hour2 = int(role_template_b.start_time)
|
||||
end_hour2 = int(role_template_b.end_time)
|
||||
|
||||
@@ -25,17 +25,17 @@ class YuthonRunPlanning(models.Model):
|
||||
year = datetime.now().year
|
||||
if not next_date:
|
||||
first_day_of_month = datetime(year, selected_month, 1)
|
||||
# 计算结束日期(下个月的第一天)
|
||||
# 计算结束日期(当月的最后一天)
|
||||
next_month = (selected_month % 12) + 1
|
||||
next_year = year + (1 if next_month == 1 else 0) # 如果是12月,年份加1
|
||||
last_day_of_month = datetime(next_year, next_month, 1)
|
||||
next_year = year + (1 if next_month == 1 else 0)
|
||||
last_day_of_month = datetime(next_year, next_month, 1) - timedelta(days=1)
|
||||
else:
|
||||
next_month = (selected_month % 12) + 1
|
||||
next_year = year + (1 if next_month == 1 else 0)
|
||||
first_day_of_month = datetime(next_year, next_month, 1)
|
||||
next_next_month = (next_month % 12) + 1
|
||||
next_next_year = next_year + (1 if next_next_month == 1 else 0)
|
||||
last_day_of_month = datetime(next_next_year, next_next_month, 1)
|
||||
last_day_of_month = datetime(next_next_year, next_next_month, 1) - timedelta(days=1)
|
||||
|
||||
role_a = self.env['planning.role'].search([('name', '=', '工程部')], limit=1)
|
||||
start_time = int(self.env['planning.slot.template'].search([('role_id', '=', role_a.id), ('planning_name', '=', '白班')]).start_time)
|
||||
@@ -57,13 +57,13 @@ class YuthonRunPlanning(models.Model):
|
||||
break
|
||||
start_time2 = int(self.env['planning.slot.template'].search([('planning_name', '=', '中夜'), ('role_id', '=', role_a.id)]).start_time)
|
||||
end_time2 = int(self.env['planning.slot.template'].search([('planning_name', '=', '中夜'), ('role_id', '=', role_a.id)]).end_time)
|
||||
all_slot = self.env['planning.slot'].search([('department_id.name', '=', '运行班')])
|
||||
current_date = first_day_of_month
|
||||
all_slot = self.env['planning.slot'].search([('department_id.name', '=', '运行班'), ('start_datetime', '>=', first_day_of_month), ('start_datetime', '<=', last_day_of_month)])
|
||||
i = -1
|
||||
while current_date <= last_day_of_month:
|
||||
for employee in range(0, len(self.engineering_run_ids)):
|
||||
i = i + 1
|
||||
slot_id = all_slot.search([('resource_id', '=', self.engineering_run_ids[employee].employee_id.resource_id.id)]).sorted('start_datetime')
|
||||
slot_id = all_slot.search([('resource_id', '=', self.engineering_run_ids[employee].employee_id.resource_id.id),('start_datetime', '>=', first_day_of_month),('start_datetime', '<=', last_day_of_month)]).sorted('start_datetime')
|
||||
if i < 31:
|
||||
slot_id[i].write({
|
||||
'template_id': self.env['planning.slot.template'].search([('role_id', '=', role_a.id), ('planning_name', '=', '中夜')]).id,
|
||||
@@ -104,6 +104,7 @@ class YuthonRunPlanning(models.Model):
|
||||
'resource_id': resource_id.id,
|
||||
'start_datetime': datetime(current_date.year, current_date.month, current_date.day,start_time) + timedelta(hours=16)- timedelta(days=1),
|
||||
'end_datetime': datetime(current_date.year, current_date.month, current_date.day,end_time) + timedelta(hours=16)- timedelta(days=1),
|
||||
'display_sequence': employee.sequence,
|
||||
'role_id': role_a.id,
|
||||
'allocated_hours': 8,
|
||||
})
|
||||
@@ -128,14 +129,14 @@ class YuthonRunPlanning(models.Model):
|
||||
# 计算结束日期(下个月的第一天)
|
||||
next_month = (selected_month % 12) + 1
|
||||
next_year = year + (1 if next_month == 1 else 0) # 如果是12月,年份加1
|
||||
last_day_of_month = datetime(next_year, next_month, 1)
|
||||
last_day_of_month = datetime(next_year, next_month, 1) - timedelta(days=1)
|
||||
else:
|
||||
next_month = (selected_month % 12) + 1
|
||||
next_year = year + (1 if next_month == 1 else 0)
|
||||
first_day_of_month = datetime(next_year, next_month, 1)
|
||||
next_next_month = (next_month % 12) + 1
|
||||
next_next_year = next_year + (1 if next_next_month == 1 else 0)
|
||||
last_day_of_month = datetime(next_next_year, next_next_month, 1)
|
||||
last_day_of_month = datetime(next_next_year, next_next_month, 1) - timedelta(days=1)
|
||||
|
||||
role_a = self.env['planning.role'].search([('name', '=', '工程部')], limit=1)
|
||||
start_time = int(self.env['planning.slot.template'].search([('role_id', '=', role_a.id), ('planning_name', '=', '白班')]).start_time)
|
||||
@@ -157,15 +158,13 @@ class YuthonRunPlanning(models.Model):
|
||||
break
|
||||
start_time2 = int(self.env['planning.slot.template'].search( [('planning_name', '=', '中夜'), ('role_id', '=', role_a.id)]).start_time)
|
||||
end_time2 = int(self.env['planning.slot.template'].search([('planning_name', '=', '中夜'), ('role_id', '=', role_a.id)]).end_time)
|
||||
all_slot = self.env['planning.slot'].search([('department_id.name', '=', '高压班')])
|
||||
current_date = first_day_of_month
|
||||
all_slot = self.env['planning.slot'].search([('department_id.name', '=', '高压班'), ('start_datetime', '>=', first_day_of_month),('start_datetime', '<=', last_day_of_month)])
|
||||
i = -1
|
||||
while current_date <= last_day_of_month:
|
||||
for employee in range(0, len(self.high_run_ids)):
|
||||
i = i + 1
|
||||
slot_id = all_slot.search(
|
||||
[('resource_id', '=', self.high_run_ids[employee].employee_id.resource_id.id)]).sorted(
|
||||
'start_datetime')
|
||||
slot_id = all_slot.search([('resource_id', '=', self.engineering_run_ids[employee].employee_id.resource_id.id), ('start_datetime', '>=', first_day_of_month), ('start_datetime', '<=', last_day_of_month)]).sorted('start_datetime')
|
||||
if i < 31:
|
||||
slot_id[i].write({
|
||||
'template_id': self.env['planning.slot.template'].search(
|
||||
@@ -205,14 +204,14 @@ class YuthonRunPlanning(models.Model):
|
||||
# 计算结束日期(下个月的第一天)
|
||||
next_month = (selected_month % 12) + 1
|
||||
next_year = year + (1 if next_month == 1 else 0) # 如果是12月,年份加1
|
||||
last_day_of_month = datetime(next_year, next_month, 1)
|
||||
last_day_of_month = datetime(next_year, next_month, 1)- timedelta(days=1)
|
||||
else:
|
||||
next_month = (selected_month % 12) + 1
|
||||
next_year = year + (1 if next_month == 1 else 0)
|
||||
first_day_of_month = datetime(next_year, next_month, 1)
|
||||
next_next_month = (next_month % 12) + 1
|
||||
next_next_year = next_year + (1 if next_next_month == 1 else 0)
|
||||
last_day_of_month = datetime(next_next_year, next_next_month, 1)
|
||||
last_day_of_month = datetime(next_next_year, next_next_month, 1)- timedelta(days=1)
|
||||
|
||||
role_a = self.env['planning.role'].search([('name', '=', '工程部')], limit=1)
|
||||
start_time = int(self.env['planning.slot.template'].search(
|
||||
@@ -240,15 +239,15 @@ class YuthonRunPlanning(models.Model):
|
||||
end_time2 = int(self.env['planning.slot.template'].search(
|
||||
[('planning_name', '=', '中夜'), ('role_id', '=', role_a.id)]).end_time)
|
||||
|
||||
all_slot = self.env['planning.slot'].search([('department_id.name', '=', '综合班')])
|
||||
current_date = first_day_of_month
|
||||
all_slot = self.env['planning.slot'].search(
|
||||
[('department_id.name', '=', '综合班'), ('start_datetime', '>=', first_day_of_month),
|
||||
('start_datetime', '<=', last_day_of_month)])
|
||||
i = -1
|
||||
while current_date <= last_day_of_month:
|
||||
for employee in range(0, len(self.all_run_ids)):
|
||||
i = i + 1
|
||||
slot_id = all_slot.search(
|
||||
[('resource_id', '=', self.all_run_ids[employee].employee_id.resource_id.id)]).sorted(
|
||||
'start_datetime')
|
||||
slot_id = all_slot.search([('resource_id', '=', self.engineering_run_ids[employee].employee_id.resource_id.id), ('start_datetime', '>=', first_day_of_month), ('start_datetime', '<=', last_day_of_month)]).sorted('start_datetime')
|
||||
if i < 31:
|
||||
slot_id[i].write({
|
||||
'template_id': self.env['planning.slot.template'].search(
|
||||
|
||||
@@ -29,10 +29,10 @@
|
||||
<group>
|
||||
<field name="users_id" invisible="1"/>
|
||||
<field name="yuthon_company" invisible="1"/>
|
||||
<field name="date_start" required="1"/>
|
||||
<field name="date_end" required="1"/>
|
||||
<field name="days"/>
|
||||
<field name="hours"/>
|
||||
<field name="date_start" required="1"/>
|
||||
<field name="date_end" required="1"/>
|
||||
<field name="reason_application"/>
|
||||
<field name="is_issues" invisible="1"/>
|
||||
<field name="documents_ids" widget="preview_many2many"/>
|
||||
|
||||
@@ -31,7 +31,7 @@
|
||||
<field name="engineering_run_ids" string=" ">
|
||||
<tree editable="bottom">
|
||||
<field name="engineering_planning_id" column_invisible="1"/>
|
||||
<field name="sequence" widget="handle"/>
|
||||
<field name="sequence" />
|
||||
<field name="employee_id"/>
|
||||
</tree>
|
||||
</field>
|
||||
@@ -40,7 +40,7 @@
|
||||
<field name="other_run_ids" string=" ">
|
||||
<tree editable="bottom">
|
||||
<field name="engineering_planning_id" column_invisible="1"/>
|
||||
<field name="sequence" widget="handle"/>
|
||||
<field name="sequence"/>
|
||||
<field name="employee_id"/>
|
||||
<field name="regular_holidays"/>
|
||||
</tree>
|
||||
@@ -81,7 +81,7 @@
|
||||
<field name="all_run_ids" string=" ">
|
||||
<tree editable="bottom">
|
||||
<field name="engineering_planning_id" column_invisible="1"/>
|
||||
<field name="sequence" widget="handle"/>
|
||||
<field name="sequence"/>
|
||||
<field name="employee_id"/>
|
||||
</tree>
|
||||
</field>
|
||||
@@ -121,7 +121,7 @@
|
||||
<field name="high_run_ids" string=" ">
|
||||
<tree editable="bottom">
|
||||
<field name="engineering_planning_id" column_invisible="1"/>
|
||||
<field name="sequence" widget="handle"/>
|
||||
<field name="sequence"/>
|
||||
<field name="employee_id"/>
|
||||
</tree>
|
||||
</field>
|
||||
|
||||
@@ -10,7 +10,7 @@ class YuthonProperty(models.Model):
|
||||
|
||||
name = fields.Char(string="资产名称")
|
||||
referred = fields.Char(string="简称")
|
||||
premises = fields.Char(string="楼盘")
|
||||
premises = fields.Char(string="楼盘小区")
|
||||
units = fields.Char(string="单元")
|
||||
house_type_id = fields.Many2one('yuthon.resource.house.type', string="户型")
|
||||
property_room = fields.Text(string="区")
|
||||
@@ -28,7 +28,6 @@ class YuthonProperty(models.Model):
|
||||
is_done_split = fields.Boolean(string="已拆分")
|
||||
is_done_merge = fields.Boolean(string="已合并")
|
||||
|
||||
abbreviation = fields.Char(string="简称")
|
||||
property_floor = fields.Integer(string="楼层")
|
||||
property_orientation = fields.Selection([('north', '东'), ('south', '南'), ('east', '西'), ('west', '北')],
|
||||
string="朝向")
|
||||
@@ -39,20 +38,21 @@ class YuthonProperty(models.Model):
|
||||
state = fields.Selection([('to', '待评估'), ('done', '已评估'), ('ing', '评估中'),
|
||||
('ing_handover', '移交中'), ('done_handover', '已移交'),
|
||||
('filing', '备案中'), ('net', '挂网'), ('signing', '签约中'),
|
||||
('signed', '已备案'), ('leased', '已出租'), ('idle', '闲置')], string='状态', default='to')
|
||||
('signed', '已备案'), ('leased', '已租'), ('idle', '空置'), ('no_lease','不可租')], string='资产目前状态', default='to')
|
||||
is_meter = fields.Boolean(string="水表")
|
||||
live_room = fields.Many2one('yuthon.live.room', string="居住用房")
|
||||
is_electricity_meter = fields.Boolean(string="电表")
|
||||
yuthon_company = fields.Selection([('thtz', '天河投资集团'), ('thwg', '天河物管'), ('thlc', '天河粮储'), ('thtj', '天城投建')], string='所属公司')
|
||||
yuthon_company = fields.Selection([('thtz', '天河投资'), ('thwg', '天河物管'), ('thlc', '天河粮储'), ('thtj', '天投城建')], string='所属公司')
|
||||
admin_id = fields.Many2one('res.users', string="管理员")
|
||||
purpose_id = fields.Many2one('yuthon.resource.purpose', string="资产用途")
|
||||
mgmt_type_id = fields.Many2one('yuthon.resource.management.type', string="管理类型")
|
||||
purpose_id = fields.Many2one('yuthon.resource.purpose', string="管理类型")
|
||||
mgmt_type_id = fields.Many2one('yuthon.resource.management.type', string="权属类型")
|
||||
is_confirm_authorization = fields.Boolean(string="确权")
|
||||
owner_id = fields.Many2one('yuthon.owner.message', string="权属人")
|
||||
property_card = fields.Html(string="产权证")
|
||||
life_timer = fields.Datetime(string="使用时间")
|
||||
property_use_time = fields.Selection([('a', '70年'), ('b', '40年')], string="使用年限")
|
||||
property_precinct = fields.Char(string="片区")
|
||||
asset_type_id = fields.Many2one('yuthon.resource.type', string="资产类型")
|
||||
property_precinct = fields.Char(string="所属片区")
|
||||
asset_type_id = fields.Many2one('yuthon.resource.type', string="出租类型")
|
||||
is_hvac = fields.Boolean(string="使用中央空调")
|
||||
is_handle_land = fields.Boolean(string="办理土地有偿使用手续")
|
||||
property_use_id = fields.Integer(string="物业用途ID")
|
||||
@@ -69,8 +69,8 @@ class YuthonProperty(models.Model):
|
||||
end_date = fields.Date(string="失效日期")
|
||||
lessee_id = fields.Many2one('yuthon.property.lessee', string='承租方')
|
||||
manage_standard = fields.Char(string="物业管理费标准")
|
||||
title_address = fields.Char(string="产权地址")
|
||||
rental_address = fields.Char(string="出租地址")
|
||||
title_address = fields.Text(string="产权地址")
|
||||
rental_address = fields.Text(string="出租地址")
|
||||
ame = fields.Char(string='标题')
|
||||
decoration_type = fields.Selection([('blank', '毛坯'), ('hardcover', '精装'), ('brands', '简装'), ('rsz', '豪装')],
|
||||
string="装修类型")
|
||||
@@ -303,7 +303,7 @@ class ManageInformationLine(models.Model):
|
||||
_description = '管理信息明细行'
|
||||
|
||||
yuthon_property_id = fields.Many2one('yuthon.property', string="关联物业信息")
|
||||
purpose_id = fields.Many2one('yuthon.resource.purpose', string="资产用途")
|
||||
purpose_id = fields.Many2one('yuthon.resource.purpose', string="管理类型")
|
||||
precinct = fields.Char(string="片区")
|
||||
admin_id = fields.Many2one('res.users', string="管理员")
|
||||
yuthon_company = fields.Selection([('thtz', '天河投资集团'), ('thwg', '天河物管'), ('thlc', '天河粮储'), ('thtj', '天城投建')], string="所属公司")
|
||||
|
||||
@@ -25,9 +25,9 @@ class YuthonResourcePurpose(models.Model):
|
||||
|
||||
class YuthonResourceManagementType(models.Model):
|
||||
_name = 'yuthon.resource.management.type'
|
||||
_description = '管理类型'
|
||||
_description = '权属类型'
|
||||
|
||||
name = fields.Char(string="管理类型")
|
||||
name = fields.Char(string="权属类型")
|
||||
|
||||
|
||||
class YuthonResourceBillingType(models.Model):
|
||||
@@ -55,3 +55,9 @@ class YuthonRentalPurposes(models.Model):
|
||||
_description = '出租用途'
|
||||
|
||||
name = fields.Char(string="出租用途")
|
||||
|
||||
class YuthonLiveRoom(models.Model):
|
||||
_name = 'yuthon.live.room'
|
||||
_description = '居住用房'
|
||||
|
||||
name = fields.Char(string="居住用房")
|
||||
|
||||
@@ -43,4 +43,5 @@ access_property_check_stairs,property_check_stairs,model_property_check_stairs,b
|
||||
access_property_meter_reading,property_meter_reading,model_property_meter_reading,base.group_user,1,1,1,1
|
||||
access_property_message_fee,property_message_fee,model_property_message_fee,base.group_user,1,1,1,1
|
||||
access_yuthon_penalty_setting,yuthon_penalty_setting,model_yuthon_penalty_setting,base.group_user,1,1,1,1
|
||||
access_yuthon_tariff_setting,yuthon_tariff_setting,model_yuthon_tariff_setting,base.group_user,1,1,1,1
|
||||
access_yuthon_tariff_setting,yuthon_tariff_setting,model_yuthon_tariff_setting,base.group_user,1,1,1,1
|
||||
access_yuthon_live_room,yuthon_live_room,model_yuthon_live_room,base.group_user,1,1,1,1
|
||||
|
@@ -301,7 +301,7 @@
|
||||
sequence="50"/>
|
||||
|
||||
|
||||
<menuitem id="yuthon_resource_type_menu" parent="resource_mgmt_config_menu" name="资产类型"
|
||||
<menuitem id="yuthon_resource_type_menu" parent="resource_mgmt_config_menu" name="出租类型"
|
||||
action="yuthon_resource_type_action" sequence="10"/>
|
||||
<menuitem id="yuthon_owner_message_menu" parent="resource_mgmt_config_menu" name="权属人配置"
|
||||
action="yuthon_owner_message_action" sequence="12"/>
|
||||
@@ -309,9 +309,10 @@
|
||||
action="yuthon_resource_house_type_action" sequence="20"/>
|
||||
<menuitem id="yuthon_resource_purpose_menu" parent="resource_mgmt_config_menu" name="资源用途配置"
|
||||
action="yuthon_resource_purpose_action" sequence="30"/>
|
||||
|
||||
<menuitem id="yuthon_rental_purpose_menu" parent="resource_mgmt_config_menu" name="出租用途配置"
|
||||
action="yuthon_rental_purpose_action" sequence="32"/>
|
||||
<menuitem id="yuthon_resource_management_type_menu" parent="resource_mgmt_config_menu" name="管理类型"
|
||||
<menuitem id="yuthon_resource_management_type_menu" parent="resource_mgmt_config_menu" name="权属类型"
|
||||
action="yuthon_resource_management_type_action" sequence="10"/>
|
||||
<menuitem id="yuthon_resource_mgmt_config_menu" parent="resource_mgmt_config_menu" name="开票类型"
|
||||
action="yuthon_resource_mgmt_config_action" sequence="11"/>
|
||||
@@ -323,6 +324,8 @@
|
||||
action="yuthon_property_tariff_action" sequence="35"/>
|
||||
<menuitem id="yuthon_property_penalty_action_menu" parent="resource_mgmt_config_menu" name="违约金配置"
|
||||
action="yuthon_property_penalty_action" sequence="37"/>
|
||||
<menuitem id="yuthon_property_live_room_menu" parent="resource_mgmt_config_menu" name="居住用房配置"
|
||||
action="yuthon_live_room_action" sequence="40"/>
|
||||
|
||||
|
||||
|
||||
|
||||
@@ -49,8 +49,9 @@
|
||||
<group>
|
||||
<field name="image_1920" widget="image" class="oe_avatar"
|
||||
optional="{'preview_image': 'image_128'}"/>
|
||||
<field name="abbreviation"/>
|
||||
<field name="address"/>
|
||||
<field name="title_address"/>
|
||||
<field name="live_room"/>
|
||||
<field name="property_floor"/>
|
||||
<field name="property_orientation"/>
|
||||
<field name="street"/>
|
||||
@@ -188,7 +189,7 @@
|
||||
<filter name="group_purpose" string="资产用途" context="{'group_by': 'purpose_id'}"/>
|
||||
</group>
|
||||
<searchpanel>
|
||||
<field name="mgmt_type_id" string="管理类型"/>
|
||||
<field name="mgmt_type_id" string="权属类型"/>
|
||||
<field name="yuthon_company" string="所属公司"/>
|
||||
</searchpanel>
|
||||
</search>
|
||||
|
||||
@@ -11,7 +11,7 @@
|
||||
</field>
|
||||
</record>
|
||||
<record id="yuthon_resource_type_action" model="ir.actions.act_window">
|
||||
<field name="name">资产类型</field>
|
||||
<field name="name">出租类型</field>
|
||||
<field name="res_model">yuthon.resource.type</field>
|
||||
<field name="view_mode">tree</field>
|
||||
</record>
|
||||
@@ -56,7 +56,7 @@
|
||||
</field>
|
||||
</record>
|
||||
<record id="yuthon_resource_management_type_action" model="ir.actions.act_window">
|
||||
<field name="name">管理类型</field>
|
||||
<field name="name">权属类型</field>
|
||||
<field name="res_model">yuthon.resource.management.type</field>
|
||||
<field name="view_mode">tree</field>
|
||||
</record>
|
||||
@@ -118,4 +118,18 @@
|
||||
<field name="res_model">yuthon.rental.purpose</field>
|
||||
<field name="view_mode">tree</field>
|
||||
</record>
|
||||
<record id="view_yuthon_live_room_tree" model="ir.ui.view">
|
||||
<field name="name">yuthon.live.room.tree</field>
|
||||
<field name="model">yuthon.live.room</field>
|
||||
<field name="arch" type="xml">
|
||||
<tree editable="bottom">
|
||||
<field name="name"/>
|
||||
</tree>
|
||||
</field>
|
||||
</record>
|
||||
<record id="yuthon_live_room_action" model="ir.actions.act_window">
|
||||
<field name="name">居住用房配置</field>
|
||||
<field name="res_model">yuthon.live.room</field>
|
||||
<field name="view_mode">tree</field>
|
||||
</record>
|
||||
</odoo>
|
||||
|
||||
@@ -50,7 +50,7 @@ class EvaluateApplicationLine(models.Model):
|
||||
owner_id = fields.Many2one('yuthon.owner.message', string="权属人")
|
||||
assessment_category = fields.Selection([('rent_money', '租金'), ('value', '价值')], string="评估类别")
|
||||
registered_use = fields.Char(string='证载用途')
|
||||
purpose_id = fields.Many2one('yuthon.resource.purpose', string="资产用途")
|
||||
purpose_id = fields.Many2one('yuthon.resource.purpose', string="管理类型")
|
||||
rental_conditions = fields.Text(string='出租条件')
|
||||
current_status = fields.Date(string='现状(合同到期日)')
|
||||
evaluation_area = fields.Float(string='评估面积(m²)')
|
||||
|
||||
@@ -22,6 +22,6 @@ class PropertyInformation(models.Model):
|
||||
admin_id = fields.Many2one('res.users', string="管理员")
|
||||
precinct = fields.Char(string="片区")
|
||||
address = fields.Text(string="物业地址")
|
||||
management_type = fields.Char(string="管理类型")
|
||||
management_type = fields.Char(string="权属类型")
|
||||
property_id = fields.Char(string="物业ID")
|
||||
|
||||
|
||||
@@ -29,7 +29,7 @@ class PropertyInformationDetailLines(models.Model):
|
||||
new_company = fields.Char(string="新公司")
|
||||
new_admin = fields.Char(string="新管理员")
|
||||
new_precincts = fields.Char(string="新片区")
|
||||
new_management_type = fields.Char(string="新管理类型")
|
||||
new_management_type = fields.Char(string="新权属类型")
|
||||
|
||||
|
||||
|
||||
|
||||
@@ -29,7 +29,7 @@ class EvaluatedApplicationLine(models.Model):
|
||||
owner_id = fields.Many2one('yuthon.owner.message', string="权属人")
|
||||
assessment_category = fields.Selection([('rent_money', '租金'), ('value', '价值')], string="评估类别")
|
||||
registered_use = fields.Char(string='证载用途')
|
||||
purpose_id = fields.Many2one('yuthon.resource.purpose', string="资产用途")
|
||||
purpose_id = fields.Many2one('yuthon.resource.purpose', string="管理类型")
|
||||
rental_conditions = fields.Text(string='出租条件')
|
||||
current_status = fields.Date(string='现状(合同到期日)')
|
||||
evaluation_area = fields.Float(string='评估面积(m²)')
|
||||
|
||||
Binary file not shown.
|
After Width: | Height: | Size: 3.5 KiB |
@@ -20,126 +20,6 @@
|
||||
parent="hr_attendance_root_board"
|
||||
action="yuthon_hr_attendance.view_action_card_remind"
|
||||
sequence="3"/>
|
||||
<menuitem id="menu_hr_attendance_security_record_board"
|
||||
name="保安部计划"
|
||||
parent="hr_attendance_root_board"
|
||||
sequence="5"/>
|
||||
<menuitem id="menu_hr_plan_sources_arrange_board1"
|
||||
name="排版规则"
|
||||
parent="menu_hr_attendance_security_record_board"
|
||||
action="yuthon_hr_attendance.yuthon_shift_planning_view_action"
|
||||
sequence="1"/>
|
||||
<menuitem id="menu_hr_attendance_guard_planning_board"
|
||||
name="排班计划"
|
||||
parent="menu_hr_attendance_security_record_board"
|
||||
sequence="2"/>
|
||||
<menuitem id="menu_hr_plan_sources_guard_all_board"
|
||||
name="全部计划"
|
||||
parent="menu_hr_attendance_guard_planning_board"
|
||||
action="yuthon_hr_attendance.action_planning_slot_all_form1"
|
||||
sequence="2"/>
|
||||
<menuitem id="menu_hr_plan_sources_guard_a_board"
|
||||
name="班组A计划"
|
||||
parent="menu_hr_attendance_guard_planning_board"
|
||||
action="yuthon_hr_attendance.action_planning_slot_all_form2"
|
||||
groups="yuthon_hr_attendance.group_property_class_a_admin"
|
||||
sequence="3"/>
|
||||
<menuitem id="menu_hr_plan_sources_guard_b_board"
|
||||
name="班组B计划"
|
||||
parent="menu_hr_attendance_guard_planning_board"
|
||||
action="yuthon_hr_attendance.action_planning_slot_all_form3"
|
||||
groups="yuthon_hr_attendance.group_property_class_b_admin"
|
||||
sequence="4"/>
|
||||
<menuitem id="menu_hr_plan_sources_guard_c_board"
|
||||
name="班组C计划"
|
||||
parent="menu_hr_attendance_guard_planning_board"
|
||||
action="yuthon_hr_attendance.action_planning_slot_all_form4"
|
||||
groups="yuthon_hr_attendance.group_property_class_c_admin"
|
||||
sequence="5"/>
|
||||
<menuitem id="menu_hr_attendance_security_record1"
|
||||
name="考勤记录"
|
||||
parent="menu_hr_attendance_security_record_board"
|
||||
action="yuthon_hr_attendance.hr_attendance_action2"
|
||||
sequence="5"/>
|
||||
<menuitem id="menu_hr_attendance_planning_board"
|
||||
name="班次名称"
|
||||
parent="menu_hr_attendance_security_record_board"
|
||||
action="yuthon_hr_attendance.action_planning_role_form1"
|
||||
sequence="6"/>
|
||||
<menuitem id="menu_hr_attendance_slot_template_role"
|
||||
name="班次模板"
|
||||
parent="menu_hr_attendance_security_record_board"
|
||||
action="yuthon_hr_attendance.action_planning_slot_template_form1"
|
||||
sequence="7"/>
|
||||
|
||||
<menuitem id="menu_hr_attendance_engineering_record_board"
|
||||
name="工程部计划"
|
||||
parent="hr_attendance_root_board"
|
||||
sequence="7"/>
|
||||
<menuitem id="menu_hr_attendance_all_board"
|
||||
name="排班规则"
|
||||
parent="menu_hr_attendance_engineering_record_board"
|
||||
sequence="1"/>
|
||||
<menuitem id="menu_hr_attendance_planning_run_board"
|
||||
name="运行班排班"
|
||||
parent="menu_hr_attendance_all_board"
|
||||
action="yuthon_hr_attendance.action_yuthon_run_planning"
|
||||
sequence="3"/>
|
||||
<menuitem id="menu_hr_attendance_planning_high_board"
|
||||
name="高压班排班"
|
||||
parent="menu_hr_attendance_all_board"
|
||||
action="yuthon_hr_attendance.action_yuthon_high_planning"
|
||||
sequence="4"/>
|
||||
<menuitem id="menu_hr_attendance_planning_integrated_board"
|
||||
name="综合班排班"
|
||||
parent="menu_hr_attendance_all_board"
|
||||
action="yuthon_hr_attendance.action_yuthon_integrated_planning"
|
||||
sequence="5"/>
|
||||
|
||||
<menuitem id="menu_hr_attendance_all_planning_board"
|
||||
name="排班计划"
|
||||
parent="menu_hr_attendance_engineering_record_board"
|
||||
sequence="3"/>
|
||||
<menuitem id="menu_hr_plan_sources_all_board"
|
||||
name="全部"
|
||||
parent="menu_hr_attendance_all_planning_board"
|
||||
action="yuthon_hr_attendance.action_planning_slot_form2"
|
||||
sequence="1"/>
|
||||
<menuitem id="menu_hr_plan_sources_all_board1"
|
||||
name="运行班计划"
|
||||
parent="menu_hr_attendance_all_planning_board"
|
||||
action="yuthon_hr_attendance.action_planning_slot_form3"
|
||||
groups="yuthon_hr_attendance.group_property_run_admin"
|
||||
sequence="6"/>
|
||||
<menuitem id="menu_hr_plan_sources_all_board2"
|
||||
name="高压班计划"
|
||||
parent="menu_hr_attendance_all_planning_board"
|
||||
action="yuthon_hr_attendance.action_planning_slot_form4"
|
||||
groups="yuthon_hr_attendance.group_property_hv_admin"
|
||||
sequence="7"/>
|
||||
<menuitem id="menu_hr_plan_sources_all_board3"
|
||||
name="综合班计划"
|
||||
parent="menu_hr_attendance_all_planning_board"
|
||||
action="yuthon_hr_attendance.action_planning_slot_form5"
|
||||
groups="yuthon_hr_attendance.group_property_integrated_admin"
|
||||
sequence="8"/>
|
||||
|
||||
<menuitem id="menu_hr_attendance_security_record2"
|
||||
name="考勤记录"
|
||||
parent="menu_hr_attendance_engineering_record_board"
|
||||
action="yuthon_hr_attendance.hr_attendance_action3"
|
||||
sequence="9"/>
|
||||
<menuitem id="menu_hr_attendance_planning_board1"
|
||||
name="班次名称"
|
||||
parent="menu_hr_attendance_engineering_record_board"
|
||||
action="yuthon_hr_attendance.action_planning_role_form2"
|
||||
sequence="10"/>
|
||||
<menuitem id="menu_hr_attendance_slot_template_role1"
|
||||
name="班次模板"
|
||||
parent="menu_hr_attendance_engineering_record_board"
|
||||
action="yuthon_hr_attendance.action_planning_slot_template_form2"
|
||||
sequence="11"/>
|
||||
|
||||
|
||||
<menuitem id="hr_attendance_record_root_board"
|
||||
name="考勤记录"
|
||||
@@ -161,100 +41,6 @@
|
||||
action="yuthon_hr_attendance.action_attendance_yuthon_company_form3"
|
||||
sequence="7"/>
|
||||
|
||||
<!-- 值班相关 -->
|
||||
<menuitem id="menu_hr_attendance_duty_summary_menu_board"
|
||||
name="粮库计划"
|
||||
parent="hr_attendance_root_board"
|
||||
sequence="9"/>
|
||||
<menuitem id="menu_hr_attendance_duty_plan_board"
|
||||
name="排版规则"
|
||||
parent="menu_hr_attendance_duty_summary_menu_board"
|
||||
action="yuthon_hr_attendance.view_yuthon_duty_plan_action"
|
||||
sequence="1"/>
|
||||
<menuitem id="menu_hr_attendance_duty_summary_board"
|
||||
name="排班计划"
|
||||
parent="menu_hr_attendance_duty_summary_menu_board"
|
||||
action="yuthon_hr_attendance.action_planning_slot_form6"
|
||||
sequence="3"/>
|
||||
<menuitem id="menu_hr_attendance_duty_record_board"
|
||||
name="考勤记录"
|
||||
parent="menu_hr_attendance_duty_summary_menu_board"
|
||||
action="yuthon_hr_attendance.hr_attendance_action4"
|
||||
sequence="9"/>
|
||||
<!-- <menuitem id="menu_hr_attendance_summary_root_board"-->
|
||||
<!-- name="值班汇总"-->
|
||||
<!-- parent="menu_hr_attendance_duty_summary_menu_board"-->
|
||||
<!-- action="yuthon_hr_attendance.view_yuthon_duty_summary_action"-->
|
||||
<!-- sequence="15"/>-->
|
||||
<menuitem id="menu_hr_attendance_duty_summary_flow_board"
|
||||
name="流程"
|
||||
parent="menu_hr_attendance_duty_summary_menu_board"
|
||||
sequence="19"/>
|
||||
<menuitem id="menu_adjustments_approval_board"
|
||||
name="值班调休"
|
||||
parent="menu_hr_attendance_duty_summary_flow_board"
|
||||
sequence="1"
|
||||
action="yuthon_hr_attendance.view_yuthon_adjustments_approval_action"/>
|
||||
<menuitem id="menu_yuthon_abnormal_approval_board"
|
||||
name="值班补卡"
|
||||
parent="menu_hr_attendance_duty_summary_flow_board"
|
||||
sequence="3"
|
||||
action="yuthon_hr_attendance.view_yuthon_abnormal_approval_action"/>
|
||||
<menuitem id="menu_yuthon_duty_summary_setting"
|
||||
name="配置"
|
||||
parent="menu_hr_attendance_duty_summary_menu_board"
|
||||
sequence="99"/>
|
||||
<menuitem id="menu_yuthon_duty_shows_class_board"
|
||||
name="班组配置"
|
||||
parent="menu_yuthon_duty_summary_setting"
|
||||
sequence="2"
|
||||
action="yuthon_hr_attendance.action_yuthon_duty_class_setting"/>
|
||||
<menuitem id="menu_yuthon_duty_action_planning_role_board"
|
||||
name="班次名称"
|
||||
parent="menu_yuthon_duty_summary_setting"
|
||||
sequence="5"
|
||||
action="yuthon_hr_attendance.action_planning_role_form3"/>
|
||||
<menuitem id="menu_yuthon_duty_action_planning_template_board"
|
||||
name="班次模板"
|
||||
parent="menu_yuthon_duty_summary_setting"
|
||||
sequence="7"
|
||||
action="yuthon_hr_attendance.action_planning_slot_template_form3"/>
|
||||
<menuitem id="menu_yuthon_abnormal_setting_board"
|
||||
name="值班补卡次数"
|
||||
parent="menu_yuthon_duty_summary_setting"
|
||||
sequence="15"
|
||||
action="yuthon_hr_attendance.view_yuthon_abnormal_setting_action"/>
|
||||
<!--客服计划-->
|
||||
<menuitem id="menu_hr_attendance_customer_board"
|
||||
name="客服计划"
|
||||
parent="hr_attendance_root_board"
|
||||
sequence="12"/>
|
||||
<menuitem id="menu_hr_attendance_customer_flow_board"
|
||||
name="排班规则"
|
||||
parent="menu_hr_attendance_customer_board"
|
||||
action="yuthon_hr_attendance.yuthon_customer_planning_view_action"
|
||||
sequence="1"/>
|
||||
<menuitem id="menu_hr_attendance_customer_summary_board"
|
||||
name="排班计划"
|
||||
parent="menu_hr_attendance_customer_board"
|
||||
action="yuthon_hr_attendance.action_planning_slot_form7"
|
||||
sequence="3"/>
|
||||
<menuitem id="menu_hr_attendance_duty_customer_record_board"
|
||||
name="考勤记录"
|
||||
parent="menu_hr_attendance_customer_board"
|
||||
action="yuthon_hr_attendance.hr_attendance_action5"
|
||||
sequence="3"/>
|
||||
<menuitem id="menu_yuthon_customer_planning_board"
|
||||
name="班次名称"
|
||||
parent="menu_hr_attendance_customer_board"
|
||||
action="yuthon_hr_attendance.action_planning_role_form4"
|
||||
sequence="5"/>
|
||||
<menuitem id="menu_yuthon_customer_action_planning_template_board"
|
||||
name="班次模板"
|
||||
parent="menu_hr_attendance_customer_board"
|
||||
action="yuthon_hr_attendance.action_planning_slot_template_form4"
|
||||
sequence="13"/>
|
||||
|
||||
<!-- 计划相关 -->
|
||||
<menuitem id="menu_hr_attendance_approval_request_board"
|
||||
name="流程"
|
||||
@@ -319,4 +105,242 @@
|
||||
parent="attendance_resources_setting_root_board"
|
||||
sequence="4"
|
||||
action="yuthon_hr_attendance.view_overtime_page_action"/>
|
||||
|
||||
<menuitem id="yuthon_attendance_planning_board"
|
||||
name="计划考勤"
|
||||
web_icon="yuthon_work_brand,static/description/planning.png"
|
||||
sequence="9"/>
|
||||
|
||||
<menuitem id="menu_hr_attendance_security_record_board"
|
||||
name="保安部计划"
|
||||
parent="yuthon_attendance_planning_board"
|
||||
sequence="5"/>
|
||||
<menuitem id="menu_hr_attendance_my_record_board"
|
||||
name="我的考勤"
|
||||
parent="menu_hr_attendance_security_record_board"
|
||||
action="yuthon_hr_attendance.hr_attendance_action1"
|
||||
sequence="1"/>
|
||||
<menuitem id="menu_hr_plan_sources_arrange_board1"
|
||||
name="排版规则"
|
||||
parent="menu_hr_attendance_security_record_board"
|
||||
action="yuthon_hr_attendance.yuthon_shift_planning_view_action"
|
||||
sequence="2"/>
|
||||
<menuitem id="menu_hr_attendance_guard_planning_board"
|
||||
name="排班计划"
|
||||
parent="menu_hr_attendance_security_record_board"
|
||||
sequence="3"/>
|
||||
<menuitem id="menu_hr_plan_sources_guard_a_board"
|
||||
name="班组A计划"
|
||||
parent="menu_hr_attendance_guard_planning_board"
|
||||
action="yuthon_hr_attendance.action_planning_slot_all_form2"
|
||||
groups="yuthon_hr_attendance.group_property_class_a_admin"
|
||||
sequence="3"/>
|
||||
<menuitem id="menu_hr_plan_sources_guard_b_board"
|
||||
name="班组B计划"
|
||||
parent="menu_hr_attendance_guard_planning_board"
|
||||
action="yuthon_hr_attendance.action_planning_slot_all_form3"
|
||||
groups="yuthon_hr_attendance.group_property_class_b_admin"
|
||||
sequence="4"/>
|
||||
<menuitem id="menu_hr_plan_sources_guard_c_board"
|
||||
name="班组C计划"
|
||||
parent="menu_hr_attendance_guard_planning_board"
|
||||
action="yuthon_hr_attendance.action_planning_slot_all_form4"
|
||||
groups="yuthon_hr_attendance.group_property_class_c_admin"
|
||||
sequence="5"/>
|
||||
<menuitem id="menu_hr_attendance_security_record1"
|
||||
name="考勤记录"
|
||||
parent="menu_hr_attendance_security_record_board"
|
||||
action="yuthon_hr_attendance.hr_attendance_action2"
|
||||
sequence="5"/>
|
||||
<menuitem id="menu_hr_attendance_planning_board"
|
||||
name="班次名称"
|
||||
parent="menu_hr_attendance_security_record_board"
|
||||
action="yuthon_hr_attendance.action_planning_role_form1"
|
||||
sequence="6"/>
|
||||
<menuitem id="menu_hr_attendance_slot_template_role"
|
||||
name="班次模板"
|
||||
parent="menu_hr_attendance_security_record_board"
|
||||
action="yuthon_hr_attendance.action_planning_slot_template_form1"
|
||||
sequence="7"/>
|
||||
|
||||
<menuitem id="menu_hr_attendance_engineering_record_board"
|
||||
name="工程部计划"
|
||||
parent="yuthon_attendance_planning_board"
|
||||
sequence="7"/>
|
||||
<menuitem id="menu_hr_attendance_my_record_board"
|
||||
name="我的考勤"
|
||||
parent="menu_hr_attendance_engineering_record_board"
|
||||
action="yuthon_hr_attendance.hr_attendance_action1"
|
||||
sequence="1"/>
|
||||
<menuitem id="menu_hr_attendance_all_board"
|
||||
name="排班规则"
|
||||
parent="menu_hr_attendance_engineering_record_board"
|
||||
sequence="2"/>
|
||||
<menuitem id="menu_hr_attendance_planning_run_board"
|
||||
name="运行班排班"
|
||||
parent="menu_hr_attendance_all_board"
|
||||
action="yuthon_hr_attendance.action_yuthon_run_planning"
|
||||
sequence="3"/>
|
||||
<menuitem id="menu_hr_attendance_planning_high_board"
|
||||
name="高压班排班"
|
||||
parent="menu_hr_attendance_all_board"
|
||||
action="yuthon_hr_attendance.action_yuthon_high_planning"
|
||||
sequence="4"/>
|
||||
<menuitem id="menu_hr_attendance_planning_integrated_board"
|
||||
name="综合班排班"
|
||||
parent="menu_hr_attendance_all_board"
|
||||
action="yuthon_hr_attendance.action_yuthon_integrated_planning"
|
||||
sequence="5"/>
|
||||
|
||||
<menuitem id="menu_hr_attendance_all_planning_board"
|
||||
name="排班计划"
|
||||
parent="menu_hr_attendance_engineering_record_board"
|
||||
sequence="3"/>
|
||||
<menuitem id="menu_hr_plan_sources_all_board1"
|
||||
name="运行班计划"
|
||||
parent="menu_hr_attendance_all_planning_board"
|
||||
action="yuthon_hr_attendance.action_planning_slot_form3"
|
||||
groups="yuthon_hr_attendance.group_property_run_admin"
|
||||
sequence="6"/>
|
||||
<menuitem id="menu_hr_plan_sources_all_board2"
|
||||
name="高压班计划"
|
||||
parent="menu_hr_attendance_all_planning_board"
|
||||
action="yuthon_hr_attendance.action_planning_slot_form4"
|
||||
groups="yuthon_hr_attendance.group_property_hv_admin"
|
||||
sequence="7"/>
|
||||
<menuitem id="menu_hr_plan_sources_all_board3"
|
||||
name="综合班计划"
|
||||
parent="menu_hr_attendance_all_planning_board"
|
||||
action="yuthon_hr_attendance.action_planning_slot_form5"
|
||||
groups="yuthon_hr_attendance.group_property_integrated_admin"
|
||||
sequence="8"/>
|
||||
|
||||
<menuitem id="menu_hr_attendance_security_record2"
|
||||
name="考勤记录"
|
||||
parent="menu_hr_attendance_engineering_record_board"
|
||||
action="yuthon_hr_attendance.hr_attendance_action3"
|
||||
sequence="9"/>
|
||||
<menuitem id="menu_hr_attendance_planning_board1"
|
||||
name="班次名称"
|
||||
parent="menu_hr_attendance_engineering_record_board"
|
||||
action="yuthon_hr_attendance.action_planning_role_form2"
|
||||
sequence="10"/>
|
||||
<menuitem id="menu_hr_attendance_slot_template_role1"
|
||||
name="班次模板"
|
||||
parent="menu_hr_attendance_engineering_record_board"
|
||||
action="yuthon_hr_attendance.action_planning_slot_template_form2"
|
||||
sequence="11"/>
|
||||
|
||||
<!-- 值班相关 -->
|
||||
<menuitem id="menu_hr_attendance_duty_summary_menu_board"
|
||||
name="粮库计划"
|
||||
parent="yuthon_attendance_planning_board"
|
||||
sequence="9"/>
|
||||
<menuitem id="menu_hr_attendance_my_record_board"
|
||||
name="我的考勤"
|
||||
parent="menu_hr_attendance_duty_summary_menu_board"
|
||||
action="yuthon_hr_attendance.hr_attendance_action1"
|
||||
sequence="1"/>
|
||||
<menuitem id="menu_hr_attendance_duty_plan_board"
|
||||
name="排版规则"
|
||||
parent="menu_hr_attendance_duty_summary_menu_board"
|
||||
action="yuthon_hr_attendance.view_yuthon_duty_plan_action"
|
||||
sequence="2"/>
|
||||
<menuitem id="menu_hr_attendance_duty_summary_board"
|
||||
name="排班计划"
|
||||
parent="menu_hr_attendance_duty_summary_menu_board"
|
||||
action="yuthon_hr_attendance.action_planning_slot_form6"
|
||||
sequence="3"/>
|
||||
<menuitem id="menu_hr_attendance_duty_record_board"
|
||||
name="考勤记录"
|
||||
parent="menu_hr_attendance_duty_summary_menu_board"
|
||||
action="yuthon_hr_attendance.hr_attendance_action4"
|
||||
sequence="9"/>
|
||||
<menuitem id="menu_hr_attendance_duty_summary_flow_board"
|
||||
name="流程"
|
||||
parent="menu_hr_attendance_duty_summary_menu_board"
|
||||
sequence="19"/>
|
||||
<menuitem id="menu_adjustments_approval_board"
|
||||
name="值班调休"
|
||||
parent="menu_hr_attendance_duty_summary_flow_board"
|
||||
sequence="1"
|
||||
action="yuthon_hr_attendance.view_yuthon_adjustments_approval_action"/>
|
||||
<menuitem id="menu_yuthon_abnormal_approval_board"
|
||||
name="值班补卡"
|
||||
parent="menu_hr_attendance_duty_summary_flow_board"
|
||||
sequence="3"
|
||||
action="yuthon_hr_attendance.view_yuthon_abnormal_approval_action"/>
|
||||
<menuitem id="menu_yuthon_duty_summary_setting"
|
||||
name="配置"
|
||||
parent="menu_hr_attendance_duty_summary_menu_board"
|
||||
sequence="99"/>
|
||||
<menuitem id="menu_yuthon_duty_shows_class_board"
|
||||
name="班组配置"
|
||||
parent="menu_yuthon_duty_summary_setting"
|
||||
sequence="2"
|
||||
action="yuthon_hr_attendance.action_yuthon_duty_class_setting"/>
|
||||
<menuitem id="menu_yuthon_duty_action_planning_role_board"
|
||||
name="班次名称"
|
||||
parent="menu_yuthon_duty_summary_setting"
|
||||
sequence="5"
|
||||
action="yuthon_hr_attendance.action_planning_role_form3"/>
|
||||
<menuitem id="menu_yuthon_duty_action_planning_template_board"
|
||||
name="班次模板"
|
||||
parent="menu_yuthon_duty_summary_setting"
|
||||
sequence="7"
|
||||
action="yuthon_hr_attendance.action_planning_slot_template_form3"/>
|
||||
<menuitem id="menu_yuthon_abnormal_setting_board"
|
||||
name="值班补卡次数"
|
||||
parent="menu_yuthon_duty_summary_setting"
|
||||
sequence="15"
|
||||
action="yuthon_hr_attendance.view_yuthon_abnormal_setting_action"/>
|
||||
<!--客服计划-->
|
||||
<menuitem id="menu_hr_attendance_customer_board"
|
||||
name="客服计划"
|
||||
parent="yuthon_attendance_planning_board"
|
||||
sequence="12"/>
|
||||
<menuitem id="menu_hr_attendance_my_record_board"
|
||||
name="我的考勤"
|
||||
parent="menu_hr_attendance_customer_board"
|
||||
action="yuthon_hr_attendance.hr_attendance_action1"
|
||||
sequence="1"/>
|
||||
<menuitem id="menu_hr_attendance_customer_flow_board"
|
||||
name="排班规则"
|
||||
parent="menu_hr_attendance_customer_board"
|
||||
action="yuthon_hr_attendance.yuthon_customer_planning_view_action"
|
||||
sequence="2"/>
|
||||
<menuitem id="menu_hr_attendance_customer_summary_board"
|
||||
name="排班计划"
|
||||
parent="menu_hr_attendance_customer_board"
|
||||
action="yuthon_hr_attendance.action_planning_slot_form7"
|
||||
sequence="3"/>
|
||||
<menuitem id="menu_hr_attendance_duty_customer_record_board"
|
||||
name="考勤记录"
|
||||
parent="menu_hr_attendance_customer_board"
|
||||
action="yuthon_hr_attendance.hr_attendance_action5"
|
||||
sequence="3"/>
|
||||
<menuitem id="menu_yuthon_customer_planning_board"
|
||||
name="班次名称"
|
||||
parent="menu_hr_attendance_customer_board"
|
||||
action="yuthon_hr_attendance.action_planning_role_form4"
|
||||
sequence="5"/>
|
||||
<menuitem id="menu_yuthon_customer_action_planning_template_board"
|
||||
name="班次模板"
|
||||
parent="menu_hr_attendance_customer_board"
|
||||
action="yuthon_hr_attendance.action_planning_slot_template_form4"
|
||||
sequence="13"/>
|
||||
<menuitem id="menu_yuthon_customer_process_board"
|
||||
name="流程"
|
||||
parent="menu_hr_attendance_customer_board"
|
||||
sequence="15"/>
|
||||
<menuitem id="menu_yuthon_shift_approval_board"
|
||||
name="调替班申请"
|
||||
parent="menu_yuthon_customer_process_board"
|
||||
sequence="5"
|
||||
action="yuthon_hr_attendance.view_yuthon_shift_approval_action"/>
|
||||
<menuitem id="menu_hr_attendance_special_approval_board"
|
||||
name="特殊加班申请"
|
||||
parent="menu_yuthon_customer_process_board"
|
||||
sequence="15"
|
||||
action="yuthon_hr_attendance.view_special_approval_action"/>
|
||||
</odoo>
|
||||
Reference in New Issue
Block a user