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