Exemple #1
0
        def clicSet():
            def trans(valor):
                r = "error"
                if valor == 1 or valor == 0:
                    r = "ACTIVO"
                if valor == 2:
                    r = "EN PELIGRO"
                if valor == 3:
                    r = "BLOQUEADO"
                return r

            item = principal.listProd.currentItem().text()
            values = Conexion.selectNick(item)
            principal.lineEdit_4.setText(values[0])
            principal.lineEdit_12.setText(values[1])
            principal.comboBox.setCurrentIndex(
                principal.comboBox.findText(str(values[2])))
            combo = principal.comboBox_2.findText(trans(values[3]))
            principal.comboBox_2.setCurrentIndex(combo)
            val = values[4]
            values = Conexion.selectUsu(val)
            principal.lineEdit.setText(values[0])
            principal.lineEdit_2.setText(values[1])
            principal.lineEdit_3.setText(values[2])
            principal.lineEdit_11.setText(values[3])
            principal.lineEdit_5.setText(values[4])
            principal.comboBox_3.setCurrentIndex(
                principal.comboBox_3.findText(values[5]))
            principal.lineEdit_6.setText(str(values[6]))
            principal.lineEdit_10.setText(values[7])
Exemple #2
0
    def modificarusuario(self, cedula, nombre, correo):
        ''' modifica nombre y correo por el numero de cedula '''
        try:
            conecta = Conector()
            conexion = conecta.crearConexion()
            cur = conexion.cursor()

            argumentos = (nombre, correo, cedula)

            sql = """
            UPDATE Usuario SET nombre=(?),mail=(?) WHERE cedula=(?)
            """

            if (cur.execute(sql, argumentos)):
                mensaje = "El usuario se modifico correctamente"
            else:
                mensaje = " Error al modificar usuario"

        except sqlite3.OperationalError:
            mensaje = "Error operacional sobre la base de datos"

        finally:
            cur.close()
            conexion.commit()
            conexion.close()

        return mensaje
Exemple #3
0
    def eliminar(self):
        try:
            conecta = Conector()
            conexion = conecta.crearConexion()
            cur = conexion.cursor()

            sql = """ DELETE FROM productos WHERE nombre=? """

            cur.execute(sql, (self.lineEditNombre.text(),))
            valsSearch = cur.fetchall()[0]
            
            respuesta = "El producto {} fue eliminado de la base de datos correctamente".format(self.name)

        except IndexError:
            respuesta = "Producto inexistente"

        except sqlite3.OperationalError:
            respuesta = "Error operacional sobre la base de datos"

        finally:
            cur.close()
            conexion.commit()
            conexion.close()

        return respuesta
Exemple #4
0
    def eliminardeuda(self, cedula):
        ''' modifica nombre y correo por el numero de cedula '''
        try:
            conecta = Conector()
            conexion = conecta.crearConexion()
            cur = conexion.cursor()

            argumentos = (cedula)

            sql = """
            UPDATE Usuario SET deuda=0 WHERE cedula=(?)
            """

            if (cur.execute(sql, (argumentos, ))):
                mensaje = "El usuario se le elimino la deuda correctamente"
            else:
                mensaje = " No se le pudo eliminar la deuda del usuario"

        except sqlite3.OperationalError:
            mensaje = "Error operacional sobre la base de datos"

        finally:
            cur.close()
            conexion.commit()
            conexion.close()

        return mensaje
Exemple #5
0
    def modificarCantidadSuma(self, nombre, cantidad):
        try:
            conecta = Conector()
            conexion = conecta.crearConexion()

            consulta = conexion.cursor()        
            sql ="""
            SELECT cantidad FROM productos WHERE nombre='%s'
            """%(nombre)        
            if(consulta.execute(sql)):
                cantidad_actual= consulta.fetchone()[0]
                sql ="""UPDATE productos SET cantidad=%i WHERE nombre='%s'
                        """%(cantidad_actual+cantidad,nombre)
                if(consulta.execute(sql)): 
                    respuesta = "Inventario actualizado"
                else:
                    respuesta = "Error al actualizar"

        except sqlite3.OperationalError:
            respuesta = "Error operacional sobre la base de datos"

        finally:
            consulta.close()
            conexion.commit()
            conexion.close()

            QMessageBox.about(self, 'Informacion', respuesta)

            self.reset_ui()
