def addProducto():
    if request.method == 'POST':
        global user
        correo = user[0][0]
        idProducto = request.form['idProducto']
        nombreProducto = request.form['nombreProducto']
        cantidad = request.form['cantidad']
        precio = request.form['precio']
        categoria = request.form['categoria']
        f = request.files['imagen']
        filename = idProducto + correo.replace(".", "").replace("@", "")
        #check
        f.save(os.path.join(app.config["UPLOAD_IMAGE_FOLDER"], filename))
        conn = getConn()
        crs = conn.cursor()
        sql = """INSERT INTO producto (idProducto,nombreProducto,cantidad,precio,categoria,correoproductor)
                VALUES (:idProducto,:nombreProducto,:cantidad,:precio,:categoria, :correoproductor)"""
        crs.execute(sql, [
            idProducto, nombreProducto, cantidad, precio,
            str(categoria), correo
        ])
        conn.commit()
        conn.close()
        flash('Producto agregado satisfactoriamente')
    return redirect(url_for('productos'))
Exemple #2
0
def getBoletas():
    conn = getConn()
    crs = conn.cursor()
    crs.execute(
        "SELECT nroboleta, rutcliente, to_char(fecha,'dd/mm/yyyy'), totalneto, idtipopago FROM ventas"
    )
    result = crs.fetchall()
    boletas = {}
    for boleta in result:
        if result[0][4] == 101:
            tipoPago = "Efectivo"
        else:
            tipoPago = "Transferencia"
        crs.execute(
            "SELECT idproducto, cantidad FROM detalleventa where nroboleta=:nroboleta",
            nroboleta=boleta[0])
        detalles = crs.fetchall()
        details = []
        for detalle in detalles:
            dict = {"idProducto": detalle[0], "cantidad": detalle[1]}
            detail = dict
            details.append(detail)
        dict = {
            "idBoleta": boleta[0],
            "rutCliente": boleta[1],
            "fecha": boleta[2],
            "totalNeto": boleta[3],
            "tipoPago": tipoPago,
            "detalleVenta": details
        }
        string = 'boleta ' + str(boleta[0])
        boletas[string] = dict
    return jsonify({'results': boletas})
def agregarCarrito(id, cant):
    global user
    #actual
    if len(user) > 0 and user[0][9] == "c":
        cantidad = cant
        idproducto = id
        correo = user[0][0]
        print(cantidad, idproducto, correo)
        conn = getConn()
        crs = conn.cursor()
        sql = """INSERT INTO carrito (cantidad, idproducto, correo)
                VALUES (:cantidad,:idproducto,:correo)"""
        crs.execute(sql, [cantidad, idproducto, correo])
        conn.commit()
        sql = """select p.nombreproducto, c.cantidad, p.categoria, (p.precio*c.cantidad),p.idproducto, p.correoproductor from carrito c join producto p on (p.idproducto = c.idproducto) where correo = :correo"""
        crs.execute(sql, [correo])
        data = crs.fetchall()
        totalCarrito = 0
        for producto in data:
            totalCarrito += producto[3]
        conn.close()
        return redirect(url_for('carrito'))
    else:
        flash('Para agregar al carrito debe iniciar sesión como cliente')
        return redirect(url_for('iniciosesion'))
def perfilUsuarioEditado():
    if request.method == 'POST':
        username = request.form['username']
        rutusuario = request.form['rutusuario']
        telefono1 = request.form['telefono1']
        telefono2 = request.form['telefono2']
        domicilio = request.form['domicilio']
        global user
        correo = user[0][0]
        conn = getConn()
        crs = conn.cursor()
        sql = """update usuario set username=:username, rutusuario=:rutusuario, telefono1=:telefono1, telefono2=:telefono2, domicilio=:domicilio where correo=:correo"""
        crs.execute(
            sql,
            [username, rutusuario, telefono1, telefono2, domicilio, correo])
        conn.commit()
        sql = """select correo, password, nvl(username,' '), nombre, apellido, nvl(rutusuario,' '), nvl(telefono1,' '), nvl(telefono2,' '), nvl(domicilio,' ') from usuario where correo=:correo"""
        crs.execute(sql, [correo])
        user = crs.fetchall()
        return render_template('/perfil-usuario.html', user=user)
    if request.method == 'GET':
        if len(user) == 0:
            return render_template('/inicio-sesion.html')
        else:
            return render_template('/perfil-usuario.html', user=user)
