/// btnBuscar control.
diff --git a/WebLab/Derivaciones/InformeList3.aspx b/WebLab/Derivaciones/InformeList3.aspx
index 98644db..beb8b24 100644
--- a/WebLab/Derivaciones/InformeList3.aspx
+++ b/WebLab/Derivaciones/InformeList3.aspx
@@ -6,11 +6,11 @@
function validarFormulario() {
var todoOk = false;
- var validatorEstado = document.getElementById('<%= rv_estado.ClientID %>');
+ var validatorEstado = document.getElementById('<%= rvEstado.ClientID %>');
<%--var txtObservacion = document.getElementById('<%= txtObservacion.ClientID %>');--%> //--> Cambio TextBox por DropDownList
- var motivoCancelacion = document.getElementById('<%= ddl_motivoCancelacion.ClientID%>');
+ var motivoCancelacion = document.getElementById('<%= ddlMotivoCancelacion.ClientID%>');
var estado = document.getElementById('<%= ddlEstado.ClientID %>');
- var label = document.getElementById('<%= lbl_ErrorMotivo.ClientID %>');
+ var label = document.getElementById('<%= lblErrorMotivo.ClientID %>');
//Limpio los labels de error
label.className = 'hidden';
@@ -59,18 +59,18 @@
return true; // Detiene la validación con al menos un check
}
}
- var label = document.getElementById('<%= lbl_errorLista.ClientID %>');
+ var label = document.getElementById('<%= lblErrorLista.ClientID %>');
label.className = 'exposed';
return todoOk;
}
function reseteaLabelErrorGrilla() {
- var labelGrilla = document.getElementById('<%= lbl_errorLista.ClientID %>');
+ var labelGrilla = document.getElementById('<%= lblErrorLista.ClientID %>');
labelGrilla.className = 'hidden';
}
function reseteaLabelErrorMotivo() {
- var labelMotivo = document.getElementById('<%= lbl_ErrorMotivo.ClientID %>');
+ var labelMotivo = document.getElementById('<%= lblErrorMotivo.ClientID %>');
labelMotivo.className = 'hidden';
}
@@ -103,7 +103,7 @@
}
function activaMotivos(estado) {
- var motivos = document.getElementById('<%= ddl_motivoCancelacion.ClientID %>');
+ var motivos = document.getElementById('<%= ddlMotivoCancelacion.ClientID %>');
console.log(motivos);
console.log(estado.value);
if (estado.value == 2) {
@@ -125,7 +125,7 @@
}
});
//Si selecciono todas las derivaciones, deshabilito el error que no selecciono ninguna fila
- if (seleccionar && document.getElementById('<%= lbl_errorLista.ClientID %>').className == 'exposed') {
+ if (seleccionar && document.getElementById('<%= lblErrorLista.ClientID %>').className == 'exposed') {
reseteaLabelErrorGrilla();
}
}
@@ -224,7 +224,7 @@
| Marcar como: |
-
Motivo Cancelación: |
-
+
|
-
+
|
Observación:
|
-
+
|
-
+
Seleccionar:
Todas
Ninguna
diff --git a/WebLab/Derivaciones/InformeList3.aspx.cs b/WebLab/Derivaciones/InformeList3.aspx.cs
index c7ad438..9e3c43a 100644
--- a/WebLab/Derivaciones/InformeList3.aspx.cs
+++ b/WebLab/Derivaciones/InformeList3.aspx.cs
@@ -104,8 +104,8 @@ private void CargarListas()
oUtil = new Utility();
//Motivos de cancelacion LAB-75
m_ssql = "SELECT idMotivo, descripcion FROM LAB_DerivacionMotivoCancelacion WHERE baja = 0";
- oUtil.CargarCombo(ddl_motivoCancelacion, m_ssql, "idMotivo", "descripcion", connReady);
- ddl_motivoCancelacion.Items.Insert(0, new ListItem("--Seleccione--", "0"));
+ oUtil.CargarCombo(ddlMotivoCancelacion, m_ssql, "idMotivo", "descripcion", connReady);
+ ddlMotivoCancelacion.Items.Insert(0, new ListItem("--Seleccione--", "0"));
@@ -116,7 +116,7 @@ private void habilitarImpresion()
{
gvLista.Columns[11].Visible = true;
lnkPDF.Visible = true;
- ddl_motivoCancelacion.Enabled = false;
+ ddlMotivoCancelacion.Enabled = false;
}
else
{
@@ -126,15 +126,15 @@ private void habilitarImpresion()
}
private void limpiarForm()
{
- txt_observacion.Text = string.Empty;
- ddl_motivoCancelacion.SelectedIndex = 0;
+ txtObservacion.Text = string.Empty;
+ ddlMotivoCancelacion.SelectedIndex = 0;
ddlEstado.SelectedIndex = 0;
}
private void activarControles(bool valor)
{
btnGuardar.Enabled = valor;
- txt_observacion.Enabled = valor;
+ txtObservacion.Enabled = valor;
lnkMarcar.Enabled = valor;
lnkDesMarcar.Enabled = valor;
//ddl_motivoCancelacion.Enabled = valor;
@@ -384,12 +384,12 @@ private void ActualizarDetalleProtocolo(GridViewRow row, int idLote = 0, int de
{
int estadoSeleccionado;
string resultadoDerivacion;
- string observacion = txt_observacion.Text;
+ string observacion = txtObservacion.Text;
int idUsuarioRegistro = oUser.IdUsuario; //Convert.ToInt32(Session["idUsuario"]);
int idUsuarioResultado = oUser.IdUsuario;
DateTime fechaDeHoy = DateTime.Now;
DateTime fechaDeHoyDetalle = DateTime.Now;
- int MotivoCancelacion = int.Parse(ddl_motivoCancelacion.SelectedItem.Value);
+ int MotivoCancelacion = int.Parse(ddlMotivoCancelacion.SelectedItem.Value);
bool conResultado = true;
@@ -397,7 +397,7 @@ private void ActualizarDetalleProtocolo(GridViewRow row, int idLote = 0, int de
if (desasociaLote == 0)
{
estadoSeleccionado = Convert.ToInt32(ddlEstado.SelectedValue);//Estado seleccionado => 2 No Enviado - 4 Pendiente para enviar
- resultadoDerivacion = (estadoSeleccionado == 2) ? "No Derivado: " + ddl_motivoCancelacion.SelectedItem.Text : "Pendiente para enviar ";
+ resultadoDerivacion = (estadoSeleccionado == 2) ? "No Derivado: " + ddlMotivoCancelacion.SelectedItem.Text : "Pendiente para enviar ";
}
else
{
diff --git a/WebLab/Derivaciones/InformeList3.aspx.designer.cs b/WebLab/Derivaciones/InformeList3.aspx.designer.cs
index 2f6e719..4c71d42 100644
--- a/WebLab/Derivaciones/InformeList3.aspx.designer.cs
+++ b/WebLab/Derivaciones/InformeList3.aspx.designer.cs
@@ -51,40 +51,40 @@ public partial class InformeList3
protected global::System.Web.UI.WebControls.DropDownList ddlEstado;
///
- /// rv_estado control.
+ /// rvEstado control.
///
///
/// Auto-generated field.
/// To modify move field declaration from designer file to code-behind file.
///
- protected global::System.Web.UI.WebControls.RangeValidator rv_estado;
+ protected global::System.Web.UI.WebControls.RangeValidator rvEstado;
///
- /// ddl_motivoCancelacion control.
+ /// ddlMotivoCancelacion control.
///
///
/// Auto-generated field.
/// To modify move field declaration from designer file to code-behind file.
///
- protected global::System.Web.UI.WebControls.DropDownList ddl_motivoCancelacion;
+ protected global::System.Web.UI.WebControls.DropDownList ddlMotivoCancelacion;
///
- /// lbl_ErrorMotivo control.
+ /// lblErrorMotivo control.
///
///
/// Auto-generated field.
/// To modify move field declaration from designer file to code-behind file.
///
- protected global::System.Web.UI.WebControls.Label lbl_ErrorMotivo;
+ protected global::System.Web.UI.WebControls.Label lblErrorMotivo;
///
- /// txt_observacion control.
+ /// txtObservacion control.
///
///
/// Auto-generated field.
/// To modify move field declaration from designer file to code-behind file.
///
- protected global::System.Web.UI.WebControls.TextBox txt_observacion;
+ protected global::System.Web.UI.WebControls.TextBox txtObservacion;
///
/// btnGuardar control.
@@ -105,13 +105,13 @@ public partial class InformeList3
protected global::System.Web.UI.WebControls.LinkButton lnkPDF;
///
- /// lbl_errorLista control.
+ /// lblErrorLista control.
///
///
/// Auto-generated field.
/// To modify move field declaration from designer file to code-behind file.
///
- protected global::System.Web.UI.WebControls.Label lbl_errorLista;
+ protected global::System.Web.UI.WebControls.Label lblErrorLista;
///
/// lnkMarcar control.
diff --git a/WebLab/Derivaciones/InformeLote.aspx b/WebLab/Derivaciones/InformeLote.aspx
index cfb5191..314b28b 100644
--- a/WebLab/Derivaciones/InformeLote.aspx
+++ b/WebLab/Derivaciones/InformeLote.aspx
@@ -7,10 +7,10 @@
var validatorEstado = document.getElementById('<%= Range1.ClientID %>');
var txtObservacion = document.getElementById('<%= txtObservacion.ClientID %>');
var estado = document.getElementById('<%= ddlEstados.ClientID %>');
- var label = document.getElementById('<%= lbl_ErrorMotivo.ClientID %>');
- var labelGrilla = document.getElementById('<%= lbl_errorLista.ClientID %>');
- var lista_transporte = document.getElementById('<%= ddl_Transporte.ClientID %>');
- var labelErrorTransporte = document.getElementById('<%= lbl_ErrorTransporte.ClientID %>');
+ var label = document.getElementById('<%= lblErrorMotivo.ClientID %>');
+ var labelGrilla = document.getElementById('<%= lblErrorLista.ClientID %>');
+ var lista_transporte = document.getElementById('<%= ddlTransporte.ClientID %>');
+ var labelErrorTransporte = document.getElementById('<%= lblErrorTransporte.ClientID %>');
//Limpio los labels de error
label.className = 'hidden';
@@ -62,7 +62,7 @@
return true; // Detiene la validacin con al menos un check
}
}
- var label = document.getElementById('<%= lbl_errorLista.ClientID %>');
+ var label = document.getElementById('<%= lblErrorLista.ClientID %>');
label.className = 'exposed';
return todoOk;
}
@@ -71,8 +71,8 @@
//Habilita la seleccion del listado desplegable donde estan los transportes
var ddl = document.getElementById('<%= ddlEstados.ClientID %>');
- var labelErrorTransporte = document.getElementById('<%= lbl_ErrorTransporte.ClientID%>');
- var lista_transporte = document.getElementById('<%= ddl_Transporte.ClientID%>');
+ var labelErrorTransporte = document.getElementById('<%= lblErrorTransporte.ClientID%>');
+ var lista_transporte = document.getElementById('<%= ddlTransporte.ClientID%>');
var estado = ddl.value;
//console.log("--");
//console.log(lista_transporte);
@@ -88,7 +88,7 @@
function reseteaLabelErrorLote() {
//Esconde el label que tiene el error
- var labelGrilla = document.getElementById('<%= lbl_errorLista.ClientID %>');
+ var labelGrilla = document.getElementById('<%= lblErrorLista.ClientID %>');
labelGrilla.className = 'hidden';
}
@@ -104,8 +104,8 @@
function verificaSeleccion() {
//Esta funcion revisa que se haya selecionado un transporte
- var lista_transporte = document.getElementById('<%= ddl_Transporte.ClientID %>');
- var labelErrorTransporte = document.getElementById('<%= lbl_ErrorTransporte.ClientID %>');
+ var lista_transporte = document.getElementById('<%= ddlTransporte.ClientID %>');
+ var labelErrorTransporte = document.getElementById('<%= lblErrorTransporte.ClientID %>');
//console.log("transporte");
//console.log(lista_transporte.value);
if (lista_transporte.selectedIndex == 0) {
@@ -116,8 +116,8 @@
}
document.addEventListener("DOMContentLoaded", function () {
- var txtFecha = document.getElementById('<%= txt_Fecha.ClientID %>');
- var txtHora = document.getElementById('<%= txt_Hora.ClientID %>');
+ var txtFecha = document.getElementById('<%= txtFecha.ClientID %>');
+ var txtHora = document.getElementById('<%= txtHora.ClientID %>');
function cambioFechaHorario() {
var fechaSeleccionada = new Date(txtFecha.value);
@@ -187,20 +187,20 @@
|
Retira transporte: |
-
+ |
<%--
--%>
|
- |
+ |
| Observaciones: |
-
+
|
<%--
@@ -209,15 +209,15 @@
| Fecha y Hora de retiro: |
-
+
- *Error en Fecha
+ *Error en Fecha
|
-
+
- *Error en Hora
+ *Error en Hora
|
@@ -247,7 +247,7 @@
-
+
Seleccionar:
Todas
diff --git a/WebLab/Derivaciones/InformeLote.aspx.cs b/WebLab/Derivaciones/InformeLote.aspx.cs
index c0daa70..eacf927 100644
--- a/WebLab/Derivaciones/InformeLote.aspx.cs
+++ b/WebLab/Derivaciones/InformeLote.aspx.cs
@@ -136,11 +136,11 @@ private void activarControles(bool valor)
txtObservacion.Enabled = valor;
ddlEstados.Enabled = valor;
//rb_transportista.Enabled = true; //Vanesa: Cambio el radio button por un dropdownlist (asociado a tarea LAB-52)
- ddl_Transporte.Enabled = valor;
+ ddlTransporte.Enabled = valor;
lnkMarcar.Enabled = valor;
lnkDesMarcar.Enabled = valor;
- txt_Fecha.Enabled = valor;
- txt_Hora.Enabled = valor;
+ txtFecha.Enabled = valor;
+ txtHora.Enabled = valor;
}
private void CargarControles()
@@ -162,10 +162,10 @@ private void CargarEstados()
private void CargarTransportistas()
{
- ddl_Transporte.Items.Add("-- SELECCIONE --");
+ ddlTransporte.Items.Add("-- SELECCIONE --");
//Vanesa: por ahora esta hardcodeado los transportitas, hacer mejora que lea de la base de datos
- ddl_Transporte.Items.Add("Público");
- ddl_Transporte.Items.Add("Privado");
+ ddlTransporte.Items.Add("Público");
+ ddlTransporte.Items.Add("Privado");
//Utility oUtil = new Utility();
@@ -176,8 +176,8 @@ private void CargarTransportistas()
private void CargarFechaHoraActual()
{
DateTime miFecha = DateTime.UtcNow.AddHours(-3); //Hora estándar de Argentina (UTC-03:00)
- txt_Fecha.Text = miFecha.Date.ToString("yyyy-MM-dd");
- txt_Hora.Text = miFecha.ToString("HH:mm");
+ txtFecha.Text = miFecha.Date.ToString("yyyy-MM-dd");
+ txtHora.Text = miFecha.ToString("HH:mm");
//Date1.Text = miFecha.Date.ToString("yyyy-MM-dd");
//Time1.Text = miFecha.ToString("HH:mm");
}
@@ -346,7 +346,7 @@ private bool Guardar()
int estadoLote = Convert.ToInt32(ddlEstados.SelectedValue);
string resultadoDerivacion = estadoLote == 2 ? "Derivado: " + row.Cells[3].Text : "No Derivado. ";
//string observacion = txtObservacion.Text + " " + (estadoLote == 1 ? rb_transportista.SelectedValue : ""); //Vanesa: Cambio el radio button por un dropdownlist (asociado a tarea LAB-52)
- string observacion = txtObservacion.Text + " " + (estadoLote == 1 ? ddl_Transporte.SelectedValue : "");
+ string observacion = txtObservacion.Text + " " + (estadoLote == 1 ? ddlTransporte.SelectedValue : "");
LoteDerivacion lote = new LoteDerivacion();
lote = (LoteDerivacion)lote.Get(typeof(LoteDerivacion), idLote);
@@ -355,7 +355,7 @@ private bool Guardar()
lote.Observacion = observacion;
lote.IdUsuarioEnvio = idUsuario;
//para Estado "Derivado" poner la fecha actual y para estado "Cancelado" no poner Fecha
- string fecha_hora = txt_Fecha.Text + " " + txt_Hora.Text;
+ string fecha_hora = txtFecha.Text + " " + txtHora.Text;
lote.FechaEnvio = (estadoLote == 2) ? Convert.ToDateTime(fecha_hora) : DateTime.Parse("01/01/1900");
lote.Save();
@@ -411,10 +411,10 @@ Estado de la derivacion LAB_DerivacionEstado
if (estadoLote == 2) //Si deriva indica con que transportista fue, y que fecha y hora se retiro
{ // lote.GrabarAuditoriaLoteDerivacion(resultadoDerivacion, idUsuario, "Transportista", rb_transportista.SelectedValue); //Vanesa: Cambio el radio button por un dropdownlist (asociado a tarea LAB-52)
- lote.GrabarAuditoriaLoteDerivacion(resultadoDerivacion, idUsuario, "Transportista", ddl_Transporte.SelectedValue);
- DateTime f = new DateTime(Convert.ToInt16(txt_Fecha.Text.Substring(0, 4)), Convert.ToInt16(txt_Fecha.Text.Substring(5, 2)), Convert.ToInt16(txt_Fecha.Text.Substring(8, 2)));
+ lote.GrabarAuditoriaLoteDerivacion(resultadoDerivacion, idUsuario, "Transportista", ddlTransporte.SelectedValue);
+ DateTime f = new DateTime(Convert.ToInt16(txtFecha.Text.Substring(0, 4)), Convert.ToInt16(txtFecha.Text.Substring(5, 2)), Convert.ToInt16(txtFecha.Text.Substring(8, 2)));
lote.GrabarAuditoriaLoteDerivacion("Fecha y Hora retiro", idUsuario, "Fecha", f.ToString("dd/MM/yyyy")); //que las fechas tengan el mismo formato
- lote.GrabarAuditoriaLoteDerivacion("Fecha y Hora retiro", idUsuario, "Hora", txt_Hora.Text);
+ lote.GrabarAuditoriaLoteDerivacion("Fecha y Hora retiro", idUsuario, "Hora", txtHora.Text);
}
diff --git a/WebLab/Derivaciones/InformeLote.aspx.designer.cs b/WebLab/Derivaciones/InformeLote.aspx.designer.cs
index a81c429..59d5969 100644
--- a/WebLab/Derivaciones/InformeLote.aspx.designer.cs
+++ b/WebLab/Derivaciones/InformeLote.aspx.designer.cs
@@ -42,22 +42,22 @@ public partial class InformeLote
protected global::System.Web.UI.WebControls.RangeValidator Range1;
///
- /// ddl_Transporte control.
+ /// ddlTransporte control.
///
///
/// Auto-generated field.
/// To modify move field declaration from designer file to code-behind file.
///
- protected global::System.Web.UI.WebControls.DropDownList ddl_Transporte;
+ protected global::System.Web.UI.WebControls.DropDownList ddlTransporte;
///
- /// lbl_ErrorTransporte control.
+ /// lblErrorTransporte control.
///
///
/// Auto-generated field.
/// To modify move field declaration from designer file to code-behind file.
///
- protected global::System.Web.UI.WebControls.Label lbl_ErrorTransporte;
+ protected global::System.Web.UI.WebControls.Label lblErrorTransporte;
///
/// txtObservacion control.
@@ -69,22 +69,22 @@ public partial class InformeLote
protected global::System.Web.UI.WebControls.TextBox txtObservacion;
///
- /// lbl_ErrorMotivo control.
+ /// lblErrorMotivo control.
///
///
/// Auto-generated field.
/// To modify move field declaration from designer file to code-behind file.
///
- protected global::System.Web.UI.WebControls.Label lbl_ErrorMotivo;
+ protected global::System.Web.UI.WebControls.Label lblErrorMotivo;
///
- /// txt_Fecha control.
+ /// txtFecha control.
///
///
/// Auto-generated field.
/// To modify move field declaration from designer file to code-behind file.
///
- protected global::System.Web.UI.WebControls.TextBox txt_Fecha;
+ protected global::System.Web.UI.WebControls.TextBox txtFecha;
///
/// RequiredFieldValidator1 control.
@@ -96,13 +96,13 @@ public partial class InformeLote
protected global::System.Web.UI.WebControls.RequiredFieldValidator RequiredFieldValidator1;
///
- /// txt_Hora control.
+ /// txtHora control.
///
///
/// Auto-generated field.
/// To modify move field declaration from designer file to code-behind file.
///
- protected global::System.Web.UI.WebControls.TextBox txt_Hora;
+ protected global::System.Web.UI.WebControls.TextBox txtHora;
///
/// RequiredFieldValidator2 control.
@@ -123,13 +123,13 @@ public partial class InformeLote
protected global::System.Web.UI.WebControls.Button btnGuardar;
///
- /// lbl_errorLista control.
+ /// lblErrorLista control.
///
///
/// Auto-generated field.
/// To modify move field declaration from designer file to code-behind file.
///
- protected global::System.Web.UI.WebControls.Label lbl_errorLista;
+ protected global::System.Web.UI.WebControls.Label lblErrorLista;
///
/// lnkMarcar control.
diff --git a/WebLab/Protocolos/DerivacionMultiEfectorLote.aspx b/WebLab/Protocolos/DerivacionMultiEfectorLote.aspx
index 853354f..1ee7de9 100644
--- a/WebLab/Protocolos/DerivacionMultiEfectorLote.aspx
+++ b/WebLab/Protocolos/DerivacionMultiEfectorLote.aspx
@@ -49,7 +49,7 @@
|
- |
|
- |
| Efector origen:
-
+
|
| Estado Lote:
- |
+
@@ -125,7 +125,7 @@
|
- |
+
@@ -144,7 +144,7 @@
|
-
-
+
+
|
@@ -100,7 +100,7 @@
|
Transportista:
-
+
<%----%> |
@@ -111,11 +111,11 @@
| Fecha y Hora:
<%----%>
-
+
*Error en Fecha
- *Error en Hora
-
+ *Error en Hora
+
|
@@ -125,7 +125,7 @@
| Observaciones:
-
+
|
@@ -133,9 +133,9 @@
|
diff --git a/WebLab/Protocolos/DerivacionRecibirLote.aspx.cs b/WebLab/Protocolos/DerivacionRecibirLote.aspx.cs
index 7697a72..31b87ab 100644
--- a/WebLab/Protocolos/DerivacionRecibirLote.aspx.cs
+++ b/WebLab/Protocolos/DerivacionRecibirLote.aspx.cs
@@ -52,18 +52,18 @@ private void CargarEncabezado()
lote = (LoteDerivacion)lote.Get(typeof(LoteDerivacion), Convert.ToInt32(Request["idLote"]));
//lbl_FechaRegistro.Text = lote.FechaRegistro.Substring(0, 10);
//fechaEnvio.Text = DateTime.Parse(lote.FechaEnvio.Substring(0, 10)).ToString("yyyy-MM-dd");
- hid_fechaEnvio.Value = lote.FechaEnvio.ToString("yyyy-MM-dd");
- lbl_fechaPermitida.Text = "Fecha envio: " + lote.FechaEnvio;
+ hidFechaEnvio.Value = lote.FechaEnvio.ToString("yyyy-MM-dd");
+ lblFechaPermitida.Text = "Fecha envio: " + lote.FechaEnvio;
Efector origen = new Efector();
origen = (Efector)origen.Get(typeof(Efector), lote.IdEfectorOrigen.IdEfector);
- lb_efector.Text = origen.Nombre;
+ lbEfector.Text = origen.Nombre;
CargarFechaHoraActual();
//LAB-56 Cargo el transportista
List auditorias = AuditoriaLoteDerivacion.AuditoriasPorLote(Convert.ToInt32(Request["idLote"]));
AuditoriaLoteDerivacion transporte = auditorias.FindLast(a => a.Analisis == "Transportista");
- lbl_transportista.Text = transporte.Valor;
+ lblTransportista.Text = transporte.Valor;
}
@@ -71,13 +71,13 @@ private void CargarFechaHoraActual()
{
DateTime miFecha = DateTime.UtcNow.AddHours(-3); //Hora estándar de Argentina (UTC-03:00)
//txt_Fecha.Value = miFecha.Date.ToString("yyyy-MM-dd");
- txt_Hora.Value = miFecha.ToString("HH:mm");
+ txtHora.Value = miFecha.ToString("HH:mm");
txtFecha.Text = miFecha.Date.ToString("yyyy-MM-dd");
//LAB-74 Control de fecha: La fecha de ingreso del lote no puede ser anterior a la fecha de envio del lote
- rv_Fecha.MinimumValue = hid_fechaEnvio.Value;
- rv_Fecha.MaximumValue = txtFecha.Text; //Fecha Date today
- rv_Fecha.Text = "La fecha de recepcion no puede ser menor a la fecha de envio " + hid_fechaEnvio.Value;
+ rvFecha.MinimumValue = hidFechaEnvio.Value;
+ rvFecha.MaximumValue = txtFecha.Text; //Fecha Date today
+ rvFecha.Text = "La fecha de recepcion no puede ser menor a la fecha de envio " + hidFechaEnvio.Value;
}
@@ -142,14 +142,14 @@ private void GenerarAuditorias(LoteDerivacion lote)
// lote.GrabarAuditoriaLoteDerivacion(estado, oUser.IdUsuario, "Fecha Recibido", f.ToString("yyyy-MM-dd")); //Cambio formato de fecha asi tiene el mismo cuando se retira el lote
//}
- if (!string.IsNullOrEmpty(txt_Hora.Value))
- lote.GrabarAuditoriaLoteDerivacion(estado, oUser.IdUsuario, "Hora Recibido", txt_Hora.Value);
+ if (!string.IsNullOrEmpty(txtHora.Value))
+ lote.GrabarAuditoriaLoteDerivacion(estado, oUser.IdUsuario, "Hora Recibido", txtHora.Value);
//if (!string.IsNullOrEmpty(txt_transportista.Text))
// lote.GrabarAuditoriaLoteDerivacion(estado, oUser.IdUsuario, "Transportista", txt_transportista.Text);
- if (!string.IsNullOrEmpty(txt_obs.Value))
- lote.GrabarAuditoriaLoteDerivacion(estado, oUser.IdUsuario, "Observacion", txt_obs.Value);
+ if (!string.IsNullOrEmpty(txtObs.Value))
+ lote.GrabarAuditoriaLoteDerivacion(estado, oUser.IdUsuario, "Observacion", txtObs.Value);
}
#endregion
diff --git a/WebLab/Protocolos/DerivacionRecibirLote.aspx.designer.cs b/WebLab/Protocolos/DerivacionRecibirLote.aspx.designer.cs
index 04492b4..0705dca 100644
--- a/WebLab/Protocolos/DerivacionRecibirLote.aspx.designer.cs
+++ b/WebLab/Protocolos/DerivacionRecibirLote.aspx.designer.cs
@@ -51,40 +51,40 @@ public partial class DerivacionRecibirLote
protected global::System.Web.UI.WebControls.Label txtNumeroLote;
///
- /// lb_efector control.
+ /// lbEfector control.
///
///
/// Auto-generated field.
/// To modify move field declaration from designer file to code-behind file.
///
- protected global::System.Web.UI.WebControls.Label lb_efector;
+ protected global::System.Web.UI.WebControls.Label lbEfector;
///
- /// lbl_fechaPermitida control.
+ /// lblFechaPermitida control.
///
///
/// Auto-generated field.
/// To modify move field declaration from designer file to code-behind file.
///
- protected global::System.Web.UI.WebControls.Label lbl_fechaPermitida;
+ protected global::System.Web.UI.WebControls.Label lblFechaPermitida;
///
- /// hid_fechaEnvio control.
+ /// hidFechaEnvio control.
///
///
/// Auto-generated field.
/// To modify move field declaration from designer file to code-behind file.
///
- protected global::System.Web.UI.WebControls.HiddenField hid_fechaEnvio;
+ protected global::System.Web.UI.WebControls.HiddenField hidFechaEnvio;
///
- /// lbl_transportista control.
+ /// lblTransportista control.
///
///
/// Auto-generated field.
/// To modify move field declaration from designer file to code-behind file.
///
- protected global::System.Web.UI.WebControls.Label lbl_transportista;
+ protected global::System.Web.UI.WebControls.Label lblTransportista;
///
/// txtFecha control.
@@ -96,13 +96,13 @@ public partial class DerivacionRecibirLote
protected global::System.Web.UI.WebControls.TextBox txtFecha;
///
- /// txt_Hora control.
+ /// txtHora control.
///
///
/// Auto-generated field.
/// To modify move field declaration from designer file to code-behind file.
///
- protected global::System.Web.UI.HtmlControls.HtmlInputGenericControl txt_Hora;
+ protected global::System.Web.UI.HtmlControls.HtmlInputGenericControl txtHora;
///
/// rfvFecha control.
@@ -114,48 +114,48 @@ public partial class DerivacionRecibirLote
protected global::System.Web.UI.WebControls.RequiredFieldValidator rfvFecha;
///
- /// rfv_Hora control.
+ /// rfvHora control.
///
///
/// Auto-generated field.
/// To modify move field declaration from designer file to code-behind file.
///
- protected global::System.Web.UI.WebControls.RequiredFieldValidator rfv_Hora;
+ protected global::System.Web.UI.WebControls.RequiredFieldValidator rfvHora;
///
- /// rv_Fecha control.
+ /// rvFecha control.
///
///
/// Auto-generated field.
/// To modify move field declaration from designer file to code-behind file.
///
- protected global::System.Web.UI.WebControls.RangeValidator rv_Fecha;
+ protected global::System.Web.UI.WebControls.RangeValidator rvFecha;
///
- /// txt_obs control.
+ /// txtObs control.
///
///
/// Auto-generated field.
/// To modify move field declaration from designer file to code-behind file.
///
- protected global::System.Web.UI.HtmlControls.HtmlTextArea txt_obs;
+ protected global::System.Web.UI.HtmlControls.HtmlTextArea txtObs;
///
- /// btn_recibirLote control.
+ /// btnRecibirLote control.
///
///
/// Auto-generated field.
/// To modify move field declaration from designer file to code-behind file.
///
- protected global::System.Web.UI.WebControls.Button btn_recibirLote;
+ protected global::System.Web.UI.WebControls.Button btnRecibirLote;
///
- /// btn_volver control.
+ /// btnVolver control.
///
///
/// Auto-generated field.
/// To modify move field declaration from designer file to code-behind file.
///
- protected global::System.Web.UI.WebControls.Button btn_volver;
+ protected global::System.Web.UI.WebControls.Button btnVolver;
}
}
From 591f10144b201ad37ca808cc10a5a9571376d905 Mon Sep 17 00:00:00 2001
From: Vanesa Rimada <80859025+vrimada@users.noreply.github.com>
Date: Thu, 16 Oct 2025 12:28:22 -0300
Subject: [PATCH 15/61] =?UTF-8?q?Requerimiento=202:=20Renombrar=20?=
=?UTF-8?q?=E2=80=9CPaciente/Producto=E2=80=9D?=
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
---
WebLab/Derivaciones/InformeList3.aspx | 2 +-
WebLab/Protocolos/DerivacionMultiEfectorLote.aspx | 2 +-
2 files changed, 2 insertions(+), 2 deletions(-)
diff --git a/WebLab/Derivaciones/InformeList3.aspx b/WebLab/Derivaciones/InformeList3.aspx
index beb8b24..aa8f056 100644
--- a/WebLab/Derivaciones/InformeList3.aspx
+++ b/WebLab/Derivaciones/InformeList3.aspx
@@ -326,7 +326,7 @@
-
+
diff --git a/WebLab/Protocolos/DerivacionMultiEfectorLote.aspx b/WebLab/Protocolos/DerivacionMultiEfectorLote.aspx
index 1ee7de9..072bd9d 100644
--- a/WebLab/Protocolos/DerivacionMultiEfectorLote.aspx
+++ b/WebLab/Protocolos/DerivacionMultiEfectorLote.aspx
@@ -97,7 +97,7 @@
<%----%>
-
+
From e87db01956461d540c118c4e4daceb63d55828ae Mon Sep 17 00:00:00 2001
From: Vanesa Rimada <80859025+vrimada@users.noreply.github.com>
Date: Thu, 16 Oct 2025 12:30:36 -0300
Subject: [PATCH 16/61] =?UTF-8?q?feature:=20Parte=20del=20Requerimiento=20?=
=?UTF-8?q?4:=20Recepci=C3=B3n=20de=20derivaci=C3=B3n?=
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
---
.../DerivacionMultiEfectorLote.aspx.cs | 45 +++-
WebLab/Protocolos/ProtocoloProductoEdit.aspx | 7 +-
.../Protocolos/ProtocoloProductoEdit.aspx.cs | 242 ++++++++++++++----
3 files changed, 225 insertions(+), 69 deletions(-)
diff --git a/WebLab/Protocolos/DerivacionMultiEfectorLote.aspx.cs b/WebLab/Protocolos/DerivacionMultiEfectorLote.aspx.cs
index 6bb6abc..36d6d50 100644
--- a/WebLab/Protocolos/DerivacionMultiEfectorLote.aspx.cs
+++ b/WebLab/Protocolos/DerivacionMultiEfectorLote.aspx.cs
@@ -43,7 +43,10 @@ protected void Page_Load(object sender, EventArgs e)
{
VerificaPermisos("Derivacion");
- ProtocoloList1.CargarGrillaProtocolo(Request["idServicio"].ToString());
+ if (Request["idServicio"].ToString() != "5")
+ ProtocoloList1.CargarGrillaProtocolo(Request["idServicio"].ToString());
+ else
+ pnlTitulo.Visible = false;
if (Request["idLote"] != null)
{
@@ -218,7 +221,10 @@ private DataTable LeerDatosProtocolosDerivados()
string m_strSQL =
@"select convert(varchar(10),P.fecha,103) as fecha, P.numero, P.idPaciente as idPaciente, DE.descripcion as EstadoDerivacion ,
- P.idProtocolo , L.idEfectorDestino , ef.nombre , Pa.nombre + ' ' + Pa.apellido as paciente
+ P.idProtocolo , L.idEfectorDestino , ef.nombre ,
+ case when P.idPaciente > 0 then
+ Pa.nombre + ' ' + Pa.apellido
+ else P.descripcionProducto end as paciente
from LAB_Derivacion D
inner join LAB_DetalleProtocolo as Det on Det.idDetalleProtocolo = D.idDetalleProtocolo
inner join LAB_Protocolo as P on P.idProtocolo = det.idProtocolo
@@ -231,7 +237,7 @@ and L.estado in (2, 4, 5)
and D.estado=1
and D.idLote = " + txtNumeroLote.Text + @"
group by P.fecha, P.numero, P.idPaciente, DE.descripcion, P.idProtocolo ,
- L.idEfectorDestino , ef.nombre , Pa.nombre + ' ' + Pa.apellido ";
+ L.idEfectorDestino , ef.nombre , Pa.nombre + ' ' + Pa.apellido ,P.descripcionProducto";
DataSet Ds = new DataSet();
@@ -308,7 +314,7 @@ protected void lnkIngresoProtocolo_Command(object sender, CommandEventArgs e)
private void GenerarNuevoProtocolo(int idProtocoloOrigen, int idPaciente)
{
- string pivot, m_numero, s_idServicio, idLote;
+ string m_numero, s_idServicio, idLote;
Protocolo p = new Protocolo();
p = (Protocolo)p.Get(typeof(Protocolo), idProtocoloOrigen);
@@ -316,15 +322,28 @@ private void GenerarNuevoProtocolo(int idProtocoloOrigen, int idPaciente)
s_idServicio = p.IdTipoServicio.IdTipoServicio.ToString();
m_numero = p.Numero.ToString();
idLote = txtNumeroLote.Text;
- // DataTable dt = TraerItemsDerivadosProtocolo(); //-> ahora lo voy a cargar desde ProtocoloEdit2
-
- Response.Redirect("ProtocoloEdit2.aspx?idEfectorSolicitante=" + p.IdEfector.IdEfector +
- "&numeroProtocolo=" + m_numero +
- "&idServicio=" + s_idServicio +
- "&idLote=" + idLote +
- "&idPaciente=" + idPaciente +
- //"&Operacion=AltaDerivacionMultiEfectorLote&analisis=" + pivot, false); // No enviar los analisis por request
- "&Operacion=AltaDerivacionMultiEfectorLote", false);
+
+ if(idPaciente > 0)
+ {
+ Response.Redirect("ProtocoloEdit2.aspx?idEfectorSolicitante=" + p.IdEfector.IdEfector +
+ "&numeroProtocolo=" + m_numero +
+ "&idServicio=" + s_idServicio +
+ "&idLote=" + idLote +
+ "&idPaciente=" + idPaciente +
+ "&Operacion=AltaDerivacionMultiEfectorLote", false);
+ }
+ else
+ {
+ //Es Muestra No Pacientes
+ Response.Redirect("ProtocoloProductoEdit.aspx?idEfectorSolicitante=" + p.IdEfector.IdEfector +
+ "&numeroProtocolo=" + m_numero +
+ "&idServicio=" + s_idServicio +
+ "&idLote=" + idLote +
+ "&Desde=AltaDerivacionMultiEfectorLote" +
+ "&Operacion=AltaDerivacionMultiEfectorLote" , false);
+ //idprotocolo
+ }
+
}
#endregion
diff --git a/WebLab/Protocolos/ProtocoloProductoEdit.aspx b/WebLab/Protocolos/ProtocoloProductoEdit.aspx
index 11a0677..1924f7b 100644
--- a/WebLab/Protocolos/ProtocoloProductoEdit.aspx
+++ b/WebLab/Protocolos/ProtocoloProductoEdit.aspx
@@ -719,7 +719,7 @@
| |
@@ -778,7 +778,8 @@ function VerificaLargo (source, arguments)
function InicioPagina()
- {
+ {
+
if (document.getElementById('<%= Page.Master.FindControl("ContentPlaceHolder1").FindControl("TxtDatosCargados").ClientID %>').value == "")
{///protocolo nuevo
CrearFila(true);
@@ -1231,7 +1232,7 @@ function VerificaLargo (source, arguments)
}
-
+
diff --git a/WebLab/Protocolos/ProtocoloProductoEdit.aspx.cs b/WebLab/Protocolos/ProtocoloProductoEdit.aspx.cs
index 35695aa..25823eb 100644
--- a/WebLab/Protocolos/ProtocoloProductoEdit.aspx.cs
+++ b/WebLab/Protocolos/ProtocoloProductoEdit.aspx.cs
@@ -157,8 +157,12 @@ protected void Page_Load(object sender, EventArgs e)
btnCancelar.Text = "Cancelar";
btnCancelar.Width = Unit.Pixel(80);
+ btnCancelar.Visible = true;
+ if (Request["Operacion"].ToString() == "AltaDerivacionMultiEfectorLote")
+ {
+ CargarProtocoloDerivadoLote();
+ }
-
}
}
else
@@ -193,29 +197,31 @@ private void CargarDeterminacionesPeticion(Peticion oRegistro)
}
- private void CargarDeterminacionesDerivacion(string s_analisis, string s_diagnostico)
+ private void CargarDeterminacionesDerivacion(string s_analisis)
{
-
-
string[] tabla = s_analisis.Split('|');
+ string pivot = "";
string sDatos = "";
+
/////Crea nuevamente los detalles.
for (int i = 0; i <= tabla.Length - 1; i++)
{
- if (sDatos == "")
- sDatos = tabla[i].ToString() + "#Si";
- else
- sDatos += ";" + tabla[i].ToString() + "#Si";
-
- }
-
-
-
+ Item oItem = new Item();
+ oItem = (Item)oItem.Get(typeof(Item), int.Parse(tabla[i].ToString()));
+ if (oItem != null)
+ if (pivot != oItem.Nombre)
+ {
+ if (sDatos == "")
+ sDatos = oItem.Codigo + "#Si#False";
+ else
+ sDatos += ";" + oItem.Codigo + "#Si#False";
+ pivot = oItem.Nombre;
+ }
+ }
TxtDatosCargados.Value = sDatos;
-
}
-
+
protected void txtCodigoMuestra_TextChanged(object sender, EventArgs e)
{
@@ -499,6 +505,7 @@ private void CargarListas()
(Request["Operacion"].ToString() == "AltaTurno") ||
(Request["Operacion"].ToString() == "AltaDerivacion") ||
(Request["Operacion"].ToString() == "AltaDerivacionMultiEfector") ||
+ (Request["Operacion"].ToString() == "AltaDerivacionMultiEfectorLote") ||
(Request["Operacion"].ToString() == "AltaPeticion") ||
(Request["Operacion"].ToString() == "AltaFFEE")
)
@@ -711,7 +718,7 @@ private void CargarItems()
FROM Lab_item I with (nolock)
inner join lab_itemEfector IE with (nolock) on I.idItem= IE.idItem and Ie.idefector=" + oC.IdEfector.IdEfector.ToString() + //MultiEfector
@"INNER JOIN Lab_area A (nolock) ON A.idArea= I.idArea
- where A.baja=0 and I.baja=0 and A.idtipoServicio in (1, 3) AND (I.tipo= 'P') order by I.nombre ";
+ where A.baja=0 and I.baja=0 and IE.disponible=1 and A.idtipoServicio in (1, 3) AND (I.tipo= 'P') order by I.nombre ";
//NHibernate.Cfg.Configuration oConf = new NHibernate.Cfg.Configuration();
//String strconn = oConf.GetProperty("hibernate.connection.connection_string");
SqlConnection conn = new SqlConnection(ConfigurationManager.ConnectionStrings["SIL_ReadOnly"].ConnectionString); ///Performance: conexion de solo lectura
@@ -788,7 +795,14 @@ protected void btnGuardar_Click(object sender, EventArgs e)
case "ProtocoloList": Response.Redirect("ProtocoloList.aspx?idServicio=" + Session["idServicio"].ToString() + "&Tipo=ListaProducto"); break;
case "Control": Avanzar(1); break;
}
- }
+ }
+
+ if (Request["Operacion"].ToString() == "AltaDerivacionMultiEfectorLote")
+ {
+ ActualizarEstadoDerivacion(oRegistro);
+ VerificacionEstadoLote(oRegistro);
+ Response.Redirect("DerivacionMultiEfectorLote.aspx?idEfectorSolicitante=" + Request["idEfectorSolicitante"].ToString() + "&idServicio=" + Request["idServicio"].ToString() + "&idLote=" + Request["idLote"]);
+ }
}
else
{
@@ -1391,7 +1405,7 @@ private void GuardarDetalle2(Business.Data.Laboratorio.Protocolo oRegistro)
private void GuardarDetallePractica(DetalleProtocolo oDet)
{
- if (VerificarSiEsDerivable(oDet)) //oDet.IdItem.IdEfector.IdEfector != oDet.IdItem.IdEfectorDerivacion.IdEfector) //Si es un item derivable no busca hijos y guarda directamente.
+ if (oDet.VerificarSiEsDerivable(oUser.IdEfector)) //Cambio para que quede como ProtocoloEdit2
{
oDet.IdSubItem = oDet.IdItem;
oDet.Save();
@@ -1497,31 +1511,31 @@ private void GuardarValorReferencia(DetalleProtocolo oDetalle)
//Fin calculo de valor de refrencia y metodo
}
- private bool VerificarSiEsDerivable(DetalleProtocolo oDet)
- {
- bool ok = false;
- /// buscar idefectorderivacion desde lab_itemefector
- ISession m_session = NHibernateHttpModule.CurrentSession;
- ICriteria critItemEfector = m_session.CreateCriteria(typeof(ItemEfector));
- critItemEfector.Add(Expression.Eq("IdItem", oDet.IdItem));
- critItemEfector.Add(Expression.Eq("IdEfector", oUser.IdEfector));
- IList detalle1 = critItemEfector.List();
- if (detalle1.Count > 0)
- {
- foreach (ItemEfector oitemEfector in detalle1)
- {
- if (oDet.IdEfector.IdEfector != oitemEfector.IdEfectorDerivacion.IdEfector)
- {
- ok = true; break;
- }
- }
- }
- else
- ok = false;
+ //private bool VerificarSiEsDerivable(DetalleProtocolo oDet)
+ //{
+ // bool ok = false;
+ // /// buscar idefectorderivacion desde lab_itemefector
+ // ISession m_session = NHibernateHttpModule.CurrentSession;
+ // ICriteria critItemEfector = m_session.CreateCriteria(typeof(ItemEfector));
+ // critItemEfector.Add(Expression.Eq("IdItem", oDet.IdItem));
+ // critItemEfector.Add(Expression.Eq("IdEfector", oUser.IdEfector));
+ // IList detalle1 = critItemEfector.List();
+ // if (detalle1.Count > 0)
+ // {
+ // foreach (ItemEfector oitemEfector in detalle1)
+ // {
+ // if (oDet.IdEfector.IdEfector != oitemEfector.IdEfectorDerivacion.IdEfector)
+ // {
+ // ok = true; break;
+ // }
+ // }
+ // }
+ // else
+ // ok = false;
- return ok;
+ // return ok;
- }
+ //}
protected void ddlSexo_SelectedIndexChanged(object sender, EventArgs e)
@@ -1582,18 +1596,13 @@ protected void txtCodigo_TextChanged1(object sender, EventArgs e)
protected void btnCancelar_Click(object sender, EventArgs e)
{
- switch (Request["Desde"].ToString())
- {
- //case "Default": Response.Redirect("Default.aspx?idServicio=" + Session["idServicio"].ToString(), false); break;
- case "ProtocoloList": Response.Redirect("ProtocoloList.aspx?idServicio=" + Session["idServicio"].ToString() + "&Tipo=ListaProducto"); break;
- case "Control": Response.Redirect("ProtocoloList.aspx?idServicio=" + Session["idServicio"].ToString() + "&Tipo=Control"); break;
- // case "Urgencia": Response.Redirect("../Urgencia/UrgenciaList.aspx",false); break;
- // case "Derivacion": Response.Redirect("Derivacion.aspx?idServicio="+Session["idServicio"].ToString(), false); break;
- }
-
-
-
- }
+ switch (Request["Desde"].ToString())
+ {
+ case "ProtocoloList": Response.Redirect("ProtocoloList.aspx?idServicio=" + Session["idServicio"].ToString() + "&Tipo=ListaProducto"); break;
+ case "Control": Response.Redirect("ProtocoloList.aspx?idServicio=" + Session["idServicio"].ToString() + "&Tipo=Control"); break;
+ case "AltaDerivacionMultiEfectorLote": Response.Redirect("DerivacionMultiEfectorLote.aspx?idEfectorSolicitante=" + Request["idEfectorSolicitante"].ToString() + "&idServicio=" + Request["idServicio"].ToString() + "&idLote=" + Request["idLote"]); break;
+ }
+ }
@@ -2037,6 +2046,133 @@ protected void btnArchivos_Click(object sender, EventArgs e)
{
Response.Redirect("ProtocoloAdjuntar.aspx?idProtocolo=" + Request["idProtocolo"].ToString() +"&desde=protocolo");
}
+
+ private void CargarProtocoloDerivadoLote()
+ {
+ string numeroProtocolo = Request["numeroProtocolo"].ToString();
+ Business.Data.Laboratorio.Protocolo oRegistro = new Business.Data.Laboratorio.Protocolo();
+ oRegistro = (Business.Data.Laboratorio.Protocolo)oRegistro.Get(typeof(Business.Data.Laboratorio.Protocolo), "Numero", int.Parse(numeroProtocolo));
+ if (oRegistro != null)
+ {
+ lblTitulo.Visible = false;
+ lblServicio1.Visible = true;
+ lblServicio.Visible = true;
+ txtFecha.Value = DateTime.Now.ToShortDateString();
+ txtFechaOrden.Value = oRegistro.FechaOrden.ToShortDateString();
+ txtCodigoMuestra.Text = "";
+ txtDescripcionProducto.Text = oRegistro.DescripcionProducto;
+ ddlConservacion.SelectedValue = oRegistro.IdConservacion.ToString();
+ txtNumeroOrigen.Text = oRegistro.Numero.ToString();
+ ddlEfector.SelectedValue = oRegistro.IdEfector.IdEfector.ToString();
+ ddlSectorServicio.SelectedValue = oRegistro.IdSector.IdSectorServicio.ToString();
+ txtObservacion.Text = oRegistro.Observacion;
+ pnlNavegacion.Visible = false;
+ btnCancelar.Text = "Cancelar";
+ btnCancelar.Width = Unit.Pixel(80);
+ ddlMuestra.SelectedValue = oRegistro.IdMuestra.ToString();
+ Muestra oMuestra = new Muestra();
+ oMuestra = (Muestra)oMuestra.Get(typeof(Muestra), "IdMuestra", oRegistro.IdMuestra, "Baja", false);
+ txtCodigoMuestra.Text = oMuestra.Codigo;
+
+
+ #region CargaDeterminaciones
+ ////// ---------------------->Buscar las derivaciones que no han sido ingresadas
+ //el protocolo me da los protocolos detalles
+ //los protocolos detalles me dan las derivaciones
+ //la derivacion debe estar enviada
+ //la derivacion debe tener el mismo lote que el ingresado (no todos los analisis pueden haber sido enviados con el mismo lote)
+
+ string m_strSQL =
+ //select distinct STRING_AGG(Det.idItem ,' | ') as Item ---> (No esta disponible en SQL 2014)
+ @" SELECT STUFF(( SELECT ' | ' + CAST(Det.idItem AS VARCHAR(20))
+ from LAB_Derivacion D
+ inner join LAB_DetalleProtocolo as Det on Det.idDetalleProtocolo = D.idDetalleProtocolo
+ inner join LAB_Protocolo as P on P.idProtocolo = det.idProtocolo
+ inner join LAB_DerivacionEstado as LE on LE.idEstado = D.estado
+ inner join LAB_LoteDerivacion L on L.idLoteDerivacion = D.idLote
+ where P.baja = 0
+ and D.estado in (1) ---------------------- Buscar las derivaciones que no han sido ingresadas
+ and L.idLoteDerivacion = " + Request["idLote"].ToString() + " and p.numero = " + numeroProtocolo +
+ " FOR XML PATH(''), TYPE ).value('.', 'NVARCHAR(MAX)'), 1, 3, '') AS Item; ";
+
+ DataSet Ds = new DataSet();
+ SqlConnection conn = (SqlConnection)NHibernateHttpModule.CurrentSession.Connection;
+ SqlDataAdapter adapter = new SqlDataAdapter();
+ adapter.SelectCommand = new SqlCommand(m_strSQL, conn);
+ adapter.Fill(Ds);
+
+ string analisis = Convert.ToString(Ds.Tables[0].Rows[0][0]);
+ CargarDeterminacionesDerivacion(analisis);
+ #endregion
+ }
+ }
+
+ private void VerificacionEstadoLote(Protocolo oRegistro)
+ {
+
+ if (Request["idLote"] != null) //Si no tiene Lote, no actualiza estado de Lote
+ {
+ int idLote = Convert.ToInt32(Request["idLote"]);
+ try
+ {
+ if (idLote != 0)
+ {
+ LoteDerivacion lote = new LoteDerivacion();
+ lote = (LoteDerivacion)lote.Get(typeof(LoteDerivacion), idLote);
+
+
+ if (lote.Estado == 4) //Pasa de Recibido a Ingresado
+ {
+ lote.Estado = 5;
+ lote.GrabarAuditoriaLoteDerivacion(lote.descripcionEstadoLote(), oUser.IdUsuario);
+ }
+
+ //Graba el ingreso del protocolo en el lote
+ lote.GrabarAuditoriaLoteDerivacion("Ingresa protocolo", oUser.IdUsuario, "Número Protocolo", oRegistro.Numero.ToString(), Request["numeroProtocolo"]);
+
+ //Si al generar este nuevo protocolo se finalizo la carga del lote, cambiar estado a Completado
+ if (!lote.HayDerivacionesPendientes())
+ {
+ lote.Estado = 6; //Pasa a Completado si no tiene más derivaciones pendientes
+ lote.GrabarAuditoriaLoteDerivacion(lote.descripcionEstadoLote(), oUser.IdUsuario);
+ }
+
+ lote.Save();
+ }
+ }
+ catch (Exception)
+ {
+ }
+ }
+ }
+ private void ActualizarEstadoDerivacion(Protocolo oRegistro)
+ {
+ SqlConnection conn = (SqlConnection)NHibernateHttpModule.CurrentSession.Connection;
+ int idLote = Convert.ToInt32(Request["idLote"]);
+
+ string query =
+ @"update LAB_Derivacion
+ set estado=3---recibido
+ ,idProtocoloDerivacion=" + oRegistro.IdProtocolo.ToString() + @"
+ from LAB_Derivacion D
+ inner join LAB_DetalleProtocolo Det on Det.idDetalleProtocolo= d.idDetalleProtocolo
+ inner join LAB_Protocolo P on P.idProtocolo= Det.idProtocolo
+ where P.numero=" + Request["numeroProtocolo"].ToString() + @" and idLote=" + idLote;
+
+ SqlCommand cmd = new SqlCommand(query, conn);
+
+ int idRealizado = Convert.ToInt32(cmd.ExecuteScalar());
+
+ //Se indica en el protocolo de Origen que fue recibido en el destino
+ Business.Data.Laboratorio.Protocolo oPOrigen = new Business.Data.Laboratorio.Protocolo();
+ oPOrigen = (Business.Data.Laboratorio.Protocolo)oPOrigen.Get(typeof(Business.Data.Laboratorio.Protocolo), "Numero", int.Parse(Request["numeroProtocolo"].ToString()));
+ if (oPOrigen != null)
+ {
+ oPOrigen.GrabarAuditoriaDetalleProtocolo("Recepcion Derivacion", oUser.IdUsuario, "Lote " + idLote, "Protocolo " + oRegistro.Numero.ToString());
+ }
+
+ }
+
}
}
From 60ae327e4f00ae0864a2d122e6fe31e33bce91a6 Mon Sep 17 00:00:00 2001
From: Vanesa Rimada <80859025+vrimada@users.noreply.github.com>
Date: Thu, 16 Oct 2025 15:59:12 -0300
Subject: [PATCH 17/61] feature: Requerimiento 1: Cambiar a nomenclatura
CamelCase
---
WebLab/Derivaciones/InformeList3.aspx.cs | 4 ++--
1 file changed, 2 insertions(+), 2 deletions(-)
diff --git a/WebLab/Derivaciones/InformeList3.aspx.cs b/WebLab/Derivaciones/InformeList3.aspx.cs
index 9e3c43a..b851e6d 100644
--- a/WebLab/Derivaciones/InformeList3.aspx.cs
+++ b/WebLab/Derivaciones/InformeList3.aspx.cs
@@ -73,7 +73,7 @@ protected void Page_Load(object sender, EventArgs e)
pnlNroLote.Visible = true;
HyperLink1.NavigateUrl = "~/Derivaciones/GestionarLote.aspx";
ddlEstado.SelectedIndex = 2;
- ddl_motivoCancelacion.Enabled = false;
+ ddlMotivoCancelacion.Enabled = false;
}
}
@@ -424,7 +424,7 @@ private void ActualizarDetalleProtocolo(GridViewRow row, int idLote = 0, int de
oDeriva.IdMotivoCancelacion = MotivoCancelacion;
//La observacion se cambia solo si es Alta, si se desasocia el lote, o si al modificar agrego una observacion
- if (Request["Tipo"] == "Alta" || desasociaLote == 1 ||(Request["Tipo"] == "Modifica" && !string.IsNullOrEmpty(txt_observacion.Text)))
+ if (Request["Tipo"] == "Alta" || desasociaLote == 1 ||(Request["Tipo"] == "Modifica" && !string.IsNullOrEmpty(txtObservacion.Text)))
{
oDeriva.Observacion = observacion;
}
From 2fecdb14202cc95d28adb434dae4af0e862fffdf Mon Sep 17 00:00:00 2001
From: Vanesa Rimada <80859025+vrimada@users.noreply.github.com>
Date: Thu, 16 Oct 2025 16:00:21 -0300
Subject: [PATCH 18/61] =?UTF-8?q?feature;=20en=20proceso=20Requerimiento?=
=?UTF-8?q?=204:=20Recepci=C3=B3n=20de=20derivaci=C3=B3n?=
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
---
WebLab/Protocolos/ProtocoloMensaje.aspx | 102 ++++++++++--------
WebLab/Protocolos/ProtocoloMensaje.aspx.cs | 31 +++---
.../ProtocoloMensaje.aspx.designer.cs | 33 ++++--
.../Protocolos/ProtocoloProductoEdit.aspx.cs | 8 +-
4 files changed, 101 insertions(+), 73 deletions(-)
diff --git a/WebLab/Protocolos/ProtocoloMensaje.aspx b/WebLab/Protocolos/ProtocoloMensaje.aspx
index 4f8d1e7..99508a1 100644
--- a/WebLab/Protocolos/ProtocoloMensaje.aspx
+++ b/WebLab/Protocolos/ProtocoloMensaje.aspx
@@ -1,52 +1,64 @@
<%@ Page Language="C#" AutoEventWireup="true" CodeBehind="ProtocoloMensaje.aspx.cs" Inherits="WebLab.Protocolos.ProtocoloMensaje" MasterPageFile="~/Site1.Master" %>
-
-
-
-
-
-
-
-
-
-
-
+
+
+
+
+
+
+
+
+
+
+
diff --git a/WebLab/Protocolos/ProtocoloMensaje.aspx.cs b/WebLab/Protocolos/ProtocoloMensaje.aspx.cs
index bdbdb59..c8d3623 100644
--- a/WebLab/Protocolos/ProtocoloMensaje.aspx.cs
+++ b/WebLab/Protocolos/ProtocoloMensaje.aspx.cs
@@ -20,9 +20,6 @@ namespace WebLab.Protocolos
{
public partial class ProtocoloMensaje : System.Web.UI.Page
{
-
-
-
protected void Page_Load(object sender, EventArgs e)
{
if (!Page.IsPostBack)
@@ -44,25 +41,35 @@ protected void Page_Load(object sender, EventArgs e)
Business.Data.Laboratorio.Muestra oM = new Business.Data.Laboratorio.Muestra();
oM = (Business.Data.Laboratorio.Muestra)oM.Get(typeof(Business.Data.Laboratorio.Muestra), oP.IdMuestra);
lblDescripcion.Text = oM.Nombre.ToUpper() + " " + oP.DescripcionProducto;
+
+ if (Request["idLote"] != null)
+ {
+ lnkRegresar.Visible = true;
+ lnkNuevo.Visible = false;
+ }
}
}
-
- }
-
-
-
-
- protected void lnkRegresar_Click(object sender, EventArgs e)
+ }
+ protected void lnkNuevo_Click(object sender, EventArgs e)
{
Business.Data.Laboratorio.Protocolo oP = new Business.Data.Laboratorio.Protocolo();
oP = (Business.Data.Laboratorio.Protocolo)oP.Get(typeof(Business.Data.Laboratorio.Protocolo), int.Parse(Request["id"].ToString()));
- if ((oP.IdTipoServicio.IdTipoServicio==3) || (oP.IdTipoServicio.IdTipoServicio == 5))
- Response.Redirect("ProtocoloProductoEdit.aspx?Operacion=Alta", false);
+ if ((oP.IdTipoServicio.IdTipoServicio == 3) || (oP.IdTipoServicio.IdTipoServicio == 5))
+ Response.Redirect("ProtocoloProductoEdit.aspx?Operacion=Alta", false);
if (oP.IdTipoServicio.IdTipoServicio == 6)
Response.Redirect("Default2.aspx?idServicio=6&idUrgencia=0&idCaso=0", false);
+ }
+ protected void lnkRegresar_Click(object sender, EventArgs e)
+ {
+ if (Request["idLote"] != null) //Regreso a la recepcion de lotes de derivaciones
+ {
+ Response.Redirect("DerivacionMultiEfectorLote.aspx?idServicio=1&idEfectorSolicitante=" + Request["idEfectorSolicitante"].ToString() + "&idLote=" + Request["idLote"]);
+ }
}
+
+
}
}
diff --git a/WebLab/Protocolos/ProtocoloMensaje.aspx.designer.cs b/WebLab/Protocolos/ProtocoloMensaje.aspx.designer.cs
index c743d7b..528e52e 100644
--- a/WebLab/Protocolos/ProtocoloMensaje.aspx.designer.cs
+++ b/WebLab/Protocolos/ProtocoloMensaje.aspx.designer.cs
@@ -7,11 +7,13 @@
//
//------------------------------------------------------------------------------
-namespace WebLab.Protocolos {
-
-
- public partial class ProtocoloMensaje {
-
+namespace WebLab.Protocolos
+{
+
+
+ public partial class ProtocoloMensaje
+ {
+
///
/// error control.
///
@@ -20,7 +22,7 @@ public partial class ProtocoloMensaje {
/// To modify move field declaration from designer file to code-behind file.
///
protected global::System.Web.UI.HtmlControls.HtmlGenericControl error;
-
+
///
/// lblError control.
///
@@ -29,7 +31,7 @@ public partial class ProtocoloMensaje {
/// To modify move field declaration from designer file to code-behind file.
///
protected global::System.Web.UI.WebControls.Label lblError;
-
+
///
/// altaMuestra control.
///
@@ -38,7 +40,7 @@ public partial class ProtocoloMensaje {
/// To modify move field declaration from designer file to code-behind file.
///
protected global::System.Web.UI.HtmlControls.HtmlGenericControl altaMuestra;
-
+
///
/// pnlTitulo control.
///
@@ -47,7 +49,7 @@ public partial class ProtocoloMensaje {
/// To modify move field declaration from designer file to code-behind file.
///
protected global::System.Web.UI.HtmlControls.HtmlGenericControl pnlTitulo;
-
+
///
/// lblTitulo control.
///
@@ -56,7 +58,7 @@ public partial class ProtocoloMensaje {
/// To modify move field declaration from designer file to code-behind file.
///
protected global::System.Web.UI.WebControls.Label lblTitulo;
-
+
///
/// lblDescripcion control.
///
@@ -65,7 +67,16 @@ public partial class ProtocoloMensaje {
/// To modify move field declaration from designer file to code-behind file.
///
protected global::System.Web.UI.WebControls.Label lblDescripcion;
-
+
+ ///
+ /// lnkRegresar control.
+ ///
+ ///
+ /// Auto-generated field.
+ /// To modify move field declaration from designer file to code-behind file.
+ ///
+ protected global::System.Web.UI.WebControls.LinkButton lnkRegresar;
+
///
/// lnkNuevo control.
///
diff --git a/WebLab/Protocolos/ProtocoloProductoEdit.aspx.cs b/WebLab/Protocolos/ProtocoloProductoEdit.aspx.cs
index 25823eb..d3417c6 100644
--- a/WebLab/Protocolos/ProtocoloProductoEdit.aspx.cs
+++ b/WebLab/Protocolos/ProtocoloProductoEdit.aspx.cs
@@ -801,7 +801,7 @@ protected void btnGuardar_Click(object sender, EventArgs e)
{
ActualizarEstadoDerivacion(oRegistro);
VerificacionEstadoLote(oRegistro);
- Response.Redirect("DerivacionMultiEfectorLote.aspx?idEfectorSolicitante=" + Request["idEfectorSolicitante"].ToString() + "&idServicio=" + Request["idServicio"].ToString() + "&idLote=" + Request["idLote"]);
+ Response.Redirect("ProtocoloMensaje.aspx?id=" + oRegistro.IdProtocolo + "&idLote=" + Request["idLote"] + "&idEfectorSolicitante=" + Request["idEfectorSolicitante"], false);
}
}
else
@@ -1600,7 +1600,7 @@ protected void btnCancelar_Click(object sender, EventArgs e)
{
case "ProtocoloList": Response.Redirect("ProtocoloList.aspx?idServicio=" + Session["idServicio"].ToString() + "&Tipo=ListaProducto"); break;
case "Control": Response.Redirect("ProtocoloList.aspx?idServicio=" + Session["idServicio"].ToString() + "&Tipo=Control"); break;
- case "AltaDerivacionMultiEfectorLote": Response.Redirect("DerivacionMultiEfectorLote.aspx?idEfectorSolicitante=" + Request["idEfectorSolicitante"].ToString() + "&idServicio=" + Request["idServicio"].ToString() + "&idLote=" + Request["idLote"]); break;
+ case "AltaDerivacionMultiEfectorLote": Response.Redirect("DerivacionMultiEfectorLote.aspx?idEfectorSolicitante=" + Request["idEfectorSolicitante"].ToString() + "&idServicio=1&idLote=" + Request["idLote"]); break;
}
}
@@ -2070,9 +2070,7 @@ private void CargarProtocoloDerivadoLote()
btnCancelar.Text = "Cancelar";
btnCancelar.Width = Unit.Pixel(80);
ddlMuestra.SelectedValue = oRegistro.IdMuestra.ToString();
- Muestra oMuestra = new Muestra();
- oMuestra = (Muestra)oMuestra.Get(typeof(Muestra), "IdMuestra", oRegistro.IdMuestra, "Baja", false);
- txtCodigoMuestra.Text = oMuestra.Codigo;
+
#region CargaDeterminaciones
From 669e6b3ffeafd7c1f9f3034e64e368256aa6155f Mon Sep 17 00:00:00 2001
From: Vanesa Rimada <80859025+vrimada@users.noreply.github.com>
Date: Fri, 17 Oct 2025 12:28:59 -0300
Subject: [PATCH 19/61] feature: Requerimiento 3: Adaptar PDF
---
Business/Data/Laboratorio/LoteDerivacion.cs | 17 +++----
WebLab/App_Data/dsInformes.Designer.cs | 47 +++++++++++++++++++-
WebLab/App_Data/dsInformes.xsd | 9 ++--
WebLab/App_Data/dsInformes.xss | 22 ++++-----
WebLab/Informes/DerivacionLote.rpt | Bin 32768 -> 32768 bytes
5 files changed, 70 insertions(+), 25 deletions(-)
diff --git a/Business/Data/Laboratorio/LoteDerivacion.cs b/Business/Data/Laboratorio/LoteDerivacion.cs
index 2fa31ba..69c4d2c 100644
--- a/Business/Data/Laboratorio/LoteDerivacion.cs
+++ b/Business/Data/Laboratorio/LoteDerivacion.cs
@@ -96,14 +96,15 @@ public string Observacion {
public static string derivacionPDF(int idLote)
{
- string m_strSQL = " SELECT numero, convert(varchar(10), fecha,103) as fecha, dni, determinacion, " +
- " apellido + ' '+ nombre as paciente, efectorderivacion, fechaNacimiento as edad, unidadEdad, sexo, " +
- " solicitante as especialista, idLote ," +
- " CASE WHEN(len(idLote) < 9) " +
- " THEN '00000' + CONVERT(VARCHAR, idLote) " +
- " ELSE CONVERT(VARCHAR, idLote ) " +
- " END as idLoteString " +
- " FROM vta_LAB_Derivaciones WHERE idLote=" + idLote + " ORDER BY efectorDerivacion,numero ";
+ string m_strSQL = @"SELECT numero, convert(varchar(10), fecha,103) as fecha, dni, determinacion,
+ apellido + ' '+ nombre as paciente, efectorderivacion, fechaNacimiento as edad, unidadEdad, sexo,
+ solicitante as especialista, idLote ,
+ CASE WHEN(len(idLote) < 9)
+ THEN '00000' + CONVERT(VARCHAR, idLote)
+ ELSE CONVERT(VARCHAR, idLote )
+ END as idLoteString ,
+ idTipoServicio
+ FROM vta_LAB_Derivaciones WHERE idLote= "+ idLote + " ORDER BY efectorDerivacion,numero ";
return m_strSQL;
}
diff --git a/WebLab/App_Data/dsInformes.Designer.cs b/WebLab/App_Data/dsInformes.Designer.cs
index e54301c..726b187 100644
--- a/WebLab/App_Data/dsInformes.Designer.cs
+++ b/WebLab/App_Data/dsInformes.Designer.cs
@@ -1535,6 +1535,8 @@ public partial class protocoloDataTable : global::System.Data.TypedTableBase
diff --git a/WebLab/App_Data/dsInformes.xsd b/WebLab/App_Data/dsInformes.xsd
index 0e927e8..8794fa2 100644
--- a/WebLab/App_Data/dsInformes.xsd
+++ b/WebLab/App_Data/dsInformes.xsd
@@ -72,7 +72,8 @@
-
+
+
@@ -225,7 +226,7 @@
-
+
@@ -239,7 +240,7 @@
-
+
@@ -422,7 +423,7 @@
-
+
diff --git a/WebLab/App_Data/dsInformes.xss b/WebLab/App_Data/dsInformes.xss
index 4ed68e1..e353c27 100644
--- a/WebLab/App_Data/dsInformes.xss
+++ b/WebLab/App_Data/dsInformes.xss
@@ -6,17 +6,17 @@
-->
-
-
-
-
-
-
-
-
-
-
-
+
+
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/WebLab/Informes/DerivacionLote.rpt b/WebLab/Informes/DerivacionLote.rpt
index 3983b5258fd961c0a0eead3755e10929729d014e..db6795f8bb49d4204570a32d54309f66092d59aa 100644
GIT binary patch
delta 9135
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 | |