Beispiel #1
0
class MonthlySubcategoryBudget(Entity):
    budgeted = AmountField()
    entities_monthly_budget_id = EntityField(None)
    entities_subcategory_id = EntityField(None)
    is_tombstone = EntityField(False)
    note = EntityField(None)
    overspending_handling = EntityField(None)
Beispiel #2
0
class MonthlySubcategoryBudgetCalculation(Entity):
    additional_to_be_budgeted = EntityField(None)
    all_spending = AmountField()
    all_spending_since_last_payment = AmountField()
    balance = AmountField()
    balance_previous_month = AmountField()
    budgeted_average = AmountField()
    budgeted_cash_outflows = AmountField()
    budgeted_credit_outflows = AmountField()
    budgeted_previous_month = AmountField()
    budgeted_spending = AmountField()
    cash_outflows = AmountField()
    credit_outflows = AmountField()
    entities_monthly_subcategory_budget_id = EntityField(None)
    goal_expected_completion = EntityField(None)
    goal_overall_funded = AmountField()
    goal_overall_left = AmountField()
    goal_percentage_complete = EntityField(None)
    goal_target = EntityField(None)
    goal_under_funded = EntityField(None)
    is_tombstone = EntityField(False)
    overspending_affects_buffer = EntityField(None)
    payment_average = AmountField()
    payment_previous_month = AmountField()
    spent_average = AmountField()
    spent_previous_month = AmountField()
    unbudgeted_cash_outflows = AmountField()
    unbudgeted_credit_outflows = AmountField()
    upcoming_transactions = AmountField()
    upcoming_transactions_count = EntityField(None)
    positive_cash_outflows = AmountField()
Beispiel #3
0
class Subtransaction(Entity):
    amount = AmountField()
    cash_amount = AmountField()
    check_number = EntityField(None)
    credit_amount = AmountField()
    entities_payee_id = EntityField(None)
    entities_subcategory_id = EntityField(None)
    entities_transaction_id = EntityField(None)
    is_tombstone = EntityField(False)
    memo = EntityField(None)
    sortable_index = EntityField(0)
    subcategory_credit_amount_preceding = EntityField(None)
    transfer_account_id = EntityField(None)
    transfer_transaction_id = EntityField(None)
Beispiel #4
0
class AccountMapping(Entity):
    date_sequence = DateField(None)
    entities_account_id = EntityField(None)
    hash = EntityField(None)
    fid = EntityField(None)
    is_tombstone = EntityField(False)
    salt = EntityField(None)
    shortened_account_id = EntityField(None)
    should_flip_payees_memos = EntityField(None)
    should_import_memos = EntityField(None)
    skip_import = EntityField(None)
Beispiel #5
0
class MasterCategory(Entity):
    deletable = EntityField(True)
    internal_name = EntityField(None)
    is_hidden = EntityField(False)
    is_tombstone = EntityField(False)
    name = EntityField(None)
    note = EntityField(None)
    sortable_index = EntityField(None)
Beispiel #6
0
class BudgetVersion(Entity):
    date_format = EntityField(None)
    last_accessed_on = EntityField(None)
    currency_format = EntityField(None)
    budget_id = EntityField(None)
    is_tombstone = EntityField(False)
    version_name = EntityField(None)
    source = EntityField(None)
Beispiel #7
0
class ScheduledTransaction(Entity):
    amount = AmountField()
    date = DateField(None)
    entities_account_id = EntityField(None)
    entities_payee_id = EntityField(None)
    entities_subcategory_id = EntityField(None)
    flag = EntityField(None)
    frequency = EntityField(None)
    is_tombstone = EntityField(False)
    memo = EntityField(None)
    transfer_account_id = EntityField(None)
    upcoming_instances = DatesField([])
Beispiel #8
0
class ScheduledSubtransaction(Entity):
    amount = AmountField()
    entities_payee_id = EntityField(None)
    entities_scheduled_transaction_id = EntityField(None)
    entities_subcategory_id = EntityField(None)
    is_tombstone = EntityField(False)
    memo = EntityField(None)
    sortable_index = EntityField(0)
    transfer_account_id = EntityField(None)
