Merge pull request !873 from 李鹏宇/dev
This commit is contained in:
李鹏宇
2024-12-21 13:13:59 +00:00
committed by Gitee
18 changed files with 322 additions and 276 deletions
@@ -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(
+2 -2
View File
@@ -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>
+11 -11
View File
@@ -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="居住用房")
+2 -1
View File
@@ -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
1 id name model_id:id group_id:id perm_read perm_write perm_create perm_unlink
43 access_property_meter_reading property_meter_reading model_property_meter_reading base.group_user 1 1 1 1
44 access_property_message_fee property_message_fee model_property_message_fee base.group_user 1 1 1 1
45 access_yuthon_penalty_setting yuthon_penalty_setting model_yuthon_penalty_setting base.group_user 1 1 1 1
46 access_yuthon_tariff_setting yuthon_tariff_setting model_yuthon_tariff_setting base.group_user 1 1 1 1
47 access_yuthon_live_room yuthon_live_room model_yuthon_live_room base.group_user 1 1 1 1
+5 -2
View File
@@ -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

+238 -214
View File
@@ -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>