diff options
Diffstat (limited to 'python/innocap_bond_setts.py')
| -rw-r--r-- | python/innocap_bond_setts.py | 29 |
1 files changed, 22 insertions, 7 deletions
diff --git a/python/innocap_bond_setts.py b/python/innocap_bond_setts.py index 37101b80..8fd10db2 100644 --- a/python/innocap_bond_setts.py +++ b/python/innocap_bond_setts.py @@ -1,6 +1,15 @@ import datetime from serenitas.utils.db import dbconn -from citco_ops.utils import PaymentSettlement +from citco_ops.utils import PaymentSettlement, next_business_days +from serenitas.analytics.dates import prev_business_day + + +def get_cash_balance(account_number, date, conn): + with conn.cursor() as c: + sql_str = "SELECT balance, currency_code from cash_balances WHERE account_number=%s AND date=%s" + c.execute(sql_str, (account_number, date)) + return {row.currency_code: row.balance for row in c} + if __name__ == "__main__": import argparse @@ -15,11 +24,17 @@ if __name__ == "__main__": ) args = parser.parse_args() conn = dbconn("dawndb") - sql_str = "SELECT settle_date, currency, sum(payment_amount) as payment_amount FROM payment_settlements ps2 WHERE fund=%s AND asset_class in ('bond', 'spot') AND settle_date between %s and %s group by settle_date, currency;" + sql_str = "SELECT settle_date, currency, sum(payment_amount) as payment_amount FROM payment_settlements ps2 WHERE fund=%s AND asset_class in ('bond', 'spot') AND settle_date BETWEEN %s AND %s AND currency=%s group by settle_date, currency;" + cash_balances = get_cash_balance("ISOS01", prev_business_day(args.date), conn) with conn.cursor() as c: for fund in ("ISOSEL",): - c.execute( - sql_str, (fund, args.date, args.date + datetime.timedelta(days=4)) - ) - PaymentSettlement.stage_payment(c) - PaymentSettlement.email_innocap(args.date) + for date in ( + args.date, + next_business_days(args.date, 1), + next_business_days(args.date, 2), + ): + for currency in ("USD", "EUR"): + params = (fund, args.date, date, currency) + c.execute(sql_str, params) + PaymentSettlement.stage_payment(c, date) + PaymentSettlement.email_innocap(args.date, cash_balances) |
