import { Component, OnInit } from '@angular/core'; import { FormBuilder, FormControl, FormGroup, Validators } from '@angular/forms'; import { GruposParametrosEvaluacionService } from '../../../../../services/grupos-parametros-evaluacion/grupos-parametros-evaluacion.service'; import { GrupoEvaluacion } from '../../../../../Models/grupos-evaluacion'; import { ActivatedRoute, Router } from '@angular/router'; interface TipoParametroEF { name: string; } @Component({ selector: 'app-nuevo-grupo-parametros-eva', templateUrl: './nuevo-grupo-parametros-eva.component.html', styleUrls: ['./nuevo-grupo-parametros-eva.component.css'] }) export class NuevoGrupoParametrosEvaComponent implements OnInit { grupoEvaluacion: GrupoEvaluacion; myForm: FormGroup; tipo :number id: number; constructor( private formBuilder: FormBuilder, private gruposService: GruposParametrosEvaluacionService, private route: Router, private router: ActivatedRoute) { this.grupoEvaluacion = new GrupoEvaluacion(); } ngOnInit() { this.router.queryParams.subscribe(params => { this.id = params['idGrupo']; }); this.myForm = this.formBuilder.group({ nombre: ['', Validators.required], descripcion1: ['', Validators.required], descripcion2: ['', Validators.required], tipo: ['', Validators.required], }); } volver() { this.route.navigate(['main/ParametrosEvaluacionFinal']) } transformarTipo() { const tipoParametroSeleccionado = this.myForm.value.tipo as TipoParametroEF; this.tipo = this.getTipoValue(tipoParametroSeleccionado); } getTipoValue(tipoParametro: TipoParametroEF): number { switch (tipoParametro.name) { case 'Analisis Pertinencia': return 1; case 'Analisis Eficacia': return 2; case 'Analisis Eficiencia': return 3; case 'Analisis Sostenibilidad': return 4; default: return 0; // Valor por defecto si no se encuentra ninguna coincidencia } } enviarSolicitud = false; onSubmit() { if (this.myForm.valid && !this.enviarSolicitud) { this.enviarSolicitud = true; this.transformarTipo() this.grupoEvaluacion.uzytavconparaeva_id = this.id this.grupoEvaluacion.uzytavcabparaevaf_nombre = this.myForm.value.nombre; this.grupoEvaluacion.uzytavcabparaevaf_desc1 = this.myForm.value.descripcion1; this.grupoEvaluacion.uzytavcabparaevaf_desc2 = this.myForm.value.descripcion2; this.grupoEvaluacion.uzytavcabparaevaf_tipo = this.tipo; this.gruposService.guardarParametros(this.grupoEvaluacion).subscribe(() => { this.gruposService.parametrosActualizados.next(); this.route.navigate(['main/ParametrosEvaluacionFinal']); }); } } tiposParametrosF = new FormControl<TipoParametroEF | null>(null, Validators.required); selectFormControl = new FormControl('', Validators.required); tipos: TipoParametroEF[] = [ {name: 'Analisis Pertinencia'}, {name: 'Analisis Eficacia'}, {name: 'Analisis Eficiencia'}, {name: 'Analisis Sostenibilidad'}, ]; }