diff --git a/WebLab/Turnos/TurnoList.aspx.cs b/WebLab/Turnos/TurnoList.aspx.cs index 03d02c7d..1f78ec3f 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 + } 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..9c87217f 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,34 @@ protected void cv_customValidacionEfector_ServerValidate(object source, ServerVa (ddlPerfil.SelectedItem.Value == "15" && (ddlEfectorDestino.SelectedItem.Value != efectorEncontrado["idEfectorDestino"].ToString())) ) { + + + //Auditoria de modificacion + 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_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_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())); + oAuditor.GrabaAuditoria( + "Modifica " + ddlEfector3.SelectedItem.Text, + oUsuario.IdUsuario, + oUsuario.Username, + 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); ViewState["efectores"] = dt;