validaciones en convocatoria prueba

parent 039bd996
...@@ -110,38 +110,43 @@ export class ConvocatoriasAgregarComponent implements OnInit { ...@@ -110,38 +110,43 @@ export class ConvocatoriasAgregarComponent implements OnInit {
idPDF: null, idPDF: null,
filename: '' filename: ''
}; };
throw error;
} }
} }
async onSubmit() { async onSubmit() {
this.verificarCheckbox(); this.verificarCheckbox();
if (this.myForm.valid && !this.enviarSolicitud) { if (this.myForm.valid && !this.enviarSolicitud) {
this.enviarSolicitud = true; this.enviarSolicitud = true;
const pdfData = await this.enviarPDF();
if (pdfData === null || pdfData === undefined) { try {
//this.openModalError('¡No se completo la Solicitud!'); const pdfData = await this.enviarPDF();
} else {
this.convocatoria.uzytavconvoca_id_file = pdfData.idPDF; if (pdfData !== null || pdfData !== undefined) {
this.convocatoria.uzytavconvoca_digital_nombre = pdfData.filename;
this.convocatoria.uzytavconvoca_estado = this.checkboxValue; this.convocatoria.uzytavconvoca_id_file = pdfData.idPDF;
this.convocatoria.uzytavconvoca_nombre = this.myForm.value.nombre; this.convocatoria.uzytavconvoca_digital_nombre = pdfData.filename;
this.convocatoria.uzytavconvoca_observacion = this.myForm.value.descripcion; this.convocatoria.uzytavconvoca_estado = this.checkboxValue;
this.convocatoria.uzytavconvoca_fecha_inicio = this.myForm.value.fechaInicio; this.convocatoria.uzytavconvoca_nombre = this.myForm.value.nombre;
this.convocatoria.uzytavconvoca_fecha_fin = this.myForm.value.fechaFin; this.convocatoria.uzytavconvoca_observacion = this.myForm.value.descripcion;
this.convocatoria.uzytavconvoca_fecha_inicio = this.myForm.value.fechaInicio;
this.convocatoriaService.guardarConvocatoria(this.convocatoria).subscribe( this.convocatoria.uzytavconvoca_fecha_fin = this.myForm.value.fechaFin;
response => {
this.datosCompartidos.actualizarDatos(this.convocatoria); this.convocatoriaService.guardarConvocatoria(this.convocatoria).subscribe(
this.actualizarAnexosService.actualizarDatos(this.file); response => {
this.router.navigate(['main/Convocatorias']); this.datosCompartidos.actualizarDatos(this.convocatoria);
}, this.actualizarAnexosService.actualizarDatos(this.file);
error => { this.router.navigate(['main/Convocatorias']);
this.openModalError('Ya existe una Convocatoria Activa'); },
//this.router.navigate(['main/Convocatorias']); error => {
} this.openModalError('Ya existe una Convocatoria Activa');
); //this.router.navigate(['main/Convocatorias']);
}
);
}
} catch (error) {
this.openModalError('Error al enviar el PDF');
} }
} }
} }
......
...@@ -2,7 +2,7 @@ import { Component, OnInit, Input, ViewChild } from '@angular/core'; ...@@ -2,7 +2,7 @@ import { Component, OnInit, Input, ViewChild } from '@angular/core';
import { Router } from '@angular/router'; import { Router } from '@angular/router';
import { Convocatoria } from '../../../Models/convocatoria'; import { Convocatoria } from '../../../Models/convocatoria';
import { ConvocatoriaService } from '../../../services/convocatoria/convocatoria.service'; import { ConvocatoriaService } from '../../../services/convocatoria/convocatoria.service';
import { Subscription} from 'rxjs'; import { Observable, Subscription} from 'rxjs';
import { HttpClient, HttpResponse } from '@angular/common/http'; import { HttpClient, HttpResponse } from '@angular/common/http';
import { format } from 'date-fns'; import { format } from 'date-fns';
import { MostrarOcultarService } from '../../../services/mostrar-ocultar.service'; import { MostrarOcultarService } from '../../../services/mostrar-ocultar.service';
...@@ -10,6 +10,8 @@ import { saveAs } from 'file-saver'; ...@@ -10,6 +10,8 @@ import { saveAs } from 'file-saver';
import { MatTableDataSource } from '@angular/material/table'; import { MatTableDataSource } from '@angular/material/table';
import { MatPaginator } from '@angular/material/paginator'; 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 { MatDialog } from '@angular/material/dialog';
@Component({ @Component({
selector: 'vex-convocatorias-listar', selector: 'vex-convocatorias-listar',
...@@ -45,7 +47,8 @@ export class ConvocatoriasListarComponent implements OnInit { ...@@ -45,7 +47,8 @@ export class ConvocatoriasListarComponent implements OnInit {
private router: Router, private router: Router,
private ConvocatoriaService: ConvocatoriaService, private ConvocatoriaService: ConvocatoriaService,
private httpClient: HttpClient, private httpClient: HttpClient,
public mostrarOcultarService: MostrarOcultarService public mostrarOcultarService: MostrarOcultarService,
private dialog: MatDialog
) { ) {
this.dataSource = new MatTableDataSource<Convocatoria>([]); this.dataSource = new MatTableDataSource<Convocatoria>([]);
} }
...@@ -59,7 +62,7 @@ export class ConvocatoriasListarComponent implements OnInit { ...@@ -59,7 +62,7 @@ export class ConvocatoriasListarComponent implements OnInit {
const filterValue = (event.target as HTMLInputElement).value; const filterValue = (event.target as HTMLInputElement).value;
this.dataSource.filter = filterValue.trim(); this.dataSource.filter = filterValue.trim();
this.filtroGeneral = filterValue.trim(); this.filtroGeneral = filterValue.trim();
this.dataSource.filterPredicate = (data: Convocatoria) => { this.dataSource.filterPredicate = (data: Convocatoria) => {
const Nombre = data.uzytavconvoca_nombre.toLowerCase(); const Nombre = data.uzytavconvoca_nombre.toLowerCase();
const Descripción = data.uzytavconvoca_observacion.toLowerCase(); const Descripción = data.uzytavconvoca_observacion.toLowerCase();
...@@ -67,7 +70,7 @@ export class ConvocatoriasListarComponent implements OnInit { ...@@ -67,7 +70,7 @@ export class ConvocatoriasListarComponent implements OnInit {
const FechaF = this.formatFecha(data.uzytavconvoca_fecha_fin).toLowerCase(); const FechaF = this.formatFecha(data.uzytavconvoca_fecha_fin).toLowerCase();
const Estado = data.uzytavconvoca_estado.toLowerCase(); const Estado = data.uzytavconvoca_estado.toLowerCase();
return ( return (
Nombre.includes(this.filtroGeneral.toLowerCase()) || Nombre.includes(this.filtroGeneral.toLowerCase()) ||
Descripción.includes(this.filtroGeneral.toLowerCase()) || Descripción.includes(this.filtroGeneral.toLowerCase()) ||
...@@ -101,12 +104,12 @@ export class ConvocatoriasListarComponent implements OnInit { ...@@ -101,12 +104,12 @@ export class ConvocatoriasListarComponent implements OnInit {
if (response && response.body) { if (response && response.body) {
const contentDispositionHeader = response.headers.get('content-disposition'); const contentDispositionHeader = response.headers.get('content-disposition');
const filename = this.getFilenameFromResponse(contentDispositionHeader) || nombre; const filename = this.getFilenameFromResponse(contentDispositionHeader) || nombre;
const blob = response.body; const blob = response.body;
// Crear una URL del objeto Blob // Crear una URL del objeto Blob
const pdfUrl = URL.createObjectURL(blob); const pdfUrl = URL.createObjectURL(blob);
// Abrir una nueva ventana o pestaña para mostrar el PDF // Abrir una nueva ventana o pestaña para mostrar el PDF
const newTab = window.open(pdfUrl, '_blank'); const newTab = window.open(pdfUrl, '_blank');
if (!newTab) { if (!newTab) {
...@@ -138,8 +141,8 @@ export class ConvocatoriasListarComponent implements OnInit { ...@@ -138,8 +141,8 @@ export class ConvocatoriasListarComponent implements OnInit {
} }
); );
} }
getFilenameFromResponse(contentDispositionHeader: string | null): string { getFilenameFromResponse(contentDispositionHeader: string | null): string {
if (contentDispositionHeader) { if (contentDispositionHeader) {
const matches = /filename[^;=\n]*=((['"]).*?\2|[^;\n]*)/.exec(contentDispositionHeader); const matches = /filename[^;=\n]*=((['"]).*?\2|[^;\n]*)/.exec(contentDispositionHeader);
...@@ -177,25 +180,35 @@ export class ConvocatoriasListarComponent implements OnInit { ...@@ -177,25 +180,35 @@ export class ConvocatoriasListarComponent implements OnInit {
return format(dateObj, 'dd-MM-yyyy'); return format(dateObj, 'dd-MM-yyyy');
} }
eliminarParametro(id: number) { eliminarParametro(id: number) {
const confirmacion = confirm('¿Estás seguro de que quieres eliminar este parámetro?'); this.openModalDelete('¿Está seguro de eliminar la Convocatoria?').subscribe(result => {
if (confirmacion) { if (result) {
this.ConvocatoriaService.eliminarConvocatoria(id).subscribe( this.ConvocatoriaService.eliminarConvocatoria(id).subscribe(
() => { () => {
// Manejar la eliminación exitosa // Manejar la eliminación exitosa
console.log('Registro eliminado correctamente'); console.log('Registro eliminado correctamente');
this.obtenerConvocatorias(); this.obtenerConvocatorias();
}, },
(error) => { (error) => {
this.obtenerConvocatorias(); this.obtenerConvocatorias();
// Manejar el error en caso de que ocurra // Manejar el error en caso de que ocurra
console.error('Error al eliminar el registro', error); console.error('Error al eliminar el registro', error);
} }
); );
} }
});
} }
formularioEnviado:boolean;
openModalDelete(mensaje: string): Observable<string>{
const dialogRef = this.dialog.open(ConfirmacionEliminacionComponent, {
disableClose: true,
data: { mensaje: mensaje }
});
return dialogRef.afterClosed();
}
} }
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