Beispiel #9
0
class MonthlyAccountCalculation(Entity):
    cleared_balance = AmountField()
    entities_account_id = EntityField(None)
    error_count = EntityField(None)
    info_count = EntityField(None)
    is_tombstone = EntityField(False)
    month = EntityField(None)
    transaction_count = EntityField(None)
    uncleared_balance = AmountField()
    warning_count = EntityField(None)
Beispiel #10
0
class User(Entity):
    username = EntityField(None)
    trial_expires_on = EntityField(None)
    is_tombstone = EntityField(False)
    email = EntityField(None)
    feature_flags = EntityField(None)
    is_subscribed = EntityField(None)
Beispiel #11
0
class MonthlyBudgetCalculation(Entity):
    additional_to_be_budgeted = AmountField()
    age_of_money = EntityField(None)
    available_to_budget = EntityField(None)
    balance = EntityField(None)
    budgeted = EntityField(None)
    calculation_notes = EntityField(None)
    cash_outflows = AmountField()
    credit_outflows = AmountField()
    deferred_income = AmountField()
    entities_monthly_budget_id = EntityField(None)
    hidden_balance = AmountField()
    hidden_budgeted = AmountField()
    hidden_cash_outflows = AmountField()
    hidden_credit_outflows = AmountField()
    immediate_income = AmountField()
    is_tombstone = EntityField(False)
    over_spent = AmountField()
    previous_income = AmountField()
    uncategorized_balance = AmountField()
    uncategorized_cash_outflows = AmountField()
    uncategorized_credit_outflows = AmountField()
Beispiel #12
0
class Transaction(Entity):
    accepted = EntityField(True)
    amount = AmountField()
    cash_amount = AmountField()
    check_number = EntityField(None)
    cleared = EntityField('Uncleared')
    credit_amount = AmountField()
    date = DateField(None)
    date_entered_from_schedule = DateField(None)
    entities_account_id = EntityField(None)
    entities_payee_id = EntityField(None)
    entities_scheduled_transaction_id = EntityField(None)
    entities_subcategory_id = EntityField(None)
    flag = EntityField("")
    imported_date = DateField(None)
    imported_payee = EntityField(None)
    is_tombstone = EntityField(False)
    matched_transaction_id = EntityField(None)
    memo = EntityField(None)
    source = EntityField(None)
    subcategory_credit_amount_preceding = EntityField(None)
    transfer_account_id = EntityField(None)
    transfer_subtransaction_id = EntityField(None)
    transfer_transaction_id = EntityField(None)
    ynab_id = EntityField(None)
Beispiel #13
0
class Setting(Entity):
    setting_name = EntityField(None)
    setting_value = EntityField(None)
Beispiel #14
0
class UserBudget(Entity):
    budget_id = EntityField(undef)
    user_id = EntityField(None)
    is_tombstone = EntityField(False)
    permissions = EntityField(None)
Beispiel #15
0
class Account(Entity):
    account_name = EntityField(None)
    account_type = AccountTypeField(AccountTypes.undef)
    direct_connect_account_id = EntityField(undef)
    direct_connect_enabled = EntityField(False)
    direct_connect_institution_id = EntityField(undef)
    hidden = EntityField(False)
    is_tombstone = EntityField(False)
    last_entered_check_number = EntityField(None)
    last_imported_at = EntityField(undef)
    last_imported_error_code = EntityField(undef)
    last_reconciled_balance = EntityField(None)
    last_reconciled_date = DateField(None)
    direct_connect_last_error_code = EntityField(None)
    direct_connect_last_imported_at = DateField(None)
    note = EntityField(None)
    sortable_index = EntityField(0)
    on_budget = PropertyField(on_budget_default)
Beispiel #16
0
class PayeeRenameCondition(Entity):
    entities_payee_id = EntityField(None)
    is_tombstone = EntityField(False)
    operand = EntityField(None)
    operator = EntityField(None)
Beispiel #17
0
class Subcategory(Entity):
    entities_account_id = EntityField(None)
    entities_master_category_id = EntityField(None)
    goal_creation_month = EntityField(None)
    goal_type = EntityField(None)
    internal_name = EntityField(None)
    is_hidden = EntityField(False)
    is_tombstone = EntityField(False)
    monthly_funding = EntityField(None)
    name = EntityField(None)
    note = EntityField(None)
    sortable_index = EntityField(0)
    target_balance = AmountField()
    target_balance_month = EntityField(None)
    type = EntityField(None)
