Beispiel #1
0
class VentanaCliente(QDialog, cliente):
    paciente_user = Paciente()

    def __init__(self, parent =  None):
        QDialog.__init__(self, parent)
        self.setupUi(self)
        self.inicializar()

    def inicializar(self):
        self.btn_buscar.clicked.connect(self.buscar)
        self.btn_guardar.clicked.connect(self.guardar)
        self.btn_eliminar_todo.clicked.connect(self.eliminar)
        self.todos = self.paciente_user.consultar_todos()
        self.tb_pacientes.doubleClicked.connect(self.elegir_dobleclick)
        self.actualizarGrids()
        self.btn_cerrar.clicked.connect(self.closeEvent)

    def actualizarGrids(self):
        self.todos = self.paciente_user.consultar_todos()
        self.fillDataGrid(self.todos, self.tb_pacientes)
        self.fillDataGrid(self.todos, self.tb_eliminar)

    def elegir_dobleclick(self):
        rst = QMessageBox.warning(self,"Alerta","¿Esta seguro que desea editar?", QMessageBox.Cancel, QMessageBox.Ok)
        if rst != QMessageBox.Ok:
            self.paciente_user = Paciente()
            return
        selected = self.tb_pacientes.selectedIndexes()
        self.selected_index = selected.__getitem__(0)
        select = self.todos[self.selected_index.row()]
        self.paciente_user.id = select.id
        self.tabWidget.setCurrentWidget(self.tab_1)
        self.txt_nombre.setText(select.nombres)
        self.txt_apellido.setText(select.apellidos)
        self.txt_telefono.setText(select.telefono)
        self.txt_cedula.setText(select.cedula)
        self.txt_direccion.setText(select.direccion)

    def guardar(self):
        if self.paciente_user.id is None or self.paciente_user.id == 0:
            self.paciente_user = Paciente()
        self.paciente_user.nombres = self.txt_nombre.text()
        self.paciente_user.apellidos = self.txt_apellido.text()
        self.paciente_user.telefono = self.txt_telefono.text()
        self.paciente_user.cedula = self.txt_cedula.text()
        self.paciente_user.direccion = self.txt_direccion.text()
        if(self.paciente_user.guardar()):
            self.txt_nombre.setText('')
            self.txt_apellido.setText('')
            self.txt_telefono.setText('')
            self.txt_cedula.setText('')
            self.txt_direccion.setText('')
            QtWidgets.QMessageBox.information(self, '¡Enhorabuena!', 'Se ha registrado el doctor', QtWidgets.QMessageBox.Ok)
        else:
            QtWidgets.QMessageBox.warning(self, 'Error', 'Revisa los datos', QtWidgets.QMessageBox.Ok)
        self.actualizarGrids()

    def eliminar(self):
        try:
            selected = self.tb_eliminar.selectedIndexes()
            self.selected_index = selected.__getitem__(0)
            select = self.todos[self.selected_index.row()]
            paciente_user = Paciente()
            paciente_user.id = select.id
            rst=QMessageBox.warning(self,"Alerta","Esta seguro que desea eliminar", QMessageBox.Cancel, QMessageBox.Ok)
            if rst == QMessageBox.Ok:
                if(paciente_user.eliminar()):
                    QMessageBox.about(self,"¡Enhorabuena!", "Se ha eliminado al Paciente")
                else:
                    print('dd')
                    QMessageBox.warning(self,"Error", "Ha ocurrido un error")
        except:
            QMessageBox.about(self,"Error", "Ha ocurrido un error")
        self.actualizarGrids()

    def fillDataGrid(self, result, tb):
        model = QStandardItemModel()
        model.setColumnCount(len(self.paciente_user.headernames))
        model.setHorizontalHeaderLabels(self.paciente_user.headernames)
        pacientes = []
        for paciente_result in result:
          li = [paciente_result.nombres, paciente_result.apellidos, paciente_result.direccion, paciente_result.telefono, paciente_result.cedula]
          pacientes.append(li)
          row = []
          for name in li:
            item = QStandardItem(str(name))
            item.setEditable(False)
            row.append(item)
          model.appendRow(row)
        tb.setModel(model)
        return pacientes

    def buscar(self):
        texto = self.txt_buscar.text()
        if len(texto) < 1:
            self.actualizarGrids()
            QMessageBox.about(self,"Error", "No encontramos nada")
            return
        result = []
        if self.radioButton_nombre.isChecked():
           result = self.paciente_user.consultar_By_Atribute(texto, 'nombres')
        elif self.radioButton_apellido.isChecked():
           result = self.paciente_user.consultar_By_Atribute(texto, 'apellidos')
        elif self.radioButton_cedula.isChecked():
           result = self.paciente_user.consultar_By_Atribute(texto, 'cedula')
        self.fillDataGrid(result, self.tb_pacientes)

    def closeEvent(self):
        self.hide()