[MERGE] manual merge of the branch from noviat lp:~noviat/openobject-addons/trunk-account_coda. The bzr merge commande was going crazy because of an initial wrong merge between this branch and the trunk, an extra .bzr folder and because of wrongly removed translations files...

bzr revid: qdp-launchpad@openerp.com-20111223103637-ltq8x53f4tjbmd8b
This commit is contained in:
Quentin (OpenERP) 2011-12-23 11:36:37 +01:00
parent f87971efc6
commit 83486cd725
37 changed files with 5965 additions and 473 deletions

View File

@ -0,0 +1,27 @@
# -*- encoding: utf-8 -*-
##############################################################################
#
# OpenERP, Open Source Management Solution
#
# Copyright (c) 2011 Noviat nv/sa (www.noviat.be). All rights reserved.
#
# 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/>.
#
##############################################################################
import account_bank_statement
import res_company
import res_partner_bank
import report
import wizard

View File

@ -0,0 +1,57 @@
# -*- encoding: utf-8 -*-
##############################################################################
#
# OpenERP, Open Source Management Solution
#
# Copyright (c) 2011 Noviat nv/sa (www.noviat.be). All rights reserved.
#
# 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/>.
#
##############################################################################
{
'name': 'Bank Statement extensions to support e-banking',
'version': '0.3',
'license': 'AGPL-3',
'author': 'Noviat',
'category': 'Generic Modules/Accounting',
'description': '''
Module that extends the standard account_bank_statement_line object for improved e-banking support.
Adds
- valuta date
- batch payments
- traceability of changes to bank statement lines
- bank statement line views
- bank statements balances report
- performance improvements for digital import of bank statement (via 'ebanking_import' context flag)
- name_search on res.partner.bank enhanced to allow search on bank and iban account numbers
- new field bank_ids on res.company to facilitate search on company banks
''',
'depends': ['account'],
'demo_xml': [],
'init_xml': [
],
'update_xml' : [
'security/ir.model.access.csv',
'account_bank_statement_view.xml',
'company_view.xml',
'account_bank_statement_report.xml',
'wizard/confirm_statement_line_wizard.xml',
'wizard/cancel_statement_line_wizard.xml',
'data/account_bank_statement_extensions_data.xml',
],
'active': False,
'installable': True,
}

View File

@ -0,0 +1,143 @@
# -*- encoding: utf-8 -*-
##############################################################################
#
# OpenERP, Open Source Management Solution
#
# Copyright (c) 2011 Noviat nv/sa (www.noviat.be). All rights reserved.
#
# 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/>.
#
##############################################################################
import time
from osv import osv, fields
import decimal_precision as dp
import netsvc
from tools.translate import _
class account_bank_statement(osv.osv):
_inherit = 'account.bank.statement'
def write(self, cr, uid, ids, vals, context=None):
if context is None:
context = {}
# bypass obsolete statement line resequencing
if vals.get('line_ids', False) or context.get('ebanking_import', False):
res = super(osv.osv, self).write(cr, uid, ids, vals, context=context)
else:
res = super(account_bank_statement, self).write(cr, uid, ids, vals, context=context)
return res
def button_confirm_bank(self, cr, uid, ids, context=None):
super(account_bank_statement, self).button_confirm_bank(cr, uid, ids, context=context)
for st in self.browse(cr, uid, ids, context=context):
cr.execute("UPDATE account_bank_statement_line \
SET state='confirm' WHERE id in %s ",
(tuple([x.id for x in st.line_ids]),))
return True
def button_cancel(self, cr, uid, ids, context=None):
super(account_bank_statement, self).button_cancel(cr, uid, ids, context=context)
for st in self.browse(cr, uid, ids, context=context):
cr.execute("UPDATE account_bank_statement_line \
SET state='draft' WHERE id in %s ",
(tuple([x.id for x in st.line_ids]),))
return True
account_bank_statement()
class account_bank_statement_line_global(osv.osv):
_name = 'account.bank.statement.line.global'
_description = 'Batch Payment Info'
_columns = {
'name': fields.char('Communication', size=128, required=True),
'code': fields.char('Code', size=64, required=True),
'parent_id': fields.many2one('account.bank.statement.line.global', 'Parent Code', ondelete='cascade'),
'child_ids': fields.one2many('account.bank.statement.line.global', 'parent_id', 'Child Codes'),
'type': fields.selection([
('iso20022', 'ISO 20022'),
('coda', 'CODA'),
('manual', 'Manual'),
], 'Type', required=True),
'amount': fields.float('Amount', digits_compute=dp.get_precision('Account')),
'bank_statement_line_ids': fields.one2many('account.bank.statement.line', 'globalisation_id', 'Bank Statement Lines'),
}
_rec_name = 'code'
_defaults = {
'code': lambda s,c,u,ctx={}: s.pool.get('ir.sequence').get(c, u, 'account.bank.statement.line.global'),
'name': '/',
}
_sql_constraints = [
('code_uniq', 'unique (code)', 'The code must be unique !'),
]
def name_search(self, cr, user, name, args=None, operator='ilike', context=None, limit=100):
if not args:
args = []
ids = []
if name:
ids = self.search(cr, user, [('code', '=ilike', name)] + args, limit=limit)
if not ids:
ids = self.search(cr, user, [('name', operator, name)] + args, limit=limit)
if not ids and len(name.split()) >= 2:
#Separating code and name for searching
operand1, operand2 = name.split(' ', 1) #name can contain spaces
ids = self.search(cr, user, [('code', '=like', operand1), ('name', operator, operand2)] + args, limit=limit)
else:
ids = self.search(cr, user, args, context=context, limit=limit)
return self.name_get(cr, user, ids, context=context)
account_bank_statement_line_global()
class account_bank_statement_line(osv.osv):
_inherit = 'account.bank.statement.line'
_columns = {
'date': fields.date('Entry Date', required=True, states={'confirm': [('readonly', True)]}),
'val_date': fields.date('Valuta Date', states={'confirm': [('readonly', True)]}),
'globalisation_id': fields.many2one('account.bank.statement.line.global', 'Globalisation ID',
states={'confirm': [('readonly', True)]},
help="Code to identify transactions belonging to the same globalisation level within a batch payment"),
'globalisation_amount': fields.related('globalisation_id', 'amount', type='float',
relation='account.bank.statement.line.global', string='Glob. Amount', readonly=True),
'journal_id': fields.related('statement_id', 'journal_id', type='many2one', relation='account.journal', string='Journal', store=True, readonly=True),
'update_date': fields.date('Update Date', required=True, readonly=True),
'update_by': fields.many2one('res.users', 'Updated by', required=True, readonly=True),
'state': fields.selection([('draft', 'Draft'), ('confirm', 'Confirmed')],
'State', required=True, readonly=True),
'counterparty_name': fields.char('Counterparty Name', size=35),
'counterparty_bic': fields.char('Counterparty BIC', size=11),
'counterparty_number': fields.char('Counterparty Number', size=34),
'counterparty_currency': fields.char('Counterparty Currency', size=3),
}
_defaults = {
'update_date': lambda *a: time.strftime('%Y-%m-%d %H:%M:%S'),
'update_by': lambda s, c, u, ctx: u,
'state': 'draft',
}
def unlink(self, cr, uid, ids, context=None):
if context is None:
context = {}
if context.get('block_statement_line_delete', False):
raise osv.except_osv('Warning', _('Delete operation not allowed ! \
Please go to the associated bank statement in order to delete and/or modify this bank statement line'))
return super(account_bank_statement_line, self).unlink(cr, uid, ids, context=context)
def write(self, cr, uid, ids, vals, context=None):
vals['update_date'] = time.strftime('%Y-%m-%d %H:%M:%S')
vals['update_by'] = uid
return super(account_bank_statement_line, self).write(cr, uid, ids, vals, context=context)
account_bank_statement_line()

View File

@ -0,0 +1,16 @@
<?xml version="1.0" encoding="utf-8"?>
<openerp>
<data>
<report
auto="False"
id="bank_statement_balance_report"
model="account.bank.statement"
name="bank.statement.balance.report"
rml="account_bank_statement_extensions/report/bank_statement_balance_report.rml"
header="True"
string="Bank Statement Balances Report"
multi="True"/>
</data>
</openerp>

View File

@ -0,0 +1,171 @@
<?xml version="1.0" ?>
<openerp>
<data>
<!-- Batch Payment Info form -->
<record id="view_statement_line_global_form" model="ir.ui.view">
<field name="name">statement.line.global.form</field>
<field name="model">account.bank.statement.line.global</field>
<field name="type">form</field>
<field name="arch" type="xml">
<form string="Batch Payment Info">
<field name="name"/>
<field name="amount"/>
<field name="code"/>
<field name="parent_id"/>
<field name="type"/>
<notebook colspan="4">
<page string="Transactions">
<field colspan="4" name="bank_statement_line_ids" nolabel="1"/>
</page>
<page string="Child Batch Payments">
<field colspan="4" name="child_ids" nolabel="1">
<tree string="Child Batch Payments">
<field name="name"/>
<field name="amount"/>
<field name="code"/>
</tree>
</field>
</page>
</notebook>
</form>
</field>
</record>
<!-- add Valuta Date and Globalisation id to bank statement line -->
<record id="view_bank_statement_form_add_fields" model="ir.ui.view">
<field name="name">view.bank.statement.form.add.fields</field>
<field name="model">account.bank.statement</field>
<field name="inherit_id" ref="account.view_bank_statement_form"/>
<field name="type">form</field>
<field name="arch" type="xml">
<data>
<xpath expr="/form/notebook/page[@name='statement_line_ids']/field[@name='line_ids']/tree/field[@name='date']" position="after">
<field name="val_date"/>
</xpath>
<xpath expr="/form/notebook/page[@name='statement_line_ids']/field[@name='line_ids']/tree/field[@name='amount']" position="after">
<field name="globalisation_id" string="Glob. Id"/>
</xpath>
<xpath expr="/form/notebook/page[@name='statement_line_ids']/field[@name='line_ids']/form/field[@name='date']" position="after">
<field name="val_date"/>
</xpath>
<xpath expr="/form/notebook/page[@name='statement_line_ids']/field[@name='line_ids']/form/field[@name='amount']" position="after">
<field name="globalisation_id"/>
</xpath>
</data>
</field>
</record>
<!-- Bank Statement Line View -->
<record id="view_bank_statement_line_list" model="ir.ui.view">
<field name="name">bank.statement.line.list</field>
<field name="model">account.bank.statement.line</field>
<field name="type">tree</field>
<field name="arch" type="xml">
<tree editable="bottom" string="Statement Lines">
<field name="sequence" readonly="1" invisible="1"/>
<field name="journal_id" readonly="1"/>
<field name="date" readonly="1" groups="base.group_extended"/>
<field name="val_date" readonly="1"/>
<field name="name"/>
<field name="statement_id" readonly="1"/>
<field name="ref" readonly="1"/>
<field name="partner_id" on_change="onchange_partner_id(partner_id)"/>
<field name="type" on_change="onchange_type(partner_id, type)"/>
<field name="account_id" domain="[('journal_id','=',parent.journal_id)]"/>
<field name="analytic_account_id" groups="analytic.group_analytic_accounting" domain="[('company_id', '=', parent.company_id), ('type', '&lt;&gt;', 'view')]"/>
<field name="amount" readonly="1" sum="Total Amount"/>
<field name="globalisation_id" string="Glob. Id"/>
<field name="globalisation_amount" string="Glob. Am."/>
<field name="state"/>
<field name="update_date"/>
<field name="update_by"/>
</tree>
</field>
</record>
<record id="view_bank_statement_line_form" model="ir.ui.view">
<field name="name">bank.statement.line.form</field>
<field name="model">account.bank.statement.line</field>
<field name="type">form</field>
<field name="arch" type="xml">
<form string="Statement Line">
<field name="statement_id"/>
<field name="journal_id"/>
<field name="date"/>
<field name="val_date"/>
<field name="name"/>
<field name="ref" readonly="0"/>
<field name="partner_id" on_change="onchange_partner_id(partner_id)"/>
<field name="type" on_change="onchange_type(partner_id, type)"/>
<field domain="[('journal_id', '=', parent.journal_id), ('type', '&lt;&gt;', 'view')]" name="account_id"/>
<field name="analytic_account_id" groups="analytic.group_analytic_accounting" domain="[('company_id', '=', parent.company_id), ('type', '&lt;&gt;', 'view')]"/>
<field name="amount"/>
<field name="globalisation_id"/>
<field name="sequence" readonly="0"/>
<field name="update_date"/>
<field name="update_by"/>
<field name="state"/>
<separator colspan="4" string="Notes"/>
<field colspan="4" name="note" nolabel="1"/>
</form>
</field>
</record>
<record id="view_bank_statement_line_filter" model="ir.ui.view">
<field name="name">bank.statement.line.filter</field>
<field name="model">account.bank.statement.line</field>
<field name="type">search</field>
<field name="arch" type="xml">
<search string="Search Bank Transactions">
<group col='6' colspan='4'>
<filter name="debit" string="Debit" domain="[('amount','&gt;',0)]" icon="terp-folder-green" help="Debit Transactions."/>
<filter name="credit" string="Credit" domain="[('amount','&lt;',0)]" icon="terp-folder-orange" help="Credit Transactions."/>
<separator orientation="vertical"/>
<filter name="draft" string="Draft" domain="[('state','=','draft')]" icon="terp-document-new" help="Draft Statement Lines."/>
<filter name="confirm" string="Confirmed" domain="[('state','=','confirm')]" icon="terp-camera_test" help="Confirmed Statement Lines."/>
<separator orientation="vertical"/>
<field name="journal_id"/>
<field name="statement_id"/>
<field name="val_date"/>
<field name="amount"/>
<field name="globalisation_id" string="Glob. Id"/>
<field name="globalisation_amount" string="Glob. Amount"/>
<field name="name"/>
</group>
<newline/>
<group string="Extended Filters..." expand="0">
<field name="account_id"/>
<field name="partner_id"/>
<field name="update_date"/>
<field name="update_by"/>
<field name="ref"/>
<field name="note"/>
</group>
<newline/>
<group string="Group By..." expand="1">
<filter string="Journal" context="{'group_by':'journal_id'}" icon="terp-folder-green"/>
<filter string="Statement" context="{'group_by':'statement_id'}" icon="terp-folder-orange"/>
<filter string="Fin.Account" context="{'group_by':'account_id'}" icon="terp-folder-yellow"/>
</group>
</search>
</field>
</record>
<record id="action_bank_statement_line" model="ir.actions.act_window">
<field name="name">Bank Statement Lines</field>
<field name="res_model">account.bank.statement.line</field>
<field name="view_type">form</field>
<field name="view_mode">tree,graph,form</field>
<field name="context">{'block_statement_line_delete' : 1}</field>
<field name="search_view_id" ref="view_bank_statement_line_filter"/>
<field name="view_id" ref="view_bank_statement_line_list"/>
</record>
<menuitem action="action_bank_statement_line" id="bank_statement_line" parent="account.menu_finance_bank_and_cash" sequence="20"/>
</data>
</openerp>

View File

@ -0,0 +1,18 @@
<openerp>
<data>
<record model="ir.ui.view" id="add_company_banks">
<field name="name">res.company.bank.form.inherit</field>
<field name="model">res.company</field>
<field name="inherit_id" ref="base.view_company_form"/>
<field name="type">form</field>
<field name="arch" type="xml">
<notebook position="inside">
<page string="Company Banks">
<field name="bank_ids"/>
</page>
</notebook>
</field>
</record>
</data>
</openerp>

View File

@ -0,0 +1,19 @@
<?xml version="1.0" encoding="utf-8"?>
<openerp>
<data noupdate="1">
<!-- Globalisation Level Sequence-->
<record id="sequence_reconcile" model="ir.sequence.type">
<field name="name">Statement Line Globalisation sequence</field>
<field name="code">statement.line.global</field>
</record>
<record id="sequence_reconcile_seq" model="ir.sequence">
<field name="name">Statement Line Globalisation sequence</field>
<field name="code">statement.line.global</field>
<field name="prefix">G</field>
<field eval="1" name="number_next"/>
<field eval="1" name="number_increment"/>
</record>
</data>
</openerp>

View File