def editarProducto(idproducto):
    conn = getConn()
    crs = conn.cursor()
    sql = """select idproducto, nombreproducto, cantidad, precio, categoria from producto where idproducto=:idproducto"""
    crs.execute(sql, [idproducto])
    producto = crs.fetchall()
    return render_template('editar-producto.html', producto=producto)
Exemple #6
0
def getNotasCredito():
    conn = getConn()
    crs = conn.cursor()
    crs.execute(
        "SELECT nronc, rutcliente, to_char(fecha,'dd/mm/yyyy'), totalneto, nroboleta FROM reversos order by nronc"
    )
    result = crs.fetchall()
    notasCredito = {}
    for nc in result:
        crs.execute(
            "SELECT idproducto, cantidad, motivo FROM detallereverso where nronc=:nronc",
            nronc=nc[0])
        detalles = crs.fetchall()
        details = []
        for detalle in detalles:
            dict = {
                "idProducto": detalle[0],
                "cantidad": detalle[1],
                "motivo": detalle[2]
            }
            detail = dict
            details.append(detail)
        dict = {
            "nroNotaCredito": nc[0],
            "rutCliente": nc[1],
            "fecha": nc[2],
            "totalNeto": nc[3],
            "nroBoleta": nc[4],
            "detalleNotaCredito": details
        }
        string = 'notaCredito ' + str(nc[0])
        notasCredito[string] = dict
    return jsonify({"results": notasCredito})
Exemple #7
0
def getOrdenesCompra():
    conn = getConn()
    crs = conn.cursor()
    crs.execute(
        "SELECT nrooc, rutproveedor, to_char(fecha,'dd/mm/yyyy'), totalneto, codtrabajador FROM ordenescompra order by nrooc"
    )
    result = crs.fetchall()
    ordenesCompra = {}
    for oc in result:
        crs.execute(
            "SELECT idproducto, cantidad FROM detalleoc where nrooc=:nrooc",
            nrooc=oc[0])
        detalles = crs.fetchall()
        details = []
        for detalle in detalles:
            dict = {"idProducto": detalle[0], "cantidad": detalle[1]}
            detail = dict
            details.append(detail)
        dict = {
            "nroOrdenCompra": oc[0],
            "rutProveedor": oc[1],
            "fecha": oc[2],
            "totalNeto": oc[3],
            "codTrabajador": oc[4],
            "detalleOrdenCompra": details
        }
        string = 'ordenCompra ' + str(oc[0])
        ordenesCompra[string] = dict
    return jsonify({"results": ordenesCompra})
Exemple #8
0
def addCompra():
    conn = getConn()
    crs = conn.cursor()
    nroOperacion = request.json['nroOperacion']
    nroFactura = request.json['nroFactura']
    rutProveedor = request.json['rutProveedor']
    fecha = request.json['fecha']
    totalNeto = request.json['totalNeto']
    codTrabajador = request.json['codTrabajador']
    nroOrdenCompra = request.json['nroOrdenCompra']
    idDepartamento = request.json['idDepartamento']
    detalleCompra = request.json['detalleCompra']
    sql = """INSERT INTO compras (nrooperacion,nrofactura,rutproveedor,fecha,totalneto,codtrabajador,nrooc,iddepartamento)
          VALUES (compra_seq.nextval,:nrofactura,:rutproveedor,TO_DATE(:fecha,'YYYY-MM-DD'),:totalNeto,:codtrabajador,:nrooc,:iddepartamento)"""
    crs.execute(sql, [
        nroFactura, rutProveedor, fecha, totalNeto, codTrabajador,
        nroOrdenCompra, idDepartamento
    ])
    print(idDepartamento)
    for detalle in detalleCompra:
        sql = """INSERT INTO detallecompra (idProducto,cantidad,nrooperacion)
          VALUES (:idProducto,:cantidad,compra_seq.currval)"""
        crs.execute(sql, [detalle['idProducto'], detalle['cantidad']])
    conn.commit()
    conn.close()
    return jsonify({"message": "Compra registrada correctamente"})
