From ca9a93be9fee0b1b474d5d97268d7d6e4e974fc1 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E6=9D=8E=E9=B9=8F=E5=AE=87?= <9664676+pengyuthon@user.noreply.gitee.com> Date: Sun, 7 Sep 2025 17:05:48 +0800 Subject: [PATCH 1/6] =?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_bank_statements.py | 53 +++++++------ yuthon_property/security/ir.model.access.csv | 1 + .../views/property_bank_statements_views.xml | 12 +-- .../models/inherit_yuthon_property.py | 26 +++---- .../views/inherit_yuthon_property_views.xml | 73 ++++++------------ .../wizard/binding_information_wizard.py | 77 ++++++++++++------- 6 files changed, 118 insertions(+), 124 deletions(-) diff --git a/yuthon_property/models/property_bank_statements.py b/yuthon_property/models/property_bank_statements.py index 5d5e212d3..2b94df2ca 100644 --- a/yuthon_property/models/property_bank_statements.py +++ b/yuthon_property/models/property_bank_statements.py @@ -31,32 +31,18 @@ class PropertyBankStatements(models.Model): contract_account = fields.Char(string="合同累计应收") contract_penalty = fields.Char(string="合同累计违约金") original_amount = fields.Float(string='交易金额') - yes_amount = fields.Float(string='已对') + yes_amount = fields.Float(stringo='已对') no_amount = fields.Float(string='未对') reconciliation_time = fields.Datetime('对账时间') voucher_type = fields.Selection([('electronic_transfer', '电子转账凭证'), ('telegraphic_transfer', '电汇凭证')], string='凭证种类') remake = fields.Text('备注') registered = fields.Float('挂账') - - create_receivable_ids = fields.Many2many( - 'property.accounts.receivable', - 'property_bank_stmt_create_receivable_rel', - 'bank_stmt_id', - 'receivable_id', - string='创建应收单' - ) - write_receivable_ids = fields.Many2many( - 'property.accounts.receivable', - 'property_bank_stmt_write_receivable_rel', - 'bank_stmt_id', - 'receivable_id', - string='修改应收单' - ) is_reconciliation = fields.Boolean('是否对账') # 无效 company_select = fields.Selection([('jhtz', '天河投资'), ('thwg', '天河物管'), ('thcj', '天河城建')]) property_ids = fields.Many2many('yuthon.property', string='物业地址') bank_state = fields.Selection([('not_reconciled', '未对账'), ('reconciled', '已对账'), ('registered', '挂账'), ('other', '其他')], string='状态', default='not_reconciled') is_company = fields.Boolean(compute='_compute_is_company', search='_search_part_of_company') + receivable_modify_ids = fields.One2many('receivable.modify.line', 'bank_id', string='修改应收单') @api.depends_context('uid', 'company') @api.depends('your_own_account') @@ -95,22 +81,23 @@ class PropertyBankStatements(models.Model): return domain or [('id', '=', 0)] def other(self): - for rec in self: + bank_ids = self.env["property.bank.statements"].browse( + self._context.get('active_ids', self._context.get('active_id'))) + for rec in bank_ids: rec.bank_state = 'other' - receivable_ids = self.env['property.accounts.receivable'].search([('lessee_id.name', '=', self.name_account)]) - property_list = [] - for property in self.property_ids: - property_list.append(property.name) - property_names = ",".join(property_list) - for receivable in receivable_ids: - receivable_log = f'当前登录人{self.env.user.name}于{fields.Datetime.now()}将物业为 {property_names} 的银行对账单状态修改为其他' - for record in self: - original_log = record.receivable_log or '' + receivable_ids = self.env['property.accounts.receivable'].search([('lessee_id.name', '=', rec.name_account)]) + property_list = [] + for property in rec.property_ids: + property_list.append(property.name) + property_names = ",".join(property_list) + for receivable in receivable_ids: + receivable_log = f'当前登录人{self.env.user.name}于{fields.Datetime.now()}将物业为 {property_names} 的银行对账单状态修改为其他' + original_log = receivable.receivable_log or '' if original_log: new_log = f"{original_log}\n{receivable_log}" else: new_log = receivable_log - receivable.write({'receivable_log': new_log}) + receivable.write({'receivable_log': new_log}) @api.onchange('name') def _onchange_bank_account(self): @@ -207,3 +194,15 @@ class PropertyBankStatements(models.Model): ]) if accounts: rec.reconciliation_time = accounts[0].reconciliation_time + +class ReceivableModifyLine(models.Model): + _name = 'receivable.modify.line' + _description = '修改应收账单明细' + + bank_id = fields.Many2one('property.bank.statements', string='关联银行对账单') + receivable_id = fields.Many2one('property.accounts.receivable', string='应收账单') + amount = fields.Float(string='修改金额') + + + + diff --git a/yuthon_property/security/ir.model.access.csv b/yuthon_property/security/ir.model.access.csv index f83a09005..b3e2867c3 100644 --- a/yuthon_property/security/ir.model.access.csv +++ b/yuthon_property/security/ir.model.access.csv @@ -88,6 +88,7 @@ access_evaluation_plan_wizard,evaluation_plan_wizard,model_evaluation_plan_wizar access_receivable_log_wizard, receivable.log.wizard,model_receivable_log_wizard,base.group_user,1,1,1,1 access_amount_way,amount_way,model_amount_way,base.group_user,1,1,1,1 access_property_summary_report, property_summary_report,model_property_summary_report,base.group_user,1,1,1,1 +access_receivable_modify_line, receivable.modify.line,model_receivable_modify_line,base.group_user,1,1,1,1 access_meter_price_wizard, meter_price_wizard,model_meter_price_wizard,base.group_user,1,1,1,1 access_water_price_wizard, water_price_wizard,model_water_price_wizard,base.group_user,1,1,1,1 diff --git a/yuthon_property/views/property_bank_statements_views.xml b/yuthon_property/views/property_bank_statements_views.xml index 1fdd632bf..dcc957ef5 100644 --- a/yuthon_property/views/property_bank_statements_views.xml +++ b/yuthon_property/views/property_bank_statements_views.xml @@ -5,6 +5,9 @@ property.bank.statements +
+
@@ -30,6 +33,7 @@
+ property.bank.statements.tree property.bank.statements @@ -37,10 +41,9 @@ - - - +
+
@@ -65,7 +68,6 @@ -