Exemple #6
0
    def eliminarusuario(self, cedula):
        ''' Elimina usuario por cedula'''
        try:
            conecta = Conector()
            conexion = conecta.crearConexion()
            cur = conexion.cursor()

            argumentos = (cedula)

            sql = """
            DELETE FROM Usuario WHERE cedula=(?)
            """

            if (cur.execute(sql, (argumentos, ))):
                mensaje = "El usuario fue eliminado correctamente"
            else:
                mensaje = "el usuario no pudo ser eliminado"

        except sqlite3.OperationalError:
            mensaje = "Error operacional sobre la base de datos"

        finally:
            cur.close()
            conexion.commit()
            conexion.close()

        return mensaje
Exemple #7
0
    def existeusuario(self, cedula):
        ''' consulta si existe un usuario retorna 1 existe, retorna 0 no existe simple bro '''
        try:
            conecta = Conector()
            conexion = conecta.crearConexion()
            cur = conexion.cursor()

            argumentos = (cedula)

            sql = """
            SELECT numero FROM usuario WHERE cedula=(?)
            """
            cur.execute(sql, (argumentos, ))

            data = cur.fetchone()

            if (data == None):
                val = 0
            else:
                val = 1

        except sqlite3.OperationalError:
            respuesta = "Error operacional sobre la base de datos"

        finally:
            cur.close()
            conexion.commit()
            conexion.close()

        return val
Exemple #8
0
    def agregar(self):
        try:
            conecta = Conector()
            conexion = conecta.crearConexion()
            cur = conexion.cursor()

            sql = """
            UPDATE productos SET cantidad=? WHERE nombre=? """

            cur.execute(sql, (self.spinBoxCantidad.value(), self.lineEditNombre.text(),))

            respuesta = "Producto modificado exitosamente"

        except sqlite3.OperationalError:
            respuesta = "Error operacional sobre la base de datos"

        finally:
            cur.close()
            conexion.commit()
            conexion.close()

            self.reset_ui()
            self.buttonAccept.setEnabled(False)
            
        return respuesta
Exemple #9
0
    def verificar(self, cedula, password):
        respuesta = []
        respuesta.append(False)
        try:
            conecta = Conector()
            conexion = conecta.crearConexion()
            cur = conexion.cursor()
            sql = "SELECT cedula,password,cargo FROM Usuario"
            if (cur.execute(sql)):
                rows = cur.fetchall()
                for row in rows:
                    if ((row[0] == cedula) and (row[1] == password)):
                        respuesta[0] = True
                        respuesta.append(row[2])
                        self.cargo = row[2]
            else:
                respuesta[0] = False
        except sqlite3.OperationalError:
            respuesta[0] = False

        finally:
            cur.close()
            conexion.commit()
            conexion.close()

        return respuesta
Exemple #10
0
    def on_buttonBuscar_clicked(self):
        try:
            conecta = Conector()
            conexion = conecta.crearConexion()
            cur = conexion.cursor()

            sql = """
            SELECT * FROM productos WHERE nombre=?"""

            cur.execute(sql, (self.lineEditNombre.text(), ))

            valsSearch = cur.fetchall()[0]

            nombre = valsSearch[1]
            cantidad = valsSearch[2]
            cantidadMin = valsSearch[3]
            retornable = bool(valsSearch[4])

            respuesta = "Nombre: {}\nCantidad: {}\nCantidad Minima: {}\nRetornable: {}".format(
                nombre, cantidad, cantidadMin, retornable)

        except IndexError:
            respuesta = "Ese producto no se encuentra en la base de datos"
        except sqlite3.OperationalError:
            mensaje = "Error operacional sobre la base de datos"

        finally:
            cur.close()
            conexion.commit()
            conexion.close()

            QMessageBox.about(self, 'Informacion', respuesta)