def perfilProductorEditado():
    if request.method == 'POST':
        username = request.form['username']
        nombreempresa = request.form['nombreempresa']
        categoriaempresa = request.form['categoriaempresa']
        rutempresa = request.form['rutempresa']
        razonsocial = request.form['razonsocial']
        telefono1 = request.form['telefono1']
        telefono2 = request.form['telefono2']
        direccion = request.form['direccion']
        global user
        correo = user[0][0]
        conn = getConn()
        crs = conn.cursor()
        sql = """update productor set username=:username, nombreempresa=:nombreempresa, rutempresa=:rutempresa, razonsocial=:razonsocial, telefono1=:telefono1, telefono2=:telefono2, direccion=:direccion, categoria=:categoria where correo=:correo"""
        crs.execute(sql, [
            username, nombreempresa, rutempresa, razonsocial, telefono1,
            telefono2, direccion, categoriaempresa, correo
        ])
        conn.commit()
        sql = """select correo, pass, nvl(username,' '), nombre, apellido, nombreempresa, razonsocial, nvl(rutempresa,' '), nvl(telefono1,' '), tipologin, nvl(telefono2,' '), nvl(direccion,' '), nvl(categoria,' ') from productor where correo=:correo"""
        crs.execute(sql, [correo])
        user = crs.fetchall()
        print(user[0][12])
        return render_template('/perfil-productor.html', user=user)
    if request.method == 'GET':
        if len(user) == 0:
            return render_template('/inicio-sesion.html')
        else:
            return render_template('/perfil-productor.html', user=user)
def home():
    conn = getConn()
    crs = conn.cursor()
    sql = "SELECT * FROM producto where eliminado = 0"
    crs.execute(sql)
    data = crs.fetchall()
    print(data)
    return render_template('/index.html', productos=data)
def vistaproducto():
    if request.method == 'POST':
        nombrebusqueda = request.form['busqueda']
        conn = getConn()
        crs = conn.cursor()
        sql = """select * from producto where lower(nombreproducto) like lower('%'||:nombre||'%')"""
        crs.execute(sql, [nombrebusqueda])
        data = crs.fetchall()
    return render_template('/vista-producto.html', productos=data)
Exemple #12
0
def getIdNotaCredito():
    conn = getConn()
    crs = conn.cursor()
    crs.execute(
        "SELECT last_number FROM user_sequences where sequence_name='NOTACREDITO_SEQ'"
    )
    result = crs.fetchall()
    idNotaCredito = result[0][0]
    conn.close()
    return jsonify({'idNotaCredito': idNotaCredito})
Exemple #13
0
def getIdCompra():
    conn = getConn()
    crs = conn.cursor()
    crs.execute(
        "SELECT last_number FROM user_sequences where sequence_name='COMPRA_SEQ'"
    )
    result = crs.fetchall()
    idCompra = result[0][0]
    conn.close()
    return jsonify({'idOperacionCompra': idCompra})
def productoresDisponibles():
    conn = getConn()
    crs = conn.cursor()
    sql = """ SELECT * FROM productor 
            where estado = 1
        """
    crs.execute(sql)
    data = crs.fetchall()
    print(data)
    return render_template('productores-disponibles.html', productores=data)
Exemple #15
0
def getIdBoleta():
    conn = getConn()
    crs = conn.cursor()
    crs.execute(
        "SELECT last_number FROM user_sequences where sequence_name='BOLETA_SEQ'"
    )
    result = crs.fetchall()
    idBoleta = result[0][0]
    conn.close()
    return jsonify({'idBoleta': idBoleta})
Exemple #16
0
def getBalancesVentasMensuales():
    conn = getConn()
    crs = conn.cursor()
    crs.execute(
        """select to_char(fecha,'mm/yyyy'), sum(totalneto), sum(d.cantidad)
    from ventas v join detalleventa d
    on v.nroboleta=d.nroboleta
    group by to_char(fecha,'mm/yyyy')
    """)
    result = crs.fetchall()
    return jsonify({'results': result})
def productos():
    conn = getConn()
    crs = conn.cursor()
    global user
    correo = user[0][0]
    sql = "SELECT * FROM producto where correoproductor = :correo and eliminado=0"
    crs.execute(sql, [correo])
    data = crs.fetchall()
    usuario = correo.replace(".", "").replace("@", "")
    # imagenes = send_from_directory(app.config["UPLOAD_IMAGE_FOLDER"],filename)
    return render_template('/productos.html', productos=data, usuario=usuario)
