[DEL]Transaction families, code, types, categories, communication types, check balance end option

bzr revid: dle@openerp.com-20121210140620-upq370zuvsetoojw
This commit is contained in:
dle@openerp.com 2012-12-10 15:06:20 +01:00
parent 257db6feff
commit 73ba51f7af
4 changed files with 6 additions and 541 deletions

View File

@ -29,14 +29,6 @@ class account_bank_statement(osv.osv):
'coda_note': fields.text('CODA Notes'),
}
class res_bank(osv.osv):
_inherit = 'res.partner.bank'
_columns = {
'balance_start_enforce': fields.boolean('Prevent invalid Opening Balances',
help="Do not process Statements with an Opening Balance that doesn't match the previous Closing Balance."),
}
account_bank_statement()
# vim:expandtab:smartindent:tabstop=4:softtabstop=4:shiftwidth=4:

View File

@ -13,18 +13,6 @@
</page>
</field>
</record>
<record id="view_res_bank_coda_form" model="ir.ui.view">
<field name="name">res.partner.bank.coda.form</field>
<field name="model">res.partner.bank</field>
<field name="inherit_id" ref="account.view_partner_bank_form_inherit"/>
<field name="arch" type="xml">
<group name="accounting" position="after">
<group string="CODA Configuration" name="coda_bank_configuration">
<field name="balance_start_enforce"/>
</group>
</group>
</field>
</record>
<record id="view_bank_statement_line_coda_form" model="ir.ui.view">
<field name="name">bank.statement.line.coda.form</field>
<field name="model">account.bank.statement.line</field>

View File

@ -10,7 +10,6 @@
<form string="Import CODA File" version="7.0">
<group col="2">
<field name="coda_data" filename="coda_fname"/>
<field name="coda_fname"/>
</group>
<footer>
<button name="coda_parsing" string="_Import" type="object" class="oe_highlight"/>

View File

