aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--python/monthend_interest_recon.py95
1 files changed, 44 insertions, 51 deletions
diff --git a/python/monthend_interest_recon.py b/python/monthend_interest_recon.py
index 93844d14..429511a5 100644
--- a/python/monthend_interest_recon.py
+++ b/python/monthend_interest_recon.py
@@ -19,29 +19,25 @@ from dateutil.relativedelta import relativedelta
logger = logging.getLogger(__name__)
-def download_messages(em, counterparty, start, end, recon=False):
+def get_fpath(counterparty, save=False):
+ if not save:
+ return DAILY_DIR / "Serenitas" / "MonthlyInterest" / f"{counterparty}_reports"
+ elif counterparty == "CITI":
+ return DAILY_DIR / f"{counterparty}_reports" / "Interest Statements"
+ elif counterparty == "BAML":
+ return DAILY_DIR / "Serenitas" / f"BoA_reports" / "Interest Statements"
+ else:
+ return (
+ DAILY_DIR / "Serenitas" / f"{counterparty}_reports" / "Interest Statements"
+ )
+
+
+def download_messages(em, counterparty, start, end, save=False):
for msg in em.get_msgs(
20,
path=["Interest", counterparty],
):
- 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":
- base_dir = (
- DAILY_DIR / "Serenitas" / f"BoA_reports" / "Interest Statements"
- )
- else:
- base_dir = (
- DAILY_DIR
- / "Serenitas"
- / f"{counterparty}_reports"
- / "Interest Statements"
- )
+ base_dir = get_fpath(counterparty, save)
if (msg.datetime_sent.date() >= datetime.date.fromisoformat(start)) and (
msg.datetime_sent.date() <= datetime.date.fromisoformat(end)
):
@@ -71,8 +67,10 @@ def download_messages(em, counterparty, start, end, recon=False):
def get_CS(g):
- for e in g:
+ for e in list(g)[-1]:
if "This interest, margin" in e.text:
+ if value == "No Accruals to Report":
+ return 0
return float(value)
value = e.text
@@ -139,16 +137,9 @@ def get_interest(counterparties, save=False):
for file in Path(
f"/home/serenitas/Daily/Serenitas/MonthlyInterest/{cp}_reports"
).glob("*.pdf"):
- g = iter(load_pdf(file))
+ g = iter(load_pdf(file, pages=True if cp == "CS" else False))
amount = func(g)
interest_amounts[cp] = interest_amounts[cp] + amount
- if not save:
- try:
- shutil.rmtree(
- f"/home/serenitas/Daily/Serenitas/MonthlyInterest/{cp}_reports"
- )
- except FileNotFoundError:
- pass
return pd.DataFrame(interest_amounts, index=[0]).T.rename(
index={"BAML": "BAML_ISDA"}, columns={0: "monthly_statement"}
)
@@ -159,14 +150,10 @@ def main():
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",
+ "start", default=(datetime.date(2021, datetime.date.today().month, 1))
)
+ parser.add_argument("end", default=datetime.date.today())
parser.add_argument(
"--save",
action="store_true",
@@ -176,24 +163,30 @@ def main():
args = parser.parse_args()
for cp in counterparties:
- download_messages(em, cp, args.start, args.end, recon=args.recon)
+ download_messages(em, cp, args.start, args.end, args.save)
- 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"]
- )
+ 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"]
+ )
+ print(interest_recon)
+ accept = input()
+ if accept:
+ df = export_data(start, end)
+ for k, v in interest_recon["difference"].items():
+ df.loc[k].loc["CSH_CASH"] -= v
+ df.to_csv("/home/serenitas/flint/interest_recon.csv")
if __name__ == "__main__":