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