예제 #1
0
class BankTransaction(db.Model):
    __tablename__ = 'bank_transactions'
    url = db.Column(db.String(), nullable=False, primary_key=True)
    bank_account = db.Column(db.String(), nullable=False)
    amount = db.Column(db.Numeric(precision=10, scale=2))
    dated_on = db.Column(db.Date())
    description = db.Column(db.String())
    full_description = db.Column(db.String())
    is_manual = db.Column(db.Boolean())
    unexplained_amount = db.Column(db.Numeric(precision=10, scale=2))
    uploaded_at = db.Column(db.Date())
    created_at = db.Column(db.DateTime())
    updated_at = db.Column(db.DateTime())

    def __init__(self,
                 created_at=datetime.now(),
                 updated_at=datetime.now(),
                 **kwargs):
        """Mostly rely on default declarative SQLAlchemy constructor. Additionally set the timestamps on object creation."""
        super(
            BankTransaction,
            self).__init__(**kwargs)  # use the default declarative constructor
        self.created_at = created_at
        self.updated_at = updated_at

    def __repr__(self):
        return '<url {}>'.format(self.url)
예제 #2
0
class BankAccount(db.Model):
    __tablename__ = 'bank_accounts'

    url = db.Column('url', db.String(length=255), autoincrement=False, nullable=False, primary_key=True)
    account_number = db.Column('account_number', db.String(length=255), autoincrement=False, nullable=True)
    bank_code = db.Column('bank_code', db.String(length=25), autoincrement=False, nullable=True)
    bank_name = db.Column('bank_name', db.String(length=255), autoincrement=False, nullable=True)
    bic = db.Column('bic', db.String(length=255), autoincrement=False, nullable=True)
    latest_activity_date = db.Column('latest_activity_date', db.DATE(), autoincrement=False, nullable=True)
    currency = db.Column('currency', db.String(length=255), autoincrement=False, nullable=True)
    current_balance = db.Column('current_balance', db.NUMERIC(precision=10, scale=2), autoincrement=False, nullable=True)
    iban = db.Column('iban', db.String(length=255), autoincrement=False, nullable=True)
    is_personal = db.Column('is_personal', db.BOOLEAN(), autoincrement=False, nullable=True)
    is_primary = db.Column('is_primary', db.BOOLEAN(), autoincrement=False, nullable=True)
    name = db.Column('name', db.String(length=255), autoincrement=False, nullable=True)
    opening_balance = db.Column('opening_balance', db.NUMERIC(precision=10, scale=2), autoincrement=False, nullable=True)
    sort_code = db.Column('sort_code', db.String(length=255), autoincrement=False, nullable=True)
    type = db.Column('type', db.String(length=255), autoincrement=False, nullable=True)
    created_at = db.Column('created_at', db.DateTime(), nullable=True)
    updated_at = db.Column('updated_at', db.DateTime(), nullable=True)

    def __init__(self, created_at=datetime.now(), updated_at=datetime.now(), **kwargs):
        """Mostly rely on default declarative SQLAlchemy constructor. Additionally set the timestamps on object creation."""
        super(BankAccount, self).__init__(**kwargs)  # use the default declarative constructor
        self.created_at = created_at
        self.updated_at = updated_at

    def __repr__(self):
        return '<url {}>'.format(self.url)
예제 #3
0
class Project(db.Model):
    __tablename__ = 'projects'

    url = db.Column(db.String(), nullable=False, primary_key=True)
    name = db.Column(db.String())
    contact = db.Column(db.String())
    budget = db.Column(db.Integer())
    is_ir35 = db.Column(db.Boolean())
    status = db.Column(db.String())
    budget_units = db.Column(db.String())
    normal_billing_rate = db.Column(db.Numeric(precision=10, scale=2))
    hours_per_day = db.Column(db.Numeric(precision=10, scale=2))
    uses_project_invoice_sequence = db.Column(db.Boolean())
    currency = db.Column(db.String())
    billing_period = db.Column(db.String())
    created_at = db.Column(db.DateTime())
    updated_at = db.Column(db.DateTime())

    def __init__(self, created_at=datetime.now(), updated_at=datetime.now(), **kwargs):
        """Mostly rely on default declarative SQLAlchemy constructor. Additionally set the timestamps on object creation."""
        super(Project, self).__init__(**kwargs)  # use the default declarative constructor
        self.created_at = created_at
        self.updated_at = updated_at

    def __repr__(self):
        return '<url {}>'.format(self.url)
