Merge branch 'desarrollo' into 'master'

sección configuraciones validado version 6

See merge request !7
parents c0ca7c0a 834e060e
......@@ -27,7 +27,6 @@ import { ParametrosEvaComponent } from './pages/Seccion-configuraciones/Parametr
import { MatIconRegistry } from '@angular/material/icon';
import { MatIconTestingModule } from '@angular/material/icon/testing';
import { MatChipsModule } from '@angular/material/chips';
import { MatAutocompleteModule } from '@angular/material/autocomplete';
import { MatSelectFilterModule } from 'mat-select-filter';
import { FullCalendarModule } from '@fullcalendar/angular';
......@@ -444,7 +443,7 @@ import { MatTooltipModule } from '@angular/material/tooltip';
MatCardModule,
MatButtonModule,
MatRadioModule,
MatAutocompleteModule
],
providers: [
seguim,
......
......@@ -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 { 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 { ConfirmacionEliminacionComponent } from '../../../../programa/opciones/ConfirmacionEliminacion/ConfirmacionEliminacion.component';
@Component({
selector: 'vex-list-linea',
......@@ -41,7 +42,7 @@ export class ListLineaComponent implements OnInit {
) { this.dataSource = new MatTableDataSource<Prolin>([]); }
ngOnInit(): void {
this.idRecuperado = parseInt(localStorage.getItem('proyectoId'),10);
this.idRecuperado = parseInt(localStorage.getItem('proyectoId'), 10);
this.datosCompartidos.datos$.subscribe(() => {
this.obtenerRegistros();
// this.obtenerNombres();
......@@ -78,8 +79,8 @@ export class ListLineaComponent implements OnInit {
}
eliminarParametros(id: number) {
const confirmacion = confirm('¿Desea eliminar el registro?');
if (confirmacion) {
this.openModalDelete('¿Desea eliminar el registro?').subscribe(result => {
if (result) {
this.proyectoLineasInvService.eliminarParametros(id).subscribe(
() => {
console.log('El registro se ha eliminado');
......@@ -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 {
estra: objetivosEstraInst[] = [];
datosAgregados: proObjeEstra [] = [];
formularioEnviado: boolean;
idRecuperado: number;
......@@ -61,6 +63,10 @@ export class AddObjetivosEstrategicosComponent implements OnInit {
this.objEstraInS.obtenerPadres().subscribe(data => {
this.padre = data;
});
this.estraS.obtenerParametros().subscribe(data => {
this.datosAgregados = data.filter(item => item.uzytavproyec_ID === this.idRecuperado);
});
}
obtenerHijo2(id: number){
......@@ -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() {
if (this.myForm.valid) {
try {
......
......@@ -16,11 +16,11 @@
<div class="input-container">
<mat-form-field class="contenedor-dos">
<mat-label>Nombres</mat-label>
<input matInput [formControl]="myControl" [matAutocomplete]="autocomplete" formControlName="nombres"
<input matInput [formControl]="myControl" formControlName="nombres"
placeholder="Realizar búsqueda" />
</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"
(click)="onUsuarioSelected(usuario)">
{{ usuario.uzytusuario_nombres }} {{ usuario.uzytusuario_apellidos }}
......
......@@ -36,14 +36,13 @@
<div class="busqueda">
<mat-form-field appearance="outline">
<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-autocomplete *ngIf="usuarios" [displayWith]="displayFn">
<mat-option *ngFor="let usuario of usuarios" [value]="usuario" (onSelectionChange)="onUsuarioSelected(usuario)">
<mat-autocomplete *ngIf="usuarios && autocompleteVisible" [displayWith]="displayFn">
<mat-option *ngFor="let usuario of usuarios" [value]="usuario" (click)="onUsuarioSelected(usuario)">
{{ usuario.uzytusuario_nombres }} {{ usuario.uzytusuario_apellidos }}
</mat-option>
</mat-autocomplete>
</div>
......
......@@ -15,7 +15,7 @@ import { UsuariosService } from 'src/app/modules/main/services/usuarios/usuarios
styleUrls: ['./add-integrantes-comision.component.css']
})
export class AddIntegrantesComisionComponent implements OnInit {
autocompleteVisible: boolean = true;
integrantesComision: IntegrantesComision;
myForm: FormGroup;
checkboxValue: string;
......@@ -112,6 +112,7 @@ export class AddIntegrantesComisionComponent implements OnInit {
onUsuarioSelected(usuario: any): void {
if (usuario) {
this.idUsuario = usuario.uzytusuario_id;
......@@ -123,6 +124,7 @@ export class AddIntegrantesComisionComponent implements OnInit {
apellido: this.selectedUsuario.uzytusuario_apellidos,
email: this.selectedUsuario.uzytusuario_email
});
this.autocompleteVisible = false;
} else {
console.log("no existe el usuario")
......@@ -130,7 +132,9 @@ export class AddIntegrantesComisionComponent implements OnInit {
}
resetAutocompleteVisibility() {
this.autocompleteVisible = true;
}
onCancel() {
this.route.navigate(['main/ComisionEvaluacion']);
......
......@@ -33,7 +33,7 @@
<div class="input-container">
<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-option>--</mat-option>
<mat-option *ngFor="let opcion of menus" [value]="opcion.valor">
......
......@@ -110,7 +110,6 @@ export class ConvocatoriasAgregarComponent implements OnInit {
idPDF: null,
filename: ''
};
throw error;
}
}
......@@ -120,10 +119,136 @@ export class ConvocatoriasAgregarComponent implements OnInit {
if (this.myForm.valid && !this.enviarSolicitud) {
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 {
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_digital_nombre = pdfData.filename;
......@@ -145,12 +270,32 @@ export class ConvocatoriasAgregarComponent implements OnInit {
}
);
}
} catch (error) {
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) {
const dialogRef = this.dialog.open(ErroresComponent, {
disableClose: true,
......
......@@ -10,7 +10,7 @@
</div>
</mat-card-header>
<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-label>Seleccione el objetivo del Plan de Vinculación a agregar</mat-label>
<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