@ -0,0 +1,236 @@
# French translation of OpenERP Server 6.1.
# This file contains the translation of the following modules:
# * account_bank_statement_extensions
#
msgid ""
msgstr ""
"Project-Id-Version: OpenERP Server 6.1\n"
"Report-Msgid-Bugs-To: support@noviat.be\n"
"POT-Creation-Date: 2011-10-24 22:33:11.753000\n"
"PO-Revision-Date: 2011-10-24 22:33:11.753000\n"
"Last-Translator: Luc De Meyer (Noviat nv/sa)\n"
"Language-Team: \n"
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n"
#. module: account_bank_statement_extensions
#: view:account.bank.statement.line:0
msgid "Statement Lines"
msgstr "Transactions bancaires"
#. module: account_bank_statement_extensions
#: view:account.bank.statement.line:0
msgid "Statement Line"
msgstr "Transaction bancaire"
#. module: account_bank_statement_extensions
#: view:account.bank.statement.line:0
msgid "Total Amount"
msgstr "Montant total"
#. module: account_bank_statement_extensions
#: view:account.bank.statement.line:0
msgid "Glob. Id"
msgstr "Id. glob."
#. module: account_bank_statement_extensions
#: view:account.bank.statement.line:0
msgid "Glob. Am."
msgstr "Mont. glob."
#. module: account_bank_statement_extensions
#: view:account.bank.statement.line:0
msgid "Glob. Amount"
msgstr "Montant glob."
#. module: account_bank_statement_extensions
#: view:account.bank.statement.line:0
msgid "Notes"
msgstr "Notes"
#. module: account_bank_statement_extensions
#: view:account.bank.statement.line:0
msgid "Search Bank Transactions"
msgstr "Recherche de transactions"
#. module: account_bank_statement_extensions
#: view:account.bank.statement.line:0
msgid "Debit"
msgstr "Debit"
#. module: account_bank_statement_extensions
#: view:account.bank.statement.line:0
msgid "Credit"
msgstr "Credit"
#. module: account_bank_statement_extensions
#: view:account.bank.statement.line:0
msgid "Debit Transactions."
msgstr "Transactions debit."
#. module: account_bank_statement_extensions
#: view:account.bank.statement.line:0
msgid "Credit Transactions."
msgstr "Transactions credit."
#. module: account_bank_statement_extensions
#: view:account.bank.statement.line:0
msgid "Extended Filters..."
msgstr "Filtres étendus..."
#. module: account_bank_statement_extensions
#: view:account.bank.statement.line:0
msgid "Group By..."
msgstr "Grouper par..."
#. module: account_bank_statement_extensions
#: view:account.bank.statement.line:0
msgid "Journal"
msgstr "Journal"
#. module: account_bank_statement_extensions
#: view:account.bank.statement.line:0
msgid "Statement"
msgstr "Relevé"
#. module: account_bank_statement_extensions
#: view:account.bank.statement.line:0
msgid "Fin.Account"
msgstr "Compte général"
#. module: account_bank_statement_extensions
#: view:account.bank.statement.line:0
msgid "Glob. Lvl"
msgstr "Niveau Glob."
#. module: account_bank_statement_extensions
#: view:account.bank.statement.line:0
msgid "Notes"
msgstr "Notes"
#. module: account_bank_statement_extensions
#: view:account.bank.statement.line:0
msgid "Draft"
msgstr "Brouillon"
#. module: account_bank_statement_extensions
#: view:account.bank.statement.line:0
msgid "Confirmed"
msgstr "Confirmée"
#. module: account_bank_statement_extensions
#: view:account.bank.statement.line:0
msgid "Draft Statement Lines."
msgstr "Transactions brouillon."
#. module: account_bank_statement_extensions
#: view:account.bank.statement.line:0
msgid "Confirmed Statement Lines."
msgstr "Transactions confirmées."
#. module: account_bank_statement_extensions
#: field:account.bank.statement.line,counterparty_bic:0
msgid "Counterparty BIC"
msgstr "BIC de la contrepartie"
#. module: account_bank_statement_extensions
#: field:account.bank.statement.line,counterparty_currency:0
msgid "Counterparty Currency"
msgstr "Devise de la contrepartie"
#. module: account_bank_statement_extensions
#: field:account.bank.statement.line,counterparty_name:0
msgid "Counterparty Name"
msgstr "Nom de la contrepartie"
#. module: account_bank_statement_extensions
#: field:account.bank.statement.line,counterparty_number:0
msgid "Counterparty Number"
msgstr "No de la contrepartie"
#. module: account_bank_statement_extensions
#: field:account.bank.statement.line,date:0
msgid "Entry Date"
msgstr "Date de comptabilisation"
#. module: account_bank_statement_extensions
#: field:account.bank.statement.line,globalisation_amount:0
msgid "Glob. Amount"
msgstr "Montant glob."
#. module: account_bank_statement_extensions
#: field:account.bank.statement.line,globalisation_id:0
msgid "Globalisation ID"
msgstr "ID de globalisation"
#. module: account_bank_statement_extensions
#: field:account.bank.statement.line,journal_id:0
msgid "Journal"
msgstr "Journal"
#. module: account_bank_statement_extensions
#: field:account.bank.statement.line,val_date:0
msgid "Valuta Date"
msgstr "Date de valeur"
#. module: account_bank_statement_extensions
#: field:account.bank.statement.line.global,amount:0
msgid "Amount"
msgstr "Montant"
#. module: account_bank_statement_extensions
#: field:account.bank.statement.line.global,bank_statement_line_ids:0
msgid "Bank Statement Lines"
msgstr "Transactions bancaires"
#. module: account_bank_statement_extensions
#: field:account.bank.statement.line.global,child_ids:0
msgid "Child Codes"
msgstr "Codes fils"
#. module: account_bank_statement_extensions
#: field:account.bank.statement.line.global,code:0
msgid "Code"
msgstr "Code"
#. module: account_bank_statement_extensions
#: field:account.bank.statement.line.global,name:0
msgid "Name"
msgstr "Nom"
#. module: account_bank_statement_extensions
#: field:account.bank.statement.line.global,parent_id:0
msgid "Parent Code"
msgstr "Code parent"
#. module: account_bank_statement_extensions
#: field:account.bank.statement.line.global,type:0
msgid "Type"
msgstr "Type"
#. module: account_bank_statement_extensions
#: selection:account.bank.statement.line.global,type:0
msgid "Manual"
msgstr "Manuelle"
#. module: account_bank_statement_extensions
#: selection:account.bank.statement.line.global,type:0
msgid "CODA"
msgstr "CODA"
#. module: account_bank_statement_extensions
#: selection:account.bank.statement.line.global,type:0
msgid "ISO 20022"
msgstr "ISO 20022"
#. module: account_bank_statement_extensions
#: model:ir.actions.act_window,name:account_bank_statement_extensions.action_bank_statement_line
msgid "Bank Statement Lines"
msgstr "Transactions bancaires"
#. module: account_bank_statement_extensions
#: model:ir.ui.menu,name:account_bank_statement_extensions.bank_statement_line
msgid "Bank Statement Lines"
msgstr "Transactions bancaires"

View File

@ -0,0 +1,236 @@
# Dutch translation of OpenERP Server 6.1.
# This file contains the translation of the following modules:
# * account_bank_statement_extensions
#
msgid ""
msgstr ""
"Project-Id-Version: OpenERP Server 6.1\n"
"Report-Msgid-Bugs-To: support@noviat.be\n"
"POT-Creation-Date: 2011-10-24 22:33:11.736000\n"
"PO-Revision-Date: 2011-10-24 22:33:11.736000\n"
"Last-Translator: Luc De Meyer (Noviat nv/sa)\n"
"Language-Team: \n"
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n"
#. module: account_bank_statement_extensions
#: view:account.bank.statement.line:0
msgid "Statement Lines"
msgstr "Bank transacties"
#. module: account_bank_statement_extensions
#: view:account.bank.statement.line:0
msgid "Statement Line"
msgstr "Bank transactie"
#. module: account_bank_statement_extensions
#: view:account.bank.statement.line:0
msgid "Total Amount"
msgstr "Totaal bedrag"
#. module: account_bank_statement_extensions
#: view:account.bank.statement.line:0
msgid "Glob. Id"
msgstr "Glob. Id"
#. module: account_bank_statement_extensions
#: view:account.bank.statement.line:0
msgid "Glob. Am."
msgstr "Glob. bedrag"
#. module: account_bank_statement_extensions
#: view:account.bank.statement.line:0
msgid "Glob. Amount"
msgstr "Glob. bedrag"
#. module: account_bank_statement_extensions
#: view:account.bank.statement.line:0
msgid "Notes"
msgstr "Notities"
#. module: account_bank_statement_extensions
#: view:account.bank.statement.line:0
msgid "Search Bank Transactions"
msgstr "Transacties zoeken"
#. module: account_bank_statement_extensions
#: view:account.bank.statement.line:0
msgid "Debit"
msgstr "Debet"
#. module: account_bank_statement_extensions
#: view:account.bank.statement.line:0
msgid "Credit"
msgstr "Credit"
#. module: account_bank_statement_extensions
#: view:account.bank.statement.line:0
msgid "Debit Transactions."
msgstr "Debet transacties."
#. module: account_bank_statement_extensions
#: view:account.bank.statement.line:0
msgid "Credit Transactions."
msgstr "Credit transacties."
#. module: account_bank_statement_extensions
#: view:account.bank.statement.line:0
msgid "Extended Filters..."
msgstr "Uitgebreide filters..."
#. module: account_bank_statement_extensions
#: view:account.bank.statement.line:0
msgid "Group By..."
msgstr "Groepeer op..."
#. module: account_bank_statement_extensions
#: view:account.bank.statement.line:0
msgid "Journal"
msgstr "Dagboek"
#. module: account_bank_statement_extensions
#: view:account.bank.statement.line:0
msgid "Statement"
msgstr "Uitreksel"
#. module: account_bank_statement_extensions
#: view:account.bank.statement.line:0
msgid "Fin.Account"
msgstr "Grootboekrekening"
#. module: account_bank_statement_extensions
#: view:account.bank.statement.line:0
msgid "Glob. Lvl"
msgstr "Glob. niveau"
#. module: account_bank_statement_extensions
#: view:account.bank.statement.line:0
msgid "Notes"
msgstr "Notities"
#. module: account_bank_statement_extensions
#: view:account.bank.statement.line:0
msgid "Draft"
msgstr "Concept"
#. module: account_bank_statement_extensions
#: view:account.bank.statement.line:0
msgid "Confirmed"
msgstr "Bevestigd"
#. module: account_bank_statement_extensions
#: view:account.bank.statement.line:0
msgid "Draft Statement Lines."
msgstr "Concept transacties."
#. module: account_bank_statement_extensions
#: view:account.bank.statement.line:0
msgid "Confirmed Statement Lines."
msgstr "Bevestigde transacties."
#. module: account_bank_statement_extensions
#: field:account.bank.statement.line,counterparty_bic:0
msgid "Counterparty BIC"
msgstr "BIC tegenpartij"
#. module: account_bank_statement_extensions
#: field:account.bank.statement.line,counterparty_currency:0
msgid "Counterparty Currency"
msgstr "Munteenheid tegenpartij"
#. module: account_bank_statement_extensions
#: field:account.bank.statement.line,counterparty_name:0
msgid "Counterparty Name"
msgstr "Naam tegenpartij"
#. module: account_bank_statement_extensions
#: field:account.bank.statement.line,counterparty_number:0
msgid "Counterparty Number"
msgstr "Nummer tegenpartij"
#. module: account_bank_statement_extensions
#: field:account.bank.statement.line,date:0
msgid "Entry Date"
msgstr "Boekingsdatum"
#. module: account_bank_statement_extensions
#: field:account.bank.statement.line,globalisation_amount:0
msgid "Glob. Amount"
msgstr "Glob. bedrag"
#. module: account_bank_statement_extensions
#: field:account.bank.statement.line,globalisation_id:0
msgid "Globalisation ID"
msgstr "Globalisatie ID"
#. module: account_bank_statement_extensions
#: field:account.bank.statement.line,journal_id:0
msgid "Journal"
msgstr "Dagboek"
#. module: account_bank_statement_extensions
#: field:account.bank.statement.line,val_date:0
msgid "Valuta Date"
msgstr "Valutadatum"
#. module: account_bank_statement_extensions
#: field:account.bank.statement.line.global,amount:0
msgid "Amount"
msgstr "Bedrag"
#. module: account_bank_statement_extensions
#: field:account.bank.statement.line.global,bank_statement_line_ids:0
msgid "Bank Statement Lines"
msgstr "Bank transacties"
#. module: account_bank_statement_extensions
#: field:account.bank.statement.line.global,child_ids:0
msgid "Child Codes"
msgstr "Subcodes"
#. module: account_bank_statement_extensions
#: field:account.bank.statement.line.global,code:0
msgid "Code"
msgstr "Code"
#. module: account_bank_statement_extensions
#: field:account.bank.statement.line.global,name:0
msgid "Name"
msgstr "Naam"
#. module: account_bank_statement_extensions
#: field:account.bank.statement.line.global,parent_id:0
msgid "Parent Code"
msgstr "Bovenliggende code"
#. module: account_bank_statement_extensions
#: field:account.bank.statement.line.global,type:0
msgid "Type"
msgstr "Type"
#. module: account_bank_statement_extensions
#: selection:account.bank.statement.line.global,type:0
msgid "Manual"
msgstr "Manueel"
#. module: account_bank_statement_extensions
#: selection:account.bank.statement.line.global,type:0
msgid "CODA"
msgstr "CODA"
#. module: account_bank_statement_extensions
#: selection:account.bank.statement.line.global,type:0
msgid "ISO 20022"
msgstr "ISO 20022"
#. module: account_bank_statement_extensions
#: model:ir.actions.act_window,name:account_bank_statement_extensions.action_bank_statement_line
msgid "Bank Statement Lines"
msgstr "Bank transacties"
#. module: account_bank_statement_extensions
#: model:ir.ui.menu,name:account_bank_statement_extensions.bank_statement_line
msgid "Bank Statement Lines"
msgstr "Bank transacties"

View File

@ -0,0 +1,23 @@
# -*- encoding: utf-8 -*-
##############################################################################
#
# OpenERP, Open Source Management Solution
#
# Copyright (c) 2011 Noviat nv/sa (www.noviat.be). All rights reserved.
#
# 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/>.
#
##############################################################################
import bank_statement_balance_report

View File

@ -0,0 +1,69 @@
# -*- encoding: utf-8 -*-
##############################################################################
#
# OpenERP, Open Source Management Solution
#
# Copyright (c) 2011 Noviat nv/sa (www.noviat.be). All rights reserved.
#
# 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/>.
#
##############################################################################
import time
from report import report_sxw
import pooler
import netsvc
logger=netsvc.Logger()
class bank_statement_balance_report(report_sxw.rml_parse):
def set_context(self, objects, data, ids, report_type=None):
#logger.notifyChannel('addons.'+__name__, netsvc.LOG_WARNING, 'set_context, objects = %s, data = %s, ids = %s' % (objects, data, ids))
cr = self.cr
uid = self.uid
context = self.context
cr.execute('SELECT s.name as s_name, s.date AS s_date, j.code as j_code, s.balance_end_real as s_balance ' \
'FROM account_bank_statement s ' \
'INNER JOIN account_journal j on s.journal_id = j.id ' \
'INNER JOIN ' \
'(SELECT journal_id, max(date) as max_date FROM account_bank_statement ' \
'GROUP BY journal_id) d ' \
'ON (s.journal_id = d.journal_id AND s.date = d.max_date) ' \
'ORDER BY j.code')
lines = cr.dictfetchall()
self.localcontext.update( {
'lines': lines,
})
super(bank_statement_balance_report, self).set_context(objects, data, ids, report_type=report_type)
def __init__(self, cr, uid, name, context):
if context is None:
context = {}
super(bank_statement_balance_report, self).__init__(cr, uid, name, context=context)
self.localcontext.update( {
'time': time,
})
self.context = context
report_sxw.report_sxw(
'report.bank.statement.balance.report',
'account.bank.statement',
'addons/account_bank_statement_extensions/report/bank_statement_balance_report.rml',
parser=bank_statement_balance_report,
header='internal'
)

View File

