示例#1
0
class Ui_ActualizarTrabajador(object):
    def setupUi(self, ActualizarTrabajador):
        ActualizarTrabajador.setObjectName("ActualizarTrabajador")
        ActualizarTrabajador.resize(293, 515)
        ActualizarTrabajador.setStyleSheet(
            "background-color: rgb(226, 230, 255);")
        self.centralwidget = QtWidgets.QWidget(ActualizarTrabajador)
        self.centralwidget.setObjectName("centralwidget")
        self.label_5 = QtWidgets.QLabel(self.centralwidget)
        self.label_5.setGeometry(QtCore.QRect(0, 0, 291, 51))
        self.label_5.setObjectName("label_5")
        self.label = QtWidgets.QLabel(self.centralwidget)
        self.label.setGeometry(QtCore.QRect(20, 69, 91, 21))
        self.label.setStyleSheet("border-color: rgb(0, 0, 0);\n"
                                 "gridline-color: rgb(0, 0, 0);")
        self.label.setObjectName("label")
        self.label_2 = QtWidgets.QLabel(self.centralwidget)
        self.label_2.setGeometry(QtCore.QRect(30, 110, 61, 16))
        self.label_2.setObjectName("label_2")
        self.label_6 = QtWidgets.QLabel(self.centralwidget)
        self.label_6.setGeometry(QtCore.QRect(10, 150, 101, 20))
        self.label_6.setObjectName("label_6")
        self.label_7 = QtWidgets.QLabel(self.centralwidget)
        self.label_7.setGeometry(QtCore.QRect(10, 190, 101, 20))
        self.label_7.setObjectName("label_7")
        self.label_8 = QtWidgets.QLabel(self.centralwidget)
        self.label_8.setGeometry(QtCore.QRect(10, 230, 101, 20))
        self.label_8.setObjectName("label_8")
        self.label_9 = QtWidgets.QLabel(self.centralwidget)
        self.label_9.setGeometry(QtCore.QRect(10, 270, 101, 20))
        self.label_9.setObjectName("label_9")
        self.label_10 = QtWidgets.QLabel(self.centralwidget)
        self.label_10.setGeometry(QtCore.QRect(10, 350, 101, 20))
        self.label_10.setObjectName("label_10")
        self.label_11 = QtWidgets.QLabel(self.centralwidget)
        self.label_11.setGeometry(QtCore.QRect(10, 390, 101, 20))
        self.label_11.setObjectName("label_11")
        self.claveT = QtWidgets.QLineEdit(self.centralwidget)
        self.claveT.setGeometry(QtCore.QRect(120, 60, 161, 31))
        self.claveT.setStyleSheet("background-color: rgb(255, 255, 255);")
        self.claveT.setObjectName("claveT")
        self.Nombre = QtWidgets.QLineEdit(self.centralwidget)
        self.Nombre.setGeometry(QtCore.QRect(120, 100, 161, 31))
        self.Nombre.setStyleSheet("background-color: rgb(255, 255, 255);")
        self.Nombre.setObjectName("Nombre")
        self.ApellidoP = QtWidgets.QLineEdit(self.centralwidget)
        self.ApellidoP.setGeometry(QtCore.QRect(120, 140, 161, 31))
        self.ApellidoP.setStyleSheet("background-color: rgb(255, 255, 255);")
        self.ApellidoP.setObjectName("ApellidoP")
        self.ApellidoM = QtWidgets.QLineEdit(self.centralwidget)
        self.ApellidoM.setGeometry(QtCore.QRect(120, 180, 161, 31))
        self.ApellidoM.setStyleSheet("background-color: rgb(255, 255, 255);")
        self.ApellidoM.setObjectName("ApellidoM")
        self.Fecha = QtWidgets.QLineEdit(self.centralwidget)
        self.Fecha.setGeometry(QtCore.QRect(120, 220, 161, 31))
        self.Fecha.setStyleSheet("background-color: rgb(255, 255, 255);")
        self.Fecha.setText("")
        self.Fecha.setObjectName("Fecha")
        self.Telefono = QtWidgets.QLineEdit(self.centralwidget)
        self.Telefono.setGeometry(QtCore.QRect(120, 260, 161, 31))
        self.Telefono.setStyleSheet("background-color: rgb(255, 255, 255);")
        self.Telefono.setObjectName("Telefono")
        self.Usuario = QtWidgets.QLineEdit(self.centralwidget)
        self.Usuario.setGeometry(QtCore.QRect(120, 300, 161, 31))
        self.Usuario.setStyleSheet("background-color: rgb(255, 255, 255);")
        self.Usuario.setObjectName("Usuario")
        self.label_12 = QtWidgets.QLabel(self.centralwidget)
        self.label_12.setGeometry(QtCore.QRect(10, 310, 101, 20))
        self.label_12.setObjectName("label_12")
        self.Contra = QtWidgets.QLineEdit(self.centralwidget)
        self.Contra.setGeometry(QtCore.QRect(120, 340, 161, 31))
        self.Contra.setStyleSheet("background-color: rgb(255, 255, 255);")
        self.Contra.setObjectName("Contra")
        self.Actualizar = QtWidgets.QPushButton(self.centralwidget)
        self.Actualizar.setGeometry(QtCore.QRect(200, 430, 75, 23))
        self.Actualizar.setStyleSheet("background-color: rgb(255, 255, 255);")
        self.Actualizar.setObjectName("Actualizar")
        self.Verificar = QtWidgets.QPushButton(self.centralwidget)
        self.Verificar.setGeometry(QtCore.QRect(110, 431, 75, 23))
        self.Verificar.setStyleSheet("background-color: rgb(255, 255, 255);")
        self.Verificar.setObjectName("Verificar")
        self.Limpiar = QtWidgets.QPushButton(self.centralwidget)
        self.Limpiar.setGeometry(QtCore.QRect(20, 431, 75, 23))
        self.Limpiar.setStyleSheet("background-color: rgb(255, 255, 255);")
        self.Limpiar.setObjectName("Limpiar")
        self.CPuesto = QtWidgets.QLineEdit(self.centralwidget)
        self.CPuesto.setGeometry(QtCore.QRect(120, 380, 161, 31))
        self.CPuesto.setStyleSheet("background-color: rgb(255, 255, 255);")
        self.CPuesto.setObjectName("CPuesto")
        ActualizarTrabajador.setCentralWidget(self.centralwidget)
        self.menubar = QtWidgets.QMenuBar(ActualizarTrabajador)
        self.menubar.setGeometry(QtCore.QRect(0, 0, 293, 21))
        self.menubar.setObjectName("menubar")
        ActualizarTrabajador.setMenuBar(self.menubar)
        self.statusbar = QtWidgets.QStatusBar(ActualizarTrabajador)
        self.statusbar.setObjectName("statusbar")
        ActualizarTrabajador.setStatusBar(self.statusbar)

        self.retranslateUi(ActualizarTrabajador)
        #Boton Limpiar para limpiar todos los campos.
        self.Limpiar.clicked.connect(self.claveT.clear)
        self.Limpiar.clicked.connect(self.Nombre.clear)
        self.Limpiar.clicked.connect(self.ApellidoP.clear)
        self.Limpiar.clicked.connect(self.ApellidoM.clear)
        self.Limpiar.clicked.connect(self.Fecha.clear)
        self.Limpiar.clicked.connect(self.Telefono.clear)
        self.Limpiar.clicked.connect(self.Usuario.clear)
        self.Limpiar.clicked.connect(self.Contra.clear)
        self.Limpiar.clicked.connect(self.CPuesto.clear)
        QtCore.QMetaObject.connectSlotsByName(ActualizarTrabajador)
        #Botones programados
        #Boton que permite actualizar la información a la base de datos.
        self.Actualizar.clicked.connect(self.UpdateData)
        #Boton que permite verificar que la información cargada en la aplicación sea válida.
        self.Verificar.clicked.connect(self.VerificarDatos)

    #Función que permite verificar que la información dada por el usuario sea válida para cargar.
    def VerificarDatos(self):
        #Try para excepciones.
        try:
            #Conexión a la base de datos
            with sqlite3.connect("PIA_1845788.db") as conn:
                #Definir nuestro cursor.
                micursor = conn.cursor()
                #Leer clave de trabajador que se introduce en nuestra ventana de Actualizar Trabajador.
                Clave = self.claveT.text()
                #Convertir la clave a entero.Ya que en la base se tiene como Entero.
                clave = int(Clave)
                #Ejecutar una línea que nos permite obtener todas las claves guardadas en Trabajador.
                micursor.execute("SELECT Clave_Trabajador FROM Trabajador")
                #Guardar los resultados en la variable claveT
                claveT = micursor.fetchall()
                #Declarar una lista donde se guardaran las claves de trabajador.
                listaClaves = []
                #Ciclo para el unpack del resultado de claveT.
                for dato in claveT:
                    for n in dato:
                        ClaveT = int(n)
                        #Agregar cada clave a la lista de listaClaves.
                        listaClaves.append(ClaveT)
                #Leer clave de puesto que se introduce en nuestra ventana de Agregar Trabajador.
                ClaveP = self.CPuesto.text()
                #Convertir la clave a entero. Ya que en la base se tiene como Entero.
                clavePuesto = int(ClaveP)
                #Ejecutar una línea que nos permite obtener todas las claves guardadas en Puesto.
                micursor.execute("SELECT Clave FROM Puesto")
                #Guardar los resultados en la variable claveP.
                claveP = micursor.fetchall()
                #Declarar una lista donde se guardaran las claves de puesto.
                listaClavesP = []
                #Ciclo para el unpack del resultado de claveP.
                for dato in claveP:
                    for n in dato:
                        ClaveP = int(n)
                        #Agregar cada clave a la lista de listaClavesP.
                        listaClavesP.append(ClaveP)
                #ESTO ES UNA DOBLE VERIFICACIÓN YA QUE TAMBIÉN SE HACE EN LA FUNCIÓN DE AGREGAR.
                #Si la clave de trabajador que introdujo el usuario esta dentro de listaClaves y la clave de puesto que introdujo es parte de listaClavesP:
                if clave in listaClaves and clavePuesto in listaClavesP:
                    #Se muestra una ventana donde se avisa que la clave es existente. (Hablando de ambas claves
                    self.ventana = QtWidgets.QMainWindow()
                    self.ui = Ui_ClaveExistente()
                    self.ui.setupUi(self.ventana)
                    self.ventana.show()
                #Si la clave del trabajador que introdujo el usuario NO se encuentra dentro de listaClaves.
                elif clave not in listaClaves:
                    #Se muestra una ventana donde se avisa que la clave de trabajador no existe, por lo tanto no se puede actualizar.
                    self.ventana = QtWidgets.QMainWindow()
                    self.ui = Ui_ClaveInexistenteUP()
                    self.ui.setupUi(self.ventana)
                    self.ventana.show()
                #Si la clave del puesto que introdujo el usuario NO se encuentra dentro de listaClavesP:
                elif clavePuesto not in listaClavesP:
                    #Se muestra una ventana donde se avisa que la clave de puesto no existe, por lo tanto no se puede actualizar.
                    self.ventana = QtWidgets.QMainWindow()
                    self.ui = Ui_ClaveInexistentePuesto()
                    self.ui.setupUi(self.ventana)
                    self.ventana.show()
        #Excepcion por si ocurre un error con sqlite3.
        except Error as e:
            print(e)
        #Excepción por si no se llenan los campos necesarios
        except:
            #Ventana que muestra el mensaje donde se piden llenar todos los campos.
            self.ventana = QtWidgets.QMainWindow()
            self.ui = Ui_Alerta()
            self.ui.setupUi(self.ventana)
            self.ventana.show()

    def UpdateData(self):
        #Try para excepciones.
        try:
            #Conexión a la base de datos
            with sqlite3.connect("PIA_1845788.db") as conn:
                #Definir nuestro cursor.
                micursor = conn.cursor()
                #Leer clave de trabajador que se introduce en nuestra ventana de Actualizar Trabajador.
                Clave = self.claveT.text()
                #Convertir la clave a entero.Ya que en la base se tiene como Entero.
                clave = int(Clave)
                #Ejecutar una línea que nos permite obtener todas las claves guardadas en Trabajador.
                micursor.execute("SELECT Clave_Trabajador FROM Trabajador")
                #Guardar los resultados en la variable claveT
                claveT = micursor.fetchall()
                #Declarar una lista donde se guardaran las claves de trabajador.
                listaClaves = []
                #Ciclo para el unpack del resultado de claveT.
                for dato in claveT:
                    for n in dato:
                        ClaveT = int(n)
                        #Agregar cada clave a la lista de listaClaves.
                        listaClaves.append(ClaveT)
                #Leer clave de puesto que se introduce en nuestra ventana de Agregar Trabajador.
                ClaveP = self.CPuesto.text()
                #Convertir la clave a entero. Ya que en la base se tiene como Entero.
                clavePuesto = int(ClaveP)
                #Ejecutar una línea que nos permite obtener todas las claves guardadas en Puesto.
                micursor.execute("SELECT Clave FROM Puesto")
                #Guardar los resultados en la variable claveP.
                claveP = micursor.fetchall()
                #Declarar una lista donde se guardaran las claves de puesto.
                listaClavesP = []
                #Ciclo para el unpack del resultado de claveP.
                for dato in claveP:
                    for n in dato:
                        ClaveP = int(n)
                        #Agregar cada clave a la lista de listaClavesP.
                        listaClavesP.append(ClaveP)
                #ESTO ES UNA DOBLE VERIFICACIÓN YA QUE TAMBIÉN SE HACE EN LA FUNCIÓN DE AGREGAR.
                #Si la clave de trabajador que introdujo el usuario esta dentro de listaClaves y la clave de puesto que introdujo es parte de listaClavesP:
                if clave in listaClaves and clavePuesto in listaClavesP:
                    #Se lee el nombre que se introduce en la aplicación y se agrega a la variable nombre.
                    nombre = self.Nombre.text()
                    #Se lee el apellido paterno que se introduce en la aplicación y se agrega a la variable apellidoP.
                    apellidoP = self.ApellidoP.text()
                    #Se lee el apellido materno que se introduce en la aplicación y se agrega a la variable apellidoM.
                    apellidoM = self.ApellidoM.text()
                    #Se lee la fecha de ingreso que se introduce en la aplicación y se agrega a la variable fechaIngreso.
                    fechaIngreso = self.Fecha.text()
                    #Se lee el telefono que se introduce en la aplicación y se agrega a la variable Telefono.
                    Telefono = self.Telefono.text()
                    #Se cambia el valor a entero y se guarda en la variable telefono. Ya que en la base se tiene como Entero.
                    telefono = int(Telefono)
                    #Se lee el valor de usuario que se introduce en la aplicación y se agrega a la variable usuario.
                    usuario = self.Usuario.text()
                    #Se lee el valor de contraseña que se introduce en la aplicación y se agrega a la variable contraseña.
                    contraseña = self.Contra.text()
                    #Se lee el valor de clavePuesto que se introduce en la aplicación y se agrega a la variable cpuesto.
                    cpuesto = self.CPuesto.text()
                    #VARIABLE DONDE SE GUARDA LA LINEA PARA ACTUALIZAR LA INFORMACIÓN DE TRABAJADOR.
                    query = """UPDATE Trabajador SET Nombre = ?, ApellidoPaterno = ?, ApellidoMaterno = ?, Fecha_Ingreso = ?, Telefono = ?, Usuario = ?, Contraseña = ?,Puesto = ? WHERE Clave_Trabajador= ?"""
                    #VARIABLE DONDE SE GUARDAN LAS VARIABLES QUE CONTIENEN LA INFORMACION QUE SE GUARDARA.
                    inputData = (nombre, apellidoP, apellidoM, fechaIngreso,
                                 telefono, usuario, contraseña, cpuesto, clave)
                    #Se ejecuta las variables en conjunto, permitiendo actualizar la información.
                    micursor.execute(query, inputData)
                    #Ventana donde aparece que los datos fueron actualizados correctamente.
                    self.ventana = QtWidgets.QMainWindow()
                    self.ui = Ui_DatosActualizados()
                    self.ui.setupUi(self.ventana)
                    self.ventana.show()
                #Si la clave del trabajador que introdujo el usuario NO se encuentra dentro de listaClaves.
                elif clave not in listaClaves:
                    #Se muestra una ventana donde se avisa que la clave de trabajador no existe, por lo tanto no se puede actualizar.
                    self.ventana = QtWidgets.QMainWindow()
                    self.ui = Ui_ClaveInexistenteUP()
                    self.ui.setupUi(self.ventana)
                    self.ventana.show()
                #Si la clave del puesto que introdujo el usuario NO se encuentra dentro de listaClavesP:
                elif clavePuesto not in listaClavesP:
                    #Se muestra una ventana donde se avisa que la clave de puesto no existe, por lo tanto no se puede actualizar.
                    self.ventana = QtWidgets.QMainWindow()
                    self.ui = Ui_ClaveInexistentePuesto()
                    self.ui.setupUi(self.ventana)
                    self.ventana.show()
        #Excepcion por si ocurre un error con sqlite3.
        except Error as e:
            print(e)
        #Excepción por si no se llenan los campos necesarios
        except:
            #Ventana que muestra el mensaje donde se piden llenar todos los campos.
            self.ventana = QtWidgets.QMainWindow()
            self.ui = Ui_Alerta()
            self.ui.setupUi(self.ventana)
            self.ventana.show()

    #Asignación de texto a los botones y labels.
    def retranslateUi(self, ActualizarTrabajador):
        _translate = QtCore.QCoreApplication.translate
        ActualizarTrabajador.setWindowTitle(
            _translate("ActualizarTrabajador", "MainWindow"))
        self.label_5.setText(
            _translate(
                "ActualizarTrabajador",
                "<html><head/><body><p align=\"center\"><span style=\" font-size:14pt; font-weight:600;\">ACTUALIZAR TRABAJADOR</span></p></body></html>"
            ))
        self.label.setText(
            _translate(
                "ActualizarTrabajador",
                "<html><head/><body><p align=\"center\">CLAVE</p></body></html>"
            ))
        self.label_2.setText(
            _translate(
                "ActualizarTrabajador",
                "<html><head/><body><p align=\"center\">NOMBRE</p></body></html>"
            ))
        self.label_6.setText(
            _translate(
                "ActualizarTrabajador",
                "<html><head/><body><p align=\"center\">APELLIDO PATERNO</p></body></html>"
            ))
        self.label_7.setText(
            _translate(
                "ActualizarTrabajador",
                "<html><head/><body><p align=\"center\">APELLIDO MATERNO</p></body></html>"
            ))
        self.label_8.setText(
            _translate(
                "ActualizarTrabajador",
                "<html><head/><body><p align=\"center\">FECHA INGRESO</p></body></html>"
            ))
        self.label_9.setText(
            _translate(
                "ActualizarTrabajador",
                "<html><head/><body><p align=\"center\">TELÉFONO</p></body></html>"
            ))
        self.label_10.setText(
            _translate(
                "ActualizarTrabajador",
                "<html><head/><body><p align=\"center\">CONTRASEÑA</p></body></html>"
            ))
        self.label_11.setText(
            _translate(
                "ActualizarTrabajador",
                "<html><head/><body><p align=\"center\">CLAVE PUESTO</p></body></html>"
            ))
        self.label_12.setText(
            _translate(
                "ActualizarTrabajador",
                "<html><head/><body><p align=\"center\">USUARIO</p></body></html>"
            ))
        self.Actualizar.setText(
            _translate("ActualizarTrabajador", "ACTUALIZAR"))
        self.Verificar.setText(_translate("ActualizarTrabajador", "VERIFICAR"))
        self.Limpiar.setText(_translate("ActualizarTrabajador", "LIMPIAR"))
