TIP: You can type at any time to perform a new search.
Romania - MT940 Bank Statements Import
l10n_ro_account_bank_statement_import_mt940_base · OCA/l10n-romania
- Repository
- OCA/l10n-romania · module folder · Try on Runboat
- Module version
- 0.4.0
- Category
- Localization
- Folder size
- 0.06 MB
- License
- AGPL-3
- Application
- No
- Auto-installable
- No
- Website
- https://github.com/OCA/l10n-romania
- Last tracking update
- 2026-08-07 09:06:35
- Authors
- Odoo Community Association (OCA), Therp BV, NextERP Romania
- Maintainers
- Odoo Community Association (OCA), Therp BV, NextERP Romania
- Committers
- Dorin Hongu, Weblate, OCA-git-bot, oca-ci
- Odoo dependencies
- Python dependencies
- None
- System dependencies
- None
- Required by
- l10n_ro_account_bank_statement_import_mt940_alpha, l10n_ro_account_bank_statement_import_mt940_bcr, l10n_ro_account_bank_statement_import_mt940_ing
- Description
This module provides a generic parser for MT940 files. Given that MT940 is a non-open non-standard of pure evil in the way that every bank cooks up its own interpretation of it, this addon alone won't help you much. It is rather intended to be used by other addons to implement the dialect specific to a certain bank.
Code Analysis ⓘ
Views touched (1)
| XML ID | Name | Model | Type | Status |
|---|---|---|---|---|
view_partner_bank_form |
res.partner.bank.form | res.partner.bank | form | Inherits l10n_ro_config.view_partner_bank_form |
HTTP endpoints (0)
No HTTP endpoints found for this module.
Models touched (4)
New fields (0)
No new fields.
Public methods (0)No public methods.
New fields (0)
No new fields.
Public methods (0)No public methods.
New fields (0)
No new fields.
Public methods (33)-
add_record_line(self, line, record_line) -
get_codewords(self) -
get_counterpart(self, transaction, subfield)Get counterpart from transaction. Counterpart is often stored in subfield of tag 86. The subfield can be BENM, ORDP, CNTP -
get_footer_regex(self) -
get_header_lines(self) -
get_header_regex(self) -
get_mt940_type(self) -
get_subfield_split_text(self) -
get_subfields(self, data, codewords)Return dictionary with value array for each codeword in data. For instance: data = /BENM//NAME/Kosten/REMI/Periode 01-10-2013 t/m 31-12-2013/ISDT/20 codewords = ['BENM', 'ADDR', 'NAME', 'CNTP', ISDT', 'REMI'] Then return subfields = { 'BENM': [], 'NAME': ['Kosten'], 'REMI': ['Periode 01-10-2013 t', 'm 31-12-2013'], 'ISDT': ['20'], } -
get_tag_61_regex(self) -
get_tag_regex(self) -
handle_common_subfields(self, transaction, subfields)Deal with common functionality for tag 86 subfields. -
handle_header(self, iterator, header_lines=None)skip header lines, create current statement -
handle_record(self, line, result)find a function to handle the record represented by line -
handle_tag_20(self, data, result)Contains unique ? message ID -
handle_tag_25(self, data, result)Handle tag 25: local bank account information. -
handle_tag_28(self, data, result)Sequence number within batch - normally only zeroes. -
handle_tag_28C(self, data, result)Sequence number within batch - normally only zeroes. -
handle_tag_60F(self, data, result)get start balance and currency -
handle_tag_60M(self, data, result) -
handle_tag_61(self, data, result)get transaction values -
handle_tag_62F(self, data, result)Get ending balance, statement date and id. We use the date on the last 62F tag as statement date, as the date on the 60F record (previous end balance) might contain a date in a previous period. We generate the statement.id from the local_account and the end-date, this should normally be unique, provided there is a maximum of one statement per day. Depending on the bank, there might be multiple 62F tags in the import file. The last one counts. -
handle_tag_62M(self, data, result) -
handle_tag_64(self, data, result)get current balance in currency -
handle_tag_65(self, data, result)get future balance in currency -
handle_tag_86(self, data, result)details for previous transaction, here most differences between banks occur -
is_footer(self, line)determine if a line is the footer of a statement -
is_mt940(self, line)determine if a line is the header of a statement -
is_mt940_statement(self, line)determine if line is the start of a statement -
is_tag(self, line)determine if a line has a tag -
parse(self, data, header_lines=None)Parse mt940 bank statement file contents. -
parse_amount(self, sign, amount_str)Convert sign (C or D) and amount in string to signed amount (float). -
pre_process_data(self, data)
New fields (1)
-
l10n_ro_unstructured_tag86Textstring='Romania - MT940 Unstructured Tag 86 Pattern'
No public methods.
Loading…
Loading…
Loading…
Loading…
Loading…