aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--python/citco_ops/utils.py18
1 files changed, 8 insertions, 10 deletions
diff --git a/python/citco_ops/utils.py b/python/citco_ops/utils.py
index 1ac36aae..91738d5f 100644
--- a/python/citco_ops/utils.py
+++ b/python/citco_ops/utils.py
@@ -7,7 +7,6 @@ import csv
from serenitas.ops.trade_dataclasses import Deal
from serenitas.utils.exchange import ExchangeMessage
from serenitas.utils.remote import SftpClient
-from psycopg.errors import UniqueViolation
from exchangelib import HTMLBody
from tabulate import tabulate
from functools import lru_cache
@@ -108,11 +107,11 @@ class CitcoSubmission(Deal, deal_type=None, table_name="citco_submission2"):
trade.stage()
@classmethod
- def update_citco_tables(cls):
+ def update_citco_tables(cls, newvals):
d = defaultdict(list)
- for file_type, _, serenitas_id, *_ in cls._insert_queue:
- if file_type == "instrument":
- d[instrument_table(serenitas_id)].append((serenitas_id,))
+ for row in newvals:
+ if row.identifier_type == "instrument":
+ d[instrument_table(row.serenitas_id)].append((row.serenitas_id,))
for table, v in d.items():
sql_str = f"UPDATE {table} SET committed=True, status='Acknowledged' WHERE dealid=%s"
with cls._conn.cursor() as c:
@@ -132,12 +131,11 @@ class CitcoSubmission(Deal, deal_type=None, table_name="citco_submission2"):
if not c.nextset():
break
cls._conn.commit()
- cls._insert_queue = newvals
- cls.update_citco_tables()
+ cls.update_citco_tables(newvals)
em = ExchangeMessage()
em.send_email(
"(CITCO) UPLOAD REPORT",
- cls._format(),
+ cls._format(newvals),
(
"fyu@lmcg.com",
"ghorel@lmcg.com",
@@ -146,9 +144,9 @@ class CitcoSubmission(Deal, deal_type=None, table_name="citco_submission2"):
)
@classmethod
- def _format(cls):
+ def _format(cls, vals):
t = tabulate(
- [upload for upload in cls._insert_queue],
+ vals,
headers=[
"upload_type",
"citco_id",