aboutsummaryrefslogtreecommitdiffstats
path: root/python/baml_fcm_fx.py
blob: 45c57fb0787fc50ece6e0be3cb302e74b3584f13 (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
import datetime
from report_ops.fcm import BamlFcmNotify
from serenitas.utils.db2 import dbconn
from tabulate import tabulate

_fcm_alias = {"V0NSCLMSPT": "6MZ20049"}

_sql_query = (
    "SELECT spots.cash_account, buy_currency, sell_currency, buy_amount, sell_amount, spot_rate, settle_date FROM spots "
    "LEFT JOIN accounts2 USING (cash_account) WHERE account_type='Fcm' AND spots.cp_code='BAMSNY' AND spots.trade_date =%s AND spots.fund=%s;"
)


def main(trade_date, conn, fund):
    with conn.cursor() as c:
        c.execute(
            _sql_query,
            (trade_date, fund),
        )
        for rec in c:
            BamlFcmNotify.process(trade_date, rec._asdict())


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)