You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
61 lines
1.7 KiB
61 lines
1.7 KiB
from pathlib import Path
|
|
from dataclasses import dataclass
|
|
import os
|
|
from datetime import datetime, timedelta, date
|
|
|
|
import shutil as sh
|
|
|
|
class Report:
|
|
|
|
def __init__(self, sample_file: str, sample_folder: str):
|
|
self.sample_file: Path = Path(sample_file)
|
|
self.folder_name: Path = Path(sample_folder)
|
|
|
|
def create_record(self, location: Path) -> Path|None:
|
|
|
|
# Create the folder
|
|
fp = Path(location, self.folder_name)
|
|
|
|
|
|
|
|
def main():
|
|
|
|
folders = [
|
|
Report(r"InputFiles\2022.09.02_ACH_C", r"ACH"),
|
|
Report(r"InputFiles\2022.09.02_PROGPAY_BER", r"CHECKS LIVE"),
|
|
Report(r"InputFiles\2022.09.01_VMCC_BER", r"CREDIT CARDS"),
|
|
Report(r"InputFiles\2022.09.02_DISPOSITION_PM_C", r"DISPOSITION REPORTING"),
|
|
Report(r"InputFiles\2022.09.02_LOCKBOX_094_C", r"LOCKBOX"),
|
|
Report(r"InputFiles\2022.09.02_PBP_EPAY_DPS_BER", r"PAY BY PHONE"),
|
|
Report(r"InputFiles\2022.12.30_PBP_EPAY_RETURNS_BER", r"RETURN REPORTING"),
|
|
Report(r"InputFiles\2022.09.01_PUB_WIRES_BER", r"WIRES"),
|
|
]
|
|
|
|
folder_date = date(2023,1,1)
|
|
|
|
while folder_date < date(2024,1,1):
|
|
|
|
year = folder_date.strftime("%Y")
|
|
month = folder_date.strftime("%Y.%m")
|
|
day = folder_date.strftime("%Y.%m.%d")
|
|
|
|
date_path = Path(year, month, day)
|
|
|
|
for rp in folders:
|
|
|
|
|
|
# Create folder
|
|
fold_p = Path(date_path, rp.folder_name)
|
|
print(f"Creating filepath: {fold_p}")
|
|
os.makedirs(fold_p, exist_ok=True)
|
|
|
|
file_p = Path(fold_p, rp.sample_file.name)
|
|
print(f"Cp {rp.sample_file} into {file_p}")
|
|
|
|
sh.copyfile(rp.sample_file, file_p )
|
|
|
|
folder_date += timedelta(days=1)
|
|
|
|
if __name__ == "__main__":
|
|
|
|
main() |