82 lines
2.5 KiB
Python
82 lines
2.5 KiB
Python
import csv
|
|
from dateutil import parser
|
|
from datetime import datetime, timedelta
|
|
|
|
# Config values
|
|
DATE_TOLERANCE_DAYS = 7
|
|
AMOUNT_TOLERANCE_PERCENT = 0.05
|
|
CONFIDENCE_THRESHOLD = 0.8
|
|
|
|
# Receipt data
|
|
receipt_date = datetime(2025, 2, 7)
|
|
receipt_amount = 1412.5
|
|
receipt_vendor = "Ajai Srivastava CPA, Accounting Services & Taxes"
|
|
|
|
print("=== DEBUGGING AJAI RECEIPT MATCH ===")
|
|
print(f"Receipt Date: {receipt_date}")
|
|
print(f"Receipt Amount: ${receipt_amount}")
|
|
print(f"Receipt Vendor: {receipt_vendor}")
|
|
print(f"Date Tolerance: {DATE_TOLERANCE_DAYS} days")
|
|
print(f"Amount Tolerance: {AMOUNT_TOLERANCE_PERCENT * 100}%")
|
|
print()
|
|
|
|
# Check CSV transaction
|
|
csv_transaction = {
|
|
"date": "2/18/2025",
|
|
"amount": -1412.5,
|
|
"vendor": "Ajai Srivastava"
|
|
}
|
|
|
|
# Parse CSV date
|
|
csv_date = parser.parse(csv_transaction["date"])
|
|
csv_amount = csv_transaction["amount"]
|
|
csv_vendor = csv_transaction["vendor"]
|
|
|
|
print("=== CSV TRANSACTION ===")
|
|
print(f"CSV Date: {csv_date}")
|
|
print(f"CSV Amount: ${csv_amount}")
|
|
print(f"CSV Vendor: {csv_vendor}")
|
|
print()
|
|
|
|
# Check date tolerance
|
|
date_diff = abs((receipt_date - csv_date).days)
|
|
date_match = date_diff <= DATE_TOLERANCE_DAYS
|
|
|
|
print("=== DATE CHECK ===")
|
|
print(f"Date Difference: {date_diff} days")
|
|
print(f"Date Match: {date_match}")
|
|
print(f"Tolerance: {DATE_TOLERANCE_DAYS} days")
|
|
print()
|
|
|
|
# Check amount tolerance
|
|
amount_tolerance = receipt_amount * AMOUNT_TOLERANCE_PERCENT
|
|
amount_diff = abs(receipt_amount - abs(csv_amount)) # Use absolute value for negative amounts
|
|
amount_match = amount_diff <= amount_tolerance
|
|
|
|
print("=== AMOUNT CHECK ===")
|
|
print(f"Receipt Amount: ${receipt_amount}")
|
|
print(f"CSV Amount (abs): ${abs(csv_amount)}")
|
|
print(f"Amount Difference: ${amount_diff}")
|
|
print(f"Amount Tolerance: ${amount_tolerance}")
|
|
print(f"Amount Match: {amount_match}")
|
|
print()
|
|
|
|
# Check vendor similarity
|
|
vendor_similarity = "Ajai Srivastava" in receipt_vendor
|
|
print("=== VENDOR CHECK ===")
|
|
print(f"Receipt Vendor: {receipt_vendor}")
|
|
print(f"CSV Vendor: {csv_vendor}")
|
|
print(f"Vendor Similarity: {vendor_similarity}")
|
|
print()
|
|
|
|
# Overall result
|
|
print("=== RESULT ===")
|
|
if date_match and amount_match:
|
|
print("✅ Transaction would pass initial filtering")
|
|
print("Would proceed to AI matching stage")
|
|
else:
|
|
print("❌ Transaction filtered out before AI matching")
|
|
if not date_match:
|
|
print(f" - Date difference ({date_diff} days) > tolerance ({DATE_TOLERANCE_DAYS} days)")
|
|
if not amount_match:
|
|
print(f" - Amount difference (${amount_diff}) > tolerance (${amount_tolerance})") |