def carrito():
    conn = getConn()
    crs = conn.cursor()
    sql = """select p.nombreproducto, c.cantidad, p.categoria, (p.precio*c.cantidad), p.idproducto, p.correoproductor from carrito c join producto p on (p.idproducto = c.idproducto) where correo = :correo"""
    crs.execute(sql, [user[0][0]])
    data = crs.fetchall()
    totalCarrito = 0
    for producto in data:
        totalCarrito += producto[3]
    conn.close()
    return render_template('carrito.html',
                           productos=data,
                           totalCarrito=totalCarrito)
def quitarProductoCarrito(idproducto):
    idproducto = idproducto
    global user
    if len(user) == 0:
        return render_template('/inicio-sesion.html')
    else:
        correo = user[0][0]
        conn = getConn()
        crs = conn.cursor()
        sql = """delete from carrito where correo = :correo
         and idproducto = :idproducto"""
        crs.execute(sql, [correo, idproducto])
        conn.commit()
        return redirect(url_for('carrito'))
def addCliente():
    if request.method == 'POST':
        nombre = request.form['nombre']
        apellidos = request.form['apellidos']
        email = request.form['email']
        contrasena = request.form['contrasena']
        conn = getConn()
        crs = conn.cursor()
        sql = """INSERT INTO usuario (correo,password,nombre,apellido)
                VALUES (:correo,:password,:nombre,:apellido)"""
        crs.execute(sql, [email, contrasena, nombre, apellidos])
        conn.commit()
        conn.close()
    return redirect(url_for('iniciosesion'))
def actualizarEstado():
    global user
    correo = user[0][0]
    if user[0][13] == 1:
        estado = 0
    else:
        estado = 1
    conn = getConn()
    crs = conn.cursor()
    sql = """update productor set estado=:estado where correo=:correo"""
    crs.execute(sql, [estado, user[0][0]])
    conn.commit()
    sql = """select correo, pass, nvl(username,' '), nombre, apellido, nombreempresa, razonsocial, nvl(rutempresa,' '), nvl(telefono1,' '), tipologin, nvl(telefono2,' '), nvl(direccion,' '), nvl(categoria,' '), estado from productor where correo=:correo"""
    crs.execute(sql, [correo])
    user = crs.fetchall()
    return redirect(url_for('perfilUsuario'))
Exemple #22
0
def balanceGeneral():
    if 'username' in session:
        conn = getConn()
        crs = conn.cursor()
        crs.execute(
            "SELECT c.descripcion, c.tipocuenta, sum(d.debe), sum(d.haber) from cuentas c join detalleasiento d on c.idcuenta=d.idcuenta group by c.descripcion,c.tipocuenta"
        )
        results = crs.fetchall()
        cuentas = []
        for result in results:
            res = list(result)
            if result[2] > result[3]:
                deudor = result[2] - result[3]
                acreedor = 0
            elif result[2] < result[3]:
                deudor = 0
                acreedor = result[3] - result[2]
            else:
                deudor = 0
                acreedor = 0
            res.append(deudor)
            res.append(acreedor)
            if result[1] == 'Activo' or result[1] == 'Pasivo':
                res.append(deudor)
                res.append(acreedor)
                res.append(0)
                res.append(0)
            else:
                res.append(0)
                res.append(0)
                res.append(deudor)
                res.append(acreedor)
            cuentas.append(res)
        totales = []
        for i in range((len(res) - 2)):
            total = 0
            for cuenta in cuentas:
                total += cuenta[i + 2]
            totales.append(total)
        conn.close()
        return render_template('balance-general.html',
                               cuentas=cuentas,
                               totales=totales)
    else:
        flash("Debes iniciar sesion para acceder")
        return redirect(url_for('login'))
def productoEliminado(idproducto):
    idproducto = idproducto
    global user
    if len(user) == 0:
        return render_template('/inicio-sesion.html')
    else:
        correo = user[0][0]
        conn = getConn()
        crs = conn.cursor()
        sql = """update producto set eliminado=1 where idproducto=:idproducto"""
        crs.execute(sql, [idproducto])
        conn.commit()
        sql = """SELECT * FROM producto where correoproductor = :correo and eliminado=0"""
        crs.execute(sql, [correo])
        productos = crs.fetchall()
        usuario = correo.replace(".", "").replace("@", "")
        flash('Producto eliminado satisfactoriamente')
        return redirect(url_for('productos'))
