diff options
| -rw-r--r-- | python/citco_ops/utils.py | 14 | ||||
| -rw-r--r-- | python/scotia_monitor.py | 26 |
2 files changed, 40 insertions, 0 deletions
diff --git a/python/citco_ops/utils.py b/python/citco_ops/utils.py index f27cae93..af5c69fe 100644 --- a/python/citco_ops/utils.py +++ b/python/citco_ops/utils.py @@ -206,6 +206,7 @@ _recipients = { "SERENITAS.ops@sscinc.com", ), "BAML_FCM": ("footc_margin_csr_amrs@bofa.com",), + "NYOPS": ("nyops@lmcg.com",), } @@ -313,3 +314,16 @@ class BamlFcmNotify: to_recipients=_recipients["BAML_FCM"], cc_recipients=("nyops@lmcg.com",), ) + + +@dataclass +class EmailOps: + _em = ExchangeMessage() + + @classmethod + def email_boston(cls, date): + cls._em.send_email( + f"Missing Cash Balance for Scotia {date}", + f"Please provide cash balance for Scotia for {date} in Blotter.\n\nThanks!", + to_recipients=_recipients["NYOPS"], + ) diff --git a/python/scotia_monitor.py b/python/scotia_monitor.py new file mode 100644 index 00000000..90b6b2fb --- /dev/null +++ b/python/scotia_monitor.py @@ -0,0 +1,26 @@ +import datetime +import logging +from serenitas.analytics.dates import prev_business_day +from serenitas.utils.db import dbconn +from serenitas.utils.exchange import ExchangeMessage +from citco_ops.utils import EmailOps + +if __name__ == "__main__": + import argparse + + parser = argparse.ArgumentParser() + parser.add_argument( + "cob", + nargs="?", + type=datetime.date.fromisoformat, + default=prev_business_day(datetime.date.today()), + help="working date", + ) + args = parser.parse_args() + logger = logging.getLogger(__name__) + conn = dbconn("dawndb") + sql_str = "SELECT * FROM cash_balances cb WHERE fund='ISOSEL' AND account_number = '476960681512' AND date=%s;" + with conn.cursor() as c: + c.execute(sql_str, (args.cob,)) + if not (cash_balance := c.fetchone()): + EmailOps.email_boston(args.cob) |
