コード例 #1
0
def add():
    trip = None
    if flask.request.method == 'POST':
        current_app.logger.info(flask.request.form)
        trip = Trip(
            user_id=USER_ID,
            name=flask.request.form['name'],
            start_date=flask.request.form['start_date'],
            end_date=flask.request.form['end_date'],
            currency_id=flask.request.form['currency_id'],
        )

        db_session.add(trip)
        db_session.commit()

        result = flask.redirect(
            flask.url_for('trips.view', trip_id=trip.id, _external=True))
        current_app.logger.info(dir(result))
        current_app.logger.info(result)
        return result

    currencies = {c.id: c.iso_code for c in Currency.query.all()}

    return flask.render_template('trips/add.html',
                                 currencies=currencies,
                                 trip=trip)
コード例 #2
0
ファイル: trips.py プロジェクト: nateoaks/travelbudget
def add():
    trip = None
    if flask.request.method == 'POST':
        current_app.logger.info(flask.request.form)
        trip = Trip(
            user_id=USER_ID,
            name=flask.request.form['name'],
            start_date=flask.request.form['start_date'],
            end_date=flask.request.form['end_date'],
            currency_id=flask.request.form['currency_id'],
        )

        db_session.add(trip)
        db_session.commit()

        result = flask.redirect(flask.url_for('trips.view', trip_id=trip.id, _external=True))
        current_app.logger.info(dir(result))
        current_app.logger.info(result)
        return result

    currencies = {c.id: c.iso_code for c in Currency.query.all()}

    return flask.render_template('trips/add.html',
                                 currencies=currencies,
                                 trip=trip)
コード例 #3
0
ファイル: exchanges.py プロジェクト: nateoaks/travelbudget
def add(trip_id):
    trip = Trip.query.get(trip_id)

    exchange = None
    if flask.request.method == 'POST':
        current_app.logger.info(flask.request.form)

        preferred_currency_expense_amount = 0
        if int(flask.request.form['expense_currency_id']) == int(
                trip.preferred_currency_id):
            preferred_currency_expense_amount = flask.request.form[
                'expense_amount']
        elif flask.request.form['expense_account_id'] == CASH_ACCOUNT_ID:
            results = summary.get_cash_expense_in_preferred_currency(
                trip_id, flask.request.form['expense_amount'],
                flask.request.form['expense_currency_id'])
            for res in results:
                preferred_currency_expense_amount += res[
                    'preferred_currency_amount']
                db_session.add(res['money_exchange'])

        try:
            exchange = MoneyExchange(
                trip_id=trip_id,
                exchange_date=flask.request.form['date'],
                income_currency_id=flask.request.form['income_currency_id'],
                income_account_id=flask.request.form['income_account_id'],
                income_amount=flask.request.form['income_amount'],
                expense_currency_id=flask.request.form['expense_currency_id'],
                expense_account_id=flask.request.form['expense_account_id'],
                expense_amount=flask.request.form['expense_amount'],
                expense_fee=flask.request.form['expense_fee'] or 0,
                preferred_currency_expense_amount=
                preferred_currency_expense_amount,
                created=datetime.datetime.now())

            db_session.add(exchange)
            db_session.commit()
        except:
            current_app.logger.exception('failed')

        return flask.redirect(
            flask.url_for('exchanges.view', money_exchange_id=exchange.id))

    accounts = {a.id: a.name for a in Account.query.filter_by(user_id=USER_ID)}
    currencies = {c.id: c.iso_code for c in trip.currencies}
    today = datetime.date.today()

    return flask.render_template('exchanges/add.html',
                                 trip_id=trip_id,
                                 accounts=accounts,
                                 currencies=currencies,
                                 exchange=exchange,
                                 today=today)
