def manage_request():
    if request.method == 'POST':
        del_id = request.form['item_id']

        if request.form.get("manage_request_btn", False) == "Done":
            category = request.form['category']
            item_name = request.form['item_name']
            dated = request.form['date']
            amount = request.form['iAmount']
            name = g.user['username']

            db = get_db()
            db.execute(
                """
					INSERT INTO expenditure
						(spent_date, spent_by, category, amount, items, inserted_by)
					VALUES (?,?,?,?,?,?)
					""", (dated, name, category, amount, item_name, name))
            db.commit()

        db = get_db()
        db.execute('DELETE FROM request WHERE id = ?', (del_id, ))
        db.commit()
        return redirect(request.referrer)
    return render_template('features/raise_request.html')
def income():
    users = getUserList()
    if request.method == 'POST':
        message = None
        dated = request.form['date']
        name = request.form['name']
        source = request.form['source']
        amount = request.form['amount']
        remarks = request.form['remarks']
        by = g.user['username']

        db = get_db()
        db.execute(
            """
				INSERT INTO income
				(added_date, source, inserted_by, received_by, amount, remarks)
				VALUES (?,?,?,?,?,?)
			""", (dated, source, by, name, amount, remarks))
        db.commit()
        message = "Data inserted!"

        if message is not None:
            flash(message)
            return redirect(url_for('home.index'))

    return render_template('features/income.html', users=users)
def expenditure():
    users = getUserList()
    if request.method == 'POST':
        message = None
        error = None
        dated = request.form['date']
        name = request.form['name']
        category = request.form['category']
        totalAmount = request.form['totalAmount']
        by = g.user['username']
        items = request.form['itemList']
        items = items[:-1]  #removing that last comma
        if items == "":
            error = "No items entered."
        if error is None:
            db = get_db()
            db.execute(
                """
					INSERT INTO expenditure
					(spent_date, spent_by, category, amount, items, inserted_by)
					VALUES (?,?,?,?,?,?)
				""", (dated, name, category, totalAmount, items, by))

            db.commit()
            message = "Data inserted!"

            flash(message)
            return redirect(url_for('home.index'))
        if error is not None:
            flash(error)
    return render_template('features/expenditure.html', users=users)
def login():
    if session:
        return redirect(url_for('index'))

    if request.method == 'POST':
        username = request.form['username']
        password = request.form['password']
        db = get_db()
        error = None
        user = db.execute(
            'SELECT * FROM user WHERE username = ?', (username,)
        ).fetchone()

        if user is None:
            error = 'Incorrect username.'
        elif not check_password_hash(user['password'], password):
            error = 'Incorrect password.'

        if error is None:
            session.clear()
            session['user_id'] = user['id']
            return redirect(url_for('index'))

        flash(error)

    return render_template('auth/login.html')
def register():
    if session: 
        # if a session already exists redirect to index
        return redirect(url_for('index'))

    if request.method == 'POST':
        username = request.form['username']
        password = request.form['password']
        cpassword = request.form['cpassword']
        db = get_db()
        error = None

        if not username:
            error = 'Username is required.'
        elif not password:
            error = 'Password is required.'
        elif password != cpassword:
            error = 'Passwords do not match.'
        elif db.execute(
            'SELECT id FROM user WHERE username = ?', (username,)
        ).fetchone() is not None:
            error = 'User {} is already registered.'.format(username)

        if error is None:
            db.execute(
                'INSERT INTO user (username, password) VALUES (?, ?)',
                (username, generate_password_hash(password))
            )
            db.commit()
            return redirect(url_for('auth.login'))

        flash(error)

    return render_template('auth/register.html')
def load_logged_in_user():
    user_id = session.get('user_id')

    if user_id is None:
        g.user = None
    else:
        g.user = get_db().execute(
            'SELECT * FROM user WHERE id = ?', (user_id,)
        ).fetchone()
def lpg_update():
    query = ''
    data = ''
    message = ''

    query = """
			SELECT id, from_date, to_date, inserted_by, remarks 
			FROM lpg 
			ORDER BY(id) DESC
			"""
    db = get_db()
    data = db.execute(query).fetchall()
    db.commit()

    if request.method == 'POST':
        old_to_date = request.form['to_date']
        remarks = request.form['remarks']
        inserted_by = g.user['username']

        new_from_date = old_to_date

        db = get_db()
        db.execute(
            """
			UPDATE lpg 
			SET to_date = ? 
			WHERE id = (SELECT MAX(id) FROM lpg)
			""", (old_to_date, ))

        db.commit()

        db.execute(
            """
					INSERT INTO lpg 
					(from_date, inserted_by, remarks) 
					VALUES(?,?,?)""", (new_from_date, inserted_by, remarks))
        db.commit()
        message = "Data inserted!"

        if message is not None:
            flash(message)
        return redirect(url_for('home.index'))

    return render_template('features/update_lpg_data.html', data=data)
