ocr extract
This commit is contained in:
@@ -576,6 +576,7 @@ class ReceiptExtractor:
|
||||
print(f"[TVA Reverse Validation] {msg}", flush=True)
|
||||
|
||||
# Cross-validate amount using payment methods and TVA
|
||||
original_amount = result.amount
|
||||
validated_amount, validated_confidence, source = self._cross_validate_and_calculate_amount(
|
||||
result.amount,
|
||||
result.confidence_amount,
|
||||
@@ -583,8 +584,38 @@ class ReceiptExtractor:
|
||||
result.tva_entries,
|
||||
result.tva_total
|
||||
)
|
||||
if validated_amount != result.amount:
|
||||
print(f"[Cross-Validation] Amount updated: {result.amount} -> {validated_amount} (source: {source})", flush=True)
|
||||
|
||||
# Add validation warnings when TOTAL is calculated (not directly extracted)
|
||||
if 'calculated from TVA' in source:
|
||||
warning_msg = f"TOTAL ({validated_amount}) calculat din TVA (nu a fost extras direct din bon)"
|
||||
result.validation_warnings.append(warning_msg)
|
||||
print(f"[Cross-Validation] ⚠️ {warning_msg}", flush=True)
|
||||
|
||||
# Add comparison if original was different
|
||||
if original_amount and original_amount != validated_amount:
|
||||
diff = abs(float(validated_amount) - float(original_amount))
|
||||
result.validation_warnings.append(
|
||||
f"TOTAL extras ({original_amount}) diferă de cel calculat ({validated_amount}) cu {diff:.2f} RON"
|
||||
)
|
||||
|
||||
elif 'calculated from payment methods' in source:
|
||||
warning_msg = f"TOTAL ({validated_amount}) calculat din suma metodelor de plată (nu a fost extras direct)"
|
||||
result.validation_warnings.append(warning_msg)
|
||||
print(f"[Cross-Validation] ⚠️ {warning_msg}", flush=True)
|
||||
|
||||
if original_amount and original_amount != validated_amount:
|
||||
diff = abs(float(validated_amount) - float(original_amount))
|
||||
result.validation_warnings.append(
|
||||
f"TOTAL extras ({original_amount}) diferă de suma plăților ({validated_amount}) cu {diff:.2f} RON"
|
||||
)
|
||||
|
||||
elif source == 'not found':
|
||||
result.validation_warnings.append("TOTAL nu a fost detectat și nu a putut fi calculat")
|
||||
print("[Cross-Validation] ⚠️ TOTAL nu a fost detectat", flush=True)
|
||||
|
||||
elif validated_amount != original_amount:
|
||||
print(f"[Cross-Validation] Amount updated: {original_amount} -> {validated_amount} (source: {source})", flush=True)
|
||||
|
||||
result.amount = validated_amount
|
||||
result.confidence_amount = validated_confidence
|
||||
|
||||
|
||||
Reference in New Issue
Block a user