forked from gaugendre/ofx-processor
Update CE processing
This commit is contained in:
parent
0354b25bce
commit
40331a39bc
2 changed files with 37 additions and 19 deletions
|
@ -7,22 +7,6 @@ from ofxtools import OFXTree
|
|||
from ofx_processor.utils.processor import Processor, Line
|
||||
|
||||
|
||||
def _process_name_and_memo(name, memo):
|
||||
if "CB****" in name:
|
||||
conversion = re.compile(r"\d+,\d{2}[a-zA-Z]{3}")
|
||||
match = conversion.search(memo)
|
||||
if match:
|
||||
res_name = memo[: match.start() - 1]
|
||||
res_memo = name + memo[match.start() - 1 :]
|
||||
else:
|
||||
res_name = memo
|
||||
res_memo = name
|
||||
|
||||
return res_name, res_memo
|
||||
|
||||
return name, memo
|
||||
|
||||
|
||||
class BpvfLine(Line):
|
||||
def __init__(self, data=None):
|
||||
super(BpvfLine, self).__init__(data)
|
||||
|
@ -34,10 +18,26 @@ class BpvfLine(Line):
|
|||
return int(self.data.trnamt * 1000)
|
||||
|
||||
def get_memo(self):
|
||||
return _process_name_and_memo(self.data.name, self.data.memo)[1]
|
||||
return self._process_name_and_memo(self.data.name, self.data.memo)[1]
|
||||
|
||||
def get_payee(self):
|
||||
return _process_name_and_memo(self.data.name, self.data.memo)[0]
|
||||
return self._process_name_and_memo(self.data.name, self.data.memo)[0]
|
||||
|
||||
@staticmethod
|
||||
def _process_name_and_memo(name: str, memo: str):
|
||||
if "CB****" in name:
|
||||
conversion = re.compile(r"\d+,\d{2}[a-zA-Z]{3}")
|
||||
match = conversion.search(memo)
|
||||
if match:
|
||||
res_name = memo[: match.start() - 1]
|
||||
res_memo = name + memo[match.start() - 1 :]
|
||||
else:
|
||||
res_name = memo
|
||||
res_memo = name
|
||||
|
||||
return res_name, res_memo
|
||||
|
||||
return name, memo
|
||||
|
||||
|
||||
class BpvfProcessor(Processor):
|
||||
|
|
|
@ -1,10 +1,28 @@
|
|||
import re
|
||||
|
||||
import click
|
||||
|
||||
from ofx_processor.processors.bpvf import BpvfProcessor
|
||||
from ofx_processor.processors.bpvf import BpvfProcessor, BpvfLine
|
||||
|
||||
|
||||
class CeLine(BpvfLine):
|
||||
@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
|
||||
|
||||
|
||||
class CeProcessor(BpvfProcessor):
|
||||
account_name = "ce"
|
||||
line_class = CeLine
|
||||
|
||||
@staticmethod
|
||||
@click.command("ce", help="Process CE bank statement (OFX)")
|
||||
|
|
Loading…
Reference in a new issue