コード例 #4
0
ファイル: exchanges.py プロジェクト: nateoaks/travelbudget
def add(trip_id):
    trip = Trip.query.get(trip_id)

    exchange = None
    if flask.request.method == 'POST':
        current_app.logger.info(flask.request.form)

        preferred_currency_expense_amount = 0
        if int(flask.request.form['expense_currency_id']) == int(trip.preferred_currency_id):
            preferred_currency_expense_amount = flask.request.form['expense_amount']
        elif flask.request.form['expense_account_id'] == CASH_ACCOUNT_ID:
            results = summary.get_cash_expense_in_preferred_currency(trip_id,
                                                                     flask.request.form['expense_amount'],
                                                                     flask.request.form['expense_currency_id'])
            for res in results:
                preferred_currency_expense_amount += res['preferred_currency_amount']
                db_session.add(res['money_exchange'])

        try:
            exchange = MoneyExchange(
                trip_id=trip_id,
                exchange_date=flask.request.form['date'],
                income_currency_id=flask.request.form['income_currency_id'],
                income_account_id=flask.request.form['income_account_id'],
                income_amount=flask.request.form['income_amount'],
                expense_currency_id=flask.request.form['expense_currency_id'],
                expense_account_id=flask.request.form['expense_account_id'],
                expense_amount=flask.request.form['expense_amount'],
                expense_fee=flask.request.form['expense_fee'] or 0,
                preferred_currency_expense_amount=preferred_currency_expense_amount,
                created=datetime.datetime.now()
            )

            db_session.add(exchange)
            db_session.commit()
        except:
            current_app.logger.exception('failed')

        return flask.redirect(flask.url_for('exchanges.view', money_exchange_id=exchange.id))

    accounts = {a.id: a.name for a in Account.query.filter_by(user_id=USER_ID)}
    currencies = {c.id: c.iso_code for c in trip.currencies}
    today = datetime.date.today()

    return flask.render_template('exchanges/add.html',
                                 trip_id=trip_id,
                                 accounts=accounts,
                                 currencies=currencies,
                                 exchange=exchange,
                                 today=today)
コード例 #5
0
ファイル: expenses.py プロジェクト: nateoaks/travelbudget
def add(trip_id):

    expense = None
    if flask.request.method == 'POST':
        current_app.logger.info(flask.request.form)

        trip = Trip.query.get(trip_id)
        daily_currency = DailyCurrency.query.filter_by(
            currency_id=flask.request.form['currency_id'], current=1).first()
        current_app.logger.info('{}, {}, {}'.format(
            trip.preferred_currency.daily_currency.conversion_rate,
            daily_currency.conversion_rate,
            float(flask.request.form['amount'])))

        preferred_currency_amount = 0
        results = summary.get_cash_expense_in_preferred_currency(
            trip_id, flask.request.form['amount'],
            flask.request.form['currency_id'])

        expense_notes = []
        for res in results:
            preferred_currency_amount += res['preferred_currency_amount']
            note = {
                'amount': res['amount'],
                'preferred_currency_amount': res['preferred_currency_amount'],
                'money_exchange_id': None
            }
            if res['money_exchange']:
                db_session.add(res['money_exchange'])
                note['money_exchange_id'] = res['money_exchange'].id
            expense_notes.append(note)

        expense = Expense(trip_id=trip_id,
                          expense_date=flask.request.form['date'],
                          amount=flask.request.form['amount'],
                          preferred_currency_amount=preferred_currency_amount,
                          currency_id=flask.request.form['currency_id'],
                          daily_currency_id=DAILY_CURRENCY_ID,
                          account_id=flask.request.form['account_id'],
                          category_id=flask.request.form['category_id'],
                          country_id=flask.request.form['country_id'],
                          description=flask.request.form['description'],
                          notes=json.dumps(expense_notes,
                                           cls=json_.ExpenseEncoder),
                          created=datetime.datetime.now())

        db_session.add(expense)
        db_session.commit()

        return flask.redirect(
            flask.url_for('expenses.view', expense_id=expense.id))

    trip = Trip.query.get(trip_id)
    accounts = {a.id: a.name for a in Account.query.filter_by(user_id=USER_ID)}
    currencies = {c.id: c.iso_code for c in trip.currencies}
    countries = {c.id: c.country_name for c in trip.countries}
    categories = {c.id: c.category_name for c in Category.query.all()}
    today = datetime.date.today()

    return flask.render_template('expenses/add.html',
                                 trip_id=trip_id,
                                 accounts=accounts,
                                 categories=categories,
                                 countries=countries,
                                 currencies=currencies,
                                 expense=expense,
                                 today=today)