class Ui_MenuEP(object):
    def setupUi(self, MenuEP):
        MenuEP.setObjectName("MenuEP")
        MenuEP.resize(304, 431)
        MenuEP.setStyleSheet("background-color: rgb(226, 230, 255);")
        self.centralwidget = QtWidgets.QWidget(MenuEP)
        self.centralwidget.setObjectName("centralwidget")
        self.label_5 = QtWidgets.QLabel(self.centralwidget)
        self.label_5.setGeometry(QtCore.QRect(0, 0, 301, 51))
        self.label_5.setObjectName("label_5")
        self.label = QtWidgets.QLabel(self.centralwidget)
        self.label.setGeometry(QtCore.QRect(20, 69, 91, 21))
        self.label.setStyleSheet("border-color: rgb(0, 0, 0);\n"
"gridline-color: rgb(0, 0, 0);")
        self.label.setObjectName("label")
        self.label_2 = QtWidgets.QLabel(self.centralwidget)
        self.label_2.setGeometry(QtCore.QRect(30, 110, 61, 16))
        self.label_2.setObjectName("label_2")
        self.label_3 = QtWidgets.QLabel(self.centralwidget)
        self.label_3.setGeometry(QtCore.QRect(20, 160, 81, 16))
        self.label_3.setObjectName("label_3")
        self.label_4 = QtWidgets.QLabel(self.centralwidget)
        self.label_4.setGeometry(QtCore.QRect(20, 220, 81, 16))
        self.label_4.setObjectName("label_4")
        self.label_6 = QtWidgets.QLabel(self.centralwidget)
        self.label_6.setGeometry(QtCore.QRect(20, 270, 81, 16))
        self.label_6.setObjectName("label_6")
        self.Eliminar = QtWidgets.QPushButton(self.centralwidget)
        self.Eliminar.setGeometry(QtCore.QRect(215, 360, 75, 23))
        self.Eliminar.setStyleSheet("background-color: rgb(255, 255, 255);")
        self.Eliminar.setObjectName("Eliminar")
        self.label_7 = QtWidgets.QLabel(self.centralwidget)
        self.label_7.setGeometry(QtCore.QRect(20, 320, 81, 16))
        self.label_7.setObjectName("label_7")
        self.Nombre = QtWidgets.QTextBrowser(self.centralwidget)
        self.Nombre.setGeometry(QtCore.QRect(120, 100, 161, 31))
        self.Nombre.setStyleSheet("background-color: rgb(223, 223, 223);")
        self.Nombre.setObjectName("Nombre")
        self.Direccion = QtWidgets.QTextBrowser(self.centralwidget)
        self.Direccion.setGeometry(QtCore.QRect(120, 140, 161, 61))
        self.Direccion.setStyleSheet("background-color: rgb(223, 223, 223);")
        self.Direccion.setObjectName("Direccion")
        self.Telefono = QtWidgets.QTextBrowser(self.centralwidget)
        self.Telefono.setGeometry(QtCore.QRect(120, 210, 161, 31))
        self.Telefono.setStyleSheet("background-color: rgb(223, 223, 223);")
        self.Telefono.setObjectName("Telefono")
        self.Correo = QtWidgets.QTextBrowser(self.centralwidget)
        self.Correo.setGeometry(QtCore.QRect(120, 260, 161, 31))
        self.Correo.setStyleSheet("background-color: rgb(223, 223, 223);")
        self.Correo.setObjectName("Correo")
        self.Representante = QtWidgets.QTextBrowser(self.centralwidget)
        self.Representante.setGeometry(QtCore.QRect(120, 310, 161, 31))
        self.Representante.setStyleSheet("background-color: rgb(223, 223, 223);")
        self.Representante.setObjectName("Representante")
        self.claveP = QtWidgets.QLineEdit(self.centralwidget)
        self.claveP.setGeometry(QtCore.QRect(120, 60, 161, 31))
        self.claveP.setStyleSheet("background-color: rgb(255, 255, 255);")
        self.claveP.setObjectName("claveP")
        self.Limpiar = QtWidgets.QPushButton(self.centralwidget)
        self.Limpiar.setGeometry(QtCore.QRect(15, 360, 75, 23))
        self.Limpiar.setStyleSheet("background-color: rgb(255, 255, 255);")
        self.Limpiar.setObjectName("Limpiar")
        self.Cargar = QtWidgets.QPushButton(self.centralwidget)
        self.Cargar.setGeometry(QtCore.QRect(115, 360, 75, 23))
        self.Cargar.setStyleSheet("background-color: rgb(255, 255, 255);")
        self.Cargar.setObjectName("Cargar")
        MenuEP.setCentralWidget(self.centralwidget)
        self.menubar = QtWidgets.QMenuBar(MenuEP)
        self.menubar.setGeometry(QtCore.QRect(0, 0, 304, 21))
        self.menubar.setObjectName("menubar")
        MenuEP.setMenuBar(self.menubar)
        self.statusbar = QtWidgets.QStatusBar(MenuEP)
        self.statusbar.setObjectName("statusbar")
        MenuEP.setStatusBar(self.statusbar)

        self.retranslateUi(MenuEP)
        #Boton Limpiar para limpiar todos los campos.
        self.Limpiar.clicked.connect(self.Representante.clear)
        self.Limpiar.clicked.connect(self.Correo.clear)
        self.Limpiar.clicked.connect(self.Telefono.clear)
        self.Limpiar.clicked.connect(self.Direccion.clear)
        self.Limpiar.clicked.connect(self.Nombre.clear)
        self.Limpiar.clicked.connect(self.claveP.clear)
        QtCore.QMetaObject.connectSlotsByName(MenuEP)
        #Programación de botones
        #Boton que permite cargar la información en la aplicación.
        self.Cargar.clicked.connect(self.ShowData)
        #Boton que permite eliminar la información obtenida de la base de datos.
        self.Eliminar.clicked.connect(self.DeleteData)

    #Función que permite eliminar la información de la base de datos según la clave dada.
    def DeleteData(self):
        #Try para excepciones.
        try:
            #Conexión a la base de datos
            with sqlite3.connect("PIA_1845788.db") as conn:
                #Leer clave de producto que se introduce en nuestra ventana de Eliminar Proveedor.
                Clave = self.claveP.text()
                #Convertir la clave a entero.
                clave = int(Clave)
                #Definir nuestro cursor.
                mi_cursor = conn.cursor()
                #Ejecutar una línea que nos permite obtener todas las claves guardadas en Proveedor.
                c= mi_cursor.execute("SELECT Clave_Proveedor FROM Proveedor")
                #Guardar los resultados en la variable claves.
                claves = mi_cursor.fetchall()
                #Declarar una lista donde se guardaran las claves de proveedores.
                ClaveP = []
                #Ciclo para el unpack del resultado de claves.
                for dato in claves:
                    for n in dato:
                        CLAVEP = int(n)
                        #Agregar cada clave en la lista ClaveP.
                        ClaveP.append(CLAVEP)
                #ESTO ES UNA DOBLE VERIFICACIÓN YA QUE TAMBIÉN SE HACE EN LA FUNCIÓN DE VERIFICAR.
                #Si la clave que introdujo el usuario esta dentro de la lista de claves.
                if clave in ClaveP:
                    #Guardar la clave en el diccionario valor, para posteriormente utilizarlo.
                    valor = {"clave":clave}
                    #Ejecutar la linea donde se elimina toda la información guardada con la clave que el usuario otorgo.
                    mi_cursor.execute("DELETE FROM Proveedor WHERE Clave_Proveedor = (:clave)",valor)
                    #Ventana que muestra un aviso donde los datos fueron eliminados exitosamente (codigo .py)
                    self.ventana = QtWidgets.QMainWindow()
                    self.ui = Ui_DatosEliminados()
                    self.ui.setupUi(self.ventana)
                    self.ventana.show()
                #Si la clave no se encuentra dentro de la lista:
                else:
                    #Se muestra una ventana que muestra un aviso que la clave que se quiere eliminar no existe (codigo .py)
                    self.ventana = QtWidgets.QMainWindow()
                    self.ui = Ui_ClaveInexistenteEP()
                    self.ui.setupUi(self.ventana)
                    self.ventana.show()
        #Excepcion por si ocurre un error con sqlite3.
        except Error as e:
            print(e)
        #Excepción por si no se llenan los campos necesarios.
        except:
            #Ventana que muestra el mensaje donde se piden llenar todos los campos.
            self.ventana = QtWidgets.QMainWindow()
            self.ui = Ui_Alerta()
            self.ui.setupUi(self.ventana)
            self.ventana.show()
    
     #Función que se utiliza para cargar y mostrar los datos en la aplicación.
    def ShowData(self):
        #Try para excepciones. 
        try:
            #Conexión a la base de datos
            with sqlite3.connect("PIA_1845788.db") as conn:
                #Leer clave de producto que se introduce en nuestra ventana de Eliminar Proveedor.
                Clave = self.claveP.text()
                #Convertir la clave a entero.
                clave = int(Clave)
                #Definir nuestro cursor.
                mi_cursor = conn.cursor()
                #Guardar la clave en el diccionario valor, para posteriormente utilizarlo.
                valor = {"clave":clave}
                #Ejecutar una línea que nos permite obtener todas las claves guardadas en proveedor.
                c= mi_cursor.execute("SELECT Clave_Proveedor FROM Proveedor")
                #Guardar los resultados en la variable claves.
                claves = mi_cursor.fetchall()
                #Declarar una lista donde se guardaran las claves de proveedores.
                ClaveP = []
                #Ciclo para el unpack del resultado de claves.
                for dato in claves:
                    for n in dato:
                        CLAVEP = int(n)
                        #Agregar cada clave a la lista de Claves.
                        ClaveP.append(CLAVEP)
                
                #ESTO ES UNA DOBLE VERIFICACIÓN YA QUE TAMBIÉN SE HACE EN LA FUNCIÓN DE ELIMINAR.
                #Si la clave que introdujo el usuario esta dentro de la lista de claves.
                if clave in ClaveP:
                    #Buscar nombre del proveedor en la base de datos según la clave dada por el usuario y mostrarlo.
                    c = mi_cursor.execute("SELECT Nombre FROM Proveedor WHERE Clave_Proveedor = (:clave)",valor)
                    #Guardar el resultado en la variable nombre.
                    nombre = mi_cursor.fetchall()
                    #Ciclo para el unpack del resultado de nombre.
                    for dato in nombre:
                        for n in dato:
                            Nombre = str(n)
                    #Asignar al campo Nombre el valor de Nombre que se obtuvo anteriormente.
                    self.Nombre.setText(Nombre)
                    
                    #Buscar direccion del proveedor en la base de datos según la clave dada por el usuario y mostrarlo.
                    c = mi_cursor.execute("SELECT Dirección FROM Proveedor WHERE Clave_Proveedor = (:clave)",valor)
                    #Guardar el resultado en la variable dirección.
                    dirección = mi_cursor.fetchall()
                    #Ciclo para el unpack del resultado de dirección.
                    for dato in dirección:
                        for n in dato:
                            dire = str(n)
                    #Asignar al campo Direccion el valor de dire que se obtuvo anteriormente.
                    self.Direccion.setText(dire)
                    
                    #Buscar telefono del proveedor en la base de datos según la clave dada por el usuario y mostrarlo.
                    c = mi_cursor.execute("SELECT Teléfono FROM Proveedor WHERE Clave_Proveedor = (:clave)",valor)
                    #Guardar el resultado en la variable telefono.
                    telefono = mi_cursor.fetchall()
                    #Ciclo para el unpack del resultado de telefono.
                    for dato in telefono:
                        for n in dato:
                            tel = str(n)
                    #Asignar al campo Telefono el valor de tel que se obtuvo anteriormente. 
                    self.Telefono.setText(tel)
                    
                    #Buscar correo del proveedor en la base de datos según la clave dada por el usuario y mostrarlo.
                    c = mi_cursor.execute("SELECT Correo FROM Proveedor WHERE Clave_Proveedor = (:clave)",valor)
                    #Guardar el resultado en la variable correo.
                    correo = mi_cursor.fetchall()
                    #Ciclo para el unpack del resultado de correo.
                    for dato in correo:
                        for n in dato:
                            Correo = str(n)
                    #Asignar al campo Correo el valor de Correo que se obtuvo anteriormente. 
                    self.Correo.setText(Correo)
                    
                    #Buscar representante del proveedor en la base de datos según la clave dada por el usuario y mostrarlo.
                    c = mi_cursor.execute("SELECT Representante FROM Proveedor WHERE Clave_Proveedor = (:clave)",valor)
                    #Guardar el resultado en la variable representante.
                    representante= mi_cursor.fetchall()
                    #Ciclo para el unpack del resultado de representante.
                    for dato in representante:
                        for n in dato:
                            Representante = str(n)
                    #Asignar al campo Representante el valor de Representante que se obtuvo anteriormente.
                    self.Representante.setText(Representante)
                #Si la clave no se encuentra dentro de la lista:
                else:
                    #Se muestra una ventana que muestra un aviso que la clave que se quiere eliminar no existe (codigo .py)
                    self.ventana = QtWidgets.QMainWindow()
                    self.ui = Ui_ClaveInexistenteEP()
                    self.ui.setupUi(self.ventana)
                    self.ventana.show()
        #Excepcion por si ocurre un error con sqlite3.
        except Error as e:
            print(e)
        #Excepción por si no se llenan los campos necesarios.
        except:
            #Ventana que muestra el mensaje donde se piden llenar todos los campos.
            self.ventana = QtWidgets.QMainWindow()
            self.ui = Ui_Alerta()
            self.ui.setupUi(self.ventana)
            self.ventana.show()
    
    #Asignación de texto a los botones y labels.    
    def retranslateUi(self, MenuEP):
        _translate = QtCore.QCoreApplication.translate
        MenuEP.setWindowTitle(_translate("MenuEP", "MainWindow"))
        self.label_5.setText(_translate("MenuEP", "<html><head/><body><p align=\"center\"><span style=\" font-size:14pt; font-weight:600;\">ELIMINAR PROVEEDOR</span></p></body></html>"))
        self.label.setText(_translate("MenuEP", "<html><head/><body><p align=\"center\">CLAVE</p></body></html>"))
        self.label_2.setText(_translate("MenuEP", "<html><head/><body><p align=\"center\">NOMBRE</p></body></html>"))
        self.label_3.setText(_translate("MenuEP", "<html><head/><body><p align=\"center\">DIRECCIÓN</p></body></html>"))
        self.label_4.setText(_translate("MenuEP", "<html><head/><body><p align=\"center\">TELÉFONO</p></body></html>"))
        self.label_6.setText(_translate("MenuEP", "<html><head/><body><p align=\"center\">CORREO</p></body></html>"))
        self.Eliminar.setText(_translate("MenuEP", "ELIMINAR"))
        self.label_7.setText(_translate("MenuEP", "<html><head/><body><p align=\"center\">REPRESENTANTE</p></body></html>"))
        self.Limpiar.setText(_translate("MenuEP", "LIMPIAR"))
        self.Cargar.setText(_translate("MenuEP", "CARGAR"))
