@@ -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:
|
||||
|
||||
Reference in New Issue
Block a user