|
|
|
|
@ -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): |
|
|
|
|
|