Generation

generate functionWed, 13 Nov 2024

En la obra social "OSDE", los trámites realizados fuera del horario de atención se gestionan telefónicamente y se almacenan en una pila para su posterior procesamiento. Cada trámite cuenta con el siguiente detalle: Código de afiliado (cod_afiliado) Tipo de trámite (reintegro o consulta) Código de trámite (cod_tramite) Además, se dispone de una lista de afiliados ordenada por su código (cod_afiliado), con la siguiente información: Código de afiliado (cod_afiliado) Plan (puede ser 210, 310, 410 o 510) Apellido y Nombre (apyNom) El objetivo es procesar esta información para organizar las tareas administrativas correspondientes. Para ello, se solicita lo siguiente: -> Filtrar los trámites de reintegro de la pila y generar una lista que contenga los siguientes datos: Código de afiliado (cod_afiliado) Plan DNI Apellido y Nombre (apYNom) Código de trámite (cod_tramite) Recorrer la lista de reintegros de forma recursiva y obtener el total de trámites correspondientes al Plan 210.

Para resolver este problema, podemos utilizar la siguiente estructura de código en Python: ```python class Tramite: def __init__(self, cod_afiliado, tipo_tramite, cod_tramite): self.cod_afiliado = cod_afiliado self.tipo_tramite = tipo_tramite self.cod_tramite = cod_tramite class Afiliado: def __init__(self, cod_afiliado, plan, apyNom): self.cod_afiliado = cod_afiliado self.plan = plan self.apyNom = apyNom class OSDE: def __init__(self, trámites, afiliados): self.trámites = trámites self.afiliados = afiliados def filtrar_reintegros(self): reintegros = [tramite for tramite in self.trámites if tramite.tipo_tramite == 'reintegro'] return reintegros def obtener_datos_reintegros(self, reintegros): datos = [] for tramite in reintegros: afiliado = next((a for a in self.afiliados if a.cod_afiliado == tramite.cod_afiliado), None) if afiliado: datos.append({ 'cod_afiliado': tramite.cod_afiliado, 'plan': afiliado.plan, 'apYNom': afiliado.apyNom, 'cod_tramite': tramite.cod_tramite }) return datos def total_trámites_plan_210(self, reintegros): total = 0 for tramite in reintegros: afiliado = next((a for a in self.afiliados if a.cod_afiliado == tramite.cod_afiliado), None) if afiliado and afiliado.plan == 210: total += 1 return total # Ejemplo de uso trámites = [ Tramite('12345', 'reintegro', 'TRM-001'), Tramite('67890', 'consulta', 'TRM-002'), Tramite('12345', 'reintegro', 'TRM-003'), Tramite('34567', 'reintegro', 'TRM-004'), Tramite('67890', 'consulta', 'TRM-005') ] afiliados = [ Afiliado('12345', 210, 'Apellido1 Nombre1'), Afiliado('67890', 310, 'Apellido2 Nombre2'), Afiliado('34567', 210, 'Apellido3 Nombre3'), Afiliado('90123', 410, 'Apellido4 Nombre4') ] osde = OSDE(trámites, afiliados) reintegros = osde.filtrar_reintegros() datos_reintegros = osde.obtener_datos_reintegros(reintegros) total_trámites_plan_210 = osde.total_trámites_plan_210(reintegros) print("Datos de reintegros:") for dato in datos_reintegros: print(dato) print(f"\nTotal de trámites correspondientes al Plan 210: {total_trámites_plan_210}") ``` Este código define tres clases: `Tramite`, `Afiliado` y `OSDE`. La clase `OSDE` tiene métodos para filtrar los trámites de reintegro, obtener los datos de los reintegros y calcular el total de trámites correspondientes al Plan 210. En el ejemplo de uso, se crean instancias de las clases `Tramite` y `Afiliado`, y se crea una instancia de la clase `OSDE`. Luego, se llaman a los métodos para obtener los datos de los reintegros y calcular el total de trámites correspondientes al Plan 210.

Questions about programming?Chat with your personal AI assistant