@ -0,0 +1,145 @@
<document filename="test.pdf">
<template pageSize="(595.0,842.0)" title="Test" author="Martin Simon" allowSplitting="20">
<pageTemplate id="first">
<frame id="first" x1="28.0" y1="28.0" width="539" height="786"/>
</pageTemplate>
</template>
<stylesheet>
<blockTableStyle id="Standard_Outline">
<blockAlignment value="LEFT"/>
<blockValign value="TOP"/>
</blockTableStyle>
<blockTableStyle id="Table4">
<blockAlignment value="LEFT"/>
<blockValign value="TOP"/>
</blockTableStyle>
<blockTableStyle id="Table1">
<blockAlignment value="LEFT"/>
<blockValign value="TOP"/>
<lineStyle kind="LINEBELOW" colorName="#666666" start="0,-1" stop="0,-1"/>
<lineStyle kind="LINEBELOW" colorName="#666666" start="1,-1" stop="1,-1"/>
<lineStyle kind="LINEBELOW" colorName="#666666" start="2,-1" stop="2,-1"/>
<lineStyle kind="LINEBELOW" colorName="#666666" start="3,-1" stop="3,-1"/>
</blockTableStyle>
<blockTableStyle id="Table2">
<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>
<initialize>
<paraStyle name="all" alignment="justify"/>
</initialize>
<paraStyle name="P1" fontName="Helvetica-Bold" fontSize="10.0" leading="13" alignment="CENTER"/>
<paraStyle name="P2" fontName="Helvetica" fontSize="8.0" leading="10" alignment="LEFT"/>
<paraStyle name="P3" fontName="Helvetica" fontSize="8.0" leading="10" alignment="RIGHT"/>
<paraStyle name="P4" rightIndent="0.0" leftIndent="0.0" fontName="Helvetica" fontSize="9.0" leading="11" alignment="LEFT" spaceBefore="0.0" spaceAfter="0.0"/>
<paraStyle name="P5" rightIndent="0.0" leftIndent="0.0" fontName="Helvetica-Bold" fontSize="10.0" leading="13" alignment="LEFT" spaceBefore="0.0" spaceAfter="0.0"/>
<paraStyle name="P6" rightIndent="0.0" leftIndent="0.0" fontName="Helvetica-Bold" fontSize="2.0" leading="3" alignment="LEFT" spaceBefore="0.0" spaceAfter="0.0"/>
<paraStyle name="P7" rightIndent="0.0" leftIndent="0.0" fontName="Helvetica" fontSize="9.0" leading="11" alignment="LEFT" spaceBefore="0.0" spaceAfter="0.0"/>
<paraStyle name="P8" rightIndent="0.0" leftIndent="0.0" fontName="Helvetica" fontSize="9.0" leading="11" alignment="LEFT" spaceBefore="0.0" spaceAfter="0.0"/>
<paraStyle name="P9" fontName="Helvetica-Bold" fontSize="8.0" leading="10" alignment="LEFT" spaceBefore="0.0" spaceAfter="0.0"/>
<paraStyle name="P10" fontName="Helvetica-Bold" fontSize="8.0" leading="10" alignment="RIGHT" spaceBefore="0.0" spaceAfter="0.0"/>
<paraStyle name="P11" fontName="Helvetica-Bold" fontSize="8.0" leading="10" alignment="LEFT" spaceBefore="0.0" spaceAfter="0.0"/>
<paraStyle name="P12" fontName="Helvetica" fontSize="8.0" leading="10" alignment="LEFT"/>
<paraStyle name="Standard" fontName="Helvetica"/>
<paraStyle name="Heading" fontName="Helvetica" fontSize="12.0" leading="15" spaceBefore="12.0" spaceAfter="6.0"/>
<paraStyle name="Text_20_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_20_Contents" fontName="Helvetica"/>
<paraStyle name="Table_20_Heading" fontName="Helvetica" alignment="CENTER"/>
<paraStyle name="Horizontal_20_Line" fontName="Helvetica" fontSize="6.0" leading="8" spaceBefore="0.0" spaceAfter="14.0"/>
<paraStyle name="terp_5f_header" fontName="Helvetica-Bold" fontSize="15.0" leading="19" alignment="LEFT" spaceBefore="12.0" spaceAfter="6.0"/>
<paraStyle name="Heading_20_9" fontName="Helvetica-Bold" fontSize="75%" leading="NaN" spaceBefore="12.0" spaceAfter="6.0"/>
<paraStyle name="terp_5f_tblheader_5f_General" fontName="Helvetica-Bold" fontSize="8.0" leading="10" alignment="LEFT" spaceBefore="6.0" spaceAfter="6.0"/>
<paraStyle name="terp_5f_tblheader_5f_Details" fontName="Helvetica-Bold" fontSize="9.0" leading="11" alignment="LEFT" spaceBefore="0.0" spaceAfter="0.0"/>
<paraStyle name="terp_5f_default_5f_8" fontName="Helvetica" fontSize="8.0" leading="10" alignment="LEFT" spaceBefore="0.0" spaceAfter="0.0"/>
<paraStyle name="terp_5f_default_5f_Bold_5f_8" fontName="Helvetica-Bold" fontSize="8.0" leading="10" alignment="LEFT" spaceBefore="0.0" spaceAfter="0.0"/>
<paraStyle name="terp_5f_tblheader_5f_General_5f_Centre" fontName="Helvetica-Bold" fontSize="8.0" leading="10" alignment="CENTER" spaceBefore="6.0" spaceAfter="6.0"/>
<paraStyle name="terp_5f_tblheader_5f_General_5f_Right" fontName="Helvetica-Bold" fontSize="8.0" leading="10" alignment="RIGHT" spaceBefore="6.0" spaceAfter="6.0"/>
<paraStyle name="terp_5f_tblheader_5f_Details_5f_Centre" fontName="Helvetica-Bold" fontSize="9.0" leading="11" alignment="CENTER" spaceBefore="0.0" spaceAfter="0.0"/>
<paraStyle name="terp_5f_tblheader_5f_Details_5f_Right" fontName="Helvetica-Bold" fontSize="9.0" leading="11" alignment="RIGHT" spaceBefore="0.0" spaceAfter="0.0"/>
<paraStyle name="terp_5f_default_5f_Right_5f_8" fontName="Helvetica" fontSize="8.0" leading="10" alignment="RIGHT" spaceBefore="0.0" spaceAfter="0.0"/>
<paraStyle name="terp_5f_default_5f_Centre_5f_8" fontName="Helvetica" fontSize="8.0" leading="10" alignment="CENTER" spaceBefore="0.0" spaceAfter="0.0"/>
<paraStyle name="terp_5f_header_5f_Right" fontName="Helvetica-Bold" fontSize="15.0" leading="19" alignment="LEFT" spaceBefore="12.0" spaceAfter="6.0"/>
<paraStyle name="terp_5f_header_5f_Centre" fontName="Helvetica-Bold" fontSize="15.0" leading="19" alignment="CENTER" spaceBefore="0.0" spaceAfter="0.0"/>
<paraStyle name="terp_5f_default_5f_address" fontName="Helvetica" fontSize="10.0" leading="13" alignment="LEFT" spaceBefore="0.0" spaceAfter="0.0"/>
<paraStyle name="terp_5f_default_5f_9" fontName="Helvetica" fontSize="9.0" leading="11" alignment="LEFT" spaceBefore="0.0" spaceAfter="0.0"/>
<paraStyle name="terp_5f_default_5f_Bold_5f_9" fontName="Helvetica-Bold" fontSize="9.0" leading="11" alignment="LEFT" spaceBefore="0.0" spaceAfter="0.0"/>
<paraStyle name="terp_5f_default_5f_Centre_5f_9" fontName="Helvetica" fontSize="9.0" leading="11" alignment="CENTER" spaceBefore="0.0" spaceAfter="0.0"/>
<paraStyle name="terp_5f_default_5f_Right_5f_9" fontName="Helvetica" fontSize="9.0" leading="11" alignment="RIGHT" spaceBefore="0.0" spaceAfter="0.0"/>
<paraStyle name="terp_5f_default_5f_Right_5f_9_5f_Bold" fontName="Helvetica-Bold" fontSize="9.0" leading="11" alignment="RIGHT" spaceBefore="0.0" spaceAfter="0.0"/>
<paraStyle name="terp_5f_default_5f_2" fontName="Helvetica" fontSize="2.0" leading="3" alignment="LEFT" spaceBefore="0.0" spaceAfter="0.0"/>
<paraStyle name="terp_5f_default_5f_Bold_5f_Right_5f_9" fontName="Helvetica-Bold" fontSize="9.0" leading="11" alignment="RIGHT" spaceBefore="0.0" spaceAfter="0.0"/>
</stylesheet>
<images/>
<story>
<para style="P8">[[ ]]</para>
<blockTable colWidths="539.0" style="Table4">
<tr>
<td>
<para style="P1">
<font color="white"> </font>
</para>
<para style="P1">Bank Statement Balances Report</para>
</td>
</tr>
</blockTable>
<para style="P7">
<font color="white"> </font>
</para>
<para style="P7">
<font color="white"> </font>
</para>
<blockTable colWidths="163.0,146.0,103.0,127.0" style="Table1">
<tr>
<td>
<para style="P9">Name</para>
</td>
<td>
<para style="P9">Date</para>
</td>
<td>
<para style="P11">Journal</para>
</td>
<td>
<para style="P10">Closing Balance</para>
</td>
</tr>
</blockTable>
<para style="P6">
<font color="white"> </font>
</para>
<section>
<para style="P4">[[ repeatIn(lines, 'l') ]]</para>
<blockTable colWidths="163.0,146.0,103.0,127.0" style="Table2">
<tr>
<td>
<para style="P2">[[ l['s_name'] ]]</para>
</td>
<td>
<para style="P2">[[ l['s_date'] ]]</para>
</td>
<td>
<para style="P2">[[ l['j_code'] ]]</para>
</td>
<td>
<para style="P3">[[ formatLang(l['s_balance']) ]]</para>
</td>
</tr>
</blockTable>
<para style="P6">
<font color="white"> </font>
</para>
</section>
<para style="P5">
<font color="white"> </font>
</para>
</story>
</document>

View File

@ -0,0 +1,36 @@
# -*- encoding: utf-8 -*-
##############################################################################
#
# OpenERP, Open Source Management Solution
#
# Copyright (c) 2011 Noviat nv/sa (www.noviat.be). All rights reserved.
#
# 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 osv import osv, fields
import netsvc
from tools.translate import _
logger=netsvc.Logger()
class res_company(osv.osv):
_inherit = 'res.company'
_columns = {
'bank_ids': fields.related('partner_id', 'bank_ids', type='one2many', relation='res.partner.bank', string='Company Banks'),
}
res_company()

View File

@ -0,0 +1,41 @@
# -*- encoding: utf-8 -*-
##############################################################################
#
# OpenERP, Open Source Management Solution
#
# Copyright (c) 2011 Noviat nv/sa (www.noviat.be). All rights reserved.
#
# 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 osv import osv, fields
import netsvc
from tools.translate import _
logger=netsvc.Logger()
class res_partner_bank(osv.osv):
_inherit = 'res.partner.bank'
def name_search(self, cr, user, name, args=None, operator='ilike', context=None, limit=100):
if not args:
args = []
ids = []
if name:
ids = self.search(cr, user, [('acc_number', operator, name)] + args, limit=limit)
else:
ids = self.search(cr, user, args, context=context, limit=limit)
return self.name_get(cr, user, ids, context=context)
res_partner_bank()

View File

@ -0,0 +1,3 @@
id,name,model_id:id,group_id:id,perm_read,perm_write,perm_create,perm_unlink
access_bank_statement_line_global_manager,bank.statement.line.global manager,model_account_bank_statement_line_global,account.group_account_manager,1,1,1,1
access_bank_statement_line_global_user,bank.statement.line.global user,model_account_bank_statement_line_global,account.group_account_user,1,0,0,0
1 id name model_id:id group_id:id perm_read perm_write perm_create perm_unlink
2 access_bank_statement_line_global_manager bank.statement.line.global manager model_account_bank_statement_line_global account.group_account_manager 1 1 1 1
3 access_bank_statement_line_global_user bank.statement.line.global user model_account_bank_statement_line_global account.group_account_user 1 0 0 0

View File

@ -0,0 +1,24 @@
# -*- encoding: utf-8 -*-
##############################################################################
#
# OpenERP, Open Source Management Solution
#
# Copyright (c) 2011 Noviat nv/sa (www.noviat.be). All rights reserved.
#
# 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/>.
#
##############################################################################
import confirm_statement_line
import cancel_statement_line

View File

@ -0,0 +1,38 @@
# -*- encoding: utf-8 -*-
##############################################################################
#
# OpenERP, Open Source Management Solution
#
# Copyright (c) 2011 Noviat nv/sa (www.noviat.be). All rights reserved.
#
# 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/>.
#
##############################################################################
import time
from osv import osv, fields
import netsvc
from tools.translate import _
class cancel_statement_line(osv.osv_memory):
_name = 'cancel.statement.line'
_description = 'Cancel selected statement lines'
def cancel_lines(self, cr, uid, ids, context):
line_ids = context['active_ids']
line_obj = self.pool.get('account.bank.statement.line')
line_obj.write(cr, uid, line_ids, {'state': 'draft'}, context=context)
return {}
cancel_statement_line()

View File

@ -0,0 +1,45 @@
<?xml version="1.0" ?>
<openerp>
<data>
<!-- Cancel selected statement lines -->
<record id="view_cancel_statement_line" model="ir.ui.view">
<field name="name">cancel.statement.line.form</field>
<field name="model">cancel.statement.line</field>
<field name="type">form</field>
<field name="arch" type="xml">
<form string="Cancel selected statement lines">
<label string="" colspan="4"/>
<label colspan="4" string="Are you sure you want to cancel the selected Bank Statement lines ?"/>
<label string="" colspan="4"/>
<separator colspan="4"/>
<group>
<label string="" colspan="2"/>
<button icon="gtk-cancel" special="cancel" string="Cancel"/>
<button icon="gtk-execute" string="Cancel Lines" name="cancel_lines" type="object"/>
</group>
</form>
</field>
</record>
<record id="action_cancel_statement_line" model="ir.actions.act_window">
<field name="name">Cancel selected statement lines</field>
<field name="res_model">cancel.statement.line</field>
<field name="view_type">form</field>
<field name="view_mode">tree,form</field>
<field name="view_id" ref="view_cancel_statement_line"/>
<field name="help">cancel selected statement lines.</field>
<field name="target">new</field>
</record>
<record model="ir.values" id="action_cancel_statement_line_values">
<field name="object" eval="1" />
<field name="name">Cancel selected statement lines</field>
<field name="key2">client_action_multi</field>
<field name="value" eval="'ir.actions.act_window,' +str(ref('action_cancel_statement_line'))" />
<field name="model">account.bank.statement.line</field>
</record>
</data>
</openerp>

View File

@ -0,0 +1,40 @@
# -*- encoding: utf-8 -*-
##############################################################################
#
# OpenERP, Open Source Management Solution
#
# Copyright (c) 2011 Noviat nv/sa (www.noviat.be). All rights reserved.
#
# 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/>.
#
##############################################################################
import time
from osv import osv, fields
import netsvc
from tools.translate import _
class confirm_statement_line(osv.osv_memory):
_name = 'confirm.statement.line'
_description = 'Confirm selected statement lines'
def confirm_lines(self, cr, uid, ids, context):
line_ids = context['active_ids']
line_obj = self.pool.get('account.bank.statement.line')
line_obj.write(cr, uid, line_ids, {'state': 'confirm'}, context=context)
return {}
confirm_statement_line()

View File

@ -0,0 +1,46 @@
<?xml version="1.0" ?>
<openerp>
<data>
<!-- Confirm selected statement lines -->
<record id="view_confirm_statement_line" model="ir.ui.view">
<field name="name">confirm.statement.line.form</field>
<field name="model">confirm.statement.line</field>
<field name="type">form</field>
<field name="arch" type="xml">
<form string="Confirm selected statement lines">
<label string="" colspan="4"/>
<label colspan="4" string="Are you sure you want to confirm the selected Bank Statement lines ?"/>
<label colspan="4" string="Confirmed lines cannot be changed anymore."/>
<label string="" colspan="4"/>
<separator colspan="4"/>
<group>
<label string="" colspan="2"/>
<button icon="gtk-cancel" special="cancel" string="Cancel"/>
<button icon="gtk-execute" string="Confirm Lines" name="confirm_lines" type="object"/>
</group>
</form>
</field>
</record>
<record id="action_confirm_statement_line" model="ir.actions.act_window">
<field name="name">Confirm selected statement lines</field>
<field name="res_model">confirm.statement.line</field>
<field name="view_type">form</field>
<field name="view_mode">tree,form</field>
<field name="view_id" ref="view_confirm_statement_line"/>
<field name="help">Confirm selected statement lines.</field>
<field name="target">new</field>
</record>
<record model="ir.values" id="action_confirm_statement_line_values">
<field name="object" eval="1" />
<field name="name">Confirm selected statement lines</field>
<field name="key2">client_action_multi</field>
<field name="value" eval="'ir.actions.act_window,' +str(ref('action_confirm_statement_line'))" />
<field name="model">account.bank.statement.line</field>
</record>
</data>
</openerp>

View File

@ -0,0 +1,4 @@
Installation tips
=================
TBC.

View File