def perfilUsuario():
    if request.method == 'POST':
        correo = request.form['correo']
        passw = request.form['password']
        conn = getConn()
        crs = conn.cursor()
        sql = """select correo, password, nvl(username,' '), nombre, apellido, nvl(rutusuario,' '), nvl(telefono1,' '), nvl(telefono2,' '), nvl(domicilio,' '), tipologin from usuario where correo=:correo"""
        crs.execute(sql, [correo])
        global user
        user = crs.fetchall()
        print(user)
        if correo == "" or passw == "":
            user = []
            return render_template('/inicio-sesion.html')
        else:
            if len(user) > 0:
                if correo == user[0][0] and passw == user[0][1]:
                    return render_template('/perfil-usuario.html', user=user)
                else:
                    user = []
                    return render_template('/inicio-sesion.html')
            else:
                sql = """select correo, pass, nvl(username,' '), nombre, apellido, nombreempresa, razonsocial, nvl(rutempresa,' '), nvl(telefono1,' '), tipologin, nvl(telefono2,' '), nvl(direccion,' '), nvl(categoria,' '), estado from productor where correo=:correo"""
                crs.execute(sql, [correo])
                user = crs.fetchall()
                if len(user) > 0:
                    if correo == user[0][0] and passw == user[0][1]:
                        return render_template('/perfil-productor.html',
                                               user=user)
                    else:
                        user = []
                        return render_template('/inicio-sesion.html')
                else:
                    user = []
                    return render_template('/inicio-sesion.html')
    if request.method == 'GET':
        if len(user) == 0:
            return render_template('/inicio-sesion.html')
        else:
            if user[0][9] == "c":
                return render_template('/perfil-usuario.html', user=user)
            else:
                return render_template('/perfil-productor.html', user=user)
Exemple #25
0
def addOrdenCompra():
    conn = getConn()
    crs = conn.cursor()
    nroOc = request.json['nroOrdenCompra']
    rutProveedor = request.json['rutProveedor']
    fecha = request.json['fecha']
    totalNeto = request.json['totalNeto']
    codTrabajador = request.json['codTrabajador']
    detalleOrden = request.json['detalleOrden']
    sql = """INSERT INTO ordenescompra (nrooc,rutproveedor,fecha,totalneto,codtrabajador)
          VALUES (ordencompra_seq.nextval,:rutproveedor,TO_DATE(:fecha,'YYYY-MM-DD'),:totalNeto,:codtrabajador)"""
    crs.execute(sql, [rutProveedor, fecha, totalNeto, codTrabajador])
    for detalle in detalleOrden:
        sql = """INSERT INTO detalleoc (idProducto,cantidad,nroOc)
          VALUES (:idProducto,:cantidad,ordencompra_seq.currval)"""
        crs.execute(sql, [detalle['idProducto'], detalle['cantidad']])
    conn.commit()
    conn.close()
    return jsonify({"message": "Orden de compra registrada correctamente"})
def addProductor():
    if request.method == 'POST':
        nombre = request.form['nombre']
        apellidos = request.form['apellidos']
        nombreEmpresa = request.form['nombreEmpresa']
        razonSocial = request.form['razonSocial']
        direccion = request.form['direccion']
        email = request.form['email']
        contrasena = request.form['contrasena']
        conn = getConn()
        crs = conn.cursor()
        sql = """INSERT INTO productor (correo,pass,nombre,apellido,nombreempresa,razonsocial,direccion)
                VALUES (:correo,:password,:nombre,:apellido,:nombreempresa,:razonsocial,:direccion)"""
        crs.execute(sql, [
            email, contrasena, nombre, apellidos, nombreEmpresa, razonSocial,
            direccion
        ])
        conn.commit()
        conn.close()
    return render_template('/inicio-sesion.html')
Exemple #27
0
def addBoleta():
    conn = getConn()
    crs = conn.cursor()
    #    nuevaVenta = Venta(request.json['boleta'],request.json['rutCliente'],request.json['fecha'],request.json['totalNeto'],"",request.json['tipoPago'])
    nroBoleta = request.json['boleta']
    rutcliente = request.json['rutCliente']
    fecha = request.json['fecha']
    totalneto = request.json['totalNeto']
    idtipopago = request.json['tipoPago']
    #probar idtipo pago con 101 y 201
    detalleBoleta = request.json['detalleBoleta']
    sql = """INSERT INTO ventas (nroboleta,rutcliente,fecha,totalneto,idtipopago)
          VALUES (boleta_seq.nextval,:rutcliente,TO_DATE(:fecha,'YYYY-MM-DD'),:totalneto,:idtipopago)"""
    crs.execute(sql, [rutcliente, fecha, totalneto, idtipopago])
    for detalle in detalleBoleta:
        sql = """INSERT INTO detalleventa (idProducto,cantidad,nroboleta)
          VALUES (:idProducto,:cantidad,BOLETA_SEQ.currval)"""
        crs.execute(sql, [detalle['idProducto'], detalle['cantidad']])
    conn.commit()
    conn.close()
    return jsonify({"message": "Boleta registrada correctamente"})