Exemple #11
0
 def enviarAcocina():
     principalCliente.listProd_5.selectAll()
     rows = [
         index.row()
         for index in principalCliente.listProd_5.selectedIndexes()
     ]
     if rows != []:
         mesa = int(principalCliente.label_66.text())
         total = principalCliente.spinCant_3.value()
         fecha = date.today().strftime("%Y-%m-%d")
         val1 = str(Conexion.generarPedido(mesa, fecha, total))
         principalCliente.label_66.setText(val1)
         cod = ""
         for row in rows:
             colum = principalCliente.listProd_5.takeItem(0)
             line = colum.text().split("--")
             cod = Conexion.platosToPedidp(int(line[0]), line[1], int(val1))
             principalCliente.listProd_4.addItem(colum)
         val2 = str(principalCliente.spinCant_3.value())
         principalCliente.label_70.setText(val2)
         principalCliente.label_75.setText(val1)
         principalCliente.stackedWidget.setCurrentIndex(1)
         actualiza()
     else:
         QMessageBox.information(principalCliente, "Error", Mail.m11)
Exemple #12
0
    def validar(nick, passw):
        def cleanMain():
            main.TextUser.setText("")
            main.TextPass.setText("")

        valores = Conexion.SearchUser(nick)
        if nick != "" and passw != "":
            if len(valores) != 0:
                for val in valores:
                    if val[3] < 3:
                        if val[1] == passw:
                            Conexion.UpdateLoginSuccess(nick)
                            generarPrincipal(val[4], val[2])
                        else:
                            i = str(val[3] + 1)
                            if val[3] + 1 == 2:
                                QMessageBox.warning(main, "Cuidado", Mail.m1)
                                cleanMain()
                            QMessageBox.critical(main, "Error", Mail.m2)
                            Conexion.UpdateLoginFail(nick, i)
                            cleanMain()
                    else:
                        QMessageBox.information(main, "Cuidado", Mail.m3)
                        cleanMain()
            else:
                QMessageBox.information(main, "Error", Mail.m2)
                cleanMain()
        else:
            QMessageBox.information(main, "Error", Mail.m4)
            cleanMain()
Exemple #13
0
    def update_list(self):
        """ Revisa la base de datos para llenar el area de notificaciones """
        try:
            conecta = Conector()
            conexion = conecta.crearConexion()
            cur = conexion.cursor()

            sqlFaltantes = """SELECT nombre, cantidad, retornable FROM productos WHERE cantidad < cantidadminima"""
            cur.execute(sqlFaltantes)
            notifications = cur.fetchall()

            iconNotification = QIcon('../gui/images/important.svg')

            for content in notifications:
                texto = "Se debe comprar: {} | Cantidad actual: {}".format(content[0], content[1])
                if content[2] == 1:
                    texto = "Se debe devolver: {} | Cantidad actual: {}".format(content[0], content[1])

                NotificationListItem(iconNotification, texto, self.listNotifications)

        except sqlite3.OperationalError:
            respuesta = "Error operacional sobre la base de datos"

        finally:
            cur.close()
            conexion.commit()
            conexion.close()
Exemple #14
0
        def changeEst(menu, boton):
            menus = None
            opcion = ""
            if menu == "COCINA":
                menus = principal.listProd_3
                if boton == "GREEN":
                    opcion = "EN ENVIO"
                if boton == "RED":
                    opcion = "RECHAZADO"
            if menu == "MESERO":
                menus = principal.listProd_4
                if boton == "GREEN":
                    opcion = "ENTREGADO"
                if boton == "RED":
                    opcion = "EN COCINA"
            row = menus.currentRow()
            if row != -1:
                item = menus.currentItem().text()
                Conexion.updateOrden(item, opcion)

                QMessageBox.information(principal, "Exito", Mail.m18)
                filltablesEnvio()
                principal.listProd_5.clear()
                principal.listProd_6.clear()
            else:
                QMessageBox.information(principal, "Error", Mail.m17)
Exemple #15
0
    def modificar(self):
        try:
            conecta = Conector()
            conexion = conecta.crearConexion()
            cur = conexion.cursor()

            sql = """
            UPDATE productos SET 
                                departamento=?, 
                                nombre=?, 
                                cantidad=?, 
                                cantidadminima=?, 
                                retornable=? 
                            WHERE idproductos=? """

            cur.execute(sql, (
                self.comboBoxDepartamento.currentText(),
                self.lineEditNombre.text(),
                self.spinBoxCantidad.value(),
                self.spinBoxCantidadMin.value(),
                int(bool(self.checkBoxRetornable.checkState())),
                self.producto,
            ))

            respuesta = "Producto modificado exitosamente"

        except sqlite3.OperationalError:
            respuesta = "Error operacional sobre la base de datos"

        finally:
            cur.close()
            conexion.commit()
            conexion.close()

        return respuesta