@ -1,9 +1,10 @@
# -*- encoding: utf-8 -*-
##############################################################################
#
# OpenERP, Open Source Management Solution
# Copyright (C) 2004-2009 Tiny SPRL (<http://tiny.be>).
#
# OpenERP, Open Source Management Solution
#
# Copyright (c) 2011 Noviat nv/sa (www.noviat.be). All rights reserved.
#
# 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
@ -15,7 +16,7 @@
# 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/>.
# along with this program. If not, see <http://www.gnu.org/licenses/>.
#
##############################################################################
@ -23,4 +24,3 @@ import account_coda
import wizard
# vim:expandtab:smartindent:tabstop=4:softtabstop=4:shiftwidth=4:

View File

@ -2,8 +2,9 @@
##############################################################################
#
# OpenERP, Open Source Management Solution
# Copyright (C) 2004-2009 Tiny SPRL (<http://tiny.be>).
#
#
# Copyright (c) 2011 Noviat nv/sa (www.noviat.be). All rights reserved.
#
# 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
@ -18,32 +19,78 @@
# along with this program. If not, see <http://www.gnu.org/licenses/>.
#
##############################################################################
{
"name" : "CODA Bank Statements",
"version" : "1.0",
"author" : "OpenERP SA",
"name": 'Belgium - Import bank CODA statements',
"version": '2.1',
"author": 'Noviat',
"category": 'Accounting & Finance',
'complexity': "normal",
"description": """
Module provides functionality to import bank statements from coda files.
========================================================================
"complexity": "normal",
"description": '''
Module to import CODA bank statements.
Contains a wizard to import coda statements and maintains logs for the same.
""",
Supported are CODA flat files in V2 format from Belgian bank accounts.
- CODA v1 support.
- CODA v2.2 support.
- Foreign Currency support.
- Support for all data record types (0, 1, 2, 3, 4, 8, 9).
- Parsing & logging of all Transaction Codes and Structured Format Communications.
- Automatic Financial Journal assignment via CODA configuration parameters.
- Support for multiple Journals per Bank Account Number.
- Support for multiple statements from different bank accounts in a single CODA file.
- Support for 'parsing only' CODA Bank Accounts (defined as type='info' in the CODA Bank Account configuration records).
- Multi-language CODA parsing, parsing configuration data provided for EN, NL, FR.
The machine readable CODA Files are parsed and stored in human readable format in CODA Bank Statements.
Also Bank Statements are generated containing a subset of the CODA information (only those transaction lines
that are required for the creation of the Financial Accounting records).
The CODA Bank Statement is a 'read-only' object, hence remaining a reliable representation of the original CODA file
whereas the Bank Statement will get modified as required by accounting business processes.
CODA Bank Accounts configured as type 'Info' will only generate CODA Bank Statements.
A removal of one object in the CODA processing results in the removal of the associated objects.
The removal of a CODA File containing multiple Bank Statements will also remove those associated
statements.
The following reconciliation logic has been implemented in the CODA processing:
1) The Company's Bank Account Number of the CODA statement is compared against the Bank Account Number field
of the Company's CODA Bank Account configuration records (whereby bank accounts defined in type='info' configuration records are ignored).
If this is the case an 'internal transfer' transaction is generated using the 'Internal Transfer Account' field of the CODA File Import wizard.
2) As a second step the 'Structured Communication' field of the CODA transaction line is matched against
the reference field of in- and outgoing invoices (supported : Belgian Structured Communication Type).
3) When the previous step doesn't find a match, the transaction counterparty is located via the
Bank Account Number configured on the OpenERP Customer and Supplier records.
4) In case the previous steps are not successful, the transaction is generated by using the 'Default Account
for Unrecognized Movement' field of the CODA File Import wizard in order to allow further manual processing.
In stead of a manual adjustment of the generated Bank Statements, you can also re-import the CODA
after updating the OpenERP database with the information that was missing to allow automatic reconciliation.
Remark on CODA V1 support:
In some cases a transaction code, transaction category or structured communication code has been given a new or clearer description in CODA V2.
The description provided by the CODA configuration tables is based upon the CODA V2.2 specifications.
If required, you can manually adjust the descriptions via the CODA configuration menu.
''',
"images" : ["images/coda_logs.jpeg","images/import_coda_logs.jpeg"],
"depends" : ["account_voucher"],
"demo_xml" : [],
"init_xml" : [],
"update_xml": ["security/ir.model.access.csv",
"security/account_security.xml",
"wizard/account_coda_import.xml",
"account_coda_view.xml"],
"active" : False,
"installable" : True,
"depends": ['account_voucher','base_iban', 'l10n_be_invoice_bba', 'account_bank_statement_extensions'],
"demo_xml": [],
"init_xml": [
'account_coda_trans_type.xml',
'account_coda_trans_code.xml',
'account_coda_trans_category.xml',
'account_coda_comm_type.xml',
],
"update_xml" : [
'security/ir.model.access.csv',
'security/account_security.xml',
'account_coda_wizard.xml',
'account_coda_view.xml',
],
"active": False,
"installable": True,
"license": 'AGPL-3',
"certificate" : "001237207321716002029",
}
# vim:expandtab:smartindent:tabstop=4:softtabstop=4:shiftwidth=4:

View File

@ -2,8 +2,9 @@
##############################################################################
#
# OpenERP, Open Source Management Solution
# Copyright (C) 2004-2009 Tiny SPRL (<http://tiny.be>).
#
#
# Copyright (c) 2011 Noviat nv/sa (www.noviat.be). All rights reserved.
#
# 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
@ -20,45 +21,391 @@
##############################################################################
import time
from osv import osv,fields
from osv import osv, fields
import decimal_precision as dp
import netsvc
from tools.translate import _
logger=netsvc.Logger()
class coda_bank_account(osv.osv):
_name= 'coda.bank.account'
_description= 'CODA Bank Account Configuration'
def _check_currency(self, cr, uid, ids, context=None):
obj_cba = self.browse(cr, uid, ids[0], context=context)
if (obj_cba.state == 'normal') and obj_cba.journal and (obj_cba.currency != obj_cba.journal.currency):
return False
return True
_columns = {
'name': fields.char('Name', size=64, required=True),
'bank_id': fields.many2one('res.partner.bank', 'Bank Account', required=True,
help='Bank Account Number.\nThe CODA import function will find its CODA processing parameters on this number.'),
'description1': fields.char('Primary Account Description', size=35,
help='The Primary or Secondary Account Description should match the corresponding Account Description in the CODA file.'),
'description2': fields.char('Secondary Account Description', size=35,
help='The Primary or Secondary Account Description should match the corresponding Account Description in the CODA file.'),
'state': fields.selection([
('normal', 'Normal'),
('info', 'Info')],
'Type', required=True, select=1,
help='No Bank Statements will be generated for CODA Bank Statements from Bank Accounts of type \'Info\'.'),
'journal': fields.many2one('account.journal', 'Journal',
domain=[('type', '=', 'bank')],
states={'normal':[('required',True)],'info':[('required',False)]},
help='Bank Journal for the Bank Statement'),
'currency': fields.many2one('res.currency', 'Currency', required=True,
help='The currency of the CODA Bank Statement'),
'coda_st_naming': fields.char('Bank Statement Naming Policy', size=64,
help="Define the rules to create the name of the Bank Statements generated by the CODA processing." \
"\nE.g. %(code)s%(y)s/%(paper)s"
"\n\nVariables:" \
"\nBank Journal Code: %(code)s" \
"\nCurrent Year with Century: %(year)s" \
"\nCurrent Year without Century: %(y)s" \
"\nCODA sequence number: %(coda)s" \
"\nPaper Statement sequence number: %(paper)s"),
'def_payable': fields.many2one('account.account', 'Default Payable Account', domain=[('type', '=', 'payable')], required=True,
help= 'Set here the payable account that will be used, by default, if the partner is not found.'),
'def_receivable': fields.many2one('account.account', 'Default Receivable Account', domain=[('type', '=', 'receivable')], required=True,
help= 'Set here the receivable account that will be used, by default, if the partner is not found.',),
'awaiting_account': fields.many2one('account.account', 'Default Account for Unrecognized Movement', domain=[('type', '!=', 'view')], required=True,
help= 'Set here the default account that will be used if the partner cannot be unambiguously identified.'),
'transfer_account': fields.many2one('account.account', 'Default Internal Transfer Account', domain=[('code', 'like', '58%'), ('type', '!=', 'view')], required=True,
help= 'Set here the default account that will be used for internal transfer between own bank accounts (e.g. transfer between current and deposit bank accounts).'),
'find_bbacom': fields.boolean('Lookup Invoice', required=True, help='Partner lookup via the \'BBA\' Structured Communication field of the Invoice.'),
'find_partner': fields.boolean('Lookup Partner', required=True, help='Partner lookup via Bank Account Number.'),
'active': fields.boolean('Active', help='If the active field is set to False, it will allow you to hide the Bank Account without removing it.'),
'company_id': fields.many2one('res.company', 'Company', required=True),
}
_defaults = {
'currency': lambda self,cr,uid,c: self.pool.get('res.users').browse(cr, uid, uid, c).company_id.currency_id.id,
'state': 'normal',
'coda_st_naming': lambda *a: '%(code)s/%(y)s/%(coda)s',
'active': True,
'find_bbacom': True,
'find_partner': True,
'company_id': lambda self,cr,uid,c: self.pool.get('res.users').browse(cr, uid, uid, c).company_id.id,
}
_sql_constraints = [
('account_uniq_1', 'unique (bank_id, description1, currency)', 'The combination of Bank Account, Account Description and Currency must be unique !'),
('account_uniq_2', 'unique (bank_id, description2, currency)', 'The combination of Bank Account, Account Description and Currency must be unique !'),
]
_constraints = [
(_check_currency, '\n\nConfiguration Error! \nThe Bank Account Currency should match the Journal Currency !', ['currency', 'journal']),
]
_order = 'name'
def name_get(self, cr, uid, ids, context=None):
res = []
if not len(ids):
return res
for id in self.browse(cr, uid, ids, context=context):
res.append((id.id, (id.bank_id.iban or id.bank_id.acc_number) + ' (' + id.currency.name + ')' + \
(id.description1 and (' - ' + id.description1) or '')))
return res
def copy(self, cr, uid, id, default=None, context=None):
cba = self.browse(cr, uid, id, context=context)
if not default:
default = {}
default = default.copy()
default.update({'journal_id': None})
default['description1'] = cba['description1'] or ''
default['description2'] = cba['description2'] or ''
default['name'] = (cba['name'] or '') + ' (copy)'
default['state'] = cba['state']
return super(coda_bank_account, self).copy(cr, uid, id, default, context)
def onchange_state(self, cr, uid, ids, state):
return state =='info' and {'value': {'journal': None}} or {}
coda_bank_account()
class account_coda(osv.osv):
_name = "account.coda"
_description = "coda for an Account"
_name = 'account.coda'
_description = 'Object to store CODA Data Files'
_order = 'coda_creation_date desc'
_columns = {
'name': fields.binary('Coda file', readonly=True, help="Store the detail of bank statements"),
'statement_ids': fields.one2many('account.bank.statement', 'coda_id', 'Generated Bank Statements', readonly=True),
'note': fields.text('Import log', readonly=True),
'journal_id': fields.many2one('account.journal', 'Journal', readonly=True, select=True, help="Bank Journal"),
'date': fields.date('Date', readonly=True, select=True, help="Import Date"),
'user_id': fields.many2one('res.users', 'User', readonly=True, select=True),
'name': fields.char('CODA Filename',size=128, readonly=True),
'coda_data': fields.binary('CODA File', readonly=True),
'statement_ids': fields.one2many('coda.bank.statement','coda_id','Generated CODA Bank Statements', readonly=True),
'note': fields.text('Import Log', readonly=True),
'coda_creation_date': fields.date('CODA Creation Date', readonly=True, select=True),
'date': fields.date('Import Date', readonly=True, select=True),
'user_id': fields.many2one('res.users','User', readonly=True, select=True),
'company_id': fields.many2one('res.company', 'Company', readonly=True)
}
_defaults = {
'date': lambda *a: time.strftime('%Y-%m-%d'),
'user_id': lambda self,cr,uid,context: uid,
'company_id': lambda s,cr,uid,c: s.pool.get('res.company')._company_default_get(cr, uid, 'account.coda', context=c),
}
}
_sql_constraints = [
('coda_uniq', 'unique (name, coda_creation_date)', 'This CODA has already been imported !')
]
def search(self, cr, user, args, offset=0, limit=None, order=None, context=None, count=False):
if context is None:
def unlink(self, cr, uid, ids, context=None):
if context is None:
context = {}
res = super(account_coda, self).search(cr, user, args=args, offset=offset, limit=limit, order=order,
context=context, count=count)
if context.get('bank_statement', False) and not res:
raise osv.except_osv('Error', _('Coda file not found for bank statement !!'))
return res
context.update({'coda_unlink': True})
coda_st_obj = self.pool.get('coda.bank.statement')
bank_st_obj = self.pool.get('account.bank.statement')
for coda in self.browse(cr, uid, ids, context=context):
for coda_statement in coda.statement_ids:
if not context.get('coda_statement_unlink', False):
if coda_st_obj.exists(cr, uid, coda_statement.id, context=context):
coda_st_obj.unlink(cr, uid, [coda_statement.id], context=context)
if not context.get('bank_statement_unlink', False):
if coda_st_obj.exists(cr, uid, coda_statement.id, context=context) and (coda_statement.type == 'normal') and bank_st_obj.exists(cr, uid, coda_statement.statement_id.id, context=context):
bank_st_obj.unlink(cr, uid, [coda_statement.statement_id.id], context=context)
context.update({'coda_unlink': False})
return super(account_coda, self).unlink(cr, uid, ids, context=context)
account_coda()
class account_bank_statement(osv.osv):
_inherit = "account.bank.statement"
class account_coda_trans_type(osv.osv):
_name = 'account.coda.trans.type'
_description = 'CODA transaction type'
_rec_name = 'type'
_columns = {
'coda_id':fields.many2one('account.coda', 'Coda'),
'type': fields.char('Transaction Type', size=1, required=True),
'parent_id': fields.many2one('account.coda.trans.type', 'Parent'),
'description': fields.text('Description', translate=True),
}
account_coda_trans_type()
class account_coda_trans_code(osv.osv):
_name = 'account.coda.trans.code'
_description = 'CODA transaction code'
_rec_name = 'code'
_columns = {
'code': fields.char('Code', size=2, required=True, select=1),
'type': fields.selection([
('code', 'Transaction Code'),
('family', 'Transaction Family')],
'Type', required=True, select=1),
'parent_id': fields.many2one('account.coda.trans.code', 'Family', select=1),
'description': fields.char('Description', size=128, translate=True, select=2),
'comment': fields.text('Comment', translate=True),
}
account_coda_trans_code()
class account_coda_trans_category(osv.osv):
_name = 'account.coda.trans.category'
_description = 'CODA transaction category'
_rec_name = 'category'
_columns = {
'category': fields.char('Transaction Category', size=3, required=True),
'description': fields.char('Description', size=256, translate=True),
}
account_coda_trans_category()
class account_coda_comm_type(osv.osv):
_name = 'account.coda.comm.type'
_description = 'CODA structured communication type'
_rec_name = 'code'
_columns = {
'code': fields.char('Structured Communication Type', size=3, required=True, select=1),
'description': fields.char('Description', size=128, translate=True),
}
_sql_constraints = [
('code_uniq', 'unique (code)','The Structured Communication Code must be unique !')
]
account_coda_comm_type()
class coda_bank_statement(osv.osv):
_name = 'coda.bank.statement'
_description = 'CODA Bank Statement'
def _default_journal_id(self, cr, uid, context={}):
if context.get('journal_id', False):
return context['journal_id']
return False
def _end_balance(self, cursor, user, ids, name, attr, context=None):
res = {}
statements = self.browse(cursor, user, ids, context=context)
for statement in statements:
res[statement.id] = statement.balance_start
for line in statement.line_ids:
res[statement.id] += line.amount
for r in res:
res[r] = round(res[r], 2)
return res
def _get_period(self, cr, uid, context={}):
periods = self.pool.get('account.period').find(cr, uid)
if periods:
return periods[0]
else:
return False
_order = 'date desc'
_columns = {
'name': fields.char('Name', size=64, required=True, readonly=True),
'date': fields.date('Date', required=True, readonly=True),
'coda_id': fields.many2one('account.coda', 'CODA Data File', ondelete='cascade'),
'type': fields.selection([
('normal', 'Normal'),
('info', 'Info')],
'Type', required=True, readonly=True,
help='No Bank Statements are associated with CODA Bank Statements of type \'Info\'.'),
'statement_id': fields.many2one('account.bank.statement', 'Associated Bank Statement'),
'journal_id': fields.many2one('account.journal', 'Journal', readonly=True, domain=[('type', '=', 'bank')]),
'coda_bank_account_id': fields.many2one('coda.bank.account', 'Bank Account', readonly=True),
'period_id': fields.many2one('account.period', 'Period', required=True, readonly=True),
'balance_start': fields.float('Starting Balance', digits_compute=dp.get_precision('Account'), readonly=True),
'balance_end_real': fields.float('Ending Balance', digits_compute=dp.get_precision('Account'), readonly=True),
'balance_end': fields.function(_end_balance, method=True, store=True, string='Balance'),
'line_ids': fields.one2many('coda.bank.statement.line',
'statement_id', 'CODA Bank Statement lines', readonly=True),
'currency': fields.many2one('res.currency', 'Currency', required=True, readonly=True,
help='The currency of the CODA Bank Statement'),
'company_id': fields.related('journal_id', 'company_id', type='many2one', relation='res.company', string='Company', store=True, readonly=True),
}
_defaults = {
'type': 'normal',
'currency': lambda self,cr,uid,c: self.pool.get('res.users').browse(cr, uid, uid, c).company_id.currency_id.id,
'journal_id': _default_journal_id,
'period_id': _get_period,
}
def search(self, cr, uid, args, offset=0, limit=None, order=None, context=None, count=False):
if context is None:
context = {}
res = super(coda_bank_statement, self).search(cr, uid, args=args, offset=offset, limit=limit, order=order,
context=context, count=count)
if context.get('bank_statement', False) and not res:
raise osv.except_osv('Warning', _('No CODA Bank Statement found for this Bank Statement!'))
return res
def unlink(self, cr, uid, ids, context=None):
if context is None:
context = {}
context.update({'coda_statement_unlink': True})
coda_obj = self.pool.get('account.coda')
bank_st_obj = self.pool.get('account.bank.statement')
# find all CODA bank statements that are associated with the selected CODA bank statements via a common CODA file
new_ids = []
for coda_statement in self.browse(cr, uid, ids, context=context):
if coda_obj.exists(cr, uid, coda_statement.coda_id.id, context=context):
new_ids += [x.id for x in coda_obj.browse(cr, uid, coda_statement.coda_id.id, context=context).statement_ids]
# unlink CODA banks statements as well as associated bank statements and CODA files
for coda_statement in self.browse(cr, uid, new_ids, context=context):
if coda_statement.statement_id.state == 'confirm':
raise osv.except_osv(_('Invalid action !'),
_("Cannot delete CODA Bank Statement '%s' of Journal '%s'." \
"\nThe associated Bank Statement has already been confirmed !" \
"\nPlease undo this action first!") \
% (coda_statement.name, coda_statement.journal_id.name))
else:
if not context.get('coda_unlink', False):
if coda_statement.coda_id and coda_obj.exists(cr, uid, coda_statement.coda_id.id, context=context):
coda_obj.unlink(cr, uid, [coda_statement.coda_id.id], context=context)
if not context.get('bank_statement_unlink', False):
if coda_statement.statement_id and bank_st_obj.exists(cr, uid, coda_statement.statement_id.id, context=context):
bank_st_obj.unlink(cr, uid, [coda_statement.statement_id.id], context=context)
context.update({'coda_statement_unlink': False})
return super(coda_bank_statement, self).unlink(cr, uid, new_ids, context=context)
coda_bank_statement()
class account_bank_statement(osv.osv):
_inherit = 'account.bank.statement'
_columns = {
'coda_statement_id': fields.many2one('coda.bank.statement', 'Associated CODA Bank Statement'),
}
def unlink(self, cr, uid, ids, context=None):
if context is None:
context = {}
context.update({'bank_statement_unlink': True})
coda_obj = self.pool.get('account.coda')
coda_st_obj = self.pool.get('coda.bank.statement')
# find all statements that are associated with the selected bank statements via a common CODA file
ids_plus = []
for statement in self.browse(cr, uid, ids, context=context):
if statement.coda_statement_id:
for x in coda_obj.browse(cr, uid, statement.coda_statement_id.coda_id.id, context=context).statement_ids:
if x.type == 'normal':
ids_plus += [x.statement_id.id]
# unlink banks statements as well as associated CODA bank statements and CODA files
for statement in self.browse(cr, uid, ids_plus, context=context):
if not context.get('coda_statement_unlink', False):
if statement.coda_statement_id and coda_st_obj.exists(cr, uid, statement.coda_statement_id.id, context=context):
coda_st_obj.unlink(cr, uid, [statement.coda_statement_id.id], context=context)
if not context.get('coda_unlink', False):
if statement.coda_statement_id \
and coda_st_obj.exists(cr, uid, statement.coda_statement_id.id, context=context) \
and statement.coda_statement_id.coda_id \
and coda_obj.exists(cr, uid, statement.coda_statement_id.coda_id.id, context=context):
coda_obj.unlink(cr, uid, [statement.coda_statement_id.coda_id.id], context=context)
context.update({'bank_statement_unlink': False})
new_ids = list(set(ids + ids_plus))
return super(account_bank_statement, self).unlink(cr, uid, new_ids, context=context)
account_bank_statement()
# vim:expandtab:smartindent:tabstop=4:softtabstop=4:shiftwidth=4:
class coda_bank_statement_line(osv.osv):
_name = 'coda.bank.statement.line'
_order = 'sequence'
_description = 'CODA Bank Statement Line'
_columns = {
'name': fields.char('Communication', size=268, required=True),
'sequence': fields.integer('Sequence'),
'date': fields.date('Entry Date', required=True),
'val_date': fields.date('Valuta Date'),
'account_id': fields.many2one('account.account','Account'), # remove required=True
'type': fields.selection([
('supplier','Supplier'),
('customer','Customer'),
('general','General'),
('globalisation','Globalisation'),
('information','Information'),
('communication','Free Communication'),
], 'Type', required=True),
'globalisation_level': fields.integer('Globalisation Level',
help="The value which is mentioned (1 to 9), specifies the hierarchy level"
" of the globalisation of which this record is the first."
"\nThe same code will be repeated at the end of the globalisation."),
'globalisation_amount': fields.float('Globalisation Amount', digits_compute=dp.get_precision('Account')),
'globalisation_id': fields.many2one('account.bank.statement.line.global', 'Globalisation ID', readonly=True,
help="Code to identify transactions belonging to the same globalisation level within a batch payment"),
'amount': fields.float('Amount', digits_compute=dp.get_precision('Account')),
'partner_id': fields.many2one('res.partner', 'Partner'),
'counterparty_name': fields.char('Counterparty Name', size=35),
'counterparty_bic': fields.char('Counterparty BIC', size=11),
'counterparty_number': fields.char('Counterparty Number', size=34),
'counterparty_currency': fields.char('Counterparty Currency', size=3),
'statement_id': fields.many2one('coda.bank.statement', 'CODA Bank Statement',
select=True, required=True, ondelete='cascade'),
'coda_bank_account_id': fields.related('statement_id', 'coda_bank_account_id', type='many2one', relation='coda.bank.account', string='Bank Account', store=True, readonly=True),
'ref': fields.char('Reference', size=32),
'note': fields.text('Notes'),
'company_id': fields.related('statement_id', 'company_id', type='many2one', relation='res.company', string='Company', store=True, readonly=True),
}
def unlink(self, cr, uid, ids, context=None):
if context is None:
context = {}
if context.get('block_statement_line_delete', False):
raise osv.except_osv('Warning', _('Delete operation not allowed !'))
return super(account_bank_statement_line, self).unlink(cr, uid, ids, context=context)
coda_bank_statement_line()
class account_bank_statement_line_global(osv.osv):
_inherit = 'account.bank.statement.line.global'
_columns = {
'coda_statement_line_ids': fields.one2many('coda.bank.statement.line', 'globalisation_id', 'CODA Bank Statement Lines', readonly=True),
}
account_bank_statement_line_global()
# vim:expandtab:smartindent:tabstop=4:softtabstop=4:shiftwidth=4:

View File

@ -0,0 +1,140 @@
<?xml version="1.0" encoding="utf-8"?>
<openerp>
<data noupdate="1">
<!-- account.coda.comm.type -->
<record id="acct_001" model="account.coda.comm.type">
<field name="code">001</field>
<field name="description">Data concerning the counterparty</field>
</record>
<record id="acct_002" model="account.coda.comm.type">
<field name="code">002</field>
<field name="description">Communication of the bank</field>
</record>
<record id="acct_003" model="account.coda.comm.type">
<field name="code">003</field>
<field name="description">RBP data</field>
</record>
<record id="acct_004" model="account.coda.comm.type">
<field name="code">004</field>
<field name="description">Counterpartys banker</field>
</record>
<record id="acct_005" model="account.coda.comm.type">
<field name="code">005</field>
<field name="description">Data concerning the correspondent</field>
</record>
<record id="acct_006" model="account.coda.comm.type">
<field name="code">006</field>
<field name="description">Information concerning the detail amount</field>
</record>
<record id="acct_007" model="account.coda.comm.type">
<field name="code">007</field>
<field name="description">Information concerning the detail cash</field>
</record>
<record id="acct_008" model="account.coda.comm.type">
<field name="code">008</field>
<field name="description">Identification of the de ultimate beneficiary/creditor (SEPA SCT/SDD)</field>
</record>
<record id="acct_009" model="account.coda.comm.type">
<field name="code">009</field>
<field name="description">Identification of the de ultimate ordering customer/debtor (SEPA SCT/SDD)</field>
</record>
<record id="acct_010" model="account.coda.comm.type">
<field name="code">010</field>
<field name="description">Information pertaining to sale or purchase of securities</field>
</record>
<record id="acct_011" model="account.coda.comm.type">
<field name="code">011</field>
<field name="description">Information pertaining to coupons</field>
</record>
<record id="acct_100" model="account.coda.comm.type">
<field name="code">100</field>
<field name="description">(SEPA) payment with a structured format communication applying the ISO standard 11649: Structured creditor reference to remittance information</field>
</record>
<record id="acct_101" model="account.coda.comm.type">
<field name="code">101</field>
<field name="description">Credit transfer or cash payment with structured format communication</field>
</record>
<record id="acct_102" model="account.coda.comm.type">
<field name="code">102</field>
<field name="description">Credit transfer or cash payment with reconstituted structured format communication</field>
</record>
<record id="acct_103" model="account.coda.comm.type">
<field name="code">103</field>
<field name="description">number (e.g. of the cheque, of the card, etc.)</field>
</record>
<record id="acct_104" model="account.coda.comm.type">
<field name="code">104</field>
<field name="description">Equivalent in EUR</field>
</record>
<record id="acct_105" model="account.coda.comm.type">
<field name="code">105</field>
<field name="description">original amount of the transaction</field>
</record>
<record id="acct_106" model="account.coda.comm.type">
<field name="code">106</field>
<field name="description">Method of calculation (VAT, withholding tax on income, commission, etc.)</field>
</record>
<record id="acct_107" model="account.coda.comm.type">
<field name="code">107</field>
<field name="description">Direct debit DOM80</field>
</record>
<record id="acct_108" model="account.coda.comm.type">
<field name="code">108</field>
<field name="description">Closing</field>
</record>
<record id="acct_111" model="account.coda.comm.type">
<field name="code">111</field>
<field name="description">POS credit Globalisation</field>
</record>
<record id="acct_112" model="account.coda.comm.type">
<field name="code">112</field>
<field name="description">ATM payment (usually Eurocheque card)</field>
</record>
<record id="acct_113" model="account.coda.comm.type">
<field name="code">113</field>
<field name="description">ATM/POS debit</field>
</record>
<record id="acct_114" model="account.coda.comm.type">
<field name="code">114</field>
<field name="description">POS credit - individual transaction</field>
</record>
<record id="acct_115" model="account.coda.comm.type">
<field name="code">115</field>
<field name="description">Terminal cash deposit</field>
</record>
<record id="acct_120" model="account.coda.comm.type">
<field name="code">120</field>
<field name="description">Correction of a transaction</field>
</record>
<record id="acct_121" model="account.coda.comm.type">
<field name="code">121</field>
<field name="description">Commercial bills</field>
</record>
<record id="acct_122" model="account.coda.comm.type">
<field name="code">122</field>
<field name="description">Bills - calculation of interest</field>
</record>
<record id="acct_123" model="account.coda.comm.type">
<field name="code">123</field>
<field name="description">Fees and commissions</field>
</record>
<record id="acct_124" model="account.coda.comm.type">
<field name="code">124</field>
<field name="description">Number of the credit card</field>
</record>
<record id="acct_125" model="account.coda.comm.type">
<field name="code">125</field>
<field name="description">Credit</field>
</record>
<record id="acct_126" model="account.coda.comm.type">
<field name="code">126</field>
<field name="description">Term investments</field>
</record>
<record id="acct_127" model="account.coda.comm.type">
<field name="code">127</field>
<field name="description">European direct debit (SEPA)</field>
</record>
</data>
</openerp>

View File

@ -1,5 +0,0 @@
<?xml version="1.0"?>
<openerp>
<data noupdate="1">
</data>
</openerp>

View File

@ -0,0 +1,440 @@
<?xml version="1.0" encoding="utf-8"?>
<openerp>
<data noupdate="1">
<!-- account.coda.trans.category -->
<record id="actrca_000" model="account.coda.trans.category">
<field name="category">000</field>
<field name="description">Net amount</field>
</record>
<record id="actrca_001" model="account.coda.trans.category">
<field name="category">001</field>
<field name="description">Interest received</field>
</record>
<record id="actrca_002" model="account.coda.trans.category">
<field name="category">002</field>
<field name="description">Interest paid</field>
</record>
<record id="actrca_003" model="account.coda.trans.category">
<field name="category">003</field>
<field name="description">Credit commission</field>
</record>
<record id="actrca_004" model="account.coda.trans.category">
<field name="category">004</field>
<field name="description">Postage</field>
</record>
<record id="actrca_005" model="account.coda.trans.category">
<field name="category">005</field>
<field name="description">Renting of letterbox</field>
</record>
<record id="actrca_006" model="account.coda.trans.category">
<field name="category">006</field>
<field name="description">Various fees/commissions</field>
</record>
<record id="actrca_007" model="account.coda.trans.category">
<field name="category">007</field>
<field name="description">Access right to database</field>
</record>
<record id="actrca_008" model="account.coda.trans.category">
<field name="category">008</field>
<field name="description">Information charges</field>
</record>
<record id="actrca_009" model="account.coda.trans.category">
<field name="category">009</field>
<field name="description">Travelling expenses</field>
</record>
<record id="actrca_010" model="account.coda.trans.category">
<field name="category">010</field>
<field name="description">Writ service fee</field>
</record>
<record id="actrca_011" model="account.coda.trans.category">
<field name="category">011</field>
<field name="description">VAT</field>
</record>
<record id="actrca_012" model="account.coda.trans.category">
<field name="category">012</field>
<field name="description">Exchange commission</field>
</record>
<record id="actrca_013" model="account.coda.trans.category">
<field name="category">013</field>
<field name="description">Payment commission</field>
</record>
<record id="actrca_014" model="account.coda.trans.category">
<field name="category">014</field>
<field name="description">Collection commission</field>
</record>
<record id="actrca_015" model="account.coda.trans.category">
<field name="category">015</field>
<field name="description">Correspondent charges</field>
</record>
<record id="actrca_016" model="account.coda.trans.category">
<field name="category">016</field>
<field name="description">BLIW/IBLC dues</field>
</record>
<record id="actrca_017" model="account.coda.trans.category">
<field name="category">017</field>
<field name="description">Research costs</field>
</record>
<record id="actrca_018" model="account.coda.trans.category">
<field name="category">018</field>
<field name="description">Tental guarantee charges</field>
</record>
<record id="actrca_019" model="account.coda.trans.category">
<field name="category">019</field>
<field name="description">Tax on physical delivery</field>
</record>
<record id="actrca_020" model="account.coda.trans.category">
<field name="category">020</field>
<field name="description">Costs of physical delivery</field>
</record>
<record id="actrca_021" model="account.coda.trans.category">
<field name="category">021</field>
<field name="description">Costs for drawing up a bank cheque</field>
</record>
<record id="actrca_022" model="account.coda.trans.category">
<field name="category">022</field>
<field name="description">Priority costs</field>
</record>
<record id="actrca_023" model="account.coda.trans.category">
<field name="category">023</field>
<field name="description">Exercising fee</field>
</record>
<record id="actrca_024" model="account.coda.trans.category">
<field name="category">024</field>
<field name="description">Growth premium</field>
</record>
<record id="actrca_025" model="account.coda.trans.category">
<field name="category">025</field>
<field name="description">Individual entry for exchange charges</field>
</record>
<record id="actrca_026" model="account.coda.trans.category">
<field name="category">026</field>
<field name="description">Handling commission</field>
</record>
<record id="actrca_027" model="account.coda.trans.category">
<field name="category">027</field>
<field name="description">Charges for unpaid bills</field>
</record>
<record id="actrca_028" model="account.coda.trans.category">
<field name="category">028</field>
<field name="description">Fidelity premium</field>
</record>
<record id="actrca_029" model="account.coda.trans.category">
<field name="category">029</field>
<field name="description">Protest charges</field>
</record>
<record id="actrca_030" model="account.coda.trans.category">
<field name="category">030</field>
<field name="description">Account insurance</field>
</record>
<record id="actrca_031" model="account.coda.trans.category">
<field name="category">031</field>
<field name="description">Charges foreign cheque</field>
</record>
<record id="actrca_032" model="account.coda.trans.category">
<field name="category">032</field>
<field name="description">Drawing up a circular cheque</field>
</record>
<record id="actrca_033" model="account.coda.trans.category">
<field name="category">033</field>
<field name="description">Charges for a foreign bill</field>
</record>
<record id="actrca_034" model="account.coda.trans.category">
<field name="category">034</field>
<field name="description">Reinvestment fee</field>
</record>
<record id="actrca_035" model="account.coda.trans.category">
<field name="category">035</field>
<field name="description">Charges foreign documentary bill</field>
</record>
<record id="actrca_036" model="account.coda.trans.category">
<field name="category">036</field>
<field name="description">Costs relating to a refused cheque</field>
</record>
<record id="actrca_037" model="account.coda.trans.category">
<field name="category">037</field>
<field name="description">Commission for handling charges</field>
</record>
<record id="actrca_039" model="account.coda.trans.category">
<field name="category">039</field>
<field name="description">Telecommunications</field>
</record>
<record id="actrca_041" model="account.coda.trans.category">
<field name="category">041</field>
<field name="description">Credit card costs</field>
</record>
<record id="actrca_042" model="account.coda.trans.category">
<field name="category">042</field>
<field name="description">Payment card costs</field>
</record>
<record id="actrca_043" model="account.coda.trans.category">
<field name="category">043</field>
<field name="description">Insurance costs</field>
</record>
<record id="actrca_045" model="account.coda.trans.category">
<field name="category">045</field>
<field name="description">Handling costs</field>
</record>
<record id="actrca_047" model="account.coda.trans.category">
<field name="category">047</field>
<field name="description">Charges extension bill</field>
</record>
<record id="actrca_049" model="account.coda.trans.category">
<field name="category">049</field>
<field name="description">Fiscal stamps/stamp duty</field>
</record>
<record id="actrca_050" model="account.coda.trans.category">
<field name="category">050</field>
<field name="description">Capital term investment</field>
</record>
<record id="actrca_051" model="account.coda.trans.category">
<field name="category">051</field>
<field name="description">Withholding tax</field>
</record>
<record id="actrca_052" model="account.coda.trans.category">
<field name="category">052</field>
<field name="description">Residence state tax</field>
</record>
<record id="actrca_053" model="account.coda.trans.category">
<field name="category">053</field>
<field name="description">Printing of forms</field>
</record>
<record id="actrca_055" model="account.coda.trans.category">
<field name="category">055</field>
<field name="description">Repayment loan or credit capital</field>
</record>
<record id="actrca_057" model="account.coda.trans.category">
<field name="category">057</field>
<field name="description">Interest subsidy</field>
</record>
<record id="actrca_058" model="account.coda.trans.category">
<field name="category">058</field>
<field name="description">Capital premium</field>
</record>
<record id="actrca_059" model="account.coda.trans.category">
<field name="category">059</field>
<field name="description">Default interest</field>
</record>
<record id="actrca_061" model="account.coda.trans.category">
<field name="category">061</field>
<field name="description">Charging fees for transactions</field>
</record>
<record id="actrca_063" model="account.coda.trans.category">
<field name="category">063</field>
<field name="description">Rounding differences</field>
</record>
<record id="actrca_065" model="account.coda.trans.category">
<field name="category">065</field>
<field name="description">Interest payment advice</field>
</record>
<record id="actrca_066" model="account.coda.trans.category">
<field name="category">066</field>
<field name="description">Fixed loan advance - reimbursement</field>
</record>
<record id="actrca_067" model="account.coda.trans.category">
<field name="category">067</field>
<field name="description">Fixed loan advance - extension</field>
</record>
<record id="actrca_068" model="account.coda.trans.category">
<field name="category">068</field>
<field name="description">Countervalue of an entry</field>
</record>
<record id="actrca_069" model="account.coda.trans.category">
<field name="category">069</field>
<field name="description">Forward arbitrage contracts : sum to be supplied by customer</field>
</record>
<record id="actrca_070" model="account.coda.trans.category">
<field name="category">070</field>
<field name="description">Forward arbitrage contracts : sum to be supplied by bank</field>
</record>
<record id="actrca_071" model="account.coda.trans.category">
<field name="category">071</field>
<field name="description">Fixed loan advance - availability</field>
</record>
<record id="actrca_072" model="account.coda.trans.category">
<field name="category">072</field>
<field name="description">Countervalue of commission to third party</field>
</record>
<record id="actrca_073" model="account.coda.trans.category">
<field name="category">073</field>
<field name="description">Costs of ATM abroad</field>
</record>
<record id="actrca_074" model="account.coda.trans.category">
<field name="category">074</field>
<field name="description">Mailing costs</field>
</record>
<record id="actrca_100" model="account.coda.trans.category">
<field name="category">100</field>
<field name="description">Gross amount</field>
</record>
<record id="actrca_200" model="account.coda.trans.category">
<field name="category">200</field>
<field name="description">Overall documentary credit charges</field>
</record>
<record id="actrca_201" model="account.coda.trans.category">
<field name="category">201</field>
<field name="description">Advice notice commission</field>
</record>
<record id="actrca_202" model="account.coda.trans.category">
<field name="category">202</field>
<field name="description">Advising commission | Additional advising commission</field>
</record>
<record id="actrca_203" model="account.coda.trans.category">
<field name="category">203</field>
<field name="description">Confirmation fee | Additional confirmation fee | Commitment fee | Flat fee | Confirmation reservation commission | Additional reservation commission</field>
</record>
<record id="actrca_204" model="account.coda.trans.category">
<field name="category">204</field>
<field name="description">Amendment fee</field>
</record>
<record id="actrca_205" model="account.coda.trans.category">
<field name="category">205</field>
<field name="description">Documentary payment commission | Document commission | Drawdown fee | Negotiation fee</field>
</record>
<record id="actrca_206" model="account.coda.trans.category">
<field name="category">206</field>
<field name="description">Surety fee/payment under reserve</field>
</record>
<record id="actrca_207" model="account.coda.trans.category">
<field name="category">207</field>
<field name="description">Non-conformity fee</field>
</record>
<record id="actrca_208" model="account.coda.trans.category">
<field name="category">208</field>
<field name="description">Commitment fee deferred payment</field>
</record>
<record id="actrca_209" model="account.coda.trans.category">
<field name="category">209</field>
<field name="description">Transfer commission</field>
</record>
<record id="actrca_210" model="account.coda.trans.category">
<field name="category">210</field>
<field name="description">Commitment fee</field>
</record>
<record id="actrca_211" model="account.coda.trans.category">
<field name="category">211</field>
<field name="description">Credit arrangement fee | Additional credit arrangement fee</field>
</record>
<record id="actrca_212" model="account.coda.trans.category">
<field name="category">212</field>
<field name="description">Warehousing fee</field>
</record>
<record id="actrca_213" model="account.coda.trans.category">
<field name="category">213</field>
<field name="description">Financing fee</field>
</record>
<record id="actrca_214" model="account.coda.trans.category">
<field name="category">214</field>
<field name="description">Issue commission (delivery order)</field>
</record>
<record id="actrca_400" model="account.coda.trans.category">
<field name="category">400</field>
<field name="description">Acceptance fee</field>
</record>
<record id="actrca_401" model="account.coda.trans.category">
<field name="category">401</field>
<field name="description">Visa charges</field>
</record>
<record id="actrca_402" model="account.coda.trans.category">
<field name="category">402</field>
<field name="description">Certification costs</field>
</record>
<record id="actrca_403" model="account.coda.trans.category">
<field name="category">403</field>
<field name="description">Minimum discount rate</field>
</record>
<record id="actrca_404" model="account.coda.trans.category">
<field name="category">404</field>
<field name="description">Discount commission</field>
</record>
<record id="actrca_405" model="account.coda.trans.category">
<field name="category">405</field>
<field name="description">Bill guarantee commission</field>
</record>
<record id="actrca_406" model="account.coda.trans.category">
<field name="category">406</field>
<field name="description">Collection charges</field>
</record>
<record id="actrca_407" model="account.coda.trans.category">
<field name="category">407</field>
<field name="description">Costs Article 45</field>
</record>
<record id="actrca_408" model="account.coda.trans.category">
<field name="category">408</field>
<field name="description">Cover commission</field>
</record>
<record id="actrca_409" model="account.coda.trans.category">
<field name="category">409</field>
<field name="description">Safe deposit charges</field>
</record>
<record id="actrca_410" model="account.coda.trans.category">
<field name="category">410</field>
<field name="description">Reclamation charges</field>
</record>
<record id="actrca_411" model="account.coda.trans.category">
<field name="category">411</field>
<field name="description">Fixed collection charge</field>
</record>
<record id="actrca_412" model="account.coda.trans.category">
<field name="category">412</field>
<field name="description">Advice of expiry charges</field>
</record>
<record id="actrca_413" model="account.coda.trans.category">
<field name="category">413</field>
<field name="description">Acceptance charges</field>
</record>
<record id="actrca_414" model="account.coda.trans.category">
<field name="category">414</field>
<field name="description">Regularisation charges</field>
</record>
<record id="actrca_415" model="account.coda.trans.category">
<field name="category">415</field>
<field name="description">Surety fee</field>
</record>
<record id="actrca_416" model="account.coda.trans.category">
<field name="category">416</field>
<field name="description">Charges for the deposit of security</field>
</record>
<record id="actrca_418" model="account.coda.trans.category">
<field name="category">418</field>
<field name="description">Endorsement commission</field>
</record>
<record id="actrca_419" model="account.coda.trans.category">
<field name="category">419</field>
<field name="description">Bank service fee</field>
</record>
<record id="actrca_420" model="account.coda.trans.category">
<field name="category">420</field>
<field name="description">Retention charges</field>
</record>
<record id="actrca_425" model="account.coda.trans.category">
<field name="category">425</field>
<field name="description">Foreign broker's commission</field>
</record>
<record id="actrca_426" model="account.coda.trans.category">
<field name="category">426</field>
<field name="description">Belgian broker's commission</field>
</record>
<record id="actrca_427" model="account.coda.trans.category">
<field name="category">427</field>
<field name="description">Belgian Stock Exchange tax</field>
</record>
<record id="actrca_428" model="account.coda.trans.category">
<field name="category">428</field>
<field name="description">Interest accrued</field>
</record>
<record id="actrca_429" model="account.coda.trans.category">
<field name="category">429</field>
<field name="description">Foreign Stock Exchange tax</field>
</record>
<record id="actrca_430" model="account.coda.trans.category">
<field name="category">430</field>
<field name="description">Recovery of foreign tax</field>
</record>
<record id="actrca_431" model="account.coda.trans.category">
<field name="category">431</field>
<field name="description">Delivery of a copy</field>
</record>
</data>
</openerp>

File diff suppressed because it is too large Load Diff

View File

@ -0,0 +1,49 @@
<?xml version="1.0" encoding="utf-8"?>
<openerp>
<data noupdate="1">
<!-- account.coda.trans.type -->
<record id="actt_0" model="account.coda.trans.type">
<field name="type">0</field>
<field name="description">Simple amount without detailed data; e.g. : an individual credit transfer (free of charges).</field>
</record>
<record id="actt_1" model="account.coda.trans.type">
<field name="type">1</field>
<field name="description">Amount as totalised by the customer; e.g. a file regrouping payments of wages or payments made to suppliers or a file regrouping collections for which the customer is debited or credited with one single amount. As a matter of principle, this type is also used when no detailed data is following (type 5).</field>
</record>
<record id="actt_5" model="account.coda.trans.type">
<field name="type">5</field>
<field name="parent_id" ref="actt_1"/>
<field name="description">Detail of 1. Standard procedure is no detailing. However, the customer may ask for detailed data to be included into his file after the overall record (type 1).</field>
</record>
<record id="actt_2" model="account.coda.trans.type">
<field name="type">2</field>
<field name="description">Amount as totalised by the bank; e.g. : the total amount of a series of credit transfers with a structured communication As a matter of principle, this type will also be used when no detailed data (type 6 or 7) is following.</field>
</record>
<record id="actt_6" model="account.coda.trans.type">
<field name="type">6</field>
<field name="parent_id" ref="actt_2"/>
<field name="description">Detail of 2. Simple amount without detailed data. Normally, data of this kind comes after type 2. The customer may ask for a separate file containing the detailed data. In that case, one will speak of a separate application. The records in a separate application keep type 6.</field>
</record>
<record id="actt_7" model="account.coda.trans.type">
<field name="type">7</field>
<field name="parent_id" ref="actt_2"/>
<field name="description">Detail of 2. Simple account with detailed data The records in a separate application keep type 7.</field>
</record>
<record id="actt_9" model="account.coda.trans.type">
<field name="type">9</field>
<field name="parent_id" ref="actt_7"/>
<field name="description">Detail of 7. The records in a separate application keep type 9.</field>
</record>
<record id="actt_3" model="account.coda.trans.type">
<field name="type">3</field>
<field name="description">Simple amount with detailed data; e.g. in case of charges for cross-border credit transfers.</field>
</record>
<record id="actt_8" model="account.coda.trans.type">
<field name="type">8</field>
<field name="parent_id" ref="actt_3"/>
<field name="description">Detail of 3.</field>
</record>
</data>
</openerp>

View File

@ -1,92 +1,531 @@
<?xml version="1.0" ?>
<openerp>
<data>
<data>
<record model="ir.ui.view" id="view_account_coda_form">
<field name="name">account.coda.form</field>
<field name="model">account.coda</field>
<field name="type">form</field>
<field name="arch" type="xml">
<form string="Coda import">
<field name="name" />
<field name="journal_id" widget="selection"/>
<field name="date" />
<field name="user_id" />
<field name="company_id" widget="selection" groups="base.group_multi_company"/>
<notebook colspan="4">
<page string="Log">
<field name="note" colspan="4" nolabel="1"/>
</page>
<page string="Statements">
<field name="statement_ids" colspan="4" nolabel="1"/>
</page>
</notebook>
</form>
</field>
<!-- CODA Configuration -->
<menuitem id="menu_manage_coda" name="CODA Configuration" parent="account.menu_finance_accounting" sequence="30"/>
<!-- CODA Bank Account Configuration -->
<record id="view_coda_bank_account_search" model="ir.ui.view">
<field name="name">coda.bank.account.search</field>
<field name="model">coda.bank.account</field>
<field name="type">search</field>
<field name="arch" type="xml">
<form string="CODA Bank Account Configuration">
<filter string="Normal" domain="[('state','=','normal')]" icon="terp-folder-green"/>
<filter string="Info" domain="[('state','=','info')]" icon="terp-folder-yellow"/>
<separator orientation="vertical"/>
<field name="name"/>
<field name="bank_id"/>
<field name="description1"/>
<field name="journal"/>
<field name="currency" widget="selection"/>
<field name="company_id" widget="selection" groups="base.group_multi_company"/>
<newline/>
<group expand="0" string="Group By...">
<filter string="Bank Account" icon="terp-folder-yellow" domain="[]" context="{'group_by':'bank_id'}"/>
<filter string="Currency" icon="terp-dolar" domain="[]" context="{'group_by':'currency'}"/>
</group>
</form>
</field>
</record>
<record id="view_coda_bank_account_list" model="ir.ui.view">
<field name="name">coda.bank.account.list</field>
<field name="model">coda.bank.account</field>
<field name="type">tree</field>
<field name="arch" type="xml">
<tree string="CODA Bank Account Configuration">
<field name="name" select="1"/>
<field name="bank_id"/>
<field name="currency"/>
<field name="description1"/>
<field name="journal" select="1"/>
<field name="state"/>
</tree>
</field>
</record>
<record id="view_coda_bank_account_form" model="ir.ui.view">
<field name="name">coda.bank.account.form</field>
<field name="model">coda.bank.account</field>
<field name="type">form</field>
<field name="arch" type="xml">
<form string="CODA Bank Account Configuration">
<field name="name" select="1" colspan="4"/>
<field name="bank_id" domain="[('partner_id.ref_companies', 'in', [company_id])]"/>
<field name="description1"/>
<field name="currency"/>
<field name="description2"/>
<field name="coda_st_naming"/>
<field name="state" on_change="onchange_state(state)"/>
<field name="journal" attrs="{'invisible':[('state','=','info')]}"/>
<newline/>
<field name="def_payable"/>
<field name="def_receivable"/>
<field name="awaiting_account"/>
<field name="transfer_account"/>
<field name="find_bbacom"/>
<field name="find_partner"/>
<field name="company_id" widget='selection' groups="base.group_multi_company"/>
<field name="active"/>
</form>
</field>
</record>
<record id="action_coda_bank_account_form" model="ir.actions.act_window">
<field name="name">CODA Bank Account Configuration</field>
<field name="res_model">coda.bank.account</field>
<field name="view_type">form</field>
<field name="view_mode">tree,form</field>
<field name="search_view_id" ref="view_coda_bank_account_search"/>
</record>
<menuitem action="action_coda_bank_account_form" id="menu_action_coda_bank_account_form" parent="menu_manage_coda" sequence="1"/>
<!-- CODA Transaction Types -->
<record id="view_account_coda_trans_type_tree" model="ir.ui.view">
<field name="name">account.coda.trans.type.tree</field>
<field name="model">account.coda.trans.type</field>
<field name="type">tree</field>
<field name="arch" type="xml">
<tree string="CODA Transaction Types">
<field name="type"/>
<field name="parent_id"/>
<field name="description"/>
</tree>
</field>
</record>
<record id="view_account_coda_trans_type_form" model="ir.ui.view">
<field name="name">account.coda.trans.type.form</field>
<field name="model">account.coda.trans.type</field>
<field name="type">form</field>
<field name="arch" type="xml">
<form string="CODA Transaction Type">
<field name="type"/>
<field name="parent_id"/>
<field name="description" colspan="4"/>
</form>
</field>
</record>
<record id="action_account_coda_trans_type_form" model="ir.actions.act_window">
<field name="name">CODA Transaction Types</field>
<field name="type">ir.actions.act_window</field>
<field name="res_model">account.coda.trans.type</field>
<field name="view_type">form</field>
<field name="view_mode">tree,form</field>
</record>
<menuitem action="action_account_coda_trans_type_form" id="menu_action_account_coda_trans_type_form" parent="menu_manage_coda" sequence="2"/>
<!-- CODA Transaction Codes -->
<record id="view_account_coda_trans_code_tree" model="ir.ui.view">
<field name="name">account.coda.trans.code.tree</field>
<field name="model">account.coda.trans.code</field>
<field name="type">tree</field>
<field name="arch" type="xml">
<tree string="CODA Transaction Codes">
<field name="code"/>
<field name="type"/>
<field name="parent_id"/>
<field name="description"/>
</tree>
</field>
</record>
<record id="view_account_coda_trans_code_form" model="ir.ui.view">
<field name="name">account.coda.trans.code.form</field>
<field name="model">account.coda.trans.code</field>
<field name="type">form</field>
<field name="arch" type="xml">
<form string="CODA Transaction Code">
<field name="code"/>
<field name="type"/>
<field name="parent_id"/>
<field name="description"/>
<field name="comment" colspan="4"/>
</form>
</field>
</record>
<record id="action_account_coda_trans_code_form" model="ir.actions.act_window">
<field name="name">CODA Transaction Codes</field>
<field name="type">ir.actions.act_window</field>
<field name="res_model">account.coda.trans.code</field>
<field name="view_type">form</field>
<field name="view_mode">tree,form</field>
</record>
<menuitem action="action_account_coda_trans_code_form" id="menu_action_account_coda_trans_code_form" parent="menu_manage_coda" sequence="3"/>
<!-- CODA Transaction Categories -->
<record id="view_account_coda_trans_category_tree" model="ir.ui.view">
<field name="name">account.coda.trans.category.tree</field>
<field name="model">account.coda.trans.category</field>
<field name="type">tree</field>
<field name="arch" type="xml">
<tree string="CODA Transaction Categories">
<field name="category"/>
<field name="description"/>
</tree>
</field>
</record>
<record id="view_account_coda_trans_category_form" model="ir.ui.view">
<field name="name">account.coda.trans.category.form</field>
<field name="model">account.coda.trans.category</field>
<field name="type">form</field>
<field name="arch" type="xml">
<form string="CODA Transaction Category">
<field name="category"/>
<field name="description"/>
</form>
</field>
</record>
<record id="action_account_coda_trans_category_form" model="ir.actions.act_window">
<field name="name">CODA Transaction Categories</field>
<field name="type">ir.actions.act_window</field>
<field name="res_model">account.coda.trans.category</field>
<field name="view_type">form</field>
<field name="view_mode">tree,form</field>
</record>
<menuitem action="action_account_coda_trans_category_form" id="menu_action_account_coda_trans_category_form" parent="menu_manage_coda" sequence="4"/>
<!-- CODA Structured Communication Types -->
<record id="view_account_coda_comm_type_tree" model="ir.ui.view">
<field name="name">account.coda.comm.type.tree</field>
<field name="model">account.coda.comm.type</field>
<field name="type">tree</field>
<field name="arch" type="xml">
<tree string="CODA Structured Communication Types">
<field name="code"/>
<field name="description"/>
</tree>
</field>
</record>
<record id="view_account_coda_comm_type_form" model="ir.ui.view">
<field name="name">account.coda.comm.type.form</field>
<field name="model">account.coda.comm.type</field>
<field name="type">form</field>
<field name="arch" type="xml">
<form string="CODA Structured Communication Type">
<field name="code"/>
<field name="description"/>
</form>
</field>
</record>
<record id="action_account_coda_comm_type_form" model="ir.actions.act_window">
<field name="name">CODA Structured Communication Types</field>
<field name="type">ir.actions.act_window</field>
<field name="res_model">account.coda.comm.type</field>
<field name="view_type">form</field>
<field name="view_mode">tree,form</field>
</record>
<menuitem action="action_account_coda_comm_type_form" id="menu_action_account_coda_comm_type_form" parent="menu_manage_coda" sequence="5"/>
<!-- CODA Processing -->
<menuitem name="CODA Processing" parent="account.menu_finance_bank_and_cash" id="menu_account_coda" groups="base.group_extended" sequence="40"/>
<menuitem name="Import CODA Files" parent="menu_account_coda" id="menu_account_coda_import" action="action_account_coda_import" sequence="41"/>
<!-- CODA Files -->
<record model="ir.ui.view" id="view_account_coda_tree">
<field name="name">account.coda.tree</field>
<field name="model">account.coda</field>
<field name="type">tree</field>
<field name="arch" type="xml">
<tree string="Coda Import">
<field name="journal_id" widget="selection"/>
<field name="date" />
<field name="user_id" />
<field name="company_id" widget="selection" groups="base.group_multi_company"/>
</tree>
</field>
<field name="name">account.coda.tree</field>
<field name="model">account.coda</field>
<field name="type">tree</field>
<field name="arch" type="xml">
<tree string="CODA Files">
<field name="coda_creation_date"/>
<field name="name"/>
<field name="date"/>
<field name="user_id"/>
<field name="company_id" widget="selection" groups="base.group_multi_company"/>
</tree>
</field>
</record>
<record model="ir.ui.view" id="view_account_coda_form">
<field name="name">account.coda.form</field>
<field name="model">account.coda</field>
<field name="type">form</field>
<field name="arch" type="xml">
<form string="CODA File">
<group colspan="4" col="6">
<field name="coda_creation_date"/>
<field name="name"/>
<field name="coda_data" fieldname="name"/>
<field name="date"/>
<field name="user_id"/>
<field name="company_id" widget="selection" groups="base.group_multi_company"/>
</group>
<separator colspan="4" string="Additional Information"/>
<field name="note" nolabel="1" colspan="4" />
<field name="statement_ids" nolabel="1" colspan="4"/>
</form>
</field>
</record>
<record id="view_account_coda_filter" model="ir.ui.view">
<field name="name">account.coda.search</field>
<field name="model">account.coda</field>
<field name="type">search</field>
<field name="arch" type="xml">
<search string="Search CODA Files">
<group col="10" colspan="4">
<field name="coda_creation_date"/>
<field name="date"/>
<field name="user_id" widget='selection'/>
<field name="company_id" widget="selection" groups="base.group_multi_company"/>
</group>
<newline/>
<group expand="0" string="Group By...">
<filter string="CODA Creation Date" icon="terp-go-month" domain="[]" context="{'group_by':'coda_creation_date'}"/>
<separator orientation="vertical"/>
<filter string="User" icon="terp-personal" domain="[]" context="{'group_by':'user_id'}"/>
<separator orientation="vertical"/>
<filter string="Company" icon="terp-go-home" domain="[]" groups="base.group_multi_company" context="{'group_by':'company_id'}"/>
</group>
</search>
</field>
</record>
<record model="ir.actions.act_window" id="action_imported_coda_files">
<field name="name">Imported CODA Files</field>
<field name="type">ir.actions.act_window</field>
<field name="res_model">account.coda</field>
<field name="view_type">form</field>
<field name="view_mode">tree,form</field>
<field name="view_id" ref="view_account_coda_tree"/>
<field name="search_view_id" ref="view_account_coda_filter"/>
</record>
<record id="view_aaccount_coda_filter" model="ir.ui.view">
<field name="name">account.coda.select</field>
<field name="model">account.coda</field>
<field name="type">search</field>
<field name="arch" type="xml">
<search string="Search Coda">
<group>
<field name="journal_id" widget='selection'/>
<field name="date"/>
<field name="user_id" widget='selection'/>
<field name="company_id" widget="selection" groups="base.group_multi_company"/>
</group>
<newline/>
<group expand="0" string="Group By...">
<filter string="User" icon="terp-personal" domain="[]" context="{'group_by':'user_id'}"/>
<separator orientation="vertical"/>
<filter string="Journal" icon="terp-folder-orange" domain="[]" context="{'group_by':'journal_id'}"/>
<filter string="Date" icon="terp-go-month" domain="[]" context="{'group_by':'date'}"/>
<separator orientation="vertical"/>
<filter string="Company" icon="terp-go-home" domain="[]" groups="base.group_multi_company" context="{'group_by':'company_id'}"/>
</group>
</search>
</field>
</record>
<menuitem name="Imported CODA Files" parent="menu_account_coda" id="menu_imported_coda_files" action="action_imported_coda_files" sequence="42"/>
<record model="ir.actions.act_window" id="action_account_coda">
<field name="name">Coda Logs</field>
<field name="type">ir.actions.act_window</field>
<field name="res_model">account.coda</field>
<field name="view_type">form</field>
<field name="view_mode">tree,form</field>
<field name="context">{}</field>
<field name="search_view_id" ref="view_aaccount_coda_filter"/>
<!-- CODA Bank Statements -->
<record id="view_coda_bank_statement_list" model="ir.ui.view">
<field name="name">coda.bank.statement.list</field>
<field name="model">coda.bank.statement</field>
<field name="type">tree</field>
<field name="arch" type="xml">
<tree colors="red:balance_end_real!=balance_end;blue:state=='draft' and (balance_end_real==balance_end)" string="CODA Bank Statements">
<field name="name"/>
<field name="date"/>
<field name="period_id"/>
<field name="coda_bank_account_id"/>
<field name="balance_start"/>
<field name="balance_end_real"/>
<field name="balance_end"/>
<field name="type"/>
</tree>
</field>
</record>
<record id="view_coda_bank_statement_form" model="ir.ui.view">
<field name="name">coda.bank.statement.form</field>
<field name="model">coda.bank.statement</field>
<field name="type">form</field>
<field name="arch" type="xml">
<form string="CODA Bank Statement">
<field name="name" select="1"/>
<field name="date" select="1"/>
<field name="coda_bank_account_id" select="1"/>
<field name="currency"/>
<field name="period_id" select="2"/>
<field name="type"/>
<newline/>
<field name="balance_start"/>
<field name="balance_end_real"/>
<notebook colspan="4">
<page string="Transactions">
<field colspan="4" name="line_ids" nolabel="1">
<tree string="CODA Statement Lines">
<field name="sequence" string="Seq"/>
<field name="date"/>
<field name="val_date"/>
<field name="ref"/>
<field name="name" width="250"/>
<field name="type"/>
<field name="partner_id"/>
<field name="account_id"/>
<field name="amount"/>
<field name="globalisation_amount" string="Glob. Amount"/>
<field name="globalisation_id" string="Glob. Id"/>
</tree>
<form string="CODA Statement Lines">
<field name="sequence" string="Seq"/>
<field name="date"/>
<field name="val_date"/>
<field name="name"/>
<field name="type"/>
<field name="partner_id"/>
<field domain="[('type', '&lt;&gt;', 'view')]" name="account_id"/>
<field name="amount"/>
<field name="ref"/>
<field name="globalisation_amount"/>
<field name="globalisation_level"/>
<field name="globalisation_id"/>
<separator colspan="4" string="Notes"/>
<field colspan="4" name="note" nolabel="1"/>
</form>
</field>
</page>
</notebook>
<group colspan="4">
<field name="balance_end"/>
</group>
</form>
</field>
</record>
<menuitem name="Coda Import Logs" parent="account.menu_finance_bank_and_cash" id="menu_account_coda_statement" action="action_account_coda" groups="base.group_extended" sequence="32"/>
<record id="view_coda_bank_statement_search" model="ir.ui.view">
<field name="name">coda.bank.statement.search</field>
<field name="model">coda.bank.statement</field>
<field name="type">search</field>
<field name="arch" type="xml">
<search string="Search CODA Bank Statements">
<group col="8" colspan="4">
<filter string="Normal" domain="[('type','=','normal')]" icon="terp-folder-green"/>
<filter string="Info" domain="[('type','=','info')]" icon="terp-folder-yellow"/>
<separator orientation="vertical"/>
<field name="name"/>
<field name="date"/>
<field name="period_id"/>
<field name="coda_bank_account_id"/>
<field name="journal_id" widget="selection" domain="[('type', '=', 'bank')]"/>
</group>
<newline/>
<group expand="0" string="Group By...">
<filter string="Journal" context="{'group_by': 'journal_id'}" icon="terp-folder-orange"/>
<filter string="Period" context="{'group_by': 'period_id'}" icon="terp-go-month"/>
</group>
</search>
</field>
</record>
<menuitem name="Import Coda Statements" action="action_account_coda_import" parent="account.menu_account_pp_statements"
id="menu_account_coda_import" sequence="20"/>
<record model="ir.actions.act_window" id="action_coda_bank_statements">
<field name="name">CODA Bank Statements</field>
<field name="type">ir.actions.act_window</field>
<field name="res_model">coda.bank.statement</field>
<field name="view_type">form</field>
<field name="view_mode">tree,form</field>
<field name="view_id" ref="view_coda_bank_statement_list"/>
<field name="search_view_id" ref="view_coda_bank_statement_search"/>
<field name="help">The CODA Bank Statements contain the information encoded in their originating CODA file in a human readable format. The Bank Statements associated with a CODA contain the subset of the CODA Bank Statement data that is required for the creation of the Accounting Entries.</field>
</record>
<act_window name="Coda File"
domain="[('statement_ids', 'in', [active_id])]"
context="{'bank_statement': 1}"
res_model="account.coda"
src_model="account.bank.statement"
view_type="form"
view_mode="tree,form"
id="act_account_payment_account_bank_statement"/>
<menuitem name="CODA Bank Statements" parent="menu_account_coda" id="menu_coda_bank_statements" action="action_coda_bank_statements" sequence="43"/>
</data>
<!-- CODA Bank Statement Line View -->
<record id="view_coda_bank_statement_line_list" model="ir.ui.view">
<field name="name">coda.bank.statement.line.list</field>
<field name="model">coda.bank.statement.line</field>
<field name="type">tree</field>
<field name="arch" type="xml">
<tree editable="bottom" string="CODA Statement Lines">
<field name="sequence" readonly="1" invisible="1"/>
<field name="coda_bank_account_id" readonly="1"/>
<field name="date" readonly="1" groups="base.group_extended"/>
<field name="val_date" readonly="1"/>
<field name="name"/>
<field name="statement_id" readonly="1"/>
<field name="ref" readonly="1"/>
<field name="partner_id" on_change="onchange_partner_id(partner_id)"/>
<field name="type" on_change="onchange_type(partner_id, type)"/>
<field name="account_id" domain="[('journal_id','=',parent.journal_id)]"/>
<field name="amount" readonly="1" sum="Total Amount"/>
<field name="globalisation_id" string="Glob. Id"/>
<field name="globalisation_amount" string="Glob. Am."/>
</tree>
</field>
</record>
<record id="view_coda_bank_statement_line_form" model="ir.ui.view">
<field name="name">coda.bank.statement.line.form</field>
<field name="model">coda.bank.statement.line</field>
<field name="type">form</field>
<field name="arch" type="xml">
<form string="CODA Statement Line">
<field name="statement_id"/>
<field name="coda_bank_account_id"/>
<field name="date"/>
<field name="val_date"/>
<field name="name"/>
<field name="ref" readonly="0"/>
<field name="partner_id" on_change="onchange_partner_id(partner_id)"/>
<field name="type" on_change="onchange_type(partner_id, type)"/>
<field domain="[('journal_id', '=', parent.journal_id), ('type', '&lt;&gt;', 'view')]" name="account_id"/>
<field name="amount"/>
<field name="globalisation_id"/>
<field name="sequence" readonly="0"/>
<separator colspan="4" string="Notes"/>
<field colspan="4" name="note" nolabel="1"/>
</form>
</field>
</record>
<record id="view_coda_bank_statement_line_filter" model="ir.ui.view">
<field name="name">coda.bank.statement.line.filter</field>
<field name="model">coda.bank.statement.line</field>
<field name="type">search</field>
<field name="arch" type="xml">
<search string="Search Bank Transactions">
<group col='6' colspan='4'>
<filter name="debit" string="Debit" domain="[('amount','&gt;',0)]" icon="terp-folder-green" help="Debit Transactions."/>
<filter name="credit" string="Credit" domain="[('amount','&lt;',0)]" icon="terp-folder-orange" help="Credit Transactions."/>
<separator orientation="vertical"/>
<field name="statement_id"/>
<field name="val_date"/>
<field name="amount"/>
<field name="globalisation_id" string="Glob. Id"/>
<field name="globalisation_amount" string="Glob. Amount"/>
<field name="name"/>
<field name="type"/>
</group>
<newline/>
<group expand="0" string="Extended Filters...">
<field name="coda_bank_account_id"/>
<field name="account_id"/>
<field name="partner_id"/>
<field name="ref"/>
<field name="note"/>
</group>
<newline/>
<group string="Group By..." expand="0">
<filter string="Bank Account" context="{'group_by':'coda_bank_account_id'}" icon="terp-folder-green"/>
<filter string="Statement" context="{'group_by':'statement_id'}" icon="terp-folder-orange"/>
<filter string="Fin.Account" context="{'group_by':'account_id'}" icon="terp-folder-yellow"/>
</group>
</search>
</field>
</record>
<record id="action_coda_bank_statement_line" model="ir.actions.act_window">
<field name="name">CODA Statement Lines</field>
<field name="res_model">coda.bank.statement.line</field>
<field name="view_type">form</field>
<field name="view_mode">tree,graph,form</field>
<field name="context">{'block_statement_line_delete' : 1}</field>
<field name="search_view_id" ref="view_coda_bank_statement_line_filter"/>
<field name="view_id" ref="view_coda_bank_statement_line_list"/>
</record>
<menuitem action="action_coda_bank_statement_line" id="coda_bank_statement_line" parent="menu_account_coda" sequence="44"/>
<act_window name="CODA Data File"
domain="[('statement_ids', '=', active_id)]"
res_model="account.coda"
src_model="coda.bank.statement"
view_type="form"
view_mode="tree,form"
id="act_coda_bank_statement_goto_account_coda"/>
<act_window name="Bank Statement"
domain="[('coda_statement_id', '=', active_id)]"
res_model="account.bank.statement"
src_model="coda.bank.statement"
view_type="form"
view_mode="tree,form"
id="act_coda_bank_statement_goto_account_bank_statement"/>
<act_window name="CODA Bank Statement"
domain="[('statement_id', '=', active_id)]"
context="{'bank_statement': 1}"
res_model="coda.bank.statement"
src_model="account.bank.statement"
view_type="form"
view_mode="tree,form"
id="act_account_bank_statement_goto_coda_bank_statement"/>
</data>
</openerp>

View File

@ -0,0 +1,69 @@
<?xml version="1.0" ?>
<openerp>
<data>
<record id="account_coda_import_view" model="ir.ui.view">
<field name="name">Import CODA File</field>
<field name="model">account.coda.import</field>
<field name="type">form</field>
<field name="priority">1</field>
<field name="arch" type="xml">
<form string="Import CODA File">
<group col="2">
<separator string="Select your file :" colspan="4"/>
<field name="coda_data" filename="coda_fname"/>
<field name="coda_fname"/>
</group>
<separator colspan="4"/>
<group colspan="4">
<button special="cancel" string="_Cancel" icon="gtk-cancel"/>
<button name="coda_parsing" string="_Import" type="object" icon="gtk-ok"/>
</group>
</form>
</field>
</record>
<record id="account_coda_import_result_view" model="ir.ui.view">
<field name="name">Import CODA File</field>
<field name="model">account.coda.import</field>
<field name="type">form</field>
<field name="priority">2</field>
<field name="arch" type="xml">
<form string="Import CODA File">
<separator colspan="4" string="Results :" />
<field name="note" colspan="4" nolabel="1" width="850" height="400"/>
<newline/>
<separator colspan="6"/>
<button special="cancel" string="Close" icon="gtk-cancel"/>
<button name="action_open_coda_statements" string="View CODA Bank Statement(s)" type="object" icon="gtk-apply"/>
<button name="action_open_bank_statements" string="View Bank Statement(s)" type="object" icon="gtk-apply"/>
</form>
</field>
</record>
<record id="action_account_coda_import" model="ir.actions.act_window">
<field name="name">Import CODA File</field>
<field name="type">ir.actions.act_window</field>
<field name="res_model">account.coda.import</field>
<field name="view_type">form</field>
<field name="view_mode">form</field>
<field name="target">new</field>
<field name="view_id" ref="account_coda_import_view"/>
</record>
<act_window name="Import CODA File"
res_model="account.coda.import"
src_model="coda.bank.statement"
view_type="form" view_mode="form" target="new"
key2="client_action_multi" multi="True"
id="wizard_account_coda_import_1"/>
<act_window name="Import CODA File"
res_model="account.coda.import"
src_model="account.coda"
view_type="form" view_mode="form" target="new"
key2="client_action_multi" multi="True"
id="wizard_account_coda_import_2"/>
</data>
</openerp>

View File

@ -1,4 +1,17 @@
id,name,model_id:id,group_id:id,perm_read,perm_write,perm_create,perm_unlink
access_account_coda,account.coda,model_account_coda,account.group_account_user,1,0,0,0
access_account_coda_manager,account.coda,model_account_coda,account.group_account_manager,1,1,1,1
access_account_coda_import_user,account.coda,model_account_coda,account.group_account_user,1,0,0,0
access_account_coda_manager,account.coda manager,model_account_coda,account.group_account_manager,1,1,1,1
access_account_coda_user,account.coda user,model_account_coda,account.group_account_user,1,0,0,0
access_account_coda_trans_type_manager,account.coda.trans.type manager,model_account_coda_trans_type,account.group_account_manager,1,1,1,1
access_account_coda_trans_type_user,account.coda.trans.type user,model_account_coda_trans_type,account.group_account_user,1,0,0,0
access_account_coda_trans_code_manager,account.coda.trans.code manager,model_account_coda_trans_code,account.group_account_manager,1,1,1,1
access_account_coda_trans_code_user,account.coda.trans.code user,model_account_coda_trans_code,account.group_account_user,1,0,0,0
access_account_coda_trans_category_manager,account.coda.trans.category manager,model_account_coda_trans_category,account.group_account_manager,1,1,1,1
access_account_coda_trans_category_user,account.coda.trans.category user,model_account_coda_trans_category,account.group_account_user,1,0,0,0
access_account_coda_comm_type_manager,account.coda.comm.type manager,model_account_coda_comm_type,account.group_account_manager,1,1,1,1
access_account_coda_comm_type_user,account.coda.comm.type user,model_account_coda_comm_type,account.group_account_user,1,0,0,0
access_coda_bank_account_manager,coda.bank.account manager,model_coda_bank_account,account.group_account_manager,1,1,1,1
access_coda_bank_account_user,coda.bank.account user,model_coda_bank_account,account.group_account_user,1,0,0,0
access_coda_bank_statement_manager,coda.bank.statement manager,model_coda_bank_statement,account.group_account_manager,1,1,1,1
access_coda_bank_statement_user,coda.bank.statement user,model_coda_bank_statement,account.group_account_user,1,0,0,0
access_coda_bank_statement_line_manager,coda.bank.statement.line manager,model_coda_bank_statement_line,account.group_account_manager,1,1,1,1
access_coda_bank_statement_line_user,coda.bank.statement.line user,model_coda_bank_statement_line,account.group_account_user,1,0,0,0

1 id name model_id:id group_id:id perm_read perm_write perm_create perm_unlink
2 access_account_coda access_account_coda_manager account.coda account.coda manager model_account_coda account.group_account_user account.group_account_manager 1 0 1 0 1 0 1
3 access_account_coda_manager access_account_coda_user account.coda account.coda user model_account_coda account.group_account_manager account.group_account_user 1 1 0 1 0 1 0
4 access_account_coda_import_user access_account_coda_trans_type_manager account.coda account.coda.trans.type manager model_account_coda model_account_coda_trans_type account.group_account_user account.group_account_manager 1 0 1 0 1 0 1
5 access_account_coda_trans_type_user account.coda.trans.type user model_account_coda_trans_type account.group_account_user 1 0 0 0
6 access_account_coda_trans_code_manager account.coda.trans.code manager model_account_coda_trans_code account.group_account_manager 1 1 1 1
7 access_account_coda_trans_code_user account.coda.trans.code user model_account_coda_trans_code account.group_account_user 1 0 0 0
8 access_account_coda_trans_category_manager account.coda.trans.category manager model_account_coda_trans_category account.group_account_manager 1 1 1 1
9 access_account_coda_trans_category_user account.coda.trans.category user model_account_coda_trans_category account.group_account_user 1 0 0 0
10 access_account_coda_comm_type_manager account.coda.comm.type manager model_account_coda_comm_type account.group_account_manager 1 1 1 1
11 access_account_coda_comm_type_user account.coda.comm.type user model_account_coda_comm_type account.group_account_user 1 0 0 0
12 access_coda_bank_account_manager coda.bank.account manager model_coda_bank_account account.group_account_manager 1 1 1 1
13 access_coda_bank_account_user coda.bank.account user model_coda_bank_account account.group_account_user 1 0 0 0
14 access_coda_bank_statement_manager coda.bank.statement manager model_coda_bank_statement account.group_account_manager 1 1 1 1
15 access_coda_bank_statement_user coda.bank.statement user model_coda_bank_statement account.group_account_user 1 0 0 0
16 access_coda_bank_statement_line_manager coda.bank.statement.line manager model_coda_bank_statement_line account.group_account_manager 1 1 1 1
17 access_coda_bank_statement_line_user coda.bank.statement.line user model_coda_bank_statement_line account.group_account_user 1 0 0 0

View File

@ -0,0 +1,24 @@
0000011011172505 00178299 DE MEYER LUC KREDBEBB 00820512013 00000 2
12135BE33737018595246 EUR0000000011812700270710NOVIAT NV KBC-Business Comfortrekening 003
2100010000OL44483FW SCTOFBIONLO1000000000435000110111001010000MEDEDELING 11011113501 0
2200010000 GKCCBEBB 1 0
2300010000BE41063012345610 PARTNER 1 0 1
3100010001OL44483FW SCTOFBIONLO001010001001PARTNER 1 0 0
2100020000OL4414AC8BOVSOVSOVERS00000000030444501101110015000002010237 11011113501 0
2200020000 BBRUBEBB 1 0
2300020000BE61310126985517 PARTNER 2 0 1
3100020001OL4414AC8BOVSOVSOVERS001500001001PARTNER 2 1 0
3200020001MOLENSTRAAT 60 9340 LEDE 0 0
2100030000AFECA0CVA IKLINNINNIG1000000000479040110111313410000 KBC-INVESTERINGSKREDIET 737-6543210-21 11011113510 0
2100030001AFECA0CVA IKLINNINNIG1000000000419920110111813410660 11011113500 0
2100030002AFECA0CVA IKLINNINNIG1000000000059120110111813410020 11011113510 0
2100040000AFECA0CVA IKLINNINNIG1000000000479040110111313410000 KBC-INVESTERINGSKREDIET 737-6543210-21 11011113510 0
2100040001AFECA0CVA IKLINNINNIG1000000000419920110111813410660 11011113500 0
2100040002AFECA0CVA IKLINNINNIG1000000000059120110111813410020 11011113510 0
2100050000AOGM00160BSCTOBOGOVER0000000000063740110111001500000TERUGGAVE 37232481 8400083296 . 11011113501 0
2200050000 362/363 KREDBEBB 1 0
2300050000BE43730004200601 KBC VERZEKERINGEN NV 0 1
3100050001AOGM00160BSCTOBOGOVER001500001001KBC VERZEKERINGEN NV 1 0
3200050001VAN OVERSTRAETENPLEIN 2 3000 LEUVEN 0 0
8135BE44734024486445 EUR0000000013527810110111 0
9 000022000000001393080000000003108190 2

View File

@ -1,10 +0,0 @@
0000006060712505 00000CPH CODA TINY 0047747270100477472701 00000 1
1 049126201326907 EUR0BE 0000000015632900050607TINY COMPTE COURANT ORDINAIRE 049
2100010000 0000000001150000060607001500000INVOICE OF 2006-12-19 0606070020100
2200010000 EUR000000001150000 100
2300010000301915554082 PROLIBRE SARL CAROUGE GE 000
2100020000 0000000000500000060607001500000CONTRACT PARTNER ERREUR ECART YEA 0606070030100
2200020000RTY CONTRACT PARTNER EUR000000000500000 100
2300020000050000000017 SEDNACOM 43 ALLEE DES FOUGERES 9522 0 HERBLAY 000
8049126201326907 0000000017282900060607
9 000008000000000000000000000001650000 2

View File

@ -1,9 +1,10 @@
# -*- encoding: utf-8 -*-
##############################################################################
#
# OpenERP, Open Source Management Solution
# Copyright (C) 2004-2009 Tiny SPRL (<http://tiny.be>).
#
# OpenERP, Open Source Management Solution
#
# Copyright (c) 2011 Noviat nv/sa (www.noviat.be). All rights reserved.
#
# 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
@ -15,11 +16,10 @@
# 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/>.
# along with this program. If not, see <http://www.gnu.org/licenses/>.
#
##############################################################################
import account_coda_import
# vim:expandtab:smartindent:tabstop=4:softtabstop=4:shiftwidth=4:

File diff suppressed because it is too large Load Diff

View File

@ -1,58 +0,0 @@
<?xml version="1.0" ?>
<openerp>
<data>
<record id="account_coda_import_view" model="ir.ui.view">
<field name="name">Import Coda Statement</field>
<field name="model">account.coda.import</field>
<field name="type">form</field>
<field name="arch" type="xml">
<form string="Import Coda Statement">
<separator string="Configure Your Journal and Account :"/>
<newline/>
<group colspan="4">
<field name="def_receivable" />
<field name="def_payable" />
<field name="journal_id" domain="[('type','=','bank')]" />
<field name="awaiting_account" />
</group>
<newline/>
<separator string="Click on 'New' to select your file :" colspan="4"/>
<field name="coda"/>
<newline/>
<separator colspan="4"/>
<group colspan="4">
<button special="cancel" string="Cancel" icon="gtk-cancel"/>
<button name="coda_parsing" string="Import" type="object" icon="gtk-ok"/>
</group>
</form>
</field>
</record>
<record id="account_coda_note_view" model="ir.ui.view">
<field name="name">Import Coda Statement</field>
<field name="model">account.coda.import</field>
<field name="type">form</field>
<field name="arch" type="xml">
<form string="Result of Imported Coda Statements">
<separator colspan="4" string="Results :" />
<field name="note" colspan="4" nolabel="1" width="500" height="310"/>
<newline/>
<separator colspan="6"/>
<button special="cancel" string="Close" icon="gtk-cancel"/>
<button name="action_open_window" string="Open Statements" type="object" icon="gtk-apply"/>
</form>
</field>
</record>
<record id="action_account_coda_import" model="ir.actions.act_window">
<field name="name">Import Coda Statement</field>
<field name="type">ir.actions.act_window</field>
<field name="res_model">account.coda.import</field>
<field name="view_type">form</field>
<field name="view_mode">form</field>
<field name="target">new</field>
<field name="view_id" ref="account_coda_import_view"/>
</record>
</data>
</openerp>