Working GUI

v3.1
Griffiths Lott 4 years ago
parent 6a9811fbc0
commit e79e1a6dff
  1. 55
      ILExtract.py
  2. 9
      main.py

@ -65,15 +65,16 @@ class ILReport:
print(f"{self.output_name} failed to process:\n{e}")
self.successful = False
return 1
# try:
# # Save the dataframe as an excel document
# dataframe.to_excel(f"{self.output_location}/{self.output_name}_{dt.now().strftime('%Y%m%d-%H%M')}.xlsx", index = False)
# except Exception as e:
# self.successful = False
# print(f"{self.output_name} failed to save to excel!\n{dataframe}\n{e}")
# return 1
# self.successful = True
return 0
try:
# Save the dataframe as an excel document
dataframe.to_excel(self.output_location, index = False, engine="openpyxl")
except Exception as e:
self.successful = False
print(f"{self.output_location} failed to save to excel!\n{dataframe}\n{e}")
return 1
self.successful = True
return dataframe
def process(self):
try:
# Open the file and read it to a string | errors = 'replace' deals with non UTF-8 characters (no affect on output)
@ -83,19 +84,19 @@ class ILReport:
print(f"Failed to open file: {self.location}\n{ioe}")
self.successful = False
return 1
try:
#try:
# Run the associated method to extract the data and get the dataframe
dataframe = self.x_method(report, self.output_name)
try:
assert(len(dataframe) > 1)
except Exception as e:
print(f"Data Length Error: {self.output_name} is empty:\n{dataframe}")
self.successful = False
return 1
dataframe = self.x_method(report, self.output_location)
try:
assert(len(dataframe) > 1)
except Exception as e:
print(f"{self.output_name} failed to process:\n{e}")
print(f"Data Length Error: {self.output_name} is empty:\n{dataframe}")
self.successful = False
return 1
#except Exception as e:
# print(f"{self.output_name} failed to process:\n{e}")
# self.successful = False
# return 1
return dataframe
@ -178,7 +179,7 @@ def ach(report: str, save_name: str):
if (re.search(contract_number_regex, line[1]) != None) & (re.search(bank_number_regex, line[1]) != None):
[extracted_data_dict[columns[c]].append(data_extractor(c, line[1])) for c in range(0, len(columns))]
dataframe = pd.DataFrame(extracted_data_dict)
dataframe.to_excel(save_name, index=False, engine="xlsxwrtier")
dataframe.to_excel(save_name, index=False)
return dataframe
def disposition(report: str, save_name: str):
@ -203,7 +204,7 @@ def disposition(report: str, save_name: str):
[extracted_data_dict[columns[c]].append(data_extractor(c,line[1])) for c in range(0, len(columns)-1)]
extracted_data_dict["Customer Name"].append(lines[line[0]+1].strip())
dataframe = pd.DataFrame(extracted_data_dict)
dataframe.to_excel(save_name, index=False, engine="xlsxwrtier")
dataframe.to_excel(save_name, index=False)
return dataframe
@ -289,7 +290,7 @@ def gainloss(report: str, save_name: str):
disp_descriptoin.append(" ".join(disp_split[1:]))
df["DISPOSITION CODE"] = disp_code
df["DISPOSITION DESC"] = disp_descriptoin
df.to_excel(save_name, index=False, engine="xlsxwrtier")
df.to_excel(save_name, index=False)
return df
# Works for Net-inv-loans & NIV-after
@ -338,7 +339,7 @@ def net_invest_trial_balance(report: str, save_name: str):
[extracted_data_dict[c[0]].append(data_extractor(c[1], data_section[2])) for c in line2]
[extracted_data_dict[c[0]].append(data_extractor(c[1], data_section[3])) for c in line3]
dataframe = pd.DataFrame(extracted_data_dict)
dataframe.to_excel(save_name, index=False, engine="xlsxwrtier")
dataframe.to_excel(save_name, index=False)
return dataframe
@ -394,7 +395,7 @@ def lockbox(report: str, save_name: str):
# Once it hits, add the name to the dict
extracted_data_dict["CustomerName"].append(data_extractor(7,lines[line[0]+i]))
dataframe = pd.DataFrame(extracted_data_dict)
dataframe.to_excel(save_name, index=False, engine="xlsxwrtier")
dataframe.to_excel(save_name, index=False)
return dataframe
@ -418,7 +419,7 @@ def minv(report: str, save_name: str):
[extracted_data_dict[columns[c]].append(data_extractor(c,line[1],debug=False)) for c in range(0,len(columns))]
#All the list lengths need to be the same so if anything was missed it will fail to build
dataframe = pd.DataFrame(extracted_data_dict)
dataframe.to_excel(save_name, index=False, engine="xlsxwrtier")
dataframe.to_excel(save_name, index=False)
return dataframe
# Good for PUB_WIRES, VMCC, PBP_EPAY, returned check
@ -457,7 +458,7 @@ def payment_transactions(report: str, save_name: str):
inv_no = lines[line[0]+1][79:90].strip()
extracted_data_dict['INV NO'].append(inv_no)
dataframe = pd.DataFrame(extracted_data_dict)
dataframe.to_excel(save_name, index=False, engine="xlsxwrtier")
dataframe.to_excel(save_name, index=False)
return dataframe
@ -498,7 +499,7 @@ def renewal_net_invest_trial_balance(report: str, save_name: str):
[extracted_data_dict[c[0]].append(data_extractor(c[1], data_section[1])) for c in line1]
[extracted_data_dict[c[0]].append(data_extractor(c[1], data_section[2])) for c in line2]
dataframe = pd.DataFrame(extracted_data_dict)
dataframe.to_excel(save_name, index=False, engine="xlsxwrtier")
dataframe.to_excel(save_name, index=False)
return dataframe
@ -536,5 +537,5 @@ def unapplied(report: str, save_name: str):
[extracted_data_dict[columns[c]].append(data_extractor(c,line[1])) for c in range(0,9)]
[extracted_data_dict[columns[8+c]].append(data_extractor(c,lines[line[0]+1])) for c in range(1,len(columns)-8)]
dataframe = pd.DataFrame(extracted_data_dict)
dataframe.to_excel(save_name, index=False, engine="xlsxwrtier")
dataframe.to_excel(save_name, index=False)
return dataframe

