aboutsummaryrefslogtreecommitdiffstats
path: root/python/citco_submission.py
diff options
context:
space:
mode:
Diffstat (limited to 'python/citco_submission.py')
-rw-r--r--python/citco_submission.py38
1 files changed, 28 insertions, 10 deletions
diff --git a/python/citco_submission.py b/python/citco_submission.py
index 2be5e629..511c1c51 100644
--- a/python/citco_submission.py
+++ b/python/citco_submission.py
@@ -62,23 +62,33 @@ def trade_table(trade_id):
return "bonds"
-def update_instrument(conn, instrument_id):
+def update_instrument(conn, instrument_id, identifier):
table = instrument_table(instrument_id)
- sql = f"UPDATE {table} SET committed=True where dealid=%s"
+ instrument_table_sql = f"UPDATE {table} SET committed=True where dealid=%s"
+ submission_sql = f"UPDATE citco_submission_status SET committed=True, identifier=%s where serenitas_id=%s and identifier is NULL and identifier_type='instrument'"
with conn.cursor() as c:
- c.execute(sql, (instrument_id,))
+ c.execute(instrument_table_sql, (instrument_id,))
+ c.execute(
+ submission_sql,
+ (
+ identifier,
+ instrument_id,
+ ),
+ )
+ conn.commit()
def update_trade(conn, trade_id, identifier):
- sql = f"UPDATE citco_trade_submission SET committed=True and identifier=%s where dealid=%s and identifier is NULL"
+ submission_sql = f"UPDATE citco_submission_status SET committed=True, identifier=%s where serenitas_id=%s and identifier is NULL and identifier_type='trade'"
with conn.cursor() as c:
c.execute(
- sql,
+ submission_sql,
(
- trade_id,
identifier,
+ trade_id,
),
)
+ conn.commit()
def parse_errors(fh):
@@ -91,20 +101,25 @@ def parse_errors(fh):
return errors
-def sql_data_process(conn, line):
+def get_data(line):
if line["Internal_Order_Id"]: # This is a trade
identifier_type = "trade"
serenitas_id = line["External_Order_Id"]
identifier = line["Internal_Order_Id"]
- update_trade(conn, serenitas_id, identifier)
else:
identifier_type = "instrument"
serenitas_id = line["External_Security_Id"]
identifier = line["Internal_Security_Id"]
- update_instrument(conn, serenitas_id)
return identifier_type, serenitas_id, identifier
+def update_submission_table(conn, identifier_type, serenitas_id, identifier):
+ if identifier_type == "trade":
+ update_trade(conn, serenitas_id, identifier)
+ else:
+ update_instrument(conn, serenitas_id, identifier)
+
+
def run():
from lru import LRU
@@ -128,7 +143,7 @@ def run():
identifier_type,
serenitas_id,
identifier,
- ) = sql_data_process(conn, line)
+ ) = get_data(line)
_insert_queue.append(
[
fname_short,
@@ -138,6 +153,9 @@ def run():
]
)
if resp := insert_todb(conn, _insert_queue):
+ update_submission_table(
+ conn, identifier_type, serenitas_id, identifier
+ )
em.send_email(
subject=f"(CITCO) Successfully Processed {f.filename}",
body="",