sección configuraciones validado version 6

parent df84a952
...@@ -27,7 +27,6 @@ import { ParametrosEvaComponent } from './pages/Seccion-configuraciones/Parametr ...@@ -27,7 +27,6 @@ import { ParametrosEvaComponent } from './pages/Seccion-configuraciones/Parametr
import { MatIconRegistry } from '@angular/material/icon'; import { MatIconRegistry } from '@angular/material/icon';
import { MatIconTestingModule } from '@angular/material/icon/testing'; import { MatIconTestingModule } from '@angular/material/icon/testing';
import { MatChipsModule } from '@angular/material/chips'; import { MatChipsModule } from '@angular/material/chips';
import { MatAutocompleteModule } from '@angular/material/autocomplete';
import { MatSelectFilterModule } from 'mat-select-filter'; import { MatSelectFilterModule } from 'mat-select-filter';
import { FullCalendarModule } from '@fullcalendar/angular'; import { FullCalendarModule } from '@fullcalendar/angular';
...@@ -444,7 +443,7 @@ import { MatTooltipModule } from '@angular/material/tooltip'; ...@@ -444,7 +443,7 @@ import { MatTooltipModule } from '@angular/material/tooltip';
MatCardModule, MatCardModule,
MatButtonModule, MatButtonModule,
MatRadioModule, MatRadioModule,
MatAutocompleteModule
], ],
providers: [ providers: [
seguim, seguim,
......
...@@ -9,6 +9,7 @@ import { Compartir_idService } from 'src/app/modules/main/services/compartir_id/ ...@@ -9,6 +9,7 @@ import { Compartir_idService } from 'src/app/modules/main/services/compartir_id/
import { LineasInvestigacionService } from 'src/app/modules/main/services/lineas-investigacion/lineas-investigacion.service'; import { LineasInvestigacionService } from 'src/app/modules/main/services/lineas-investigacion/lineas-investigacion.service';
import { ProyectoLineasInvService } from 'src/app/modules/main/services/proyecto-lineasInv/proyecto-lineasInv.service'; import { ProyectoLineasInvService } from 'src/app/modules/main/services/proyecto-lineasInv/proyecto-lineasInv.service';
import { SublineasInvestigacionService } from 'src/app/modules/main/services/sublineas-investigacion/sublineas-investigacion.service'; import { SublineasInvestigacionService } from 'src/app/modules/main/services/sublineas-investigacion/sublineas-investigacion.service';
import { ConfirmacionEliminacionComponent } from '../../../../programa/opciones/ConfirmacionEliminacion/ConfirmacionEliminacion.component';
@Component({ @Component({
selector: 'vex-list-linea', selector: 'vex-list-linea',
...@@ -41,7 +42,7 @@ export class ListLineaComponent implements OnInit { ...@@ -41,7 +42,7 @@ export class ListLineaComponent implements OnInit {
) { this.dataSource = new MatTableDataSource<Prolin>([]); } ) { this.dataSource = new MatTableDataSource<Prolin>([]); }
ngOnInit(): void { ngOnInit(): void {
this.idRecuperado = parseInt(localStorage.getItem('proyectoId'),10); this.idRecuperado = parseInt(localStorage.getItem('proyectoId'), 10);
this.datosCompartidos.datos$.subscribe(() => { this.datosCompartidos.datos$.subscribe(() => {
this.obtenerRegistros(); this.obtenerRegistros();
// this.obtenerNombres(); // this.obtenerNombres();
...@@ -78,8 +79,8 @@ export class ListLineaComponent implements OnInit { ...@@ -78,8 +79,8 @@ export class ListLineaComponent implements OnInit {
} }
eliminarParametros(id: number) { eliminarParametros(id: number) {
const confirmacion = confirm('¿Desea eliminar el registro?'); this.openModalDelete('¿Desea eliminar el registro?').subscribe(result => {
if (confirmacion) { if (result) {
this.proyectoLineasInvService.eliminarParametros(id).subscribe( this.proyectoLineasInvService.eliminarParametros(id).subscribe(
() => { () => {
console.log('El registro se ha eliminado'); console.log('El registro se ha eliminado');
...@@ -91,8 +92,17 @@ export class ListLineaComponent implements OnInit { ...@@ -91,8 +92,17 @@ export class ListLineaComponent implements OnInit {
} }
); );
} }
});
} }
formularioEnviado: boolean;
openModalDelete(mensaje: string): Observable<string> {
const dialogRef = this.dialog.open(ConfirmacionEliminacionComponent, {
disableClose: true,
data: { mensaje: mensaje }
});
return dialogRef.afterClosed();
}
} }
...@@ -26,6 +26,8 @@ export class AddObjetivosEstrategicosComponent implements OnInit { ...@@ -26,6 +26,8 @@ export class AddObjetivosEstrategicosComponent implements OnInit {
estra: objetivosEstraInst[] = []; estra: objetivosEstraInst[] = [];
datosAgregados: proObjeEstra [] = [];
formularioEnviado: boolean; formularioEnviado: boolean;
idRecuperado: number; idRecuperado: number;
...@@ -61,6 +63,10 @@ export class AddObjetivosEstrategicosComponent implements OnInit { ...@@ -61,6 +63,10 @@ export class AddObjetivosEstrategicosComponent implements OnInit {
this.objEstraInS.obtenerPadres().subscribe(data => { this.objEstraInS.obtenerPadres().subscribe(data => {
this.padre = data; this.padre = data;
}); });
this.estraS.obtenerParametros().subscribe(data => {
this.datosAgregados = data.filter(item => item.uzytavproyec_ID === this.idRecuperado);
});
} }
obtenerHijo2(id: number){ obtenerHijo2(id: number){
...@@ -69,6 +75,10 @@ export class AddObjetivosEstrategicosComponent implements OnInit { ...@@ -69,6 +75,10 @@ export class AddObjetivosEstrategicosComponent implements OnInit {
}); });
} }
estrategiaAgregada(id_estra: number){
return this.datosAgregados.some(item => item.uzytavobjetivos_ESTRA_INSTI_ID === id_estra)
}
onSubmit() { onSubmit() {
if (this.myForm.valid) { if (this.myForm.valid) {
try { try {
......
...@@ -16,11 +16,11 @@ ...@@ -16,11 +16,11 @@
<div class="input-container"> <div class="input-container">
<mat-form-field class="contenedor-dos"> <mat-form-field class="contenedor-dos">
<mat-label>Nombres</mat-label> <mat-label>Nombres</mat-label>
<input matInput [formControl]="myControl" [matAutocomplete]="autocomplete" formControlName="nombres" <input matInput [formControl]="myControl" formControlName="nombres"
placeholder="Realizar búsqueda" /> placeholder="Realizar búsqueda" />
</mat-form-field> </mat-form-field>
<mat-autocomplete *ngIf="usuarios" autoActiveFirstOption #auto="matAutocomplete"> <mat-autocomplete *ngIf="usuarios" autoActiveFirstOption >
<mat-option *ngFor="let usuario of filteredOptions | async" [value]="usuario" <mat-option *ngFor="let usuario of filteredOptions | async" [value]="usuario"
(click)="onUsuarioSelected(usuario)"> (click)="onUsuarioSelected(usuario)">
{{ usuario.uzytusuario_nombres }} {{ usuario.uzytusuario_apellidos }} {{ usuario.uzytusuario_nombres }} {{ usuario.uzytusuario_apellidos }}
......
...@@ -36,14 +36,13 @@ ...@@ -36,14 +36,13 @@
<div class="busqueda"> <div class="busqueda">
<mat-form-field appearance="outline"> <mat-form-field appearance="outline">
<mat-label>Nombres</mat-label> <mat-label>Nombres</mat-label>
<input matInput [(ngModel)]="searchTerm" (ngModelChange)="realizarBusqueda()" placeholder="Realizar búsqueda" /> <input matInput [(ngModel)]="searchTerm" (ngModelChange)="resetAutocompleteVisibility(); realizarBusqueda()" placeholder="Realizar búsqueda" />
</mat-form-field> </mat-form-field>
<mat-autocomplete *ngIf="usuarios" [displayWith]="displayFn"> <mat-autocomplete *ngIf="usuarios && autocompleteVisible" [displayWith]="displayFn">
<mat-option *ngFor="let usuario of usuarios" [value]="usuario" (onSelectionChange)="onUsuarioSelected(usuario)"> <mat-option *ngFor="let usuario of usuarios" [value]="usuario" (click)="onUsuarioSelected(usuario)">
{{ usuario.uzytusuario_nombres }} {{ usuario.uzytusuario_apellidos }} {{ usuario.uzytusuario_nombres }} {{ usuario.uzytusuario_apellidos }}
</mat-option> </mat-option>
</mat-autocomplete> </mat-autocomplete>
</div> </div>
......
...@@ -15,7 +15,7 @@ import { UsuariosService } from 'src/app/modules/main/services/usuarios/usuarios ...@@ -15,7 +15,7 @@ import { UsuariosService } from 'src/app/modules/main/services/usuarios/usuarios
styleUrls: ['./add-integrantes-comision.component.css'] styleUrls: ['./add-integrantes-comision.component.css']
}) })
export class AddIntegrantesComisionComponent implements OnInit { export class AddIntegrantesComisionComponent implements OnInit {
autocompleteVisible: boolean = true;
integrantesComision: IntegrantesComision; integrantesComision: IntegrantesComision;
myForm: FormGroup; myForm: FormGroup;
checkboxValue: string; checkboxValue: string;
...@@ -112,6 +112,7 @@ export class AddIntegrantesComisionComponent implements OnInit { ...@@ -112,6 +112,7 @@ export class AddIntegrantesComisionComponent implements OnInit {
onUsuarioSelected(usuario: any): void { onUsuarioSelected(usuario: any): void {
if (usuario) { if (usuario) {
this.idUsuario = usuario.uzytusuario_id; this.idUsuario = usuario.uzytusuario_id;
...@@ -123,6 +124,7 @@ export class AddIntegrantesComisionComponent implements OnInit { ...@@ -123,6 +124,7 @@ export class AddIntegrantesComisionComponent implements OnInit {
apellido: this.selectedUsuario.uzytusuario_apellidos, apellido: this.selectedUsuario.uzytusuario_apellidos,
email: this.selectedUsuario.uzytusuario_email email: this.selectedUsuario.uzytusuario_email
}); });
this.autocompleteVisible = false;
} else { } else {
console.log("no existe el usuario") console.log("no existe el usuario")
...@@ -130,7 +132,9 @@ export class AddIntegrantesComisionComponent implements OnInit { ...@@ -130,7 +132,9 @@ export class AddIntegrantesComisionComponent implements OnInit {
} }
resetAutocompleteVisibility() {
this.autocompleteVisible = true;
}
onCancel() { onCancel() {
this.route.navigate(['main/ComisionEvaluacion']); this.route.navigate(['main/ComisionEvaluacion']);
......
...@@ -33,7 +33,7 @@ ...@@ -33,7 +33,7 @@
<div class="input-container"> <div class="input-container">
<mat-form-field> <mat-form-field>
<mat-label>Aspecto de Evaluación:</mat-label> <mat-label>Opción:</mat-label>
<mat-select formControlName="opcion" required class="dropdown"> <mat-select formControlName="opcion" required class="dropdown">
<mat-option>--</mat-option> <mat-option>--</mat-option>
<mat-option *ngFor="let opcion of menus" [value]="opcion.valor"> <mat-option *ngFor="let opcion of menus" [value]="opcion.valor">
......
...@@ -110,7 +110,6 @@ export class ConvocatoriasAgregarComponent implements OnInit { ...@@ -110,7 +110,6 @@ export class ConvocatoriasAgregarComponent implements OnInit {
idPDF: null, idPDF: null,
filename: '' filename: ''
}; };
throw error;
} }
} }
...@@ -120,10 +119,136 @@ export class ConvocatoriasAgregarComponent implements OnInit { ...@@ -120,10 +119,136 @@ export class ConvocatoriasAgregarComponent implements OnInit {
if (this.myForm.valid && !this.enviarSolicitud) { if (this.myForm.valid && !this.enviarSolicitud) {
this.enviarSolicitud = true; this.enviarSolicitud = true;
if (this.checkboxValue === 'A') {
try {
const convocatoriaActivaError = await this.checkConvocatoriaActivaError();
if (convocatoriaActivaError) {
this.openModalError('Ya existe una Convocatoria Activa');
} else {
const pdfData = await this.enviarPDF();
if (pdfData.idPDF === null || pdfData.idPDF === undefined) {
// No hacer nada si hay un error al enviar el PDF
} else {
this.convocatoria.uzytavconvoca_id_file = pdfData.idPDF;
this.convocatoria.uzytavconvoca_digital_nombre = pdfData.filename;
this.convocatoria.uzytavconvoca_estado = this.checkboxValue;
this.convocatoria.uzytavconvoca_nombre = this.myForm.value.nombre;
this.convocatoria.uzytavconvoca_observacion = this.myForm.value.descripcion;
this.convocatoria.uzytavconvoca_fecha_inicio = this.myForm.value.fechaInicio;
this.convocatoria.uzytavconvoca_fecha_fin = this.myForm.value.fechaFin;
this.convocatoriaService.guardarConvocatoria(this.convocatoria).subscribe(
response => {
this.datosCompartidos.actualizarDatos(this.convocatoria);
this.actualizarAnexosService.actualizarDatos(this.file);
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');
}
} else {
// Si el checkboxValue no es 'A', no es necesario verificar convocatoria activa
const pdfData = await this.enviarPDF();
if (pdfData.idPDF === null || pdfData.idPDF === undefined) {
// No hacer nada si hay un error al enviar el PDF
} else {
this.convocatoria.uzytavconvoca_id_file = pdfData.idPDF;
this.convocatoria.uzytavconvoca_digital_nombre = pdfData.filename;
this.convocatoria.uzytavconvoca_estado = this.checkboxValue;
this.convocatoria.uzytavconvoca_nombre = this.myForm.value.nombre;
this.convocatoria.uzytavconvoca_observacion = this.myForm.value.descripcion;
this.convocatoria.uzytavconvoca_fecha_inicio = this.myForm.value.fechaInicio;
this.convocatoria.uzytavconvoca_fecha_fin = this.myForm.value.fechaFin;
this.convocatoriaService.guardarConvocatoria(this.convocatoria).subscribe(
response => {
this.datosCompartidos.actualizarDatos(this.convocatoria);
this.actualizarAnexosService.actualizarDatos(this.file);
this.router.navigate(['main/Convocatorias']);
},
error => {
this.openModalError('Error al guardar la Convocatoria');
//this.router.navigate(['main/Convocatorias']);
}
);
}
}
}
}
/*
async onSubmit() {
this.verificarCheckbox();
if (this.myForm.valid && !this.enviarSolicitud) {
this.enviarSolicitud = true;
try {
const convocatoriaActivaError = await this.checkConvocatoriaActivaError();
if (convocatoriaActivaError) {
this.openModalError('Ya existe una Convocatoria Activa');
} else {
const pdfData = await this.enviarPDF();
if (pdfData.idPDF === null || pdfData.idPDF === undefined) {
} else {
this.convocatoria.uzytavconvoca_id_file = pdfData.idPDF;
this.convocatoria.uzytavconvoca_digital_nombre = pdfData.filename;
this.convocatoria.uzytavconvoca_estado = this.checkboxValue;
this.convocatoria.uzytavconvoca_nombre = this.myForm.value.nombre;
this.convocatoria.uzytavconvoca_observacion = this.myForm.value.descripcion;
this.convocatoria.uzytavconvoca_fecha_inicio = this.myForm.value.fechaInicio;
this.convocatoria.uzytavconvoca_fecha_fin = this.myForm.value.fechaFin;
this.convocatoriaService.guardarConvocatoria(this.convocatoria).subscribe(
response => {
this.datosCompartidos.actualizarDatos(this.convocatoria);
this.actualizarAnexosService.actualizarDatos(this.file);
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');
}
}
}*/
/*
async onSubmit() {
this.verificarCheckbox();
if (this.myForm.valid && !this.enviarSolicitud) {
this.enviarSolicitud = true;
try { try {
const pdfData = await this.enviarPDF(); const pdfData = await this.enviarPDF();
if (pdfData !== null || pdfData !== undefined) { if (pdfData.idPDF === null || pdfData.idPDF === undefined) {
} else {
this.convocatoria.uzytavconvoca_id_file = pdfData.idPDF; this.convocatoria.uzytavconvoca_id_file = pdfData.idPDF;
this.convocatoria.uzytavconvoca_digital_nombre = pdfData.filename; this.convocatoria.uzytavconvoca_digital_nombre = pdfData.filename;
...@@ -145,12 +270,32 @@ export class ConvocatoriasAgregarComponent implements OnInit { ...@@ -145,12 +270,32 @@ export class ConvocatoriasAgregarComponent implements OnInit {
} }
); );
} }
} catch (error) { } catch (error) {
this.openModalError('Error al enviar el PDF'); this.openModalError('Error al enviar el PDF');
} }
} }
}*/
async checkConvocatoriaActivaError() {
try {
const convocatorias = await this.convocatoriaService.obtenerConvocatorias().toPromise();
const existeConvocatoriaActiva = convocatorias.some(convocatoria => convocatoria.uzytavconvoca_estado === 'A');
return existeConvocatoriaActiva;
} catch (error) {
console.error('Error al verificar Convocatoria Activa:', error);
return true;
}
} }
openModalError(texto: string) { openModalError(texto: string) {
const dialogRef = this.dialog.open(ErroresComponent, { const dialogRef = this.dialog.open(ErroresComponent, {
disableClose: true, disableClose: true,
......
...@@ -10,7 +10,7 @@ ...@@ -10,7 +10,7 @@
</div> </div>
</mat-card-header> </mat-card-header>
<mat-card-content> <mat-card-content>
<mat-label><strong>>Seleccione el objetivo del Plan de Vinculación a agregar</strong></mat-label> <mat-label><strong>Seleccione el objetivo del Plan de Vinculación a agregar</strong></mat-label>
<mat-form-field class="form-field"> <mat-form-field class="form-field">
<mat-label>Seleccione el objetivo del Plan de Vinculación a agregar</mat-label> <mat-label>Seleccione el objetivo del Plan de Vinculación a agregar</mat-label>
<mat-select formControlName="objetivo"> <mat-select formControlName="objetivo">
......
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