Saltar a contenido

Autor: Adalberto González

Fecha creacion: 2026-06-03 Estado: produccion

Servicio: FilterService

Ubicación: src/app/views/logistica/guias-devoluciones/services/filter.service.ts Scope: providedIn: 'root' Puede ser utilizado en el resto de el proyecto de el front


¿Qué hace?

Este servicio administra los filtros disponibles en el módulo de Guías de Devoluciones y se encarga de aplicar los criterios de búsqueda sobre la información cargada.


Métodos

inicializarFiltroMes(): void

Puebla el filtro de mes con los últimos 8 meses y preselecciona el mes actual. Se llama en ngOnInit del componente.


setTiendas(tiendas: TiendaInfo[]): void

Registra las tiendas activas del backend y puebla las opciones de los filtros ecosistema y tienda.

Parámetro Tipo Descripción
tiendas TiendaInfo[] Lista de tiendas activas obtenida de la colección Tienda

actualizarOpcionesTransp(datos: DevolucionRow[]): void

Actualiza las opciones del filtro transp con los valores únicos de transportadora presentes en los datos actuales. Se llama cada vez que datos cambia.

Parámetro Tipo Descripción
datos DevolucionRow[] Registros completos en memoria

actualizarFiltroFechas(datos: DevolucionRow[]): void

Puebla el filtro fecha con los días del mes activo que tienen datos. Si hay filtro tipoDia activo, solo incluye días que coincidan. Llama internamente a actualizarFiltroTipoDia.

Parámetro Tipo Descripción
datos DevolucionRow[] Registros completos en memoria

aplicar(datos: DevolucionRow[]): DevolucionRow[]

Aplica todos los filtros activos sobre el array de datos y retorna la vista filtrada. El filtro de mes no se aplica aquí — se aplica en ChartComputerService por prefijo de fecha.

Parámetro Tipo Descripción
datos DevolucionRow[] Registros completos en memoria

Retorna: Subconjunto filtrado listo para pasar a ChartComputerService.

Orden de filtros aplicados: 1. Ecosistema → deriva tiendas permitidas 2. Tipo día → filtra por día de la semana 3. Fecha exacta → filtra por dd/mm/yyyy 4. Tienda 5. Transportadora 6. Estado (normaliza acentos antes de comparar)


getPrefixesMesActivo(): Set<string>

Retorna los prefijos YYYY-MM de los meses seleccionados en el filtro de mes. Si no hay selección, retorna los últimos 2 meses.

Retorna: Set<string> con prefijos como '2026-06', '2026-05'.


getMesSeleccionado(): { year: number; month: number }

Retorna el año y mes del primer mes seleccionado. Si no hay selección, retorna el mes actual del sistema.


toggleFilter(key: FilterKey): void

Abre el filtro indicado y cierra todos los demás.


toggleOption(key: FilterKey, opt: string): void

Agrega o quita una opción del filtro. El filtro mes permite máximo 2 selecciones simultáneas. El filtro ecosistema sincroniza automáticamente las opciones de tienda al cambiar.


removeChip(key: FilterKey, opt: string): void

Quita una opción específica del filtro (usado al eliminar un chip en la UI).


clearFilter(key: FilterKey): void

Limpia selección, búsqueda y cierra un filtro específico.


clearAll(): void

Limpia todos los filtros de una vez.


getFilteredOptions(f: FilterState): string[]

Retorna las opciones del filtro aplicando el texto de búsqueda actual.


isSelected(f: FilterState, opt: string): boolean

Retorna true si la opción está seleccionada en el filtro.


getSelected(key: FilterKey): string[]

Retorna las opciones seleccionadas de un filtro por su key.


get hayFiltrosActivos: boolean

true si al menos un filtro tiene opciones seleccionadas. Usado para mostrar el botón "Limpiar todos".


Endpoints que consume

Ninguno. Este servicio no hace HTTP.


Historial de cambios

Fecha Autor Cambio
2026-06-03 Adalberto González Se creo el service

Observaciones