Ejemplo n.º 1
0
  def HandleGet(self):
    budget = budget_util.GetBudget(self.profile, self.request.get('date'))

    transactions = lookup.GetTransactionsForBudget(self.profile, budget)
    unplanned_income, unplanned_expenses = (
        budget_util.CalculateUnplannedExpensesAndIncome(
            budget, transactions))

    budget_view_items = []
    for item in budget.items:
      if item.category_id is not None:
        budget_view_items.append({
          'name': self.profile.categories[item.category_id].name,
          'amount': item.planned_amount
        })

    template_values = {
      'budget': budget,
      'budget_items': budget_util.GetBudgetViewItems(self.profile, budget),
      'budget_items_json': [ndb_json.encode(i) for i in budget.items],
      'unplanned_income': unplanned_income,
      'unplanned_expenses': unplanned_expenses
    }

    self.WriteToTemplate('templates/planning/edit_budget.html', template_values)
Ejemplo n.º 2
0
  def HandleGet(self):
    """
      This page allows to view filtered transactions.
      Possible filters:
       - for a budget month
       - for a category
       - for an account
    """
    category_id = parse.ParseInt(self.request.get('category_id'))
    account_id = parse.ParseInt(self.request.get('account_id'))
    budget_date = self.request.get('budget_date')

    budget = None
    account = None
    category = None
    if category_id is not None or account_id is not None:
      if category_id is not None:
        category = self.profile.categories[category_id]
      if account_id is not None:
        account = self.profile.accounts[account_id]
      transactions = lookup.GetTransactions(
          self.profile, category_id=category_id, account_id=account_id)
    else:
      budget = budget_util.GetBudget(self.profile, budget_date)
      transactions = lookup.GetTransactionsForBudget(self.profile, budget)

    for transaction in transactions:
      if transaction.category_id is not None:
        transaction.category =  self.profile.categories[transaction.category_id]
      if transaction.account_id is not None:
        transaction.account = self.profile.accounts[transaction.account_id]

    template_values = {
      'budget': budget,
      'next_month': budget.GetNextBudgetDate() if budget else None,
      'previous_month': budget.GetPreviousBudgetDate() if budget else None,
      'category': category,
      'account': account,
      'transactions': transactions,
      'transactions_json': [ndb_json.encode(t) for t in transactions]
    }

    self.WriteToTemplate('templates/transactions/transaction_report.html', template_values)
Ejemplo n.º 3
0
  def HandleGet(self):
    imported_file_id = int(self.request.get('id'))
    imported_file = lookup.GetImportedFileById(self.profile, imported_file_id)

    template_values = {
      'imported_file': imported_file,
      'imported_transactions_json': [
          ndb_json.encode(t) for t in imported_file.parsed_transactions],
      'account': lookup.GetAccountById(self.profile, imported_file.account_id)
    }
    if imported_file.source_file:
      source_file_lines = imported_file.source_file.splitlines()
      if imported_file.schema:
        source_file_lines = [imported_file.schema] + source_file_lines
      template_values['formatted_parsed_lines'] = parse_csv.ParseCsvToPreview(
          source_file_lines)[:13]

    self.WriteToTemplate('templates/import_from_file/edit_imported_file.html',
                         template_values)