예제 #4
0
class Bill(db.Model):
    __tablename__ = 'bills'
    url = db.Column(db.String(), nullable=False, primary_key=True)
    category = db.Column(db.String(), nullable=False)
    project = db.Column(db.String())
    comments = db.Column(db.String())
    contact = db.Column(db.String())
    dated_on = db.Column(db.Date())
    due_on = db.Column(db.Date())
    due_value = db.Column(db.Numeric(precision=10, scale=2))
    paid_value = db.Column(db.Numeric(precision=10, scale=2))
    reference = db.Column(db.String())
    sales_tax_rate = db.Column(db.Numeric(precision=10, scale=2))
    sales_tax_value = db.Column(db.Numeric(precision=10, scale=2))
    status = db.Column(db.String())
    total_value = db.Column(db.Numeric(precision=10, scale=2))
    created_at = db.Column(db.DateTime())
    updated_at = db.Column(db.DateTime())

    def __init__(self,
                 created_at=datetime.now(),
                 updated_at=datetime.now(),
                 **kwargs):
        """Mostly rely on default declarative SQLAlchemy constructor. Additionally set the timestamps on object creation."""
        super(
            Bill,
            self).__init__(**kwargs)  # use the default declarative constructor
        self.created_at = created_at
        self.updated_at = updated_at

    def __repr__(self):
        return '<url {}>'.format(self.url)
예제 #5
0
class Category(db.Model):
    __tablename__ = 'categories'

    url = db.Column(db.String(255), nullable=False, primary_key=True)
    allowable_for_tax = db.Column(db.Boolean())
    auto_sales_tax_rate = db.Column(db.String(255))
    description = db.Column(db.String(255))
    group_description = db.Column(db.String(255))
    nominal_code = db.Column(db.String(255))
    tax_reporting_name = db.Column(db.String(255))
    created_at = db.Column(db.DateTime())
    updated_at = db.Column(db.DateTime())

    def __init__(self,
                 created_at=datetime.now(),
                 updated_at=datetime.now(),
                 **kwargs):
        """Mostly rely on default declarative SQLAlchemy constructor. Additionally set the timestamps on object creation."""
        super(
            Category,
            self).__init__(**kwargs)  # use the default declarative constructor
        self.created_at = created_at
        self.updated_at = updated_at

    def __repr__(self):
        return '<url {}>'.format(self.url)
예제 #6
0
class User(db.Model):
    __tablename__ = 'users'

    url = db.Column(db.String(), nullable=False, primary_key=True)
    first_name = db.Column(db.String())
    last_name = db.Column(db.String())
    email = db.Column(db.String())
    role = db.Column(db.String())
    permission_level = db.Column(db.Integer())
    opening_mileage = db.Column(
        db.Numeric(precision=10, scale=2)
    )  # returns a decimal.Decimal object to prevent rounding errors. Pass asdecimal=False to this constructor if you want to just get floats out.
    created_at = db.Column(db.DateTime())
    updated_at = db.Column(db.DateTime())

    def __init__(self,
                 created_at=datetime.now(),
                 updated_at=datetime.now(),
                 **kwargs):
        """Mostly rely on default declarative SQLAlchemy constructor. Additionally set the timestamps on object creation."""
        super(
            User,
            self).__init__(**kwargs)  # use the default declarative constructor
        self.created_at = created_at
        self.updated_at = updated_at

    def __repr__(self):
        return '<url {}>'.format(self.url)
