Пример #1
0
class LoanApplication(db.Model):
    """Model for storing the loan applications of the users."""
    __tablename__ = 'loan_applications'

    STATES = [
        (u'pending', u'Pending'),
        (u'approved', u'Approved'),
        (u'denied', u'Denied'),
    ]

    id = db.Column(db.Integer, primary_key=True, autoincrement=True)
    creator_id = db.Column(db.Integer, db.ForeignKey('users.id'))
    creator = relationship("User", back_populates="loan_applications")
    business_name = db.Column(db.String(255), nullable=False)
    tax_id = db.Column(db.String(20), nullable=False)
    requested_amount = db.Column(db.Numeric(12, 4), nullable=False)
    application_status = db.Column(ChoiceType(STATES), nullable=False)
    requested_on = db.Column(db.DateTime, nullable=False)
    loan = relationship("Loan",
                        uselist=False,
                        back_populates="loan_application")

    def __init__(self, creator_id, business_name, requested_amount, tax_id,
                 application_status):
        self.creator_id = creator_id
        self.business_name = business_name
        self.requested_amount = requested_amount
        self.tax_id = tax_id
        self.application_status = application_status
        self.requested_on = datetime.datetime.now()

    def __repr__(self):
        return f"{self.business_name}, {self.requested_amount}, {self.application_status}"
Пример #2
0
class Loan(db.Model):
    """Represents the loans that have been accepted."""
    __tablename__ = 'loans'

    STATES = [
        (u'active', u'Active'),
        (u'closed', u'Closed'),
    ]

    id = db.Column(db.Integer, primary_key=True, autoincrement=True)
    loan_application_id = db.Column(db.Integer,
                                    db.ForeignKey('loan_applications.id'))
    loan_application = relationship("LoanApplication", back_populates="loan")
    loan_status = db.Column(ChoiceType(STATES), nullable=False)
    accepted_on = db.Column(db.DateTime, nullable=False)
    requested_amount = db.Column(db.Numeric(12, 4), nullable=False)

    def __init__(self, loan_application_id, loan_status, requested_amount):
        self.loan_application_id = loan_application_id
        self.loan_status = loan_status
        self.accepted_on = datetime.datetime.now()
        self.requested_amount = requested_amount

    def __repr__(self):
        return f"{self.loan_application}, accepted_on={self.accepted_on}"
Пример #3
0
class Product(db.Model):
    __tablename__ = 'products'

    id = db.Column(db.Integer, primary_key=True, autoincrement=True)

    title = db.Column(db.String(255), nullable=False)
    price = db.Column(db.Numeric(asdecimal=True, precision=10, scale=2), nullable=False)
    bogof = db.Column(db.Boolean, default=False)
Пример #4
0
class Bill(db.Model):
    """ Billing table for storing line item allocated bills """
    __tablename__ = "bills"

    id = db.Column(db.Integer, primary_key=True, autoincrement=True)
    bill_name = db.Column(db.String(250), unique=False, nullable=False)
    bill_timestamp_id = db.Column(db.String(250), unique=False, nullable=False)
    bill_date = db.Column(db.Date, nullable=False, index=True)
    bill_amount = db.Column(db.Numeric(15, 2), unique=False, nullable=False)
    line_number = db.Column(db.Integer, nullable=False)
    line_name = db.Column(db.String(250), nullable=True)
    line_notes = db.Column(db.String(1000), nullable=True)
    line_amount = db.Column(db.Numeric(15, 2), unique=False, nullable=False)
    allocation_array = db.Column(db.ARRAY(db.Float), nullable=False)
    created_on = db.Column(db.DateTime, nullable=False, index=True)
    sent_to_ledger_flag = db.Column(db.Boolean, nullable=False, default=False)

    def __init__(self,
                 bill_name="",
                 bill_date=datetime.date.today(),
                 bill_timestamp_id=str(datetime.date.today()),
                 bill_amount=0.0,
                 line_number=0,
                 line_name="",
                 line_notes="",
                 line_amount=0.0,
                 allocation_array=[
                     0.1, 0.1, 0.1, 0.1, 0.1, 0.1, 0.1, 0.1, 0.1, 0.1
                 ],
                 sent_to_ledger_flag=False,
                 **kwargs):
        self.bill_name = bill_name
        self.bill_timestamp_id = bill_timestamp_id
        self.bill_date = bill_date
        self.bill_amount = bill_amount
        self.line_number = line_number
        self.line_name = line_name
        self.line_notes = line_notes
        self.line_amount = line_amount
        self.created_on = datetime.datetime.now()
        self.allocation_array = allocation_array
        self.sent_to_ledger_flag = sent_to_ledger_flag
Пример #5
0
class CartItem(db.Model):
    __tablename__ = 'cart_items'

    # Constants
    ADD = 'add'
    SUBTRACT = 'subtract'
    REMOVE = 'remove'
    ACTIONS = (ADD, SUBTRACT, REMOVE)

    id = db.Column(db.Integer, primary_key=True, autoincrement=True)

    quantity = db.Column(db.Integer, default=1)
    price = db.Column(db.Numeric(asdecimal=True, precision=10, scale=2), nullable=False)

    cart_id = db.Column(db.Integer, db.ForeignKey('carts.id'), nullable=True)
    cart = db.relationship('Cart', backref=backref("cart_items", lazy='joined', cascade="all, delete-orphan"),
                           lazy=True)
    product_id = db.Column(db.Integer, db.ForeignKey('products.id'), nullable=True)
    product = db.relationship('Product', backref="cartitem", uselist=False, lazy='joined')
Пример #6
0
class Cart(db.Model):
    __tablename__ = 'carts'

    id = db.Column(db.Integer, primary_key=True, autoincrement=True)

    total = db.Column(db.Numeric(asdecimal=True, precision=10, scale=2), default=0)