示例#1
0
    def _handler(self, expense_key, post=False):
        user = users.get_current_user()

        if user:
            instance = Transaction.get(expense_key)
            if instance.user != user:
                self.redirect(users.create_login_url(self.request.uri))

            if post:
                form = IncomeForm(user, instance=instance, data=self.request.POST)
                if form.is_valid():
                    transaction = form.save(commit=False)
                    transaction.account = transaction.customer.account
                    transaction.put()
                    self.redirect("/receitas/")

            form = IncomeForm(user, instance=instance)
            path = os.path.join(os.path.dirname(__file__), 'templates/income.html')
            self.response.out.write(template.render(path, {
                'form': form,
                'user': user,
                'logout_url': users.create_logout_url("/")
            }))
        else:
            self.redirect(users.create_login_url(self.request.uri))
示例#2
0
def player(request, player_id):
    player_id = int(player_id)
    p = Player.objects.get(id=player_id)

    if request.method == 'POST' and request.POST['form_name'] == 'transfer':
        tf = TransferForm(request.POST)
        tf.fields['to'].choices = get_transfer_choices(player_id)
        if tf.is_valid():
            to_name = do_transfer(player_id, tf.cleaned_data['to'], Decimal(tf.cleaned_data['amount']))
            messages.success(request, "${} transferred to {}.".format(tf.cleaned_data['amount'], to_name))
            return redirect('bank.views.player', player_id)
        iform = IncomeForm()
    elif request.method == 'POST' and request.POST['form_name'] == 'income':
        iform = IncomeForm(request.POST)
        if iform.is_valid():
            p.balance += Decimal(iform.cleaned_data['amount'])
            p.save()
            messages.success(request, "Added ${} income..".format(iform.cleaned_data['amount']))
            return redirect('bank.views.player', player_id)
        tf = TransferForm()
    else:
        tf = TransferForm()
        iform = IncomeForm()
        tf.fields['to'].choices = get_transfer_choices(player_id)

    return render(request, "player.html", {'player': p, 'transfer_form': tf, 'players': Player.objects.all(),
                                           'income_form': iform})
示例#3
0
    def _handler(self, post=False):
        user = users.get_current_user()
        if user:
            if post:
                form = IncomeForm(user, data=self.request.POST)
                if form.is_valid():
                    transaction = form.save(commit=False)
                    transaction.account = transaction.customer.account
                    transaction.user = user
                    transaction.income = True
                    transaction.put()
                    self.redirect(self.request.uri)
            else:
                form = IncomeForm(user)

            start, end = get_start_end_range(self.request)
            account_key = self.request.get('account', None)
            filter_form = FilterForm(user)
            filter_form.fields['start'].initial = start
            filter_form.fields['end'].initial = end
            filter_form.fields['account'].initial = account_key

            incomes = Transaction.all()\
                .filter('user ='******'income =', True)\
                .filter('date >=', start)\
                .filter('date <=', end)

            if account_key:
                incomes = incomes.filter('account =', Account.get(account_key))

            incomes = incomes.order('-date').fetch(1000)

            prefetch_refprops(incomes, Transaction.account, Transaction.customer)

            path = os.path.join(os.path.dirname(__file__), 'templates/incomes.html')
            self.response.out.write(template.render(path, {
                'start': start,
                'end': end,
                'filter_form': filter_form,
                'incomes': incomes,
                'form': form,
                'user': user,
                'js_data': calc_expenses_js_data(incomes),
                'total': sum([income.value for income in incomes]),
                'logout_url': users.create_logout_url("/")
            }))
        else:
            self.redirect(users.create_login_url(self.request.uri))
示例#4
0
def add_income():
    form = IncomeForm()
    users = User.query.filter_by(bmID=current_user.bmID)
    form.owner.choices = [(user.id, user.firstname) for user in users]
    banks = Bank.query.filter_by(bmID=current_user.bmID, accounttype="Current")
    form.paidinto.choices = [(bank.bankID,
                              bank.bankname + " - " + bank.accounttype)
                             for bank in banks]
    if form.validate_on_submit():
        new_income = Income(bmID=current_user.bmID,
                            owner=form.owner.data,
                            amount=form.amount.data,
                            frequency=form.frequency.data,
                            paidinto=form.paidinto.data,
                            nextduedate=form.nextduedate.data)
        db.session.add(new_income)
        db.session.commit()
        return redirect(url_for("view_incomes"))
    return render_template("add-income.html", form=form)
示例#5
0
def edit_income(income_id):
    income = Income.query.get(income_id)
    edit_form = IncomeForm(owner=get_member_name(income.owner),
                           amount=income.amount,
                           frequency=income.frequency,
                           paidinto=get_bank_name(income.paidinto),
                           nextduedate=income.nextduedate)
    users = User.query.filter_by(bmID=current_user.bmID)
    edit_form.owner.choices = [(user.id, user.firstname) for user in users]
    banks = Bank.query.filter_by(bmID=current_user.bmID, accounttype="Current")
    edit_form.paidinto.choices = [(bank.bankID,
                                   bank.bankname + " - " + bank.accounttype)
                                  for bank in banks]
    if edit_form.validate_on_submit():
        income.owner = edit_form.owner.data,
        income.amount = edit_form.amount.data,
        income.frequency = edit_form.frequency.data,
        income.paidinto = edit_form.paidinto.data,
        income.nextduedate = edit_form.nextduedate.data
        db.session.commit()
        return redirect(url_for("view_income"))
    return render_template("add-income.html", form=edit_form)
示例#6
0
def player(request, player_id):
    player_id = int(player_id)
    p = Player.objects.get(id=player_id)

    if request.method == 'POST' and request.POST['form_name'] == 'transfer':
        tf = TransferForm(request.POST)
        tf.fields['to'].choices = get_transfer_choices(player_id)
        if tf.is_valid():
            to_name = do_transfer(player_id, tf.cleaned_data['to'],
                                  Decimal(tf.cleaned_data['amount']))
            messages.success(
                request,
                "${} transferred to {}.".format(tf.cleaned_data['amount'],
                                                to_name))
            return redirect('bank.views.player', player_id)
        iform = IncomeForm()
    elif request.method == 'POST' and request.POST['form_name'] == 'income':
        iform = IncomeForm(request.POST)
        if iform.is_valid():
            p.balance += Decimal(iform.cleaned_data['amount'])
            p.save()
            messages.success(
                request,
                "Added ${} income..".format(iform.cleaned_data['amount']))
            return redirect('bank.views.player', player_id)
        tf = TransferForm()
    else:
        tf = TransferForm()
        iform = IncomeForm()
        tf.fields['to'].choices = get_transfer_choices(player_id)

    return render(
        request, "player.html", {
            'player': p,
            'transfer_form': tf,
            'players': Player.objects.all(),
            'income_form': iform
        })