From d11bcad244e3534604d62e5531e214c6732550f5 Mon Sep 17 00:00:00 2001
From: zhou <123@>
Date: Wed, 9 Jul 2025 19:21:01 +0800
Subject: [PATCH 1/3] =?UTF-8?q?=E6=B7=BB=E5=8A=A0=E5=8A=9F=E8=83=BD?=
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
---
.../controllers/applet_attendance.py | 17 +++++-----
.../models/property_meter_archives.py | 32 +++++++++++++++++-
.../models/property_meter_water.py | 33 ++++++++++++++++++-
yuthon_property/views/menuitem.xml | 26 +++++++--------
.../views/property_meter_archives_views.xml | 14 ++++++--
.../views/property_meter_water_views.xml | 14 ++++++--
.../models/inherit_yuthon_property.py | 12 +++++++
.../views/inherit_yuthon_property_views.xml | 7 ++++
.../views/property_menu_all.xml | 4 +--
9 files changed, 129 insertions(+), 30 deletions(-)
diff --git a/yuthon_hr_attendance/controllers/applet_attendance.py b/yuthon_hr_attendance/controllers/applet_attendance.py
index a88cedd2a..f9a5302f0 100644
--- a/yuthon_hr_attendance/controllers/applet_attendance.py
+++ b/yuthon_hr_attendance/controllers/applet_attendance.py
@@ -427,8 +427,7 @@ class AppletAttendance(Controller):
"shift_days_list": shift_days_list,
}
- # 水电表接口
-
+ # 水电表接口
@route('/yuthon/meter/reading', methods=['POST'], type='http', auth='none', cors='*', csrf=False)
def yuthon_meter_reading(self, **kw):
"""
@@ -444,19 +443,19 @@ class AppletAttendance(Controller):
}
"""
_logger.info("----------------/yuthon/meter/reading---------接口收到响应-------------------------------")
- electric_records = request.env(user=SUPERUSER_ID)['property.electric.reading'].search(
- [('reading_state', '=', 'wait')])
- water_records = request.env(user=SUPERUSER_ID)['property.water.reading'].search(
- [('reading_state', '=', 'wait')])
+ electric_records = request.env(user=SUPERUSER_ID)['property.meter.archives'].search(
+ [('is_push', '=', 'True')])
+ water_records = request.env(user=SUPERUSER_ID)['property.meter.water'].search(
+ [('is_push', '=', 'True')])
result_list = []
# 处理电表记录
for record in electric_records:
record_data = {
- 'code': record.code,
+ 'code': record.name,
'last_dosage': record.last_dosage,
'current_meter': record.current_meter,
'dosage': record.dosage,
- 'employee_name': record.employee_ids[0].name,
+ 'employee_name': record.employee_ids[0].name if record.employee_ids else '',
'meter_type': 'electric', # 添加仪表类型
}
@@ -468,7 +467,7 @@ class AppletAttendance(Controller):
'last_dosage': record.last_dosage,
'current_meter': record.current_meter,
'dosage': record.dosage,
- 'employee_list': record.employee_ids[0].name,
+ 'employee_list': record.employee_ids[0].name if record.employee_ids else '',
'meter_type': 'water',
}
result_list.append(record_data)
diff --git a/yuthon_property/models/property_meter_archives.py b/yuthon_property/models/property_meter_archives.py
index 022883c07..0739e77ea 100644
--- a/yuthon_property/models/property_meter_archives.py
+++ b/yuthon_property/models/property_meter_archives.py
@@ -24,7 +24,7 @@ class PropertyMeterArchives(models.Model):
last_meter = fields.Date(string='上次抄表日期')
current_meter = fields.Float(string='本次用量', tracking=True)
ratio = fields.Float(string='倍率')
- archives_state = fields.Selection([('stop', '停用'), ('use', '使用'), ('rent', '出租')], string='状态')
+ archives_state = fields.Selection([('stop', '停用'), ('use', '正常'), ('rent', '出租')], string='状态', compute='_compute_archives_state', store=True, default='use')
dosage = fields.Float(string='用量')
is_push = fields.Boolean(string='已推送')
start_time = fields.Date(string="安装日期")
@@ -33,6 +33,36 @@ class PropertyMeterArchives(models.Model):
standards_id = fields.Many2one('yuthon.electricity.setting', string='标准')
yuthon_property_id = fields.Many2one('yuthon.property', string='关联物业信息')
+ @api.depends('lessee_id')
+ def _compute_archives_state(self):
+ for record in self:
+ if record.lessee_id:
+ record.archives_state = 'rent'
+ else:
+ record.archives_state = 'use'
+
+ @api.model
+ def create(self, vals):
+ record = super().create(vals)
+ if record.lessee_id:
+ record.archives_state = 'rent'
+ else:
+ record.archives_state = 'use'
+ return record
+
+ def button_archives_state(self):
+ archives_ids = self.env["property.meter.archives"].browse(self._context.get('active_ids', self._context.get('active_id')))
+ for record in archives_ids:
+ record.archives_state = 'stop'
+
+ def update_meter(self):
+ meter_ids = self.env["property.meter.archives"].browse(self._context.get('active_ids', self._context.get('active_id')))
+ for record in meter_ids:
+ if record.lessee_id:
+ record.archives_state = 'rent'
+ else:
+ record.archives_state = 'use'
+
@api.onchange('current_meter')
def _onchange_current_meter(self):
current_date = fields.Date.today()
diff --git a/yuthon_property/models/property_meter_water.py b/yuthon_property/models/property_meter_water.py
index ba7f715f3..c21cd7b52 100644
--- a/yuthon_property/models/property_meter_water.py
+++ b/yuthon_property/models/property_meter_water.py
@@ -28,10 +28,41 @@ class PropertyMeterWater(models.Model):
start_time = fields.Date(string="安装日期")
end_time = fields.Date(string="拆除日期")
last_reading_time = fields.Date(string="最后读数时间")
- water_state = fields.Selection([('stop', '停用'), ('use', '使用'), ('rent', '出租')], string='状态')
+ water_state = fields.Selection([('stop', '停用'), ('use', '使用'), ('rent', '出租')], string='状态', compute='_compute_water_state', store=True)
standards_id = fields.Many2one('yuthon.electricity.setting', string='标准')
yuthon_property_id = fields.Many2one('yuthon.property', string='关联物业信息')
+ @api.depends('lessee_id')
+ def _compute_water_state(self):
+ for record in self:
+ if record.lessee_id:
+ record.water_state = 'rent'
+ else:
+ record.water_state = 'use'
+
+ @api.model
+ def create(self, vals):
+ record = super().create(vals)
+ if record.lessee_id:
+ record.water_state = 'rent'
+ else:
+ record.water_state = 'use'
+ return record
+
+ def button_water_state(self):
+ archives_ids = self.env["property.meter.water"].browse(
+ self._context.get('active_ids', self._context.get('active_id')))
+ for record in archives_ids:
+ record.water_state = 'stop'
+
+ def update_meter(self):
+ meter_ids = self.env["property.meter.water"].browse(self._context.get('active_ids', self._context.get('active_id')))
+ for record in meter_ids:
+ if record.lessee_id:
+ record.water_state = 'rent'
+ else:
+ record.water_state = 'use'
+
@api.onchange('current_meter')
def _onchange_current_meter(self):
current_date = fields.Date.today()
diff --git a/yuthon_property/views/menuitem.xml b/yuthon_property/views/menuitem.xml
index fe5dc5e3d..a5d20bb56 100644
--- a/yuthon_property/views/menuitem.xml
+++ b/yuthon_property/views/menuitem.xml
@@ -100,26 +100,26 @@
sequence="99"
name="配置"
parent="yuthon_property_meter_menu"/>
-
-
-
+
+
diff --git a/yuthon_property/views/property_meter_archives_views.xml b/yuthon_property/views/property_meter_archives_views.xml
index 2cda2b4fa..d7097ca3a 100644
--- a/yuthon_property/views/property_meter_archives_views.xml
+++ b/yuthon_property/views/property_meter_archives_views.xml
@@ -4,9 +4,11 @@
property.meter.archives.tree
property.meter.archives
-
+
@@ -24,8 +26,8 @@
+
-
@@ -44,6 +46,7 @@
+
@@ -80,4 +83,11 @@
code
action = model.action_property_meter_wizard()
+
+ 更新状态
+
+
+ code
+ action = model.update_meter()
+
\ No newline at end of file
diff --git a/yuthon_property/views/property_meter_water_views.xml b/yuthon_property/views/property_meter_water_views.xml
index 5ac3c66a0..f3d51dc33 100644
--- a/yuthon_property/views/property_meter_water_views.xml
+++ b/yuthon_property/views/property_meter_water_views.xml
@@ -5,9 +5,11 @@
property.meter.water
+ decoration-danger="water_state == 'stop'">
+ decoration-success="is_push">
@@ -25,6 +27,7 @@
+
@@ -44,7 +47,7 @@
-
+
@@ -80,4 +83,11 @@
code
+
+ 更新状态
+
+
+ code
+ action = model.update_meter()
+
\ No newline at end of file
diff --git a/yuthon_property_approval/models/inherit_yuthon_property.py b/yuthon_property_approval/models/inherit_yuthon_property.py
index 5c5aa5533..bb2c5887e 100644
--- a/yuthon_property_approval/models/inherit_yuthon_property.py
+++ b/yuthon_property_approval/models/inherit_yuthon_property.py
@@ -24,6 +24,18 @@ class YuthonProperty(models.Model):
else:
continue
+ def update_lessee_id(self):
+ property_ids = self.env["yuthon.property"].browse(
+ self._context.get('active_ids', self._context.get('active_id')))
+ for rec in property_ids:
+ if rec.property_contract_ids:
+ rec.lessee_id = rec.property_contract_ids[-1].lessee_id
+
+ @api.onchange('property_contract_ids')
+ def _onchange_property_contract_ids(self):
+ if self.property_contract_ids:
+ self.lessee_id = self.property_contract_ids[-1].lessee_id
+
# 银行流水
class PropertyBankStatements(models.Model):
_inherit = 'property.bank.statements'
diff --git a/yuthon_property_approval/views/inherit_yuthon_property_views.xml b/yuthon_property_approval/views/inherit_yuthon_property_views.xml
index 93c6cfff9..e39818fb6 100644
--- a/yuthon_property_approval/views/inherit_yuthon_property_views.xml
+++ b/yuthon_property_approval/views/inherit_yuthon_property_views.xml
@@ -21,6 +21,13 @@
+
+ 更新承租方
+
+
+ code
+ action = model.update_lessee_id()
+
property.rent.list.search
diff --git a/yuthon_property_approval/views/property_menu_all.xml b/yuthon_property_approval/views/property_menu_all.xml
index e097a1967..ff3e26381 100644
--- a/yuthon_property_approval/views/property_menu_all.xml
+++ b/yuthon_property_approval/views/property_menu_all.xml
@@ -271,12 +271,12 @@
From 1b0217190246cdf88ba16c848db5a1afa76a872e Mon Sep 17 00:00:00 2001
From: zhou <123@>
Date: Wed, 9 Jul 2025 21:34:10 +0800
Subject: [PATCH 2/3] =?UTF-8?q?=E6=B7=BB=E5=8A=A0=E5=8A=9F=E8=83=BD?=
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
---
yuthon_property/models/yuthon_property.py | 53 -------
.../views/property_meter_archives_views.xml | 16 +-
.../views/property_meter_water_views.xml | 16 +-
.../models/property_lease_contract.py | 147 +++++++-----------
.../views/property_lease_contract.xml | 42 +++--
5 files changed, 101 insertions(+), 173 deletions(-)
diff --git a/yuthon_property/models/yuthon_property.py b/yuthon_property/models/yuthon_property.py
index fa386209b..3f22fbc27 100644
--- a/yuthon_property/models/yuthon_property.py
+++ b/yuthon_property/models/yuthon_property.py
@@ -93,59 +93,6 @@ class YuthonProperty(models.Model):
annual_increase_amount = fields.Float(string='递增金额', igits=(6, 2))
rent_unit = fields.Float(string='租金单价', igits=(6, 2))
- @api.onchange('energy_meter_ids')
- def _onchange_energy_meter_ids(self):
- for record in self:
- today = fields.Date.today()
- electricity_list = []
- if record.energy_meter_ids and record.is_electricity_meter:
- water_fee_id = self.env['property.lease.contract.line'].search([('address_id', '=', record.id)])
- contract_id = water_fee_id.lease_id
- if water_fee_id:
- active_meters = record.energy_meter_ids.filtered(
- lambda meter: not meter.demolition_date or meter.demolition_date >= today
- )
-
- for water_fee in active_meters:
- electricity_list.append({'fees_id': water_fee.standard_id.id,
- 'contract_id': contract_id.id,
- 'proportional': water_fee.rate,
- }
- )
-
- self.env['property.electric.fee.line'].search([('address_id', '=', record.id)]).unlink()
- if electricity_list:
- self.env['property.electric.fee.line'].create(electricity_list)
- # else:
- # self.env['property.electric.fee.line'].search([('address_id', '=', record.id)]).unlink()
-
-
- @api.onchange('water_meter_ids')
- def _onchange_water_meter_ids(self):
- for record in self:
- today = fields.Date.today()
- water_list = []
- if record.water_meter_ids and record.is_meter:
- water_fee_id = self.env['property.lease.contract.line'].search([('address_id', '=', record.id.origin)], limit=1)
- contract_id = water_fee_id.lease_id
- if water_fee_id:
- contract_id.is_water = True
- active_meters = record.water_meter_ids.filtered(
- lambda meter: not meter.demolition_date or meter.demolition_date >= today
- )
-
- for water_fee in active_meters:
- water_list.append({'fees_id': water_fee.standard_id.id,
- 'contract_id': contract_id.id,
- 'proportional': water_fee.rate,
- }
- )
- self.env['property.water.fee.line'].search([('address_id', '=', record.id)]).unlink()
- if water_list:
- self.env['property.water.fee.line'].create(water_list)
- # else:
- # self.env['property.water.fee.line'].search([('address_id', '=', record.id)]).unlink()
-
@api.onchange('reference_ids')
def _onchange_reference_ids(self):
for record in self:
diff --git a/yuthon_property/views/property_meter_archives_views.xml b/yuthon_property/views/property_meter_archives_views.xml
index d7097ca3a..057739140 100644
--- a/yuthon_property/views/property_meter_archives_views.xml
+++ b/yuthon_property/views/property_meter_archives_views.xml
@@ -37,16 +37,16 @@
property.meter.archives
-
-
-
-
-
-
+
+
+
+
+
+
-
+
-
+
diff --git a/yuthon_property/views/property_meter_water_views.xml b/yuthon_property/views/property_meter_water_views.xml
index f3d51dc33..3c30e536b 100644
--- a/yuthon_property/views/property_meter_water_views.xml
+++ b/yuthon_property/views/property_meter_water_views.xml
@@ -39,15 +39,15 @@
property.meter.water
-
-
-
-
-
-
+
+
+
+
+
+
-
-
+
+
diff --git a/yuthon_property_approval/models/property_lease_contract.py b/yuthon_property_approval/models/property_lease_contract.py
index 478c38016..b8279f4a5 100644
--- a/yuthon_property_approval/models/property_lease_contract.py
+++ b/yuthon_property_approval/models/property_lease_contract.py
@@ -150,8 +150,8 @@ class PropertyLeaseContract(models.Model):
use_address = fields.Char(string="财务专用地址")
not_tax_amount = fields.Float(string="不含税价")
tax = fields.Float(string="税金")
- is_water = fields.Boolean(string="是否有水费")
- is_electricity = fields.Boolean(string="是否有电费")
+ is_water = fields.Boolean(string="是否有水费", compute='_compute_lease_ids')
+ is_electricity = fields.Boolean(string="是否有电费", compute='_compute_lease_ids')
is_mange = fields.Boolean(string="是否有管理费")
miscellaneous = fields.Text(string="其他约定")
number = fields.Integer(string="次数", default=0)
@@ -170,8 +170,8 @@ class PropertyLeaseContract(models.Model):
lease_ids = fields.One2many('property.lease.contract.line', 'lease_id',string="物业信息明细行")
subset_ids = fields.One2many('property.subset.contract', 'subset_id',string="子集明细")
breakdown_ids = fields.One2many('property.rent.breakdown.line', 'breakdown_id', string="物业租金明细行")
- water_fee_ids = fields.One2many('property.water.fee.line', 'contract_id', string="物业水费明细行")
- electricity_fee_ids = fields.One2many('property.electric.fee.line', 'contract_id', string="物业电费明细行")
+ water_fee_ids = fields.One2many('property.water.fee.line', 'contract_id', string="物业水费明细行", compute='_compute_lease_ids', store=True)
+ electricity_fee_ids = fields.One2many('property.electric.fee.line', 'contract_id', string="物业电费明细行", compute='_compute_lease_ids', store=True)
mange_fee_ids = fields.One2many('property.manage.fee.line', 'contract_id', string="物业管理费明细行")
other_ids = fields.One2many('property.other.fee.line', 'other_id', string="其他费用明细行")
rent_list_ids = fields.One2many('property.rent.list', 'contract_id', string="租金明细行")
@@ -206,8 +206,8 @@ class PropertyLeaseContract(models.Model):
license_name = fields.Char(string="营业执照名称", compute='_compute_attachment_names', store=True)
legal_entity_name = fields.Char(string="身份证名称", compute='_compute_attachment_names', store=True)
- asset_valuation_name = fields.Char(string="资产评估结果明细表名称", compute='_compute_attachment_names',store=True)
- lease_contract_name = fields.Char(string="租赁合同(住宅)名称", compute='_compute_attachment_names', store=True)
+ asset_valuation_name = fields.Char(string="资产评估结果明细表名称", compute='_compute_attachment_names')
+ lease_contract_name = fields.Char(string="租赁合同(住宅)名称", compute='_compute_attachment_names')
confirmation_transaction_name = fields.Char(string="成交确认书名称", compute='_compute_attachment_names',
store=True)
responsibility_book_name = fields.Char(string="安全生产责任书(住宅)名称", compute='_compute_attachment_names',
@@ -239,10 +239,49 @@ class PropertyLeaseContract(models.Model):
rec.admin_id = rec.lease_ids[0].admin_line_id.id
@api.depends('lease_ids')
- def _compute_admin_id(self):
+ def _compute_lease_ids(self):
for rec in self:
if rec.lease_ids:
rec.admin_id = rec.lease_ids[0].admin_line_id.id
+ rec.is_water = False
+ rec.is_electricity = False
+
+ rec.water_fee_ids = [(5, 0, 0)]
+ rec.electricity_fee_ids = [(5, 0, 0)]
+
+ water_fee_values = []
+ electricity_fee_values = []
+
+ for lease in rec.lease_ids:
+ if lease.address_id:
+ if lease.address_id.is_meter:
+ rec.is_water = True
+ # 获取未拆除的水表(demolition_date 为空或大于今天)
+ active_water_meters = lease.address_id.water_meter_ids.filtered(
+ lambda m: not m.demolition_date or m.demolition_date > fields.Date.today()
+ )
+ for meter in active_water_meters:
+ water_fee_values.append([0, 0, {
+ 'contract_id': rec.id,
+ 'property_meter_water_id': meter.property_meter_water_id.id,
+ }])
+
+ if lease.address_id.is_electricity_meter:
+ rec.is_electricity = True
+ active_electric_meters = lease.address_id.energy_meter_ids.filtered(
+ lambda m: not m.demolition_date or m.demolition_date > fields.Date.today()
+ )
+ for meter in active_electric_meters:
+ electricity_fee_values.append([0, 0, {
+ 'contract_id': rec.id,
+ 'property_meter_archives_id': meter.property_meter_archives_id.id,
+ }])
+
+ if water_fee_values:
+ rec.water_fee_ids = water_fee_values
+ if electricity_fee_values:
+ rec.electricity_fee_ids = electricity_fee_values
+
@api.depends(
'license_id.name',
@@ -1061,80 +1100,6 @@ class PropertyLeaseContract(models.Model):
rec.electricity_fee_ids = electricity_list
rec.mange_fee_ids = fee_list
-
- @api.model_create_multi
- def create(self, vals_list):
- # 初始化上下文变量,避免循环中重复创建
- yuthon_property_env = self.env['yuthon.property']
- for vals in vals_list:
- lease_ids = vals.get('lease_ids', [])
- lease_name = []
- electricity_list = []
- title_address = []
- fee_list = []
- # 处理每条租赁记录
- for lease_info in lease_ids:
- if isinstance(lease_info, tuple) and lease_info[0] == 4: # 引用已有记录
- lease_id = lease_info[1]
- lease_record = self.env['property.lease.contract.line'].browse(lease_id) # 替换为实际的租赁模型
- if lease_record.address_id and lease_record.address_id.title_address:
- lease_name.append(lease_record.address_id.name)
- title_address.append(lease_record.address_id.title_address.name)
- # 更新vals中的字段
- vals['name'] = ','.join(lease_name)
- vals['use_address'] = ','.join(lease_name)
- vals['title_address'] = ','.join(title_address)
- # 查找物业记录
- property_id = yuthon_property_env.search([('id', '=', lease_record.address_id.id)], limit=1)
- if property_id:
- # 处理电表信息
- if property_id.energy_meter_ids:
- vals['is_electricity'] = True
- for electricity_id in property_id.energy_meter_ids:
- electricity_list.append([0, 0, {
- 'fees_id': electricity_id.standard_id.id,
- 'proportional': electricity_id.rate,
- }])
- else:
- vals['is_electricity'] = False
-
- # 处理管理费信息
- if property_id.is_message_fee:
- vals['is_mange'] = True
- standard_id = property_id.message_standard_id
- fee_list.append([0, 0, {
- 'fees_id': standard_id.id,
- 'proportional': standard_id.amount,
- }])
- else:
- vals['is_mange'] = False
- # 设置其他字段
- if lease_ids:
- first_lease = self.env['property.lease.contract.line'].browse(lease_ids[0][1]) if isinstance(lease_ids[0],
- tuple) else None
- if first_lease:
- vals['admin_id'] = first_lease.admin_line_id.id if first_lease.admin_line_id else False
- vals['tenure_type'] = first_lease.address_id.tenure_type if first_lease.address_id else ''
- vals[
- 'lessor_id'] = first_lease.address_id.company_id.id if first_lease.address_id and first_lease.address_id.company_id else False
- vals[
- 'precinct_id'] = first_lease.address_id.precinct_id.id if first_lease.address_id and first_lease.address_id.precinct_id else False
-
- # 计算总面积
- total_area = 0
- for lease_info in lease_ids:
- if isinstance(lease_info, tuple) and lease_info[0] == 4:
- lease = self.env['your.lease.model'].browse(lease_info[1])
- total_area += lease.property_area if lease.property_area else 0
- vals['total_area'] = total_area
-
- # 设置费用明细
- vals['electricity_fee_ids'] = [(5, 0, 0)] + electricity_list
- vals['mange_fee_ids'] = [(5, 0, 0)] + fee_list
-
- records = super().create(vals_list)
- return records
-
def trigger_lease_ids(self):
property_ids = self.env["property.lease.contract"].browse(self._context.get('active_ids', self._context.get('active_id')))
for record in property_ids:
@@ -1591,20 +1556,24 @@ class PropertyWaterFeeLine(models.Model):
_description = '物业水费明细行'
contract_id = fields.Many2one('property.lease.contract', string="关联租赁合同审批")
- address_id = fields.Many2one('yuthon.property', string="物业地址")
- charges = fields.Char(string="收费项")
- fees_id = fields.Many2one('yuthon.water.setting', string="收费标准")
- proportional = fields.Float(string="赔率/比例")
-
+ property_meter_water_id = fields.Many2one('property.meter.water', string="水表库")
+ rate = fields.Float(related='property_meter_water_id.gauge_magnification', string="倍率", store=True)
+ standard_id = fields.Many2one(related='property_meter_water_id.standards_id', string="标准", store=True)
+ installation_date = fields.Date(related='property_meter_water_id.start_time', string="安装日期")
+ demolition_date = fields.Date(related='property_meter_water_id.end_time', string="拆除日期")
+ location = fields.Char(related='property_meter_water_id.installation_location', string="位置")
class PropertyElectricFeeLine(models.Model):
_name = 'property.electric.fee.line'
_description = '物业电费明细行'
contract_id = fields.Many2one('property.lease.contract', string="关联租赁合同审批")
- charges = fields.Char(string="收费项")
- fees_id = fields.Many2one('yuthon.electricity.setting', string="收费标准")
- proportional = fields.Float(string="倍率/比例")
+ property_meter_archives_id = fields.Many2one('property.meter.archives', string="电表库")
+ rate = fields.Float(related='property_meter_archives_id.gauge_magnification', string="倍率", store=True)
+ standard_id = fields.Many2one(related='property_meter_archives_id.standards_id', string="标准", store=True)
+ installation_date = fields.Date(related='property_meter_archives_id.start_time', string="安装日期")
+ demolition_date = fields.Date(related='property_meter_archives_id.end_time', string="拆除日期")
+ location = fields.Char(related='property_meter_archives_id.installation_location', string="位置")
class PropertyManageFeeLine(models.Model):
diff --git a/yuthon_property_approval/views/property_lease_contract.xml b/yuthon_property_approval/views/property_lease_contract.xml
index fbd7d3687..55579ddbc 100644
--- a/yuthon_property_approval/views/property_lease_contract.xml
+++ b/yuthon_property_approval/views/property_lease_contract.xml
@@ -285,9 +285,12 @@
-
-
-
+
+
+
+
+
+
@@ -295,9 +298,12 @@
-
-
-
+
+
+
+
+
+
@@ -692,23 +698,29 @@
-
+
-
+
-
-
-
+
+
+
+
+
+
-
+
-
-
-
+
+
+
+
+
+
From edd1c27cff7729029e2e21ef1010eb22427ae420 Mon Sep 17 00:00:00 2001
From: zhou <123@>
Date: Thu, 10 Jul 2025 16:55:44 +0800
Subject: [PATCH 3/3] =?UTF-8?q?=E6=B7=BB=E5=8A=A0=E5=8A=9F=E8=83=BD?=
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
---
yuthon_hr_attendance/controllers/applet_attendance.py | 10 +++++-----
1 file changed, 5 insertions(+), 5 deletions(-)
diff --git a/yuthon_hr_attendance/controllers/applet_attendance.py b/yuthon_hr_attendance/controllers/applet_attendance.py
index f9a5302f0..05e31062e 100644
--- a/yuthon_hr_attendance/controllers/applet_attendance.py
+++ b/yuthon_hr_attendance/controllers/applet_attendance.py
@@ -215,8 +215,8 @@ class AppletAttendance(Controller):
"data": {
"current_month": { // 当月考勤数据
"holiday_data": { // 假期数据
- "holiday_list": ["2025年1月1日", "2025年1月2日"], // 法定节假日,调休休息日列表(日期字符串)
- "shift_days_list": ["2025年2月10日", "2025年2月11日"] // 调休补班日列表(日期字符串)
+ "holiday_list": ["2025-01-01", "2025-01-02"], // 法定节假日,调休休息日列表(日期字符串)
+ "shift_days_list": ["2025-02-10", "2025-02-11"] // 调休补班日列表(日期字符串)
},
"banner_rote": { // 异常统计
"is_no_card": 2, // 缺卡次数
@@ -352,7 +352,7 @@ class AppletAttendance(Controller):
check_out_color = 'red' if check_out_status in ['迟到', '早退', '缺卡'] else 'green'
# 添加到记录列表
records.append({
- 'date': att.current_data.strftime('%Y-%m-%d'),
+ 'date': att.current_data.strftime('%Y/%m/%d'),
'class': [f"{att.shift_name}",f"{standard_check_in_str}-{standard_check_out_str}"],
'user_id': user_id,
'check_in': check_in_str,
@@ -406,7 +406,7 @@ class AppletAttendance(Controller):
day = start_date_obj + timedelta(days=i)
# 只添加年份和月份匹配的日期
if day.year == target_year and day.month == target_month:
- formatted_date = f"{day.month}月{day.day}日"
+ formatted_date = f"{day.year}/{day.month}/{day.day}"
holidays_list.append(formatted_date)
# 处理调班补班
@@ -419,7 +419,7 @@ class AppletAttendance(Controller):
# 只添加月份匹配的日期
if month == target_month:
- formatted_date = f"{month}月{day}日"
+ formatted_date = f"{target_year}/{month}/{day}"
shift_days_list.append(formatted_date)
return {