예제 #1
0
def get_total_revenues_by_day(id_user: int):
    db = get_db()
    cursor = db.cursor(dictionary=True)

    select_query = ('''SELECT receitas.data_pagamento, COUNT(*) quantidade, SUM(receitas.valor) total FROM (
        (SELECT keepit.pagamento_recurso.data_pagamento, keepit.pagamento_recurso.valor FROM 
            (((keepit.recurso JOIN keepit.receita ON keepit.recurso.id_recurso = keepit.receita.id_recurso) 
            JOIN keepit.pagamento_recurso ON keepit.pagamento_recurso.id_recurso = keepit.recurso.id_recurso)
            JOIN keepit.receita_comum ON keepit.receita.id_receita = keepit.receita_comum.id_receita)
        WHERE keepit.recurso.id_usuario=%s 
        AND keepit.pagamento_recurso.data_pagamento IS NOT NULL)
    UNION
        (SELECT keepit.pagamento_recurso.data_pagamento, keepit.pagamento_recurso.valor FROM 
            (((keepit.recurso JOIN keepit.receita ON keepit.recurso.id_recurso = keepit.receita.id_recurso) 
            JOIN keepit.pagamento_recurso ON keepit.pagamento_recurso.id_recurso = keepit.recurso.id_recurso)
            JOIN keepit.receita_incomum ON keepit.receita.id_receita = keepit.receita_incomum.id_receita)
        WHERE keepit.recurso.id_usuario=%s 
        AND keepit.pagamento_recurso.data_pagamento IS NOT NULL
        AND keepit.recurso.data_cancelamento IS NULL)) receitas
    GROUP BY receitas.data_pagamento
    ''')
    select_data = (id_user,id_user)
    cursor.execute(select_query,select_data)
    results = cursor.fetchall()
    
    cursor.close()
    db.close()

    return results
예제 #2
0
def get_expenses_info(id_user: int, month: int, year: int):
    db = get_db()
    cursor = db.cursor(dictionary=True)

    info = {'comum':{'desatualizadas':0,'quantidade':0,'total':0}
        ,'incomum':{'quantidade':0,'total':0}}

    select_query = ('''SELECT COUNT(DISTINCT(keepit.recurso.id_recurso)) quantidade,
        SUM(keepit.pagamento_recurso.valor) total FROM 
	    (((keepit.recurso JOIN keepit.despesa ON keepit.recurso.id_recurso=keepit.despesa.id_recurso) 
        JOIN keepit.despesa_comum ON keepit.despesa.id_despesa=keepit.despesa_comum.id_despesa) 
        JOIN keepit.pagamento_recurso ON keepit.pagamento_recurso.id_recurso = keepit.recurso.id_recurso)
    WHERE keepit.recurso.id_usuario=%s and keepit.pagamento_recurso.data_pagamento IS NOT NULL
    AND MONTH(keepit.pagamento_recurso.data_pagamento) = %s AND YEAR(keepit.pagamento_recurso.data_pagamento) = %s
    GROUP BY keepit.recurso.id_usuario
    ''')
    select_data = (id_user,month,year)
    cursor.execute(select_query,select_data)
    quantity_info = cursor.fetchone()
    if quantity_info is not None:
        info['comum']['quantidade'] = quantity_info['quantidade']
        info['comum']['total'] = quantity_info['total']

    select_query = ('''SELECT COUNT(*) desatualizadas FROM 
	    ((keepit.recurso JOIN keepit.despesa ON keepit.recurso.id_recurso=keepit.despesa.id_recurso) 
        JOIN keepit.despesa_comum ON keepit.despesa.id_despesa=keepit.despesa_comum.id_despesa)
    WHERE keepit.recurso.id_usuario=%s AND keepit.despesa_comum.status=0
    ''')
    select_data = (id_user,)
    cursor.execute(select_query,select_data)
    late_info = cursor.fetchone()
    if late_info is not None:
        info['comum']['desatualizadas'] = late_info['desatualizadas']

    select_query = ('''SELECT COUNT(DISTINCT(keepit.recurso.id_recurso)) quantidade,
    SUM(keepit.pagamento_recurso.valor) total FROM 
	    (((keepit.recurso JOIN keepit.despesa ON keepit.recurso.id_recurso=keepit.despesa.id_recurso) 
        JOIN keepit.despesa_incomum ON keepit.despesa.id_despesa=keepit.despesa_incomum.id_despesa) 
        JOIN keepit.pagamento_recurso ON keepit.pagamento_recurso.id_recurso = keepit.recurso.id_recurso)
    WHERE keepit.recurso.id_usuario=%s and keepit.pagamento_recurso.data_pagamento IS NOT NULL
    AND keepit.recurso.data_cancelamento IS NULL
    AND MONTH(keepit.pagamento_recurso.data_pagamento) = %s AND YEAR(keepit.pagamento_recurso.data_pagamento) = %s
    GROUP BY keepit.recurso.id_usuario
    ''')
    select_data = (id_user,month,year)
    cursor.execute(select_query,select_data)
    quantity_info = cursor.fetchone()
    if quantity_info is not None:
        info['incomum']['quantidade'] = quantity_info['quantidade']
        info['incomum']['total'] = quantity_info['total']

    cursor.close()
    db.close()

    return info
