@@ -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 {
|
||||
|
||||
@@ -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):
|
||||
|
||||
@@ -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="水表库")
|
||||
|
||||
@@ -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
|
||||
|
||||
Reference in New Issue
Block a user