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])
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
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
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
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()
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
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
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
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
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)
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)
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()
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()
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)
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
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
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]))
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)
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])
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)
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()
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])
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])
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()
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)
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)
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)
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
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
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)