Merge branch 'desarrollo' into 'master'

Desarrollo

See merge request !6
parents d4a01c2d df84a952
...@@ -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();
}
} }
...@@ -2,11 +2,13 @@ import { Component, OnInit, OnDestroy, ViewChild } from '@angular/core'; ...@@ -2,11 +2,13 @@ import { Component, OnInit, OnDestroy, ViewChild } from '@angular/core';
import { MostrarOcultarService } from '../../../../services/mostrar-ocultar.service'; import { MostrarOcultarService } from '../../../../services/mostrar-ocultar.service';
import { Perfil } from '../../../../Models/perfil'; import { Perfil } from '../../../../Models/perfil';
import { PerfilService } from '../../../../services/perfiles/perfil.service'; import { PerfilService } from '../../../../services/perfiles/perfil.service';
import { Subscription } from 'rxjs'; import { Observable, Subscription } from 'rxjs';
import { Router } from '@angular/router'; import { Router } from '@angular/router';
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: 'app-perfil-usuario', selector: 'app-perfil-usuario',
...@@ -34,7 +36,8 @@ export class PerfilUsuarioComponent implements OnInit { ...@@ -34,7 +36,8 @@ export class PerfilUsuarioComponent implements OnInit {
constructor( constructor(
public mostrarOcultarService: MostrarOcultarService, public mostrarOcultarService: MostrarOcultarService,
private router: Router, private router: Router,
private perfilService: PerfilService private perfilService: PerfilService,
private dialog: MatDialog
) { ) {
this.dataSource = new MatTableDataSource<Perfil>([]); this.dataSource = new MatTableDataSource<Perfil>([]);
} }
...@@ -44,10 +47,10 @@ export class PerfilUsuarioComponent implements OnInit { ...@@ -44,10 +47,10 @@ export class PerfilUsuarioComponent 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: Perfil) => { this.dataSource.filterPredicate = (data: Perfil) => {
const nombre = data.uzytperfil_nombre.toLowerCase(); const nombre = data.uzytperfil_nombre.toLowerCase();
// Filtrar por todos los campos (nombre de institución, dirección, representante y parroquia) // Filtrar por todos los campos (nombre de institución, dirección, representante y parroquia)
return ( return (
nombre.includes(this.filtroGeneral.toLowerCase()) nombre.includes(this.filtroGeneral.toLowerCase())
...@@ -75,24 +78,33 @@ export class PerfilUsuarioComponent implements OnInit { ...@@ -75,24 +78,33 @@ export class PerfilUsuarioComponent implements OnInit {
eliminarParametro(id: number) { eliminarParametro(id: number) {
const confirmacion = confirm('¿Estás seguro de que quieres eliminar este parámetro?'); this.openModalDelete('¿Estás seguro de eliminar el Perfil?').subscribe(result => {
if (confirmacion) { if (result) {
console.log("id", id); console.log("id", id);
this.perfilService.eliminarParametros(id).subscribe( this.perfilService.eliminarParametros(id).subscribe(
() => { () => {
// Manejar la eliminación exitosa // Manejar la eliminación exitosa
console.log('Registro eliminado correctamente'); console.log('Registro eliminado correctamente');
this.obtenerRegistros(); this.obtenerRegistros();
}, },
(error) => { (error) => {
// 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();
}
volver() { volver() {
this.router.navigate(['main/PrincipalUsuarios']); this.router.navigate(['main/PrincipalUsuarios']);
...@@ -107,7 +119,7 @@ export class PerfilUsuarioComponent implements OnInit { ...@@ -107,7 +119,7 @@ export class PerfilUsuarioComponent implements OnInit {
ngOnInit() { ngOnInit() {
this.obtenerRegistros(); this.obtenerRegistros();
} }
ngOnDestroy() { ngOnDestroy() {
......
...@@ -3,6 +3,9 @@ import { UsuariosService } from '../../../../services/usuarios/usuarios.service' ...@@ -3,6 +3,9 @@ import { UsuariosService } from '../../../../services/usuarios/usuarios.service'
import { Router } from '@angular/router'; import { Router } from '@angular/router';
import { Usuario } from '../../../../../main/Models/usuario'; import { Usuario } from '../../../../../main/Models/usuario';
import { MostrarOcultarService } from '../../../../services/mostrar-ocultar.service'; import { MostrarOcultarService } from '../../../../services/mostrar-ocultar.service';
import { Observable } from 'rxjs';
import { ConfirmacionEliminacionComponent } from '../../../programa/opciones/ConfirmacionEliminacion/ConfirmacionEliminacion.component';
import { MatDialog } from '@angular/material/dialog';
@Component({ @Component({
selector: 'app-usuarios', selector: 'app-usuarios',
...@@ -17,6 +20,7 @@ export class UsuariosComponent implements OnInit { ...@@ -17,6 +20,7 @@ export class UsuariosComponent implements OnInit {
public mostrarOcultarService: MostrarOcultarService, public mostrarOcultarService: MostrarOcultarService,
private route: Router, private route: Router,
private usuariosService: UsuariosService, private usuariosService: UsuariosService,
private dialog: MatDialog
) { ) {
} }
...@@ -40,21 +44,32 @@ export class UsuariosComponent implements OnInit { ...@@ -40,21 +44,32 @@ export class UsuariosComponent implements OnInit {
// Código para el buscar // Código para el buscar
eliminarParametro(id: number) { eliminarParametro(id: number) {
const confirmacion = confirm('¿Estás seguro de que quieres eliminar este parámetro?'); this.openModalDelete('¿Estás seguro de eliminar este Usuario?').subscribe(result => {
if (confirmacion) { if (result) {
console.log("id", id); console.log("id", id);
this.usuariosService.eliminarParametros(id).subscribe( this.usuariosService.eliminarParametros(id).subscribe(
() => { () => {
// Manejar la eliminación exitosa // Manejar la eliminación exitosa
console.log('Registro eliminado correctamente'); console.log('Registro eliminado correctamente');
this.obtenerRegistros(); this.obtenerRegistros();
}, },
(error) => { (error) => {
// 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