subida front final con validaciones

parent 792e2910
...@@ -29,7 +29,7 @@ export class ActaCompromisoCarrerasComponent implements OnInit { ...@@ -29,7 +29,7 @@ export class ActaCompromisoCarrerasComponent implements OnInit {
file: File; file: File;
anexosImagenes: AnexosImagenes = {}; anexosImagenes: AnexosImagenes = {};
enviarSolicitud = false; enviarSolicitud = false;
formularioEnviado: boolean
cambio: boolean; cambio: boolean;
proyecto: Proyectos proyecto: Proyectos
public idRecuperado public idRecuperado
...@@ -181,7 +181,7 @@ export class ActaCompromisoCarrerasComponent implements OnInit { ...@@ -181,7 +181,7 @@ export class ActaCompromisoCarrerasComponent implements OnInit {
this.myForm.disable(); this.myForm.disable();
} }
formularioEnviado: boolean
openModalError(texto: string) { openModalError(texto: string) {
const dialogRef = this.dialog.open(ErrorTextoComponent, { const dialogRef = this.dialog.open(ErrorTextoComponent, {
disableClose: true, disableClose: true,
......
...@@ -92,7 +92,7 @@ export class AporteComEjecComponent implements OnInit { ...@@ -92,7 +92,7 @@ export class AporteComEjecComponent implements OnInit {
this.presupuestoPartidasService.modificarParametros(partida.uzytavpresup_id, this.presupuesto).subscribe( this.presupuestoPartidasService.modificarParametros(partida.uzytavpresup_id, this.presupuesto).subscribe(
(response) => { (response) => {
console.log('Cambios guardados exitosamente para la partida', partida.uzytavpresup_id); console.log('Cambios guardados exitosamente para la partida', partida.uzytavpresup_id);
//this.openModal();
this.dynamicForm.disable() this.dynamicForm.disable()
this.openModal('La información se ha Actualizado'); this.openModal('La información se ha Actualizado');
this.cambio = false; // Disable editing mode this.cambio = false; // Disable editing mode
......
...@@ -92,7 +92,6 @@ export class AporteEntEjecComponent implements OnInit { ...@@ -92,7 +92,6 @@ export class AporteEntEjecComponent implements OnInit {
this.presupuestoPartidasService.modificarParametros(partida.uzytavpresup_id, this.presupuesto).subscribe( this.presupuestoPartidasService.modificarParametros(partida.uzytavpresup_id, this.presupuesto).subscribe(
(response) => { (response) => {
console.log('Cambios guardados exitosamente para la partida', partida.uzytavpresup_id); console.log('Cambios guardados exitosamente para la partida', partida.uzytavpresup_id);
//this.openModal();
this.dynamicForm.disable() this.dynamicForm.disable()
this.openModal('La información se ha Actualizado'); this.openModal('La información se ha Actualizado');
this.cambio = false; // Disable editing mode this.cambio = false; // Disable editing mode
......
...@@ -136,7 +136,6 @@ export class AddIdentificacionPoblacionComponent implements OnInit { ...@@ -136,7 +136,6 @@ export class AddIdentificacionPoblacionComponent implements OnInit {
this.myForm.disable(); this.myForm.disable();
this.openModal('La Población ha sido identificada'); this.openModal('La Población ha sido identificada');
this.cambio = false; this.cambio = false;
//his.openModal();
//this.guardarFormulario = true; //this.guardarFormulario = true;
}); });
} catch (error) { } catch (error) {
......
...@@ -105,7 +105,7 @@ export class AddPresupDetComponent implements OnInit { ...@@ -105,7 +105,7 @@ export class AddPresupDetComponent implements OnInit {
this.presupuestoPartidasService.guardarParametros(this.presupuesto).subscribe(response => { this.presupuestoPartidasService.guardarParametros(this.presupuesto).subscribe(response => {
console.log('Datos Enviados'); console.log('Datos Enviados');
this.presupuestoPartidasService.parametrosActualizados.next(); this.presupuestoPartidasService.parametrosActualizados.next();
this.openModal(); this.openModal('El Presupuesto Detallado ha sido Agregado');
this.formularioGuardado.emit(); this.formularioGuardado.emit();
this.datosCompartidos.actualizarDatos(this.presupuesto); this.datosCompartidos.actualizarDatos(this.presupuesto);
this.myForm.reset(); this.myForm.reset();
...@@ -137,7 +137,7 @@ export class AddPresupDetComponent implements OnInit { ...@@ -137,7 +137,7 @@ export class AddPresupDetComponent implements OnInit {
} }
); );
} }
openModal() { openModal(mensaje: string) {
const dialogRef = this.dialog.open(EnvioFormularioComponent, { const dialogRef = this.dialog.open(EnvioFormularioComponent, {
disableClose: true disableClose: true
}); });
......
...@@ -64,6 +64,7 @@ ...@@ -64,6 +64,7 @@
{{ item.uzytclasificador_presup_nombre }} {{ item.uzytclasificador_presup_nombre }}
</mat-option> </mat-option>
</mat-select> </mat-select>
<mat-error *ngIf="subgrupos3.length === 0">Ya se han agregado todas las Partidas Presupuestarias con el SubGrupo 2</mat-error>
</mat-form-field> </mat-form-field>
<div *ngIf="errorMessage" class="error-message">{{ errorMessage }}</div> <div *ngIf="errorMessage" class="error-message">{{ errorMessage }}</div>
......
...@@ -5,6 +5,10 @@ import { CatalogoPP } from '../../../../Models/catalogo-partidas-presupuestarias ...@@ -5,6 +5,10 @@ import { CatalogoPP } from '../../../../Models/catalogo-partidas-presupuestarias
import { ActivatedRoute, Router } from '@angular/router'; import { ActivatedRoute, Router } from '@angular/router';
import { PartidasPresupuestarias } from '../../../../Models/partidas-presupuestarias'; import { PartidasPresupuestarias } from '../../../../Models/partidas-presupuestarias';
import { PartidasPresupuestariasService } from 'src/app/modules/main/services/partidas-presupuestarias/partidas-presupuestarias.service'; import { PartidasPresupuestariasService } from 'src/app/modules/main/services/partidas-presupuestarias/partidas-presupuestarias.service';
import { ErrorTextoComponent } from '../../../Proyectos/errores/error-texto/error-texto.component';
import { MatDialog } from '@angular/material/dialog';
import { Actualiza_datosService } from 'src/app/modules/main/services/actualiza_datos/actualiza_datos.service';
import { ErroresComponent } from '../../../programa/opciones/errores/errores.component';
@Component({ @Component({
selector: 'vex-partidas-agre', selector: 'vex-partidas-agre',
templateUrl: './partidas-agre.component.html', templateUrl: './partidas-agre.component.html',
...@@ -21,6 +25,8 @@ export class PartidasAgreComponent implements OnInit { ...@@ -21,6 +25,8 @@ export class PartidasAgreComponent implements OnInit {
subgrupos2: any[] = []; subgrupos2: any[] = [];
subgrupos3: any[] = []; subgrupos3: any[] = [];
opcionSeleccionada: number; opcionSeleccionada: number;
claspreDatos: PartidasPresupuestarias[] = [];
//partidaM: PartidasModelo; //partidaM: PartidasModelo;
constructor( constructor(
private formBuilder: FormBuilder, private formBuilder: FormBuilder,
...@@ -28,7 +34,9 @@ export class PartidasAgreComponent implements OnInit { ...@@ -28,7 +34,9 @@ export class PartidasAgreComponent implements OnInit {
private route: Router, private route: Router,
private router: ActivatedRoute, private router: ActivatedRoute,
private partidaM: PartidasPresupuestarias, private partidaM: PartidasPresupuestarias,
private partidaS: PartidasPresupuestariasService private partidaS: PartidasPresupuestariasService,
private dialog: MatDialog,
private compartirDatos: Actualiza_datosService
) { ) {
this.partidaM = new PartidasPresupuestarias(); this.partidaM = new PartidasPresupuestarias();
this.catalogoPP = []; this.catalogoPP = [];
...@@ -44,8 +52,12 @@ export class PartidasAgreComponent implements OnInit { ...@@ -44,8 +52,12 @@ export class PartidasAgreComponent implements OnInit {
} }
ngOnInit(): void { ngOnInit(): void {
this.obtenerCatalogo();
console.log(this.obtenerCatalogo()); this.compartirDatos.datos$.subscribe(() => {
this.obtenerCatalogo();
});
} }
obtenerNombresConPadres( obtenerNombresConPadres(
...@@ -125,14 +137,16 @@ export class PartidasAgreComponent implements OnInit { ...@@ -125,14 +137,16 @@ export class PartidasAgreComponent implements OnInit {
obtenerSubgrupos3(subgrupo2Id: number): void { obtenerSubgrupos3(subgrupo2Id: number): void {
// Filtrar los subgrupos 3 en base al subgrupo 2 seleccionado // Filtrar los subgrupos 3 en base al subgrupo 2 seleccionado
this.subgrupos3 = this.catalogoPP.filter(item => item.clasificadorPresupPadre?.uzytclasificador_presup_id === subgrupo2Id); this.subgrupos3 = this.catalogoPP.filter(item => item.clasificadorPresupPadre?.uzytclasificador_presup_id === subgrupo2Id);
} }
obtenerCatalogo() { obtenerCatalogo() {
this.catalogoPPService.obtenerParametros().subscribe(data => { this.catalogoPPService.obtenerParametros().subscribe(data => {
this.catalogoPP = data; this.catalogoPP = data;
this.obtenerNombresConPadres(this.catalogoPP); this.obtenerNombresConPadres(this.catalogoPP);
console.log(this.nombresConPadres); });
this.partidaS.obtenerParametros().subscribe(data => {
this.claspreDatos = data;
}); });
} }
...@@ -162,33 +176,79 @@ export class PartidasAgreComponent implements OnInit { ...@@ -162,33 +176,79 @@ export class PartidasAgreComponent implements OnInit {
enviarSolicitud = false; enviarSolicitud = false;
public errorMessage: string = ''; public errorMessage: string = '';
/*
onSubmit() { onSubmit() {
if (this.myForm.valid && !this.enviarSolicitud) { if (this.myForm.valid && !this.enviarSolicitud) {
try { try {
this.enviarSolicitud = true; this.enviarSolicitud = true;
//this.partidaM.uzytavclaspre_id = Math.floor(Math.random() * 15) + 1;
this.partidaM.uzytavclaspre_estado = 'A'; this.partidaM.uzytavclaspre_estado = 'A';
this.partidaM.uzytavclaspre_tipo = this.myForm.value.tipo; this.partidaM.uzytavclaspre_tipo = this.myForm.value.tipo;
// Obtener el objeto correspondiente en función del número seleccionado
this.partidaM.uzytclasificador_presup_id = this.myForm.value.partida; this.partidaM.uzytclasificador_presup_id = this.myForm.value.partida;
// Asignar el objeto seleccionado al campo uzytclasificador_presup del modelo PartidasModelo
/*this.partidaM.uzytclasificador_presup =
uzytclasificador_presupSeleccionado;
console.log(this.opcionSeleccionada);
*/
this.partidaS.guardarParametros(this.partidaM).subscribe(() => { this.partidaS.guardarParametros(this.partidaM).subscribe(() => {
console.log('Datos enviados'); console.log('Datos enviados');
this.partidaS.parametrosActualizados.next(); this.partidaS.parametrosActualizados.next();
this.route.navigate(['main/partidas-Lista']); this.route.navigate(['main/partidas-Lista']);
this.compartirDatos.actualizarDatos(this.partidaM);
}); });
} catch (error) { } catch (error) {
console.error('Error al enviar los datos:', error); this.openModalError('Existe un Registro con este Tipo de Partida');
} }
} }
}*/
async onSubmit() {
if (this.myForm.valid && !this.enviarSolicitud) {
try {
this.enviarSolicitud = true;
const nuevoTipo = this.myForm.value.tipo;
const nuevaPartida = this.myForm.value.partida;
// Verificar si ya existe un registro con el mismo tipo y partida
const existeRegistro = this.claspreDatos.find(
registro =>
registro.uzytavclaspre_tipo === nuevoTipo &&
registro.uzytclasificador_presup_id === nuevaPartida
);
if (existeRegistro) {
this.openModalError('Ya existe un registro con estos valores');
} else {
this.partidaM.uzytavclaspre_estado = 'A';
this.partidaM.uzytavclaspre_tipo = nuevoTipo;
this.partidaM.uzytclasificador_presup_id = nuevaPartida;
await this.partidaS.guardarParametros(this.partidaM).toPromise(); // Wait for the save operation
console.log('Datos enviados');
this.partidaS.parametrosActualizados.next();
this.route.navigate(['main/partidas-Lista']);
this.compartirDatos.actualizarDatos(this.partidaM);
}
} catch (error) {
console.error(error);
this.openModalError('Ha ocurrido un error al guardar los datos');
}
}
}
formularioEnviado: boolean
openModalError(texto: string) {
const dialogRef = this.dialog.open(ErroresComponent, {
disableClose: true,
data: { mensaje: texto }
});
dialogRef.afterClosed().subscribe(result => {
console.log('La ventana modal se ha cerrado');
this.formularioEnviado = true;
});
} }
getCatalogoPPById(id: number): CatalogoPP | undefined { getCatalogoPPById(id: number): CatalogoPP | undefined {
......
...@@ -12,6 +12,7 @@ import { MatPaginator } from '@angular/material/paginator'; ...@@ -12,6 +12,7 @@ import { MatPaginator } from '@angular/material/paginator';
import { MatSort } from '@angular/material/sort'; import { MatSort } from '@angular/material/sort';
import { ConfirmacionEliminacionComponent } from '../../../programa/opciones/ConfirmacionEliminacion/ConfirmacionEliminacion.component'; import { ConfirmacionEliminacionComponent } from '../../../programa/opciones/ConfirmacionEliminacion/ConfirmacionEliminacion.component';
import { MatDialog } from '@angular/material/dialog'; import { MatDialog } from '@angular/material/dialog';
import { Actualiza_datosService } from 'src/app/modules/main/services/actualiza_datos/actualiza_datos.service';
@Component({ @Component({
selector: 'vex-partidas-list', selector: 'vex-partidas-list',
...@@ -51,14 +52,18 @@ export class PartidasListComponent implements OnInit { ...@@ -51,14 +52,18 @@ export class PartidasListComponent implements OnInit {
private partidaS: PartidasPresupuestariasService, private partidaS: PartidasPresupuestariasService,
public mostrarOcultarService: MostrarOcultarService, public mostrarOcultarService: MostrarOcultarService,
private catalogoPPService: CatalogoPartidasPresupuestariasService, private catalogoPPService: CatalogoPartidasPresupuestariasService,
private dialog: MatDialog private dialog: MatDialog,
private compartirDatos: Actualiza_datosService
) { ) {
this.dataSource = new MatTableDataSource<PartidasPresupuestarias>([]); this.dataSource = new MatTableDataSource<PartidasPresupuestarias>([]);
} }
ngOnInit() { ngOnInit() {
this.obtenerRegistro(); this.compartirDatos.datos$.subscribe(() => {
this.obtenerRegistro();
});
} }
......
...@@ -12,6 +12,7 @@ import { DatosEspeService } from 'src/app/modules/main/services/APIs Externas/Da ...@@ -12,6 +12,7 @@ import { DatosEspeService } from 'src/app/modules/main/services/APIs Externas/Da
import { UsuariosService } from 'src/app/modules/main/services/usuarios/usuarios.service'; import { UsuariosService } from 'src/app/modules/main/services/usuarios/usuarios.service';
import { Observable } from 'rxjs'; import { Observable } from 'rxjs';
import { map } from 'rxjs/operators'; import { map } from 'rxjs/operators';
import { EnvioFormularioComponent } from '../../envio-formulario/envio-formulario.component';
@Component({ @Component({
selector: 'vex-edit-datos-generales', selector: 'vex-edit-datos-generales',
...@@ -123,7 +124,7 @@ export class EditDatosGeneralesComponent implements OnInit { ...@@ -123,7 +124,7 @@ export class EditDatosGeneralesComponent implements OnInit {
console.log('Datos Actualizados'); console.log('Datos Actualizados');
this.myForm.disable(); this.myForm.disable();
this.cambio = false; this.cambio = false;
this.openModal(); this.openModal('Los Datos Generales han sido Editados');
}); });
} catch (error) { } catch (error) {
console.error('Error al enviar los datos:', error); console.error('Error al enviar los datos:', error);
...@@ -209,9 +210,10 @@ export class EditDatosGeneralesComponent implements OnInit { ...@@ -209,9 +210,10 @@ export class EditDatosGeneralesComponent implements OnInit {
} }
openModal() { openModal(mensaje: string) {
const dialogRef = this.dialog.open(EnvioEditFormularioComponent, { const dialogRef = this.dialog.open(EnvioFormularioComponent, {
disableClose: true disableClose: true,
data: {mensaje: mensaje}
}); });
dialogRef.afterClosed().subscribe(result => { dialogRef.afterClosed().subscribe(result => {
......
...@@ -85,7 +85,7 @@ export class EditEntidadComponent implements OnInit { ...@@ -85,7 +85,7 @@ export class EditEntidadComponent implements OnInit {
this.opcionS.parametrosActualizados.next(); this.opcionS.parametrosActualizados.next();
this.datosCompar.actualizarDatos(this.opcionM); this.datosCompar.actualizarDatos(this.opcionM);
this.ocultarFormulario(); this.ocultarFormulario();
this.openModal(); this.openModal('La Entidad ha sido Editada');
}); });
} catch (error) { } catch (error) {
console.error('Error al enviar los datos:', error); console.error('Error al enviar los datos:', error);
...@@ -105,9 +105,10 @@ export class EditEntidadComponent implements OnInit { ...@@ -105,9 +105,10 @@ export class EditEntidadComponent implements OnInit {
}); });
} }
openModal() { openModal(mensaje: string) {
const dialogRef = this.dialog.open(EnvioEditFormularioComponent, { const dialogRef = this.dialog.open(EnvioEditFormularioComponent, {
disableClose: true disableClose: true,
data: {mensaje: mensaje}
}); });
dialogRef.afterClosed().subscribe(result => { dialogRef.afterClosed().subscribe(result => {
......
...@@ -64,7 +64,7 @@ export class DiagnosticoComponent implements OnInit { ...@@ -64,7 +64,7 @@ export class DiagnosticoComponent implements OnInit {
this.programaService.modificarParametros(id_recuperado, this.programa).subscribe(response => { this.programaService.modificarParametros(id_recuperado, this.programa).subscribe(response => {
this.isEditorEnabled = false; this.isEditorEnabled = false;
this.cambio = false; this.cambio = false;
this.openModal(); this.openModal('');
}); });
} catch (error) { } catch (error) {
console.error('Error al enviar los datos:', error); console.error('Error al enviar los datos:', error);
...@@ -88,7 +88,7 @@ export class DiagnosticoComponent implements OnInit { ...@@ -88,7 +88,7 @@ export class DiagnosticoComponent implements OnInit {
} }
} }
openModal() { openModal(mensaje: string) {
const dialogRef = this.dialog.open(EnvioFormularioComponent, { const dialogRef = this.dialog.open(EnvioFormularioComponent, {
disableClose: true disableClose: true
}); });
......
...@@ -67,7 +67,7 @@ export class EstraEComponent implements OnInit { ...@@ -67,7 +67,7 @@ export class EstraEComponent implements OnInit {
this.programaService.modificarParametros(this.idRecuperado, this.programa).subscribe(response => { this.programaService.modificarParametros(this.idRecuperado, this.programa).subscribe(response => {
this.cambio = false; this.cambio = false;
this.isEditorEnabled = false; this.isEditorEnabled = false;
this.openModal(); this.openModal('Se han agregado las Estrategias del Programa');
}); });
} catch (error) { } catch (error) {
console.error('Error al enviar los datos:', error); console.error('Error al enviar los datos:', error);
...@@ -90,9 +90,10 @@ export class EstraEComponent implements OnInit { ...@@ -90,9 +90,10 @@ export class EstraEComponent implements OnInit {
} }
} }
openModal() { openModal(mensaje: string) {
const dialogRef = this.dialog.open(EnvioFormularioComponent, { const dialogRef = this.dialog.open(EnvioFormularioComponent, {
disableClose: true disableClose: true,
data: {mensaje: mensaje}
}); });
dialogRef.afterClosed().subscribe(result => { dialogRef.afterClosed().subscribe(result => {
......
...@@ -6,7 +6,7 @@ ...@@ -6,7 +6,7 @@
</mat-card-header> </mat-card-header>
<mat-card-content> <mat-card-content>
<mat-card-actions class="button-container"> <mat-card-actions class="button-container">
<button mat-raised-button color="primary" (click)="confirmarFinalizar()">Finalizar</button> <button mat-raised-button color="primary" (click)="openModal('¿Desea Finalizar el Proceso?')">Finalizar</button>
</mat-card-actions> </mat-card-actions>
</mat-card-content> </mat-card-content>
</mat-card> </mat-card>
......
import { Component, OnInit } from '@angular/core'; import { Component, OnInit } from '@angular/core';
import { MatDialog } from '@angular/material/dialog';
import { EnvioFormularioComponent } from '../envio-formulario/envio-formulario.component';
import { ConfirmacionEliminacionComponent } from '../ConfirmacionEliminacion/ConfirmacionEliminacion.component';
@Component({ @Component({
selector: 'vex-finalizar-p', selector: 'vex-finalizar-p',
...@@ -7,14 +10,22 @@ import { Component, OnInit } from '@angular/core'; ...@@ -7,14 +10,22 @@ import { Component, OnInit } from '@angular/core';
}) })
export class FinalizarPComponent implements OnInit { export class FinalizarPComponent implements OnInit {
constructor() { } constructor(private dialog: MatDialog) { }
finalizado: boolean = false; finalizado: boolean = false;
ngOnInit(): void { ngOnInit(): void {
} }
confirmarFinalizar() {
if (confirm('¿Estás seguro de que deseas finalizar?')) {
}
}
formularioEnviado :boolean;
openModal(mensaje: string) {
const dialogRef = this.dialog.open(ConfirmacionEliminacionComponent, {
disableClose: true,
data: {mensaje: mensaje}
});
dialogRef.afterClosed().subscribe(result => {
console.log('La ventana modal se ha cerrado');
this.formularioEnviado = true;
});
}
} }
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment