balance
This commit is contained in:
@@ -251,7 +251,7 @@ class SimbrellaClient:
|
|||||||
logger.info(f"Here is your repayment data after setting repay date: {repayment_data}")
|
logger.info(f"Here is your repayment data after setting repay date: {repayment_data}")
|
||||||
debtId = str(loan_data.get('debtId', "")).strip().zfill(6)
|
debtId = str(loan_data.get('debtId', "")).strip().zfill(6)
|
||||||
collect_loan_data = {
|
collect_loan_data = {
|
||||||
"transactionId": repayment_data['transactionId'],
|
"transactionId": loan_data['transactionId'],
|
||||||
"fbnTransactionId": loan_data['transactionId'],
|
"fbnTransactionId": loan_data['transactionId'],
|
||||||
"debtId": debtId,
|
"debtId": debtId,
|
||||||
"customerId": repayment_data['customerId'],
|
"customerId": repayment_data['customerId'],
|
||||||
@@ -269,7 +269,6 @@ class SimbrellaClient:
|
|||||||
try:
|
try:
|
||||||
logger.info(f"Here is your CollectLoan Request data ***** : {collect_loan_data}")
|
logger.info(f"Here is your CollectLoan Request data ***** : {collect_loan_data}")
|
||||||
response = requests.post(api_url, json=collect_loan_data,timeout=30, headers=get_headers())
|
response = requests.post(api_url, json=collect_loan_data,timeout=30, headers=get_headers())
|
||||||
logger.info(f"headers: {get_headers()}")
|
|
||||||
|
|
||||||
logger.info(f"CollectLoan response: {response.json()}")
|
logger.info(f"CollectLoan response: {response.json()}")
|
||||||
RepaymentService.set_repay_result(repayment_data['Id'], response.json().get('responseCode', ''), response.json().get('responseMessage', ''))
|
RepaymentService.set_repay_result(repayment_data['Id'], response.json().get('responseCode', ''), response.json().get('responseMessage', ''))
|
||||||
@@ -297,7 +296,15 @@ class SimbrellaClient:
|
|||||||
if result.get('responseCode') == '00':
|
if result.get('responseCode') == '00':
|
||||||
amount_collected = Decimal(str(result.get('amountCollected', 0))).quantize(Decimal('0.01'), rounding=ROUND_HALF_UP)
|
amount_collected = Decimal(str(result.get('amountCollected', 0))).quantize(Decimal('0.01'), rounding=ROUND_HALF_UP)
|
||||||
logger.info(f'amount collected {amount_collected}')
|
logger.info(f'amount collected {amount_collected}')
|
||||||
updated_loan = LoanService.update_loan_balance(int(loan_data['debtId']), amount_collected)
|
try:
|
||||||
|
updated_loan = LoanService.update_loan_balance(int(loan_data['debtId']), amount_collected)
|
||||||
|
except ValueError as ve:
|
||||||
|
logger.error(f"Validation error updating loan balance: {ve}")
|
||||||
|
return ResponseHelper.error(str(ve), status_code=400)
|
||||||
|
except Exception as ex:
|
||||||
|
logger.error(f"Unexpected error updating loan balance: {ex}")
|
||||||
|
return ResponseHelper.error("Unexpected error updating loan balance", status_code=500)
|
||||||
|
|
||||||
logger.info(f'updated loan {updated_loan}')
|
logger.info(f'updated loan {updated_loan}')
|
||||||
updated_balance = Decimal(str(updated_loan['balance'])).quantize(Decimal('0.01'))
|
updated_balance = Decimal(str(updated_loan['balance'])).quantize(Decimal('0.01'))
|
||||||
logger.info(f'updated balance {updated_balance}')
|
logger.info(f'updated balance {updated_balance}')
|
||||||
|
|||||||
@@ -242,7 +242,24 @@ class Loan(db.Model):
|
|||||||
logger.info(f"Found {len(customer_loans)} loans for customer ID: {customer_id} with total amount: {total_amount}")
|
logger.info(f"Found {len(customer_loans)} loans for customer ID: {customer_id} with total amount: {total_amount}")
|
||||||
|
|
||||||
return customer_loans, total_amount
|
return customer_loans, total_amount
|
||||||
|
@classmethod
|
||||||
|
def get_customer_active_loans(cls, customer_id):
|
||||||
|
"""
|
||||||
|
Get customer's active loans and sum by customer_id.
|
||||||
|
"""
|
||||||
|
customer_loans = cls.query.filter_by( customer_id = customer_id).all()
|
||||||
|
if not customer_loans:
|
||||||
|
raise ValueError(f"Customer with Id {customer_id} does not have any loan.")
|
||||||
|
|
||||||
|
total_amount = (
|
||||||
|
cls.query.with_entities(func.coalesce(func.sum(cls.balance), 0.0))
|
||||||
|
.filter_by(customer_id=customer_id)
|
||||||
|
.scalar()
|
||||||
|
)
|
||||||
|
|
||||||
|
logger.info(f"Found {len(customer_loans)} loans for customer ID: {customer_id} with total amount: {total_amount}")
|
||||||
|
|
||||||
|
return customer_loans, total_amount
|
||||||
|
|
||||||
|
|
||||||
@classmethod
|
@classmethod
|
||||||
|
|||||||
Reference in New Issue
Block a user