예제 #7
0
class Expense(db.Model):
    __tablename__ = 'expenses'
    url = db.Column(db.String(), nullable=False, primary_key=True)
    category = db.Column(db.String())
    currency = db.Column(db.String())
    dated_on = db.Column(db.Date())
    description = db.Column(db.String())
    gross_value = db.Column(db.Numeric(precision=10, scale=2))
    manual_sales_tax_amount = db.Column(db.Numeric(precision=10, scale=2))
    native_gross_value = db.Column(db.Numeric(precision=10, scale=2))
    native_sales_tax_value = db.Column(db.Numeric(precision=10, scale=2))
    project = db.Column(db.String())
    receipt_reference = db.Column(db.String())
    sales_tax_rate = db.Column(db.Numeric(precision=10, scale=2))
    sales_tax_value = db.Column(db.Numeric(precision=10, scale=2))
    user = db.Column(db.String())
    rebill_factor = db.Column(db.Numeric(precision=10, scale=2))
    created_at = db.Column(db.DateTime())
    updated_at = db.Column(db.DateTime())

    def __init__(self, created_at=datetime.now(), updated_at=datetime.now(), **kwargs):
        """Mostly rely on default declarative SQLAlchemy constructor. Additionally set the timestamps on object creation."""
        super(Expense, self).__init__(**kwargs)  # use the default declarative constructor
        self.created_at = created_at
        self.updated_at = updated_at

    def __repr__(self):
        return '<url {}>'.format(self.url)
예제 #8
0
class ServerCost(db.Model):
    __tablename__ = 'server_costs'

    project_url = db.Column(db.String(),
                            sa.ForeignKey('projects.url'),
                            nullable=False,
                            primary_key=True)
    value = db.Column(
        db.Numeric(precision=10, scale=2), nullable=True
    )  # returns a decimal.Decimal object to prevent rounding errors. Pass asdecimal=False to this constructor if you want to just get floats out.
    created_at = db.Column(db.DateTime())
    updated_at = db.Column(db.DateTime())

    def __init__(self,
                 created_at=datetime.now(),
                 updated_at=datetime.now(),
                 **kwargs):
        """Mostly rely on default declarative SQLAlchemy constructor. Additionally set the timestamps on object creation."""
        super(
            ServerCost,
            self).__init__(**kwargs)  # use the default declarative constructor
        self.created_at = created_at
        self.updated_at = updated_at

    def __repr__(self):
        return '<project url {0} value {1}>'.format(self.url, self.value)
예제 #9
0
class BankTransactionExplanation(db.Model):
    __tablename__ = 'bank_transaction_explanations'
    url = db.Column(db.String(), nullable=False, primary_key=True)
    bank_transaction = db.Column(db.String(), nullable=False)
    bank_account = db.Column(db.String(), nullable=False)
    category = db.Column(db.String())
    dated_on = db.Column(db.Date())
    description = db.Column(db.String())
    gross_value = db.Column(db.Numeric(precision=10, scale=2))
    paid_bill = db.Column(db.String())
    paid_invoice = db.Column(db.String())
    paid_user = db.Column(db.String())
    receipt_reference = db.Column(db.String())
    sales_tax_rate = db.Column(db.Numeric(precision=10, scale=2))
    created_at = db.Column(db.DateTime())
    updated_at = db.Column(db.DateTime())

    def __init__(self, created_at=datetime.now(), updated_at=datetime.now(), **kwargs):
        """Mostly rely on default declarative SQLAlchemy constructor. Additionally set the timestamps on object creation."""
        super(BankTransactionExplanation, self).__init__(**kwargs)  # use the default declarative constructor
        self.created_at = created_at
        self.updated_at = updated_at

    def __repr__(self):
        return '<url {}>'.format(self.url)
예제 #10
0
class Event(db.Model):
    __tablename__ = 'event'
    id = db.APIColumn(db.Integer, primary_key=True, methods=['GET'])
    site_id = db.APIColumn(db.Integer, db.ForeignKey('site.id'))
    chapter_id = db.APIColumn(db.Integer)
    title = db.APIColumn(db.String(32))
    start_time = db.APIColumn(db.DateTime(timezone=True))
    end_time = db.APIColumn(db.DateTime(timezone=True))

    site = db.relationship('Site', back_populates='events')
