213 lines
8.1 KiB
Python
213 lines
8.1 KiB
Python
|
|
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)
|