Exemplo n.º 1
0
def bod_home_reactivo():
    check_bod()
    # reactivos = Reactivo.query.filter_by(area=Area.Bod).all() # Por alguna razon no ordena del primer id a ultimo
    reactivos = db.session.query(Reactivo).filter(
        Reactivo.area == Area.Bod).order_by(Reactivo.id).all()
    return render_template('ver_reactivos.html',
                           reactivos=reactivos,
                           area='Bod',
                           user=current_user)
Exemplo n.º 2
0
def bod_reactivo(reactivo_id):
    check_bod()
    reactivo = Reactivo.query.get_or_404(reactivo_id)
    if reactivo.area != Area.Bod:
        return abort(403)
    return render_template('reactivo.html',
                           title=reactivo.nombre,
                           reactivo=reactivo,
                           area='Bod',
                           user=current_user)
Exemplo n.º 3
0
def bod_consulta(reactivo_id):
    check_bod()
    reactivo = Reactivo.query.get_or_404(reactivo_id)
    if reactivo.area != Area.Bod:
        return abort(403)

    if not reactivo.tiene_formula:
        flash(
            'El reactivo no tiene una formula asociada, crea una para poder consultar la produccion de reactivo',
            'info')
        return redirect(
            url_for('reactivos.bod_formula', reactivo_id=reactivo.id))

    formula = reactivo.formula
    ingredientes = Ingrediente.query.filter_by(formula_id=formula.id).all()
    for ingrediente in ingredientes:
        if ingrediente.ratio == 0:
            Ingrediente.query.filter_by(formula_id=formula.id).delete()
            db.session.delete(formula)
            db.session.commit()
            flash(
                'El proceso de asignarle formula al reactivo fue detenido antes de finalizar. Para asignarle una formula por favor complete el proceso',
                'warning')
            return redirect(
                url_for('reactivos.bod_formula', reactivo_id=reactivo.id))

    form = ConsultaForm()
    if form.validate_on_submit():
        flag = True
        for assoc in ingredientes:
            if (assoc.materia.cantidad - form.cantidad.data * assoc.ratio) < 0:
                flag = False
                break
        if flag:
            flash(
                f"Es posible crear {form.cantidad.data} {reactivo.medida.value} de reactivo",
                'info')
        else:
            flash(
                f'No es posible crear {form.cantidad.data} {reactivo.medida.value} de reactivo',
                'warning')
        return redirect(
            url_for('reactivos.bod_consulta', reactivo_id=reactivo.id))
    return render_template('consulta.html',
                           form=form,
                           legend='Consulta',
                           reactivo=reactivo,
                           area='Bod')


# ----------------------------------------------------------------------------------------------------------
Exemplo n.º 4
0
def bod_historial_reactivo_especifico(reactivo_id):
    check_bod()
    reactivo = Reactivo.query.get_or_404(reactivo_id)
    if reactivo.area != Area.Bod:
        return abort(403)
    historiales = HistorialReactivos.query.filter_by(
        reactivo=reactivo).order_by(
            HistorialReactivos.fecha_registro.desc()).all()
    return render_template('historial_reactivo.html',
                           title='Menu Historial Reactivos',
                           legend='Menu Historial Reactivo',
                           historiales=historiales,
                           reactivo=reactivo,
                           area='Bod')
Exemplo n.º 5
0
def bod_home_historial():
    check_bod()
    historiales = HistorialQuimicos.query.filter_by(area=Area.Bod).order_by(HistorialQuimicos.fecha_registro.desc()).all()
    return render_template('ver_historial.html', historiales=historiales, area='Bod')
Exemplo n.º 6
0
def bod_home():
    check_bod()
    quimicos = Quimico.query.filter_by(area=Area.Bod).all()
    return render_template('bod/home.html', title='Bod Home', quimicos=quimicos, area='Bod', user=current_user)