添加功能
This commit is contained in:
@@ -76,17 +76,6 @@ class PropertyMeterWizard(models.Model):
|
||||
# 处理类型转换
|
||||
type_dict = {'公共': 'public', '收费': 'fees', '': ''}
|
||||
meter_type = type_dict.get(row[7].value if len(row) > 7 else '', '')
|
||||
|
||||
# 处理物业信息
|
||||
property_id = None
|
||||
if installation_location: # 使用安装位置匹配物业
|
||||
property_search = self.env['yuthon.property'].search(
|
||||
[('name', '=', installation_location)],
|
||||
limit=1
|
||||
)
|
||||
if property_search:
|
||||
property_id = property_search
|
||||
|
||||
current_read_index = month + 9
|
||||
meter_date = datetime(2025, month, 15)
|
||||
current_read = None
|
||||
@@ -96,13 +85,31 @@ class PropertyMeterWizard(models.Model):
|
||||
except ValueError:
|
||||
current_read = None
|
||||
|
||||
# 查找或创建主表记录(按仪表编号)
|
||||
archives = self.env['property.meter.archives'].search([('name', '=', name),
|
||||
], limit=1)
|
||||
property_id = None
|
||||
if installation_location:
|
||||
property_search = self.env['yuthon.property'].search(
|
||||
[('name', '=', installation_location)],
|
||||
limit=1
|
||||
)
|
||||
if property_search:
|
||||
property_id = property_search
|
||||
|
||||
# 处理物业信息(模糊匹配以及小数为.0的)
|
||||
if type(name) == float:
|
||||
name = int(name)
|
||||
archives = self.env['property.meter.archives'].search([
|
||||
('name', 'ilike', f'%{name}%')
|
||||
], limit=1)
|
||||
|
||||
epitope_values_id = self.env['yuthon.epitope.values'].search([('name', '=', epitope_values)], limit=1)
|
||||
if not epitope_values_id:
|
||||
epitope_values_id = self.env['yuthon.epitope.values'].create({'name': epitope_values,
|
||||
'type': 'ammeter'})
|
||||
if not archives:
|
||||
archives = self.env['property.meter.archives'].create({
|
||||
'name': name,
|
||||
'epitope_values': epitope_values,
|
||||
'epitope_values_id': epitope_values_id.id,
|
||||
'start_time': start_date,
|
||||
'end_time': end_date,
|
||||
'unit_number': unit_number,
|
||||
@@ -116,6 +123,7 @@ class PropertyMeterWizard(models.Model):
|
||||
# 更新已有记录的部分字段
|
||||
archives.write({
|
||||
'epitope_values': epitope_values,
|
||||
'epitope_values_id': epitope_values_id.id,
|
||||
'start_time': start_date,
|
||||
'end_time': end_date,
|
||||
'unit_number': unit_number,
|
||||
|
||||
@@ -58,14 +58,6 @@ class PropertyWaterWizard(models.Model):
|
||||
type_dict = {'公共': 'public', '收费': 'fees', '': ''}
|
||||
meter_type = type_dict.get(row[7].value)
|
||||
|
||||
# 物业信息
|
||||
property_id = None
|
||||
if row[2].value:
|
||||
property_search = self.env['yuthon.property'].search([('name', '=', row[2].value)], limit=1)
|
||||
if property_search:
|
||||
property_id = property_search[0]
|
||||
|
||||
|
||||
current_read_index = month + 9
|
||||
meter_date = datetime(2025, month, 15)
|
||||
current_read = None
|
||||
@@ -75,9 +67,21 @@ class PropertyWaterWizard(models.Model):
|
||||
except ValueError:
|
||||
current_read = None
|
||||
|
||||
# 查找或创建水表主记录
|
||||
water = self.env['property.meter.water'].search([('name', '=', name),
|
||||
], limit=1)
|
||||
property_id = None
|
||||
if installation_location:
|
||||
search_value = installation_location.strip()
|
||||
try:
|
||||
if float(search_value) == int(float(search_value)):
|
||||
search_value = str(int(float(search_value)))
|
||||
except (ValueError, TypeError):
|
||||
pass
|
||||
|
||||
property_search = self.env['yuthon.property'].search([
|
||||
('name', 'ilike', f'%{search_value}%')
|
||||
], limit=1)
|
||||
if property_search:
|
||||
property_id = property_search
|
||||
|
||||
excel_start_date = datetime(1899, 12, 30)
|
||||
if row[19].value:
|
||||
start_date = excel_start_date + timedelta(days=row[19].value)
|
||||
@@ -88,10 +92,24 @@ class PropertyWaterWizard(models.Model):
|
||||
end_date = excel_start_date + timedelta(days=row[20].value)
|
||||
else:
|
||||
end_date = None
|
||||
|
||||
# 处理物业信息(模糊匹配以及小数为.0的)
|
||||
if type(name) == float:
|
||||
name = int(name)
|
||||
water = self.env['property.meter.water'].search([
|
||||
('name', 'ilike', f'%{name}%')
|
||||
], limit=1)
|
||||
|
||||
epitope_values_id = self.env['yuthon.epitope.values'].search([('name', '=', epitope_values)], limit=1)
|
||||
if not epitope_values_id:
|
||||
epitope_values_id = self.env['yuthon.epitope.values'].create({'name': epitope_values,
|
||||
'type': 'ammeter'})
|
||||
|
||||
if not water:
|
||||
water = self.env['property.meter.water'].create({
|
||||
'name': name,
|
||||
'epitope_values': epitope_values,
|
||||
'epitope_values_id':epitope_values_id.id,
|
||||
'start_time': start_date,
|
||||
'end_time': end_date,
|
||||
'unit_number': unit_number,
|
||||
|
||||
@@ -108,6 +108,7 @@ class PropertyRentalWizard(models.Model):
|
||||
original_amount = rent_amount
|
||||
else:
|
||||
original_amount = 0
|
||||
start_date = start_date.replace(day=15)
|
||||
standard_id = property_id.message_standard_id
|
||||
matched_info = property_id.manage_information_ids.search([
|
||||
('start_time', '<=', start_date),
|
||||
|
||||
Reference in New Issue
Block a user