mirror of
https://github.com/OCA/bank-payment.git
synced 2025-02-02 10:37:31 +02:00
[META] Set structure
This commit is contained in:
30
account_banking_nl_clieop/__init__.py
Normal file
30
account_banking_nl_clieop/__init__.py
Normal file
@@ -0,0 +1,30 @@
|
||||
# -*- encoding: utf-8 -*-
|
||||
##############################################################################
|
||||
#
|
||||
# Copyright (C) 2009 EduSense BV (<http://www.edusense.nl>).
|
||||
# All Rights Reserved
|
||||
#
|
||||
# WARNING: This program as such is intended to be used by professional
|
||||
# programmers who take the whole responsability of assessing all potential
|
||||
# consequences resulting from its eventual inadequacies and bugs
|
||||
# End users who are looking for a ready-to-use solution with commercial
|
||||
# garantees and support are strongly adviced to contract EduSense BV
|
||||
#
|
||||
# This program is free software: you can redistribute it and/or modify
|
||||
# it under the terms of the GNU General Public License as published by
|
||||
# the Free Software Foundation, either version 3 of the License, or
|
||||
# (at your option) any later version.
|
||||
#
|
||||
# This program is distributed in the hope that it will be useful,
|
||||
# but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||
# GNU General Public License for more details.
|
||||
#
|
||||
# You should have received a copy of the GNU General Public License
|
||||
# along with this program. If not, see <http://www.gnu.org/licenses/>.
|
||||
#
|
||||
##############################################################################
|
||||
import wizard
|
||||
import account_banking_nl_clieop
|
||||
|
||||
# vim:expandtab:smartindent:tabstop=4:softtabstop=4:shiftwidth=4:
|
||||
50
account_banking_nl_clieop/__terp__.py
Normal file
50
account_banking_nl_clieop/__terp__.py
Normal file
@@ -0,0 +1,50 @@
|
||||
##############################################################################
|
||||
#
|
||||
# Copyright (C) 2009 EduSense BV (<http://www.edusense.nl>).
|
||||
# All Rights Reserved
|
||||
#
|
||||
# WARNING: This program as such is intended to be used by professional
|
||||
# programmers who take the whole responsability of assessing all potential
|
||||
# consequences resulting from its eventual inadequacies and bugs
|
||||
# End users who are looking for a ready-to-use solution with commercial
|
||||
# garantees and support are strongly adviced to contract EduSense BV
|
||||
#
|
||||
# This program is free software: you can redistribute it and/or modify
|
||||
# it under the terms of the GNU General Public License as published by
|
||||
# the Free Software Foundation, either version 3 of the License, or
|
||||
# (at your option) any later version.
|
||||
#
|
||||
# This program is distributed in the hope that it will be useful,
|
||||
# but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||
# GNU General Public License for more details.
|
||||
#
|
||||
# You should have received a copy of the GNU General Public License
|
||||
# along with this program. If not, see <http://www.gnu.org/licenses/>.
|
||||
#
|
||||
##############################################################################
|
||||
{
|
||||
'name': 'Account Banking NL ClieOp',
|
||||
'version': '0.1',
|
||||
'license': 'GPL-3',
|
||||
'author': 'EduSense BV',
|
||||
'website': 'http://www.edusense.nl',
|
||||
'category': 'Account Banking',
|
||||
'depends': ['account_banking'],
|
||||
'init_xml': [],
|
||||
'update_xml': [
|
||||
#'security/ir.model.access.csv',
|
||||
'account_banking_nl_clieop.xml',
|
||||
'account_banking_export_wizard.xml',
|
||||
'data/banking_export_clieop.xml',
|
||||
],
|
||||
'demo_xml': [],
|
||||
'description': '''
|
||||
Module to export payment orders in ClieOp format.
|
||||
|
||||
ClieOp format is used by Dutch banks to batch national bank transfers.
|
||||
This module uses the account_banking logic.
|
||||
''',
|
||||
'active': False,
|
||||
'installable': True,
|
||||
}
|
||||
63
account_banking_nl_clieop/account_banking_clieop.xml
Normal file
63
account_banking_nl_clieop/account_banking_clieop.xml
Normal file
@@ -0,0 +1,63 @@
|
||||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<!--
|
||||
Copyright (C) EduSense BV <http://www.edusense.nl>
|
||||
All rights reserved.
|
||||
The licence is in the file __terp__.py
|
||||
-->
|
||||
<openerp>
|
||||
<data>
|
||||
|
||||
<!-- Make new view on ClieOp3 Exports -->
|
||||
<record id="view_banking_export_clieop_form" model="ir.ui.view">
|
||||
<field name="name">account.banking.export.clieop.form</field>
|
||||
<field name="model">banking.export.clieop</field>
|
||||
<field name="type">form</field>
|
||||
<field name="arch" type="xml">
|
||||
<form string="Client Opdrachten Export">
|
||||
<separator string="General Information" colspan="4" />
|
||||
<field name="filetype" />
|
||||
<field name="identification" />
|
||||
<separator string="ClieOp Information" colspan="4" />
|
||||
<field name="total_amount" />
|
||||
<field name="check_no_accounts" />
|
||||
<field name="no_transactions" />
|
||||
<separator string="Processing Information" colspan="4" />
|
||||
<field name="prefered_date" />
|
||||
<field name="date_generated" />
|
||||
<field name="testcode" />
|
||||
<newline />
|
||||
<field name="file" colspan="4" />
|
||||
</form>
|
||||
</field>
|
||||
</record>
|
||||
<record id="view_banking_export_clieop_tree" model="ir.ui.view">
|
||||
<field name="name">account.banking.export.clieop.tree</field>
|
||||
<field name="model">banking.export.clieop</field>
|
||||
<field name="type">tree</field>
|
||||
<field name="arch" type="xml">
|
||||
<tree string="Client Opdrachten Export">
|
||||
<field name="filetype" />
|
||||
<field name="identification" search="2"/>
|
||||
<field name="prefered_date" search="2"/>
|
||||
<field name="date_generated" />
|
||||
</tree>
|
||||
</field>
|
||||
</record>
|
||||
<record model="ir.actions.act_window" id="action_account_banking_clieops">
|
||||
<field name="name">Generated ClieOp3 Files</field>
|
||||
<field name="type">ir.actions.act_window</field>
|
||||
<field name="res_model">banking.export.clieop</field>
|
||||
<field name="view_type">form</field>
|
||||
<field name="view_mode">tree,form</field>
|
||||
</record>
|
||||
|
||||
<!-- Add a menu item for it -->
|
||||
<menuitem name="Generated ClieOp3 Files"
|
||||
id="menu_action_account_banking_exported_clieop_files"
|
||||
parent="account_banking.menu_finance_banking_actions"
|
||||
action="action_account_banking_clieops"
|
||||
sequence="12"
|
||||
/>
|
||||
|
||||
</data>
|
||||
</openerp>
|
||||
15
account_banking_nl_clieop/account_banking_export_wizard.xml
Normal file
15
account_banking_nl_clieop/account_banking_export_wizard.xml
Normal file
@@ -0,0 +1,15 @@
|
||||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<!--
|
||||
Copyright (C) EduSense BV <http://www.edusense.nl>
|
||||
All rights reserved.
|
||||
The licence is in the file __terp__.py
|
||||
-->
|
||||
<openerp>
|
||||
<data>
|
||||
<wizard id="wizard_account_banking_export_clieop"
|
||||
string="Export ClieOp File"
|
||||
model="payment.order"
|
||||
name="account_banking_nl_clieop.banking_export_clieop"
|
||||
/>
|
||||
</data>
|
||||
</openerp>
|
||||
99
account_banking_nl_clieop/account_banking_nl_clieop.py
Normal file
99
account_banking_nl_clieop/account_banking_nl_clieop.py
Normal file
@@ -0,0 +1,99 @@
|
||||
##############################################################################
|
||||
#
|
||||
# Copyright (C) 2009 EduSense BV (<http://www.edusense.nl>).
|
||||
# All Rights Reserved
|
||||
#
|
||||
# This program is free software: you can redistribute it and/or modify
|
||||
# it under the terms of the GNU General Public License as published by
|
||||
# the Free Software Foundation, either version 3 of the License, or
|
||||
# (at your option) any later version.
|
||||
#
|
||||
# This program is distributed in the hope that it will be useful,
|
||||
# but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||
# GNU General Public License for more details.
|
||||
#
|
||||
# You should have received a copy of the GNU General Public License
|
||||
# along with this program. If not, see <http://www.gnu.org/licenses/>.
|
||||
#
|
||||
##############################################################################
|
||||
|
||||
from osv import osv, fields
|
||||
from datetime import date
|
||||
from tools.translate import _
|
||||
|
||||
class payment_order(osv.osv):
|
||||
'''
|
||||
Attach export_clieop wizard to payment order and allow traceability
|
||||
'''
|
||||
_inherit = 'payment.order'
|
||||
def get_wizard(self, type):
|
||||
if type in ['CLIEOPPAY', 'CLIEOPINC', 'CLIEOPSAL']:
|
||||
return self._module, 'wizard_account_banking_export_clieop'
|
||||
return super(payment_order, self).get_wizard(type)
|
||||
payment_order()
|
||||
|
||||
class clieop_export(osv.osv):
|
||||
'''ClieOp3 Export'''
|
||||
_name = 'banking.export.clieop'
|
||||
_description = __doc__
|
||||
|
||||
_columns = {
|
||||
'payment_order_ids':
|
||||
fields.text('Payment Orders'),
|
||||
'testcode':
|
||||
fields.selection([('T', _('Yes')), ('P', _('No'))],
|
||||
'Test Run', readonly=True),
|
||||
'daynumber':
|
||||
fields.integer('ClieOp Transaction nr of the Day', readonly=True),
|
||||
'duplicates':
|
||||
fields.integer('Number of Duplicates', readonly=True),
|
||||
'prefered_date':
|
||||
fields.date('Prefered Processing Date',readonly=True),
|
||||
'no_transactions':
|
||||
fields.integer('Number of Transactions', readonly=True),
|
||||
'check_no_accounts':
|
||||
fields.char('Check Number Accounts', size=5, readonly=True),
|
||||
'total_amount':
|
||||
fields.float('Total Amount', readonly=True),
|
||||
'identification':
|
||||
fields.char('Identification', size=6, readonly=True, select=True),
|
||||
'filetype':
|
||||
fields.selection([
|
||||
('CREDBET', 'Payment Batch'),
|
||||
('SALARIS', 'Salary Payment Batch'),
|
||||
('INCASSO', 'Direct Debit Batch'),
|
||||
], 'File Type', size=7, readonly=True, select=True),
|
||||
'date_generated':
|
||||
fields.datetime('Generation Date', readonly=True, select=True),
|
||||
'file':
|
||||
fields.binary('ClieOp File', readonly=True),
|
||||
'state':
|
||||
fields.selection([
|
||||
('draft', 'Draft'),
|
||||
('sent', 'Sent'),
|
||||
('done', 'Reconciled'),
|
||||
], 'State', readonly=True),
|
||||
}
|
||||
def _get_daynr(self, cursor, uid, ids, context):
|
||||
'''
|
||||
Return highest day number
|
||||
'''
|
||||
last = cursor.execute('SELECT max(daynumber) '
|
||||
'FROM banking_export_clieop '
|
||||
'WHERE date_generated = "%s"' %
|
||||
date.today().strftime('%Y-%m-%d')
|
||||
).fetchone()
|
||||
if last:
|
||||
return int(last) +1
|
||||
return 1
|
||||
|
||||
_defaults = {
|
||||
'date_generated': lambda *a: date.today().strftime('%Y-%m-%d'),
|
||||
'duplicates': lambda *a: 1,
|
||||
'state': lambda *a: 'draft',
|
||||
'daynumber': _get_daynr,
|
||||
}
|
||||
clieop_export()
|
||||
|
||||
# vim:expandtab:smartindent:tabstop=4:softtabstop=4:shiftwidth=4:
|
||||
22
account_banking_nl_clieop/data/banking_export_clieop.xml
Normal file
22
account_banking_nl_clieop/data/banking_export_clieop.xml
Normal file
@@ -0,0 +1,22 @@
|
||||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<openerp>
|
||||
<data noupdate="1">
|
||||
<record model="payment.type" id="account_banking_nl_clieop.export_clieop_inc">
|
||||
<field name="name">ClieOp3 Direct Debit Batch</field>
|
||||
<field name="code">CLIEOPINC</field>
|
||||
<field name="suitable_bank_types"></field>
|
||||
</record>
|
||||
|
||||
<record model="payment.type" id="account_banking_nl_clieop.export_clieop_pay">
|
||||
<field name="name">ClieOp3 Payment Batch</field>
|
||||
<field name="code">CLIEOPPAY</field>
|
||||
<field name="suitable_bank_types"></field>
|
||||
</record>
|
||||
|
||||
<record model="payment.type" id="account_banking_nl_clieop.export_clieop_sal">
|
||||
<field name="name">ClieOp3 Salary Payment Batch</field>
|
||||
<field name="code">CLIEOPSAL</field>
|
||||
<field name="suitable_bank_types"></field>
|
||||
</record>
|
||||
</data>
|
||||
</openerp>
|
||||
335
account_banking_nl_clieop/i18n/account_banking_nl_clieop.pot
Normal file
335
account_banking_nl_clieop/i18n/account_banking_nl_clieop.pot
Normal file
@@ -0,0 +1,335 @@
|
||||
# Translation of OpenERP Server.
|
||||
# This file contains the translation of the following modules:
|
||||
# * account_banking_nl_clieop
|
||||
#
|
||||
msgid ""
|
||||
msgstr ""
|
||||
"Project-Id-Version: OpenERP Server 5.0.7\n"
|
||||
"Report-Msgid-Bugs-To: support@openerp.com\n"
|
||||
"POT-Creation-Date: 2010-01-08 15:36:23+0000\n"
|
||||
"PO-Revision-Date: 2010-01-08 15:36:23+0000\n"
|
||||
"Last-Translator: <>\n"
|
||||
"Language-Team: \n"
|
||||
"MIME-Version: 1.0\n"
|
||||
"Content-Type: text/plain; charset=UTF-8\n"
|
||||
"Content-Transfer-Encoding: \n"
|
||||
"Plural-Forms: \n"
|
||||
|
||||
#. module: account_banking_nl_clieop
|
||||
#: constraint:ir.model:0
|
||||
msgid "The Object name must start with x_ and not contain any special character !"
|
||||
msgstr ""
|
||||
|
||||
#. module: account_banking_nl_clieop
|
||||
#: selection:account_banking_nl_clieop.banking_export_clieop,init,batchtype:0
|
||||
msgid "Direct Debits"
|
||||
msgstr ""
|
||||
|
||||
#. module: account_banking_nl_clieop
|
||||
#: selection:account_banking_nl_clieop.banking_export_clieop,create,testcode:0
|
||||
#: code:addons/account_banking_nl_clieop/account_banking_clieop.py:0
|
||||
#: code:addons/account_banking_nl_clieop/wizard/export_clieop.py:0
|
||||
#: selection:banking.export.clieop,testcode:0
|
||||
#, python-format
|
||||
msgid "No"
|
||||
msgstr ""
|
||||
|
||||
#. module: account_banking_nl_clieop
|
||||
#: model:ir.module.module,shortdesc:account_banking_nl_clieop.module_meta_information
|
||||
msgid "Account Banking NL ClieOp"
|
||||
msgstr ""
|
||||
|
||||
#. module: account_banking_nl_clieop
|
||||
#: wizard_field:account_banking_nl_clieop.banking_export_clieop,create,no_transactions:0
|
||||
#: field:banking.export.clieop,no_transactions:0
|
||||
msgid "Number of Transactions"
|
||||
msgstr ""
|
||||
|
||||
#. module: account_banking_nl_clieop
|
||||
#: model:ir.actions.wizard,name:account_banking_nl_clieop.wizard_account_banking_export_clieop
|
||||
msgid "Export ClieOp File"
|
||||
msgstr ""
|
||||
|
||||
#. module: account_banking_nl_clieop
|
||||
#: wizard_field:account_banking_nl_clieop.banking_export_clieop,create,prefered_date:0
|
||||
#: field:banking.export.clieop,prefered_date:0
|
||||
msgid "Prefered Processing Date"
|
||||
msgstr ""
|
||||
|
||||
#. module: account_banking_nl_clieop
|
||||
#: model:payment.type,name:account_banking_nl_clieop.export_clieop_pay
|
||||
msgid "ClieOp3 Payment Batch"
|
||||
msgstr ""
|
||||
|
||||
#. module: account_banking_nl_clieop
|
||||
#: field:banking.export.clieop,state:0
|
||||
msgid "State"
|
||||
msgstr ""
|
||||
|
||||
#. module: account_banking_nl_clieop
|
||||
#: help:account_banking_nl_clieop.banking_export_clieop,init,test:0
|
||||
msgid "Select this if you want your bank to run a test process rather then execute your orders for real."
|
||||
msgstr ""
|
||||
|
||||
#. module: account_banking_nl_clieop
|
||||
#: selection:banking.export.clieop,state:0
|
||||
msgid "Draft"
|
||||
msgstr ""
|
||||
|
||||
#. module: account_banking_nl_clieop
|
||||
#: view:banking.export.clieop:0
|
||||
msgid "Processing Information"
|
||||
msgstr ""
|
||||
|
||||
#. module: account_banking_nl_clieop
|
||||
#: help:account_banking_nl_clieop.banking_export_clieop,init,fixed_message:0
|
||||
msgid "A fixed message to apply to all transactions in addition to the individual messages."
|
||||
msgstr ""
|
||||
|
||||
#. module: account_banking_nl_clieop
|
||||
#: wizard_field:account_banking_nl_clieop.banking_export_clieop,create,check_no_accounts:0
|
||||
#: field:banking.export.clieop,check_no_accounts:0
|
||||
msgid "Check Number Accounts"
|
||||
msgstr ""
|
||||
|
||||
#. module: account_banking_nl_clieop
|
||||
#: constraint:ir.actions.act_window:0
|
||||
msgid "Invalid model name in the action definition."
|
||||
msgstr ""
|
||||
|
||||
#. module: account_banking_nl_clieop
|
||||
#: wizard_button:account_banking_nl_clieop.banking_export_clieop,create,save:0
|
||||
msgid "Save"
|
||||
msgstr ""
|
||||
|
||||
#. module: account_banking_nl_clieop
|
||||
#: wizard_field:account_banking_nl_clieop.banking_export_clieop,init,batchtype:0
|
||||
msgid "Type"
|
||||
msgstr ""
|
||||
|
||||
#. module: account_banking_nl_clieop
|
||||
#: selection:banking.export.clieop,state:0
|
||||
msgid "Sent"
|
||||
msgstr ""
|
||||
|
||||
#. module: account_banking_nl_clieop
|
||||
#: wizard_field:account_banking_nl_clieop.banking_export_clieop,create,log:0
|
||||
msgid "Log"
|
||||
msgstr ""
|
||||
|
||||
#. module: account_banking_nl_clieop
|
||||
#: view:banking.export.clieop:0
|
||||
msgid "ClieOp Information"
|
||||
msgstr ""
|
||||
|
||||
#. module: account_banking_nl_clieop
|
||||
#: model:ir.model,name:account_banking_nl_clieop.model_banking_export_clieop
|
||||
msgid "ClieOp3 Export"
|
||||
msgstr ""
|
||||
|
||||
#. module: account_banking_nl_clieop
|
||||
#: code:addons/account_banking_nl_clieop/wizard/export_clieop.py:0
|
||||
#, python-format
|
||||
msgid "You can only combine payment orders of the same type"
|
||||
msgstr ""
|
||||
|
||||
#. module: account_banking_nl_clieop
|
||||
#: selection:account_banking_nl_clieop.banking_export_clieop,create,filetype:0
|
||||
#: selection:banking.export.clieop,filetype:0
|
||||
msgid "Salary Payment Batch"
|
||||
msgstr ""
|
||||
|
||||
#. module: account_banking_nl_clieop
|
||||
#: selection:banking.export.clieop,state:0
|
||||
msgid "Reconciled"
|
||||
msgstr ""
|
||||
|
||||
#. module: account_banking_nl_clieop
|
||||
#: wizard_view:account_banking_nl_clieop.banking_export_clieop,init:0
|
||||
msgid "Reference for further communication"
|
||||
msgstr ""
|
||||
|
||||
#. module: account_banking_nl_clieop
|
||||
#: field:banking.export.clieop,duplicates:0
|
||||
msgid "Number of Duplicates"
|
||||
msgstr ""
|
||||
|
||||
#. module: account_banking_nl_clieop
|
||||
#: help:account_banking_nl_clieop.banking_export_clieop,init,reference:0
|
||||
msgid "The bank will use this reference in feedback communication to refer to this run. Only five characters are available."
|
||||
msgstr ""
|
||||
|
||||
#. module: account_banking_nl_clieop
|
||||
#: wizard_view:account_banking_nl_clieop.banking_export_clieop,init:0
|
||||
msgid "Processing Details"
|
||||
msgstr ""
|
||||
|
||||
#. module: account_banking_nl_clieop
|
||||
#: model:payment.type,name:account_banking_nl_clieop.export_clieop_sal
|
||||
msgid "ClieOp3 Salary Payment Batch"
|
||||
msgstr ""
|
||||
|
||||
#. module: account_banking_nl_clieop
|
||||
#: wizard_button:account_banking_nl_clieop.banking_export_clieop,init,create:0
|
||||
msgid "Create"
|
||||
msgstr ""
|
||||
|
||||
#. module: account_banking_nl_clieop
|
||||
#: selection:account_banking_nl_clieop.banking_export_clieop,create,filetype:0
|
||||
#: selection:banking.export.clieop,filetype:0
|
||||
msgid "Direct Debit Batch"
|
||||
msgstr ""
|
||||
|
||||
#. module: account_banking_nl_clieop
|
||||
#: constraint:ir.ui.view:0
|
||||
msgid "Invalid XML for View Architecture!"
|
||||
msgstr ""
|
||||
|
||||
#. module: account_banking_nl_clieop
|
||||
#: wizard_field:account_banking_nl_clieop.banking_export_clieop,create,file:0
|
||||
#: field:banking.export.clieop,file:0
|
||||
msgid "ClieOp File"
|
||||
msgstr ""
|
||||
|
||||
#. module: account_banking_nl_clieop
|
||||
#: code:addons/account_banking_nl_clieop/wizard/export_clieop.py:0
|
||||
#, python-format
|
||||
msgid "You can\'t create ClieOp orders more than 30 days in advance."
|
||||
msgstr ""
|
||||
|
||||
#. module: account_banking_nl_clieop
|
||||
#: wizard_field:account_banking_nl_clieop.banking_export_clieop,init,execution_date:0
|
||||
msgid "Execution Date"
|
||||
msgstr ""
|
||||
|
||||
#. module: account_banking_nl_clieop
|
||||
#: wizard_field:account_banking_nl_clieop.banking_export_clieop,init,fixed_message:0
|
||||
msgid "Fixed Message"
|
||||
msgstr ""
|
||||
|
||||
#. module: account_banking_nl_clieop
|
||||
#: wizard_field:account_banking_nl_clieop.banking_export_clieop,create,filetype:0
|
||||
#: field:banking.export.clieop,filetype:0
|
||||
msgid "File Type"
|
||||
msgstr ""
|
||||
|
||||
#. module: account_banking_nl_clieop
|
||||
#: model:payment.type,name:account_banking_nl_clieop.export_clieop_inc
|
||||
msgid "ClieOp3 Direct Debit Batch"
|
||||
msgstr ""
|
||||
|
||||
#. module: account_banking_nl_clieop
|
||||
#: wizard_field:account_banking_nl_clieop.banking_export_clieop,create,testcode:0
|
||||
#: wizard_field:account_banking_nl_clieop.banking_export_clieop,init,test:0
|
||||
#: field:banking.export.clieop,testcode:0
|
||||
msgid "Test Run"
|
||||
msgstr ""
|
||||
|
||||
#. module: account_banking_nl_clieop
|
||||
#: selection:account_banking_nl_clieop.banking_export_clieop,init,batchtype:0
|
||||
msgid "Payments"
|
||||
msgstr ""
|
||||
|
||||
#. module: account_banking_nl_clieop
|
||||
#: code:addons/account_banking_nl_clieop/wizard/export_clieop.py:0
|
||||
#, python-format
|
||||
msgid "Error"
|
||||
msgstr ""
|
||||
|
||||
#. module: account_banking_nl_clieop
|
||||
#: selection:account_banking_nl_clieop.banking_export_clieop,init,batchtype:0
|
||||
msgid "Salary Payments"
|
||||
msgstr ""
|
||||
|
||||
#. module: account_banking_nl_clieop
|
||||
#: wizard_view:account_banking_nl_clieop.banking_export_clieop,create:0
|
||||
#: wizard_view:account_banking_nl_clieop.banking_export_clieop,init:0
|
||||
#: view:banking.export.clieop:0
|
||||
msgid "Client Opdrachten Export"
|
||||
msgstr ""
|
||||
|
||||
#. module: account_banking_nl_clieop
|
||||
#: wizard_view:account_banking_nl_clieop.banking_export_clieop,init:0
|
||||
msgid "Additional message for all transactions"
|
||||
msgstr ""
|
||||
|
||||
#. module: account_banking_nl_clieop
|
||||
#: model:ir.actions.act_window,name:account_banking_nl_clieop.action_account_banking_clieops
|
||||
#: model:ir.ui.menu,name:account_banking_nl_clieop.menu_action_account_banking_exported_clieop_files
|
||||
msgid "Generated ClieOp3 Files"
|
||||
msgstr ""
|
||||
|
||||
#. module: account_banking_nl_clieop
|
||||
#: model:ir.module.module,description:account_banking_nl_clieop.module_meta_information
|
||||
msgid "\n"
|
||||
" Module to export payment orders in ClieOp format.\n"
|
||||
"\n"
|
||||
" ClieOp format is used by Dutch banks to batch national bank transfers.\n"
|
||||
" This module uses the account_banking logic.\n"
|
||||
" "
|
||||
msgstr ""
|
||||
|
||||
#. module: account_banking_nl_clieop
|
||||
#: wizard_field:account_banking_nl_clieop.banking_export_clieop,init,reference:0
|
||||
msgid "Reference"
|
||||
msgstr ""
|
||||
|
||||
#. module: account_banking_nl_clieop
|
||||
#: help:account_banking_nl_clieop.banking_export_clieop,init,execution_date:0
|
||||
msgid "This is the date the file should be processed by the bank. Don't choose a date beyond the nearest date in your payments. The latest allowed date is 30 days from now.\n"
|
||||
"Please keep in mind that banks only execute on working days and typically use a delay of two days between execution date and effective transfer date."
|
||||
msgstr ""
|
||||
|
||||
#. module: account_banking_nl_clieop
|
||||
#: field:banking.export.clieop,payment_order_ids:0
|
||||
msgid "Payment Orders"
|
||||
msgstr ""
|
||||
|
||||
#. module: account_banking_nl_clieop
|
||||
#: view:banking.export.clieop:0
|
||||
msgid "General Information"
|
||||
msgstr ""
|
||||
|
||||
#. module: account_banking_nl_clieop
|
||||
#: wizard_field:account_banking_nl_clieop.banking_export_clieop,create,total_amount:0
|
||||
#: field:banking.export.clieop,total_amount:0
|
||||
msgid "Total Amount"
|
||||
msgstr ""
|
||||
|
||||
#. module: account_banking_nl_clieop
|
||||
#: field:banking.export.clieop,daynumber:0
|
||||
msgid "ClieOp Transaction nr of the Day"
|
||||
msgstr ""
|
||||
|
||||
#. module: account_banking_nl_clieop
|
||||
#: wizard_button:account_banking_nl_clieop.banking_export_clieop,create,cancel:0
|
||||
#: wizard_button:account_banking_nl_clieop.banking_export_clieop,init,end:0
|
||||
msgid "Cancel"
|
||||
msgstr ""
|
||||
|
||||
#. module: account_banking_nl_clieop
|
||||
#: wizard_field:account_banking_nl_clieop.banking_export_clieop,create,identification:0
|
||||
#: field:banking.export.clieop,identification:0
|
||||
msgid "Identification"
|
||||
msgstr ""
|
||||
|
||||
#. module: account_banking_nl_clieop
|
||||
#: selection:account_banking_nl_clieop.banking_export_clieop,create,testcode:0
|
||||
#: code:addons/account_banking_nl_clieop/account_banking_clieop.py:0
|
||||
#: code:addons/account_banking_nl_clieop/wizard/export_clieop.py:0
|
||||
#: selection:banking.export.clieop,testcode:0
|
||||
#, python-format
|
||||
msgid "Yes"
|
||||
msgstr ""
|
||||
|
||||
#. module: account_banking_nl_clieop
|
||||
#: selection:account_banking_nl_clieop.banking_export_clieop,create,filetype:0
|
||||
#: selection:banking.export.clieop,filetype:0
|
||||
msgid "Payment Batch"
|
||||
msgstr ""
|
||||
|
||||
#. module: account_banking_nl_clieop
|
||||
#: field:banking.export.clieop,date_generated:0
|
||||
msgid "Generation Date"
|
||||
msgstr ""
|
||||
|
||||
335
account_banking_nl_clieop/i18n/en_US.po
Normal file
335
account_banking_nl_clieop/i18n/en_US.po
Normal file
@@ -0,0 +1,335 @@
|
||||
# Translation of OpenERP Server.
|
||||
# This file contains the translation of the following modules:
|
||||
# * account_banking_nl_clieop
|
||||
#
|
||||
msgid ""
|
||||
msgstr ""
|
||||
"Project-Id-Version: OpenERP Server 5.0.7\n"
|
||||
"Report-Msgid-Bugs-To: support@openerp.com\n"
|
||||
"POT-Creation-Date: 2010-01-08 15:36:23+0000\n"
|
||||
"PO-Revision-Date: 2010-01-08 15:36:23+0000\n"
|
||||
"Last-Translator: <>\n"
|
||||
"Language-Team: \n"
|
||||
"MIME-Version: 1.0\n"
|
||||
"Content-Type: text/plain; charset=UTF-8\n"
|
||||
"Content-Transfer-Encoding: \n"
|
||||
"Plural-Forms: \n"
|
||||
|
||||
#. module: account_banking_nl_clieop
|
||||
#: constraint:ir.model:0
|
||||
msgid "The Object name must start with x_ and not contain any special character !"
|
||||
msgstr ""
|
||||
|
||||
#. module: account_banking_nl_clieop
|
||||
#: selection:account_banking_nl_clieop.banking_export_clieop,init,batchtype:0
|
||||
msgid "Direct Debits"
|
||||
msgstr ""
|
||||
|
||||
#. module: account_banking_nl_clieop
|
||||
#: selection:account_banking_nl_clieop.banking_export_clieop,create,testcode:0
|
||||
#: code:addons/account_banking_nl_clieop/account_banking_clieop.py:0
|
||||
#: code:addons/account_banking_nl_clieop/wizard/export_clieop.py:0
|
||||
#: selection:banking.export.clieop,testcode:0
|
||||
#, python-format
|
||||
msgid "No"
|
||||
msgstr ""
|
||||
|
||||
#. module: account_banking_nl_clieop
|
||||
#: model:ir.module.module,shortdesc:account_banking_nl_clieop.module_meta_information
|
||||
msgid "Account Banking NL ClieOp"
|
||||
msgstr ""
|
||||
|
||||
#. module: account_banking_nl_clieop
|
||||
#: wizard_field:account_banking_nl_clieop.banking_export_clieop,create,no_transactions:0
|
||||
#: field:banking.export.clieop,no_transactions:0
|
||||
msgid "Number of Transactions"
|
||||
msgstr ""
|
||||
|
||||
#. module: account_banking_nl_clieop
|
||||
#: model:ir.actions.wizard,name:account_banking_nl_clieop.wizard_account_banking_export_clieop
|
||||
msgid "Export ClieOp File"
|
||||
msgstr ""
|
||||
|
||||
#. module: account_banking_nl_clieop
|
||||
#: wizard_field:account_banking_nl_clieop.banking_export_clieop,create,prefered_date:0
|
||||
#: field:banking.export.clieop,prefered_date:0
|
||||
msgid "Prefered Processing Date"
|
||||
msgstr ""
|
||||
|
||||
#. module: account_banking_nl_clieop
|
||||
#: model:payment.type,name:account_banking_nl_clieop.export_clieop_pay
|
||||
msgid "ClieOp3 Payment Batch"
|
||||
msgstr ""
|
||||
|
||||
#. module: account_banking_nl_clieop
|
||||
#: field:banking.export.clieop,state:0
|
||||
msgid "State"
|
||||
msgstr ""
|
||||
|
||||
#. module: account_banking_nl_clieop
|
||||
#: help:account_banking_nl_clieop.banking_export_clieop,init,test:0
|
||||
msgid "Select this if you want your bank to run a test process rather then execute your orders for real."
|
||||
msgstr ""
|
||||
|
||||
#. module: account_banking_nl_clieop
|
||||
#: selection:banking.export.clieop,state:0
|
||||
msgid "Draft"
|
||||
msgstr ""
|
||||
|
||||
#. module: account_banking_nl_clieop
|
||||
#: view:banking.export.clieop:0
|
||||
msgid "Processing Information"
|
||||
msgstr ""
|
||||
|
||||
#. module: account_banking_nl_clieop
|
||||
#: help:account_banking_nl_clieop.banking_export_clieop,init,fixed_message:0
|
||||
msgid "A fixed message to apply to all transactions in addition to the individual messages."
|
||||
msgstr ""
|
||||
|
||||
#. module: account_banking_nl_clieop
|
||||
#: wizard_field:account_banking_nl_clieop.banking_export_clieop,create,check_no_accounts:0
|
||||
#: field:banking.export.clieop,check_no_accounts:0
|
||||
msgid "Check Number Accounts"
|
||||
msgstr ""
|
||||
|
||||
#. module: account_banking_nl_clieop
|
||||
#: constraint:ir.actions.act_window:0
|
||||
msgid "Invalid model name in the action definition."
|
||||
msgstr ""
|
||||
|
||||
#. module: account_banking_nl_clieop
|
||||
#: wizard_button:account_banking_nl_clieop.banking_export_clieop,create,save:0
|
||||
msgid "Save"
|
||||
msgstr ""
|
||||
|
||||
#. module: account_banking_nl_clieop
|
||||
#: wizard_field:account_banking_nl_clieop.banking_export_clieop,init,batchtype:0
|
||||
msgid "Type"
|
||||
msgstr ""
|
||||
|
||||
#. module: account_banking_nl_clieop
|
||||
#: selection:banking.export.clieop,state:0
|
||||
msgid "Sent"
|
||||
msgstr ""
|
||||
|
||||
#. module: account_banking_nl_clieop
|
||||
#: wizard_field:account_banking_nl_clieop.banking_export_clieop,create,log:0
|
||||
msgid "Log"
|
||||
msgstr ""
|
||||
|
||||
#. module: account_banking_nl_clieop
|
||||
#: view:banking.export.clieop:0
|
||||
msgid "ClieOp Information"
|
||||
msgstr ""
|
||||
|
||||
#. module: account_banking_nl_clieop
|
||||
#: model:ir.model,name:account_banking_nl_clieop.model_banking_export_clieop
|
||||
msgid "ClieOp3 Export"
|
||||
msgstr ""
|
||||
|
||||
#. module: account_banking_nl_clieop
|
||||
#: code:addons/account_banking_nl_clieop/wizard/export_clieop.py:0
|
||||
#, python-format
|
||||
msgid "You can only combine payment orders of the same type"
|
||||
msgstr ""
|
||||
|
||||
#. module: account_banking_nl_clieop
|
||||
#: selection:account_banking_nl_clieop.banking_export_clieop,create,filetype:0
|
||||
#: selection:banking.export.clieop,filetype:0
|
||||
msgid "Salary Payment Batch"
|
||||
msgstr ""
|
||||
|
||||
#. module: account_banking_nl_clieop
|
||||
#: selection:banking.export.clieop,state:0
|
||||
msgid "Reconciled"
|
||||
msgstr ""
|
||||
|
||||
#. module: account_banking_nl_clieop
|
||||
#: wizard_view:account_banking_nl_clieop.banking_export_clieop,init:0
|
||||
msgid "Reference for further communication"
|
||||
msgstr ""
|
||||
|
||||
#. module: account_banking_nl_clieop
|
||||
#: field:banking.export.clieop,duplicates:0
|
||||
msgid "Number of Duplicates"
|
||||
msgstr ""
|
||||
|
||||
#. module: account_banking_nl_clieop
|
||||
#: help:account_banking_nl_clieop.banking_export_clieop,init,reference:0
|
||||
msgid "The bank will use this reference in feedback communication to refer to this run. Only five characters are available."
|
||||
msgstr ""
|
||||
|
||||
#. module: account_banking_nl_clieop
|
||||
#: wizard_view:account_banking_nl_clieop.banking_export_clieop,init:0
|
||||
msgid "Processing Details"
|
||||
msgstr ""
|
||||
|
||||
#. module: account_banking_nl_clieop
|
||||
#: model:payment.type,name:account_banking_nl_clieop.export_clieop_sal
|
||||
msgid "ClieOp3 Salary Payment Batch"
|
||||
msgstr ""
|
||||
|
||||
#. module: account_banking_nl_clieop
|
||||
#: wizard_button:account_banking_nl_clieop.banking_export_clieop,init,create:0
|
||||
msgid "Create"
|
||||
msgstr ""
|
||||
|
||||
#. module: account_banking_nl_clieop
|
||||
#: selection:account_banking_nl_clieop.banking_export_clieop,create,filetype:0
|
||||
#: selection:banking.export.clieop,filetype:0
|
||||
msgid "Direct Debit Batch"
|
||||
msgstr ""
|
||||
|
||||
#. module: account_banking_nl_clieop
|
||||
#: constraint:ir.ui.view:0
|
||||
msgid "Invalid XML for View Architecture!"
|
||||
msgstr ""
|
||||
|
||||
#. module: account_banking_nl_clieop
|
||||
#: wizard_field:account_banking_nl_clieop.banking_export_clieop,create,file:0
|
||||
#: field:banking.export.clieop,file:0
|
||||
msgid "ClieOp File"
|
||||
msgstr ""
|
||||
|
||||
#. module: account_banking_nl_clieop
|
||||
#: code:addons/account_banking_nl_clieop/wizard/export_clieop.py:0
|
||||
#, python-format
|
||||
msgid "You can\'t create ClieOp orders more than 30 days in advance."
|
||||
msgstr ""
|
||||
|
||||
#. module: account_banking_nl_clieop
|
||||
#: wizard_field:account_banking_nl_clieop.banking_export_clieop,init,execution_date:0
|
||||
msgid "Execution Date"
|
||||
msgstr ""
|
||||
|
||||
#. module: account_banking_nl_clieop
|
||||
#: wizard_field:account_banking_nl_clieop.banking_export_clieop,init,fixed_message:0
|
||||
msgid "Fixed Message"
|
||||
msgstr ""
|
||||
|
||||
#. module: account_banking_nl_clieop
|
||||
#: wizard_field:account_banking_nl_clieop.banking_export_clieop,create,filetype:0
|
||||
#: field:banking.export.clieop,filetype:0
|
||||
msgid "File Type"
|
||||
msgstr ""
|
||||
|
||||
#. module: account_banking_nl_clieop
|
||||
#: model:payment.type,name:account_banking_nl_clieop.export_clieop_inc
|
||||
msgid "ClieOp3 Direct Debit Batch"
|
||||
msgstr ""
|
||||
|
||||
#. module: account_banking_nl_clieop
|
||||
#: wizard_field:account_banking_nl_clieop.banking_export_clieop,create,testcode:0
|
||||
#: wizard_field:account_banking_nl_clieop.banking_export_clieop,init,test:0
|
||||
#: field:banking.export.clieop,testcode:0
|
||||
msgid "Test Run"
|
||||
msgstr ""
|
||||
|
||||
#. module: account_banking_nl_clieop
|
||||
#: selection:account_banking_nl_clieop.banking_export_clieop,init,batchtype:0
|
||||
msgid "Payments"
|
||||
msgstr ""
|
||||
|
||||
#. module: account_banking_nl_clieop
|
||||
#: code:addons/account_banking_nl_clieop/wizard/export_clieop.py:0
|
||||
#, python-format
|
||||
msgid "Error"
|
||||
msgstr ""
|
||||
|
||||
#. module: account_banking_nl_clieop
|
||||
#: selection:account_banking_nl_clieop.banking_export_clieop,init,batchtype:0
|
||||
msgid "Salary Payments"
|
||||
msgstr ""
|
||||
|
||||
#. module: account_banking_nl_clieop
|
||||
#: wizard_view:account_banking_nl_clieop.banking_export_clieop,create:0
|
||||
#: wizard_view:account_banking_nl_clieop.banking_export_clieop,init:0
|
||||
#: view:banking.export.clieop:0
|
||||
msgid "Client Opdrachten Export"
|
||||
msgstr ""
|
||||
|
||||
#. module: account_banking_nl_clieop
|
||||
#: wizard_view:account_banking_nl_clieop.banking_export_clieop,init:0
|
||||
msgid "Additional message for all transactions"
|
||||
msgstr ""
|
||||
|
||||
#. module: account_banking_nl_clieop
|
||||
#: model:ir.actions.act_window,name:account_banking_nl_clieop.action_account_banking_clieops
|
||||
#: model:ir.ui.menu,name:account_banking_nl_clieop.menu_action_account_banking_exported_clieop_files
|
||||
msgid "Generated ClieOp3 Files"
|
||||
msgstr ""
|
||||
|
||||
#. module: account_banking_nl_clieop
|
||||
#: model:ir.module.module,description:account_banking_nl_clieop.module_meta_information
|
||||
msgid "\n"
|
||||
" Module to export payment orders in ClieOp format.\n"
|
||||
"\n"
|
||||
" ClieOp format is used by Dutch banks to batch national bank transfers.\n"
|
||||
" This module uses the account_banking logic.\n"
|
||||
" "
|
||||
msgstr ""
|
||||
|
||||
#. module: account_banking_nl_clieop
|
||||
#: wizard_field:account_banking_nl_clieop.banking_export_clieop,init,reference:0
|
||||
msgid "Reference"
|
||||
msgstr ""
|
||||
|
||||
#. module: account_banking_nl_clieop
|
||||
#: help:account_banking_nl_clieop.banking_export_clieop,init,execution_date:0
|
||||
msgid "This is the date the file should be processed by the bank. Don't choose a date beyond the nearest date in your payments. The latest allowed date is 30 days from now.\n"
|
||||
"Please keep in mind that banks only execute on working days and typically use a delay of two days between execution date and effective transfer date."
|
||||
msgstr ""
|
||||
|
||||
#. module: account_banking_nl_clieop
|
||||
#: field:banking.export.clieop,payment_order_ids:0
|
||||
msgid "Payment Orders"
|
||||
msgstr ""
|
||||
|
||||
#. module: account_banking_nl_clieop
|
||||
#: view:banking.export.clieop:0
|
||||
msgid "General Information"
|
||||
msgstr ""
|
||||
|
||||
#. module: account_banking_nl_clieop
|
||||
#: wizard_field:account_banking_nl_clieop.banking_export_clieop,create,total_amount:0
|
||||
#: field:banking.export.clieop,total_amount:0
|
||||
msgid "Total Amount"
|
||||
msgstr ""
|
||||
|
||||
#. module: account_banking_nl_clieop
|
||||
#: field:banking.export.clieop,daynumber:0
|
||||
msgid "ClieOp Transaction nr of the Day"
|
||||
msgstr ""
|
||||
|
||||
#. module: account_banking_nl_clieop
|
||||
#: wizard_button:account_banking_nl_clieop.banking_export_clieop,create,cancel:0
|
||||
#: wizard_button:account_banking_nl_clieop.banking_export_clieop,init,end:0
|
||||
msgid "Cancel"
|
||||
msgstr ""
|
||||
|
||||
#. module: account_banking_nl_clieop
|
||||
#: wizard_field:account_banking_nl_clieop.banking_export_clieop,create,identification:0
|
||||
#: field:banking.export.clieop,identification:0
|
||||
msgid "Identification"
|
||||
msgstr ""
|
||||
|
||||
#. module: account_banking_nl_clieop
|
||||
#: selection:account_banking_nl_clieop.banking_export_clieop,create,testcode:0
|
||||
#: code:addons/account_banking_nl_clieop/account_banking_clieop.py:0
|
||||
#: code:addons/account_banking_nl_clieop/wizard/export_clieop.py:0
|
||||
#: selection:banking.export.clieop,testcode:0
|
||||
#, python-format
|
||||
msgid "Yes"
|
||||
msgstr ""
|
||||
|
||||
#. module: account_banking_nl_clieop
|
||||
#: selection:account_banking_nl_clieop.banking_export_clieop,create,filetype:0
|
||||
#: selection:banking.export.clieop,filetype:0
|
||||
msgid "Payment Batch"
|
||||
msgstr ""
|
||||
|
||||
#. module: account_banking_nl_clieop
|
||||
#: field:banking.export.clieop,date_generated:0
|
||||
msgid "Generation Date"
|
||||
msgstr ""
|
||||
|
||||
341
account_banking_nl_clieop/i18n/nl_NL.po
Normal file
341
account_banking_nl_clieop/i18n/nl_NL.po
Normal file
@@ -0,0 +1,341 @@
|
||||
# Translation of OpenERP Server.
|
||||
# This file contains the translation of the following modules:
|
||||
# * account_banking_nl_clieop
|
||||
#
|
||||
msgid ""
|
||||
msgstr ""
|
||||
"Project-Id-Version: OpenERP Server 5.0.7\n"
|
||||
"Report-Msgid-Bugs-To: support@openerp.com\n"
|
||||
"POT-Creation-Date: 2010-01-07 22:22:23+0000\n"
|
||||
"PO-Revision-Date: 2010-01-07 22:22:23+0000\n"
|
||||
"Last-Translator: <>\n"
|
||||
"Language-Team: \n"
|
||||
"MIME-Version: 1.0\n"
|
||||
"Content-Type: text/plain; charset=UTF-8\n"
|
||||
"Content-Transfer-Encoding: \n"
|
||||
"Plural-Forms: \n"
|
||||
|
||||
#. module: account_banking_nl_clieop
|
||||
#: constraint:ir.model:0
|
||||
msgid "The Object name must start with x_ and not contain any special character !"
|
||||
msgstr "De objectnaam moet beginnen met x_ en mag geen speciale karakters bevatten !"
|
||||
|
||||
#. module: account_banking_nl_clieop
|
||||
#: selection:account_banking_nl_clieop.banking_export_clieop,init,batchtype:0
|
||||
msgid "Direct Debits"
|
||||
msgstr "Incasso-batch"
|
||||
|
||||
#. module: account_banking_nl_clieop
|
||||
#: selection:account_banking_nl_clieop.banking_export_clieop,create,testcode:0
|
||||
#: code:addons/account_banking_nl_clieop/account_banking_clieop.py:0
|
||||
#: code:addons/account_banking_nl_clieop/wizard/export_clieop.py:0
|
||||
#: selection:banking.export.clieop,testcode:0
|
||||
#, python-format
|
||||
msgid "No"
|
||||
msgstr "Nee"
|
||||
|
||||
#. module: account_banking_nl_clieop
|
||||
#: model:ir.module.module,shortdesc:account_banking_nl_clieop.module_meta_information
|
||||
msgid "Account Banking NL ClieOp"
|
||||
msgstr "Account Banking NL ClieOp"
|
||||
|
||||
#. module: account_banking_nl_clieop
|
||||
#: wizard_field:account_banking_nl_clieop.banking_export_clieop,create,no_transactions:0
|
||||
#: field:banking.export.clieop,no_transactions:0
|
||||
msgid "Number of Transactions"
|
||||
msgstr "Aantal transacties"
|
||||
|
||||
#. module: account_banking_nl_clieop
|
||||
#: model:ir.actions.wizard,name:account_banking_nl_clieop.wizard_account_banking_export_clieop
|
||||
msgid "Export ClieOp File"
|
||||
msgstr "Exporteer ClieOp-bestand"
|
||||
|
||||
#. module: account_banking_nl_clieop
|
||||
#: wizard_field:account_banking_nl_clieop.banking_export_clieop,create,prefered_date:0
|
||||
#: field:banking.export.clieop,prefered_date:0
|
||||
msgid "Prefered Processing Date"
|
||||
msgstr "Gewenste verwerkingsdatum"
|
||||
|
||||
#. module: account_banking_nl_clieop
|
||||
#: model:payment.type,name:account_banking_nl_clieop.export_clieop_pay
|
||||
msgid "ClieOp3 Payment Batch"
|
||||
msgstr "ClieOp3 betalingsbatch"
|
||||
|
||||
#. module: account_banking_nl_clieop
|
||||
#: field:banking.export.clieop,state:0
|
||||
msgid "State"
|
||||
msgstr "Status"
|
||||
|
||||
#. module: account_banking_nl_clieop
|
||||
#: help:account_banking_nl_clieop.banking_export_clieop,init,test:0
|
||||
msgid "Select this if you want your bank to run a test process rather then execute your orders for real."
|
||||
msgstr "Kies dit als u wilt dat de bank een testrun draait in plaats van uw opdrachten te verwerken."
|
||||
|
||||
#. module: account_banking_nl_clieop
|
||||
#: selection:banking.export.clieop,state:0
|
||||
msgid "Draft"
|
||||
msgstr "Concept"
|
||||
|
||||
#. module: account_banking_nl_clieop
|
||||
#: view:banking.export.clieop:0
|
||||
msgid "Processing Information"
|
||||
msgstr "Verwerkingsinformatie"
|
||||
|
||||
#. module: account_banking_nl_clieop
|
||||
#: help:account_banking_nl_clieop.banking_export_clieop,init,fixed_message:0
|
||||
msgid "A fixed message to apply to all transactions in addition to the individual messages."
|
||||
msgstr "Een vast bericht om toe te voegen aan alle transacties in toevoeging op de individuele berichten."
|
||||
|
||||
#. module: account_banking_nl_clieop
|
||||
#: wizard_field:account_banking_nl_clieop.banking_export_clieop,create,check_no_accounts:0
|
||||
#: field:banking.export.clieop,check_no_accounts:0
|
||||
msgid "Check Number Accounts"
|
||||
msgstr "Controlegetal rekeningen"
|
||||
|
||||
#. module: account_banking_nl_clieop
|
||||
#: constraint:ir.actions.act_window:0
|
||||
msgid "Invalid model name in the action definition."
|
||||
msgstr "Ongeldige naam in actie-definitie."
|
||||
|
||||
#. module: account_banking_nl_clieop
|
||||
#: wizard_button:account_banking_nl_clieop.banking_export_clieop,create,save:0
|
||||
msgid "Save"
|
||||
msgstr "Opskaan"
|
||||
|
||||
#. module: account_banking_nl_clieop
|
||||
#: wizard_field:account_banking_nl_clieop.banking_export_clieop,init,batchtype:0
|
||||
msgid "Type"
|
||||
msgstr "Soort"
|
||||
|
||||
#. module: account_banking_nl_clieop
|
||||
#: selection:banking.export.clieop,state:0
|
||||
msgid "Sent"
|
||||
msgstr "Verzonden"
|
||||
|
||||
#. module: account_banking_nl_clieop
|
||||
#: wizard_field:account_banking_nl_clieop.banking_export_clieop,create,log:0
|
||||
msgid "Log"
|
||||
msgstr "Log"
|
||||
|
||||
#. module: account_banking_nl_clieop
|
||||
#: view:banking.export.clieop:0
|
||||
msgid "ClieOp Information"
|
||||
msgstr "ClieOp-informatie"
|
||||
|
||||
#. module: account_banking_nl_clieop
|
||||
#: model:ir.model,name:account_banking_nl_clieop.model_banking_export_clieop
|
||||
msgid "ClieOp3 Export"
|
||||
msgstr "ClieOp3-export"
|
||||
|
||||
#. module: account_banking_nl_clieop
|
||||
#: code:addons/account_banking_nl_clieop/wizard/export_clieop.py:0
|
||||
#, python-format
|
||||
msgid "You can only combine payment orders of the same type"
|
||||
msgstr "U kunt alleen betalingsopdrachten van dezelfde soort combineren"
|
||||
|
||||
#. module: account_banking_nl_clieop
|
||||
#: selection:account_banking_nl_clieop.banking_export_clieop,create,filetype:0
|
||||
#: selection:banking.export.clieop,filetype:0
|
||||
msgid "Salary Payment Batch"
|
||||
msgstr "Salarisbetalingsbatch"
|
||||
|
||||
#. module: account_banking_nl_clieop
|
||||
#: selection:banking.export.clieop,state:0
|
||||
msgid "Reconciled"
|
||||
msgstr "Afgeletterd"
|
||||
|
||||
#. module: account_banking_nl_clieop
|
||||
#: wizard_view:account_banking_nl_clieop.banking_export_clieop,init:0
|
||||
msgid "Reference for further communication"
|
||||
msgstr "Referentie voor verdere communicatie"
|
||||
|
||||
#. module: account_banking_nl_clieop
|
||||
#: field:banking.export.clieop,duplicates:0
|
||||
msgid "Number of Duplicates"
|
||||
msgstr "Aantal duplicaten"
|
||||
|
||||
#. module: account_banking_nl_clieop
|
||||
#: help:account_banking_nl_clieop.banking_export_clieop,init,reference:0
|
||||
msgid "The bank will use this reference in feedback communication to refer to this run. Only five characters are available."
|
||||
msgstr "De bank zal dit gebruiken in terugkoppelingsberichten om te referen aan deze verwerking. Slechts vijf tekens zijn beschikbaar."
|
||||
|
||||
#. module: account_banking_nl_clieop
|
||||
#: wizard_view:account_banking_nl_clieop.banking_export_clieop,init:0
|
||||
msgid "Processing Details"
|
||||
msgstr "Verwerkingsdetails"
|
||||
|
||||
#. module: account_banking_nl_clieop
|
||||
#: model:payment.type,name:account_banking_nl_clieop.export_clieop_sal
|
||||
msgid "ClieOp3 Salary Payment Batch"
|
||||
msgstr "ClieOp3 salarisverwerking"
|
||||
|
||||
#. module: account_banking_nl_clieop
|
||||
#: wizard_button:account_banking_nl_clieop.banking_export_clieop,init,create:0
|
||||
msgid "Create"
|
||||
msgstr "Maak"
|
||||
|
||||
#. module: account_banking_nl_clieop
|
||||
#: selection:account_banking_nl_clieop.banking_export_clieop,create,filetype:0
|
||||
#: selection:banking.export.clieop,filetype:0
|
||||
msgid "Direct Debit Batch"
|
||||
msgstr "Incassobatch"
|
||||
|
||||
#. module: account_banking_nl_clieop
|
||||
#: constraint:ir.ui.view:0
|
||||
msgid "Invalid XML for View Architecture!"
|
||||
msgstr "Ongeldige XML voor overzicht"
|
||||
|
||||
#. module: account_banking_nl_clieop
|
||||
#: wizard_field:account_banking_nl_clieop.banking_export_clieop,create,file:0
|
||||
#: field:banking.export.clieop,file:0
|
||||
msgid "ClieOp File"
|
||||
msgstr "ClieOp-bestand"
|
||||
|
||||
#. module: account_banking_nl_clieop
|
||||
#: code:addons/account_banking_nl_clieop/wizard/export_clieop.py:0
|
||||
#, python-format
|
||||
msgid "You can\'t create ClieOp orders more than 30 days in advance."
|
||||
msgstr "U kunt geen ClieOp opdrachten aanmaken voor meer dan 30 dagen vooruit."
|
||||
|
||||
#. module: account_banking_nl_clieop
|
||||
#: wizard_field:account_banking_nl_clieop.banking_export_clieop,init,execution_date:0
|
||||
msgid "Execution Date"
|
||||
msgstr "Uitvoeringsdatum"
|
||||
|
||||
#. module: account_banking_nl_clieop
|
||||
#: wizard_field:account_banking_nl_clieop.banking_export_clieop,init,fixed_message:0
|
||||
msgid "Fixed Message"
|
||||
msgstr ""
|
||||
|
||||
#. module: account_banking_nl_clieop
|
||||
#: wizard_field:account_banking_nl_clieop.banking_export_clieop,create,filetype:0
|
||||
#: field:banking.export.clieop,filetype:0
|
||||
msgid "File Type"
|
||||
msgstr "Bestandsformaat"
|
||||
|
||||
#. module: account_banking_nl_clieop
|
||||
#: model:payment.type,name:account_banking_nl_clieop.export_clieop_inc
|
||||
msgid "ClieOp3 Direct Debit Batch"
|
||||
msgstr "ClieOp3 incassoverwerking"
|
||||
|
||||
#. module: account_banking_nl_clieop
|
||||
#: wizard_field:account_banking_nl_clieop.banking_export_clieop,create,testcode:0
|
||||
#: wizard_field:account_banking_nl_clieop.banking_export_clieop,init,test:0
|
||||
#: field:banking.export.clieop,testcode:0
|
||||
msgid "Test Run"
|
||||
msgstr "Testverwerking"
|
||||
|
||||
#. module: account_banking_nl_clieop
|
||||
#: selection:account_banking_nl_clieop.banking_export_clieop,init,batchtype:0
|
||||
msgid "Payments"
|
||||
msgstr "Betalingen"
|
||||
|
||||
#. module: account_banking_nl_clieop
|
||||
#: code:addons/account_banking_nl_clieop/wizard/export_clieop.py:0
|
||||
#, python-format
|
||||
msgid "Error"
|
||||
msgstr "Fout"
|
||||
|
||||
#. module: account_banking_nl_clieop
|
||||
#: selection:account_banking_nl_clieop.banking_export_clieop,init,batchtype:0
|
||||
msgid "Salary Payments"
|
||||
msgstr "Salarisbetalingen"
|
||||
|
||||
#. module: account_banking_nl_clieop
|
||||
#: wizard_view:account_banking_nl_clieop.banking_export_clieop,create:0
|
||||
#: wizard_view:account_banking_nl_clieop.banking_export_clieop,init:0
|
||||
#: view:banking.export.clieop:0
|
||||
msgid "Client Opdrachten Export"
|
||||
msgstr "Client Opdrachten Export"
|
||||
|
||||
#. module: account_banking_nl_clieop
|
||||
#: wizard_view:account_banking_nl_clieop.banking_export_clieop,init:0
|
||||
msgid "Additional message for all transactions"
|
||||
msgstr "Toegevoegd bericht voor alle transacties"
|
||||
|
||||
#. module: account_banking_nl_clieop
|
||||
#: model:ir.actions.act_window,name:account_banking_nl_clieop.action_account_banking_clieops
|
||||
#: model:ir.ui.menu,name:account_banking_nl_clieop.menu_action_account_banking_exported_clieop_files
|
||||
msgid "Generated ClieOp3 Files"
|
||||
msgstr "Gegenereerde ClieOp3-bestanden"
|
||||
|
||||
#. module: account_banking_nl_clieop
|
||||
#: model:ir.module.module,description:account_banking_nl_clieop.module_meta_information
|
||||
msgid "\n"
|
||||
" Module to export payment orders in ClieOp format.\n"
|
||||
"\n"
|
||||
" ClieOp format is used by Dutch banks to batch national bank transfers.\n"
|
||||
" This module uses the account_banking logic.\n"
|
||||
" "
|
||||
msgstr "\n"
|
||||
" Module voor het exporteren van betalingsopdrachten in ClieOp-formaat.\n"
|
||||
"\n"
|
||||
" ClieOp-formaat wordt gebruikt door Nederlandse banks voor batchverwerking van national banktransacties.\n"
|
||||
" Deze module gebruikt de account_banking logica.\n"
|
||||
" "
|
||||
|
||||
#. module: account_banking_nl_clieop
|
||||
#: wizard_field:account_banking_nl_clieop.banking_export_clieop,init,reference:0
|
||||
msgid "Reference"
|
||||
msgstr "Referentie"
|
||||
|
||||
#. module: account_banking_nl_clieop
|
||||
#: help:account_banking_nl_clieop.banking_export_clieop,init,execution_date:0
|
||||
msgid "This is the date the file should be processed by the bank. Don't choose a date beyond the nearest date in your payments. The latest allowed date is 30 days from now.\n"
|
||||
"Please keep in mind that banks only execute on working days and typically use a delay of two days between execution date and effective transfer date."
|
||||
msgstr "Dit is de datum dat het bestand verwerkt dient te worden door de bank. Kies geen datum verder dan 30 dagen vooruit.\n"
|
||||
"Onthoud dat veel banken in alleen verwerken op werkdagen en dat er doorgaans twee dagen vertraging zit tussen verwerkingsdatum en effectieve datum.\n"
|
||||
|
||||
#. module: account_banking_nl_clieop
|
||||
#: field:banking.export.clieop,payment_order_ids:0
|
||||
msgid "Payment Orders"
|
||||
msgstr "Betalingsopdrachten"
|
||||
|
||||
#. module: account_banking_nl_clieop
|
||||
#: view:banking.export.clieop:0
|
||||
msgid "General Information"
|
||||
msgstr "Algemene informatie"
|
||||
|
||||
#. module: account_banking_nl_clieop
|
||||
#: wizard_field:account_banking_nl_clieop.banking_export_clieop,create,total_amount:0
|
||||
#: field:banking.export.clieop,total_amount:0
|
||||
msgid "Total Amount"
|
||||
msgstr "Totaalbedrag"
|
||||
|
||||
#. module: account_banking_nl_clieop
|
||||
#: field:banking.export.clieop,daynumber:0
|
||||
msgid "ClieOp Transaction nr of the Day"
|
||||
msgstr "ClieOp dagtransactienummer"
|
||||
|
||||
#. module: account_banking_nl_clieop
|
||||
#: wizard_button:account_banking_nl_clieop.banking_export_clieop,create,cancel:0
|
||||
#: wizard_button:account_banking_nl_clieop.banking_export_clieop,init,end:0
|
||||
msgid "Cancel"
|
||||
msgstr "Annuleren"
|
||||
|
||||
#. module: account_banking_nl_clieop
|
||||
#: wizard_field:account_banking_nl_clieop.banking_export_clieop,create,identification:0
|
||||
#: field:banking.export.clieop,identification:0
|
||||
msgid "Identification"
|
||||
msgstr "Identificatie"
|
||||
|
||||
#. module: account_banking_nl_clieop
|
||||
#: selection:account_banking_nl_clieop.banking_export_clieop,create,testcode:0
|
||||
#: code:addons/account_banking_nl_clieop/account_banking_clieop.py:0
|
||||
#: code:addons/account_banking_nl_clieop/wizard/export_clieop.py:0
|
||||
#: selection:banking.export.clieop,testcode:0
|
||||
#, python-format
|
||||
msgid "Yes"
|
||||
msgstr "Ja"
|
||||
|
||||
#. module: account_banking_nl_clieop
|
||||
#: selection:account_banking_nl_clieop.banking_export_clieop,create,filetype:0
|
||||
#: selection:banking.export.clieop,filetype:0
|
||||
msgid "Payment Batch"
|
||||
msgstr "Betalingsbatch"
|
||||
|
||||
#. module: account_banking_nl_clieop
|
||||
#: field:banking.export.clieop,date_generated:0
|
||||
msgid "Generation Date"
|
||||
msgstr "Aanmaakdatum"
|
||||
|
||||
23
account_banking_nl_clieop/wizard/__init__.py
Normal file
23
account_banking_nl_clieop/wizard/__init__.py
Normal file
@@ -0,0 +1,23 @@
|
||||
# -*- encoding: utf-8 -*-
|
||||
##############################################################################
|
||||
#
|
||||
# Copyright (C) 2009 EduSense BV (<http://www.edusense.nl>).
|
||||
# All Rights Reserved
|
||||
#
|
||||
# This program is free software: you can redistribute it and/or modify
|
||||
# it under the terms of the GNU General Public License as published by
|
||||
# the Free Software Foundation, either version 3 of the License, or
|
||||
# (at your option) any later version.
|
||||
#
|
||||
# This program is distributed in the hope that it will be useful,
|
||||
# but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||
# GNU General Public License for more details.
|
||||
#
|
||||
# You should have received a copy of the GNU General Public License
|
||||
# along with this program. If not, see <http://www.gnu.org/licenses/>.
|
||||
#
|
||||
##############################################################################
|
||||
import export_clieop
|
||||
|
||||
# vim:expandtab:smartindent:tabstop=4:softtabstop=4:shiftwidth=4:
|
||||
460
account_banking_nl_clieop/wizard/clieop.py
Normal file
460
account_banking_nl_clieop/wizard/clieop.py
Normal file
@@ -0,0 +1,460 @@
|
||||
# -*- encoding: utf-8 -*-
|
||||
##############################################################################
|
||||
#
|
||||
# Copyright (C) 2009 EduSense BV (<http://www.edusense.nl>).
|
||||
# All Rights Reserved
|
||||
#
|
||||
# This program is free software: you can redistribute it and/or modify
|
||||
# it under the terms of the GNU General Public License as published by
|
||||
# the Free Software Foundation, either version 3 of the License, or
|
||||
# (at your option) any later version.
|
||||
#
|
||||
# This program is distributed in the hope that it will be useful,
|
||||
# but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||
# GNU General Public License for more details.
|
||||
#
|
||||
# You should have received a copy of the GNU General Public License
|
||||
# along with this program. If not, see <http://www.gnu.org/licenses/>.
|
||||
#
|
||||
##############################################################################
|
||||
|
||||
from account_banking import record
|
||||
|
||||
__all__ = ['IncassoBatch', 'BetalingsBatch', 'Incasso', 'Betaling',
|
||||
'IncassoFile', 'BetalingsFile', 'SalarisFile',
|
||||
'SalarisbetalingsOpdracht', 'BetalingsOpdracht', 'IncassoOpdracht',
|
||||
'OpdrachtenFile',
|
||||
]
|
||||
|
||||
def elfproef(s):
|
||||
'''
|
||||
Dutch elfproef for validating 9-long local bank account numbers.
|
||||
'''
|
||||
r = 0
|
||||
l = len(s)
|
||||
for i,c in enumerate(s):
|
||||
r += (l-i) * int(c)
|
||||
return (r % 11) == 0
|
||||
|
||||
class HeaderRecord(record.Record): #{{{
|
||||
'''ClieOp3 header record'''
|
||||
_fields = [
|
||||
record.Filler('recordcode', 4, '0001'),
|
||||
record.Filler('variantcode', 1, 'A'),
|
||||
record.DateField('aanmaakdatum', '%d%m%y', auto=True),
|
||||
record.Filler('bestandsnaam', 8, 'CLIEOP03'),
|
||||
record.Field('inzender_id', 5),
|
||||
record.Field('bestands_id', 4),
|
||||
record.Field('duplicaatcode', 1),
|
||||
record.Filler('filler', 21),
|
||||
]
|
||||
|
||||
def __init__(self, id='1', volgnr=1, duplicate=False):
|
||||
super(HeaderRecord, self).__init__()
|
||||
self.inzender_id = id
|
||||
self.bestands_id = '%02d%02d' % (self.aanmaakdatum.day, volgnr)
|
||||
self.duplicaatcode = duplicate and '2' or '1'
|
||||
#}}}
|
||||
|
||||
class FooterRecord(record.Record):
|
||||
'''ClieOp3 footer record'''
|
||||
_fields = [
|
||||
record.Filler('recordcode', 4, '9999'),
|
||||
record.Filler('variantcode', 1, 'A'),
|
||||
record.Filler('filler', 45),
|
||||
]
|
||||
|
||||
class BatchHeaderRecord(record.Record):
|
||||
'''Header record preceding new batches'''
|
||||
_fields = [
|
||||
record.Filler('recordcode', 4, '0010'),
|
||||
record.Field('variantcode', 1),
|
||||
record.Field('transactiegroep', 2),
|
||||
record.NumberField('rekeningnr_opdrachtgever', 10),
|
||||
record.NumberField('batchvolgnummer', 4),
|
||||
record.Filler('aanlevermuntsoort', 3, 'EUR'),
|
||||
record.Field('batch_id', 16),
|
||||
record.Filler('filler', 10),
|
||||
]
|
||||
|
||||
class BatchFooterRecord(record.Record):
|
||||
'''Closing record for batches'''
|
||||
_fields = [
|
||||
record.Filler('recordcode', 4, '9990'),
|
||||
record.Filler('variantcode', 1, 'A'),
|
||||
record.NumberField('totaalbedrag', 18),
|
||||
record.NumberField('totaal_rekeningnummers', 10),
|
||||
record.NumberField('aantal_posten', 7),
|
||||
record.Filler('filler', 10),
|
||||
]
|
||||
|
||||
class VasteOmschrijvingRecord(record.Record):
|
||||
'''Fixed message'''
|
||||
_fields = [
|
||||
record.Filler('recordcode', 4, '0020'),
|
||||
record.Filler('variantcode', 1, 'A'),
|
||||
record.Field('vaste_omschrijving', 32),
|
||||
record.Filler('filler', 13),
|
||||
]
|
||||
|
||||
class OpdrachtgeverRecord(record.Record):
|
||||
'''Ordering party'''
|
||||
_fields = [
|
||||
record.Filler('recordcode', 4, '0030'),
|
||||
record.Filler('variantcode', 1, 'B'),
|
||||
record.Field('NAWcode', 1),
|
||||
record.DateField('gewenste_verwerkingsdatum', '%d%m%y', auto=True),
|
||||
record.Field('naam_opdrachtgever', 35),
|
||||
record.Field('testcode', 1),
|
||||
record.Filler('filler', 2),
|
||||
]
|
||||
|
||||
class TransactieRecord(record.Record):
|
||||
'''Transaction'''
|
||||
_fields = [
|
||||
record.Filler('recordcode', 4, '0100'),
|
||||
record.Filler('variantcode', 1, 'A'),
|
||||
record.NumberField('transactiesoort', 4),
|
||||
record.NumberField('bedrag', 12),
|
||||
record.NumberField('rekeningnr_betaler', 10),
|
||||
record.NumberField('rekeningnr_begunstigde', 10),
|
||||
record.Filler('filler', 9),
|
||||
]
|
||||
|
||||
class NaamBetalerRecord(record.Record):
|
||||
'''Name payer'''
|
||||
_fields = [
|
||||
record.Filler('recordcode', 4, '0110'),
|
||||
record.Filler('variantcode', 1, 'B'),
|
||||
record.Field('naam', 35),
|
||||
record.Filler('filler', 10),
|
||||
]
|
||||
|
||||
class BetalingskenmerkRecord(record.Record):
|
||||
'''Payment reference'''
|
||||
_fields = [
|
||||
record.Filler('recordcode', 4, '0150'),
|
||||
record.Filler('variantcode', 1, 'A'),
|
||||
record.Field('betalingskenmerk', 16),
|
||||
record.Filler('filler', 29),
|
||||
]
|
||||
|
||||
class OmschrijvingRecord(record.Record):
|
||||
'''Description'''
|
||||
_fields = [
|
||||
record.Filler('recordcode', 4, '0160'),
|
||||
record.Filler('variantcode', 1, 'B'),
|
||||
record.Field('omschrijving', 32),
|
||||
record.Filler('filler', 13),
|
||||
]
|
||||
|
||||
class NaamBegunstigdeRecord(record.Record):
|
||||
'''Name receiving party'''
|
||||
_fields = [
|
||||
record.Filler('recordcode', 4, '0170'),
|
||||
record.Filler('variantcode', 1, 'B'),
|
||||
record.Field('naam', 35),
|
||||
record.Filler('filler', 10),
|
||||
]
|
||||
|
||||
class OpdrachtRecord(record.Record):
|
||||
'''Order details'''
|
||||
_fields = [
|
||||
record.Filler('recordcode', 6, 'KAE092'),
|
||||
record.Field('naam_transactiecode', 18),
|
||||
record.NumberField('totaalbedrag', 13),
|
||||
record.Field('rekeningnr_opdrachtgever', 10),
|
||||
record.NumberField('totaal_rekeningnummers', 5),
|
||||
record.NumberField('aantal_posten', 6),
|
||||
record.Field('identificatie', 6),
|
||||
record.DateField('gewenste_verwerkingsdatum', '%y%m%d'),
|
||||
record.Field('batch_medium', 18),
|
||||
record.Filler('muntsoort', 3, 'EUR'),
|
||||
record.Field('testcode', 1),
|
||||
]
|
||||
def __init__(self, *args, **kwargs):
|
||||
super(OpdrachtRecord, self).__init__(*args, **kwargs)
|
||||
self.batch_medium = 'DATACOM'
|
||||
self.naam_transactiecode = self._transactiecode
|
||||
|
||||
class SalarisbetalingsOpdracht(OpdrachtRecord):
|
||||
'''Salary payment batch record'''
|
||||
_transactiecode = 'SALARIS'
|
||||
|
||||
class BetalingsOpdracht(OpdrachtRecord):
|
||||
'''Payment batch record'''
|
||||
_transactiecode = 'CREDBET'
|
||||
|
||||
class IncassoOpdracht(OpdrachtRecord):
|
||||
'''Direct debit payments batch record'''
|
||||
_transactiecode = 'INCASSO'
|
||||
|
||||
class Optional(object):
|
||||
'''Auxilliary class to handle optional records'''
|
||||
def __init__(self, klass, max=1):
|
||||
self._klass = klass
|
||||
self._max = max
|
||||
self._guts = []
|
||||
|
||||
def __setattr__(self, attr, value):
|
||||
'''Check for number of records'''
|
||||
if attr[0] == '_':
|
||||
super(Optional, self).__setattr__(attr, value)
|
||||
else:
|
||||
if self._guts and len(self._guts) > self._max:
|
||||
raise ValueError, 'Only %d lines are allowed' % self._max
|
||||
newitem = self._klass()
|
||||
setattr(newitem, attr, value)
|
||||
self._guts.append(newitem)
|
||||
|
||||
def __getattr__(self, attr):
|
||||
'''Only return if used'''
|
||||
if attr[0] == '_':
|
||||
return super(Optional, self).__getattr__(attr)
|
||||
return [getattr(x, attr) for x in self._guts]
|
||||
|
||||
def __iter__(self):
|
||||
'''Make sure to adapt'''
|
||||
return self._guts.__iter__()
|
||||
|
||||
class OpdrachtenFile(object):
|
||||
'''A payment orders file'''
|
||||
def __init__(self, *args, **kwargs):
|
||||
self.opdrachten = []
|
||||
|
||||
@property
|
||||
def rawdata(self):
|
||||
'''
|
||||
Return a writeable file content object
|
||||
'''
|
||||
return '\r\n'.join(self.opdrachten)
|
||||
|
||||
class Transactie(object):
|
||||
'''Generic transaction class'''
|
||||
def __init__(self, soort=0, naam=None, referentie=None, omschrijvingen=[],
|
||||
rekeningnr_begunstigde=None, rekeningnr_betaler=None,
|
||||
bedrag=0
|
||||
):
|
||||
self.transactie = TransactieRecord()
|
||||
self.betalingskenmerk = Optional(BetalingskenmerkRecord)
|
||||
self.omschrijving = Optional(OmschrijvingRecord, 4)
|
||||
self.transactie.transactiesoort = soort
|
||||
self.transactie.rekeningnr_begunstigde = rekeningnr_begunstigde
|
||||
self.transactie.rekeningnr_betaler = rekeningnr_betaler
|
||||
self.transactie.bedrag = int(bedrag * 100)
|
||||
if referentie:
|
||||
self.betalingskenmerk.betalingskenmerk = referentie
|
||||
for oms in omschrijvingen:
|
||||
self.omschrijving.omschrijving = oms
|
||||
self.naam.naam = naam
|
||||
|
||||
class Incasso(Transactie):
|
||||
'''Direct Debit Payment transaction'''
|
||||
def __init__(self, *args, **kwargs):
|
||||
reknr = kwargs['rekeningnr_betaler']
|
||||
kwargs['soort'] = len(reknr.lstrip('0')) <= 7 and 1002 or 1001
|
||||
self.naam = NaamBetalerRecord()
|
||||
super(Incasso, self).__init__(*args, **kwargs)
|
||||
|
||||
@property
|
||||
def rawdata(self):
|
||||
'''
|
||||
Return self as writeable file content object
|
||||
'''
|
||||
items = [str(self.transactie)]
|
||||
if self.naam:
|
||||
items.append(str(self.naam))
|
||||
for kenmerk in self.betalingskenmerk:
|
||||
items.append(str(kenmerk))
|
||||
for omschrijving in self.omschrijving:
|
||||
items.append(str(omschrijving))
|
||||
return '\r\n'.join(items)
|
||||
|
||||
class Betaling(Transactie):
|
||||
'''Payment transaction'''
|
||||
def __init__(self, *args, **kwargs):
|
||||
reknr = kwargs['rekeningnr_begunstigde']
|
||||
if len(reknr.lstrip('0')) > 7:
|
||||
if not elfproef(reknr):
|
||||
raise ValueError, '%s is not a valid bank account' % reknr
|
||||
kwargs['soort'] = 5
|
||||
self.naam = NaamBegunstigdeRecord()
|
||||
super(Betaling, self).__init__(*args, **kwargs)
|
||||
|
||||
@property
|
||||
def rawdata(self):
|
||||
'''
|
||||
Return self as writeable file content object
|
||||
'''
|
||||
items = [str(self.transactie)]
|
||||
for kenmerk in self.betalingskenmerk:
|
||||
items.append(str(kenmerk))
|
||||
if self.naam:
|
||||
items.append(str(self.naam))
|
||||
for omschrijving in self.omschrijving:
|
||||
items.append(str(omschrijving))
|
||||
return '\r\n'.join(items)
|
||||
|
||||
class SalarisBetaling(Betaling):
|
||||
'''Salary Payment transaction'''
|
||||
def __init__(self, *args, **kwargs):
|
||||
reknr = kwargs['rekeningnr_begunstigde']
|
||||
kwargs['soort'] = len(reknr.lstrip('0')) <= 7 and 3 or 8
|
||||
super(SalarisBetaling, self).__init__(*args, **kwargs)
|
||||
|
||||
class Batch(object):
|
||||
'''Generic batch class'''
|
||||
transactieclass = None
|
||||
|
||||
def __init__(self, opdrachtgever, rekeningnr, verwerkingsdatum=None,
|
||||
test=True, omschrijvingen=[], transactiegroep=None,
|
||||
batchvolgnummer=1, batch_id=''
|
||||
):
|
||||
self.header = BatchHeaderRecord()
|
||||
self.vaste_omschrijving = Optional(VasteOmschrijvingRecord, 4)
|
||||
self.opdrachtgever = OpdrachtgeverRecord()
|
||||
self.footer = BatchFooterRecord()
|
||||
self.header.variantcode = batch_id and 'C' or 'B'
|
||||
self.header.transactiegroep = transactiegroep
|
||||
self.header.batchvolgnummer = batchvolgnummer
|
||||
self.header.batch_id = batch_id
|
||||
self.header.rekeningnr_opdrachtgever = rekeningnr
|
||||
self.opdrachtgever.naam_opdrachtgever = opdrachtgever
|
||||
self.opdrachtgever.gewenste_verwerkingsdatum = verwerkingsdatum
|
||||
self.opdrachtgever.NAWcode = 1
|
||||
self.opdrachtgever.testcode = test and 'T' or 'P'
|
||||
self.transacties = []
|
||||
for omschrijving in omschrijvingen:
|
||||
self.vaste_omschrijving.omschrijving = omschrijving
|
||||
|
||||
@property
|
||||
def aantal_posten(self):
|
||||
'''nr of posts'''
|
||||
return len(self.transacties)
|
||||
|
||||
@property
|
||||
def totaalbedrag(self):
|
||||
'''total amount transferred'''
|
||||
return reduce(lambda x,y: x + int(y.transactie.bedrag),
|
||||
self.transacties, 0
|
||||
)
|
||||
|
||||
@property
|
||||
def totaal_rekeningnummers(self):
|
||||
'''check number on account numbers'''
|
||||
return reduce(lambda x,y:
|
||||
x + int(y.transactie.rekeningnr_betaler) + \
|
||||
int(y.transactie.rekeningnr_begunstigde),
|
||||
self.transacties, 0
|
||||
)
|
||||
|
||||
@property
|
||||
def rawdata(self):
|
||||
'''
|
||||
Return self as writeable file content object
|
||||
'''
|
||||
self.footer.aantal_posten = self.aantal_posten
|
||||
self.footer.totaalbedrag = self.totaalbedrag
|
||||
self.footer.totaal_rekeningnummers = self.totaal_rekeningnummers
|
||||
lines = [str(self.header)]
|
||||
for oms in self.vaste_omschrijving:
|
||||
lines.append(str(oms))
|
||||
lines += [
|
||||
str(self.opdrachtgever),
|
||||
'\r\n'.join([x.rawdata for x in self.transacties]),
|
||||
str(self.footer)
|
||||
]
|
||||
return '\r\n'.join(lines)
|
||||
|
||||
def transactie(self, *args, **kwargs):
|
||||
'''generic factory method'''
|
||||
retval = self.transactieclass(*args, **kwargs)
|
||||
self.transacties.append(retval)
|
||||
return retval
|
||||
|
||||
class IncassoBatch(Batch):
|
||||
'''Direct Debig Payment batch'''
|
||||
transactieclass = Incasso
|
||||
|
||||
class BetalingsBatch(Batch):
|
||||
'''Payment batch'''
|
||||
transactieclass = Betaling
|
||||
|
||||
class SalarisBatch(Batch):
|
||||
'''Salary payment class'''
|
||||
transactieclass = SalarisBetaling
|
||||
|
||||
class ClieOpFile(object):
|
||||
'''The grand unifying class'''
|
||||
def __init__(self, identificatie='1', uitvoeringsdatum=None,
|
||||
naam_opdrachtgever='', rekeningnr_opdrachtgever='',
|
||||
test=False, **kwargs):
|
||||
self.header = HeaderRecord(id=identificatie,)
|
||||
self.footer = FooterRecord()
|
||||
self.batches = []
|
||||
self._uitvoeringsdatum = uitvoeringsdatum
|
||||
self._identificatie = identificatie
|
||||
self._naam_opdrachtgever = naam_opdrachtgever
|
||||
self._reknr_opdrachtgever = rekeningnr_opdrachtgever
|
||||
self._test = test
|
||||
|
||||
@property
|
||||
def rawdata(self):
|
||||
'''Return self as writeable file content object'''
|
||||
return '\r\n'.join(
|
||||
[str(self.header)] +
|
||||
[x.rawdata for x in self.batches] +
|
||||
[str(self.footer)]
|
||||
)
|
||||
|
||||
def batch(self, *args, **kwargs):
|
||||
'''Create batch'''
|
||||
kwargs['transactiegroep'] = self.transactiegroep
|
||||
kwargs['batchvolgnummer'] = len(self.batches) +1
|
||||
kwargs['verwerkingsdatum'] = self._uitvoeringsdatum
|
||||
kwargs['test'] = self._test
|
||||
args = (self._naam_opdrachtgever, self._reknr_opdrachtgever)
|
||||
retval = self.batchclass(*args, **kwargs)
|
||||
self.batches.append(retval)
|
||||
return retval
|
||||
|
||||
@property
|
||||
def opdracht(self):
|
||||
'''Produce an order to go with the file'''
|
||||
totaal_rekeningnummers = 0
|
||||
totaalbedrag = 0
|
||||
aantal_posten = 0
|
||||
for batch in self.batches:
|
||||
totaal_rekeningnummers += batch.totaal_rekeningnummers
|
||||
totaalbedrag += batch.totaalbedrag
|
||||
aantal_posten += batch.aantal_posten
|
||||
retval = self.opdrachtclass()
|
||||
retval.identificatie = self._identificatie
|
||||
retval.rekeningnr_opdrachtgever = self._reknr_opdrachtgever
|
||||
retval.gewenste_verwerkingsdatum = self._uitvoeringsdatum
|
||||
retval.testcode = self._test and 'T' or 'P'
|
||||
retval.totaalbedrag = totaalbedrag
|
||||
retval.aantal_posten = aantal_posten
|
||||
retval.totaal_rekeningnummers = totaal_rekeningnummers
|
||||
return retval
|
||||
|
||||
class IncassoFile(ClieOpFile):
|
||||
'''Direct Debit Payments file'''
|
||||
transactiegroep = '10'
|
||||
batchclass = IncassoBatch
|
||||
opdrachtclass = IncassoOpdracht
|
||||
|
||||
class BetalingsFile(ClieOpFile):
|
||||
'''Payments file'''
|
||||
transactiegroep = '00'
|
||||
batchclass = BetalingsBatch
|
||||
opdrachtclass = BetalingsOpdracht
|
||||
|
||||
class SalarisFile(BetalingsFile):
|
||||
'''Salary Payments file'''
|
||||
batchclass = SalarisBatch
|
||||
opdrachtclass = SalarisbetalingsOpdracht
|
||||
|
||||
# vim:expandtab:smartindent:tabstop=4:softtabstop=4:shiftwidth=4:
|
||||
|
||||
373
account_banking_nl_clieop/wizard/export_clieop.py
Normal file
373
account_banking_nl_clieop/wizard/export_clieop.py
Normal file
@@ -0,0 +1,373 @@
|
||||
# -*- encoding: utf-8 -*-
|
||||
##############################################################################
|
||||
#
|
||||
# Copyright (C) 2009 EduSense BV (<http://www.edusense.nl>).
|
||||
# All Rights Reserved
|
||||
#
|
||||
# This program is free software: you can redistribute it and/or modify
|
||||
# it under the terms of the GNU General Public License as published by
|
||||
# the Free Software Foundation, either version 3 of the License, or
|
||||
# (at your option) any later version.
|
||||
#
|
||||
# This program is distributed in the hope that it will be useful,
|
||||
# but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||
# GNU General Public License for more details.
|
||||
#
|
||||
# You should have received a copy of the GNU General Public License
|
||||
# along with this program. If not, see <http://www.gnu.org/licenses/>.
|
||||
#
|
||||
##############################################################################
|
||||
|
||||
import wizard
|
||||
import pooler
|
||||
import base64
|
||||
#from osv import osv
|
||||
from tools.translate import _
|
||||
from datetime import datetime, date, timedelta
|
||||
#import pdb; pdb.set_trace()
|
||||
import clieop
|
||||
|
||||
form = '''<?xml version="1.0"?>
|
||||
<form string="Client Opdrachten Export">
|
||||
<separator colspan="4" string="Processing Details" />
|
||||
<field name="batchtype" />
|
||||
<field name="execution_date" />
|
||||
<field name="test" />
|
||||
<separator colspan="4" string="Reference for further communication" />
|
||||
<field name="reference" colspan="2" />
|
||||
<separator colspan="4" string="Additional message for all transactions" />
|
||||
<field name="fixed_message" />
|
||||
</form>'''
|
||||
|
||||
fields = {
|
||||
'reference' : {
|
||||
'string': 'Reference',
|
||||
'type': 'char',
|
||||
'size': 5,
|
||||
'required': False,
|
||||
'help': ('The bank will use this reference in feedback communication '
|
||||
'to refer to this run. Only five characters are available.'
|
||||
)
|
||||
},
|
||||
'batchtype': {
|
||||
'string': 'Type',
|
||||
'type': 'selection',
|
||||
'selection': [
|
||||
('CLIEOPPAY', 'Payments'),
|
||||
('CLIEOPSAL', 'Salary Payments'),
|
||||
('CLIEOPINC', 'Direct Debits'),
|
||||
],
|
||||
'readonly': True,
|
||||
},
|
||||
'execution_date': {
|
||||
'string': 'Execution Date',
|
||||
'type': 'date',
|
||||
'required': False,
|
||||
'help': ('This is the date the file should be processed by the bank. '
|
||||
'Don\'t choose a date beyond the nearest date in your '
|
||||
'payments. The latest allowed date is 30 days from now.\n'
|
||||
'Please keep in mind that banks only execute on working days '
|
||||
'and typically use a delay of two days between execution date '
|
||||
'and effective transfer date.'
|
||||
),
|
||||
},
|
||||
'test': {
|
||||
'string': 'Test Run',
|
||||
'type': 'boolean',
|
||||
'required': True,
|
||||
'default': True,
|
||||
'help': ('Select this if you want your bank to run a test process '
|
||||
'rather then execute your orders for real.'
|
||||
)
|
||||
},
|
||||
'fixed_message': {
|
||||
'string': 'Fixed Message',
|
||||
'type': 'char',
|
||||
'size': 32,
|
||||
'required': False,
|
||||
'default': '',
|
||||
'help': ('A fixed message to apply to all transactions in addition to '
|
||||
'the individual messages.'
|
||||
),
|
||||
},
|
||||
}
|
||||
|
||||
file_form = '''<?xml version="1.0"?>
|
||||
<form string="Client Opdrachten Export">
|
||||
<field name="filetype" />
|
||||
<field name="identification" />
|
||||
<field name="total_amount" />
|
||||
<field name="check_no_accounts" />
|
||||
<field name="no_transactions" />
|
||||
<field name="prefered_date" />
|
||||
<field name="testcode" />
|
||||
<field name="file" />
|
||||
<field name="log" colspan="4" nolabel="1" />
|
||||
</form>'''
|
||||
|
||||
file_fields = {
|
||||
'testcode': {
|
||||
'string': 'Test Run',
|
||||
'type': 'selection',
|
||||
'selection': [('T', _('Yes')), ('P', _('No'))],
|
||||
'required': False,
|
||||
'readonly': True,
|
||||
},
|
||||
'prefered_date': {
|
||||
'string': 'Prefered Processing Date',
|
||||
'type': 'date',
|
||||
'required': False,
|
||||
'readonly': True,
|
||||
},
|
||||
'no_transactions': {
|
||||
'string': 'Number of Transactions',
|
||||
'type': 'int',
|
||||
'required': False,
|
||||
'readonly': True,
|
||||
},
|
||||
'check_no_accounts': {
|
||||
'string': 'Check Number Accounts',
|
||||
'type': 'char',
|
||||
'size': 5,
|
||||
'required': False,
|
||||
'readonly': True,
|
||||
},
|
||||
'total_amount': {
|
||||
'string': 'Total Amount',
|
||||
'type': 'float',
|
||||
'required': False,
|
||||
'readonly': True,
|
||||
},
|
||||
'identification': {
|
||||
'string': 'Identification',
|
||||
'type': 'char',
|
||||
'size': 6,
|
||||
'required': False,
|
||||
'readonly': True,
|
||||
},
|
||||
'filetype': {
|
||||
'string': 'File Type',
|
||||
'type': 'selection',
|
||||
'selection': [
|
||||
('CREDBET', 'Payment Batch'),
|
||||
('SALARIS', 'Salary Payment Batch'),
|
||||
('INCASSO', 'Direct Debit Batch'),
|
||||
],
|
||||
'required': False,
|
||||
'readonly': True,
|
||||
},
|
||||
'file': {
|
||||
'string': 'ClieOp File',
|
||||
'type': 'binary',
|
||||
'required': False,
|
||||
'readonly': True,
|
||||
},
|
||||
'log': {
|
||||
'string': 'Log',
|
||||
'type': 'text',
|
||||
'readonly': True,
|
||||
},
|
||||
}
|
||||
|
||||
def strpdate(arg, format='%Y-%m-%d'):
|
||||
'''shortcut'''
|
||||
return datetime.strptime(arg, format).date()
|
||||
|
||||
def strfdate(arg, format='%Y-%m-%d'):
|
||||
'''shortcut'''
|
||||
return arg.strftime(format)
|
||||
|
||||
def _check_orders(self, cursor, uid, data, context):
|
||||
'''
|
||||
Check payment type for all orders.
|
||||
|
||||
Combine orders into one. All parameters harvested by the wizard
|
||||
will apply to all orders. This will in effect create one super
|
||||
batch for ClieOp, instead of creating individual parameterized
|
||||
batches. As only large companies are likely to need the individual
|
||||
settings per batch, this will do for now.
|
||||
'''
|
||||
form = data['form']
|
||||
today = date.today()
|
||||
pool = pooler.get_pool(cursor.dbname)
|
||||
payment_order_obj = pool.get('payment.order')
|
||||
|
||||
runs = {}
|
||||
# Only orders of same type can be combined
|
||||
payment_orders = payment_order_obj.browse(cursor, uid, data['ids'])
|
||||
for payment_order in payment_orders:
|
||||
|
||||
payment_type = payment_order.mode.type.code
|
||||
if payment_type in runs:
|
||||
runs[payment_type].append(payment_order)
|
||||
else:
|
||||
runs[payment_type] = [payment_order]
|
||||
|
||||
if payment_order.date_prefered == 'fixed':
|
||||
if payment_order.date_planned:
|
||||
execution_date = strpdate(payment_order.date_planned)
|
||||
else:
|
||||
execution_date = today
|
||||
elif payment_order.date_prefered == 'now':
|
||||
execution_date = today
|
||||
elif payment_order.date_prefered == 'due':
|
||||
# Max processing date is 30 days past now, so limiting beyond that
|
||||
# will catch too early payments
|
||||
max_date = execution_date = today + timedelta(days=31)
|
||||
for line in payment_order.line_ids:
|
||||
if line.move_line_id.date_maturity:
|
||||
date_maturity = strpdate(line.move_line_id.date_maturity)
|
||||
if date_maturity < execution_date:
|
||||
execution_date = date_maturity
|
||||
else:
|
||||
execution_date = today
|
||||
if execution_date and execution_date >= max_date:
|
||||
raise wizard.except_wizard(
|
||||
_('Error'),
|
||||
_('You can\'t create ClieOp orders more than 30 days in advance.')
|
||||
)
|
||||
# Sanity check: can't process in the past
|
||||
form['execution_date'] = strfdate(max(execution_date, today))
|
||||
|
||||
if len(runs) != 1:
|
||||
raise wizard.except_wizard(
|
||||
_('Error'),
|
||||
_('You can only combine payment orders of the same type')
|
||||
)
|
||||
|
||||
form['batchtype'] = type = runs.keys()[0]
|
||||
form['reference'] = runs[type][0].reference[-5:]
|
||||
return form
|
||||
|
||||
def _create_clieop(self, cursor, uid, data, context):
|
||||
'''
|
||||
Wizard to actually create the ClieOp3 file
|
||||
'''
|
||||
pool = pooler.get_pool(cursor.dbname)
|
||||
payment_order_obj = pool.get('payment.order')
|
||||
form = data['form']
|
||||
|
||||
clieopfile = None
|
||||
payment_orders = payment_order_obj.browse(cursor, uid, data['ids'])
|
||||
for payment_order in payment_orders:
|
||||
if not clieopfile:
|
||||
our_account_owner = payment_order.mode.bank_id.owner_name
|
||||
our_account_nr = payment_order.mode.bank_id.acc_number
|
||||
clieopfile = {'CLIEOPPAY': clieop.BetalingsFile,
|
||||
'CLIEOPINC': clieop.IncassoFile,
|
||||
'CLIEOPSAL': clieop.SalarisFile,
|
||||
}[form['batchtype']](
|
||||
identificatie = form['reference'],
|
||||
uitvoeringsdatum = form['execution_date'],
|
||||
naam_opdrachtgever = our_account_owner,
|
||||
rekeningnr_opdrachtgever = our_account_nr,
|
||||
test = form['test']
|
||||
)
|
||||
|
||||
if form['fixed_message']:
|
||||
omschrijvingen = [form['fixed_message']]
|
||||
else:
|
||||
omschrijvingen = []
|
||||
batch = clieopfile.batch(
|
||||
#our_account_owner,
|
||||
#our_account_nr,
|
||||
#verwerkingsdatum = strpdate(form['execution_date']),
|
||||
#test = form['test'],
|
||||
omschrijvingen = omschrijvingen,
|
||||
batch_id = payment_order.reference
|
||||
)
|
||||
for line in payment_order.line_ids:
|
||||
kwargs = dict(
|
||||
naam = line.bank_id.owner_name,
|
||||
bedrag = line.amount_currency,
|
||||
referentie = line.communication or None,
|
||||
)
|
||||
if line.communication2:
|
||||
kwargs['omschrijvingen'] = [line.communication2]
|
||||
if form['batchtype'] in ['CLIEOPPAY', 'CLIEOPSAL']:
|
||||
kwargs['rekeningnr_begunstigde'] = line.bank_id.acc_number
|
||||
kwargs['rekeningnr_betaler'] = our_account_nr
|
||||
else:
|
||||
kwargs['rekeningnr_begunstigde'] = our_account_nr
|
||||
kwargs['rekeningnr_betaler'] = line.bank_id.acc_number
|
||||
transaction = batch.transactie(**kwargs)
|
||||
|
||||
opdracht = clieopfile.opdracht
|
||||
values = dict(
|
||||
filetype = opdracht.naam_transactiecode,
|
||||
identification = opdracht.identificatie,
|
||||
prefered_date = strfdate(opdracht.gewenste_verwerkingsdatum),
|
||||
total_amount = int(opdracht.totaalbedrag) / 100.0,
|
||||
check_no_accounts = opdracht.totaal_rekeningnummers,
|
||||
no_transactions = opdracht.aantal_posten,
|
||||
testcode = opdracht.testcode,
|
||||
file = base64.encodestring(clieopfile.rawdata),
|
||||
)
|
||||
form.update(values)
|
||||
values['daynumber'] = int(clieopfile.header.bestands_id[2:])
|
||||
values['payment_order_ids'] = ','.join(map(str, data['ids']))
|
||||
data['file_id'] = pool.get('banking.export.clieop').create(cursor, uid, values)
|
||||
data['clieop'] = clieopfile
|
||||
form['log'] = ''
|
||||
return form
|
||||
|
||||
def _cancel_clieop(self, cursor, uid, data, context):
|
||||
pool = pooler.get_pool(cursor.dbname)
|
||||
pool.get('banking.export.clieop').unlink(cursor, uid, data['file_id'])
|
||||
return {'state': 'end'}
|
||||
|
||||
def _save_clieop(self, cursor, uid, data, context):
|
||||
pool = pooler.get_pool(cursor.dbname)
|
||||
clieop_obj = pool.get('banking.export.clieop')
|
||||
payment_order_obj = pool.get('payment.order')
|
||||
clieop_file = clieop_obj.write(
|
||||
cursor, uid, data['file_id'], {'state':'sent'}
|
||||
)
|
||||
payment_order_obj.write(cursor, uid, data['ids'], {'state': 'sent'})
|
||||
return {'state': 'end'}
|
||||
|
||||
class wizard_banking_export_clieop(wizard.interface):
|
||||
states = {
|
||||
'init': {
|
||||
'actions': [_check_orders],
|
||||
'result': {
|
||||
'type': 'form',
|
||||
'arch': form,
|
||||
'fields' : fields,
|
||||
'state': [
|
||||
('end', 'Cancel', 'gtk-cancel'),
|
||||
('create', 'Create', 'gtk-ok'),
|
||||
]
|
||||
}
|
||||
},
|
||||
'create': {
|
||||
'actions': [_create_clieop],
|
||||
'result': {
|
||||
'type': 'form',
|
||||
'arch': file_form,
|
||||
'fields': file_fields,
|
||||
'state': [
|
||||
('cancel', 'Cancel', 'gtk-cancel'),
|
||||
('save', 'Save', 'gtk-save'),
|
||||
]
|
||||
},
|
||||
},
|
||||
'cancel': {
|
||||
'actions': [_cancel_clieop],
|
||||
'result': {
|
||||
'type': 'state',
|
||||
'state': 'end'
|
||||
}
|
||||
},
|
||||
'save': {
|
||||
'actions': [_save_clieop],
|
||||
'result': {
|
||||
'type': 'state',
|
||||
'state': 'end'
|
||||
},
|
||||
}
|
||||
}
|
||||
wizard_banking_export_clieop('account_banking_nl_clieop.banking_export_clieop')
|
||||
|
||||
# vim:expandtab:smartindent:tabstop=4:softtabstop=4:shiftwidth=4:
|
||||
29
account_banking_nl_multibank/__init__.py
Normal file
29
account_banking_nl_multibank/__init__.py
Normal file
@@ -0,0 +1,29 @@
|
||||
# -*- encoding: utf-8 -*-
|
||||
##############################################################################
|
||||
#
|
||||
# Copyright (C) 2009 EduSense BV (<http://www.edusense.nl>).
|
||||
# All Rights Reserved
|
||||
#
|
||||
# WARNING: This program as such is intended to be used by professional
|
||||
# programmers who take the whole responsability of assessing all potential
|
||||
# consequences resulting from its eventual inadequacies and bugs
|
||||
# End users who are looking for a ready-to-use solution with commercial
|
||||
# garantees and support are strongly adviced to contract EduSense BV
|
||||
#
|
||||
# This program is free software: you can redistribute it and/or modify
|
||||
# it under the terms of the GNU General Public License as published by
|
||||
# the Free Software Foundation, either version 3 of the License, or
|
||||
# (at your option) any later version.
|
||||
#
|
||||
# This program is distributed in the hope that it will be useful,
|
||||
# but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||
# GNU General Public License for more details.
|
||||
#
|
||||
# You should have received a copy of the GNU General Public License
|
||||
# along with this program. If not, see <http://www.gnu.org/licenses/>.
|
||||
#
|
||||
##############################################################################
|
||||
import multibank
|
||||
|
||||
# vim:expandtab:smartindent:tabstop=4:softtabstop=4:shiftwidth=4:
|
||||
46
account_banking_nl_multibank/__terp__.py
Normal file
46
account_banking_nl_multibank/__terp__.py
Normal file
@@ -0,0 +1,46 @@
|
||||
##############################################################################
|
||||
#
|
||||
# Copyright (C) 2009 EduSense BV (<http://www.edusense.nl>).
|
||||
# All Rights Reserved
|
||||
#
|
||||
# WARNING: This program as such is intended to be used by professional
|
||||
# programmers who take the whole responsability of assessing all potential
|
||||
# consequences resulting from its eventual inadequacies and bugs
|
||||
# End users who are looking for a ready-to-use solution with commercial
|
||||
# garantees and support are strongly adviced to contract EduSense BV
|
||||
#
|
||||
# This program is free software: you can redistribute it and/or modify
|
||||
# it under the terms of the GNU General Public License as published by
|
||||
# the Free Software Foundation, either version 3 of the License, or
|
||||
# (at your option) any later version.
|
||||
#
|
||||
# This program is distributed in the hope that it will be useful,
|
||||
# but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||
# GNU General Public License for more details.
|
||||
#
|
||||
# You should have received a copy of the GNU General Public License
|
||||
# along with this program. If not, see <http://www.gnu.org/licenses/>.
|
||||
#
|
||||
##############################################################################
|
||||
{
|
||||
'name': 'Account Banking',
|
||||
'version': '0.1',
|
||||
'license': 'GPL-3',
|
||||
'author': 'EduSense BV',
|
||||
'website': 'http://www.edusense.nl',
|
||||
'category': 'Account Banking',
|
||||
'depends': ['account_banking'],
|
||||
'init_xml': [],
|
||||
'update_xml': [
|
||||
#'security/ir.model.access.csv',
|
||||
],
|
||||
'demo_xml': [],
|
||||
'description': '''
|
||||
Module to import Dutch Multibank format transation files.
|
||||
|
||||
This modules contains no logic, just an import filter for account_banking.
|
||||
''',
|
||||
'active': False,
|
||||
'installable': True,
|
||||
}
|
||||
@@ -0,0 +1,48 @@
|
||||
# Translation of OpenERP Server.
|
||||
# This file contains the translation of the following modules:
|
||||
# * account_banking_nl_multibank
|
||||
#
|
||||
msgid ""
|
||||
msgstr ""
|
||||
"Project-Id-Version: OpenERP Server 5.0.7\n"
|
||||
"Report-Msgid-Bugs-To: support@openerp.com\n"
|
||||
"POT-Creation-Date: 2010-01-08 15:50:45+0000\n"
|
||||
"PO-Revision-Date: 2010-01-08 15:50:45+0000\n"
|
||||
"Last-Translator: <>\n"
|
||||
"Language-Team: \n"
|
||||
"MIME-Version: 1.0\n"
|
||||
"Content-Type: text/plain; charset=UTF-8\n"
|
||||
"Content-Transfer-Encoding: \n"
|
||||
"Plural-Forms: \n"
|
||||
|
||||
#. module: account_banking_nl_multibank
|
||||
#: code:addons/account_banking_nl_multibank/multibank.py:0
|
||||
#, python-format
|
||||
msgid "''\\n"
|
||||
"The Dutch Banking Tools format is basicly a MS Excel CSV format.\n"
|
||||
"There are two sub formats: MS Excel format and MS-Excel 2004 format.\n"
|
||||
"Both formats are covered with this parser. All transactions are tied\n"
|
||||
"to Bank Statements.\n"
|
||||
"''"
|
||||
msgstr ""
|
||||
|
||||
#. module: account_banking_nl_multibank
|
||||
#: model:ir.module.module,shortdesc:account_banking_nl_multibank.module_meta_information
|
||||
msgid "Account Banking"
|
||||
msgstr ""
|
||||
|
||||
#. module: account_banking_nl_multibank
|
||||
#: model:ir.module.module,description:account_banking_nl_multibank.module_meta_information
|
||||
msgid "\n"
|
||||
" Module to import Dutch Multibank format transation files.\n"
|
||||
"\n"
|
||||
" This modules contains no logic, just an import filter for account_banking.\n"
|
||||
" "
|
||||
msgstr ""
|
||||
|
||||
#. module: account_banking_nl_multibank
|
||||
#: code:addons/account_banking_nl_multibank/multibank.py:0
|
||||
#, python-format
|
||||
msgid "Dutch Banking Tools"
|
||||
msgstr ""
|
||||
|
||||
48
account_banking_nl_multibank/i18n/en_US.po
Normal file
48
account_banking_nl_multibank/i18n/en_US.po
Normal file
@@ -0,0 +1,48 @@
|
||||
# Translation of OpenERP Server.
|
||||
# This file contains the translation of the following modules:
|
||||
# * account_banking_nl_multibank
|
||||
#
|
||||
msgid ""
|
||||
msgstr ""
|
||||
"Project-Id-Version: OpenERP Server 5.0.7\n"
|
||||
"Report-Msgid-Bugs-To: support@openerp.com\n"
|
||||
"POT-Creation-Date: 2010-01-08 15:50:45+0000\n"
|
||||
"PO-Revision-Date: 2010-01-08 15:50:45+0000\n"
|
||||
"Last-Translator: <>\n"
|
||||
"Language-Team: \n"
|
||||
"MIME-Version: 1.0\n"
|
||||
"Content-Type: text/plain; charset=UTF-8\n"
|
||||
"Content-Transfer-Encoding: \n"
|
||||
"Plural-Forms: \n"
|
||||
|
||||
#. module: account_banking_nl_multibank
|
||||
#: code:addons/account_banking_nl_multibank/multibank.py:0
|
||||
#, python-format
|
||||
msgid "''\\n"
|
||||
"The Dutch Banking Tools format is basicly a MS Excel CSV format.\n"
|
||||
"There are two sub formats: MS Excel format and MS-Excel 2004 format.\n"
|
||||
"Both formats are covered with this parser. All transactions are tied\n"
|
||||
"to Bank Statements.\n"
|
||||
"''"
|
||||
msgstr ""
|
||||
|
||||
#. module: account_banking_nl_multibank
|
||||
#: model:ir.module.module,shortdesc:account_banking_nl_multibank.module_meta_information
|
||||
msgid "Account Banking"
|
||||
msgstr ""
|
||||
|
||||
#. module: account_banking_nl_multibank
|
||||
#: model:ir.module.module,description:account_banking_nl_multibank.module_meta_information
|
||||
msgid "\n"
|
||||
" Module to import Dutch Multibank format transation files.\n"
|
||||
"\n"
|
||||
" This modules contains no logic, just an import filter for account_banking.\n"
|
||||
" "
|
||||
msgstr ""
|
||||
|
||||
#. module: account_banking_nl_multibank
|
||||
#: code:addons/account_banking_nl_multibank/multibank.py:0
|
||||
#, python-format
|
||||
msgid "Dutch Banking Tools"
|
||||
msgstr ""
|
||||
|
||||
56
account_banking_nl_multibank/i18n/nl_NL.po
Normal file
56
account_banking_nl_multibank/i18n/nl_NL.po
Normal file
@@ -0,0 +1,56 @@
|
||||
# Translation of OpenERP Server.
|
||||
# This file contains the translation of the following modules:
|
||||
# * account_banking_nl_multibank
|
||||
#
|
||||
msgid ""
|
||||
msgstr ""
|
||||
"Project-Id-Version: OpenERP Server 5.0.7\n"
|
||||
"Report-Msgid-Bugs-To: support@openerp.com\n"
|
||||
"POT-Creation-Date: 2010-01-08 14:52:29+0000\n"
|
||||
"PO-Revision-Date: 2010-01-08 14:52:29+0000\n"
|
||||
"Last-Translator: <p.j.kersten@edusense.nl>\n"
|
||||
"Language-Team: \n"
|
||||
"MIME-Version: 1.0\n"
|
||||
"Content-Type: text/plain; charset=UTF-8\n"
|
||||
"Content-Transfer-Encoding: \n"
|
||||
"Plural-Forms: \n"
|
||||
|
||||
#. module: account_banking_nl_multibank
|
||||
#: code:addons/account_banking_nl_multibank/multibank.py:0
|
||||
#, python-format
|
||||
msgid "''\\n"
|
||||
"The Dutch Banking Tools format is basicly a MS Excel CSV format.\n"
|
||||
"There are two sub formats: MS Excel format and MS-Excel 2004 format.\n"
|
||||
"Both formats are covered with this parser. All transactions are tied\n"
|
||||
"to Bank Statements.\n"
|
||||
"''"
|
||||
msgstr "''\\n"
|
||||
"Het Nederlands MultiBank-formaat is in essentie een MS-Excel CSV-bestand.\n"
|
||||
"Er zijn twee varianten: MS-Excel en MS-Excel 2004. Beide formaten worden\n"
|
||||
"door deze parser herkend. Alle transacties zijn gebonden aan bankafschriften.\n"
|
||||
""
|
||||
|
||||
#. module: account_banking_nl_multibank
|
||||
#: model:ir.module.module,shortdesc:account_banking_nl_multibank.module_meta_information
|
||||
msgid "Account Banking"
|
||||
msgstr "Account Banking"
|
||||
|
||||
#. module: account_banking_nl_multibank
|
||||
#: model:ir.module.module,description:account_banking_nl_multibank.module_meta_information
|
||||
msgid "\n"
|
||||
" Module to import Dutch Multibank format transation files.\n"
|
||||
"\n"
|
||||
" This modules contains no logic, just an import filter for account_banking.\n"
|
||||
" "
|
||||
msgstr "\n"
|
||||
" Module voor het importeren van Nederlandse MultiBank-formaat transatiebestanden.\n"
|
||||
"\n"
|
||||
" Deze module bevat geen logica, maar slechts het importfilter voor account_banking.\n"
|
||||
" "
|
||||
|
||||
#. module: account_banking_nl_multibank
|
||||
#: code:addons/account_banking_nl_multibank/multibank.py:0
|
||||
#, python-format
|
||||
msgid "Dutch Banking Tools"
|
||||
msgstr "Nederlands MultiBank-formaat"
|
||||
|
||||
184
account_banking_nl_multibank/multibank.py
Normal file
184
account_banking_nl_multibank/multibank.py
Normal file
@@ -0,0 +1,184 @@
|
||||
# -*- encoding: utf-8 -*-
|
||||
##############################################################################
|
||||
#
|
||||
# Copyright (C) 2009 EduSense BV (<http://www.edusense.nl>).
|
||||
# All Rights Reserved
|
||||
#
|
||||
# This program is free software: you can redistribute it and/or modify
|
||||
# it under the terms of the GNU General Public License as published by
|
||||
# the Free Software Foundation, either version 3 of the License, or
|
||||
# (at your option) any later version.
|
||||
#
|
||||
# This program is distributed in the hope that it will be useful,
|
||||
# but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||
# GNU General Public License for more details.
|
||||
#
|
||||
# You should have received a copy of the GNU General Public License
|
||||
# along with this program. If not, see <http://www.gnu.org/licenses/>.
|
||||
#
|
||||
##############################################################################
|
||||
|
||||
'''
|
||||
This parser follows the Dutch Banking Tools specifications which are
|
||||
empirically recreated in this module.
|
||||
|
||||
Dutch Banking Tools uses the concept of 'Afschrift' or Bank Statement.
|
||||
Every transaction is bound to a Bank Statement. As such, this module generates
|
||||
Bank Statements along with Bank Transactions.
|
||||
'''
|
||||
from account_banking.parsers import models
|
||||
from account_banking.parsers.convert import str2date
|
||||
from tools.translate import _
|
||||
import csv
|
||||
|
||||
__all__ = ['parser']
|
||||
|
||||
class transaction_message(object):
|
||||
'''
|
||||
A auxiliary class to validate and coerce read values
|
||||
'''
|
||||
attrnames = [
|
||||
'date', 'local_account', 'remote_account', 'remote_owner', 'u1', 'u2',
|
||||
'u3', 'local_currency', 'start_balance', 'remote_currency',
|
||||
'transferred_amount', 'execution_date', 'effective_date', 'nr1',
|
||||
'transfer_type', 'nr2', 'reference', 'message', 'statement_id'
|
||||
]
|
||||
|
||||
@staticmethod
|
||||
def clean_account(accountno):
|
||||
'''
|
||||
There seems to be some SEPA movement in data: account numbers
|
||||
get prefixed by zeroes as in BBAN. Convert those to 'old' local
|
||||
account numbers
|
||||
|
||||
Edit: All account number now follow the BBAN scheme. As SNS Bank,
|
||||
from which this module was re-engineered, follows the Dutch
|
||||
Banking Tools regulations, it is considered to be used by all banks
|
||||
in the Netherlands which comply to it. If not, please notify us.
|
||||
'''
|
||||
if len(accountno) == 10: # Invalid: longest number is 9
|
||||
accountno = accountno[1:]
|
||||
# 9-scheme or 7-scheme?
|
||||
stripped = accountno.lstrip('0')
|
||||
if len(stripped) <= 7:
|
||||
accountno = stripped
|
||||
return accountno
|
||||
|
||||
def __init__(self, values):
|
||||
'''
|
||||
Initialize own dict with attributes and coerce values to right type
|
||||
'''
|
||||
self.__dict__.update(dict(zip(self.attrnames, values)))
|
||||
#self.local_account = self.clean_account(self.local_account)
|
||||
#self.remote_account = self.clean_account(self.remote_account)
|
||||
self.start_balance = float(self.start_balance)
|
||||
self.transferred_amount = float(self.transferred_amount)
|
||||
self.execution_date = str2date(self.execution_date, '%d-%m-%Y')
|
||||
self.effective_date = str2date(self.effective_date, '%d-%m-%Y')
|
||||
|
||||
class transaction(models.mem_bank_transaction):
|
||||
'''
|
||||
Implementation of transaction communication class for account_banking.
|
||||
'''
|
||||
attrnames = ['remote_account', 'remote_currency', 'transferred_amount',
|
||||
'execution_date', 'effective_date', 'transfer_type',
|
||||
'reference', 'message'
|
||||
]
|
||||
|
||||
def __init__(self, line, *args, **kwargs):
|
||||
'''
|
||||
Initialize own dict with read values.
|
||||
'''
|
||||
super(transaction, self).__init__(*args, **kwargs)
|
||||
for attr in self.attrnames:
|
||||
setattr(self, attr, getattr(line, attr))
|
||||
|
||||
def is_valid(self):
|
||||
'''
|
||||
There are a few situations that can be signaled as 'invalid' but are
|
||||
valid nontheless:
|
||||
1. Transfers from one account to another under the same account holder
|
||||
get not always a remote_account and remote_owner. They have their
|
||||
transfer_type set to 'PRV'.
|
||||
2. Invoices from the bank itself are communicated through statements.
|
||||
These too have no remote_account and no remote_owner. They have a
|
||||
transfer_type set to 'KST'.
|
||||
3. Transfers sent through the 'International Transfers' system get
|
||||
their feedback rerouted through a statement, which is not designed to
|
||||
hold the extra fields needed. These transfers have their transfer_type
|
||||
set to 'BTL'.
|
||||
4. Cash payments with debit cards are not seen as a transfer between
|
||||
accounts, but as a cash withdrawal. These withdrawals have their
|
||||
transfer_type set to 'BEA'.
|
||||
5. Cash withdrawals from banks are too not seen as a transfer between
|
||||
two accounts - the cash exits the banking system. These withdrawals
|
||||
have their transfer_type set to 'OPN'.
|
||||
'''
|
||||
return (self.transferred_amount and self.execution_date and
|
||||
self.effective_date) and (
|
||||
self.remote_account or
|
||||
self.transfer_type in [
|
||||
'KST', 'PRV', 'BTL', 'BEA', 'OPN'
|
||||
])
|
||||
|
||||
class statement(models.mem_bank_statement):
|
||||
'''
|
||||
Implementation of bank_statement communication class of account_banking
|
||||
'''
|
||||
def __init__(self, msg, *args, **kwargs):
|
||||
'''
|
||||
Set decent start values based on first transaction read
|
||||
'''
|
||||
super(statement, self).__init__(*args, **kwargs)
|
||||
self.id = msg.statement_id
|
||||
self.local_account = msg.local_account
|
||||
self.date = str2date(msg.date, '%d-%m-%Y')
|
||||
self.start_balance = self.end_balance = msg.start_balance
|
||||
self.import_transaction(msg)
|
||||
|
||||
def import_transaction(self, msg):
|
||||
'''
|
||||
Import a transaction and keep some house holding in the mean time.
|
||||
'''
|
||||
trans = transaction(msg)
|
||||
self.end_balance += trans.transferred_amount
|
||||
self.transactions.append(trans)
|
||||
|
||||
class parser(models.parser):
|
||||
code = 'NLBT'
|
||||
name = _('Dutch Banking Tools')
|
||||
doc = _('''\
|
||||
The Dutch Banking Tools format is basicly a MS Excel CSV format.
|
||||
There are two sub formats: MS Excel format and MS-Excel 2004 format.
|
||||
Both formats are covered with this parser. All transactions are tied
|
||||
to Bank Statements.
|
||||
''')
|
||||
|
||||
def parse(self, data):
|
||||
result = []
|
||||
stmnt = None
|
||||
dialect = csv.excel()
|
||||
dialect.quotechar = '"'
|
||||
dialect.delimiter = ';'
|
||||
lines = data.split('\n')
|
||||
# Probe first record to find out which format we are parsing.
|
||||
if lines and lines[0].count(',') > lines[0].count(';'):
|
||||
dialect.delimiter = ','
|
||||
dialect.quotechar = "'"
|
||||
for line in csv.reader(lines, dialect=dialect):
|
||||
# Skip empty (last) lines
|
||||
if not line:
|
||||
continue
|
||||
msg = transaction_message(line)
|
||||
if stmnt and stmnt.id != msg.statement_id:
|
||||
result.append(stmnt)
|
||||
stmnt = None
|
||||
if not stmnt:
|
||||
stmnt = statement(msg)
|
||||
else:
|
||||
stmnt.import_transaction(msg)
|
||||
result.append(stmnt)
|
||||
return result
|
||||
|
||||
# vim:expandtab:smartindent:tabstop=4:softtabstop=4:shiftwidth=4:
|
||||
Reference in New Issue
Block a user