loan_disbursed_date #18

Merged
ameye merged 1 commits from test into master 2025-06-03 19:13:31 +00:00
3 changed files with 47 additions and 23 deletions
+10 -10
View File
@@ -51,9 +51,8 @@ class SimbrellaClient:
return 0
logger.info(f"Here are your cal 111 : *********************************************************")
# let us set disbursement date
disburse_date = LoanService.set_disbursement_date(loan_data['debtId'], loan_data['customerId']) # toda this must return something
LoanService.set_disbursement_date(loan_data['debtId'], loan_data['customerId']) # toda this must return something
logger.info(f"Here are your cal 000 : *********************************************************")
loan_data['disburseDate'] = disburse_date
logger.info(f"Here is your loan data after setting disbursement date: {loan_data}")
loan_charges = preprocess_loan_charges_data([loan_charge.to_dict() for loan_charge in loan.loan_charges])
@@ -64,14 +63,15 @@ class SimbrellaClient:
interest_fee = loan_charges.get("INTEREST")['amount']
insurance_fee = loan_charges.get("INSURANCE")['amount']
disbursement_data ={
"requestId": data['requestId'],
"transactionId": data['transactionId'],
"debtId": loan_data['debtId'],
"customerId": data['customerId'],
"accountId": data['accountId'],
"productId": loan_data['productId'],
"provideAmount": loan_data['currentLoanAmount'],
disbursement_data = {
"requestId": data.get('requestId'),
"transactionId": data.get('transactionId'),
"FbnTransactionId": data.get('FbnTransactionId'),
"debtId": str(loan_data.get('debtId', "")),
"customerId": data.get('customerId'),
"accountId": data.get('accountId'),
"productId": str(loan_data.get('productId', "")),
"provideAmount": loan_data.get('currentLoanAmount'),
"collectAmountInterest": interest_fee,
"collectAmountMgtFee": mgt_fee,
"collectAmountInsurance": insurance_fee,
+20 -10
View File
@@ -7,6 +7,7 @@ import logging
from sqlalchemy import and_, or_, not_
from sqlalchemy.sql import func
from app.utils.logger import logger
from app.extensions import db
class Loan(db.Model):
__tablename__ = "loans"
@@ -82,23 +83,32 @@ class Loan(db.Model):
def get_loan_by_transaction_id(cls, transaction_id):
return cls.query.filter_by(transaction_id=transaction_id).first()
@classmethod
def get_loan_by_debt_id(cls, debt_id):
return cls.query.filter_by(id=debt_id).first()
@classmethod
def set_disbursement_date(cls, loan_id, customer_id):
"""
Update the status of the loan with the given loan_id.
Update the disburse date of the loan with the given loan_id.
"""
# Retrieve loan
loan = cls.query.get(loan_id)
if not loan:
raise ValueError(f"Loan with ID {loan_id} does not exist.")
current_time = datetime.now().strftime('%Y-%m-%d %H:%M:%S')
logger.info(f"What is now ======= ==== ==> : {current_time}")
# Update loan disburse_date and timestamp datetime.today().strftime('%Y-%m-%d %H:%M:%S')
loan.disburse_date = current_time # datetime.today().strftime('%Y-%m-%d %H:%M:%S')
return current_time
# Check if customer_id matches
if loan.customer_id != customer_id:
raise ValueError(f"Customer ID {customer_id} does not match the loan's customer ID.")
current_time = datetime.now()
logger.info(f"What is now ======= ==== ==> : {current_time}")
# Update loan disburse_date
loan.disburse_date = current_time
# Commit changes to database
try:
logger.info(f"Updating disburse date for loan ID {loan_id} to {current_time}")
db.session.commit()
except Exception as e:
db.session.rollback()
logger.error(f"Failed to update disburse date: {e}")
raise
+17 -3
View File
@@ -19,9 +19,23 @@ def verify_transaction():
def disbursement():
# data = request.json()
logger.info(f"Calling Disbursement Components")
response = SimbrellaClient.verify_transaction()
data = {
"requestId": "TRX1747399791142408",
"transactionId": "TRX1747399791142408",
"FbnTransactionId":"TRX1747399791142408",
"debtId": "9451",
"customerId": "CUC1696296013",
"accountId": "ACC8112865094",
"productId": "AMPC",
"provideAmount": 6600.0,
"collectAmountInterest": 198.0,
"collectAmountMgtFee": 66.0,
"collectAmountInsurance": 66.0,
"collectAmountVAT": 4.95,
"countryId": "01",
"comment": "Loan Disbursement"
}
response = SimbrellaClient.disburse_loan(data)
return response