예제 #1
0
 def add(self):
   if GenericViewer.add(self):
     return False
   payeeCategory = PayeeCategory(
     name = self.request.get('name'),
     )
   if (not users.is_current_user_admin() or
       self.request.get('owner') != ''):
       payeeCategory.owner = users.get_current_user()
   payeeCategory.put()
   self.messages.append('Payee category successfully added.')
   self.redirect()
   return True
예제 #2
0
  def view(self):
    if not self.request.get('account'):
      self.redirect('/')
      return

    account = db.get (self.request.get('account'))
    if not account or account.owner != users.get_current_user():
      self.redirect('/')
      return

    order = self.request.get('order')
    if order is '':
      order = 'date'

    operations_query = Operation.all()
    operations_query.filter('account =', db.get(self.request.get('account')))
    operations_query.order(order)
    operations = operations_query.fetch(10)

    currentAmount=Decimal()
    currentCredit=Decimal()
    currentDebit=Decimal()
    for op in operations:
      amount = Decimal(op.amount)
      if amount < 0:
        op.debit = op.amount
        currentDebit += amount
      else:
        op.credit = op.amount
        currentCredit += amount
      currentAmount += amount

    categories_query = PayeeCategory.all().order('name')
    categories=[]
    for category in categories_query:
      part = category.name.partition('/')
      if part[1] == '':
        category.root = ''
      else:
        category.root = part[0]
        category.name = part[2]
      categories.append(category)

    template_values = {
      'currency': account.currency,
      'operations': operations,
      'currentAccount': account,
      'amountPositive': currentAmount >= 0,
      'currentCredit': currentCredit,
      'currentDebit': currentDebit,
      'currentAmount': currentAmount,
      'categories': categories,
      'chartExpense': self.categoryChart(account),
      'chartTakings': self.categoryChart(account, showExpense=False)
      }
    addCommonTemplateValues(template_values, self)
    path = os.path.join(os.path.dirname(__file__), 'operation.html')
    self.response.out.write(template.render(path, template_values))