2020-02-26 17:22:13 +01:00
|
|
|
import re
|
|
|
|
|
2021-11-18 19:06:40 +01:00
|
|
|
from ofx_processor.utils.base_ofx import OfxBaseLine, OfxBaseProcessor
|
2020-02-26 17:22:13 +01:00
|
|
|
|
|
|
|
|
2020-03-31 18:32:54 +02:00
|
|
|
class CeLine(OfxBaseLine):
|
|
|
|
def get_memo(self):
|
|
|
|
return self._process_name_and_memo(self.data.name, self.data.memo)[1]
|
|
|
|
|
|
|
|
def get_payee(self):
|
|
|
|
return self._process_name_and_memo(self.data.name, self.data.memo)[0]
|
|
|
|
|
2020-02-26 17:22:13 +01:00
|
|
|
@staticmethod
|
|
|
|
def _process_name_and_memo(name: str, memo: str):
|
|
|
|
name = name.strip()
|
|
|
|
cb_format = re.compile(r"FACT \d{6}$")
|
|
|
|
match = cb_format.search(name)
|
|
|
|
if match:
|
|
|
|
res_name = name[: match.start() - 1].strip()
|
|
|
|
res_memo = name[match.start() - 1 :].strip()
|
|
|
|
else:
|
|
|
|
res_name = name
|
|
|
|
res_memo = memo
|
|
|
|
return res_name, res_memo
|
2020-02-23 09:23:42 +01:00
|
|
|
|
|
|
|
|
2020-03-31 18:32:54 +02:00
|
|
|
class CeProcessor(OfxBaseProcessor):
|
2020-02-23 09:23:42 +01:00
|
|
|
account_name = "ce"
|
2020-05-08 18:02:25 +02:00
|
|
|
command_name = "ce"
|
2020-02-26 17:22:13 +01:00
|
|
|
line_class = CeLine
|
2020-02-23 09:23:42 +01:00
|
|
|
|
2020-05-08 18:02:25 +02:00
|
|
|
|
2021-12-04 16:42:59 +01:00
|
|
|
def main(filename, keep, send_method):
|
2020-05-08 18:02:25 +02:00
|
|
|
"""Import CE bank statement (OFX file)."""
|
2021-12-04 11:35:26 +01:00
|
|
|
processor = CeProcessor(filename)
|
2021-12-04 16:42:59 +01:00
|
|
|
if send_method:
|
|
|
|
processor.send_reconciled_amount(send_method)
|
2021-12-04 11:35:26 +01:00
|
|
|
processor.push_to_ynab(keep)
|