!6649 添加功能

Merge pull request !6649 from 李鹏宇/dev_zhou
This commit is contained in:
李鹏宇
2025-11-24 08:11:04 +00:00
committed by Gitee
3 changed files with 23 additions and 13 deletions
@@ -373,7 +373,7 @@ class PropertyBankStatements(models.Model):
})
receivable_id.is_reconciliation = True
def _get_reconciliation_vals(self, record):
def _get_reconciliation_vals(self, record, contract_ids):
if record.name:
collection_type_map = {
'rent': '租金',
@@ -390,7 +390,7 @@ class PropertyBankStatements(models.Model):
total_rent_month = 0
# 应收租金
rent_ids = self.env['property.accounts.receivable'].search([
('contract_id', 'in', record.contract_ids.ids),
('contract_id', 'in', contract_ids.ids),
('contract_id.lessor_id.referred', '=', self.your_own_unit),
('management_type_id.name', '=', '租金'),
('is_invalid', '=', False),
@@ -399,7 +399,7 @@ class PropertyBankStatements(models.Model):
# 更名费
rename_fee_ids = self.env['property.accounts.receivable'].search([
('contract_id', 'in', record.contract_ids.ids),
('contract_id', 'in', contract_ids.ids),
('contract_id.lessor_id.referred', '=', self.your_own_unit),
('management_type_id.name', '=', '更名费'),
('is_invalid', '=', False),
@@ -408,7 +408,7 @@ class PropertyBankStatements(models.Model):
# 应收押金
deposit_ids = self.env['property.accounts.receivable'].search([
('contract_id', 'in', record.contract_ids.ids),
('contract_id', 'in', contract_ids.ids),
('contract_id.lessor_id.referred', '=', self.your_own_unit),
('management_type_id.name', '=', '押金'),
('is_invalid', '=', False),
@@ -416,7 +416,7 @@ class PropertyBankStatements(models.Model):
])
# 应收管理费
management_ids = self.env['property.accounts.receivable'].search([
('contract_id', 'in', record.contract_ids.ids),
('contract_id', 'in', contract_ids.ids),
('contract_id.lessor_id.referred', '=', self.your_own_unit),
('management_type_id.name', '=', '管理费'),
('is_invalid', '=', False),
@@ -424,7 +424,7 @@ class PropertyBankStatements(models.Model):
])
# 应收灯箱
lightbox_ids = self.env['property.accounts.receivable'].search([
('contract_id', 'in', record.contract_ids.ids),
('contract_id', 'in', contract_ids.ids),
('contract_id.lessor_id.referred', '=', self.your_own_unit),
('management_type_id.name', '=', '灯箱'),
('is_invalid', '=', False),
@@ -432,7 +432,7 @@ class PropertyBankStatements(models.Model):
])
# 应收管子间
guanzi_ids = self.env['property.accounts.receivable'].search([
('contract_id', 'in', record.contract_ids.ids),
('contract_id', 'in', contract_ids.ids),
('contract_id.lessor_id.referred', '=', self.your_own_unit),
('management_type_id.name', '=', '管子间'),
('is_invalid', '=', False),
@@ -441,7 +441,7 @@ class PropertyBankStatements(models.Model):
# 应收水费
water_ids = self.env['property.accounts.receivable'].search([
('contract_id', 'in', record.contract_ids.ids),
('contract_id', 'in', contract_ids.ids),
('contract_id.lessor_id.referred', '=', self.your_own_unit),
('management_type_id.name', '=', '水费'),
('is_invalid', '=', False),
@@ -449,7 +449,7 @@ class PropertyBankStatements(models.Model):
])
# 应收电费
electricity_ids = self.env['property.accounts.receivable'].search([
('contract_id', 'in', record.contract_ids.ids),
('contract_id', 'in', contract_ids.ids),
('contract_id.lessor_id.referred', '=', self.your_own_unit),
('management_type_id.name', '=', '电费'),
('is_invalid', '=', False),
@@ -458,7 +458,7 @@ class PropertyBankStatements(models.Model):
# 应收人工费/日光灯款/代垫用料费
fee_ids = self.env['property.accounts.receivable'].search([
('contract_id', 'in', record.contract_ids.ids),
('contract_id', 'in', contract_ids.ids),
('contract_id.lessor_id.referred', '=', self.your_own_unit),
('management_type_id.name', '=', '人工费/日光灯款/代垫用料费'),
('is_invalid', '=', False),
@@ -624,7 +624,7 @@ class PropertyBankStatements(models.Model):
def button_reconciliation(self):
for record in self:
all_vals, total_rent_month, used_type_names = self._get_reconciliation_vals(record)
all_vals, total_rent_month, used_type_names = self._get_reconciliation_vals(record, record.contract_ids)
return self._get_context_and_action(record, all_vals, total_rent_month, used_type_names)
def put_button(self):
@@ -643,7 +643,7 @@
</xpath>
<xpath expr="//field[@name='bank_state']" position="after">
<button name="button_reconciliation" type="object" string="对账" class="btn btn-primary" invisible="bank_state == 'reconciled'"/>
<button name="binding_information" type="object" string="绑定信息" class="btn btn-primary"/>
<button name="binding_information" type="object" string="绑定信息" class="btn btn-primary" invisible="name_account == '广州产权交易所有限公司'"/>
</xpath>
</field>
</record>
@@ -73,8 +73,10 @@ class PropertyReconciliationWizard(models.Model):
@api.onchange('contract_ids')
def onchange_contract_ids(self):
for rec in self:
bank_contract_ids = rec.bank_id.contract_ids.ids if rec.bank_id else []
current_contract_ids = rec.contract_ids.ids
to_delete = []
existing_contract_ids = []
for line in rec.reconciliation_line_ids:
if hasattr(line.contract_id.id, 'origin'):
line_contract_id = line.contract_id.id.origin
@@ -84,6 +86,14 @@ class PropertyReconciliationWizard(models.Model):
to_delete.append((2, line.id, 0))
rec.reconciliation_line_ids = to_delete
new_contract_ids = list(set(current_contract_ids) - set(bank_contract_ids))
if new_contract_ids:
new_contracts = self.env['property.lease.contract'].browse(new_contract_ids)
new_vals, _, _ = rec.bank_id._get_reconciliation_vals(rec.bank_id, new_contracts)
current_line_vals = [(4, line.id) for line in rec.reconciliation_line_ids]
rec.reconciliation_line_ids = current_line_vals + new_vals
rec.onchange_receivables_type_ids()
@api.onchange('receivables_type_ids')
def onchange_receivables_type_ids(self):
for rec in self:
@@ -571,7 +581,7 @@ class PropertyReconciliationWizard(models.Model):
rec.bank_id.yes_amount = rec.bank_id.yes_amount + yes_amount
rec.bank_id.change_amount = sum(line.amount for line in rec.reconciliation_line_ids)
all_contracts = self.bank_id.contract_ids
all_contracts = self.contract_ids
all_contract_ids = all_contracts.ids
remaining_contract_ids = []
for contract in all_contracts: