'''Created 9 Jun 2023 Levi''' # import re from datetime import date import pandas as pd from jinja2 import (Environment, PackageLoader) from pymt940.utils import (dig_it, re_check, get_partners, get_last_month) from . import private templates = Environment(loader=PackageLoader('pymt940', 'templates')) template = templates.get_template('body_incomes.txt') df_dict = get_partners(private.MZK) fiscal_codes = df_dict['CodFiscal'] mentor_names = df_dict['Denumire'] fiscal_code_dict = {k: v for k, v in zip(mentor_names, fiscal_codes)} # parts_df = pd.DataFrame(df_dict) payments_df = pd.read_csv(private.MZKCSV, skiprows=14, keep_default_na=False).astype({'Balance': 'object'}) payments_df['Credit'].replace(' ', '', regex=True, inplace=True) payments_df['Debit'].replace(' ', '', regex=True, inplace=True) income_df = payments_df.copy() # payments_df = payments_df.loc[payments_df['Debit'] != ''] income_df = income_df.loc[income_df['Credit'] != ''] income_df['Amount'] = income_df['Credit'].map(str).apply(dig_it) income_df['Name'] = income_df['Description'].apply(re_check) income_df['Transaction details'] = income_df['Description'] income_df['day'] = income_df['Transaction date'].str.slice(0, 2) # item_count = income_df['Credit'].count() # incas_list = list(range(item_count)) # names = [name for name in income_df['Name']] unique_count = income_df['day'].nunique() doc_list = list(range(1, unique_count + 1)) days = income_df['day'].unique().tolist() trans = [] counts = [] cl_names = [] obs = [] for day in days: values = income_df.loc[income_df['day'] == day, 'Amount'].tolist() trans.append(values) trans_dict = {k: v for k, v in zip(days, trans)} for day in days: values = income_df.loc[income_df['day'] == day, 'Name'].tolist() for i in range(len(values)): if values[i] not in mentor_names: values[i] = '' cl_names.append(values) names_dict = {k: v for k, v in zip(days, cl_names)} for day in days: values = income_df.loc[income_df['day'] == day, 'Transaction details'].tolist() obs.append(values) obs_dict = {k: v for k, v in zip(days, obs)} for day in days: value_counts = income_df['day'].value_counts() count_of_value = value_counts[day] counts.append(count_of_value) # payments = income_df['Amount'].tolist() # obs = income_df['Transaction details'].tolist() # selected_value = income_df.loc[income_df['Name'] == 'BLOOM CREATIVE ART SRL', 'day'].iloc[0] data = {'AnLucru': date.today().year, 'LunaLucru': get_last_month(0), 'TotalDocumente': unique_count, 'documents': doc_list, 'days': days, 'TotalIncasari': counts, 'incasari': counts, 'clients': names_dict, 'cods': fiscal_code_dict, 'amount': trans_dict, 'cont': '411.01', 'std_client': 'MOZAIK CONSULTING SRL', 'obs': obs_dict } if __name__ == '__main__': # mentor_txt() # print(fiscal_code_dict['REMCO SRL']) # print(days) output = template.render(data) print(output) output_file = 'mentor_incasari.txt' with open(output_file, 'w') as text: text.write(output) # remove_indentations(output_file) # print(item_count) # print(income_df['day'])