diff --git a/yuthon_property/models/property_bank_statements.py b/yuthon_property/models/property_bank_statements.py index 9fe2f35af..4a78604ed 100644 --- a/yuthon_property/models/property_bank_statements.py +++ b/yuthon_property/models/property_bank_statements.py @@ -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) diff --git a/yuthon_property/views/property_bank_statements_views.xml b/yuthon_property/views/property_bank_statements_views.xml index 545469b0b..037a3c2ed 100644 --- a/yuthon_property/views/property_bank_statements_views.xml +++ b/yuthon_property/views/property_bank_statements_views.xml @@ -181,7 +181,10 @@ + + + diff --git a/yuthon_property_approval/__manifest__.py b/yuthon_property_approval/__manifest__.py index 0db729615..289ef3247 100644 --- a/yuthon_property_approval/__manifest__.py +++ b/yuthon_property_approval/__manifest__.py @@ -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', diff --git a/yuthon_property_approval/models/__init__.py b/yuthon_property_approval/models/__init__.py index ac98b0cf7..1b98f6ae4 100644 --- a/yuthon_property_approval/models/__init__.py +++ b/yuthon_property_approval/models/__init__.py @@ -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 \ No newline at end of file +from . import property_fee_form +from . import receivable_modify_line \ No newline at end of file diff --git a/yuthon_property_approval/models/receivable_modify_line.py b/yuthon_property_approval/models/receivable_modify_line.py new file mode 100644 index 000000000..4b241f4a8 --- /dev/null +++ b/yuthon_property_approval/models/receivable_modify_line.py @@ -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