示例#3
0
class Ui_ActualizarCliente(object):
    def setupUi(self, ActualizarCliente):
        ActualizarCliente.setObjectName("ActualizarCliente")
        ActualizarCliente.resize(314, 398)
        ActualizarCliente.setStyleSheet(
            "background-color: rgb(226, 230, 255);")
        self.centralwidget = QtWidgets.QWidget(ActualizarCliente)
        self.centralwidget.setObjectName("centralwidget")
        self.label_5 = QtWidgets.QLabel(self.centralwidget)
        self.label_5.setGeometry(QtCore.QRect(0, 0, 311, 51))
        self.label_5.setObjectName("label_5")
        self.label = QtWidgets.QLabel(self.centralwidget)
        self.label.setGeometry(QtCore.QRect(30, 69, 91, 21))
        self.label.setStyleSheet("border-color: rgb(0, 0, 0);\n"
                                 "gridline-color: rgb(0, 0, 0);")
        self.label.setObjectName("label")
        self.label_2 = QtWidgets.QLabel(self.centralwidget)
        self.label_2.setGeometry(QtCore.QRect(40, 110, 61, 16))
        self.label_2.setObjectName("label_2")
        self.label_3 = QtWidgets.QLabel(self.centralwidget)
        self.label_3.setGeometry(QtCore.QRect(30, 280, 81, 16))
        self.label_3.setObjectName("label_3")
        self.label_4 = QtWidgets.QLabel(self.centralwidget)
        self.label_4.setGeometry(QtCore.QRect(30, 230, 81, 16))
        self.label_4.setObjectName("label_4")
        self.label_6 = QtWidgets.QLabel(self.centralwidget)
        self.label_6.setGeometry(QtCore.QRect(20, 150, 101, 20))
        self.label_6.setObjectName("label_6")
        self.label_7 = QtWidgets.QLabel(self.centralwidget)
        self.label_7.setGeometry(QtCore.QRect(20, 190, 101, 20))
        self.label_7.setObjectName("label_7")
        self.Verificar = QtWidgets.QPushButton(self.centralwidget)
        self.Verificar.setGeometry(QtCore.QRect(120, 330, 75, 23))
        self.Verificar.setStyleSheet("background-color: rgb(255, 255, 255);")
        self.Verificar.setObjectName("Verificar")
        self.Limpiar = QtWidgets.QPushButton(self.centralwidget)
        self.Limpiar.setGeometry(QtCore.QRect(20, 330, 75, 23))
        self.Limpiar.setStyleSheet("background-color: rgb(255, 255, 255);")
        self.Limpiar.setObjectName("Limpiar")
        self.Actualizar = QtWidgets.QPushButton(self.centralwidget)
        self.Actualizar.setGeometry(QtCore.QRect(220, 330, 75, 23))
        self.Actualizar.setStyleSheet("background-color: rgb(255, 255, 255);")
        self.Actualizar.setObjectName("Actualizar")
        self.claveC = QtWidgets.QLineEdit(self.centralwidget)
        self.claveC.setGeometry(QtCore.QRect(130, 60, 161, 31))
        self.claveC.setStyleSheet("background-color: rgb(255, 255, 255);")
        self.claveC.setObjectName("claveC")
        self.Nombre = QtWidgets.QLineEdit(self.centralwidget)
        self.Nombre.setGeometry(QtCore.QRect(130, 100, 161, 31))
        self.Nombre.setStyleSheet("background-color: rgb(255, 255, 255);")
        self.Nombre.setObjectName("Nombre")
        self.ApellidoP = QtWidgets.QLineEdit(self.centralwidget)
        self.ApellidoP.setGeometry(QtCore.QRect(130, 140, 161, 31))
        self.ApellidoP.setStyleSheet("background-color: rgb(255, 255, 255);")
        self.ApellidoP.setObjectName("ApellidoP")
        self.ApellidoM = QtWidgets.QLineEdit(self.centralwidget)
        self.ApellidoM.setGeometry(QtCore.QRect(130, 180, 161, 31))
        self.ApellidoM.setStyleSheet("background-color: rgb(255, 255, 255);")
        self.ApellidoM.setObjectName("ApellidoM")
        self.Telefono = QtWidgets.QLineEdit(self.centralwidget)
        self.Telefono.setGeometry(QtCore.QRect(130, 220, 161, 31))
        self.Telefono.setStyleSheet("background-color: rgb(255, 255, 255);")
        self.Telefono.setObjectName("Telefono")
        self.Direccion = QtWidgets.QLineEdit(self.centralwidget)
        self.Direccion.setGeometry(QtCore.QRect(130, 260, 161, 51))
        self.Direccion.setStyleSheet("background-color: rgb(255, 255, 255);")
        self.Direccion.setObjectName("Direccion")
        ActualizarCliente.setCentralWidget(self.centralwidget)
        self.menubar = QtWidgets.QMenuBar(ActualizarCliente)
        self.menubar.setGeometry(QtCore.QRect(0, 0, 314, 21))
        self.menubar.setObjectName("menubar")
        ActualizarCliente.setMenuBar(self.menubar)
        self.statusbar = QtWidgets.QStatusBar(ActualizarCliente)
        self.statusbar.setObjectName("statusbar")
        ActualizarCliente.setStatusBar(self.statusbar)

        self.retranslateUi(ActualizarCliente)
        #Boton Limpiar para limpiar todos los campos.
        self.Limpiar.clicked.connect(self.claveC.clear)
        self.Limpiar.clicked.connect(self.Nombre.clear)
        self.Limpiar.clicked.connect(self.ApellidoP.clear)
        self.Limpiar.clicked.connect(self.ApellidoM.clear)
        self.Limpiar.clicked.connect(self.Telefono.clear)
        self.Limpiar.clicked.connect(self.Direccion.clear)
        QtCore.QMetaObject.connectSlotsByName(ActualizarCliente)
        #Botones programados
        #Boton que permite actualizar la información a la base de datos.
        self.Actualizar.clicked.connect(self.UpdateData)
        #Boton que permite verificar que la información cargada en la aplicación sea válida.
        self.Verificar.clicked.connect(self.VerificarDatos)

    def VerificarDatos(self):
        #Try para excepciones.
        try:
            #Conexión a la base de datos
            with sqlite3.connect("PIA_1845788.db") as conn:
                #Definir nuestro cursor.
                micursor = conn.cursor()
                #Leer clave de cliente que se introduce en nuestra ventana de Agregar Cliente.
                Clave = self.claveC.text()
                #Convertir la clave a entero.Ya que en la base se tiene como Entero.
                clave = int(Clave)
                #Ejecutar una línea que nos permite obtener todas las claves guardadas en Cliente.
                micursor.execute("SELECT Clave_Cliente FROM Cliente")
                #Guardar los resultados en la variable claveC
                claveC = micursor.fetchall()
                #Declarar una lista donde se guardaran las claves de cliente.
                listaClaves = []
                #Ciclo para el unpack del resultado de claveC.
                for dato in claveC:
                    for n in dato:
                        ClaveC = int(n)
                        #Agregar cada clave a la lista de listaClaves
                        listaClaves.append(ClaveC)
                #ESTO ES UNA DOBLE VERIFICACIÓN YA QUE TAMBIÉN SE HACE EN LA FUNCIÓN DE AGREGAR.
                #Si la clave que introdujo el usuario esta dentro de la lista de claves.
                if clave in listaClaves:
                    #Se muestra una ventana donde se avisa que la clave es existente, por lo tanto se puede actualizar
                    self.ventana = QtWidgets.QMainWindow()
                    self.ui = Ui_ClaveExistente()
                    self.ui.setupUi(self.ventana)
                    self.ventana.show()
                #Si la clave no esta dentro de la lista:
                else:
                    #Se muestra una ventana donde se avisa que la clave no existe, por lo tanto no se puede actualizar.
                    self.ventana = QtWidgets.QMainWindow()
                    self.ui = Ui_ClaveInexistenteUP()
                    self.ui.setupUi(self.ventana)
                    self.ventana.show()
        #Excepcion por si ocurre un error con sqlite3.
        except Error as e:
            print(e)
        #Excepción por si no se llenan los campos necesarios
        except:
            #Ventana que muestra el mensaje donde se piden llenar todos los campos.
            self.ventana = QtWidgets.QMainWindow()
            self.ui = Ui_Alerta()
            self.ui.setupUi(self.ventana)
            self.ventana.show()

    def UpdateData(self):
        #Try para excepciones.
        try:
            #Conexión a la base de datos
            with sqlite3.connect("PIA_1845788.db") as conn:
                #Definir nuestro cursor.
                micursor = conn.cursor()
                #Leer clave de cliente que se introduce en nuestra ventana de Agregar Cliente.
                Clave = self.claveC.text()
                #Convertir la clave a entero.Ya que en la base se tiene como Entero.
                clave = int(Clave)
                #Ejecutar una línea que nos permite obtener todas las claves guardadas en Cliente.
                micursor.execute("SELECT Clave_Cliente FROM Cliente")
                #Guardar los resultados en la variable claveC
                claveC = micursor.fetchall()
                #Declarar una lista donde se guardaran las claves de cliente.
                listaClaves = []
                #Ciclo para el unpack del resultado de claveC.
                for dato in claveC:
                    for n in dato:
                        ClaveC = int(n)
                        #Agregar cada clave a la lista de listaClaves
                        listaClaves.append(ClaveC)
                #ESTO ES UNA DOBLE VERIFICACIÓN YA QUE TAMBIÉN SE HACE EN LA FUNCIÓN DE AGREGAR.
                #Si la clave que introdujo el usuario esta dentro de la lista de claves.
                if clave in listaClaves:
                    #Se lee el nombre que se introduce en la aplicación y se agrega a la variable nombre.
                    nombre = self.Nombre.text()
                    #Se lee el apellido paterno que se introduce en la aplicación y se agrega a la variable apellidoP.
                    apellidoP = self.ApellidoP.text()
                    #Se lee el apellido materno que se introduce en la aplicación y se agrega a la variable apellidoM.
                    apellidoM = self.ApellidoM.text()
                    #Se lee el telefono que se introduce en la aplicación y se agrega a la variable Telefono.
                    Telefono = self.Telefono.text()
                    #Se cambia el valor a entero y se guarda en la variable telefono. Ya que en la base se tiene como Entero.
                    telefono = int(Telefono)
                    #Se lee la direccion que se introduce en la aplicación y se agrega a la variable direccion.
                    direccion = self.Direccion.text()
                    #VARIABLE DONDE SE GUARDA LA LINEA PARA ACTUALIZAR LA INFORMACIÓN DE CLIENTE.
                    query = """UPDATE Cliente SET Nombre = ?, Apellido_Paterno = ?, Apellido_Materno = ?, Telefono = ?, Dirección = ? WHERE Clave_Cliente = ?"""
                    #VARIABLE DONDE SE GUARDAN LAS VARIABLES QUE CONTIENEN LA INFORMACION QUE SE GUARDARA.
                    inputData = (nombre, apellidoP, apellidoM, telefono,
                                 direccion, clave)
                    #Se ejecuta las variables en conjunto, permitiendo actualizar la información.
                    micursor.execute(query, inputData)
                    #Ventana donde aparece que los datos fueron actualizados correctamente.
                    self.ventana = QtWidgets.QMainWindow()
                    self.ui = Ui_DatosActualizados()
                    self.ui.setupUi(self.ventana)
                    self.ventana.show()
                #Si la clave del proveedor que introdujo el usuario NO se encuentra dentro de listaClaves.
                else:
                    #Se muestra una ventana donde se avisa que la clave de proveedor no existe, por lo tanto no se puede actualizar.
                    self.ventana = QtWidgets.QMainWindow()
                    self.ui = Ui_ClaveInexistenteUP()
                    self.ui.setupUi(self.ventana)
                    self.ventana.show()
        #Excepcion por si ocurre un error con sqlite3.
        except Error as e:
            print(e)
        #Excepción por si no se llenan los campos necesarios
        except:
            #Ventana que muestra el mensaje donde se piden llenar todos los campos.
            self.ventana = QtWidgets.QMainWindow()
            self.ui = Ui_Alerta()
            self.ui.setupUi(self.ventana)
            self.ventana.show()

    #Asignación de texto a los botones y labels.
    def retranslateUi(self, ActualizarCliente):
        _translate = QtCore.QCoreApplication.translate
        ActualizarCliente.setWindowTitle(
            _translate("ActualizarCliente", "MainWindow"))
        self.label_5.setText(
            _translate(
                "ActualizarCliente",
                "<html><head/><body><p align=\"center\"><span style=\" font-size:14pt; font-weight:600;\">ACTUALIZAR CLIENTE</span></p></body></html>"
            ))
        self.label.setText(
            _translate(
                "ActualizarCliente",
                "<html><head/><body><p align=\"center\">CLAVE</p></body></html>"
            ))
        self.label_2.setText(
            _translate(
                "ActualizarCliente",
                "<html><head/><body><p align=\"center\">NOMBRE</p></body></html>"
            ))
        self.label_3.setText(
            _translate(
                "ActualizarCliente",
                "<html><head/><body><p align=\"center\">DIRECCIÓN</p></body></html>"
            ))
        self.label_4.setText(
            _translate(
                "ActualizarCliente",
                "<html><head/><body><p align=\"center\">TELÉFONO</p></body></html>"
            ))
        self.label_6.setText(
            _translate(
                "ActualizarCliente",
                "<html><head/><body><p align=\"center\">APELLIDO PATERNO</p></body></html>"
            ))
        self.label_7.setText(
            _translate(
                "ActualizarCliente",
                "<html><head/><body><p align=\"center\">APELLIDO MATERNO</p></body></html>"
            ))
        self.Verificar.setText(_translate("ActualizarCliente", "VERIFICAR"))
        self.Limpiar.setText(_translate("ActualizarCliente", "LIMPIAR"))
        self.Actualizar.setText(_translate("ActualizarCliente", "ACTUALIZAR"))
