Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
[ADD][8.0] module "bank_statement_reconciliation_summary"
- Loading branch information
1 parent
0eb262e
commit 2994f9e
Showing
15 changed files
with
693 additions
and
0 deletions.
There are no files selected for viewing
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,141 @@ | ||
.. image:: https://img.shields.io/badge/licence-AGPL--3-blue.svg | ||
:target: http://www.gnu.org/licenses/agpl-3.0-standalone.html | ||
:alt: License: AGPL-3 | ||
|
||
===================================== | ||
Bank Statement Reconciliation Summary | ||
===================================== | ||
|
||
The Bank Reconciliation Summary shows how your actual bank statement balance | ||
and the balance of the bank account in Odoo match, after taking into account | ||
any unreconciled items. | ||
|
||
This report is useful if your bank account's statement balance and balance | ||
in Odoo do not match, and you need to check for duplicate or manually created | ||
transactions that might cause the discrepancy. | ||
|
||
This report was created, inspired by Xero’s bank reconciliation summary, | ||
https://help.xero.com/Report_BankRec, and from a basic explanation of the | ||
bank statement reconciliation summary: | ||
http://www.accountingcoach.com/bank-reconciliation/explanation. | ||
|
||
|
||
Usage | ||
===== | ||
|
||
Define Accounts | ||
--------------- | ||
There are three accounts associated to a bank account: | ||
* Bank account view | ||
* Bank Account. Matches the statement | ||
* Bank Clearing Account. Is used for uncleared payments and receipts. The | ||
Bank Clearing Account is a reconcilable account. | ||
|
||
In the definition of the bank account that is used to match with the bank | ||
statement, define what will be the GL account used to record the uncleared | ||
payments and receipts. | ||
|
||
Define Account Journals | ||
----------------------- | ||
Create the following journals: | ||
* Journal for Bank Statement reconciliation | ||
* Journal to enter Payments and Receipts that have not yet cleared to the bank | ||
|
||
|
||
Enter payments and receipts | ||
--------------------------- | ||
Every time an invoice is paid, use the Journal to enter Payments and Receipts. | ||
It will generate: | ||
Dr. Accounts Payable | ||
Cr. Bank Clearing Account | ||
|
||
Create a bank statement | ||
----------------------- | ||
Create a bank statement and select the Journal defined for bank statement | ||
reconciliation. | ||
|
||
If you do not use a tool to integrate automatically the bank statement feed | ||
into Odoo, you can press press the button “Import Payments and Receipts” | ||
in order to add to the statements the payments and receipts that have been | ||
generated, but that have not yet cleared the bank. | ||
|
||
Use the “Reconcile” button to reconcile the entries in the bank statement | ||
with the payments and receipts that have already cleared the bank. | ||
|
||
If you chose to import the statement lines from uncleared payments and | ||
receipts, this will be the moment where you will visually compare with the | ||
online/paper bank statement, and reconcile the items that truly cleared the | ||
bank. | ||
|
||
The Odoo Bank Reconciliation Wizard will be used by the user to specifically | ||
create the Bank Account entries by linking the Bank Statement lines with the | ||
Bank Clearing Account items. | ||
|
||
Dr. Bank Clearing Account | ||
Cr. Bank Account | ||
|
||
Once you have completed this process, some statement lines may be left | ||
unreconciled (because they were truly not present in the online/physical | ||
statement). In that case you can press the button “Remove Unreconciled”. | ||
|
||
Print bank statement reconciliation summary | ||
------------------------------------------- | ||
It will report on the current balance of the Bank Account, and will show the | ||
unreconciled entries of the Bank Clearing Account, classifying the them | ||
between Outstanding Payments (that is, credits in the Bank Clearing Account) | ||
and Outstanding Receipts (that is, debits in the Bank Clearing Account). | ||
|
||
The application will also show the bank statement lines that have not yet | ||
been reconciled yet, if any exists. | ||
|
||
Once the user has fully processed the reconciliation with the bank clearing | ||
account, all the entries in this bank clearing account should be reconciled, | ||
and the bank account (used to match with the Statement) will truly | ||
reflect the same information as the bank statement balance. | ||
|
||
From a bank account perspective, the total amount held in the bank is the | ||
sum of the balances of the bank clearing account (which should normally | ||
show undeposited checks, for example) and the bank account used to match | ||
with the statement. | ||
|
||
|
||
.. image:: https://odoo-community.org/website/image/ir.attachment/5784_f2813bd/datas | ||
:alt: Try me on Runbot | ||
:target: https://runbot.odoo-community.org/runbot/91/8.0 | ||
|
||
|
||
Known issues / Roadmap | ||
====================== | ||
|
||
* For Odoo v9 there will be no need to use the clearing account. | ||
|
||
Bug Tracker | ||
=========== | ||
|
||
Bugs are tracked on `GitHub Issues <https://github.com/OCA/account-financial-reporting/issues>`_. | ||
In case of trouble, please check there if your issue has already been reported. | ||
If you spotted it first, help us smashing it by providing a detailed and welcomed feedback | ||
`here <https://github.com/OCA/account-financial-reporting/issues/new?body=module:%20account_tax_report_no_zeroes%0Aversion:%208.0%0A%0A**Steps%20to%20reproduce**%0A-%20...%0A%0A**Current%20behavior**%0A%0A**Expected%20behavior**>`_. | ||
|
||
Credits | ||
======= | ||
|
||
Contributors | ||
------------ | ||
|
||
* Jordi Ballester Alomar <contact@eficent.com> | ||
|
||
Maintainer | ||
---------- | ||
|
||
.. image:: https://odoo-community.org/logo.png | ||
:alt: Odoo Community Association | ||
:target: https://odoo-community.org | ||
|
||
This module is maintained by the OCA. | ||
|
||
OCA, or the Odoo Community Association, is a nonprofit organization whose | ||
mission is to support the collaborative development of Odoo features and | ||
promote its widespread use. | ||
|
||
To contribute to this module, please visit http://odoo-community.org. |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,8 @@ | ||
# -*- 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 models | ||
import report | ||
import wizard |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,21 @@ | ||
# -*- 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). | ||
{ | ||
'name': 'Bank Statement Reconciliation Summary', | ||
'category': 'Account', | ||
'summary': 'Bank Statement Reconciliation Summary', | ||
'version': '8.0.1.0.0', | ||
'author': 'Eficent Business and IT Consulting Services S.L., ' | ||
'Serpent Consulting Services Pvt. Ltd.', | ||
'depends': ['account'], | ||
'data': [ | ||
'report/summary_report.xml', | ||
'report/report.xml', | ||
'view/account_account_view.xml', | ||
'wizard/account_bank_unreconcile_view.xml', | ||
'view/account_bank_statement.xml', | ||
], | ||
'installable': True, | ||
} |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,6 @@ | ||
# -*- 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). | ||
from . import account_account | ||
from . import account_bank_statement |
12 changes: 12 additions & 0 deletions
12
bank_statement_reconciliation_summary/models/account_account.py
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,12 @@ | ||
# -*- 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). | ||
from openerp import models, fields | ||
|
||
|
||
class AccountAccount(models.Model): | ||
_inherit = 'account.account' | ||
|
||
clearing_account_id = fields.Many2one('account.account', | ||
'Clearing Account') |
23 changes: 23 additions & 0 deletions
23
bank_statement_reconciliation_summary/models/account_bank_statement.py
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,23 @@ | ||
# -*- 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). | ||
from openerp import api, fields, models | ||
|
||
|
||
class AccountBankStatement(models.Model): | ||
_inherit = 'account.bank.statement' | ||
|
||
@api.multi | ||
def delete_unreconciled(self): | ||
self.ensure_one() | ||
for line in self.line_ids: | ||
if not line.journal_entry_id: | ||
line.unlink() | ||
|
||
|
||
class AccountBankStatementLine(models.Model): | ||
_inherit = 'account.bank.statement.line' | ||
|
||
clearing_move_line_id = fields.Many2one('account.move.line', | ||
'Clearing Move Line') |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,5 @@ | ||
# -*- 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 summary_report |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,33 @@ | ||
<?xml version="1.0" encoding="UTF-8"?> | ||
<openerp> | ||
<data> | ||
|
||
<record id="summary_report_paperformat" model="report.paperformat"> | ||
<field name="name">Bank Statement Reconcillation Summary Paperformat</field> | ||
<field name="default" eval="True" /> | ||
<field name="format">A4</field> | ||
<field name="page_height">0</field> | ||
<field name="page_width">0</field> | ||
<field name="orientation">Portrait</field> | ||
<field name="margin_top">0</field> | ||
<field name="margin_bottom">0</field> | ||
<field name="margin_left">5</field> | ||
<field name="margin_right">5</field> | ||
<field name="header_line" eval="False" /> | ||
<field name="header_spacing">0</field> | ||
<field name="dpi">90</field> | ||
</record> | ||
|
||
<report id="report_bank_stmt_reconcile_summary" | ||
string="Bank Statement Reconcillation Summary" | ||
model="account.bank.statement" | ||
report_type="qweb-pdf" | ||
file="bank_statement_reconciliation_summary.summary_report" | ||
name="bank_statement_reconciliation_summary.summary_report"/> | ||
|
||
<record id="report_bank_stmt_reconcile_summary" model="ir.actions.report.xml"> | ||
<field name="paperformat_id" ref="summary_report_paperformat"/> | ||
</record> | ||
|
||
</data> | ||
</openerp> |
63 changes: 63 additions & 0 deletions
63
bank_statement_reconciliation_summary/report/summary_report.py
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,63 @@ | ||
# -*- 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) |
Oops, something went wrong.