diff options
Diffstat (limited to 'python/monthly_interest.py')
| -rw-r--r-- | python/monthly_interest.py | 89 |
1 files changed, 50 insertions, 39 deletions
diff --git a/python/monthly_interest.py b/python/monthly_interest.py index 46c8df17..93844d14 100644 --- a/python/monthly_interest.py +++ b/python/monthly_interest.py @@ -19,12 +19,16 @@ from dateutil.relativedelta import relativedelta logger = logging.getLogger(__name__) -def download_messages(em, counterparty, start, end, auto=False): +def download_messages(em, counterparty, start, end, recon=False): for msg in em.get_msgs( 20, path=["Interest", counterparty], ): - if not auto: + if recon: + base_dir = ( + DAILY_DIR / "Serenitas" / "MonthlyInterest" / f"{counterparty}_reports" + ) + else: if counterparty == "CITI": base_dir = DAILY_DIR / f"{counterparty}_reports" / "Interest Statements" elif counterparty == "BAML": @@ -38,10 +42,6 @@ def download_messages(em, counterparty, start, end, auto=False): / f"{counterparty}_reports" / "Interest Statements" ) - else: - base_dir = ( - DAILY_DIR / "Serenitas" / "MonthlyInterest" / f"{counterparty}_reports" - ) if (msg.datetime_sent.date() >= datetime.date.fromisoformat(start)) and ( msg.datetime_sent.date() <= datetime.date.fromisoformat(end) ): @@ -110,7 +110,6 @@ def get_BAML(g): def get_JPM(g): for e in g: - print(e.text) if "Page" in e.text: return float(value.replace(",", "")) value = e.text @@ -123,14 +122,13 @@ def start_end(year, month): return start, end -def get_interest(delete=False): +def get_interest(counterparties, save=False): interest_amounts = defaultdict(float) - counterparties = ["BNP", "CITI", "CS", "GS", "MS", "BAML", "JPM"] for cp in counterparties: try: func = globals()[f"get_{cp}"] except KeyError: - continue + print(f"Missing cp {cp}") if cp in ("CITI", "MS"): for file in Path( f"/home/serenitas/Daily/Serenitas/MonthlyInterest/{cp}_reports" @@ -143,9 +141,8 @@ def get_interest(delete=False): ).glob("*.pdf"): g = iter(load_pdf(file)) amount = func(g) - print(cp, ":", amount) interest_amounts[cp] = interest_amounts[cp] + amount - if delete: + if not save: try: shutil.rmtree( f"/home/serenitas/Daily/Serenitas/MonthlyInterest/{cp}_reports" @@ -157,33 +154,47 @@ def get_interest(delete=False): ) -em = ExchangeMessage() -counterparties = ["BNP", "CITI", "CS", "GS", "MS", "BAML", "JPM"] +def main(): + em = ExchangeMessage() + counterparties = ["BNP", "CITI", "CS", "GS", "MS", "BAML", "JPM"] + + parser = argparse.ArgumentParser(description="determine sender destination") + parser.add_argument("start") + parser.add_argument("end", default=datetime.date.today()) + parser.add_argument( + "--recon", + action="store_true", + default=False, + help="for automation or for monthly", + ) + parser.add_argument( + "--save", + action="store_true", + default=False, + help="for automation or for monthly", + ) + args = parser.parse_args() + + for cp in counterparties: + download_messages(em, cp, args.start, args.end, recon=args.recon) -parser = argparse.ArgumentParser(description="determine sender destination") -parser.add_argument("start") -parser.add_argument("end", default=datetime.date.today()) -parser.add_argument("--auto", action="store_true", help="for automation or for monthly") -parser.add_argument( - "--delete", action="store_true", default=False, help="for automation or for monthly" -) -args = parser.parse_args() + if args.recon: + df = get_interest(counterparties, save=args.save) + start, end = start_end( + datetime.datetime.today().year, datetime.datetime.today().month - 1 + ) + global interest_recon + interest_recon = pd.merge( + export_data(start, end).groupby("broker").sum(), + df, + how="outer", + left_index=True, + right_index=True, + ) + interest_recon["difference"] = ( + interest_recon["amount"] - interest_recon["monthly_statement"] + ) -for cp in counterparties: - if args.auto: - download_messages(em, cp, args.start, args.end, auto=args.auto) - else: - download_messages(em, cp, args.start, args.end) -df = get_interest(delete=args.delete) -start, end = start_end( - datetime.datetime.today().year, datetime.datetime.today().month - 1 -) -new_df = pd.merge( - export_data(start, end).groupby("broker").sum(), - df, - how="outer", - left_index=True, - right_index=True, -) -new_df["difference"] = new_df["amount"] - new_df["monthly_statement"] +if __name__ == "__main__": + main() |
