diff options
Diffstat (limited to 'python/citco_submission.py')
| -rw-r--r-- | python/citco_submission.py | 38 |
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="", |
