from flask import Flask, request, render_template, redirect, url_for, jsonify from functions.database import execute_query app = Flask(__name__) # Rota para criar um novo militante @app.route('/militantes/novo', methods=['GET', 'POST']) def novo_militante(): if request.method == 'POST': nome = request.form['nome'] cpf = request.form['cpf'] email = request.form['email'] telefone = request.form['telefone'] endereco = request.form['endereco'] filiado = request.form.get('filiado', False) query = ''' INSERT INTO militantes (nome, cpf, email, telefone, endereco, filiado) VALUES (%s, %s, %s, %s, %s, %s) ''' execute_query(query, (nome, cpf, email, telefone, endereco, filiado)) return redirect(url_for('listar_militantes')) return render_template('novo_militante.html') # Rota para listar militantes @app.route('/militantes') def listar_militantes(): query = 'SELECT * FROM militantes' militantes = execute_query(query) return render_template('listar_militantes.html', militantes=militantes) # Rota para criar uma nova cota mensal @app.route('/cotas/novo', methods=['GET', 'POST']) def nova_cota(): if request.method == 'POST': militante_id = request.form['militante_id'] valor_antigo = request.form['valor_antigo'] valor_novo = request.form['valor_novo'] data_alteracao = request.form['data_alteracao'] query = ''' INSERT INTO cotas_mensais (militante_id, valor_antigo, valor_novo, data_alteracao) VALUES (%s, %s, %s, %s) ''' execute_query(query, (militante_id, valor_antigo, valor_novo, data_alteracao)) return redirect(url_for('listar_cotas')) return render_template('nova_cota.html') # Rota para listar cotas mensais @app.route('/cotas') def listar_cotas(): query = 'SELECT * FROM cotas_mensais' cotas = execute_query(query) return render_template('listar_cotas.html', cotas=cotas) # Rota para criar um novo pagamento @app.route('/pagamentos/novo', methods=['GET', 'POST']) def novo_pagamento(): if request.method == 'POST': militante_id = request.form['militante_id'] tipo_pagamento_id = request.form['tipo_pagamento_id'] valor = request.form['valor'] data_pagamento = request.form['data_pagamento'] query = ''' INSERT INTO pagamentos (militante_id, tipo_pagamento_id, valor, data_pagamento) VALUES (%s, %s, %s, %s) ''' execute_query(query, (militante_id, tipo_pagamento_id, valor, data_pagamento)) return redirect(url_for('listar_pagamentos')) return render_template('novo_pagamento.html') # Rota para listar pagamentos @app.route('/pagamentos') def listar_pagamentos(): query = 'SELECT * FROM pagamentos' pagamentos = execute_query(query) return render_template('listar_pagamentos.html', pagamentos=pagamentos) # Rota para criar um novo material vendido @app.route('/materiais/novo', methods=['GET', 'POST']) def novo_material(): if request.method == 'POST': militante_id = request.form['militante_id'] tipo_material_id = request.form['tipo_material_id'] descricao = request.form['descricao'] valor = request.form['valor'] data_venda = request.form['data_venda'] query = ''' INSERT INTO materiais_vendidos (militante_id, tipo_material_id, descricao, valor, data_venda) VALUES (%s, %s, %s, %s, %s) ''' execute_query(query, (militante_id, tipo_material_id, descricao, valor, data_venda)) return redirect(url_for('listar_materiais')) return render_template('novo_material.html') # Rota para listar materiais vendidos @app.route('/materiais') def listar_materiais(): query = 'SELECT * FROM materiais_vendidos' materiais = execute_query(query) return render_template('listar_materiais.html', materiais=materiais) # Rota para criar uma nova venda de jornais avulsos @app.route('/jornais/novo', methods=['GET', 'POST']) def nova_venda_jornal(): if request.method == 'POST': militante_id = request.form['militante_id'] quantidade = request.form['quantidade'] valor_total = request.form['valor_total'] data_venda = request.form['data_venda'] query = ''' INSERT INTO vendas_jornais_avulsos (militante_id, quantidade, valor_total, data_venda) VALUES (%s, %s, %s, %s) ''' execute_query(query, (militante_id, quantidade, valor_total, data_venda)) return redirect(url_for('listar_vendas_jornal')) return render_template('nova_venda_jornal.html') # Rota para listar vendas de jornais avulsos @app.route('/jornais') def listar_vendas_jornal(): query = 'SELECT * FROM vendas_jornais_avulsos' vendas = execute_query(query) return render_template('listar_vendas_jornal.html', vendas=vendas) # Rota para criar uma nova assinatura anual @app.route('/assinaturas/novo', methods=['GET', 'POST']) def nova_assinatura(): if request.method == 'POST': militante_id = request.form['militante_id'] tipo_material_id = request.form['tipo_material_id'] quantidade = request.form['quantidade'] valor_total = request.form['valor_total'] data_inicio = request.form['data_inicio'] data_fim = request.form['data_fim'] query = ''' INSERT INTO assinaturas_anuais (militante_id, tipo_material_id, quantidade, valor_total, data_inicio, data_fim) VALUES (%s, %s, %s, %s, %s, %s) ''' execute_query(query, (militante_id, tipo_material_id, quantidade, valor_total, data_inicio, data_fim)) return redirect(url_for('listar_assinaturas')) return render_template('nova_assinatura.html') # Rota para listar assinaturas anuais @app.route('/assinaturas') def listar_assinaturas(): query = 'SELECT * FROM assinaturas_anuais' assinaturas = execute_query(query) return render_template('listar_assinaturas.html', assinaturas=assinaturas) # Rota para criar um novo relatório de cotas mensais @app.route('/relatorios/cotas/novo', methods=['GET', 'POST']) def novo_relatorio_cotas(): if request.method == 'POST': setor_id = request.form['setor_id'] comite_id = request.form['comite_id'] total_cotas = request.form['total_cotas'] data_relatorio = request.form['data_relatorio'] query = ''' INSERT INTO relatorio_cotas_mensais (setor_id, comite_id, total_cotas, data_relatorio) VALUES (%s, %s, %s, %s) ''' execute_query(query, (setor_id, comite_id, total_cotas, data_relatorio)) return redirect(url_for('listar_relatorios_cotas')) return render_template('novo_relatorio_cotas.html') # Rota para listar relatórios de cotas mensais @app.route('/relatorios/cotas') def listar_relatorios_cotas(): query = 'SELECT * FROM relatorio_cotas_mensais' relatorios = execute_query(query) return render_template('listar_relatorios_cotas.html', relatorios=relatorios) # Rota para criar um novo relatório de vendas de materiais @app.route('/relatorios/vendas/novo', methods=['GET', 'POST']) def novo_relatorio_vendas(): if request.method == 'POST': setor_id = request.form['setor_id'] comite_id = request.form['comite_id'] total_vendas = request.form['total_vendas'] data_relatorio = request.form['data_relatorio'] query = ''' INSERT INTO relatorio_vendas_materiais (setor_id, comite_id, total_vendas, data_relatorio) VALUES (%s, %s, %s, %s) ''' execute_query(query, (setor_id, comite_id, total_vendas, data_relatorio)) return redirect(url_for('listar_relatorios_vendas')) return render_template('novo_relatorio_vendas.html') # Rota para listar relatórios de vendas de materiais @app.route('/relatorios/vendas') def listar_relatorios_vendas(): query = 'SELECT * FROM relatorio_vendas_materiais' relatorios = execute_query(query) return render_template('listar_relatorios_vendas.html', relatorios=relatorios) # Iniciar o servidor Flask if __name__ == '__main__': app.run(debug=True)