'''Created Sep 9, 2023 deeejas''' import unittest import os from pymt940 import (PaymentsProcessorBtrl, private, utils, languages) from jinja2 import (Environment, PackageLoader) import pandas as pd home = os.path.expanduser('~') downloads_dir = os.path.join(home, 'Downloads', 'mentor', 'import', 'MZK') currency = 'ron' # currency = 'eur' # currency = 'usd' # currency = 'huf' acc_currency = 'accountron' # acc_currency = 'accounteur' # acc_currency = 'accountusd' # acc_currency = 'accounthuf' class CsvTest(unittest.TestCase): templates = Environment(loader=PackageLoader('pymt940', 'templates')) body_template = 'body_incomes.txt' # body_template = 'body_payments.txt' template = templates.get_template(body_template) processor = PaymentsProcessorBtrl(os.path.join(downloads_dir, private.RIDEW[currency]), private.RIDEW['name'], account_name=private.RIDEW[acc_currency]['name'], account_number=private.RIDEW[acc_currency]['number'], currency=private.RIDEW[acc_currency]['currency'], account_location=private.RIDEW['location'], account_agency=private.RIDEW['agency'], account_symbol=private.RIDEW['symbol']) 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'}) def test_df(self): # print(df['Description']) # desc = [d for d in self.df['Description']] # text = desc[2] # first_semicolon_index_from_end = text.rfind(';') # second_semicolon_index_from_end = text.rfind(';', 0, first_semicolon_index_from_end) # third_semicolon_index_from_end = text.rfind(';', 0, second_semicolon_index_from_end) self.df['Name'] = self.df['Descriere'].apply(utils.re_check) self.df['Name'] = self.df['Name'].apply(utils.clean_name) print(self.df['Name']) names = [name for name in self.df['Name'] if name != ''] # print(names) df_dict = utils.get_partners(self.processor.partner_data) fiscal_codes = df_dict['CodFiscal'] mentor_names = df_dict['Denumire'] # print(mentor_names) for name2 in names: # index_ = name2.count(' ') # nname = name2 # ' '.join(name2.split()[:index_]).upper() # print(name2) for name in mentor_names: # index_ = name.count(' ') # if ' '.join(name.split()[:index_]).upper().count(' ') < 3: # index_ = 2 # elif ' '.join(name.split()[:index_]).upper().count(' ') < 2: # index_ = 1 if name2.upper() in name.upper(): print(name) # for index, row in self.df.iterrows(): # if row['Name'] == name2: # print(name) # df.loc[index, 'Name'] = name def test_process_income(self): df = self.processor.process_income_data(lang=languages.LANG.EN) print(df['symbols'], df['Name'], df['Amount']) data = self.processor.to_dict(kind='TotalIncasari', month_back=1, std_client='MOZAIK CONSULTING SRL', acc_symbol=411.01) output = self.template.render(data) print(output) def test_process_payment(self): df = self.processor.process_payment_data(lang=languages.LANG.EN) # print(df['symbols'], df['Name'], df['Amount'], df['types']) data = self.processor.to_dict(kind='TotalPlati', month_back=1, std_client='MOZAIK CONSULTING SRL', acc_symbol=401) output = self.template.render(data) print(output) def test_mentor_names(self): df_dict = utils.get_partners(self.processor.partner_data) fiscal_codes = df_dict['CodFiscal'] mentor_names = df_dict['Denumire'] print(mentor_names) if __name__ == "__main__": CsvTest().test_df() # unittest.main()