示例#1
0
文件: routes.py 项目: deb17/moneycare
def create():

    form = ExpenseForm()
    modes = PaymentMode.query.filter_by(user_id=current_user.id)
    form.pay_mode.choices = [('', 'Choose one')] + [(m.id, m.mode)
                                                    for m in modes]
    estimates = Budget.query.filter(Budget.user_id == current_user.id,
                                    Budget.active.is_(True))
    form.estimate_entry.choices = [('', 'Choose one')] + [(e.id, e.item)
                                                          for e in estimates]

    if form.validate_on_submit():
        e = Expense()
        e.user_id = current_user.id
        e.description = form.description.data
        e.date = form.date.data
        e.amount = form.amount.data
        e.mode_id = int(form.pay_mode.data)
        e.budget_id = (int(form.estimate_entry.data)
                       if form.estimate_entry.data else None)
        e.comments = form.comments.data
        e.set_tags(form.taglist.data)
        db.session.add(e)
        db.session.commit()
        flash('New expense created.', 'success')
        if request.form.get('submit2') == 'Save and add another':
            return redirect(url_for('expense.create'))
        return redirect(url_for('expense.list_expenses'))

    return render_template('expense/new.html',
                           title='New expense',
                           form=form,
                           heading='Create new expense')
示例#2
0
def add_expense(current_user):
    category = request.args.get('category')
    amount = request.args.get('amount')
    dt = request.args.get('date')
    private = request.args.get('private')
    if not category or not amount:
        return jsonify({'message': 'Insufficient parameters'}), 400
    exp = Expense(category=category, amount=amount, SpentBy=current_user)
    if dt:
        exp.date = dt
    if private:
        exp.private = private
    db.session.add(exp)
    db.session.commit()
    return jsonify({'message': 'Expense added'}), 201