Exemple #16
0
    def crear(self, nombre, cargo, ci, correo, passw):
        ''' Crear la entidad en la base de datos '''
        try:
            conecta = Conector()
            conexion = conecta.crearConexion()
            cur = conexion.cursor()

            sql = """
            INSERT INTO Usuario(nombre, cedula, mail, numero, cargo, password)
            VALUES (?, ?, ?, ?, ?, ?)"""
            if cur.execute(sql, (
                    nombre,
                    ci,
                    correo,
                    100,
                    cargo,
                    passw,
            )):
                respuesta = "El usuario {} fue creado correctamente".format(
                    nombre)
            else:
                respuesta = "No se pudo agregar correctamente"

        except sqlite3.OperationalError:
            respuesta = "Error operacional sobre la base de datos"

        finally:
            cur.close()
            conexion.commit()
            conexion.close()

        return respuesta
Exemple #17
0
 def filltablesEnvio():
     principal.listProd_3.clear()
     principal.listProd_4.clear()
     values = Conexion.listOrdenCocina()
     for row in values:
         principal.listProd_3.addItem(str(row[0]))
     values = Conexion.listOrdenEnvio()
     for row in values:
         principal.listProd_4.addItem(str(row[0]))
Exemple #18
0
 def delete2():
     row = principal.listProd_3.currentRow()
     if row != -1:
         item = principal.listProd_3.currentItem().text()
         Conexion.deletePlato(item)
         QMessageBox.information(
             principal, "Eliminado",
             "El usuario '" + str(item) + "' ha sido eliminado")
         filltable2()
         clean2()
     else:
         QMessageBox.information(principal, "Error", Mail.m15)
Exemple #19
0
 def filtrar():
     principalCliente.listProd_3.clear()
     index = principalCliente.comboBox_3.currentIndex()
     if index != 0:
         filtro = principalCliente.comboBox_3.currentText()
         values = Conexion.DataPlatosFiltro(filtro)
         for row in values:
             principalCliente.listProd_3.addItem("$" + str(row[1]) + "_" +
                                                 row[0])
     else:
         values = Conexion.DataPlatos()
         for row in values:
             principalCliente.listProd_3.addItem("$" + str(row[1]) + "_" +
                                                 row[0])
Exemple #20
0
 def delete():
     row = principal.listProd.currentRow()
     if row != -1:
         item = principal.listProd.currentItem().text()
         values = Conexion.selectNickAlone(item)
         val = values[0]
         Conexion.deleteUsu(str(val))
         QMessageBox.information(
             principal, "Eliminado",
             "El usuario '" + str(val) + "' ha sido eliminado")
         filltable()
         clean()
     else:
         QMessageBox.information(principal, "Error", Mail.m15)
