Exemplo n.º 1
0
class RecurringGroup(db.Model):
    id = db.Column(db.Integer(), primary_key=True)
    account_id = db.Column(db.Integer())
    label = db.Column(db.String(255))
    amount = db.Column(db.DECIMAL(19, 2))
    start_date = db.Column(db.Date())
    end_date = db.Column(db.Date())
    recurrence_day = db.Column(db.Integer())
    recurrence_month = db.Column(db.Integer())

    def __init__(self, account_id, label, amount, start_date, end_date,
                 recurrence_day, recurrence_month):
        self.account_id = account_id
        self.label = label
        self.amount = amount
        self.start_date = start_date
        self.end_date = end_date
        self.recurrence_day = recurrence_day
        self.recurrence_month = recurrence_month

    @staticmethod
    def get_groups(account_ids):
        if not isinstance(account_ids, (list)):
            account_ids = [account_ids]
        return RecurringGroup.query.filter(
            RecurringGroup.account_id.in_(account_ids)).all()
Exemplo n.º 2
0
class Account(db.Model):
    id = db.Column(db.Integer(), primary_key=True)
    user = db.Column(db.Integer())
    label = db.Column(db.String(255))
    bank = db.Column(db.String(255))
    iban = db.Column(db.String(34), unique=True)
    bic = db.Column(db.String(12))
    projected_date = db.Column(db.Date())

    def __init__(self, user, label, bank, iban, bic, projected_date):
        self.user = user['id']
        self.label = label
        self.bank = bank
        self.iban = iban
        self.bic = bic
        self.projected_date = projected_date

    @staticmethod
    def get_accounts(user):
        return Account.query.filter_by(user=user['id']).all()

    @staticmethod
    def get_account_by_id(id):
        account = Account.query.filter_by(id=id)
        if account:
            return account
        else:
            return None

    @staticmethod
    def get_projected_date(id):
        account = Account.query.filter_by(id=id).first()
        return account.projected_date
Exemplo n.º 3
0
class Appointment(db.Model):
    id = db.Column(db.Integer, primary_key=True, autoincrement=True)
    room = db.Column(db.Integer,
                     db.ForeignKey('room.roomNumber'),
                     nullable=False)
    clinic_id = db.Column(db.Integer,
                          db.ForeignKey('clinic.id'),
                          nullable=False)
    doctor_permit_number = db.Column(db.String(7),
                                     db.ForeignKey('doctor.permit_number'),
                                     nullable=False)
    patient_hcnumber = db.Column(db.String(12),
                                 db.ForeignKey('patient.hcnumber'),
                                 nullable=False)
    length = db.Column(db.Integer, nullable=False)
    time = db.Column(db.String(), nullable=False)
    date = db.Column(db.Date(), nullable=False)

    def __iter__(self):
        yield 'id', self.id
        yield 'room', self.room
        yield 'clinic_id', self.clinic_id
        yield 'doctor_permit_number', self.doctor_permit_number
        yield 'patient_hcnumber', self.patient_hcnumber
        yield 'length', self.length
        yield 'time', self.time
        yield 'date', self.date.strftime("%Y-%m-%d")
Exemplo n.º 4
0
class UserSession(db.Model):
    __tablename__ = "user_session"
    id = db.Column(db.Integer(), primary_key=True)
    user_id = db.Column(db.Integer(), db.ForeignKey("user.id"))
    date = db.Column(db.Date())
    sets = db.relationship("UserSet")
    note = db.Column(db.Text())
    grip = db.Column(db.String(255))
    program = db.Column(db.Integer(), db.ForeignKey("program_template.id"))
Exemplo n.º 5
0
class IpQuery(db.Model):
  __bind_key__ = 'wehomeproperty'
  id = db.Column(db.Integer(), index=True, primary_key=True)
  ip = db.Column(db.String(255), index=True)
  home_id = db.Column(db.String(255))
  source_name = db.Column(db.String(255))
  date = db.Column(db.Date())
  created_at = db.Column(db.DateTime(), default=datetime.datetime.now)
  updated_at = db.Column(db.DateTime(), default=datetime.datetime.now, onupdate=datetime.datetime.now)
  
  def __init__(self, ip, home_id, source_name, date):
    self.ip = ip
    self.home_id = home_id
    self.source_name = source_name
    self.date = date
Exemplo n.º 6
0
class Transaction(db.Model):
    id = db.Column(db.Integer(), primary_key=True)
    transaction_id = db.Column(db.String(38), unique=True)
    account_id = db.Column(db.Integer())
    label = db.Column(db.String(255))
    amount = db.Column(db.DECIMAL(19, 2))
    recurring_group_id = db.Column(db.Integer())
    date = db.Column(db.Date())
    tick = db.Column(db.SmallInteger())

    def __init__(self, transaction_id, account_id, label, amount,
                 recurring_group_id, date, tick):
        self.transaction_id = transaction_id
        self.account_id = account_id
        self.label = label
        self.amount = amount
        self.recurring_group_id = recurring_group_id
        self.date = date
        self.tick = tick

    @staticmethod
    def get_transactions(account_id, limit):
        return Transaction.query \
            .filter(Transaction.account_id == account_id) \
            .filter(or_(db.func.date(Transaction.date) <= datetime.now().date(), Transaction.recurring_group_id == None)) \
            .order_by(desc(Transaction.date)) \
            .limit(limit) \
            .all()

    @staticmethod
    def get_recurring_until_projected(account_id):
        return Transaction.query \
            .filter((Transaction.account_id == account_id),
                    (db.func.date(Transaction.date) <= Account.get_projected_date(account_id)),
                    (db.func.date(Transaction.date) > datetime.now().date()),
                    (Transaction.recurring_group_id != None)) \
            .all()