mirror of
https://github.com/OCA/bank-payment.git
synced 2025-02-02 10:37:31 +02:00
[FIX] Fix travis issues (#350)
- coding header and manifesto version. - Further improved travis passability. - Replace tabs with spaces in XML. - Long live vim :retab! - Ever more and more travis compatibility.
This commit is contained in:
committed by
Pedro M. Baeza
parent
57afbbcf1c
commit
d42bd38d63
@@ -219,7 +219,6 @@ class account_banking_account_settings(orm.Model):
|
||||
'default_credit_account_id': _default_credit_account_id,
|
||||
'partner_bank_id': _default_partner_bank_id,
|
||||
}
|
||||
account_banking_account_settings()
|
||||
|
||||
|
||||
class account_banking_imported_file(orm.Model):
|
||||
@@ -286,7 +285,6 @@ class account_banking_imported_file(orm.Model):
|
||||
'date': fields.date.context_today,
|
||||
'user_id': lambda self, cr, uid, context: uid,
|
||||
}
|
||||
account_banking_imported_file()
|
||||
|
||||
|
||||
class account_bank_statement(orm.Model):
|
||||
|
||||
@@ -1,22 +0,0 @@
|
||||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<openerp>
|
||||
<data noupdate="1">
|
||||
<record model="res.partner" id="partner_demo1">
|
||||
<field name="name">Tiny S.p.r.l</field>
|
||||
</record>
|
||||
<record model="res.partner.bank" id="partner_bank1">
|
||||
<field name="acc_number">301915554082</field>
|
||||
<field name="state">bank</field>
|
||||
<field name="partner_id" ref="partner_demo1"></field>
|
||||
</record>
|
||||
|
||||
<record model="res.partner" id="partner_demo2">
|
||||
<field name="name">The-design Company</field>
|
||||
</record>
|
||||
<record model="res.partner.bank" id="partner_bank2">
|
||||
<field name="acc_number">050000000017</field>
|
||||
<field name="state">iban</field>
|
||||
<field name="partner_id" ref="partner_demo2"></field>
|
||||
</record>
|
||||
</data>
|
||||
</openerp>
|
||||
@@ -393,7 +393,7 @@
|
||||
</field>
|
||||
</record>
|
||||
|
||||
<!-- search view for bank statement lines -->
|
||||
<!-- search view for bank statement lines -->
|
||||
<record id="view_account_bank_statement_line_search" model="ir.ui.view">
|
||||
<field name="name">account.bank.statement.line.search</field>
|
||||
<field name="model">account.bank.statement.line</field>
|
||||
@@ -433,8 +433,8 @@
|
||||
<field name="search_view_id" ref="view_account_bank_statement_line_search"/>
|
||||
</record>
|
||||
<menuitem string="Bank Transactions"
|
||||
action="action_bank_statement_line_tree"
|
||||
id="menu_bank_statement_line_tree"
|
||||
parent="account.menu_finance_bank_and_cash" sequence="8"/>
|
||||
action="action_bank_statement_line_tree"
|
||||
id="menu_bank_statement_line_tree"
|
||||
parent="account.menu_finance_bank_and_cash" sequence="8"/>
|
||||
</data>
|
||||
</openerp>
|
||||
|
||||
@@ -29,9 +29,9 @@ from openerp.osv import orm, fields
|
||||
from openerp import netsvc
|
||||
from openerp.tools.translate import _
|
||||
from openerp.addons.decimal_precision import decimal_precision as dp
|
||||
from openerp.addons.account_banking.parsers import models
|
||||
from openerp.addons.account_banking.parsers import convert
|
||||
from openerp.addons.account_banking.wizard import banktools
|
||||
from .parsers import models
|
||||
from .parsers import convert
|
||||
from .wizard import banktools
|
||||
|
||||
bt = models.mem_bank_transaction
|
||||
|
||||
|
||||
@@ -43,14 +43,15 @@ def date2date(datestr, fromfmt='%d/%m/%y', tofmt='%Y-%m-%d'):
|
||||
'''
|
||||
return date2str(str2date(datestr, fromfmt), tofmt)
|
||||
|
||||
_SWIFT = ("abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789"
|
||||
"/-?:().,'+ ")
|
||||
|
||||
|
||||
def to_swift(astr, schemes=('utf-8', 'latin-1', 'ascii')):
|
||||
'''
|
||||
Reduce a string to SWIFT format
|
||||
'''
|
||||
_SWIFT = (
|
||||
"abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789"
|
||||
"/-?:().,'+ "
|
||||
)
|
||||
if not isinstance(astr, unicode):
|
||||
for scheme in schemes:
|
||||
try:
|
||||
|
||||
@@ -1,4 +1,4 @@
|
||||
# coding: utf-8
|
||||
# -*- coding: utf-8 -*-
|
||||
##############################################################################
|
||||
#
|
||||
# Copyright (C) 2009 EduSense BV (<http://www.edusense.nl>).
|
||||
@@ -262,7 +262,7 @@ class mem_bank_transaction(object):
|
||||
setattr(self, attr, '')
|
||||
self.remote_owner_address = []
|
||||
|
||||
def copy(self): # noqa: W8106
|
||||
def copy(self): # pylint: disable=W8106
|
||||
'''
|
||||
Return a copy of self
|
||||
'''
|
||||
|
||||
@@ -19,7 +19,7 @@
|
||||
#
|
||||
##############################################################################
|
||||
from openerp.osv import orm
|
||||
from openerp.addons.account_banking import sepa
|
||||
from . import sepa
|
||||
|
||||
|
||||
class ResPartnerBank(orm.Model):
|
||||
|
||||
@@ -292,7 +292,7 @@ class IBAN(str):
|
||||
|
||||
@classmethod
|
||||
def create(cls, BIC=None, countrycode=None, BBAN=None, bankcode=None,
|
||||
branchcode=None, account=None): # noqa: W8106
|
||||
branchcode=None, account=None): # pylint: disable=W8106
|
||||
'''
|
||||
Create a IBAN number from a BBAN and a country code. Optionaly create
|
||||
a BBAN from BBAN components before generation.
|
||||
|
||||
@@ -183,5 +183,6 @@ class PostalCode(object):
|
||||
return cls._formats[iso].get(str_)
|
||||
return ''
|
||||
|
||||
|
||||
get = PostalCode.get
|
||||
split = PostalCode.split
|
||||
|
||||
@@ -1,7 +1,7 @@
|
||||
/*############################################################################
|
||||
#
|
||||
# Copyright (C) 2013 Therp BV (<http://therp.nl>).
|
||||
#
|
||||
#
|
||||
# This program is free software: you can redistribute it and/or modify
|
||||
# it under the terms of the GNU Affero General Public License as
|
||||
# published by the Free Software Foundation, either version 3 of the
|
||||
@@ -16,33 +16,26 @@
|
||||
# along with this program. If not, see <http://www.gnu.org/licenses/>.
|
||||
#
|
||||
############################################################################*/
|
||||
|
||||
openerp.account_banking = function(instance)
|
||||
{
|
||||
openerp.account_banking = function(instance) {
|
||||
var _t = instance.web._t;
|
||||
instance.web.Dialog.include(
|
||||
{
|
||||
close: function()
|
||||
{
|
||||
close: function() {
|
||||
this._super.apply(this, arguments);
|
||||
if (this.dialog_title == _t("Match transaction"))
|
||||
{
|
||||
if (this.dialog_title == _t("Match transaction")) {
|
||||
// The match wizard can create or unlink a statement line
|
||||
// Force a reload of the view so that the correct lines
|
||||
// are shown.
|
||||
var parent = this.getParent();
|
||||
if (parent)
|
||||
{
|
||||
if (parent) {
|
||||
var child = this.getParent().getChildren()[0];
|
||||
if (child.views) {
|
||||
_.each(child.views, function(view)
|
||||
{
|
||||
if (view && view.controller)
|
||||
{
|
||||
view.controller.reload();
|
||||
}
|
||||
}
|
||||
);
|
||||
_.each(child.views, function(view) {
|
||||
if (view && view.controller) {
|
||||
view.controller.reload();
|
||||
}
|
||||
}
|
||||
);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
@@ -1,4 +1,4 @@
|
||||
# coding: utf-8
|
||||
# -*- coding: utf-8 -*-
|
||||
##############################################################################
|
||||
#
|
||||
# Copyright (C) 2009 EduSense BV (<http://www.edusense.nl>).
|
||||
@@ -29,19 +29,20 @@ This module contains the business logic of the wizard account_banking_import.
|
||||
The parsing is done in the parser modules. Every parser module is required to
|
||||
use parser.models as a mean of communication with the business logic.
|
||||
'''
|
||||
|
||||
import base64
|
||||
import datetime
|
||||
from StringIO import StringIO
|
||||
from zipfile import ZipFile, BadZipfile # BadZipFile in Python >= 3.2
|
||||
|
||||
from openerp.osv import orm, fields
|
||||
from openerp.tools.translate import _
|
||||
from openerp.addons.account_banking.parsers import models
|
||||
from openerp.addons.account_banking.parsers import convert
|
||||
from openerp.addons.account_banking.struct import struct
|
||||
from openerp.addons.account_banking.wizard import banktools
|
||||
from openerp.addons.decimal_precision import decimal_precision as dp
|
||||
|
||||
from ..parsers import models
|
||||
from ..parsers import convert
|
||||
from ..struct import struct
|
||||
from . import banktools
|
||||
|
||||
bt = models.mem_bank_transaction
|
||||
|
||||
# This variable is used to match supplier invoices with an invoice date after
|
||||
|
||||
@@ -20,8 +20,8 @@
|
||||
##############################################################################
|
||||
|
||||
from openerp.tools.translate import _
|
||||
from openerp.addons.account_banking import sepa
|
||||
from openerp.addons.account_banking.struct import struct
|
||||
from .. import sepa
|
||||
from ..struct import struct
|
||||
|
||||
__all__ = [
|
||||
'get_period',
|
||||
|
||||
@@ -18,11 +18,11 @@
|
||||
# along with this program. If not, see <http://www.gnu.org/licenses/>.
|
||||
#
|
||||
##############################################################################
|
||||
import ast
|
||||
|
||||
from openerp.osv import orm, fields
|
||||
from openerp.tools.translate import _
|
||||
from openerp.addons.account_banking.wizard import banktools
|
||||
import ast
|
||||
from . import banktools
|
||||
|
||||
|
||||
class link_partner(orm.TransientModel):
|
||||
|
||||
@@ -1,4 +1,4 @@
|
||||
# -*- encoding: utf-8 -*-
|
||||
# -*- coding: utf-8 -*-
|
||||
##############################################################################
|
||||
#
|
||||
# Copyright (C) 2010 Sami Haahtinen (<http://ressukka.net>).
|
||||
@@ -25,5 +25,4 @@
|
||||
# along with this program. If not, see <http://www.gnu.org/licenses/>.
|
||||
#
|
||||
##############################################################################
|
||||
|
||||
from . import patu
|
||||
|
||||
@@ -1,3 +1,4 @@
|
||||
# -*- coding: utf-8 -*-
|
||||
##############################################################################
|
||||
#
|
||||
# Copyright (C) 2010 Sami Haahtinen (<http://ressukka.net>).
|
||||
@@ -24,10 +25,9 @@
|
||||
# along with this program. If not, see <http://www.gnu.org/licenses/>.
|
||||
#
|
||||
##############################################################################
|
||||
|
||||
{
|
||||
'name': 'Account Banking PATU module',
|
||||
'version': '0.62',
|
||||
'version': '7.0.0.62.1',
|
||||
'license': 'AGPL-3',
|
||||
'author': "Sami Haahtinen,Odoo Community Association (OCA)",
|
||||
'website': 'http://ressukka.net',
|
||||
|
||||
@@ -1,5 +1,4 @@
|
||||
#!/usr/bin/env python
|
||||
# encoding: utf-8
|
||||
# -*- coding: utf-8 -*-
|
||||
"""Parser for PATU format files"""
|
||||
import re
|
||||
import datetime
|
||||
@@ -249,5 +248,6 @@ def main():
|
||||
"""
|
||||
parse_file("myinput.nda")
|
||||
|
||||
|
||||
if __name__ == '__main__':
|
||||
main()
|
||||
|
||||
@@ -1,4 +1,4 @@
|
||||
# -*- encoding: utf-8 -*-
|
||||
# -*- coding: utf-8 -*-
|
||||
##############################################################################
|
||||
#
|
||||
# Copyright (C) 2010 Sami Haahtinen (<http://ressukka.net>).
|
||||
@@ -19,14 +19,13 @@
|
||||
# along with this program. If not, see <http://www.gnu.org/licenses/>.
|
||||
#
|
||||
##############################################################################
|
||||
|
||||
"""
|
||||
This parser implements the PATU format support. PATU format is a generic format
|
||||
used by finnish banks.
|
||||
"""
|
||||
from openerp.addons.account_banking.parsers import models
|
||||
from openerp.tools.translate import _
|
||||
from openerp.addons.account_banking_fi_patu.parser import PatuParser
|
||||
from .parser import PatuParser
|
||||
|
||||
__all__ = ['Parser']
|
||||
|
||||
|
||||
@@ -1,4 +1,4 @@
|
||||
# -*- encoding: utf-8 -*-
|
||||
# -*- coding: utf-8 -*-
|
||||
##############################################################################
|
||||
#
|
||||
# French Letter of Change module for OpenERP
|
||||
|
||||
@@ -1,4 +1,4 @@
|
||||
# -*- encoding: utf-8 -*-
|
||||
# -*- coding: utf-8 -*-
|
||||
##############################################################################
|
||||
#
|
||||
# French Letter of Change module for OpenERP
|
||||
@@ -19,11 +19,10 @@
|
||||
# along with this program. If not, see <http://www.gnu.org/licenses/>.
|
||||
#
|
||||
##############################################################################
|
||||
|
||||
{
|
||||
'name': 'French Letter of Change',
|
||||
'summary': 'Create French LCR CFONB files',
|
||||
'version': '0.1',
|
||||
'version': '7.0.0.1.1',
|
||||
'license': 'AGPL-3',
|
||||
'author': "Akretion,Odoo Community Association (OCA)",
|
||||
'website': 'http://www.akretion.com',
|
||||
|
||||
@@ -1,4 +1,4 @@
|
||||
# -*- encoding: utf-8 -*-
|
||||
# -*- coding: utf-8 -*-
|
||||
##############################################################################
|
||||
#
|
||||
# French Letter of Change module for OpenERP
|
||||
|
||||
@@ -1,4 +1,4 @@
|
||||
# -*- encoding: utf-8 -*-
|
||||
# -*- coding: utf-8 -*-
|
||||
##############################################################################
|
||||
#
|
||||
# French Letter of Change module for OpenERP
|
||||
|
||||
@@ -1,4 +1,4 @@
|
||||
# -*- encoding: utf-8 -*-
|
||||
# -*- coding: utf-8 -*-
|
||||
##############################################################################
|
||||
#
|
||||
# French Letter of Change module for OpenERP
|
||||
|
||||
@@ -61,8 +61,9 @@ This module is seen as a prerequisite to support efficient Bank Account
|
||||
Statement Reconciliation found in the US and other countries.
|
||||
''',
|
||||
'category': 'Generic Modules/Accounting',
|
||||
'version': '1.4',
|
||||
'author': 'Novapoint Group LLC',
|
||||
'version': '7.0.1.4.1',
|
||||
'author': 'Novapoint Group LLC,Odoo Community Association (OCA)',
|
||||
'license': 'AGPL-3',
|
||||
'website': 'www.novapointgroup.com',
|
||||
'depends': [
|
||||
'account_cancel',
|
||||
@@ -71,11 +72,8 @@ Statement Reconciliation found in the US and other countries.
|
||||
'data': [
|
||||
'security/account_banking_make_deposit_security.xml',
|
||||
'security/ir.model.access.csv',
|
||||
|
||||
'wizard/add_deposit_items_view.xml',
|
||||
|
||||
'report/deposit_ticket.xml',
|
||||
|
||||
'views/account_move_line.xml',
|
||||
'views/deposit_method.xml',
|
||||
'views/deposit_ticket.xml',
|
||||
@@ -83,7 +81,6 @@ Statement Reconciliation found in the US and other countries.
|
||||
'demo': [
|
||||
'demo/deposit_method.xml'
|
||||
],
|
||||
'test': [],
|
||||
'active': False,
|
||||
'installable': True,
|
||||
}
|
||||
|
||||
@@ -34,6 +34,7 @@ class deposit_ticket_webkit(report_sxw.rml_parse):
|
||||
'uid': uid,
|
||||
})
|
||||
|
||||
|
||||
report_sxw.report_sxw(
|
||||
'report.deposit.ticket.webkit',
|
||||
'deposit.ticket',
|
||||
|
||||
@@ -1,4 +1,4 @@
|
||||
# -*- encoding: utf-8 -*-
|
||||
# -*- coding: utf-8 -*-
|
||||
##############################################################################
|
||||
#
|
||||
# Mandate module for openERP
|
||||
|
||||
@@ -1,4 +1,4 @@
|
||||
# -*- encoding: utf-8 -*-
|
||||
# -*- coding: utf-8 -*-
|
||||
##############################################################################
|
||||
#
|
||||
# Mandate module for openERP
|
||||
@@ -23,7 +23,7 @@
|
||||
{
|
||||
'name': 'Account Banking Mandate',
|
||||
'summary': 'Banking mandates',
|
||||
'version': '0.1',
|
||||
'version': '7.0.0.1.1',
|
||||
'license': 'AGPL-3',
|
||||
'author': "Compassion CH,Odoo Community Association (OCA)",
|
||||
'website': 'http://www.compassion.ch',
|
||||
@@ -38,7 +38,6 @@
|
||||
'data/mandate_reference_sequence.xml',
|
||||
'security/ir.model.access.csv',
|
||||
],
|
||||
'demo': [],
|
||||
'test': ['test/banking_mandate.yml'],
|
||||
'description': '''
|
||||
This module adds a generic model for banking mandates.
|
||||
|
||||
@@ -1,4 +1,4 @@
|
||||
# -*- encoding: utf-8 -*-
|
||||
# -*- coding: utf-8 -*-
|
||||
##############################################################################
|
||||
#
|
||||
# Mandate module for openERP
|
||||
|
||||
@@ -1,4 +1,4 @@
|
||||
# -*- encoding: utf-8 -*-
|
||||
# -*- coding: utf-8 -*-
|
||||
##############################################################################
|
||||
#
|
||||
# Mandate module for openERP
|
||||
@@ -160,8 +160,10 @@ class mandate(orm.Model):
|
||||
to_validate_ids = []
|
||||
for mandate in self.browse(cr, uid, ids, context=context):
|
||||
if mandate.state != 'draft':
|
||||
raise orm.except_orm('StateError',
|
||||
_('Mandate should be in draft state'))
|
||||
raise orm.except_orm(
|
||||
_('StateError'),
|
||||
_('Mandate should be in draft state')
|
||||
)
|
||||
to_validate_ids.append(mandate.id)
|
||||
self.write(
|
||||
cr, uid, to_validate_ids, {'state': 'valid'}, context=context)
|
||||
@@ -171,9 +173,10 @@ class mandate(orm.Model):
|
||||
to_cancel_ids = []
|
||||
for mandate in self.browse(cr, uid, ids, context=context):
|
||||
if mandate.state not in ('draft', 'valid'):
|
||||
raise orm.except_orm('StateError',
|
||||
_('Mandate should be in draft or valid '
|
||||
'state'))
|
||||
raise orm.except_orm(
|
||||
_('StateError'),
|
||||
_('Mandate should be in draft or valid state')
|
||||
)
|
||||
to_cancel_ids.append(mandate.id)
|
||||
self.write(
|
||||
cr, uid, to_cancel_ids, {'state': 'cancel'}, context=context)
|
||||
@@ -186,8 +189,10 @@ class mandate(orm.Model):
|
||||
to_draft_ids = []
|
||||
for mandate in self.browse(cr, uid, ids, context=context):
|
||||
if mandate.state != 'cancel':
|
||||
raise orm.except_orm('StateError',
|
||||
_('Mandate should be in cancel state'))
|
||||
raise orm.except_orm(
|
||||
_('StateError'),
|
||||
_('Mandate should be in cancel state')
|
||||
)
|
||||
to_draft_ids.append(mandate.id)
|
||||
self.write(
|
||||
cr, uid, to_draft_ids, {'state': 'draft'}, context=context)
|
||||
|
||||
@@ -1,4 +1,4 @@
|
||||
# -*- encoding: utf-8 -*-
|
||||
# -*- coding: utf-8 -*-
|
||||
##############################################################################
|
||||
#
|
||||
# Mandate module for openERP
|
||||
|
||||
@@ -1,4 +1,4 @@
|
||||
# -*- encoding: utf-8 -*-
|
||||
# -*- coding: utf-8 -*-
|
||||
##############################################################################
|
||||
#
|
||||
# Mandate module for openERP
|
||||
@@ -20,9 +20,7 @@
|
||||
# along with this program. If not, see <http://www.gnu.org/licenses/>.
|
||||
#
|
||||
##############################################################################
|
||||
|
||||
from openerp.osv import orm, fields
|
||||
from openerp.tools.translate import _
|
||||
|
||||
|
||||
class res_partner_bank(orm.Model):
|
||||
@@ -31,8 +29,9 @@ class res_partner_bank(orm.Model):
|
||||
_columns = {
|
||||
'mandate_ids': fields.one2many(
|
||||
'account.banking.mandate', 'partner_bank_id',
|
||||
_('Banking Mandates'),
|
||||
help=_('Banking mandates represents an authorization that the '
|
||||
'bank account owner gives to a company for a specific '
|
||||
'operation')),
|
||||
'Banking Mandates',
|
||||
help='Banking mandates represents an authorization that the '
|
||||
'bank account owner gives to a company for a specific '
|
||||
'operation'
|
||||
),
|
||||
}
|
||||
|
||||
@@ -1,4 +1,4 @@
|
||||
# -*- encoding: utf-8 -*-
|
||||
# -*- coding: utf-8 -*-
|
||||
##############################################################################
|
||||
#
|
||||
# Mandate module for openERP
|
||||
|
||||
@@ -6,117 +6,117 @@
|
||||
-->
|
||||
<openerp>
|
||||
<data>
|
||||
<record id="view_mandate_form" model="ir.ui.view">
|
||||
<field name="name">view.mandate.form</field>
|
||||
<field name="model">account.banking.mandate</field>
|
||||
<field name="arch" type="xml">
|
||||
<form string="Banking Mandate" version="7.0">
|
||||
<header>
|
||||
<button name="validate" type="object" string="Validate" states="draft" class="oe_highlight"/>
|
||||
<button name="cancel" type="object" string="Cancel" states="draft,valid"/>
|
||||
<button name="back2draft" type="object" string="Back to Draft"
|
||||
states="cancel" groups="account.group_account_manager"
|
||||
confirm="You should set a mandate back to draft only if you cancelled it by mistake. Do you want to continue ?"/>
|
||||
<field name="state" widget="statusbar"/>
|
||||
</header>
|
||||
<sheet>
|
||||
<div class="oe_title">
|
||||
<h1>
|
||||
<field name="unique_mandate_reference" class="oe_inline"/>
|
||||
</h1>
|
||||
</div>
|
||||
<group name="main">
|
||||
<field name="company_id" groups="base.group_multi_company"/>
|
||||
<field name="partner_bank_id"
|
||||
on_change="mandate_partner_bank_change(partner_bank_id, last_debit_date, state)"
|
||||
invisible="context.get('mandate_bank_partner_view')"
|
||||
/>
|
||||
<field name="partner_id" invisible="context.get('mandate_bank_partner_view')"/>
|
||||
<field name="signature_date"/>
|
||||
<field name="scan"/>
|
||||
<field name="last_debit_date"/>
|
||||
</group>
|
||||
<group name="payment_lines" string="Related Payment Lines">
|
||||
<field name="payment_line_ids" nolabel="1"/>
|
||||
</group>
|
||||
</sheet>
|
||||
<div class="oe_chatter">
|
||||
<field name="message_follower_ids" widget="mail_followers"/>
|
||||
<field name="message_ids" widget="mail_thread"/>
|
||||
</div>
|
||||
</form>
|
||||
</field>
|
||||
</record>
|
||||
<record id="view_mandate_form" model="ir.ui.view">
|
||||
<field name="name">view.mandate.form</field>
|
||||
<field name="model">account.banking.mandate</field>
|
||||
<field name="arch" type="xml">
|
||||
<form string="Banking Mandate" version="7.0">
|
||||
<header>
|
||||
<button name="validate" type="object" string="Validate" states="draft" class="oe_highlight"/>
|
||||
<button name="cancel" type="object" string="Cancel" states="draft,valid"/>
|
||||
<button name="back2draft" type="object" string="Back to Draft"
|
||||
states="cancel" groups="account.group_account_manager"
|
||||
confirm="You should set a mandate back to draft only if you cancelled it by mistake. Do you want to continue ?"/>
|
||||
<field name="state" widget="statusbar"/>
|
||||
</header>
|
||||
<sheet>
|
||||
<div class="oe_title">
|
||||
<h1>
|
||||
<field name="unique_mandate_reference" class="oe_inline"/>
|
||||
</h1>
|
||||
</div>
|
||||
<group name="main">
|
||||
<field name="company_id" groups="base.group_multi_company"/>
|
||||
<field name="partner_bank_id"
|
||||
on_change="mandate_partner_bank_change(partner_bank_id, last_debit_date, state)"
|
||||
invisible="context.get('mandate_bank_partner_view')"
|
||||
/>
|
||||
<field name="partner_id" invisible="context.get('mandate_bank_partner_view')"/>
|
||||
<field name="signature_date"/>
|
||||
<field name="scan"/>
|
||||
<field name="last_debit_date"/>
|
||||
</group>
|
||||
<group name="payment_lines" string="Related Payment Lines">
|
||||
<field name="payment_line_ids" nolabel="1"/>
|
||||
</group>
|
||||
</sheet>
|
||||
<div class="oe_chatter">
|
||||
<field name="message_follower_ids" widget="mail_followers"/>
|
||||
<field name="message_ids" widget="mail_thread"/>
|
||||
</div>
|
||||
</form>
|
||||
</field>
|
||||
</record>
|
||||
|
||||
<record id="view_mandate_tree" model="ir.ui.view">
|
||||
<field name="name">view.mandate.tree</field>
|
||||
<field name="model">account.banking.mandate</field>
|
||||
<field name="arch" type="xml">
|
||||
<tree string="Banking Mandate" colors="blue:state=='draft';black:state in ('expired', 'cancel')">
|
||||
<field name="company_id" groups="base.group_multi_company"/>
|
||||
<field name="partner_id" invisible="context.get('mandate_bank_partner_view')"/>
|
||||
<field name="unique_mandate_reference" string="Reference"/>
|
||||
<field name="signature_date" string="Signature Date"/>
|
||||
<field name="last_debit_date"/>
|
||||
<field name="state"/>
|
||||
</tree>
|
||||
</field>
|
||||
</record>
|
||||
<record id="view_mandate_tree" model="ir.ui.view">
|
||||
<field name="name">view.mandate.tree</field>
|
||||
<field name="model">account.banking.mandate</field>
|
||||
<field name="arch" type="xml">
|
||||
<tree string="Banking Mandate" colors="blue:state=='draft';black:state in ('expired', 'cancel')">
|
||||
<field name="company_id" groups="base.group_multi_company"/>
|
||||
<field name="partner_id" invisible="context.get('mandate_bank_partner_view')"/>
|
||||
<field name="unique_mandate_reference" string="Reference"/>
|
||||
<field name="signature_date" string="Signature Date"/>
|
||||
<field name="last_debit_date"/>
|
||||
<field name="state"/>
|
||||
</tree>
|
||||
</field>
|
||||
</record>
|
||||
|
||||
<record id="view_mandate_search" model="ir.ui.view">
|
||||
<field name="name">view.mandate.search</field>
|
||||
<field name="model">account.banking.mandate</field>
|
||||
<field name="arch" type="xml">
|
||||
<search string="Search Banking Mandates">
|
||||
<field name="partner_id"/>
|
||||
<filter name="draft" string="Draft" domain="[('state', '=', 'draft')]" />
|
||||
<filter name="valid" string="Valid" domain="[('state', '=', 'valid')]" />
|
||||
<filter name="cancel" string="Cancelled" domain="[('state', '=', 'cancel')]" />
|
||||
<filter name="expired" string="Expired" domain="[('state', '=', 'expired')]" />
|
||||
</search>
|
||||
</field>
|
||||
</record>
|
||||
|
||||
<record id="mandate_action" model="ir.actions.act_window">
|
||||
<field name="name">Banking Mandates</field>
|
||||
<field name="res_model">account.banking.mandate</field>
|
||||
<field name="view_type">form</field>
|
||||
<field name="view_mode">tree,form</field>
|
||||
<field name="help" type="html">
|
||||
<p class="oe_view_nocontent_create">
|
||||
Click to create a new Banking Mandate.
|
||||
</p><p>
|
||||
A Banking Mandate is a document signed by your customer that gives you the autorization to do one or several operations on his bank account.
|
||||
</p>
|
||||
</field>
|
||||
</record>
|
||||
<record id="view_mandate_search" model="ir.ui.view">
|
||||
<field name="name">view.mandate.search</field>
|
||||
<field name="model">account.banking.mandate</field>
|
||||
<field name="arch" type="xml">
|
||||
<search string="Search Banking Mandates">
|
||||
<field name="partner_id"/>
|
||||
<filter name="draft" string="Draft" domain="[('state', '=', 'draft')]" />
|
||||
<filter name="valid" string="Valid" domain="[('state', '=', 'valid')]" />
|
||||
<filter name="cancel" string="Cancelled" domain="[('state', '=', 'cancel')]" />
|
||||
<filter name="expired" string="Expired" domain="[('state', '=', 'expired')]" />
|
||||
</search>
|
||||
</field>
|
||||
</record>
|
||||
|
||||
<menuitem id="mandate_menu"
|
||||
parent="account_payment.menu_main_payment"
|
||||
action="mandate_action"
|
||||
sequence="20"
|
||||
/>
|
||||
<record id="mandate_action" model="ir.actions.act_window">
|
||||
<field name="name">Banking Mandates</field>
|
||||
<field name="res_model">account.banking.mandate</field>
|
||||
<field name="view_type">form</field>
|
||||
<field name="view_mode">tree,form</field>
|
||||
<field name="help" type="html">
|
||||
<p class="oe_view_nocontent_create">
|
||||
Click to create a new Banking Mandate.
|
||||
</p><p>
|
||||
A Banking Mandate is a document signed by your customer that gives you the autorization to do one or several operations on his bank account.
|
||||
</p>
|
||||
</field>
|
||||
</record>
|
||||
|
||||
<!-- notifications in the chatter -->
|
||||
<record id="mandate_valid" model="mail.message.subtype">
|
||||
<field name="name">Mandate Validated</field>
|
||||
<field name="res_model">account.banking.mandate</field>
|
||||
<field name="default" eval="False"/>
|
||||
<field name="description">Banking Mandate Validated</field>
|
||||
</record>
|
||||
<menuitem id="mandate_menu"
|
||||
parent="account_payment.menu_main_payment"
|
||||
action="mandate_action"
|
||||
sequence="20"
|
||||
/>
|
||||
|
||||
<record id="mandate_expired" model="mail.message.subtype">
|
||||
<field name="name">Mandate Expired</field>
|
||||
<field name="res_model">account.banking.mandate</field>
|
||||
<field name="default" eval="False"/>
|
||||
<field name="description">Banking Mandate has Expired</field>
|
||||
</record>
|
||||
<!-- notifications in the chatter -->
|
||||
<record id="mandate_valid" model="mail.message.subtype">
|
||||
<field name="name">Mandate Validated</field>
|
||||
<field name="res_model">account.banking.mandate</field>
|
||||
<field name="default" eval="False"/>
|
||||
<field name="description">Banking Mandate Validated</field>
|
||||
</record>
|
||||
|
||||
<record id="mandate_cancel" model="mail.message.subtype">
|
||||
<field name="name">Mandate Cancelled</field>
|
||||
<field name="res_model">account.banking.mandate</field>
|
||||
<field name="default" eval="False"/>
|
||||
<field name="description">Banking Mandate Cancelled</field>
|
||||
</record>
|
||||
<record id="mandate_expired" model="mail.message.subtype">
|
||||
<field name="name">Mandate Expired</field>
|
||||
<field name="res_model">account.banking.mandate</field>
|
||||
<field name="default" eval="False"/>
|
||||
<field name="description">Banking Mandate has Expired</field>
|
||||
</record>
|
||||
|
||||
<record id="mandate_cancel" model="mail.message.subtype">
|
||||
<field name="name">Mandate Cancelled</field>
|
||||
<field name="res_model">account.banking.mandate</field>
|
||||
<field name="default" eval="False"/>
|
||||
<field name="description">Banking Mandate Cancelled</field>
|
||||
</record>
|
||||
</data>
|
||||
</openerp>
|
||||
|
||||
@@ -1,21 +1,4 @@
|
||||
# -*- coding: utf-8 -*-
|
||||
##############################################################################
|
||||
#
|
||||
# OpenERP, Open Source Management Solution
|
||||
# This module copyright (C) 2014 Therp BV (<http://therp.nl>).
|
||||
#
|
||||
# This program is free software: you can redistribute it and/or modify
|
||||
# it under the terms of the GNU Affero General Public License as
|
||||
# published by the Free Software Foundation, either version 3 of the
|
||||
# License, or (at your option) any later version.
|
||||
#
|
||||
# This program is distributed in the hope that it will be useful,
|
||||
# but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||
# GNU Affero General Public License for more details.
|
||||
#
|
||||
# You should have received a copy of the GNU Affero General Public License
|
||||
# along with this program. If not, see <http://www.gnu.org/licenses/>.
|
||||
#
|
||||
##############################################################################
|
||||
# © 2014-2017 Therp BV <http://therp.nl>
|
||||
# License AGPL-3.0 or later (http://www.gnu.org/licenses/agpl.html).
|
||||
from . import mt940
|
||||
|
||||
@@ -1,26 +1,10 @@
|
||||
# -*- coding: utf-8 -*-
|
||||
##############################################################################
|
||||
#
|
||||
# OpenERP, Open Source Management Solution
|
||||
# This module copyright (C) 2014 Therp BV (<http://therp.nl>).
|
||||
#
|
||||
# This program is free software: you can redistribute it and/or modify
|
||||
# it under the terms of the GNU Affero General Public License as
|
||||
# published by the Free Software Foundation, either version 3 of the
|
||||
# License, or (at your option) any later version.
|
||||
#
|
||||
# This program is distributed in the hope that it will be useful,
|
||||
# but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||
# GNU Affero General Public License for more details.
|
||||
#
|
||||
# You should have received a copy of the GNU Affero General Public License
|
||||
# along with this program. If not, see <http://www.gnu.org/licenses/>.
|
||||
#
|
||||
##############################################################################
|
||||
# © 2014-2017 Therp BV <http://therp.nl>
|
||||
# License AGPL-3.0 or later (http://www.gnu.org/licenses/agpl.html).
|
||||
{
|
||||
"name": "MT940",
|
||||
"version": "1.0",
|
||||
"version": "7.0.1.0.1",
|
||||
'license': 'AGPL-3',
|
||||
"author": "Therp BV,Odoo Community Association (OCA)",
|
||||
"complexity": "expert",
|
||||
"description": """
|
||||
@@ -36,18 +20,7 @@ See account_banking_nl_ing_mt940 for an example on how to use it.
|
||||
"depends": [
|
||||
'account_banking',
|
||||
],
|
||||
"data": [
|
||||
],
|
||||
"js": [
|
||||
],
|
||||
"css": [
|
||||
],
|
||||
"qweb": [
|
||||
],
|
||||
"auto_install": False,
|
||||
"installable": True,
|
||||
"application": False,
|
||||
"external_dependencies": {
|
||||
'python': [],
|
||||
},
|
||||
}
|
||||
|
||||
@@ -1,25 +1,6 @@
|
||||
#!/usr/bin/env python2
|
||||
# -*- coding: utf-8 -*-
|
||||
##############################################################################
|
||||
#
|
||||
# OpenERP, Open Source Management Solution
|
||||
# This module copyright (C) 2014 Therp BV (<http://therp.nl>).
|
||||
#
|
||||
# This program is free software: you can redistribute it and/or modify
|
||||
# it under the terms of the GNU Affero General Public License as
|
||||
# published by the Free Software Foundation, either version 3 of the
|
||||
# License, or (at your option) any later version.
|
||||
#
|
||||
# This program is distributed in the hope that it will be useful,
|
||||
# but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||
# GNU Affero General Public License for more details.
|
||||
#
|
||||
# You should have received a copy of the GNU Affero General Public License
|
||||
# along with this program. If not, see <http://www.gnu.org/licenses/>.
|
||||
#
|
||||
##############################################################################
|
||||
|
||||
# © 2014-2017 Therp BV <http://therp.nl>
|
||||
# License AGPL-3.0 or later (http://www.gnu.org/licenses/agpl.html).
|
||||
"""
|
||||
Parser for MT940 format files
|
||||
"""
|
||||
@@ -47,7 +28,7 @@ except ImportError:
|
||||
|
||||
|
||||
class MT940(object):
|
||||
'''Inherit this class in your account_banking.parsers.models.parser,
|
||||
"""Inherit this class in your account_banking.parsers.models.parser,
|
||||
define functions to handle the tags you need to handle and adjust static
|
||||
variables as needed.
|
||||
|
||||
@@ -57,11 +38,11 @@ class MT940(object):
|
||||
At least, you should override handle_tag_61 and handle_tag_86. Don't forget
|
||||
to call super.
|
||||
handle_tag_* functions receive the remainder of the the line (that is,
|
||||
without ':XX:') and are supposed to write into self.current_transaction'''
|
||||
without ':XX:') and are supposed to write into self.current_transaction"""
|
||||
|
||||
header_lines = 3
|
||||
'''One file can contain multiple statements, each with its own poorly
|
||||
documented header. For now, the best thing to do seems to skip that'''
|
||||
"""One file can contain multiple statements, each with its own poorly
|
||||
documented header. For now, the best thing to do seems to skip that"""
|
||||
|
||||
footer_regex = '^-}$'
|
||||
footer_regex = '^-XXX$'
|
||||
@@ -111,41 +92,41 @@ class MT940(object):
|
||||
return self.statements
|
||||
|
||||
def append_continuation_line(self, cr, line, continuation_line):
|
||||
'''append a continuation line for a multiline record.
|
||||
Override and do data cleanups as necessary.'''
|
||||
"""append a continuation line for a multiline record.
|
||||
Override and do data cleanups as necessary."""
|
||||
return line + continuation_line
|
||||
|
||||
def create_statement(self, cr):
|
||||
'''create a mem_bank_statement - override if you need a custom
|
||||
implementation'''
|
||||
"""create a mem_bank_statement - override if you need a custom
|
||||
implementation"""
|
||||
return mem_bank_statement()
|
||||
|
||||
def create_transaction(self, cr):
|
||||
'''create a mem_bank_transaction - override if you need a custom
|
||||
implementation'''
|
||||
"""create a mem_bank_transaction - override if you need a custom
|
||||
implementation"""
|
||||
return mem_bank_transaction()
|
||||
|
||||
def is_footer(self, cr, line):
|
||||
'''determine if a line is the footer of a statement'''
|
||||
"""determine if a line is the footer of a statement"""
|
||||
return line and bool(re.match(self.footer_regex, line))
|
||||
|
||||
def is_tag(self, cr, line):
|
||||
'''determine if a line has a tag'''
|
||||
"""determine if a line has a tag"""
|
||||
return line and bool(re.match(self.tag_regex, line))
|
||||
|
||||
def handle_header(self, cr, line, iterator):
|
||||
'''skip header lines, create current statement'''
|
||||
"""skip header lines, create current statement"""
|
||||
for i in range(self.header_lines):
|
||||
iterator.next()
|
||||
self.current_statement = self.create_statement(cr)
|
||||
|
||||
def handle_footer(self, cr, line, iterator):
|
||||
'''add current statement to list, reset state'''
|
||||
"""add current statement to list, reset state"""
|
||||
self.statements.append(self.current_statement)
|
||||
self.current_statement = None
|
||||
|
||||
def handle_record(self, cr, line):
|
||||
'''find a function to handle the record represented by line'''
|
||||
"""find a function to handle the record represented by line"""
|
||||
tag_match = re.match(self.tag_regex, line)
|
||||
tag = tag_match.group(0).strip(':')
|
||||
if not hasattr(self, 'handle_tag_%s' % tag):
|
||||
@@ -156,20 +137,20 @@ class MT940(object):
|
||||
handler(cr, line[tag_match.end():])
|
||||
|
||||
def handle_tag_20(self, cr, data):
|
||||
'''ignore reference number'''
|
||||
"""ignore reference number"""
|
||||
pass
|
||||
|
||||
def handle_tag_25(self, cr, data):
|
||||
'''get account owner information'''
|
||||
"""get account owner information"""
|
||||
self.current_statement.local_account = data
|
||||
|
||||
def handle_tag_28C(self, cr, data):
|
||||
'''get sequence number _within_this_batch_ - this alone
|
||||
doesn't provide a unique id!'''
|
||||
"""get sequence number _within_this_batch_ - this alone
|
||||
doesn't provide a unique id!"""
|
||||
self.current_statement.id = data
|
||||
|
||||
def handle_tag_60F(self, cr, data):
|
||||
'''get start balance and currency'''
|
||||
"""get start balance and currency"""
|
||||
self.current_statement.local_currency = data[7:10]
|
||||
self.current_statement.date = str2date(data[1:7])
|
||||
self.current_statement.start_balance = \
|
||||
@@ -179,20 +160,20 @@ class MT940(object):
|
||||
self.current_statement.id)
|
||||
|
||||
def handle_tag_62F(self, cr, data):
|
||||
'''get ending balance'''
|
||||
"""get ending balance"""
|
||||
self.current_statement.end_balance = \
|
||||
(1 if data[0] == 'C' else -1) * str2float(data[10:])
|
||||
|
||||
def handle_tag_64(self, cr, data):
|
||||
'''get current balance in currency'''
|
||||
"""get current balance in currency"""
|
||||
pass
|
||||
|
||||
def handle_tag_65(self, cr, data):
|
||||
'''get future balance in currency'''
|
||||
"""get future balance in currency"""
|
||||
pass
|
||||
|
||||
def handle_tag_61(self, cr, data):
|
||||
'''get transaction values'''
|
||||
"""get transaction values"""
|
||||
transaction = self.create_transaction(cr)
|
||||
self.current_statement.transactions.append(transaction)
|
||||
self.current_transaction = transaction
|
||||
@@ -202,8 +183,8 @@ class MT940(object):
|
||||
# ...and the rest already is highly bank dependent
|
||||
|
||||
def handle_tag_86(self, cr, data):
|
||||
'''details for previous transaction, here most differences between
|
||||
banks occur'''
|
||||
"""details for previous transaction, here most differences between
|
||||
banks occur"""
|
||||
pass
|
||||
|
||||
|
||||
@@ -220,12 +201,16 @@ def main(filename):
|
||||
parser = MT940()
|
||||
parser.parse(None, open(filename, 'r').read())
|
||||
for statement in parser.statements:
|
||||
print('''statement found for %(local_account)s at %(date)s
|
||||
with %(local_currency)s%(start_balance)s to %(end_balance)s
|
||||
''' % statement.__dict__)
|
||||
print(
|
||||
"statement found for %(local_account)s at %(date)s"
|
||||
" with %(local_currency)s%(start_balance)s to %(end_balance)s" %
|
||||
statement.__dict__
|
||||
)
|
||||
for transaction in statement.transactions:
|
||||
print('''
|
||||
transaction on %(execution_date)s''' % transaction.__dict__)
|
||||
print(
|
||||
"transaction on %(execution_date)s" % transaction.__dict__
|
||||
)
|
||||
|
||||
|
||||
if __name__ == '__main__':
|
||||
import sys
|
||||
|
||||
@@ -1,3 +1,4 @@
|
||||
# -*- coding: utf-8 -*-
|
||||
##############################################################################
|
||||
#
|
||||
# Copyright (C) 2011 Therp BV (<http://therp.nl>)
|
||||
@@ -22,12 +23,11 @@
|
||||
# along with this program. If not, see <http://www.gnu.org/licenses/>.
|
||||
#
|
||||
##############################################################################
|
||||
|
||||
{
|
||||
'name': 'ING (NL) Bank Statements Import',
|
||||
'version': '0.1.140',
|
||||
'version': '7.0.0.1.141',
|
||||
'license': 'AGPL-3',
|
||||
'author': ['Smile', 'Therp BV', 'EduSense BV'],
|
||||
'author': 'Smile,Therp BV,EduSense BV,Odoo Community Association (OCA)',
|
||||
'website': 'https://launchpad.net/banking-addons',
|
||||
'category': 'Banking addons',
|
||||
'depends': ['account_banking'],
|
||||
|
||||
@@ -1,21 +1,4 @@
|
||||
# -*- coding: utf-8 -*-
|
||||
##############################################################################
|
||||
#
|
||||
# OpenERP, Open Source Management Solution
|
||||
# This module copyright (C) 2014 Therp BV (<http://therp.nl>).
|
||||
#
|
||||
# This program is free software: you can redistribute it and/or modify
|
||||
# it under the terms of the GNU Affero General Public License as
|
||||
# published by the Free Software Foundation, either version 3 of the
|
||||
# License, or (at your option) any later version.
|
||||
#
|
||||
# This program is distributed in the hope that it will be useful,
|
||||
# but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||
# GNU Affero General Public License for more details.
|
||||
#
|
||||
# You should have received a copy of the GNU Affero General Public License
|
||||
# along with this program. If not, see <http://www.gnu.org/licenses/>.
|
||||
#
|
||||
##############################################################################
|
||||
# © 2014-2017 Therp BV <http://therp.nl>
|
||||
# License AGPL-3.0 or later (http://www.gnu.org/licenses/agpl.html).
|
||||
from . import account_banking_nl_ing_mt940
|
||||
|
||||
@@ -1,27 +1,11 @@
|
||||
# -*- coding: utf-8 -*-
|
||||
##############################################################################
|
||||
#
|
||||
# OpenERP, Open Source Management Solution
|
||||
# This module copyright (C) 2014 Therp BV (<http://therp.nl>).
|
||||
#
|
||||
# This program is free software: you can redistribute it and/or modify
|
||||
# it under the terms of the GNU Affero General Public License as
|
||||
# published by the Free Software Foundation, either version 3 of the
|
||||
# License, or (at your option) any later version.
|
||||
#
|
||||
# This program is distributed in the hope that it will be useful,
|
||||
# but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||
# GNU Affero General Public License for more details.
|
||||
#
|
||||
# You should have received a copy of the GNU Affero General Public License
|
||||
# along with this program. If not, see <http://www.gnu.org/licenses/>.
|
||||
#
|
||||
##############################################################################
|
||||
# © 2014-2017 Therp BV <http://therp.nl>
|
||||
# License AGPL-3.0 or later (http://www.gnu.org/licenses/agpl.html).
|
||||
{
|
||||
"name": "MT940 import for Dutch ING",
|
||||
"version": "1.1",
|
||||
"version": "7.0.1.1.1",
|
||||
"author": "Therp BV,Odoo Community Association (OCA)",
|
||||
'license': 'AGPL-3',
|
||||
"complexity": "normal",
|
||||
"description": """
|
||||
This addon imports the structured MT940 format as offered by the Dutch ING
|
||||
@@ -31,18 +15,7 @@ bank.
|
||||
"depends": [
|
||||
'account_banking_mt940',
|
||||
],
|
||||
"data": [
|
||||
],
|
||||
"js": [
|
||||
],
|
||||
"css": [
|
||||
],
|
||||
"qweb": [
|
||||
],
|
||||
"auto_install": False,
|
||||
"installable": True,
|
||||
"application": False,
|
||||
"external_dependencies": {
|
||||
'python': [],
|
||||
},
|
||||
}
|
||||
|
||||
@@ -1,23 +1,6 @@
|
||||
# -*- coding: utf-8 -*-
|
||||
##############################################################################
|
||||
#
|
||||
# OpenERP, Open Source Management Solution
|
||||
# This module copyright (C) 2014 Therp BV (<http://therp.nl>).
|
||||
#
|
||||
# This program is free software: you can redistribute it and/or modify
|
||||
# it under the terms of the GNU Affero General Public License as
|
||||
# published by the Free Software Foundation, either version 3 of the
|
||||
# License, or (at your option) any later version.
|
||||
#
|
||||
# This program is distributed in the hope that it will be useful,
|
||||
# but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||
# GNU Affero General Public License for more details.
|
||||
#
|
||||
# You should have received a copy of the GNU Affero General Public License
|
||||
# along with this program. If not, see <http://www.gnu.org/licenses/>.
|
||||
#
|
||||
##############################################################################
|
||||
# © 2014-2017 Therp BV <http://therp.nl>
|
||||
# License AGPL-3.0 or later (http://www.gnu.org/licenses/agpl.html).
|
||||
import re
|
||||
from openerp.tools.translate import _
|
||||
from openerp.addons.account_banking.parsers.models import (
|
||||
|
||||
@@ -26,7 +26,7 @@
|
||||
|
||||
{
|
||||
'name': 'Account Banking - Payments Export Infrastructure',
|
||||
'version': '0.1.165',
|
||||
'version': '7.0.0.1.166',
|
||||
'license': 'AGPL-3',
|
||||
'author': "Banking addons community,Odoo Community Association (OCA)",
|
||||
'website': 'https://launchpad.net/banking-addons',
|
||||
|
||||
@@ -8,8 +8,8 @@
|
||||
<form string="Manual payment" version="7.0">
|
||||
<label string="Please execute payment order manually, and click OK when succesfully sent."/>
|
||||
<footer>
|
||||
<button name="button_ok" type="object" string="OK" class="oe_highlight"/>
|
||||
<button special="cancel" string="Cancel" class="oe_link"/>
|
||||
<button name="button_ok" type="object" string="OK" class="oe_highlight"/>
|
||||
<button special="cancel" string="Cancel" class="oe_link"/>
|
||||
</footer>
|
||||
</form>
|
||||
</field>
|
||||
|
||||
@@ -1,4 +1,4 @@
|
||||
# -*- encoding: utf-8 -*-
|
||||
# -*- coding: utf-8 -*-
|
||||
##############################################################################
|
||||
#
|
||||
# SEPA Credit Transfer module for OpenERP
|
||||
@@ -22,7 +22,7 @@
|
||||
{
|
||||
'name': 'Account Banking SEPA Credit Transfer',
|
||||
'summary': 'Create SEPA XML files for Credit Transfers',
|
||||
'version': '0.2',
|
||||
'version': '7.0.0.2.1',
|
||||
'license': 'AGPL-3',
|
||||
'author': "Akretion,Odoo Community Association (OCA)",
|
||||
'website': 'http://www.akretion.com',
|
||||
|
||||
@@ -1,4 +1,4 @@
|
||||
# -*- encoding: utf-8 -*-
|
||||
# -*- coding: utf-8 -*-
|
||||
##############################################################################
|
||||
#
|
||||
# SEPA Credit Transfer module for OpenERP
|
||||
|
||||
@@ -1,4 +1,4 @@
|
||||
# -*- encoding: utf-8 -*-
|
||||
# -*- coding: utf-8 -*-
|
||||
##############################################################################
|
||||
#
|
||||
# SEPA Credit Transfer module for OpenERP
|
||||
|
||||
@@ -1,4 +1,4 @@
|
||||
# -*- encoding: utf-8 -*-
|
||||
# -*- coding: utf-8 -*-
|
||||
##############################################################################
|
||||
#
|
||||
# SEPA Credit Transfer module for OpenERP
|
||||
@@ -20,7 +20,6 @@
|
||||
#
|
||||
##############################################################################
|
||||
|
||||
|
||||
from openerp.osv import orm, fields
|
||||
from openerp.tools.translate import _
|
||||
from openerp import netsvc
|
||||
|
||||
@@ -1,4 +1,4 @@
|
||||
# -*- encoding: utf-8 -*-
|
||||
# -*- coding: utf-8 -*-
|
||||
##############################################################################
|
||||
#
|
||||
# SEPA Direct Debit module for OpenERP
|
||||
|
||||
@@ -1,4 +1,4 @@
|
||||
# -*- encoding: utf-8 -*-
|
||||
# -*- coding: utf-8 -*-
|
||||
##############################################################################
|
||||
#
|
||||
# SEPA Direct Debit module for OpenERP
|
||||
@@ -22,7 +22,7 @@
|
||||
{
|
||||
'name': 'Account Banking SEPA Direct Debit',
|
||||
'summary': 'Create SEPA files for Direct Debit',
|
||||
'version': '0.2',
|
||||
'version': '7.0.0.2.1',
|
||||
'license': 'AGPL-3',
|
||||
'author': "Akretion,Odoo Community Association (OCA)",
|
||||
'website': 'http://www.akretion.com',
|
||||
|
||||
@@ -1,4 +1,4 @@
|
||||
# -*- encoding: utf-8 -*-
|
||||
# -*- coding: utf-8 -*-
|
||||
##############################################################################
|
||||
#
|
||||
# SEPA Direct Debit module for OpenERP
|
||||
|
||||
@@ -1,4 +1,4 @@
|
||||
# -*- encoding: utf-8 -*-
|
||||
# -*- coding: utf-8 -*-
|
||||
##############################################################################
|
||||
#
|
||||
# SEPA Direct Debit module for OpenERP
|
||||
|
||||
@@ -5,52 +5,52 @@
|
||||
The licence is in the file __openerp__.py
|
||||
-->
|
||||
<!--
|
||||
Customize all mandate views (and actions) to fit SEPA mandate style
|
||||
Customize all mandate views (and actions) to fit SEPA mandate style
|
||||
-->
|
||||
<openerp>
|
||||
<data>
|
||||
<record id="sdd_mandate_form" model="ir.ui.view">
|
||||
<field name="name">sdd.mandate.form</field>
|
||||
<field name="model">account.banking.mandate</field>
|
||||
<field name="inherit_id" ref="account_banking_mandate.view_mandate_form"/>
|
||||
<field name="arch" type="xml">
|
||||
<data>
|
||||
<xpath expr="//field[@name='partner_id']" position="after">
|
||||
<field name="type" on_change="mandate_type_change(type)"/>
|
||||
<field name="recurrent_sequence_type" attrs="{'invisible': [('type', '=', 'oneoff')], 'required': [('type', '=', 'recurrent')]}"/>
|
||||
<record id="sdd_mandate_form" model="ir.ui.view">
|
||||
<field name="name">sdd.mandate.form</field>
|
||||
<field name="model">account.banking.mandate</field>
|
||||
<field name="inherit_id" ref="account_banking_mandate.view_mandate_form"/>
|
||||
<field name="arch" type="xml">
|
||||
<data>
|
||||
<xpath expr="//field[@name='partner_id']" position="after">
|
||||
<field name="type" on_change="mandate_type_change(type)"/>
|
||||
<field name="recurrent_sequence_type" attrs="{'invisible': [('type', '=', 'oneoff')], 'required': [('type', '=', 'recurrent')]}"/>
|
||||
<field name="scheme"/>
|
||||
</xpath>
|
||||
<xpath expr="//field[@name='partner_bank_id']" position="attributes">
|
||||
<attribute name="on_change">mandate_partner_bank_change(partner_bank_id, type, recurrent_sequence_type, last_debit_date, state)</attribute>
|
||||
</xpath>
|
||||
<xpath expr="//field[@name='last_debit_date']" position="after">
|
||||
<field name="sepa_migrated" groups="account_banking_sepa_direct_debit.group_original_mandate_required"/>
|
||||
<field name="original_mandate_identification" attrs="{'invisible': [('sepa_migrated', '=', True)], 'required': [('sepa_migrated', '=', False)]}" groups="account_banking_sepa_direct_debit.group_original_mandate_required"/>
|
||||
</xpath>
|
||||
</data>
|
||||
</field>
|
||||
</record>
|
||||
</xpath>
|
||||
<xpath expr="//field[@name='partner_bank_id']" position="attributes">
|
||||
<attribute name="on_change">mandate_partner_bank_change(partner_bank_id, type, recurrent_sequence_type, last_debit_date, state)</attribute>
|
||||
</xpath>
|
||||
<xpath expr="//field[@name='last_debit_date']" position="after">
|
||||
<field name="sepa_migrated" groups="account_banking_sepa_direct_debit.group_original_mandate_required"/>
|
||||
<field name="original_mandate_identification" attrs="{'invisible': [('sepa_migrated', '=', True)], 'required': [('sepa_migrated', '=', False)]}" groups="account_banking_sepa_direct_debit.group_original_mandate_required"/>
|
||||
</xpath>
|
||||
</data>
|
||||
</field>
|
||||
</record>
|
||||
|
||||
<record id="sdd_mandate_tree" model="ir.ui.view">
|
||||
<field name="name">sdd.mandate.tree</field>
|
||||
<field name="model">account.banking.mandate</field>
|
||||
<field name="inherit_id" ref="account_banking_mandate.view_mandate_tree"/>
|
||||
<field name="arch" type="xml">
|
||||
<xpath expr="//field[@name='unique_mandate_reference']" position="after">
|
||||
<field name="type" string="Type"/>
|
||||
<record id="sdd_mandate_tree" model="ir.ui.view">
|
||||
<field name="name">sdd.mandate.tree</field>
|
||||
<field name="model">account.banking.mandate</field>
|
||||
<field name="inherit_id" ref="account_banking_mandate.view_mandate_tree"/>
|
||||
<field name="arch" type="xml">
|
||||
<xpath expr="//field[@name='unique_mandate_reference']" position="after">
|
||||
<field name="type" string="Type"/>
|
||||
<field name="scheme"/>
|
||||
</xpath>
|
||||
</field>
|
||||
</record>
|
||||
</xpath>
|
||||
</field>
|
||||
</record>
|
||||
|
||||
<record id="sdd_mandate_search" model="ir.ui.view">
|
||||
<field name="name">sdd.mandate.search</field>
|
||||
<field name="model">account.banking.mandate</field>
|
||||
<record id="sdd_mandate_search" model="ir.ui.view">
|
||||
<field name="name">sdd.mandate.search</field>
|
||||
<field name="model">account.banking.mandate</field>
|
||||
<field name="inherit_id" ref="account_banking_mandate.view_mandate_search"/>
|
||||
<field name="arch" type="xml">
|
||||
<xpath expr="//filter[@name='expired']" position="after">
|
||||
<filter name="oneoff" string="One-Off" domain="[('type', '=', 'oneoff')]" />
|
||||
<filter name="recurrent" string="Recurrent" domain="[('type', '=', 'recurrent')]" />
|
||||
<field name="arch" type="xml">
|
||||
<xpath expr="//filter[@name='expired']" position="after">
|
||||
<filter name="oneoff" string="One-Off" domain="[('type', '=', 'oneoff')]" />
|
||||
<filter name="recurrent" string="Recurrent" domain="[('type', '=', 'recurrent')]" />
|
||||
<group string="Group By" name="groupby">
|
||||
<filter name="type_groupby" string="Type"
|
||||
context="{'group_by': 'type'}"/>
|
||||
@@ -60,72 +60,72 @@
|
||||
string="Sequence Type"
|
||||
context="{'group_by': 'recurrent_sequence_type'}"/>
|
||||
</group>
|
||||
</xpath>
|
||||
</field>
|
||||
</record>
|
||||
</xpath>
|
||||
</field>
|
||||
</record>
|
||||
|
||||
<record id="mandate_action" model="ir.actions.act_window">
|
||||
<field name="name">SEPA Direct Debit Mandates</field>
|
||||
<field name="res_model">account.banking.mandate</field>
|
||||
<field name="view_type">form</field>
|
||||
<field name="view_mode">tree,form</field>
|
||||
<field name="help" type="html">
|
||||
<p class="oe_view_nocontent_create">
|
||||
Click to create a new SEPA Direct Debit Mandate.
|
||||
</p><p>
|
||||
A SEPA Direct Debit Mandate is a document signed by your customer that gives you the autorization to do one or several direct debits on his bank account.
|
||||
</p>
|
||||
</field>
|
||||
</record>
|
||||
<record id="mandate_action" model="ir.actions.act_window">
|
||||
<field name="name">SEPA Direct Debit Mandates</field>
|
||||
<field name="res_model">account.banking.mandate</field>
|
||||
<field name="view_type">form</field>
|
||||
<field name="view_mode">tree,form</field>
|
||||
<field name="help" type="html">
|
||||
<p class="oe_view_nocontent_create">
|
||||
Click to create a new SEPA Direct Debit Mandate.
|
||||
</p><p>
|
||||
A SEPA Direct Debit Mandate is a document signed by your customer that gives you the autorization to do one or several direct debits on his bank account.
|
||||
</p>
|
||||
</field>
|
||||
</record>
|
||||
|
||||
<menuitem id="account_banking_mandate.mandate_menu"
|
||||
parent="account_payment.menu_main_payment"
|
||||
action="mandate_action"
|
||||
sequence="20"
|
||||
/>
|
||||
<menuitem id="account_banking_mandate.mandate_menu"
|
||||
parent="account_payment.menu_main_payment"
|
||||
action="mandate_action"
|
||||
sequence="20"
|
||||
/>
|
||||
|
||||
<record id="sdd_mandate_partner_bank_tree" model="ir.ui.view">
|
||||
<field name="name">sdd.mandate.res.partner.bank.tree</field>
|
||||
<field name="model">res.partner.bank</field>
|
||||
<field name="inherit_id" ref="account_banking_mandate.mandate_partner_bank_tree"/>
|
||||
<field name="arch" type="xml">
|
||||
<xpath expr="//field[@name='mandate_ids']" position="attributes">
|
||||
<attribute name="string">SDD Mandates</attribute>
|
||||
</xpath>
|
||||
</field>
|
||||
</record>
|
||||
<record id="sdd_mandate_partner_bank_tree" model="ir.ui.view">
|
||||
<field name="name">sdd.mandate.res.partner.bank.tree</field>
|
||||
<field name="model">res.partner.bank</field>
|
||||
<field name="inherit_id" ref="account_banking_mandate.mandate_partner_bank_tree"/>
|
||||
<field name="arch" type="xml">
|
||||
<xpath expr="//field[@name='mandate_ids']" position="attributes">
|
||||
<attribute name="string">SDD Mandates</attribute>
|
||||
</xpath>
|
||||
</field>
|
||||
</record>
|
||||
|
||||
<record id="sdd_mandate_partner_form" model="ir.ui.view">
|
||||
<field name="name">sdd.mandate.partner.form</field>
|
||||
<field name="model">res.partner</field>
|
||||
<field name="inherit_id" ref="account_banking_mandate.mandate_partner_form"/>
|
||||
<field name="arch" type="xml">
|
||||
<xpath expr="//field[@name='bank_ids']/tree/field[@name='mandate_ids']" position="attributes">
|
||||
<attribute name="string">SDD Mandates</attribute>
|
||||
</xpath>
|
||||
</field>
|
||||
</record>
|
||||
<record id="sdd_mandate_partner_form" model="ir.ui.view">
|
||||
<field name="name">sdd.mandate.partner.form</field>
|
||||
<field name="model">res.partner</field>
|
||||
<field name="inherit_id" ref="account_banking_mandate.mandate_partner_form"/>
|
||||
<field name="arch" type="xml">
|
||||
<xpath expr="//field[@name='bank_ids']/tree/field[@name='mandate_ids']" position="attributes">
|
||||
<attribute name="string">SDD Mandates</attribute>
|
||||
</xpath>
|
||||
</field>
|
||||
</record>
|
||||
|
||||
<record id="recurrent_sequence_type_first" model="mail.message.subtype">
|
||||
<field name="name">Sequence Type set to First</field>
|
||||
<field name="res_model">account.banking.mandate</field>
|
||||
<field name="default" eval="False"/>
|
||||
<field name="description">Sequence Type set to First</field>
|
||||
</record>
|
||||
<record id="recurrent_sequence_type_first" model="mail.message.subtype">
|
||||
<field name="name">Sequence Type set to First</field>
|
||||
<field name="res_model">account.banking.mandate</field>
|
||||
<field name="default" eval="False"/>
|
||||
<field name="description">Sequence Type set to First</field>
|
||||
</record>
|
||||
|
||||
<record id="recurrent_sequence_type_recurring" model="mail.message.subtype">
|
||||
<field name="name">Sequence Type set to Recurring</field>
|
||||
<field name="res_model">account.banking.mandate</field>
|
||||
<field name="default" eval="False"/>
|
||||
<field name="description">Sequence Type set to Recurring</field>
|
||||
</record>
|
||||
<record id="recurrent_sequence_type_recurring" model="mail.message.subtype">
|
||||
<field name="name">Sequence Type set to Recurring</field>
|
||||
<field name="res_model">account.banking.mandate</field>
|
||||
<field name="default" eval="False"/>
|
||||
<field name="description">Sequence Type set to Recurring</field>
|
||||
</record>
|
||||
|
||||
<record id="recurrent_sequence_type_final" model="mail.message.subtype">
|
||||
<field name="name">Sequence Type set to Final</field>
|
||||
<field name="res_model">account.banking.mandate</field>
|
||||
<field name="default" eval="False"/>
|
||||
<field name="description">Sequence Type set to Final</field>
|
||||
</record>
|
||||
<record id="recurrent_sequence_type_final" model="mail.message.subtype">
|
||||
<field name="name">Sequence Type set to Final</field>
|
||||
<field name="res_model">account.banking.mandate</field>
|
||||
<field name="default" eval="False"/>
|
||||
<field name="description">Sequence Type set to Final</field>
|
||||
</record>
|
||||
|
||||
</data>
|
||||
</openerp>
|
||||
|
||||
@@ -1,4 +1,4 @@
|
||||
# -*- encoding: utf-8 -*-
|
||||
# -*- coding: utf-8 -*-
|
||||
##############################################################################
|
||||
#
|
||||
# SEPA Direct Debit module for OpenERP
|
||||
|
||||
@@ -1,4 +1,4 @@
|
||||
# -*- encoding: utf-8 -*-
|
||||
# -*- coding: utf-8 -*-
|
||||
##############################################################################
|
||||
#
|
||||
# SEPA Direct Debit module for OpenERP
|
||||
|
||||
@@ -1,4 +1,4 @@
|
||||
# -*- encoding: utf-8 -*-
|
||||
# -*- coding: utf-8 -*-
|
||||
##############################################################################
|
||||
#
|
||||
# Copyright (C) 2011 credativ Ltd (<http://www.credativ.co.uk>).
|
||||
@@ -18,9 +18,7 @@
|
||||
# along with this program. If not, see <http://www.gnu.org/licenses/>.
|
||||
#
|
||||
##############################################################################
|
||||
|
||||
from . import account_banking_uk_hsbc
|
||||
from . import wizard
|
||||
from . import hsbc_mt940
|
||||
from . import hsbc_clientid
|
||||
# vim:expandtab:smartindent:tabstop=4:softtabstop=4:shiftwidth=4:
|
||||
|
||||
@@ -1,4 +1,4 @@
|
||||
# -*- encoding: utf-8 -*-
|
||||
# -*- coding: utf-8 -*-
|
||||
##############################################################################
|
||||
#
|
||||
# Copyright (C) 2011 credativ Ltd (<http://www.credativ.co.uk>).
|
||||
@@ -20,7 +20,7 @@
|
||||
##############################################################################
|
||||
{
|
||||
'name': 'HSBC Account Banking',
|
||||
'version': '0.5',
|
||||
'version': '7.0.0.5.1',
|
||||
'license': 'AGPL-3',
|
||||
'author': "credativ Ltd,Odoo Community Association (OCA)",
|
||||
'website': 'http://www.credativ.co.uk',
|
||||
|
||||
@@ -1,3 +1,4 @@
|
||||
# -*- coding: utf-8 -*-
|
||||
##############################################################################
|
||||
#
|
||||
# Copyright (C) 2009 EduSense BV (<http://www.edusense.nl>).
|
||||
@@ -18,7 +19,6 @@
|
||||
# along with this program. If not, see <http://www.gnu.org/licenses/>.
|
||||
#
|
||||
##############################################################################
|
||||
|
||||
from datetime import date
|
||||
|
||||
from openerp.osv import orm, fields
|
||||
|
||||
@@ -1,4 +1,4 @@
|
||||
# -*- encoding: utf-8 -*-
|
||||
# -*- coding: utf-8 -*-
|
||||
from openerp.osv import orm, fields
|
||||
|
||||
|
||||
|
||||
@@ -1,4 +1,4 @@
|
||||
# -*- encoding: utf-8 -*-
|
||||
# -*- coding: utf-8 -*-
|
||||
##############################################################################
|
||||
#
|
||||
# Copyright (C) 2011 credativ Ltd (<http://www.credativ.co.uk>).
|
||||
@@ -19,7 +19,6 @@
|
||||
#
|
||||
##############################################################################
|
||||
# Import of HSBC data in Swift MT940 format
|
||||
#
|
||||
import re
|
||||
import logging
|
||||
|
||||
|
||||
@@ -1,5 +1,4 @@
|
||||
#!/usr/bin/env python
|
||||
# -*- encoding: utf-8 -*-
|
||||
# -*- coding: utf-8 -*-
|
||||
##############################################################################
|
||||
#
|
||||
# Copyright (C) 2011 credativ Ltd (<http://www.credativ.co.uk>).
|
||||
@@ -166,5 +165,6 @@ def main():
|
||||
"""
|
||||
parse_file("testfile")
|
||||
|
||||
|
||||
if __name__ == '__main__':
|
||||
main()
|
||||
|
||||
@@ -1,4 +1,4 @@
|
||||
# -*- encoding: utf-8 -*-
|
||||
# -*- coding: utf-8 -*-
|
||||
##############################################################################
|
||||
#
|
||||
# Copyright (C) 2009 EduSense BV (<http://www.edusense.nl>).
|
||||
|
||||
@@ -1,4 +1,4 @@
|
||||
# -*- encoding: utf-8 -*-
|
||||
# -*- coding: utf-8 -*-
|
||||
##############################################################################
|
||||
#
|
||||
# Copyright (C) 2011 credativ Ltd (<http://www.credativ.co.uk>).
|
||||
@@ -537,9 +537,9 @@ class Batch(LogicalSection):
|
||||
use_index = index + 1
|
||||
|
||||
segments += transaction.segments(use_index)
|
||||
|
||||
return segments
|
||||
|
||||
|
||||
# From the spec for FCA segments:
|
||||
# 13 = All charges borne by payee (or beneficiary)
|
||||
# 14 = Each pay own cost
|
||||
|
||||
@@ -1,4 +1,4 @@
|
||||
# -*- encoding: utf-8 -*-
|
||||
# -*- coding: utf-8 -*-
|
||||
##############################################################################
|
||||
#
|
||||
# Copyright (C) 2011 credativ Ltd (<http://www.credativ.co.uk>).
|
||||
@@ -29,6 +29,7 @@ from decimal import Decimal
|
||||
class PaymulTestCase(unittest.TestCase):
|
||||
|
||||
def setUp(self):
|
||||
super(PaymulTestCase, self).setUp()
|
||||
self.maxDiff = None
|
||||
|
||||
def test_uk_high_value_priority_payment(self):
|
||||
@@ -296,5 +297,6 @@ UNZ+1+UKLVPLIL'"""
|
||||
|
||||
self.assertMultiLineEqual(expected, str(interchange))
|
||||
|
||||
|
||||
if __name__ == "__main__":
|
||||
unittest.main()
|
||||
|
||||
Reference in New Issue
Block a user