예제 #3
0
def update(id):
    post = get_post(id)

    if request.method == 'POST':
        title = request.form['title']
        body = request.form['body']
        error = None

        if not title:
            error = 'Title is required.'

        if error is not None:
            flash(error)
        else:
            db = get_db()
            #db.execute('UPDATE post SET title = ?, body = ? WHERE id = ?',(title, body, id))
            db.commit()
            return redirect(url_for('blog.index'))

    return render_template('blog/update.html', post=post)
예제 #4
0
def create():
    if request.method == 'POST':
        title = request.form['title']
        body = request.form['body']
        error = None

        if not title:
            error = 'Title is required.'

        if error is not None:
            flash(error)
        else:
            db = get_db()
            db.execute(
                'INSERT INTO post (title, body, author_id) VALUES (?, ?, ?)',
                (title, body, g.user['id']))
            db.commit()
            return redirect(url_for('blog.index'))

    return render_template('blog/create.html')
예제 #5
0
def get_balance(id_user: int):
    db = get_db()
    cursor = db.cursor(dictionary=True)

    select_query = ('''SELECT (receitas_comuns.total + receitas_incomuns.total) - (despesas_comuns.total + despesas_incomuns.total) saldo FROM 
    (SELECT COALESCE(SUM(keepit.pagamento_recurso.valor),0) total FROM 
        (((keepit.recurso JOIN keepit.despesa ON keepit.recurso.id_recurso = keepit.despesa.id_recurso) 
        JOIN keepit.pagamento_recurso ON keepit.pagamento_recurso.id_recurso = keepit.recurso.id_recurso)
        JOIN keepit.despesa_comum ON keepit.despesa.id_despesa = keepit.despesa_comum.id_despesa)
        WHERE keepit.pagamento_recurso.data_pagamento IS NOT NULL
        AND keepit.recurso.id_usuario=%s) AS despesas_comuns,
    (SELECT COALESCE(SUM(keepit.pagamento_recurso.valor),0) total FROM 
        (((keepit.recurso JOIN keepit.despesa ON keepit.recurso.id_recurso=keepit.despesa.id_recurso) 
        JOIN keepit.pagamento_recurso ON keepit.pagamento_recurso.id_recurso = keepit.recurso.id_recurso)
        JOIN keepit.despesa_incomum ON keepit.despesa.id_despesa = keepit.despesa_incomum.id_despesa)
        WHERE keepit.pagamento_recurso.data_pagamento IS NOT NULL
        AND keepit.recurso.data_cancelamento IS NOT NULL
        AND keepit.recurso.id_usuario=%s) AS despesas_incomuns,
    (SELECT COALESCE(SUM(keepit.pagamento_recurso.valor),0) total FROM 
        (((keepit.recurso JOIN keepit.receita ON keepit.recurso.id_recurso=keepit.receita.id_recurso) 
        JOIN keepit.pagamento_recurso ON keepit.pagamento_recurso.id_recurso = keepit.recurso.id_recurso)
        JOIN keepit.receita_comum ON keepit.receita.id_receita = keepit.receita_comum.id_receita)
        WHERE keepit.pagamento_recurso.data_pagamento IS NOT NULL
        AND keepit.recurso.id_usuario=%s) AS receitas_comuns,
    (SELECT COALESCE(SUM(keepit.pagamento_recurso.valor),0) total FROM 
        (((keepit.recurso JOIN keepit.receita ON keepit.recurso.id_recurso=keepit.receita.id_recurso) 
        JOIN keepit.pagamento_recurso ON keepit.pagamento_recurso.id_recurso = keepit.recurso.id_recurso)
        JOIN keepit.receita_incomum ON keepit.receita.id_receita = keepit.receita_incomum.id_receita)
        WHERE keepit.pagamento_recurso.data_pagamento IS NOT NULL
        AND keepit.recurso.data_cancelamento IS NOT NULL
        AND keepit.recurso.id_usuario=%s) AS receitas_incomuns
    ''')

    select_data = (id_user,id_user,id_user,id_user)
    cursor.execute(select_query,select_data)
    result = cursor.fetchone()

    cursor.close()
    db.close()

    return result['saldo']
예제 #6
0
def delete(id):
    get_post(id)
    db = get_db()
    #db.execute('DELETE FROM post WHERE id = ?', (id,))
    db.commit()
    return redirect(url_for('blog.index'))
예제 #7
0
def index():
    db = get_db()
    posts = None  #db.execute('SELECT p.id, title, body, created, author_id, username FROM post p JOIN user u ON p.author_id = u.id ORDER BY created DESC').fetchall()
    return render_template('blog/index.html', posts=posts)
