1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677787980818283848586878889909192 |
- '''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'])
|