aboutsummaryrefslogtreecommitdiffstats
path: root/python/baml_fcm_fx.py
blob: 4d06991f805a05481eb2480d5631169d69211e81 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
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)