예제 #11
0
class Invoice(db.Model):
    __tablename__ = 'invoices'
    url = db.Column(db.String(), nullable=False, primary_key=True)
    always_show_bic_and_iban = db.Column(db.Boolean())
    comments = db.Column(db.String())
    contact = db.Column(db.String())
    currency = db.Column(db.String())
    dated_on = db.Column(db.Date())
    discount_percent = db.Column(db.Numeric(precision=10, scale=2))
    due_on = db.Column(db.Date())
    due_value = db.Column(db.Numeric(precision=10, scale=2))
    exchange_rate = db.Column(db.Numeric(precision=10, scale=2))
    involves_sales_tax = db.Column(db.Boolean())
    is_interim_uk_vat = db.Column(db.Boolean())
    net_value = db.Column(db.Numeric(precision=10, scale=2))
    omit_header = db.Column(db.Boolean())
    paid_on = db.Column(db.Date())
    paid_value = db.Column(db.Numeric(precision=10, scale=2))
    payment_terms_in_days = db.Column(db.Integer())
    po_reference = db.Column(db.String())
    project = db.Column(db.String())
    reference = db.Column(db.String())
    sales_tax_value = db.Column(db.Numeric(precision=10, scale=2))
    show_project_name = db.Column(db.Boolean())
    status = db.Column(db.String())
    total_value = db.Column(db.Numeric(precision=10, scale=2))
    written_off_date = db.Column(db.Date())
    send_reminder_emails = db.Column(db.Boolean())
    send_thank_you_emails = db.Column(db.Boolean())
    send_new_invoice_emails = db.Column(db.Boolean())
    include_timeslips = db.Column(db.String())
    recurring_invoice = db.Column(db.String())
    billed_grouped_by_single_timeslip = db.Column(db.Boolean())
    bank_account = db.Column(db.String())
    client_contact_name = db.Column(db.String())
    created_at = db.Column(db.DateTime())
    updated_at = db.Column(db.DateTime())

    def __init__(self,
                 created_at=datetime.now(),
                 updated_at=datetime.now(),
                 **kwargs):
        """Mostly rely on default declarative SQLAlchemy constructor. Additionally set the timestamps on object creation."""
        super(
            Invoice,
            self).__init__(**kwargs)  # use the default declarative constructor
        self.created_at = created_at
        self.updated_at = updated_at

    def __repr__(self):
        return '<url {}>'.format(self.url)
예제 #12
0
class Contact(db.Model):
    __tablename__ = 'contacts'
    url = db.Column(db.String(), nullable=False, primary_key=True)
    account_balance = db.Column(db.Numeric(precision=10, scale=2))
    address1 = db.Column(db.String())
    address2 = db.Column(db.String())
    address3 = db.Column(db.String())
    billing_email = db.Column(db.String())
    charge_sales_tax = db.Column(db.String())
    contact_name_on_invoices = db.Column(db.Boolean())
    country = db.Column(db.String())
    email = db.Column(db.String())
    first_name = db.Column(db.String())
    is_deletable = db.Column(db.Boolean())
    last_name = db.Column(db.String())
    locale = db.Column(db.String())
    mobile = db.Column(db.String())
    phone_number = db.Column(db.String())
    organisation_name = db.Column(db.String())
    postcode = db.Column(db.String())
    region = db.Column(db.String())
    status = db.Column(db.String())
    sales_tax_registration_number = db.Column(db.String())
    town = db.Column(db.String())
    uses_contact_invoice_sequence = db.Column(db.Boolean())
    active_projects_count = db.Column(db.Integer())
    created_at = db.Column(db.DateTime())
    updated_at = db.Column(db.DateTime())

    def __init__(self, created_at=datetime.now(), updated_at=datetime.now(), **kwargs):
        """Mostly rely on default declarative SQLAlchemy constructor. Additionally set the timestamps on object creation."""
        super(Contact, self).__init__(**kwargs)  # use the default declarative constructor
        self.created_at = created_at
        self.updated_at = updated_at

    def __repr__(self):
        return '<url {}>'.format(self.url)