Exemplo n.º 1
0
 def editar(self, usuario, fila):
     item = self.tablaTurnos.item(fila, 0)
     datosTurno = Turno().traerTurno(item.text())
     #Abre la ventana de edicion de turno
     fechaActual = datetime.datetime.today()
     if datosTurno[0][3] < fechaActual:
         QMessageBox.information(
             self, "Error",
             "No se puede editar un turno con fecha anterior a la actual",
             QMessageBox.Ok)
     else:
         dialogo = VentanaEditarTurno(usuario, datosTurno)
         if dialogo.exec_() == 0:
             mostrar_turnos = Turno().mostrar_turnos()
             self.cargarTurnosALaTabla(mostrar_turnos)
Exemplo n.º 2
0
 def seleccionarFiltro(self, i):
     # Segun el filtro que eligas traera algunos valores
     filtro = self.comboBoxFiltro.itemText(i)
     if filtro == "Turnos":
         self.campoBusqueda.show()
         self.dateTimeEdit.hide()
         self.botonBuscar.clicked.connect(lambda: self.buscarT())
     elif filtro == "Paciente":
         self.campoBusqueda.show()
         self.dateTimeEdit.hide()
         # Al cliquear en el buscador, busca los nombre o apellidos que se paresca a lo escrito.
         self.botonBuscar.clicked.connect(lambda: self.buscarP())
     elif filtro == "Medico":
         self.campoBusqueda.show()
         self.dateTimeEdit.hide()
         self.botonBuscar.clicked.connect(lambda: self.buscarM())
     elif filtro == "-------":
         self.campoBusqueda.show()
         self.dateTimeEdit.hide()
         mostrar_turnos = Turno().mostrar_turnos()
         self.cargarTurnosALaTabla(mostrar_turnos)
     elif filtro == "Fecha":
         self.campoBusqueda.hide()
         self.dateTimeEdit.show()
         self.botonBuscar.clicked.connect(lambda: self.buscarF())
Exemplo n.º 3
0
	def cargarCitas(self):
		self.agenda.clearContents()
		desde =self._rango[0]
		hasta = self._rango[-1]
		turnos = Turno().mostrar_turnos(desde,hasta)
		# por cada uno de los turnos que traemos de la base de datos
		for turno in turnos:
			# obtenemos la columna correspondiente al día del self._rango especifico
			columna=self._rango.index(turno[0])
			# obtenemos la fila que se corresponde con un self._rango de hora en particular
			fila = turno[1] - 6
			# acá creo el layout (es un contenedor) que va a contener a los botones de manera horizaontal
			caja = QHBoxLayout()
			# acá creo los botones (se pueden costumizar para que tengan un icon hay que investigar nomas)
			boton1 = QPushButton(str(turno[2]))
			#
			# acá agrego al contenedor los botones creados
			caja.addWidget(boton1)
			# acá creo un elemento del tipo celda 
			celda = QWidget()
			# aca introduzco el layout con los botones dentro del elemento del tipo celda
			celda.setLayout(caja)
			# acá agrego el elemento celda con los botones ya cargados dentro 
			# de la tabla en la posicion (0,0)
			self.agenda.setCellWidget(fila,columna,celda)
			# acá le agrego la funcion que se ejecuta cada vez que el boton escucha el evento de clicked
			boton1.clicked.connect(lambda *args,hora=turno[1], fecha=turno[0]: self.goToFilter(fecha,hora))
			self.agenda.resizeRowsToContents()
Exemplo n.º 4
0
 def borrar(self, fila):
     item = self.tablaTurnos.item(fila, 0)
     resultado = QMessageBox.question(
         self, "Borrar!", "Seguro que desea eliminar el turno?",
         QMessageBox.Yes | QMessageBox.No)
     if resultado == QMessageBox.Yes:
         self.usuario.borrarTurno(item.text())
         mostrar_turnos = Turno().mostrar_turnos()
         self.cargarTurnosALaTabla(mostrar_turnos)
Exemplo n.º 5
0
    def __init__(self, usuario, datosTurno, fechaHora=None):
        self.usuario = usuario
        QDialog.__init__(self)
        uic.loadUi("View/VentanaEditarTurno.ui", self)
        #Cargar todos los datos del turno para luego editarlo
        self.turno = Turno(datosTurno[0][0], datosTurno[0][1],
                           datosTurno[0][2], datosTurno[0][3])
        self.Campo_DNI_Medico.setText(str(self.turno.getMedico()))
        self.campo_hora_fecha.setDateTime(self.turno.getFechayHora())
        self.Campo_DNI_paciente.setText(str(self.turno.getPaciente()))
        self.Campo_DNI_paciente.setReadOnly(True)

        if fechaHora != None:
            data = QtCore.QDateTime.fromString(fechaHora, "yyyy-MM-dd h:mm:ss")
            self.campo_hora_fecha.setDateTime(data)

        self.Campo_DNI_Medico.textChanged.connect(self.validar_dni_medico)
        self.campo_hora_fecha.dateTimeChanged.connect(self.validar_fecha)
        self.BotonCancelar.clicked.connect(self.closeEvent)
        self.BotonAceptar.clicked.connect(self.botonAceptar)
