aboutsummaryrefslogtreecommitdiffstats
path: root/python/gfs_monitor.py
blob: 5386f358807344ce2656d20d56130f03331bb3dd (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
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 report_ops.utils import GFSMonitor

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 endqty as amount, invccy as currency, periodenddate as date, port as portfolio FROM valuation_reports vr WHERE fund=%s AND port ='GFS_HELPER_BUSINESS_UNIT' AND periodenddate =%s;"
    em = ExchangeMessage()
    with conn.cursor() as c:
        for fund in ("SERCGMAST", "BOWDST"):
            c.execute(sql_str, (fund, args.cob))
            for row in c:
                GFSMonitor.stage(row._asdict())
            GFSMonitor.email(fund)
            GFSMonitor._insert_queue.clear()