收款明细

This commit is contained in:
李鹏宇
2026-03-25 19:17:24 +08:00
parent d0de2586d2
commit d15d96f44c
5 changed files with 66 additions and 24 deletions
@@ -205,7 +205,7 @@ class ReceivableModifyLine(models.Model):
_description = '修改应收账单明细'
bank_id = fields.Many2one('property.bank.statements', string='关联银行对账单')
company_id = fields.Many2one('res.company', related='bank_id.company_id', string='公司', store=True)
# company_id = fields.Many2one('res.company', related='bank_id.company_id', string='公司', store=True)
original_amount = fields.Float(related='bank_id.original_amount', string='交易金额', store=False)
@@ -219,19 +219,13 @@ class ReceivableModifyLine(models.Model):
property_name = fields.Text(string='物业名称', compute='_compute_property_name', store=False, search='_search_property_name')
delivered1 = fields.Float(related='receivable_id.delivered1', string='金额', store=False)
remake = fields.Text(related='receivable_id.remark', string='备注', store=False)
property_name = fields.Text(string='物业', compute='_compute_property_name', store=False, search='_search_property_name')
delivered1 = fields.Float(related='receivable_id.delivered1', string='已收金额', store=False)
lessee_id = fields.Many2one(
"property.tenant.information",
string="承租方",
compute='_compute_lessee_id_company',
store=False,
search='_search_lessee_id',
)
# lessee_id = fields.Many2one(
# "property.tenant.information",
# string="承租方",
# compute='_compute_lessee_id_company',
# store=False,
# search='_search_lessee_id',
# )
@api.depends('receivable_id')
def _compute_lessee_id_company(self):
@@ -245,8 +239,9 @@ class ReceivableModifyLine(models.Model):
lessee = getattr(contract, 'lessee_id', False)
rec.lessee_id = lessee or False
is_write = fields.Boolean()
lessee_id = fields.Many2one('property.tenant.information', string='承租方', compute='_compute_related_fields',
store=False, index=True)
store=False, index=True, search='_search_lessee_id')
company_id = fields.Many2one('yuthon.property.company', string='公司', compute='_compute_related_fields',
store=False, index=True)
precinct_id = fields.Many2one('yuthon.precinct.message', string='管理员', compute='_compute_related_fields',
@@ -259,27 +254,22 @@ class ReceivableModifyLine(models.Model):
rec.company_id = False
rec.precinct_id = False
if rec.receivable_id:
rec.lessee_id = rec.receivable_id.lessee_id
rec.company_id = rec.receivable_id.company_id
rec.precinct_id = rec.receivable_id.precinct_id
rec.lessee_id = getattr(rec.receivable_id, 'lessee_id', False)
rec.company_id = getattr(rec.receivable_id, 'company_id', False)
rec.precinct_id = getattr(rec.receivable_id, 'precinct_id', False)
@api.depends('receivable_id')
def _compute_property_name(self):
for rec in self:
if rec.receivable_id:
# Try to get property name from receivable_id
# This will work if the receivable_id has the property_name field
rec.property_name = rec.receivable_id.property_name or ''
else:
rec.property_name = ''
def _search_property_name(self, operator, value):
# 先搜索符合条件的合同记录
contract_ids = self.env['property.lease.contract'].search([('property_name', operator, value)]).ids
# 然后搜索关联到这些合同的应收账单记录
receivable_ids = self.env['property.accounts.receivable'].search([('contract_id', 'in', contract_ids)]).ids
# 最后返回关联到这些应收账单的记录
return [('receivable_id', 'in', receivable_ids)]
def _search_lessee_id(self, operator, value):
@@ -290,6 +280,7 @@ class ReceivableModifyLine(models.Model):
return [('id', '=', 0)]
reconciliation_date = fields.Date(string='对账日期')
is_penalty = fields.Boolean(string='是否为违约金')
not_collected = fields.Float(related='receivable_id.submitted', string='未收', store=False)
@@ -181,7 +181,10 @@
<filter string="应收类型" name="group_by_management_type" context="{'group_by':'management_type_id'}"/>
<filter string="对账日期" name="group_by_reconciliation_date" context="{'group_by':'reconciliation_date'}"/>
<filter string="银行流水" name="group_by_bank_id" context="{'group_by':'bank_id'}"/>
<filter name="group_receivable_id" string="合同编号" context="{'group_by':'receivable_id'}"/>
<filter name="group_lessee_id" string="承租方" context="{'group_by':'lessee_id'}"/>
<filter name="group_company_id" string="公司" context="{'group_by':'company_id'}"/>
<filter name="group_precinct_id" string="管理员" context="{'group_by':'precinct_id'}"/>
</group>
<header_search class="header-search-inline">
<field name="property_name" stirng="物业"/>
+2
View File
@@ -88,6 +88,7 @@
'views/property_delegated_agent_views.xml',
'views/property_transaction_confirmed.xml',
'views/property_meeting_approval_views.xml',
'views/receivable_modify_line_views.xml',
'wizard/property_add_wizard_views.xml',
'wizard/property_contract_wizard.xml',
'wizard/property_physical_wizard_views.xml',
@@ -108,6 +109,7 @@
'wizard/property_bills_wizard_views.xml',
'wizard/property_meeting_wizard_views.xml',
'wizard/property_deposit_wizard_views.xml',
'data/receivable_modify_line_group_data.xml',
'views/property_menu_all.xml',
'report/property_lease_contract_print_report.xml',
'report/property_lease_contract_print_templates.xml',
+2 -1
View File
@@ -62,4 +62,5 @@ from . import property_bills_payable
from . import property_payment_notice
from . import property_bills_list
from . import property_fee_spending
from . import property_fee_form
from . import property_fee_form
from . import receivable_modify_line
@@ -0,0 +1,45 @@
from odoo import api, fields, models
class ReceivableModifyLine(models.Model):
_inherit = 'receivable.modify.line'
lessee_id = fields.Many2one(
'property.tenant.information',
string='承租方',
related='receivable_id.lessee_id',
store=True,
index=True,
)
company_id = fields.Many2one(
'yuthon.property.company',
string='公司',
related='receivable_id.company_id',
store=True,
index=True,
)
precinct_id = fields.Many2one(
'yuthon.precinct.message',
string='管理员',
related='receivable_id.precinct_id',
store=True,
index=True,
)
contract_id = fields.Many2one(
'property.lease.contract',
string='关联租赁合同审批',
related='receivable_id.contract_id',
store=True,
index=True,
)
@api.model
def recompute_group_fields_data(self):
records = self.search([])
if not records:
return True
field_names = ['lessee_id', 'company_id', 'precinct_id', 'contract_id']
for field_name in field_names:
self.env.add_to_compute(self._fields[field_name], records)
records._recompute_recordset(field_names)
return True