@ -31,7 +31,7 @@ class MainWindow(QtWidgets.QMainWindow, Ui_MainWindow):
print(f"Input File: {inFile}")
with open(inFile[0], errors="replace") as inF:
txt = inF.read()
print(txt)
#print(txt)
self.inputFilePreview.setText(txt)
self.inputFile = inFile[0]
inFileEnd = inFile[0].split('/')[-1]
@ -61,6 +61,7 @@ Make sure you select the correct report type before processing!")
self.processReportButton.setEnabled(True)
def process_selection(self):
self.inputFilePreview.setText("Processing file...")
with open(self.inputFile, errors="replace") as inF:
reportString = inF.read()
try:
@ -88,7 +89,7 @@ Make sure you select the correct report type before processing!")
extract_function = ilx.payment_transactions
elif self.reportTypeCB.currentText() == "Wires":
extract_function = ilx.payment_transactions
elif self.reportTypeCB.currentText() == "Returns":
elif self.reportTypeCB.currentText() == "Returned Check":
extract_function = ilx.payment_transactions
dataframe = ilx.ILReport(
@ -96,9 +97,11 @@ Make sure you select the correct report type before processing!")
extraction_function=extract_function,
output_location=self.outputFile,
).process()
dataframe.to_excel(self.outputFile, index=False, engine="xlsxwriter")
#dataframe.to_excel("test_name.xlsx", index=False, engine="xlsxwriter")
smallDF = dataframe.iloc[0:500,:]
self.inputFilePreview.setText(smallDF.to_html(index=False))
print("Fin")
self.openReportButton.setEnabled(True)
except:
error = QtWidgets.QMessageBox()

Loading…
Cancel
Save