Exemplo n.º 6
0
    def __init__(self, usuario=None, fechaYHora=None):
        self.usuario = usuario
        QDialog.__init__(self)
        uic.loadUi('./View/vistaTurnos.ui', self)
        # Se carga en una variable para luego mostrarla
        for indice, ancho in enumerate((80, 150, 210, 210, 50), start=0):
            self.tablaTurnos.setColumnWidth(indice, ancho)

        if fechaYHora == None:
            # ojo acá no respeta la Orientacion a objetos
            mostrar_turnos = Turno().mostrar_turnos()
            self.botonNuevoTurno.show()
        else:
            mostrar_turnos = Turno().filtrarFechaHora(fechaYHora)
            self.botonNuevoTurno.hide()

        self.cargarTurnosALaTabla(mostrar_turnos)
        self.botonNuevoTurno.clicked.connect(
            lambda: self.botonNuevoTurno_on_click())
        self.comboBoxFiltro.currentIndexChanged.connect(self.seleccionarFiltro)
        self.dateTimeEdit.hide()
Exemplo n.º 7
0
    def botonAceptar(self):
        if self.validar_dni_medico() and self.validar_fecha():
            #Verificar si la fecha ya esta ocupada
            # print(self.Campo_DNI_Medico.text(),' - ',self.campo_hora_fecha.text())

            existe = self.usuario.verificar_turno(self.Campo_DNI_Medico.text(),
                                                  self.campo_hora_fecha.text())
            if not existe:
                self.turno = Turno(self.turno.nro_turno, self.turno.paciente,
                                   self.Campo_DNI_Medico.text(),
                                   self.campo_hora_fecha.text())
                #Verifica que el medico ingresado exista
                #resultado = Secretario().existe_medico(self.Campo_DNI_Medico.text())
                if self.usuario.existe_personal(self.Campo_DNI_Medico.text(),
                                                3):
                    self.usuario.editarTurno(self.turno.getMedico(),
                                             self.usuario.dni,
                                             self.turno.getFechayHora(),
                                             self.turno.getNro_Turno())
                    QMessageBox.information(self, "Turno editado",
                                            "Turno editado exitosamente.   ",
                                            QMessageBox.Ok)
                    self.close()
                else:
                    QMessageBox.warning(self, "Error!!", "Medico no existe.",
                                        QMessageBox.Ok)
            else:
                """
				msgBox = QMessageBox()
				msgBox.setText("El medico ya tiene una turno asignado en esa fecha.") 
				msgBox.exec()"""
                QMessageBox.warning(
                    self, "Error!!",
                    "El medico ya tiene una turno asignado en la fecha " +
                    self.campo_hora_fecha.text() + ".", QMessageBox.Ok)
        else:
            QMessageBox.warning(self, "Error", "Medico o fecha invalido.",
                                QMessageBox.Ok)
Exemplo n.º 8
0
    def cargarMisTurnosALaTabla(self):
        turnos = Turno().mostrar_turnos_medico(self.usuario.dni)
        self.tablaTurnos.setRowCount(len(turnos))
        self.tablaTurnos.setEditTriggers(QTableWidget.NoEditTriggers)

        for i in range(len(turnos)):
            turno = turnos[i]
            columna = 0
            for x in turno:
                item = QTableWidgetItem(str(x))
                item.setTextAlignment(QtCore.Qt.AlignCenter)

                self.tablaTurnos.setItem(i, columna, item)

                # self.crearBoton(i)#aca va el boton de aceptar o cancelar turno
                columna = columna + 1
        self.tablaTurnos.resizeColumnsToContents()
Exemplo n.º 9
0
    def __init__(self, usuario, fechaYHora=None):
        self.usuario = usuario
        QDialog.__init__(self)
        uic.loadUi('./View/vistaTurnos.ui', self)
        # Se carga en una variable para luego mostrarla
        if fechaYHora == None:
            # ojo acá no respeta la Orientacion a objetos
            mostrar_turnos = cargar_turnos()
            self.botonNuevoTurno.show()
        else:
            mostrar_turnos = Turno().filtrarFechaHora(fechaYHora)
            self.botonNuevoTurno.hide()

        self.cargarTurnosALaTabla(mostrar_turnos)
        self.botonNuevoTurno.clicked.connect(
            lambda: self.botonNuevoTurno_on_click(self.usuario))
        self.comboBoxFiltro.currentIndexChanged.connect(self.seleccionarFiltro)
        self.dateTimeEdit.hide()
