diff --git a/docs/importers.rst b/docs/importers.rst index 90bbaba..ca611f1 100644 --- a/docs/importers.rst +++ b/docs/importers.rst @@ -373,3 +373,14 @@ Import PDF from `Viseca One `__ from tariochbctools.importers.viseca import importer as visecaimp CONFIG = [visecaimp.Importer(r"Kontoauszug.*\.pdf", "Assets:Viseca:CHF")] + +BCGE +---- + +Import mt940 from `BCGE `__ + +.. code-block:: python + + from tariochbctools.importers.bcge import importer as bcge + + CONFIG = [bcge.BCGEImporter("/\d+\.mt940", "Assets:BCGE")] diff --git a/src/tariochbctools/importers/bcge/__init__.py b/src/tariochbctools/importers/bcge/__init__.py new file mode 100644 index 0000000..e69de29 diff --git a/src/tariochbctools/importers/bcge/importer.py b/src/tariochbctools/importers/bcge/importer.py new file mode 100644 index 0000000..3742bb6 --- /dev/null +++ b/src/tariochbctools/importers/bcge/importer.py @@ -0,0 +1,29 @@ +import re + +from tariochbctools.importers.general import mt940importer + + +def strip_newline(string): + return string.replace("\n", "").replace("\r", "") + + +class BCGEImporter(mt940importer.Importer): + def prepare_payee(self, trxdata): + transaction_details = strip_newline(trxdata["transaction_details"]) + payee = re.search(r"ORDP/([^/]+)", transaction_details) + if payee is None: + return "" + else: + return payee.group(1) + + def prepare_narration(self, trxdata): + transaction_details = strip_newline(trxdata["transaction_details"]) + extra_details = strip_newline(trxdata["extra_details"]) + beneficiary = re.search(r"/BENM/([^/]+)", transaction_details) + remittance = re.search(r"/REMI/([^/]+)", transaction_details) + narration = [] + if beneficiary is not None: + narration.append("Beneficiary: %s" % beneficiary.group(1)) + if remittance is not None: + narration.append("Remittance: %s" % remittance.group(1)) + return "%s - %s" % (extra_details, ",".join(narration))