Merge branch 'test' of DigiFi/digifi-EventManager into master
This commit is contained in:
@@ -89,13 +89,50 @@ class LoanRepaymentSchedule(db.Model):
|
|||||||
@classmethod
|
@classmethod
|
||||||
def get_overdue_repayment_schedule(cls):
|
def get_overdue_repayment_schedule(cls):
|
||||||
"""
|
"""
|
||||||
Get all overdue repayment schedules.
|
Get all overdue repayment schedules that are not repaid.
|
||||||
"""
|
"""
|
||||||
try:
|
try:
|
||||||
return cls.query.filter(cls.due_date < datetime.now(timezone.utc), cls.paid == False).all()
|
return cls.query.filter(cls.due_date < datetime.now(timezone.utc), cls.paid == False).order_by(cls.due_date.asc()).all()
|
||||||
except Exception as e:
|
except Exception as e:
|
||||||
logger.error(f"Error fetching overdue repayment schedules: {e}")
|
logger.error(f"Error fetching overdue repayment schedules: {e}")
|
||||||
return []
|
return []
|
||||||
|
@classmethod
|
||||||
|
def get_active_overdue_repayment_schedule(cls):
|
||||||
|
"""
|
||||||
|
Get all overdue repayment schedules that are active.
|
||||||
|
"""
|
||||||
|
try:
|
||||||
|
return (
|
||||||
|
cls.query
|
||||||
|
.filter(
|
||||||
|
cls.due_date < datetime.now(timezone.utc),
|
||||||
|
cls.paid_status == RepaymentScheduleStatus.ACTIVE
|
||||||
|
)
|
||||||
|
.order_by(cls.due_date.asc())
|
||||||
|
.all()
|
||||||
|
)
|
||||||
|
except Exception as e:
|
||||||
|
logger.error(f"Error fetching active overdue repayment schedules: {e}")
|
||||||
|
return []
|
||||||
|
@classmethod
|
||||||
|
def get_partially_paid_overdue_repayment_schedule(cls):
|
||||||
|
"""
|
||||||
|
Get all overdue repayment schedules that are partially paid.
|
||||||
|
"""
|
||||||
|
try:
|
||||||
|
return (
|
||||||
|
cls.query
|
||||||
|
.filter(
|
||||||
|
cls.due_date < datetime.now(timezone.utc),
|
||||||
|
cls.paid_status == RepaymentScheduleStatus.PARTIALLY_PAID
|
||||||
|
)
|
||||||
|
.order_by(cls.due_date.asc())
|
||||||
|
.all()
|
||||||
|
)
|
||||||
|
except Exception as e:
|
||||||
|
logger.error(f"Error fetching partially paid overdue repayment schedules: {e}")
|
||||||
|
return []
|
||||||
|
|
||||||
|
|
||||||
@classmethod
|
@classmethod
|
||||||
def get_repayment_schedule_by_transaction_id(cls, transaction_id):
|
def get_repayment_schedule_by_transaction_id(cls, transaction_id):
|
||||||
|
|||||||
@@ -443,8 +443,8 @@ def report():
|
|||||||
@autocall_bp.route("/overdue-loans", methods=["GET"])
|
@autocall_bp.route("/overdue-loans", methods=["GET"])
|
||||||
def overdue_loans():
|
def overdue_loans():
|
||||||
try:
|
try:
|
||||||
# Step 1: Get all overdue loans
|
# Step 1: Get all active overdue loans
|
||||||
overdue_loans = LoanRepaymentScheduleService.get_overdue_repayment_schedule()
|
overdue_loans = LoanRepaymentScheduleService.get_active_overdue_repayment_schedule()
|
||||||
logger.info(f"Found {len(overdue_loans)} overdue loans.")
|
logger.info(f"Found {len(overdue_loans)} overdue loans.")
|
||||||
|
|
||||||
if not overdue_loans:
|
if not overdue_loans:
|
||||||
|
|||||||
@@ -58,7 +58,7 @@ class LoanService:
|
|||||||
@classmethod
|
@classmethod
|
||||||
def set_disbursement_loan_description(cls,loan_id,description):
|
def set_disbursement_loan_description(cls,loan_id,description):
|
||||||
|
|
||||||
return Loan.set_disbursement_message(loan_id, result, description)
|
return Loan.set_disbursement_message(loan_id, description)
|
||||||
|
|
||||||
|
|
||||||
@classmethod
|
@classmethod
|
||||||
|
|||||||
@@ -13,6 +13,12 @@ class LoanRepaymentScheduleService:
|
|||||||
def get_overdue_repayment_schedule(cls):
|
def get_overdue_repayment_schedule(cls):
|
||||||
return LoanRepaymentSchedule.get_overdue_repayment_schedule()
|
return LoanRepaymentSchedule.get_overdue_repayment_schedule()
|
||||||
@classmethod
|
@classmethod
|
||||||
|
def get_active_overdue_repayment_schedule(cls):
|
||||||
|
return LoanRepaymentSchedule.get_active_overdue_repayment_schedule()
|
||||||
|
@classmethod
|
||||||
|
def get_partially_paid_overdue_repayment_schedule(cls):
|
||||||
|
return LoanRepaymentSchedule.get_partially_paid_overdue_repayment_schedule()
|
||||||
|
@classmethod
|
||||||
def get_repayment_schedule_by_id_and_transaction_id(cls, id, transaction_id):
|
def get_repayment_schedule_by_id_and_transaction_id(cls, id, transaction_id):
|
||||||
return LoanRepaymentSchedule.get_repayment_schedule_by_id_and_transaction_id(id, transaction_id)
|
return LoanRepaymentSchedule.get_repayment_schedule_by_id_and_transaction_id(id, transaction_id)
|
||||||
|
|
||||||
|
|||||||
Reference in New Issue
Block a user