Exemple #21
0
    def modificarCantidadResta(self, nombre, cantidad):
        try:
            conecta = Conector()
            conexion = conecta.crearConexion()
            consulta = conexion.cursor()    

            sqlSearchCantidad ="""
            SELECT cantidad, cantidadminima, retornable FROM productos WHERE nombre=?"""

            if consulta.execute(sqlSearchCantidad, (nombre,)):
                cantidad_actual, cantidad_minima, retornable = consulta.fetchone()
                fecha_actual = datetime.now().strftime("%D")
                hora_actual = datetime.now().strftime("%H:%M:%S")

                sqlUpdateProductos = """UPDATE productos SET cantidad=? WHERE nombre=?"""

                sqlInsertPrestamo = """INSERT INTO ReportePrestamo(persona_a_quien_se_le_presto,fecha_prestamo,hora_prestamo,motivo,fecha_devolucion,hora_devolucion,estado_prestamo,usuario_id)
                VALUES(?, ?, ?, ?, ?, ?, ?, ?)"""

                cantidad_resultante = cantidad_actual-cantidad
                if cantidad_resultante < 0:
                    respuesta = "No se pudo generar el prestamo, existe {} de {}".format(cantidad_actual, nombre)
                elif consulta.execute(sqlUpdateProductos, (cantidad_resultante,nombre,)):
                    if consulta.execute(sqlInsertPrestamo,  ("Ninguno", fecha_actual,hora_actual,self.lineEditMotivo.text(),"","",1,0,)):
                        respuesta = "Inventario actualizado y reporte generado"
                
                        if cantidad_resultante < cantidad_minima:
                            texto = "Se debe comprar: {} | Cantidad actual: {}".format(nombre, cantidad_resultante)

                            if retornable == 1:
                                texto = "Se debe devolver: {} | Cantidad actual: {}".format(nombre, cantidad_resultante)

                            iconNotification = QIcon('../gui/images/important.svg')
                            NotificationListItem(iconNotification, texto, self.listNotifications)
                    else:
                        respuesta = "Error al actualizar"
                else:
                    respuesta = "Error al actualizar"

        except sqlite3.OperationalError:
            respuesta = "Error operacional sobre la base de datos"

        finally:
            consulta.close()
            conexion.commit()
            conexion.close()

            QMessageBox.about(self, 'Informacion', respuesta)

            self.reset_ui()
Exemple #22
0
 def clicSet():
     item = principalCliente.listProd_3.currentItem().text().split(sep="_")
     values = Conexion.DataPlatoSelect(str(item[1]))
     principalCliente.label_62.setText(values[0])
     principalCliente.label_63.setText(str(values[1]))
     principalCliente.label_64.setText(values[3])
     principalCliente.label.setText(values[2])
Exemple #23
0
 def clicSet2():
     item = principal.listProd_3.currentItem().text()
     values = Conexion.selectPlato(item)
     principal.lineEdit_25.setText(values[0])
     principal.lineEdit_19.setText(str(values[1]))
     combo = principal.comboBox_9.findText(str(values[3]))
     principal.comboBox_9.setCurrentIndex(combo)
     principal.textEdit.setText(values[2])
Exemple #24
0
    def on_buttonSearch_clicked(self):
        try:
            conecta = Conector()
            conexion = conecta.crearConexion()
            cur = conexion.cursor()
            
            sql = """
            SELECT * FROM productos WHERE nombre=?"""

            cur.execute(sql, (self.lineEditNombre.text(),))

            valsSearch = cur.fetchall()[0]
            self.comboBoxDepartamento.setCurrentIndex(self.comboBoxDepartamento.findText(valsSearch[1]))
            self.spinBoxCantidad.setMinimum(valsSearch[3])
            self.spinBoxCantidadMin.setValue(valsSearch[4])
            self.checkBoxRetornable.setChecked(bool(valsSearch[5]))
            self.lineEditNombre.setDisabled(True)
            self.comboBoxDepartamento.setDisabled(True)
            self.spinBoxCantidadMin.setDisabled(True)
            self.checkBoxRetornable.setDisabled(True)
            self.buttonAccept.setDisabled(False)
            self.buttonSearch.setDisabled(True)
            self.existente = 1
        
        except IndexError:
            if (self.lineEditNombre.text() != ""):
                self.comboBoxDepartamento.setCurrentIndex(0)
                self.spinBoxCantidad.setMinimum(1)
                self.spinBoxCantidad.setValue(1)
                self.spinBoxCantidadMin.setValue(0)
                self.checkBoxRetornable.setChecked(False)
                self.comboBoxDepartamento.setDisabled(False)
                self.spinBoxCantidadMin.setDisabled(False)
                self.checkBoxRetornable.setDisabled(False)
                self.buttonAccept.setDisabled(False)
                self.lineEditNombre.setDisabled(True)
                self.buttonSearch.setDisabled(True)
                self.existente = 0
            
        except sqlite3.OperationalError:
            respuesta = "Error operacional sobre la base de datos"

        finally:
            cur.close()
            conexion.commit()
            conexion.close()
