test_monet_import.py 2.1 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455
  1. '''
  2. Created on 13 May 2024 @author: vnc-console
  3. '''
  4. import unittest
  5. import os
  6. import datetime
  7. import pandas as pd
  8. from jinja2 import (Environment, PackageLoader)
  9. from py_mentor_imports import (Monetar, convert_date_format, get_last_month)
  10. class Test(unittest.TestCase):
  11. templates = Environment(loader=PackageLoader('py_mentor_imports', 'templates'))
  12. template = templates.get_template('monetars.txt')
  13. def test_monet(self) -> None:
  14. path = r'f:\Gdrive\Misc\Dosar-Contabilitate\Ridewave\2024_07\raport_z\20240807152122_from_010724_to_310724__from_87_to_106.p7b.xlsx'
  15. df = pd.read_excel(path)
  16. df = df.drop(['Unnamed: 1', 'Unnamed: 2', 'Unnamed: 3',
  17. 'Unnamed: 5', 'Unnamed: 6', 'Unnamed: 7',
  18. 'Unnamed: 9', 'Unnamed: 11', 'Unnamed: 13'
  19. ], axis=1)
  20. df['4. Data raport Z'] = df['4. Data raport Z'].apply(convert_date_format)
  21. # print(df['4. Data raport Z'])
  22. monetars = []
  23. for zi, date, number, value in zip(df['1. Zi fiscala'], df['4. Data raport Z'], df['5. Numar\nbonuri'], df['6. Valoare\ntotala']):
  24. monetar = Monetar(zi_fiscala=zi, data_raport_z=date, numar_bonuri=number, value=value)
  25. monetars.append(monetar)
  26. first_nr_doc: int = int(input('number of the first doc'))
  27. data = {'AnLucru': datetime.date.today().year,
  28. 'LunaLucru': get_last_month(1),
  29. 'TotalMonetare': len(df),
  30. 'documents': monetars,
  31. 'FirstNrDoc': first_nr_doc,
  32. # 'NumarBonuri': [],
  33. # 'Data': [],
  34. # 'Observatii': [],
  35. 'Code': 'TRANSPMF'
  36. # 'Pret': []
  37. }
  38. output = self.template.render(data)
  39. print(output)
  40. home = os.path.expanduser('~')
  41. downloads_dir = os.path.join(home, 'Downloads', 'mentor', 'import', 'RIDEWAVE')
  42. output_file = os.path.join(downloads_dir, 'monetare.txt')
  43. with open(output_file, 'w') as text:
  44. text.write(output)
  45. if __name__ == "__main__":
  46. Test().test_monet()
  47. # unittest.main()