Exemplo n.º 10
0
 def buscarF(self):
     fecha_text = self.dateTimeEdit.text()
     fecha = datetime.datetime.strptime(fecha_text, '%Y/%m/%d %H:%M:%S')
     turnoFecha = Turno().filtrarFecha(fecha)
     self.cargarTurnosALaTabla(turnoFecha)
Exemplo n.º 11
0
 def buscarT(self):
     turnoTurno = Turno().filtrarTurno(self.campoBusqueda.text())
     self.cargarTurnosALaTabla(turnoTurno)
Exemplo n.º 12
0
 def buscarM(self):
     turnosMedicos = Turno().filtrarMedico(self.campoBusqueda.text())
     self.cargarTurnosALaTabla(turnosMedicos)
Exemplo n.º 13
0
 def buscarP(self):
     turnosPacientes = Turno().filtrarPaciente(self.campoBusqueda.text())
     self.cargarTurnosALaTabla(turnosPacientes)
Exemplo n.º 14
0
class VentanaEditarTurno(QDialog):
    def __init__(self, usuario, datosTurno, fechaHora=None):
        self.usuario = usuario
        QDialog.__init__(self)
        uic.loadUi("View/VentanaEditarTurno.ui", self)
        #Cargar todos los datos del turno para luego editarlo
        self.turno = Turno(datosTurno[0][0], datosTurno[0][1],
                           datosTurno[0][2], datosTurno[0][3])
        self.Campo_DNI_Medico.setText(str(self.turno.getMedico()))
        self.campo_hora_fecha.setDateTime(self.turno.getFechayHora())
        self.Campo_DNI_paciente.setText(str(self.turno.getPaciente()))
        self.Campo_DNI_paciente.setReadOnly(True)

        if fechaHora != None:
            data = QtCore.QDateTime.fromString(fechaHora, "yyyy-MM-dd h:mm:ss")
            self.campo_hora_fecha.setDateTime(data)

        self.Campo_DNI_Medico.textChanged.connect(self.validar_dni_medico)
        self.campo_hora_fecha.dateTimeChanged.connect(self.validar_fecha)
        self.BotonCancelar.clicked.connect(self.closeEvent)
        self.BotonAceptar.clicked.connect(self.botonAceptar)

    def validar_dni_medico(self):
        self.Campo_DNI_Medico.setMaxLength(8)
        dni2 = self.Campo_DNI_Medico.text()
        validar = re.match("^[0-9]{8,8}$", dni2, re.I)
        if not validar:
            return False
        else:
            return True

    def validar_fecha(self):
        datetime_object = datetime.datetime.now()
        fecha_text = self.campo_hora_fecha.text()
        fecha = datetime.datetime.strptime(fecha_text, '%Y/%m/%d %H:%M')
        if fecha >= datetime_object:
            return True
        else:
            return False

    def botonAceptar(self):
        if self.validar_dni_medico() and self.validar_fecha():
            #Verificar si la fecha ya esta ocupada
            # print(self.Campo_DNI_Medico.text(),' - ',self.campo_hora_fecha.text())

            existe = self.usuario.verificar_turno(self.Campo_DNI_Medico.text(),
                                                  self.campo_hora_fecha.text())
            if not existe:
                self.turno = Turno(self.turno.nro_turno, self.turno.paciente,
                                   self.Campo_DNI_Medico.text(),
                                   self.campo_hora_fecha.text())
                #Verifica que el medico ingresado exista
                #resultado = Secretario().existe_medico(self.Campo_DNI_Medico.text())
                if self.usuario.existe_personal(self.Campo_DNI_Medico.text(),
                                                3):
                    self.usuario.editarTurno(self.turno.getMedico(),
                                             self.usuario.dni,
                                             self.turno.getFechayHora(),
                                             self.turno.getNro_Turno())
                    QMessageBox.information(self, "Turno editado",
                                            "Turno editado exitosamente.   ",
                                            QMessageBox.Ok)
                    self.close()
                else:
                    QMessageBox.warning(self, "Error!!", "Medico no existe.",
                                        QMessageBox.Ok)
            else:
                """
				msgBox = QMessageBox()
				msgBox.setText("El medico ya tiene una turno asignado en esa fecha.") 
				msgBox.exec()"""
                QMessageBox.warning(
                    self, "Error!!",
                    "El medico ya tiene una turno asignado en la fecha " +
                    self.campo_hora_fecha.text() + ".", QMessageBox.Ok)
        else:
            QMessageBox.warning(self, "Error", "Medico o fecha invalido.",
                                QMessageBox.Ok)

    def closeEvent(self, event):
        self.close()
Exemplo n.º 15
0
 def botonNuevoTurno_on_click(self):
     dialogo = VentanaTurno(self.usuario)
     if dialogo.exec_() == 0:
         mostrar_turnos = Turno().mostrar_turnos()
         self.cargarTurnosALaTabla(mostrar_turnos)