Ejemplo n.º 1
0
class Clientes:
    '''Contiene una lista de clientes self.clientes, permite agregar o quitar'''
    def __init__(self):
        '''crea una lisata de clientes '''
        self.repositorio = Repositorio()
        self.clientes = []
        try:
            self.clientes = self.repositorio.get_all_clientes()
        except Exception as mensaje:
            raise

    def agregar_cliente(self, nombre, apellido, domicilio, telefono, mail):
        '''guarda un cliente nuevo'''
        cliente = Contacto(nombre, apellido, domicilio, telefono, mail)
        cliente.id = self.repositorio.guardar_cliente(cliente)
        self.clientes.append(cliente)
        print(cliente.id, cliente.nombre, cliente.mail)

        return cliente

    def eliminar_cliente(self, id_cliente):
        cliente = self.buscar_cliente_por_id(id_cliente)
        if cliente:
            self.clientes.remove(cliente)
            self.repositorio.eliminar(cliente)

        else:
            return "cliente no encontrado"

    def buscar_cliente_por_id(self, n_cliente):
        ''' busca el cliente con el id dado y lo retorna'''
        for contacto in self.clientes:
            if str(contacto.id) == str(n_cliente):
                return contacto

    def buscar_cliente(self, filtro):
        '''recibe un filtro y hace la busqueda sobre nombre'''
        lista = []
        for cliente in self.clientes:
            print(cliente.id)
            if (str(cliente.nombre) == str(filtro)) or (str(
                    cliente.apellido) == str(filtro)) or (str(cliente.mail)
                                                          == str(filtro)):
                lista.append(cliente)
        return lista

    def modificar_cliente(self, id, nombre, apellido, domicilio, telefono,
                          mail):
        cliente = self.buscar_cliente_por_id(id)
        print(id)
        if cliente:
            cliente.nombre = nombre
            cliente.apellido = apellido
            cliente.domicilio = domicilio
            cliente.telefono = telefono
            cliente.mail = mail
            self.repositorio.actualizar(cliente)
            return cliente
Ejemplo n.º 2
0
class Anotador:
    '''Representa una colección de Notas que se pueden etiquetar, modificar, y
    buscar'''
    def __init__(self):
        '''Inicializa el anotador con una lista vacía de Notas'''
        self.repositorio = Repositorio()
        self.notas = self.repositorio.get_all()

    def nueva_nota(self, texto, etiquetas=''):
        '''Crea una nueva nota y la agrega a la lista'''
        nota = Nota(texto, etiquetas)
        nota.id = self.repositorio.guardar(nota)
        self.notas.append(nota)
        return nota

    def _buscar_por_id(self, id_nota):
        '''Buscar la nota con el id dado'''
        for nota in self.notas:
            if str(nota.id) == str(id_nota):
                return nota
        return None

    def modificar_nota(self, id_nota, texto):
        '''Busca la nota con el id dado y modifica el texto'''
        nota = self._buscar_por_id(id_nota)
        if nota:
            nota.texto = texto
            self.repositorio.actualizar(nota)
            return True
        return False

    def modificar_etiquetas(self, id_nota, etiquetas):
        '''Busca la nota con el id dado y modifica las etiquetas'''
        nota = self._buscar_por_id(id_nota)
        if nota:
            nota.etiquetas = etiquetas
            self.repositorio.actualizar(nota)
            return True
        return False

    def buscar(self, filtro):
        '''Busca todas las notas que coincidan con el filtro dado'''
        return [nota for nota in self.notas if nota.coincide(filtro)]

    def eliminar_nota(self, id_nota):
        '''Busca la nota con el id dado y la elimina de la lista notas'''
        nota = self._buscar_por_id(id_nota)
        if nota:
            self.notas.remove(nota)
            self.repositorio.eliminar(nota)
            return True
        return False
