[add]: Salary table
This commit was merged in pull request #49.
This commit is contained in:
@@ -93,7 +93,7 @@ class OfferAnalysis:
|
||||
|
||||
|
||||
|
||||
logger.info(f"These are the salarie amounts ***** : {str(salaries)}", exc_info=True)
|
||||
logger.info(f"These are the salary amounts ***** : {str(salaries)}", exc_info=True)
|
||||
|
||||
#Least salary in the last 6 months
|
||||
min_salary = min(salaries)
|
||||
@@ -113,7 +113,7 @@ class OfferAnalysis:
|
||||
|
||||
else: # Income is not consistent
|
||||
eligible_amount = 0
|
||||
logger.info("Applying np percentage on least salary due unstable income.")
|
||||
logger.info("Applying no percentage on least salary due unstable income.")
|
||||
|
||||
|
||||
|
||||
|
||||
@@ -10,6 +10,7 @@ from .rac_checks import RACCheck
|
||||
from .loan_repayment_schedule import LoanRepaymentSchedule
|
||||
from .transaction_offers import TransactionOffer
|
||||
from .repayments_data import RepaymentsData
|
||||
from .salary import Salary
|
||||
|
||||
|
||||
__all__ = ['Customer', 'Account', 'Loan', 'Transaction', 'Repayment', 'LoanCharge', 'Offer', 'Charge', 'RACCheck', 'LoanRepaymentSchedule', 'TransactionOffer', 'RepaymentsData']
|
||||
__all__ = ['Customer', 'Account', 'Loan', 'Transaction', 'Repayment', 'LoanCharge', 'Offer', 'Charge', 'RACCheck', 'LoanRepaymentSchedule', 'TransactionOffer', 'RepaymentsData', 'Salary']
|
||||
@@ -27,6 +27,8 @@ class Repayment(db.Model):
|
||||
verify_date = db.Column(db.DateTime, default=datetime.now(timezone.utc))
|
||||
verify_result = db.Column(db.String(10), nullable=True)
|
||||
verify_description = db.Column(db.String(100), nullable=True)
|
||||
initiated_by = db.Column(db.String(50), nullable=True)
|
||||
salary_amount = db.Column(db.Float, nullable=True, default=0.0)
|
||||
|
||||
@classmethod
|
||||
def create_repayment(cls, customer_id, loan, transaction_id):
|
||||
@@ -51,6 +53,25 @@ class Repayment(db.Model):
|
||||
raise ValueError(f"Database integrity error: {err}")
|
||||
|
||||
return repayment
|
||||
|
||||
def to_dict(self):
|
||||
return {
|
||||
"id": self.id,
|
||||
"loan_id": self.loan_id,
|
||||
"customer_id": self.customer_id,
|
||||
"product_id": self.product_id,
|
||||
"created_at": self.created_at.isoformat() if self.created_at else None,
|
||||
"updated_at": self.updated_at.isoformat() if self.updated_at else None,
|
||||
"transaction_id": self.transaction_id,
|
||||
"repay_date": self.repay_date.isoformat() if self.repay_date else None,
|
||||
"repay_result": self.repay_result,
|
||||
"repay_description": self.repay_description,
|
||||
"verify_date": self.verify_date.isoformat() if self.verify_date else None,
|
||||
"verify_result": self.verify_result,
|
||||
"verify_description": self.verify_description,
|
||||
"initiated_by": self.initiated_by,
|
||||
"salary_amount": self.salary_amount
|
||||
}
|
||||
|
||||
def __repr__(self):
|
||||
return f'<Repayment {self.id}>'
|
||||
|
||||
@@ -15,6 +15,7 @@ class RepaymentsData(db.Model):
|
||||
added_date = db.Column(db.DateTime(timezone=True), default=datetime.now(timezone.utc), nullable=False)
|
||||
response_code = db.Column(db.String(10), nullable=True)
|
||||
response_descr = db.Column(db.String(255), nullable=True)
|
||||
balance = db.Column(db.Float, nullable=True, default=0.0)
|
||||
|
||||
def to_dict(self):
|
||||
return {
|
||||
@@ -28,6 +29,7 @@ class RepaymentsData(db.Model):
|
||||
"added_date": self.added_date.isoformat() if self.added_date else None,
|
||||
"response_code": self.response_code,
|
||||
"response_descr": self.response_descr,
|
||||
"balance": self.balance,
|
||||
}
|
||||
|
||||
def __repr__(self):
|
||||
|
||||
@@ -0,0 +1,31 @@
|
||||
from datetime import datetime, timezone
|
||||
from app.extensions import db
|
||||
from sqlalchemy.sql import func
|
||||
|
||||
class Salary(db.Model):
|
||||
__tablename__ = 'salaries'
|
||||
|
||||
id = db.Column(db.Integer, primary_key=True, autoincrement=True)
|
||||
customer_id = db.Column(db.String(50), nullable=False)
|
||||
account_type = db.Column(db.String(50))
|
||||
status = db.Column(db.String(20), default='active')
|
||||
amount = db.Column(db.Float, nullable=False, default=0.0)
|
||||
salary_date = db.Column(db.DateTime(timezone=False), server_default=func.now())
|
||||
created_at = db.Column(db.DateTime(timezone=False), server_default=func.now())
|
||||
updated_at = db.Column(db.DateTime(timezone=False), server_default=func.now(), onupdate=func.now())
|
||||
|
||||
def to_dict(self):
|
||||
return {
|
||||
"id": self.id,
|
||||
"customer_id": self.customer_id,
|
||||
"account_type": self.account_type,
|
||||
"status": self.status,
|
||||
"amount": self.amount,
|
||||
"salary_date": self.salary_date.isoformat() if self.salary_date else None,
|
||||
"created_at": self.created_at.isoformat() if self.created_at else None,
|
||||
"updated_at": self.updated_at.isoformat() if self.updated_at else None
|
||||
}
|
||||
|
||||
def __repr__(self):
|
||||
return f'<Salary {self.id} - {self.amount}>'
|
||||
|
||||
Reference in New Issue
Block a user