added bank code and filename as composite key for ach_processed_files table

This commit is contained in:
2026-02-03 17:05:08 +05:30
parent 89dfa310c3
commit 5ceeae9c3d
2 changed files with 9 additions and 8 deletions

View File

@@ -107,22 +107,23 @@ class Repository:
cursor.close()
conn.close()
def is_file_processed(self, filename: str) -> bool:
def is_file_processed(self, filename: str, bankcode: str) -> bool:
"""
Check if file has already been processed.
Check if file has already been processed for a specific bank.
Args:
filename: Name of the file to check
bankcode: Bank code to check
Returns:
True if file is in processed list, False otherwise
True if file is in processed list for this bank, False otherwise
"""
conn = self.connector.get_connection()
try:
cursor = conn.cursor()
cursor.execute(
"SELECT COUNT(*) FROM ach_processed_files WHERE filename = :filename",
{'filename': filename}
"SELECT COUNT(*) FROM ach_processed_files WHERE filename = :filename AND bankcode = :bankcode",
{'filename': filename, 'bankcode': bankcode}
)
count = cursor.fetchone()[0]
return count > 0

View File

@@ -62,9 +62,9 @@ class FileProcessor:
try:
logger.info(f"Starting processing: {filename} (bank: {bankcode})")
# Step 1: Check if already processed
if self.repository.is_file_processed(filename):
logger.info(f"File already processed: {filename}")
# Step 1: Check if already processed for this bank
if self.repository.is_file_processed(filename, bankcode):
logger.info(f"File already processed for {bankcode}: {filename}")
return True
# Step 2: Download file