commit
e9c9723c21
|
@ -0,0 +1,243 @@
|
|||
===========================
|
||||
Bank Account Reconciliation
|
||||
===========================
|
||||
|
||||
.. !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
|
||||
!! This file is generated by oca-gen-addon-readme !!
|
||||
!! changes will be overwritten. !!
|
||||
!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
|
||||
|
||||
.. |badge1| image:: https://img.shields.io/badge/licence-AGPL--3-blue.png
|
||||
:target: http://www.gnu.org/licenses/agpl-3.0-standalone.html
|
||||
:alt: License: AGPL-3
|
||||
.. |badge2| image:: https://img.shields.io/badge/github-OCA%2Faccount--reconcile-lightgray.png?logo=github
|
||||
:target: https://github.com/OCA/account-reconcile/tree/12.0/account_banking_reconciliation
|
||||
:alt: OCA/account-reconcile
|
||||
.. |badge3| image:: https://img.shields.io/badge/weblate-Translate%20me-F47D42.png
|
||||
:target: https://translation.odoo-community.org/projects/account-reconcile-12-0/account-reconcile-12-0-account_banking_reconciliation
|
||||
:alt: Translate me on Weblate
|
||||
.. |badge4| image:: https://img.shields.io/badge/runbot-Try%20me-875A7B.png
|
||||
:target: https://runbot.odoo-community.org/runbot/98/12.0
|
||||
:alt: Try me on Runbot
|
||||
|
||||
|badge1| |badge2| |badge3| |badge4|
|
||||
|
||||
This module is designed to provide an easy method in which Odoo accounting users
|
||||
can manually reconcile/validate their financial transactions from their financial
|
||||
institution/transaction providers (e.g. Paypal, A financial institution, google
|
||||
wallet, etc) against Odoo GL Chart of Account bank accounts.
|
||||
|
||||
Users will be able to validate and indicate if a transaction has "Cleared the
|
||||
Bank" using a checkmark on a new Reconcile Financial Account Statement view on
|
||||
each individual financial transaction. Users will also be able to mark
|
||||
transactions on a bank account for future research.
|
||||
|
||||
The idea is that as a first step users will manually look at their paper statement
|
||||
and line-by-line check off which financial transactions have cleared the bank in
|
||||
Odoo using the new Bank Reconciliation Wizard. These changes will be displayed on
|
||||
the new Reconcile Financial Account Statement tree view screen. This is the
|
||||
process in which many companies reconcile (aka Audit) their bank account statements
|
||||
and accounting system today and represents good segregation of duties.
|
||||
|
||||
Users can save their in-process reconciliations.
|
||||
|
||||
Background
|
||||
----------
|
||||
|
||||
Using the search view filters - users will also be able to effectively sort,
|
||||
filter the transactions on a particular GL Financial Account. This new screen
|
||||
will display the journal items associated with a particular bank account.
|
||||
Several of the field labels have been relabeled to a more common vernacular.
|
||||
|
||||
The need for this module is driven by the following:
|
||||
|
||||
* Users want to easily record whether bank transactions sent to their bank have
|
||||
"cleared the bank"- definition of "cleared the bank": presented to the bank for
|
||||
payment and paid by the bank - added/subtracted funds on a bank account.
|
||||
* Users want the ability to validate if the bank processed the transactions them
|
||||
correctly (e.g. properly encoded transaction - e.g. company sent a payment of
|
||||
$20.20 to the bank. Was it processed for $20.20?). This can be considered
|
||||
"Auditing the bank statement". We don't assume the bank correctly processed any
|
||||
transaction.
|
||||
* Users want to understand what payments they've made are still outstanding and
|
||||
have not been paid by the bank.
|
||||
* The financial auditing segregation standard of separating the duties of:
|
||||
recording customer payments and making deposits; recording supplier payments
|
||||
and writing checks; and monitoring bank account activity. This segregation of
|
||||
duties is necessary to monitor and help prevent fraud.
|
||||
|
||||
Assumptions
|
||||
-----------
|
||||
|
||||
#. Companies using Odoo have setup a one-to-one relationship between their
|
||||
bank accounts and their Odoo GL accounts. Each bank account should have a
|
||||
corresponding GL account that is not shared with another account.
|
||||
Example:
|
||||
|
||||
+----------------------+------------------------------------------------------------+
|
||||
| Odoo GL Account # | Corresponding Bank Account |
|
||||
+======================+============================================================+
|
||||
| 10100 | Bank (AR) Account Checking 5434 (held at Institution A) |
|
||||
+----------------------+------------------------------------------------------------+
|
||||
| 10200 | Master Bank Account 2343 (held at Institution A) |
|
||||
+----------------------+------------------------------------------------------------+
|
||||
| 10300 | Bank Payable Account Checking 5678 (held at Institution A)|
|
||||
+----------------------+------------------------------------------------------------+
|
||||
| 10400 | Bank Payroll Account 6656 (held at Institution B) |
|
||||
+----------------------+------------------------------------------------------------+
|
||||
| 10500 | Paypal Account 3343 (held at Paypal) |
|
||||
+----------------------+------------------------------------------------------------+
|
||||
| 10600 | Google Wallet Account 6788 |
|
||||
+----------------------+------------------------------------------------------------+
|
||||
| 10700 | AMEX Corporate Card Account 9989 |
|
||||
+----------------------+------------------------------------------------------------+
|
||||
|
||||
#. Companies have included a Non-Deposited Funds Account in their GL account
|
||||
(typically in current assets in their bank account areas). This account is
|
||||
used to store payments that have been recorded in Odoo - but not yet
|
||||
deposited into the financial institution. (NOTE: this account is important to
|
||||
have if the user "batches check deposits"- which is the process of making a
|
||||
large single deposits of customer payment into the bank (e.g. $20,000USD), but
|
||||
it is made up of smaller checks (e.g. 20 checks of $1,000 each). Many banks
|
||||
just record the total deposit amount ($20,000) and don¬タルt provide the
|
||||
breakdown of the individual checks that make up the larger deposit. This
|
||||
setup approach enables users to drill down and see the individual checks that
|
||||
make up a larger deposit.
|
||||
|
||||
Recommendations
|
||||
---------------
|
||||
|
||||
From a cash management and financial control perspective, it is recommended that
|
||||
users establish the following four (4) bank accounts at their financial
|
||||
institution at a minimum to handle financial transactions. (NOTE: we recommend
|
||||
users place the last 4 digits of their bank account in the GL account name of the
|
||||
account. It helps accountants in their management of the system):
|
||||
|
||||
* Bank (AR) Account Checking 5434. This is a checking account designated as the
|
||||
account where payments made to the company are deposited (e.g. a customer
|
||||
payment made by check is deposited here, or a customer paying by electronic
|
||||
transaction EFT/ACH is deposited into this GL).
|
||||
* Master Bank Account 2343. This is the master account in which the company
|
||||
keeps the majority of their funds. Often with the most limited access.
|
||||
* Bank Payable Account Checking 5678. This is a checking account designated for
|
||||
the company to pay their expenses from. (e.g. Company writes a check to pay a
|
||||
supplier for their office supplies).
|
||||
* Bank Payroll Account 6656. This is a checking account designated for a company
|
||||
to pay their employees and payroll.
|
||||
|
||||
Note
|
||||
----
|
||||
|
||||
There has been common confusion in the Odoo community about managing bank
|
||||
statements in the base Odoo system. This module hopes to alleviate this gap and
|
||||
provide users with a sound alternative to maintain fiscal control, be easy to
|
||||
understand, and allow for future growth.
|
||||
|
||||
Why this approach?
|
||||
------------------
|
||||
|
||||
Users in Odoo have several options in which to record financial transactions that
|
||||
affect the balances of a bank account (GL Bank Account entries). We believe our
|
||||
approach allows these to work in conjunction with each other: Import Electronic
|
||||
Bank Statements to enter payments (this approach follows the philosophy that you
|
||||
first find out that a transaction has occurred from your bank which is very
|
||||
common in Europe due to the electronic nature of transactions).
|
||||
|
||||
* Payment Order Payments (using the direct Method) - Payments are instantly recorded
|
||||
and financial transactions posted into the GL
|
||||
* Voucher Payments - Payments are instantly recorded and financial transactions
|
||||
posted into the GL
|
||||
* Sales Receipts/Refunds
|
||||
* Transfers between accounts (a new module is being developed to help manage this)
|
||||
* Funds moved from the Undeposited Funds GL account to a Bank Account GL account.
|
||||
* Direct Journal Entries
|
||||
|
||||
**Table of contents**
|
||||
|
||||
.. contents::
|
||||
:local:
|
||||
|
||||
Configuration
|
||||
=============
|
||||
|
||||
To configure this module
|
||||
|
||||
* Go to Settings and activate the developer mode
|
||||
* Go to Settings > Users and Companies > Users
|
||||
* Add users who will prepare the bank statements to the "Bank Statement Preparer"
|
||||
* Add users who will verify them to the "Bank Statement Manager" group
|
||||
|
||||
Usage
|
||||
=====
|
||||
|
||||
To use this module:
|
||||
|
||||
* Go to Accounting > Adviser > Bank Statements
|
||||
* Create a new bank statement
|
||||
* Select the account and provide a name
|
||||
* Enter the ending balance from the bank statement
|
||||
* Check the transactions that cleared the bank
|
||||
* Check the balances
|
||||
* Save and submit for review
|
||||
* As a reviewer, check the transactions, totals and balances
|
||||
* Click on Process
|
||||
|
||||
Bug Tracker
|
||||
===========
|
||||
|
||||
Bugs are tracked on `GitHub Issues <https://github.com/OCA/account-reconcile/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 <https://github.com/OCA/account-reconcile/issues/new?body=module:%20account_banking_reconciliation%0Aversion:%2012.0%0A%0A**Steps%20to%20reproduce**%0A-%20...%0A%0A**Current%20behavior**%0A%0A**Expected%20behavior**>`_.
|
||||
|
||||
Do not contact contributors directly about support or help with technical issues.
|
||||
|
||||
Credits
|
||||
=======
|
||||
|
||||
Authors
|
||||
~~~~~~~
|
||||
|
||||
* NovaPoint Group LLC
|
||||
* Open Source Integrators
|
||||
|
||||
Contributors
|
||||
~~~~~~~~~~~~
|
||||
|
||||
* Nova Point Group <info@novapointgroup.com>
|
||||
* Balaji Kannan <bkannan@opensourceintegrators.com>
|
||||
* Bhavesh Odedra <bodedra@opensourceintegrators.com>
|
||||
* Sandeep Mangukiya <smangukiya@opensourceintegrators.com>
|
||||
* Murtuza Saleh <murtuza.saleh@serpentcs.com>
|
||||
|
||||
Other credits
|
||||
~~~~~~~~~~~~~
|
||||
|
||||
* Nova Point Group <https://www.novapointgroup.com>
|
||||
* Open Source Integrators <https://www.opensourceintegrators.com>
|
||||
* Serpent Consulting Services Pvt. Ltd. <https://www.serpentcs.com>
|
||||
|
||||
Maintainers
|
||||
~~~~~~~~~~~
|
||||
|
||||
This module is maintained by the OCA.
|
||||
|
||||
.. image:: https://odoo-community.org/logo.png
|
||||
:alt: Odoo Community Association
|
||||
:target: https://odoo-community.org
|
||||
|
||||
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.
|
||||
|
||||
.. |maintainer-max3903| image:: https://github.com/max3903.png?size=40px
|
||||
:target: https://github.com/max3903
|
||||
:alt: max3903
|
||||
|
||||
Current `maintainer <https://odoo-community.org/page/maintainer-role>`__:
|
||||
|
||||
|maintainer-max3903|
|
||||
|
||||
This module is part of the `OCA/account-reconcile <https://github.com/OCA/account-reconcile/tree/12.0/account_banking_reconciliation>`_ project on GitHub.
|
||||
|
||||
You are welcome to contribute. To learn how please visit https://odoo-community.org/page/Contribute.
|
|
@ -0,0 +1,3 @@
|
|||
# License AGPL-3.0 or later (http://www.gnu.org/licenses/agpl).
|
||||
|
||||
from . import models
|
|
@ -0,0 +1,30 @@
|
|||
# Copyright (C) 2019 Open Source Integrators
|
||||
# <https://www.opensourceintegrators.com>
|
||||
# Copyright (C) 2011 NovaPoint Group LLC (<http://www.novapointgroup.com>)
|
||||
# Copyright (C) 2004-2010 OpenERP SA (<http://www.openerp.com>)
|
||||
# License AGPL-3.0 or later (http://www.gnu.org/licenses/agpl).
|
||||
{
|
||||
"name": "Bank Account Reconciliation",
|
||||
"summary": "Check transactions that cleared the bank",
|
||||
"version": "12.0.1.0.0",
|
||||
"license": "AGPL-3",
|
||||
"category": "Accounting and Financial Management",
|
||||
"author": "NovaPoint Group LLC, "
|
||||
"Open Source Integrators, "
|
||||
"Odoo Community Association (OCA)",
|
||||
"website": "https://github.com/OCA/account-reconcile",
|
||||
"depends": [
|
||||
"account_voucher",
|
||||
],
|
||||
"data": [
|
||||
"security/account_banking_reconciliation.xml",
|
||||
"security/ir.model.access.csv",
|
||||
"views/account_banking_reconciliation.xml",
|
||||
"views/account_move_line.xml",
|
||||
"report/bank_statement_report.xml",
|
||||
"report/report_bank_statement_summary.xml",
|
||||
"report/report_bank_statement_detail.xml"],
|
||||
"installable": True,
|
||||
"development_status": "Stable",
|
||||
"maintainers": ["max3903"],
|
||||
}
|
|
@ -0,0 +1,866 @@
|
|||
# Translation of Odoo Server.
|
||||
# This file contains the translation of the following modules:
|
||||
# * account_banking_reconciliation
|
||||
#
|
||||
msgid ""
|
||||
msgstr ""
|
||||
"Project-Id-Version: Odoo Server 12.0\n"
|
||||
"Report-Msgid-Bugs-To: \n"
|
||||
"Last-Translator: <>\n"
|
||||
"Language-Team: \n"
|
||||
"MIME-Version: 1.0\n"
|
||||
"Content-Type: text/plain; charset=UTF-8\n"
|
||||
"Content-Transfer-Encoding: \n"
|
||||
"Plural-Forms: \n"
|
||||
|
||||
#. module: account_banking_reconciliation
|
||||
#: code:addons/account_banking_reconciliation/models/account_banking_reconciliation.py:548
|
||||
#, python-format
|
||||
msgid "%s (copy)"
|
||||
msgstr ""
|
||||
|
||||
#. module: account_banking_reconciliation
|
||||
#: model:ir.model.fields,help:account_banking_reconciliation.field_bank_acc_rec_statement__difference
|
||||
#: model:ir.model.fields,help:account_banking_reconciliation.field_bank_acc_rec_statement__difference_cur
|
||||
msgid "(Ending Balance – Beginning Balance) - Cleared Balance."
|
||||
msgstr ""
|
||||
|
||||
#. module: account_banking_reconciliation
|
||||
#: model_terms:ir.ui.view,arch_db:account_banking_reconciliation.report_bank_statement_detail_doc
|
||||
msgid "<b>\n"
|
||||
" <span>Cleared Balance</span>\n"
|
||||
" </b>"
|
||||
msgstr ""
|
||||
|
||||
#. module: account_banking_reconciliation
|
||||
#: model_terms:ir.ui.view,arch_db:account_banking_reconciliation.report_bank_statement_detail_doc
|
||||
msgid "<b>\n"
|
||||
" <span>Ending Balance</span>\n"
|
||||
" </b>"
|
||||
msgstr ""
|
||||
|
||||
#. module: account_banking_reconciliation
|
||||
#: model_terms:ir.ui.view,arch_db:account_banking_reconciliation.report_bank_statement_detail_doc
|
||||
msgid "<b>\n"
|
||||
" <span>Total Checks & Payments\n"
|
||||
" </span>\n"
|
||||
" </b>"
|
||||
msgstr ""
|
||||
|
||||
#. module: account_banking_reconciliation
|
||||
#: model_terms:ir.ui.view,arch_db:account_banking_reconciliation.report_bank_statement_detail_doc
|
||||
msgid "<b>\n"
|
||||
" <span>Total Cleared Transactions\n"
|
||||
" </span>\n"
|
||||
" </b>"
|
||||
msgstr ""
|
||||
|
||||
#. module: account_banking_reconciliation
|
||||
#: model_terms:ir.ui.view,arch_db:account_banking_reconciliation.report_bank_statement_detail_doc
|
||||
msgid "<b>\n"
|
||||
" <span>Total Deposits &\n"
|
||||
" Credits\n"
|
||||
" </span>\n"
|
||||
" </b>"
|
||||
msgstr ""
|
||||
|
||||
#. module: account_banking_reconciliation
|
||||
#: model_terms:ir.ui.view,arch_db:account_banking_reconciliation.report_bank_statement_summary_doc
|
||||
msgid "<b>\n"
|
||||
" <span>Cleared Balance</span>\n"
|
||||
" </b>"
|
||||
msgstr ""
|
||||
|
||||
#. module: account_banking_reconciliation
|
||||
#: model_terms:ir.ui.view,arch_db:account_banking_reconciliation.report_bank_statement_detail_doc
|
||||
#: model_terms:ir.ui.view,arch_db:account_banking_reconciliation.report_bank_statement_summary_doc
|
||||
msgid "<b>\n"
|
||||
" <span>Cleared Transactions</span>\n"
|
||||
" </b>"
|
||||
msgstr ""
|
||||
|
||||
#. module: account_banking_reconciliation
|
||||
#: model_terms:ir.ui.view,arch_db:account_banking_reconciliation.report_bank_statement_summary_doc
|
||||
msgid "<b>\n"
|
||||
" <span>Ending Balance:</span>\n"
|
||||
" </b>"
|
||||
msgstr ""
|
||||
|
||||
#. module: account_banking_reconciliation
|
||||
#: model_terms:ir.ui.view,arch_db:account_banking_reconciliation.report_bank_statement_detail_doc
|
||||
#: model_terms:ir.ui.view,arch_db:account_banking_reconciliation.report_bank_statement_summary_doc
|
||||
msgid "<b>\n"
|
||||
" <span>Initial Balance:</span>\n"
|
||||
" </b>"
|
||||
msgstr ""
|
||||
|
||||
#. module: account_banking_reconciliation
|
||||
#: model_terms:ir.ui.view,arch_db:account_banking_reconciliation.report_bank_statement_summary_doc
|
||||
msgid "<b>\n"
|
||||
" <span>Total Cleared Transactions</span>\n"
|
||||
" </b>"
|
||||
msgstr ""
|
||||
|
||||
#. module: account_banking_reconciliation
|
||||
#: model_terms:ir.ui.view,arch_db:account_banking_reconciliation.report_bank_statement_detail_doc
|
||||
#: model_terms:ir.ui.view,arch_db:account_banking_reconciliation.report_bank_statement_summary_doc
|
||||
msgid "<span>Checks & Payments-</span>"
|
||||
msgstr ""
|
||||
|
||||
#. module: account_banking_reconciliation
|
||||
#: model_terms:ir.ui.view,arch_db:account_banking_reconciliation.report_bank_statement_detail_doc
|
||||
#: model_terms:ir.ui.view,arch_db:account_banking_reconciliation.report_bank_statement_summary_doc
|
||||
msgid "<span>Deposits & Credits-</span>"
|
||||
msgstr ""
|
||||
|
||||
#. module: account_banking_reconciliation
|
||||
#: model_terms:ir.ui.view,arch_db:account_banking_reconciliation.report_bank_statement_detail_doc
|
||||
#: model_terms:ir.ui.view,arch_db:account_banking_reconciliation.report_bank_statement_summary_doc
|
||||
msgid "<span>Period Ending</span>"
|
||||
msgstr ""
|
||||
|
||||
#. module: account_banking_reconciliation
|
||||
#: model:ir.model.fields,field_description:account_banking_reconciliation.field_bank_acc_rec_statement__account_id
|
||||
#: model_terms:ir.ui.view,arch_db:account_banking_reconciliation.view_bank_acc_rec_statement_filter
|
||||
msgid "Account"
|
||||
msgstr ""
|
||||
|
||||
#. module: account_banking_reconciliation
|
||||
#: model:ir.model.fields,field_description:account_banking_reconciliation.field_bank_acc_rec_statement_line__amount
|
||||
msgid "Amount"
|
||||
msgstr ""
|
||||
|
||||
#. module: account_banking_reconciliation
|
||||
#: model:ir.model.fields,field_description:account_banking_reconciliation.field_bank_acc_rec_statement_line__amountcur
|
||||
msgid "Amount in Currency"
|
||||
msgstr ""
|
||||
|
||||
#. module: account_banking_reconciliation
|
||||
#: model:ir.model.fields,field_description:account_banking_reconciliation.field_account_move_line__draft_assigned_to_statement
|
||||
msgid "Assigned to Statement? "
|
||||
msgstr ""
|
||||
|
||||
#. module: account_banking_reconciliation
|
||||
#: model_terms:ir.ui.view,arch_db:account_banking_reconciliation.view_bank_acc_rec_statement_form
|
||||
msgid "Balances"
|
||||
msgstr ""
|
||||
|
||||
#. module: account_banking_reconciliation
|
||||
#: model:ir.model,name:account_banking_reconciliation.model_bank_acc_rec_statement
|
||||
#: model:ir.model.fields,field_description:account_banking_reconciliation.field_account_move_line__bank_acc_rec_statement_id
|
||||
msgid "Bank Acc Rec Statement"
|
||||
msgstr ""
|
||||
|
||||
#. module: account_banking_reconciliation
|
||||
#: model_terms:ir.ui.view,arch_db:account_banking_reconciliation.view_bank_acc_rec_statement_form
|
||||
msgid "Bank Account Reconciliation Statement"
|
||||
msgstr ""
|
||||
|
||||
#. module: account_banking_reconciliation
|
||||
#: model_terms:ir.ui.view,arch_db:account_banking_reconciliation.view_bank_acc_rec_statement_tree
|
||||
msgid "Bank Account Reconciliation Statements"
|
||||
msgstr ""
|
||||
|
||||
#. module: account_banking_reconciliation
|
||||
#: model:res.groups,name:account_banking_reconciliation.group_bank_stmt_preparer
|
||||
msgid "Bank Statement Preparer"
|
||||
msgstr ""
|
||||
|
||||
#. module: account_banking_reconciliation
|
||||
#: model:res.groups,name:account_banking_reconciliation.group_bank_stmt_verifier
|
||||
msgid "Bank Statement Verifier"
|
||||
msgstr ""
|
||||
|
||||
#. module: account_banking_reconciliation
|
||||
#: model:ir.actions.report,name:account_banking_reconciliation.bank_statement_detail
|
||||
msgid "Bank Statement-Detail"
|
||||
msgstr ""
|
||||
|
||||
#. module: account_banking_reconciliation
|
||||
#: model:ir.actions.report,name:account_banking_reconciliation.bank_statement_summary
|
||||
msgid "Bank Statement-Summary"
|
||||
msgstr ""
|
||||
|
||||
#. module: account_banking_reconciliation
|
||||
#: model:ir.actions.act_window,name:account_banking_reconciliation.action_bank_acc_rec_statement
|
||||
#: model:ir.ui.menu,name:account_banking_reconciliation.bank_acc_rec_statement_menu
|
||||
msgid "Bank Statements"
|
||||
msgstr ""
|
||||
|
||||
#. module: account_banking_reconciliation
|
||||
#: model_terms:ir.ui.view,arch_db:account_banking_reconciliation.view_bank_acc_rec_statement_form
|
||||
msgid "Cancel"
|
||||
msgstr ""
|
||||
|
||||
#. module: account_banking_reconciliation
|
||||
#: selection:bank.acc.rec.statement,state:0
|
||||
msgid "Cancelled"
|
||||
msgstr ""
|
||||
|
||||
#. module: account_banking_reconciliation
|
||||
#: model:ir.model.fields,help:account_banking_reconciliation.field_account_move_line__draft_assigned_to_statement
|
||||
msgid "Check if the move line is assigned to statement lines"
|
||||
msgstr ""
|
||||
|
||||
#. module: account_banking_reconciliation
|
||||
#: model:ir.model.fields,help:account_banking_reconciliation.field_account_move_line__cleared_bank_account
|
||||
#: model:ir.model.fields,help:account_banking_reconciliation.field_bank_acc_rec_statement_line__cleared_bank_account
|
||||
msgid "Check if the transaction has cleared from the bank"
|
||||
msgstr ""
|
||||
|
||||
#. module: account_banking_reconciliation
|
||||
#: model:ir.model.fields,help:account_banking_reconciliation.field_bank_acc_rec_statement_line__research_required
|
||||
msgid "Check if the transaction should be researched by Accounting personal"
|
||||
msgstr ""
|
||||
|
||||
#. module: account_banking_reconciliation
|
||||
#: model:ir.model.fields,field_description:account_banking_reconciliation.field_bank_acc_rec_statement__sum_of_credits_lines
|
||||
msgid "Checks, Withdrawals,\n"
|
||||
" Debits, and Service Charges # of\n"
|
||||
" Items"
|
||||
msgstr ""
|
||||
|
||||
#. module: account_banking_reconciliation
|
||||
#: model_terms:ir.ui.view,arch_db:account_banking_reconciliation.view_bank_acc_rec_statement_form
|
||||
msgid "Checks, Withdrawals, Debits, and Service Charges"
|
||||
msgstr ""
|
||||
|
||||
#. module: account_banking_reconciliation
|
||||
#: model:ir.model.fields,field_description:account_banking_reconciliation.field_bank_acc_rec_statement__sum_of_credits
|
||||
msgid "Checks, Withdrawals, Debits, and Service Charges Amount"
|
||||
msgstr ""
|
||||
|
||||
#. module: account_banking_reconciliation
|
||||
#: model:ir.model.fields,field_description:account_banking_reconciliation.field_bank_acc_rec_statement__sum_of_credits_cur
|
||||
msgid "Checks, Withdrawals, Debits, and Service Charges Amount (Cur)"
|
||||
msgstr ""
|
||||
|
||||
#. module: account_banking_reconciliation
|
||||
#: model_terms:ir.ui.view,arch_db:account_banking_reconciliation.report_bank_statement_detail_doc
|
||||
#: model_terms:ir.ui.view,arch_db:account_banking_reconciliation.view_bank_acc_rec_statement_form
|
||||
msgid "Cleared"
|
||||
msgstr ""
|
||||
|
||||
#. module: account_banking_reconciliation
|
||||
#: model:ir.model.fields,field_description:account_banking_reconciliation.field_bank_acc_rec_statement__cleared_balance
|
||||
msgid "Cleared Balance"
|
||||
msgstr ""
|
||||
|
||||
#. module: account_banking_reconciliation
|
||||
#: model:ir.model.fields,field_description:account_banking_reconciliation.field_bank_acc_rec_statement__cleared_balance_cur
|
||||
msgid "Cleared Balance (Cur)"
|
||||
msgstr ""
|
||||
|
||||
#. module: account_banking_reconciliation
|
||||
#: model:ir.model.fields,field_description:account_banking_reconciliation.field_account_move_line__cleared_bank_account
|
||||
#: model:ir.model.fields,field_description:account_banking_reconciliation.field_bank_acc_rec_statement_line__cleared_bank_account
|
||||
msgid "Cleared? "
|
||||
msgstr ""
|
||||
|
||||
#. module: account_banking_reconciliation
|
||||
#: model_terms:ir.ui.view,arch_db:account_banking_reconciliation.report_bank_statement_detail_doc
|
||||
msgid "Comment"
|
||||
msgstr ""
|
||||
|
||||
#. module: account_banking_reconciliation
|
||||
#: model:ir.model.fields,field_description:account_banking_reconciliation.field_bank_acc_rec_statement__company_id
|
||||
msgid "Company"
|
||||
msgstr ""
|
||||
|
||||
#. module: account_banking_reconciliation
|
||||
#: model:ir.model.fields,field_description:account_banking_reconciliation.field_bank_acc_rec_statement_line__type
|
||||
msgid "Cr/Dr"
|
||||
msgstr ""
|
||||
|
||||
#. module: account_banking_reconciliation
|
||||
#: model:ir.model.fields,field_description:account_banking_reconciliation.field_bank_acc_rec_statement__create_uid
|
||||
#: model:ir.model.fields,field_description:account_banking_reconciliation.field_bank_acc_rec_statement_line__create_uid
|
||||
msgid "Created by"
|
||||
msgstr ""
|
||||
|
||||
#. module: account_banking_reconciliation
|
||||
#: model:ir.model.fields,field_description:account_banking_reconciliation.field_bank_acc_rec_statement__create_date
|
||||
#: model:ir.model.fields,field_description:account_banking_reconciliation.field_bank_acc_rec_statement_line__create_date
|
||||
msgid "Created on"
|
||||
msgstr ""
|
||||
|
||||
#. module: account_banking_reconciliation
|
||||
#: selection:bank.acc.rec.statement.line,type:0
|
||||
msgid "Credit"
|
||||
msgstr ""
|
||||
|
||||
#. module: account_banking_reconciliation
|
||||
#: model:ir.model.fields,field_description:account_banking_reconciliation.field_bank_acc_rec_statement__credit_move_line_ids
|
||||
msgid "Credits"
|
||||
msgstr ""
|
||||
|
||||
#. module: account_banking_reconciliation
|
||||
#: model:ir.model.fields,field_description:account_banking_reconciliation.field_bank_acc_rec_statement_line__currency_id
|
||||
msgid "Currency"
|
||||
msgstr ""
|
||||
|
||||
#. module: account_banking_reconciliation
|
||||
#: model_terms:ir.ui.view,arch_db:account_banking_reconciliation.view_bank_acc_rec_statement_form
|
||||
msgid "Current edits in statement will be lost. Do you want to refresh?"
|
||||
msgstr ""
|
||||
|
||||
#. module: account_banking_reconciliation
|
||||
#: model_terms:ir.ui.view,arch_db:account_banking_reconciliation.view_bank_acc_rec_statement_form
|
||||
msgid "Current edits in statement will be lost. Do you want to select all?"
|
||||
msgstr ""
|
||||
|
||||
#. module: account_banking_reconciliation
|
||||
#: model_terms:ir.ui.view,arch_db:account_banking_reconciliation.view_bank_acc_rec_statement_form
|
||||
msgid "Current edits in statement will be lost. Do you want to unselect all?"
|
||||
msgstr ""
|
||||
|
||||
#. module: account_banking_reconciliation
|
||||
#: model:ir.actions.act_window,name:account_banking_reconciliation.act_customer_payment_to_add
|
||||
msgid "Customer Payment"
|
||||
msgstr ""
|
||||
|
||||
#. module: account_banking_reconciliation
|
||||
#: model:ir.model.fields,field_description:account_banking_reconciliation.field_bank_acc_rec_statement_line__date
|
||||
#: model_terms:ir.ui.view,arch_db:account_banking_reconciliation.report_bank_statement_detail_doc
|
||||
msgid "Date"
|
||||
msgstr ""
|
||||
|
||||
#. module: account_banking_reconciliation
|
||||
#: model:ir.model.fields,help:account_banking_reconciliation.field_bank_acc_rec_statement__verified_date
|
||||
msgid "Date in which Deposit Ticket was verified."
|
||||
msgstr ""
|
||||
|
||||
#. module: account_banking_reconciliation
|
||||
#: model_terms:ir.ui.view,arch_db:account_banking_reconciliation.view_bank_acc_rec_statement_form
|
||||
msgid "Date of the last statement"
|
||||
msgstr ""
|
||||
|
||||
#. module: account_banking_reconciliation
|
||||
#: selection:bank.acc.rec.statement.line,type:0
|
||||
msgid "Debit"
|
||||
msgstr ""
|
||||
|
||||
#. module: account_banking_reconciliation
|
||||
#: model:ir.model.fields,field_description:account_banking_reconciliation.field_bank_acc_rec_statement__debit_move_line_ids
|
||||
msgid "Debits"
|
||||
msgstr ""
|
||||
|
||||
#. module: account_banking_reconciliation
|
||||
#: model:ir.model.fields,field_description:account_banking_reconciliation.field_bank_acc_rec_statement__sum_of_debits_lines
|
||||
msgid "Deposits, Credits, and\n"
|
||||
" Interest # of Items"
|
||||
msgstr ""
|
||||
|
||||
#. module: account_banking_reconciliation
|
||||
#: model_terms:ir.ui.view,arch_db:account_banking_reconciliation.view_bank_acc_rec_statement_form
|
||||
msgid "Deposits, Credits, and Interest"
|
||||
msgstr ""
|
||||
|
||||
#. module: account_banking_reconciliation
|
||||
#: model:ir.model.fields,field_description:account_banking_reconciliation.field_bank_acc_rec_statement__sum_of_debits
|
||||
msgid "Deposits, Credits, and Interest Amount"
|
||||
msgstr ""
|
||||
|
||||
#. module: account_banking_reconciliation
|
||||
#: model:ir.model.fields,field_description:account_banking_reconciliation.field_bank_acc_rec_statement__sum_of_debits_cur
|
||||
msgid "Deposits, Credits, and Interest Amount (Cur)"
|
||||
msgstr ""
|
||||
|
||||
#. module: account_banking_reconciliation
|
||||
#: model:ir.model.fields,help:account_banking_reconciliation.field_bank_acc_rec_statement_line__date
|
||||
#: model:ir.model.fields,help:account_banking_reconciliation.field_bank_acc_rec_statement_line__partner_id
|
||||
#: model:ir.model.fields,help:account_banking_reconciliation.field_bank_acc_rec_statement_line__ref
|
||||
msgid "Derived from related Journal Item."
|
||||
msgstr ""
|
||||
|
||||
#. module: account_banking_reconciliation
|
||||
#: model:ir.model.fields,help:account_banking_reconciliation.field_bank_acc_rec_statement_line__amountcur
|
||||
msgid "Derived from the 'amount currency' amount from related Journal Item."
|
||||
msgstr ""
|
||||
|
||||
#. module: account_banking_reconciliation
|
||||
#: model:ir.model.fields,help:account_banking_reconciliation.field_bank_acc_rec_statement_line__amount
|
||||
msgid "Derived from the 'debit' amount from related Journal Item."
|
||||
msgstr ""
|
||||
|
||||
#. module: account_banking_reconciliation
|
||||
#: model:ir.model.fields,help:account_banking_reconciliation.field_bank_acc_rec_statement_line__name
|
||||
msgid "Derived from the related Journal Item."
|
||||
msgstr ""
|
||||
|
||||
#. module: account_banking_reconciliation
|
||||
#: model:ir.model.fields,field_description:account_banking_reconciliation.field_bank_acc_rec_statement__difference
|
||||
msgid "Difference"
|
||||
msgstr ""
|
||||
|
||||
#. module: account_banking_reconciliation
|
||||
#: model:ir.model.fields,field_description:account_banking_reconciliation.field_bank_acc_rec_statement__difference_cur
|
||||
msgid "Difference (Cur)"
|
||||
msgstr ""
|
||||
|
||||
#. module: account_banking_reconciliation
|
||||
#: model:ir.model.fields,field_description:account_banking_reconciliation.field_bank_acc_rec_statement__display_name
|
||||
#: model:ir.model.fields,field_description:account_banking_reconciliation.field_bank_acc_rec_statement_line__display_name
|
||||
msgid "Display Name"
|
||||
msgstr ""
|
||||
|
||||
#. module: account_banking_reconciliation
|
||||
#: selection:bank.acc.rec.statement,state:0
|
||||
#: model_terms:ir.ui.view,arch_db:account_banking_reconciliation.view_bank_acc_rec_statement_filter
|
||||
msgid "Done"
|
||||
msgstr ""
|
||||
|
||||
#. module: account_banking_reconciliation
|
||||
#: selection:bank.acc.rec.statement,state:0
|
||||
#: model_terms:ir.ui.view,arch_db:account_banking_reconciliation.view_bank_acc_rec_statement_filter
|
||||
msgid "Draft"
|
||||
msgstr ""
|
||||
|
||||
#. module: account_banking_reconciliation
|
||||
#: model:ir.model.fields,field_description:account_banking_reconciliation.field_bank_acc_rec_statement__ending_balance
|
||||
msgid "Ending Balance"
|
||||
msgstr ""
|
||||
|
||||
#. module: account_banking_reconciliation
|
||||
#: model:ir.model.fields,field_description:account_banking_reconciliation.field_bank_acc_rec_statement__ending_date
|
||||
#: model_terms:ir.ui.view,arch_db:account_banking_reconciliation.view_bank_acc_rec_statement_filter
|
||||
msgid "Ending Date"
|
||||
msgstr ""
|
||||
|
||||
#. module: account_banking_reconciliation
|
||||
#: model_terms:ir.ui.view,arch_db:account_banking_reconciliation.view_bank_acc_rec_statement_form
|
||||
msgid "Enter Name"
|
||||
msgstr ""
|
||||
|
||||
#. module: account_banking_reconciliation
|
||||
#: model_terms:ir.ui.view,arch_db:account_banking_reconciliation.view_bank_acc_rec_statement_form
|
||||
msgid "Enter notes about reconciliation"
|
||||
msgstr ""
|
||||
|
||||
#. module: account_banking_reconciliation
|
||||
#: model_terms:ir.ui.view,arch_db:account_banking_reconciliation.view_bank_acc_rec_statement_form
|
||||
msgid "Enter the ending balance"
|
||||
msgstr ""
|
||||
|
||||
#. module: account_banking_reconciliation
|
||||
#: model_terms:ir.ui.view,arch_db:account_banking_reconciliation.view_bank_acc_rec_statement_form
|
||||
msgid "Enter the ending date"
|
||||
msgstr ""
|
||||
|
||||
#. module: account_banking_reconciliation
|
||||
#: model_terms:ir.ui.view,arch_db:account_banking_reconciliation.view_bank_acc_rec_statement_form
|
||||
msgid "Enter the starting balance"
|
||||
msgstr ""
|
||||
|
||||
#. module: account_banking_reconciliation
|
||||
#: model_terms:ir.ui.view,arch_db:account_banking_reconciliation.view_bank_acc_rec_statement_form
|
||||
msgid "Enter the user who verified"
|
||||
msgstr ""
|
||||
|
||||
#. module: account_banking_reconciliation
|
||||
#: model_terms:ir.ui.view,arch_db:account_banking_reconciliation.view_bank_acc_rec_statement_form
|
||||
msgid "Enter the verification date"
|
||||
msgstr ""
|
||||
|
||||
#. module: account_banking_reconciliation
|
||||
#: model:ir.model.fields,help:account_banking_reconciliation.field_bank_acc_rec_statement__verified_by_user_id
|
||||
msgid "Entered automatically by the “last user” who saved it. System generated."
|
||||
msgstr ""
|
||||
|
||||
#. module: account_banking_reconciliation
|
||||
#: model_terms:ir.ui.view,arch_db:account_banking_reconciliation.view_bank_acc_rec_statement_filter
|
||||
msgid "Group By..."
|
||||
msgstr ""
|
||||
|
||||
#. module: account_banking_reconciliation
|
||||
#: model:ir.model.fields,field_description:account_banking_reconciliation.field_bank_acc_rec_statement__id
|
||||
#: model:ir.model.fields,field_description:account_banking_reconciliation.field_bank_acc_rec_statement_line__id
|
||||
msgid "ID"
|
||||
msgstr ""
|
||||
|
||||
#. module: account_banking_reconciliation
|
||||
#: model:ir.model.fields,help:account_banking_reconciliation.field_bank_acc_rec_statement__suppress_ending_date_filter
|
||||
msgid "If this is checked then the Statement End Date filter on the transactions below will not occur. All transactions would come over."
|
||||
msgstr ""
|
||||
|
||||
#. module: account_banking_reconciliation
|
||||
#: model_terms:ir.ui.view,arch_db:account_banking_reconciliation.view_account_move_line_bank_acc_rec_statement_id
|
||||
msgid "Journal Entries not cleared"
|
||||
msgstr ""
|
||||
|
||||
#. module: account_banking_reconciliation
|
||||
#: model:ir.model,name:account_banking_reconciliation.model_account_move_line
|
||||
#: model:ir.model.fields,field_description:account_banking_reconciliation.field_bank_acc_rec_statement_line__move_line_id
|
||||
msgid "Journal Item"
|
||||
msgstr ""
|
||||
|
||||
#. module: account_banking_reconciliation
|
||||
#: model:ir.actions.act_window,name:account_banking_reconciliation.act_account_move_line_to_add
|
||||
#: model_terms:ir.ui.view,arch_db:account_banking_reconciliation.view_bank_acc_rec_statement_form
|
||||
msgid "Journal Items"
|
||||
msgstr ""
|
||||
|
||||
#. module: account_banking_reconciliation
|
||||
#: model:ir.model.fields,field_description:account_banking_reconciliation.field_bank_acc_rec_statement____last_update
|
||||
#: model:ir.model.fields,field_description:account_banking_reconciliation.field_bank_acc_rec_statement_line____last_update
|
||||
msgid "Last Modified on"
|
||||
msgstr ""
|
||||
|
||||
#. module: account_banking_reconciliation
|
||||
#: model:ir.model.fields,field_description:account_banking_reconciliation.field_bank_acc_rec_statement__last_ending_date
|
||||
msgid "Last Stmt Date"
|
||||
msgstr ""
|
||||
|
||||
#. module: account_banking_reconciliation
|
||||
#: model:ir.model.fields,field_description:account_banking_reconciliation.field_bank_acc_rec_statement__write_uid
|
||||
#: model:ir.model.fields,field_description:account_banking_reconciliation.field_bank_acc_rec_statement_line__write_uid
|
||||
msgid "Last Updated by"
|
||||
msgstr ""
|
||||
|
||||
#. module: account_banking_reconciliation
|
||||
#: model:ir.model.fields,field_description:account_banking_reconciliation.field_bank_acc_rec_statement__write_date
|
||||
#: model:ir.model.fields,field_description:account_banking_reconciliation.field_bank_acc_rec_statement_line__write_date
|
||||
msgid "Last Updated on"
|
||||
msgstr ""
|
||||
|
||||
#. module: account_banking_reconciliation
|
||||
#: model:ir.model.fields,field_description:account_banking_reconciliation.field_bank_acc_rec_statement__name
|
||||
#: model:ir.model.fields,field_description:account_banking_reconciliation.field_bank_acc_rec_statement_line__name
|
||||
msgid "Name"
|
||||
msgstr ""
|
||||
|
||||
#. module: account_banking_reconciliation
|
||||
#: model:ir.model.fields,field_description:account_banking_reconciliation.field_bank_acc_rec_statement__notes
|
||||
#: model_terms:ir.ui.view,arch_db:account_banking_reconciliation.view_bank_acc_rec_statement_form
|
||||
msgid "Notes"
|
||||
msgstr ""
|
||||
|
||||
#. module: account_banking_reconciliation
|
||||
#: code:addons/account_banking_reconciliation/models/account_banking_reconciliation.py:46
|
||||
#, python-format
|
||||
msgid "Only a member of '%s' group may delete/edit bank statements when not in draft state!"
|
||||
msgstr ""
|
||||
|
||||
#. module: account_banking_reconciliation
|
||||
#: model_terms:ir.ui.view,arch_db:account_banking_reconciliation.view_bank_acc_rec_statement_form
|
||||
msgid "Other Information"
|
||||
msgstr ""
|
||||
|
||||
#. module: account_banking_reconciliation
|
||||
#: model:ir.model.fields,field_description:account_banking_reconciliation.field_bank_acc_rec_statement_line__partner_id
|
||||
#: model_terms:ir.ui.view,arch_db:account_banking_reconciliation.report_bank_statement_detail_doc
|
||||
msgid "Partner"
|
||||
msgstr ""
|
||||
|
||||
#. module: account_banking_reconciliation
|
||||
#: code:addons/account_banking_reconciliation/models/account_banking_reconciliation.py:68
|
||||
#: code:addons/account_banking_reconciliation/models/account_banking_reconciliation.py:75
|
||||
#, python-format
|
||||
msgid "Prior to reconciling a statement, all differences must be accounted for and the Difference balance must be zero. Please review and make necessary changes."
|
||||
msgstr ""
|
||||
|
||||
#. module: account_banking_reconciliation
|
||||
#: model_terms:ir.ui.view,arch_db:account_banking_reconciliation.view_bank_acc_rec_statement_form
|
||||
msgid "Process"
|
||||
msgstr ""
|
||||
|
||||
#. module: account_banking_reconciliation
|
||||
#: selection:bank.acc.rec.statement,state:0
|
||||
msgid "Ready for Review"
|
||||
msgstr ""
|
||||
|
||||
#. module: account_banking_reconciliation
|
||||
#: model_terms:ir.ui.view,arch_db:account_banking_reconciliation.report_bank_statement_detail_doc
|
||||
msgid "Reconciliation Detail"
|
||||
msgstr ""
|
||||
|
||||
#. module: account_banking_reconciliation
|
||||
#: model_terms:ir.ui.view,arch_db:account_banking_reconciliation.report_bank_statement_summary_doc
|
||||
msgid "Reconciliation Summary"
|
||||
msgstr ""
|
||||
|
||||
#. module: account_banking_reconciliation
|
||||
#: model:ir.model.fields,field_description:account_banking_reconciliation.field_bank_acc_rec_statement_line__ref
|
||||
#: model_terms:ir.ui.view,arch_db:account_banking_reconciliation.report_bank_statement_detail_doc
|
||||
msgid "Reference"
|
||||
msgstr ""
|
||||
|
||||
#. module: account_banking_reconciliation
|
||||
#: model_terms:ir.ui.view,arch_db:account_banking_reconciliation.view_bank_acc_rec_statement_form
|
||||
msgid "Refresh"
|
||||
msgstr ""
|
||||
|
||||
#. module: account_banking_reconciliation
|
||||
#: model:ir.model.fields,help:account_banking_reconciliation.field_bank_acc_rec_statement_line__move_line_id
|
||||
msgid "Related Journal Item."
|
||||
msgstr ""
|
||||
|
||||
#. module: account_banking_reconciliation
|
||||
#: model:ir.model.fields,field_description:account_banking_reconciliation.field_bank_acc_rec_statement__suppress_ending_date_filter
|
||||
msgid "Remove Ending Date Filter"
|
||||
msgstr ""
|
||||
|
||||
#. module: account_banking_reconciliation
|
||||
#: model:ir.model.fields,field_description:account_banking_reconciliation.field_bank_acc_rec_statement_line__research_required
|
||||
msgid "Research Required? "
|
||||
msgstr ""
|
||||
|
||||
#. module: account_banking_reconciliation
|
||||
#: model_terms:ir.ui.view,arch_db:account_banking_reconciliation.view_bank_acc_rec_statement_filter
|
||||
msgid "Search Bank Account Reconciliation Statements"
|
||||
msgstr ""
|
||||
|
||||
#. module: account_banking_reconciliation
|
||||
#: model_terms:ir.ui.view,arch_db:account_banking_reconciliation.view_bank_acc_rec_statement_form
|
||||
msgid "Select All"
|
||||
msgstr ""
|
||||
|
||||
#. module: account_banking_reconciliation
|
||||
#: model_terms:ir.ui.view,arch_db:account_banking_reconciliation.view_bank_acc_rec_statement_form
|
||||
msgid "Select the account"
|
||||
msgstr ""
|
||||
|
||||
#. module: account_banking_reconciliation
|
||||
#: model_terms:ir.ui.view,arch_db:account_banking_reconciliation.view_bank_acc_rec_statement_form
|
||||
msgid "Select the company"
|
||||
msgstr ""
|
||||
|
||||
#. module: account_banking_reconciliation
|
||||
#: model_terms:ir.ui.view,arch_db:account_banking_reconciliation.view_bank_acc_rec_statement_form
|
||||
msgid "Set to Draft"
|
||||
msgstr ""
|
||||
|
||||
#. module: account_banking_reconciliation
|
||||
#: model:ir.model.fields,field_description:account_banking_reconciliation.field_bank_acc_rec_statement__starting_balance
|
||||
msgid "Starting Balance"
|
||||
msgstr ""
|
||||
|
||||
#. module: account_banking_reconciliation
|
||||
#: model:ir.model.fields,field_description:account_banking_reconciliation.field_bank_acc_rec_statement__state
|
||||
#: model_terms:ir.ui.view,arch_db:account_banking_reconciliation.view_bank_acc_rec_statement_filter
|
||||
msgid "State"
|
||||
msgstr ""
|
||||
|
||||
#. module: account_banking_reconciliation
|
||||
#: model:ir.model.fields,field_description:account_banking_reconciliation.field_bank_acc_rec_statement_line__statement_id
|
||||
msgid "Statement"
|
||||
msgstr ""
|
||||
|
||||
#. module: account_banking_reconciliation
|
||||
#: model:ir.model,name:account_banking_reconciliation.model_bank_acc_rec_statement_line
|
||||
msgid "Statement Line"
|
||||
msgstr ""
|
||||
|
||||
#. module: account_banking_reconciliation
|
||||
#: model_terms:ir.ui.view,arch_db:account_banking_reconciliation.view_bank_acc_rec_statement_filter
|
||||
msgid "Statements that are ready for review"
|
||||
msgstr ""
|
||||
|
||||
#. module: account_banking_reconciliation
|
||||
#: model_terms:ir.ui.view,arch_db:account_banking_reconciliation.view_bank_acc_rec_statement_filter
|
||||
msgid "Statements that have been processed"
|
||||
msgstr ""
|
||||
|
||||
#. module: account_banking_reconciliation
|
||||
#: model_terms:ir.ui.view,arch_db:account_banking_reconciliation.view_bank_acc_rec_statement_filter
|
||||
msgid "Statements that haven't yet been confirmed"
|
||||
msgstr ""
|
||||
|
||||
#. module: account_banking_reconciliation
|
||||
#: model_terms:ir.ui.view,arch_db:account_banking_reconciliation.view_bank_acc_rec_statement_form
|
||||
msgid "Submit for Review"
|
||||
msgstr ""
|
||||
|
||||
#. module: account_banking_reconciliation
|
||||
#: model:ir.actions.act_window,name:account_banking_reconciliation.act_supplier_payment_to_add
|
||||
msgid "Supplier Payment"
|
||||
msgstr ""
|
||||
|
||||
#. module: account_banking_reconciliation
|
||||
#: model:ir.model.fields,help:account_banking_reconciliation.field_account_move_line__bank_acc_rec_statement_id
|
||||
msgid "The Bank Acc Rec Statement linked with the journal item"
|
||||
msgstr ""
|
||||
|
||||
#. module: account_banking_reconciliation
|
||||
#: model:ir.model.fields,help:account_banking_reconciliation.field_bank_acc_rec_statement__account_id
|
||||
msgid "The Bank/Gl Account that is being reconciled."
|
||||
msgstr ""
|
||||
|
||||
#. module: account_banking_reconciliation
|
||||
#: model:ir.model.fields,help:account_banking_reconciliation.field_bank_acc_rec_statement__company_id
|
||||
msgid "The Company for which the deposit ticket is made to"
|
||||
msgstr ""
|
||||
|
||||
#. module: account_banking_reconciliation
|
||||
#: model:ir.model.fields,help:account_banking_reconciliation.field_bank_acc_rec_statement__ending_balance
|
||||
msgid "The Ending Balance on your bank statement."
|
||||
msgstr ""
|
||||
|
||||
#. module: account_banking_reconciliation
|
||||
#: model:ir.model.fields,help:account_banking_reconciliation.field_bank_acc_rec_statement__starting_balance
|
||||
msgid "The Starting Balance on your bank statement."
|
||||
msgstr ""
|
||||
|
||||
#. module: account_banking_reconciliation
|
||||
#: model:ir.model.fields,help:account_banking_reconciliation.field_bank_acc_rec_statement__ending_date
|
||||
msgid "The ending date of your bank statement."
|
||||
msgstr ""
|
||||
|
||||
#. module: account_banking_reconciliation
|
||||
#: sql_constraint:bank.acc.rec.statement:0
|
||||
msgid "The name of the statement must be unique per company and G/L account!"
|
||||
msgstr ""
|
||||
|
||||
#. module: account_banking_reconciliation
|
||||
#: model:ir.model.fields,help:account_banking_reconciliation.field_bank_acc_rec_statement_line__currency_id
|
||||
msgid "The optional other currency if it is a multi-currency entry."
|
||||
msgstr ""
|
||||
|
||||
#. module: account_banking_reconciliation
|
||||
#: model:ir.model.fields,help:account_banking_reconciliation.field_bank_acc_rec_statement__last_ending_date
|
||||
msgid "The previous statement date of your bank statement."
|
||||
msgstr ""
|
||||
|
||||
#. module: account_banking_reconciliation
|
||||
#: model:ir.model.fields,help:account_banking_reconciliation.field_bank_acc_rec_statement__name
|
||||
msgid "This is a unique name identifying the statement (e.g. Bank X January 2012)."
|
||||
msgstr ""
|
||||
|
||||
#. module: account_banking_reconciliation
|
||||
#: model_terms:ir.ui.view,arch_db:account_banking_reconciliation.view_bank_acc_rec_statement_filter
|
||||
msgid "To be Reviewed"
|
||||
msgstr ""
|
||||
|
||||
#. module: account_banking_reconciliation
|
||||
#: model:ir.model.fields,help:account_banking_reconciliation.field_bank_acc_rec_statement__sum_of_ucredits
|
||||
#: model:ir.model.fields,help:account_banking_reconciliation.field_bank_acc_rec_statement__sum_of_ucredits_cur
|
||||
#: model:ir.model.fields,help:account_banking_reconciliation.field_bank_acc_rec_statement__sum_of_udebits
|
||||
#: model:ir.model.fields,help:account_banking_reconciliation.field_bank_acc_rec_statement__sum_of_udebits_cur
|
||||
msgid "Total SUM of Amts of lines with Cleared = False"
|
||||
msgstr ""
|
||||
|
||||
#. module: account_banking_reconciliation
|
||||
#: model:ir.model.fields,help:account_banking_reconciliation.field_bank_acc_rec_statement__sum_of_credits
|
||||
#: model:ir.model.fields,help:account_banking_reconciliation.field_bank_acc_rec_statement__sum_of_credits_cur
|
||||
#: model:ir.model.fields,help:account_banking_reconciliation.field_bank_acc_rec_statement__sum_of_debits
|
||||
#: model:ir.model.fields,help:account_banking_reconciliation.field_bank_acc_rec_statement__sum_of_debits_cur
|
||||
msgid "Total SUM of Amts of lines with Cleared = True"
|
||||
msgstr ""
|
||||
|
||||
#. module: account_banking_reconciliation
|
||||
#: model:ir.model.fields,help:account_banking_reconciliation.field_bank_acc_rec_statement__cleared_balance
|
||||
#: model:ir.model.fields,help:account_banking_reconciliation.field_bank_acc_rec_statement__cleared_balance_cur
|
||||
msgid "Total Sum of the Deposit Amount Cleared – Total Sum of Checks, Withdrawals, Debits, and Service Charges Amount Cleared"
|
||||
msgstr ""
|
||||
|
||||
#. module: account_banking_reconciliation
|
||||
#: model:ir.model.fields,help:account_banking_reconciliation.field_bank_acc_rec_statement__uncleared_balance
|
||||
#: model:ir.model.fields,help:account_banking_reconciliation.field_bank_acc_rec_statement__uncleared_balance_cur
|
||||
msgid "Total Sum of the Deposit Amount Uncleared – Total Sum of Checks, Withdrawals, Debits, and Service Charges Amount Uncleared"
|
||||
msgstr ""
|
||||
|
||||
#. module: account_banking_reconciliation
|
||||
#: model:ir.model.fields,help:account_banking_reconciliation.field_bank_acc_rec_statement__sum_of_ucredits_lines
|
||||
#: model:ir.model.fields,help:account_banking_reconciliation.field_bank_acc_rec_statement__sum_of_udebits_lines
|
||||
msgid "Total of number of lines with Cleared = False"
|
||||
msgstr ""
|
||||
|
||||
#. module: account_banking_reconciliation
|
||||
#: model:ir.model.fields,help:account_banking_reconciliation.field_bank_acc_rec_statement__sum_of_credits_lines
|
||||
#: model:ir.model.fields,help:account_banking_reconciliation.field_bank_acc_rec_statement__sum_of_debits_lines
|
||||
msgid "Total of number of lines with Cleared = True"
|
||||
msgstr ""
|
||||
|
||||
#. module: account_banking_reconciliation
|
||||
#: model_terms:ir.ui.view,arch_db:account_banking_reconciliation.view_bank_acc_rec_statement_form
|
||||
msgid "Totals"
|
||||
msgstr ""
|
||||
|
||||
#. module: account_banking_reconciliation
|
||||
#: model_terms:ir.ui.view,arch_db:account_banking_reconciliation.view_bank_acc_rec_statement_form
|
||||
msgid "Tracking Information"
|
||||
msgstr ""
|
||||
|
||||
#. module: account_banking_reconciliation
|
||||
#: model_terms:ir.ui.view,arch_db:account_banking_reconciliation.view_bank_acc_rec_statement_form
|
||||
msgid "Uncleared"
|
||||
msgstr ""
|
||||
|
||||
#. module: account_banking_reconciliation
|
||||
#: model:ir.model.fields,field_description:account_banking_reconciliation.field_bank_acc_rec_statement__sum_of_ucredits_lines
|
||||
msgid "Uncleared - Checks, Withdrawals, Debits, and Service Charges # of Items"
|
||||
msgstr ""
|
||||
|
||||
#. module: account_banking_reconciliation
|
||||
#: model:ir.model.fields,field_description:account_banking_reconciliation.field_bank_acc_rec_statement__sum_of_ucredits
|
||||
msgid "Uncleared - Checks, Withdrawals, Debits, and Service Charges Amount"
|
||||
msgstr ""
|
||||
|
||||
#. module: account_banking_reconciliation
|
||||
#: model:ir.model.fields,field_description:account_banking_reconciliation.field_bank_acc_rec_statement__sum_of_ucredits_cur
|
||||
msgid "Uncleared - Checks, Withdrawals, Debits, and Service Charges Amount (Cur)"
|
||||
msgstr ""
|
||||
|
||||
#. module: account_banking_reconciliation
|
||||
#: model:ir.model.fields,field_description:account_banking_reconciliation.field_bank_acc_rec_statement__sum_of_udebits_lines
|
||||
msgid "Uncleared - Deposits,\n"
|
||||
" Credits, and Interest # of Items"
|
||||
msgstr ""
|
||||
|
||||
#. module: account_banking_reconciliation
|
||||
#: model:ir.model.fields,field_description:account_banking_reconciliation.field_bank_acc_rec_statement__sum_of_udebits
|
||||
msgid "Uncleared - Deposits, Credits, and Interest Amount"
|
||||
msgstr ""
|
||||
|
||||
#. module: account_banking_reconciliation
|
||||
#: model:ir.model.fields,field_description:account_banking_reconciliation.field_bank_acc_rec_statement__sum_of_udebits_cur
|
||||
msgid "Uncleared - Deposits, Credits, and Interest Amount (Cur)"
|
||||
msgstr ""
|
||||
|
||||
#. module: account_banking_reconciliation
|
||||
#: model:ir.model.fields,field_description:account_banking_reconciliation.field_bank_acc_rec_statement__uncleared_balance
|
||||
msgid "Uncleared Balance"
|
||||
msgstr ""
|
||||
|
||||
#. module: account_banking_reconciliation
|
||||
#: model_terms:ir.ui.view,arch_db:account_banking_reconciliation.view_account_move_line_bank_acc_rec_statement_id
|
||||
msgid "Uncleared Bank Account"
|
||||
msgstr ""
|
||||
|
||||
#. module: account_banking_reconciliation
|
||||
#: model:ir.model.fields,field_description:account_banking_reconciliation.field_bank_acc_rec_statement__uncleared_balance_cur
|
||||
msgid "Unleared Balance (Cur)"
|
||||
msgstr ""
|
||||
|
||||
#. module: account_banking_reconciliation
|
||||
#: model_terms:ir.ui.view,arch_db:account_banking_reconciliation.view_bank_acc_rec_statement_form
|
||||
msgid "Unselect All"
|
||||
msgstr ""
|
||||
|
||||
#. module: account_banking_reconciliation
|
||||
#: model:ir.model.fields,field_description:account_banking_reconciliation.field_bank_acc_rec_statement__verified_by_user_id
|
||||
msgid "Verified By"
|
||||
msgstr ""
|
||||
|
||||
#. module: account_banking_reconciliation
|
||||
#: model:ir.model.fields,field_description:account_banking_reconciliation.field_bank_acc_rec_statement__verified_date
|
||||
msgid "Verified Date"
|
||||
msgstr ""
|
||||
|
||||
#. module: account_banking_reconciliation
|
||||
#: model_terms:ir.ui.view,arch_db:account_banking_reconciliation.view_bank_acc_rec_statement_filter
|
||||
msgid "Verified by me"
|
||||
msgstr ""
|
||||
|
||||
#. module: account_banking_reconciliation
|
||||
#: code:addons/account_banking_reconciliation/models/account_banking_reconciliation.py:595
|
||||
#, python-format
|
||||
msgid "You cannot add any new bank statement line manually as of this revision!"
|
||||
msgstr ""
|
||||
|
||||
#. module: account_banking_reconciliation
|
||||
#: model_terms:ir.ui.view,arch_db:account_banking_reconciliation.report_bank_statement_detail_doc
|
||||
#: model_terms:ir.ui.view,arch_db:account_banking_reconciliation.report_bank_statement_summary_doc
|
||||
msgid "items"
|
||||
msgstr ""
|
||||
|
|
@ -0,0 +1,4 @@
|
|||
# License AGPL-3.0 or later (http://www.gnu.org/licenses/agpl).
|
||||
|
||||
from . import account_move_line
|
||||
from . import account_banking_reconciliation
|
|
@ -0,0 +1,613 @@
|
|||
# Copyright (C) 2019 Open Source Integrators
|
||||
# <https://www.opensourceintegrators.com>
|
||||
# Copyright (C) 2011 NovaPoint Group LLC (<http://www.novapointgroup.com>)
|
||||
# Copyright (C) 2004-2010 OpenERP SA (<http://www.openerp.com>)
|
||||
# License AGPL-3.0 or later (http://www.gnu.org/licenses/agpl).
|
||||
import time
|
||||
|
||||
from odoo import api, fields, models, _
|
||||
from odoo.exceptions import UserError
|
||||
import odoo.addons.decimal_precision as dp
|
||||
from operator import itemgetter
|
||||
from odoo.tools.float_utils import float_round
|
||||
|
||||
|
||||
class BankAccRecStatement(models.Model):
|
||||
_name = "bank.acc.rec.statement"
|
||||
_description = "Bank Acc Rec Statement"
|
||||
_order = "ending_date desc"
|
||||
|
||||
@api.multi
|
||||
def check_group(self):
|
||||
"""Check if following security constraints are implemented for groups:
|
||||
Bank Statement Preparer– they can create, view and delete any of the
|
||||
Bank Statements provided the Bank Statement is not in the DONE state,
|
||||
or the Ready for Review state.
|
||||
Bank Statement Verifier – they can create, view, edit, and delete any
|
||||
of the Bank Statements information at any time.
|
||||
NOTE: DONE Bank Statements are only allowed to be deleted by a
|
||||
Bank Statement Verifier."""
|
||||
model_data_obj = self.env['ir.model.data']
|
||||
res_groups_obj = self.env['res.groups']
|
||||
group_verifier_id = model_data_obj._get_id(
|
||||
'account_banking_reconciliation',
|
||||
'group_bank_stmt_verifier')
|
||||
|
||||
for statement in self:
|
||||
if group_verifier_id:
|
||||
res_id = model_data_obj.browse(group_verifier_id).res_id
|
||||
group_verifier = res_groups_obj.browse([res_id])
|
||||
group_user_ids = [user.id for user in group_verifier.users]
|
||||
if statement.state != 'draft' \
|
||||
and self.env.uid not in group_user_ids:
|
||||
raise UserError(_("Only a member of '%s' "
|
||||
"group may delete/edit "
|
||||
"bank statements when not in draft "
|
||||
"state!" % (group_verifier.name)))
|
||||
return True
|
||||
|
||||
@api.multi
|
||||
def write(self, vals):
|
||||
# Check if the user is allowed to perform the action
|
||||
self.check_group()
|
||||
return super(BankAccRecStatement, self).write(vals)
|
||||
|
||||
@api.multi
|
||||
def unlink(self):
|
||||
"""Check if the user is allowed to perform the action"""
|
||||
self.check_group()
|
||||
return super(BankAccRecStatement, self).unlink()
|
||||
|
||||
@api.multi
|
||||
def check_difference_balance(self):
|
||||
# Check if difference balance is zero or not.
|
||||
for statement in self:
|
||||
|
||||
if statement.cleared_balance_cur:
|
||||
if statement.difference_cur != 0.0:
|
||||
raise UserError(_("Prior to reconciling a statement, "
|
||||
"all differences must be accounted for "
|
||||
"and the Difference balance must be "
|
||||
"zero. Please review "
|
||||
"and make necessary changes."))
|
||||
else:
|
||||
if statement.difference != 0.0:
|
||||
raise UserError(_("Prior to reconciling a statement, "
|
||||
"all differences must be accounted for "
|
||||
"and the Difference balance must "
|
||||
"be zero. Please review "
|
||||
"and make necessary changes."))
|
||||
return True
|
||||
|
||||
@api.multi
|
||||
def action_cancel(self):
|
||||
"""Cancel the the statement."""
|
||||
self.write({'state': 'cancel'})
|
||||
return True
|
||||
|
||||
@api.multi
|
||||
def action_review(self):
|
||||
"""Change the status of statement from 'draft' to 'to_be_reviewed'."""
|
||||
# If difference balance not zero prevent further processing
|
||||
self.check_difference_balance()
|
||||
self.write({'state': 'to_be_reviewed'})
|
||||
return True
|
||||
|
||||
@api.multi
|
||||
def action_process(self):
|
||||
"""Set the account move lines as 'Cleared' and
|
||||
Assign 'Bank Acc Rec Statement ID'
|
||||
for the statement lines which are marked as 'Cleared'."""
|
||||
# If difference balance not zero prevent further processing
|
||||
self.check_difference_balance()
|
||||
for statement in self:
|
||||
statement_lines = \
|
||||
statement.credit_move_line_ids + statement.debit_move_line_ids
|
||||
for statement_line in statement_lines:
|
||||
# Mark the move lines as 'Cleared'mand assign
|
||||
# the 'Bank Acc Rec Statement ID'
|
||||
statement_id = \
|
||||
statement_line.cleared_bank_account and \
|
||||
statement.id or False
|
||||
cleared_bank_account = \
|
||||
statement_line.cleared_bank_account
|
||||
statement_line.move_line_id.write({
|
||||
'cleared_bank_account': cleared_bank_account,
|
||||
'bank_acc_rec_statement_id': statement_id})
|
||||
|
||||
statement.write({'state': 'done',
|
||||
'verified_by_user_id': self.env.uid,
|
||||
'verified_date': time.strftime('%Y-%m-%d')})
|
||||
return True
|
||||
|
||||
@api.multi
|
||||
def action_cancel_draft(self):
|
||||
"""Reset the statement to draft and perform resetting operations."""
|
||||
for statement in self:
|
||||
statement_lines = \
|
||||
statement.credit_move_line_ids + statement.debit_move_line_ids
|
||||
line_ids = []
|
||||
for statement_line in statement_lines:
|
||||
if statement_line.move_line_id:
|
||||
# Find move lines related to statement lines
|
||||
line_ids.append(statement_line.move_line_id.id)
|
||||
# Reset 'Cleared' and 'Bank Acc Rec Statement ID' to False
|
||||
self.env['account.move.line'].browse(line_ids).write(
|
||||
{'cleared_bank_account': False,
|
||||
'bank_acc_rec_statement_id': False})
|
||||
|
||||
# Reset 'Cleared' in statement lines
|
||||
statement_lines.write({'cleared_bank_account': False,
|
||||
'research_required': False})
|
||||
# Reset statement
|
||||
statement.write({'state': 'draft',
|
||||
'verified_by_user_id': False,
|
||||
'verified_date': False})
|
||||
return True
|
||||
|
||||
@api.multi
|
||||
def action_select_all(self):
|
||||
"""Mark all the statement lines as 'Cleared'."""
|
||||
for statement in self:
|
||||
statement_lines = \
|
||||
statement.credit_move_line_ids + statement.debit_move_line_ids
|
||||
statement_lines.write({'cleared_bank_account': True})
|
||||
return True
|
||||
|
||||
@api.multi
|
||||
def action_unselect_all(self):
|
||||
"""Reset 'Cleared' in all the statement lines."""
|
||||
for statement in self:
|
||||
statement_lines = \
|
||||
statement.credit_move_line_ids + statement.debit_move_line_ids
|
||||
statement_lines.write({'cleared_bank_account': False})
|
||||
return True
|
||||
|
||||
def _compute_get_balance(self):
|
||||
"""Computed as following:
|
||||
A) Deposits, Credits, and Interest Amount:
|
||||
Total SUM of Amts of lines with Cleared = True
|
||||
Deposits, Credits, and Interest # of Items:
|
||||
Total of number of lines with Cleared = True
|
||||
B) Checks, Withdrawals, Debits, and Service Charges Amount:
|
||||
Checks, Withdrawals, Debits, and Service Charges Amount # of Items:
|
||||
Cleared Balance (Total Sum of the Deposit Amount Cleared (A) –
|
||||
Total Sum of Checks Amount Cleared (B))
|
||||
Difference= (Ending Balance – Beginning Balance) - cleared balance =
|
||||
should be zero.
|
||||
"""
|
||||
account_precision = self.env['decimal.precision'].precision_get(
|
||||
'Account')
|
||||
for statement in self:
|
||||
for line in statement.credit_move_line_ids:
|
||||
statement.sum_of_credits += \
|
||||
line.cleared_bank_account and \
|
||||
float_round(line.amount, account_precision) or 0.0
|
||||
statement.sum_of_credits_cur += \
|
||||
line.cleared_bank_account and \
|
||||
float_round(line.amountcur, account_precision) or 0.0
|
||||
statement.sum_of_credits_lines += \
|
||||
line.cleared_bank_account and 1 or 0
|
||||
statement.sum_of_ucredits += \
|
||||
(not line.cleared_bank_account) and \
|
||||
float_round(line.amount, account_precision) or 0.0
|
||||
statement.sum_of_ucredits_cur += \
|
||||
(not line.cleared_bank_account) and \
|
||||
float_round(line.amountcur, account_precision) or 0.0
|
||||
statement.sum_of_ucredits_lines += \
|
||||
(not line.cleared_bank_account) and 1 or 0
|
||||
for line in statement.debit_move_line_ids:
|
||||
statement.sum_of_debits += \
|
||||
line.cleared_bank_account and \
|
||||
float_round(line.amount, account_precision) or 0.0
|
||||
statement.sum_of_debits_cur += \
|
||||
line.cleared_bank_account and \
|
||||
float_round(line.amountcur, account_precision) or 0.0
|
||||
statement.sum_of_debits_lines += \
|
||||
line.cleared_bank_account and 1 or 0
|
||||
statement.sum_of_udebits += \
|
||||
(not line.cleared_bank_account) and \
|
||||
float_round(line.amount, account_precision) or 0.0
|
||||
statement.sum_of_udebits_cur += \
|
||||
(not line.cleared_bank_account) and \
|
||||
float_round(line.amountcur, account_precision) or 0.0
|
||||
statement.sum_of_udebits_lines += \
|
||||
(not line.cleared_bank_account) and 1 or 0
|
||||
statement.cleared_balance = float_round(
|
||||
statement.sum_of_debits - statement.sum_of_credits,
|
||||
account_precision)
|
||||
statement.cleared_balance_cur = float_round(
|
||||
statement.sum_of_debits_cur - statement.sum_of_credits_cur,
|
||||
account_precision)
|
||||
statement.difference = \
|
||||
float_round((statement.ending_balance -
|
||||
statement.starting_balance) -
|
||||
statement.cleared_balance, account_precision)
|
||||
statement.difference_cur = \
|
||||
float_round((statement.ending_balance -
|
||||
statement.starting_balance) -
|
||||
statement.cleared_balance_cur, account_precision)
|
||||
statement.uncleared_balance = float_round(
|
||||
statement.sum_of_udebits - statement.sum_of_ucredits,
|
||||
account_precision)
|
||||
statement.uncleared_balance_cur = float_round(
|
||||
statement.sum_of_udebits_cur - statement.sum_of_ucredits_cur,
|
||||
account_precision)
|
||||
|
||||
# refresh data
|
||||
@api.multi
|
||||
def refresh_record(self):
|
||||
retval = True
|
||||
refdict = {}
|
||||
# get current state of moves in the statement
|
||||
for statement in self:
|
||||
if statement.state == 'draft':
|
||||
for cr_item in statement.credit_move_line_ids:
|
||||
if cr_item.move_line_id and cr_item.cleared_bank_account:
|
||||
refdict[cr_item.move_line_id.id] = \
|
||||
cr_item.cleared_bank_account
|
||||
for dr_item in statement.debit_move_line_ids:
|
||||
if dr_item.move_line_id and dr_item.cleared_bank_account:
|
||||
refdict[dr_item.move_line_id.id] = \
|
||||
dr_item.cleared_bank_account
|
||||
|
||||
# for the statement
|
||||
for statement in self:
|
||||
# process only if the statement is in draft state
|
||||
if statement.state == 'draft':
|
||||
vals = statement.onchange_account_id()
|
||||
# list of credit lines
|
||||
outlist = []
|
||||
for cr_item in vals['value']['credit_move_line_ids']:
|
||||
cr_item['cleared_bank_account'] = refdict and refdict.get(
|
||||
cr_item['move_line_id'], False) or False
|
||||
cr_item['research_required'] = False
|
||||
item = [0, False, cr_item]
|
||||
outlist.append(item)
|
||||
# list of debit lines
|
||||
inlist = []
|
||||
for dr_item in vals['value']['debit_move_line_ids']:
|
||||
dr_item['cleared_bank_account'] = refdict and refdict.get(
|
||||
dr_item['move_line_id'], False) or False
|
||||
dr_item['research_required'] = False
|
||||
item = [0, False, dr_item]
|
||||
inlist.append(item)
|
||||
# write it to the record so it is visible on the form
|
||||
retval = self.write(
|
||||
{'last_ending_date': vals['value']['last_ending_date'],
|
||||
'starting_balance': vals['value']['starting_balance'],
|
||||
'credit_move_line_ids': outlist,
|
||||
'debit_move_line_ids': inlist})
|
||||
return retval
|
||||
|
||||
# get starting balance for the account
|
||||
@api.multi
|
||||
def get_starting_balance(self, account_id, ending_date):
|
||||
result = (False, 0.0)
|
||||
reslist = []
|
||||
statement_obj = self.env['bank.acc.rec.statement']
|
||||
domain = [('account_id', '=', account_id), ('state', '=', 'done')]
|
||||
# get all statements for this account in the past
|
||||
for statement in statement_obj.search(domain):
|
||||
if statement.ending_date < ending_date:
|
||||
reslist.append(
|
||||
(statement.ending_date, statement.ending_balance))
|
||||
# get the latest statement value
|
||||
if len(reslist):
|
||||
reslist = sorted(reslist, key=itemgetter(0))
|
||||
result = reslist[len(reslist) - 1]
|
||||
return result
|
||||
|
||||
@api.onchange('account_id', 'ending_date', 'suppress_ending_date_filter')
|
||||
def onchange_account_id(self):
|
||||
account_move_line_obj = self.env['account.move.line']
|
||||
statement_line_obj = self.env['bank.acc.rec.statement.line']
|
||||
val = {
|
||||
'value': {'credit_move_line_ids': [], 'debit_move_line_ids': []}}
|
||||
if self.ending_date and self.account_id:
|
||||
for statement in self:
|
||||
statement_line_ids = statement_line_obj.search(
|
||||
[('statement_id', '=', statement.id)])
|
||||
# call unlink method to reset and
|
||||
# remove existing statement lines and
|
||||
# mark reset field values in related move lines
|
||||
statement_line_ids.unlink()
|
||||
# Apply filter on move lines to allow
|
||||
# 1. credit and debit side journal items in posted state of
|
||||
# the selected GL account
|
||||
# 2. Journal items which are not cleared in
|
||||
# previous bank statements
|
||||
# 3. Date less than or equal to ending date provided the
|
||||
# 'Suppress Ending Date Filter' is not checkec
|
||||
domain = [('account_id', '=', self.account_id.id),
|
||||
('move_id.state', '=', 'posted'),
|
||||
('cleared_bank_account', '=', False)]
|
||||
if not self.suppress_ending_date_filter:
|
||||
domain += [('date', '<=', self.ending_date)]
|
||||
for line in account_move_line_obj.search(domain):
|
||||
amount_currency = (line.amount_currency < 0) and (
|
||||
-1 * line.amount_currency) or line.amount_currency
|
||||
res = {
|
||||
'ref': line.ref,
|
||||
'date': line.date,
|
||||
'partner_id': line.partner_id.id,
|
||||
'currency_id': line.currency_id.id,
|
||||
'amount': line.credit or line.debit,
|
||||
'amountcur': amount_currency,
|
||||
'name': line.name or line.ref,
|
||||
'move_line_id': line.id,
|
||||
'type': line.credit and 'cr' or 'dr'}
|
||||
if res['type'] == 'cr':
|
||||
val['value']['credit_move_line_ids'].append(res)
|
||||
else:
|
||||
val['value']['debit_move_line_ids'].append(res)
|
||||
# look for previous statement for the account to
|
||||
# pull ending balance as starting balance
|
||||
prev_stmt = self.get_starting_balance(self.account_id.id,
|
||||
self.ending_date)
|
||||
val['value']['last_ending_date'] = prev_stmt[0]
|
||||
val['value']['starting_balance'] = prev_stmt[1]
|
||||
return val
|
||||
|
||||
def get_default_company_id(self):
|
||||
return self.env['res.users'].browse([self.env.uid]).company_id.id
|
||||
|
||||
name = fields.Char('Name', required=True, size=64,
|
||||
states={'done': [('readonly', True)]},
|
||||
help="This is a unique name identifying "
|
||||
"the statement (e.g. Bank X January 2012).")
|
||||
account_id = fields.Many2one('account.account', 'Account', required=True,
|
||||
states={'done': [('readonly', True)]},
|
||||
domain="[('company_id', '=', company_id)]",
|
||||
help="The Bank/Gl Account that is being "
|
||||
"reconciled.")
|
||||
ending_date = fields.Date('Ending Date', required=True,
|
||||
states={'done': [('readonly', True)]},
|
||||
default=time.strftime('%Y-%m-%d'),
|
||||
help="The ending date of your bank statement.")
|
||||
last_ending_date = fields.Date('Last Stmt Date',
|
||||
help="The previous statement date "
|
||||
"of your bank statement.")
|
||||
starting_balance = fields.Float('Starting Balance', required=True,
|
||||
digits=dp.get_precision('Account'),
|
||||
help="The Starting Balance on your "
|
||||
"bank statement.",
|
||||
states={'done': [('readonly', True)]})
|
||||
ending_balance = fields.Float('Ending Balance', required=True,
|
||||
digits=dp.get_precision('Account'),
|
||||
help="The Ending Balance on your "
|
||||
"bank statement.",
|
||||
states={'done': [('readonly', True)]})
|
||||
company_id = fields.Many2one('res.company', 'Company', required=True,
|
||||
readonly=True, default=get_default_company_id,
|
||||
help="The Company for which the "
|
||||
"deposit ticket is made to")
|
||||
notes = fields.Text('Notes')
|
||||
verified_date = fields.Date('Verified Date',
|
||||
states={'done': [('readonly', True)]},
|
||||
copy=False,
|
||||
help="Date in which Deposit "
|
||||
"Ticket was verified.")
|
||||
verified_by_user_id = fields.Many2one('res.users', 'Verified By',
|
||||
states={
|
||||
'done': [('readonly', True)]},
|
||||
copy=False,
|
||||
help="Entered automatically by "
|
||||
"the “last user” who saved it. "
|
||||
"System generated.")
|
||||
credit_move_line_ids = fields.One2many('bank.acc.rec.statement.line',
|
||||
'statement_id', 'Credits',
|
||||
copy=False,
|
||||
domain=[('type', '=', 'cr')],
|
||||
states={
|
||||
'done': [('readonly', True)]})
|
||||
debit_move_line_ids = fields.One2many('bank.acc.rec.statement.line',
|
||||
'statement_id', 'Debits',
|
||||
copy=False,
|
||||
domain=[('type', '=', 'dr')],
|
||||
states={
|
||||
'done': [('readonly', True)]})
|
||||
cleared_balance = fields.Float(compute='_compute_get_balance',
|
||||
string='Cleared Balance',
|
||||
digits=dp.get_precision('Account'),
|
||||
help="Total Sum of the Deposit Amount "
|
||||
"Cleared – Total Sum of Checks, "
|
||||
"Withdrawals, Debits, and Service "
|
||||
"Charges Amount Cleared")
|
||||
difference = fields.Float(compute='_compute_get_balance',
|
||||
string='Difference',
|
||||
digits=dp.get_precision('Account'),
|
||||
help="(Ending Balance – Beginning Balance) - "
|
||||
"Cleared Balance.")
|
||||
cleared_balance_cur = fields.Float(compute='_compute_get_balance',
|
||||
string='Cleared Balance (Cur)',
|
||||
digits=dp.get_precision('Account'),
|
||||
help="Total Sum of the Deposit "
|
||||
"Amount Cleared – Total Sum of "
|
||||
"Checks, Withdrawals, Debits, and"
|
||||
" Service Charges Amount Cleared")
|
||||
difference_cur = fields.Float(compute='_compute_get_balance',
|
||||
string='Difference (Cur)',
|
||||
digits=dp.get_precision('Account'),
|
||||
help="(Ending Balance – Beginning Balance)"
|
||||
" - Cleared Balance.")
|
||||
uncleared_balance = fields.Float(compute='_compute_get_balance',
|
||||
string='Uncleared Balance',
|
||||
digits=dp.get_precision('Account'),
|
||||
help="Total Sum of the Deposit "
|
||||
"Amount Uncleared – Total Sum of "
|
||||
"Checks, Withdrawals, Debits, and"
|
||||
" Service Charges Amount Uncleared")
|
||||
uncleared_balance_cur = fields.Float(compute='_compute_get_balance',
|
||||
string='Unleared Balance (Cur)',
|
||||
digits=dp.get_precision('Account'),
|
||||
help="Total Sum of the Deposit Amount"
|
||||
" Uncleared – Total Sum of "
|
||||
"Checks, Withdrawals, Debits, "
|
||||
"and Service Charges "
|
||||
"Amount Uncleared")
|
||||
sum_of_credits = fields.Float(compute='_compute_get_balance',
|
||||
string='Checks, Withdrawals, Debits, and'
|
||||
' Service Charges Amount',
|
||||
digits=dp.get_precision('Account'),
|
||||
type='float',
|
||||
help="Total SUM of Amts of lines with"
|
||||
" Cleared = True")
|
||||
sum_of_debits = fields.Float(compute='_compute_get_balance',
|
||||
string='Deposits, Credits, and '
|
||||
'Interest Amount',
|
||||
digits=dp.get_precision('Account'),
|
||||
help="Total SUM of Amts of lines with "
|
||||
"Cleared = True")
|
||||
sum_of_credits_cur = fields.Float(compute='_compute_get_balance',
|
||||
string='Checks, Withdrawals, Debits, and'
|
||||
' Service Charges Amount (Cur)',
|
||||
digits=dp.get_precision('Account'),
|
||||
help="Total SUM of Amts of lines "
|
||||
"with Cleared = True")
|
||||
sum_of_debits_cur = fields.Float(compute='_compute_get_balance',
|
||||
string='Deposits, Credits, and '
|
||||
'Interest Amount (Cur)',
|
||||
digits=dp.get_precision('Account'),
|
||||
help="Total SUM of Amts of lines "
|
||||
"with Cleared = True")
|
||||
sum_of_credits_lines = fields.Integer(compute='_compute_get_balance',
|
||||
string='''Checks, Withdrawals,
|
||||
Debits, and Service Charges # of
|
||||
Items''',
|
||||
help="Total of number of lines with "
|
||||
"Cleared = True")
|
||||
sum_of_debits_lines = fields.Integer(compute='_compute_get_balance',
|
||||
string='''Deposits, Credits, and
|
||||
Interest # of Items''',
|
||||
help="Total of number of lines with"
|
||||
" Cleared = True")
|
||||
sum_of_ucredits = fields.Float(compute='_compute_get_balance',
|
||||
string='Uncleared - Checks, Withdrawals, '
|
||||
'Debits, and Service Charges Amount',
|
||||
digits=dp.get_precision('Account'),
|
||||
help="Total SUM of Amts of lines with "
|
||||
"Cleared = False")
|
||||
sum_of_udebits = fields.Float(compute='_compute_get_balance',
|
||||
string='Uncleared - Deposits, Credits, '
|
||||
'and Interest Amount',
|
||||
digits=dp.get_precision('Account'),
|
||||
help="Total SUM of Amts of lines with "
|
||||
"Cleared = False")
|
||||
sum_of_ucredits_cur = fields.Float(compute='_compute_get_balance',
|
||||
string='Uncleared - Checks, '
|
||||
'Withdrawals, Debits, and '
|
||||
'Service Charges Amount (Cur)',
|
||||
digits=dp.get_precision('Account'),
|
||||
help="Total SUM of Amts of lines "
|
||||
"with Cleared = False")
|
||||
sum_of_udebits_cur = fields.Float(compute='_compute_get_balance',
|
||||
string='Uncleared - Deposits, Credits, '
|
||||
'and Interest Amount (Cur)',
|
||||
digits=dp.get_precision('Account'),
|
||||
help="Total SUM of Amts of lines with"
|
||||
" Cleared = False")
|
||||
sum_of_ucredits_lines = fields.Integer(compute='_compute_get_balance',
|
||||
string='Uncleared - Checks, '
|
||||
'Withdrawals, Debits, and '
|
||||
'Service Charges # of Items',
|
||||
help="Total of number of lines with"
|
||||
" Cleared = False")
|
||||
sum_of_udebits_lines = fields.Integer(compute='_compute_get_balance',
|
||||
string='''Uncleared - Deposits,
|
||||
Credits, and Interest # of Items''',
|
||||
help="Total of number of lines "
|
||||
"with Cleared = False")
|
||||
suppress_ending_date_filter = fields.Boolean('Remove Ending Date Filter',
|
||||
help="If this is checked then"
|
||||
" the Statement End Date"
|
||||
" filter on the "
|
||||
"transactions below will"
|
||||
" not occur. All "
|
||||
"transactions would "
|
||||
"come over.")
|
||||
state = fields.Selection([
|
||||
('draft', 'Draft'),
|
||||
('to_be_reviewed', 'Ready for Review'),
|
||||
('done', 'Done'),
|
||||
('cancel', 'Cancelled')
|
||||
], 'State', index=True, readonly=True, default='draft')
|
||||
|
||||
_sql_constraints = [
|
||||
('name_company_uniq', 'unique (name, company_id, account_id)',
|
||||
'The name of the statement must be unique per '
|
||||
'company and G/L account!')
|
||||
]
|
||||
|
||||
@api.multi
|
||||
def copy(self, default=None):
|
||||
for rec in self:
|
||||
if default is None:
|
||||
default = {}
|
||||
if 'name' not in default:
|
||||
default['name'] = _("%s (copy)") % rec.name
|
||||
return super(BankAccRecStatement, self).copy(default=default)
|
||||
|
||||
|
||||
class BankAccRecStatementLine(models.Model):
|
||||
_name = "bank.acc.rec.statement.line"
|
||||
_description = "Statement Line"
|
||||
|
||||
name = fields.Char('Name', size=64,
|
||||
help="Derived from the related Journal Item.",
|
||||
required=True)
|
||||
ref = fields.Char('Reference', size=64,
|
||||
help="Derived from related Journal Item.")
|
||||
partner_id = fields.Many2one('res.partner', string='Partner',
|
||||
help="Derived from related Journal Item.")
|
||||
amount = fields.Float('Amount', digits=dp.get_precision('Account'),
|
||||
help="Derived from the 'debit' amount from "
|
||||
"related Journal Item.")
|
||||
amountcur = fields.Float('Amount in Currency',
|
||||
digits=dp.get_precision('Account'),
|
||||
help="Derived from the 'amount currency' "
|
||||
"amount from related Journal Item.")
|
||||
date = fields.Date('Date', required=True,
|
||||
help="Derived from related Journal Item.")
|
||||
statement_id = fields.Many2one('bank.acc.rec.statement', 'Statement',
|
||||
required=True, ondelete='cascade')
|
||||
move_line_id = fields.Many2one('account.move.line', 'Journal Item',
|
||||
help="Related Journal Item.")
|
||||
cleared_bank_account = fields.Boolean('Cleared? ',
|
||||
help='Check if the transaction has '
|
||||
'cleared from the bank')
|
||||
research_required = fields.Boolean('Research Required? ',
|
||||
help='Check if the transaction should '
|
||||
'be researched by '
|
||||
'Accounting personal')
|
||||
currency_id = fields.Many2one('res.currency', 'Currency',
|
||||
help="The optional other currency if "
|
||||
"it is a multi-currency entry.")
|
||||
type = fields.Selection([('dr', 'Debit'), ('cr', 'Credit')], 'Cr/Dr')
|
||||
|
||||
@api.model
|
||||
def create(self, vals):
|
||||
account_move_line_obj = self.env['account.move.line']
|
||||
# Prevent manually adding new statement line.
|
||||
# This would allow only onchange method to pre-populate statement lines
|
||||
# based on the filter rules.
|
||||
if not vals.get('move_line_id', False):
|
||||
raise UserError(_(
|
||||
"You cannot add any new bank statement line manually "
|
||||
"as of this revision!"))
|
||||
account_move_line_obj.browse([vals['move_line_id']]).write(
|
||||
{'draft_assigned_to_statement': True})
|
||||
return super(BankAccRecStatementLine, self).create(vals)
|
||||
|
||||
@api.multi
|
||||
def unlink(self):
|
||||
account_move_line_obj = self.env['account.move.line']
|
||||
move_line_ids = [x.move_line_id.id for x in self if x.move_line_id]
|
||||
# map(lambda x: x.move_line_id.id if x.move_line_id,
|
||||
# self.browse(cr, uid, ids, context=context))
|
||||
# Reset field values in move lines to be added later
|
||||
account_move_line_obj.browse(move_line_ids).write(
|
||||
{'draft_assigned_to_statement': False,
|
||||
'cleared_bank_account': False,
|
||||
'bank_acc_rec_statement_id': False})
|
||||
return super(BankAccRecStatementLine, self).unlink()
|
|
@ -0,0 +1,26 @@
|
|||
# Copyright (C) 2019 Open Source Integrators
|
||||
# <https://www.opensourceintegrators.com>
|
||||
# Copyright (C) 2011 NovaPoint Group LLC (<http://www.novapointgroup.com>)
|
||||
# Copyright (C) 2004-2010 OpenERP SA (<http://www.openerp.com>)
|
||||
# License AGPL-3.0 or later (http://www.gnu.org/licenses/agpl).
|
||||
|
||||
from odoo import fields, models
|
||||
|
||||
|
||||
class AccountMoveLine(models.Model):
|
||||
_inherit = 'account.move.line'
|
||||
|
||||
cleared_bank_account = fields.Boolean(string='Cleared? ',
|
||||
help='Check if the transaction '
|
||||
'has cleared from the bank')
|
||||
bank_acc_rec_statement_id = fields.Many2one('bank.acc.rec.statement',
|
||||
string='Bank Acc Rec '
|
||||
'Statement',
|
||||
help="The Bank Acc Rec"
|
||||
" Statement linked with "
|
||||
"the journal item")
|
||||
draft_assigned_to_statement = fields.Boolean(string='Assigned to '
|
||||
'Statement? ',
|
||||
help='Check if the move line'
|
||||
' is assigned to '
|
||||
'statement lines')
|
|
@ -0,0 +1,6 @@
|
|||
To configure this module
|
||||
|
||||
* Go to Settings and activate the developer mode
|
||||
* Go to Settings > Users and Companies > Users
|
||||
* Add users who will prepare the bank statements to the "Bank Statement Preparer"
|
||||
* Add users who will verify them to the "Bank Statement Manager" group
|
|
@ -0,0 +1,5 @@
|
|||
* Nova Point Group <info@novapointgroup.com>
|
||||
* Balaji Kannan <bkannan@opensourceintegrators.com>
|
||||
* Bhavesh Odedra <bodedra@opensourceintegrators.com>
|
||||
* Sandeep Mangukiya <smangukiya@opensourceintegrators.com>
|
||||
* Murtuza Saleh <murtuza.saleh@serpentcs.com>
|
|
@ -0,0 +1,3 @@
|
|||
* Nova Point Group <https://www.novapointgroup.com>
|
||||
* Open Source Integrators <https://www.opensourceintegrators.com>
|
||||
* Serpent Consulting Services Pvt. Ltd. <https://www.serpentcs.com>
|
|
@ -0,0 +1,129 @@
|
|||
This module is designed to provide an easy method in which Odoo accounting users
|
||||
can manually reconcile/validate their financial transactions from their financial
|
||||
institution/transaction providers (e.g. Paypal, A financial institution, google
|
||||
wallet, etc) against Odoo GL Chart of Account bank accounts.
|
||||
|
||||
Users will be able to validate and indicate if a transaction has "Cleared the
|
||||
Bank" using a checkmark on a new Reconcile Financial Account Statement view on
|
||||
each individual financial transaction. Users will also be able to mark
|
||||
transactions on a bank account for future research.
|
||||
|
||||
The idea is that as a first step users will manually look at their paper statement
|
||||
and line-by-line check off which financial transactions have cleared the bank in
|
||||
Odoo using the new Bank Reconciliation Wizard. These changes will be displayed on
|
||||
the new Reconcile Financial Account Statement tree view screen. This is the
|
||||
process in which many companies reconcile (aka Audit) their bank account statements
|
||||
and accounting system today and represents good segregation of duties.
|
||||
|
||||
Users can save their in-process reconciliations.
|
||||
|
||||
Background
|
||||
----------
|
||||
|
||||
Using the search view filters - users will also be able to effectively sort,
|
||||
filter the transactions on a particular GL Financial Account. This new screen
|
||||
will display the journal items associated with a particular bank account.
|
||||
Several of the field labels have been relabeled to a more common vernacular.
|
||||
|
||||
The need for this module is driven by the following:
|
||||
|
||||
* Users want to easily record whether bank transactions sent to their bank have
|
||||
"cleared the bank"- definition of "cleared the bank": presented to the bank for
|
||||
payment and paid by the bank - added/subtracted funds on a bank account.
|
||||
* Users want the ability to validate if the bank processed the transactions them
|
||||
correctly (e.g. properly encoded transaction - e.g. company sent a payment of
|
||||
$20.20 to the bank. Was it processed for $20.20?). This can be considered
|
||||
"Auditing the bank statement". We don't assume the bank correctly processed any
|
||||
transaction.
|
||||
* Users want to understand what payments they've made are still outstanding and
|
||||
have not been paid by the bank.
|
||||
* The financial auditing segregation standard of separating the duties of:
|
||||
recording customer payments and making deposits; recording supplier payments
|
||||
and writing checks; and monitoring bank account activity. This segregation of
|
||||
duties is necessary to monitor and help prevent fraud.
|
||||
|
||||
Assumptions
|
||||
-----------
|
||||
|
||||
#. Companies using Odoo have setup a one-to-one relationship between their
|
||||
bank accounts and their Odoo GL accounts. Each bank account should have a
|
||||
corresponding GL account that is not shared with another account.
|
||||
Example:
|
||||
|
||||
+----------------------+------------------------------------------------------------+
|
||||
| Odoo GL Account # | Corresponding Bank Account |
|
||||
+======================+============================================================+
|
||||
| 10100 | Bank (AR) Account Checking 5434 (held at Institution A) |
|
||||
+----------------------+------------------------------------------------------------+
|
||||
| 10200 | Master Bank Account 2343 (held at Institution A) |
|
||||
+----------------------+------------------------------------------------------------+
|
||||
| 10300 | Bank Payable Account Checking 5678 (held at Institution A)|
|
||||
+----------------------+------------------------------------------------------------+
|
||||
| 10400 | Bank Payroll Account 6656 (held at Institution B) |
|
||||
+----------------------+------------------------------------------------------------+
|
||||
| 10500 | Paypal Account 3343 (held at Paypal) |
|
||||
+----------------------+------------------------------------------------------------+
|
||||
| 10600 | Google Wallet Account 6788 |
|
||||
+----------------------+------------------------------------------------------------+
|
||||
| 10700 | AMEX Corporate Card Account 9989 |
|
||||
+----------------------+------------------------------------------------------------+
|
||||
|
||||
#. Companies have included a Non-Deposited Funds Account in their GL account
|
||||
(typically in current assets in their bank account areas). This account is
|
||||
used to store payments that have been recorded in Odoo - but not yet
|
||||
deposited into the financial institution. (NOTE: this account is important to
|
||||
have if the user "batches check deposits"- which is the process of making a
|
||||
large single deposits of customer payment into the bank (e.g. $20,000USD), but
|
||||
it is made up of smaller checks (e.g. 20 checks of $1,000 each). Many banks
|
||||
just record the total deposit amount ($20,000) and don¬タルt provide the
|
||||
breakdown of the individual checks that make up the larger deposit. This
|
||||
setup approach enables users to drill down and see the individual checks that
|
||||
make up a larger deposit.
|
||||
|
||||
Recommendations
|
||||
---------------
|
||||
|
||||
From a cash management and financial control perspective, it is recommended that
|
||||
users establish the following four (4) bank accounts at their financial
|
||||
institution at a minimum to handle financial transactions. (NOTE: we recommend
|
||||
users place the last 4 digits of their bank account in the GL account name of the
|
||||
account. It helps accountants in their management of the system):
|
||||
|
||||
* Bank (AR) Account Checking 5434. This is a checking account designated as the
|
||||
account where payments made to the company are deposited (e.g. a customer
|
||||
payment made by check is deposited here, or a customer paying by electronic
|
||||
transaction EFT/ACH is deposited into this GL).
|
||||
* Master Bank Account 2343. This is the master account in which the company
|
||||
keeps the majority of their funds. Often with the most limited access.
|
||||
* Bank Payable Account Checking 5678. This is a checking account designated for
|
||||
the company to pay their expenses from. (e.g. Company writes a check to pay a
|
||||
supplier for their office supplies).
|
||||
* Bank Payroll Account 6656. This is a checking account designated for a company
|
||||
to pay their employees and payroll.
|
||||
|
||||
Note
|
||||
----
|
||||
|
||||
There has been common confusion in the Odoo community about managing bank
|
||||
statements in the base Odoo system. This module hopes to alleviate this gap and
|
||||
provide users with a sound alternative to maintain fiscal control, be easy to
|
||||
understand, and allow for future growth.
|
||||
|
||||
Why this approach?
|
||||
------------------
|
||||
|
||||
Users in Odoo have several options in which to record financial transactions that
|
||||
affect the balances of a bank account (GL Bank Account entries). We believe our
|
||||
approach allows these to work in conjunction with each other: Import Electronic
|
||||
Bank Statements to enter payments (this approach follows the philosophy that you
|
||||
first find out that a transaction has occurred from your bank which is very
|
||||
common in Europe due to the electronic nature of transactions).
|
||||
|
||||
* Payment Order Payments (using the direct Method) - Payments are instantly recorded
|
||||
and financial transactions posted into the GL
|
||||
* Voucher Payments - Payments are instantly recorded and financial transactions
|
||||
posted into the GL
|
||||
* Sales Receipts/Refunds
|
||||
* Transfers between accounts (a new module is being developed to help manage this)
|
||||
* Funds moved from the Undeposited Funds GL account to a Bank Account GL account.
|
||||
* Direct Journal Entries
|
|
@ -0,0 +1,11 @@
|
|||
To use this module:
|
||||
|
||||
* Go to Accounting > Adviser > Bank Statements
|
||||
* Create a new bank statement
|
||||
* Select the account and provide a name
|
||||
* Enter the ending balance from the bank statement
|
||||
* Check the transactions that cleared the bank
|
||||
* Check the balances
|
||||
* Save and submit for review
|
||||
* As a reviewer, check the transactions, totals and balances
|
||||
* Click on Process
|
|
@ -0,0 +1,14 @@
|
|||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<odoo>
|
||||
<!-- QWeb Reports -->
|
||||
<report id="bank_statement_detail" model="bank.acc.rec.statement"
|
||||
string="Bank Statement-Detail" report_type="qweb-pdf"
|
||||
name="account_banking_reconciliation.report_bank_statement_detail"
|
||||
file="account_banking_reconciliation.report_bank_statement_detail"
|
||||
attachment="'Detail Statement-'+(object.name)+'.pdf'"/>
|
||||
<report id="bank_statement_summary" model="bank.acc.rec.statement"
|
||||
string="Bank Statement-Summary" report_type="qweb-pdf"
|
||||
name="account_banking_reconciliation.report_bank_statement_summary"
|
||||
file="account_banking_reconciliation.report_bank_statement_summary"
|
||||
attachment="'Summary Statement-'+(object.name)+'.pdf'"/>
|
||||
</odoo>
|
|
@ -0,0 +1,484 @@
|
|||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<odoo>
|
||||
|
||||
<template id="report_bank_statement_detail_doc">
|
||||
<t t-call="web.external_layout">
|
||||
<t t-set="o"
|
||||
t-value="o.with_context({'lang':o.company_id.partner_id.lang})"/>
|
||||
<div class="page">
|
||||
<p style='text-align:center;'>
|
||||
Reconciliation Detail
|
||||
</p>
|
||||
<h5 style='text-align:center;'>
|
||||
<span>Period Ending</span>
|
||||
<span t-field="o.ending_date"/>
|
||||
</h5>
|
||||
<div class="row">
|
||||
<table class="table table-condensed"
|
||||
t-if="not o.account_id.currency_id">
|
||||
<thead>
|
||||
<tr>
|
||||
<th></th>
|
||||
<th>Date</th>
|
||||
<th class="text-center">Comment</th>
|
||||
<th class="text-center">Partner</th>
|
||||
<th class="text-center">Reference</th>
|
||||
<th class="text-center">Cleared</th>
|
||||
<th class="text-right">
|
||||
<span t-field="o.company_id.currency_id.symbol"/>
|
||||
</th>
|
||||
<th class="text-right">
|
||||
<span t-field="o.account_id.currency_id.symbol"/>
|
||||
</th>
|
||||
</tr>
|
||||
</thead>
|
||||
</table>
|
||||
<table class="table table-condensed"
|
||||
t-if="o.account_id.currency_id">
|
||||
<thead>
|
||||
<tr>
|
||||
<th></th>
|
||||
<th>Date</th>
|
||||
<th class="text-center">Comment</th>
|
||||
<th class="text-center">Partner</th>
|
||||
<th class="text-center">Reference</th>
|
||||
<th class="text-center">Cleared</th>
|
||||
<th class="text-right">
|
||||
<span t-field="o.company_id.currency_id.symbol"/>
|
||||
</th>
|
||||
<th class="text-right">Cleared</th>
|
||||
</tr>
|
||||
</thead>
|
||||
</table>
|
||||
<table class="table table-condensed"
|
||||
t-if="not o.account_id.currency_id">
|
||||
<tbody class="invoice_tbody">
|
||||
<tr>
|
||||
<td>
|
||||
<b>
|
||||
<span>Initial Balance:</span>
|
||||
</b>
|
||||
</td>
|
||||
<td></td>
|
||||
<td class="text-right">
|
||||
<span t-field="o.starting_balance"/>
|
||||
</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td>
|
||||
<b>
|
||||
<span>Cleared Transactions</span>
|
||||
</b>
|
||||
</td>
|
||||
<td></td>
|
||||
<td></td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td>
|
||||
<b>
|
||||
<span>Deposits & Credits-</span>
|
||||
<span t-field="o.sum_of_debits_lines"/>
|
||||
items
|
||||
</b>
|
||||
</td>
|
||||
<td></td>
|
||||
<td></td>
|
||||
</tr>
|
||||
</tbody>
|
||||
</table>
|
||||
<table class="table table-condensed"
|
||||
t-if="o.account_id.currency_id">
|
||||
<tbody class="invoice_tbody">
|
||||
<tr>
|
||||
<td>
|
||||
<b>
|
||||
<span>Initial Balance:</span>
|
||||
</b>
|
||||
</td>
|
||||
<td></td>
|
||||
<td class="text-right">
|
||||
<span t-field="o.starting_balance"/>
|
||||
</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td>
|
||||
<b>
|
||||
<span>Cleared Transactions</span>
|
||||
</b>
|
||||
</td>
|
||||
<td></td>
|
||||
<td></td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td>
|
||||
<b>
|
||||
<span>Deposits & Credits-</span>
|
||||
<span t-field="o.sum_of_debits_lines"/>
|
||||
items
|
||||
</b>
|
||||
</td>
|
||||
<td></td>
|
||||
<td></td>
|
||||
</tr>
|
||||
</tbody>
|
||||
</table>
|
||||
<table class="table table-condensed"
|
||||
t-if="not o.account_id.currency_id">
|
||||
<tbody class="invoice_tbody">
|
||||
<tr t-foreach="o.debit_move_line_ids" t-as="debit"
|
||||
t-if="debit.cleared_bank_account">
|
||||
<td></td>
|
||||
<td>
|
||||
<span t-field="debit.date"/>
|
||||
</td>
|
||||
<td>
|
||||
<span t-field="debit.name"/>
|
||||
</td>
|
||||
<td>
|
||||
<span t-field="debit.partner_id.name"/>
|
||||
</td>
|
||||
<td>
|
||||
<span t-field="debit.ref"/>
|
||||
</td>
|
||||
<td class="text-right">
|
||||
<t t-if="debit.cleared_bank_account">
|
||||
<input type="checkbox" checked="1"/>
|
||||
</t>
|
||||
</td>
|
||||
<td class="text-right">
|
||||
<span t-field="debit.amount"
|
||||
t-options='{"widget": "monetary", "display_currency": o.account_id.currency_id}'/>
|
||||
</td>
|
||||
<td class="text-right">
|
||||
<span t-field="debit.amountcur"
|
||||
t-options='{"widget": "monetary", "display_currency": o.account_id.currency_id}'/>
|
||||
</td>
|
||||
</tr>
|
||||
</tbody>
|
||||
</table>
|
||||
<table class="table table-condensed"
|
||||
t-if="o.account_id.currency_id">
|
||||
<tbody class="invoice_tbody">
|
||||
<tr t-foreach="o.debit_move_line_ids" t-as="debit"
|
||||
t-if="debit.cleared_bank_account">
|
||||
<td></td>
|
||||
<td>
|
||||
<span t-field="debit.date"/>
|
||||
</td>
|
||||
<td>
|
||||
<span t-field="debit.name"/>
|
||||
</td>
|
||||
<td>
|
||||
<span t-field="debit.partner_id.name"/>
|
||||
</td>
|
||||
<td>
|
||||
<span t-field="debit.ref"/>
|
||||
</td>
|
||||
<td class="text-right">
|
||||
<t t-if="debit.cleared_bank_account">
|
||||
<input type="checkbox" checked="1"/>
|
||||
</t>
|
||||
</td>
|
||||
<td class="text-right">
|
||||
<span t-field="debit.amount"
|
||||
t-options='{"widget": "monetary", "display_currency": o.account_id.currency_id}'/>
|
||||
</td>
|
||||
</tr>
|
||||
</tbody>
|
||||
</table>
|
||||
<div t-if="not o.account_id.currency_id">
|
||||
<table class="table table-condensed">
|
||||
<tbody class="invoice_tbody">
|
||||
<tr>
|
||||
<td>
|
||||
<b>
|
||||
<span>Total Deposits &
|
||||
Credits
|
||||
</span>
|
||||
</b>
|
||||
</td>
|
||||
<td></td>
|
||||
<td class="text-right">
|
||||
<span t-if="o.sum_of_debits"
|
||||
t-field="o.sum_of_debits"
|
||||
t-options='{"widget": "monetary", "display_currency": o.account_id.currency_id}'/>
|
||||
</td>
|
||||
<td class="text-right">
|
||||
<span t-if="o.sum_of_debits_cur"
|
||||
t-field="o.sum_of_debits_cur"
|
||||
t-options='{"widget": "monetary", "display_currency": o.account_id.currency_id}'/>
|
||||
</td>
|
||||
</tr>
|
||||
</tbody>
|
||||
</table>
|
||||
<table class="table table-condensed">
|
||||
<tbody class="invoice_tbody">
|
||||
<tr>
|
||||
<td>
|
||||
<b>
|
||||
<span>Checks & Payments-</span>
|
||||
<span t-field="o.sum_of_credits_lines"/>
|
||||
items
|
||||
</b>
|
||||
</td>
|
||||
<td></td>
|
||||
<td></td>
|
||||
</tr>
|
||||
</tbody>
|
||||
</table>
|
||||
</div>
|
||||
<div t-if="o.account_id.currency_id">
|
||||
<table class="table table-condensed">
|
||||
<tbody class="invoice_tbody">
|
||||
<tr>
|
||||
<td>
|
||||
<b>
|
||||
<span>Total Deposits &
|
||||
Credits
|
||||
</span>
|
||||
</b>
|
||||
</td>
|
||||
<td></td>
|
||||
<td class="text-right">
|
||||
<span t-if="o.sum_of_debits"
|
||||
t-field="o.sum_of_debits"
|
||||
t-options='{"widget": "monetary", "display_currency": o.account_id.currency_id}'/>
|
||||
</td>
|
||||
</tr>
|
||||
</tbody>
|
||||
</table>
|
||||
<table class="table table-condensed">
|
||||
<tbody class="invoice_tbody">
|
||||
<tr>
|
||||
<td>
|
||||
<b>
|
||||
<span>Checks & Payments-</span>
|
||||
<span t-field="o.sum_of_credits_lines"/>
|
||||
items
|
||||
</b>
|
||||
</td>
|
||||
<td></td>
|
||||
<td></td>
|
||||
</tr>
|
||||
</tbody>
|
||||
</table>
|
||||
</div>
|
||||
<table class="table table-condensed"
|
||||
t-if="not o.account_id.currency_id">
|
||||
<tbody class="invoice_tbody">
|
||||
<tr t-foreach="o.credit_move_line_ids"
|
||||
t-as="credit"
|
||||
t-if="credit.cleared_bank_account">
|
||||
<td></td>
|
||||
<td>
|
||||
<span t-field="credit.date"/>
|
||||
</td>
|
||||
<td>
|
||||
<span t-field="credit.name"/>
|
||||
</td>
|
||||
<td>
|
||||
<span t-field="credit.partner_id.name"/>
|
||||
</td>
|
||||
<td>
|
||||
<span t-field="credit.ref"/>
|
||||
</td>
|
||||
<td class="text-right">
|
||||
<t t-if="credit.cleared_bank_account">
|
||||
<input type="checkbox" checked="1"/>
|
||||
</t>
|
||||
</td>
|
||||
<td class="text-right">
|
||||
<span t-field="credit.amount"
|
||||
t-options='{"widget": "monetary", "display_currency": o.account_id.currency_id}'/>
|
||||
</td>
|
||||
<td class="text-right">
|
||||
<span t-field="credit.amountcur"
|
||||
t-options='{"widget": "monetary", "display_currency": o.account_id.currency_id}'/>
|
||||
</td>
|
||||
</tr>
|
||||
</tbody>
|
||||
</table>
|
||||
<table class="table table-condensed"
|
||||
t-if="o.account_id.currency_id">
|
||||
<tbody class="invoice_tbody">
|
||||
<tr t-foreach="o.credit_move_line_ids"
|
||||
t-as="credit"
|
||||
t-if="credit.cleared_bank_account">
|
||||
<td></td>
|
||||
<td>
|
||||
<span t-field="credit.date"/>
|
||||
</td>
|
||||
<td>
|
||||
<span t-field="credit.name"/>
|
||||
</td>
|
||||
<td>
|
||||
<span t-field="credit.partner_id.name"/>
|
||||
</td>
|
||||
<td>
|
||||
<span t-field="credit.ref"/>
|
||||
</td>
|
||||
<td class="text-right">
|
||||
<t t-if="credit.cleared_bank_account">
|
||||
<input type="checkbox" checked="1"/>
|
||||
</t>
|
||||
</td>
|
||||
<td class="text-right">
|
||||
<span t-field="credit.amount"
|
||||
t-options='{"widget": "monetary", "display_currency": o.account_id.currency_id}'/>
|
||||
</td>
|
||||
</tr>
|
||||
</tbody>
|
||||
</table>
|
||||
<div t-if="not o.account_id.currency_id">
|
||||
<table class="table table-condensed">
|
||||
<tbody class="invoice_tbody">
|
||||
<tr>
|
||||
<td>
|
||||
<b>
|
||||
<span>Total Checks & Payments
|
||||
</span>
|
||||
</b>
|
||||
</td>
|
||||
<td></td>
|
||||
<td class="text-right">
|
||||
<span t-if="o.sum_of_credits"
|
||||
t-field="o.sum_of_credits"
|
||||
t-options='{"widget": "monetary", "display_currency": o.account_id.currency_id}'/>
|
||||
</td>
|
||||
<td class="text-right">
|
||||
<span t-if="o.sum_of_credits_cur"
|
||||
t-field="o.sum_of_credits_cur"
|
||||
t-options='{"widget": "monetary", "display_currency": o.account_id.currency_id}'/>
|
||||
</td>
|
||||
</tr>
|
||||
</tbody>
|
||||
</table>
|
||||
<table class="table table-condensed">
|
||||
<tbody class="invoice_tbody">
|
||||
<tr>
|
||||
<td>
|
||||
<b>
|
||||
<span>Total Cleared Transactions
|
||||
</span>
|
||||
</b>
|
||||
</td>
|
||||
<td></td>
|
||||
<td class="text-right">
|
||||
<span t-esc="o.sum_of_debits - o.sum_of_credits"
|
||||
t-options='{"widget": "monetary", "display_currency": o.account_id.currency_id}'/>
|
||||
</td>
|
||||
<td class="text-right">
|
||||
<span t-esc="o.sum_of_debits_cur - o.sum_of_credits_cur"
|
||||
t-options='{"widget": "monetary", "display_currency": o.account_id.currency_id}'/>
|
||||
</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td>
|
||||
<b>
|
||||
<span>Cleared Balance</span>
|
||||
</b>
|
||||
</td>
|
||||
<td></td>
|
||||
<td class="text-right">
|
||||
<span t-field="o.cleared_balance"
|
||||
t-options='{"widget": "monetary", "display_currency": o.account_id.currency_id}'/>
|
||||
</td>
|
||||
<td class="text-right">
|
||||
<span t-field="o.cleared_balance_cur"
|
||||
t-options='{"widget": "monetary", "display_currency": o.account_id.currency_id}'/>
|
||||
</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td>
|
||||
<b>
|
||||
<span>Ending Balance</span>
|
||||
</b>
|
||||
</td>
|
||||
<td></td>
|
||||
<td></td>
|
||||
<td class="text-right">
|
||||
<span t-field="o.ending_balance"
|
||||
t-options='{"widget": "monetary", "display_currency": o.account_id.currency_id}'/>
|
||||
</td>
|
||||
</tr>
|
||||
</tbody>
|
||||
</table>
|
||||
</div>
|
||||
<div t-if="o.account_id.currency_id">
|
||||
<table class="table table-condensed">
|
||||
<tbody class="invoice_tbody">
|
||||
<tr>
|
||||
<td>
|
||||
<b>
|
||||
<span>Total Deposits &
|
||||
Credits
|
||||
</span>
|
||||
</b>
|
||||
</td>
|
||||
<td></td>
|
||||
<td class="text-right">
|
||||
<span t-if="o.sum_of_credits"
|
||||
t-field="o.sum_of_credits"
|
||||
t-options='{"widget": "monetary", "display_currency": o.account_id.currency_id}'/>
|
||||
</td>
|
||||
</tr>
|
||||
</tbody>
|
||||
</table>
|
||||
<table class="table table-condensed">
|
||||
<tbody class="invoice_tbody">
|
||||
<tr>
|
||||
<td>
|
||||
<b>
|
||||
<span>Total Cleared Transactions
|
||||
</span>
|
||||
</b>
|
||||
</td>
|
||||
<td></td>
|
||||
<td class="text-right">
|
||||
<span t-esc="o.sum_of_debits - o.sum_of_credits"
|
||||
t-options='{"widget": "monetary", "display_currency": o.account_id.currency_id}'/>
|
||||
</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td>
|
||||
<b>
|
||||
<span>Cleared Balance</span>
|
||||
</b>
|
||||
</td>
|
||||
<td></td>
|
||||
<td class="text-right">
|
||||
<span t-field="o.cleared_balance"
|
||||
t-options='{"widget": "monetary", "display_currency": o.account_id.currency_id}'/>
|
||||
</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td>
|
||||
<b>
|
||||
<span>Ending Balance</span>
|
||||
</b>
|
||||
</td>
|
||||
<td></td>
|
||||
<td></td>
|
||||
<td class="text-right">
|
||||
<span t-field="o.ending_balance"
|
||||
t-options='{"widget": "monetary", "display_currency": o.account_id.currency_id}'/>
|
||||
</td>
|
||||
</tr>
|
||||
</tbody>
|
||||
</table>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</t>
|
||||
</template>
|
||||
|
||||
<template id="report_bank_statement_detail">
|
||||
<t t-call="web.html_container">
|
||||
<t t-foreach="docs" t-as="o">
|
||||
<t t-call="account_banking_reconciliation.report_bank_statement_detail_doc"
|
||||
t-lang="o.company_id.partner_id.lang"/>
|
||||
</t>
|
||||
</t>
|
||||
</template>
|
||||
|
||||
</odoo>
|
|
@ -0,0 +1,298 @@
|
|||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<odoo>
|
||||
|
||||
<template id="report_bank_statement_summary_doc">
|
||||
<t t-call="web.external_layout">
|
||||
<t t-set="o"
|
||||
t-value="o.with_context({'lang':o.company_id.partner_id.lang})"/>
|
||||
<div class="page">
|
||||
<p style='text-align:center;'>
|
||||
Reconciliation Summary
|
||||
</p>
|
||||
<h5 style='text-align:center;'>
|
||||
<span>Period Ending</span>
|
||||
<span t-field="o.ending_date"/>
|
||||
</h5>
|
||||
<div class="row" t-if="not o.account_id.currency_id">
|
||||
<table class="table table-condensed">
|
||||
<tbody class="invoice_tbody">
|
||||
<tr>
|
||||
<td>
|
||||
<b>
|
||||
<span>Initial Balance:</span>
|
||||
</b>
|
||||
</td>
|
||||
<td></td>
|
||||
<td class="text-right">
|
||||
<span t-field="o.starting_balance"
|
||||
t-options='{"widget": "monetary", "display_currency": o.account_id.currency_id}'/>
|
||||
</td>
|
||||
</tr>
|
||||
</tbody>
|
||||
</table>
|
||||
<table class="table table-condensed">
|
||||
<tbody class="invoice_tbody">
|
||||
<tr>
|
||||
<td></td>
|
||||
<td>
|
||||
<b>
|
||||
<span>Deposits & Credits-</span>
|
||||
<span t-field="o.sum_of_debits_lines"/>
|
||||
items
|
||||
</b>
|
||||
</td>
|
||||
<td class="text-right">
|
||||
<span t-if="o.sum_of_debits"
|
||||
t-field="o.sum_of_debits"
|
||||
t-options='{"widget": "monetary", "display_currency": o.account_id.currency_id}'/>
|
||||
</td>
|
||||
<td class="text-right">
|
||||
<span t-if="o.sum_of_debits_cur"
|
||||
t-field="o.sum_of_debits_cur"
|
||||
t-options='{"widget": "monetary", "display_currency": o.account_id.currency_id}'/>
|
||||
</td>
|
||||
<td></td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td></td>
|
||||
<td>
|
||||
<b>
|
||||
<span>Checks & Payments-</span>
|
||||
<span t-field="o.sum_of_credits_lines"/>
|
||||
items
|
||||
</b>
|
||||
</td>
|
||||
<td class="text-right">
|
||||
<span t-if="o.sum_of_credits"
|
||||
t-field="o.sum_of_credits"
|
||||
t-options='{"widget": "monetary", "display_currency": o.account_id.currency_id}'/>
|
||||
</td>
|
||||
<td class="text-right">
|
||||
<span t-if="o.sum_of_credits_cur"
|
||||
t-field="o.sum_of_credits_cur"
|
||||
t-options='{"widget": "monetary", "display_currency": o.account_id.currency_id}'/>
|
||||
</td>
|
||||
<td></td>
|
||||
</tr>
|
||||
</tbody>
|
||||
</table>
|
||||
<table class="table table-condensed">
|
||||
<tbody class="invoice_tbody">
|
||||
<tr>
|
||||
<td></td>
|
||||
<td>
|
||||
<b>
|
||||
<span>Total Cleared Transactions</span>
|
||||
</b>
|
||||
</td>
|
||||
<td class="text-right">
|
||||
<span t-esc="o.sum_of_debits - o.sum_of_credits"
|
||||
t-options='{"widget": "monetary", "display_currency": o.account_id.currency_id}'/>
|
||||
</td>
|
||||
<td class="text-right">
|
||||
<span t-esc="o.sum_of_debits_cur - o.sum_of_credits_cur"
|
||||
t-options='{"widget": "monetary", "display_currency": o.account_id.currency_id}'/>
|
||||
</td>
|
||||
<td></td>
|
||||
</tr>
|
||||
</tbody>
|
||||
</table>
|
||||
<table class="table table-condensed">
|
||||
<tbody class="invoice_tbody">
|
||||
<tr>
|
||||
<td>
|
||||
<b>
|
||||
<span>Cleared Balance</span>
|
||||
</b>
|
||||
</td>
|
||||
<td class="text-right">
|
||||
<span t-field="o.cleared_balance"
|
||||
t-options='{"widget": "monetary", "display_currency": o.account_id.currency_id}'/>
|
||||
</td>
|
||||
<td class="text-right">
|
||||
<span t-field="o.cleared_balance_cur"
|
||||
t-options='{"widget": "monetary", "display_currency": o.account_id.currency_id}'/>
|
||||
</td>
|
||||
<td class="text-right">
|
||||
<b>
|
||||
<span t-field="o.cleared_balance_cur"
|
||||
t-options='{"widget": "monetary", "display_currency": o.account_id.currency_id}'/>
|
||||
</b>
|
||||
</td>
|
||||
</tr>
|
||||
</tbody>
|
||||
</table>
|
||||
<table class="table table-condensed">
|
||||
<tbody class="invoice_tbody">
|
||||
<tr>
|
||||
<td>
|
||||
<b>
|
||||
<span>Ending Balance:</span>
|
||||
</b>
|
||||
</td>
|
||||
<td></td>
|
||||
<td class="text-right">
|
||||
<span t-field="o.ending_balance"
|
||||
t-options='{"widget": "monetary", "display_currency": o.account_id.currency_id}'/>
|
||||
</td>
|
||||
</tr>
|
||||
</tbody>
|
||||
</table>
|
||||
</div>
|
||||
|
||||
<div class="row" t-if="o.account_id.currency_id">
|
||||
<table class="table table-condensed">
|
||||
<tbody class="invoice_tbody">
|
||||
<tr>
|
||||
<td>
|
||||
<b>
|
||||
<span>Initial Balance:</span>
|
||||
</b>
|
||||
</td>
|
||||
<td></td>
|
||||
<td class="text-right">
|
||||
<span t-field="o.starting_balance"
|
||||
t-options='{"widget": "monetary", "display_currency": o.account_id.currency_id}'/>
|
||||
</td>
|
||||
</tr>
|
||||
</tbody>
|
||||
</table>
|
||||
<table class="table table-condensed">
|
||||
<tbody class="invoice_tbody">
|
||||
<tr>
|
||||
<td>
|
||||
<b>
|
||||
<span>Ending Balance:</span>
|
||||
</b>
|
||||
</td>
|
||||
<td></td>
|
||||
<td class="text-right">
|
||||
<span t-field="o.ending_balance"
|
||||
t-options='{"widget": "monetary", "display_currency": o.account_id.currency_id}'/>
|
||||
</td>
|
||||
</tr>
|
||||
</tbody>
|
||||
</table>
|
||||
<table class="table table-condensed">
|
||||
<tbody class="invoice_tbody">
|
||||
<tr>
|
||||
<td></td>
|
||||
<td>
|
||||
<b>
|
||||
<span>Cleared Transactions</span>
|
||||
</b>
|
||||
</td>
|
||||
<td></td>
|
||||
<td></td>
|
||||
</tr>
|
||||
</tbody>
|
||||
</table>
|
||||
<table class="table table-condensed">
|
||||
<tbody class="invoice_tbody">
|
||||
<tr>
|
||||
<td></td>
|
||||
<td>
|
||||
<b>
|
||||
<span>Deposits & Credits-</span>
|
||||
<span t-field="o.sum_of_debits_lines"/>
|
||||
items
|
||||
</b>
|
||||
</td>
|
||||
<td></td>
|
||||
<td class="text-right">
|
||||
<span t-if="o.sum_of_debits"
|
||||
t-field="o.sum_of_debits"
|
||||
t-options='{"widget": "monetary", "display_currency": o.account_id.currency_id}'/>
|
||||
</td>
|
||||
<td></td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td></td>
|
||||
<td>
|
||||
<b>
|
||||
<span>Checks & Payments-</span>
|
||||
<span t-field="o.sum_of_credits_lines"/>
|
||||
items
|
||||
</b>
|
||||
</td>
|
||||
<td></td>
|
||||
<td class="text-right">
|
||||
<span t-if="o.sum_of_credits"
|
||||
t-field="o.sum_of_credits"
|
||||
t-options='{"widget": "monetary", "display_currency": o.account_id.currency_id}'/>
|
||||
</td>
|
||||
<td></td>
|
||||
</tr>
|
||||
</tbody>
|
||||
</table>
|
||||
<table class="table table-condensed">
|
||||
<tbody class="invoice_tbody">
|
||||
<tr>
|
||||
<td></td>
|
||||
<td>
|
||||
<b>
|
||||
<span>Total Cleared Transactions</span>
|
||||
</b>
|
||||
</td>
|
||||
<td></td>
|
||||
<td class="text-right">
|
||||
<span t-esc="o.sum_of_debits - o.sum_of_credits"
|
||||
t-options='{"widget": "monetary", "display_currency": o.account_id.currency_id}'/>
|
||||
</td>
|
||||
<td></td>
|
||||
</tr>
|
||||
</tbody>
|
||||
</table>
|
||||
<table class="table table-condensed">
|
||||
<tbody class="invoice_tbody">
|
||||
<tr>
|
||||
<td>
|
||||
<b>
|
||||
<span>Cleared Balance</span>
|
||||
</b>
|
||||
</td>
|
||||
<td></td>
|
||||
<td class="text-right">
|
||||
<span t-field="o.cleared_balance"
|
||||
t-options='{"widget": "monetary", "display_currency": o.account_id.currency_id}'/>
|
||||
</td>
|
||||
<td class="text-right">
|
||||
<span t-field="o.cleared_balance"
|
||||
t-options='{"widget": "monetary", "display_currency": o.account_id.currency_id}'/>
|
||||
</td>
|
||||
</tr>
|
||||
</tbody>
|
||||
</table>
|
||||
<table class="table table-condensed">
|
||||
<tbody class="invoice_tbody">
|
||||
<tr>
|
||||
<td>
|
||||
<b>
|
||||
<span>Ending Balance:</span>
|
||||
</b>
|
||||
</td>
|
||||
<td></td>
|
||||
<td class="text-right">
|
||||
<span t-field="o.ending_balance"
|
||||
t-options='{"widget": "monetary", "display_currency": o.account_id.currency_id}'/>
|
||||
</td>
|
||||
</tr>
|
||||
</tbody>
|
||||
</table>
|
||||
</div>
|
||||
|
||||
</div>
|
||||
</t>
|
||||
</template>
|
||||
|
||||
<template id="report_bank_statement_summary">
|
||||
<t t-call="web.html_container">
|
||||
<t t-foreach="docs" t-as="o">
|
||||
<t
|
||||
t-call="account_banking_reconciliation.report_bank_statement_summary_doc"
|
||||
t-lang="o.company_id.partner_id.lang"/>
|
||||
</t>
|
||||
</t>
|
||||
</template>
|
||||
|
||||
</odoo>
|
|
@ -0,0 +1,30 @@
|
|||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<odoo>
|
||||
|
||||
<!-- Groups - Bank Stmt Preparer , Bank Stmt Verifier -->
|
||||
<record id="group_bank_stmt_preparer" model="res.groups">
|
||||
<field name="name">Bank Statement Preparer</field>
|
||||
<field name="category_id" ref="base.module_category_hidden"/>
|
||||
<field name="implied_ids" eval="[(4, ref('account.group_account_user'))]"/>
|
||||
</record>
|
||||
|
||||
<record id="group_bank_stmt_verifier" model="res.groups">
|
||||
<field name="name">Bank Statement Verifier</field>
|
||||
<field name="category_id" ref="base.module_category_hidden"/>
|
||||
<field name="implied_ids" eval="[(4, ref('group_bank_stmt_preparer'))]"/>
|
||||
<field name="users" eval="[(4, ref('base.user_root'))]"/>
|
||||
</record>
|
||||
|
||||
<!-- Security Rule for Bank Rec Stmts -->
|
||||
<record id="comp_rule" model="ir.rule">
|
||||
<field name="name">Bank Statements</field>
|
||||
<field ref="model_bank_acc_rec_statement" name="model_id"/>
|
||||
<field eval="True" name="global"/>
|
||||
<field name="domain_force">
|
||||
['|',
|
||||
('company_id', '=', False),
|
||||
('company_id', 'child_of', [user.company_id.id])]
|
||||
</field>
|
||||
</record>
|
||||
|
||||
</odoo>
|
|
@ -0,0 +1,5 @@
|
|||
"id","name","model_id:id","group_id:id","perm_read","perm_write","perm_create","perm_unlink"
|
||||
"access_bank_acc_rec_statement_preparer","access.bank.acc.rec.statement.preparer","model_bank_acc_rec_statement","group_bank_stmt_preparer",1,1,1,1
|
||||
"access_bank_acc_rec_statement_verifier","access.bank.acc.rec.statement.verifier","model_bank_acc_rec_statement","group_bank_stmt_verifier",1,1,1,1
|
||||
"access_bank_acc_rec_statement_line_preparer","access.bank.acc.rec.statement.line.preparer","model_bank_acc_rec_statement_line","group_bank_stmt_preparer",1,1,1,1
|
||||
"access_bank_acc_rec_statement_line_verifier","access.bank.acc.rec.statement.line.verifier","model_bank_acc_rec_statement_line","group_bank_stmt_verifier",1,1,1,1
|
|
Binary file not shown.
After Width: | Height: | Size: 9.2 KiB |
|
@ -0,0 +1,603 @@
|
|||
<?xml version="1.0" encoding="utf-8" ?>
|
||||
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
|
||||
<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en">
|
||||
<head>
|
||||
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
|
||||
<meta name="generator" content="Docutils 0.14: http://docutils.sourceforge.net/" />
|
||||
<title>Bank Account Reconciliation</title>
|
||||
<style type="text/css">
|
||||
|
||||
/*
|
||||
:Author: David Goodger (goodger@python.org)
|
||||
:Id: $Id: html4css1.css 7952 2016-07-26 18:15:59Z milde $
|
||||
:Copyright: This stylesheet has been placed in the public domain.
|
||||
|
||||
Default cascading style sheet for the HTML output of Docutils.
|
||||
|
||||
See http://docutils.sf.net/docs/howto/html-stylesheets.html for how to
|
||||
customize this style sheet.
|
||||
*/
|
||||
|
||||
/* used to remove borders from tables and images */
|
||||
.borderless, table.borderless td, table.borderless th {
|
||||
border: 0 }
|
||||
|
||||
table.borderless td, table.borderless th {
|
||||
/* Override padding for "table.docutils td" with "! important".
|
||||
The right padding separates the table cells. */
|
||||
padding: 0 0.5em 0 0 ! important }
|
||||
|
||||
.first {
|
||||
/* Override more specific margin styles with "! important". */
|
||||
margin-top: 0 ! important }
|
||||
|
||||
.last, .with-subtitle {
|
||||
margin-bottom: 0 ! important }
|
||||
|
||||
.hidden {
|
||||
display: none }
|
||||
|
||||
.subscript {
|
||||
vertical-align: sub;
|
||||
font-size: smaller }
|
||||
|
||||
.superscript {
|
||||
vertical-align: super;
|
||||
font-size: smaller }
|
||||
|
||||
a.toc-backref {
|
||||
text-decoration: none ;
|
||||
color: black }
|
||||
|
||||
blockquote.epigraph {
|
||||
margin: 2em 5em ; }
|
||||
|
||||
dl.docutils dd {
|
||||
margin-bottom: 0.5em }
|
||||
|
||||
object[type="image/svg+xml"], object[type="application/x-shockwave-flash"] {
|
||||
overflow: hidden;
|
||||
}
|
||||
|
||||
/* Uncomment (and remove this text!) to get bold-faced definition list terms
|
||||
dl.docutils dt {
|
||||
font-weight: bold }
|
||||
*/
|
||||
|
||||
div.abstract {
|
||||
margin: 2em 5em }
|
||||
|
||||
div.abstract p.topic-title {
|
||||
font-weight: bold ;
|
||||
text-align: center }
|
||||
|
||||
div.admonition, div.attention, div.caution, div.danger, div.error,
|
||||
div.hint, div.important, div.note, div.tip, div.warning {
|
||||
margin: 2em ;
|
||||
border: medium outset ;
|
||||
padding: 1em }
|
||||
|
||||
div.admonition p.admonition-title, div.hint p.admonition-title,
|
||||
div.important p.admonition-title, div.note p.admonition-title,
|
||||
div.tip p.admonition-title {
|
||||
font-weight: bold ;
|
||||
font-family: sans-serif }
|
||||
|
||||
div.attention p.admonition-title, div.caution p.admonition-title,
|
||||
div.danger p.admonition-title, div.error p.admonition-title,
|
||||
div.warning p.admonition-title, .code .error {
|
||||
color: red ;
|
||||
font-weight: bold ;
|
||||
font-family: sans-serif }
|
||||
|
||||
/* Uncomment (and remove this text!) to get reduced vertical space in
|
||||
compound paragraphs.
|
||||
div.compound .compound-first, div.compound .compound-middle {
|
||||
margin-bottom: 0.5em }
|
||||
|
||||
div.compound .compound-last, div.compound .compound-middle {
|
||||
margin-top: 0.5em }
|
||||
*/
|
||||
|
||||
div.dedication {
|
||||
margin: 2em 5em ;
|
||||
text-align: center ;
|
||||
font-style: italic }
|
||||
|
||||
div.dedication p.topic-title {
|
||||
font-weight: bold ;
|
||||
font-style: normal }
|
||||
|
||||
div.figure {
|
||||
margin-left: 2em ;
|
||||
margin-right: 2em }
|
||||
|
||||
div.footer, div.header {
|
||||
clear: both;
|
||||
font-size: smaller }
|
||||
|
||||
div.line-block {
|
||||
display: block ;
|
||||
margin-top: 1em ;
|
||||
margin-bottom: 1em }
|
||||
|
||||
div.line-block div.line-block {
|
||||
margin-top: 0 ;
|
||||
margin-bottom: 0 ;
|
||||
margin-left: 1.5em }
|
||||
|
||||
div.sidebar {
|
||||
margin: 0 0 0.5em 1em ;
|
||||
border: medium outset ;
|
||||
padding: 1em ;
|
||||
background-color: #ffffee ;
|
||||
width: 40% ;
|
||||
float: right ;
|
||||
clear: right }
|
||||
|
||||
div.sidebar p.rubric {
|
||||
font-family: sans-serif ;
|
||||
font-size: medium }
|
||||
|
||||
div.system-messages {
|
||||
margin: 5em }
|
||||
|
||||
div.system-messages h1 {
|
||||
color: red }
|
||||
|
||||
div.system-message {
|
||||
border: medium outset ;
|
||||
padding: 1em }
|
||||
|
||||
div.system-message p.system-message-title {
|
||||
color: red ;
|
||||
font-weight: bold }
|
||||
|
||||
div.topic {
|
||||
margin: 2em }
|
||||
|
||||
h1.section-subtitle, h2.section-subtitle, h3.section-subtitle,
|
||||
h4.section-subtitle, h5.section-subtitle, h6.section-subtitle {
|
||||
margin-top: 0.4em }
|
||||
|
||||
h1.title {
|
||||
text-align: center }
|
||||
|
||||
h2.subtitle {
|
||||
text-align: center }
|
||||
|
||||
hr.docutils {
|
||||
width: 75% }
|
||||
|
||||
img.align-left, .figure.align-left, object.align-left, table.align-left {
|
||||
clear: left ;
|
||||
float: left ;
|
||||
margin-right: 1em }
|
||||
|
||||
img.align-right, .figure.align-right, object.align-right, table.align-right {
|
||||
clear: right ;
|
||||
float: right ;
|
||||
margin-left: 1em }
|
||||
|
||||
img.align-center, .figure.align-center, object.align-center {
|
||||
display: block;
|
||||
margin-left: auto;
|
||||
margin-right: auto;
|
||||
}
|
||||
|
||||
table.align-center {
|
||||
margin-left: auto;
|
||||
margin-right: auto;
|
||||
}
|
||||
|
||||
.align-left {
|
||||
text-align: left }
|
||||
|
||||
.align-center {
|
||||
clear: both ;
|
||||
text-align: center }
|
||||
|
||||
.align-right {
|
||||
text-align: right }
|
||||
|
||||
/* reset inner alignment in figures */
|
||||
div.align-right {
|
||||
text-align: inherit }
|
||||
|
||||
/* div.align-center * { */
|
||||
/* text-align: left } */
|
||||
|
||||
.align-top {
|
||||
vertical-align: top }
|
||||
|
||||
.align-middle {
|
||||
vertical-align: middle }
|
||||
|
||||
.align-bottom {
|
||||
vertical-align: bottom }
|
||||
|
||||
ol.simple, ul.simple {
|
||||
margin-bottom: 1em }
|
||||
|
||||
ol.arabic {
|
||||
list-style: decimal }
|
||||
|
||||
ol.loweralpha {
|
||||
list-style: lower-alpha }
|
||||
|
||||
ol.upperalpha {
|
||||
list-style: upper-alpha }
|
||||
|
||||
ol.lowerroman {
|
||||
list-style: lower-roman }
|
||||
|
||||
ol.upperroman {
|
||||
list-style: upper-roman }
|
||||
|
||||
p.attribution {
|
||||
text-align: right ;
|
||||
margin-left: 50% }
|
||||
|
||||
p.caption {
|
||||
font-style: italic }
|
||||
|
||||
p.credits {
|
||||
font-style: italic ;
|
||||
font-size: smaller }
|
||||
|
||||
p.label {
|
||||
white-space: nowrap }
|
||||
|
||||
p.rubric {
|
||||
font-weight: bold ;
|
||||
font-size: larger ;
|
||||
color: maroon ;
|
||||
text-align: center }
|
||||
|
||||
p.sidebar-title {
|
||||
font-family: sans-serif ;
|
||||
font-weight: bold ;
|
||||
font-size: larger }
|
||||
|
||||
p.sidebar-subtitle {
|
||||
font-family: sans-serif ;
|
||||
font-weight: bold }
|
||||
|
||||
p.topic-title {
|
||||
font-weight: bold }
|
||||
|
||||
pre.address {
|
||||
margin-bottom: 0 ;
|
||||
margin-top: 0 ;
|
||||
font: inherit }
|
||||
|
||||
pre.literal-block, pre.doctest-block, pre.math, pre.code {
|
||||
margin-left: 2em ;
|
||||
margin-right: 2em }
|
||||
|
||||
pre.code .ln { color: grey; } /* line numbers */
|
||||
pre.code, code { background-color: #eeeeee }
|
||||
pre.code .comment, code .comment { color: #5C6576 }
|
||||
pre.code .keyword, code .keyword { color: #3B0D06; font-weight: bold }
|
||||
pre.code .literal.string, code .literal.string { color: #0C5404 }
|
||||
pre.code .name.builtin, code .name.builtin { color: #352B84 }
|
||||
pre.code .deleted, code .deleted { background-color: #DEB0A1}
|
||||
pre.code .inserted, code .inserted { background-color: #A3D289}
|
||||
|
||||
span.classifier {
|
||||
font-family: sans-serif ;
|
||||
font-style: oblique }
|
||||
|
||||
span.classifier-delimiter {
|
||||
font-family: sans-serif ;
|
||||
font-weight: bold }
|
||||
|
||||
span.interpreted {
|
||||
font-family: sans-serif }
|
||||
|
||||
span.option {
|
||||
white-space: nowrap }
|
||||
|
||||
span.pre {
|
||||
white-space: pre }
|
||||
|
||||
span.problematic {
|
||||
color: red }
|
||||
|
||||
span.section-subtitle {
|
||||
/* font-size relative to parent (h1..h6 element) */
|
||||
font-size: 80% }
|
||||
|
||||
table.citation {
|
||||
border-left: solid 1px gray;
|
||||
margin-left: 1px }
|
||||
|
||||
table.docinfo {
|
||||
margin: 2em 4em }
|
||||
|
||||
table.docutils {
|
||||
margin-top: 0.5em ;
|
||||
margin-bottom: 0.5em }
|
||||
|
||||
table.footnote {
|
||||
border-left: solid 1px black;
|
||||
margin-left: 1px }
|
||||
|
||||
table.docutils td, table.docutils th,
|
||||
table.docinfo td, table.docinfo th {
|
||||
padding-left: 0.5em ;
|
||||
padding-right: 0.5em ;
|
||||
vertical-align: top }
|
||||
|
||||
table.docutils th.field-name, table.docinfo th.docinfo-name {
|
||||
font-weight: bold ;
|
||||
text-align: left ;
|
||||
white-space: nowrap ;
|
||||
padding-left: 0 }
|
||||
|
||||
/* "booktabs" style (no vertical lines) */
|
||||
table.docutils.booktabs {
|
||||
border: 0px;
|
||||
border-top: 2px solid;
|
||||
border-bottom: 2px solid;
|
||||
border-collapse: collapse;
|
||||
}
|
||||
table.docutils.booktabs * {
|
||||
border: 0px;
|
||||
}
|
||||
table.docutils.booktabs th {
|
||||
border-bottom: thin solid;
|
||||
text-align: left;
|
||||
}
|
||||
|
||||
h1 tt.docutils, h2 tt.docutils, h3 tt.docutils,
|
||||
h4 tt.docutils, h5 tt.docutils, h6 tt.docutils {
|
||||
font-size: 100% }
|
||||
|
||||
ul.auto-toc {
|
||||
list-style-type: none }
|
||||
|
||||
</style>
|
||||
</head>
|
||||
<body>
|
||||
<div class="document" id="bank-account-reconciliation">
|
||||
<h1 class="title">Bank Account Reconciliation</h1>
|
||||
|
||||
<!-- !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
|
||||
!! This file is generated by oca-gen-addon-readme !!
|
||||
!! changes will be overwritten. !!
|
||||
!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! -->
|
||||
<p><a class="reference external" href="http://www.gnu.org/licenses/agpl-3.0-standalone.html"><img alt="License: AGPL-3" src="https://img.shields.io/badge/licence-AGPL--3-blue.png" /></a> <a class="reference external" href="https://github.com/OCA/account-reconcile/tree/12.0/account_banking_reconciliation"><img alt="OCA/account-reconcile" src="https://img.shields.io/badge/github-OCA%2Faccount--reconcile-lightgray.png?logo=github" /></a> <a class="reference external" href="https://translation.odoo-community.org/projects/account-reconcile-12-0/account-reconcile-12-0-account_banking_reconciliation"><img alt="Translate me on Weblate" src="https://img.shields.io/badge/weblate-Translate%20me-F47D42.png" /></a> <a class="reference external" href="https://runbot.odoo-community.org/runbot/98/12.0"><img alt="Try me on Runbot" src="https://img.shields.io/badge/runbot-Try%20me-875A7B.png" /></a></p>
|
||||
<p>This module is designed to provide an easy method in which Odoo accounting users
|
||||
can manually reconcile/validate their financial transactions from their financial
|
||||
institution/transaction providers (e.g. Paypal, A financial institution, google
|
||||
wallet, etc) against Odoo GL Chart of Account bank accounts.</p>
|
||||
<p>Users will be able to validate and indicate if a transaction has “Cleared the
|
||||
Bank” using a checkmark on a new Reconcile Financial Account Statement view on
|
||||
each individual financial transaction. Users will also be able to mark
|
||||
transactions on a bank account for future research.</p>
|
||||
<p>The idea is that as a first step users will manually look at their paper statement
|
||||
and line-by-line check off which financial transactions have cleared the bank in
|
||||
Odoo using the new Bank Reconciliation Wizard. These changes will be displayed on
|
||||
the new Reconcile Financial Account Statement tree view screen. This is the
|
||||
process in which many companies reconcile (aka Audit) their bank account statements
|
||||
and accounting system today and represents good segregation of duties.</p>
|
||||
<p>Users can save their in-process reconciliations.</p>
|
||||
<div class="section" id="background">
|
||||
<h1>Background</h1>
|
||||
<p>Using the search view filters - users will also be able to effectively sort,
|
||||
filter the transactions on a particular GL Financial Account. This new screen
|
||||
will display the journal items associated with a particular bank account.
|
||||
Several of the field labels have been relabeled to a more common vernacular.</p>
|
||||
<p>The need for this module is driven by the following:</p>
|
||||
<ul class="simple">
|
||||
<li>Users want to easily record whether bank transactions sent to their bank have
|
||||
“cleared the bank”- definition of “cleared the bank”: presented to the bank for
|
||||
payment and paid by the bank - added/subtracted funds on a bank account.</li>
|
||||
<li>Users want the ability to validate if the bank processed the transactions them
|
||||
correctly (e.g. properly encoded transaction - e.g. company sent a payment of
|
||||
$20.20 to the bank. Was it processed for $20.20?). This can be considered
|
||||
“Auditing the bank statement”. We don’t assume the bank correctly processed any
|
||||
transaction.</li>
|
||||
<li>Users want to understand what payments they’ve made are still outstanding and
|
||||
have not been paid by the bank.</li>
|
||||
<li>The financial auditing segregation standard of separating the duties of:
|
||||
recording customer payments and making deposits; recording supplier payments
|
||||
and writing checks; and monitoring bank account activity. This segregation of
|
||||
duties is necessary to monitor and help prevent fraud.</li>
|
||||
</ul>
|
||||
</div>
|
||||
<div class="section" id="assumptions">
|
||||
<h1>Assumptions</h1>
|
||||
<ol class="arabic">
|
||||
<li><p class="first">Companies using Odoo have setup a one-to-one relationship between their
|
||||
bank accounts and their Odoo GL accounts. Each bank account should have a
|
||||
corresponding GL account that is not shared with another account.
|
||||
Example:</p>
|
||||
<table border="1" class="docutils">
|
||||
<colgroup>
|
||||
<col width="27%" />
|
||||
<col width="73%" />
|
||||
</colgroup>
|
||||
<thead valign="bottom">
|
||||
<tr><th class="head">Odoo GL Account #</th>
|
||||
<th class="head">Corresponding Bank Account</th>
|
||||
</tr>
|
||||
</thead>
|
||||
<tbody valign="top">
|
||||
<tr><td>10100</td>
|
||||
<td>Bank (AR) Account Checking 5434 (held at Institution A)</td>
|
||||
</tr>
|
||||
<tr><td>10200</td>
|
||||
<td>Master Bank Account 2343 (held at Institution A)</td>
|
||||
</tr>
|
||||
<tr><td>10300</td>
|
||||
<td>Bank Payable Account Checking 5678 (held at Institution A)</td>
|
||||
</tr>
|
||||
<tr><td>10400</td>
|
||||
<td>Bank Payroll Account 6656 (held at Institution B)</td>
|
||||
</tr>
|
||||
<tr><td>10500</td>
|
||||
<td>Paypal Account 3343 (held at Paypal)</td>
|
||||
</tr>
|
||||
<tr><td>10600</td>
|
||||
<td>Google Wallet Account 6788</td>
|
||||
</tr>
|
||||
<tr><td>10700</td>
|
||||
<td>AMEX Corporate Card Account 9989</td>
|
||||
</tr>
|
||||
</tbody>
|
||||
</table>
|
||||
</li>
|
||||
<li><p class="first">Companies have included a Non-Deposited Funds Account in their GL account
|
||||
(typically in current assets in their bank account areas). This account is
|
||||
used to store payments that have been recorded in Odoo - but not yet
|
||||
deposited into the financial institution. (NOTE: this account is important to
|
||||
have if the user “batches check deposits”- which is the process of making a
|
||||
large single deposits of customer payment into the bank (e.g. $20,000USD), but
|
||||
it is made up of smaller checks (e.g. 20 checks of $1,000 each). Many banks
|
||||
just record the total deposit amount ($20,000) and don¬タルt provide the
|
||||
breakdown of the individual checks that make up the larger deposit. This
|
||||
setup approach enables users to drill down and see the individual checks that
|
||||
make up a larger deposit.</p>
|
||||
</li>
|
||||
</ol>
|
||||
</div>
|
||||
<div class="section" id="recommendations">
|
||||
<h1>Recommendations</h1>
|
||||
<p>From a cash management and financial control perspective, it is recommended that
|
||||
users establish the following four (4) bank accounts at their financial
|
||||
institution at a minimum to handle financial transactions. (NOTE: we recommend
|
||||
users place the last 4 digits of their bank account in the GL account name of the
|
||||
account. It helps accountants in their management of the system):</p>
|
||||
<ul class="simple">
|
||||
<li>Bank (AR) Account Checking 5434. This is a checking account designated as the
|
||||
account where payments made to the company are deposited (e.g. a customer
|
||||
payment made by check is deposited here, or a customer paying by electronic
|
||||
transaction EFT/ACH is deposited into this GL).</li>
|
||||
<li>Master Bank Account 2343. This is the master account in which the company
|
||||
keeps the majority of their funds. Often with the most limited access.</li>
|
||||
<li>Bank Payable Account Checking 5678. This is a checking account designated for
|
||||
the company to pay their expenses from. (e.g. Company writes a check to pay a
|
||||
supplier for their office supplies).</li>
|
||||
<li>Bank Payroll Account 6656. This is a checking account designated for a company
|
||||
to pay their employees and payroll.</li>
|
||||
</ul>
|
||||
</div>
|
||||
<div class="section" id="note">
|
||||
<h1>Note</h1>
|
||||
<p>There has been common confusion in the Odoo community about managing bank
|
||||
statements in the base Odoo system. This module hopes to alleviate this gap and
|
||||
provide users with a sound alternative to maintain fiscal control, be easy to
|
||||
understand, and allow for future growth.</p>
|
||||
</div>
|
||||
<div class="section" id="why-this-approach">
|
||||
<h1>Why this approach?</h1>
|
||||
<p>Users in Odoo have several options in which to record financial transactions that
|
||||
affect the balances of a bank account (GL Bank Account entries). We believe our
|
||||
approach allows these to work in conjunction with each other: Import Electronic
|
||||
Bank Statements to enter payments (this approach follows the philosophy that you
|
||||
first find out that a transaction has occurred from your bank which is very
|
||||
common in Europe due to the electronic nature of transactions).</p>
|
||||
<ul class="simple">
|
||||
<li>Payment Order Payments (using the direct Method) - Payments are instantly recorded
|
||||
and financial transactions posted into the GL</li>
|
||||
<li>Voucher Payments - Payments are instantly recorded and financial transactions
|
||||
posted into the GL</li>
|
||||
<li>Sales Receipts/Refunds</li>
|
||||
<li>Transfers between accounts (a new module is being developed to help manage this)</li>
|
||||
<li>Funds moved from the Undeposited Funds GL account to a Bank Account GL account.</li>
|
||||
<li>Direct Journal Entries</li>
|
||||
</ul>
|
||||
<p><strong>Table of contents</strong></p>
|
||||
<div class="contents local topic" id="contents">
|
||||
<ul class="simple">
|
||||
<li><a class="reference internal" href="#configuration" id="id1">Configuration</a></li>
|
||||
<li><a class="reference internal" href="#usage" id="id2">Usage</a></li>
|
||||
<li><a class="reference internal" href="#bug-tracker" id="id3">Bug Tracker</a></li>
|
||||
<li><a class="reference internal" href="#credits" id="id4">Credits</a><ul>
|
||||
<li><a class="reference internal" href="#authors" id="id5">Authors</a></li>
|
||||
<li><a class="reference internal" href="#contributors" id="id6">Contributors</a></li>
|
||||
<li><a class="reference internal" href="#other-credits" id="id7">Other credits</a></li>
|
||||
<li><a class="reference internal" href="#maintainers" id="id8">Maintainers</a></li>
|
||||
</ul>
|
||||
</li>
|
||||
</ul>
|
||||
</div>
|
||||
<div class="section" id="configuration">
|
||||
<h2><a class="toc-backref" href="#id1">Configuration</a></h2>
|
||||
<p>To configure this module</p>
|
||||
<ul class="simple">
|
||||
<li>Go to Settings and activate the developer mode</li>
|
||||
<li>Go to Settings > Users and Companies > Users</li>
|
||||
<li>Add users who will prepare the bank statements to the “Bank Statement Preparer”</li>
|
||||
<li>Add users who will verify them to the “Bank Statement Manager” group</li>
|
||||
</ul>
|
||||
</div>
|
||||
<div class="section" id="usage">
|
||||
<h2><a class="toc-backref" href="#id2">Usage</a></h2>
|
||||
<p>To use this module:</p>
|
||||
<ul class="simple">
|
||||
<li>Go to Accounting > Adviser > Bank Statements</li>
|
||||
<li>Create a new bank statement</li>
|
||||
<li>Select the account and provide a name</li>
|
||||
<li>Enter the ending balance from the bank statement</li>
|
||||
<li>Check the transactions that cleared the bank</li>
|
||||
<li>Check the balances</li>
|
||||
<li>Save and submit for review</li>
|
||||
<li>As a reviewer, check the transactions, totals and balances</li>
|
||||
<li>Click on Process</li>
|
||||
</ul>
|
||||
</div>
|
||||
<div class="section" id="bug-tracker">
|
||||
<h2><a class="toc-backref" href="#id3">Bug Tracker</a></h2>
|
||||
<p>Bugs are tracked on <a class="reference external" href="https://github.com/OCA/account-reconcile/issues">GitHub Issues</a>.
|
||||
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
|
||||
<a class="reference external" href="https://github.com/OCA/account-reconcile/issues/new?body=module:%20account_banking_reconciliation%0Aversion:%2012.0%0A%0A**Steps%20to%20reproduce**%0A-%20...%0A%0A**Current%20behavior**%0A%0A**Expected%20behavior**">feedback</a>.</p>
|
||||
<p>Do not contact contributors directly about support or help with technical issues.</p>
|
||||
</div>
|
||||
<div class="section" id="credits">
|
||||
<h2><a class="toc-backref" href="#id4">Credits</a></h2>
|
||||
<div class="section" id="authors">
|
||||
<h3><a class="toc-backref" href="#id5">Authors</a></h3>
|
||||
<ul class="simple">
|
||||
<li>NovaPoint Group LLC</li>
|
||||
<li>Open Source Integrators</li>
|
||||
</ul>
|
||||
</div>
|
||||
<div class="section" id="contributors">
|
||||
<h3><a class="toc-backref" href="#id6">Contributors</a></h3>
|
||||
<ul class="simple">
|
||||
<li>Nova Point Group <<a class="reference external" href="mailto:info@novapointgroup.com">info@novapointgroup.com</a>></li>
|
||||
<li>Balaji Kannan <<a class="reference external" href="mailto:bkannan@opensourceintegrators.com">bkannan@opensourceintegrators.com</a>></li>
|
||||
<li>Bhavesh Odedra <<a class="reference external" href="mailto:bodedra@opensourceintegrators.com">bodedra@opensourceintegrators.com</a>></li>
|
||||
<li>Sandeep Mangukiya <<a class="reference external" href="mailto:smangukiya@opensourceintegrators.com">smangukiya@opensourceintegrators.com</a>></li>
|
||||
<li>Murtuza Saleh <<a class="reference external" href="mailto:murtuza.saleh@serpentcs.com">murtuza.saleh@serpentcs.com</a>></li>
|
||||
</ul>
|
||||
</div>
|
||||
<div class="section" id="other-credits">
|
||||
<h3><a class="toc-backref" href="#id7">Other credits</a></h3>
|
||||
<ul class="simple">
|
||||
<li>Nova Point Group <<a class="reference external" href="https://www.novapointgroup.com">https://www.novapointgroup.com</a>></li>
|
||||
<li>Open Source Integrators <<a class="reference external" href="https://www.opensourceintegrators.com">https://www.opensourceintegrators.com</a>></li>
|
||||
<li>Serpent Consulting Services Pvt. Ltd. <<a class="reference external" href="https://www.serpentcs.com">https://www.serpentcs.com</a>></li>
|
||||
</ul>
|
||||
</div>
|
||||
<div class="section" id="maintainers">
|
||||
<h3><a class="toc-backref" href="#id8">Maintainers</a></h3>
|
||||
<p>This module is maintained by the OCA.</p>
|
||||
<a class="reference external image-reference" href="https://odoo-community.org"><img alt="Odoo Community Association" src="https://odoo-community.org/logo.png" /></a>
|
||||
<p>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.</p>
|
||||
<p>Current <a class="reference external" href="https://odoo-community.org/page/maintainer-role">maintainer</a>:</p>
|
||||
<p><a class="reference external" href="https://github.com/max3903"><img alt="max3903" src="https://github.com/max3903.png?size=40px" /></a></p>
|
||||
<p>This module is part of the <a class="reference external" href="https://github.com/OCA/account-reconcile/tree/12.0/account_banking_reconciliation">OCA/account-reconcile</a> project on GitHub.</p>
|
||||
<p>You are welcome to contribute. To learn how please visit <a class="reference external" href="https://odoo-community.org/page/Contribute">https://odoo-community.org/page/Contribute</a>.</p>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</body>
|
||||
</html>
|
|
@ -0,0 +1,315 @@
|
|||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<odoo>
|
||||
|
||||
<!-- Bank Account Reconciliation Statement -->
|
||||
<record id="view_bank_acc_rec_statement_tree" model="ir.ui.view">
|
||||
<field name="name">bank.acc.rec.statement.tree</field>
|
||||
<field name="model">bank.acc.rec.statement</field>
|
||||
<field name="type">tree</field>
|
||||
<field name="priority">2</field>
|
||||
<field name="arch" type="xml">
|
||||
<tree string="Bank Account Reconciliation Statements"
|
||||
colors="grey:state=='cancel';blue:state in ('to_be_reviewed')">
|
||||
<field name="name"/>
|
||||
<field name="ending_date"/>
|
||||
<field name="account_id"/>
|
||||
<field name="verified_by_user_id"/>
|
||||
<field name="state"/>
|
||||
</tree>
|
||||
</field>
|
||||
</record>
|
||||
|
||||
<record id="view_bank_acc_rec_statement_form" model="ir.ui.view">
|
||||
<field name="name">bank.acc.rec.statement.form</field>
|
||||
<field name="model">bank.acc.rec.statement</field>
|
||||
<field name="type">form</field>
|
||||
<field name="arch" type="xml">
|
||||
<form string="Bank Account Reconciliation Statement">
|
||||
<header>
|
||||
<button name="action_review" type="object" states="draft"
|
||||
string="Submit for Review"
|
||||
class="oe_highlight"/>
|
||||
<button name="action_process" type="object"
|
||||
states="to_be_reviewed"
|
||||
string="Process"
|
||||
class="oe_highlight"/>
|
||||
<button name="action_cancel_draft" states="cancel,done"
|
||||
string="Set to Draft" type="object"/>
|
||||
<button name="action_cancel" type="object"
|
||||
states="draft,to_be_reviewed"
|
||||
string="Cancel"/>
|
||||
<button name='refresh_record' string='Refresh'
|
||||
confirm="Current edits in statement will be lost. Do you want to refresh?"
|
||||
states="draft" type='object'/>
|
||||
<field name="state" widget="statusbar" nolabel="1"/>
|
||||
</header>
|
||||
<sheet>
|
||||
<div class="oe_title">
|
||||
<h1>
|
||||
<field name="name" placeholder="Enter Name"/>
|
||||
</h1>
|
||||
</div>
|
||||
<group>
|
||||
<group>
|
||||
<field name="account_id"
|
||||
placeholder="Select the account"/>
|
||||
<field name="ending_date"
|
||||
placeholder="Enter the ending date"/>
|
||||
<field name="ending_balance"
|
||||
placeholder="Enter the ending balance"/>
|
||||
</group>
|
||||
<group>
|
||||
<field name="last_ending_date"
|
||||
placeholder="Date of the last statement"
|
||||
readonly="1" force_save="1"/>
|
||||
<field name="starting_balance"
|
||||
placeholder="Enter the starting balance"/>
|
||||
<field name="suppress_ending_date_filter"/>
|
||||
<field name="company_id"
|
||||
groups="base.group_multi_company"
|
||||
placeholder="Select the company"/>
|
||||
</group>
|
||||
</group>
|
||||
<notebook colspan="5">
|
||||
<page string="Journal Items">
|
||||
<label for='account_label'
|
||||
string='Deposits, Credits, and Interest'/>
|
||||
<field colspan="4" mode="tree"
|
||||
name="debit_move_line_ids"
|
||||
nolabel="1" widget="one2many_list"
|
||||
height="300">
|
||||
<form string="Deposits, Credits, and Interest">
|
||||
<group col="4">
|
||||
<field name="cleared_bank_account"/>
|
||||
<field name="date" readonly="1"
|
||||
force_save="1"/>
|
||||
<field name="name" readonly="1"
|
||||
force_save="1"/>
|
||||
<field name="ref" readonly="1"
|
||||
force_save="1"/>
|
||||
<field name="partner_id" readonly="1"
|
||||
force_save="1"/>
|
||||
<field name="amount" readonly="1"
|
||||
force_save="1"/>
|
||||
<field name="amountcur" readonly="1"
|
||||
force_save="1"/>
|
||||
<field name="currency_id" readonly="1"
|
||||
force_save="1"/>
|
||||
<field name="research_required"
|
||||
readonly="1" force_save="1"/>
|
||||
</group>
|
||||
</form>
|
||||
<tree string="Deposits, Credits, and Interest"
|
||||
editable="top"
|
||||
mute_additem="draft,to_be_reviewed,done, cancel"
|
||||
create="0">
|
||||
<field name="cleared_bank_account"/>
|
||||
<field name="date" readonly="1"
|
||||
force_save="1"/>
|
||||
<field name="name" readonly="1"
|
||||
force_save="1"/>
|
||||
<field name="ref" readonly="1"/>
|
||||
<field name="partner_id" readonly="1"
|
||||
force_save="1"/>
|
||||
<field name="amount" readonly="1"
|
||||
force_save="1"/>
|
||||
<field name="amountcur" readonly="1"
|
||||
force_save="1"/>
|
||||
<field name="currency_id" readonly="1"
|
||||
force_save="1"/>
|
||||
<field name="research_required"/>
|
||||
<field name="move_line_id" readonly="1"
|
||||
force_save="1"/>
|
||||
</tree>
|
||||
</field>
|
||||
<label for='account_label2'
|
||||
string='Checks, Withdrawals, Debits, and Service Charges'/>
|
||||
<field colspan="4" mode="tree"
|
||||
name="credit_move_line_ids"
|
||||
nolabel="1" widget="one2many_list"
|
||||
height="300">
|
||||
<form string="Checks, Withdrawals, Debits, and Service Charges">
|
||||
<group col="4">
|
||||
<field name="cleared_bank_account"/>
|
||||
<field name="date" readonly="1"
|
||||
force_save="1"/>
|
||||
<field name="name" readonly="1"
|
||||
force_save="1"/>
|
||||
<field name="ref" readonly="1"
|
||||
force_save="1"/>
|
||||
<field name="partner_id" readonly="1"
|
||||
force_save="1"/>
|
||||
<field name="amount" readonly="1"
|
||||
force_save="1"/>
|
||||
<field name="amountcur" readonly="1"
|
||||
force_save="1"/>
|
||||
<field name="currency_id" readonly="1"
|
||||
force_save="1"/>
|
||||
<field name="research_required"
|
||||
readonly="1" force_save="1"/>
|
||||
</group>
|
||||
</form>
|
||||
<tree string="Checks, Withdrawals, Debits, and Service Charges"
|
||||
editable="top"
|
||||
mute_additem="draft,to_be_reviewed,done, cancel"
|
||||
create="0">
|
||||
<field name="cleared_bank_account"/>
|
||||
<field name="date" readonly="1"
|
||||
force_save="1"/>
|
||||
<field name="name" readonly="1"
|
||||
force_save="1"/>
|
||||
<field name="ref" readonly="1"
|
||||
force_save="1"/>
|
||||
<field name="partner_id" readonly="1"
|
||||
force_save="1"/>
|
||||
<field name="amount" readonly="1"
|
||||
force_save="1"/>
|
||||
<field name="amountcur" readonly="1"
|
||||
force_save="1"/>
|
||||
<field name="currency_id" readonly="1"
|
||||
force_save="1"/>
|
||||
<field name="research_required"/>
|
||||
<field name="move_line_id" readonly="1"
|
||||
force_save="1"/>
|
||||
</tree>
|
||||
</field>
|
||||
<group col="2" colspan="1"
|
||||
groups="account_banking_reconciliation.group_bank_stmt_verifier">
|
||||
<button name="action_select_all"
|
||||
confirm="Current edits in statement will be lost. Do you want to select all?"
|
||||
type="object"
|
||||
states="draft,to_be_reviewed"
|
||||
string="Select All"
|
||||
icon="fa-check"/>
|
||||
<button name="action_unselect_all"
|
||||
confirm="Current edits in statement will be lost. Do you want to unselect all?"
|
||||
type="object"
|
||||
states="draft,to_be_reviewed"
|
||||
string="Unselect All"
|
||||
icon="fa-close"/>
|
||||
</group>
|
||||
<group name="totals" string="Totals">
|
||||
<group name="total1" string="Cleared">
|
||||
<field name="sum_of_debits"/>
|
||||
<field name="sum_of_debits_cur"/>
|
||||
<field name="sum_of_debits_lines"/>
|
||||
<field name="sum_of_credits"/>
|
||||
<field name="sum_of_credits_cur"/>
|
||||
<field name="sum_of_credits_lines"/>
|
||||
</group>
|
||||
<group name="total2" string="Uncleared">
|
||||
<field name="sum_of_udebits"/>
|
||||
<field name="sum_of_udebits_cur"/>
|
||||
<field name="sum_of_udebits_lines"/>
|
||||
<field name="sum_of_ucredits"/>
|
||||
<field name="sum_of_ucredits_cur"/>
|
||||
<field name="sum_of_ucredits_lines"/>
|
||||
</group>
|
||||
</group>
|
||||
<group name="balances" string="Balances">
|
||||
<group name="balance1" string="Cleared">
|
||||
<field name="cleared_balance"/>
|
||||
<field name="cleared_balance_cur"
|
||||
attrs="{'invisible':[('cleared_balance_cur','=', 0.0)]}"/>
|
||||
<field name="difference"/>
|
||||
<field name="difference_cur"
|
||||
attrs="{'invisible':[('cleared_balance_cur','=', 0.0)]}"/>
|
||||
</group>
|
||||
<group name="balance2" string="Uncleared">
|
||||
<field name="uncleared_balance"/>
|
||||
<field name="uncleared_balance_cur"
|
||||
attrs="{'invisible':[('uncleared_balance_cur','=', 0.0)]}"/>
|
||||
</group>
|
||||
</group>
|
||||
</page>
|
||||
<page string="Other Information">
|
||||
<group string="Tracking Information">
|
||||
<group>
|
||||
<field name="verified_by_user_id"
|
||||
placeholder="Enter the user who verified"
|
||||
readonly="1"/>
|
||||
</group>
|
||||
<group>
|
||||
<field name="verified_date"
|
||||
placeholder="Enter the verification date"
|
||||
readonly="1"/>
|
||||
</group>
|
||||
</group>
|
||||
</page>
|
||||
<page string="Notes">
|
||||
<field name="notes" nolabel="1"
|
||||
placeholder="Enter notes about reconciliation"/>
|
||||
</page>
|
||||
</notebook>
|
||||
</sheet>
|
||||
</form>
|
||||
</field>
|
||||
</record>
|
||||
|
||||
<record id="view_bank_acc_rec_statement_filter" model="ir.ui.view">
|
||||
<field name="name">bank.acc.rec.statement.select</field>
|
||||
<field name="model">bank.acc.rec.statement</field>
|
||||
<field name="type">search</field>
|
||||
<field name="arch" type="xml">
|
||||
<search string="Search Bank Account Reconciliation Statements">
|
||||
<filter name="draft" icon="terp-document-new" string="Draft"
|
||||
domain="[('state','=','draft')]"
|
||||
help="Statements that haven't yet been confirmed"/>
|
||||
<filter name="to_be_reviewed" icon="terp-dolar" string="To be Reviewed"
|
||||
domain="[('state','=','to_be_reviewed')]"
|
||||
help="Statements that are ready for review"/>
|
||||
<filter name="done" icon="terp-check" string="Done"
|
||||
domain="[('state','=','done')]"
|
||||
help="Statements that have been processed"/>
|
||||
<separator orientation="vertical"/>
|
||||
<field name="name" select="1"/>
|
||||
<field name="ending_date" select="1" string="Ending Date"/>
|
||||
<field name="account_id" select="1"/>
|
||||
<field name="verified_by_user_id" select="1">
|
||||
<filter name="verified_by_user_id" domain="[('verified_by_user_id','=',uid)]"
|
||||
help="Verified by me"
|
||||
icon="terp-personal"/>
|
||||
</field>
|
||||
<newline/>
|
||||
<group expand="0" string="Group By...">
|
||||
<filter name="account_id" string="Account" icon="terp-personal" domain="[]"
|
||||
context="{'group_by':'account_id'}"/>
|
||||
<separator orientation="vertical"/>
|
||||
<filter name="state" string="State"
|
||||
icon="terp-stock_effects-object-colorize"
|
||||
domain="[]" context="{'group_by':'state'}"/>
|
||||
</group>
|
||||
</search>
|
||||
</field>
|
||||
</record>
|
||||
|
||||
<record id="action_bank_acc_rec_statement" model="ir.actions.act_window">
|
||||
<field name="name">Bank Statements</field>
|
||||
<field name="type">ir.actions.act_window</field>
|
||||
<field name="res_model">bank.acc.rec.statement</field>
|
||||
<field name="view_type">form</field>
|
||||
<field name="view_mode">tree,form</field>
|
||||
<field name="search_view_id" ref="view_bank_acc_rec_statement_filter"/>
|
||||
</record>
|
||||
|
||||
<menuitem id="bank_acc_rec_statement_menu"
|
||||
icon="STOCK_JUSTIFY_FILL"
|
||||
action="action_bank_acc_rec_statement"
|
||||
parent="account.menu_finance_entries"
|
||||
sequence="5"/>
|
||||
|
||||
<act_window id="act_account_move_line_to_add" name="Journal Items"
|
||||
res_model="account.move.line"
|
||||
src_model="bank.acc.rec.statement"/>
|
||||
|
||||
<act_window id="act_supplier_payment_to_add" name="Supplier Payment"
|
||||
domain="[('voucher_type', 'in', ['bank', 'cash'])]"
|
||||
context="{'type':'payment'}" res_model="account.voucher"
|
||||
src_model="bank.acc.rec.statement"/>
|
||||
|
||||
<act_window id="act_customer_payment_to_add" name="Customer Payment"
|
||||
domain="[('voucher_type', 'in', ['bank', 'cash'])]"
|
||||
context="{'type':'receipt'}" res_model="account.voucher"
|
||||
src_model="bank.acc.rec.statement"/>
|
||||
|
||||
</odoo>
|
|
@ -0,0 +1,41 @@
|
|||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<odoo>
|
||||
<!--- Journal Items -->
|
||||
|
||||
<record id="view_account_move_line_bank_acc_rec_statement_id"
|
||||
model="ir.ui.view">
|
||||
<field name="name">account.move.line</field>
|
||||
<field name="model">account.move.line</field>
|
||||
<field name="inherit_id" ref="account.view_account_move_line_filter"/>
|
||||
<field name="type">search</field>
|
||||
<field name="arch" type="xml">
|
||||
<field name="move_id" position="after">
|
||||
<field name="bank_acc_rec_statement_id"/>
|
||||
</field>
|
||||
<field name="move_id" position="before">
|
||||
<filter name="uncleared_bank_account" icon="terp-document-new"
|
||||
string="Uncleared Bank Account"
|
||||
domain="[('cleared_bank_account','=',False)]"
|
||||
help="Journal Entries not cleared"/>
|
||||
<separator orientation="vertical"/>
|
||||
</field>
|
||||
</field>
|
||||
</record>
|
||||
|
||||
<record id="view_account_move_line_bank_acc_rec_statement_id_form"
|
||||
model="ir.ui.view">
|
||||
<field name="name">account.move.line.form</field>
|
||||
<field name="model">account.move.line</field>
|
||||
<field name="inherit_id" ref="account.view_move_line_form"/>
|
||||
<field name="type">form</field>
|
||||
<field name="arch" type="xml">
|
||||
<field name="statement_id" position="after">
|
||||
<field name="bank_acc_rec_statement_id"/>
|
||||
</field>
|
||||
<field name="blocked" position="after">
|
||||
<field name="cleared_bank_account"/>
|
||||
</field>
|
||||
</field>
|
||||
</record>
|
||||
|
||||
</odoo>
|
|
@ -1 +1 @@
|
|||
12.0.20190517.0
|
||||
12.0.20190712.0
|
|
@ -8,6 +8,7 @@ setuptools.setup(
|
|||
description="Meta package for oca-account-reconcile Odoo addons",
|
||||
version=version,
|
||||
install_requires=[
|
||||
'odoo12-addon-account_banking_reconciliation',
|
||||
'odoo12-addon-account_mass_reconcile',
|
||||
'odoo12-addon-account_partner_reconcile',
|
||||
'odoo12-addon-bank_statement_foreign_currency',
|
||||
|
|
|
@ -0,0 +1 @@
|
|||
../../../../account_banking_reconciliation
|
|
@ -0,0 +1,6 @@
|
|||
import setuptools
|
||||
|
||||
setuptools.setup(
|
||||
setup_requires=['setuptools-odoo'],
|
||||
odoo_addon=True,
|
||||
)
|
Loading…
Reference in New Issue