!6138 添加功能

Merge pull request !6138 from 李鹏宇/dev_zhou
This commit is contained in:
李鹏宇
2025-11-01 08:06:02 +00:00
committed by Gitee
4 changed files with 41 additions and 8 deletions
@@ -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)
# 判断是否需要包含次日记录
@@ -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
+16 -3
View File
@@ -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
@@ -99,7 +99,7 @@
<field name="initial_value" column_invisible="1"/>
<field name="last_read" readonly="0"/>
<field name="current_read"/>
<field name="current_meter" readonly="0"/>
<field name="current_meter" readonly="0" force_save="1"/>
<field name="unit"/>
<field name="receivables"/>
<field name="number" column_invisible="1"/>