Merge pull request !5447 from 李鹏宇/dev
This commit is contained in:
李鹏宇
2025-09-28 06:32:10 +00:00
committed by Gitee
5 changed files with 63 additions and 52 deletions
@@ -753,6 +753,7 @@ class AppletAttendance(Controller):
# 去掉 数据为 0 的数据.
electric_records = request.env(user=SUPERUSER_ID)['meter.archives.line'].search([
('archives_state', '=', 'use'),
('name', '=', 'X_新主机'),
('meter_date', '>=', first_day_str),
('meter_date', '<=', last_day_str)
])
@@ -782,7 +783,7 @@ class AppletAttendance(Controller):
employee_name = property_info.lessee_id.name if property_info.lessee_id else ''
else:
building = '天河商贸大厦'
floor = ''
floor = electric.epitope_values_id.name if electric.epitope_values_id else ''
room = ''
address = ''
employee_name = ''
@@ -841,7 +842,7 @@ class AppletAttendance(Controller):
employee_name = property_info.lessee_id.name if property_info.lessee_id else ''
else:
building = '天河商贸大厦'
floor = ''
floor = water.epitope_values_id.name if water.epitope_values_id else ''
room = ''
address = ''
employee_name = ''
@@ -43,18 +43,17 @@ class PropertyMeterArchives(models.Model):
('yuthon_property_id', '=', property.id),
('property_meter_archives_id', '=', meter.id)
], limit=1)
if not existing_energy:
self.env['yuthon.property.energy'].create({
'property_meter_archives_id': meter.id,
'yuthon_property_id': property.id,
})
invalid_energy = self.env['yuthon.property.energy'].search([
('yuthon_property_id', '=', property.id),
('property_meter_archives_id', '=', False)
])
if invalid_energy:
invalid_energy.unlink()
empty_meter_energy = self.env['yuthon.property.energy'].search([
('property_meter_archives_id', '=', False)
])
if empty_meter_energy:
empty_meter_energy.unlink()
@api.onchange('name')
def _onchange_line_ids(self):
@@ -115,16 +114,15 @@ class PropertyMeterArchives(models.Model):
@api.onchange('yuthon_property_ids')
def _onchange_property(self):
if not self.line_ids:
return
sync_vals = {}
if self.yuthon_property_ids:
meter_list = []
for yuthon_property_id in self.yuthon_property_ids:
property_id = self.env['yuthon.property'].search([('id', '=', yuthon_property_id.id.origin)])
property_id.is_electricity_meter = True
meter_list.append((0, 0, {
'yuthon_property_id': property_id.id,
'property_meter_archives_id': self.id.origin,
}))
property_id.energy_meter_ids = meter_list
sync_vals['yuthon_property_ids'] = [(6, 0, self.yuthon_property_ids.ids)]
if sync_vals:
self.line_ids.write(sync_vals)
self.update_epitope_values()
def action_property_meter_wizard(self):
return {
+29 -25
View File
@@ -37,15 +37,23 @@ class PropertyMeterWater(models.Model):
meter_ids = self.env["property.meter.water"].browse(
self._context.get('active_ids', self._context.get('active_id')))
for meter in meter_ids:
if meter.epitope_values:
epitope_id = self.env['yuthon.epitope.values'].search([('name', '=', meter.epitope_values)])
if not epitope_id:
epitope_id = self.env['yuthon.epitope.values'].create({'name': meter.epitope_values,
'type': 'watermeter'
})
meter.epitope_values_id = epitope_id.id
for line in meter.line_ids:
line.epitope_values_id = epitope_id.id
for property in meter.yuthon_property_ids:
existing_energy = self.env['yuthon.property.water'].search([
('yuthon_property_id', '=', property.id),
('property_meter_water_id', '=', meter.id)
], limit=1)
if not existing_energy:
self.env['yuthon.property.water'].create({
'property_meter_water_id': meter.id,
'yuthon_property_id': property.id,
})
empty_meter_energy = self.env['yuthon.property.water'].search([
('property_meter_water_id', '=', False)
])
if empty_meter_energy:
empty_meter_energy.unlink()
def open_record(self):
return {
@@ -88,17 +96,14 @@ class PropertyMeterWater(models.Model):
@api.onchange('yuthon_property_ids')
def _onchange_property(self):
if not self.line_ids:
return
sync_vals = {}
if self.yuthon_property_ids:
meter_list = []
for yuthon_property_id in self.yuthon_property_ids:
property_id = self.env['yuthon.property'].search([('id', '=', yuthon_property_id.id.origin)])
property_id.is_meter = True
meter_list.append((0, 0, {
'yuthon_property_id': property_id.id,
'property_meter_water_id': self.id.origin,
}))
property_id.water_meter_ids = meter_list
sync_vals['yuthon_property_ids'] = [(6, 0, self.yuthon_property_ids.ids)]
if sync_vals:
self.line_ids.write(sync_vals)
self.update_epitope_values()
def action_property_water_wizard(self):
return {
@@ -186,12 +191,11 @@ class MeterWaterLine(models.Model):
'yuthon_property_id': property.id,
})
invalid_water = self.env['yuthon.property.water'].search([
('yuthon_property_id', '=', property.id),
('property_meter_water_id', '=', False)
])
if invalid_water:
invalid_water.unlink()
empty_meter_energy = self.env['yuthon.property.water'].search([
('property_meter_archives_id', '=', False)
])
if empty_meter_energy:
empty_meter_energy.unlink()
@api.depends('current_read', 'last_read', 'meter_date', 'maximum_count', 'water_id')
def compute_meter_values(self):
+1 -1
View File
@@ -516,7 +516,7 @@ class YuthonProperty(models.Model):
}
class YuthonPropertyWater(models.Model):
_name = 'yuthon.property.water'
_name = 'property_meter_water_id'
_description = '水表'
property_meter_water_id = fields.Many2one('property.meter.water', string="水表库")
+16 -8
View File
@@ -311,18 +311,26 @@ class SalaryComputeWizard(models.Model):
else:
result = abs(line.total)*-1 # 或其他合理默认值
elif field_name == 'b_year':
# 获取合同转正日期的年份和月份
if contract_end_date: # 确保转正日期存在
contract_end_year = str(contract_end_date.year)
contract_end_month = str(contract_end_date.month)
# 判断是否为转正当月
if contract_end_year == self.select_year and contract_end_month == self.select_time:
if contract_end_date:
select_year = self.select_year
select_month = self.select_time
next_month = contract_end_date.month + 1
next_year = contract_end_date.year
if next_month > 12:
next_month = 1
next_year += 1
next_year_str = str(next_year)
next_month_str = str(next_month)
# 判断:选中年月 >= 转正后下个月
if (select_year > next_year_str) or \
(select_year == next_year_str and select_month >= next_month_str):
last_year_salary = internship_id.employee_id.last_year_salary or 0
result = last_year_salary * 0.002
else:
result = 0 # 非转正当月默认值
# 不满足条件(转正当月或之前)
result = 0
else:
result = 0 # 无转正日期时的默认值
result = 0
else:
if work_days != days:
result = line.total * 0.8 * internship_days / days + line.total * work_days / days