Exemple #28
0
def balanceGastos():
    global conex
    if 'username' in session:
        conn = getConn()
        crs = conn.cursor()
        crs.execute(
            """SELECT nrooperacion, nrofactura, rutproveedor, to_char(fecha,'dd/mm/yyyy'), 
        totalneto, codtrabajador, nrooc, documento, iddepartamento FROM compras ORDER BY fecha desc, 1 desc"""
        )
        results = crs.fetchall()
        gastos = []
        conex = ""
        for result in results:
            crs.execute(
                "SELECT idproducto, cantidad FROM detallecompra where nrooperacion=:nrooperacion",
                nrooperacion=result[0])
            detalles = crs.fetchall()
            res = list(result)
            if len(detalles) > 0:
                details = []
                for detalle in detalles:
                    detail = list(detalle)
                    if conex == "":
                        r = get_detalle_producto(detalle[0])
                        jerr = {'detail': 'Not found.'}
                        if r != jerr and conex == "":
                            r2 = json.dumps(r)
                            js_dict = json.loads(r2)
                            detail.append(js_dict["NOM_PROD"])
                            detail.append(js_dict["MARCA"])
                            detail.append(js_dict["MODELO"])
                            detail.append(js_dict["DESCRIPCION"])
                    details.append(detail)
            res.append(details)
            gastos.append(res)
        conn.close()
        return render_template('balance-gastos.html', gastos=gastos)
    else:
        flash("Debes iniciar sesion para acceder")
        return redirect(url_for('login'))
Exemple #29
0
def balanceReversos():
    global conex
    if 'username' in session:
        conn = getConn()
        crs = conn.cursor()
        crs.execute(
            "SELECT nronc, rutcliente, to_char(fecha,'dd/mm/yyyy'), totalneto, nroboleta FROM reversos ORDER BY fecha desc, 1 desc"
        )
        results = crs.fetchall()
        reversos = []
        conex = ""
        for result in results:
            crs.execute(
                "SELECT idproducto, cantidad, motivo FROM detallereverso where nronc=:nronc",
                nronc=result[0])
            detalles = crs.fetchall()
            res = list(result)
            if len(detalles) > 0:
                details = []
                for detalle in detalles:
                    detail = list(detalle)
                    if conex == "":
                        r = get_detalle_producto(detalle[0])
                        jerr = {'detail': 'Not found.'}
                        if r != jerr and conex == "":
                            r2 = json.dumps(r)
                            js_dict = json.loads(r2)
                            detail.append(js_dict["NOM_PROD"])
                            detail.append(js_dict["MARCA"])
                            detail.append(js_dict["MODELO"])
                            detail.append(js_dict["DESCRIPCION"])
                    details.append(detail)
            res.append(details)
            reversos.append(res)
        conn.close()
        return render_template('balance-reversos.html', reversos=reversos)
    else:
        flash("Debes iniciar sesion para acceder")
        return redirect(url_for('login'))
Exemple #30
0
def libroDiario():
    if 'username' in session:
        conn = getConn()
        crs = conn.cursor()
        crs.execute(
            """SELECT l.nroasiento, to_char(l.fecha,'dd/mm/yyyy'), l.glosa, t.descripcion, 
        nvl(l.nrooperacion,0), nvl(l.nronc,0), nvl(l.nroboleta,0) FROM librodiario l join tipooperacion t on l.idtipooperacion=t.idtipooperacion order by 1"""
        )
        results = crs.fetchall()
        asientos = []
        for result in results:
            crs.execute(
                "SELECT d.debe, d.haber, c.descripcion FROM detalleasiento d join cuentas c on d.idcuenta=c.idcuenta where d.nroasiento=:nroasiento",
                nroasiento=result[0])
            detalles = crs.fetchall()
            res = list(result)
            res.append(detalles)
            asientos.append(res)
        conn.close()
        return render_template('libro-diario.html', asientos=asientos)
    else:
        flash("Debes iniciar sesion para acceder")
        return redirect(url_for('login'))