From 6eed24095dfb75c5903ad244f73fc17e586de8ec Mon Sep 17 00:00:00 2001 From: darkicewolf50 Date: Sun, 22 Oct 2023 01:19:42 -0600 Subject: [PATCH] almost complete with form --- Clean Up Forms/FormData.xlsx | Bin 6191 -> 0 bytes .../.~lock.Reimbursement Data.xlsx# | 1 + Cleaned Up Forms/Reimbursement Data.xlsx | Bin 0 -> 5311 bytes ReinbursementForm.py | 66 ++++++++++++++++-- 4 files changed, 60 insertions(+), 7 deletions(-) delete mode 100644 Clean Up Forms/FormData.xlsx create mode 100644 Cleaned Up Forms/.~lock.Reimbursement Data.xlsx# create mode 100644 Cleaned Up Forms/Reimbursement Data.xlsx diff --git a/Clean Up Forms/FormData.xlsx b/Clean Up Forms/FormData.xlsx deleted file mode 100644 index f4ab5ffe9b3db55280663f813f7930c8e875dd7d..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 6191 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 Is= zS|U+CK~=XY)aZ6K`J!srKiksM_<`sdE~1{jpQK59?MgU$Qn)3WMG@LhCmzp>r*+bk zUxvX7{ohJ_p*;ur1V_gcQp0*!pFWTn_>f@jNS!{lPm z=LMziu&}i5PA6r$-H`zLM7E3TbVMFf&Sq4R_*lO$VT(QlcQf15;HdjHpI$TO!(!oT zH4Td|0B8@U+xqQ@IQF%)meG)1V3CA;{44ymN7bvrBRUXUAj>GlnX(-zf@PDL)0U{T zbU8r$L_Nl0%)4N;koYdH)qLY>bfPf$Yf;QLXQ*YGc|Ycyf)a6PN;4p|z?-|sjLar@ zRz@_0X5Zy?&=cpgIpkhkRqjql(`&3CWbPOVBwu3fZo#s*Ih`nygwrr%MJQUUe$R)F za&hW5PnRW60~5n)99uK!#E(b9Fc5pI8Nt zXs$pZ8--a-TSNNhA=CbaVTlqZlWE5jn;^?9FF76b&Sx8$9=cTVHZf?9(ijS7W14s$ zhzkZ+>FN2#@|OnG^n7{Ho{d*ksP1tW*<^Hae3AXo%ZnJsP&sRGla;V;ZwtWub%2OP>{3X~MRSpWrvCsT1HhT+m)D`-eP2S%bn2TEQ?TL@im5ZOQ zhII@&$qoF;ztGxV8ihEpgIM*CzW}qKsT@-#|dJ;&J_%5j7St?v_ zTCM*yNjs2(M$E5p1>$TtBr~tvWBRUtt-1?lULQavSob@*8Z)HfBbtbJ(0D^iVvp;m zmNB*gUAEj-C?HJ8}`4C=qQLWyK}j|>Vi zV-#X{P>B7_$C%nVnqRf02?%4A4ldHJMa(wYKCd)qQ>UO>jKs5LsfstJ0k8W zt`{c-J36A%kueSHbBp3g1k5MF*%9Ze_2lMD>STLv5SdArYu3&8!}i!V{q ztFX88wu^P#;}T%JlMx#b13I$VqP;H^LdC?gXa73ybZDzx*{voA@&K%NHW`!wb|{3k zV>>w08S+!56)3&-pkrKBKj=9*t1;#;*LHh!yQmjfIEQ{TL$3b0_DQk%J+m?%vA9Ow z$+tU`wDIQSko_{eM$&e@g$)9MHA27K&)T$q3#2@0--dwR9uq|3-A&)N_*x zxYjd@ny*kb>6#e0DSC4VyB3Yd{f{HrUka`&;1vsYvjSc#fS^dR8};y}@Xg$KE$m7B qxA4DZ%D=SyPw{%Kg`M;t5dIat8Y-A5s{jCasFybi;|#K^Z~p~DHZJ`D diff --git a/Cleaned Up Forms/.~lock.Reimbursement Data.xlsx# b/Cleaned Up Forms/.~lock.Reimbursement Data.xlsx# new file mode 100644 index 0000000..61fbb36 --- /dev/null +++ b/Cleaned Up Forms/.~lock.Reimbursement Data.xlsx# @@ -0,0 +1 @@ +,brock,brock-XPS-13-9350,22.10.2023 00:49,file:///home/brock/.config/libreoffice/4; \ No newline at end of file diff --git a/Cleaned Up Forms/Reimbursement Data.xlsx b/Cleaned Up Forms/Reimbursement Data.xlsx new file mode 100644 index 0000000000000000000000000000000000000000..794496f141a5ae9d6aea5d6ae710c066b7d2b9d5 GIT binary patch literal 5311 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 BLc;(6 literal 0 HcmV?d00001 diff --git a/ReinbursementForm.py b/ReinbursementForm.py index f6187a6..f2ffc36 100644 --- a/ReinbursementForm.py +++ b/ReinbursementForm.py @@ -1,6 +1,7 @@ import pandas as pd import os +from datetime import datetime from tkinter import * from tkinter import messagebox from tkinter import filedialog as fd @@ -50,18 +51,69 @@ def submit_window(): open_button = Button(form_window, text='Browse...' , command=lambda:select_file(selected_file, receipt_file)).grid(row=row_counter, column=1) row_counter += 1 - - Button(form_window, text='Submit', command=lambda:submitted(), anchor='w', justify='left').grid(row=row_counter) + Button(form_window, text='Submit', command=lambda:submitted(form_window, person_name, amount_CAD, reason, selected_file), anchor='w', justify='left').grid(row=row_counter) row_counter += 1 - mainloop() + form_window.mainloop() + +def submitted(window, name_submitted, total_money, reason, proof_of_payment): + current_time = datetime.now() + file_submitted_name = f'{name_submitted.get()}{current_time.month:02d}{current_time.day:02d}{current_time.year}{total_money.get()}' + #file_submitted_name = proof_of_payment.cget("text") + + file_name = "Reimbursement Data.xlsx" + subdirectory_name = "Cleaned Up Forms" + + file_path = os.path.join(os.getcwd(), subdirectory_name, file_name) + + if not os.path.exists(file_path): + messagebox.showerror( + title="Critical Error", + message="expected file path not found, and expected file not found\n please contact software/logistics team lead" + ) + window.destroy() + os._exit(1) + + appended_data = { + 'Name': name_submitted.get(), + 'Final Total $CAD': total_money.get(), + 'Reason(optional)': reason.get(), + 'Reimbursed (Y/N)': 'N', + 'Receipt File Name': file_submitted_name + } + new_data = pd.DataFrame([appended_data], index=[0]) + excel_file_path = file_path + + # Read the existing data from the Excel file + existing_data = pd.read_excel(excel_file_path) + + # Combine the existing data with the new data + combined_data = pd.concat([existing_data, new_data], ignore_index=True) + + # Write the combined data back to the Excel file without changing column sizes + combined_data.to_excel(excel_file_path, index=False) + + file_submit_path = os.path.join(os.getcwd(), subdirectory_name) + file_extension = os.path.splitext(file_submitted_name)[1] + file_submit = f'{file_submitted_name}{file_extension}' + + new_file_name = os.path.join(file_submit_path, file_submit) + with open(receipt_file, 'r') as input_file: + # Read the contents of the input file + file_contents = input_file.read() + + # Open the new file for writing + with open(file_submit, 'w') as new_file: + # Write the contents to the new file + new_file.write(file_contents) + + -def submitted(): - #add pandas for excell file input messagebox.showinfo(title='Submitted', message='You have successfully submitted') + return -def select_file(tk_window, select_file): +def select_file(tk_window, selected_file): filetypes = ( ('PDF file', '*.pdf'), ('PNG file', '*.png'), @@ -77,7 +129,7 @@ def select_file(tk_window, select_file): title='Selected File', message=file_name ) - select_file = file_name + receipt_file = file_name formatted_file_name = os.path.basename(file_name) tk_window["text"] = formatted_file_name else: