diff --git a/db/models.py b/db/models.py index 58ecb48..0f50016 100644 --- a/db/models.py +++ b/db/models.py @@ -17,7 +17,7 @@ class TransactionRecord: status: str bankcode: str jrnl_id: str - tran_date: date + tran_date: str # DDMMYYYY format cbs_acct: str tran_amt: Decimal txnind: str diff --git a/processors/data_mapper.py b/processors/data_mapper.py index 5d16056..3ebbf49 100644 --- a/processors/data_mapper.py +++ b/processors/data_mapper.py @@ -17,17 +17,18 @@ class DataMapper: """Maps parsed ACH transactions to database records.""" @staticmethod - def convert_date(date_str: str) -> datetime.date: + def convert_date(date_str: str) -> str: """ - Convert ACH date string to Python date. + Convert ACH date string to DDMMYYYY format. ACH format: DD/MM/YY (e.g., '19/01/26') + Output format: DDMMYYYY (e.g., '19012026') Args: date_str: Date string in DD/MM/YY format Returns: - datetime.date object + Date string in DDMMYYYY format """ try: if not date_str or len(date_str) < 8: @@ -35,11 +36,12 @@ class DataMapper: # Parse DD/MM/YY parsed_date = datetime.strptime(date_str, '%d/%m/%y') - return parsed_date.date() + # Return in DDMMYYYY format + return parsed_date.strftime('%d%m%Y') except Exception as e: logger.error(f"Error converting date '{date_str}': {e}") - # Return today's date as fallback - return datetime.now().date() + # Return today's date in DDMMYYYY format as fallback + return datetime.now().strftime('%d%m%Y') @staticmethod def calculate_txnind(amount_str: str) -> str: