proyecto validado completo

parent 3ca5b574
...@@ -69,7 +69,7 @@ export class ActaCompromisoCarrerasComponent implements OnInit { ...@@ -69,7 +69,7 @@ export class ActaCompromisoCarrerasComponent implements OnInit {
if (fileList.length > 0) { if (fileList.length > 0) {
this.file = fileList[0]; this.file = fileList[0];
if (!this.validarArchivo(this.file)) { if (!this.validarArchivo(this.file)) {
this.openModalError('¡Por favor, selecciona un archivo PDF!'); this.openModalError('Por favor, selecciona un archivo PDF');
return; return;
} else { } else {
this.archivoEsPDFValido = true; this.archivoEsPDFValido = true;
......
...@@ -94,7 +94,7 @@ export class EditInstiComponent implements OnInit { ...@@ -94,7 +94,7 @@ export class EditInstiComponent implements OnInit {
this.instuPro.uzytavinstproy_indirectos = this.myForm.get('indirecto').value; this.instuPro.uzytavinstproy_indirectos = this.myForm.get('indirecto').value;
this.instuPro.uzytavinstproy_TOTAL = this.myForm.get('total').value; this.instuPro.uzytavinstproy_TOTAL = this.myForm.get('total').value;
this.instP.modificarParametros(this.instuPro.uzytavinstproy_id, this.instuPro).subscribe(response => { this.instP.modificarParametros(this.instuPro.uzytavinstproy_id, this.instuPro).subscribe(response => {
this.openModal(); this.openModal('Los Beneficiarios han sido Agregados');
this.idCompartido.ocultarFormulario2(); this.idCompartido.ocultarFormulario2();
this.datosCompartidos.actualizarDatos(this.instuPro); this.datosCompartidos.actualizarDatos(this.instuPro);
}, error => { }, error => {
...@@ -110,9 +110,10 @@ export class EditInstiComponent implements OnInit { ...@@ -110,9 +110,10 @@ export class EditInstiComponent implements OnInit {
this.myForm.reset(); this.myForm.reset();
} }
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 => {
......
...@@ -39,7 +39,7 @@ export class EditObjetivosEjecComponent implements OnInit { ...@@ -39,7 +39,7 @@ export class EditObjetivosEjecComponent implements OnInit {
initializeForm(){ initializeForm(){
this.myForm = this.formBuilder.group({ this.myForm = this.formBuilder.group({
descrip: [{value: this.objetivoProgra.uzytavobjetivo_programaobjetivo_proy, disabled: true}, Validators.required], descrip: [{value: this.objetivoProgra.uzytavobjetivo_programaobjetivo_proy, disabled: true}, Validators.required],
valor: [{value: this.objetivoProgra.uzytavobjetivo_programaindicador_valor_eje, disabled: false}, [Validators.required, this.valorMaximoValidator.bind(this)]] valor: [{value: this.objetivoProgra.uzytavobjetivo_programaindicador_valor_eje, disabled: false}, [Validators.required]]
}); });
} }
...@@ -58,7 +58,7 @@ export class EditObjetivosEjecComponent implements OnInit { ...@@ -58,7 +58,7 @@ export class EditObjetivosEjecComponent implements OnInit {
if(this.myForm.valid){ if(this.myForm.valid){
this.objetivoProgra.uzytavobjetivo_programaindicador_valor_eje = this.myForm.get('valor').value; this.objetivoProgra.uzytavobjetivo_programaindicador_valor_eje = this.myForm.get('valor').value;
this.objS.modificarParametros(this.objetivoProgra.uzytavobjetivo_programa_id, this.objetivoProgra).subscribe(response => { this.objS.modificarParametros(this.objetivoProgra.uzytavobjetivo_programa_id, this.objetivoProgra).subscribe(response => {
this.openModal(); this.openModal('La información se ha Actualizado');
this.idCompartido.ocultarFormulario3(); this.idCompartido.ocultarFormulario3();
this.datosCompartidos.actualizarDatos(this.objetivoProgra); this.datosCompartidos.actualizarDatos(this.objetivoProgra);
}); });
...@@ -72,9 +72,10 @@ export class EditObjetivosEjecComponent implements OnInit { ...@@ -72,9 +72,10 @@ export class EditObjetivosEjecComponent implements OnInit {
this.myForm.reset(); this.myForm.reset();
} }
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 => {
......
...@@ -94,6 +94,7 @@ export class AporteComEjecComponent implements OnInit { ...@@ -94,6 +94,7 @@ export class AporteComEjecComponent implements OnInit {
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.openModal();
this.dynamicForm.disable() this.dynamicForm.disable()
this.openModal('La información se ha Actualizado');
this.cambio = false; // Disable editing mode this.cambio = false; // Disable editing mode
this.obtenerRegistros() this.obtenerRegistros()
}, },
...@@ -105,9 +106,10 @@ export class AporteComEjecComponent implements OnInit { ...@@ -105,9 +106,10 @@ export class AporteComEjecComponent 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 => {
......
...@@ -94,6 +94,7 @@ export class AporteEntEjecComponent implements OnInit { ...@@ -94,6 +94,7 @@ export class AporteEntEjecComponent implements OnInit {
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.openModal();
this.dynamicForm.disable() this.dynamicForm.disable()
this.openModal('La información se ha Actualizado');
this.cambio = false; // Disable editing mode this.cambio = false; // Disable editing mode
this.obtenerRegistros() this.obtenerRegistros()
}, },
...@@ -105,9 +106,10 @@ export class AporteEntEjecComponent implements OnInit { ...@@ -105,9 +106,10 @@ export class AporteEntEjecComponent 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 => {
......
...@@ -86,9 +86,10 @@ export class AporteUniEjecComponent implements OnInit { ...@@ -86,9 +86,10 @@ export class AporteUniEjecComponent 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 => {
...@@ -108,7 +109,7 @@ export class AporteUniEjecComponent implements OnInit { ...@@ -108,7 +109,7 @@ export class AporteUniEjecComponent 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.openModal('La información se ha Actualizado');
this.dynamicForm.disable() this.dynamicForm.disable()
this.cambio = false; // Disable editing mode this.cambio = false; // Disable editing mode
this.obtenerRegistros() this.obtenerRegistros()
......
...@@ -6,7 +6,7 @@ ...@@ -6,7 +6,7 @@
<button mat-raised-button color="primary" *ngIf="!cambio" <button mat-raised-button color="primary" *ngIf="!cambio"
(click)="cambiar()">Editar</button> (click)="cambiar()">Editar</button>
<button mat-raised-button color="primary" *ngIf="cambio" <button mat-raised-button color="primary" *ngIf="cambio"
[disabled]="!myForm.valid">Guardar</button> [disabled]="myForm.invalid">Guardar</button>
<span class="separator"></span> <span class="separator"></span>
<button mat-raised-button color="warn" *ngIf="cambio" <button mat-raised-button color="warn" *ngIf="cambio"
(click)="cancelado()">Cancelar</button> (click)="cancelado()">Cancelar</button>
...@@ -24,6 +24,9 @@ ...@@ -24,6 +24,9 @@
class="error-message"> class="error-message">
El contenido no puede exceder los 500 caracteres. El contenido no puede exceder los 500 caracteres.
</div> </div>
<div *ngIf="myForm.get('productoCierre').hasError('required') && (myForm.get('productoCierre').touched || myForm.dirty)" class="error-message">
Este campo es requerido.
</div>
</div> </div>
<div class="editor-separator"></div> <div class="editor-separator"></div>
<div> <div>
...@@ -35,6 +38,9 @@ ...@@ -35,6 +38,9 @@
class="error-message"> class="error-message">
El contenido no puede exceder los 500 caracteres. El contenido no puede exceder los 500 caracteres.
</div> </div>
<div *ngIf="myForm.get('bienesCierre').hasError('required') && (myForm.get('bienesCierre').touched || myForm.dirty)" class="error-message">
Este campo es requerido.
</div>
</div> </div>
<div class="editor-separator"></div> <div class="editor-separator"></div>
<div> <div>
...@@ -46,6 +52,9 @@ ...@@ -46,6 +52,9 @@
class="error-message"> class="error-message">
El contenido no puede exceder los 500 caracteres. El contenido no puede exceder los 500 caracteres.
</div> </div>
<div *ngIf="myForm.get('resultadoCierre').hasError('required') && (myForm.get('resultadoCierre').touched || myForm.dirty)" class="error-message">
Este campo es requerido.
</div>
</div> </div>
<div class="editor-separator"></div> <div class="editor-separator"></div>
<div> <div>
...@@ -58,6 +67,9 @@ ...@@ -58,6 +67,9 @@
class="error-message"> class="error-message">
El contenido no puede exceder los 500 caracteres. El contenido no puede exceder los 500 caracteres.
</div> </div>
<div *ngIf="myForm.get('servicioCierre').hasError('required') && (myForm.get('servicioCierre').touched || myForm.dirty)" class="error-message">
Este campo es requerido.
</div>
</div> </div>
<div class="editor-separator"></div> <div class="editor-separator"></div>
<div> <div>
...@@ -69,6 +81,9 @@ ...@@ -69,6 +81,9 @@
class="error-message"> class="error-message">
El contenido no puede exceder los 500 caracteres. El contenido no puede exceder los 500 caracteres.
</div> </div>
<div *ngIf="myForm.get('impactoCierre').hasError('required') && (myForm.get('impactoCierre').touched || myForm.dirty)" class="error-message">
Este campo es requerido.
</div>
</div> </div>
<div class="editor-separator"></div> <div class="editor-separator"></div>
...@@ -81,6 +96,9 @@ ...@@ -81,6 +96,9 @@
<div *ngIf="myForm.get('restricCierre').hasError('maxlength')" class="error-message"> <div *ngIf="myForm.get('restricCierre').hasError('maxlength')" class="error-message">
El contenido no puede exceder los 500 caracteres. El contenido no puede exceder los 500 caracteres.
</div> </div>
<div *ngIf="myForm.get('restricCierre').hasError('required') && (myForm.get('restricCierre').touched || myForm.dirty)" class="error-message">
Este campo es requerido.
</div>
</div> </div>
<div class="editor-separator"></div> <div class="editor-separator"></div>
...@@ -92,6 +110,9 @@ ...@@ -92,6 +110,9 @@
<div *ngIf="myForm.get('comenCierre').hasError('maxlength')" class="error-message"> <div *ngIf="myForm.get('comenCierre').hasError('maxlength')" class="error-message">
El contenido no puede exceder los 500 caracteres. El contenido no puede exceder los 500 caracteres.
</div> </div>
<div *ngIf="myForm.get('comenCierre').hasError('required') && (myForm.get('comenCierre').touched || myForm.dirty)" class="error-message">
Este campo es requerido.
</div>
</div> </div>
</mat-card-content> </mat-card-content>
......
...@@ -38,6 +38,27 @@ export class ResultadosComponent implements OnInit { ...@@ -38,6 +38,27 @@ export class ResultadosComponent implements OnInit {
cancelado() { cancelado() {
this.cambio = false; this.cambio = false;
this.isEditorEnabled = false; this.isEditorEnabled = false;
this.myForm.get('productoCierre').setValue('');
this.myForm.get('productoCierre').setValue('');
this.myForm.get('bienesCierre').setValue('');
this.myForm.get('bienesCierre').setValue('');
this.myForm.get('resultadoCierre').setValue('');
this.myForm.get('resultadoCierre').setValue('');
this.myForm.get('servicioCierre').setValue('');
this.myForm.get('servicioCierre').setValue('');
this.myForm.get('impactoCierre').setValue('');
this.myForm.get('impactoCierre').setValue('');
this.myForm.get('restricCierre').setValue('');
this.myForm.get('restricCierre').setValue('');
this.myForm.get('comenCierre').setValue('');
this.myForm.get('comenCierre').setValue('');
} }
ngOnInit(): void { ngOnInit(): void {
...@@ -89,7 +110,7 @@ export class ResultadosComponent implements OnInit { ...@@ -89,7 +110,7 @@ export class ResultadosComponent implements OnInit {
this.proyectosService.modificarParametros(this.idRecuperado, this.proyectos).subscribe(response => { this.proyectosService.modificarParametros(this.idRecuperado, this.proyectos).subscribe(response => {
this.cambio = false; this.cambio = false;
this.isEditorEnabled = false; this.isEditorEnabled = false;
this.openModal(); this.openModal('Los Resultados del Proyecto han sido Almacenados');
}); });
} catch (error) { } catch (error) {
...@@ -99,9 +120,10 @@ export class ResultadosComponent implements OnInit { ...@@ -99,9 +120,10 @@ export class ResultadosComponent 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 => {
......
...@@ -7,7 +7,7 @@ ...@@ -7,7 +7,7 @@
<input type="file" accept=".pdf" (change)="onFileChange($event)" formControlName="archivo"> <input type="file" accept=".pdf" (change)="onFileChange($event)" formControlName="archivo">
</div> </div>
<div class="form-actions"> <div class="form-actions">
<button type="submit" [disabled]="myForm.invalid">Guardar</button> <button type="submit" [disabled]="!archivoEsPDFValido">Guardar</button>
<button type="button" (click)="cerrarModal()">Cerrar</button> <button type="button" (click)="cerrarModal()">Cerrar</button>
</div> </div>
</form> </form>
......
import { Component, OnInit, Inject } from '@angular/core'; import { Component, OnInit, Inject } from '@angular/core';
import { FormBuilder, FormGroup, Validators } from '@angular/forms'; import { FormBuilder, FormGroup, Validators } from '@angular/forms';
import { MatDialogRef, MAT_DIALOG_DATA } from '@angular/material/dialog'; import { MatDialogRef, MAT_DIALOG_DATA, MatDialog } from '@angular/material/dialog';
import { docompar } from 'src/app/modules/main/Models/docompar'; import { docompar } from 'src/app/modules/main/Models/docompar';
import { DatosEspeService } from 'src/app/modules/main/services/APIs Externas/Datos espe/datos-espe.service'; import { DatosEspeService } from 'src/app/modules/main/services/APIs Externas/Datos espe/datos-espe.service';
import { saveAs } from 'file-saver'; import { saveAs } from 'file-saver';
import { parametrosdet } from 'src/app/modules/main/Models/parametrosdet'; import { parametrosdet } from 'src/app/modules/main/Models/parametrosdet';
import { ParametrosdetService } from 'src/app/modules/main/services/parametrosdet/parametrosdet.service'; import { ParametrosdetService } from 'src/app/modules/main/services/parametrosdet/parametrosdet.service';
import { Actualiza_datosService } from 'src/app/modules/main/services/actualiza_datos/actualiza_datos.service'; import { Actualiza_datosService } from 'src/app/modules/main/services/actualiza_datos/actualiza_datos.service';
import { ErrorTextoComponent } from '../../../errores/error-texto/error-texto.component';
@Component({ @Component({
selector: 'vex-add-documentos', selector: 'vex-add-documentos',
templateUrl: './add-documentos.component.html', templateUrl: './add-documentos.component.html',
...@@ -25,14 +26,15 @@ export class AddDocumentosComponent implements OnInit { ...@@ -25,14 +26,15 @@ export class AddDocumentosComponent implements OnInit {
private formBuilder: FormBuilder, private formBuilder: FormBuilder,
private datosEspeService: DatosEspeService, private datosEspeService: DatosEspeService,
private pdfService: ParametrosdetService, private pdfService: ParametrosdetService,
private datosCompartidos: Actualiza_datosService private datosCompartidos: Actualiza_datosService,
private dialog: MatDialog
) { ) {
this.docompar = new docompar(); this.docompar = new docompar();
} }
ngOnInit(): void { ngOnInit(): void {
this.myForm = this.formBuilder.group({ this.myForm = this.formBuilder.group({
archivo: [ '', Validators.required] archivo: ['', Validators.required]
}); });
console.log('ID recibido:', this.data.idConf); console.log('ID recibido:', this.data.idConf);
} }
...@@ -41,19 +43,45 @@ export class AddDocumentosComponent implements OnInit { ...@@ -41,19 +43,45 @@ export class AddDocumentosComponent implements OnInit {
this.selectedFile = event.target.files[0]; this.selectedFile = event.target.files[0];
} }
archivoEsPDFValido: boolean = false;
onFileChange(event: any) { onFileChange(event: any) {
// Obtener el archivo seleccionado // Obtener el archivo seleccionado
const fileList: FileList = event.target.files; const fileList: FileList = event.target.files;
if (fileList.length > 0) { if (fileList.length > 0) {
this.file = fileList[0]; this.file = fileList[0];
if (!this.validarArchivo(this.file)) {
this.openModalError('Seleccione Unicamente Archivos PDF');
} else {
this.archivoEsPDFValido = true;
}
}
}
openModalError(texto: string) {
const dialogRef = this.dialog.open(ErrorTextoComponent, {
disableClose: true,
data: { mensaje: texto }
});
dialogRef.afterClosed().subscribe(result => {
console.log('La ventana modal se ha cerrado');
this.formularioEnviado = true;
});
} }
validarArchivo(file: File): boolean {
const fileName = file.name;
return fileName.toLocaleLowerCase().endsWith('.pdf');
} }
async onSubmit() { async onSubmit() {
if (this.myForm.valid) { if (this.myForm.valid) {
try {
const pdfData = await this.enviarPDF(); const pdfData = await this.enviarPDF();
if (pdfData.idPDF === null || pdfData.idPDF === undefined) {
} else {
this.docompar.uzytavinstproy_id = this.data.idConf; this.docompar.uzytavinstproy_id = this.data.idConf;
this.docompar.uzytavdocompar_nombre_url = pdfData.idPDF; this.docompar.uzytavdocompar_nombre_url = pdfData.idPDF;
...@@ -69,6 +97,9 @@ export class AddDocumentosComponent implements OnInit { ...@@ -69,6 +97,9 @@ export class AddDocumentosComponent implements OnInit {
} }
); );
} }
} catch (error) {
}
}
} }
async enviarPDF() { async enviarPDF() {
...@@ -83,16 +114,20 @@ export class AddDocumentosComponent implements OnInit { ...@@ -83,16 +114,20 @@ export class AddDocumentosComponent implements OnInit {
filename: response.fileName filename: response.fileName
}; };
} catch (error) { } catch (error) {
console.error('Error al guardar el PDF en el servidor:', error); this.openModalError('Este PDF ya se ha subido');
throw error; this.archivoEsPDFValido = false;
return {
idPDF: null,
filename: ''
}
} }
} }
submitForm(){ submitForm() {
this.dialogRef.close(); this.dialogRef.close();
} }
cerrarModal(){ cerrarModal() {
this.dialogRef.close(); this.dialogRef.close();
......
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