added a server manager
This commit is contained in:
+73
-71
@@ -731,79 +731,81 @@ async def match_specific_receipts(request: MatchSpecificRequest, db: db_dependen
|
||||
match_responses = []
|
||||
for result in matching_results:
|
||||
# Get final tax amount from LLM analysis if available, otherwise use receipt's stated tax
|
||||
final_tax = result.receipt.tax
|
||||
# if result.tax_analysis and "final_tax_amount" in result.tax_analysis:
|
||||
# final_tax = result.tax_analysis["final_tax_amount"]
|
||||
if result.confidence_score > 0:
|
||||
final_tax = result.receipt.tax
|
||||
# if result.tax_analysis and "final_tax_amount" in result.tax_analysis:
|
||||
# final_tax = result.tax_analysis["final_tax_amount"]
|
||||
|
||||
# Extract flag_for_review and auto_approve from tax_analysis if available
|
||||
flag_for_review = None
|
||||
auto_approve = None
|
||||
if result.tax_analysis:
|
||||
flag_for_review = result.tax_analysis.get("flag_for_review")
|
||||
auto_approve = result.tax_analysis.get("auto_approve")
|
||||
# Extract flag_for_review and auto_approve from tax_analysis if available
|
||||
flag_for_review = None
|
||||
auto_approve = None
|
||||
if result.tax_analysis:
|
||||
flag_for_review = result.tax_analysis.get("flag_for_review")
|
||||
auto_approve = result.tax_analysis.get("auto_approve")
|
||||
|
||||
match_response = MatchResponse(
|
||||
receipt_id=result.receipt.id,
|
||||
transaction_id=result.transaction.id
|
||||
if result.transaction
|
||||
else "no_match",
|
||||
confidence_score=result.confidence_score * 100,
|
||||
match_reason=result.match_reason,
|
||||
receipt_vendor=result.receipt.vendor,
|
||||
receipt_amount=result.receipt.amount,
|
||||
receipt_description=result.receipt.description,
|
||||
receipt_category=result.receipt.category,
|
||||
receipt_tax_amount=final_tax,
|
||||
transaction_vendor=result.transaction.vendor
|
||||
if result.transaction
|
||||
else "",
|
||||
transaction_amount=result.transaction.amount
|
||||
if result.transaction
|
||||
else 0.0,
|
||||
tax_analysis=result.tax_analysis,
|
||||
flag_for_review=flag_for_review,
|
||||
auto_approve=auto_approve,
|
||||
# Transaction metadata
|
||||
transaction_source=result.transaction.source
|
||||
if result.transaction
|
||||
else None,
|
||||
# QuickBooks CSV fields
|
||||
TxnId=result.transaction.TxnId if result.transaction else None,
|
||||
AccountType=result.transaction.AccountType
|
||||
if result.transaction
|
||||
else None,
|
||||
AccountNumber=result.transaction.AccountNumber
|
||||
if result.transaction
|
||||
else None,
|
||||
TransactionDate=result.transaction.TransactionDate
|
||||
if result.transaction
|
||||
else None,
|
||||
TransactionType=result.transaction.TransactionType
|
||||
if result.transaction
|
||||
else None,
|
||||
ChequeNumber=result.transaction.ChequeNumber
|
||||
if result.transaction
|
||||
else None,
|
||||
Description1=result.transaction.Description1
|
||||
if result.transaction
|
||||
else None,
|
||||
Description2=result.transaction.Description2
|
||||
if result.transaction
|
||||
else None,
|
||||
VendorId=result.transaction.VendorId
|
||||
if result.transaction
|
||||
else None,
|
||||
VendorName=result.transaction.VendorName
|
||||
if result.transaction
|
||||
else None,
|
||||
AccountId=result.transaction.AccountId
|
||||
if result.transaction
|
||||
else None,
|
||||
AccountName=result.transaction.AccountName
|
||||
if result.transaction
|
||||
else None,
|
||||
)
|
||||
match_responses.append(match_response)
|
||||
match_response = MatchResponse(
|
||||
receipt_id=result.receipt.id,
|
||||
transaction_id=result.transaction.id
|
||||
if result.transaction
|
||||
else "no_match",
|
||||
confidence_score=result.confidence_score * 100,
|
||||
match_reason=result.match_reason,
|
||||
receipt_vendor=result.receipt.vendor,
|
||||
receipt_amount=result.receipt.amount,
|
||||
receipt_description=result.receipt.description,
|
||||
receipt_category=result.receipt.category,
|
||||
receipt_tax_amount=final_tax,
|
||||
transaction_vendor=result.transaction.vendor
|
||||
if result.transaction
|
||||
else "",
|
||||
transaction_amount=result.transaction.amount
|
||||
if result.transaction
|
||||
else 0.0,
|
||||
tax_analysis=result.tax_analysis,
|
||||
flag_for_review=flag_for_review,
|
||||
auto_approve=auto_approve,
|
||||
# Transaction metadata
|
||||
transaction_source=result.transaction.source
|
||||
if result.transaction
|
||||
else None,
|
||||
# QuickBooks CSV fields
|
||||
TxnId=result.transaction.TxnId if result.transaction else None,
|
||||
AccountType=result.transaction.AccountType
|
||||
if result.transaction
|
||||
else None,
|
||||
AccountNumber=result.transaction.AccountNumber
|
||||
if result.transaction
|
||||
else None,
|
||||
TransactionDate=result.transaction.TransactionDate
|
||||
if result.transaction
|
||||
else None,
|
||||
TransactionType=result.transaction.TransactionType
|
||||
if result.transaction
|
||||
else None,
|
||||
ChequeNumber=result.transaction.ChequeNumber
|
||||
if result.transaction
|
||||
else None,
|
||||
Description1=result.transaction.Description1
|
||||
if result.transaction
|
||||
else None,
|
||||
Description2=result.transaction.Description2
|
||||
if result.transaction
|
||||
else None,
|
||||
VendorId=result.transaction.VendorId
|
||||
if result.transaction
|
||||
else None,
|
||||
VendorName=result.transaction.VendorName
|
||||
if result.transaction
|
||||
else None,
|
||||
AccountId=result.transaction.AccountId
|
||||
if result.transaction
|
||||
else None,
|
||||
AccountName=result.transaction.AccountName
|
||||
if result.transaction
|
||||
else None,
|
||||
Source=result.transaction.source if result.transaction else None,
|
||||
)
|
||||
match_responses.append(match_response)
|
||||
|
||||
# Calculate statistics
|
||||
high_confidence = len(
|
||||
|
||||
@@ -181,6 +181,7 @@ class MatchResponse(BaseModel):
|
||||
VendorName: Optional[str] = None
|
||||
AccountId: Optional[str] = None
|
||||
AccountName: Optional[str] = None
|
||||
Source: Optional[str] = None
|
||||
|
||||
|
||||
class MatchingResponse(BaseModel):
|
||||
|
||||
Reference in New Issue
Block a user