diff --git a/yuthon_hr_attendance/models/hr_attendance_detail_wechat.py b/yuthon_hr_attendance/models/hr_attendance_detail_wechat.py
index 0ff6c6838..fe7670dc7 100644
--- a/yuthon_hr_attendance/models/hr_attendance_detail_wechat.py
+++ b/yuthon_hr_attendance/models/hr_attendance_detail_wechat.py
@@ -130,6 +130,11 @@ class HrAttendanceDetail(models.Model):
template_domain.append(('planning_name', '=', planning_name))
template_domain.append(('department_id', 'in', all_dept_ids))
template = self.env['planning.slot.template'].search(template_domain, limit=1)
+ # 如果模板里面找不到这个人 则还是往下判断(模板为空)
+ if employee.id not in template.role_id.resource_ids.employee_id.ids:
+ template = None
+
+
if not template:
role_templates = [
{'role_name': '厨卫(集团)', 'template': None},
@@ -145,12 +150,14 @@ class HrAttendanceDetail(models.Model):
employee_list = list(employee_ids)
if employee.id in employee_list:
template = item['template']
- break
+ break
+
if not template:
template = self.env['planning.slot.template'].search(
[('role_id.name', '=', '集团行政')],
limit=1
)
+
next_day = current_data + timedelta(days=1)
start_datetime = datetime.combine(current_data, datetime.min.time()) - timedelta(hours=8)
# 判断是否需要包含次日记录
diff --git a/yuthon_property/models/property_meter_archives.py b/yuthon_property/models/property_meter_archives.py
index ef7135a36..82c79fae9 100644
--- a/yuthon_property/models/property_meter_archives.py
+++ b/yuthon_property/models/property_meter_archives.py
@@ -269,11 +269,24 @@ class MeterArchivesLine(models.Model):
else:
record.current_meter = 0
- @api.onchange('line_loss', 'current_meter', 'unit')
+ @api.onchange('current_meter', 'unit')
def onchange_receivables(self):
for record in self:
- if record.line_loss and record.current_meter and record.unit:
- raw_value = record.current_meter * record.unit * (1 + record.line_loss) * record.gauge_magnification
+ # 因为current_meter 取不到值所有复制一遍
+ if record.current_read >= record.last_read:
+ current_meter = record.current_read - record.last_read
+ else:
+ if record.current_read:
+ if record.maximum_count > 0:
+ max_value = 10 ** record.maximum_count - 1
+ current_meter = max_value - record.last_read + record.current_read
+ else:
+ current_meter = 0
+ else:
+ current_meter = 0
+
+ if current_meter and record.unit:
+ raw_value = current_meter * record.unit * (1 + record.line_loss) * record.gauge_magnification
record.receivables = round(raw_value, 1)
else:
record.receivables = 0.0
diff --git a/yuthon_property/models/property_meter_water.py b/yuthon_property/models/property_meter_water.py
index af87d3948..3e7febb28 100644
--- a/yuthon_property/models/property_meter_water.py
+++ b/yuthon_property/models/property_meter_water.py
@@ -238,11 +238,24 @@ class MeterWaterLine(models.Model):
else:
rec.meter_date_month = False
- @api.onchange('line_loss', 'current_meter', 'unit')
+ @api.onchange('current_meter', 'unit')
def onchange_receivables(self):
for record in self:
- if record.line_loss and record.current_meter and record.unit:
- raw_value = record.current_meter * record.unit * (1 + record.line_loss) * record.gauge_magnification
+ # 因为current_meter 取不到值所有复制一遍
+ if record.current_read >= record.last_read:
+ current_meter = record.current_read - record.last_read
+ else:
+ if record.current_read:
+ if record.maximum_count > 0:
+ max_value = 10 ** record.maximum_count - 1
+ current_meter = max_value - record.last_read + record.current_read
+ else:
+ current_meter = 0
+ else:
+ current_meter = 0
+
+ if current_meter and record.unit:
+ raw_value = current_meter * record.unit * (1 + record.line_loss) * record.gauge_magnification
record.receivables = round(raw_value, 1)
else:
record.receivables = 0.0
diff --git a/yuthon_property/views/property_meter_archives_views.xml b/yuthon_property/views/property_meter_archives_views.xml
index f72424250..5bd409bdc 100644
--- a/yuthon_property/views/property_meter_archives_views.xml
+++ b/yuthon_property/views/property_meter_archives_views.xml
@@ -99,7 +99,7 @@
-
+