Beispiel #18
0
class Entity(object):
    def __init__(self, *args, **kwargs):
        self.ListFields = {}
        self.Fields = {}
        self.AllFields = {}

        for namefield in dir(self):
            if namefield.startswith('__'): continue
            field = getattr(self, namefield)
            if isinstance(field, PropertyField):
                fieldc = copy.deepcopy(field)

                def getter(selfi):
                    if hasattr(selfi, '__prop_' + namefield):
                        return getattr(selfi, '__prop_' + namefield)
                    else:
                        return fieldc()(selfi)

                def setter(selfi, valuei):
                    setattr(selfi, '__prop_' + namefield, valuei)

                def cleaner(selfi):
                    delattr(selfi, '__prop_' + namefield)

                p = addprop(self, namefield, getter, setter, cleaner)
                if kwargs.get(namefield):
                    setattr(self.__class__, namefield, kwargs.get(namefield))
            elif isinstance(field, EntityField):
                self.Fields[namefield] = field
            elif isinstance(field, EntityListField):
                self.ListFields[namefield] = field
            else:
                continue
            self.AllFields[namefield] = field
            if isinstance(field, PropertyField): continue
            value = kwargs.get(namefield) if kwargs.get(
                namefield) is not None else field()
            setattr(self, namefield, value)
        super(Entity, self).__init__()

    id = EntityField(KeyGenerator.generateuuid)

    def __hash__(self):
        return self.hash()

    def hash(self):
        t = tuple((k, v) for k, v in self.getdict().items()
                  if k not in ignored_fields_for_hash)
        try:
            return hash(frozenset(t))
        except TypeError:
            pass

    def __str__(self):
        return str(self.getdict())

    def __unicode__(self):
        return self.__str__()

    def getdict(self):
        return {
            namefield: getattr(self, namefield)
            for namefield in self.AllFields
        }

    def get_changed_entities(self):
        firstrun = {
            namefield: getattr(self, namefield).get_changed_entities()
            for namefield in self.ListFields
        }
        return {
            namefield: value
            for namefield, value in firstrun.items() if value != []
        }

    def update_from_changed_entities(self, changed_entities):
        for namefield in self.ListFields:
            getattr(self, namefield).update_from_changed_entities(
                changed_entities.get(namefield))

    def update_from_dict(self, d):
        self.__dict__.update(d)

    def __ne__(self, other):
        return not self.__eq__(other)

    def __eq__(self, other):
        if isinstance(other, Entity):
            return self.getdict() == other.getdict()
        else:
            return False
Beispiel #19
0
 class MyEntity(Entity):
     greatfield = EntityField(2)
Beispiel #20
0
class PayeeLocation(Entity):
    entities_payee_id = EntityField(None)
    is_tombstone = EntityField(False)
    latitude = EntityField(None)
    longitude = EntityField(None)
Beispiel #21
0
class CatalogBudget(Entity):
    budget_name = EntityField(None)
    is_tombstone = EntityField(None)
Beispiel #22
0
class TransactionGroup(Entity):
    be_transaction = EntityField(None)
    be_subtransactions = EntityField(None)
    be_matched_transaction = EntityField(None)
Beispiel #23
0
class Payee(Entity):
    auto_fill_amount = AmountField()
    auto_fill_amount_enabled = EntityField(None)
    auto_fill_memo = EntityField(None)
    auto_fill_memo_enabled = EntityField(None)
    auto_fill_subcategory_enabled = EntityField(None)
    auto_fill_subcategory_id = EntityField(None)
    enabled = EntityField(True)
    entities_account_id = EntityField(None)
    internal_name = EntityField(None)
    is_tombstone = EntityField(False)
    name = EntityField(None)
    rename_on_import_enabled = EntityField(None)
Beispiel #24
0
class MonthlyBudget(Entity):
    is_tombstone = EntityField(False)
    month = EntityField(None)
    note = EntityField(None)
Beispiel #25
0
 class MockEntity(Entity):
     input = EntityField(True),
     override = PropertyField(lambda x: x.input)
Beispiel #26
0
class UserSetting(Entity):
    setting_name = EntityField(None)
    user_id = EntityField(None)
    setting_value = EntityField(None)