diff --git a/ILExtract.py b/ILExtract.py index b3cfa64..2ff38bc 100644 --- a/ILExtract.py +++ b/ILExtract.py @@ -171,15 +171,39 @@ def ach(report: str, save_name: str): "BankNumber": [], "AccountNumber" : [], "Payment" : [], + "Batch": [], + "Lessor": [], + "PaymentDate": [], } columns = list(extracted_data_dict.keys()) + batches = { + "batch_num": [], + "payment_date": [], + "lessor": [], + "count": [], + "total": [] + } + data_extractor = create_line_divider([19,57,67,82,104]) bank_number_regex = "\d{9}" + batch_num_regex = "BATCH \d{4} TOTAL" for line in enumerate(lines): 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))] + [extracted_data_dict[columns[c]].append(data_extractor(c, line[1])) for c in range(0, len(columns)-3)] + if re.search(batch_num_regex, line[1]) != None: + batches["batch_num"].append(line[1][96:101]) + batches["payment_date"].append(lines[line[0]+2][114:125]) + batches["lessor"].append(extracted_data_dict["ContractNumber"][-1][0:3]) + batches["total"].append(float(line[1][107:125].strip().replace(",", ""))) + batches["count"].append(float(lines[line[0]+6][107:125].strip().replace(",", ""))) + [extracted_data_dict["Batch"].append(batches["batch_num"][-1]) for _ in range(0, (len(extracted_data_dict["BankCode"]) - len(extracted_data_dict["Batch"])))] + [extracted_data_dict["Lessor"].append(batches["lessor"][-1]) for _ in range(0, (len(extracted_data_dict["BankCode"]) - len(extracted_data_dict["Lessor"])))] + [extracted_data_dict["PaymentDate"].append(batches["payment_date"][-1]) for _ in range(0, (len(extracted_data_dict["BankCode"]) - len(extracted_data_dict["PaymentDate"])))] + dataframe = pd.DataFrame(extracted_data_dict) - dataframe.to_excel(save_name, index=False) + with pd.ExcelWriter(save_name) as writer: + dataframe.to_excel(writer, index=False, sheet_name="data") + pd.DataFrame(batches).to_excel(writer, index=False, sheet_name="Summary") return dataframe def disposition(report: str, save_name: str):