Exemple #8
0
def getExpenditureData(category):
    db = get_db()
    expData = db.execute(
        """
                    SELECT spent_date, spent_by, items, amount 
                    FROM expenditure 
                    WHERE category = ?
                    ORDER BY spent_date DESC
                    LIMIT 15""", (category, )).fetchall()

    totalExpForFixedPurpose = db.execute(
        """
                SELECT COALESCE(SUM(amount),0) 
                FROM expenditure WHERE category = ?
                """, (category, )).fetchone()
    db.commit()

    return [expData, str(totalExpForFixedPurpose[0])]
def fetchBalance(category='nehaD-sponsored'):
    db = get_db()
    totalExp = db.execute(
        "SELECT COALESCE(SUM(amount),0) FROM expenditure").fetchone()
    totalIncome = db.execute(
        "SELECT COALESCE(SUM(amount),0) FROM income").fetchone()
    avlblBalance = totalIncome[0] - totalExp[0]
    db.commit()

    expForFixedPurpose = db.execute(
        "SELECT COALESCE(SUM(amount),0) FROM expenditure WHERE category = ? ",
        (category, )).fetchone()
    incomeForFixedPurpose = db.execute(
        "SELECT COALESCE(SUM(amount),0) FROM income WHERE source = ?",
        (category, )).fetchone()
    avlblBalanceForFixedPurpose = incomeForFixedPurpose[
        0] - expForFixedPurpose[0]

    return avlblBalance, category, avlblBalanceForFixedPurpose
Exemple #10
0
def getIncomeData(category):
    db = get_db()
    incomeData = db.execute(
        """
                    SELECT added_date, received_by, amount 
                    FROM income 
                    WHERE source = ?
                    ORDER BY added_date DESC
                    LIMIT 15""", (category, )).fetchall()

    totaIncomeForFixedPurpose = db.execute(
        """
                SELECT COALESCE(SUM(amount),0) 
                FROM income WHERE source = ?
                """, (category, )).fetchone()

    db.commit()

    return [incomeData, str(totaIncomeForFixedPurpose[0])]
def raise_request():
    if request.method == 'POST':
        item = request.form['item_name']
        remarks = request.form['remarks']
        category = request.form['category']
        requested_by = g.user['username']

        db = get_db()
        db.execute(
            """
                INSERT INTO request
                (item, category, remarks, requested_by)
                VALUES(?,?,?,?)
            """, (item, category, remarks, requested_by))
        db.commit()
        message = "Request Raised!"
        if message is not None:
            flash(message)
            return redirect(url_for('features.raise_request'))

    return render_template('features/raise_request.html')
def getUserList():
    db = get_db()
    query = "SELECT id, username FROM user ORDER BY(id) DESC"
    users = db.execute(query)
    db.commit()
    return users
def display_data(internal_service=''):
    if (request.method == 'GET') or (internal_service != ''):
        if request.method == 'GET':
            service = request.args.get('service')
        else:
            service = internal_service
        db = get_db()
        message = None
        error = None
        data = ''
        data2 = ''
        data3 = ''
        query = ''
        query2 = ''
        query3 = ''
        tableFor = ''
        if service == 'balance-enquiry':
            recievedData = fetchBalance('Neha-D Sponsored')
            data = str(recievedData[0])
            data2 = recievedData[1]
            data3 = str(recievedData[2])

            tableFor = 'Balance Enquiry'

        elif service == 'exp':
            query = """
				SELECT id, spent_date, category, items, amount,
				 spent_by, inserted_by
				 FROM expenditure ORDER BY(id) DESC LIMIT 30
				"""
            tableFor = 'Expenditures'

        elif service == 'current-requests':
            query = """
				SELECT id, item, remarks, category, requested_by, 
					datetime(request_date||"-05:30") as local_time 
				 FROM request ORDER BY(id) DESC
				"""
            tableFor = 'Current Requests'

        elif service == 'income':
            query = """
				SELECT id, added_date, source, amount, received_by,
				inserted_by, remarks
				FROM income ORDER BY(id) DESC LIMIT 30
				"""
            tableFor = 'Incomes'

        elif service == 'user-list':
            query = "SELECT id, username FROM user ORDER BY(id) DESC"
            tableFor = 'Users List'

        elif service == 'insights':
            query = """
		    SELECT spent_by, count(*), sum(amount)
		    FROM expenditure
		    GROUP BY spent_by
		    ORDER BY (count(*))
		    DESC
		    """
            query2 = """
		    SELECT received_by, count(*), sum(amount)
		    FROM income
		    GROUP BY received_by
		    ORDER BY (count(*))
		    DESC
		    """
            query3 = """
		    SELECT category, count(*), sum(amount)
		    FROM expenditure
		    GROUP BY category
		    ORDER BY (sum(amount))
		    DESC
		    """

            tableFor = 'Insights'

        if service != 'balance-enquiry':
            data = db.execute(query).fetchall()
            if service == 'insights':
                data2 = db.execute(query2).fetchall()
                data3 = db.execute(query3).fetchall()
            db.commit()

        return render_template('features/display_data.html',
                               data=data,
                               data2=data2,
                               data3=data3,
                               tableFor=tableFor)

        if message is not None:
            flash(message)
        if error is not None:
            flash(error)

    return render_template('features/display_data.html')