test_csv2mentor.py 4.1 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576777879808182838485868788899091929394959697
  1. '''Created Sep 9, 2023 deeejas'''
  2. import unittest
  3. import os
  4. from pymt940 import (PaymentsProcessorBtrl, private, utils, languages)
  5. from jinja2 import (Environment, PackageLoader)
  6. import pandas as pd
  7. home = os.path.expanduser('~')
  8. downloads_dir = os.path.join(home, 'Downloads', 'mentor', 'import', 'MZK')
  9. currency = 'ron'
  10. # currency = 'eur'
  11. # currency = 'usd'
  12. # currency = 'huf'
  13. acc_currency = 'accountron'
  14. # acc_currency = 'accounteur'
  15. # acc_currency = 'accountusd'
  16. # acc_currency = 'accounthuf'
  17. class CsvTest(unittest.TestCase):
  18. templates = Environment(loader=PackageLoader('pymt940', 'templates'))
  19. body_template = 'body_incomes.txt'
  20. # body_template = 'body_payments.txt'
  21. template = templates.get_template(body_template)
  22. processor = PaymentsProcessorBtrl(os.path.join(downloads_dir, private.RIDEW[currency]), private.RIDEW['name'],
  23. account_name=private.RIDEW[acc_currency]['name'],
  24. account_number=private.RIDEW[acc_currency]['number'],
  25. currency=private.RIDEW[acc_currency]['currency'],
  26. account_location=private.RIDEW['location'],
  27. account_agency=private.RIDEW['agency'],
  28. account_symbol=private.RIDEW['symbol'])
  29. df = pd.read_csv(r'c:\Users\vnc-console\Downloads\mentor\import\RIDEWAVE\RO69BTRLRONCRT0CP9775401.csv ', skiprows=14, keep_default_na=False).astype({'Sold contabil': 'object'})
  30. def test_df(self):
  31. # print(df['Description'])
  32. # desc = [d for d in self.df['Description']]
  33. # text = desc[2]
  34. # first_semicolon_index_from_end = text.rfind(';')
  35. # second_semicolon_index_from_end = text.rfind(';', 0, first_semicolon_index_from_end)
  36. # third_semicolon_index_from_end = text.rfind(';', 0, second_semicolon_index_from_end)
  37. self.df['Name'] = self.df['Descriere'].apply(utils.re_check)
  38. self.df['Name'] = self.df['Name'].apply(utils.clean_name)
  39. print(self.df['Name'])
  40. names = [name for name in self.df['Name'] if name != '']
  41. # print(names)
  42. df_dict = utils.get_partners(self.processor.partner_data)
  43. fiscal_codes = df_dict['CodFiscal']
  44. mentor_names = df_dict['Denumire']
  45. # print(mentor_names)
  46. for name2 in names:
  47. # index_ = name2.count(' ')
  48. # nname = name2 # ' '.join(name2.split()[:index_]).upper()
  49. # print(name2)
  50. for name in mentor_names:
  51. # index_ = name.count(' ')
  52. # if ' '.join(name.split()[:index_]).upper().count(' ') < 3:
  53. # index_ = 2
  54. # elif ' '.join(name.split()[:index_]).upper().count(' ') < 2:
  55. # index_ = 1
  56. if name2.upper() in name.upper():
  57. print(name)
  58. # for index, row in self.df.iterrows():
  59. # if row['Name'] == name2:
  60. # print(name)
  61. # df.loc[index, 'Name'] = name
  62. def test_process_income(self):
  63. df = self.processor.process_income_data(lang=languages.LANG.EN)
  64. print(df['symbols'], df['Name'], df['Amount'])
  65. data = self.processor.to_dict(kind='TotalIncasari', month_back=1,
  66. std_client='MOZAIK CONSULTING SRL', acc_symbol=411.01)
  67. output = self.template.render(data)
  68. print(output)
  69. def test_process_payment(self):
  70. df = self.processor.process_payment_data(lang=languages.LANG.EN)
  71. # print(df['symbols'], df['Name'], df['Amount'], df['types'])
  72. data = self.processor.to_dict(kind='TotalPlati', month_back=1,
  73. std_client='MOZAIK CONSULTING SRL', acc_symbol=401)
  74. output = self.template.render(data)
  75. print(output)
  76. def test_mentor_names(self):
  77. df_dict = utils.get_partners(self.processor.partner_data)
  78. fiscal_codes = df_dict['CodFiscal']
  79. mentor_names = df_dict['Denumire']
  80. print(mentor_names)
  81. if __name__ == "__main__":
  82. CsvTest().test_df()
  83. # unittest.main()