From cec2c097018d868bb04f4ce25960934d755cc113 Mon Sep 17 00:00:00 2001 From: ydb5755 Date: Wed, 6 Nov 2024 09:18:13 +0200 Subject: [PATCH] CC statement work --- .../Export_10_2024.xlsx | Bin 0 -> 10575 bytes .../Credit_Card_Statements/Export_9_2024.xlsx | Bin 0 -> 10575 bytes instance/site.db | Bin 40960 -> 40960 bytes pythonFiles/breaking_up_cc_statements.py | 93 ++++++++++++++++++ 4 files changed, 93 insertions(+) create mode 100644 app/static/Credit_Card_Statements/Export_10_2024.xlsx create mode 100644 app/static/Credit_Card_Statements/Export_9_2024.xlsx create mode 100644 pythonFiles/breaking_up_cc_statements.py diff --git a/app/static/Credit_Card_Statements/Export_10_2024.xlsx b/app/static/Credit_Card_Statements/Export_10_2024.xlsx new file mode 100644 index 0000000000000000000000000000000000000000..6eda488e9eb8ffbbbb1425692bee44e38a86112a GIT binary patch literal 10575 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 literal 0 HcmV?d00001 diff --git a/app/static/Credit_Card_Statements/Export_9_2024.xlsx b/app/static/Credit_Card_Statements/Export_9_2024.xlsx new file mode 100644 index 0000000000000000000000000000000000000000..6eda488e9eb8ffbbbb1425692bee44e38a86112a GIT binary patch literal 10575 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 literal 0 HcmV?d00001 diff --git a/instance/site.db b/instance/site.db index 01de8f79fab7bf8c35adab5a3f815a6a17fb4f75..47e95770546923cc10af380974d1ae3293c7ee37 100644 GIT binary patch delta 1297 zcmZoTz|?SnX@WH4nTayajAu3`EYW9{;yW^#-N1zL$Yw!-4n9tHDP{&yr_|J<&1daY z1;scUgBTbX*c*iz7#KMGdAZdXbhz%bPUZ-3kl<$J>EkKj3FNxZW5UDFeUiJKJC}PC zxAn%xdaimEH5LYM#_LP2PrbhA`kd=Cug}$0xIX#%yz4U+uFt-{;`)s1Gp{cckXK@1 zaAdqb`}&;ga}=&mygu{#jO$acPgl4;{rc4F6R%GZ~!@cPv23$9NEDVlVB znz}9vLm(rXpu+Vf*XLZHdVQgSuEO;x_1C8=U0*KB{e^+knBn@Q>k`^5491MtCxOhk zK40PbjO%l*FTXzZ`dnsBEf$7QMlffI63FU#*C&A7aDDRiRl3)wT%US<#q|l-S1DXy zE+(qO!l29OnDO;JQJi5?s4trisy3SQsLs{e8+i_vzF7IQ;p*k z$8wGy4sQ0>{7?B$@vq{~;rHa%;}>Q>$G(ZZpFM}&lUn zTnr$vv8|o8UcQN!lYx<4l97dpm+3(9jH-w3>qLq(QnOQYRMMXQ3}AgN*~G)iz{n`c z$imFavQZ3)ajilSH*cb#LN_0U=WKKvoad9#*GD$MBu<$bdNruSDfaDmu z>{})4n>Z1MpM%J1gJczD6&0E|poTN^G9Ac05%{`QZU;n(7D!2uZmB{OJCYLTSGEO< zuX90^Xo8gRJS$abVnb3=p>pQTnKNf0N;J}**8dC$`p_xa#0qsJ6ED-B9Ehws$N=Wo zvP~>d{T#eZ2Q(yS&YU@O7DR;_NQFWZGgKbr%5<|d5P-<5g5=p-CMq;BAt@<3qw)1n ze+)!P3OJCnF27W0VnkBYz7G^Z3=lQSAY=H?AC+ukK!nvRh@28gj_2YPsm6M!514tG V{(B%vS|ssp-kG4qK3R1BYXC|X_tyXb delta 222 zcmZoTz|?SnX@WH4%84@0j4L-LEYW9{{P#~LU^X8a9W)?q&oeYyr8iI7#+u3v2 zeb_bG`Pf#nWwUv+zGpqdx{)=Cm7Qe=%M6wZmRJ@C7F8B5<}=J|Hn%lAVBS1qb}jSf z$L)$7i&+W;n4=h8Z)Q*U%P+#g_ltr5DgP<{Rs1>pp8R_J!hF9r3kp2qlN4*L=Vahz ct(06UIB>Hq)$ diff --git a/pythonFiles/breaking_up_cc_statements.py b/pythonFiles/breaking_up_cc_statements.py new file mode 100644 index 0000000..c46e9f7 --- /dev/null +++ b/pythonFiles/breaking_up_cc_statements.py @@ -0,0 +1,93 @@ +import os +from openpyxl import load_workbook +import pandas as pd + + +work_dir = 'C:/Users/Lenovo/Desktop/CC_Statements_xlsx' +target_dir = 'C:/Users/Lenovo/Desktop/Temp_Target' +target_file = 'Export_4_2023.xlsx' +card_names = {'מסטרקארד - 3235':'3235', 'מסטרקארד - 3349':'3349', 'גולד - מסטרקארד - 3047 *':'3047'} + +def process_directory(): + dir = os.listdir(work_dir) + for file in dir: + process_file(file) + +def process_file(file:str): + wb = load_workbook(f'{work_dir}/{file}') + + ws = transform_generator(wb.active) + + for card, card_num in card_names.items(): + process_card(card, card_num, file, ws) + +def process_card( + card:str, + card_num:str, + file:str, + data:list[list[str]] +): + start = None + end = None + lines_to_skip = [] + for row_num, row in enumerate(data): + if row[0] == card: + if data[row_num + 1][0] == 'אין נתונים להצגה': + return None + start = row_num + 3 + break + for row_num, row in enumerate(data[start + 1:]): + if row[0] in card_names: + end = row_num - 2 + break + for row_num, row in enumerate(data[start:end]): + if row[0] == 'עסקאות בחו˝ל': + lines_to_skip = list(range(row_num - 1, row_num + 2)) + # for chul_line_num, chul_line in enumerate(data[row_num:end]): + # if chul_line[0] == None: + # lines_to_skip.append(chul_line_num) + if end == None: + end = len(data) + + if start and end: + new_file_name = name_file(og_file=file, card_num=card_num) + build_new_file(new_file_name, data[start:end]) + + return True + +def name_file(og_file:str, card_num:str): + name, ext = og_file.split('.') + name += f'_{card_num}' + return '.'.join([name, ext]) + + +def transform_generator(ws): + return [[x.value for x in row] for row in ws.rows] + +def confirm_has_values(rows:list): + total = 0 + for row in rows: + total += int(row[0]) + return True if total > 0 else False + +def build_new_file(name_of_new_file:str, list_of_rows:list[str]): + new_columns_with_indexes = {'Amount':4, 'Vendor':1, 'Confirmation Code':6} + results = [] + for row in list_of_rows: + if row[new_columns_with_indexes['Amount']] == 0: + continue + relevant_values = [] + for index in new_columns_with_indexes.values(): + relevant_values.append(row[index]) + results.append(relevant_values) + if confirm_has_values(relevant_values): + # Convert the list of lists to a DataFrame + df = pd.DataFrame(results, columns=['Amount', 'Vendor', 'Confirmation Code']) + + # Write the DataFrame to an Excel file + df.to_excel(f'{target_dir}/{name_of_new_file}', index=False) + +if __name__ == '__main__': + print(list(range(4,6))) + # process_file(target_file) + \ No newline at end of file