[ADD] account_banking_reconciliation
parent
4a17f7ba9a
commit
958749ee98
|
@ -0,0 +1,207 @@
|
||||||
|
.. image:: https://img.shields.io/badge/licence-AGPL--3-blue.svg
|
||||||
|
:target: http://www.gnu.org/licenses/agpl-3.0-standalone.html
|
||||||
|
:alt: License: AGPL-3
|
||||||
|
|
||||||
|
=============================
|
||||||
|
Bank Statement Reconciliation
|
||||||
|
=============================
|
||||||
|
|
||||||
|
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
|
||||||
|
|
||||||
|
Usage
|
||||||
|
=====
|
||||||
|
|
||||||
|
* Go to Accounting
|
||||||
|
|
||||||
|
.. image:: https://odoo-community.org/website/image/ir.attachment/5784_f2813bd/datas
|
||||||
|
:alt: Try me on Runbot
|
||||||
|
:target: https://runbot.odoo-community.org/runbot/98/10.0
|
||||||
|
|
||||||
|
Roadmap
|
||||||
|
=======
|
||||||
|
|
||||||
|
* Include a wizard to pre-filter the tree view, and include additional reports for
|
||||||
|
accountants. And include the ability to execute quick entry of common statement
|
||||||
|
related transactions such as recording bank service fees (an Expense), and
|
||||||
|
Interest Income Earned on the bank account (Income), when allowed by law.
|
||||||
|
Often, companies will print their reconciliation, staple it to their bank
|
||||||
|
statement and file the documents for future review and audit.
|
||||||
|
* Include more information to add further clarity throughout Odoo for financial
|
||||||
|
transactions, and include the ability to quickly compare an imported bank
|
||||||
|
statement with a GL Bank Account's recorded transaction, including
|
||||||
|
autoreconciling them - and providing the information available for review.
|
||||||
|
|
||||||
|
Bug Tracker
|
||||||
|
===========
|
||||||
|
|
||||||
|
Bugs are tracked on `GitHub Issues
|
||||||
|
<https://github.com/OCA/account-invoice-reporting/issues>`_. In case of trouble, please
|
||||||
|
check there if your issue has already been reported. If you spotted it first,
|
||||||
|
help us smash it by providing detailed and welcomed feedback.
|
||||||
|
|
||||||
|
Credits
|
||||||
|
=======
|
||||||
|
|
||||||
|
Images
|
||||||
|
------
|
||||||
|
|
||||||
|
* Odoo Community Association: `Icon <https://github.com/OCA/maintainer-tools/blob/master/template/module/static/description/icon.svg>`_.
|
||||||
|
|
||||||
|
Contributors
|
||||||
|
------------
|
||||||
|
|
||||||
|
* Nova Point Group <info@novapointgroup.com>
|
||||||
|
* Balaji Kannan <bkannan@ursainfosystems.com>
|
||||||
|
* Bhavesh Odedra <bodedra@ursainfosystems.com>
|
||||||
|
* Sandeep Mangukiya <smangukiya@ursainfosystems.com>
|
||||||
|
|
||||||
|
Funders
|
||||||
|
-------
|
||||||
|
|
||||||
|
The development of this module has been financially supported by:
|
||||||
|
|
||||||
|
* Nova Point Group <http://www.novapointgroup.com>
|
||||||
|
* Ursa Information Systems <http://www.ursainfosystems.com>
|
||||||
|
|
||||||
|
Maintainer
|
||||||
|
----------
|
||||||
|
|
||||||
|
.. image:: https://odoo-community.org/logo.png
|
||||||
|
:alt: Odoo Community Association
|
||||||
|
:target: https://odoo-community.org
|
||||||
|
|
||||||
|
This module is maintained by the OCA.
|
||||||
|
|
||||||
|
OCA, or the Odoo Community Association, is a nonprofit organization whose
|
||||||
|
mission is to support the collaborative development of Odoo features and
|
||||||
|
promote its widespread use.
|
||||||
|
|
||||||
|
To contribute to this module, please visit https://odoo-community.org.
|
|
@ -0,0 +1,7 @@
|
||||||
|
# -*- coding: utf-8 -*-
|
||||||
|
# Copyright (C) 2015 Ursa Information Systems (http://www.ursainfosystems.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 . import models
|
|
@ -0,0 +1,24 @@
|
||||||
|
# -*- coding: utf-8 -*-
|
||||||
|
# Copyright (C) 2015 Ursa Information Systems (http://www.ursainfosystems.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",
|
||||||
|
"version": "10.0.1.0.0",
|
||||||
|
"license": "AGPL-3",
|
||||||
|
"category": "Accounting and Financial Management",
|
||||||
|
"author": "NovaPoint Group LLC, Ursa Information Systems, Odoo Community Association (OCA)",
|
||||||
|
"website": "http://www.novapointgroup.com",
|
||||||
|
"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"],
|
||||||
|
"demo": [],
|
||||||
|
"installable": False,
|
||||||
|
}
|
|
@ -0,0 +1,7 @@
|
||||||
|
# -*- coding: utf-8 -*-
|
||||||
|
# Copyright (C) 2015 Ursa Information Systems (http://www.ursainfosystems.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 . import account_move_line, account_banking_reconciliation
|
|
@ -0,0 +1,473 @@
|
||||||
|
# -*- coding: utf-8 -*-
|
||||||
|
##############################################################################
|
||||||
|
#
|
||||||
|
# OpenERP, Open Source Management Solution
|
||||||
|
# Copyright (C) 2014 Ursa Information Systems (<http://www.ursainfosystems.com>)
|
||||||
|
# Copyright (C) 2011 NovaPoint Group LLC (<http://www.novapointgroup.com>)
|
||||||
|
# Copyright (C) 2004-2010 OpenERP SA (<http://www.openerp.com>)
|
||||||
|
#
|
||||||
|
# This program is free software: you can redistribute it and/or modify
|
||||||
|
# it under the terms of the GNU General Public License as published by
|
||||||
|
# the Free Software Foundation, either version 3 of the License, or
|
||||||
|
# (at your option) any later version.
|
||||||
|
#
|
||||||
|
# This program is distributed in the hope that it will be useful,
|
||||||
|
# but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||||
|
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||||
|
# GNU General Public License for more details.
|
||||||
|
#
|
||||||
|
# You should have received a copy of the GNU General Public License
|
||||||
|
# along with this program. If not, see <http://www.gnu.org/licenses/>
|
||||||
|
#
|
||||||
|
##############################################################################
|
||||||
|
import time
|
||||||
|
|
||||||
|
from openerp.osv import fields, osv
|
||||||
|
from openerp.tools.translate import _
|
||||||
|
import openerp.addons.decimal_precision as dp
|
||||||
|
from operator import itemgetter
|
||||||
|
|
||||||
|
class bank_acc_rec_statement(osv.osv):
|
||||||
|
def check_group(self, cr, uid, ids, context=None):
|
||||||
|
"""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.pool.get('ir.model.data')
|
||||||
|
res_groups_obj = self.pool.get('res.groups')
|
||||||
|
group_verifier_id = model_data_obj._get_id(cr, uid, 'ursa_npg_bank_account_reconciliation', 'group_bank_stmt_verifier')
|
||||||
|
for statement in self.browse(cr, uid, ids, context=context):
|
||||||
|
if group_verifier_id:
|
||||||
|
res_id = model_data_obj.read(cr, uid, [group_verifier_id], ['res_id'])[0]['res_id']
|
||||||
|
group_verifier = res_groups_obj.browse(cr, uid, res_id, context=context)
|
||||||
|
group_user_ids = [user.id for user in group_verifier.users]
|
||||||
|
if statement.state!='draft' and uid not in group_user_ids:
|
||||||
|
raise osv.except_osv(_('User Error !'),
|
||||||
|
_("Only a member of '%s' group may delete/edit bank statements when not in draft state!" %(group_verifier.name)))
|
||||||
|
return True
|
||||||
|
|
||||||
|
def copy(self, cr, uid, id, default={}, context=None):
|
||||||
|
default.update({
|
||||||
|
'credit_move_line_ids': [],
|
||||||
|
'debit_move_line_ids': [],
|
||||||
|
'name': '',
|
||||||
|
})
|
||||||
|
return super(bank_acc_rec_statement, self).copy(cr, uid, id, default=default, context=context)
|
||||||
|
|
||||||
|
def write(self, cr, uid, ids, vals, context=None):
|
||||||
|
self.check_group(cr, uid, ids, context) # Check if the user is allowed to perform the action
|
||||||
|
return super(bank_acc_rec_statement, self).write(cr, uid, ids, vals, context=context)
|
||||||
|
|
||||||
|
def unlink(self, cr, uid, ids, context=None):
|
||||||
|
"Reset the related account.move.line to be re-assigned later to statement."
|
||||||
|
statement_line_obj = self.pool.get('bank.acc.rec.statement.line')
|
||||||
|
self.check_group(cr, uid, ids, context) # Check if the user is allowed to perform the action
|
||||||
|
for statement in self.browse(cr, uid, ids, context=context):
|
||||||
|
statement_lines = statement.credit_move_line_ids + statement.debit_move_line_ids
|
||||||
|
statement_line_ids = map(lambda x: x.id, statement_lines)
|
||||||
|
statement_line_obj.unlink(cr, uid, statement_line_ids, context=context) # call unlink method to reset
|
||||||
|
return super(bank_acc_rec_statement, self).unlink(cr, uid, ids, context=context)
|
||||||
|
|
||||||
|
def check_difference_balance(self, cr, uid, ids, context=None):
|
||||||
|
"Check if difference balance is zero or not."
|
||||||
|
for statement in self.browse(cr, uid, ids, context=context):
|
||||||
|
|
||||||
|
if statement.cleared_balance_cur:
|
||||||
|
if statement.difference_cur != 0.0:
|
||||||
|
raise osv.except_osv(_('Warning!'),
|
||||||
|
_("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 osv.except_osv(_('Warning!'),
|
||||||
|
_("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
|
||||||
|
|
||||||
|
def action_cancel(self, cr, uid, ids, context=None):
|
||||||
|
"Cancel the the statement."
|
||||||
|
self.write(cr, uid, ids, {'state': 'cancel'}, context=context)
|
||||||
|
return True
|
||||||
|
|
||||||
|
def action_review(self, cr, uid, ids, context=None):
|
||||||
|
"Change the status of statement from 'draft' to 'to_be_reviewed'."
|
||||||
|
# If difference balance not zero prevent further processing
|
||||||
|
self.check_difference_balance(cr, uid, ids, context=context)
|
||||||
|
self.write(cr, uid, ids, {'state': 'to_be_reviewed'}, context=context)
|
||||||
|
return True
|
||||||
|
|
||||||
|
def action_process(self, cr, uid, ids, context=None):
|
||||||
|
"""Set the account move lines as 'Cleared' and Assign 'Bank Acc Rec Statement ID'
|
||||||
|
for the statement lines which are marked as 'Cleared'."""
|
||||||
|
account_move_line_obj = self.pool.get('account.move.line')
|
||||||
|
statement_line_obj = self.pool.get('bank.acc.rec.statement.line')
|
||||||
|
# If difference balance not zero prevent further processing
|
||||||
|
self.check_difference_balance(cr, uid, ids, context=context)
|
||||||
|
for statement in self.browse(cr, uid, ids, context=context):
|
||||||
|
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'
|
||||||
|
account_move_line_obj.write(cr, uid, [statement_line.move_line_id.id],
|
||||||
|
{'cleared_bank_account': statement_line.cleared_bank_account,
|
||||||
|
'bank_acc_rec_statement_id': statement_line.cleared_bank_account and statement.id or False
|
||||||
|
}, context=context)
|
||||||
|
|
||||||
|
self.write(cr, uid, [statement.id], {'state': 'done',
|
||||||
|
'verified_by_user_id': uid,
|
||||||
|
'verified_date': time.strftime('%Y-%m-%d')
|
||||||
|
}, context=context)
|
||||||
|
return True
|
||||||
|
|
||||||
|
def action_cancel_draft(self, cr, uid, ids, context=None):
|
||||||
|
"""Reset the statement to draft and perform resetting operations."""
|
||||||
|
account_move_line_obj = self.pool.get('account.move.line')
|
||||||
|
statement_line_obj = self.pool.get('bank.acc.rec.statement.line')
|
||||||
|
for statement in self.browse(cr, uid, ids, context=context):
|
||||||
|
statement_lines = statement.credit_move_line_ids + statement.debit_move_line_ids
|
||||||
|
line_ids = []
|
||||||
|
statement_line_ids = []
|
||||||
|
for statement_line in statement_lines:
|
||||||
|
statement_line_ids.append(statement_line.id)
|
||||||
|
|
||||||
|
if statement_line.move_line_id:
|
||||||
|
line_ids.append(statement_line.move_line_id.id) # Find move lines related to statement lines
|
||||||
|
|
||||||
|
# Reset 'Cleared' and 'Bank Acc Rec Statement ID' to False
|
||||||
|
account_move_line_obj.write(cr, uid, line_ids, {'cleared_bank_account': False,
|
||||||
|
'bank_acc_rec_statement_id': False,
|
||||||
|
}, context=context)
|
||||||
|
# Reset 'Cleared' in statement lines
|
||||||
|
statement_line_obj.write(cr, uid, statement_line_ids, {'cleared_bank_account': False,
|
||||||
|
'research_required': False
|
||||||
|
}, context=context)
|
||||||
|
# Reset statement
|
||||||
|
self.write(cr, uid, [statement.id], {'state': 'draft',
|
||||||
|
'verified_by_user_id': False,
|
||||||
|
'verified_date': False
|
||||||
|
}, context=context)
|
||||||
|
|
||||||
|
return True
|
||||||
|
|
||||||
|
def action_select_all(self, cr, uid, ids, context=None):
|
||||||
|
"""Mark all the statement lines as 'Cleared'."""
|
||||||
|
statement_line_obj = self.pool.get('bank.acc.rec.statement.line')
|
||||||
|
for statement in self.browse(cr, uid, ids, context=context):
|
||||||
|
statement_lines = statement.credit_move_line_ids + statement.debit_move_line_ids
|
||||||
|
statement_line_ids = map(lambda x: x.id, statement_lines)
|
||||||
|
statement_line_obj.write(cr, uid, statement_line_ids, {'cleared_bank_account': True}, context=context)
|
||||||
|
return True
|
||||||
|
|
||||||
|
def action_unselect_all(self, cr, uid, ids, context=None):
|
||||||
|
"""Reset 'Cleared' in all the statement lines."""
|
||||||
|
statement_line_obj = self.pool.get('bank.acc.rec.statement.line')
|
||||||
|
for statement in self.browse(cr, uid, ids, context=context):
|
||||||
|
statement_lines = statement.credit_move_line_ids + statement.debit_move_line_ids
|
||||||
|
statement_line_ids = map(lambda x: x.id, statement_lines)
|
||||||
|
statement_line_obj.write(cr, uid, statement_line_ids, {'cleared_bank_account': False}, context=context)
|
||||||
|
return True
|
||||||
|
|
||||||
|
def _get_balance(self, cr, uid, ids, name, args, context=None):
|
||||||
|
"""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.
|
||||||
|
"""
|
||||||
|
res = {}
|
||||||
|
account_precision = self.pool.get('decimal.precision').precision_get(cr, uid, 'Account')
|
||||||
|
for statement in self.browse(cr, uid, ids, context=context):
|
||||||
|
res[statement.id] = {
|
||||||
|
'sum_of_credits': 0.0,
|
||||||
|
'sum_of_debits': 0.0,
|
||||||
|
'sum_of_credits_cur': 0.0,
|
||||||
|
'sum_of_debits_cur': 0.0,
|
||||||
|
'sum_of_ucredits': 0.0,
|
||||||
|
'sum_of_udebits': 0.0,
|
||||||
|
'sum_of_ucredits_cur': 0.0,
|
||||||
|
'sum_of_udebits_cur': 0.0,
|
||||||
|
'cleared_balance': 0.0,
|
||||||
|
'cleared_balance_cur': 0.0,
|
||||||
|
'uncleared_balance': 0.0,
|
||||||
|
'uncleared_balance_cur': 0.0,
|
||||||
|
'difference': 0.0,
|
||||||
|
'difference_cur': 0.0,
|
||||||
|
'sum_of_credits_lines': 0.0,
|
||||||
|
'sum_of_debits_lines': 0.0,
|
||||||
|
'sum_of_ucredits_lines': 0.0,
|
||||||
|
'sum_of_udebits_lines': 0.0
|
||||||
|
}
|
||||||
|
for line in statement.credit_move_line_ids:
|
||||||
|
res[statement.id]['sum_of_credits'] += line.cleared_bank_account and round(line.amount, account_precision) or 0.0
|
||||||
|
res[statement.id]['sum_of_credits_cur'] += line.cleared_bank_account and round(line.amountcur, account_precision) or 0.0
|
||||||
|
res[statement.id]['sum_of_credits_lines'] += line.cleared_bank_account and 1.0 or 0.0
|
||||||
|
res[statement.id]['sum_of_ucredits'] += (not line.cleared_bank_account) and round(line.amount, account_precision) or 0.0
|
||||||
|
res[statement.id]['sum_of_ucredits_cur'] += (not line.cleared_bank_account) and round(line.amountcur, account_precision) or 0.0
|
||||||
|
res[statement.id]['sum_of_ucredits_lines'] += (not line.cleared_bank_account) and 1.0 or 0.0
|
||||||
|
for line in statement.debit_move_line_ids:
|
||||||
|
res[statement.id]['sum_of_debits'] += line.cleared_bank_account and round(line.amount, account_precision) or 0.0
|
||||||
|
res[statement.id]['sum_of_debits_cur'] += line.cleared_bank_account and round(line.amountcur, account_precision) or 0.0
|
||||||
|
res[statement.id]['sum_of_debits_lines'] += line.cleared_bank_account and 1.0 or 0.0
|
||||||
|
res[statement.id]['sum_of_udebits'] += (not line.cleared_bank_account) and round(line.amount, account_precision) or 0.0
|
||||||
|
res[statement.id]['sum_of_udebits_cur'] += (not line.cleared_bank_account) and round(line.amountcur, account_precision) or 0.0
|
||||||
|
res[statement.id]['sum_of_udebits_lines'] += (not line.cleared_bank_account) and 1.0 or 0.0
|
||||||
|
|
||||||
|
res[statement.id]['cleared_balance'] = round(res[statement.id]['sum_of_debits'] - res[statement.id]['sum_of_credits'], account_precision)
|
||||||
|
res[statement.id]['cleared_balance_cur'] = round(res[statement.id]['sum_of_debits_cur'] - res[statement.id]['sum_of_credits_cur'], account_precision)
|
||||||
|
res[statement.id]['difference'] = round((statement.ending_balance - statement.starting_balance) - res[statement.id]['cleared_balance'], account_precision)
|
||||||
|
res[statement.id]['difference_cur'] = round((statement.ending_balance - statement.starting_balance) - res[statement.id]['cleared_balance_cur'], account_precision)
|
||||||
|
res[statement.id]['uncleared_balance'] = round(res[statement.id]['sum_of_udebits'] - res[statement.id]['sum_of_ucredits'], account_precision)
|
||||||
|
res[statement.id]['uncleared_balance_cur'] = round(res[statement.id]['sum_of_udebits_cur'] - res[statement.id]['sum_of_ucredits_cur'], account_precision)
|
||||||
|
return res
|
||||||
|
|
||||||
|
# refresh data
|
||||||
|
def refresh_record(self, cr, uid, ids, context=None):
|
||||||
|
|
||||||
|
retval = True
|
||||||
|
refdict = {}
|
||||||
|
|
||||||
|
# get current state of moves in the statement
|
||||||
|
for statement in self.browse(cr, uid, ids, context=context):
|
||||||
|
|
||||||
|
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.browse(cr, uid, ids, context=context):
|
||||||
|
|
||||||
|
# process only if the statement is in draft state
|
||||||
|
if statement.state == 'draft':
|
||||||
|
account_id = statement.account_id and statement.account_id.id
|
||||||
|
ending_date = statement.ending_date
|
||||||
|
suppress_ending_date_filter = statement.suppress_ending_date_filter
|
||||||
|
vals = self.onchange_account_id(cr, uid, ids, account_id, ending_date, suppress_ending_date_filter, context=context)
|
||||||
|
|
||||||
|
# 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(cr, uid, ids, {'last_ending_date':vals['value']['last_ending_date'],'starting_balance': vals['value']['starting_balance'],
|
||||||
|
'credit_move_line_ids':outlist, 'debit_move_line_ids': inlist}, context=context)
|
||||||
|
|
||||||
|
return retval
|
||||||
|
|
||||||
|
# get starting balance for the account
|
||||||
|
def get_starting_balance(self, cr, uid, account_id, ending_date, context=None):
|
||||||
|
|
||||||
|
result = (False,0.0)
|
||||||
|
reslist=[]
|
||||||
|
statement_obj = self.pool.get('bank.acc.rec.statement')
|
||||||
|
domain = [('account_id', '=', account_id), ('state', '=', 'done')]
|
||||||
|
statement_ids = statement_obj.search(cr, uid, domain, context=context)
|
||||||
|
|
||||||
|
# get all statements for this account in the past
|
||||||
|
for statement in statement_obj.browse(cr, uid, statement_ids, context=context):
|
||||||
|
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
|
||||||
|
|
||||||
|
def onchange_account_id(self, cr, uid, ids, account_id, ending_date, suppress_ending_date_filter, context=None):
|
||||||
|
account_move_line_obj = self.pool.get('account.move.line')
|
||||||
|
statement_line_obj = self.pool.get('bank.acc.rec.statement.line')
|
||||||
|
val = {'value': {'credit_move_line_ids': [], 'debit_move_line_ids': []}}
|
||||||
|
if account_id:
|
||||||
|
for statement in self.browse(cr, uid, ids, context=context):
|
||||||
|
statement_line_ids = statement_line_obj.search(cr, uid, [('statement_id', '=', statement.id)], context=context)
|
||||||
|
# call unlink method to reset and remove existing statement lines and
|
||||||
|
# mark reset field values in related move lines
|
||||||
|
statement_line_obj.unlink(cr, uid, statement_line_ids, context=context)
|
||||||
|
|
||||||
|
# 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', '=', account_id), ('move_id.state', '=', 'posted'), ('cleared_bank_account', '=', False)]
|
||||||
|
if not suppress_ending_date_filter:
|
||||||
|
domain += [('date', '<=', ending_date)]
|
||||||
|
line_ids = account_move_line_obj.search(cr, uid, domain, context=context)
|
||||||
|
for line in account_move_line_obj.browse(cr, uid, line_ids, context=context):
|
||||||
|
|
||||||
|
if not line.journal_id.centralisation:
|
||||||
|
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,
|
||||||
|
'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(cr, uid, account_id, ending_date, context=context)
|
||||||
|
val['value']['last_ending_date'] = prev_stmt[0]
|
||||||
|
val['value']['starting_balance'] = prev_stmt[1]
|
||||||
|
|
||||||
|
return val
|
||||||
|
|
||||||
|
_name = "bank.acc.rec.statement"
|
||||||
|
_columns = {
|
||||||
|
'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), ('type', '!=', 'view')]",
|
||||||
|
help="The Bank/Gl Account that is being reconciled."),
|
||||||
|
'ending_date': fields.date('Ending Date', required=True, states={'done':[('readonly', True)]}, 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_compute=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_compute=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,
|
||||||
|
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)]},
|
||||||
|
help="Date in which Deposit Ticket was verified."),
|
||||||
|
'verified_by_user_id': fields.many2one('res.users', 'Verified By', states={'done':[('readonly', True)]},
|
||||||
|
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',
|
||||||
|
domain=[('type','=','cr')], context={'default_type':'cr'}, states={'done':[('readonly', True)]}),
|
||||||
|
'debit_move_line_ids': fields.one2many('bank.acc.rec.statement.line', 'statement_id', 'Debits',
|
||||||
|
domain=[('type','=','dr')], context={'default_type':'dr'}, states={'done':[('readonly', True)]}),
|
||||||
|
'cleared_balance': fields.function(_get_balance, method=True, string='Cleared Balance', digits_compute=dp.get_precision('Account'),
|
||||||
|
type='float', help="Total Sum of the Deposit Amount Cleared – Total Sum of Checks, Withdrawals, Debits, and Service Charges Amount Cleared",
|
||||||
|
multi="balance"),
|
||||||
|
'difference': fields.function(_get_balance, method=True, type='float', string='Difference', digits_compute=dp.get_precision('Account'),
|
||||||
|
help="(Ending Balance – Beginning Balance) - Cleared Balance.", multi="balance"),
|
||||||
|
'cleared_balance_cur': fields.function(_get_balance, method=True, string='Cleared Balance (Cur)', digits_compute=dp.get_precision('Account'),
|
||||||
|
type='float', help="Total Sum of the Deposit Amount Cleared – Total Sum of Checks, Withdrawals, Debits, and Service Charges Amount Cleared",
|
||||||
|
multi="balance"),
|
||||||
|
'difference_cur': fields.function(_get_balance, method=True, type='float', string='Difference (Cur)', digits_compute=dp.get_precision('Account'),
|
||||||
|
help="(Ending Balance – Beginning Balance) - Cleared Balance.", multi="balance"),
|
||||||
|
'uncleared_balance': fields.function(_get_balance, method=True, string='Uncleared Balance', digits_compute=dp.get_precision('Account'),
|
||||||
|
type='float', help="Total Sum of the Deposit Amount Uncleared – Total Sum of Checks, Withdrawals, Debits, and Service Charges Amount Uncleared",
|
||||||
|
multi="balance"),
|
||||||
|
'uncleared_balance_cur': fields.function(_get_balance, method=True, string='Unleared Balance (Cur)', digits_compute=dp.get_precision('Account'),
|
||||||
|
type='float', help="Total Sum of the Deposit Amount Uncleared – Total Sum of Checks, Withdrawals, Debits, and Service Charges Amount Uncleared",
|
||||||
|
multi="balance"),
|
||||||
|
'sum_of_credits': fields.function(_get_balance, method=True, string='Checks, Withdrawals, Debits, and Service Charges Amount', digits_compute=dp.get_precision('Account'),
|
||||||
|
type='float', help="Total SUM of Amts of lines with Cleared = True",
|
||||||
|
multi="balance"),
|
||||||
|
'sum_of_debits': fields.function(_get_balance, method=True, type='float', string='Deposits, Credits, and Interest Amount', digits_compute=dp.get_precision('Account'),
|
||||||
|
help="Total SUM of Amts of lines with Cleared = True", multi="balance"),
|
||||||
|
'sum_of_credits_cur': fields.function(_get_balance, method=True, string='Checks, Withdrawals, Debits, and Service Charges Amount (Cur)', digits_compute=dp.get_precision('Account'),
|
||||||
|
type='float', help="Total SUM of Amts of lines with Cleared = True",
|
||||||
|
multi="balance"),
|
||||||
|
'sum_of_debits_cur': fields.function(_get_balance, method=True, type='float', string='Deposits, Credits, and Interest Amount (Cur)', digits_compute=dp.get_precision('Account'),
|
||||||
|
help="Total SUM of Amts of lines with Cleared = True", multi="balance"),
|
||||||
|
'sum_of_credits_lines': fields.function(_get_balance, method=True, string='Checks, Withdrawals, Debits, and Service Charges # of Items',
|
||||||
|
type='float', help="Total of number of lines with Cleared = True",
|
||||||
|
multi="balance"),
|
||||||
|
'sum_of_debits_lines': fields.function(_get_balance, method=True, type='float', string='Deposits, Credits, and Interest # of Items',
|
||||||
|
help="Total of number of lines with Cleared = True", multi="balance"),
|
||||||
|
'sum_of_ucredits': fields.function(_get_balance, method=True, string='Uncleared - Checks, Withdrawals, Debits, and Service Charges Amount', digits_compute=dp.get_precision('Account'),
|
||||||
|
type='float', help="Total SUM of Amts of lines with Cleared = False",
|
||||||
|
multi="balance"),
|
||||||
|
'sum_of_udebits': fields.function(_get_balance, method=True, type='float', string='Uncleared - Deposits, Credits, and Interest Amount', digits_compute=dp.get_precision('Account'),
|
||||||
|
help="Total SUM of Amts of lines with Cleared = False", multi="balance"),
|
||||||
|
'sum_of_ucredits_cur': fields.function(_get_balance, method=True, string='Uncleared - Checks, Withdrawals, Debits, and Service Charges Amount (Cur)', digits_compute=dp.get_precision('Account'),
|
||||||
|
type='float', help="Total SUM of Amts of lines with Cleared = False",
|
||||||
|
multi="balance"),
|
||||||
|
'sum_of_udebits_cur': fields.function(_get_balance, method=True, type='float', string='Uncleared - Deposits, Credits, and Interest Amount (Cur)', digits_compute=dp.get_precision('Account'),
|
||||||
|
help="Total SUM of Amts of lines with Cleared = False", multi="balance"),
|
||||||
|
'sum_of_ucredits_lines': fields.function(_get_balance, method=True, string='Uncleared - Checks, Withdrawals, Debits, and Service Charges # of Items',
|
||||||
|
type='float', help="Total of number of lines with Cleared = False",
|
||||||
|
multi="balance"),
|
||||||
|
'sum_of_udebits_lines': fields.function(_get_balance, method=True, type='float', string='Uncleared - Deposits, Credits, and Interest # of Items',
|
||||||
|
help="Total of number of lines with Cleared = False", multi="balance"),
|
||||||
|
'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', 'Cancel')
|
||||||
|
],'State', select=True, readonly=True),
|
||||||
|
}
|
||||||
|
_defaults = {
|
||||||
|
'state': 'draft',
|
||||||
|
'company_id': lambda self, cr, uid, c: self.pool.get('res.users').browse(cr, uid, uid, c).company_id.id,
|
||||||
|
'ending_date': time.strftime('%Y-%m-%d'),
|
||||||
|
}
|
||||||
|
_order = "ending_date desc"
|
||||||
|
_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!')
|
||||||
|
]
|
||||||
|
bank_acc_rec_statement()
|
||||||
|
|
||||||
|
class bank_acc_rec_statement_line(osv.osv):
|
||||||
|
_name = "bank.acc.rec.statement.line"
|
||||||
|
_description = "Statement Line"
|
||||||
|
_columns = {
|
||||||
|
'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_compute=dp.get_precision('Account'),
|
||||||
|
help="Derived from the 'debit' amount from related Journal Item."),
|
||||||
|
'amountcur': fields.float('Amount in Currency', digits_compute=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'),
|
||||||
|
}
|
||||||
|
|
||||||
|
def create(self, cr, uid, vals, context=None):
|
||||||
|
account_move_line_obj = self.pool.get('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 osv.except_osv(_('Processing Error'),_('You cannot add any new bank statement line manually as of this revision!'))
|
||||||
|
account_move_line_obj.write(cr, uid, [vals['move_line_id']], {'draft_assigned_to_statement': True}, context=context)
|
||||||
|
return super(bank_acc_rec_statement_line, self).create(cr, uid, vals, context=context)
|
||||||
|
|
||||||
|
def unlink(self, cr, uid, ids, context=None):
|
||||||
|
account_move_line_obj = self.pool.get('account.move.line')
|
||||||
|
move_line_ids = [x.move_line_id.id for x in self.browse(cr, uid, ids, context=context) 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.write(cr, uid, move_line_ids, {'draft_assigned_to_statement': False,
|
||||||
|
'cleared_bank_account': False,
|
||||||
|
'bank_acc_rec_statement_id': False,
|
||||||
|
}, context=context)
|
||||||
|
return super(bank_acc_rec_statement_line, self).unlink(cr, uid, ids, context=context)
|
||||||
|
|
||||||
|
bank_acc_rec_statement_line()
|
||||||
|
|
||||||
|
# vim:expandtab:smartindent:tabstop=4:softtabstop=4:shiftwidth=4:
|
|
@ -0,0 +1,37 @@
|
||||||
|
# -*- coding: utf-8 -*-
|
||||||
|
##############################################################################
|
||||||
|
#
|
||||||
|
# OpenERP, Open Source Management Solution
|
||||||
|
# Copyright (C) 2011 NovaPoint Group LLC (<http://www.novapointgroup.com>)
|
||||||
|
# Copyright (C) 2004-2010 OpenERP SA (<http://www.openerp.com>)
|
||||||
|
#
|
||||||
|
# This program is free software: you can redistribute it and/or modify
|
||||||
|
# it under the terms of the GNU Affero General Public License as
|
||||||
|
# published by the Free Software Foundation, either version 3 of the
|
||||||
|
# License, or (at your option) any later version.
|
||||||
|
#
|
||||||
|
# This program is distributed in the hope that it will be useful,
|
||||||
|
# but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||||
|
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||||
|
# GNU Affero General Public License for more details.
|
||||||
|
#
|
||||||
|
# You should have received a copy of the GNU Affero General Public License
|
||||||
|
# along with this program. If not, see <http://www.gnu.org/licenses/>.
|
||||||
|
#
|
||||||
|
##############################################################################
|
||||||
|
|
||||||
|
from openerp.osv import fields,osv
|
||||||
|
|
||||||
|
class account_move_line(osv.osv):
|
||||||
|
_inherit='account.move.line'
|
||||||
|
|
||||||
|
_columns = {
|
||||||
|
'cleared_bank_account': fields.boolean('Cleared? ', help='Check if the transaction has cleared from the bank'),
|
||||||
|
'bank_acc_rec_statement_id': fields.many2one('bank.acc.rec.statement', 'Bank Acc Rec Statement', help="The Bank Acc Rec Statement linked with the journal item"),
|
||||||
|
'draft_assigned_to_statement': fields.boolean('Assigned to Statement? ', help='Check if the move line is assigned to statement lines')
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
account_move_line()
|
||||||
|
|
||||||
|
# vim:expandtab:smartindent:tabstop=4:softtabstop=4:shiftwidth=4:
|
|
@ -0,0 +1,750 @@
|
||||||
|
<?xml version="1.0"?>
|
||||||
|
<document filename="bankstatement.pdf">
|
||||||
|
<template title="Bank Statement-Detail" author="Ursa Information Systems(support@ursainfosystems.com)" allowSplitting="20">
|
||||||
|
<pageTemplate id="first">
|
||||||
|
<frame id="first" x1="34.0" y1="28.0" width="530" height="786"/>
|
||||||
|
</pageTemplate>
|
||||||
|
</template>
|
||||||
|
<stylesheet>
|
||||||
|
<blockTableStyle id="Standard_Outline">
|
||||||
|
<blockAlignment value="LEFT"/>
|
||||||
|
<blockValign value="TOP"/>
|
||||||
|
</blockTableStyle>
|
||||||
|
<blockTableStyle id="Table1">
|
||||||
|
<blockAlignment value="LEFT"/>
|
||||||
|
<blockValign value="TOP"/>
|
||||||
|
<lineStyle kind="LINEBEFORE" colorName="#e6e6e6" start="0,0" stop="0,-1"/>
|
||||||
|
<lineStyle kind="LINEABOVE" colorName="#e6e6e6" start="0,0" stop="0,0"/>
|
||||||
|
<lineStyle kind="LINEBELOW" colorName="#e6e6e6" start="0,-1" stop="0,-1"/>
|
||||||
|
<lineStyle kind="LINEBEFORE" colorName="#e6e6e6" start="1,0" stop="1,-1"/>
|
||||||
|
<lineStyle kind="LINEABOVE" colorName="#e6e6e6" start="1,0" stop="1,0"/>
|
||||||
|
<lineStyle kind="LINEBELOW" colorName="#e6e6e6" start="1,-1" stop="1,-1"/>
|
||||||
|
<lineStyle kind="LINEBEFORE" colorName="#e6e6e6" start="2,0" stop="2,-1"/>
|
||||||
|
<lineStyle kind="LINEABOVE" colorName="#e6e6e6" start="2,0" stop="2,0"/>
|
||||||
|
<lineStyle kind="LINEBELOW" colorName="#e6e6e6" start="2,-1" stop="2,-1"/>
|
||||||
|
<lineStyle kind="LINEBEFORE" colorName="#e6e6e6" start="3,0" stop="3,-1"/>
|
||||||
|
<lineStyle kind="LINEABOVE" colorName="#e6e6e6" start="3,0" stop="3,0"/>
|
||||||
|
<lineStyle kind="LINEBELOW" colorName="#e6e6e6" start="3,-1" stop="3,-1"/>
|
||||||
|
<lineStyle kind="LINEBEFORE" colorName="#e6e6e6" start="4,0" stop="4,-1"/>
|
||||||
|
<lineStyle kind="LINEABOVE" colorName="#e6e6e6" start="4,0" stop="4,0"/>
|
||||||
|
<lineStyle kind="LINEBELOW" colorName="#e6e6e6" start="4,-1" stop="4,-1"/>
|
||||||
|
<lineStyle kind="LINEBEFORE" colorName="#e6e6e6" start="5,0" stop="5,-1"/>
|
||||||
|
<lineStyle kind="LINEAFTER" colorName="#e6e6e6" start="5,0" stop="5,-1"/>
|
||||||
|
<lineStyle kind="LINEABOVE" colorName="#e6e6e6" start="5,0" stop="5,0"/>
|
||||||
|
<lineStyle kind="LINEBELOW" colorName="#e6e6e6" start="5,-1" stop="5,-1"/>
|
||||||
|
<lineStyle kind="LINEBEFORE" colorName="#e6e6e6" start="6,0" stop="6,-1"/>
|
||||||
|
<lineStyle kind="LINEAFTER" colorName="#e6e6e6" start="6,0" stop="6,-1"/>
|
||||||
|
<lineStyle kind="LINEABOVE" colorName="#e6e6e6" start="6,0" stop="6,0"/>
|
||||||
|
<lineStyle kind="LINEBELOW" colorName="#e6e6e6" start="6,-1" stop="6,-1"/>
|
||||||
|
</blockTableStyle>
|
||||||
|
<blockTableStyle id="Table4">
|
||||||
|
<blockAlignment value="LEFT"/>
|
||||||
|
<blockValign value="TOP"/>
|
||||||
|
<lineStyle kind="LINEBEFORE" colorName="#e6e6e6" start="0,0" stop="0,-1"/>
|
||||||
|
<lineStyle kind="LINEABOVE" colorName="#e6e6e6" start="0,0" stop="0,0"/>
|
||||||
|
<lineStyle kind="LINEBELOW" colorName="#e6e6e6" start="0,-1" stop="0,-1"/>
|
||||||
|
<lineStyle kind="LINEBEFORE" colorName="#e6e6e6" start="1,0" stop="1,-1"/>
|
||||||
|
<lineStyle kind="LINEABOVE" colorName="#e6e6e6" start="1,0" stop="1,0"/>
|
||||||
|
<lineStyle kind="LINEBELOW" colorName="#e6e6e6" start="1,-1" stop="1,-1"/>
|
||||||
|
<lineStyle kind="LINEBEFORE" colorName="#e6e6e6" start="2,0" stop="2,-1"/>
|
||||||
|
<lineStyle kind="LINEABOVE" colorName="#e6e6e6" start="2,0" stop="2,0"/>
|
||||||
|
<lineStyle kind="LINEBELOW" colorName="#e6e6e6" start="2,-1" stop="2,-1"/>
|
||||||
|
<lineStyle kind="LINEBEFORE" colorName="#e6e6e6" start="3,0" stop="3,-1"/>
|
||||||
|
<lineStyle kind="LINEABOVE" colorName="#e6e6e6" start="3,0" stop="3,0"/>
|
||||||
|
<lineStyle kind="LINEBELOW" colorName="#e6e6e6" start="3,-1" stop="3,-1"/>
|
||||||
|
<lineStyle kind="LINEBEFORE" colorName="#e6e6e6" start="4,0" stop="4,-1"/>
|
||||||
|
<lineStyle kind="LINEABOVE" colorName="#e6e6e6" start="4,0" stop="4,0"/>
|
||||||
|
<lineStyle kind="LINEBELOW" colorName="#e6e6e6" start="4,-1" stop="4,-1"/>
|
||||||
|
<lineStyle kind="LINEBEFORE" colorName="#e6e6e6" start="5,0" stop="5,-1"/>
|
||||||
|
<lineStyle kind="LINEAFTER" colorName="#e6e6e6" start="5,0" stop="5,-1"/>
|
||||||
|
<lineStyle kind="LINEABOVE" colorName="#e6e6e6" start="5,0" stop="5,0"/>
|
||||||
|
<lineStyle kind="LINEBELOW" colorName="#e6e6e6" start="5,-1" stop="5,-1"/>
|
||||||
|
<lineStyle kind="LINEBEFORE" colorName="#e6e6e6" start="6,0" stop="6,-1"/>
|
||||||
|
<lineStyle kind="LINEABOVE" colorName="#e6e6e6" start="6,0" stop="6,0"/>
|
||||||
|
<lineStyle kind="LINEBELOW" colorName="#e6e6e6" start="6,-1" stop="6,-1"/>
|
||||||
|
<lineStyle kind="LINEBEFORE" colorName="#e6e6e6" start="7,0" stop="7,-1"/>
|
||||||
|
<lineStyle kind="LINEAFTER" colorName="#e6e6e6" start="7,0" stop="7,-1"/>
|
||||||
|
<lineStyle kind="LINEABOVE" colorName="#e6e6e6" start="7,0" stop="7,0"/>
|
||||||
|
<lineStyle kind="LINEBELOW" colorName="#e6e6e6" start="7,-1" stop="7,-1"/>
|
||||||
|
<lineStyle kind="LINEBEFORE" colorName="#e6e6e6" start="8,0" stop="8,-1"/>
|
||||||
|
<lineStyle kind="LINEABOVE" colorName="#e6e6e6" start="8,0" stop="8,0"/>
|
||||||
|
<lineStyle kind="LINEBELOW" colorName="#e6e6e6" start="8,-1" stop="8,-1"/>
|
||||||
|
<lineStyle kind="LINEBEFORE" colorName="#e6e6e6" start="9,0" stop="9,-1"/>
|
||||||
|
<lineStyle kind="LINEAFTER" colorName="#e6e6e6" start="9,0" stop="9,-1"/>
|
||||||
|
<lineStyle kind="LINEABOVE" colorName="#e6e6e6" start="9,0" stop="9,0"/>
|
||||||
|
<lineStyle kind="LINEBELOW" colorName="#e6e6e6" start="9,-1" stop="9,-1"/>
|
||||||
|
<lineStyle kind="LINEBEFORE" colorName="#e6e6e6" start="10,0" stop="10,-1"/>
|
||||||
|
<lineStyle kind="LINEABOVE" colorName="#e6e6e6" start="10,0" stop="10,0"/>
|
||||||
|
<lineStyle kind="LINEBELOW" colorName="#e6e6e6" start="10,-1" stop="10,-1"/>
|
||||||
|
<lineStyle kind="LINEBEFORE" colorName="#e6e6e6" start="11,0" stop="11,-1"/>
|
||||||
|
<lineStyle kind="LINEAFTER" colorName="#e6e6e6" start="11,0" stop="11,-1"/>
|
||||||
|
<lineStyle kind="LINEABOVE" colorName="#e6e6e6" start="11,0" stop="11,0"/>
|
||||||
|
<lineStyle kind="LINEBELOW" colorName="#e6e6e6" start="11,-1" stop="11,-1"/>
|
||||||
|
<lineStyle kind="LINEBEFORE" colorName="#e6e6e6" start="12,0" stop="12,-1"/>
|
||||||
|
<lineStyle kind="LINEABOVE" colorName="#e6e6e6" start="12,0" stop="12,0"/>
|
||||||
|
<lineStyle kind="LINEBELOW" colorName="#e6e6e6" start="12,-1" stop="12,-1"/>
|
||||||
|
<lineStyle kind="LINEBEFORE" colorName="#e6e6e6" start="13,0" stop="13,-1"/>
|
||||||
|
<lineStyle kind="LINEAFTER" colorName="#e6e6e6" start="13,0" stop="13,-1"/>
|
||||||
|
<lineStyle kind="LINEABOVE" colorName="#e6e6e6" start="13,0" stop="13,0"/>
|
||||||
|
<lineStyle kind="LINEBELOW" colorName="#e6e6e6" start="13,-1" stop="13,-1"/>
|
||||||
|
<lineStyle kind="LINEBEFORE" colorName="#e6e6e6" start="0,1" stop="0,-1"/>
|
||||||
|
<lineStyle kind="LINEABOVE" colorName="#e6e6e6" start="0,1" stop="0,1"/>
|
||||||
|
<lineStyle kind="LINEBELOW" colorName="#e6e6e6" start="0,-1" stop="0,-1"/>
|
||||||
|
<lineStyle kind="LINEBEFORE" colorName="#e6e6e6" start="1,1" stop="1,-1"/>
|
||||||
|
<lineStyle kind="LINEAFTER" colorName="#e6e6e6" start="1,1" stop="1,-1"/>
|
||||||
|
<lineStyle kind="LINEABOVE" colorName="#e6e6e6" start="1,1" stop="1,1"/>
|
||||||
|
<lineStyle kind="LINEBELOW" colorName="#e6e6e6" start="1,-1" stop="1,-1"/>
|
||||||
|
<lineStyle kind="LINEBEFORE" colorName="#e6e6e6" start="0,2" stop="0,-1"/>
|
||||||
|
<lineStyle kind="LINEABOVE" colorName="#e6e6e6" start="0,2" stop="0,2"/>
|
||||||
|
<lineStyle kind="LINEBELOW" colorName="#e6e6e6" start="0,-1" stop="0,-1"/>
|
||||||
|
<lineStyle kind="LINEBEFORE" colorName="#e6e6e6" start="1,2" stop="1,-1"/>
|
||||||
|
<lineStyle kind="LINEAFTER" colorName="#e6e6e6" start="1,2" stop="1,-1"/>
|
||||||
|
<lineStyle kind="LINEABOVE" colorName="#e6e6e6" start="1,2" stop="1,2"/>
|
||||||
|
<lineStyle kind="LINEBELOW" colorName="#e6e6e6" start="1,-1" stop="1,-1"/>
|
||||||
|
<lineStyle kind="LINEBEFORE" colorName="#e6e6e6" start="0,3" stop="0,-1"/>
|
||||||
|
<lineStyle kind="LINEABOVE" colorName="#e6e6e6" start="0,3" stop="0,3"/>
|
||||||
|
<lineStyle kind="LINEBELOW" colorName="#e6e6e6" start="0,-1" stop="0,-1"/>
|
||||||
|
<lineStyle kind="LINEBEFORE" colorName="#e6e6e6" start="1,3" stop="1,-1"/>
|
||||||
|
<lineStyle kind="LINEAFTER" colorName="#e6e6e6" start="1,3" stop="1,-1"/>
|
||||||
|
<lineStyle kind="LINEABOVE" colorName="#e6e6e6" start="1,3" stop="1,3"/>
|
||||||
|
<lineStyle kind="LINEBELOW" colorName="#e6e6e6" start="1,-1" stop="1,-1"/>
|
||||||
|
<lineStyle kind="LINEBEFORE" colorName="#e6e6e6" start="0,4" stop="0,-1"/>
|
||||||
|
<lineStyle kind="LINEABOVE" colorName="#e6e6e6" start="0,4" stop="0,4"/>
|
||||||
|
<lineStyle kind="LINEBELOW" colorName="#e6e6e6" start="0,-1" stop="0,-1"/>
|
||||||
|
<lineStyle kind="LINEBEFORE" colorName="#e6e6e6" start="1,4" stop="1,-1"/>
|
||||||
|
<lineStyle kind="LINEAFTER" colorName="#e6e6e6" start="1,4" stop="1,-1"/>
|
||||||
|
<lineStyle kind="LINEABOVE" colorName="#e6e6e6" start="1,4" stop="1,4"/>
|
||||||
|
<lineStyle kind="LINEBELOW" colorName="#e6e6e6" start="1,-1" stop="1,-1"/>
|
||||||
|
</blockTableStyle>
|
||||||
|
<blockTableStyle id="Table7">
|
||||||
|
<blockAlignment value="LEFT"/>
|
||||||
|
<blockValign value="TOP"/>
|
||||||
|
<lineStyle kind="LINEBEFORE" colorName="#e6e6e6" start="0,0" stop="0,-1"/>
|
||||||
|
<lineStyle kind="LINEABOVE" colorName="#e6e6e6" start="0,0" stop="0,0"/>
|
||||||
|
<lineStyle kind="LINEBELOW" colorName="#e6e6e6" start="0,-1" stop="0,-1"/>
|
||||||
|
<lineStyle kind="LINEBEFORE" colorName="#e6e6e6" start="1,0" stop="1,-1"/>
|
||||||
|
<lineStyle kind="LINEAFTER" colorName="#e6e6e6" start="1,0" stop="1,-1"/>
|
||||||
|
<lineStyle kind="LINEABOVE" colorName="#e6e6e6" start="1,0" stop="1,0"/>
|
||||||
|
<lineStyle kind="LINEBELOW" colorName="#e6e6e6" start="1,-1" stop="1,-1"/>
|
||||||
|
</blockTableStyle>
|
||||||
|
<blockTableStyle id="Table9">
|
||||||
|
<blockAlignment value="LEFT"/>
|
||||||
|
<blockValign value="TOP"/>
|
||||||
|
<lineStyle kind="LINEBEFORE" colorName="#e6e6e6" start="0,0" stop="0,-1"/>
|
||||||
|
<lineStyle kind="LINEABOVE" colorName="#e6e6e6" start="0,0" stop="0,0"/>
|
||||||
|
<lineStyle kind="LINEBELOW" colorName="#e6e6e6" start="0,-1" stop="0,-1"/>
|
||||||
|
<lineStyle kind="LINEBEFORE" colorName="#e6e6e6" start="1,0" stop="1,-1"/>
|
||||||
|
<lineStyle kind="LINEAFTER" colorName="#e6e6e6" start="1,0" stop="1,-1"/>
|
||||||
|
<lineStyle kind="LINEABOVE" colorName="#e6e6e6" start="1,0" stop="1,0"/>
|
||||||
|
<lineStyle kind="LINEBELOW" colorName="#e6e6e6" start="1,-1" stop="1,-1"/>
|
||||||
|
</blockTableStyle>
|
||||||
|
<blockTableStyle id="Table10">
|
||||||
|
<blockAlignment value="LEFT"/>
|
||||||
|
<blockValign value="TOP"/>
|
||||||
|
<lineStyle kind="LINEBEFORE" colorName="#e6e6e6" start="0,0" stop="0,-1"/>
|
||||||
|
<lineStyle kind="LINEABOVE" colorName="#e6e6e6" start="0,0" stop="0,0"/>
|
||||||
|
<lineStyle kind="LINEBELOW" colorName="#e6e6e6" start="0,-1" stop="0,-1"/>
|
||||||
|
<lineStyle kind="LINEBEFORE" colorName="#e6e6e6" start="1,0" stop="1,-1"/>
|
||||||
|
<lineStyle kind="LINEAFTER" colorName="#e6e6e6" start="1,0" stop="1,-1"/>
|
||||||
|
<lineStyle kind="LINEABOVE" colorName="#e6e6e6" start="1,0" stop="1,0"/>
|
||||||
|
<lineStyle kind="LINEBELOW" colorName="#e6e6e6" start="1,-1" stop="1,-1"/>
|
||||||
|
</blockTableStyle>
|
||||||
|
<blockTableStyle id="Table11">
|
||||||
|
<blockAlignment value="LEFT"/>
|
||||||
|
<blockValign value="TOP"/>
|
||||||
|
<lineStyle kind="LINEBEFORE" colorName="#e6e6e6" start="0,0" stop="0,-1"/>
|
||||||
|
<lineStyle kind="LINEABOVE" colorName="#e6e6e6" start="0,0" stop="0,0"/>
|
||||||
|
<lineStyle kind="LINEBELOW" colorName="#e6e6e6" start="0,-1" stop="0,-1"/>
|
||||||
|
<lineStyle kind="LINEBEFORE" colorName="#e6e6e6" start="1,0" stop="1,-1"/>
|
||||||
|
<lineStyle kind="LINEAFTER" colorName="#e6e6e6" start="1,0" stop="1,-1"/>
|
||||||
|
<lineStyle kind="LINEABOVE" colorName="#e6e6e6" start="1,0" stop="1,0"/>
|
||||||
|
<lineStyle kind="LINEBELOW" colorName="#e6e6e6" start="1,-1" stop="1,-1"/>
|
||||||
|
</blockTableStyle>
|
||||||
|
<blockTableStyle id="Table2">
|
||||||
|
<blockAlignment value="LEFT"/>
|
||||||
|
<blockValign value="TOP"/>
|
||||||
|
<lineStyle kind="LINEBELOW" colorName="#000000" start="0,-1" stop="0,-1"/>
|
||||||
|
<lineStyle kind="LINEBELOW" colorName="#000000" start="1,-1" stop="1,-1"/>
|
||||||
|
<lineStyle kind="LINEBELOW" colorName="#000000" start="2,-1" stop="2,-1"/>
|
||||||
|
<lineStyle kind="LINEBELOW" colorName="#000000" start="3,-1" stop="3,-1"/>
|
||||||
|
<lineStyle kind="LINEBELOW" colorName="#000000" start="4,-1" stop="4,-1"/>
|
||||||
|
<lineStyle kind="LINEBELOW" colorName="#000000" start="5,-1" stop="5,-1"/>
|
||||||
|
<lineStyle kind="LINEBELOW" colorName="#000000" start="6,-1" stop="6,-1"/>
|
||||||
|
<lineStyle kind="LINEBELOW" colorName="#000000" start="7,-1" stop="7,-1"/>
|
||||||
|
</blockTableStyle>
|
||||||
|
<blockTableStyle id="Table3">
|
||||||
|
<blockAlignment value="LEFT"/>
|
||||||
|
<blockValign value="TOP"/>
|
||||||
|
<lineStyle kind="LINEBELOW" colorName="#999999" start="0,-1" stop="0,-1"/>
|
||||||
|
</blockTableStyle>
|
||||||
|
<blockTableStyle id="Table5">
|
||||||
|
<blockAlignment value="LEFT"/>
|
||||||
|
<blockValign value="TOP"/>
|
||||||
|
<lineStyle kind="LINEBELOW" colorName="#e6e6e6" start="0,-1" stop="0,-1"/>
|
||||||
|
<lineStyle kind="LINEBELOW" colorName="#e6e6e6" start="1,-1" stop="1,-1"/>
|
||||||
|
<lineStyle kind="LINEBELOW" colorName="#e6e6e6" start="2,-1" stop="2,-1"/>
|
||||||
|
<lineStyle kind="LINEBELOW" colorName="#e6e6e6" start="3,-1" stop="3,-1"/>
|
||||||
|
</blockTableStyle>
|
||||||
|
<blockTableStyle id="Table6">
|
||||||
|
<blockAlignment value="LEFT"/>
|
||||||
|
<blockValign value="TOP"/>
|
||||||
|
<lineStyle kind="LINEBELOW" colorName="#e6e6e6" start="0,-1" stop="0,-1"/>
|
||||||
|
<lineStyle kind="LINEBELOW" colorName="#e6e6e6" start="1,-1" stop="1,-1"/>
|
||||||
|
<lineStyle kind="LINEBELOW" colorName="#e6e6e6" start="2,-1" stop="2,-1"/>
|
||||||
|
<lineStyle kind="LINEBELOW" colorName="#e6e6e6" start="3,-1" stop="3,-1"/>
|
||||||
|
<lineStyle kind="LINEBELOW" colorName="#e6e6e6" start="4,-1" stop="4,-1"/>
|
||||||
|
<lineStyle kind="LINEBELOW" colorName="#e6e6e6" start="5,-1" stop="5,-1"/>
|
||||||
|
<lineStyle kind="LINEBELOW" colorName="#e6e6e6" start="6,-1" stop="6,-1"/>
|
||||||
|
<lineStyle kind="LINEBELOW" colorName="#e6e6e6" start="7,-1" stop="7,-1"/>
|
||||||
|
</blockTableStyle>
|
||||||
|
<blockTableStyle id="Table8-L">
|
||||||
|
<blockAlignment value="LEFT"/>
|
||||||
|
<blockValign value="TOP"/>
|
||||||
|
<lineStyle kind="LINEBELOW" colorName="#000000" start="0,-1" stop="0,-1"/>
|
||||||
|
<lineStyle kind="LINEBELOW" colorName="#000000" start="1,-1" stop="1,-1"/>
|
||||||
|
<lineStyle kind="LINEBELOW" colorName="#000000" start="2,-1" stop="2,-1"/>
|
||||||
|
<lineStyle kind="LINEBELOW" colorName="#000000" start="3,-1" stop="3,-1"/>
|
||||||
|
<lineStyle kind="LINEBELOW" colorName="#000000" start="4,-1" stop="4,-1"/>
|
||||||
|
<lineStyle kind="LINEBELOW" colorName="#000000" start="5,-1" stop="5,-1"/>
|
||||||
|
<lineStyle kind="LINEBELOW" colorName="#000000" start="6,-1" stop="6,-1"/>
|
||||||
|
<lineStyle kind="LINEBELOW" colorName="#000000" start="7,-1" stop="7,-1"/>
|
||||||
|
<lineStyle kind="LINEBELOW" colorName="#000000" start="8,-1" stop="8,-1"/>
|
||||||
|
</blockTableStyle>
|
||||||
|
<blockTableStyle id="Table8">
|
||||||
|
<blockAlignment value="LEFT"/>
|
||||||
|
<blockValign value="TOP"/>
|
||||||
|
<lineStyle kind="LINEBELOW" colorName="#000000" start="0,-1" stop="0,-1"/>
|
||||||
|
<lineStyle kind="LINEBELOW" colorName="#000000" start="1,-1" stop="1,-1"/>
|
||||||
|
<lineStyle kind="LINEBELOW" colorName="#000000" start="2,-1" stop="2,-1"/>
|
||||||
|
<lineStyle kind="LINEBELOW" colorName="#000000" start="3,-1" stop="3,-1"/>
|
||||||
|
<lineStyle kind="LINEBELOW" colorName="#000000" start="4,-1" stop="4,-1"/>
|
||||||
|
<lineStyle kind="LINEBELOW" colorName="#000000" start="5,-1" stop="5,-1"/>
|
||||||
|
<lineStyle kind="LINEBELOW" colorName="#000000" start="6,-1" stop="6,-1"/>
|
||||||
|
<lineStyle kind="LINEBELOW" colorName="#000000" start="7,-1" stop="7,-1"/>
|
||||||
|
<lineStyle kind="LINEBELOW" colorName="#000000" start="8,-1" stop="8,-1"/>
|
||||||
|
</blockTableStyle>
|
||||||
|
<blockTableStyle id="Table12">
|
||||||
|
<blockAlignment value="LEFT"/>
|
||||||
|
<blockValign value="TOP"/>
|
||||||
|
<lineStyle kind="LINEBELOW" colorName="#999999" start="0,-1" stop="0,-1"/>
|
||||||
|
</blockTableStyle>
|
||||||
|
<blockTableStyle id="Table13">
|
||||||
|
<blockAlignment value="LEFT"/>
|
||||||
|
<blockValign value="TOP"/>
|
||||||
|
<lineStyle kind="LINEBELOW" colorName="#e6e6e6" start="0,-1" stop="0,-1"/>
|
||||||
|
<lineStyle kind="LINEBELOW" colorName="#e6e6e6" start="1,-1" stop="1,-1"/>
|
||||||
|
<lineStyle kind="LINEBELOW" colorName="#e6e6e6" start="2,-1" stop="2,-1"/>
|
||||||
|
<lineStyle kind="LINEBELOW" colorName="#e6e6e6" start="3,-1" stop="3,-1"/>
|
||||||
|
<lineStyle kind="LINEBELOW" colorName="#e6e6e6" start="4,-1" stop="4,-1"/>
|
||||||
|
</blockTableStyle>
|
||||||
|
<blockTableStyle id="Table14">
|
||||||
|
<blockAlignment value="LEFT"/>
|
||||||
|
<blockValign value="TOP"/>
|
||||||
|
<lineStyle kind="LINEBELOW" colorName="#e6e6e6" start="0,-1" stop="0,-1"/>
|
||||||
|
<lineStyle kind="LINEBELOW" colorName="#e6e6e6" start="1,-1" stop="1,-1"/>
|
||||||
|
<lineStyle kind="LINEBELOW" colorName="#e6e6e6" start="2,-1" stop="2,-1"/>
|
||||||
|
<lineStyle kind="LINEBELOW" colorName="#e6e6e6" start="3,-1" stop="3,-1"/>
|
||||||
|
<lineStyle kind="LINEBELOW" colorName="#e6e6e6" start="4,-1" stop="4,-1"/>
|
||||||
|
<lineStyle kind="LINEBELOW" colorName="#e6e6e6" start="5,-1" stop="5,-1"/>
|
||||||
|
<lineStyle kind="LINEBELOW" colorName="#e6e6e6" start="6,-1" stop="6,-1"/>
|
||||||
|
<lineStyle kind="LINEBELOW" colorName="#e6e6e6" start="7,-1" stop="7,-1"/>
|
||||||
|
<lineStyle kind="LINEBELOW" colorName="#e6e6e6" start="8,-1" stop="8,-1"/>
|
||||||
|
</blockTableStyle>
|
||||||
|
<initialize>
|
||||||
|
<paraStyle name="all" alignment="justify"/>
|
||||||
|
</initialize>
|
||||||
|
<paraStyle name="Standard" fontName="Helvetica"/>
|
||||||
|
<paraStyle name="Heading" fontName="Helvetica" fontSize="12.0" leading="15" spaceBefore="12.0" spaceAfter="6.0"/>
|
||||||
|
<paraStyle name="Text body" fontName="Helvetica" spaceBefore="0.0" spaceAfter="6.0"/>
|
||||||
|
<paraStyle name="List" fontName="Helvetica" spaceBefore="0.0" spaceAfter="6.0"/>
|
||||||
|
<paraStyle name="Caption" fontName="Helvetica-Oblique" fontSize="8.0" leading="10" spaceBefore="6.0" spaceAfter="6.0"/>
|
||||||
|
<paraStyle name="Index" fontName="Helvetica" fontSize="9.0" leading="11"/>
|
||||||
|
<paraStyle name="Footer" fontName="Helvetica"/>
|
||||||
|
<paraStyle name="Table Contents" fontName="Helvetica"/>
|
||||||
|
<paraStyle name="Table Heading" fontName="Helvetica" alignment="CENTER"/>
|
||||||
|
<paraStyle name="Horizontal Line" fontName="Helvetica" fontSize="6.0" leading="8" spaceBefore="0.0" spaceAfter="14.0"/>
|
||||||
|
<paraStyle name="terp_header" fontName="Helvetica-Bold" fontSize="15.0" leading="19" alignment="LEFT" spaceBefore="12.0" spaceAfter="6.0"/>
|
||||||
|
<paraStyle name="Heading 9" fontName="Helvetica-Bold" fontSize="75%" leading="NaN" spaceBefore="12.0" spaceAfter="6.0"/>
|
||||||
|
<paraStyle name="terp_tblheader_General" fontName="Helvetica-Bold" fontSize="8.0" leading="10" alignment="LEFT" spaceBefore="6.0" spaceAfter="6.0"/>
|
||||||
|
<paraStyle name="terp_tblheader_Details" fontName="Helvetica-Bold" fontSize="9.0" leading="11" alignment="LEFT" spaceBefore="6.0" spaceAfter="6.0"/>
|
||||||
|
<paraStyle name="terp_default_8" fontName="Helvetica" fontSize="7.0" leading="9" alignment="LEFT" spaceBefore="0.0" spaceAfter="0.0"/>
|
||||||
|
<paraStyle name="terp_default_Bold_8" fontName="Helvetica-Bold" fontSize="7.0" leading="9" alignment="LEFT" spaceBefore="0.0" spaceAfter="0.0"/>
|
||||||
|
<paraStyle name="terp_tblheader_General_Centre" fontName="Helvetica-Bold" fontSize="8.0" leading="10" alignment="CENTER" spaceBefore="6.0" spaceAfter="6.0"/>
|
||||||
|
<paraStyle name="terp_tblheader_General_Right" fontName="Helvetica-Bold" fontSize="8.0" leading="10" alignment="RIGHT" spaceBefore="6.0" spaceAfter="6.0"/>
|
||||||
|
<paraStyle name="terp_tblheader_Details_Centre" fontName="Helvetica-Bold" fontSize="9.0" leading="11" alignment="CENTER" spaceBefore="6.0" spaceAfter="6.0"/>
|
||||||
|
<paraStyle name="terp_tblheader_Details_Right" fontName="Helvetica-Bold" fontSize="9.0" leading="11" alignment="RIGHT" spaceBefore="6.0" spaceAfter="6.0"/>
|
||||||
|
<paraStyle name="terp_default_Right_8" fontName="Helvetica" fontSize="7.0" leading="9" alignment="RIGHT" spaceBefore="0.0" spaceAfter="0.0"/>
|
||||||
|
<paraStyle name="terp_default_Centre_8" fontName="Helvetica" fontSize="7.0" leading="9" alignment="CENTER" spaceBefore="0.0" spaceAfter="0.0"/>
|
||||||
|
<paraStyle name="terp_header_Right" fontName="Helvetica-Bold" fontSize="15.0" leading="19" alignment="LEFT" spaceBefore="12.0" spaceAfter="6.0"/>
|
||||||
|
<paraStyle name="terp_header_Centre" fontName="Helvetica-Bold" fontSize="12.0" leading="15" alignment="CENTER" spaceBefore="6.0" spaceAfter="3.0"/>
|
||||||
|
<paraStyle name="terp_header_Centre11" fontName="Helvetica-Bold" fontSize="11.0" leading="15" alignment="CENTER" spaceBefore="6.0" spaceAfter="3.0"/>
|
||||||
|
<paraStyle name="terp_default_address" fontName="Helvetica" fontSize="10.0" leading="13" alignment="LEFT" spaceBefore="0.0" spaceAfter="0.0"/>
|
||||||
|
<paraStyle name="terp_default_9" fontName="Helvetica" fontSize="8.0" leading="10" alignment="LEFT" spaceBefore="0.0" spaceAfter="0.0"/>
|
||||||
|
<paraStyle name="terp_default_Bold_9" fontName="Helvetica-Bold" fontSize="8.0" leading="11" alignment="LEFT" spaceBefore="0.0" spaceAfter="0.0"/>
|
||||||
|
<paraStyle name="terp_default_Centre_9" fontName="Helvetica" fontSize="8.0" leading="10" alignment="CENTER" spaceBefore="0.0" spaceAfter="0.0"/>
|
||||||
|
<paraStyle name="terp_default_Right_9" fontName="Helvetica" fontSize="8.0" leading="10" alignment="RIGHT" spaceBefore="0.0" spaceAfter="0.0"/>
|
||||||
|
<paraStyle name="terp_default_9_italic" fontName="Helvetica-Oblique" fontSize="8.0" leading="10" alignment="LEFT" spaceBefore="0.0" spaceAfter="0.0"/>
|
||||||
|
<paraStyle name="terp_default_Bold_9_Right" fontName="Helvetica-Bold" fontSize="8.0" leading="11" alignment="RIGHT" spaceBefore="0.0" spaceAfter="0.0"/>
|
||||||
|
<paraStyle name="terp_default_2" fontName="Helvetica" fontSize="2.0" leading="3" alignment="LEFT" spaceBefore="0.0" spaceAfter="0.0"/>
|
||||||
|
<paraStyle name="Heading 3" fontName="Helvetica-Bold" fontSize="14.0" leading="17" spaceBefore="12.0" spaceAfter="6.0"/>
|
||||||
|
<images/>
|
||||||
|
</stylesheet>
|
||||||
|
<story>
|
||||||
|
<pto>
|
||||||
|
<para style="terp_default_8">[[ repeatIn(objects, 'stmt') ]]</para>
|
||||||
|
<para style="terp_default_8">[[ setLang(stmt.lang) ]]</para>
|
||||||
|
<pto_header>
|
||||||
|
<section>
|
||||||
|
<para style="terp_default_8">[[ (not stmt.account_id.currency_id) and removeParentNode('section') or '' ]]</para>
|
||||||
|
<blockTable colWidths="60.0,60.0,60.0,60.0,70.0,70.0,70.0,70.0" style="Table8">
|
||||||
|
<tr>
|
||||||
|
<td>
|
||||||
|
<para style="terp_default_9">
|
||||||
|
<font color="white"> </font>
|
||||||
|
</para>
|
||||||
|
</td>
|
||||||
|
</tr>
|
||||||
|
<tr>
|
||||||
|
<td>
|
||||||
|
<para style="terp_tblheader_Details"></para>
|
||||||
|
</td>
|
||||||
|
<td>
|
||||||
|
<para style="terp_tblheader_Details">Date</para>
|
||||||
|
</td>
|
||||||
|
<td>
|
||||||
|
<para style="terp_tblheader_Details_Centre">Comment</para>
|
||||||
|
</td>
|
||||||
|
<td>
|
||||||
|
<para style="terp_tblheader_Details_Centre">Partner</para>
|
||||||
|
</td>
|
||||||
|
<td>
|
||||||
|
<para style="terp_tblheader_Details_Right">Reference</para>
|
||||||
|
</td>
|
||||||
|
<td>
|
||||||
|
<para style="terp_tblheader_Details_Right">Cleared</para>
|
||||||
|
</td>
|
||||||
|
<td>
|
||||||
|
<para style="terp_tblheader_Details_Right">Amount([[ company.currency_id.symbol ]])</para>
|
||||||
|
</td>
|
||||||
|
<td>
|
||||||
|
<para style="terp_tblheader_Details_Right">Amount([[ stmt.account_id.currency_id.symbol ]])</para>
|
||||||
|
</td>
|
||||||
|
</tr>
|
||||||
|
</blockTable>
|
||||||
|
</section>
|
||||||
|
<section>
|
||||||
|
<para style="terp_default_8">[[ (stmt.account_id.currency_id) and removeParentNode('section') or '' ]]</para>
|
||||||
|
<blockTable colWidths="70.0,70.0,70.0,70.0,80.0,80.0,80.0,80.0" style="Table8">
|
||||||
|
<tr>
|
||||||
|
<td>
|
||||||
|
<para style="terp_default_9">
|
||||||
|
<font color="white"> </font>
|
||||||
|
</para>
|
||||||
|
</td>
|
||||||
|
</tr>
|
||||||
|
<tr>
|
||||||
|
<td>
|
||||||
|
<para style="terp_tblheader_Details"></para>
|
||||||
|
</td>
|
||||||
|
<td>
|
||||||
|
<para style="terp_tblheader_Details">Date</para>
|
||||||
|
</td>
|
||||||
|
<td>
|
||||||
|
<para style="terp_tblheader_Details_Centre">Comment</para>
|
||||||
|
</td>
|
||||||
|
<td>
|
||||||
|
<para style="terp_tblheader_Details_Centre">Partner</para>
|
||||||
|
</td>
|
||||||
|
<td>
|
||||||
|
<para style="terp_tblheader_Details_Right">Reference</para>
|
||||||
|
</td>
|
||||||
|
<td>
|
||||||
|
<para style="terp_tblheader_Details_Right">Cleared</para>
|
||||||
|
</td>
|
||||||
|
<td>
|
||||||
|
<para style="terp_tblheader_Details_Right">Amount([[ company.currency_id.symbol ]])</para>
|
||||||
|
</td>
|
||||||
|
<td>
|
||||||
|
<para style="terp_tblheader_Details_Right">Amount([[ stmt.account_id.currency_id.symbol ]])</para>
|
||||||
|
</td>
|
||||||
|
</tr>
|
||||||
|
</blockTable>
|
||||||
|
</section>
|
||||||
|
</pto_header>
|
||||||
|
<section>
|
||||||
|
<para style="terp_header_Centre">Reconciliation Detail </para>
|
||||||
|
<para style="terp_header_Centre11"><b>Period Ending [[ (stmt.ending_date) or '' ]]</b></para>
|
||||||
|
</section>
|
||||||
|
<para style="terp_default_8">
|
||||||
|
<font color="white"> </font>
|
||||||
|
</para>
|
||||||
|
<para style="terp_default_8">
|
||||||
|
<font color="white"> </font>
|
||||||
|
</para>
|
||||||
|
<section>
|
||||||
|
<para style="terp_default_8">[[ (not stmt.account_id.currency_id) and removeParentNode('section') or '' ]]</para>
|
||||||
|
<blockTable colWidths="60.0,60.0,60.0,60.0,70.0,70.0,70.0,70.0" style="Table8">
|
||||||
|
<tr>
|
||||||
|
<td>
|
||||||
|
<para style="terp_tblheader_Details"></para>
|
||||||
|
</td>
|
||||||
|
<td>
|
||||||
|
<para style="terp_tblheader_Details">Date</para>
|
||||||
|
</td>
|
||||||
|
<td>
|
||||||
|
<para style="terp_tblheader_Details_Centre">Comment</para>
|
||||||
|
</td>
|
||||||
|
<td>
|
||||||
|
<para style="terp_tblheader_Details_Centre">Partner</para>
|
||||||
|
</td>
|
||||||
|
<td>
|
||||||
|
<para style="terp_tblheader_Details_Right">Reference</para>
|
||||||
|
</td>
|
||||||
|
<td>
|
||||||
|
<para style="terp_tblheader_Details_Right">Cleared</para>
|
||||||
|
</td>
|
||||||
|
<td>
|
||||||
|
<para style="terp_tblheader_Details_Right">Amount([[ company.currency_id.symbol ]])</para>
|
||||||
|
</td>
|
||||||
|
<td>
|
||||||
|
<para style="terp_tblheader_Details_Right">Amount([[ stmt.account_id.currency_id.symbol ]])</para>
|
||||||
|
</td>
|
||||||
|
</tr>
|
||||||
|
</blockTable>
|
||||||
|
</section>
|
||||||
|
<section>
|
||||||
|
<para style="terp_default_8">[[ stmt.account_id.currency_id and removeParentNode('section') or '' ]]</para>
|
||||||
|
<blockTable colWidths="70.0,70.0,70.0,70.0,80.0,80.0,80.0" style="Table8">
|
||||||
|
<tr>
|
||||||
|
<td>
|
||||||
|
<para style="terp_tblheader_Details"></para>
|
||||||
|
</td>
|
||||||
|
<td>
|
||||||
|
<para style="terp_tblheader_Details">Date</para>
|
||||||
|
</td>
|
||||||
|
<td>
|
||||||
|
<para style="terp_tblheader_Details_Centre">Comment</para>
|
||||||
|
</td>
|
||||||
|
<td>
|
||||||
|
<para style="terp_tblheader_Details_Centre">Partner</para>
|
||||||
|
</td>
|
||||||
|
<td>
|
||||||
|
<para style="terp_tblheader_Details_Right">Reference</para>
|
||||||
|
</td>
|
||||||
|
<td>
|
||||||
|
<para style="terp_tblheader_Details_Right">Cleared</para>
|
||||||
|
</td>
|
||||||
|
<td>
|
||||||
|
<para style="terp_tblheader_Details_Right">Amount([[ company.currency_id.symbol ]])</para>
|
||||||
|
</td>
|
||||||
|
</tr>
|
||||||
|
</blockTable>
|
||||||
|
</section>
|
||||||
|
<section>
|
||||||
|
<para style="terp_default_8">[[ (not stmt.account_id.currency_id) and removeParentNode('section') or '' ]]</para>
|
||||||
|
<blockTable rowHeights="0.55cm" colWidths="240.0,210.0,70.0">
|
||||||
|
<tr>
|
||||||
|
<td>
|
||||||
|
<para style="terp_default_8">Initial Balance</para>
|
||||||
|
</td>
|
||||||
|
<td/>
|
||||||
|
<td>
|
||||||
|
<para style="terp_default_Right_8">[[ stmt.starting_balance ]]</para>
|
||||||
|
</td>
|
||||||
|
</tr>
|
||||||
|
<tr/>
|
||||||
|
<tr>
|
||||||
|
<td>
|
||||||
|
<para style="terp_default_Bold_9">Cleared Transactions</para>
|
||||||
|
</td>
|
||||||
|
<td/>
|
||||||
|
<td/>
|
||||||
|
</tr>
|
||||||
|
<tr/>
|
||||||
|
<tr>
|
||||||
|
<td>
|
||||||
|
<para style="terp_default_Bold_9">Deposits & Credits-[[ (stmt.sum_of_debits_lines) or '']] items</para>
|
||||||
|
</td>
|
||||||
|
<td/>
|
||||||
|
<td/>
|
||||||
|
</tr>
|
||||||
|
</blockTable>
|
||||||
|
</section>
|
||||||
|
<section>
|
||||||
|
<para style="terp_default_8">[[ stmt.account_id.currency_id and removeParentNode('section') or '' ]]</para>
|
||||||
|
<blockTable rowHeights="0.55cm" colWidths="280.0,160.0,80.0">
|
||||||
|
<tr>
|
||||||
|
<td>
|
||||||
|
<para style="terp_default_8">Initial Balance</para>
|
||||||
|
</td>
|
||||||
|
<td/>
|
||||||
|
<td>
|
||||||
|
<para style="terp_default_Right_8">[[ stmt.starting_balance ]]</para>
|
||||||
|
</td>
|
||||||
|
</tr>
|
||||||
|
<tr/>
|
||||||
|
<tr>
|
||||||
|
<td>
|
||||||
|
<para style="terp_default_Bold_9">Cleared Transactions</para>
|
||||||
|
</td>
|
||||||
|
<td/>
|
||||||
|
<td/>
|
||||||
|
</tr>
|
||||||
|
<tr/>
|
||||||
|
<tr>
|
||||||
|
<td>
|
||||||
|
<para style="terp_default_Bold_9">Deposits & Credits-[[ (stmt.sum_of_debits_lines) or '']] items</para>
|
||||||
|
</td>
|
||||||
|
<td/>
|
||||||
|
<td/>
|
||||||
|
</tr>
|
||||||
|
</blockTable>
|
||||||
|
</section>
|
||||||
|
<section>
|
||||||
|
<para style="terp_default_8">[[ (not stmt.account_id.currency_id) and removeParentNode('section') or '' ]]</para>
|
||||||
|
<para style="terp_default_8">[[ repeatIn(stmt.debit_move_line_ids, 'debit') ]]</para>
|
||||||
|
<section> <para style="terp_default_8">[[ (not debit['cleared_bank_account']) and removeParentNode('section') ]]</para>
|
||||||
|
<blockTable colWidths="60.0,60.0,60.0,60.0,70.0,70.0,70.0,70.0">
|
||||||
|
<tr>
|
||||||
|
<td>
|
||||||
|
<para style="terp_default_8"></para>
|
||||||
|
</td>
|
||||||
|
<td>
|
||||||
|
<para style="terp_default_8">[[ formatLang(debit['date'],date=True) ]]</para>
|
||||||
|
</td>
|
||||||
|
<td>
|
||||||
|
<para style="terp_default_8">[[ debit['name'] ]]</para>
|
||||||
|
</td>
|
||||||
|
<td>
|
||||||
|
<para style="terp_default_8">[[ debit['partner_id'].name or '' ]]</para>
|
||||||
|
</td>
|
||||||
|
<td>
|
||||||
|
<para style="terp_default_8">[[ debit['ref'] ]]</para>
|
||||||
|
</td>
|
||||||
|
<td>
|
||||||
|
<para style="terp_default_Right_8">[[ (debit['cleared_bank_account']) and 'X' or '' ]]</para>
|
||||||
|
</td>
|
||||||
|
<td>
|
||||||
|
<para style="terp_default_Right_8">[[ formatLang((debit['amount'])) ]]</para>
|
||||||
|
</td>
|
||||||
|
<td>
|
||||||
|
<para style="terp_default_Right_8">[[ formatLang((debit['amountcur'])) ]]</para>
|
||||||
|
</td>
|
||||||
|
</tr>
|
||||||
|
</blockTable>
|
||||||
|
</section>
|
||||||
|
</section>
|
||||||
|
<section>
|
||||||
|
<para style="terp_default_8">[[ stmt.account_id.currency_id and removeParentNode('section') or '' ]]</para>
|
||||||
|
<para style="terp_default_8">[[ repeatIn(stmt.debit_move_line_ids, 'debit') ]]</para>
|
||||||
|
<section> <para style="terp_default_8">[[ (not debit['cleared_bank_account']) and removeParentNode('section') ]]</para>
|
||||||
|
<blockTable colWidths="70.0,70.0,70.0,70.0,80.0,80.0,80.0">
|
||||||
|
<tr>
|
||||||
|
<td>
|
||||||
|
<para style="terp_default_8"></para>
|
||||||
|
</td>
|
||||||
|
<td>
|
||||||
|
<para style="terp_default_8">[[ formatLang(debit['date'],date=True) ]]</para>
|
||||||
|
</td>
|
||||||
|
<td>
|
||||||
|
<para style="terp_default_8">[[ debit['name'] ]]</para>
|
||||||
|
</td>
|
||||||
|
<td>
|
||||||
|
<para style="terp_default_8">[[ debit['partner_id'].name or '' ]]</para>
|
||||||
|
</td>
|
||||||
|
<td>
|
||||||
|
<para style="terp_default_8">[[ debit['ref'] ]]</para>
|
||||||
|
</td>
|
||||||
|
<td>
|
||||||
|
<para style="terp_default_Right_8">[[ (debit['cleared_bank_account']) and 'X' or '' ]]</para>
|
||||||
|
</td>
|
||||||
|
<td>
|
||||||
|
<para style="terp_default_Right_8">[[ formatLang((debit['amount'])) ]]</para>
|
||||||
|
</td>
|
||||||
|
</tr>
|
||||||
|
</blockTable>
|
||||||
|
</section>
|
||||||
|
</section>
|
||||||
|
<section>
|
||||||
|
<para style="terp_default_8">[[ (not stmt.account_id.currency_id) and removeParentNode('section') or '' ]]</para>
|
||||||
|
<blockTable colWidths="240.0,140.0,70.0,70.0">
|
||||||
|
<tr>
|
||||||
|
<td>
|
||||||
|
<para style="terp_default_Bold_9">Total Deposits & Credits</para>
|
||||||
|
</td>
|
||||||
|
<td/>
|
||||||
|
<td><para style="terp_default_Right_8">[[ (stmt.sum_of_debits) or '']]</para></td>
|
||||||
|
<td><para style="terp_default_Right_8">[[ (stmt.sum_of_debits_cur) or '']]</para></td>
|
||||||
|
</tr>
|
||||||
|
<tr/>
|
||||||
|
</blockTable>
|
||||||
|
<blockTable colWidths="240.0,210.0,70.0">
|
||||||
|
<tr>
|
||||||
|
<td>
|
||||||
|
<para style="terp_default_Bold_9">Checks & Payments-[[ (stmt.sum_of_credits_lines) or '']] items</para>
|
||||||
|
</td>
|
||||||
|
<td/>
|
||||||
|
<td/>
|
||||||
|
</tr>
|
||||||
|
</blockTable>
|
||||||
|
</section>
|
||||||
|
<section>
|
||||||
|
<para style="terp_default_8">[[ (stmt.account_id.currency_id) and removeParentNode('section') or '' ]]</para>
|
||||||
|
<blockTable colWidths="280.0,160.0,80.0">
|
||||||
|
<tr>
|
||||||
|
<td>
|
||||||
|
<para style="terp_default_Bold_9">Total Deposits & Credits</para>
|
||||||
|
</td>
|
||||||
|
<td/>
|
||||||
|
<td><para style="terp_default_Right_8">[[ (stmt.sum_of_debits) or '']]</para></td>
|
||||||
|
</tr>
|
||||||
|
<tr/>
|
||||||
|
</blockTable>
|
||||||
|
<blockTable colWidths="280.0,160.0,80.0">
|
||||||
|
<tr>
|
||||||
|
<td>
|
||||||
|
<para style="terp_default_Bold_9">Checks & Payments-[[ (stmt.sum_of_credits_lines) or '']] items</para>
|
||||||
|
</td>
|
||||||
|
<td/>
|
||||||
|
<td/>
|
||||||
|
</tr>
|
||||||
|
</blockTable>
|
||||||
|
</section>
|
||||||
|
<section>
|
||||||
|
<para style="terp_default_8">[[ (not stmt.account_id.currency_id) and removeParentNode('section') or '' ]]</para>
|
||||||
|
<para style="terp_default_8">[[ repeatIn(stmt.credit_move_line_ids, 'credit') ]]</para>
|
||||||
|
<blockTable colWidths="60.0,60.0,60.0,60.0,70.0,70.0,70.0,70.0">
|
||||||
|
<tr>
|
||||||
|
<td>
|
||||||
|
<para style="terp_default_8"></para>
|
||||||
|
</td>
|
||||||
|
<td>
|
||||||
|
<para style="terp_default_8">[[ formatLang(credit['date'],date=True) ]]</para>
|
||||||
|
</td>
|
||||||
|
<td>
|
||||||
|
<para style="terp_default_8">[[ credit['name'] ]]</para>
|
||||||
|
</td>
|
||||||
|
<td>
|
||||||
|
<para style="terp_default_8">[[ credit['partner_id'].name or '' ]]</para>
|
||||||
|
</td>
|
||||||
|
<td>
|
||||||
|
<para style="terp_default_8">[[ credit['ref'] ]]</para>
|
||||||
|
</td>
|
||||||
|
<td>
|
||||||
|
<para style="terp_default_Right_8">[[ (credit['cleared_bank_account']) and 'X' or '' ]]</para>
|
||||||
|
</td>
|
||||||
|
<td>
|
||||||
|
<para style="terp_default_Right_8">[[ formatLang((credit['amount'])) ]]</para>
|
||||||
|
</td>
|
||||||
|
<td>
|
||||||
|
<para style="terp_default_Right_8">[[ formatLang((credit['amountcur']))]]</para>
|
||||||
|
</td>
|
||||||
|
</tr>
|
||||||
|
</blockTable>
|
||||||
|
</section>
|
||||||
|
<section>
|
||||||
|
<para style="terp_default_8">[[ (stmt.account_id.currency_id) and removeParentNode('section') or '' ]]</para>
|
||||||
|
<para style="terp_default_8">[[ repeatIn(stmt.credit_move_line_ids, 'credit') ]]</para>
|
||||||
|
<blockTable colWidths="70.0,70.0,70.0,70.0,80.0,80.0,80.0">
|
||||||
|
<tr>
|
||||||
|
<td>
|
||||||
|
<para style="terp_default_8"></para>
|
||||||
|
</td>
|
||||||
|
<td>
|
||||||
|
<para style="terp_default_8">[[ formatLang(credit['date'],date=True) ]]</para>
|
||||||
|
</td>
|
||||||
|
<td>
|
||||||
|
<para style="terp_default_8">[[ credit['name'] ]]</para>
|
||||||
|
</td>
|
||||||
|
<td>
|
||||||
|
<para style="terp_default_8">[[ credit['partner_id'].name or '' ]]</para>
|
||||||
|
</td>
|
||||||
|
<td>
|
||||||
|
<para style="terp_default_8">[[ credit['ref'] ]]</para>
|
||||||
|
</td>
|
||||||
|
<td>
|
||||||
|
<para style="terp_default_Right_8">[[ (credit['cleared_bank_account']) and 'X' or '' ]]</para>
|
||||||
|
</td>
|
||||||
|
<td>
|
||||||
|
<para style="terp_default_Right_8">[[ formatLang((credit['amount'])) ]]</para>
|
||||||
|
</td>
|
||||||
|
</tr>
|
||||||
|
</blockTable>
|
||||||
|
</section>
|
||||||
|
<section>
|
||||||
|
<para style="terp_default_8">[[ (not stmt.account_id.currency_id) and removeParentNode('section') or '' ]]</para>
|
||||||
|
<blockTable colWidths="240.0,140.0,70.0,70.0">
|
||||||
|
<tr>
|
||||||
|
<td>
|
||||||
|
<para style="terp_default_Bold_9">Total Checks & Payments</para>
|
||||||
|
</td>
|
||||||
|
<td/>
|
||||||
|
<td><para style="terp_default_Right_8">[[ (stmt.sum_of_credits) or '']]</para></td>
|
||||||
|
<td><para style="terp_default_Right_8">[[ (stmt.sum_of_credits_cur) or '']]</para></td>
|
||||||
|
</tr>
|
||||||
|
</blockTable>
|
||||||
|
<blockTable colWidths="240.0,140.0,70.0,70.0">
|
||||||
|
<tr>
|
||||||
|
<td>
|
||||||
|
<para style="terp_default_Bold_9">Total Cleared Transactions</para>
|
||||||
|
</td>
|
||||||
|
<td/>
|
||||||
|
<td><para style="terp_default_Right_8">[[ formatLang(stmt.sum_of_debits - stmt.sum_of_credits) or '']]</para></td>
|
||||||
|
<td><para style="terp_default_Right_8">[[ formatLang(stmt.sum_of_debits_cur - stmt.sum_of_credits_cur) or '']]</para></td>
|
||||||
|
</tr>
|
||||||
|
<tr>
|
||||||
|
<td>
|
||||||
|
<para style="terp_default_Bold_9">Cleared Balance</para>
|
||||||
|
</td>
|
||||||
|
<td/>
|
||||||
|
<td><para style="terp_default_Right_8">[[ (stmt.cleared_balance) or '']]</para></td>
|
||||||
|
<td><para style="terp_default_Right_8">[[ (stmt.cleared_balance_cur) or '']]</para></td>
|
||||||
|
</tr>
|
||||||
|
<tr>
|
||||||
|
<td>
|
||||||
|
<para style="terp_default_Bold_9">Ending Balance</para>
|
||||||
|
</td>
|
||||||
|
<td/>
|
||||||
|
<td/>
|
||||||
|
<td><para style="terp_default_Right_8">[[ (stmt.ending_balance) or '']]</para></td>
|
||||||
|
</tr>
|
||||||
|
</blockTable>
|
||||||
|
</section>
|
||||||
|
<section>
|
||||||
|
<para style="terp_default_8">[[ (stmt.account_id.currency_id) and removeParentNode('section') or '' ]]</para>
|
||||||
|
<blockTable colWidths="280.0,160.0,80.0">
|
||||||
|
<tr>
|
||||||
|
<td>
|
||||||
|
<para style="terp_default_Bold_9">Total Deposits and Credits</para>
|
||||||
|
</td>
|
||||||
|
<td/>
|
||||||
|
<td><para style="terp_default_Right_8">[[ (stmt.sum_of_credits) or '']]</para></td>
|
||||||
|
</tr>
|
||||||
|
</blockTable>
|
||||||
|
<blockTable colWidths="280.0,160.0,80.0">
|
||||||
|
<tr>
|
||||||
|
<td>
|
||||||
|
<para style="terp_default_Bold_9">Total Cleared Transactions</para>
|
||||||
|
</td>
|
||||||
|
<td/>
|
||||||
|
<td><para style="terp_default_Right_8">[[ formatLang(stmt.sum_of_debits - stmt.sum_of_credits) or '']]</para></td>
|
||||||
|
</tr>
|
||||||
|
<tr>
|
||||||
|
<td>
|
||||||
|
<para style="terp_default_Bold_9">Cleared Balance</para>
|
||||||
|
</td>
|
||||||
|
<td/>
|
||||||
|
<td><para style="terp_default_Right_8">[[ (stmt.cleared_balance) or '']]</para></td>
|
||||||
|
</tr>
|
||||||
|
<tr>
|
||||||
|
<td>
|
||||||
|
<para style="terp_default_Bold_9">Ending Balance</para>
|
||||||
|
</td>
|
||||||
|
<td/>
|
||||||
|
<td><para style="terp_default_Right_8">[[ (stmt.ending_balance) or '']]</para></td>
|
||||||
|
</tr>
|
||||||
|
</blockTable>
|
||||||
|
</section>
|
||||||
|
</pto>
|
||||||
|
</story>
|
||||||
|
</document>
|
|
@ -0,0 +1,19 @@
|
||||||
|
<?xml version="1.0" encoding="utf-8"?>
|
||||||
|
<openerp>
|
||||||
|
<data>
|
||||||
|
<report
|
||||||
|
id="bank_statement_detail"
|
||||||
|
model="bank.acc.rec.statement"
|
||||||
|
name="bank_statement_detail"
|
||||||
|
string="Bank Statement-Detail"
|
||||||
|
rml="npg_bank_account_reconciliation/bank_statement_detail.rml"
|
||||||
|
attachment="'Detail Statement-'+(object.name)"/>
|
||||||
|
<report
|
||||||
|
id="bank_statement_summary"
|
||||||
|
model="bank.acc.rec.statement"
|
||||||
|
name="bank_statement_summary"
|
||||||
|
string="Bank Statement-Summary"
|
||||||
|
rml="npg_bank_account_reconciliation/bank_statement_summary.rml"
|
||||||
|
attachment="'Summary Statement-'+(object.name)"/>
|
||||||
|
</data>
|
||||||
|
</openerp>
|
|
@ -0,0 +1,428 @@
|
||||||
|
<?xml version="1.0"?>
|
||||||
|
<document filename="bankstatement.pdf">
|
||||||
|
<template title="Bank Statement-Summary" author="Ursa Information Systems(support@ursainfosystems.com)" allowSplitting="20">
|
||||||
|
<pageTemplate id="first">
|
||||||
|
<frame id="first" x1="34.0" y1="28.0" width="530" height="786"/>
|
||||||
|
</pageTemplate>
|
||||||
|
</template>
|
||||||
|
<stylesheet>
|
||||||
|
<blockTableStyle id="Standard_Outline">
|
||||||
|
<blockAlignment value="LEFT"/>
|
||||||
|
<blockValign value="TOP"/>
|
||||||
|
</blockTableStyle>
|
||||||
|
<blockTableStyle id="Table1">
|
||||||
|
<blockAlignment value="LEFT"/>
|
||||||
|
<blockValign value="TOP"/>
|
||||||
|
<lineStyle kind="LINEBEFORE" colorName="#e6e6e6" start="0,0" stop="0,-1"/>
|
||||||
|
<lineStyle kind="LINEABOVE" colorName="#e6e6e6" start="0,0" stop="0,0"/>
|
||||||
|
<lineStyle kind="LINEBELOW" colorName="#e6e6e6" start="0,-1" stop="0,-1"/>
|
||||||
|
<lineStyle kind="LINEBEFORE" colorName="#e6e6e6" start="1,0" stop="1,-1"/>
|
||||||
|
<lineStyle kind="LINEABOVE" colorName="#e6e6e6" start="1,0" stop="1,0"/>
|
||||||
|
<lineStyle kind="LINEBELOW" colorName="#e6e6e6" start="1,-1" stop="1,-1"/>
|
||||||
|
<lineStyle kind="LINEBEFORE" colorName="#e6e6e6" start="2,0" stop="2,-1"/>
|
||||||
|
<lineStyle kind="LINEABOVE" colorName="#e6e6e6" start="2,0" stop="2,0"/>
|
||||||
|
<lineStyle kind="LINEBELOW" colorName="#e6e6e6" start="2,-1" stop="2,-1"/>
|
||||||
|
<lineStyle kind="LINEBEFORE" colorName="#e6e6e6" start="3,0" stop="3,-1"/>
|
||||||
|
<lineStyle kind="LINEABOVE" colorName="#e6e6e6" start="3,0" stop="3,0"/>
|
||||||
|
<lineStyle kind="LINEBELOW" colorName="#e6e6e6" start="3,-1" stop="3,-1"/>
|
||||||
|
<lineStyle kind="LINEBEFORE" colorName="#e6e6e6" start="4,0" stop="4,-1"/>
|
||||||
|
<lineStyle kind="LINEABOVE" colorName="#e6e6e6" start="4,0" stop="4,0"/>
|
||||||
|
<lineStyle kind="LINEBELOW" colorName="#e6e6e6" start="4,-1" stop="4,-1"/>
|
||||||
|
<lineStyle kind="LINEBEFORE" colorName="#e6e6e6" start="5,0" stop="5,-1"/>
|
||||||
|
<lineStyle kind="LINEAFTER" colorName="#e6e6e6" start="5,0" stop="5,-1"/>
|
||||||
|
<lineStyle kind="LINEABOVE" colorName="#e6e6e6" start="5,0" stop="5,0"/>
|
||||||
|
<lineStyle kind="LINEBELOW" colorName="#e6e6e6" start="5,-1" stop="5,-1"/>
|
||||||
|
<lineStyle kind="LINEBEFORE" colorName="#e6e6e6" start="6,0" stop="6,-1"/>
|
||||||
|
<lineStyle kind="LINEAFTER" colorName="#e6e6e6" start="6,0" stop="6,-1"/>
|
||||||
|
<lineStyle kind="LINEABOVE" colorName="#e6e6e6" start="6,0" stop="6,0"/>
|
||||||
|
<lineStyle kind="LINEBELOW" colorName="#e6e6e6" start="6,-1" stop="6,-1"/>
|
||||||
|
</blockTableStyle>
|
||||||
|
<blockTableStyle id="Table4">
|
||||||
|
<blockAlignment value="LEFT"/>
|
||||||
|
<blockValign value="TOP"/>
|
||||||
|
<lineStyle kind="LINEBEFORE" colorName="#e6e6e6" start="0,0" stop="0,-1"/>
|
||||||
|
<lineStyle kind="LINEABOVE" colorName="#e6e6e6" start="0,0" stop="0,0"/>
|
||||||
|
<lineStyle kind="LINEBELOW" colorName="#e6e6e6" start="0,-1" stop="0,-1"/>
|
||||||
|
<lineStyle kind="LINEBEFORE" colorName="#e6e6e6" start="1,0" stop="1,-1"/>
|
||||||
|
<lineStyle kind="LINEABOVE" colorName="#e6e6e6" start="1,0" stop="1,0"/>
|
||||||
|
<lineStyle kind="LINEBELOW" colorName="#e6e6e6" start="1,-1" stop="1,-1"/>
|
||||||
|
<lineStyle kind="LINEBEFORE" colorName="#e6e6e6" start="2,0" stop="2,-1"/>
|
||||||
|
<lineStyle kind="LINEABOVE" colorName="#e6e6e6" start="2,0" stop="2,0"/>
|
||||||
|
<lineStyle kind="LINEBELOW" colorName="#e6e6e6" start="2,-1" stop="2,-1"/>
|
||||||
|
<lineStyle kind="LINEBEFORE" colorName="#e6e6e6" start="3,0" stop="3,-1"/>
|
||||||
|
<lineStyle kind="LINEABOVE" colorName="#e6e6e6" start="3,0" stop="3,0"/>
|
||||||
|
<lineStyle kind="LINEBELOW" colorName="#e6e6e6" start="3,-1" stop="3,-1"/>
|
||||||
|
<lineStyle kind="LINEBEFORE" colorName="#e6e6e6" start="4,0" stop="4,-1"/>
|
||||||
|
<lineStyle kind="LINEABOVE" colorName="#e6e6e6" start="4,0" stop="4,0"/>
|
||||||
|
<lineStyle kind="LINEBELOW" colorName="#e6e6e6" start="4,-1" stop="4,-1"/>
|
||||||
|
<lineStyle kind="LINEBEFORE" colorName="#e6e6e6" start="5,0" stop="5,-1"/>
|
||||||
|
<lineStyle kind="LINEAFTER" colorName="#e6e6e6" start="5,0" stop="5,-1"/>
|
||||||
|
<lineStyle kind="LINEABOVE" colorName="#e6e6e6" start="5,0" stop="5,0"/>
|
||||||
|
<lineStyle kind="LINEBELOW" colorName="#e6e6e6" start="5,-1" stop="5,-1"/>
|
||||||
|
<lineStyle kind="LINEBEFORE" colorName="#e6e6e6" start="6,0" stop="6,-1"/>
|
||||||
|
<lineStyle kind="LINEABOVE" colorName="#e6e6e6" start="6,0" stop="6,0"/>
|
||||||
|
<lineStyle kind="LINEBELOW" colorName="#e6e6e6" start="6,-1" stop="6,-1"/>
|
||||||
|
<lineStyle kind="LINEBEFORE" colorName="#e6e6e6" start="7,0" stop="7,-1"/>
|
||||||
|
<lineStyle kind="LINEAFTER" colorName="#e6e6e6" start="7,0" stop="7,-1"/>
|
||||||
|
<lineStyle kind="LINEABOVE" colorName="#e6e6e6" start="7,0" stop="7,0"/>
|
||||||
|
<lineStyle kind="LINEBELOW" colorName="#e6e6e6" start="7,-1" stop="7,-1"/>
|
||||||
|
<lineStyle kind="LINEBEFORE" colorName="#e6e6e6" start="8,0" stop="8,-1"/>
|
||||||
|
<lineStyle kind="LINEABOVE" colorName="#e6e6e6" start="8,0" stop="8,0"/>
|
||||||
|
<lineStyle kind="LINEBELOW" colorName="#e6e6e6" start="8,-1" stop="8,-1"/>
|
||||||
|
<lineStyle kind="LINEBEFORE" colorName="#e6e6e6" start="9,0" stop="9,-1"/>
|
||||||
|
<lineStyle kind="LINEAFTER" colorName="#e6e6e6" start="9,0" stop="9,-1"/>
|
||||||
|
<lineStyle kind="LINEABOVE" colorName="#e6e6e6" start="9,0" stop="9,0"/>
|
||||||
|
<lineStyle kind="LINEBELOW" colorName="#e6e6e6" start="9,-1" stop="9,-1"/>
|
||||||
|
<lineStyle kind="LINEBEFORE" colorName="#e6e6e6" start="10,0" stop="10,-1"/>
|
||||||
|
<lineStyle kind="LINEABOVE" colorName="#e6e6e6" start="10,0" stop="10,0"/>
|
||||||
|
<lineStyle kind="LINEBELOW" colorName="#e6e6e6" start="10,-1" stop="10,-1"/>
|
||||||
|
<lineStyle kind="LINEBEFORE" colorName="#e6e6e6" start="11,0" stop="11,-1"/>
|
||||||
|
<lineStyle kind="LINEAFTER" colorName="#e6e6e6" start="11,0" stop="11,-1"/>
|
||||||
|
<lineStyle kind="LINEABOVE" colorName="#e6e6e6" start="11,0" stop="11,0"/>
|
||||||
|
<lineStyle kind="LINEBELOW" colorName="#e6e6e6" start="11,-1" stop="11,-1"/>
|
||||||
|
<lineStyle kind="LINEBEFORE" colorName="#e6e6e6" start="12,0" stop="12,-1"/>
|
||||||
|
<lineStyle kind="LINEABOVE" colorName="#e6e6e6" start="12,0" stop="12,0"/>
|
||||||
|
<lineStyle kind="LINEBELOW" colorName="#e6e6e6" start="12,-1" stop="12,-1"/>
|
||||||
|
<lineStyle kind="LINEBEFORE" colorName="#e6e6e6" start="13,0" stop="13,-1"/>
|
||||||
|
<lineStyle kind="LINEAFTER" colorName="#e6e6e6" start="13,0" stop="13,-1"/>
|
||||||
|
<lineStyle kind="LINEABOVE" colorName="#e6e6e6" start="13,0" stop="13,0"/>
|
||||||
|
<lineStyle kind="LINEBELOW" colorName="#e6e6e6" start="13,-1" stop="13,-1"/>
|
||||||
|
<lineStyle kind="LINEBEFORE" colorName="#e6e6e6" start="0,1" stop="0,-1"/>
|
||||||
|
<lineStyle kind="LINEABOVE" colorName="#e6e6e6" start="0,1" stop="0,1"/>
|
||||||
|
<lineStyle kind="LINEBELOW" colorName="#e6e6e6" start="0,-1" stop="0,-1"/>
|
||||||
|
<lineStyle kind="LINEBEFORE" colorName="#e6e6e6" start="1,1" stop="1,-1"/>
|
||||||
|
<lineStyle kind="LINEAFTER" colorName="#e6e6e6" start="1,1" stop="1,-1"/>
|
||||||
|
<lineStyle kind="LINEABOVE" colorName="#e6e6e6" start="1,1" stop="1,1"/>
|
||||||
|
<lineStyle kind="LINEBELOW" colorName="#e6e6e6" start="1,-1" stop="1,-1"/>
|
||||||
|
<lineStyle kind="LINEBEFORE" colorName="#e6e6e6" start="0,2" stop="0,-1"/>
|
||||||
|
<lineStyle kind="LINEABOVE" colorName="#e6e6e6" start="0,2" stop="0,2"/>
|
||||||
|
<lineStyle kind="LINEBELOW" colorName="#e6e6e6" start="0,-1" stop="0,-1"/>
|
||||||
|
<lineStyle kind="LINEBEFORE" colorName="#e6e6e6" start="1,2" stop="1,-1"/>
|
||||||
|
<lineStyle kind="LINEAFTER" colorName="#e6e6e6" start="1,2" stop="1,-1"/>
|
||||||
|
<lineStyle kind="LINEABOVE" colorName="#e6e6e6" start="1,2" stop="1,2"/>
|
||||||
|
<lineStyle kind="LINEBELOW" colorName="#e6e6e6" start="1,-1" stop="1,-1"/>
|
||||||
|
<lineStyle kind="LINEBEFORE" colorName="#e6e6e6" start="0,3" stop="0,-1"/>
|
||||||
|
<lineStyle kind="LINEABOVE" colorName="#e6e6e6" start="0,3" stop="0,3"/>
|
||||||
|
<lineStyle kind="LINEBELOW" colorName="#e6e6e6" start="0,-1" stop="0,-1"/>
|
||||||
|
<lineStyle kind="LINEBEFORE" colorName="#e6e6e6" start="1,3" stop="1,-1"/>
|
||||||
|
<lineStyle kind="LINEAFTER" colorName="#e6e6e6" start="1,3" stop="1,-1"/>
|
||||||
|
<lineStyle kind="LINEABOVE" colorName="#e6e6e6" start="1,3" stop="1,3"/>
|
||||||
|
<lineStyle kind="LINEBELOW" colorName="#e6e6e6" start="1,-1" stop="1,-1"/>
|
||||||
|
<lineStyle kind="LINEBEFORE" colorName="#e6e6e6" start="0,4" stop="0,-1"/>
|
||||||
|
<lineStyle kind="LINEABOVE" colorName="#e6e6e6" start="0,4" stop="0,4"/>
|
||||||
|
<lineStyle kind="LINEBELOW" colorName="#e6e6e6" start="0,-1" stop="0,-1"/>
|
||||||
|
<lineStyle kind="LINEBEFORE" colorName="#e6e6e6" start="1,4" stop="1,-1"/>
|
||||||
|
<lineStyle kind="LINEAFTER" colorName="#e6e6e6" start="1,4" stop="1,-1"/>
|
||||||
|
<lineStyle kind="LINEABOVE" colorName="#e6e6e6" start="1,4" stop="1,4"/>
|
||||||
|
<lineStyle kind="LINEBELOW" colorName="#e6e6e6" start="1,-1" stop="1,-1"/>
|
||||||
|
</blockTableStyle>
|
||||||
|
<blockTableStyle id="Table7">
|
||||||
|
<blockAlignment value="LEFT"/>
|
||||||
|
<blockValign value="TOP"/>
|
||||||
|
<lineStyle kind="LINEBEFORE" colorName="#e6e6e6" start="0,0" stop="0,-1"/>
|
||||||
|
<lineStyle kind="LINEABOVE" colorName="#e6e6e6" start="0,0" stop="0,0"/>
|
||||||
|
<lineStyle kind="LINEBELOW" colorName="#e6e6e6" start="0,-1" stop="0,-1"/>
|
||||||
|
<lineStyle kind="LINEBEFORE" colorName="#e6e6e6" start="1,0" stop="1,-1"/>
|
||||||
|
<lineStyle kind="LINEAFTER" colorName="#e6e6e6" start="1,0" stop="1,-1"/>
|
||||||
|
<lineStyle kind="LINEABOVE" colorName="#e6e6e6" start="1,0" stop="1,0"/>
|
||||||
|
<lineStyle kind="LINEBELOW" colorName="#e6e6e6" start="1,-1" stop="1,-1"/>
|
||||||
|
</blockTableStyle>
|
||||||
|
<blockTableStyle id="Table9">
|
||||||
|
<blockAlignment value="LEFT"/>
|
||||||
|
<blockValign value="TOP"/>
|
||||||
|
<lineStyle kind="LINEBEFORE" colorName="#e6e6e6" start="0,0" stop="0,-1"/>
|
||||||
|
<lineStyle kind="LINEABOVE" colorName="#e6e6e6" start="0,0" stop="0,0"/>
|
||||||
|
<lineStyle kind="LINEBELOW" colorName="#e6e6e6" start="0,-1" stop="0,-1"/>
|
||||||
|
<lineStyle kind="LINEBEFORE" colorName="#e6e6e6" start="1,0" stop="1,-1"/>
|
||||||
|
<lineStyle kind="LINEAFTER" colorName="#e6e6e6" start="1,0" stop="1,-1"/>
|
||||||
|
<lineStyle kind="LINEABOVE" colorName="#e6e6e6" start="1,0" stop="1,0"/>
|
||||||
|
<lineStyle kind="LINEBELOW" colorName="#e6e6e6" start="1,-1" stop="1,-1"/>
|
||||||
|
</blockTableStyle>
|
||||||
|
<blockTableStyle id="Table10">
|
||||||
|
<blockAlignment value="LEFT"/>
|
||||||
|
<blockValign value="TOP"/>
|
||||||
|
<lineStyle kind="LINEBEFORE" colorName="#e6e6e6" start="0,0" stop="0,-1"/>
|
||||||
|
<lineStyle kind="LINEABOVE" colorName="#e6e6e6" start="0,0" stop="0,0"/>
|
||||||
|
<lineStyle kind="LINEBELOW" colorName="#e6e6e6" start="0,-1" stop="0,-1"/>
|
||||||
|
<lineStyle kind="LINEBEFORE" colorName="#e6e6e6" start="1,0" stop="1,-1"/>
|
||||||
|
<lineStyle kind="LINEAFTER" colorName="#e6e6e6" start="1,0" stop="1,-1"/>
|
||||||
|
<lineStyle kind="LINEABOVE" colorName="#e6e6e6" start="1,0" stop="1,0"/>
|
||||||
|
<lineStyle kind="LINEBELOW" colorName="#e6e6e6" start="1,-1" stop="1,-1"/>
|
||||||
|
</blockTableStyle>
|
||||||
|
<blockTableStyle id="Table11">
|
||||||
|
<blockAlignment value="LEFT"/>
|
||||||
|
<blockValign value="TOP"/>
|
||||||
|
<lineStyle kind="LINEBEFORE" colorName="#e6e6e6" start="0,0" stop="0,-1"/>
|
||||||
|
<lineStyle kind="LINEABOVE" colorName="#e6e6e6" start="0,0" stop="0,0"/>
|
||||||
|
<lineStyle kind="LINEBELOW" colorName="#e6e6e6" start="0,-1" stop="0,-1"/>
|
||||||
|
<lineStyle kind="LINEBEFORE" colorName="#e6e6e6" start="1,0" stop="1,-1"/>
|
||||||
|
<lineStyle kind="LINEAFTER" colorName="#e6e6e6" start="1,0" stop="1,-1"/>
|
||||||
|
<lineStyle kind="LINEABOVE" colorName="#e6e6e6" start="1,0" stop="1,0"/>
|
||||||
|
<lineStyle kind="LINEBELOW" colorName="#e6e6e6" start="1,-1" stop="1,-1"/>
|
||||||
|
</blockTableStyle>
|
||||||
|
<blockTableStyle id="Table2">
|
||||||
|
<blockAlignment value="LEFT"/>
|
||||||
|
<blockValign value="TOP"/>
|
||||||
|
<lineStyle kind="LINEBELOW" colorName="#000000" start="0,-1" stop="0,-1"/>
|
||||||
|
<lineStyle kind="LINEBELOW" colorName="#000000" start="1,-1" stop="1,-1"/>
|
||||||
|
<lineStyle kind="LINEBELOW" colorName="#000000" start="2,-1" stop="2,-1"/>
|
||||||
|
<lineStyle kind="LINEBELOW" colorName="#000000" start="3,-1" stop="3,-1"/>
|
||||||
|
<lineStyle kind="LINEBELOW" colorName="#000000" start="4,-1" stop="4,-1"/>
|
||||||
|
<lineStyle kind="LINEBELOW" colorName="#000000" start="5,-1" stop="5,-1"/>
|
||||||
|
<lineStyle kind="LINEBELOW" colorName="#000000" start="6,-1" stop="6,-1"/>
|
||||||
|
<lineStyle kind="LINEBELOW" colorName="#000000" start="7,-1" stop="7,-1"/>
|
||||||
|
</blockTableStyle>
|
||||||
|
<blockTableStyle id="Table3">
|
||||||
|
<blockAlignment value="LEFT"/>
|
||||||
|
<blockValign value="TOP"/>
|
||||||
|
<lineStyle kind="LINEBELOW" colorName="#999999" start="0,-1" stop="0,-1"/>
|
||||||
|
</blockTableStyle>
|
||||||
|
<blockTableStyle id="Table5">
|
||||||
|
<blockAlignment value="LEFT"/>
|
||||||
|
<blockValign value="TOP"/>
|
||||||
|
<lineStyle kind="LINEBELOW" colorName="#e6e6e6" start="0,-1" stop="0,-1"/>
|
||||||
|
<lineStyle kind="LINEBELOW" colorName="#e6e6e6" start="1,-1" stop="1,-1"/>
|
||||||
|
<lineStyle kind="LINEBELOW" colorName="#e6e6e6" start="2,-1" stop="2,-1"/>
|
||||||
|
<lineStyle kind="LINEBELOW" colorName="#e6e6e6" start="3,-1" stop="3,-1"/>
|
||||||
|
</blockTableStyle>
|
||||||
|
<blockTableStyle id="Table6">
|
||||||
|
<blockAlignment value="LEFT"/>
|
||||||
|
<blockValign value="TOP"/>
|
||||||
|
<lineStyle kind="LINEBELOW" colorName="#e6e6e6" start="0,-1" stop="0,-1"/>
|
||||||
|
<lineStyle kind="LINEBELOW" colorName="#e6e6e6" start="1,-1" stop="1,-1"/>
|
||||||
|
<lineStyle kind="LINEBELOW" colorName="#e6e6e6" start="2,-1" stop="2,-1"/>
|
||||||
|
<lineStyle kind="LINEBELOW" colorName="#e6e6e6" start="3,-1" stop="3,-1"/>
|
||||||
|
<lineStyle kind="LINEBELOW" colorName="#e6e6e6" start="4,-1" stop="4,-1"/>
|
||||||
|
<lineStyle kind="LINEBELOW" colorName="#e6e6e6" start="5,-1" stop="5,-1"/>
|
||||||
|
<lineStyle kind="LINEBELOW" colorName="#e6e6e6" start="6,-1" stop="6,-1"/>
|
||||||
|
<lineStyle kind="LINEBELOW" colorName="#e6e6e6" start="7,-1" stop="7,-1"/>
|
||||||
|
</blockTableStyle>
|
||||||
|
<blockTableStyle id="Table8-L">
|
||||||
|
<blockAlignment value="LEFT"/>
|
||||||
|
<blockValign value="TOP"/>
|
||||||
|
<lineStyle kind="LINEBELOW" colorName="#000000" start="0,-1" stop="0,-1"/>
|
||||||
|
<lineStyle kind="LINEBELOW" colorName="#000000" start="1,-1" stop="1,-1"/>
|
||||||
|
<lineStyle kind="LINEBELOW" colorName="#000000" start="2,-1" stop="2,-1"/>
|
||||||
|
<lineStyle kind="LINEBELOW" colorName="#000000" start="3,-1" stop="3,-1"/>
|
||||||
|
<lineStyle kind="LINEBELOW" colorName="#000000" start="4,-1" stop="4,-1"/>
|
||||||
|
<lineStyle kind="LINEBELOW" colorName="#000000" start="5,-1" stop="5,-1"/>
|
||||||
|
<lineStyle kind="LINEBELOW" colorName="#000000" start="6,-1" stop="6,-1"/>
|
||||||
|
<lineStyle kind="LINEBELOW" colorName="#000000" start="7,-1" stop="7,-1"/>
|
||||||
|
<lineStyle kind="LINEBELOW" colorName="#000000" start="8,-1" stop="8,-1"/>
|
||||||
|
</blockTableStyle>
|
||||||
|
<blockTableStyle id="Table8">
|
||||||
|
<blockAlignment value="LEFT"/>
|
||||||
|
<blockValign value="TOP"/>
|
||||||
|
<lineStyle kind="LINEBELOW" colorName="#000000" start="0,-1" stop="0,-1"/>
|
||||||
|
<lineStyle kind="LINEBELOW" colorName="#000000" start="1,-1" stop="1,-1"/>
|
||||||
|
<lineStyle kind="LINEBELOW" colorName="#000000" start="2,-1" stop="2,-1"/>
|
||||||
|
<lineStyle kind="LINEBELOW" colorName="#000000" start="3,-1" stop="3,-1"/>
|
||||||
|
<lineStyle kind="LINEBELOW" colorName="#000000" start="4,-1" stop="4,-1"/>
|
||||||
|
<lineStyle kind="LINEBELOW" colorName="#000000" start="5,-1" stop="5,-1"/>
|
||||||
|
<lineStyle kind="LINEBELOW" colorName="#000000" start="6,-1" stop="6,-1"/>
|
||||||
|
<lineStyle kind="LINEBELOW" colorName="#000000" start="7,-1" stop="7,-1"/>
|
||||||
|
<lineStyle kind="LINEBELOW" colorName="#000000" start="8,-1" stop="8,-1"/>
|
||||||
|
</blockTableStyle>
|
||||||
|
<blockTableStyle id="Table12">
|
||||||
|
<blockAlignment value="LEFT"/>
|
||||||
|
<blockValign value="TOP"/>
|
||||||
|
<lineStyle kind="LINEBELOW" colorName="#999999" start="0,-1" stop="0,-1"/>
|
||||||
|
</blockTableStyle>
|
||||||
|
<blockTableStyle id="Table13">
|
||||||
|
<blockAlignment value="LEFT"/>
|
||||||
|
<blockValign value="TOP"/>
|
||||||
|
<lineStyle kind="LINEBELOW" colorName="#e6e6e6" start="0,-1" stop="0,-1"/>
|
||||||
|
<lineStyle kind="LINEBELOW" colorName="#e6e6e6" start="1,-1" stop="1,-1"/>
|
||||||
|
<lineStyle kind="LINEBELOW" colorName="#e6e6e6" start="2,-1" stop="2,-1"/>
|
||||||
|
<lineStyle kind="LINEBELOW" colorName="#e6e6e6" start="3,-1" stop="3,-1"/>
|
||||||
|
<lineStyle kind="LINEBELOW" colorName="#e6e6e6" start="4,-1" stop="4,-1"/>
|
||||||
|
</blockTableStyle>
|
||||||
|
<blockTableStyle id="Table14">
|
||||||
|
<blockAlignment value="LEFT"/>
|
||||||
|
<blockValign value="TOP"/>
|
||||||
|
<lineStyle kind="LINEBELOW" colorName="#e6e6e6" start="0,-1" stop="0,-1"/>
|
||||||
|
<lineStyle kind="LINEBELOW" colorName="#e6e6e6" start="1,-1" stop="1,-1"/>
|
||||||
|
<lineStyle kind="LINEBELOW" colorName="#e6e6e6" start="2,-1" stop="2,-1"/>
|
||||||
|
<lineStyle kind="LINEBELOW" colorName="#e6e6e6" start="3,-1" stop="3,-1"/>
|
||||||
|
<lineStyle kind="LINEBELOW" colorName="#e6e6e6" start="4,-1" stop="4,-1"/>
|
||||||
|
<lineStyle kind="LINEBELOW" colorName="#e6e6e6" start="5,-1" stop="5,-1"/>
|
||||||
|
<lineStyle kind="LINEBELOW" colorName="#e6e6e6" start="6,-1" stop="6,-1"/>
|
||||||
|
<lineStyle kind="LINEBELOW" colorName="#e6e6e6" start="7,-1" stop="7,-1"/>
|
||||||
|
<lineStyle kind="LINEBELOW" colorName="#e6e6e6" start="8,-1" stop="8,-1"/>
|
||||||
|
</blockTableStyle>
|
||||||
|
<initialize>
|
||||||
|
<paraStyle name="all" alignment="justify"/>
|
||||||
|
</initialize>
|
||||||
|
<paraStyle name="Standard" fontName="Helvetica"/>
|
||||||
|
<paraStyle name="Heading" fontName="Helvetica" fontSize="12.0" leading="15" spaceBefore="12.0" spaceAfter="6.0"/>
|
||||||
|
<paraStyle name="Text body" fontName="Helvetica" spaceBefore="0.0" spaceAfter="6.0"/>
|
||||||
|
<paraStyle name="List" fontName="Helvetica" spaceBefore="0.0" spaceAfter="6.0"/>
|
||||||
|
<paraStyle name="Caption" fontName="Helvetica-Oblique" fontSize="8.0" leading="10" spaceBefore="6.0" spaceAfter="6.0"/>
|
||||||
|
<paraStyle name="Index" fontName="Helvetica" fontSize="9.0" leading="11"/>
|
||||||
|
<paraStyle name="Footer" fontName="Helvetica"/>
|
||||||
|
<paraStyle name="Table Contents" fontName="Helvetica"/>
|
||||||
|
<paraStyle name="Table Heading" fontName="Helvetica" alignment="CENTER"/>
|
||||||
|
<paraStyle name="Horizontal Line" fontName="Helvetica" fontSize="6.0" leading="8" spaceBefore="0.0" spaceAfter="14.0"/>
|
||||||
|
<paraStyle name="terp_header" fontName="Helvetica-Bold" fontSize="15.0" leading="19" alignment="LEFT" spaceBefore="12.0" spaceAfter="6.0"/>
|
||||||
|
<paraStyle name="Heading 9" fontName="Helvetica-Bold" fontSize="75%" leading="NaN" spaceBefore="12.0" spaceAfter="6.0"/>
|
||||||
|
<paraStyle name="terp_tblheader_General" fontName="Helvetica-Bold" fontSize="8.0" leading="10" alignment="LEFT" spaceBefore="6.0" spaceAfter="6.0"/>
|
||||||
|
<paraStyle name="terp_tblheader_Details" fontName="Helvetica-Bold" fontSize="9.0" leading="11" alignment="LEFT" spaceBefore="6.0" spaceAfter="6.0"/>
|
||||||
|
<paraStyle name="terp_default_8" fontName="Helvetica" fontSize="7.0" leading="9" alignment="LEFT" spaceBefore="0.0" spaceAfter="0.0"/>
|
||||||
|
<paraStyle name="terp_default_Bold_8" fontName="Helvetica-Bold" fontSize="7.0" leading="9" alignment="LEFT" spaceBefore="0.0" spaceAfter="0.0"/>
|
||||||
|
<paraStyle name="terp_tblheader_General_Centre" fontName="Helvetica-Bold" fontSize="8.0" leading="10" alignment="CENTER" spaceBefore="6.0" spaceAfter="6.0"/>
|
||||||
|
<paraStyle name="terp_tblheader_General_Right" fontName="Helvetica-Bold" fontSize="8.0" leading="10" alignment="RIGHT" spaceBefore="6.0" spaceAfter="6.0"/>
|
||||||
|
<paraStyle name="terp_tblheader_Details_Centre" fontName="Helvetica-Bold" fontSize="9.0" leading="11" alignment="CENTER" spaceBefore="6.0" spaceAfter="6.0"/>
|
||||||
|
<paraStyle name="terp_tblheader_Details_Right" fontName="Helvetica-Bold" fontSize="9.0" leading="11" alignment="RIGHT" spaceBefore="6.0" spaceAfter="6.0"/>
|
||||||
|
<paraStyle name="terp_default_Right_8" fontName="Helvetica" fontSize="7.0" leading="9" alignment="RIGHT" spaceBefore="0.0" spaceAfter="0.0"/>
|
||||||
|
<paraStyle name="terp_default_Centre_8" fontName="Helvetica" fontSize="7.0" leading="9" alignment="CENTER" spaceBefore="0.0" spaceAfter="0.0"/>
|
||||||
|
<paraStyle name="terp_header_Right" fontName="Helvetica-Bold" fontSize="15.0" leading="19" alignment="LEFT" spaceBefore="12.0" spaceAfter="6.0"/>
|
||||||
|
<paraStyle name="terp_header_Centre" fontName="Helvetica-Bold" fontSize="12.0" leading="15" alignment="CENTER" spaceBefore="6.0" spaceAfter="3.0"/>
|
||||||
|
<paraStyle name="terp_header_Centre11" fontName="Helvetica-Bold" fontSize="11.0" leading="15" alignment="CENTER" spaceBefore="6.0" spaceAfter="3.0"/>
|
||||||
|
<paraStyle name="terp_default_address" fontName="Helvetica" fontSize="10.0" leading="13" alignment="LEFT" spaceBefore="0.0" spaceAfter="0.0"/>
|
||||||
|
<paraStyle name="terp_default_9" fontName="Helvetica" fontSize="8.0" leading="10" alignment="LEFT" spaceBefore="0.0" spaceAfter="0.0"/>
|
||||||
|
<paraStyle name="terp_default_Bold_9" fontName="Helvetica-Bold" fontSize="8.0" leading="11" alignment="LEFT" spaceBefore="0.0" spaceAfter="0.0"/>
|
||||||
|
<paraStyle name="terp_default_Centre_9" fontName="Helvetica" fontSize="8.0" leading="10" alignment="CENTER" spaceBefore="0.0" spaceAfter="0.0"/>
|
||||||
|
<paraStyle name="terp_default_Right_9" fontName="Helvetica" fontSize="8.0" leading="10" alignment="RIGHT" spaceBefore="0.0" spaceAfter="0.0"/>
|
||||||
|
<paraStyle name="terp_default_9_italic" fontName="Helvetica-Oblique" fontSize="8.0" leading="10" alignment="LEFT" spaceBefore="0.0" spaceAfter="0.0"/>
|
||||||
|
<paraStyle name="terp_default_Bold_9_Right" fontName="Helvetica-Bold" fontSize="8.0" leading="11" alignment="RIGHT" spaceBefore="0.0" spaceAfter="0.0"/>
|
||||||
|
<paraStyle name="terp_default_2" fontName="Helvetica" fontSize="2.0" leading="3" alignment="LEFT" spaceBefore="0.0" spaceAfter="0.0"/>
|
||||||
|
<paraStyle name="Heading 3" fontName="Helvetica-Bold" fontSize="14.0" leading="17" spaceBefore="12.0" spaceAfter="6.0"/>
|
||||||
|
<images/>
|
||||||
|
</stylesheet>
|
||||||
|
<story>
|
||||||
|
<pto>
|
||||||
|
<para style="terp_default_8">[[ repeatIn(objects, 'stmt') ]]</para>
|
||||||
|
<para style="terp_default_8">[[ setLang(stmt.lang) ]]</para>
|
||||||
|
<pto_header>
|
||||||
|
</pto_header>
|
||||||
|
<section>
|
||||||
|
<para style="terp_header_Centre">Reconciliation Summary </para>
|
||||||
|
<para style="terp_header_Centre11"><b>Period Ending [[ (stmt.ending_date) or '' ]]</b></para>
|
||||||
|
</section>
|
||||||
|
<para style="terp_default_8">
|
||||||
|
<font color="white"> </font>
|
||||||
|
</para>
|
||||||
|
<para style="terp_default_8">
|
||||||
|
<font color="white"> </font>
|
||||||
|
</para>
|
||||||
|
<section>
|
||||||
|
<para style="terp_default_8">[[ (not stmt.account_id.currency_id) and removeParentNode('section') or '' ]]</para>
|
||||||
|
<blockTable rowHeights="0.55cm" colWidths="240.0,210.0,70.0">
|
||||||
|
<tr>
|
||||||
|
<td><para style="terp_default_Bold_9">Initial Balance</para></td>
|
||||||
|
<td/>
|
||||||
|
<td><para style="terp_default_Bold_9_Right">[[ stmt.starting_balance ]]</para></td>
|
||||||
|
</tr>
|
||||||
|
<tr/>
|
||||||
|
</blockTable>
|
||||||
|
<blockTable rowHeights="0.55cm" colWidths="70.0,240.0,140.0,70.0">
|
||||||
|
<tr>
|
||||||
|
<td/>
|
||||||
|
<td><para style="terp_default_Bold_9">Cleared Transactions</para></td>
|
||||||
|
<td/>
|
||||||
|
<td/>
|
||||||
|
</tr>
|
||||||
|
</blockTable>
|
||||||
|
<blockTable rowHeights="0.55cm" colWidths="90.0,220.0,70.0,70.0,70.0">
|
||||||
|
<tr>
|
||||||
|
<td/>
|
||||||
|
<td><para style="terp_default_Bold_9">Deposits & Credits-[[ (stmt.sum_of_debits_lines) or '']] items</para></td>
|
||||||
|
<td><para style="terp_default_Right_8">[[ (stmt.sum_of_debits) or '']]</para></td>
|
||||||
|
<td><para style="terp_default_Right_8">[[ (stmt.sum_of_debits_cur) or '']]</para></td>
|
||||||
|
<td/>
|
||||||
|
</tr>
|
||||||
|
<tr>
|
||||||
|
<td/>
|
||||||
|
<td><para style="terp_default_Bold_9">Checks & Payments-[[ (stmt.sum_of_credits_lines) or '']] items</para></td>
|
||||||
|
<td><para style="terp_default_Right_8">[[ (stmt.sum_of_credits) or '']]</para></td>
|
||||||
|
<td><para style="terp_default_Right_8">[[ (stmt.sum_of_credits_cur) or '']]</para></td>
|
||||||
|
<td/>
|
||||||
|
</tr>
|
||||||
|
</blockTable>
|
||||||
|
<blockTable rowHeights="0.55cm" colWidths="70.0,240.0,70.0,70.0,70.0">
|
||||||
|
<tr>
|
||||||
|
<td/>
|
||||||
|
<td><para style="terp_default_Bold_9">Total Cleared Transactions</para></td>
|
||||||
|
<td><para style="terp_default_Right_8">[[ formatLang(stmt.sum_of_debits - stmt.sum_of_credits) or '']]</para></td>
|
||||||
|
<td><para style="terp_default_Right_8">[[ formatLang(stmt.sum_of_debits_cur - stmt.sum_of_credits_cur) or '']]</para></td>
|
||||||
|
<td/>
|
||||||
|
</tr>
|
||||||
|
</blockTable>
|
||||||
|
<blockTable rowHeights="0.55cm" colWidths="240.0,140.0,70.0,70.0">
|
||||||
|
<tr>
|
||||||
|
<td><para style="terp_default_Bold_9">Cleared Balance</para></td>
|
||||||
|
<td><para style="terp_default_Right_8">[[ (stmt.cleared_balance) or '']]</para></td>
|
||||||
|
<td><para style="terp_default_Right_8">[[ (stmt.cleared_balance_cur) or '']]</para></td>
|
||||||
|
<td><para style="terp_default_Bold_9_Right">[[ (stmt.cleared_balance_cur) or '']]</para></td>
|
||||||
|
</tr>
|
||||||
|
</blockTable>
|
||||||
|
<blockTable rowHeights="0.55cm" colWidths="240.0,210.0,70.0">
|
||||||
|
<tr>
|
||||||
|
<td><para style="terp_default_Bold_9">Ending Balance</para></td>
|
||||||
|
<td/>
|
||||||
|
<td><para style="terp_default_Bold_9_Right">[[ (stmt.ending_balance) or '']]</para></td>
|
||||||
|
</tr>
|
||||||
|
</blockTable>
|
||||||
|
</section>
|
||||||
|
<section>
|
||||||
|
<para style="terp_default_8">[[ stmt.account_id.currency_id and removeParentNode('section') or '' ]]</para>
|
||||||
|
<blockTable rowHeights="0.55cm" colWidths="240.0,210.0,70.0">
|
||||||
|
<tr>
|
||||||
|
<td><para style="terp_default_Bold_9">Initial Balance</para></td>
|
||||||
|
<td/>
|
||||||
|
<td><para style="terp_default_Bold_9_Right">[[ stmt.starting_balance ]]</para></td>
|
||||||
|
</tr>
|
||||||
|
<tr/>
|
||||||
|
</blockTable>
|
||||||
|
<blockTable rowHeights="0.55cm" colWidths="70.0,240.0,140.0,70.0">
|
||||||
|
<tr>
|
||||||
|
<td/>
|
||||||
|
<td><para style="terp_default_Bold_9">Cleared Transactions</para></td>
|
||||||
|
<td/>
|
||||||
|
<td/>
|
||||||
|
</tr>
|
||||||
|
</blockTable>
|
||||||
|
<blockTable rowHeights="0.55cm" colWidths="90.0,220.0,70.0,70.0,70.0">
|
||||||
|
<tr>
|
||||||
|
<td/>
|
||||||
|
<td><para style="terp_default_Bold_9">Deposits & Credits-[[ (stmt.sum_of_debits_lines) or '']] items</para></td>
|
||||||
|
<td/>
|
||||||
|
<td><para style="terp_default_Right_8">[[ (stmt.sum_of_debits) or '']]</para></td>
|
||||||
|
<td/>
|
||||||
|
</tr>
|
||||||
|
<tr>
|
||||||
|
<td/>
|
||||||
|
<td><para style="terp_default_Bold_9">Checks & Payments-[[ (stmt.sum_of_credits_lines) or '']] items</para></td>
|
||||||
|
<td/>
|
||||||
|
<td><para style="terp_default_Right_8">[[ (stmt.sum_of_credits) or '']]</para></td>
|
||||||
|
<td/>
|
||||||
|
</tr>
|
||||||
|
</blockTable>
|
||||||
|
<blockTable rowHeights="0.55cm" colWidths="70.0,240.0,70.0,70.0,70.0">
|
||||||
|
<tr>
|
||||||
|
<td/>
|
||||||
|
<td><para style="terp_default_Bold_9">Total Cleared Transactions</para></td>
|
||||||
|
<td/>
|
||||||
|
<td><para style="terp_default_Right_8">[[ formatLang(stmt.sum_of_debits - stmt.sum_of_credits) or '']]</para></td>
|
||||||
|
<td/>
|
||||||
|
</tr>
|
||||||
|
</blockTable>
|
||||||
|
<blockTable rowHeights="0.55cm" colWidths="240.0,140.0,70.0,70.0">
|
||||||
|
<tr>
|
||||||
|
<td><para style="terp_default_Bold_9">Cleared Balance</para></td>
|
||||||
|
<td/>
|
||||||
|
<td><para style="terp_default_Right_8">[[ (stmt.cleared_balance) or '']]</para></td>
|
||||||
|
<td><para style="terp_default_Bold_9_Right">[[ (stmt.cleared_balance) or '']]</para></td>
|
||||||
|
</tr>
|
||||||
|
</blockTable>
|
||||||
|
<blockTable rowHeights="0.55cm" colWidths="240.0,210.0,70.0">
|
||||||
|
<tr>
|
||||||
|
<td><para style="terp_default_Bold_9">Ending Balance</para></td>
|
||||||
|
<td/>
|
||||||
|
<td><para style="terp_default_Bold_9_Right">[[ (stmt.ending_balance) or '']]</para></td>
|
||||||
|
</tr>
|
||||||
|
</blockTable>
|
||||||
|
</section>
|
||||||
|
</pto>
|
||||||
|
</story>
|
||||||
|
</document>
|
|
@ -0,0 +1,25 @@
|
||||||
|
<?xml version="1.0" encoding="utf-8"?>
|
||||||
|
<openerp>
|
||||||
|
<data>
|
||||||
|
|
||||||
|
<!-- Groups - Bank Stmt Preparer , Bank Stmt Verifier -->
|
||||||
|
|
||||||
|
<record id="group_bank_stmt_preparer" model="res.groups">
|
||||||
|
<field name="name">Bank Statement Preparer</field>
|
||||||
|
</record>
|
||||||
|
|
||||||
|
<record id="group_bank_stmt_verifier" model="res.groups">
|
||||||
|
<field name="name">Bank Statement Verifier</field>
|
||||||
|
</record>
|
||||||
|
|
||||||
|
<!-- Security Rule for Bank Rec Stmts -->
|
||||||
|
|
||||||
|
<record id="npg_bank_account_reconciliation_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>
|
||||||
|
|
||||||
|
</data>
|
||||||
|
</openerp>
|
|
@ -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,230 @@
|
||||||
|
<?xml version="1.0" encoding="utf-8"?>
|
||||||
|
<openerp>
|
||||||
|
<data>
|
||||||
|
|
||||||
|
<!-- 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" version="7.0">
|
||||||
|
<header>
|
||||||
|
<button name="action_cancel" type="object" states="draft,to_be_reviewed" string="Cancel" icon="gtk-cancel"/>
|
||||||
|
<button name="action_review" type="object" states="draft" string="Ready for Review" icon="gtk-go-forward"/>
|
||||||
|
<button name="action_process" type="object" states="to_be_reviewed" string="Process" icon="gtk-apply"/>
|
||||||
|
<button name="action_cancel_draft" states="cancel,done" string="Set to Draft" type="object" icon="gtk-convert"/>
|
||||||
|
<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>
|
||||||
|
<group col="4" colspan="4">
|
||||||
|
<field name="account_id" placeholder="Enter Account Name" on_change="onchange_account_id(account_id, ending_date, suppress_ending_date_filter)"/>
|
||||||
|
<field name="name" placeholder="Enter Name"/>
|
||||||
|
<field name="ending_date" placeholder="Enter ending date" on_change="onchange_account_id(account_id, ending_date, suppress_ending_date_filter)"/>
|
||||||
|
<field name="starting_balance" placeholder="Enter Starting Balance"/>
|
||||||
|
<field name="ending_balance" placeholder="Enter Ending Balance"/>
|
||||||
|
<field name="last_ending_date" placeholder="Last Statement Date" readonly="1"/>
|
||||||
|
<field name="suppress_ending_date_filter" on_change="onchange_account_id(account_id, ending_date, suppress_ending_date_filter)"/>
|
||||||
|
<field name="company_id" groups="base.group_multi_company" placeholder="Enter Company Name"/>
|
||||||
|
</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" version="7.0">
|
||||||
|
<field name="cleared_bank_account"/>
|
||||||
|
<field name="date" readonly="1"/>
|
||||||
|
<field name="name" readonly="1"/>
|
||||||
|
<field name="ref" readonly="1"/>
|
||||||
|
<field name="partner_id" readonly="1"/>
|
||||||
|
<field name="amount" readonly="1"/>
|
||||||
|
<field name="amountcur" readonly="1" />
|
||||||
|
<field name="currency_id" readonly="1"/>
|
||||||
|
<field name="research_required" readonly="1"/>
|
||||||
|
</form>
|
||||||
|
<tree string="Deposits, Credits, and Interest" editable="top" mute_additem="draft,to_be_reviewed,done, cancel">
|
||||||
|
<field name="cleared_bank_account"/>
|
||||||
|
<field name="date" readonly="1"/>
|
||||||
|
<field name="name" readonly="1"/>
|
||||||
|
<field name="ref" readonly="1"/>
|
||||||
|
<field name="partner_id" readonly="1"/>
|
||||||
|
<field name="amount" readonly="1"/>
|
||||||
|
<field name="amountcur" readonly="1" />
|
||||||
|
<field name="currency_id" readonly="1"/>
|
||||||
|
<field name="research_required"/>
|
||||||
|
<field name="move_line_id" readonly="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" version="7.0">
|
||||||
|
<field name="cleared_bank_account"/>
|
||||||
|
<field name="date" readonly="1"/>
|
||||||
|
<field name="name" readonly="1"/>
|
||||||
|
<field name="ref" readonly="1"/>
|
||||||
|
<field name="partner_id" readonly="1"/>
|
||||||
|
<field name="amount" readonly="1"/>
|
||||||
|
<field name="amountcur" readonly="1" />
|
||||||
|
<field name="currency_id" readonly="1"/>
|
||||||
|
<field name="research_required" readonly="1"/>
|
||||||
|
</form>
|
||||||
|
<tree string="Checks, Withdrawals, Debits, and Service Charges" editable="top" mute_additem="draft,to_be_reviewed,done, cancel">
|
||||||
|
<field name="cleared_bank_account"/>
|
||||||
|
<field name="date" readonly="1"/>
|
||||||
|
<field name="name" readonly="1"/>
|
||||||
|
<field name="ref" readonly="1"/>
|
||||||
|
<field name="partner_id" readonly="1"/>
|
||||||
|
<field name="amount" readonly="1"/>
|
||||||
|
<field name="amountcur" readonly="1" />
|
||||||
|
<field name="currency_id" readonly="1" />
|
||||||
|
<field name="research_required"/>
|
||||||
|
<field name="move_line_id" readonly="1"/>
|
||||||
|
</tree>
|
||||||
|
</field>
|
||||||
|
<group col="2" colspan="1" groups="ursa_npg_bank_account_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="gtk-go-forward"/>
|
||||||
|
<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="gtk-cancel"/>
|
||||||
|
</group>
|
||||||
|
<newline/>
|
||||||
|
<separator string="Totals - Cleared and Uncleared" colspan="2"/>
|
||||||
|
<group name="totals" col="4" colspan="4">
|
||||||
|
|
||||||
|
<group name="total1" col="2" colspan="2">
|
||||||
|
<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" col="2" colspan="2">
|
||||||
|
<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>
|
||||||
|
<newline />
|
||||||
|
<separator string="Balances - Cleared and Uncleared"/>
|
||||||
|
<group name="balances" col="4" colspan="4">
|
||||||
|
<group name="balance1" col="2" colspan="2">
|
||||||
|
<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" col="2" colspan="2">
|
||||||
|
<field name="uncleared_balance" />
|
||||||
|
<field name="uncleared_balance_cur" attrs="{'invisible':[('uncleared_balance_cur','=', 0.0)]}"/>
|
||||||
|
</group>
|
||||||
|
</group>
|
||||||
|
</page>
|
||||||
|
<page string="Other Information">
|
||||||
|
<separator string="Tracking Information" colspan="4"/>
|
||||||
|
<group colspan="2" col="2">
|
||||||
|
<field name="verified_by_user_id" placeholder="Enter user whoever varified"/>
|
||||||
|
</group>
|
||||||
|
<group colspan="2" col="2">
|
||||||
|
<field name="verified_date" placeholder="Enter date of varification"/>
|
||||||
|
</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 icon="terp-document-new" string="Draft" domain="[('state','=','draft')]" help="Statements that haven't yet been confirmed"/>
|
||||||
|
<filter icon="terp-dolar" string="To be Reviewed" domain="[('state','=','to_be_reviewed')]" help="Statements that are ready for review"/>
|
||||||
|
<filter 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 domain="[('verified_by_user_id','=',uid)]" help="Verified by me" icon="terp-personal"/>
|
||||||
|
</field>
|
||||||
|
<newline/>
|
||||||
|
<group expand="0" string="Group By..." colspan="11" col="11" groups="base.group_extended">
|
||||||
|
<filter string="Account" icon="terp-personal" domain="[]" context="{'group_by':'account_id'}"/>
|
||||||
|
<separator orientation="vertical"/>
|
||||||
|
<filter 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>
|
||||||
|
|
||||||
|
<record id="account.menu_bank_statement_tree" model="ir.ui.menu">
|
||||||
|
<field name="groups_id" eval="[(4,ref('base.group_system'))]"/>
|
||||||
|
</record>
|
||||||
|
|
||||||
|
<menuitem
|
||||||
|
icon="STOCK_JUSTIFY_FILL"
|
||||||
|
action="action_bank_acc_rec_statement"
|
||||||
|
id="npg_bank_acc_rec_statement_menu"
|
||||||
|
parent="account.menu_finance_bank_and_cash"
|
||||||
|
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="[('journal_id.type', 'in', ['bank', 'cash']), ('type','=','receipt')]"
|
||||||
|
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="[('journal_id.type', 'in', ['bank', 'cash']), ('type','=','receipt')]"
|
||||||
|
context="{'type':'receipt'}"
|
||||||
|
res_model="account.voucher"
|
||||||
|
src_model="bank.acc.rec.statement"/>
|
||||||
|
|
||||||
|
</data>
|
||||||
|
</openerp>
|
||||||
|
|
|
@ -0,0 +1,40 @@
|
||||||
|
<?xml version="1.0" encoding="utf-8"?>
|
||||||
|
<openerp>
|
||||||
|
<data>
|
||||||
|
<!--- Journal Items -->
|
||||||
|
|
||||||
|
<record id="view_account_move_line_bank_acc_rec_statement_id" model="ir.ui.view">
|
||||||
|
<field name="name">account.move.line.bank.acc.rec.statement.id</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="period_id" position="after">
|
||||||
|
<field name="bank_acc_rec_statement_id"/>
|
||||||
|
</field>
|
||||||
|
<field name="move_id" position="before">
|
||||||
|
<filter 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.bank.acc.rec.statement.id.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>
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
</data>
|
||||||
|
</openerp>
|
Loading…
Reference in New Issue