refactor: renomeia pagamentos para comprovantes e adiciona novos tipos
This commit is contained in:
186
app.py
186
app.py
@@ -1619,6 +1619,192 @@ def create_app():
|
||||
finally:
|
||||
db.close()
|
||||
|
||||
@app.route("/comprovantes/novo", methods=["GET", "POST"])
|
||||
@require_login
|
||||
def novo_comprovante():
|
||||
if request.method == "POST":
|
||||
# Verificar permissão para tipos específicos de comprovante
|
||||
tipo_comprovante = request.form.get('tipo_comprovante')
|
||||
if tipo_comprovante not in ['1'] and not current_user.has_permission(Permission.MANAGE_PAYMENT_TYPES):
|
||||
flash('Você não tem permissão para registrar este tipo de comprovante.', 'error')
|
||||
return redirect(url_for('novo_comprovante'))
|
||||
|
||||
try:
|
||||
militante_id = request.form.get("militante_id")
|
||||
tipo_comprovante = request.form.get("tipo_comprovante")
|
||||
data_comprovante = request.form.get("data_comprovante")
|
||||
|
||||
if not all([militante_id, tipo_comprovante, data_comprovante]):
|
||||
flash("Todos os campos são obrigatórios", "danger")
|
||||
return redirect(url_for("novo_comprovante"))
|
||||
|
||||
db = get_db_connection()
|
||||
comprovante = Comprovante(
|
||||
militante_id=militante_id,
|
||||
tipo_comprovante=tipo_comprovante,
|
||||
data_comprovante=data_comprovante
|
||||
)
|
||||
db.add(comprovante)
|
||||
db.commit()
|
||||
flash("Comprovante cadastrado com sucesso!", "success")
|
||||
return redirect(url_for("listar_comprovantes"))
|
||||
except Exception as e:
|
||||
db.rollback()
|
||||
flash(f"Erro ao cadastrar comprovante: {str(e)}", "danger")
|
||||
return redirect(url_for("novo_comprovante"))
|
||||
return render_template("novo_comprovante.html")
|
||||
|
||||
@app.route("/comprovantes")
|
||||
@require_login
|
||||
@require_permission(Permission.MANAGE_CELL_REPORTS)
|
||||
def listar_comprovantes():
|
||||
db = get_db_connection()
|
||||
try:
|
||||
comprovantes = db.query(Comprovante).join(Militante).all()
|
||||
militantes = db.query(Militante).all()
|
||||
return render_template("listar_comprovantes.html",
|
||||
comprovantes=comprovantes,
|
||||
militantes=militantes)
|
||||
finally:
|
||||
db.close()
|
||||
|
||||
@app.route("/comprovantes/adicionar", methods=["POST"])
|
||||
@require_login
|
||||
@require_permission(Permission.MANAGE_CELL_REPORTS)
|
||||
def adicionar_comprovante():
|
||||
# Verificar permissão para tipos específicos de comprovante
|
||||
tipo_comprovante = request.form.get('tipo_comprovante')
|
||||
if tipo_comprovante not in ['1'] and not current_user.has_permission(Permission.MANAGE_PAYMENT_TYPES):
|
||||
flash('Você não tem permissão para registrar este tipo de comprovante.', 'error')
|
||||
return redirect(url_for('listar_comprovantes'))
|
||||
|
||||
try:
|
||||
militante_id = request.form.get("militante_id")
|
||||
tipo_comprovante = request.form.get("tipo_comprovante")
|
||||
data_comprovante = request.form.get("data_comprovante")
|
||||
|
||||
if not all([militante_id, tipo_comprovante, data_comprovante]):
|
||||
flash("Todos os campos são obrigatórios", "danger")
|
||||
return redirect(url_for("adicionar_comprovante"))
|
||||
|
||||
db = get_db_connection()
|
||||
comprovante = Comprovante(
|
||||
militante_id=militante_id,
|
||||
tipo_comprovante=tipo_comprovante,
|
||||
data_comprovante=data_comprovante
|
||||
)
|
||||
db.add(comprovante)
|
||||
db.commit()
|
||||
flash("Comprovante adicionado com sucesso!", "success")
|
||||
return redirect(url_for("listar_comprovantes"))
|
||||
except Exception as e:
|
||||
db.rollback()
|
||||
flash(f"Erro ao adicionar comprovante: {str(e)}", "danger")
|
||||
return redirect(url_for("adicionar_comprovante"))
|
||||
return render_template("adicionar_comprovante.html")
|
||||
|
||||
@app.route('/celulas/<int:celula_id>/comprovantes')
|
||||
@require_login
|
||||
def list_comprovantes_celula(celula_id):
|
||||
@require_instance_access('celula', celula_id)
|
||||
def decorated_function(celula_id):
|
||||
db = get_db_connection()
|
||||
try:
|
||||
comprovantes = db.query(Comprovante).filter_by(celula_id=celula_id).all()
|
||||
return render_template('comprovantes/list.html', comprovantes=comprovantes)
|
||||
finally:
|
||||
db.close()
|
||||
return decorated_function(celula_id)
|
||||
|
||||
@app.route('/setores/<int:setor_id>/comprovantes')
|
||||
@require_login
|
||||
def list_comprovantes_setor(setor_id):
|
||||
@require_instance_access('setor', setor_id)
|
||||
def decorated_function(setor_id):
|
||||
db = get_db_connection()
|
||||
try:
|
||||
comprovantes = db.query(Comprovante).join(Usuario).filter(Usuario.setor_id == setor_id).all()
|
||||
return render_template('comprovantes/list.html', comprovantes=comprovantes)
|
||||
finally:
|
||||
db.close()
|
||||
return decorated_function(setor_id)
|
||||
|
||||
@app.route('/crs/<int:cr_id>/comprovantes')
|
||||
@require_login
|
||||
def list_comprovantes_cr(cr_id):
|
||||
@require_instance_access('cr', cr_id)
|
||||
def decorated_function(cr_id):
|
||||
db = get_db_connection()
|
||||
try:
|
||||
comprovantes = db.query(Comprovante).join(Usuario).filter(Usuario.cr_id == cr_id).all()
|
||||
return render_template('comprovantes/list.html', comprovantes=comprovantes)
|
||||
finally:
|
||||
db.close()
|
||||
return decorated_function(cr_id)
|
||||
|
||||
@app.route('/celulas/<int:celula_id>/comprovantes/novo', methods=['GET', 'POST'])
|
||||
@require_login
|
||||
@require_instance_permission('REGISTER_CELL_PAYMENT', 'celula_id')
|
||||
def novo_comprovante_celula(celula_id):
|
||||
if request.method == 'POST':
|
||||
db = get_db_connection()
|
||||
try:
|
||||
comprovante = Comprovante(
|
||||
valor=request.form['valor'],
|
||||
data=request.form['data'],
|
||||
militante_id=request.form['militante_id'],
|
||||
celula_id=celula_id
|
||||
)
|
||||
db.add(comprovante)
|
||||
db.commit()
|
||||
flash('Comprovante registrado com sucesso!', 'success')
|
||||
return redirect(url_for('list_comprovantes_celula', celula_id=celula_id))
|
||||
finally:
|
||||
db.close()
|
||||
return render_template('comprovantes/form.html')
|
||||
|
||||
@app.route('/setores/<int:setor_id>/comprovantes/novo', methods=['GET', 'POST'])
|
||||
@require_login
|
||||
@require_instance_permission('REGISTER_SECTOR_PAYMENT', 'setor_id')
|
||||
def novo_comprovante_setor(setor_id):
|
||||
if request.method == 'POST':
|
||||
db = get_db_connection()
|
||||
try:
|
||||
comprovante = Comprovante(
|
||||
valor=request.form['valor'],
|
||||
data=request.form['data'],
|
||||
militante_id=request.form['militante_id'],
|
||||
setor_id=setor_id
|
||||
)
|
||||
db.add(comprovante)
|
||||
db.commit()
|
||||
flash('Comprovante registrado com sucesso!', 'success')
|
||||
return redirect(url_for('list_comprovantes_setor', setor_id=setor_id))
|
||||
finally:
|
||||
db.close()
|
||||
return render_template('comprovantes/form.html')
|
||||
|
||||
@app.route('/crs/<int:cr_id>/comprovantes/novo', methods=['GET', 'POST'])
|
||||
@require_login
|
||||
@require_instance_permission('REGISTER_CR_PAYMENT', 'cr_id')
|
||||
def novo_comprovante_cr(cr_id):
|
||||
if request.method == 'POST':
|
||||
db = get_db_connection()
|
||||
try:
|
||||
comprovante = Comprovante(
|
||||
valor=request.form['valor'],
|
||||
data=request.form['data'],
|
||||
militante_id=request.form['militante_id'],
|
||||
cr_id=cr_id
|
||||
)
|
||||
db.add(comprovante)
|
||||
db.commit()
|
||||
flash('Comprovante registrado com sucesso!', 'success')
|
||||
return redirect(url_for('list_comprovantes_cr', cr_id=cr_id))
|
||||
finally:
|
||||
db.close()
|
||||
return render_template('comprovantes/form.html')
|
||||
|
||||
return app
|
||||
|
||||
def init_system():
|
||||
|
||||
Reference in New Issue
Block a user