示例#4
0
class Ui_EliminarTrabajador(object):
    def setupUi(self, EliminarTrabajador):
        EliminarTrabajador.setObjectName("EliminarTrabajador")
        EliminarTrabajador.resize(292, 500)
        EliminarTrabajador.setStyleSheet(
            "background-color: rgb(226, 230, 255);")
        self.centralwidget = QtWidgets.QWidget(EliminarTrabajador)
        self.centralwidget.setObjectName("centralwidget")
        self.label_5 = QtWidgets.QLabel(self.centralwidget)
        self.label_5.setGeometry(QtCore.QRect(0, 0, 301, 51))
        self.label_5.setObjectName("label_5")
        self.label = QtWidgets.QLabel(self.centralwidget)
        self.label.setGeometry(QtCore.QRect(20, 69, 91, 21))
        self.label.setStyleSheet("border-color: rgb(0, 0, 0);\n"
                                 "gridline-color: rgb(0, 0, 0);")
        self.label.setObjectName("label")
        self.label_2 = QtWidgets.QLabel(self.centralwidget)
        self.label_2.setGeometry(QtCore.QRect(30, 110, 61, 16))
        self.label_2.setObjectName("label_2")
        self.label_4 = QtWidgets.QLabel(self.centralwidget)
        self.label_4.setGeometry(QtCore.QRect(20, 270, 81, 16))
        self.label_4.setObjectName("label_4")
        self.label_6 = QtWidgets.QLabel(self.centralwidget)
        self.label_6.setGeometry(QtCore.QRect(10, 150, 101, 20))
        self.label_6.setObjectName("label_6")
        self.label_7 = QtWidgets.QLabel(self.centralwidget)
        self.label_7.setGeometry(QtCore.QRect(10, 190, 101, 20))
        self.label_7.setObjectName("label_7")
        self.Nombre = QtWidgets.QTextBrowser(self.centralwidget)
        self.Nombre.setGeometry(QtCore.QRect(120, 100, 161, 31))
        self.Nombre.setStyleSheet("background-color: rgb(223, 223, 223);")
        self.Nombre.setObjectName("Nombre")
        self.Telefono = QtWidgets.QTextBrowser(self.centralwidget)
        self.Telefono.setGeometry(QtCore.QRect(120, 260, 161, 31))
        self.Telefono.setStyleSheet("background-color: rgb(223, 223, 223);")
        self.Telefono.setObjectName("Telefono")
        self.ApellidoP = QtWidgets.QTextBrowser(self.centralwidget)
        self.ApellidoP.setGeometry(QtCore.QRect(120, 140, 161, 31))
        self.ApellidoP.setStyleSheet("background-color: rgb(223, 223, 223);")
        self.ApellidoP.setObjectName("ApellidoP")
        self.ApellidoM = QtWidgets.QTextBrowser(self.centralwidget)
        self.ApellidoM.setGeometry(QtCore.QRect(120, 180, 161, 31))
        self.ApellidoM.setStyleSheet("background-color: rgb(223, 223, 223);")
        self.ApellidoM.setObjectName("ApellidoM")
        self.label_8 = QtWidgets.QLabel(self.centralwidget)
        self.label_8.setGeometry(QtCore.QRect(20, 230, 81, 16))
        self.label_8.setObjectName("label_8")
        self.FechaIngreso = QtWidgets.QTextBrowser(self.centralwidget)
        self.FechaIngreso.setGeometry(QtCore.QRect(120, 220, 161, 31))
        self.FechaIngreso.setStyleSheet(
            "background-color: rgb(223, 223, 223);")
        self.FechaIngreso.setObjectName("FechaIngreso")
        self.label_9 = QtWidgets.QLabel(self.centralwidget)
        self.label_9.setGeometry(QtCore.QRect(20, 350, 81, 16))
        self.label_9.setObjectName("label_9")
        self.Contra = QtWidgets.QTextBrowser(self.centralwidget)
        self.Contra.setGeometry(QtCore.QRect(120, 340, 161, 31))
        self.Contra.setStyleSheet("background-color: rgb(223, 223, 223);")
        self.Contra.setObjectName("Contra")
        self.label_10 = QtWidgets.QLabel(self.centralwidget)
        self.label_10.setGeometry(QtCore.QRect(20, 390, 81, 16))
        self.label_10.setObjectName("label_10")
        self.Puesto = QtWidgets.QTextBrowser(self.centralwidget)
        self.Puesto.setGeometry(QtCore.QRect(120, 380, 161, 31))
        self.Puesto.setStyleSheet("background-color: rgb(223, 223, 223);")
        self.Puesto.setObjectName("Puesto")
        self.claveT = QtWidgets.QLineEdit(self.centralwidget)
        self.claveT.setGeometry(QtCore.QRect(120, 60, 161, 31))
        self.claveT.setStyleSheet("background-color: rgb(255, 255, 255);")
        self.claveT.setObjectName("claveT")
        self.Usuario = QtWidgets.QTextBrowser(self.centralwidget)
        self.Usuario.setGeometry(QtCore.QRect(120, 300, 161, 31))
        self.Usuario.setStyleSheet("background-color: rgb(223, 223, 223);")
        self.Usuario.setObjectName("Usuario")
        self.label_11 = QtWidgets.QLabel(self.centralwidget)
        self.label_11.setGeometry(QtCore.QRect(20, 310, 81, 16))
        self.label_11.setObjectName("label_11")
        self.Limpiar = QtWidgets.QPushButton(self.centralwidget)
        self.Limpiar.setGeometry(QtCore.QRect(20, 430, 75, 23))
        self.Limpiar.setStyleSheet("background-color: rgb(255, 255, 255);")
        self.Limpiar.setObjectName("Limpiar")
        self.Eliminar = QtWidgets.QPushButton(self.centralwidget)
        self.Eliminar.setGeometry(QtCore.QRect(200, 429, 75, 23))
        self.Eliminar.setStyleSheet("background-color: rgb(255, 255, 255);")
        self.Eliminar.setObjectName("Eliminar")
        self.Cargar = QtWidgets.QPushButton(self.centralwidget)
        self.Cargar.setGeometry(QtCore.QRect(110, 430, 75, 23))
        self.Cargar.setStyleSheet("background-color: rgb(255, 255, 255);")
        self.Cargar.setObjectName("Cargar")
        EliminarTrabajador.setCentralWidget(self.centralwidget)
        self.menubar = QtWidgets.QMenuBar(EliminarTrabajador)
        self.menubar.setGeometry(QtCore.QRect(0, 0, 292, 21))
        self.menubar.setObjectName("menubar")
        EliminarTrabajador.setMenuBar(self.menubar)
        self.statusbar = QtWidgets.QStatusBar(EliminarTrabajador)
        self.statusbar.setObjectName("statusbar")
        EliminarTrabajador.setStatusBar(self.statusbar)

        self.retranslateUi(EliminarTrabajador)
        #Boton Limpiar para limpiar todos los campos.
        self.Limpiar.clicked.connect(self.claveT.clear)
        self.Limpiar.clicked.connect(self.Nombre.clear)
        self.Limpiar.clicked.connect(self.ApellidoP.clear)
        self.Limpiar.clicked.connect(self.ApellidoM.clear)
        self.Limpiar.clicked.connect(self.FechaIngreso.clear)
        self.Limpiar.clicked.connect(self.Telefono.clear)
        self.Limpiar.clicked.connect(self.Usuario.clear)
        self.Limpiar.clicked.connect(self.Contra.clear)
        self.Limpiar.clicked.connect(self.Puesto.clear)
        QtCore.QMetaObject.connectSlotsByName(EliminarTrabajador)
        #Botones programados
        #Boton que permite cargar la información en la aplicación.
        self.Cargar.clicked.connect(self.ShowData)
        #Boton que permite eliminar la información obtenida de la base de datos.
        self.Eliminar.clicked.connect(self.DeleteData)

    #Función que permite eliminar la información de la base de datos según la clave dada.
    def DeleteData(self):
        #Try para excepciones.
        try:
            #Conexión a la base de datos
            with sqlite3.connect("PIA_1845788.db") as conn:
                #Leer clave de producto que se introduce en nuestra ventana de Eliminar Trabajador.
                Clave = self.claveT.text()
                #Convertir la clave a entero.
                clave = int(Clave)
                #Definir nuestro cursor.
                mi_cursor = conn.cursor()
                #Ejecutar una línea que nos permite obtener todas las claves guardadas en trabajador.
                c = mi_cursor.execute(
                    "SELECT Clave_Trabajador FROM Trabajador")
                #Guardar los resultados en la variable claves.
                claves = mi_cursor.fetchall()
                #Declarar una lista donde se guardaran las claves de trabajadores.
                ClaveT = []
                #Ciclo para el unpack del resultado de claves.
                for dato in claves:
                    for n in dato:
                        CLAVET = int(n)
                        #Agregar cada clave en la lista ClaveP.
                        ClaveT.append(CLAVET)

                #ESTO ES UNA DOBLE VERIFICACIÓN YA QUE TAMBIÉN SE HACE EN LA FUNCIÓN DE VERIFICAR.
                #Si la clave que introdujo el usuario esta dentro de la lista de claves.
                if clave in ClaveT:
                    #Guardar la clave en el diccionario valor, para posteriormente utilizarlo.
                    valor = {"clave": clave}
                    #Ejecutar la linea donde se elimina toda la información guardada con la clave que el usuario otorgo.
                    mi_cursor.execute(
                        "DELETE FROM Trabajador WHERE Clave_Trabajador= (:clave)",
                        valor)
                    #Ventana que muestra un aviso donde los datos fueron eliminados exitosamente (codigo .py)
                    self.ventana = QtWidgets.QMainWindow()
                    self.ui = Ui_DatosEliminados()
                    self.ui.setupUi(self.ventana)
                    self.ventana.show()
                #Si la clave no se encuentra dentro de la lista:
                else:
                    #Se muestra una ventana que muestra un aviso que la clave que se quiere eliminar no existe (codigo .py)
                    self.ventana = QtWidgets.QMainWindow()
                    self.ui = Ui_ClaveInexistenteEP()
                    self.ui.setupUi(self.ventana)
                    self.ventana.show()
        #Excepcion por si ocurre un error con sqlite3.
        except Error as e:
            print(e)
        #Excepción por si no se llenan los campos necesarios.
        except:
            #Ventana que muestra el mensaje donde se piden llenar todos los campos.
            self.ventana = QtWidgets.QMainWindow()
            self.ui = Ui_Alerta()
            self.ui.setupUi(self.ventana)
            self.ventana.show()

    #Función que se utiliza para cargar y mostrar los datos en la aplicación.
    def ShowData(self):
        #Try para excepciones.
        try:
            #Conexión a la base de datos
            with sqlite3.connect("PIA_1845788.db") as conn:
                #Leer clave de producto que se introduce en nuestra ventana de Eliminar Trabajador.
                Clave = self.claveT.text()
                #Convertir la clave a entero.
                clave = int(Clave)
                #Definir nuestro cursor.
                mi_cursor = conn.cursor()
                #Ejecutar una línea que nos permite obtener todas las claves guardadas en Trabajador.
                c = mi_cursor.execute(
                    "SELECT Clave_Trabajador FROM Trabajador")
                #Guardar los resultados en la variable claves.
                claves = mi_cursor.fetchall()
                #Declarar una lista donde se guardaran las claves de trabajador.
                ClaveT = []
                #Ciclo para el unpack del resultado de claves.
                for dato in claves:
                    for n in dato:
                        CLAVET = int(n)
                        #Agregar cada clave a la lista de Claves.
                        ClaveT.append(CLAVET)
                #ESTO ES UNA DOBLE VERIFICACIÓN YA QUE TAMBIÉN SE HACE EN LA FUNCIÓN DE ELIMINAR.
                #Si la clave que introdujo el usuario esta dentro de la lista de claves.
                if clave in ClaveT:
                    #Guardar la clave en el diccionario valor, para posteriormente utilizarlo.
                    valor = {"clave": clave}

                    #Buscar nombre del trabajador en la base de datos según la clave dada por el usuario y mostrarlo.
                    c = mi_cursor.execute(
                        "SELECT Nombre FROM Trabajador WHERE Clave_Trabajador = (:clave)",
                        valor)
                    #Guardar el resultado en la variable de nombre.
                    nombre = mi_cursor.fetchall()
                    #Ciclo para el unpack del resultado de nombre.
                    for dato in nombre:
                        for n in dato:
                            Nombre = str(n)
                    #Asignar al campo de Nombre el valor de Nombre que se obtuvo anteriormente.
                    self.Nombre.setText(Nombre)

                    #Buscar el apellido paterno del trabajador en la base de datos según la clave dada por el usuario y mostrarlo.
                    c = mi_cursor.execute(
                        "SELECT ApellidoPaterno FROM Trabajador WHERE Clave_Trabajador = (:clave)",
                        valor)
                    #Guardar el resultado en la variable de apP.
                    apP = mi_cursor.fetchall()
                    #Ciclo para el unpack del resultado de apP.
                    for dato in apP:
                        for n in dato:
                            paterno = str(n)
                    #Asignar al campo de ApellidoP el valor de paterno que se obtuvo anteriormente.
                    self.ApellidoP.setText(paterno)

                    #Buscar el apellido materno del trabajador en la base de datos según la clave dada por el usuario y mostrarlo.
                    c = mi_cursor.execute(
                        "SELECT ApellidoMaterno FROM Trabajador WHERE Clave_Trabajador = (:clave)",
                        valor)
                    #Guardar el resultado en la variable de apM.
                    apM = mi_cursor.fetchall()
                    #Ciclo para el unpack del resultado de apM.
                    for dato in apM:
                        for n in dato:
                            materno = str(n)
                    #Asignar al campo de ApellidoM el valor de materno que se obtuvo anteriormente.
                    self.ApellidoM.setText(materno)

                    #Buscar la fecha de ingreso del trabajador en la base de datos según la clave dada por el usuario y mostrarlo.
                    c = mi_cursor.execute(
                        "SELECT Fecha_Ingreso FROM Trabajador WHERE Clave_Trabajador = (:clave)",
                        valor)
                    #Guardar el resultado en la variable de fI.
                    fI = mi_cursor.fetchall()
                    #Ciclo para el unpack del resultado de fI.
                    for dato in fI:
                        for n in dato:
                            fechaIngreso = str(n)
                    #Asignar al campo de FechaIngreso el valor de fechaIngreso que se obtuvo anteriormente.
                    self.FechaIngreso.setText(fechaIngreso)

                    #Buscar el telefono del trabajador en la base de datos según la clave dada por el usuario y mostrarlo.
                    c = mi_cursor.execute(
                        "SELECT Telefono FROM Trabajador WHERE Clave_Trabajador = (:clave)",
                        valor)
                    #Guardar el resultado en la variable de tel.
                    tel = mi_cursor.fetchall()
                    #Ciclo para el unpack del resultado de tel.
                    for dato in tel:
                        for n in dato:
                            Telefono = str(n)
                    #Asignar al campo de Telefono el valor de Telefono que se obtuvo anteriormente.
                    self.Telefono.setText(Telefono)

                    #Buscar el usuario del trabajador en la base de datos según la clave dada por el usuario y mostrarlo.
                    c = mi_cursor.execute(
                        "SELECT Usuario FROM Trabajador WHERE Clave_Trabajador = (:clave)",
                        valor)
                    #Guardar el resultado en la variable de Usuario.
                    Usuario = mi_cursor.fetchall()
                    #Ciclo para el unpack del resultado de Usuario.
                    for dato in Usuario:
                        for n in dato:
                            usuario = str(n)
                    #Asignar al campo de Usuario el valor de usuario que se obtuvo anteriormente.
                    self.Usuario.setText(usuario)

                    #Buscar la contraseña del trabajador en la base de datos según la clave dada por el usuario y mostrarlo.
                    c = mi_cursor.execute(
                        "SELECT Contraseña FROM Trabajador WHERE Clave_Trabajador = (:clave)",
                        valor)
                    #Guardar el resultado en la variable de Contraseña.
                    Contraseña = mi_cursor.fetchall()
                    #Ciclo para el unpack del resultado de Contraseña.
                    for dato in Contraseña:
                        for n in dato:
                            contraseña = str(n)
                    #Asignar al campo de Contra el valor de contraseña que se obtuvo anteriormente.
                    self.Contra.setText(contraseña)

                    #Buscar el nombre del puesto del trabajador en la base de datos según la clave dada por el usuario y mostrarlo.
                    c = mi_cursor.execute(
                        "SELECT p.Nombre FROM Trabajador t INNER JOIN Puesto p ON t.Puesto = p.Clave WHERE Clave_Trabajador = (:clave)",
                        valor)
                    #Guardar el resultado en la variable de puesto.
                    puesto = mi_cursor.fetchall()
                    #Ciclo para el unpack del resultado de puesto.
                    for dato in puesto:
                        for n in dato:
                            Puesto = str(n)
                    #Asignar al campo de Puesto el valor de Puesto que se obtuvo anteriormente.
                    self.Puesto.setText(Puesto)
                #Si la clave no se encuentra dentro de la lista:
                else:
                    #Se muestra una ventana que muestra un aviso que la clave que se quiere eliminar no existe (codigo .py)
                    self.ventana = QtWidgets.QMainWindow()
                    self.ui = Ui_ClaveInexistenteEP()
                    self.ui.setupUi(self.ventana)
                    self.ventana.show()
        #Excepcion por si ocurre un error con sqlite3.
        except Error as e:
            print(e)
        #Excepción por si no se llenan los campos necesarios.
        except:
            #Ventana que muestra el mensaje donde se piden llenar todos los campos.
            self.ventana = QtWidgets.QMainWindow()
            self.ui = Ui_Alerta()
            self.ui.setupUi(self.ventana)
            self.ventana.show()

    #Asignación de texto a los botones y labels.
    def retranslateUi(self, EliminarTrabajador):
        _translate = QtCore.QCoreApplication.translate
        EliminarTrabajador.setWindowTitle(
            _translate("EliminarTrabajador", "MainWindow"))
        self.label_5.setText(
            _translate(
                "EliminarTrabajador",
                "<html><head/><body><p align=\"center\"><span style=\" font-size:14pt; font-weight:600;\">ELIMINAR TRABAJADOR</span></p></body></html>"
            ))
        self.label.setText(
            _translate(
                "EliminarTrabajador",
                "<html><head/><body><p align=\"center\">CLAVE</p></body></html>"
            ))
        self.label_2.setText(
            _translate(
                "EliminarTrabajador",
                "<html><head/><body><p align=\"center\">NOMBRE</p></body></html>"
            ))
        self.label_4.setText(
            _translate(
                "EliminarTrabajador",
                "<html><head/><body><p align=\"center\">TELÉFONO</p></body></html>"
            ))
        self.label_6.setText(
            _translate(
                "EliminarTrabajador",
                "<html><head/><body><p align=\"center\">APELLIDO PATERNO</p></body></html>"
            ))
        self.label_7.setText(
            _translate(
                "EliminarTrabajador",
                "<html><head/><body><p align=\"center\">APELLIDO MATERNO</p></body></html>"
            ))
        self.label_8.setText(
            _translate(
                "EliminarTrabajador",
                "<html><head/><body><p align=\"center\">FECHA INGRESO</p></body></html>"
            ))
        self.label_9.setText(
            _translate(
                "EliminarTrabajador",
                "<html><head/><body><p align=\"center\">CONTRASEÑA</p></body></html>"
            ))
        self.Contra.setHtml(
            _translate(
                "EliminarTrabajador",
                "<!DOCTYPE HTML PUBLIC \"-//W3C//DTD HTML 4.0//EN\" \"http://www.w3.org/TR/REC-html40/strict.dtd\">\n"
                "<html><head><meta name=\"qrichtext\" content=\"1\" /><style type=\"text/css\">\n"
                "p, li { white-space: pre-wrap; }\n"
                "</style></head><body style=\" font-family:\'MS Shell Dlg 2\'; font-size:8.25pt; font-weight:400; font-style:normal;\">\n"
                "<p style=\"-qt-paragraph-type:empty; margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;\"><br /></p></body></html>"
            ))
        self.label_10.setText(
            _translate(
                "EliminarTrabajador",
                "<html><head/><body><p align=\"center\">PUESTO</p></body></html>"
            ))
        self.Puesto.setHtml(
            _translate(
                "EliminarTrabajador",
                "<!DOCTYPE HTML PUBLIC \"-//W3C//DTD HTML 4.0//EN\" \"http://www.w3.org/TR/REC-html40/strict.dtd\">\n"
                "<html><head><meta name=\"qrichtext\" content=\"1\" /><style type=\"text/css\">\n"
                "p, li { white-space: pre-wrap; }\n"
                "</style></head><body style=\" font-family:\'MS Shell Dlg 2\'; font-size:8.25pt; font-weight:400; font-style:normal;\">\n"
                "<p style=\"-qt-paragraph-type:empty; margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;\"><br /></p></body></html>"
            ))
        self.Usuario.setHtml(
            _translate(
                "EliminarTrabajador",
                "<!DOCTYPE HTML PUBLIC \"-//W3C//DTD HTML 4.0//EN\" \"http://www.w3.org/TR/REC-html40/strict.dtd\">\n"
                "<html><head><meta name=\"qrichtext\" content=\"1\" /><style type=\"text/css\">\n"
                "p, li { white-space: pre-wrap; }\n"
                "</style></head><body style=\" font-family:\'MS Shell Dlg 2\'; font-size:8.25pt; font-weight:400; font-style:normal;\">\n"
                "<p style=\"-qt-paragraph-type:empty; margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;\"><br /></p></body></html>"
            ))
        self.label_11.setText(
            _translate(
                "EliminarTrabajador",
                "<html><head/><body><p align=\"center\">USUARIO</p></body></html>"
            ))
        self.Limpiar.setText(_translate("EliminarTrabajador", "LIMPIAR"))
        self.Eliminar.setText(_translate("EliminarTrabajador", "ELIMINAR"))
        self.Cargar.setText(_translate("EliminarTrabajador", "CARGAR"))
