import re import sys from random import randint from datetime import date class CsvToMt940(object): def __init__(self): try: self.st_date = sys.argv[5] except IndexError: self.st_date = input('statement date (format: YYMMDD)==') if self.st_date == '': self.st_date = date.today().strftime('%y%m%d') # self.st_date = '200317' self.st_nr = randint(100000000, 199999999) def dig_it(self, search_in, fl_point=100, pattern=r'\d+'): if re.search('-', search_in): if len(search_in) == 4: fl_point=10 return -int(''.join(re.findall(pattern, search_in))[:-1]) +\ -int(''.join(re.findall(pattern, search_in))[-1:]) / fl_point else: return -int(''.join(re.findall(pattern, search_in))[:-2]) +\ -int(''.join(re.findall(pattern, search_in))[-2:]) / fl_point else: if len(search_in) == 3: fl_point=10 return int(''.join(re.findall(pattern, search_in))[:-1]) +\ int(''.join(re.findall(pattern, search_in))[-1:]) / fl_point else: return int(''.join(re.findall(pattern, search_in))[:-2]) +\ int(''.join(re.findall(pattern, search_in))[-2:]) / fl_point class TypeId: types = 'comis[a-z]*|commis[a-z]*|smart|fee|TFD|transfond|Int.[A-Za-z]*| \ Abonament[A-Za-z0-9]*|COVER[A-Za-z]*|S21[A-Za-z0-9]*|SC[0-9]*' COMMISION = 'NCOM' TRANSFER = 'NTRF' FEXCHANGE = 'NFEX'