import { Component, OnInit, OnDestroy } from '@angular/core'; import { MostrarOcultarService } from '../../../../../services/mostrar-ocultar.service'; import { Router } from '@angular/router'; import { Parametros } from '../../../../../Models/conf-parametros'; import { ParametrosService } from '../../../../../services/conf-parametros/parametros.service'; import { format } from 'date-fns'; import { Usuario } from 'src/app/modules/main/Models/usuario'; import { UsuariosService } from 'src/app/modules/main/services/usuarios/usuarios.service'; import { ConfirmacionEliminacionComponent } from '../../../../programa/opciones/ConfirmacionEliminacion/ConfirmacionEliminacion.component'; import { MatDialog } from '@angular/material/dialog'; import { Observable } from 'rxjs'; @Component({ selector: 'app-conf-parametros-eva', templateUrl: './conf-parametros-eva.component.html', styleUrls: ['./conf-parametros-eva.component.css'] }) export class ConfParametrosEvaComponent implements OnInit { terminoBusqueda: string = ''; tipo: number parametros!: Parametros[]; constructor( public mostrarOcultarService: MostrarOcultarService, private router: Router, private parametrosService: ParametrosService, private dialog: MatDialog, ) { this.tipo = 1; } mostrarDiv: boolean[] = []; toggleDiv(i: number) { this.mostrarDiv[i] = !this.mostrarDiv[i]; } AgregarParametro() { this.router.navigate(['main/nuevaConf'], { queryParams: { tipo: this.tipo.toString() } }); } volver() { this.router.navigate(['main/configuraciones']); } EditarParametro(id: number) { const registroSeleccionado = this.parametros.find(parametro => parametro.uzytavconparaeva_id === id); this.mostrarOcultarService.parametroEditado = registroSeleccionado; this.router.navigate(['main/editarConf', id]); } obtenerRegistros() { this.parametrosService.obtenerParametrosInicial().subscribe(data => { this.parametros = data.map(parametro => { parametro.uzytavconparaeva_fecha_c = new Date(parametro.uzytavconparaeva_fecha_c); return parametro; }); this.buscarParametros(); // Realizar búsqueda inicial }); } // Código para el buscar eliminarParametro(id: number) { this.openModalDelete('¿Desea Eliminar el Registro?').subscribe(result =>{ if (result === 'confirm') { this.parametrosService.eliminarParametros(id).subscribe( () => { console.log('Registro eliminado correctamente'); this.obtenerRegistros(); }, (error) => { console.error('Error al eliminar el registro', error); } ); } }); } openModalDelete(mensaje: string): Observable<string>{ const dialogRef = this.dialog.open(ConfirmacionEliminacionComponent, { disableClose: true, data: { mensaje: mensaje } }); return dialogRef.afterClosed(); } buscarParametros() { const termino = this.terminoBusqueda.trim().toLowerCase(); if (termino === '') { this.mostrarTodosLosRegistros(); } else { this.filtrarRegistros(termino); } } mostrarTodosLosRegistros() { this.parametros.forEach((parametro, i) => { const fila = document.getElementById('fila-' + i); if (fila) { fila.style.display = 'table-row'; } }); } // formatFecha(parametro.uzytavconparaeva_fecha_c) // filtrarRegistros(termino: string) { this.parametros.forEach((parametro, i) => { const descripcion = parametro.uzytavconparaeva_descrip.toLowerCase(); const puminire = parametro.uzytavconparaeva_puminire.toString().toLowerCase(); const fecha = this.formatFecha(parametro.uzytavconparaeva_fecha_c).toLowerCase(); const filaCoincide = descripcion.includes(termino) || puminire.includes(termino) || fecha.includes(termino); const fila = document.getElementById('fila-' + i); if (fila) { if (filaCoincide) { fila.style.display = 'table-row'; } else { fila.style.display = 'none'; } } }); } formatFecha(fecha: Date): string { return format(fecha, 'dd-MM-yyyy'); } ngOnInit() { this.obtenerRegistros(); } }