示例#5
0
class Ui_NuevoTrabajador(object):
    def setupUi(self, NuevoTrabajador):
        NuevoTrabajador.setObjectName("NuevoTrabajador")
        NuevoTrabajador.resize(293, 515)
        NuevoTrabajador.setStyleSheet("background-color: rgb(226, 230, 255);")
        self.centralwidget = QtWidgets.QWidget(NuevoTrabajador)
        self.centralwidget.setObjectName("centralwidget")
        self.label_5 = QtWidgets.QLabel(self.centralwidget)
        self.label_5.setGeometry(QtCore.QRect(0, 0, 301, 51))
        self.label_5.setObjectName("label_5")
        self.label = QtWidgets.QLabel(self.centralwidget)
        self.label.setGeometry(QtCore.QRect(20, 69, 91, 21))
        self.label.setStyleSheet("border-color: rgb(0, 0, 0);\n"
                                 "gridline-color: rgb(0, 0, 0);")
        self.label.setObjectName("label")
        self.label_2 = QtWidgets.QLabel(self.centralwidget)
        self.label_2.setGeometry(QtCore.QRect(30, 110, 61, 16))
        self.label_2.setObjectName("label_2")
        self.label_6 = QtWidgets.QLabel(self.centralwidget)
        self.label_6.setGeometry(QtCore.QRect(10, 150, 101, 20))
        self.label_6.setObjectName("label_6")
        self.label_7 = QtWidgets.QLabel(self.centralwidget)
        self.label_7.setGeometry(QtCore.QRect(10, 190, 101, 20))
        self.label_7.setObjectName("label_7")
        self.label_8 = QtWidgets.QLabel(self.centralwidget)
        self.label_8.setGeometry(QtCore.QRect(10, 230, 101, 20))
        self.label_8.setObjectName("label_8")
        self.label_9 = QtWidgets.QLabel(self.centralwidget)
        self.label_9.setGeometry(QtCore.QRect(10, 270, 101, 20))
        self.label_9.setObjectName("label_9")
        self.label_10 = QtWidgets.QLabel(self.centralwidget)
        self.label_10.setGeometry(QtCore.QRect(10, 350, 101, 20))
        self.label_10.setObjectName("label_10")
        self.label_11 = QtWidgets.QLabel(self.centralwidget)
        self.label_11.setGeometry(QtCore.QRect(10, 390, 101, 20))
        self.label_11.setObjectName("label_11")
        self.claveT = QtWidgets.QLineEdit(self.centralwidget)
        self.claveT.setGeometry(QtCore.QRect(120, 60, 161, 31))
        self.claveT.setStyleSheet("background-color: rgb(255, 255, 255);")
        self.claveT.setObjectName("claveT")
        self.Nombre = QtWidgets.QLineEdit(self.centralwidget)
        self.Nombre.setGeometry(QtCore.QRect(120, 100, 161, 31))
        self.Nombre.setStyleSheet("background-color: rgb(255, 255, 255);")
        self.Nombre.setObjectName("Nombre")
        self.ApellidoP = QtWidgets.QLineEdit(self.centralwidget)
        self.ApellidoP.setGeometry(QtCore.QRect(120, 140, 161, 31))
        self.ApellidoP.setStyleSheet("background-color: rgb(255, 255, 255);")
        self.ApellidoP.setObjectName("ApellidoP")
        self.ApellidoM = QtWidgets.QLineEdit(self.centralwidget)
        self.ApellidoM.setGeometry(QtCore.QRect(120, 180, 161, 31))
        self.ApellidoM.setStyleSheet("background-color: rgb(255, 255, 255);")
        self.ApellidoM.setObjectName("ApellidoM")
        self.Fecha = QtWidgets.QLineEdit(self.centralwidget)
        self.Fecha.setGeometry(QtCore.QRect(120, 220, 161, 31))
        self.Fecha.setStyleSheet("background-color: rgb(255, 255, 255);")
        self.Fecha.setText("")
        self.Fecha.setObjectName("Fecha")
        self.Telefono = QtWidgets.QLineEdit(self.centralwidget)
        self.Telefono.setGeometry(QtCore.QRect(120, 260, 161, 31))
        self.Telefono.setStyleSheet("background-color: rgb(255, 255, 255);")
        self.Telefono.setObjectName("Telefono")
        self.Usuario = QtWidgets.QLineEdit(self.centralwidget)
        self.Usuario.setGeometry(QtCore.QRect(120, 300, 161, 31))
        self.Usuario.setStyleSheet("background-color: rgb(255, 255, 255);")
        self.Usuario.setObjectName("Usuario")
        self.label_12 = QtWidgets.QLabel(self.centralwidget)
        self.label_12.setGeometry(QtCore.QRect(10, 310, 101, 20))
        self.label_12.setObjectName("label_12")
        self.Contra = QtWidgets.QLineEdit(self.centralwidget)
        self.Contra.setGeometry(QtCore.QRect(120, 340, 161, 31))
        self.Contra.setStyleSheet("background-color: rgb(255, 255, 255);")
        self.Contra.setObjectName("Contra")
        self.Agregar = QtWidgets.QPushButton(self.centralwidget)
        self.Agregar.setGeometry(QtCore.QRect(200, 430, 75, 23))
        self.Agregar.setStyleSheet("background-color: rgb(255, 255, 255);")
        self.Agregar.setObjectName("Agregar")
        self.Verificar = QtWidgets.QPushButton(self.centralwidget)
        self.Verificar.setGeometry(QtCore.QRect(110, 431, 75, 23))
        self.Verificar.setStyleSheet("background-color: rgb(255, 255, 255);")
        self.Verificar.setObjectName("Verificar")
        self.Limpiar = QtWidgets.QPushButton(self.centralwidget)
        self.Limpiar.setGeometry(QtCore.QRect(20, 431, 75, 23))
        self.Limpiar.setStyleSheet("background-color: rgb(255, 255, 255);")
        self.Limpiar.setObjectName("Limpiar")
        self.CPuesto = QtWidgets.QLineEdit(self.centralwidget)
        self.CPuesto.setGeometry(QtCore.QRect(120, 380, 161, 31))
        self.CPuesto.setStyleSheet("background-color: rgb(255, 255, 255);")
        self.CPuesto.setObjectName("CPuesto")
        NuevoTrabajador.setCentralWidget(self.centralwidget)
        self.menubar = QtWidgets.QMenuBar(NuevoTrabajador)
        self.menubar.setGeometry(QtCore.QRect(0, 0, 293, 21))
        self.menubar.setObjectName("menubar")
        NuevoTrabajador.setMenuBar(self.menubar)
        self.statusbar = QtWidgets.QStatusBar(NuevoTrabajador)
        self.statusbar.setObjectName("statusbar")
        NuevoTrabajador.setStatusBar(self.statusbar)

        self.retranslateUi(NuevoTrabajador)
        #Boton Limpiar para limpiar todos los campos.
        self.Limpiar.clicked.connect(self.claveT.clear)
        self.Limpiar.clicked.connect(self.Nombre.clear)
        self.Limpiar.clicked.connect(self.ApellidoP.clear)
        self.Limpiar.clicked.connect(self.ApellidoM.clear)
        self.Limpiar.clicked.connect(self.Fecha.clear)
        self.Limpiar.clicked.connect(self.Telefono.clear)
        self.Limpiar.clicked.connect(self.Usuario.clear)
        self.Limpiar.clicked.connect(self.Contra.clear)
        self.Limpiar.clicked.connect(self.CPuesto.clear)
        QtCore.QMetaObject.connectSlotsByName(NuevoTrabajador)
        #Botones programados
        #Boton que permite agregar la información a la base de datos.
        self.Agregar.clicked.connect(self.LoadData)
        #Boton que permite verificar que la información cargada en la aplicación sea válida.
        self.Verificar.clicked.connect(self.VerificarDatos)

    #Función que permite verificar que la información dada por el usuario sea válida para cargar.
    def VerificarDatos(self):
        #Try para excepciones.
        try:
            #Conexión a la base de datos
            with sqlite3.connect("PIA_1845788.db") as conn:
                #Definir nuestro cursor.
                micursor = conn.cursor()
                #Leer clave de trabajador que se introduce en nuestra ventana de Agregar Trabajador.
                Clave = self.claveT.text()
                #Convertir la clave a entero.Ya que en la base se tiene como Entero.
                clave = int(Clave)
                #Ejecutar una línea que nos permite obtener todas las claves guardadas en Trabajador.
                micursor.execute("SELECT Clave_Trabajador FROM Trabajador")
                #Guardar los resultados en la variable claveT
                claveT = micursor.fetchall()
                #Declarar una lista donde se guardaran las claves de trabajador.
                listaClaves = []
                #Ciclo para el unpack del resultado de claveT.
                for dato in claveT:
                    for n in dato:
                        ClaveT = int(n)
                        #Agregar cada clave a la lista de listaClaves.
                        listaClaves.append(ClaveT)
                #Leer clave de puesto que se introduce en nuestra ventana de Agregar Trabajador.
                ClaveP = self.CPuesto.text()
                #Convertir la clave a entero. Ya que en la base se tiene como Entero.
                clavePuesto = int(ClaveP)
                #Ejecutar una línea que nos permite obtener todas las claves guardadas en Puesto.
                micursor.execute("SELECT Clave FROM Puesto")
                #Guardar los resultados en la variable claveP.
                claveP = micursor.fetchall()
                #Declarar una lista donde se guardaran las claves de puesto.
                listaClavesP = []
                #Ciclo para el unpack del resultado de claveP.
                for dato in claveP:
                    for n in dato:
                        ClaveP = int(n)
                        #Agregar cada clave a la lista de listaClavesP.
                        listaClavesP.append(ClaveP)
                #ESTO ES UNA DOBLE VERIFICACIÓN YA QUE TAMBIÉN SE HACE EN LA FUNCIÓN DE AGREGAR.
                #Si la clave que introdujo el usuario esta dentro de la lista de claves.
                if clave in listaClaves:
                    #Se muestra una ventana donde avisa que la clave ya esta ocupada y que intente con otra.
                    self.ventana = QtWidgets.QMainWindow()
                    self.ui = Ui_ClaveExistente()
                    self.ui.setupUi(self.ventana)
                    self.ventana.show()
                #Si la clave que introdujo el usuario en la clave puesto NO existe muestra el siguiente mensaje.
                elif clavePuesto not in listaClavesP:
                    #Ventana donde muestra que la clave de puesto es inexistente, por lo tanto no puede proseguir.
                    self.ventana = QtWidgets.QMainWindow()
                    self.ui = Ui_ClaveInexistentePuesto()
                    self.ui.setupUi(self.ventana)
                    self.ventana.show()
                #Si la clave del trabajador no esta dentro de la lista de claves de Trabajador.
                elif clave not in listaClaves:
                    #Se muestra la ventana donde se avisa que la clave esta disponible y por lo tanto puede proseguir.
                    self.ventana = QtWidgets.QMainWindow()
                    self.ui = Ui_ClaveInexistente()
                    self.ui.setupUi(self.ventana)
                    self.ventana.show()
        #Excepcion por si ocurre un error con sqlite3.
        except Error as e:
            print(e)
        #Excepción por si no se llenan los campos necesarios.
        except:
            #Ventana que muestra el mensaje donde se piden llenar todos los campos.
            self.ventana = QtWidgets.QMainWindow()
            self.ui = Ui_Alerta()
            self.ui.setupUi(self.ventana)
            self.ventana.show()

    #Función que permite agregaar la información de la base de datos según la info otorgada.
    def LoadData(self):
        #Try para excepciones.
        try:
            #Conexión a la base de datos
            with sqlite3.connect("PIA_1845788.db") as conn:
                #Definir nuestro cursor.
                micursor = conn.cursor()
                #Leer clave de trabajador que se introduce en nuestra ventana de Agregar Trabajador.
                Clave = self.claveT.text()
                #Convertir la clave a entero. Ya que en la base se tiene como Entero.
                clave = int(Clave)
                #Ejecutar una línea que nos permite obtener todas las claves guardadas en Trabajador.
                micursor.execute("SELECT Clave_Trabajador FROM Trabajador")
                #Guardar los resultados en la variable claves
                claveT = micursor.fetchall()
                #Declarar una lista donde se guardaran las claves de trabajador.
                listaClaves = []
                #Ciclo para el unpack del resultado de claves.
                for dato in claveT:
                    for n in dato:
                        ClaveT = int(n)
                        #Agregar cada clave a la lista de listaClaves.
                        listaClaves.append(ClaveT)
                #Leer clave de puesto que se introduce en nuestra ventana de Agregar Trabajador.
                ClaveP = self.CPuesto.text()
                #Convertir la clave a entero.
                clavePuesto = int(ClaveP)
                #Ejecutar una línea que nos permite obtener todas las claves guardadas en Puesto.
                micursor.execute("SELECT Clave FROM Puesto")
                #Guardar los resultados en la variable claveP.
                claveP = micursor.fetchall()
                #Declarar una lista donde se guardaran las claves de puesto.
                listaClavesP = []
                #Ciclo para el unpack del resultado de claveP.
                for dato in claveP:
                    for n in dato:
                        ClaveP = int(n)
                        #Agregar cada clave a la lista de listaClavesP.
                        listaClavesP.append(ClaveP)
                #ESTO ES UNA DOBLE VERIFICACIÓN YA QUE TAMBIÉN SE HACE EN LA FUNCIÓN DE VERIFICAR.
                #Si la clave que introdujo el usuario esta dentro de la lista de claves.
                if clave in listaClaves:
                    #Se muestra una ventana donde avisa que la clave ya esta ocupada y que intente con otra.
                    self.ventana = QtWidgets.QMainWindow()
                    self.ui = Ui_ClaveExistente()
                    self.ui.setupUi(self.ventana)
                    self.ventana.show()
                    #Si la clave que introdujo el usuario en la clave puesto NO existe muestra el siguiente mensaje.
                elif clavePuesto not in listaClavesP:
                    #Ventana donde muestra que la clave de puesto es inexistente, por lo tanto no puede proseguir.
                    self.ventana = QtWidgets.QMainWindow()
                    self.ui = Ui_ClaveInexistentePuesto()
                    self.ui.setupUi(self.ventana)
                    self.ventana.show()
                #Si la clave del trabajador no esta dentro de la lista de claves de Trabajador.
                elif clave not in listaClaves:
                    #Se lee el nombre que se introduce en la aplicación y se agrega a la variable nombre.
                    nombre = self.Nombre.text()
                    #Se lee el apellido paterno que se introduce en la aplicación y se agrega a la variable apellidoP.
                    apellidoP = self.ApellidoP.text()
                    #Se lee el apellido materno que se introduce en la aplicación y se agrega a la variable apellidoM.
                    apellidoM = self.ApellidoM.text()
                    #Se lee la fecha de ingreso que se introduce en la aplicación y se agrega a la variable fechaIngreso.
                    fechaIngreso = self.Fecha.text()
                    #Se lee el telefono que se introduce en la aplicación y se agrega a la variable Telefono.
                    Telefono = self.Telefono.text()
                    #Se cambia el valor a entero y se guarda en la variable telefono. Ya que en la base se tiene como Entero.
                    telefono = int(Telefono)
                    #Se lee el valor de usuario que se introduce en la aplicación y se agrega a la variable usuario.
                    usuario = self.Usuario.text()
                    #Se lee el valor de contraseña que se introduce en la aplicación y se agrega a la variable contraseña.
                    contraseña = self.Contra.text()
                    #Se lee el valor de clavePuesto que se introduce en la aplicación y se agrega a la variable cpuesto.
                    cpuesto = self.CPuesto.text()
                    #Guardar valores en un diccionario, con una clave que distinga cada uno.
                    valores = {
                        "clave": clave,
                        "nombre": nombre,
                        "apellidoP": apellidoP,
                        "apellidoM": apellidoM,
                        "fechaI": fechaIngreso,
                        "telefono": telefono,
                        "usuario": usuario,
                        "contraseña": contraseña,
                        "puesto": cpuesto
                    }
                    #Ejecutar la linea de INSERT con las llaves del diccionario valores.
                    micursor.execute(
                        "INSERT INTO Trabajador VALUES(:clave,:nombre,:apellidoP,:apellidoM,:fechaI,:telefono,:usuario,:contraseña,:puesto)",
                        valores)
                    #Se abre la ventana con el aviso que los datos han sido agregados exitosamente.
                    self.ventana = QtWidgets.QMainWindow()
                    self.ui = Ui_DatosAgregados()
                    self.ui.setupUi(self.ventana)
                    self.ventana.show()
        #Excepcion por si ocurre un error con sqlite3.
        except Error as e:
            print(e)
        #Excepción por si no se llenan los campos necesarios.
        except:
            #Ventana que muestra el mensaje donde se piden llenar todos los campos.
            self.ventana = QtWidgets.QMainWindow()
            self.ui = Ui_Alerta()
            self.ui.setupUi(self.ventana)
            self.ventana.show()

    #Asignación de texto a los botones y labels.
    def retranslateUi(self, NuevoTrabajador):
        _translate = QtCore.QCoreApplication.translate
        NuevoTrabajador.setWindowTitle(
            _translate("NuevoTrabajador", "MainWindow"))
        self.label_5.setText(
            _translate(
                "NuevoTrabajador",
                "<html><head/><body><p align=\"center\"><span style=\" font-size:14pt; font-weight:600;\">NUEVO TRABAJADOR</span></p></body></html>"
            ))
        self.label.setText(
            _translate(
                "NuevoTrabajador",
                "<html><head/><body><p align=\"center\">CLAVE</p></body></html>"
            ))
        self.label_2.setText(
            _translate(
                "NuevoTrabajador",
                "<html><head/><body><p align=\"center\">NOMBRE</p></body></html>"
            ))
        self.label_6.setText(
            _translate(
                "NuevoTrabajador",
                "<html><head/><body><p align=\"center\">APELLIDO PATERNO</p></body></html>"
            ))
        self.label_7.setText(
            _translate(
                "NuevoTrabajador",
                "<html><head/><body><p align=\"center\">APELLIDO MATERNO</p></body></html>"
            ))
        self.label_8.setText(
            _translate(
                "NuevoTrabajador",
                "<html><head/><body><p align=\"center\">FECHA INGRESO</p></body></html>"
            ))
        self.label_9.setText(
            _translate(
                "NuevoTrabajador",
                "<html><head/><body><p align=\"center\">TELÉFONO</p></body></html>"
            ))
        self.label_10.setText(
            _translate(
                "NuevoTrabajador",
                "<html><head/><body><p align=\"center\">CONTRASEÑA</p></body></html>"
            ))
        self.label_11.setText(
            _translate(
                "NuevoTrabajador",
                "<html><head/><body><p align=\"center\">CLAVE PUESTO</p></body></html>"
            ))
        self.label_12.setText(
            _translate(
                "NuevoTrabajador",
                "<html><head/><body><p align=\"center\">USUARIO</p></body></html>"
            ))
        self.Agregar.setText(_translate("NuevoTrabajador", "AGREGAR"))
        self.Verificar.setText(_translate("NuevoTrabajador", "VERIFICAR"))
        self.Limpiar.setText(_translate("NuevoTrabajador", "LIMPIAR"))
