import { Component, EventEmitter, OnInit, Output } from '@angular/core'; import { FormGroup, FormBuilder, Validators } from '@angular/forms'; import { MatDialog } from '@angular/material/dialog'; import { Router } from '@angular/router'; import { objetivosBV } from 'src/app/modules/main/Models/objetivoPLNBV'; import { Actualiza_datosService } from 'src/app/modules/main/services/actualiza_datos/actualiza_datos.service'; import { Compartir_idService } from 'src/app/modules/main/services/compartir_id/compartir_id.service'; import { ObjetivosPLNBVService } from 'src/app/modules/main/services/objetivosPLNBV/objetivos-plnbv.service'; import { prograObj } from 'src/app/modules/main/Models/prograObj'; import { EnvioFormularioComponent } from '../../../../programa/opciones/envio-formulario/envio-formulario.component'; import { PrograObjService } from 'src/app/modules/main/services/prograObj/prograObj.service'; @Component({ selector: 'vex-add-objetivos-plnbv', templateUrl: './add-objetivos-plnbv.component.html', styleUrls: ['./add-objetivos-plnbv.component.css'] }) export class AddObjetivosPLNBVComponent implements OnInit { @Output() formularioGuardado = new EventEmitter<void>(); obj!: objetivosBV[]; idRecuperado: number; politicas: any[] = []; objetivos: any[] = []; myForm: FormGroup; formularioEnviado: boolean; selectedObjetivo: string; constructor( private formBuilder: FormBuilder, private objS: ObjetivosPLNBVService, private objPM: prograObj, private idCompartido: Compartir_idService, private dialog: MatDialog, private datosCompartidos: Actualiza_datosService, private objPS: PrograObjService) { this.myForm = this.formBuilder.group({ // Define los campos y validaciones para el formulario 1 objetivo: ['',Validators.required], politica: ['',Validators.required] }); this.obj = []; } ngOnInit(): void { this.idRecuperado = parseInt(localStorage.getItem('proyectoId'),10); this.obtenerObjetivos(); } onSubmit() { if (this.myForm.valid) { try { this.objPM.uzytavproyec_id = this.idRecuperado; this.objPM.uzytavobjetivo_b_vivir_id = this.myForm.value.politica; this.objPS.guardarParametros(this.objPM).subscribe(response => { this.objPS.parametrosActualizados.next(); this.openModal(); this.formularioGuardado.emit(); this.datosCompartidos.actualizarDatos(this.objPM); this.myForm.reset(); }); } catch (error) { console.error('Error al enviar los datos:', error); } } } obtenerObjetivos() { this.objS.obtenerParametros().subscribe(data => { this.obj = data.filter(item => !item.uzytavobjetivo_b_vivirid_padre); }); } obtenerHijos(id: number) { this.objS.obtenerHijos(id).subscribe(data => { this.politicas = data.filter(item => item.uzytavobjetivo_b_vivirid_padre); }); } openModal() { const dialogRef = this.dialog.open(EnvioFormularioComponent, { disableClose: true }); dialogRef.afterClosed().subscribe(result => { console.log('La ventana modal se ha cerrado'); this.formularioEnviado = true; }); } }