You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
 
 
 
 

63 lines
2.6 KiB

# -*- coding: utf-8 -*-
# © 2016 Eficent Business and IT Consulting Services S.L.
# © 2016 Serpent Consulting Services Pvt. Ltd.
# License AGPL-3.0 or later (https://www.gnu.org/licenses/agpl.html).
import time
from openerp import api, models
class SummaryReport(models.AbstractModel):
_name = 'report.bank_statement_reconciliation_summary.summary_report'
@api.model
def _plus_outstanding_payments(self, journal_record):
account_id = journal_record.default_credit_account_id and\
journal_record.default_credit_account_id.clearing_account_id and\
journal_record.default_credit_account_id.clearing_account_id.id
account_move_line_records = self.env['account.move.line'].search([
('account_id', '=', account_id),
('reconcile_id', '=', False),
('account_id.reconcile', '=', True),
('credit', '>', 0.00)
], order='date')
return account_move_line_records
@api.model
def _less_outstanding_receipts(self, journal_record):
account_id = journal_record.default_credit_account_id and\
journal_record.default_credit_account_id.clearing_account_id and\
journal_record.default_credit_account_id.clearing_account_id.id
account_move_line_records = self.env['account.move.line'].search([
('account_id', '=', account_id),
('reconcile_id', '=', False),
('account_id.reconcile', '=', True),
('debit', '>', 0.00)
], order='date')
return account_move_line_records
@api.model
def _plus_unreconciled_statement_lines(self, statement):
statement_lines = self.env['account.bank.statement.line'].browse()
for line in statement.line_ids:
if not line.journal_entry_id:
statement_lines += line
return statement_lines or False
@api.multi
def render_html(self, data=None):
Report = self.env['report']
report_name = 'bank_statement_reconciliation_summary.summary_report'
report = Report._get_report_from_name(report_name)
records = self.env['account.bank.statement'].browse(self.ids)
docargs = {
'doc_ids': self.ids,
'doc_model': report.model,
'data': data,
'docs': records,
'time': time,
'plus_outstanding_payments': self._plus_outstanding_payments,
'less_outstanding_receipts': self._less_outstanding_receipts,
'plus_unreconciled_statement_lines':
self._plus_unreconciled_statement_lines
}
return self.env['report'].render(report_name, docargs)