class Ui_ActualizarProducto(object):
    def setupUi(self, ActualizarProducto):
        ActualizarProducto.setObjectName("ActualizarProducto")
        ActualizarProducto.resize(312, 344)
        ActualizarProducto.setStyleSheet(
            "background-color: rgb(226, 230, 255);")
        self.centralwidget = QtWidgets.QWidget(ActualizarProducto)
        self.centralwidget.setObjectName("centralwidget")
        self.label_5 = QtWidgets.QLabel(self.centralwidget)
        self.label_5.setGeometry(QtCore.QRect(0, 0, 301, 51))
        self.label_5.setObjectName("label_5")
        self.label = QtWidgets.QLabel(self.centralwidget)
        self.label.setGeometry(QtCore.QRect(20, 69, 91, 21))
        self.label.setStyleSheet("border-color: rgb(0, 0, 0);\n"
                                 "gridline-color: rgb(0, 0, 0);")
        self.label.setObjectName("label")
        self.label_2 = QtWidgets.QLabel(self.centralwidget)
        self.label_2.setGeometry(QtCore.QRect(30, 110, 61, 16))
        self.label_2.setObjectName("label_2")
        self.label_3 = QtWidgets.QLabel(self.centralwidget)
        self.label_3.setGeometry(QtCore.QRect(20, 150, 81, 16))
        self.label_3.setObjectName("label_3")
        self.label_6 = QtWidgets.QLabel(self.centralwidget)
        self.label_6.setGeometry(QtCore.QRect(10, 190, 101, 20))
        self.label_6.setObjectName("label_6")
        self.label_7 = QtWidgets.QLabel(self.centralwidget)
        self.label_7.setGeometry(QtCore.QRect(10, 230, 101, 20))
        self.label_7.setObjectName("label_7")
        self.ClaveP = QtWidgets.QLineEdit(self.centralwidget)
        self.ClaveP.setGeometry(QtCore.QRect(130, 60, 161, 31))
        self.ClaveP.setStyleSheet("background-color: rgb(255, 255, 255);")
        self.ClaveP.setObjectName("ClaveP")
        self.Nombre = QtWidgets.QLineEdit(self.centralwidget)
        self.Nombre.setGeometry(QtCore.QRect(130, 100, 161, 31))
        self.Nombre.setStyleSheet("background-color: rgb(255, 255, 255);")
        self.Nombre.setObjectName("Nombre")
        self.Precio = QtWidgets.QLineEdit(self.centralwidget)
        self.Precio.setGeometry(QtCore.QRect(130, 140, 161, 31))
        self.Precio.setStyleSheet("background-color: rgb(255, 255, 255);")
        self.Precio.setObjectName("Precio")
        self.Inventario = QtWidgets.QLineEdit(self.centralwidget)
        self.Inventario.setGeometry(QtCore.QRect(130, 180, 161, 31))
        self.Inventario.setStyleSheet("background-color: rgb(255, 255, 255);")
        self.Inventario.setObjectName("Inventario")
        self.Proveedor = QtWidgets.QLineEdit(self.centralwidget)
        self.Proveedor.setGeometry(QtCore.QRect(130, 220, 161, 31))
        self.Proveedor.setStyleSheet("background-color: rgb(255, 255, 255);")
        self.Proveedor.setObjectName("Proveedor")
        self.Verificar = QtWidgets.QPushButton(self.centralwidget)
        self.Verificar.setGeometry(QtCore.QRect(120, 271, 75, 23))
        self.Verificar.setStyleSheet("background-color: rgb(255, 255, 255);")
        self.Verificar.setObjectName("Verificar")
        self.Limpiar = QtWidgets.QPushButton(self.centralwidget)
        self.Limpiar.setGeometry(QtCore.QRect(20, 271, 75, 23))
        self.Limpiar.setStyleSheet("background-color: rgb(255, 255, 255);")
        self.Limpiar.setObjectName("Limpiar")
        self.Actualizar = QtWidgets.QPushButton(self.centralwidget)
        self.Actualizar.setGeometry(QtCore.QRect(220, 270, 75, 23))
        self.Actualizar.setStyleSheet("background-color: rgb(255, 255, 255);")
        self.Actualizar.setObjectName("Actualizar")
        ActualizarProducto.setCentralWidget(self.centralwidget)
        self.menubar = QtWidgets.QMenuBar(ActualizarProducto)
        self.menubar.setGeometry(QtCore.QRect(0, 0, 312, 21))
        self.menubar.setObjectName("menubar")
        ActualizarProducto.setMenuBar(self.menubar)
        self.statusbar = QtWidgets.QStatusBar(ActualizarProducto)
        self.statusbar.setObjectName("statusbar")
        ActualizarProducto.setStatusBar(self.statusbar)

        self.retranslateUi(ActualizarProducto)
        #Boton Limpiar para limpiar todos los campos
        self.Limpiar.clicked.connect(self.ClaveP.clear)
        self.Limpiar.clicked.connect(self.Nombre.clear)
        self.Limpiar.clicked.connect(self.Precio.clear)
        self.Limpiar.clicked.connect(self.Inventario.clear)
        self.Limpiar.clicked.connect(self.Proveedor.clear)
        QtCore.QMetaObject.connectSlotsByName(ActualizarProducto)
        #Botones programados
        #Boton que permite actualizar la información en la base de datos.
        self.Actualizar.clicked.connect(self.UpdateData)
        #Boton que permite verificar que la información cargada en la aplicación sea válida.
        self.Verificar.clicked.connect(self.VerificarDatos)

    #Función que permite verificar que la información dada por el usuario sea válida para cargar.
    def VerificarDatos(self):
        #Try para excepciones.
        try:
            #Conexión a la base de datos
            with sqlite3.connect("PIA_1845788.db") as conn:
                #Definir nuestro cursor.
                micursor = conn.cursor()
                #Leer clave de producto que se introduce en nuestra ventana de Actualizar Producto.
                Clave = self.ClaveP.text()
                #Convertir la clave a entero.Ya que en la base se tiene como Entero.
                clave = int(Clave)
                #Ejecutar una línea que nos permite obtener todas las claves guardadas en Producto.
                micursor.execute("SELECT Clave_Producto FROM Producto")
                #Guardar los resultados en la variable claveP.
                claveP = micursor.fetchall()
                #Declarar una lista donde se guardaran las claves de producto.
                listaClaves = []
                #Ciclo para el unpack del resultado de claveP.
                for dato in claveP:
                    for n in dato:
                        ClaveP = int(n)
                        #Agregar cada clave a la lista de listaClaves.
                        listaClaves.append(ClaveP)
                #Leer clave de proveedor que se introduce en nuestra ventana de Agregar Producto.
                ClaveP = self.Proveedor.text()
                #Convertir la clave a entero.Ya que en la base se tiene como Entero.
                clavePro = int(ClaveP)
                #Ejecutar una línea que nos permite obtener todas las claves guardadas en Proveedor
                micursor.execute("SELECT Clave_Proveedor FROM Proveedor")
                #Guardar los resultados en la variable clavePro
                ClavePro = micursor.fetchall()
                #Declarar una lista donde se guardaran las claves de proveedores.
                listaClavesP = []
                #Ciclo para el unpack del resultado de clavePro
                for dato in ClavePro:
                    for n in dato:
                        clavepro = int(n)
                        #Agregar cada clave a la lista de listaClavesP.
                        listaClavesP.append(clavepro)
                #ESTO ES UNA DOBLE VERIFICACIÓN YA QUE TAMBIÉN SE HACE EN LA FUNCIÓN DE ACTUALIZAR.
                #Si la clave de producto que introdujo el usuario esta dentro de listaClaves y la clave de proveedor en listaClavesP.
                if clave in listaClaves and clavePro in listaClavesP:
                    #Se muestra una ventana donde se avisa que la clave es existente. (Hablando de ambas claves)
                    self.ventana = QtWidgets.QMainWindow()
                    self.ui = Ui_ClaveExistente()
                    self.ui.setupUi(self.ventana)
                    self.ventana.show()
                #Si la clave del producto que introdujo el usuario NO se encuentra dentro de listaClaves.
                elif clave not in listaClaves:
                    #Se muestra una ventana donde se avisa que la clave de producto no existe, por lo tanto no se puede actualizar.
                    self.ventana = QtWidgets.QMainWindow()
                    self.ui = Ui_ClaveInexistenteUP()
                    self.ui.setupUi(self.ventana)
                    self.ventana.show()
                #Si la clave del proveedor que introdujo el usuario NO se encuentra dentro de listaClavesP:
                elif clavePro not in listaClavesP:
                    #Se muestra una ventana donde se avisa que la clave de proveedor no existe, por lo tanto no se puede actualizar.
                    self.ventana = QtWidgets.QMainWindow()
                    self.ui = Ui_ClaveInexistenteProveedor()
                    self.ui.setupUi(self.ventana)
                    self.ventana.show()
        #Excepcion por si ocurre un error con sqlite3.
        except Error as e:
            print(e)
        #Excepción por si no se llenan los campos necesarios
        except:
            #Ventana que muestra el mensaje donde se piden llenar todos los campos.
            self.ventana = QtWidgets.QMainWindow()
            self.ui = Ui_Alerta()
            self.ui.setupUi(self.ventana)
            self.ventana.show()

    #Función que nos permite verificar y actualizar la información obtenida mediante la aplicación en la base de datos.
    def UpdateData(self):
        #Try para excepciones.
        try:
            #Conexión a la base de datos
            with sqlite3.connect("PIA_1845788.db") as conn:
                #Definir nuestro cursor.
                micursor = conn.cursor()
                #Leer clave de producto que se introduce en nuestra ventana de Actualizar Producto.
                Clave = self.ClaveP.text()
                #Convertir la clave a entero.Ya que en la base se tiene como Entero.
                clave = int(Clave)
                #Ejecutar una línea que nos permite obtener todas las claves guardadas en Producto.
                micursor.execute("SELECT Clave_Producto FROM Producto")
                #Guardar los resultados en la variable claveP.
                claveP = micursor.fetchall()
                #Declarar una lista donde se guardaran las claves de producto.
                listaClaves = []
                #Ciclo para el unpack del resultado de claveP.
                for dato in claveP:
                    for n in dato:
                        ClaveP = int(n)
                        #Agregar cada clave a la lista de listaClaves.
                        listaClaves.append(ClaveP)
                #Leer clave de proveedor que se introduce en nuestra ventana de Agregar Producto.
                ClaveP = self.Proveedor.text()
                #Convertir la clave a entero.Ya que en la base se tiene como Entero.
                clavePro = int(ClaveP)
                #Ejecutar una línea que nos permite obtener todas las claves guardadas en Proveedor
                micursor.execute("SELECT Clave_Proveedor FROM Proveedor")
                #Guardar los resultados en la variable clavePro
                ClavePro = micursor.fetchall()
                #Declarar una lista donde se guardaran las claves de proveedores.
                listaClavesP = []
                #Ciclo para el unpack del resultado de clavePro
                for dato in ClavePro:
                    for n in dato:
                        clavepro = int(n)
                        #Agregar cada clave a la lista de listaClavesP.
                        listaClavesP.append(clavepro)
                #ESTO ES UNA DOBLE VERIFICACIÓN YA QUE TAMBIÉN SE HACE EN LA FUNCIÓN DE ACTUALIZAR.
                #Si la clave de producto que introdujo el usuario esta dentro de listaClaves y la clave de proveedor en listaClavesP.
                if clave in listaClaves and clavePro in listaClavesP:
                    #Se lee el nombre que se introduce en la aplicación y se agrega a la variable nombre.
                    nombre = self.Nombre.text()
                    #Se lee el precio que se introduce en la aplicación y se agrega a la variable Precio.
                    Precio = self.Precio.text()
                    #Se cambia el valor a float y se guarda en la variable precio. Ya que en la base se tiene como float.
                    precio = float(Precio)
                    #Se lee el inventario que se introduce en la aplicación y se agrega a la variable Inventario.
                    Inventario = self.Inventario.text()
                    #Se cambia el valor a entero y se guarda en la variable inventario. Ya que en la base se tiene como Entero.
                    inventario = int(Inventario)
                    #Se lee la clave que se introduce en la aplicación y se agrega a la variable Proveedor.
                    Proveedor = self.Proveedor.text()
                    #Se cambia el valor a entero y se guarda en la variable proveedor. Ya que en la base se tiene como Entero.
                    proveedor = int(Proveedor)
                    #VARIABLE DONDE SE GUARDA LA LINEA PARA ACTUALIZAR LA INFORMACIÓN DE PRODUCTO.
                    query = """UPDATE Producto SET Nombre = ?, Precio = ?, Inventario = ?, Clave_Proveedor = ? WHERE Clave_Producto = ?"""
                    #VARIABLE DONDE SE GUARDAN LAS VARIABLES QUE CONTIENEN LA INFORMACION QUE SE GUARDARA.
                    inputData = (nombre, precio, inventario, proveedor, clave)
                    #Se ejecuta las variables en conjunto, permitiendo actualizar la información.
                    micursor.execute(query, inputData)
                    #Ventana donde aparece que los datos fueron actualizados correctamente.
                    self.ventana = QtWidgets.QMainWindow()
                    self.ui = Ui_DatosActualizados()
                    self.ui.setupUi(self.ventana)
                    self.ventana.show()
                #Si la clave del producto que introdujo el usuario NO se encuentra dentro de listaClaves.
                elif clave not in listaClaves:
                    #Se muestra una ventana donde se avisa que la clave de producto no existe, por lo tanto no se puede actualizar.
                    self.ventana = QtWidgets.QMainWindow()
                    self.ui = Ui_ClaveInexistenteUP()
                    self.ui.setupUi(self.ventana)
                    self.ventana.show()
                #Si la clave del proveedor que introdujo el usuario NO se encuentra dentro de listaClavesP:
                elif clavePro not in listaClavesP:
                    #Se muestra una ventana donde se avisa que la clave de proveedor no existe, por lo tanto no se puede actualizar.
                    self.ventana = QtWidgets.QMainWindow()
                    self.ui = Ui_ClaveInexistenteProveedor()
                    self.ui.setupUi(self.ventana)
                    self.ventana.show()
        #Excepcion por si ocurre un error con sqlite3.
        except Error as e:
            print(e)
        #Excepción por si no se llenan los campos necesarios
        except:
            #Ventana que muestra el mensaje donde se piden llenar todos los campos.
            self.ventana = QtWidgets.QMainWindow()
            self.ui = Ui_Alerta()
            self.ui.setupUi(self.ventana)
            self.ventana.show()

    #Asignación de texto a los botones y labels.
    def retranslateUi(self, ActualizarProducto):
        _translate = QtCore.QCoreApplication.translate
        ActualizarProducto.setWindowTitle(
            _translate("ActualizarProducto", "MainWindow"))
        self.label_5.setText(
            _translate(
                "ActualizarProducto",
                "<html><head/><body><p align=\"center\"><span style=\" font-size:14pt; font-weight:600;\">ACTUALIZAR PRODUCTO</span></p></body></html>"
            ))
        self.label.setText(
            _translate(
                "ActualizarProducto",
                "<html><head/><body><p align=\"center\">CLAVE</p></body></html>"
            ))
        self.label_2.setText(
            _translate(
                "ActualizarProducto",
                "<html><head/><body><p align=\"center\">NOMBRE</p></body></html>"
            ))
        self.label_3.setText(
            _translate(
                "ActualizarProducto",
                "<html><head/><body><p align=\"center\">PRECIO</p></body></html>"
            ))
        self.label_6.setText(
            _translate(
                "ActualizarProducto",
                "<html><head/><body><p align=\"center\">INVENTARIO</p></body></html>"
            ))
        self.label_7.setText(
            _translate(
                "ActualizarProducto",
                "<html><head/><body><p align=\"center\">PROVEEDOR</p></body></html>"
            ))
        self.Verificar.setText(_translate("ActualizarProducto", "VERIFICAR"))
        self.Limpiar.setText(_translate("ActualizarProducto", "LIMPIAR"))
        self.Actualizar.setText(_translate("ActualizarProducto", "ACTUALIZAR"))
