def add_expense(self, date, description, amount, category_id=None, account_id=None, pass_thru=False): # add into uncategorized expenses if category not provided if not category_id: category_id = self.is_category(name="Uncategorized") if not category_id: # crete a new one c = ExpenseCategoriesTable(self.user_id, u'Uncategorized') db_session.add(c) db_session.commit() category_id = c.id # find default account if not provided if not account_id: acc = Accounts(self.user_id) account_id = acc.get_default_account() if not account_id: account_id = acc.add_default_account() # add the actual expense e = ExpensesTable(self.user_id, date, category_id, description, account_id, amount, pass_thru) db_session.add(e) db_session.commit() # update the totals self.totals.update_expense(amount, date) return e.id
def add_expense(self, date, description, amount, category_id=None, account_id=None, pass_thru=False): # add into uncategorized expenses if category not provided if not category_id: category_id = self.is_category(name="Uncategorized") if not category_id: # crete a new one c = ExpenseCategoriesTable(self.user_id, u'Uncategorized') db_session.add(c) db_session.commit() category_id = c.id # find default account if not provided if not account_id: acc = Accounts(self.user_id) account_id = acc.get_default_account() if not account_id: account_id = acc.add_default_account() # add the actual expense e = ExpensesTable(self.user_id, date, category_id, description, account_id, amount, pass_thru) db_session.add(e) db_session.commit() # update the totals self.totals.update_expense(amount, date) return e.id
def add_loan(self, other_user_id, date, description, amount, account_id=None): # if an account id is not provided, get a 'default' account if not account_id: accounts = Accounts(self.user_id) account_id = accounts.get_default_account() # create a default account if no joy getting a default account if not account_id: account_id = accounts.add_default_account() l = LoansTable(self.user_id, other_user_id, date, account_id, description, amount) db_session.add(l) db_session.commit() return l.id
def add_private(): '''Add a private user connection for a user''' error = None if request.method == 'POST': new_user_name, current_user_id = request.form['name'], session.get('logged_in_user') # setup objects in a context useri = Users(current_user_id) # blank name? if new_user_name: # already exists? if not useri.is_connection(name=new_user_name): # create new private user new_user_id = useri.add_private_user(new_user_name) # give the user a default account so we can do loans acc = Accounts(new_user_id) acc.add_default_account() # have we provided initial balance? if 'balance' in request.form: # get balance balance = request.form['balance'] # balance could be "empty" if balance != "": # valid amount? if is_float(balance): balance = float(balance) # do we have a pre-existing balance with the user? if balance != 0: if balance > 0: # they owe us # models loa, acc = Loans(current_user_id), Accounts(current_user_id) # add loan entry loa.add_loan(other_user_id=new_user_id, date=today_date(), account_id=acc.get_default_account(), description="Initial balance with the user", amount=balance) # fudge loan monies balance acc.modify_loan_balance(amount=balance, with_user_id=new_user_id) else: # we owe them # models loa, acc = Loans(new_user_id), Accounts(current_user_id) # add loan entry loa.add_loan(other_user_id=current_user_id, date=today_date(), account_id=acc.get_default_account(), description="Initial balance with the user", amount=-balance) # fudge loan monies balance acc.modify_loan_balance(amount=balance, with_user_id=new_user_id) else: error = 'Not a valid amount' # create connections from us to them and back useri.add_connection(new_user_id) flash('Private user added') else: error = 'You already have a user under that name' else: error = 'You need to provide a name' return render_template('admin_add_private_user.html', **locals())