예제 #8
0
def get_total_revenues_by_month(id_user: int, year: int):
    db = get_db()
    cursor = db.cursor(dictionary=True)

    select_query = ('''SELECT * FROM 
            (SELECT MONTH(keepit.pagamento_recurso.data_pagamento) mes_comum, SUM(keepit.pagamento_recurso.valor) total_comum FROM 
            (((keepit.recurso JOIN keepit.receita ON keepit.recurso.id_recurso = keepit.receita.id_recurso) 
            JOIN keepit.pagamento_recurso ON keepit.pagamento_recurso.id_recurso = keepit.recurso.id_recurso)
            JOIN keepit.receita_comum ON keepit.receita.id_receita = keepit.receita_comum.id_receita)
            WHERE keepit.recurso.id_usuario=%s AND keepit.pagamento_recurso.data_pagamento IS NOT NULL
            AND YEAR(keepit.pagamento_recurso.data_pagamento) = %s
            GROUP BY MONTH(keepit.pagamento_recurso.data_pagamento)) receitas_comuns
        RIGHT JOIN  
            (SELECT MONTH(keepit.pagamento_recurso.data_pagamento) mes_incomum, SUM(keepit.pagamento_recurso.valor) total_incomum FROM 
            (((keepit.recurso JOIN keepit.receita ON keepit.recurso.id_recurso=keepit.receita.id_recurso) 
            JOIN keepit.pagamento_recurso ON keepit.pagamento_recurso.id_recurso = keepit.recurso.id_recurso)
            JOIN keepit.receita_incomum ON keepit.receita.id_receita = keepit.receita_incomum.id_receita)
            WHERE keepit.pagamento_recurso.data_pagamento IS NOT NULL
            AND keepit.recurso.data_cancelamento IS NULL
            AND keepit.recurso.id_usuario=%s
            AND YEAR(keepit.pagamento_recurso.data_pagamento) = %s
            GROUP BY MONTH(keepit.pagamento_recurso.data_pagamento)) receitas_incomuns
        ON receitas_comuns.mes_comum = receitas_incomuns.mes_incomum
    UNION 
        SELECT * FROM 
            (SELECT MONTH(keepit.pagamento_recurso.data_pagamento) mes_comum, SUM(keepit.pagamento_recurso.valor) total_comum FROM 
            (((keepit.recurso JOIN keepit.receita ON keepit.recurso.id_recurso = keepit.receita.id_recurso) 
            JOIN keepit.pagamento_recurso ON keepit.pagamento_recurso.id_recurso = keepit.recurso.id_recurso)
            JOIN keepit.receita_comum ON keepit.receita.id_receita = keepit.receita_comum.id_receita)
            WHERE keepit.recurso.id_usuario=%s AND keepit.pagamento_recurso.data_pagamento IS NOT NULL
            AND YEAR(keepit.pagamento_recurso.data_pagamento) = %s
            GROUP BY MONTH(keepit.pagamento_recurso.data_pagamento)) receitas_comuns
        LEFT JOIN 
            (SELECT MONTH(keepit.pagamento_recurso.data_pagamento) mes_incomum, SUM(keepit.pagamento_recurso.valor) total_incomum FROM 
            (((keepit.recurso JOIN keepit.receita ON keepit.recurso.id_recurso=keepit.receita.id_recurso) 
            JOIN keepit.pagamento_recurso ON keepit.pagamento_recurso.id_recurso = keepit.recurso.id_recurso)
            JOIN keepit.receita_incomum ON keepit.receita.id_receita = keepit.receita_incomum.id_receita)
            WHERE keepit.pagamento_recurso.data_pagamento IS NOT NULL
            AND keepit.recurso.data_cancelamento IS NULL
            AND keepit.recurso.id_usuario=%s
            AND YEAR(keepit.pagamento_recurso.data_pagamento) = %s
            GROUP BY MONTH(keepit.pagamento_recurso.data_pagamento)) receitas_incomuns
        ON receitas_comuns.mes_comum = receitas_incomuns.mes_incomum
    ''')
    select_data = (id_user,year,id_user,year,id_user,year,id_user,year)
    cursor.execute(select_query,select_data)
    results = cursor.fetchall()

    cursor.close()
    db.close()

    for result in results:
        if result['total_comum'] is not None and result['total_incomum'] is not None:
            result['total'] = result['total_comum'] + result['total_incomum']
        elif result['total_comum'] is not None:
            result['total'] = result['total_comum']
        elif result['total_incomum'] is not None:
            result['total'] = result['total_incomum']

        if result['mes_comum'] is not None:
            result['mes'] = result['mes_comum']
        elif result['mes_incomum'] is not None:
            result['mes'] = result['mes_incomum']

        del result['total_incomum']
        del result['mes_incomum']
        del result['total_comum']
        del result['mes_comum']

    return results