Exemple #25
0
 def pagar():
     calc()
     cambio = int(principalCliente.label_22.text())
     if cambio >= 0:
         nom = principalCliente.lineEdit_2.text()
         tipo = principalCliente.comboBox_4.currentText()
         cc = principalCliente.lineEdit_6.text()
         tel = principalCliente.lineEdit_11.text()
         metodo = principalCliente.comboBox_4.currentText()
         cambio = int(principalCliente.label_22.text())
         pagado = int(principalCliente.spinCant_2.value())
         codped = int(principalCliente.label_76.text())
         Conexion.makeFactura(nom, tipo, cc, tel, metodo, cambio, pagado,
                              codped)
         QMessageBox.information(principalCliente, "Pago exitoso", Mail.m13)
         generarCliente()
     else:
         QMessageBox.information(principalCliente, "Error", Mail.m12)
Exemple #26
0
 def save2():
     nom = principal.lineEdit_25.text()
     prec = principal.lineEdit_19.text()
     tipo = principal.comboBox_9.currentText()
     desc = principal.textEdit.toPlainText()
     if nom != "" and prec != "" and tipo != "" and desc != "":
         if weEditNotAdd2 == True:
             item = principal.listProd_3.currentItem().text()
             Conexion.updatePlato(item, nom, prec, desc, tipo)
             clean2()
             switch2(False)
             filltable2()
         else:
             Conexion.addPlato(nom, prec, desc, tipo)
             clean2()
             switch2(False)
             filltable2()
     else:
         QMessageBox.information(principal, "Error", Mail.m14)
Exemple #27
0
class crearBase(object):
    conexion = Conector()
    conn = conexion.crearConexion()
    c = conn.cursor()

    def __init__(self):
        Usuario(self)
        productos(self)
        modificacion(self)
        prestamod(self)
        prestamosolo(self)
        productoEnPrestamo(self)
        desconectar(self)
Exemple #28
0
    def crear(self, nombre, cedula, correo, numero, cargo, contra, deuda):
        try:
            conecta = Conector()
            conexion = conecta.crearConexion()
            cur = conexion.cursor()

            argumentos = (nombre, cedula, correo, numero, cargo, contra)

            sql = """
            INSERT INTO Usuario(nombre, cedula, mail, numero, cargo, password)
            VALUES (?, ?, ?, ?, ?, ?)"""

            if (cur.execute(sql, argumentos)):
                mensaje = "El usuario se creo correctamente"
            else:
                mensaje = "El usuario no pudo ser creado"
        except sqlite3.OperationalError:
            mensaje = "Error operacional sobre la base de datos"
        finally:
            cur.close()
            conexion.commit()
            conexion.close()

        return mensaje
Exemple #29
0
    def crear(self, nombre, cantidad, cantidadmin, retornable, departamento):
        ''' Crear la entidad en la base de datos '''
        try:
            conecta = Conector()
            conexion = conecta.crearConexion()
            cur = conexion.cursor()

            sql = """
            INSERT INTO productos(nombre, cantidad, cantidadminima, retornable, departamento)
            VALUES (?, ?, ?, ?, ?)"""
            if cur.execute(sql, (nombre,cantidad,cantidadmin,retornable, departamento,)):
                respuesta = "El producto {} fue agregado correctamente".format(nombre)
            else:
                respuesta = "No se pudo agregar correctamente"

        except sqlite3.OperationalError:
            respuesta = "Error operacional sobre la base de datos"

        finally:
            cur.close()
            conexion.commit()
            conexion.close()

        return respuesta
Exemple #30
0
 def actualiza():
     cod = principalCliente.label_75.text()
     estado = Conexion.getEstado(cod)
     if estado == "EN COCINA":
         principalCliente.label_53.setText(Mail.m8)
         qpm = QPixmap("./img/cooking.gif")
         principalCliente.label_72.setPixmap(qpm)
     if estado == "EN ENVIO":
         principalCliente.label_53.setText(Mail.m9)
         qpm = QPixmap("./img/waitress.png")
         principalCliente.label_72.setPixmap(qpm)
     if estado == "ENTREGADO":
         principalCliente.label_53.setText(Mail.m10)
         qpm = QPixmap("./img/eating.png")
         principalCliente.label_72.setPixmap(qpm)
         principalCliente.pushButton_21.setEnabled(True)