Skip to content
Projects
Groups
Snippets
Help
Loading...
Sign in
Toggle navigation
F
Front-NG
Project
Project
Details
Activity
Cycle Analytics
Repository
Repository
Files
Commits
Branches
Tags
Contributors
Graph
Compare
Charts
Issues
0
Issues
0
List
Board
Labels
Milestones
JIRA
JIRA
Merge Requests
0
Merge Requests
0
CI / CD
CI / CD
Pipelines
Jobs
Schedules
Charts
Registry
Registry
Wiki
Wiki
Snippets
Snippets
Members
Members
Collapse sidebar
Close sidebar
Activity
Graph
Charts
Create a new issue
Jobs
Commits
Issue Boards
Open sidebar
José Alejandro Cáceres López
Front-NG
Commits
3ca5b574
Commit
3ca5b574
authored
Aug 28, 2023
by
José Alejandro Cáceres López
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
controles en proyecto
parent
873e03d6
Expand all
Hide whitespace changes
Inline
Side-by-side
Showing
23 changed files
with
692 additions
and
446 deletions
+692
-446
acta-compromiso-carreras.component.ts
...compromiso-carreras/acta-compromiso-carreras.component.ts
+2
-2
listar-anexos-imagenes.component.ts
...istar-anexos-imagenes/listar-anexos-imagenes.component.ts
+3
-1
add-informe.component.html
...informes de avance/add-informe/add-informe.component.html
+2
-2
add-informe.component.ts
...n/informes de avance/add-informe/add-informe.component.ts
+2
-2
list-informe.component.html
...formes de avance/list-informe/list-informe.component.html
+2
-2
list-informe.component.ts
...informes de avance/list-informe/list-informe.component.ts
+29
-14
add-cronograma-acti.component.ts
...ción/add-cronograma-acti/add-cronograma-acti.component.ts
+43
-13
add-hitos.component.ts
...Estrategias de Ejecución/add-hitos/add-hitos.component.ts
+44
-14
asignacion-docentes.component.css
...tes/asignacion-docentes/asignacion-docentes.component.css
+155
-155
asignacion-docentes.component.html
...es/asignacion-docentes/asignacion-docentes.component.html
+10
-13
asignacion-docentes.component.ts
...ntes/asignacion-docentes/asignacion-docentes.component.ts
+69
-80
listar-docentes-asignados.component.css
...ocentes-asignados/listar-docentes-asignados.component.css
+0
-0
listar-docentes-asignados.component.html
...centes-asignados/listar-docentes-asignados.component.html
+20
-22
listar-docentes-asignados.component.ts
...docentes-asignados/listar-docentes-asignados.component.ts
+95
-40
add-compromiso.component.ts
... participacion/add-compromiso/add-compromiso.component.ts
+37
-4
list-compromiso.component.ts
...articipacion/list-compromiso/list-compromiso.component.ts
+28
-14
list-documentos.component.ts
...articipacion/list-documentos/list-documentos.component.ts
+34
-21
aporte-comunidad.component.ts
... detallado/aporte-comunidad/aporte-comunidad.component.ts
+14
-0
aporte-entidad.component.ts
...esto detallado/aporte-entidad/aporte-entidad.component.ts
+28
-14
aporte-universidad.component.ts
...allado/aporte-universidad/aporte-universidad.component.ts
+25
-12
list-comunidad.component.ts
...esto detallado/list-comunidad/list-comunidad.component.ts
+26
-14
list-entidad.component.ts
...supuesto detallado/list-entidad/list-entidad.component.ts
+16
-3
responsable-prog.service.ts
...ain/services/responsable-prog/responsable-prog.service.ts
+8
-4
No files found.
src/app/modules/main/pages/Proyectos/Acta de Compromiso de Carreras/acta-compromiso-carreras/acta-compromiso-carreras.component.ts
View file @
3ca5b574
...
...
@@ -82,7 +82,7 @@ export class ActaCompromisoCarrerasComponent implements OnInit {
return
fileName
.
toLocaleLowerCase
().
endsWith
(
'.pdf'
);
}
openModal
()
{
openModal
(
mensaje
:
string
)
{
const
dialogRef
=
this
.
dialog
.
open
(
EnvioFormularioComponent
,
{
width
:
'400px'
,
disableClose
:
true
...
...
@@ -107,7 +107,7 @@ export class ActaCompromisoCarrerasComponent implements OnInit {
this
.
proyecto
.
uzytavproyec_com_part2_nom
=
pdfData
.
filename
;
this
.
proyectosService
.
modificarParametros
(
this
.
proyecto
.
uzytavproyec_id
,
this
.
proyecto
).
subscribe
(
response
=>
{
this
.
openModal
();
this
.
openModal
(
'El PDF ha sido Enviado'
);
console
.
log
(
'Datos Actualizados'
,
this
.
proyecto
);
this
.
myForm
.
disable
();
this
.
cambio
=
false
;
...
...
src/app/modules/main/pages/Proyectos/Diagnostico y problema/Anexos e Imagenes/listar-anexos-imagenes/listar-anexos-imagenes.component.ts
View file @
3ca5b574
...
...
@@ -94,7 +94,7 @@ export class ListarAnexosImagenesComponent implements OnInit {
eliminarParametro
(
id
:
number
)
{
this
.
openModalDelete
(
'¿Desea eliminar
la Entidad
?'
).
subscribe
(
result
=>
{
this
.
openModalDelete
(
'¿Desea eliminar
el Anexo
?'
).
subscribe
(
result
=>
{
if
(
result
)
{
this
.
anexosImagenesService
.
eliminarParametros
(
id
).
subscribe
(
()
=>
{
...
...
@@ -110,6 +110,8 @@ export class ListarAnexosImagenesComponent implements OnInit {
});
}
formatFecha
(
fecha
:
Date
):
string
{
const
dateObj
=
new
Date
(
fecha
);
return
format
(
dateObj
,
'dd-MM-yyyy'
);
...
...
src/app/modules/main/pages/Proyectos/Ejecución/informes de avance/add-informe/add-informe.component.html
View file @
3ca5b574
...
...
@@ -67,7 +67,7 @@
<ng-container
matColumnDef=
"resultado"
>
<th
mat-header-cell
*
matHeaderCellDef
>
Resultado
</th>
<td
mat-cell
*
matCellDef=
"let actividad"
>
<input
matInput
type=
"number"
[
formControlName
]="'
resultado
'
+
actividad
.
uzytavobjetivo_programa_id
"
<input
matInput
[
formControlName
]="'
resultado
'
+
actividad
.
uzytavobjetivo_programa_id
"
placeholder=
"Resultado"
>
</td>
</ng-container>
...
...
@@ -82,7 +82,7 @@
<ng-container
matColumnDef=
"observacion"
>
<th
mat-header-cell
*
matHeaderCellDef
>
Observación
</th>
<td
mat-cell
*
matCellDef=
"let actividad"
>
<input
matInput
type=
"number"
[
formControlName
]="'
observacion
'
+
actividad
.
uzytavobjetivo_programa_id
"
<input
matInput
[
formControlName
]="'
observacion
'
+
actividad
.
uzytavobjetivo_programa_id
"
placeholder=
"Observación"
>
</td>
</ng-container>
...
...
src/app/modules/main/pages/Proyectos/Ejecución/informes de avance/add-informe/add-informe.component.ts
View file @
3ca5b574
...
...
@@ -173,7 +173,7 @@ export class AddInformeComponent implements OnInit {
this
.
guardarBody
(
this
.
informeS
.
obtenerIdCabe
());
this
.
cancelarF
();
this
.
datosCompartidos
.
actualizarDatos
(
this
.
cabeM
);
this
.
openModal
();
this
.
openModal
(
'Los datos han sido Enviados'
);
});
}
}
...
...
@@ -222,7 +222,7 @@ export class AddInformeComponent implements OnInit {
}
openModal
()
{
openModal
(
mensaje
:
string
)
{
const
dialogRef
=
this
.
dialog
.
open
(
EnvioFormularioComponent
,
{
disableClose
:
true
});
...
...
src/app/modules/main/pages/Proyectos/Ejecución/informes de avance/list-informe/list-informe.component.html
View file @
3ca5b574
...
...
@@ -38,10 +38,10 @@
<mat-icon
color=
"warn"
(
click
)="
eliminarHeader
(
item
.
uzytavactproy_id
)"
>
delete
</mat-icon>
</button>
<button>
<!--
<button>
<mat-icon color="azul"
(click)="editarCabecera(item.uzytavactproy_id)">edit</mat-icon>
</button>
</button>
-->
</td>
</tr>
...
...
src/app/modules/main/pages/Proyectos/Ejecución/informes de avance/list-informe/list-informe.component.ts
View file @
3ca5b574
import
{
Component
,
ElementRef
,
OnInit
,
ViewChild
}
from
'@angular/core'
;
import
{
format
}
from
'date-fns'
;
import
{
Observable
}
from
'rxjs'
;
import
{
actproy
}
from
'src/app/modules/main/Models/actproy'
;
import
{
detactproy
}
from
'src/app/modules/main/Models/detactproy'
;
import
{
objetivoprograma
}
from
'src/app/modules/main/Models/objetivoPrograma'
;
...
...
@@ -8,6 +9,8 @@ import { Compartir_idService } from 'src/app/modules/main/services/compartir_id/
import
{
Informes_avanceService
}
from
'src/app/modules/main/services/informes_avance/informes_avance.service'
;
import
{
MostrarOcultarService
}
from
'src/app/modules/main/services/mostrar-ocultar.service'
;
import
{
Objetivo_programaService
}
from
'src/app/modules/main/services/objetivo_programa/objetivo_programa.service'
;
import
{
ConfirmacionEliminacionComponent
}
from
'../../../../programa/opciones/ConfirmacionEliminacion/ConfirmacionEliminacion.component'
;
import
{
MatDialog
}
from
'@angular/material/dialog'
;
@
Component
({
selector
:
'vex-list-informe'
,
...
...
@@ -35,7 +38,8 @@ export class ListInformeComponent implements OnInit {
private
bodyM
:
detactproy
,
private
compartirDatos
:
Actualiza_datosService
,
private
mostrarOcultarService
:
MostrarOcultarService
,
public
idCompartido
:
Compartir_idService
public
idCompartido
:
Compartir_idService
,
private
dialog
:
MatDialog
)
{
}
ngOnInit
():
void
{
...
...
@@ -113,23 +117,34 @@ export class ListInformeComponent implements OnInit {
}
eliminarHeader
(
id
:
number
){
const
confirmacion
=
confirm
(
'¿Desea eliminar el registro?'
);
if
(
confirmacion
)
{
this
.
informeS
.
eliminarParametrosCabecera
(
id
).
subscribe
(
()
=>
{
console
.
log
(
'El registro se ha eliminado'
);
this
.
obtenerRegistros
();
},
(
error
)
=>
{
// No mostrar el error en la consola
console
.
log
(
'Error durante el tratamiento al registro'
);
}
);
}
this
.
openModalDelete
(
'¿Desea Eliminar el Registro?'
).
subscribe
(
result
=>
{
if
(
result
)
{
this
.
informeS
.
eliminarParametrosCabecera
(
id
).
subscribe
(
()
=>
{
console
.
log
(
'El registro se ha eliminado'
);
this
.
obtenerRegistros
();
},
(
error
)
=>
{
// No mostrar el error en la consola
console
.
log
(
'Error durante el tratamiento al registro'
);
}
);
}
});
}
formatFecha
(
fecha
:
Date
):
string
{
const
dateObj
=
new
Date
(
fecha
);
return
format
(
dateObj
,
'dd-MM-yyyy'
);
}
formularioEnviado
:
boolean
;
openModalDelete
(
mensaje
:
string
):
Observable
<
string
>
{
const
dialogRef
=
this
.
dialog
.
open
(
ConfirmacionEliminacionComponent
,
{
disableClose
:
true
,
data
:
{
mensaje
:
mensaje
}
});
return
dialogRef
.
afterClosed
();
}
}
src/app/modules/main/pages/Proyectos/Estrategias de Ejecución/add-cronograma-acti/add-cronograma-acti.component.ts
View file @
3ca5b574
...
...
@@ -12,6 +12,10 @@ import { Compartir_idService } from 'src/app/modules/main/services/compartir_id/
import
{
Objetivo_programaService
}
from
'src/app/modules/main/services/objetivo_programa/objetivo_programa.service'
;
import
{
DatePipe
}
from
"@angular/common"
;
import
{
Observable
}
from
'rxjs'
;
import
{
ConfirmacionEliminacionComponent
}
from
'../../../programa/opciones/ConfirmacionEliminacion/ConfirmacionEliminacion.component'
;
import
{
MatDialog
}
from
'@angular/material/dialog'
;
import
{
EnvioFormularioComponent
}
from
'../../../programa/opciones/envio-formulario/envio-formulario.component'
;
@
Component
({
selector
:
'vex-add-cronograma-acti'
,
...
...
@@ -44,7 +48,8 @@ export class AddCronogramaActiComponent implements OnInit {
private
objPS
:
Objetivo_programaService
,
private
idCompartido
:
Compartir_idService
,
private
datosCompartidos
:
Actualiza_datosService
,
private
objM
:
objetivoprograma
private
objM
:
objetivoprograma
,
private
dialog
:
MatDialog
)
{
this
.
myForm
=
this
.
formBuilder
.
group
({
Actividades
:
[
''
,
Validators
.
required
],
...
...
@@ -94,6 +99,7 @@ export class AddCronogramaActiComponent implements OnInit {
console
.
log
(
'yo digo'
,
this
.
objM
.
uzytavobjetivo_programafec_fin
)
this
.
objPS
.
modificarParametros
(
id_recuperado
,
this
.
objM
).
subscribe
(
response
=>
{
this
.
showDataAdd
=
false
;
this
.
openModal
(
'Los Datos han sido agregados'
);
this
.
ocultar
=
true
;
this
.
myForm
.
reset
();
this
.
datosCompartidos
.
actualizarDatos
(
this
.
objM
);
...
...
@@ -153,18 +159,42 @@ export class AddCronogramaActiComponent implements OnInit {
}
eliminarFechas
(
id
:
number
)
{
const
confirmacion
=
confirm
(
'¿Desea eliminar el registro?'
);
if
(
confirmacion
)
{
this
.
objPS
.
modificarFechas
(
id
).
subscribe
(
()
=>
{
console
.
log
(
'El registro se ha eliminado'
);
this
.
obtenerRegistros
();
},
(
error
)
=>
{
console
.
log
(
'Error durante el tratamiento al registro'
);
}
);
}
this
.
openModalDelete
(
'¿Desea eliminar el registro?'
).
subscribe
(
result
=>
{
if
(
result
)
{
this
.
objPS
.
modificarFechas
(
id
).
subscribe
(
()
=>
{
console
.
log
(
'El registro se ha eliminado'
);
this
.
obtenerRegistros
();
},
(
error
)
=>
{
console
.
log
(
'Error durante el tratamiento al registro'
);
}
);
}
});
}
openModal
(
mensaje
:
string
)
{
const
dialogRef
=
this
.
dialog
.
open
(
EnvioFormularioComponent
,
{
width
:
'400px'
,
disableClose
:
true
,
data
:
{
mensaje
:
mensaje
}
});
dialogRef
.
afterClosed
().
subscribe
(
result
=>
{
this
.
formularioEnviado
=
true
;
});
}
formularioEnviado
:
boolean
;
openModalDelete
(
mensaje
:
string
):
Observable
<
string
>
{
const
dialogRef
=
this
.
dialog
.
open
(
ConfirmacionEliminacionComponent
,
{
disableClose
:
true
,
data
:
{
mensaje
:
mensaje
}
});
return
dialogRef
.
afterClosed
();
}
}
src/app/modules/main/pages/Proyectos/Estrategias de Ejecución/add-hitos/add-hitos.component.ts
View file @
3ca5b574
...
...
@@ -3,12 +3,16 @@ import { FormBuilder, FormGroup, Validators } from '@angular/forms';
import
{
CalendarOptions
,
EventApi
,
EventClickArg
,
EventInput
}
from
'@fullcalendar/core'
;
import
dayGridPlugin
from
'@fullcalendar/daygrid'
;
import
moment
from
'moment'
;
import
{
Observable
}
from
'rxjs'
;
import
{
seguim
}
from
'src/app/modules/main/Models/hito'
;
import
{
objetivoprograma
}
from
'src/app/modules/main/Models/objetivoPrograma'
;
import
{
Actualiza_datosService
}
from
'src/app/modules/main/services/actualiza_datos/actualiza_datos.service'
;
import
{
Compartir_idService
}
from
'src/app/modules/main/services/compartir_id/compartir_id.service'
;
import
{
HitosService
}
from
'src/app/modules/main/services/hitos/hitos.service'
;
import
{
Objetivo_programaService
}
from
'src/app/modules/main/services/objetivo_programa/objetivo_programa.service'
;
import
{
ConfirmacionEliminacionComponent
}
from
'../../../programa/opciones/ConfirmacionEliminacion/ConfirmacionEliminacion.component'
;
import
{
MatDialog
}
from
'@angular/material/dialog'
;
import
{
EnvioFormularioComponent
}
from
'../../../programa/opciones/envio-formulario/envio-formulario.component'
;
@
Component
({
selector
:
'vex-add-hitos'
,
templateUrl
:
'./add-hitos.component.html'
,
...
...
@@ -38,7 +42,8 @@ export class AddHitosComponent implements OnInit {
private
objM
:
objetivoprograma
,
private
objPS
:
Objetivo_programaService
,
private
hitoS
:
HitosService
,
private
hitoM
:
seguim
private
hitoM
:
seguim
,
private
dialog
:
MatDialog
)
{
this
.
myForm
=
this
.
formBuilder
.
group
({
hitos
:
[
''
,
Validators
.
required
],
...
...
@@ -105,6 +110,7 @@ export class AddHitosComponent implements OnInit {
this
.
objM
.
uzytavobjetivo_programafec_fin
=
fechaHoraSecond
;
this
.
objPS
.
modificarParametros
(
id_recuperado
,
this
.
objM
).
subscribe
(
response
=>
{
this
.
showDataAdd
=
false
;
this
.
openModal
(
'Los Datos han sido agregados'
);
this
.
ocultar
=
true
;
this
.
myForm
.
reset
();
this
.
datosCompartidos
.
actualizarDatos
(
this
.
objM
);
...
...
@@ -141,19 +147,43 @@ export class AddHitosComponent implements OnInit {
return
color
;
}
openModal
(
mensaje
:
string
)
{
const
dialogRef
=
this
.
dialog
.
open
(
EnvioFormularioComponent
,
{
width
:
'400px'
,
disableClose
:
true
,
data
:
{
mensaje
:
mensaje
}
});
dialogRef
.
afterClosed
().
subscribe
(
result
=>
{
this
.
formularioEnviado
=
true
;
});
}
eliminarFechas
(
id
:
number
)
{
const
confirmacion
=
confirm
(
'¿Desea eliminar el registro?'
);
if
(
confirmacion
)
{
this
.
objPS
.
modificarFechas
(
id
).
subscribe
(
()
=>
{
console
.
log
(
'El registro se ha eliminado'
);
this
.
obtenerRegistros
();
},
(
error
)
=>
{
// No mostrar el error en la consola
console
.
log
(
'Error durante el tratamiento al registro'
);
}
);
}
this
.
openModalDelete
(
'¿Desea eliminar el registro?'
).
subscribe
(
result
=>
{
if
(
result
)
{
this
.
objPS
.
modificarFechas
(
id
).
subscribe
(
()
=>
{
console
.
log
(
'El registro se ha eliminado'
);
this
.
obtenerRegistros
();
},
(
error
)
=>
{
// No mostrar el error en la consola
console
.
log
(
'Error durante el tratamiento al registro'
);
}
);
}
});
}
formularioEnviado
:
boolean
;
openModalDelete
(
mensaje
:
string
):
Observable
<
string
>
{
const
dialogRef
=
this
.
dialog
.
open
(
ConfirmacionEliminacionComponent
,
{
disableClose
:
true
,
data
:
{
mensaje
:
mensaje
}
});
return
dialogRef
.
afterClosed
();
}
}
src/app/modules/main/pages/Proyectos/Inicio Ejecución/Asignacion Docentes/asignacion-docentes/asignacion-docentes.component.css
View file @
3ca5b574
/* Estilos para el formulario */
.formulario
{
display
:
flex
;
flex-wrap
:
wrap
;
justify-content
:
space-between
;
max-width
:
96%
;
margin
:
0
auto
;
background-color
:
white
;
border-radius
:
10px
;
}
.botones
{
width
:
100px
;
height
:
40px
;
text-align
:
center
;
padding
:
0
;
}
/* Estilos para la columna única */
.columna-unico
{
width
:
100%
;
box-sizing
:
border-box
;
padding-right
:
0
;
padding-left
:
0
;
}
/* Estilos para los labels */
label
{
display
:
block
;
margin-bottom
:
8px
;
font-weight
:
bold
;
}
/* Estilos para los inputs y selects */
input
[
type
=
"text"
],
select
{
width
:
100%
;
padding
:
10px
;
border
:
none
;
border-bottom
:
1px
solid
#ccc
;
background-color
:
transparent
;
font-size
:
16px
;
margin-bottom
:
16px
;
transition
:
border-color
0.3s
ease
;
}
input
[
type
=
"text"
]
:focus
,
select
:focus
{
outline
:
none
;
border-color
:
#4caf50
;
}
/* Estilos para los mensajes de error */
.error-message
{
color
:
red
;
font-size
:
14px
;
margin-top
:
4px
;
}
/* Estilos para el botón */
button
{
display
:
block
;
margin
:
20px
auto
;
padding
:
10px
20px
;
background-color
:
rgb
(
71
,
127
,
75
);
color
:
#fff
;
border
:
none
;
border-radius
:
5px
;
font-size
:
16px
;
cursor
:
pointer
;
transition
:
background-color
0.3s
ease
;
}
button
:hover
{
background-color
:
rgb
(
90
,
159
,
95
);
}
/* Estilos para el contenedor principal */
.contenedor
{
width
:
96%
;
margin-left
:
2%
;
margin-right
:
2%
;
margin-top
:
10%
;
border-radius
:
10px
;
box-shadow
:
0
2px
4px
rgba
(
0
,
0
,
0
,
0.4
);
background-color
:
#ffffff
;
position
:
relative
;
z-index
:
1
;
}
/* Estilos para el contenedor del formulario */
.contenedor-dos
{
padding
:
0.9375rem
20px
;
position
:
relative
;
}
/* Estilos para el título sobremontado */
.sobremontado
{
position
:
relative
;
width
:
96%
;
top
:
-20px
;
left
:
2%
;
background-color
:
#477f4b
;
color
:
#fff
;
text-align
:
center
;
padding
:
10px
;
box-sizing
:
border-box
;
margin-bottom
:
-50px
;
z-index
:
2
;
border-radius
:
10px
;
box-shadow
:
0
2px
4px
rgba
(
0
,
0
,
0
,
0.4
);
}
/* Estilos para el icono de instituciones */
.icono-instituciones
{
display
:
flex
;
align-items
:
center
;
justify-content
:
center
;
margin-right
:
5px
;
font-size
:
20px
;
}
.volver
{
position
:
absolute
;
top
:
25%
;
right
:
10px
;
transform
:
translateY
(
-50%
);
border-radius
:
50%
;
background-color
:
white
;
display
:
flex
;
color
:
rgb
(
71
,
127
,
75
);
align-items
:
center
;
justify-content
:
center
;
padding
:
0
;
width
:
32px
;
height
:
32px
;
border
:
none
;
outline
:
none
;
cursor
:
pointer
;
}
.save-button
{
display
:
flex
;
justify-content
:
flex-end
;
margin-bottom
:
16px
;
}
.input-container
{
width
:
100%
;
display
:
flex
;
flex-direction
:
column
;
}
/* Estilos para el formulario */
.formulario
{
display
:
flex
;
flex-wrap
:
wrap
;
...
...
@@ -295,7 +142,7 @@ button:hover {
.save-button
{
display
:
flex
;
justify-content
:
flex-end
;
margin-bottom
:
5
px
;
margin-bottom
:
16
px
;
}
...
...
@@ -303,5 +150,158 @@ button:hover {
width
:
100%
;
display
:
flex
;
flex-direction
:
column
;
margin-bottom
:
5px
;
}
/* Estilos para el formulario */
.formulario
{
display
:
flex
;
flex-wrap
:
wrap
;
justify-content
:
space-between
;
max-width
:
96%
;
margin
:
0
auto
;
background-color
:
white
;
border-radius
:
10px
;
}
.botones
{
width
:
100px
;
height
:
40px
;
text-align
:
center
;
padding
:
0
;
}
/* Estilos para la columna única */
.columna-unico
{
width
:
100%
;
box-sizing
:
border-box
;
padding-right
:
0
;
padding-left
:
0
;
}
/* Estilos para los labels */
label
{
display
:
block
;
margin-bottom
:
8px
;
font-weight
:
bold
;
}
/* Estilos para los inputs y selects */
input
[
type
=
"text"
],
select
{
width
:
100%
;
padding
:
10px
;
border
:
none
;
border-bottom
:
1px
solid
#ccc
;
background-color
:
transparent
;
font-size
:
16px
;
margin-bottom
:
16px
;
transition
:
border-color
0.3s
ease
;
}
input
[
type
=
"text"
]
:focus
,
select
:focus
{
outline
:
none
;
border-color
:
#4caf50
;
}
/* Estilos para los mensajes de error */
.error-message
{
color
:
red
;
font-size
:
14px
;
margin-top
:
4px
;
}
/* Estilos para el botón */
button
{
display
:
block
;
margin
:
20px
auto
;
padding
:
10px
20px
;
background-color
:
rgb
(
71
,
127
,
75
);
color
:
#fff
;
border
:
none
;
border-radius
:
5px
;
font-size
:
16px
;
cursor
:
pointer
;
transition
:
background-color
0.3s
ease
;
}
button
:hover
{
background-color
:
rgb
(
90
,
159
,
95
);
}
/* Estilos para el contenedor principal */
.contenedor
{
width
:
96%
;
margin-left
:
2%
;
margin-right
:
2%
;
margin-top
:
10%
;
border-radius
:
10px
;
box-shadow
:
0
2px
4px
rgba
(
0
,
0
,
0
,
0.4
);
background-color
:
#ffffff
;
position
:
relative
;
z-index
:
1
;
}
/* Estilos para el contenedor del formulario */
.contenedor-dos
{
padding
:
0.9375rem
20px
;
position
:
relative
;
}
/* Estilos para el título sobremontado */
.sobremontado
{
position
:
relative
;
width
:
96%
;
top
:
-20px
;
left
:
2%
;
background-color
:
#477f4b
;
color
:
#fff
;
text-align
:
center
;
padding
:
10px
;
box-sizing
:
border-box
;
margin-bottom
:
-50px
;
z-index
:
2
;
border-radius
:
10px
;
box-shadow
:
0
2px
4px
rgba
(
0
,
0
,
0
,
0.4
);
}
/* Estilos para el icono de instituciones */
.icono-instituciones
{
display
:
flex
;
align-items
:
center
;
justify-content
:
center
;
margin-right
:
5px
;
font-size
:
20px
;
}
.volver
{
position
:
absolute
;
top
:
25%
;
right
:
10px
;
transform
:
translateY
(
-50%
);
border-radius
:
50%
;
background-color
:
white
;
display
:
flex
;
color
:
rgb
(
71
,
127
,
75
);
align-items
:
center
;
justify-content
:
center
;
padding
:
0
;
width
:
32px
;
height
:
32px
;
border
:
none
;
outline
:
none
;
cursor
:
pointer
;
}
.save-button
{
display
:
flex
;
justify-content
:
flex-end
;
margin-bottom
:
5px
;
}
.input-container
{
width
:
100%
;
display
:
flex
;
flex-direction
:
column
;
margin-bottom
:
5px
;
}
src/app/modules/main/pages/Proyectos/Inicio Ejecución/Asignacion Docentes/asignacion-docentes/asignacion-docentes.component.html
View file @
3ca5b574
<div
class=
"contenedor-dos"
>
<form
class=
"formulario"
[
formGroup
]="
myForm
"
(
ngSubmit
)="
onSubmit
()"
>
<!-- Información de la institución -->
<div
class=
"columna-unico"
>
<!-- Control de fechas inicio -->
<div
class=
"save-button"
>
<button
mat-raised-button
class=
"botones"
color=
"primary"
*
ngIf=
"!cambio"
(
click
)="
cambiar
()"
>
Agregar
</button>
<button
mat-raised-button
class=
"botones"
color=
"primary"
*
ngIf=
"cambio"
[
disabled
]="
myForm
.
invalid
"
>
Guardar
</button>
[
disabled
]="
myForm
.
invalid
"
>
Guardar
</button>
<span
class=
"separator"
></span>
<button
mat-raised-button
class=
"botones"
color=
"warn"
*
ngIf=
"cambio"
(
click
)="
cancelado
()"
>
Cancelar
</button>
<button
mat-raised-button
class=
"botones"
color=
"warn"
*
ngIf=
"cambio"
(
click
)="
cancelado
()"
>
Cancelar
</button>
</div>
<div
class=
"input-container"
>
<mat-form-field
class=
"contenedor-dos"
>
<mat-label>
Nombres
</mat-label>
<input
matInput
[
formControl
]="
myControl
"
formControlName=
"nombres"
placeholder=
"Realizar búsqueda"
/>
<input
matInput
#
searchInput
id=
"#searchInput"
(
input
)="
resetAutocompleteVisibility
();
realizarBusqueda
(
searchInput
.
value
)"
[
value
]="
selectedUsuario
?
selectedUsuario
.
uzytusuario_nombres
+
'
'
+
selectedUsuario
.
uzytusuario_apellidos
:
''"
placeholder=
"Realizar búsqueda"
[
disabled
]="!
cambio
"
/>
</mat-form-field>
<mat-autocomplete
*
ngIf=
"usuarios"
autoActiveFirstOption
>
<mat-option
*
ngFor=
"let usuario of filteredOptions | async"
[
value
]="
usuario
"
(
click
)="
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>
<div
class=
"input-container"
>
<mat-form-field
class=
"contenedor-dos"
>
<mat-label>
Seleccionar Funcion
</mat-label>
...
...
src/app/modules/main/pages/Proyectos/Inicio Ejecución/Asignacion Docentes/asignacion-docentes/asignacion-docentes.component.ts
View file @
3ca5b574
import
{
Component
,
OnInit
,
ViewChild
}
from
'@angular/core'
;
import
{
Component
,
ElementRef
,
OnInit
,
ViewChild
}
from
'@angular/core'
;
import
{
FormBuilder
,
Validators
,
FormGroup
,
FormControl
}
from
'@angular/forms'
;
import
{
MatDialog
}
from
'@angular/material/dialog'
;
import
{
Actualiza_datosService
}
from
'src/app/modules/main/services/actualiza_datos/actualiza_datos.service'
;
...
...
@@ -6,51 +6,40 @@ import { Compartir_idService } from 'src/app/modules/main/services/compartir_id/
import
{
Programa
}
from
'src/app/modules/main/Models/programa-v'
;
import
{
DocenteParticipante
}
from
'src/app/modules/main/Models/docente-participante'
;
import
{
DocentesParticipantesService
}
from
'src/app/modules/main/services/docentes-participantes/docentes-participantes.service'
;
import
{
ProgramaService
}
from
'src/app/modules/main/services/programa/programa.service'
;
import
{
DatosEspeService
}
from
'src/app/modules/main/services/APIs Externas/Datos espe/datos-espe.service'
;
import
{
UsuariosService
}
from
'src/app/modules/main/services/usuarios/usuarios.service'
;
import
{
Usuario
}
from
'src/app/modules/main/Models/usuario'
;
import
{
MatAutocomplete
,
MatAutocompleteTrigger
}
from
'@angular/material/autocomplete'
;
import
{
TiPres
}
from
'src/app/modules/main/Models/tiv-pres'
;
import
{
TipresService
}
from
'src/app/modules/main/services/tipres/tipres.service'
;
import
{
ResponsableProg
}
from
'src/app/modules/main/Models/responsable-prog'
;
import
{
Observable
}
from
'rxjs'
;
import
{
map
,
startWith
}
from
'rxjs/operators'
;
import
{
ResponsableProgService
}
from
'src/app/modules/main/services/responsable-prog/responsable-prog.service'
;
import
{
TipresService
}
from
'src/app/modules/main/services/tipres/tipres.service'
;
import
{
EnvioFormularioComponent
}
from
'../../../../programa/opciones/envio-formulario/envio-formulario.component'
;
interface
Funcion
{
value
:
string
;
viewValue
:
string
;
}
@
Component
({
selector
:
'app-asignacion-docentes'
,
templateUrl
:
'./asignacion-docentes.component.html'
,
styleUrls
:
[
'./asignacion-docentes.component.css'
]
})
export
class
AsignacionDocentesComponent
implements
OnInit
{
@
ViewChild
(
MatAutocomplete
)
autocomplete
:
MatAutocomplete
;
@
ViewChild
(
MatAutocompleteTrigger
)
autocompleteTrigger
:
MatAutocompleteTrigger
;
@
ViewChild
(
'searchInput'
,
{
static
:
false
})
searchInput
:
ElementRef
;
autocompleteVisible
:
boolean
=
true
;
idRecuperado
:
number
;
myForm
:
FormGroup
;
docenteParticipante
:
DocenteParticipante
;
responsableProg
:
ResponsableProg
;
responsableProgAll
!
:
ResponsableProg
[]
selectedDepartamentoId
:
number
;
selectedCampusId
:
number
;
searchTerm
:
string
;
debounceTimeout
:
any
;
tipres
!
:
TiPres
[]
tipres
!
:
TiPres
[]
selectedUsuario
:
Usuario
;
idUsuario
:
number
filteredOptions
:
Observable
<
Usuario
[]
>
;
myControl
=
new
FormControl
(
''
);
usuarios
:
Usuario
[];
enviarSolicitud
=
false
;
...
...
@@ -81,36 +70,26 @@ export class AsignacionDocentesComponent implements OnInit {
ngOnInit
():
void
{
this
.
idRecuperado
=
parseInt
(
localStorage
.
getItem
(
'proyectoId'
),
10
);
this
.
cambio
=
false
;
this
.
obtenerCampus
()
this
.
obtenerFuncion
()
this
.
obtenerUsuarios
()
this
.
obtenerDepartamento
()
this
.
filteredOptions
=
this
.
myControl
.
valueChanges
.
pipe
(
startWith
(
''
),
map
(
value
=>
this
.
_filter
(
value
||
''
)),
);
this
.
idRecuperado
=
parseInt
(
localStorage
.
getItem
(
'proyectoId'
),
10
);
this
.
cambio
=
false
;
// Set initial value to false
this
.
obtenerCampus
();
this
.
obtenerFuncion
();
this
.
obtenerDepartamento
();
this
.
obtenerRegistros
()
this
.
myForm
=
this
.
formBuilder
.
group
({
numero
:
[{
value
:
''
,
disabled
:
true
},
Validators
.
required
],
funcion
:
[{
value
:
''
,
disabled
:
true
},
Validators
.
required
],
//nombres
: [{ value: '', disabled: true }, Validators.required],
nombre
:
[{
value
:
''
,
disabled
:
true
},
Validators
.
required
],
});
}
private
_filter
(
value
:
string
):
Usuario
[]
{
const
filterValue
=
value
.
toLowerCase
();
return
this
.
usuarios
.
filter
(
option
=>
(
option
.
uzytusuario_nombres
+
' '
+
option
.
uzytusuario_apellidos
).
toLowerCase
().
includes
(
filterValue
)
);
}
openModal
()
{
openModal
(
mensaje
:
string
)
{
const
dialogRef
=
this
.
dialog
.
open
(
EnvioFormularioComponent
,
{
disableClose
:
true
disableClose
:
true
,
data
:
{
mensaje
:
mensaje
}
});
dialogRef
.
afterClosed
().
subscribe
(
result
=>
{
...
...
@@ -118,48 +97,52 @@ export class AsignacionDocentesComponent implements OnInit {
});
}
realizarBusqueda
()
{
clearTimeout
(
this
.
debounceTimeout
);
realizarBusqueda
(
searchTerm
:
string
)
{
clearTimeout
(
this
.
debounceTimeout
);
this
.
debounceTimeout
=
setTimeout
(()
=>
{
this
.
usuariosService
.
obtenerParametros
().
subscribe
(
data
=>
{
this
.
usuariosService
.
obtenerUsuarios
(
searchTerm
).
subscribe
(
data
=>
{
this
.
usuarios
=
data
;
console
.
log
(
this
.
usuarios
)
});
},
30
0
);
},
0
);
}
obtenerUsuarios
()
{
this
.
usuariosService
.
obtenerParametros
().
subscribe
(
usuarios
=>
{
this
.
usuarios
=
usuarios
;
},
error
=>
{
console
.
log
(
'Error al obtener los usuarios:'
,
error
);
}
);
}
displayFn
(
usuario
:
Usuario
):
string
{
return
usuario
?
usuario
.
uzytusuario_nombres
+
' '
+
usuario
.
uzytusuario_apellidos
:
''
;
}
onUsuarioSelected
(
usuario
:
Usuario
):
void
{
if
(
usuario
)
{
this
.
idUsuario
=
usuario
.
uzytusuario_id
;
console
.
log
(
"id idUsuario "
,
this
.
idUsuario
)
this
.
selectedUsuario
=
usuario
;
const
nombreCompleto
=
usuario
.
uzytusuario_nombres
+
" "
+
usuario
.
uzytusuario_apellidos
;
this
.
myControl
.
setValue
(
nombreCompleto
);
// Asigna el nombre completo al FormControl
resetAutocompleteVisibility
()
{
this
.
autocompleteVisible
=
true
;
}
async
onUsuarioSelected
(
usuario
:
Usuario
):
Promise
<
void
>
{
await
this
.
datosCompartidos
.
datos$
.
subscribe
(()
=>
{
this
.
obtenerRegistros
();
});
// Cierra el componente de autocompletar manualmente usando el trigger
if
(
this
.
autocompleteTrigger
)
{
this
.
autocompleteTrigger
.
closePanel
();
console
.
log
(
"this.responsableProgAll2"
,
this
.
responsableProgAll
)
if
(
usuario
)
{
// Verificar si el idUsuario ya existe en los registros
const
usuarioExistente
=
this
.
responsableProgAll
.
find
(
responsable
=>
responsable
.
uzytusuario_id_docente
===
usuario
.
uzytusuario_id
);
if
(
usuarioExistente
)
{
this
.
openModal
(
"El usuario ya existe en los registros."
);
// Puedes mostrar un mensaje en la interfaz aquí si lo deseas
}
else
{
this
.
idUsuario
=
usuario
.
uzytusuario_id
;
console
.
log
(
"idUsuario"
,
this
.
idUsuario
);
this
.
selectedUsuario
=
usuario
;
this
.
myForm
.
get
(
'nombre'
).
patchValue
(
usuario
.
uzytusuario_nombres
+
' '
+
usuario
.
uzytusuario_apellidos
);
this
.
autocompleteVisible
=
false
;
}
}
else
{
console
.
log
(
"
no existe el usuario
"
);
console
.
log
(
"
No existe el usuario.
"
);
}
}
...
...
@@ -167,30 +150,32 @@ export class AsignacionDocentesComponent implements OnInit {
obtenerRegistros
()
{
if
(
this
.
idRecuperado
!==
undefined
)
{
this
.
responsableProgService
.
obtenerParametrosRelacionados
(
this
.
idRecuperado
)
.
subscribe
(
data
=>
{
this
.
responsableProgAll
=
data
;
});
}
}
onSubmit
()
{
if
(
this
.
myForm
.
valid
&&
this
.
myControl
.
valid
)
{
console
.
log
(
"id idUsuario "
,
this
.
idUsuario
)
if
(
this
.
myForm
.
valid
)
{
console
.
log
(
"id idUsuario "
,
this
.
idUsuario
)
this
.
responsableProg
.
uzytavproyec_id
=
this
.
idRecuperado
;
this
.
responsableProg
.
uzytusuario_id_docente
=
this
.
idUsuario
;
this
.
responsableProg
.
uzytavtipres_id
=
this
.
myForm
.
value
.
funcion
this
.
responsableProg
.
uzytavresponsable_prog_g_horas_planif
=
this
.
myForm
.
value
.
numero
/*/
this.docenteParticipante.uzytavcamp_code = this.selectedCampusId.toString();
this.docenteParticipante.uzytavsubj_code = this.selectedDepartamentoId.toString();
this.docenteParticipante.uzytavdocparti_numero = this.myForm.value.numero;
*/
this
.
responsableProgService
.
guardarParametros
(
this
.
responsableProg
).
subscribe
(
response
=>
{
console
.
log
(
"Datos enviados "
,
this
.
responsableProg
)
this
.
openModal
();
console
.
log
(
"Datos enviados "
,
this
.
responsableProg
)
this
.
openModal
(
'El Docente ha sido Agregado'
);
this
.
guardar
()
this
.
datosCompartidos
.
actualizarDatos
(
this
.
responsableProg
);
},
error
=>
{
console
.
log
(
error
)
//this.router.navigate(['main/Convocatorias']);
}
);
}
...
...
@@ -215,7 +200,7 @@ export class AsignacionDocentesComponent implements OnInit {
this
.
tipresService
.
obtenerParametros
().
subscribe
(
tipres
=>
{
this
.
tipres
=
tipres
.
filter
(
item
=>
item
.
uzytavtipres_id
===
1
||
item
.
uzytavtipres_id
===
2
);
console
.
log
(
"obtenido "
,
tipres
)
console
.
log
(
"obtenido "
,
tipres
)
},
error
=>
{
console
.
log
(
'Error al obtener los tipresService:'
,
error
);
...
...
@@ -244,15 +229,19 @@ export class AsignacionDocentesComponent implements OnInit {
this
.
cambio
=
false
;
this
.
myForm
.
disable
();
this
.
myForm
.
reset
()
this
.
myControl
.
reset
()
if
(
this
.
searchInput
&&
this
.
searchInput
.
nativeElement
)
{
this
.
searchInput
.
nativeElement
.
value
=
''
;
// Vacía el contenido del input
}
}
guardar
()
{
this
.
cambio
=
false
;
this
.
myForm
.
disable
();
this
.
myForm
.
reset
()
this
.
myControl
.
disable
();
this
.
myControl
.
reset
()
this
.
myForm
.
reset
();
if
(
this
.
searchInput
&&
this
.
searchInput
.
nativeElement
)
{
this
.
searchInput
.
nativeElement
.
value
=
''
;
// Vacía el contenido del input
}
}
}
src/app/modules/main/pages/Proyectos/Inicio Ejecución/Asignacion Docentes/listar-docentes-asignados/listar-docentes-asignados.component.css
View file @
3ca5b574
This diff is collapsed.
Click to expand it.
src/app/modules/main/pages/Proyectos/Inicio Ejecución/Asignacion Docentes/listar-docentes-asignados/listar-docentes-asignados.component.html
View file @
3ca5b574
...
...
@@ -12,35 +12,43 @@
<!-- Dirección Column -->
<ng-container
matColumnDef=
"
Campu
s"
class=
"Column"
>
<th
class=
"Column"
mat-header-cell
*
matHeaderCellDef
mat-sort-header
>
Campus
</th>
<ng-container
matColumnDef=
"
Nombre
s"
class=
"Column"
>
<th
class=
"Column"
mat-header-cell
*
matHeaderCellDef
mat-sort-header
>
Nombre
</th>
<td
class=
"Column"
mat-cell
*
matCellDef=
"let dato"
>
{{dato.
campus$ | async
}}
</td>
{{dato.
usuario.uzytusuario_nombres
}}
</td>
</ng-container>
<ng-container
matColumnDef=
"
Departamento
"
class=
"Column"
>
<th
class=
"Column"
mat-header-cell
*
matHeaderCellDef
mat-sort-header
>
Departament
o
</th>
<ng-container
matColumnDef=
"
Apellidos
"
class=
"Column"
>
<th
class=
"Column"
mat-header-cell
*
matHeaderCellDef
mat-sort-header
>
Apellid
o
</th>
<td
class=
"Column"
mat-cell
*
matCellDef=
"let dato"
>
{{ dato.
departamento$ | async
}}
{{ dato.
usuario.uzytusuario_apellidos
}}
</td>
</ng-container>
<ng-container
matColumnDef=
"Docentes Participantes"
class=
"Column"
>
<th
class=
"Column"
mat-header-cell
*
matHeaderCellDef
mat-sort-header
>
Docentes Participantes
</th>
<td
class=
"Column"
mat-cell
*
matCellDef=
"let dato"
>
{{dato.uzytavdocparti_numero}}
</td>
<ng-container
matColumnDef=
"Funcion"
class=
"Column"
>
<th
class=
"Column"
mat-header-cell
*
matHeaderCellDef
mat-sort-header
>
Funcion
</th>
<td
class=
"Column"
mat-cell
*
matCellDef=
"let dato"
>
{{ dato.tiPres.uzytavtipres_descrip }}
</td>
</ng-container>
<ng-container
matColumnDef=
"HorasP"
class=
"Column"
>
<th
class=
"Column"
mat-header-cell
*
matHeaderCellDef
mat-sort-header
>
Horas Planificadas
</th>
<td
class=
"Column"
mat-cell
*
matCellDef=
"let dato"
>
{{ dato.uzytavresponsable_prog_g_horas_planif }}
</td>
</ng-container>
<ng-container
matColumnDef=
"Acciones"
class=
"Column"
>
<th
class=
"Column"
mat-header-cell
*
matHeaderCellDef
mat-sort-header
>
Acciones
</th>
<td
class=
"Column"
mat-cell
*
matCellDef=
"let dato"
>
<!--eliminar-->
<button>
<mat-icon
color=
"warn"
(
click
)="
eliminarParametro
(
dato
.
uzytav
docparti
_id
)"
>
delete
</mat-icon>
<mat-icon
color=
"warn"
(
click
)="
eliminarParametro
(
dato
.
uzytav
responsable_prog
_id
)"
>
delete
</mat-icon>
</button>
</td>
</ng-container>
...
...
@@ -48,14 +56,5 @@
<tr
mat-header-row
*
matHeaderRowDef=
"displayedColumns"
></tr>
<tr
mat-row
*
matRowDef=
"let row; columns: displayedColumns;"
></tr>
</table>
<table>
<!-- Nueva tabla para la fila de total -->
<tr>
<td
class=
"Column1 negrita "
colspan=
"1"
>
Total
</td>
<td
class=
"Column "
>
{{ totalDocentesParticipantes }}
</td>
<td
class=
"Column "
></td>
<td
class=
"Column "
></td>
</tr>
</table>
</div>
</div>
\ No newline at end of file
</div>
src/app/modules/main/pages/Proyectos/Inicio Ejecución/Asignacion Docentes/listar-docentes-asignados/listar-docentes-asignados.component.ts
View file @
3ca5b574
import
{
Component
,
OnInit
}
from
'@angular/core'
;
import
{
MatTableDataSource
}
from
'@angular/material/table'
;
import
{
Observable
,
of
}
from
'rxjs'
;
import
{
Observable
,
forkJoin
,
of
}
from
'rxjs'
;
import
{
map
}
from
'rxjs/operators'
;
import
{
DocenteParticipante
}
from
'src/app/modules/main/Models/docente-participante'
;
import
{
Programa
}
from
'src/app/modules/main/Models/programa-v'
;
import
{
Proyectos
}
from
'src/app/modules/main/Models/proyectos'
;
import
{
ResponsableProg
}
from
'src/app/modules/main/Models/responsable-prog'
;
import
{
TiPres
}
from
'src/app/modules/main/Models/tiv-pres'
;
import
{
Usuario
}
from
'src/app/modules/main/Models/usuario'
;
import
{
DatosEspeService
}
from
'src/app/modules/main/services/APIs Externas/Datos espe/datos-espe.service'
;
import
{
Actualiza_datosService
}
from
'src/app/modules/main/services/actualiza_datos/actualiza_datos.service'
;
import
{
Compartir_idService
}
from
'src/app/modules/main/services/compartir_id/compartir_id.service'
;
import
{
DocentesParticipantesService
}
from
'src/app/modules/main/services/docentes-participantes/docentes-participantes.service'
;
import
{
MostrarOcultarService
}
from
'src/app/modules/main/services/mostrar-ocultar.service'
;
import
{
ResponsableProgService
}
from
'src/app/modules/main/services/responsable-prog/responsable-prog.service'
;
import
{
TipresService
}
from
'src/app/modules/main/services/tipres/tipres.service'
;
import
{
UsuariosService
}
from
'src/app/modules/main/services/usuarios/usuarios.service'
;
import
{
ConfirmacionEliminacionComponent
}
from
'../../../../programa/opciones/ConfirmacionEliminacion/ConfirmacionEliminacion.component'
;
import
{
MatDialog
}
from
'@angular/material/dialog'
;
@
Component
({
selector
:
'app-listar-docentes-asignados'
,
...
...
@@ -16,63 +26,96 @@ import { DocentesParticipantesService } from 'src/app/modules/main/services/doce
})
export
class
ListarDocentesAsignadosComponent
implements
OnInit
{
idRecuperado
:
number
;
dataSource
:
MatTableDataSource
<
DocenteParticipante
>
;
dataSource
:
MatTableDataSource
<
ResponsableProg
>
;
docenteParticipante
:
DocenteParticipante
[]
=
[];
programas
:
Programa
[];
// Arreglo de programas obtenidos del servicio
selectedProgramaId
:
number
;
displayedColumns
:
string
[]
=
[
'Nro'
,
'Campus'
,
'Departamento'
,
'Docentes Participantes'
,
'Acciones'
];
displayedColumns
:
string
[]
=
[
'Nro'
,
'Nombres'
,
'Apellidos'
,
'Funcion'
,
'HorasP'
,
'Acciones'
];
totalDocentesParticipantes
:
number
=
0
;
//total de participantes
usuario
!
:
Usuario
[];
tiPres
!
:
TiPres
[];
proyecto
:
Proyectos
responsableProg
!
:
ResponsableProg
[]
constructor
(
private
idCompartido
:
Compartir_idService
,
private
datosCompar
:
Actualiza_datosService
,
private
docentesParticipantesService
:
DocentesParticipantesService
,
private
datosEspeService
:
DatosEspeService
private
responsableProgService
:
ResponsableProgService
,
private
datosEspeService
:
DatosEspeService
,
private
mostrarOcultarService
:
MostrarOcultarService
,
private
datosUsuarioService
:
UsuariosService
,
private
tipresService
:
TipresService
,
private
datosCompartidos
:
Actualiza_datosService
,
private
dialog
:
MatDialog
)
{
this
.
dataSource
=
new
MatTableDataSource
<
DocenteParticipante
>
([]);
this
.
dataSource
=
new
MatTableDataSource
<
ResponsableProg
>
([]);
}
ngOnInit
():
void
{
this
.
idRecuperado
=
parseInt
(
localStorage
.
getItem
(
'proyectoId'
),
10
);
this
.
idRecuperado
=
parseInt
(
localStorage
.
getItem
(
'proyectoId'
),
10
);
this
.
proyecto
=
this
.
mostrarOcultarService
.
editProyecto
;
this
.
datosCompar
.
datos$
.
subscribe
(()
=>
{
this
.
obtenerRegistros
();
});
this
.
docentesParticipantes
Service
.
parametrosActualizados
.
subscribe
(()
=>
{
this
.
responsableProg
Service
.
parametrosActualizados
.
subscribe
(()
=>
{
this
.
obtenerRegistros
();
});
}
obtenerRegistros
()
{
if
(
this
.
idRecuperado
!==
undefined
)
{
this
.
docentesParticipantesService
.
obtenerRegistrosRelacionadosProyecto
(
this
.
idRecuperado
).
subscribe
(
data
=>
{
this
.
docenteParticipante
=
data
.
map
(
docente
=>
{
return
{
...
docente
,
departamento
$
:
this
.
obtenerDatosDepartamento
(
docente
.
uzytavsubj_code
),
campus
$
:
this
.
obtenerDatosCampus
(
docente
.
uzytavcamp_code
)
};
this
.
responsableProgService
.
obtenerParametrosRelacionados
(
this
.
idRecuperado
)
.
subscribe
(
data
=>
{
if
(
data
!==
undefined
)
{
const
userObservables
:
Observable
<
Usuario
>
[]
=
[];
const
tiPresObservables
:
Observable
<
TiPres
>
[]
=
[];
for
(
const
responsable
of
data
)
{
console
.
log
(
"id usuario "
,
responsable
.
uzytusuario_id_docente
)
console
.
log
(
"id obtenerTipres "
,
responsable
.
uzytusuario_id_docente
)
userObservables
.
push
(
this
.
obtenerUsuarios
(
responsable
.
uzytusuario_id_docente
));
tiPresObservables
.
push
(
this
.
obtenerTipres
(
responsable
.
uzytavtipres_id
));
}
forkJoin
([...
userObservables
,
...
tiPresObservables
]).
subscribe
(
results
=>
{
const
users
=
results
.
slice
(
0
,
userObservables
.
length
);
const
tiPres
=
results
.
slice
(
userObservables
.
length
);
this
.
responsableProg
=
data
.
map
((
responsable
,
index
)
=>
({
...
responsable
,
usuario
:
users
[
index
],
tiPres
:
tiPres
[
index
]
}));
console
.
log
(
"this.responsableProg;"
,
this
.
responsableProg
);
this
.
dataSource
.
data
=
this
.
responsableProg
;
});
}
});
this
.
dataSource
.
data
=
this
.
docenteParticipante
;
this
.
calcularTotalDocentesParticipantes
();
// Total de docentes
});
}
}
calcularTotalDocentesParticipantes
()
{
this
.
totalDocentesParticipantes
=
0
;
// Reinicia el total a 0
for
(
const
docente
of
this
.
docenteParticipante
)
{
this
.
totalDocentesParticipantes
+=
docente
.
uzytavdocparti_numero
;
}
obtenerUsuarios
(
id
:
number
){
return
this
.
datosUsuarioService
.
obtenerUsuariosId
(
id
);
}
obtenerTipres
(
id
:
number
){
return
this
.
tipresService
.
obtenerParametrosId
(
id
);
}
obtenerDatosCampus
(
codigo
:
string
):
Observable
<
string
>
{
return
this
.
datosEspeService
.
obtenerCampus
().
pipe
(
...
...
@@ -94,20 +137,32 @@ export class ListarDocentesAsignadosComponent implements OnInit {
eliminarParametro
(
id
:
number
)
{
const
confirmacion
=
confirm
(
'¿Desea eliminar el registro?'
);
if
(
confirmacion
)
{
this
.
docentesParticipantesService
.
eliminarParametros
(
id
).
subscribe
(
()
=>
{
console
.
log
(
'El registro se ha eliminado'
);
this
.
obtenerRegistros
();
},
(
error
)
=>
{
// No mostrar el error en la consola
console
.
log
(
error
)
}
);
}
this
.
openModalDelete
(
'¿Desea eliminar el Docente?'
).
subscribe
(
resutl
=>
{
if
(
resutl
)
{
this
.
responsableProgService
.
eliminarParametros
(
id
).
subscribe
(
()
=>
{
console
.
log
(
'El registro se ha eliminado'
);
this
.
datosCompartidos
.
actualizarDatos
(
this
.
responsableProg
);
this
.
obtenerRegistros
();
},
(
error
)
=>
{
// No mostrar el error en la consola
console
.
log
(
error
)
}
);
}
});
}
formularioEnviado
:
boolean
;
openModalDelete
(
mensaje
:
string
):
Observable
<
string
>
{
const
dialogRef
=
this
.
dialog
.
open
(
ConfirmacionEliminacionComponent
,
{
disableClose
:
true
,
data
:
{
mensaje
:
mensaje
}
});
return
dialogRef
.
afterClosed
();
}
}
src/app/modules/main/pages/Proyectos/Inicio Ejecución/compromiso participacion/add-compromiso/add-compromiso.component.ts
View file @
3ca5b574
...
...
@@ -8,6 +8,10 @@ import { ParametrosdetService } from 'src/app/modules/main/services/parametrosde
import
{
EnvioFormularioComponent
}
from
'../../../../programa/opciones/envio-formulario/envio-formulario.component'
;
import
{
MatDialog
}
from
'@angular/material/dialog'
;
import
{
Actualiza_datosService
}
from
'src/app/modules/main/services/actualiza_datos/actualiza_datos.service'
;
import
{
Parroquia
}
from
'src/app/modules/main/Models/Ubicaciones/parroquia'
;
import
{
Canton
}
from
'src/app/modules/main/Models/Ubicaciones/canton'
;
import
{
Provincia
}
from
'src/app/modules/main/Models/Ubicaciones/provincia'
;
import
{
UbicacionesService
}
from
'src/app/modules/main/services/Ubicaciones/ubicaciones.service'
;
@
Component
({
...
...
@@ -26,13 +30,18 @@ export class AddCompromisoComponent implements OnInit {
entidad
:
parametrosdet
[]
=
[];
orga
:
parametrosdet
[]
=
[];
institu
:
Instituciones
[]
=
[];
parroquias
:
Parroquia
[]
=
[];
cantones
:
Canton
[]
=
[];
provincias
:
Provincia
[]
=
[];
constructor
(
private
formBuilder
:
FormBuilder
,
private
instP
:
ParametrosdetService
,
private
instituS
:
InstitucionesService
,
private
instproyM
:
instproy
,
private
dialog
:
MatDialog
,
private
datosCompartidos
:
Actualiza_datosService
private
datosCompartidos
:
Actualiza_datosService
,
private
UbicacionesS
:
UbicacionesService
)
{
}
ngOnInit
():
void
{
...
...
@@ -62,10 +71,10 @@ export class AddCompromisoComponent implements OnInit {
this
.
instproyM
.
uzytparametros_det_id_organizacion
=
this
.
myForm
.
get
(
'organizacionI'
).
value
;
this
.
instproyM
.
uzytavinstproy_declaracion
=
this
.
myForm
.
get
(
'declaracion'
).
value
;
this
.
instP
.
guardarParametros
(
this
.
instproyM
).
subscribe
(
response
=>
{
this
.
openModal
();
this
.
openModal
(
'Los Datos han sido Enviados'
);
this
.
instP
.
parametrosActualizados
.
next
();
this
.
datosCompartidos
.
actualizarDatos
(
this
.
instproyM
);
this
.
formularioGuardado
.
emit
();
});
}
catch
(
error
)
{
console
.
error
(
'Error al enviar los datos:'
,
error
);
...
...
@@ -86,11 +95,24 @@ export class AddCompromisoComponent implements OnInit {
this
.
instituS
.
obtenerParametros
().
subscribe
(
data
=>
{
this
.
institu
=
data
;
});
this
.
UbicacionesS
.
obtenerProvincias
().
subscribe
(
data
=>
{
this
.
provincias
=
data
;
});
this
.
UbicacionesS
.
obtenerCant
().
subscribe
(
data
=>
{
this
.
cantones
=
data
;
})
this
.
UbicacionesS
.
obtenerParro
().
subscribe
(
data
=>
{
this
.
parroquias
=
data
;
});
}
onInstitucionSelected
(
selectedInstitucionId
:
number
)
{
const
selectedInstitucion
=
this
.
institu
.
find
(
item
=>
item
.
uzytavinstituc_id
===
selectedInstitucionId
);
if
(
selectedInstitucion
)
{
this
.
myForm
.
get
(
'provinciaI'
)?.
setValue
(
this
.
getParroquiaNombre
(
selectedInstitucion
.
uzytparroquia_id
));
this
.
myForm
.
get
(
'direccionI'
)?.
setValue
(
selectedInstitucion
.
uzytavinstituc_calle
);
this
.
myForm
.
get
(
'nombreR'
)?.
setValue
(
selectedInstitucion
.
uzytavinstituc_nombre
);
this
.
myForm
.
get
(
'apellidoR'
)?.
setValue
(
selectedInstitucion
.
uzytavinstituc_apellirl
);
...
...
@@ -100,7 +122,7 @@ export class AddCompromisoComponent implements OnInit {
}
}
openModal
()
{
openModal
(
mensaje
:
string
)
{
const
dialogRef
=
this
.
dialog
.
open
(
EnvioFormularioComponent
,
{
disableClose
:
true
});
...
...
@@ -110,4 +132,15 @@ export class AddCompromisoComponent implements OnInit {
this
.
formularioEnviado
=
true
;
});
}
getParroquiaNombre
(
parroquiaId
:
string
):
string
{
const
parroquia
=
this
.
parroquias
.
find
(
p
=>
p
.
uzytparroquia_id
===
parroquiaId
);
if
(
parroquia
)
{
const
canton
=
this
.
cantones
.
find
(
c
=>
c
.
uzytcanton_id
===
parroquia
.
uzytcanton_id
)
const
prov
=
this
.
provincias
.
find
(
pro
=>
pro
.
uzytprovincia_id
===
canton
.
uzytprovincia_id
)
const
nombre
=
prov
.
uzytprovincia_nombre
.
toLowerCase
();
return
nombre
.
charAt
(
0
).
toUpperCase
()
+
nombre
.
slice
(
1
);
}
return
''
;
}
}
src/app/modules/main/pages/Proyectos/Inicio Ejecución/compromiso participacion/list-compromiso/list-compromiso.component.ts
View file @
3ca5b574
import
{
Component
,
OnInit
}
from
'@angular/core'
;
import
{
MatTableDataSource
}
from
'@angular/material/table'
;
import
{
Observable
}
from
'rxjs'
;
import
{
Canton
}
from
'src/app/modules/main/Models/Ubicaciones/canton'
;
import
{
Parroquia
}
from
'src/app/modules/main/Models/Ubicaciones/parroquia'
;
import
{
Provincia
}
from
'src/app/modules/main/Models/Ubicaciones/provincia'
;
...
...
@@ -11,6 +12,8 @@ import { UbicacionesService } from 'src/app/modules/main/services/Ubicaciones/ub
import
{
Actualiza_datosService
}
from
'src/app/modules/main/services/actualiza_datos/actualiza_datos.service'
;
import
{
Compartir_idService
}
from
'src/app/modules/main/services/compartir_id/compartir_id.service'
;
import
{
ParametrosdetService
}
from
'src/app/modules/main/services/parametrosdet/parametrosdet.service'
;
import
{
ConfirmacionEliminacionComponent
}
from
'../../../../programa/opciones/ConfirmacionEliminacion/ConfirmacionEliminacion.component'
;
import
{
MatDialog
}
from
'@angular/material/dialog'
;
@
Component
({
selector
:
'vex-list-compromiso'
,
...
...
@@ -36,7 +39,8 @@ export class ListCompromisoComponent implements OnInit {
private
instP
:
ParametrosdetService
,
private
ubicacionesS
:
UbicacionesService
,
private
InstitucionesS
:
InstitucionesService
,
private
paratS
:
ParametrosdetService
private
paratS
:
ParametrosdetService
,
private
dialog
:
MatDialog
)
{
this
.
dataSource
=
new
MatTableDataSource
<
instproy
>
([]);
}
...
...
@@ -169,20 +173,30 @@ export class ListCompromisoComponent implements OnInit {
eliminarParametro
(
id
:
number
)
{
const
confirmacion
=
confirm
(
'¿Desea eliminar el registro?'
);
if
(
confirmacion
)
{
this
.
instP
.
eliminarParametros
(
id
).
subscribe
(
()
=>
{
console
.
log
(
'El registro se ha eliminado'
);
this
.
obtenerRegistros
();
},
(
error
)
=>
{
// No mostrar el error en la consola
console
.
log
(
'Error durante el tratamiento al registro'
);
}
);
}
this
.
openModalDelete
(
'¿Desea Eliminar la Institución?'
).
subscribe
(
result
=>
{
if
(
result
)
{
this
.
instP
.
eliminarParametros
(
id
).
subscribe
(
()
=>
{
console
.
log
(
'El registro se ha eliminado'
);
this
.
obtenerRegistros
();
},
(
error
)
=>
{
// No mostrar el error en la consola
console
.
log
(
'Error durante el tratamiento al registro'
);
}
);
}
});
}
formularioEnviado
:
boolean
;
openModalDelete
(
mensaje
:
string
):
Observable
<
string
>
{
const
dialogRef
=
this
.
dialog
.
open
(
ConfirmacionEliminacionComponent
,
{
disableClose
:
true
,
data
:
{
mensaje
:
mensaje
}
});
return
dialogRef
.
afterClosed
();
}
}
src/app/modules/main/pages/Proyectos/Inicio Ejecución/compromiso participacion/list-documentos/list-documentos.component.ts
View file @
3ca5b574
import
{
Component
,
OnInit
,
Input
}
from
'@angular/core'
;
import
{
Component
,
OnInit
,
Input
}
from
'@angular/core'
;
import
{
MatDialog
}
from
'@angular/material/dialog'
;
import
{
docompar
}
from
'src/app/modules/main/Models/docompar'
;
import
{
AddDocumentosComponent
}
from
'../add-documentos/add-documentos.component'
;
...
...
@@ -6,6 +6,8 @@ import { ParametrosdetService } from 'src/app/modules/main/services/parametrosde
import
{
ActualizarAnexosService
}
from
'src/app/modules/main/services/actualizar_anexos/actualizar-anexos.service'
;
import
{
saveAs
}
from
'file-saver'
;
import
{
Actualiza_datosService
}
from
'src/app/modules/main/services/actualiza_datos/actualiza_datos.service'
;
import
{
Observable
}
from
'rxjs'
;
import
{
ConfirmacionEliminacionComponent
}
from
'../../../../programa/opciones/ConfirmacionEliminacion/ConfirmacionEliminacion.component'
;
@
Component
({
selector
:
'vex-list-documentos'
,
templateUrl
:
'./list-documentos.component.html'
,
...
...
@@ -23,16 +25,16 @@ export class ListDocumentosComponent implements OnInit {
)
{
}
ngOnInit
():
void
{
this
.
datosCompartidos
.
datos$
.
subscribe
(()
=>
{
this
.
datosCompartidos
.
datos$
.
subscribe
(()
=>
{
this
.
obtenerDocumentos
();
});
this
.
pdfService
.
parametrosActualizados
.
subscribe
(()
=>
{
this
.
pdfService
.
parametrosActualizados
.
subscribe
(()
=>
{
this
.
obtenerDocumentos
();
});
}
GuardarParametro
(){
GuardarParametro
()
{
const
dialogRef
=
this
.
dialog
.
open
(
AddDocumentosComponent
,
{
data
:
{
idConf
:
this
.
idConf
}
});
...
...
@@ -70,31 +72,42 @@ export class ListDocumentosComponent implements OnInit {
return
'document.pdf'
;
// Nombre predeterminado si no se puede obtener el nombre del archivo
}
obtenerDocumentos
(){
obtenerDocumentos
()
{
this
.
pdfService
.
obtenerNombrePDF
().
subscribe
(
data
=>
{
this
.
documentoInst
=
data
.
filter
(
item
=>
item
.
uzytavinstproy_id
===
this
.
idConf
);
});
}
descargar
(){
descargar
()
{
}
eliminarParametro
(
id
:
number
)
{
const
confirmacion
=
confirm
(
'¿Estás seguro de que quieres eliminar este parámetro?'
);
if
(
confirmacion
)
{
this
.
pdfService
.
eliminarPDF
(
id
).
subscribe
(
()
=>
{
// Manejar la eliminación exitosa
console
.
log
(
'Registro eliminado correctamente'
);
this
.
obtenerDocumentos
();
},
(
error
)
=>
{
this
.
obtenerDocumentos
();
this
.
openModalDelete
(
'¿Desea eliminar el PDF?'
).
subscribe
(
result
=>
{
if
(
result
)
{
this
.
pdfService
.
eliminarPDF
(
id
).
subscribe
(
()
=>
{
// Manejar la eliminación exitosa
console
.
log
(
'Registro eliminado correctamente'
);
this
.
obtenerDocumentos
();
},
(
error
)
=>
{
this
.
obtenerDocumentos
();
// Manejar el error en caso de que ocurra
console
.
error
(
'Error al eliminar el registro'
,
error
);
}
);
}
// Manejar el error en caso de que ocurra
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
();
}
}
src/app/modules/main/pages/Proyectos/Presupuesto detallado/aporte-comunidad/aporte-comunidad.component.ts
View file @
3ca5b574
import
{
Component
,
OnInit
,
ViewChild
}
from
'@angular/core'
;
import
{
MatDialog
}
from
'@angular/material/dialog'
;
import
{
MatTable
,
MatTableDataSource
}
from
'@angular/material/table'
;
import
{
Observable
}
from
'rxjs'
;
import
{
CatalogoPP
}
from
'src/app/modules/main/Models/catalogo-partidas-presupuestarias'
;
import
{
PartidasPresupuestarias
}
from
'src/app/modules/main/Models/partidas-presupuestarias'
;
import
{
PresupuestoPartidas
}
from
'src/app/modules/main/Models/presupuesto-partidas'
;
import
{
Actualiza_datosService
}
from
'src/app/modules/main/services/actualiza_datos/actualiza_datos.service'
;
import
{
Compartir_idService
}
from
'src/app/modules/main/services/compartir_id/compartir_id.service'
;
import
{
PresupuestoPartidasService
}
from
'src/app/modules/main/services/presupuesto-partidas/presupuesto-partidas.service'
;
import
{
ConfirmacionEliminacionComponent
}
from
'../../../programa/opciones/ConfirmacionEliminacion/ConfirmacionEliminacion.component'
;
@
Component
({
selector
:
'app-aporte-comunidad'
,
...
...
@@ -97,6 +99,7 @@ export class AporteComunidadComponent implements OnInit {
eliminarParametros
(
id
:
number
)
{
this
.
openModalDelete
(
'¿Dsea eliminar el Aporte de la Comunidad?'
).
subscribe
(
result
=>
{
const
confirmacion
=
confirm
(
'¿Desea eliminar el registro?'
);
if
(
confirmacion
)
{
this
.
presupuestoPartidasService
.
eliminarParametros
(
id
).
subscribe
(
...
...
@@ -109,7 +112,18 @@ export class AporteComunidadComponent implements OnInit {
}
);
}
});
}
formularioEnviado
:
boolean
;
openModalDelete
(
mensaje
:
string
):
Observable
<
string
>
{
const
dialogRef
=
this
.
dialog
.
open
(
ConfirmacionEliminacionComponent
,
{
disableClose
:
true
,
data
:
{
mensaje
:
mensaje
}
});
return
dialogRef
.
afterClosed
();
}
}
src/app/modules/main/pages/Proyectos/Presupuesto detallado/aporte-entidad/aporte-entidad.component.ts
View file @
3ca5b574
import
{
Component
,
OnInit
,
ViewChild
}
from
'@angular/core'
;
import
{
MatDialog
}
from
'@angular/material/dialog'
;
import
{
MatTable
,
MatTableDataSource
}
from
'@angular/material/table'
;
import
{
Observable
}
from
'rxjs'
;
import
{
CatalogoPP
}
from
'src/app/modules/main/Models/catalogo-partidas-presupuestarias'
;
import
{
PartidasPresupuestarias
}
from
'src/app/modules/main/Models/partidas-presupuestarias'
;
import
{
PresupuestoPartidas
}
from
'src/app/modules/main/Models/presupuesto-partidas'
;
import
{
Actualiza_datosService
}
from
'src/app/modules/main/services/actualiza_datos/actualiza_datos.service'
;
import
{
Compartir_idService
}
from
'src/app/modules/main/services/compartir_id/compartir_id.service'
;
import
{
PresupuestoPartidasService
}
from
'src/app/modules/main/services/presupuesto-partidas/presupuesto-partidas.service'
;
import
{
ConfirmacionEliminacionComponent
}
from
'../../../programa/opciones/ConfirmacionEliminacion/ConfirmacionEliminacion.component'
;
@
Component
({
...
...
@@ -51,7 +53,7 @@ export class AporteEntidadComponent implements OnInit {
}
ngOnInit
():
void
{
this
.
idRecuperado
=
parseInt
(
localStorage
.
getItem
(
'proyectoId'
),
10
);
this
.
idRecuperado
=
parseInt
(
localStorage
.
getItem
(
'proyectoId'
),
10
);
this
.
datosCompartidos
.
datos$
.
subscribe
(()
=>
{
this
.
obtenerRegistros
();
});
...
...
@@ -93,24 +95,36 @@ export class AporteEntidadComponent implements OnInit {
calcularTotales
()
{
this
.
totalSuma
=
this
.
presupuestoPartidas
.
reduce
((
total
,
dato
)
=>
{
return
total
+
dato
.
uzytavpresup_valor
*
dato
.
uzytavpresup_cantidad
;
return
total
+
dato
.
uzytavpresup_valor
*
dato
.
uzytavpresup_cantidad
;
},
0
);
this
.
totalSuma
=
parseFloat
(
this
.
totalSuma
.
toFixed
(
2
));
}
eliminarParametros
(
id
:
number
)
{
const
confirmacion
=
confirm
(
'¿Desea eliminar el registro?'
);
if
(
confirmacion
)
{
this
.
presupuestoPartidasService
.
eliminarParametros
(
id
).
subscribe
(
(
response
)
=>
{
console
.
log
(
'El registro se ha eliminado exitosamente.'
);
this
.
obtenerRegistros
();
// Refresh the records after successful deletion
},
(
error
)
=>
{
console
.
log
(
'Error during the treatment of the record'
,
error
);
}
);
}
this
.
openModalDelete
(
'¿Dsea eliminar el Aporte de la Universidad?'
).
subscribe
(
result
=>
{
const
confirmacion
=
confirm
(
'¿Desea eliminar el registro?'
);
if
(
confirmacion
)
{
this
.
presupuestoPartidasService
.
eliminarParametros
(
id
).
subscribe
(
(
response
)
=>
{
console
.
log
(
'El registro se ha eliminado exitosamente.'
);
this
.
obtenerRegistros
();
// Refresh the records after successful deletion
},
(
error
)
=>
{
console
.
log
(
'Error during the treatment of the record'
,
error
);
}
);
}
});
}
formularioEnviado
:
boolean
;
openModalDelete
(
mensaje
:
string
):
Observable
<
string
>
{
const
dialogRef
=
this
.
dialog
.
open
(
ConfirmacionEliminacionComponent
,
{
disableClose
:
true
,
data
:
{
mensaje
:
mensaje
}
});
return
dialogRef
.
afterClosed
();
}
}
src/app/modules/main/pages/Proyectos/Presupuesto detallado/aporte-universidad/aporte-universidad.component.ts
View file @
3ca5b574
...
...
@@ -10,6 +10,7 @@ import { Actualiza_datosService } from 'src/app/modules/main/services/actualiza_
import
{
Compartir_idService
}
from
'src/app/modules/main/services/compartir_id/compartir_id.service'
;
import
{
PartidasPresupuestariasService
}
from
'src/app/modules/main/services/partidas-presupuestarias/partidas-presupuestarias.service'
;
import
{
PresupuestoPartidasService
}
from
'src/app/modules/main/services/presupuesto-partidas/presupuesto-partidas.service'
;
import
{
ConfirmacionEliminacionComponent
}
from
'../../../programa/opciones/ConfirmacionEliminacion/ConfirmacionEliminacion.component'
;
@
Component
({
selector
:
'app-aporte-universidad'
,
...
...
@@ -166,18 +167,30 @@ export class AporteUniversidadComponent implements OnInit {
eliminarParametros
(
id
:
number
)
{
const
confirmacion
=
confirm
(
'¿Desea eliminar el registro?'
);
if
(
confirmacion
)
{
this
.
presupuestoPartidasService
.
eliminarParametros
(
id
).
subscribe
(
(
response
)
=>
{
console
.
log
(
'El registro se ha eliminado exitosamente.'
);
this
.
obtenerRegistros
();
// Refresh the records after successful deletion
},
(
error
)
=>
{
console
.
log
(
'Error during the treatment of the record'
,
error
);
}
);
}
this
.
openModalDelete
(
'¿Dsea eliminar el Aporte de la Universidad?'
).
subscribe
(
result
=>
{
if
(
result
)
{
this
.
presupuestoPartidasService
.
eliminarParametros
(
id
).
subscribe
(
(
response
)
=>
{
console
.
log
(
'El registro se ha eliminado exitosamente.'
);
this
.
obtenerRegistros
();
// Refresh the records after successful deletion
},
(
error
)
=>
{
console
.
log
(
'Error during the treatment of the record'
,
error
);
}
);
}
});
}
formularioEnviado
:
boolean
;
openModalDelete
(
mensaje
:
string
):
Observable
<
string
>
{
const
dialogRef
=
this
.
dialog
.
open
(
ConfirmacionEliminacionComponent
,
{
disableClose
:
true
,
data
:
{
mensaje
:
mensaje
}
});
return
dialogRef
.
afterClosed
();
}
}
src/app/modules/main/pages/Proyectos/Presupuesto detallado/list-comunidad/list-comunidad.component.ts
View file @
3ca5b574
...
...
@@ -7,6 +7,8 @@ import { PresupuestoPartidas } from 'src/app/modules/main/Models/presupuesto-par
import
{
Actualiza_datosService
}
from
'src/app/modules/main/services/actualiza_datos/actualiza_datos.service'
;
import
{
Compartir_idService
}
from
'src/app/modules/main/services/compartir_id/compartir_id.service'
;
import
{
PresupuestoPartidasService
}
from
'src/app/modules/main/services/presupuesto-partidas/presupuesto-partidas.service'
;
import
{
ConfirmacionEliminacionComponent
}
from
'../../../programa/opciones/ConfirmacionEliminacion/ConfirmacionEliminacion.component'
;
import
{
Observable
}
from
'rxjs'
;
@
Component
({
selector
:
'app-list-comunidad'
,
...
...
@@ -37,7 +39,7 @@ export class ListComunidadComponent implements OnInit {
}
ngOnInit
():
void
{
this
.
idRecuperado
=
parseInt
(
localStorage
.
getItem
(
'proyectoId'
),
10
);
this
.
idRecuperado
=
parseInt
(
localStorage
.
getItem
(
'proyectoId'
),
10
);
this
.
datosCompartidos
.
datos$
.
subscribe
(()
=>
{
this
.
obtenerRegistros
();
});
...
...
@@ -78,26 +80,36 @@ export class ListComunidadComponent implements OnInit {
calcularTotales
()
{
this
.
totalSuma
=
this
.
presupuestoPartidas
.
reduce
((
total
,
dato
)
=>
{
return
total
+
dato
.
uzytavpresup_valor
*
dato
.
uzytavpresup_cantidad
;
return
total
+
dato
.
uzytavpresup_valor
*
dato
.
uzytavpresup_cantidad
;
},
0
);
this
.
totalSuma
=
parseFloat
(
this
.
totalSuma
.
toFixed
(
2
));
}
eliminarParametros
(
id
:
number
)
{
const
confirmacion
=
confirm
(
'¿Desea eliminar el registro?'
);
if
(
confirmacion
)
{
this
.
presupuestoPartidasService
.
eliminarParametros
(
id
).
subscribe
(
(
response
)
=>
{
console
.
log
(
'El registro se ha eliminado exitosamente.'
);
this
.
obtenerRegistros
();
// Refresh the records after successful deletion
},
(
error
)
=>
{
console
.
log
(
'Error during the treatment of the record'
,
error
);
}
);
}
this
.
openModalDelete
(
'¿Dsea eliminar el Aporte de la Comunidad?'
).
subscribe
(
result
=>
{
if
(
result
)
{
this
.
presupuestoPartidasService
.
eliminarParametros
(
id
).
subscribe
(
(
response
)
=>
{
console
.
log
(
'El registro se ha eliminado exitosamente.'
);
this
.
obtenerRegistros
();
// Refresh the records after successful deletion
},
(
error
)
=>
{
console
.
log
(
'Error during the treatment of the record'
,
error
);
}
);
}
});
}
formularioEnviado
:
boolean
;
openModalDelete
(
mensaje
:
string
):
Observable
<
string
>
{
const
dialogRef
=
this
.
dialog
.
open
(
ConfirmacionEliminacionComponent
,
{
disableClose
:
true
,
data
:
{
mensaje
:
mensaje
}
});
return
dialogRef
.
afterClosed
();
}
}
src/app/modules/main/pages/Proyectos/Presupuesto detallado/list-entidad/list-entidad.component.ts
View file @
3ca5b574
import
{
Component
,
OnInit
,
ViewChild
}
from
'@angular/core'
;
import
{
MatDialog
}
from
'@angular/material/dialog'
;
import
{
MatTable
,
MatTableDataSource
}
from
'@angular/material/table'
;
import
{
Observable
}
from
'rxjs'
;
import
{
CatalogoPP
}
from
'src/app/modules/main/Models/catalogo-partidas-presupuestarias'
;
import
{
PartidasPresupuestarias
}
from
'src/app/modules/main/Models/partidas-presupuestarias'
;
import
{
PresupuestoPartidas
}
from
'src/app/modules/main/Models/presupuesto-partidas'
;
import
{
Actualiza_datosService
}
from
'src/app/modules/main/services/actualiza_datos/actualiza_datos.service'
;
import
{
Compartir_idService
}
from
'src/app/modules/main/services/compartir_id/compartir_id.service'
;
import
{
PresupuestoPartidasService
}
from
'src/app/modules/main/services/presupuesto-partidas/presupuesto-partidas.service'
;
import
{
ConfirmacionEliminacionComponent
}
from
'../../../programa/opciones/ConfirmacionEliminacion/ConfirmacionEliminacion.component'
;
@
Component
({
selector
:
'app-list-entidad'
,
...
...
@@ -24,7 +26,7 @@ export class ListEntidadComponent implements OnInit {
politicas
:
any
[]
=
[];
objetivos
:
any
[]
=
[];
presupuestoPartidas
!
:
PresupuestoPartidas
[];
@
ViewChild
(
MatTable
)
table
:
MatTable
<
any
>
;
...
...
@@ -88,8 +90,8 @@ export class ListEntidadComponent implements OnInit {
eliminarParametros
(
id
:
number
)
{
const
confirmacion
=
confirm
(
'¿Desea eliminar el registro?'
);
if
(
confirmacion
)
{
this
.
openModalDelete
(
'¿Dsea eliminar el Aporte de la Entidad Auspiciante?'
).
subscribe
(
result
=>
{
if
(
result
)
{
this
.
presupuestoPartidasService
.
eliminarParametros
(
id
).
subscribe
(
(
response
)
=>
{
console
.
log
(
'El registro se ha eliminado exitosamente.'
);
...
...
@@ -100,5 +102,16 @@ export class ListEntidadComponent implements OnInit {
}
);
}
});
}
formularioEnviado
:
boolean
;
openModalDelete
(
mensaje
:
string
):
Observable
<
string
>
{
const
dialogRef
=
this
.
dialog
.
open
(
ConfirmacionEliminacionComponent
,
{
disableClose
:
true
,
data
:
{
mensaje
:
mensaje
}
});
return
dialogRef
.
afterClosed
();
}
}
src/app/modules/main/services/responsable-prog/responsable-prog.service.ts
View file @
3ca5b574
...
...
@@ -10,9 +10,11 @@ import { ResponsableProg } from '../../Models/responsable-prog';
})
export
class
ResponsableProgService
{
private
readonly
URL
=
environment
.
appApiUrl
+
'/cabevalp'
;
private
readonly
URL
=
environment
.
appApiUrl
+
'/responsableprog'
;
private
readonly
URLRelacionadoProyec
=
environment
.
appApiUrl
+
'/responsableprog/obtenerRegistrosPorProyectID'
;
parametrosActualizados
:
Subject
<
void
>
=
new
Subject
<
void
>
();
private
idCabEvalProy
:
number
;
constructor
(
private
httpClient
:
HttpClient
)
{}
...
...
@@ -25,12 +27,14 @@ export class ResponsableProgService {
return
this
.
httpClient
.
get
<
ResponsableProg
>
(
`
${
this
.
URL
}
/exampleFindId/
${
id
}
`
)
}
obtenerParametrosRelacionados
(
idProyecto
:
number
):
Observable
<
ResponsableProg
[]
>
{
return
this
.
httpClient
.
get
<
ResponsableProg
[]
>
(
`
${
this
.
URLRelacionadoProyec
}
/
${
idProyecto
}
`
)
}
guardarParametros
(
parametros
:
ResponsableProg
):
Observable
<
Object
>
{
return
this
.
httpClient
.
post
(
`
${
this
.
URL
+
"/guardar"
}
`
,
parametros
).
pipe
(
tap
((
response
:
any
)
=>
{
this
.
idCabEvalProy
=
response
.
uzytavcabevalp_id
;
console
.
log
(
"id cabecera evaluacion"
,
this
.
idCabEvalProy
)
// Captura el ID devuelto por el servidor
})
);
}
...
...
Write
Preview
Markdown
is supported
0%
Try again
or
attach a new file
Attach a file
Cancel
You are about to add
0
people
to the discussion. Proceed with caution.
Finish editing this message first!
Cancel
Please
register
or
sign in
to comment