Merge branch 'dev' of https://gitee.com/jinan-pengyusen-data/gzth into dev_wang
This commit is contained in:
@@ -342,21 +342,16 @@ class HrAttendance(models.Model):
|
||||
continue
|
||||
|
||||
url = f'https://phone.thtzjt.com/phone/AttendanceSummary/{fields.date.today().year}/{fields.date.today().month}/{emp.user_id.id}'
|
||||
self.sudo().env["wecom.apps"].sync_send_message_textcard(category='att_ok',
|
||||
self.sudo().env["wecom.apps"].sync_send_message_textcard(category='att',
|
||||
user_id=emp.wecom_userid,
|
||||
title=f'【{title}】',
|
||||
description='考勤异常请尽快处理',
|
||||
url=url, btntxt="查看详情")
|
||||
self.sudo().env["wecom.apps"].sync_send_message_textcard(category='att_ok',
|
||||
self.sudo().env["wecom.apps"].sync_send_message_textcard(category='att',
|
||||
user_id='18562027762',
|
||||
title='【考勤异常提醒】',
|
||||
description='考勤异常请尽快处理',
|
||||
url=url, btntxt="查看详情")
|
||||
self.sudo().env["wecom.apps"].sync_send_message_textcard(category='att_ok',
|
||||
user_id='78',
|
||||
title=f'【{title}】',
|
||||
description=f'单独给叶发的测试{emp.name}后续关掉',
|
||||
url=url, btntxt="查看详情")
|
||||
|
||||
def missing_card_judgment(self):
|
||||
today = fields.Date.today()
|
||||
|
||||
@@ -3,6 +3,7 @@
|
||||
|
||||
from odoo import models, fields, api, exceptions, _
|
||||
from datetime import timedelta
|
||||
from dateutil.relativedelta import relativedelta
|
||||
|
||||
|
||||
class PropertyManagement(models.Model):
|
||||
@@ -79,14 +80,88 @@ class PropertyManagement(models.Model):
|
||||
|
||||
def approval_end(self):
|
||||
for record in self:
|
||||
for line in record.management_line2_ids:
|
||||
for manage_line in record.management_line2_ids:
|
||||
# 更新信息行的结束日期
|
||||
if line.information_line_id:
|
||||
line.information_line_id.write({'end_date': fields.Date.today()})
|
||||
if manage_line.information_line_id:
|
||||
manage_line.information_line_id.write({'end_date': fields.Date.today()})
|
||||
# 直接从关联的上一条记录获取值(如果存在)
|
||||
prev_info = line.information_line_id
|
||||
prev_info = manage_line.information_line_id
|
||||
target_start_time = record.start_time
|
||||
target_property_id = line.property_id.id
|
||||
target_property_id = manage_line.property_id.id
|
||||
|
||||
if prev_info.company_id.id != record.company_id.id:
|
||||
lease_contract = self.env['property.lease.contract.line'].search(
|
||||
[('address_id', '=', manage_line.property_id.id),
|
||||
('lease_id', '!=', False),
|
||||
('lease_id.contact_state', '=', 'ing'),
|
||||
], limit=1)
|
||||
if lease_contract:
|
||||
lease_contract_ids = lease_contract.lease_id
|
||||
version_str = lease_contract_ids.version.lstrip('V')
|
||||
main_version = version_str.split('.')[0]
|
||||
new_main_version = int(main_version) + 1
|
||||
new_version = f"V{new_main_version}.0"
|
||||
record_id = self.env['property.lease.contract'].search(
|
||||
[('contract_code', '=', lease_contract_ids.contract_code),
|
||||
('version', '=', new_version)
|
||||
])
|
||||
if record_id:
|
||||
continue
|
||||
new_contract = lease_contract_ids.with_context(skip_contract_code_check=True).copy()
|
||||
new_contract.write({
|
||||
'work_end': False,
|
||||
'version': new_version,
|
||||
'condition': 'new',
|
||||
'code': self.env['ir.sequence'].next_by_code('property_lease_contract_code'),
|
||||
'self_users_ids': [(6, 0, [self.env.user.id])],
|
||||
'contact_state': 'to',
|
||||
})
|
||||
new_contract.lessor_id = record.company_id.id
|
||||
new_contract.users_id = record.user_id
|
||||
lease_contract.lease_id.contact_state = 'terminate'
|
||||
water_lines = self.env['property.water.fee.line'].search([
|
||||
('contract_id', '=', lease_contract.lease_id.id)
|
||||
])
|
||||
for line in water_lines:
|
||||
line.copy({'contract_id': new_contract.id})
|
||||
# 复制电费明细行
|
||||
electric_lines = self.env['property.electric.fee.line'].search([
|
||||
('contract_id', '=', lease_contract.lease_id.id)
|
||||
])
|
||||
for line in electric_lines:
|
||||
line.copy({'contract_id': new_contract.id})
|
||||
# 复制物业管理费明细行
|
||||
manage_lines = self.env['property.management.breakdown.line'].search([
|
||||
('breakdown_id', '=', lease_contract.lease_id.id)
|
||||
])
|
||||
for line in manage_lines:
|
||||
line.copy({'breakdown_id': new_contract.id})
|
||||
# 复制其他费用明细行
|
||||
other_lines = self.env['property.other.fee.line'].search([
|
||||
('other_id', '=', lease_contract.lease_id.id)
|
||||
])
|
||||
for line in other_lines:
|
||||
line.copy({'other_id': new_contract.id})
|
||||
# 复制子合同明细
|
||||
subset_lines = self.env['property.subset.contract'].search([
|
||||
('subset_id', '=', lease_contract.lease_id.id)
|
||||
])
|
||||
for line in subset_lines:
|
||||
line.copy({'subset_id': new_contract.id})
|
||||
lease_lines = self.env['property.lease.contract.line'].search([
|
||||
('lease_id', '=', lease_contract.lease_id.id)
|
||||
])
|
||||
for line in lease_lines:
|
||||
line.copy({'lease_id': new_contract.id})
|
||||
lease_contract.lease_id.term_end_time = record.start_time - relativedelta(days=1)
|
||||
lease_contract.lease_id.actual_end_time = record.start_time - relativedelta(days=1)
|
||||
new_contract.term_start_time = record.start_time
|
||||
new_contract.actual_start_time = record.start_time
|
||||
new_contract._compute_name()
|
||||
new_contract._onchange_contract_sort()
|
||||
new_contract._update_wkf_records()
|
||||
new_contract._onchange_action_generate_details()
|
||||
|
||||
existing_info = self.env['manage.information.line'].search([
|
||||
('yuthon_property_id', '=', target_property_id),
|
||||
('start_time', '=', target_start_time)
|
||||
@@ -97,7 +172,7 @@ class PropertyManagement(models.Model):
|
||||
|
||||
# 创建新的信息行记录,从prev_info获取缺失的值
|
||||
info_line_vals = {
|
||||
'yuthon_property_id': line.property_id.id,
|
||||
'yuthon_property_id': manage_line.property_id.id,
|
||||
'purpose_id': record.purpose_id.id if record.purpose_id else prev_info.purpose_id.id,
|
||||
'precinct_id': record.precinct_id.id if record.precinct_id else prev_info.precinct_id.id,
|
||||
'management_area': prev_info.management_area if prev_info else 0.0,
|
||||
@@ -110,8 +185,7 @@ class PropertyManagement(models.Model):
|
||||
prev_info.end_date = record.start_time - timedelta(days=1)
|
||||
# 创建新记录
|
||||
self.env['manage.information.line'].create(info_line_vals)
|
||||
line.property_id.compute_information_fields()
|
||||
|
||||
manage_line.property_id.compute_information_fields()
|
||||
record.write({'is_line': True})
|
||||
|
||||
def put_property_management(self):
|
||||
|
||||
Reference in New Issue
Block a user