import datetime from report_ops.utils import BamlFcmNotify from serenitas.utils.db2 import dbconn from tabulate import tabulate def main(trade_date, conn, fund): with conn.cursor() as c: c.execute("SELECT * FROM baml_fcm_fx(%s, %s) ", (trade_date, fund)) if rec := c.fetchone(): rec = list(rec) num_format = [("{0:,.2f}", 2), ("{0:.5f}", 4), ("{0:,.2f}", 5)] for f, i in num_format: rec[i] = f.format(rec[i]) t = tabulate( [rec], headers=[ "account", "curr", "TotBal", "HomeCurrency", "fxRate", "convTotBal", "BuySell", "Value Date", ], tablefmt="unsafehtml", ) BamlFcmNotify.email_fcm(trade_date, rec[0], t) if __name__ == "__main__": import argparse parser = argparse.ArgumentParser() parser.add_argument( "date", nargs="?", type=datetime.date.fromisoformat, default=datetime.date.today(), help="working date", ) args = parser.parse_args() conn = dbconn("dawndb") for fund in ( "SERCGMAST", "ISOSEL", ): main(args.date, conn, fund)