From 9cbcd478c5f02862e7a2fd7fe02f498ae1f38451 Mon Sep 17 00:00:00 2001 From: nicolasarana <90768149+nicolasarana@users.noreply.github.com> Date: Wed, 7 Jan 2026 11:40:31 -0300 Subject: [PATCH 1/4] feat(RUP):"Guardar datos de auditoria por registro" --- .../prestacionValidacion.component.ts | 29 +++++++++++++++++++ .../ejecucion/prestacionValidacion.html | 15 ++++++++++ .../ejecucion/prestacionValidacion.scss | 13 +++++++++ .../rup/components/huds/relaciones-rup.html | 3 +- .../rup/interfaces/prestacion.interface.ts | 9 ++++++ 5 files changed, 68 insertions(+), 1 deletion(-) diff --git a/src/app/modules/rup/components/ejecucion/prestacionValidacion.component.ts b/src/app/modules/rup/components/ejecucion/prestacionValidacion.component.ts index b8305895d4..a313743604 100644 --- a/src/app/modules/rup/components/ejecucion/prestacionValidacion.component.ts +++ b/src/app/modules/rup/components/ejecucion/prestacionValidacion.component.ts @@ -112,6 +112,27 @@ export class PrestacionValidacionComponent implements OnInit, OnDestroy { return this.prestacion && this.prestacion.estados[this.prestacion.estados.length - 1].tipo === 'validada'; } + get ultimoValidador() { + if (this.prestacion && this.prestacion.estados) { + const estados = [...this.prestacion.estados].reverse(); + return estados.find(e => e.tipo === 'validada'); + } + return null; + } + + get profesionales() { + let profesionales = [...(this.prestacion?.profesionalesQueRegistran || [])]; + if (this.ultimoValidador) { + const validador = this.ultimoValidador.createdBy; + const index = profesionales.findIndex(p => (p.id || p._id) === (validador.id || validador._id) || String(p.documento) === String(validador.documento)); + if (index > -1) { + const [v] = profesionales.splice(index, 1); + profesionales = [v, ...profesionales]; + } + } + return profesionales; + } + ngOnDestroy() { this.prestacionSubscription.unsubscribe(); } @@ -404,6 +425,14 @@ export class PrestacionValidacionComponent implements OnInit, OnDestroy { this.router.navigate(['rup/ejecucion/', this.prestacion.id]); } + esValidador(profesional) { + if (!this.ultimoValidador) { + return false; + } + const validador = this.ultimoValidador.createdBy; + return (validador.id === profesional.id || validador.id === profesional._id || String(validador.documento) === String(profesional.documento)); + } + volverInicio(ambito = 'ambulatorio', ruta = null) { let mensaje = ambito === 'ambulatorio' ? 'Punto de Inicio' : 'Mapa de Camas'; let ruteo; diff --git a/src/app/modules/rup/components/ejecucion/prestacionValidacion.html b/src/app/modules/rup/components/ejecucion/prestacionValidacion.html index dfdeea5543..f612da87d3 100644 --- a/src/app/modules/rup/components/ejecucion/prestacionValidacion.html +++ b/src/app/modules/rup/components/ejecucion/prestacionValidacion.html @@ -197,6 +197,21 @@ + + + + + + + + + + + + diff --git a/src/app/modules/rup/components/ejecucion/prestacionValidacion.scss b/src/app/modules/rup/components/ejecucion/prestacionValidacion.scss index 2249596647..c8cac28e91 100644 --- a/src/app/modules/rup/components/ejecucion/prestacionValidacion.scss +++ b/src/app/modules/rup/components/ejecucion/prestacionValidacion.scss @@ -14,6 +14,19 @@ background-color: $invert !important; } +plex-box.profesionales { + background-color: $invert !important; + height: auto !important; + flex: 0 0 auto !important; + display: block !important; + + ::ng-deep .plex-box { + height: auto !important; + flex: 0 0 auto !important; + min-height: initial !important; + } +} + .btn-orden { height: 28px; width: 28px; diff --git a/src/app/modules/rup/components/huds/relaciones-rup.html b/src/app/modules/rup/components/huds/relaciones-rup.html index ba933bcf2d..f64f6aa9df 100644 --- a/src/app/modules/rup/components/huds/relaciones-rup.html +++ b/src/app/modules/rup/components/huds/relaciones-rup.html @@ -3,7 +3,8 @@