main.py 1.6 KB

123456789101112131415161718192021222324252627282930313233343536373839404142
  1. import re
  2. import sys
  3. from random import randint
  4. from datetime import date
  5. class CsvToMt940(object):
  6. def __init__(self):
  7. try:
  8. self.st_date = sys.argv[5]
  9. except IndexError:
  10. self.st_date = input('statement date (format: YYMMDD)==')
  11. if self.st_date == '':
  12. self.st_date = date.today().strftime('%y%m%d')
  13. # self.st_date = '200317'
  14. self.st_nr = randint(100000000, 199999999)
  15. def dig_it(self, search_in, fl_point=100, pattern=r'\d+'):
  16. if re.search('-', search_in):
  17. if len(search_in) == 4:
  18. fl_point=10
  19. return -int(''.join(re.findall(pattern, search_in))[:-1]) +\
  20. -int(''.join(re.findall(pattern, search_in))[-1:]) / fl_point
  21. else:
  22. return -int(''.join(re.findall(pattern, search_in))[:-2]) +\
  23. -int(''.join(re.findall(pattern, search_in))[-2:]) / fl_point
  24. else:
  25. if len(search_in) == 3:
  26. fl_point=10
  27. return int(''.join(re.findall(pattern, search_in))[:-1]) +\
  28. int(''.join(re.findall(pattern, search_in))[-1:]) / fl_point
  29. else:
  30. return int(''.join(re.findall(pattern, search_in))[:-2]) +\
  31. int(''.join(re.findall(pattern, search_in))[-2:]) / fl_point
  32. class TypeId:
  33. types = 'comis[a-z]*|commis[a-z]*|smart|fee|TFD|transfond|Int.[A-Za-z]*| \
  34. Abonament[A-Za-z0-9]*|COVER[A-Za-z]*|S21[A-Za-z0-9]*|SC[0-9]*'
  35. COMMISION = 'NCOM'
  36. TRANSFER = 'NTRF'
  37. FEXCHANGE = 'NFEX'