aboutsummaryrefslogtreecommitdiffstats
path: root/python/innocap_bond_setts.py
diff options
context:
space:
mode:
Diffstat (limited to 'python/innocap_bond_setts.py')
-rw-r--r--python/innocap_bond_setts.py29
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)