class Ui_NuevoCliente(object):
    def setupUi(self, NuevoCliente):
        NuevoCliente.setObjectName("NuevoCliente")
        NuevoCliente.resize(314, 398)
        NuevoCliente.setStyleSheet("background-color: rgb(226, 230, 255);")
        self.centralwidget = QtWidgets.QWidget(NuevoCliente)
        self.centralwidget.setObjectName("centralwidget")
        self.label_5 = QtWidgets.QLabel(self.centralwidget)
        self.label_5.setGeometry(QtCore.QRect(0, 0, 311, 51))
        self.label_5.setObjectName("label_5")
        self.label = QtWidgets.QLabel(self.centralwidget)
        self.label.setGeometry(QtCore.QRect(30, 69, 91, 21))
        self.label.setStyleSheet("border-color: rgb(0, 0, 0);\n"
"gridline-color: rgb(0, 0, 0);")
        self.label.setObjectName("label")
        self.label_2 = QtWidgets.QLabel(self.centralwidget)
        self.label_2.setGeometry(QtCore.QRect(40, 110, 61, 16))
        self.label_2.setObjectName("label_2")
        self.label_3 = QtWidgets.QLabel(self.centralwidget)
        self.label_3.setGeometry(QtCore.QRect(30, 280, 81, 16))
        self.label_3.setObjectName("label_3")
        self.label_4 = QtWidgets.QLabel(self.centralwidget)
        self.label_4.setGeometry(QtCore.QRect(30, 230, 81, 16))
        self.label_4.setObjectName("label_4")
        self.label_6 = QtWidgets.QLabel(self.centralwidget)
        self.label_6.setGeometry(QtCore.QRect(20, 150, 101, 20))
        self.label_6.setObjectName("label_6")
        self.label_7 = QtWidgets.QLabel(self.centralwidget)
        self.label_7.setGeometry(QtCore.QRect(20, 190, 101, 20))
        self.label_7.setObjectName("label_7")
        self.Cargar = QtWidgets.QPushButton(self.centralwidget)
        self.Cargar.setGeometry(QtCore.QRect(120, 330, 75, 23))
        self.Cargar.setStyleSheet("background-color: rgb(255, 255, 255);")
        self.Cargar.setObjectName("Cargar")
        self.Limpiar = QtWidgets.QPushButton(self.centralwidget)
        self.Limpiar.setGeometry(QtCore.QRect(20, 330, 75, 23))
        self.Limpiar.setStyleSheet("background-color: rgb(255, 255, 255);")
        self.Limpiar.setObjectName("Limpiar")
        self.Agregar = QtWidgets.QPushButton(self.centralwidget)
        self.Agregar.setGeometry(QtCore.QRect(220, 330, 75, 23))
        self.Agregar.setStyleSheet("background-color: rgb(255, 255, 255);")
        self.Agregar.setObjectName("Agregar")
        self.claveC = QtWidgets.QLineEdit(self.centralwidget)
        self.claveC.setGeometry(QtCore.QRect(130, 60, 161, 31))
        self.claveC.setStyleSheet("background-color: rgb(255, 255, 255);")
        self.claveC.setObjectName("claveC")
        self.Nombre = QtWidgets.QLineEdit(self.centralwidget)
        self.Nombre.setGeometry(QtCore.QRect(130, 100, 161, 31))
        self.Nombre.setStyleSheet("background-color: rgb(255, 255, 255);")
        self.Nombre.setObjectName("Nombre")
        self.ApellidoP = QtWidgets.QLineEdit(self.centralwidget)
        self.ApellidoP.setGeometry(QtCore.QRect(130, 140, 161, 31))
        self.ApellidoP.setStyleSheet("background-color: rgb(255, 255, 255);")
        self.ApellidoP.setObjectName("ApellidoP")
        self.ApellidoM = QtWidgets.QLineEdit(self.centralwidget)
        self.ApellidoM.setGeometry(QtCore.QRect(130, 180, 161, 31))
        self.ApellidoM.setStyleSheet("background-color: rgb(255, 255, 255);")
        self.ApellidoM.setObjectName("ApellidoM")
        self.Telefono = QtWidgets.QLineEdit(self.centralwidget)
        self.Telefono.setGeometry(QtCore.QRect(130, 220, 161, 31))
        self.Telefono.setStyleSheet("background-color: rgb(255, 255, 255);")
        self.Telefono.setObjectName("Telefono")
        self.Direccion = QtWidgets.QLineEdit(self.centralwidget)
        self.Direccion.setGeometry(QtCore.QRect(130, 260, 161, 51))
        self.Direccion.setStyleSheet("background-color: rgb(255, 255, 255);")
        self.Direccion.setObjectName("Direccion")
        NuevoCliente.setCentralWidget(self.centralwidget)
        self.menubar = QtWidgets.QMenuBar(NuevoCliente)
        self.menubar.setGeometry(QtCore.QRect(0, 0, 314, 21))
        self.menubar.setObjectName("menubar")
        NuevoCliente.setMenuBar(self.menubar)
        self.statusbar = QtWidgets.QStatusBar(NuevoCliente)
        self.statusbar.setObjectName("statusbar")
        NuevoCliente.setStatusBar(self.statusbar)

        self.retranslateUi(NuevoCliente)
        #Boton Limpiar para limpiar todos los campos.
        self.Limpiar.clicked.connect(self.claveC.clear)
        self.Limpiar.clicked.connect(self.Nombre.clear)
        self.Limpiar.clicked.connect(self.ApellidoP.clear)
        self.Limpiar.clicked.connect(self.ApellidoM.clear)
        self.Limpiar.clicked.connect(self.Telefono.clear)
        self.Limpiar.clicked.connect(self.Direccion.clear)
        QtCore.QMetaObject.connectSlotsByName(NuevoCliente)
        #Botones programados
        #Boton que permite agregar la información a la base de datos
        self.Agregar.clicked.connect(self.LoadData)
        #Boton que permite verificar que la información cargada en la aplicación sea válida.
        self.Cargar.clicked.connect(self.Verificar)

    #Función que permite verificar que la información dada por el usuario sea válida para cargar.
    def Verificar(self):
        #Try para excepciones.
        try:
            #Conexión a la base de datos
            with sqlite3.connect("PIA_1845788.db") as conn:
                #Definir nuestro cursor.
                micursor = conn.cursor()
                #Leer clave de cliente que se introduce en nuestra ventana de Agregar Cliente.
                Clave = self.claveC.text()
                #Convertir la clave a entero.Ya que en la base se tiene como Entero.
                clave = int(Clave)
                #Ejecutar una línea que nos permite obtener todas las claves guardadas en Cliente.
                micursor.execute("SELECT Clave_Cliente FROM Cliente")
                #Guardar los resultados en la variable claveC
                claveC = micursor.fetchall()
                #Declarar una lista donde se guardaran las claves de cliente.
                listaClaves = []
                #Ciclo para el unpack del resultado de claveC.    
                for dato in claveC:
                    for n in dato:
                        ClaveC= int(n)
                        #Agregar cada clave a la lista de listaClaves
                        listaClaves.append(ClaveC)
                #ESTO ES UNA DOBLE VERIFICACIÓN YA QUE TAMBIÉN SE HACE EN LA FUNCIÓN DE AGREGAR.
                #Si la clave que introdujo el usuario esta dentro de la lista de claves.
                if clave in listaClaves:
                    #Se muestra una ventana donde avisa que la clave ya esta ocupada y que intente con otra.
                    self.ventana = QtWidgets.QMainWindow()
                    self.ui = Ui_ClaveExistente()
                    self.ui.setupUi(self.ventana)
                    self.ventana.show()
                #Si la clave del proveedor no esta dentro de la lista de claves de Proveedor. 
                else:
                    #Se muestra la ventana donde se avisa que la clave esta disponible y por lo tanto puede proseguir.
                    self.ventana = QtWidgets.QMainWindow()
                    self.ui = Ui_ClaveInexistente()
                    self.ui.setupUi(self.ventana)
                    self.ventana.show()
        #Excepcion por si ocurre un error con sqlite3.
        except Error as e:
            print(e)
        #Excepción por si no se llenan los campos necesarios.
        except:
            #Ventana que muestra el mensaje donde se piden llenar todos los campos.
            self.ventana = QtWidgets.QMainWindow()
            self.ui = Ui_Alerta()
            self.ui.setupUi(self.ventana)
            self.ventana.show()
            
    def LoadData(self):
        #Try para excepciones.
        try:
            #Conexión a la base de datos
            with sqlite3.connect("PIA_1845788.db") as conn:
                #Definir nuestro cursor.
                micursor = conn.cursor()
                #Leer clave de cliente que se introduce en nuestra ventana de Agregar Cliente.
                Clave = self.claveC.text()
                #Convertir la clave a entero.Ya que en la base se tiene como Entero.
                clave = int(Clave)
                #Ejecutar una línea que nos permite obtener todas las claves guardadas en Cliente.
                micursor.execute("SELECT Clave_Cliente FROM Cliente")
                #Guardar los resultados en la variable claveC
                claveC = micursor.fetchall()
                #Declarar una lista donde se guardaran las claves de cliente.
                listaClaves = []
                #Ciclo para el unpack del resultado de claveC.    
                for dato in claveC:
                    for n in dato:
                        ClaveC= int(n)
                        #Agregar cada clave a la lista de listaClaves
                        listaClaves.append(ClaveC)
                #ESTO ES UNA DOBLE VERIFICACIÓN YA QUE TAMBIÉN SE HACE EN LA FUNCIÓN DE AGREGAR.
                #Si la clave que introdujo el usuario esta dentro de la lista de claves.
                if clave in listaClaves:
                    #Se muestra una ventana donde avisa que la clave ya esta ocupada y que intente con otra.
                    self.ventana = QtWidgets.QMainWindow()
                    self.ui = Ui_ClaveExistente()
                    self.ui.setupUi(self.ventana)
                    self.ventana.show()
                #Si la clave del proveedor no esta dentro de la lista de claves de Proveedor. 
                else:
                    #Se lee el nombre que se introduce en la aplicación y se agrega a la variable nombre.
                    nombre = self.Nombre.text()
                    #Se lee el apellido paterno que se introduce en la aplicación y se agrega a la variable apellidoP.
                    apellidoP = self.ApellidoP.text()
                    #Se lee el apellido materno que se introduce en la aplicación y se agrega a la variable apellidoM.
                    apellidoM = self.ApellidoM.text()
                    #Se lee el telefono que se introduce en la aplicación y se agrega a la variable Telefono.
                    Telefono = self.Telefono.text()
                    #Se cambia el valor a entero y se guarda en la variable telefono. Ya que en la base se tiene como Entero.
                    telefono = int(Telefono)
                    #Se lee la direccion que se introduce en la aplicación y se agrega a la variable direccion.
                    direccion = self.Direccion.text()
                    #Guardar valores en un diccionario, con una clave que distinga cada uno.
                    valores = {"clave": clave, "nombre": nombre, "apellidoP": apellidoP, "apellidoM": apellidoM, "telefono": telefono, "direccion":direccion}
                    #Ejecutar la linea de INSERT con las llaves del diccionario valores.
                    micursor.execute("INSERT INTO Cliente VALUES(:clave,:nombre,:apellidoP,:apellidoM,:telefono,:direccion)", valores)
                    #Se abre la ventana con el aviso que los datos han sido agregados exitosamente.
                    self.ventana = QtWidgets.QMainWindow()
                    self.ui = Ui_DatosAgregados()
                    self.ui.setupUi(self.ventana)
                    self.ventana.show()
        #Excepcion por si ocurre un error con sqlite3.
        except Error as e:
            print(e)
        #Excepción por si no se llenan los campos necesarios.
        except:
            #Ventana que muestra el mensaje donde se piden llenar todos los campos.
            self.ventana = QtWidgets.QMainWindow()
            self.ui = Ui_Alerta()
            self.ui.setupUi(self.ventana)
            self.ventana.show()

    #Asignación de texto a los botones y labels. 
    def retranslateUi(self, NuevoCliente):
        _translate = QtCore.QCoreApplication.translate
        NuevoCliente.setWindowTitle(_translate("NuevoCliente", "MainWindow"))
        self.label_5.setText(_translate("NuevoCliente", "<html><head/><body><p align=\"center\"><span style=\" font-size:14pt; font-weight:600;\">NUEVO CLIENTE</span></p></body></html>"))
        self.label.setText(_translate("NuevoCliente", "<html><head/><body><p align=\"center\">CLAVE</p></body></html>"))
        self.label_2.setText(_translate("NuevoCliente", "<html><head/><body><p align=\"center\">NOMBRE</p></body></html>"))
        self.label_3.setText(_translate("NuevoCliente", "<html><head/><body><p align=\"center\">DIRECCIÓN</p></body></html>"))
        self.label_4.setText(_translate("NuevoCliente", "<html><head/><body><p align=\"center\">TELÉFONO</p></body></html>"))
        self.label_6.setText(_translate("NuevoCliente", "<html><head/><body><p align=\"center\">APELLIDO PATERNO</p></body></html>"))
        self.label_7.setText(_translate("NuevoCliente", "<html><head/><body><p align=\"center\">APELLIDO MATERNO</p></body></html>"))
        self.Cargar.setText(_translate("NuevoCliente", "VERIFICAR"))
        self.Limpiar.setText(_translate("NuevoCliente", "LIMPIAR"))
        self.Agregar.setText(_translate("NuevoCliente", "AGREGAR"))
