Ejemplo n.º 1
0
class Receipt(db.Model):

    __tablename__ = "receipts"

    receiptid = db.Column(db.Integer, primary_key=True)
    date_created = db.Column(DateTime(timezone=True),
                             server_default=func.now())
    statusid = db.Column(db.Integer)

    billid = db.Column(db.Integer,
                       db.ForeignKey("bills.billid"),
                       nullable=False)
    filename = db.Column(db.String)

    ownerid = db.Column(db.Integer,
                        db.ForeignKey("users.userid"),
                        nullable=False)

    def delete(self):
        db.session.delete(self)
        db.session.commit()

    def __repr__(self):
        return 'Receipt(Id: %s, filename: %s, Ownerid: %s, Billid: %s)' % (
            self.receiptid, self.filename, self.ownerid, self.billid)
Ejemplo n.º 2
0
class Bill(db.Model):

    __tablename__ = "bills"

    billid = db.Column(db.Integer, primary_key=True)
    date_created = db.Column(DateTime(timezone=True),
                             server_default=func.now())

    payeeid = db.Column(db.Integer,
                        db.ForeignKey("users.userid"),
                        nullable=False)
    statusid = db.Column(db.Integer, default=1)
    title = db.Column(db.String)
    amount_bill = db.Column(db.Numeric)
    amount_total = db.Column(db.Numeric)
    amount_payee = db.Column(db.Numeric, default=0)
    filefolder = db.Column(db.String, default=secrets.token_hex(8))
    token = db.Column(db.String)
    #amount_claimed = db.Column(db.Numeric)

    claims = relationship('BillDebt', backref='bill', cascade='all, delete')
    receipts = relationship('Receipt', backref='bill', cascade='all, delete')

    def delete(self):
        db.session.delete(self)
        db.session.commit()

    def __repr__(self):
        return 'Bill(Id: %s, Payee: %s, Payeeid: %s, Title: %s, Statusid: %s, Filefolder: %s)' % (
            self.billid, self.payee, self.payeeid, self.title, self.statusid,
            self.filefolder)
Ejemplo n.º 3
0
class Relationship(db.Model):

    __tablename__ = "friends"

    friendshipid = db.Column(db.Integer, primary_key=True)
    userid = db.Column(db.Integer,
                       db.ForeignKey("users.userid"),
                       nullable=False)
    frienduserid = db.Column(db.Integer,
                             db.ForeignKey("users.userid"),
                             nullable=False)
    statusid = db.Column(db.Integer)
    rel_sender = relationship('User', foreign_keys='Relationship.userid')
    rel_receiver = relationship('User',
                                foreign_keys='Relationship.frienduserid')

    #__table_args__ = (db.UniqueConstraint('frienduserid', 'userid', name='_frienduserid_uc'), )
    #__table_args__ = (db.UniqueConstraint('receiving_user', 'requesting_user', name='_receiving_user_uc'), )
    def __init__(self, user, receiving_user, status):
        self.userid = user
        self.frienduserid = receiving_user
        self.statusid = status

    def get_id(self):
        return self.friendshipid

    def accept_req(self):
        self.statusid = 3
        db.session.commit()

    def delete(self):
        db.session.delete(self)
        db.session.commit()

    def __repr__(self):
        #return '<rel-friendshipid - {}>'.format(self.friendshipid)
        return 'Relationship(Id: %s, Sender: %s, Receiver: %s, Statusid: %s)' % (
            self.friendshipid, self.userid, self.frienduserid, self.statusid)
Ejemplo n.º 4
0
class BillDebt(db.Model):

    __tablename__ = "billdebts"

    billdebtid = db.Column(db.Integer, primary_key=True)
    date_created = db.Column(DateTime(timezone=True),
                             server_default=func.now())
    statusid = db.Column(db.Integer, default=0)
    token = db.Column(db.String)
    payerid = db.Column(db.Integer,
                        db.ForeignKey('users.userid'),
                        nullable=False)
    payer_screen_name = db.Column(db.String)

    amount_owed = db.Column(db.Numeric, default=0)
    sms = db.Column(db.Boolean, nullable=True)
    sms_attempts = db.Column(db.Integer, default=0)
    #invoice = relationship('Invoice', foreign_keys='Relationship.userid')

    billid = db.Column(db.Integer, ForeignKey('bills.billid'))
    #invoiceid = db.Column(db.Integer, ForeignKey('invoices.invoiceid'))
    #invoices = relationship('Invoice', backref='billdebt', cascade='all, delete')
    invoice = relationship("Invoice",
                           uselist=False,
                           back_populates="billdebt",
                           cascade='all, delete')

    #invoice = relationship("Invoice", back_populates="invoices")
    #payer = relationship("User", back_populates="users")

    def delete(self):
        db.session.delete(self)
        db.session.commit()

    def __repr__(self):
        return 'BillDebt(Id: %s, Payer: %s, Amount_owed: %s, Statusid: %s)' % (
            self.billdebtid, self.payerid, self.amount_owed, self.statusid)
Ejemplo n.º 5
0
class Invoice(db.Model):

    __tablename__ = "invoices"

    invoiceid = db.Column(db.Integer, primary_key=True)
    amount = db.Column(db.Integer)
    description = db.Column(db.String)
    userid = db.Column(db.Integer,
                       db.ForeignKey("users.userid"),
                       nullable=False)
    frienduserid = db.Column(db.Integer,
                             db.ForeignKey("users.userid"),
                             nullable=False)
    statusid = db.Column(db.Integer)
    #invoice_date = db.Column(DateTime(timezone=True), server_default=func.now())
    date_created = db.Column(DateTime(timezone=True),
                             server_default=func.now())
    date_updated = db.Column(DateTime(timezone=True))
    date_due = db.Column(DateTime(timezone=True))
    #duedate = db.Column(db.Date)
    message = db.Column(db.String)
    invoice_version = db.Column(db.Integer)
    sender = relationship('User', foreign_keys='Invoice.userid')
    receiver = relationship('User', foreign_keys='Invoice.frienduserid')

    #__table_args__ = (db.UniqueConstraint('frienduserid', 'userid', name='_frienduserid_uc'), )
    #__table_args__ = (db.UniqueConstraint('receiving_user', 'requesting_user', name='_receiving_user_uc'), )
    def __init__(self, userid, receiving_user, amount, description):
        self.userid = userid
        self.frienduserid = receiving_user
        self.statusid = 1
        self.amount = amount
        self.invoice_version = 1
        self.description = description
        self.date_due = func.now() + timedelta(days=7)

    def update(self, description, amount):
        if (amount):
            self.amount = amount
        if (description):
            self.description = description
        self.invoice_version += 1
        self.statusid = 1
        self.message = None
        self.date_updated = func.now()
        db.session.commit()

    def get_id(self):
        return self.invoiceid

    def get_amount(self):
        return self.amount

    def delete(self):
        db.session.delete(self)
        db.session.commit()

    def reject(self, message):
        self.statusid = 3
        self.message = message
        db.session.commit()

    def change_status(self, status):
        self.statusid = status
        db.session.commit()

    def __repr__(self):
        #return '<rel-invoiceid - {}>'.format(self.invoiceid)
        return 'Invoice(Id: %s, Receiver: %s, amount: %s, description: %s, sender: %s, receiver: %s)' % (
            self.invoiceid, self.frienduserid, self.amount, self.description,
            self.sender, self.receiver)