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() cursor.close()
conn.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: Args:
filename: Name of the file to check filename: Name of the file to check
bankcode: Bank code to check
Returns: 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() conn = self.connector.get_connection()
try: try:
cursor = conn.cursor() cursor = conn.cursor()
cursor.execute( cursor.execute(
"SELECT COUNT(*) FROM ach_processed_files WHERE filename = :filename", "SELECT COUNT(*) FROM ach_processed_files WHERE filename = :filename AND bankcode = :bankcode",
{'filename': filename} {'filename': filename, 'bankcode': bankcode}
) )
count = cursor.fetchone()[0] count = cursor.fetchone()[0]
return count > 0 return count > 0

View File

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