Ejemplo n.º 3
0
class Gestion:
    def __init__(self):
        self.r = Repositorio()
        self.rt = Repositorio_Turno()
        self.pacientes = self.r.get_all()
        self.turnos = self.rt.get_all()

    def nuevo_paciente(self, apellido, nombre, dni, telefono, mail):
        paciente = Paciente(apellido, nombre, dni, telefono, mail)
        paciente.id = self.r.guardar(paciente)
        #self.pacientes.append(paciente)
        return paciente

    def _buscar_por_id(self, id_paciente):
        for paciente in self.pacientes:
            if str(paciente.id) == str(id_paciente):
                return paciente
        return None

    def modificar_paciente(self, id_paciente, apellido, nombre, dni, telefono,
                           mail):
        paciente = self._buscar_por_id(id_paciente)
        if paciente:
            paciente.apellido = apellido
            paciente.nombre = nombre
            paciente.dni = dni
            paciente.telefono = telefono
            paciente.mail = mail
            self.r.actualizar(paciente)
            return True
        return False

    def eliminar_paciente(self, id_paciente):
        paciente = self._buscar_por_id(id_paciente)
        if paciente:
            self.r.eliminar(paciente)
            return True
        return False

    def _buscar_turno_id(self, id_turno):
        for turno in self.turnos:
            if str(turno.id) == str(id_turno):
                return turno
        return None

    def asignar_turno(self, id_paciente, fecha_turno, hora, descripcion):
        paciente = self._buscar_por_id(id_paciente)
        turno = Turno(paciente, fecha_turno, hora, descripcion)
        turno.id = self.rt.guardar(turno)
        return turno

    def eliminar_turno(self, id_turno):
        turno = self._buscar_turno_id(id_turno)
        if turno:
            self.rt.eliminar(turno)
            return True
        return False

    def modificar_turno(self, id_turno, fecha_turno, hora, descripcion):
        turno = self._buscar_turno_id(id_turno)
        if turno:
            turno.fecha_turno = fecha_turno
            turno.hora = hora
            turno.descripcion = descripcion
            self.rt.actualizar(turno)
            #self.turnos.append(turno) #29/10 eliminado, corrigió error al actualizar el treeview
            return True
        return False

    def turnos_dia(self, filtro):
        return [turno for turno in self.turnos if turno.busqueda(filtro)]
Ejemplo n.º 4
0
class Gestion:
    def __init__(self):
        self.r = Repositorio()
        self.pacientes = self.r.get_all()
        #self.pacientes = []
        self.turnos = []

    def nuevo_paciente(self, apellido, nombre, dni, telefono, mail):
        paciente = Paciente(apellido, nombre, dni, telefono, mail)
        self.r.guardar(paciente)
        #self.pacientes.append(paciente)
        return paciente

    def _buscar_por_id(self, id_paciente):
        for paciente in self.pacientes:
            if str(paciente.id) == str(id_paciente):
                return paciente
        return None

    def modificar_paciente(self, id_paciente, apellido, nombre, dni, telefono,
                           mail):
        paciente = self._buscar_por_id(id_paciente)
        if paciente:
            paciente.apellido = apellido
            paciente.nombre = nombre
            paciente.dni = dni
            paciente.telefono = telefono
            paciente.mail = mail
            self.r.actualizar(paciente)  # !!
            return True
        return False

    def eliminar_paciente(self, id_paciente):
        paciente = self._buscar_por_id(id_paciente)
        if paciente:
            self.r.eliminar(paciente)
            #self.pacientes.remove(paciente)
            return True
        return False

    def _buscar_turno_id(self, id_turno):
        for turno in self.turnos:
            if str(turno.id_t) == str(id_turno):
                return paciente
        return None

    def asignar_turno(self, id_paciente, fecha_turno, hora, descripcion):
        paciente = self._buscar_por_id(id_paciente)
        turno = self.asignar_turno(paciente, fecha_turno, hora, descripcion)
        self.turnos.append(turno)

    def eliminar_turno(self, id_paciente):
        if turno:
            self.turnos.remove(turno)
            return True
        return False

    def modificar_turno(self, id_paciente, fecha_turno, hora, descripcion):
        paciente = self._buscar_por_id(id_paciente)
        if turno:
            turno.fecha_turno = fecha_turno
            turno.hora = hora
            turno.descripcion = descripcion
            return True
        return False