loan_disbursed_date #18
@@ -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
@@ -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
@@ -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
|
||||
|
||||
|
||||
|
||||
Reference in New Issue
Block a user