From bffe513b4f7ddc86aa59faf13a6b6498b4dad06d Mon Sep 17 00:00:00 2001 From: Vanesa Rimada <80859025+vrimada@users.noreply.github.com> Date: Fri, 7 Aug 2026 10:42:48 -0300 Subject: [PATCH 1/3] correciones de bugs reportados por mail --- WebLab/Turnos/TurnoList.aspx.cs | 14 ++++++++---- WebLab/Usuarios/UsuarioEdit.aspx.cs | 34 +++++++++++++++++++++++++++-- 2 files changed, 42 insertions(+), 6 deletions(-) diff --git a/WebLab/Turnos/TurnoList.aspx.cs b/WebLab/Turnos/TurnoList.aspx.cs index 03d02c7d..ec4e8f8b 100644 --- a/WebLab/Turnos/TurnoList.aspx.cs +++ b/WebLab/Turnos/TurnoList.aspx.cs @@ -572,11 +572,17 @@ private bool VerificarDisponibilidad() ICriteria crit = m_session.CreateCriteria(typeof(Turno)); crit.Add(Expression.Eq("Fecha", cldTurno.SelectedDate)); crit.Add(Expression.Eq("IdTipoServicio", oServicio)); - - if (oUser.IdPerfil.IdPerfil==15) - crit.Add(Expression.Eq("IdEfectorSolicitante", oUser.IdEfector)); + + if (oUser.IdPerfil.IdPerfil == 15) + { //07.08.2026 CAPS + crit.Add(Expression.Eq("IdEfector", oUser.IdEfectorDestino)); //aca va el laboratorio + crit.Add(Expression.Eq("IdEfectorSolicitante", oUser.IdEfector)); // el efector que lo solicita es el logueado + } else - crit.Add(Expression.Eq("IdEfector", oUser.IdEfector)); + { //07.08.2026 agregar efector solicitante para filtrar correctamente + crit.Add(Expression.Eq("IdEfector", oUser.IdEfector)); //aca va el laboratorio + crit.Add(Expression.Eq("IdEfectorSolicitante", oUser.IdEfector)); //el efector que lo solicita es el logueado + } crit.Add(Expression.Eq("IdItem", int.Parse(ddlItem.SelectedValue))); diff --git a/WebLab/Usuarios/UsuarioEdit.aspx.cs b/WebLab/Usuarios/UsuarioEdit.aspx.cs index 876e53a1..91602314 100644 --- a/WebLab/Usuarios/UsuarioEdit.aspx.cs +++ b/WebLab/Usuarios/UsuarioEdit.aspx.cs @@ -833,12 +833,23 @@ private void GuardarEfectores(Business.Data.Usuario oUsuario) foreach (DataRow row in dt.Rows) { int idEfector = int.Parse(row["idEfector"].ToString()); + Efector oEfector = (Efector)new Efector().Get(typeof(Efector), idEfector); - // Si ya existe, no lo vuelvo a crear + // Si ya existe, lo modifico --> 7.08.2026 en cv_customValidacionEfector_ServerValidate validamos que se cambio el area| perfil | labo destino y lo borramos del viewstate if (efectoresExistentes.ContainsKey(idEfector)) + { + UsuarioEfector oRegistroModificado = efectoresExistentes[idEfector]; + oRegistroModificado.IdPerfil = int.Parse(row["idPerfil"].ToString()); + oRegistroModificado.IdArea = int.Parse(row["idArea"].ToString()); + oRegistroModificado.IdEfectorDestino = int.Parse(row["idEfectorDestino"].ToString()); + oRegistroModificado.Save(); + + + continue; + } - Efector oEfector = (Efector)new Efector().Get(typeof(Efector), idEfector); + UsuarioEfector oRegistro = new UsuarioEfector(); oRegistro.IdUsuario = oUsuario; @@ -1015,6 +1026,25 @@ protected void cv_customValidacionEfector_ServerValidate(object source, ServerVa (ddlPerfil.SelectedItem.Value == "15" && (ddlEfectorDestino.SelectedItem.Value != efectorEncontrado["idEfectorDestino"].ToString())) ) { + + + //Auditoria de modificacion + string s_auditoria = ""; + if (ddlPerfil.SelectedItem.Value != efectorEncontrado["idPerfil"].ToString()) + s_auditoria = "Perfil:" + efectorEncontrado["Perfil"] + " "; + if (ddlArea.SelectedItem.Value != efectorEncontrado["idArea"].ToString()) + s_auditoria = s_auditoria + "Area:" + efectorEncontrado["Area"] + " "; + if (ddlPerfil.SelectedItem.Value == "15" && (ddlEfectorDestino.SelectedItem.Value != efectorEncontrado["idEfectorDestino"].ToString())) + s_auditoria = s_auditoria + "Efector Destino:" + efectorEncontrado["idEfectorDestino"] + " "; + + Usuario oUsuario = (Usuario)new Usuario().Get(typeof(Usuario), int.Parse(Request["id"])); + Usuario oAuditor = (Usuario)new Usuario().Get(typeof(Usuario), int.Parse(Session["idUsuario"].ToString())); + oAuditor.GrabaAuditoria( + "Modifica " + ddlEfector3.SelectedItem.Text, + oUsuario.IdUsuario, + oUsuario.Username, + "", s_auditoria); + //Borro el anterior y permitimos que continue el flujo para que se guarde el nuevo con distinto perfil o area o laboratoriodestino dt.Rows.Remove(efectorEncontrado); ViewState["efectores"] = dt; From 3b1491ce6319b19269b7393633b0c99b5164f276 Mon Sep 17 00:00:00 2001 From: Vanesa Rimada <80859025+vrimada@users.noreply.github.com> Date: Fri, 7 Aug 2026 11:14:11 -0300 Subject: [PATCH 2/3] unificacion de idefector en consulta para distintos perfiles es el mismo --- WebLab/Turnos/TurnoList.aspx.cs | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/WebLab/Turnos/TurnoList.aspx.cs b/WebLab/Turnos/TurnoList.aspx.cs index ec4e8f8b..1f78ec3f 100644 --- a/WebLab/Turnos/TurnoList.aspx.cs +++ b/WebLab/Turnos/TurnoList.aspx.cs @@ -576,14 +576,14 @@ private bool VerificarDisponibilidad() if (oUser.IdPerfil.IdPerfil == 15) { //07.08.2026 CAPS crit.Add(Expression.Eq("IdEfector", oUser.IdEfectorDestino)); //aca va el laboratorio - crit.Add(Expression.Eq("IdEfectorSolicitante", oUser.IdEfector)); // el efector que lo solicita es el logueado } else { //07.08.2026 agregar efector solicitante para filtrar correctamente crit.Add(Expression.Eq("IdEfector", oUser.IdEfector)); //aca va el laboratorio - crit.Add(Expression.Eq("IdEfectorSolicitante", oUser.IdEfector)); //el efector que lo solicita es el logueado } + crit.Add(Expression.Eq("IdEfectorSolicitante", oUser.IdEfector)); // el efector que lo solicita es el logueado + crit.Add(Expression.Eq("IdItem", int.Parse(ddlItem.SelectedValue))); crit.Add(Expression.Eq("Baja", false)); From 241d2abe19c58349e59a297ecbc028dddd1f3c3f Mon Sep 17 00:00:00 2001 From: Vanesa Rimada <80859025+vrimada@users.noreply.github.com> Date: Mon, 10 Aug 2026 11:27:35 -0300 Subject: [PATCH 3/3] fix: correcion de auditoria para cambio de efector destino, y agregamos el string de valor nuevo --- WebLab/Usuarios/UsuarioEdit.aspx.cs | 21 +++++++++++++++------ 1 file changed, 15 insertions(+), 6 deletions(-) diff --git a/WebLab/Usuarios/UsuarioEdit.aspx.cs b/WebLab/Usuarios/UsuarioEdit.aspx.cs index 91602314..9c87217f 100644 --- a/WebLab/Usuarios/UsuarioEdit.aspx.cs +++ b/WebLab/Usuarios/UsuarioEdit.aspx.cs @@ -1029,13 +1029,22 @@ protected void cv_customValidacionEfector_ServerValidate(object source, ServerVa //Auditoria de modificacion - string s_auditoria = ""; - if (ddlPerfil.SelectedItem.Value != efectorEncontrado["idPerfil"].ToString()) - s_auditoria = "Perfil:" + efectorEncontrado["Perfil"] + " "; + string s_anterior = "", s_nueva = ""; + if (ddlPerfil.SelectedItem.Value != efectorEncontrado["idPerfil"].ToString()) + { + s_anterior = "Perfil:" + efectorEncontrado["Perfil"] + " "; + s_nueva = "Perfil:" + ddlPerfil.SelectedItem.Text; + } if (ddlArea.SelectedItem.Value != efectorEncontrado["idArea"].ToString()) - s_auditoria = s_auditoria + "Area:" + efectorEncontrado["Area"] + " "; + { + s_anterior = s_anterior + "Area:" + efectorEncontrado["Area"] + " "; + s_nueva = s_nueva + "Area:" + ddlArea.SelectedItem.Text; + } if (ddlPerfil.SelectedItem.Value == "15" && (ddlEfectorDestino.SelectedItem.Value != efectorEncontrado["idEfectorDestino"].ToString())) - s_auditoria = s_auditoria + "Efector Destino:" + efectorEncontrado["idEfectorDestino"] + " "; + { + s_anterior = s_anterior + "Efector Destino:" + efectorEncontrado["EfectorDestino"]; + s_nueva = s_nueva + "Efector Destino:" + ddlEfectorDestino.SelectedItem.Text; + } Usuario oUsuario = (Usuario)new Usuario().Get(typeof(Usuario), int.Parse(Request["id"])); Usuario oAuditor = (Usuario)new Usuario().Get(typeof(Usuario), int.Parse(Session["idUsuario"].ToString())); @@ -1043,7 +1052,7 @@ protected void cv_customValidacionEfector_ServerValidate(object source, ServerVa "Modifica " + ddlEfector3.SelectedItem.Text, oUsuario.IdUsuario, oUsuario.Username, - "", s_auditoria); + s_anterior,s_nueva); //Borro el anterior y permitimos que continue el flujo para que se guarde el nuevo con distinto perfil o area o laboratoriodestino dt.Rows.Remove(efectorEncontrado);