class Ui_AgregarProducto(object):
    def setupUi(self, AgregarProducto):
        AgregarProducto.setObjectName("AgregarProducto")
        AgregarProducto.resize(312, 344)
        AgregarProducto.setStyleSheet("background-color: rgb(226, 230, 255);")
        self.centralwidget = QtWidgets.QWidget(AgregarProducto)
        self.centralwidget.setObjectName("centralwidget")
        self.label_5 = QtWidgets.QLabel(self.centralwidget)
        self.label_5.setGeometry(QtCore.QRect(0, 0, 301, 51))
        self.label_5.setObjectName("label_5")
        self.label = QtWidgets.QLabel(self.centralwidget)
        self.label.setGeometry(QtCore.QRect(20, 69, 91, 21))
        self.label.setStyleSheet("border-color: rgb(0, 0, 0);\n"
"gridline-color: rgb(0, 0, 0);")
        self.label.setObjectName("label")
        self.label_2 = QtWidgets.QLabel(self.centralwidget)
        self.label_2.setGeometry(QtCore.QRect(30, 110, 61, 16))
        self.label_2.setObjectName("label_2")
        self.label_3 = QtWidgets.QLabel(self.centralwidget)
        self.label_3.setGeometry(QtCore.QRect(20, 150, 81, 16))
        self.label_3.setObjectName("label_3")
        self.label_6 = QtWidgets.QLabel(self.centralwidget)
        self.label_6.setGeometry(QtCore.QRect(10, 190, 101, 20))
        self.label_6.setObjectName("label_6")
        self.label_7 = QtWidgets.QLabel(self.centralwidget)
        self.label_7.setGeometry(QtCore.QRect(10, 230, 101, 20))
        self.label_7.setObjectName("label_7")
        self.ClaveP = QtWidgets.QLineEdit(self.centralwidget)
        self.ClaveP.setGeometry(QtCore.QRect(130, 60, 161, 31))
        self.ClaveP.setStyleSheet("background-color: rgb(255, 255, 255);")
        self.ClaveP.setObjectName("ClaveP")
        self.Nombre = QtWidgets.QLineEdit(self.centralwidget)
        self.Nombre.setGeometry(QtCore.QRect(130, 100, 161, 31))
        self.Nombre.setStyleSheet("background-color: rgb(255, 255, 255);")
        self.Nombre.setObjectName("Nombre")
        self.Precio = QtWidgets.QLineEdit(self.centralwidget)
        self.Precio.setGeometry(QtCore.QRect(130, 140, 161, 31))
        self.Precio.setStyleSheet("background-color: rgb(255, 255, 255);")
        self.Precio.setObjectName("Precio")
        self.Inventario = QtWidgets.QLineEdit(self.centralwidget)
        self.Inventario.setGeometry(QtCore.QRect(130, 180, 161, 31))
        self.Inventario.setStyleSheet("background-color: rgb(255, 255, 255);")
        self.Inventario.setObjectName("Inventario")
        self.Proveedor = QtWidgets.QLineEdit(self.centralwidget)
        self.Proveedor.setGeometry(QtCore.QRect(130, 220, 161, 31))
        self.Proveedor.setStyleSheet("background-color: rgb(255, 255, 255);")
        self.Proveedor.setObjectName("Proveedor")
        self.Verificar = QtWidgets.QPushButton(self.centralwidget)
        self.Verificar.setGeometry(QtCore.QRect(120, 271, 75, 23))
        self.Verificar.setStyleSheet("background-color: rgb(255, 255, 255);")
        self.Verificar.setObjectName("Verificar")
        self.Limpiar = QtWidgets.QPushButton(self.centralwidget)
        self.Limpiar.setGeometry(QtCore.QRect(20, 271, 75, 23))
        self.Limpiar.setStyleSheet("background-color: rgb(255, 255, 255);")
        self.Limpiar.setObjectName("Limpiar")
        self.Agregar = QtWidgets.QPushButton(self.centralwidget)
        self.Agregar.setGeometry(QtCore.QRect(220, 270, 75, 23))
        self.Agregar.setStyleSheet("background-color: rgb(255, 255, 255);")
        self.Agregar.setObjectName("Agregar")
        AgregarProducto.setCentralWidget(self.centralwidget)
        self.menubar = QtWidgets.QMenuBar(AgregarProducto)
        self.menubar.setGeometry(QtCore.QRect(0, 0, 312, 21))
        self.menubar.setObjectName("menubar")
        AgregarProducto.setMenuBar(self.menubar)
        self.statusbar = QtWidgets.QStatusBar(AgregarProducto)
        self.statusbar.setObjectName("statusbar")
        AgregarProducto.setStatusBar(self.statusbar)

        self.retranslateUi(AgregarProducto)
        #Boton Limpiar para limpiar todos los campos.
        self.Limpiar.clicked.connect(self.ClaveP.clear)
        self.Limpiar.clicked.connect(self.Nombre.clear)
        self.Limpiar.clicked.connect(self.Precio.clear)
        self.Limpiar.clicked.connect(self.Inventario.clear)
        self.Limpiar.clicked.connect(self.Proveedor.clear)
        QtCore.QMetaObject.connectSlotsByName(AgregarProducto)
        #Botones programados
        #Boton que permite agregar la información a la base de datos.
        self.Agregar.clicked.connect(self.LoadData)
        #Boton que permite verificar que la información cargada en la aplicación sea válida.
        self.Verificar.clicked.connect(self.VerificarDatos)
        
    #Función que permite verificar que la información dada por el usuario sea válida para cargar.
    def VerificarDatos(self):
        #Try para excepciones.
        try:
            #Conexión a la base de datos
            with sqlite3.connect("PIA_1845788.db") as conn:
                    #Definir nuestro cursor.
                    micursor = conn.cursor()
                    #Leer clave de producto que se introduce en nuestra ventana de Agregar Producto.
                    Clave = self.ClaveP.text()
                    #Convertir la clave a entero.Ya que en la base se tiene como Entero.
                    clave = int(Clave)
                    #Ejecutar una línea que nos permite obtener todas las claves guardadas en Producto
                    micursor.execute("SELECT Clave_Producto FROM Producto")
                    #Guardar los resultados en la variable claveP
                    claveP = micursor.fetchall()
                    #Declarar una lista donde se guardaran las claves de producto.
                    listaClaves = []
                    #Ciclo para el unpack del resultado de claveP.
                    for dato in claveP:
                        for n in dato:
                            ClaveP= int(n)
                            #Agregar cada clave a la lista de listaClaves.
                            listaClaves.append(ClaveP)
                    #Leer clave de proveedor que se introduce en nuestra ventana de Agregar Producto.
                    ClaveP = self.Proveedor.text()
                    #Convertir la clave a entero.Ya que en la base se tiene como Entero.
                    clavePro = int(ClaveP)
                    #Ejecutar una línea que nos permite obtener todas las claves guardadas en Proveedor
                    micursor.execute("SELECT Clave_Proveedor FROM Proveedor")
                    #Guardar los resultados en la variable clavePro
                    ClavePro = micursor.fetchall()
                    #Declarar una lista donde se guardaran las claves de proveedores.
                    listaClavesP = []
                    #Ciclo para el unpack del resultado de clavePro
                    for dato in ClavePro:
                        for n in dato:
                            clavepro= int(n)
                            #Agregar cada clave a la lista de listaClavesP.
                            listaClavesP.append(clavepro)        
                    #ESTO ES UNA DOBLE VERIFICACIÓN YA QUE TAMBIÉN SE HACE EN LA FUNCIÓN DE AGREGAR.
                    #Si la clave que introdujo el usuario esta dentro de la lista de claves.
                    if clave in listaClaves:
                        #Se muestra una ventana donde avisa que la clave ya esta ocupada y que intente con otra.
                        self.ventana = QtWidgets.QMainWindow()
                        self.ui = Ui_ClaveExistente()
                        self.ui.setupUi(self.ventana)
                        self.ventana.show()
                    #Si la clave que introdujo el usuario en la clave proveedor NO existe muestra el siguiente mensaje.
                    elif clavePro not in listaClavesP:
                        #Ventana donde muestra que la clave de proveedor es inexistente, por lo tanto NO puede proseguir.
                        self.ventana = QtWidgets.QMainWindow()
                        self.ui = Ui_ClaveInexistenteProveedor()
                        self.ui.setupUi(self.ventana)
                        self.ventana.show()
                    #Si la clave del producto no esta dentro de la lista de claves de Productos.
                    elif clave not in listaClaves:
                        #Se muestra la ventana donde se avisa que la clave esta disponible y por lo tanto puede proseguir.
                        self.ventana = QtWidgets.QMainWindow()
                        self.ui = Ui_ClaveInexistente()
                        self.ui.setupUi(self.ventana)
                        self.ventana.show()    
        #Excepcion por si ocurre un error con sqlite3.
        except Error as e:
            print(e)
        #Excepción por si no se llenan los campos necesarios.
        except:
            #Ventana que muestra el mensaje donde se piden llenar todos los campos.
            self.ventana = QtWidgets.QMainWindow()
            self.ui = Ui_Alerta()
            self.ui.setupUi(self.ventana)
            self.ventana.show()
    
    #Función para leer y agregar los datos a la base.
    def LoadData(self):
        try:
            #Conexión a la base de datos
            with sqlite3.connect("PIA_1845788.db") as conn:
                #Definir nuestro cursor.
                micursor = conn.cursor()
                #Leer clave de producto que se introduce en nuestra ventana de Agregar Producto.
                Clave = self.ClaveP.text()
                #Convertir la clave a entero.Ya que en la base se tiene como Entero.
                clave = int(Clave)
                #Ejecutar una línea que nos permite obtener todas las claves guardadas en Producto
                micursor.execute("SELECT Clave_Producto FROM Producto")
                #Guardar los resultados en la variable claveP
                claveP = micursor.fetchall()
                #Declarar una lista donde se guardaran las claves de producto.
                listaClaves = []
                #Ciclo para el unpack del resultado de claveP.
                for dato in claveP:
                    for n in dato:
                        ClaveP= int(n)
                        #Agregar cada clave a la lista de listaClaves.
                        listaClaves.append(ClaveP)
                #Leer clave de proveedor que se introduce en nuestra ventana de Agregar Producto.
                ClaveP = self.Proveedor.text()
                #Convertir la clave a entero.Ya que en la base se tiene como Entero.
                clavePro = int(ClaveP)
                #Ejecutar una línea que nos permite obtener todas las claves guardadas en Proveedor
                micursor.execute("SELECT Clave_Proveedor FROM Proveedor")
                #Guardar los resultados en la variable clavePro
                ClavePro = micursor.fetchall()
                #Declarar una lista donde se guardaran las claves de proveedores.
                listaClavesP = []
                #Ciclo para el unpack del resultado de clavePro
                for dato in ClavePro:
                    for n in dato:
                        clavepro= int(n)
                        #Agregar cada clave a la lista de listaClavesP.
                        listaClavesP.append(clavepro)        
                #ESTO ES UNA DOBLE VERIFICACIÓN YA QUE TAMBIÉN SE HACE EN LA FUNCIÓN DE VERIFICAR.
                #Si la clave que introdujo el usuario esta dentro de la lista de claves.
                if clave in listaClaves:
                    #Se muestra una ventana donde avisa que la clave ya esta ocupada y que intente con otra.
                    self.ventana = QtWidgets.QMainWindow()
                    self.ui = Ui_ClaveExistente()
                    self.ui.setupUi(self.ventana)
                    self.ventana.show()
                #Si la clave que introdujo el usuario en la clave proveedor NO existe muestra el siguiente mensaje.
                elif clavePro not in listaClavesP:
                    #Ventana donde muestra que la clave de proveedor es inexistente, por lo tanto NO puede proseguir.
                    self.ventana = QtWidgets.QMainWindow()
                    self.ui = Ui_ClaveInexistenteProveedor()
                    self.ui.setupUi(self.ventana)
                    self.ventana.show()
                #Si la clave del producto no esta dentro de la lista de claves de Productos.
                elif clave not in listaClaves:
                    #Se lee el nombre que se introduce en la aplicación y se agrega a la variable nombre.
                    nombre = self.Nombre.text()
                    #Se lee el precio que se introduce en la aplicación y se agrega a la variable Precio.
                    Precio = self.Precio.text()
                    #Se cambia el valor a float y se guarda en la variable precio. Ya que en la base se tiene como float.
                    precio = float(Precio)
                    #Se lee el inventario que se introduce en la aplicación y se agrega a la variable Inventario.
                    Inventario = self.Inventario.text()
                    #Se cambia el valor a entero y se guarda en la variable inventario. Ya que en la base se tiene como Entero.
                    inventario = int(Inventario)
                    #Se lee la clave que se introduce en la aplicación y se agrega a la variable Proveedor.
                    Proveedor = self.Proveedor.text()
                    #Se cambia el valor a entero y se guarda en la variable proveedor. Ya que en la base se tiene como Entero.
                    proveedor = int(Proveedor)
                    #Guardar valores en un diccionario, con una clave que distinga cada uno.
                    valores = {"clave": clave, "nombre": nombre, "precio": precio, "inventario": inventario,"proveedor":proveedor}
                    #Ejecutar la linea de INSERT con las llaves del diccionario valores.
                    micursor.execute("INSERT INTO Producto VALUES(:clave,:nombre,:precio,:inventario,:proveedor)", valores)
                    #Se abre la ventana con el aviso que los datos han sido agregados exitosamente.
                    self.ventana = QtWidgets.QMainWindow()
                    self.ui = Ui_DatosAgregados()
                    self.ui.setupUi(self.ventana)
                    self.ventana.show()   
        #Excepcion por si ocurre un error con sqlite3.
        except Error as e:
            print(e)
        #Excepción por si no se llenan los campos necesarios.
        except:
            #Ventana que muestra el mensaje donde se piden llenar todos los campos.
            self.ventana = QtWidgets.QMainWindow()
            self.ui = Ui_Alerta()
            self.ui.setupUi(self.ventana)
            self.ventana.show()
            
    #Asignación de texto a los botones y labels. 
    def retranslateUi(self, AgregarProducto):
        _translate = QtCore.QCoreApplication.translate
        AgregarProducto.setWindowTitle(_translate("AgregarProducto", "MainWindow"))
        self.label_5.setText(_translate("AgregarProducto", "<html><head/><body><p align=\"center\"><span style=\" font-size:14pt; font-weight:600;\">NUEVO PRODUCTO</span></p></body></html>"))
        self.label.setText(_translate("AgregarProducto", "<html><head/><body><p align=\"center\">CLAVE</p></body></html>"))
        self.label_2.setText(_translate("AgregarProducto", "<html><head/><body><p align=\"center\">NOMBRE</p></body></html>"))
        self.label_3.setText(_translate("AgregarProducto", "<html><head/><body><p align=\"center\">PRECIO</p></body></html>"))
        self.label_6.setText(_translate("AgregarProducto", "<html><head/><body><p align=\"center\">INVENTARIO</p></body></html>"))
        self.label_7.setText(_translate("AgregarProducto", "<html><head/><body><p align=\"center\">PROVEEDOR</p></body></html>"))
        self.Verificar.setText(_translate("AgregarProducto", "VERIFICAR"))
        self.Limpiar.setText(_translate("AgregarProducto", "LIMPIAR"))
        self.Agregar.setText(_translate("AgregarProducto", "AGREGAR"))