@ -66,7 +66,7 @@ class account_coda_import(osv.osv_memory):
statements.append(statement)
statement['version'] = line[127]
if statement['version'] not in ['1', '2']:
raise osv.except_osv(_('Error') + 'R001', _('CODA V%s statements are not supported, please contact your bank') % statement['version'])
raise osv.except_osv(_('Error') + ' R001', _('CODA V%s statements are not supported, please contact your bank') % statement['version'])
statement['globalisation_stack'] = []
statement['lines'] = []
statement['date'] = time.strftime(tools.DEFAULT_SERVER_DATE_FORMAT, time.strptime(rmspaces(line[5:11]), '%d%m%y'))
@ -81,16 +81,16 @@ class account_coda_import(osv.osv_memory):
statement['acc_number'] = rmspaces(line[5:17])
statement['currency'] = rmspaces(line[18:21])
elif line[1] == '1': # foreign bank account BBAN structure
raise osv.except_osv(_('Error') + 'R1001', _('Foreign bank accounts with BBAN structure are not supported '))
raise osv.except_osv(_('Error') + ' R1001', _('Foreign bank accounts with BBAN structure are not supported '))
elif line[1] == '2': # Belgian bank account IBAN structure
statement['acc_number'] = rmspaces(line[5:21])
statement['currency'] = rmspaces(line[39:42])
elif line[1] == '3': # foreign bank account IBAN structure
raise osv.except_osv(_('Error') + 'R1002', _('Foreign bank accounts with IBAN structure are not supported '))
raise osv.except_osv(_('Error') + ' R1002', _('Foreign bank accounts with IBAN structure are not supported '))
else: # Something else, not supported
raise osv.except_osv(_('Error') + 'R1003', _('Unsupported bank account structure '))
raise osv.except_osv(_('Error') + ' R1003', _('Unsupported bank account structure '))
bank_ids = self.pool.get('res.partner.bank').search(cr, uid, [('acc_number', '=', statement['acc_number'])])
not_found_except = osv.except_osv(_('Error') + 'R1004', _("No matching CODA Bank Account Configuration record found. Please check if the 'Bank Account Number' and 'Currency' fields of your configuration record match with '%s' and '%s'.") % (statement['acc_number'], statement['currency']))
not_found_except = osv.except_osv(_('Error') + ' R1004', _("No matching Bank Account.\n\nPlease set-up a Bank Account with as Account Number '%s' and as Currency '%s'.") % (statement['acc_number'], statement['currency']))
if bank_ids and len(bank_ids) > 0:
bank_accs = self.pool.get('res.partner.bank').browse(cr, uid, bank_ids)
for bank_acc in bank_accs:
@ -123,8 +123,6 @@ class account_coda_import(osv.osv_memory):
if statementLine['debit'] == '1':
statementLine['amount'] = - statementLine['amount']
statementLine['transaction_type'] = line[53]
if statementLine['transaction_type'] not in transaction_types:
raise osv.except_osv(_('Error') + 'R2001', _('The File contains an invalid CODA Transaction Type : %s') % statementLine['transaction_type'])
statementLine['transactionDate'] = time.strftime(tools.DEFAULT_SERVER_DATE_FORMAT, time.strptime(rmspaces(line[47:53]), '%d%m%y'))
statementLine['transaction_family'] = rmspaces(line[54:56])
statementLine['transaction_code'] = rmspaces(line[56:58])
@ -242,11 +240,7 @@ class account_coda_import(osv.osv_memory):
else:
raise osv.except_osv(_('Error'), _("Configuration Error in journal %s!\nPlease verify the Default Debit and Credit Account settings.") % statement['journal_id'].name)
if balance_start_check != statement['balance_start']:
balance_start_enforce_err = _("The CODA Statement %s Starting Balance (%.2f) does not correspond with the previous Closing Balance (%.2f) in journal %s!") % (statement['description'] + ' #' + statement['paperSeqNumber'], statement['balance_start'], balance_start_check, statement['journal_id'].name)
if statement['bank_account'].balance_start_enforce:
raise osv.except_osv(_('Error'), balance_start_enforce_err)
else:
statement['coda_note'] = balance_start_enforce_err
statement['coda_note'] = _("The CODA Statement %s Starting Balance (%.2f) does not correspond with the previous Closing Balance (%.2f) in journal %s!") % (statement['description'] + ' #' + statement['paperSeqNumber'], statement['balance_start'], balance_start_check, statement['journal_id'].name)
data = {
'name': '[' + statement['date'] + ']' + statement['description'],
'date': statement['date'],
@ -258,15 +252,6 @@ class account_coda_import(osv.osv_memory):
statement['id'] = self.pool.get('account.bank.statement').create(cr, uid, data, context=context)
for line in statement['lines']:
if line['type'] == 'information':
if line['transaction_type'] in transaction_types:
line['transaction_type'] = transaction_types[line['transaction_type']][1]
if line['transaction_category'] in transaction_categories:
line['transaction_category'] = transaction_categories[line['transaction_category']]
if line['transaction_family'] in transaction_codes:
transaction_family = transaction_codes[line['transaction_family']]
line['transaction_family'] = transaction_family[0]
if line['transaction_code'] in transaction_family[1]:
line['transaction_code'] = transaction_family[1][line['transaction_code']]
statement['coda_note'] = "\n".join([statement['coda_note'], line['type'].title() + ' with Ref. ' + str(line['ref']), 'Date: ' + str(line['entryDate']), 'Communication: ' + line['communication'], ''])
elif line['type'] == 'communication':
statement['coda_note'] = "\n".join([statement['coda_note'], line['type'].title() + ' with Ref. ' + str(line['ref']), 'Ref: ', 'Communication: ' + line['communication'], ''])
@ -373,23 +358,6 @@ class account_coda_import(osv.osv_memory):
else:
line['account'] = statement['journal_id'].default_credit_account_id.id
note.append(_('Communication') + ': ' + line['communication'])
if 'communication_type' in line:
if line['communication_type'] in communication_types:
line['communication_type'] = communication_types[line['communication_type']]
note.append(_('Communication Type') + ': ' + line['communication_type'])
if line['transaction_type'] in transaction_types:
line['transaction_type'] = transaction_types[line['transaction_type']][1]
if line['transaction_category'] in transaction_categories:
line['transaction_category'] = transaction_categories[line['transaction_category']]
if line['transaction_family'] in transaction_codes:
transaction_family = transaction_codes[line['transaction_family']]
line['transaction_family'] = transaction_family[0]
if line['transaction_code'] in transaction_family[1]:
line['transaction_code'] = transaction_family[1][line['transaction_code']]
note.append(_('Transaction type') + ': ' + line['transaction_type'])
note.append(_('Transaction family') + ': ' + line['transaction_family'])
note.append(_('Transaction code') + ': ' + line['transaction_code'])
note.append(_('Transaction category') + ': ' + line['transaction_category'])
if 'voucher_id' not in line:
line['voucher_id'] = None
data = {
@ -418,488 +386,6 @@ class account_coda_import(osv.osv_memory):
}
account_coda_import()
transaction_types = {
"0": ["", "Simple amount without detailed data; e.g. : an individual credit transfer [free of charges]."],
"1": ["", "Amount as totalised by the customer; e.g. a file regrouping payments of wages or payments made to suppliers or a file regrouping collections for which the customer is ]debited or credited with one single amount. As a matter of principle, this type is also used when no detailed data is following [type 5]."],
"5": ["1", "Detail of 1. Standard procedure is no detailing. However, the customer may ask for detailed data to be included into his file after the overall record [type 1]."],
"2": ["", "Amount as totalised by the bank; e.g. : the total amount of a series of credit transfers with a structured communication As a matter of principle, this type will also be used when no detailed data [type 6 or 7] is following."],
"6": ["2", "Detail of 2. Simple amount without detailed data. Normally, data of this kind comes after type 2. The customer may ask for a separate file containing the detailed data. In that case, one will speak of a separate application. The records in a separate application keep type 6."],
"7": ["2", "Detail of 2. Simple account with detailed data The records in a separate application keep type 7."],
"9": ["7", "Detail of 7. The records in a separate application keep type 9."],
"3": ["", "Simple amount with detailed data; e.g. in case of charges for cross-border credit transfers."],
"8": ["3", "Detail of 3."],
}
transaction_codes = {
"00": ["Undefined transactions", {
"89": "Cancellation of a transaction",
"87": "Costs refunded",
"85": "Correction",
"83": "Value correction",
"39": "Cancellation of a transaction",
"37": "Costs",
"35": "Correction",
"33": "Value correction",
"00": "Undefined transaction",
}],
"01": ["Domestic or local SEPA credit transfers", {
"99": "Cancellation or correction",
"87": "Reimbursement of costs",
"66": "Financial centralization",
"64": "Transfer to your account",
"62": "Unpaid postal order",
"60": "Non-presented circular cheque",
"54": "Unexecutable transfer order",
"52": "Payment in your favour",
"51": "Transfer in your favour initiated by the bank",
"50": "Transfer in your favour",
"49": "Cancellation or correction",
"39": "Your issue circular cheque",
"37": "Costs",
"17": "Financial centralisation",
"15": "Balance due insurance premium",
"13": "Transfer from your account",
"11": "Your semi-standing order payment to employees",
"09": "Your semi-standing order",
"07": "Collective transfer",
"05": "Payment of wages etc.",
"03": "Standing order",
"02": "Individual transfer order initiated by the bank",
"01": "Individual transfer order",
}],
"03": ["Cheques", {
"99": "Cancellation or correction",
"87": "Reimbursement of cheque-related costs",
"68": "Credit of a payment via electronic purse",
"66": "Remittance of cheque by your branch - credit under usual reserve",
"64": "Reversal of settlement of credit card",
"63": "Second credit of unpaid cheque",
"62": "Reversal of cheque",
"60": "Reversal of voucher",
"58": "Remittance of cheques, vouchers, etc. credit after collection",
"56": "Non-presented certified cheques",
"52": "First credit of cheques, vouchers, luncheon vouchers, postal orders, credit under usual reserve",
"50": "Credit of a payment via terminal",
"49": "Cancellation or correction",
"39": "Provisionally unpaid due to other reason than manual presentation",
"38": "Provisionally unpaid",
"37": "Cheque-related costs",
"35": "Cash advance",
"19": "Settlement of credit cards",
"17": "Your certified cheque",
"15": "Your purchase bank cheque",
"13": "Eurocheque written out abroad",
"11": "Department store cheque",
"09": "Unpaid voucher",
"07": "Definitely unpaid cheque",
"05": "Payment of voucher",
"03": "Your purchase by payment card",
"01": "Payment of your cheque",
}],
"04": ["Cards", {
"99": "Cancellation or correction",
"87": "Reimbursement of costs",
"68": "Credit after Proton payments",
"55": "Income from payments by GSM",
"53": "Cash deposit at an ATM",
"52": "Loading GSM cards",
"51": "Unloading Proton",
"50": "Credit after a payment at a terminal",
"49": "Cancellation or correction",
"37": "Costs",
"08": "Payment by means of a payment card outside the Eurozone",
"07": "Payment by GSM",
"06": "Payment with tank card",
"05": "Loading Proton",
"04": "Cash withdrawal from an ATM",
"03": "Settlement credit cards",
"02": "Payment by means of a payment card within the Eurozone",
"01": "Loading a GSM card",
}],
"05": ["Direct debit", {
"99": "Cancellation or correction",
"87": "Reimbursement of costs",
"58": "Reversal",
"56": "Unexecutable reimbursement",
"54": "Reimbursement",
"52": "Credit under usual reserve",
"50": "Credit after collection",
"49": "Cancellation or correction",
"37": "Costs",
"05": "Reimbursement",
"03": "Unpaid debt",
"01": "Payment",
}],
"07": ["Domestic commercial paper", {
"99": "Cancellation or correction",
"87": "Reimbursement of costs",
"86": "Payment after cession",
"64": "Warrant",
"58": "Remittance of supplier's bill without guarantee",
"56": "Remittance of supplier's bill with guarantee",
"54": "Remittance of commercial paper for discount",
"52": "Remittance of commercial paper - credit under usual reserve",
"50": "Remittance of commercial paper - credit after collection",
"49": "Cancellation or correction",
"39": "Return of an irregular bill of exchange",
"37": "Costs related to commercial paper",
"14": "Warrant fallen due",
"12": "Safe custody",
"10": "Renewal of agreed maturity date",
"09": "Agio on supplier's bill",
"08": "Payment in advance",
"07": "Unpaid commercial paper",
"06": "Extension of maturity date",
"05": "Commercial paper claimed back",
"03": "Payment receipt card",
"01": "Payment commercial paper",
}],
"09": ["Counter transactions", {
"99": "Cancellation or correction",
"87": "Reimbursement of costs",
"70": "Sale of travellers cheque",
"68": "Difference in payment",
"66": "Repurchase of petrol coupons",
"64": "Your winning lottery ticket",
"62": "Sale of gold/pieces under usual reserve",
"60": "Sale of foreign bank notes",
"58": "Payment by your branch/agents",
"56": "Reserve",
"54": "Your payment ATM",
"52": "Payment night safe",
"50": "Cash payment",
"49": "Cancellation or correction",
"37": "Costs",
"25": "Purchase of travellers cheque",
"21": "Cash withdrawal on card (PROTON)",
"19": "Difference in payment",
"17": "Purchase of fiscal stamps",
"15": "Your purchase of lottery tickets",
"13": "Cash withdrawal by your branch or agents",
"11": "Your purchase of luncheon vouchers",
"09": "Purchase of petrol coupons",
"07": "Purchase of gold/pieces",
"05": "Purchase of foreign bank notes",
"03": "Cash withdrawal by card (ATM)",
"01": "Cash withdrawal",
}],
"11": ["Securities", {
"99": "Cancellation or correction",
"87": "Reimbursement of costs",
"70": "Settlement of securities",
"68": "Compensation for missing coupon",
"66": "Retrocession of issue commission",
"64": "Your issue",
"62": "Interim interest on subscription",
"58": "Repayable securities from a deposit or delivered at the counter - credit under usual reserve",
"56": "Reserve",
"52": "Payment of coupons from a deposit or settlement of coupons delivered over the counter - credit under usual reserve",
"51": "Tender",
"50": "Sale of securities",
"49": "Cancellation or correction",
"37": "Costs",
"19": "Regularisation costs",
"17": "Management fee",
"15": "Interim interest on subscription",
"13": "Your repurchase of issue",
"11": "Payable coupons/repayable securities",
"09": "Settlement of securities",
"06": "Share option plan exercising an option",
"05": "Partial payment subscription",
"04": "Issues",
"03": "Subscription to securities",
"02": "Tenders",
"01": "Purchase of securities",
}],
"13": ["Credit", {
"99": "Cancellation or correction",
"87": "Reimbursement of costs",
"70": "Settlement of discount bank acceptance",
"68": "Documentary export credits",
"62": "Term loan",
"60": "Settlement of mortgage loan",
"56": "Subsidy",
"55": "Fixed advance interest only",
"54": "Fixed advance capital and interest",
"50": "Settlement of instalment credit",
"49": "Cancellation or correction",
"37": "Credit-related costs",
"21": "Other credit applications",
"19": "Documentary import credits",
"15": "Your repayment hire-purchase and similar claims",
"13": "Settlement of bank acceptances",
"11": "Your repayment mortgage loan",
"07": "Your repayment instalment credits",
"05": "Settlement of fixed advance",
"02": "Long-term loan",
"01": "Short-term loan",
}],
"30": ["Various transactions", {
"99": "Cancellation or correction",
"89": "Undefined transaction",
"87": "Reimbursement of costs",
"83": "Value (date) correction",
"55": "Interest term investment",
"54": "Capital and/or interest term investment",
"52": "Forward sale of foreign exchange",
"50": "Spot sale of foreign exchange",
"49": "Cancellation or correction",
"39": "Undefined transaction",
"37": "Costs",
"33": "Value (date) correction",
"05": "Capital and/or interest term investment",
"03": "Forward purchase of foreign exchange",
"01": "Spot purchase of foreign exchange",
}],
"35": ["Closing (periodical settlements for interest, costs,…)", {
"99": "Cancellation or correction",
"87": "Reimbursement of costs",
"50": "Closing",
"49": "Cancellation or correction",
"37": "Costs",
"01": "Closing",
}],
"41": ["International credit transfers - non-SEPA credit transfers", {
"99": "Cancellation or correction",
"87": "Reimbursement of costs",
"66": "Financial centralisation (credit)",
"64": "Transfer to your account",
"50": "Transfer",
"49": "Cancellation or correction",
"38": "Costs relating to incoming foreign and non-SEPA transfers",
"37": "Costs relating to outgoing foreign transfers and non-SEPA transfers",
"17": "Financial centralisation (debit)",
"13": "Transfer from your account",
"07": "Collective transfers",
"05": "Collective payments of wages",
"03": "Standing order",
"01": "Transfer",
}],
"43": ["Foreign cheques", {
"99": "Cancellation or correction",
"87": "Reimbursement of costs",
"70": "Purchase of travellers cheque",
"62": "Reversal of cheques",
"58": "Remittance of foreign cheque credit after collection",
"52": "Remittance of foreign cheque credit under usual reserve",
"49": "Cancellation or correction",
"37": "Costs relating to payment of foreign cheques",
"15": "Purchase of an international bank cheque",
"07": "Unpaid foreign cheque",
"01": "Payment of a foreign cheque",
}],
"47": ["Foreign commercial paper", {
"99": "Cancellation or correction",
"87": "Reimbursement of costs",
"64": "Warrant",
"62": "Remittance of documents abroad - credit after collection",
"60": "Remittance of documents abroad - credit under usual reserve",
"58": "Idem without guarantee",
"56": "Remittance of guaranteed foreign supplier's bill",
"54": "Discount abroad",
"52": "Remittance of foreign bill credit under usual reserve",
"50": "Remittance of foreign bill credit after collection",
"49": "Cancellation or correction",
"37": "Costs relating to the payment of a foreign bill",
"14": "Warrant fallen due",
"13": "Discount foreign supplier's bills",
"11": "Payment documents abroad",
"07": "Unpaid foreign bill",
"06": "Extension",
"05": "Bill claimed back",
"01": "Payment of foreign bill",
}],
"49": ["Foreign counter transactions", {"03": "ATM withdrawal"}],
"80": ["Separately charged costs and provisions", {
"01": "Guarantee card charges",
"02": "Costs relating to electronic output",
"03": "Payment card charges",
"04": "Costs for holding a documentary cash credit",
"05": "Card charges",
"06": "Damage relating to bills and cheques",
"07": "Insurance costs",
"08": "Registering compensation for savings accounts",
"09": "Postage",
"10": "Purchase of Smartcard",
"11": "Costs for the safe custody of correspondence",
"12": "Costs for opening a bank guarantee",
"13": "Renting of safes",
"14": "Handling costs instalment credit",
"15": "Night safe",
"16": "Bank confirmation to revisor or accountant",
"17": "Charge for safe custody",
"18": "Trade information",
"19": "Special charge for safe custody",
"20": "Drawing up a certificate",
"21": "Pay-packet charges",
"22": "Management/custody",
"23": "Research costs",
"24": "Participation in and management of interest refund system",
"25": "Renting of direct debit box",
"26": "Travel insurance premium",
"27": "Subscription fee",
"29": "Information charges",
"31": "Writ service fee",
"33": "Miscellaneous fees and commissions",
"35": "Costs",
"37": "Access right to database",
"39": "Surety fee",
"41": "Research costs",
"43": "Printing of forms",
"45": "Documentary credit charges",
"47": "Charging fees for transactions",
"49": "Cancellation or correction",
"99": "Cancellation or correction",
}],
}
transaction_categories = {
"000": "Net amount",
"001": "Interest received",
"002": "Interest paid",
"003": "Credit commission",
"004": "Postage",
"005": "Renting of letterbox",
"006": "Various fees/commissions",
"007": "Access right to database",
"008": "Information charges",
"009": "Travelling expenses",
"010": "Writ service fee",
"011": "VAT",
"012": "Exchange commission",
"013": "Payment commission",
"014": "Collection commission",
"015": "Correspondent charges",
"016": "BLIW/IBLC dues",
"017": "Research costs",
"018": "Tental guarantee charges",
"019": "Tax on physical delivery",
"020": "Costs of physical delivery",
"021": "Costs for drawing up a bank cheque",
"022": "Priority costs",
"023": "Exercising fee",
"024": "Growth premium",
"025": "Individual entry for exchange charges",
"026": "Handling commission",
"027": "Charges for unpaid bills",
"028": "Fidelity premium",
"029": "Protest charges",
"030": "Account insurance",
"031": "Charges foreign cheque",
"032": "Drawing up a circular cheque",
"033": "Charges for a foreign bill",
"034": "Reinvestment fee",
"035": "Charges foreign documentary bill",
"036": "Costs relating to a refused cheque",
"037": "Commission for handling charges",
"039": "Telecommunications",
"041": "Credit card costs",
"042": "Payment card costs",
"043": "Insurance costs",
"045": "Handling costs",
"047": "Charges extension bill",
"049": "Fiscal stamps/stamp duty",
"050": "Capital term investment",
"051": "Withholding tax",
"052": "Residence state tax",
"053": "Printing of forms",
"055": "Repayment loan or credit capital",
"057": "Interest subsidy",
"058": "Capital premium",
"059": "Default interest",
"061": "Charging fees for transactions",
"063": "Rounding differences",
"065": "Interest payment advice",
"066": "Fixed loan advance - reimbursement",
"067": "Fixed loan advance - extension",
"068": "Countervalue of an entry",
"069": "Forward arbitrage contracts : sum to be supplied by customer",
"070": "Forward arbitrage contracts : sum to be supplied by bank",
"071": "Fixed loan advance - availability",
"072": "Countervalue of commission to third party",
"073": "Costs of ATM abroad",
"074": "Mailing costs",
"100": "Gross amount",
"200": "Overall documentary credit charges",
"201": "Advice notice commission",
"202": "Advising commission | Additional advising commission",
"203": "Confirmation fee | Additional confirmation fee | Commitment fee | Flat fee | Confirmation reservation commission | Additional reservation commission",
"204": "Amendment fee",
"205": "Documentary payment commission | Document commission | Drawdown fee | Negotiation fee",
"206": "Surety fee/payment under reserve",
"207": "Non-conformity fee",
"208": "Commitment fee deferred payment",
"209": "Transfer commission",
"210": "Commitment fee",
"211": "Credit arrangement fee | Additional credit arrangement fee",
"212": "Warehousing fee",
"213": "Financing fee",
"214": "Issue commission (delivery order)",
"400": "Acceptance fee",
"401": "Visa charges",
"402": "Certification costs",
"403": "Minimum discount rate",
"404": "Discount commission",
"405": "Bill guarantee commission",
"406": "Collection charges",
"407": "Costs Article 45",
"408": "Cover commission",
"409": "Safe deposit charges",
"410": "Reclamation charges",
"411": "Fixed collection charge",
"412": "Advice of expiry charges",
"413": "Acceptance charges",
"414": "Regularisation charges",
"415": "Surety fee",
"416": "Charges for the deposit of security",
"418": "Endorsement commission",
"419": "Bank service fee",
"420": "Retention charges",
"425": "Foreign broker's commission",
"426": "Belgian broker's commission",
"427": "Belgian Stock Exchange tax",
"428": "Interest accrued",
"429": "Foreign Stock Exchange tax",
"430": "Recovery of foreign tax",
"431": "Delivery of a copy",
}
communication_types = {
"001": "Data concerning the counterparty",
"002": "Communication of the bank",
"003": "RBP data",
"004": "Counterpartys banker",
"005": "Data concerning the correspondent",
"006": "Information concerning the detail amount",
"007": "Information concerning the detail cash",
"008": "Identification of the de ultimate beneficiary/creditor (SEPA SCT/SDD)",
"009": "Identification of the de ultimate ordering customer/debtor (SEPA SCT/SDD)",
"010": "Information pertaining to sale or purchase of securities",
"011": "Information pertaining to coupons",
"100": "(SEPA) payment with a structured format communication applying the ISO standard 11649: Structured creditor reference to remittan",
"101": "Credit transfer or cash payment with structured format communication",
"102": "Credit transfer or cash payment with reconstituted structured format communication",
"103": "number (e.g. of the cheque, of the card, etc.)",
"104": "Equivalent in EUR",
"105": "original amount of the transaction",
"106": "Method of calculation (VAT, withholding tax on income, commission, etc.)",
"107": "Direct debit DOM80",
"108": "Closing",
"111": "POS credit Globalisation",
"112": "ATM payment (usually Eurocheque card)",
"113": "ATM/POS debit",
"114": "POS credit - individual transaction",
"115": "Terminal cash deposit",
"120": "Correction of a transaction",
"121": "Commercial bills",
"122": "Bills - calculation of interest",
"123": "Fees and commissions",
"124": "Number of the credit card",
"125": "Credit",
"126": "Term investments",
"127": "European direct debit (SEPA)",
}
def rmspaces(s):
return " ".join(s.split())