From b47f3a96231c7bcc70ea1fed2e84ac09a102ae9a Mon Sep 17 00:00:00 2001
From: zhou <123@>
Date: Thu, 19 Jun 2025 16:18:02 +0800
Subject: [PATCH 01/12] =?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
---
attendance_iot/models/attendance_iot.py | 4 +---
attendance_iot/views/attendance_iot_user_views.xml | 2 +-
yuthon_property/views/property_rent_list_views.xml | 4 ++++
3 files changed, 6 insertions(+), 4 deletions(-)
diff --git a/attendance_iot/models/attendance_iot.py b/attendance_iot/models/attendance_iot.py
index a5754bd17..bc9115352 100644
--- a/attendance_iot/models/attendance_iot.py
+++ b/attendance_iot/models/attendance_iot.py
@@ -27,7 +27,5 @@ class AttendanceIot(models.Model):
('employee_id', 'in', self.employee_ids.ids),
('attendance_iot_id', '=', self.id),
],
- 'context': {
- 'group_by': ['attendance_iot_id'],
- },
+ 'context': {'group_by': ['company_id', 'attendance_iot_id']}
}
diff --git a/attendance_iot/views/attendance_iot_user_views.xml b/attendance_iot/views/attendance_iot_user_views.xml
index 6ca4447f2..cf4ca2a85 100644
--- a/attendance_iot/views/attendance_iot_user_views.xml
+++ b/attendance_iot/views/attendance_iot_user_views.xml
@@ -7,7 +7,7 @@
-
+
diff --git a/yuthon_property/views/property_rent_list_views.xml b/yuthon_property/views/property_rent_list_views.xml
index c9416bf6f..e4a574f90 100644
--- a/yuthon_property/views/property_rent_list_views.xml
+++ b/yuthon_property/views/property_rent_list_views.xml
@@ -8,6 +8,8 @@
decoration-success="charge_status == 'fully_paid'" js_class="custom_rent_list_button" limit="20">
+
+
@@ -31,6 +33,8 @@
+
+
From a52ca684a4809508189dca729c430592b66f7442 Mon Sep 17 00:00:00 2001
From: zhou <123@>
Date: Thu, 19 Jun 2025 17:42:04 +0800
Subject: [PATCH 02/12] =?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 | 60 ++++++++++++++-----
.../views/yuthon_property_views.xml | 19 +++---
2 files changed, 56 insertions(+), 23 deletions(-)
diff --git a/yuthon_property/models/yuthon_property.py b/yuthon_property/models/yuthon_property.py
index c1d291533..a25e83b24 100644
--- a/yuthon_property/models/yuthon_property.py
+++ b/yuthon_property/models/yuthon_property.py
@@ -83,8 +83,6 @@ class YuthonProperty(models.Model):
first_letter = fields.Char(string="首字母", compute='_compute_first_letter', store=True)
- # 报表新增字段
- title_certificate = fields.Char(string="产权证号")
vacant_duration = fields.Float(string="空置时长", digits=(16, 2))
@@ -108,7 +106,25 @@ class YuthonProperty(models.Model):
if rec.title_information_ids:
latest_title_information = sorted(rec.title_information_ids, key=lambda x: x.start_time, reverse=True)[0]
rec.write({
- 'title_deed': latest_title_information.title_certificate})
+ 'title_deed': latest_title_information.title_certificate,
+ 'registered_id': latest_title_information.registered_id,
+ 'equity_area': latest_title_information.equity_area,
+ })
+
+ @api.onchange('manage_information_ids')
+ def _onchange_information_ids(self):
+ for rec in self:
+ if rec.manage_information_ids:
+ latest_title_information = sorted(rec.manage_information_ids, key=lambda x: x.start_time, reverse=True)[
+ 0]
+ rec.write({
+ 'precinct_id': latest_title_information.precinct_id,
+ 'tenure_type': latest_title_information.tenure_type,
+ 'management_area': latest_title_information.management_area,
+ 'rent_area': latest_title_information.rent_area,
+ 'admin_id': latest_title_information.admin_id,
+ 'company_id' : latest_title_information.company_id,
+ })
@api.onchange('energy_meter_ids')
def _onchange_energy_meter_ids(self):
@@ -164,6 +180,15 @@ class YuthonProperty(models.Model):
"context": {'default_property_rental_form_line_ids': property_list}
}
+ def open_record(self):
+ return {
+ "type": "ir.actions.act_window",
+ "res_model": 'yuthon.property',
+ "res_id": self.id,
+ "name": '物业详情',
+ "view_mode": "form",
+ }
+
def put_offline_approval(self):
form_id = self.env.ref('yuthon_property_approval.view_property_offline_registration_form').id
return {
@@ -177,6 +202,7 @@ class YuthonProperty(models.Model):
}
}
+
def put_adjustment_approval(self):
form_id = self.env.ref('yuthon_property_approval.view_property_rental_conditions_form').id
return {
@@ -247,11 +273,11 @@ class YuthonProperty(models.Model):
'name': record.name,
'property_ids': [(6, 0, [record.id])],
'evaluation_area': record.rent_area,
- 'owner_id': record.title_information_ids[0].owner_id.id if record.title_information_ids else None,
- 'registered_id': record.title_information_ids[0].registered_id.id if record.title_information_ids else None,
- 'rent_id': record.reference_ids[0].rent_id.id if record.reference_ids else None,
- 'lease_period': record.reference_ids[0].lease_period if record.reference_ids else None,
- 'annual_increase_percentage': record.reference_ids[0].annual_increase_percentage if record.reference_ids else None,
+ 'owner_id': record.title_information_ids[-1].owner_id.id if record.title_information_ids else None,
+ 'registered_id': record.title_information_ids[-1].registered_id.id if record.title_information_ids else None,
+ 'rent_id': record.reference_ids[-1].rent_id.id if record.reference_ids else None,
+ 'lease_period': record.reference_ids[-1].lease_period if record.reference_ids else None,
+ 'annual_increase_percentage': record.reference_ids[-1].annual_increase_percentage if record.reference_ids else None,
'assessment_category': 'rent_money',
'remake': record.remark,
})
@@ -273,11 +299,11 @@ class YuthonProperty(models.Model):
'name': record.name,
'property_ids': [(6, 0, [record.id])],
'evaluation_area': record.rent_area,
- 'owner_id': record.title_information_ids[0].owner_id.id if record.title_information_ids else None,
- 'registered_id': record.title_information_ids[0].registered_id.id if record.title_information_ids else None,
- 'rent_id': record.reference_ids[0].rent_id.id if record.reference_ids else None,
- 'lease_period': record.reference_ids[0].lease_period if record.reference_ids else None,
- 'annual_increase_percentage': record.reference_ids[0].annual_increase_percentage if record.reference_ids else None,
+ 'owner_id': record.title_information_ids[-1].owner_id.id if record.title_information_ids else None,
+ 'registered_id': record.title_information_ids[-1].registered_id.id if record.title_information_ids else None,
+ 'rent_id': record.reference_ids[-1].rent_id.id if record.reference_ids else None,
+ 'lease_period': record.reference_ids[-1].lease_period if record.reference_ids else None,
+ 'annual_increase_percentage': record.reference_ids[-1].annual_increase_percentage if record.reference_ids else None,
'assessment_category': 'rent_money',
'remake': record.remark,
})
@@ -346,13 +372,15 @@ class YuthonProperty(models.Model):
self._context.get('active_ids', self._context.get('active_id')))
for record in property_ids:
precinct_id = self.env["yuthon.precinct.message"].search([('employee_id.name', '=', record.admin_id.name)])
- company_id = record.manage_information_ids[0].company_id.id if record.manage_information_ids else ''
- title_deed = record.title_information_ids[0].title_certificate if record.title_information_ids else ''
+ company_id = record.manage_information_ids[-1].company_id.id if record.manage_information_ids else ''
+ title_deed = record.title_information_ids[-1].title_certificate if record.title_information_ids else ''
+ registered_id = record.title_information_ids[-1].registered_id if record.title_information_ids else ''
+ record.registered_id = registered_id
record.company_id = company_id
record.title_deed = title_deed
record.precinct_id = precinct_id.id if precinct_id else ''
if record.manage_information_ids:
- record.manage_information_ids[0].precinct_id = precinct_id.id if precinct_id else ''
+ record.manage_information_ids[-1].precinct_id = precinct_id.id if precinct_id else ''
def revert_change(self):
property_ids = self.env["yuthon.property"].browse(
diff --git a/yuthon_property/views/yuthon_property_views.xml b/yuthon_property/views/yuthon_property_views.xml
index 7164e84df..abd77827b 100644
--- a/yuthon_property/views/yuthon_property_views.xml
+++ b/yuthon_property/views/yuthon_property_views.xml
@@ -276,11 +276,11 @@
-
-
-
-
-
+
+
+
+
+
@@ -344,14 +344,15 @@
yuthon.property
-
+
-
+
+
@@ -387,6 +388,8 @@
kanban,tree,form
{'search_default_referred_id': 1}
+
我的物业
@@ -395,6 +398,8 @@
[('admin_id','=',uid)]
{'search_default_referred_id': 1}
+
批量导入物业信息
From 7d9c6757cd3ea960e36c0c1b4e8e78a60e3599de Mon Sep 17 00:00:00 2001
From: zhou <123@>
Date: Thu, 19 Jun 2025 17:55:23 +0800
Subject: [PATCH 03/12] =?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
---
.../models/property_lease_contract.py | 8 ++++++++
.../views/property_lease_contract.xml | 1 +
2 files changed, 9 insertions(+)
diff --git a/yuthon_property_approval/models/property_lease_contract.py b/yuthon_property_approval/models/property_lease_contract.py
index dbf60ae03..f3086ca4f 100644
--- a/yuthon_property_approval/models/property_lease_contract.py
+++ b/yuthon_property_approval/models/property_lease_contract.py
@@ -165,6 +165,14 @@ class PropertyLeaseContract(models.Model):
name_title = fields.Char(compute='_compute_name_title')
+ def open_record(self):
+ return {
+ 'type': 'ir.actions.act_window',
+ 'res_model': 'property.lease.contract',
+ 'res_id': self.id,
+ 'view_mode': 'form',
+ }
+
@api.depends('contract_code', 'name')
def _compute_name_title(self):
for record in self:
diff --git a/yuthon_property_approval/views/property_lease_contract.xml b/yuthon_property_approval/views/property_lease_contract.xml
index 61c89f1f4..83e920bba 100644
--- a/yuthon_property_approval/views/property_lease_contract.xml
+++ b/yuthon_property_approval/views/property_lease_contract.xml
@@ -767,6 +767,7 @@
+
From b61d56aa1b1a1d10a7452d2b36f3ec449b0fcc96 Mon Sep 17 00:00:00 2001
From: zhou <123@>
Date: Thu, 19 Jun 2025 21:29:55 +0800
Subject: [PATCH 04/12] =?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
---
.../views/hr_attendance_month_views.xml | 2 +-
.../models/property_accounts_receivable.py | 1 +
.../views/property_accounts_receivable_views.xml | 2 +-
yuthon_property/views/yuthon_property_views.xml | 8 --------
.../models/inherit_yuthon_property.py | 2 +-
.../views/inherit_yuthon_property_views.xml | 15 +++++++++++++--
.../wizard/property_rental_wizard.py | 13 ++++++++++---
yuthon_salary/views/inherit_hr_payslip_views.xml | 4 ++--
8 files changed, 29 insertions(+), 18 deletions(-)
diff --git a/yuthon_hr_attendance/views/hr_attendance_month_views.xml b/yuthon_hr_attendance/views/hr_attendance_month_views.xml
index e0d1d1e16..9930fc09a 100644
--- a/yuthon_hr_attendance/views/hr_attendance_month_views.xml
+++ b/yuthon_hr_attendance/views/hr_attendance_month_views.xml
@@ -69,6 +69,7 @@
+
@@ -105,7 +106,6 @@
-
diff --git a/yuthon_property/models/property_accounts_receivable.py b/yuthon_property/models/property_accounts_receivable.py
index 9e35359e3..e7ef82699 100644
--- a/yuthon_property/models/property_accounts_receivable.py
+++ b/yuthon_property/models/property_accounts_receivable.py
@@ -8,6 +8,7 @@ class PropertyAccountsReceivable(models.Model):
_description = '应收账单'
property_id = fields.Many2one('yuthon.property', string='物业')
+ management_area = fields.Float(related='property_id.management_area', string='面积')
lessee_id = fields.Many2one('property.tenant.information', string='承租方')
admin_id = fields.Many2one(related='property_id.admin_id', string="片区管理员")
company_id = fields.Many2one(related='property_id.company_id', string="公司")
diff --git a/yuthon_property/views/property_accounts_receivable_views.xml b/yuthon_property/views/property_accounts_receivable_views.xml
index 9bd749557..9e30bbfe3 100644
--- a/yuthon_property/views/property_accounts_receivable_views.xml
+++ b/yuthon_property/views/property_accounts_receivable_views.xml
@@ -3,7 +3,7 @@
property.accounts.receivable.tree
property.accounts.receivable
-
diff --git a/yuthon_property/views/yuthon_property_views.xml b/yuthon_property/views/yuthon_property_views.xml
index abd77827b..6c627a1b1 100644
--- a/yuthon_property/views/yuthon_property_views.xml
+++ b/yuthon_property/views/yuthon_property_views.xml
@@ -280,15 +280,7 @@
-
-
-
-
-
-
-
-
diff --git a/yuthon_property_approval/models/inherit_yuthon_property.py b/yuthon_property_approval/models/inherit_yuthon_property.py
index c3e1675c5..61fe2dac5 100644
--- a/yuthon_property_approval/models/inherit_yuthon_property.py
+++ b/yuthon_property_approval/models/inherit_yuthon_property.py
@@ -414,7 +414,7 @@ class PropertyDepositList(models.Model):
'contract_id': rec.contract_id.id,
'property_id': rec.property_id.id,
'lessee_id': rec.contract_id.lessee_id.id if rec.contract_id.lessee_id else None,
- 'original_amount': rec.aggregate,
+ 'original_amount': rec.original_amount,
'create_time': datetime.now(),
'management_type_id': management_type_id.id,
})
diff --git a/yuthon_property_approval/views/inherit_yuthon_property_views.xml b/yuthon_property_approval/views/inherit_yuthon_property_views.xml
index 117f3d342..e37cfca8a 100644
--- a/yuthon_property_approval/views/inherit_yuthon_property_views.xml
+++ b/yuthon_property_approval/views/inherit_yuthon_property_views.xml
@@ -386,7 +386,7 @@
- 应收列表
+ 应收账单
property.accounts.receivable
tree
{'group_by': 'contract_id'}
@@ -410,6 +410,7 @@
合同应收报表
tree
property.accounts.receivable
+
@@ -438,6 +439,7 @@
违约金明细报表
property.accounts.receivable
tree
+
@@ -458,6 +460,7 @@
本月实收报表
property.accounts.receivable
tree
+
@@ -465,7 +468,14 @@
property.accounts.receivable
-
+
+
+
+
+
+
+
+
@@ -473,6 +483,7 @@
累计欠收报表
property.accounts.receivable
tree
+
批量生成违约金
diff --git a/yuthon_property_approval/wizard/property_rental_wizard.py b/yuthon_property_approval/wizard/property_rental_wizard.py
index 7cdbd64bf..f5c70e9cb 100644
--- a/yuthon_property_approval/wizard/property_rental_wizard.py
+++ b/yuthon_property_approval/wizard/property_rental_wizard.py
@@ -2,6 +2,8 @@ from odoo import models, fields, api, _, SUPERUSER_ID
from odoo.exceptions import UserError, ValidationError
from dateutil.relativedelta import relativedelta
from datetime import datetime, time, timedelta
+import calendar
+
class PropertyRentalWizard(models.Model):
_name = 'property.rental.wizard'
@@ -158,12 +160,17 @@ class PropertyRentalWizard(models.Model):
def confirm(self):
"""主逻辑入口"""
- records = self.env['property.lease.contract'].search(
- [('cycle_dict', 'in', ['monthly', 'quarter', 'half', 'year'])])
year, month = int(self.select_year), int(self.select_month)
date_field = datetime(year, month, 1).date()
date_field_year_month = date_field.strftime('%Y-%m')
-
+ # 获取当月第一天和最后一天
+ first_day = datetime.strptime(date_field_year_month, '%Y-%m').date() # 当月第一天
+ last_day = (first_day + relativedelta(months=1, days=-1)) # 当月最后一天
+ records = self.env['property.lease.contract'].search([
+ ('cycle_dict', 'in', ['monthly', 'quarter', 'half', 'year']),
+ ('actual_start_time', '<=', last_day),
+ ('actual_end_time', '>=', first_day)
+ ])
for record in records:
date_data = {
'five': 5,
diff --git a/yuthon_salary/views/inherit_hr_payslip_views.xml b/yuthon_salary/views/inherit_hr_payslip_views.xml
index cfd8cc07c..2df5d6d10 100644
--- a/yuthon_salary/views/inherit_hr_payslip_views.xml
+++ b/yuthon_salary/views/inherit_hr_payslip_views.xml
@@ -364,6 +364,8 @@
hr.payslip
+
+
@@ -374,8 +376,6 @@
-
-
From 2aadb35429e315cda9ffff98d348845fc442fd54 Mon Sep 17 00:00:00 2001
From: zhou <123@>
Date: Thu, 19 Jun 2025 21:33:52 +0800
Subject: [PATCH 05/12] =?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
---
.../views/inherit_yuthon_property_views.xml | 5 +++--
1 file changed, 3 insertions(+), 2 deletions(-)
diff --git a/yuthon_property_approval/views/inherit_yuthon_property_views.xml b/yuthon_property_approval/views/inherit_yuthon_property_views.xml
index e37cfca8a..ae2b401b7 100644
--- a/yuthon_property_approval/views/inherit_yuthon_property_views.xml
+++ b/yuthon_property_approval/views/inherit_yuthon_property_views.xml
@@ -390,9 +390,10 @@
property.accounts.receivable
tree
{'group_by': 'contract_id'}
+
-
+
property.accounts.receivable.tree.form
property.accounts.receivable
@@ -410,7 +411,7 @@
合同应收报表
tree
property.accounts.receivable
-
+
From 9126bc420a4fbf77b77a5e93d8c0d8a2232c4fb5 Mon Sep 17 00:00:00 2001
From: zhou <123@>
Date: Thu, 19 Jun 2025 22:09:17 +0800
Subject: [PATCH 06/12] =?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/property_bank_statements.py | 2 +-
.../views/inherit_yuthon_property_views.xml | 10 +++++-----
.../wizard/property_rental_wizard.py | 1 -
3 files changed, 6 insertions(+), 7 deletions(-)
diff --git a/yuthon_property/models/property_bank_statements.py b/yuthon_property/models/property_bank_statements.py
index ab397540a..918861641 100644
--- a/yuthon_property/models/property_bank_statements.py
+++ b/yuthon_property/models/property_bank_statements.py
@@ -155,7 +155,7 @@ class PropertyBankStatements(models.Model):
contract_ids = self.env['property.lease.contract'].search([('lessee_id', '=', tenant_id.id)])
for contract in contract_ids:
if contract.lease_ids:
- lease_id = contract.lease_ids[0].address_id
+ lease_id = contract.lease_ids[-1].address_id
if lease_id:
property_ids.append(lease_id.id)
self.property_ids = [(6, 0, property_ids)]
diff --git a/yuthon_property_approval/views/inherit_yuthon_property_views.xml b/yuthon_property_approval/views/inherit_yuthon_property_views.xml
index ae2b401b7..1224d7163 100644
--- a/yuthon_property_approval/views/inherit_yuthon_property_views.xml
+++ b/yuthon_property_approval/views/inherit_yuthon_property_views.xml
@@ -386,11 +386,11 @@
- 应收账单
- property.accounts.receivable
- tree
- {'group_by': 'contract_id'}
-
+ 应收账单
+ property.accounts.receivable
+ tree
+ {'group_by': 'contract_id'}
+
diff --git a/yuthon_property_approval/wizard/property_rental_wizard.py b/yuthon_property_approval/wizard/property_rental_wizard.py
index f5c70e9cb..dbffa8668 100644
--- a/yuthon_property_approval/wizard/property_rental_wizard.py
+++ b/yuthon_property_approval/wizard/property_rental_wizard.py
@@ -167,7 +167,6 @@ class PropertyRentalWizard(models.Model):
first_day = datetime.strptime(date_field_year_month, '%Y-%m').date() # 当月第一天
last_day = (first_day + relativedelta(months=1, days=-1)) # 当月最后一天
records = self.env['property.lease.contract'].search([
- ('cycle_dict', 'in', ['monthly', 'quarter', 'half', 'year']),
('actual_start_time', '<=', last_day),
('actual_end_time', '>=', first_day)
])
From ab39bc2e27490f5102c623e4da52af1a85c46ddb Mon Sep 17 00:00:00 2001
From: zhou <123@>
Date: Thu, 19 Jun 2025 22:15:28 +0800
Subject: [PATCH 07/12] =?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
---
.../wizard/property_rental_wizard.py | 14 --------------
1 file changed, 14 deletions(-)
diff --git a/yuthon_property_approval/wizard/property_rental_wizard.py b/yuthon_property_approval/wizard/property_rental_wizard.py
index dbffa8668..54aa02443 100644
--- a/yuthon_property_approval/wizard/property_rental_wizard.py
+++ b/yuthon_property_approval/wizard/property_rental_wizard.py
@@ -135,20 +135,6 @@ class PropertyRentalWizard(models.Model):
if start_year_month <= date_field_year_month < end_year_month:
self.create_rent_list(record, rent_id, adjusted_rent, start_date, multiplier)
self.create_management_list(record, start_date)
- elif start_year_month <= date_field_year_month <= end_year_month:
- if rent_id.end_data.day < days:
- self.create_rent_list(record, rent_id, adjusted_rent, rent_id.start_data,multiplier)
- self.create_management_list(record, start_date)
- # 尝试处理下一个租金分解
- rent_ids = record.breakdown_ids
- current_index = rent_ids.ids.index(rent_id.id)
- try:
- next_rent_id = rent_ids[current_index + 1]
- adjusted_rent_next = ( next_rent_id.period_rent if period_month else next_rent_id.monthly_amount) * multiplier
- self.create_rent_list(record, next_rent_id, adjusted_rent_next, next_rent_id.start_data,multiplier)
- self.create_management_list(record, start_date)
- except (IndexError, ValueError):
- pass
def get_multiplier(self, cycle_dict):
"""根据周期类型返回相应的租金乘数"""
From 23573d952dcd8e2940e9bf68b83ee6494dc39567 Mon Sep 17 00:00:00 2001
From: zhou <123@>
Date: Fri, 20 Jun 2025 09:59:10 +0800
Subject: [PATCH 08/12] =?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/views/yuthon_property_views.xml | 16 +++++++++++++++-
.../views/inherit_yuthon_property_views.xml | 14 ++++++++++++++
.../views/property_lease_contract.xml | 17 +++++++++++++----
3 files changed, 42 insertions(+), 5 deletions(-)
diff --git a/yuthon_property/views/yuthon_property_views.xml b/yuthon_property/views/yuthon_property_views.xml
index 6c627a1b1..4c23e44cd 100644
--- a/yuthon_property/views/yuthon_property_views.xml
+++ b/yuthon_property/views/yuthon_property_views.xml
@@ -348,10 +348,22 @@
+
+ property.management.area.report.search
+ yuthon.property
+
+
+
+
+
+
+
管理面积报表
yuthon.property
- tree
+ tree, search
+
+
@@ -373,6 +385,8 @@
可租面积报表
yuthon.property
tree
+
+
物业
diff --git a/yuthon_property_approval/views/inherit_yuthon_property_views.xml b/yuthon_property_approval/views/inherit_yuthon_property_views.xml
index 1224d7163..d3f9d19c9 100644
--- a/yuthon_property_approval/views/inherit_yuthon_property_views.xml
+++ b/yuthon_property_approval/views/inherit_yuthon_property_views.xml
@@ -407,11 +407,22 @@
+
+ property.accounts.receivable.search
+ property.accounts.receivable
+
+
+
+
+
+
+
合同应收报表
tree
property.accounts.receivable
+
@@ -441,6 +452,7 @@
property.accounts.receivable
tree
+
@@ -462,6 +474,7 @@
property.accounts.receivable
tree
+
@@ -485,6 +498,7 @@
property.accounts.receivable
tree
+
批量生成违约金
diff --git a/yuthon_property_approval/views/property_lease_contract.xml b/yuthon_property_approval/views/property_lease_contract.xml
index 83e920bba..f399a77fc 100644
--- a/yuthon_property_approval/views/property_lease_contract.xml
+++ b/yuthon_property_approval/views/property_lease_contract.xml
@@ -766,18 +766,27 @@
-
+
+
+ yuthon.property.rented.area.report.search
+ property.lease.contract
+
+
+
+
+
+
+
已租面积报表
property.lease.contract
tree
-
+
+
合同管理
From fe1aa355707a28cbf1a05a06aeb992fa770f9756 Mon Sep 17 00:00:00 2001
From: zhou <123@>
Date: Fri, 20 Jun 2025 10:58:40 +0800
Subject: [PATCH 09/12] =?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
---
.../views/yuthon_property_views.xml | 34 +++++++++++++++----
.../models/inherit_yuthon_property.py | 1 +
.../views/inherit_yuthon_property_views.xml | 19 ++++++++---
.../views/property_lease_contract.xml | 5 +++
4 files changed, 48 insertions(+), 11 deletions(-)
diff --git a/yuthon_property/views/yuthon_property_views.xml b/yuthon_property/views/yuthon_property_views.xml
index 4c23e44cd..dbdab0fbd 100644
--- a/yuthon_property/views/yuthon_property_views.xml
+++ b/yuthon_property/views/yuthon_property_views.xml
@@ -344,6 +344,7 @@
+
@@ -352,16 +353,20 @@
property.management.area.report.search
yuthon.property
-
+
+
+
+
管理面积报表
yuthon.property
- tree, search
+ tree
+ {'search_default_group_by_tenure_type': True}
@@ -378,15 +383,30 @@
+
+
+ property.management.area.report.search
+ yuthon.property
+
+
+
+
+
+
+
+
+
+
- 可租面积报表
- yuthon.property
- tree
-
-
+ 可租面积报表
+ yuthon.property
+ tree
+ {'search_default_group_by_tenure_type': True}
+
+
物业
diff --git a/yuthon_property_approval/models/inherit_yuthon_property.py b/yuthon_property_approval/models/inherit_yuthon_property.py
index 61fe2dac5..414063146 100644
--- a/yuthon_property_approval/models/inherit_yuthon_property.py
+++ b/yuthon_property_approval/models/inherit_yuthon_property.py
@@ -258,6 +258,7 @@ class PropertyAccountsReceivable(models.Model):
_inherit = 'property.accounts.receivable'
contract_id = fields.Many2one('property.lease.contract', string="关联租赁合同审批")
+ tenure_type = fields.Selection(related='property_id.tenure_type', string="权属类型", store=True)
penalty = fields.Float(string="违约金")
penalty_date = fields.Date(string="违约金日期")
# 报表新增字段
diff --git a/yuthon_property_approval/views/inherit_yuthon_property_views.xml b/yuthon_property_approval/views/inherit_yuthon_property_views.xml
index d3f9d19c9..e080a6b53 100644
--- a/yuthon_property_approval/views/inherit_yuthon_property_views.xml
+++ b/yuthon_property_approval/views/inherit_yuthon_property_views.xml
@@ -404,6 +404,7 @@
+
@@ -411,16 +412,20 @@
property.accounts.receivable.search
property.accounts.receivable
-
-
-
-
+
+
+
+
+
+
+
合同应收报表
tree
property.accounts.receivable
+ {'search_default_group_by_tenure_type': True}
@@ -444,6 +449,7 @@
+
@@ -451,6 +457,7 @@
违约金明细报表
property.accounts.receivable
tree
+ {'search_default_group_by_tenure_type': True}
@@ -466,6 +473,7 @@
+
@@ -473,6 +481,7 @@
本月实收报表
property.accounts.receivable
tree
+ {'search_default_group_by_tenure_type': True}
@@ -490,6 +499,7 @@
+
@@ -497,6 +507,7 @@
累计欠收报表
property.accounts.receivable
tree
+ {'search_default_group_by_tenure_type': True}
diff --git a/yuthon_property_approval/views/property_lease_contract.xml b/yuthon_property_approval/views/property_lease_contract.xml
index f399a77fc..87aac51d5 100644
--- a/yuthon_property_approval/views/property_lease_contract.xml
+++ b/yuthon_property_approval/views/property_lease_contract.xml
@@ -778,6 +778,10 @@
+
+
+
+
@@ -785,6 +789,7 @@
已租面积报表
property.lease.contract
tree
+ {'search_default_group_by_tenure_type': True}
From e86809441b02f2e0453896a7016afad2a6e1b301 Mon Sep 17 00:00:00 2001
From: zhou <123@>
Date: Fri, 20 Jun 2025 12:04:59 +0800
Subject: [PATCH 10/12] =?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/views/yuthon_property_views.xml | 14 ++++++++++++--
.../views/inherit_yuthon_property_views.xml | 5 +++++
.../views/property_lease_contract.xml | 5 +++++
.../views/property_menu_all.xml | 2 +-
4 files changed, 23 insertions(+), 3 deletions(-)
diff --git a/yuthon_property/views/yuthon_property_views.xml b/yuthon_property/views/yuthon_property_views.xml
index dbdab0fbd..715a65966 100644
--- a/yuthon_property/views/yuthon_property_views.xml
+++ b/yuthon_property/views/yuthon_property_views.xml
@@ -357,8 +357,13 @@
-
-
+
+
+
+
+
+
+
@@ -397,6 +402,11 @@
+
+
+
+
+
diff --git a/yuthon_property_approval/views/inherit_yuthon_property_views.xml b/yuthon_property_approval/views/inherit_yuthon_property_views.xml
index e080a6b53..dfaff0263 100644
--- a/yuthon_property_approval/views/inherit_yuthon_property_views.xml
+++ b/yuthon_property_approval/views/inherit_yuthon_property_views.xml
@@ -418,6 +418,11 @@
+
+
+
+
+
diff --git a/yuthon_property_approval/views/property_lease_contract.xml b/yuthon_property_approval/views/property_lease_contract.xml
index 87aac51d5..b580f5752 100644
--- a/yuthon_property_approval/views/property_lease_contract.xml
+++ b/yuthon_property_approval/views/property_lease_contract.xml
@@ -782,6 +782,11 @@
+
+
+
+
+
diff --git a/yuthon_property_approval/views/property_menu_all.xml b/yuthon_property_approval/views/property_menu_all.xml
index b24c4f6b0..2518aedaa 100644
--- a/yuthon_property_approval/views/property_menu_all.xml
+++ b/yuthon_property_approval/views/property_menu_all.xml
@@ -365,7 +365,7 @@
action="property_penalty_line_report_action"/>