aboutsummaryrefslogtreecommitdiffstats
path: root/python/monthly_interest.py
diff options
context:
space:
mode:
Diffstat (limited to 'python/monthly_interest.py')
-rw-r--r--python/monthly_interest.py89
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()