updated
This commit is contained in:
+61
-8
@@ -11,30 +11,73 @@ class Processor:
|
||||
|
||||
def process(self):
|
||||
rows = self.repo.get_pending_rrns_today()
|
||||
logger.info("Pending transactions: %s", len(rows))
|
||||
logger.info("Pending transactions count: %s", len(rows))
|
||||
|
||||
for r in rows:
|
||||
bank_code = self.config.BANK_CODE_MAPPING.get(r["DCCB_CODE"])
|
||||
if not bank_code:
|
||||
logger.warning("No bank mapping for DCCB=%s", r["DCCB_CODE"])
|
||||
logger.info(
|
||||
"Skipping TXN_NO=%s due to missing bank mapping for DCCB=%s",
|
||||
r["TXN_NO"],
|
||||
r["DCCB_CODE"]
|
||||
)
|
||||
continue
|
||||
|
||||
payload = {
|
||||
"bankCode": bank_code,
|
||||
"rrn": r["RRN"],
|
||||
"rrn": r["RRN_TWO"],
|
||||
"branchCode": r["BR_CODE"],
|
||||
"itemType": 0,
|
||||
"queueType": "02",
|
||||
"reterieveTop": "20"
|
||||
}
|
||||
|
||||
logger.info(
|
||||
"Calling fetchAllQueue API for TXN_NO=%s, RRN=%s with payload=%s",
|
||||
r["TXN_NO"],
|
||||
r["RRN_TWO"],
|
||||
payload
|
||||
)
|
||||
|
||||
response = self.api.fetch(payload)
|
||||
|
||||
# Log FULL API response
|
||||
logger.info(
|
||||
"API response received for TXN_NO=%s, RRN_TWO=%s : %s",
|
||||
r["TXN_NO"],
|
||||
r["RRN_TWO"],
|
||||
response
|
||||
)
|
||||
|
||||
items = response.get("response", {}).get("VwQueueItems", [])
|
||||
|
||||
if not items or items[0].get("status") != "PROCESSED":
|
||||
if not items:
|
||||
logger.info(
|
||||
"No VwQueueItems found for TXN_NO=%s, RRN_TWO=%s",
|
||||
r["TXN_NO"],
|
||||
r["RRN_TWO"]
|
||||
)
|
||||
continue
|
||||
|
||||
status = items[0].get("status")
|
||||
logger.info(
|
||||
"Queue item status for TXN_NO=%s, RRN_TWO=%s is %s",
|
||||
r["TXN_NO"],
|
||||
r["RRN_two"],
|
||||
status
|
||||
)
|
||||
|
||||
if status != "PROCESSED":
|
||||
logger.info(
|
||||
"Skipping TXN_NO=%s as status is not PROCESSED",
|
||||
r["TXN_NO"]
|
||||
)
|
||||
continue
|
||||
|
||||
item = items[0]
|
||||
|
||||
sender_ifsc = item.get("sender_ifsc")
|
||||
|
||||
|
||||
log_data = {
|
||||
"bankcode": bank_code,
|
||||
@@ -45,18 +88,28 @@ class Processor:
|
||||
"recv_ac": r["DEST_AC_NO"],
|
||||
"send_ac": r["SRC_AC_NO"],
|
||||
"ifsc": r["IFSC_CODE"],
|
||||
"sender_ifsc": sender_ifsc,
|
||||
"sender_name": r["REMITTER_NAME"],
|
||||
"receiver_name": r["BENEFICIARY_NAME"],
|
||||
"beneficiary_address": r["BENEFICIARY_ADD"],
|
||||
"sender_info": item["sendeReceiverInfo"]
|
||||
}
|
||||
|
||||
# INSERT FIRST
|
||||
# Log DB payload BEFORE insert
|
||||
logger.info(
|
||||
"Inserting outward_neft_api_log for TXN_NO=%s with data=%s",
|
||||
r["TXN_NO"],
|
||||
log_data
|
||||
)
|
||||
|
||||
# Insert into outward_neft_api_log
|
||||
self.repo.insert_outward_log(log_data)
|
||||
|
||||
# THEN MARK AS PROCESSED
|
||||
# Update MARK_TYPE
|
||||
self.repo.mark_processed(r["TXN_NO"])
|
||||
|
||||
logger.info(
|
||||
"Inserted outward log and marked TXN_NO=%s", r["TXN_NO"]
|
||||
)
|
||||
"SUCCESS: Inserted outward log and updated MARK_TYPE=Y for TXN_NO=%s, RRN_TWO=%s",
|
||||
r["TXN_NO"],
|
||||
r["RRN_TWO"]
|
||||
)
|
||||
|
||||
Reference in New Issue
Block a user