コード例 #6
0
ファイル: expenses.py プロジェクト: nateoaks/travelbudget
def add(trip_id):

    expense = None
    if flask.request.method == 'POST':
        current_app.logger.info(flask.request.form)

        trip = Trip.query.get(trip_id)
        daily_currency = DailyCurrency.query.filter_by(currency_id=flask.request.form['currency_id'],
                                                       current=1).first()
        current_app.logger.info('{}, {}, {}'.format(trip.preferred_currency.daily_currency.conversion_rate,
                                                    daily_currency.conversion_rate,
                                                    float(flask.request.form['amount'])))

        preferred_currency_amount = 0
        results = summary.get_cash_expense_in_preferred_currency(trip_id,
                                                                 flask.request.form['amount'],
                                                                 flask.request.form['currency_id'])

        expense_notes = []
        for res in results:
            preferred_currency_amount += res['preferred_currency_amount']
            note = {
                'amount': res['amount'],
                'preferred_currency_amount': res['preferred_currency_amount'],
                'money_exchange_id': None
            }
            if res['money_exchange']:
                db_session.add(res['money_exchange'])
                note['money_exchange_id'] = res['money_exchange'].id
            expense_notes.append(note)


        expense = Expense(
            trip_id=trip_id,
            expense_date=flask.request.form['date'],
            amount=flask.request.form['amount'],
            preferred_currency_amount=preferred_currency_amount,
            currency_id=flask.request.form['currency_id'],
            daily_currency_id=DAILY_CURRENCY_ID,
            account_id=flask.request.form['account_id'],
            category_id=flask.request.form['category_id'],
            country_id=flask.request.form['country_id'],
            description=flask.request.form['description'],
            notes=json.dumps(expense_notes, cls=json_.ExpenseEncoder),
            created=datetime.datetime.now()
        )

        db_session.add(expense)
        db_session.commit()

        return flask.redirect(flask.url_for('expenses.view', expense_id=expense.id))

    trip = Trip.query.get(trip_id)
    accounts = {a.id: a.name for a in Account.query.filter_by(user_id=USER_ID)}
    currencies = {c.id: c.iso_code for c in trip.currencies}
    countries = {c.id: c.country_name for c in trip.countries}
    categories = {c.id: c.category_name for c in Category.query.all()}
    today = datetime.date.today()

    return flask.render_template('expenses/add.html',
                                 trip_id=trip_id,
                                 accounts=accounts,
                                 categories=categories,
                                 countries=countries,
                                 currencies=currencies,
                                 expense=expense,
                                 today=today)
コード例 #7
0
                exp_insert['amount'] = re.sub('[,$]','', r['credit_usd'])
                exp_insert['currency_id'] = CURRENCIES['USD']
                exp_insert['daily_currency_id'] = DAILY_CURRENCIES[CURRENCIES['USD']]
            elif r['cash_expense_usd']:
                exp_insert['amount'] = re.sub('[,$]','', r['cash_expense_usd'])
                exp_insert['currency_id'] = CURRENCIES['USD']
                exp_insert['daily_currency_id'] = DAILY_CURRENCIES[CURRENCIES['USD']]
            elif r['cash_expense_foreign']:
                exp_insert['amount'] = re.sub('[,$]','', r['cash_expense_foreign'])
                exp_insert['currency_id'] = CURRENCIES[current_currency]
                exp_insert['daily_currency_id'] = DAILY_CURRENCIES[CURRENCIES[current_currency]]

            print exp_insert
            expense = Expense(**exp_insert)
            db_session.add(expense)
            db_session.commit()
            print 'Expense: {}'.format(expense.id)

            inc_insert = {
                'trip_id': 1,
                'income_date': current_date,
                'account_id': 1,
                'expense_id': expense.id,
                'amount': re.sub('[,$]','', r['cash_income_foreign']),
                'currency_id': CURRENCIES[current_currency],
                'created': datetime.datetime.now(),
            }

            if r['cash_income_foreign']:
                inc_insert['amount'] = re.sub('[,$]','', r['cash_income_foreign'])
                inc_insert['currency_id'] = CURRENCIES[current_currency],