From cd6387ffe55aa68b4e44aa8f2ccf75e02e3cfd18 Mon Sep 17 00:00:00 2001 From: Vanesa Rimada <80859025+vrimada@users.noreply.github.com> Date: Tue, 3 Mar 2026 15:54:55 -0300 Subject: [PATCH 1/6] =?UTF-8?q?fix;=20Correcci=C3=B3n=20de=20bug=20sobre?= =?UTF-8?q?=20la=20edici=C3=B3n=20de=20determinaciones=20con=20la=20marca?= =?UTF-8?q?=20=E2=80=9Csin=20muestra=E2=80=9D,=20regenera=20los=20detalles?= =?UTF-8?q?=20si=20no=20existian?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- WebLab/Resultados/AnalisisEdit.aspx.cs | 17 +++++++++++++++-- 1 file changed, 15 insertions(+), 2 deletions(-) diff --git a/WebLab/Resultados/AnalisisEdit.aspx.cs b/WebLab/Resultados/AnalisisEdit.aspx.cs index 9c13abc..a9fbe9a 100644 --- a/WebLab/Resultados/AnalisisEdit.aspx.cs +++ b/WebLab/Resultados/AnalisisEdit.aspx.cs @@ -389,18 +389,31 @@ private void GuardarDetalle(Business.Data.Laboratorio.Protocolo oRegistro) // GuardarDerivacion(oDetalle); //oDetalle.GuardarDerivacion(oUser); } - else //si ya esta actualizo si trajo muestra o no + else //si ya esta actualizo si trajo muestra o no //3/3/2026 Y regenero los analisis de las practicas si no estaban en el alta { + /* Bug sobre la edición de determinaciones con la marca “sin muestra”: + * Si se genero el protocolo con un analisis "S/muestra" de una practica no se generan los idItem del diagrama + * (porque GuardarDetallePractica solo actualizaba TrajoMuestra del codigo de la practica) + * Correcion: si en Validacion se cambia a "Con muestra",se regeneran los detalles faltantes de la practica + */ foreach (DetalleProtocolo oDetalle in listadetalle) { + bool antesSinMuestra = (oDetalle.TrajoMuestra == "No"); + bool ahoraConMuestra = (trajomuestra == "false"); //Trajomuestra==check en "S/muestra" + if (trajomuestra == "true") oDetalle.TrajoMuestra = "No"; else oDetalle.TrajoMuestra = "Si"; oDetalle.Save(); - } + // Si antes no tenia muestra y ahora sí, y es el caso que no tiene guardar la practica, regenero los detalles SOLO si nunca se crearon + if (antesSinMuestra && ahoraConMuestra && oDetalle.IdItem == oDetalle.IdSubItem) + { + GuardarDetallePractica(oDetalle); + } + } } } } From a77ade06484020592bb24266c1b280f67053360f Mon Sep 17 00:00:00 2001 From: Vanesa Rimada <80859025+vrimada@users.noreply.github.com> Date: Tue, 3 Mar 2026 15:54:55 -0300 Subject: [PATCH 2/6] =?UTF-8?q?fix;=20Correcci=C3=B3n=20de=20bug=20sobre?= =?UTF-8?q?=20la=20edici=C3=B3n=20de=20determinaciones=20con=20la=20marca?= =?UTF-8?q?=20=E2=80=9Csin=20muestra=E2=80=9D,=20regenera=20los=20detalles?= =?UTF-8?q?=20si=20no=20existian?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- WebLab/Resultados/AnalisisEdit.aspx.cs | 17 +++++++++++++++-- 1 file changed, 15 insertions(+), 2 deletions(-) diff --git a/WebLab/Resultados/AnalisisEdit.aspx.cs b/WebLab/Resultados/AnalisisEdit.aspx.cs index 9c13abc..a9fbe9a 100644 --- a/WebLab/Resultados/AnalisisEdit.aspx.cs +++ b/WebLab/Resultados/AnalisisEdit.aspx.cs @@ -389,18 +389,31 @@ private void GuardarDetalle(Business.Data.Laboratorio.Protocolo oRegistro) // GuardarDerivacion(oDetalle); //oDetalle.GuardarDerivacion(oUser); } - else //si ya esta actualizo si trajo muestra o no + else //si ya esta actualizo si trajo muestra o no //3/3/2026 Y regenero los analisis de las practicas si no estaban en el alta { + /* Bug sobre la edición de determinaciones con la marca “sin muestra”: + * Si se genero el protocolo con un analisis "S/muestra" de una practica no se generan los idItem del diagrama + * (porque GuardarDetallePractica solo actualizaba TrajoMuestra del codigo de la practica) + * Correcion: si en Validacion se cambia a "Con muestra",se regeneran los detalles faltantes de la practica + */ foreach (DetalleProtocolo oDetalle in listadetalle) { + bool antesSinMuestra = (oDetalle.TrajoMuestra == "No"); + bool ahoraConMuestra = (trajomuestra == "false"); //Trajomuestra==check en "S/muestra" + if (trajomuestra == "true") oDetalle.TrajoMuestra = "No"; else oDetalle.TrajoMuestra = "Si"; oDetalle.Save(); - } + // Si antes no tenia muestra y ahora sí, y es el caso que no tiene guardar la practica, regenero los detalles SOLO si nunca se crearon + if (antesSinMuestra && ahoraConMuestra && oDetalle.IdItem == oDetalle.IdSubItem) + { + GuardarDetallePractica(oDetalle); + } + } } } } From eadbe19b5ad283fff86d5f2ad19ffe04a5126053 Mon Sep 17 00:00:00 2001 From: Vanesa Rimada <80859025+vrimada@users.noreply.github.com> Date: Wed, 4 Mar 2026 09:49:39 -0300 Subject: [PATCH 3/6] fix: mismo fix en protocolo edit --- WebLab/Protocolos/ProtocoloEdit2.aspx.cs | 13 +++++++++++++ 1 file changed, 13 insertions(+) diff --git a/WebLab/Protocolos/ProtocoloEdit2.aspx.cs b/WebLab/Protocolos/ProtocoloEdit2.aspx.cs index 81d5c3f..cadbb9f 100644 --- a/WebLab/Protocolos/ProtocoloEdit2.aspx.cs +++ b/WebLab/Protocolos/ProtocoloEdit2.aspx.cs @@ -2673,6 +2673,13 @@ private void GuardarDetalle(Business.Data.Laboratorio.Protocolo oRegistro) { /// si cambió la marca de sin muetsra foreach (DetalleProtocolo oDetalle in listadetalle) { + /* Bug sobre la edición de determinaciones con la marca “sin muestra”: + * Si se genero el protocolo con un analisis "S/muestra" de una practica no se generan los idItem del diagrama + * (porque GuardarDetallePractica solo actualizaba TrajoMuestra del codigo de la practica) + * Correcion: si en protocolo se cambia a "Con muestra",se regeneran los detalles faltantes de la practica + */ + + if (trajomuestra == "true") /// es no trajo { if (oDetalle.TrajoMuestra == "Si") // estaba grabado Si @@ -2689,6 +2696,12 @@ private void GuardarDetalle(Business.Data.Laboratorio.Protocolo oRegistro) oDetalle.TrajoMuestra = "Si"; oDetalle.GrabarAuditoriaDetalleProtocolo("Con Muestra", oUser.IdUsuario); oDetalle.Save(); + + // Si antes no tenia muestra y ahora sí, y es el caso que no tiene guardar la practica, regenero los detalles SOLO si nunca se crearon + if (oDetalle.IdItem == oDetalle.IdSubItem) + { + GuardarDetallePractica(oDetalle); + } } } From 623922c07059a74dc60d8c2e8fce8c156f69d612 Mon Sep 17 00:00:00 2001 From: Vanesa Rimada <80859025+vrimada@users.noreply.github.com> Date: Fri, 6 Mar 2026 14:55:13 -0300 Subject: [PATCH 4/6] fix: agrego que sea titulo para entrar a la regeneracion de items --- WebLab/Protocolos/ProtocoloEdit2.aspx.cs | 5 ++-- WebLab/Resultados/AnalisisEdit.aspx.cs | 37 ++++++++++++++---------- 2 files changed, 25 insertions(+), 17 deletions(-) diff --git a/WebLab/Protocolos/ProtocoloEdit2.aspx.cs b/WebLab/Protocolos/ProtocoloEdit2.aspx.cs index cadbb9f..e96136c 100644 --- a/WebLab/Protocolos/ProtocoloEdit2.aspx.cs +++ b/WebLab/Protocolos/ProtocoloEdit2.aspx.cs @@ -2697,8 +2697,9 @@ private void GuardarDetalle(Business.Data.Laboratorio.Protocolo oRegistro) oDetalle.GrabarAuditoriaDetalleProtocolo("Con Muestra", oUser.IdUsuario); oDetalle.Save(); - // Si antes no tenia muestra y ahora sí, y es el caso que no tiene guardar la practica, regenero los detalles SOLO si nunca se crearon - if (oDetalle.IdItem == oDetalle.IdSubItem) + // Si antes no tenia muestra y ahora sí, es Compuesta PERO idItem=idSubItem es porque no se guardo inicialmente los idSubItems + // si se cumple esa condicion regenero los detalles con GuardarDetallePractica + if (oItem.IdCategoria == 1 && oDetalle.IdItem == oDetalle.IdSubItem) { GuardarDetallePractica(oDetalle); } diff --git a/WebLab/Resultados/AnalisisEdit.aspx.cs b/WebLab/Resultados/AnalisisEdit.aspx.cs index a9fbe9a..d36cb56 100644 --- a/WebLab/Resultados/AnalisisEdit.aspx.cs +++ b/WebLab/Resultados/AnalisisEdit.aspx.cs @@ -391,28 +391,35 @@ private void GuardarDetalle(Business.Data.Laboratorio.Protocolo oRegistro) } else //si ya esta actualizo si trajo muestra o no //3/3/2026 Y regenero los analisis de las practicas si no estaban en el alta { - /* Bug sobre la edición de determinaciones con la marca “sin muestra”: - * Si se genero el protocolo con un analisis "S/muestra" de una practica no se generan los idItem del diagrama - * (porque GuardarDetallePractica solo actualizaba TrajoMuestra del codigo de la practica) - * Correcion: si en Validacion se cambia a "Con muestra",se regeneran los detalles faltantes de la practica - */ + foreach (DetalleProtocolo oDetalle in listadetalle) { - bool antesSinMuestra = (oDetalle.TrajoMuestra == "No"); - bool ahoraConMuestra = (trajomuestra == "false"); //Trajomuestra==check en "S/muestra" - if (trajomuestra == "true") oDetalle.TrajoMuestra = "No"; - else - oDetalle.TrajoMuestra = "Si"; - - oDetalle.Save(); - // Si antes no tenia muestra y ahora sí, y es el caso que no tiene guardar la practica, regenero los detalles SOLO si nunca se crearon - if (antesSinMuestra && ahoraConMuestra && oDetalle.IdItem == oDetalle.IdSubItem) + else // (trajomuestra == "false" { - GuardarDetallePractica(oDetalle); + /* Bug sobre la edición de determinaciones con la marca “sin muestra”: + * Si se genero el protocolo con un analisis "S/muestra" de una practica no se generan los idItem del diagrama + * (porque GuardarDetallePractica solo actualizaba TrajoMuestra del codigo de la practica) + * Correcion: si en Validacion se cambia a "Con muestra",se regeneran los detalles faltantes de la practica + */ + + + bool antesSinMuestra = (oDetalle.TrajoMuestra == "No"); + oDetalle.TrajoMuestra = "Si"; + // Si antes no tenia muestra y ahora sí, el Item es categoria "Compuesta" + // PERO idItem=idSubItem --> no se guardaron inicialmente los idSubItems + // si se cumple esa condicion regenero los detalles con GuardarDetallePractica + if (antesSinMuestra && oItem.IdCategoria == 1 && oDetalle.IdItem == oDetalle.IdSubItem) + { + GuardarDetallePractica(oDetalle); + } + } + + oDetalle.Save(); + } } } From b8f3fbcc218ba17e2490fd43d3457bb6d7b00352 Mon Sep 17 00:00:00 2001 From: Vanesa Rimada <80859025+vrimada@users.noreply.github.com> Date: Mon, 9 Mar 2026 13:58:23 -0300 Subject: [PATCH 5/6] fix: manera de listar los items en la grilla. verificar de no generar derivados. --- WebLab/Protocolos/ProtocoloEdit2.aspx.cs | 61 +++++++++++++++++------- WebLab/Resultados/AnalisisEdit.aspx.cs | 49 +++++++++++++++---- 2 files changed, 85 insertions(+), 25 deletions(-) diff --git a/WebLab/Protocolos/ProtocoloEdit2.aspx.cs b/WebLab/Protocolos/ProtocoloEdit2.aspx.cs index e96136c..21c449c 100644 --- a/WebLab/Protocolos/ProtocoloEdit2.aspx.cs +++ b/WebLab/Protocolos/ProtocoloEdit2.aspx.cs @@ -1111,12 +1111,16 @@ private void MostrarDeterminaciones(Protocolo oRegistro) crit.AddOrder(Order.Asc("IdDetalleProtocolo")); IList items = crit.List(); - string pivot = ""; + string pivot = ""; string sDatos = ""; - + HashSet pivote = new HashSet(); + foreach (DetalleProtocolo oDet in items) { - if (pivot != oDet.IdItem.Nombre) + //Debo cambiar la manera que verifica los repetidos, porque ahora cuando se regenera un subItem el IdDetalleProtocolo no es secuencial + //Y en la vista del protocolo se ve "duplicado" + //if (pivot != oDet.IdItem.Nombre) + if (pivote.Add(oDet.IdItem.Nombre)) // Si Add devuelve True es porque lo agrego porque no hay duplicados { /*if (sDatos == "") sDatos = oDet.IdItem.Codigo + "#" + oDet.TrajoMuestra + "#" + oDet.ConResultado; @@ -2673,12 +2677,7 @@ private void GuardarDetalle(Business.Data.Laboratorio.Protocolo oRegistro) { /// si cambió la marca de sin muetsra foreach (DetalleProtocolo oDetalle in listadetalle) { - /* Bug sobre la edición de determinaciones con la marca “sin muestra”: - * Si se genero el protocolo con un analisis "S/muestra" de una practica no se generan los idItem del diagrama - * (porque GuardarDetallePractica solo actualizaba TrajoMuestra del codigo de la practica) - * Correcion: si en protocolo se cambia a "Con muestra",se regeneran los detalles faltantes de la practica - */ - + if (trajomuestra == "true") /// es no trajo { @@ -2697,11 +2696,39 @@ private void GuardarDetalle(Business.Data.Laboratorio.Protocolo oRegistro) oDetalle.GrabarAuditoriaDetalleProtocolo("Con Muestra", oUser.IdUsuario); oDetalle.Save(); - // Si antes no tenia muestra y ahora sí, es Compuesta PERO idItem=idSubItem es porque no se guardo inicialmente los idSubItems - // si se cumple esa condicion regenero los detalles con GuardarDetallePractica - if (oItem.IdCategoria == 1 && oDetalle.IdItem == oDetalle.IdSubItem) + /* Bug sobre la edición de determinaciones con la marca “sin muestra”: + * Si se genero el protocolo con un analisis "S/muestra" de una practica no se generan los idItem del diagrama + * (porque GuardarDetallePractica solo actualizaba TrajoMuestra del codigo de la practica) + * Correcion: si en protocolo se cambia a "Con muestra",se regeneran los detalles faltantes de la practica + */ + + if (oDetalle.IdItem == oDetalle.IdSubItem) { - GuardarDetallePractica(oDetalle); + /* Si ValidadoTotal (en ProtocoloEdit2) cargó idUsuarioValida por un caso de + * "sin muestra" se debe resetear idUsuarioValida para evitar inconsistencias + */ + + //Caso 1: el análisis aún no tiene resultados (simple o compuesto), + if (oDetalle.ResultadoCar == "" && oDetalle.ResultadoNum == 0) + { + oDetalle.IdUsuarioValida = 0; + oDetalle.FechaValida = DateTime.Parse("01/01/1900"); + } + + //Caso 2: Es derivacion. + //Si todavia no se derivo, debo resetear el IdUsuarioValida. + //Cuando se deriva el lote, se actualiza el idUsuarioResultado + //Queda pendiente ver idUsuarioValida cuando el lote se deriva/recibe !!!!!!!!!! que hacemos con el idUsuarioValida + + if (oDetalle.ResultadoCar == "Pendiente de derivar") + { + oDetalle.IdUsuarioValida = 0; + oDetalle.FechaValida = DateTime.Parse("01/01/1900"); + } + if (oItem.IdCategoria == 1 ) + { + GuardarDetallePractica(oDetalle, true); //true --> se omite si es Derivacion para no generar una nueva Derivacion + } } } } @@ -2883,11 +2910,11 @@ private void GuardarDetalle(Business.Data.Laboratorio.Protocolo oRegistro) - private void GuardarDetallePractica(DetalleProtocolo oDet) + private void GuardarDetallePractica(DetalleProtocolo oDet, bool regenera=false) { - - - if (oDet.VerificarSiEsDerivable(oUser.IdEfector)) //oDet.IdItem.IdEfector.IdEfector != oDet.IdItem.IdEfectorDerivacion.IdEfector) //Si es un item derivable no busca hijos y guarda directamente. + //Alta normal (regenera = false) --> el código funciona como antes + // Modificación con regeneración(regenera = true) --> se omite si es Derivacion para no generar una nueva Derivacion + if (!regenera && oDet.VerificarSiEsDerivable(oUser.IdEfector)) //oDet.IdItem.IdEfector.IdEfector != oDet.IdItem.IdEfectorDerivacion.IdEfector) //Si es un item derivable no busca hijos y guarda directamente. { oDet.IdSubItem = oDet.IdItem; oDet.Save(); diff --git a/WebLab/Resultados/AnalisisEdit.aspx.cs b/WebLab/Resultados/AnalisisEdit.aspx.cs index d36cb56..e387faa 100644 --- a/WebLab/Resultados/AnalisisEdit.aspx.cs +++ b/WebLab/Resultados/AnalisisEdit.aspx.cs @@ -109,9 +109,14 @@ private void MuestraDatos() IList items = crit.List(); string pivot = ""; string sDatos = ""; + HashSet pivote = new HashSet(); + foreach (DetalleProtocolo oDet in items) { - if (pivot != oDet.IdItem.Nombre) + //if (pivot != oDet.IdItem.Nombre) //Debo cambiar la manera que verifica los repetidos, + // porque ahora cuando se regenera un subItem el IdDetalleProtocolo no es secuencial + // Y en la vista del protocolo se ve "duplicado" + if (pivote.Add(oDet.IdItem.Nombre)) // Si Add devuelve True es porque lo agrego sin problemas de duplicados { if (sDatos == "") sDatos = oDet.IdItem.Codigo + "#" + oDet.TrajoMuestra + "#" + oDet.ConResultado; @@ -408,12 +413,38 @@ private void GuardarDetalle(Business.Data.Laboratorio.Protocolo oRegistro) bool antesSinMuestra = (oDetalle.TrajoMuestra == "No"); oDetalle.TrajoMuestra = "Si"; - // Si antes no tenia muestra y ahora sí, el Item es categoria "Compuesta" - // PERO idItem=idSubItem --> no se guardaron inicialmente los idSubItems - // si se cumple esa condicion regenero los detalles con GuardarDetallePractica - if (antesSinMuestra && oItem.IdCategoria == 1 && oDetalle.IdItem == oDetalle.IdSubItem) + + if (antesSinMuestra && oDetalle.IdItem == oDetalle.IdSubItem && + (oRegistro.IdTipoServicio.IdTipoServicio == 1 || oRegistro.IdTipoServicio.IdTipoServicio ==3)) //Solo pasa en Labo y Microbiologia, en NO Pacientes se generan todos los items sin muesta { - GuardarDetallePractica(oDetalle); + /* Si ValidadoTotal (en ProtocoloEdit2) cargó idUsuarioValida por un caso de + * "sin muestra" se debe resetear idUsuarioValida para evitar inconsistencias + */ + + //Caso 1: el análisis aún no tiene resultados (simple o compuesto), + if (oDetalle.ResultadoCar == "" && oDetalle.ResultadoNum == 0) + { + oDetalle.IdUsuarioValida = 0; + oDetalle.FechaValida = DateTime.Parse("01/01/1900"); + } + + //Caso 2: Es derivacion. + //Si todavia no se derivo, debo resetear el IdUsuarioValida. + //Cuando se deriva el lote, se actualiza el idUsuarioResultado + //Queda pendiente ver idUsuarioValida cuando el lote se deriva/recibe !!!!!!!!!! que hacemos con el idUsuarioValida + if (oDetalle.ResultadoCar == "Pendiente de derivar") + { + oDetalle.IdUsuarioValida = 0; + oDetalle.FechaValida = DateTime.Parse("01/01/1900"); + } + + /* Si es un analisis Compuesto Regenero analisis. + * Considero que si el analisis es Derivacion no se debe regenerar + * Considero idItem = idSubItem + */ + + if ( oItem.IdCategoria == 1 ) + GuardarDetallePractica(oDetalle, true); //true --> se omite si es Derivacion para no generar una nueva Derivacion } } @@ -561,10 +592,12 @@ private void GuardarDetalle2(Business.Data.Laboratorio.Protocolo oRegistro) - private void GuardarDetallePractica(DetalleProtocolo oDet) + private void GuardarDetallePractica(DetalleProtocolo oDet, bool regenera = false) { + //Alta normal (regenera = false) → el código funciona como antes + // Modificación con regeneración(regenera = true) → se omite si es Derivacion para no generar una nueva Derivacion - if (oDet.VerificarSiEsDerivable(oDet.IdProtocolo.IdEfector)) //oDet.IdItem.IdEfector.IdEfector != oDet.IdItem.IdEfectorDerivacion.IdEfector) //Si es un item derivable no busca hijos y guarda directamente. + if (!regenera && oDet.VerificarSiEsDerivable(oDet.IdProtocolo.IdEfector)) //oDet.IdItem.IdEfector.IdEfector != oDet.IdItem.IdEfectorDerivacion.IdEfector) //Si es un item derivable no busca hijos y guarda directamente. { oDet.IdSubItem = oDet.IdItem; oDet.Save(); From 1e35c6ee8c176916b7e1f8ae345e4174cc17777f Mon Sep 17 00:00:00 2001 From: Vanesa Rimada <80859025+vrimada@users.noreply.github.com> Date: Mon, 9 Mar 2026 15:38:07 -0300 Subject: [PATCH 6/6] cambio valores de resultado por variable ConResultado --- WebLab/Protocolos/ProtocoloEdit2.aspx.cs | 16 +++++++--------- WebLab/Resultados/AnalisisEdit.aspx.cs | 6 ++---- 2 files changed, 9 insertions(+), 13 deletions(-) diff --git a/WebLab/Protocolos/ProtocoloEdit2.aspx.cs b/WebLab/Protocolos/ProtocoloEdit2.aspx.cs index 21c449c..9a49dd9 100644 --- a/WebLab/Protocolos/ProtocoloEdit2.aspx.cs +++ b/WebLab/Protocolos/ProtocoloEdit2.aspx.cs @@ -2704,30 +2704,28 @@ private void GuardarDetalle(Business.Data.Laboratorio.Protocolo oRegistro) if (oDetalle.IdItem == oDetalle.IdSubItem) { - /* Si ValidadoTotal (en ProtocoloEdit2) cargó idUsuarioValida por un caso de - * "sin muestra" se debe resetear idUsuarioValida para evitar inconsistencias - */ + /* Si ValidadoTotal (en ProtocoloEdit2) cargó idUsuarioValida por un caso de + * "sin muestra" se debe resetear idUsuarioValida para evitar inconsistencias + */ //Caso 1: el análisis aún no tiene resultados (simple o compuesto), - if (oDetalle.ResultadoCar == "" && oDetalle.ResultadoNum == 0) + if (!oDetalle.ConResultado) { oDetalle.IdUsuarioValida = 0; oDetalle.FechaValida = DateTime.Parse("01/01/1900"); } //Caso 2: Es derivacion. - //Si todavia no se derivo, debo resetear el IdUsuarioValida. - //Cuando se deriva el lote, se actualiza el idUsuarioResultado - //Queda pendiente ver idUsuarioValida cuando el lote se deriva/recibe !!!!!!!!!! que hacemos con el idUsuarioValida + //Los analisis Derivados no tienen IdUsuarioValida, solo idUsuarioResultado if (oDetalle.ResultadoCar == "Pendiente de derivar") { oDetalle.IdUsuarioValida = 0; oDetalle.FechaValida = DateTime.Parse("01/01/1900"); } - if (oItem.IdCategoria == 1 ) + if (oItem.IdCategoria == 1 ) { - GuardarDetallePractica(oDetalle, true); //true --> se omite si es Derivacion para no generar una nueva Derivacion + GuardarDetallePractica(oDetalle, true); //regenera=true --> se omite si es Derivacion para no generar una nueva Derivacion } } } diff --git a/WebLab/Resultados/AnalisisEdit.aspx.cs b/WebLab/Resultados/AnalisisEdit.aspx.cs index e387faa..a122d53 100644 --- a/WebLab/Resultados/AnalisisEdit.aspx.cs +++ b/WebLab/Resultados/AnalisisEdit.aspx.cs @@ -422,16 +422,14 @@ private void GuardarDetalle(Business.Data.Laboratorio.Protocolo oRegistro) */ //Caso 1: el análisis aún no tiene resultados (simple o compuesto), - if (oDetalle.ResultadoCar == "" && oDetalle.ResultadoNum == 0) + if (!oDetalle.ConResultado) { oDetalle.IdUsuarioValida = 0; oDetalle.FechaValida = DateTime.Parse("01/01/1900"); } //Caso 2: Es derivacion. - //Si todavia no se derivo, debo resetear el IdUsuarioValida. - //Cuando se deriva el lote, se actualiza el idUsuarioResultado - //Queda pendiente ver idUsuarioValida cuando el lote se deriva/recibe !!!!!!!!!! que hacemos con el idUsuarioValida + //Los analisis Derivados no tienen IdUsuarioValida, solo idUsuarioResultado if (oDetalle.ResultadoCar == "Pendiente de derivar") { oDetalle.IdUsuarioValida = 0;