From ddb56952e56558ebb0787d7f6a31fd7cdcd12d19 Mon Sep 17 00:00:00 2001 From: rrene Date: Mon, 26 May 2025 19:14:11 -0700 Subject: [PATCH] =?UTF-8?q?--=20opci=C3=B3n=20para=20seleccionar=20lote/ca?= =?UTF-8?q?ducidad=20en=20combo?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- Inventarios/TraspasoAlmacen.aspx | 23 ++++---- Inventarios/TraspasoAlmacen.aspx.vb | 89 ++++++++++++++++++----------- 2 files changed, 68 insertions(+), 44 deletions(-) diff --git a/Inventarios/TraspasoAlmacen.aspx b/Inventarios/TraspasoAlmacen.aspx index cb944993a..85ef4afeb 100644 --- a/Inventarios/TraspasoAlmacen.aspx +++ b/Inventarios/TraspasoAlmacen.aspx @@ -10,7 +10,7 @@ .psagregar > div.comboxes { display: inline-block; - width: 450px; + width: 550px; } .psagregar > div.codigo input { @@ -394,12 +394,11 @@ Producto Observaciones - Sección Almacen + Sección Almacen Serie Lote Fecha Caducidad - - Comandos + Comandos @@ -421,8 +420,7 @@
-
- +
@@ -440,6 +438,8 @@ + + @@ -450,8 +450,7 @@ - - +
@@ -463,9 +462,9 @@
- - - + + + @@ -500,7 +499,7 @@ - + diff --git a/Inventarios/TraspasoAlmacen.aspx.vb b/Inventarios/TraspasoAlmacen.aspx.vb index 112423916..224a080b1 100644 --- a/Inventarios/TraspasoAlmacen.aspx.vb +++ b/Inventarios/TraspasoAlmacen.aspx.vb @@ -158,7 +158,6 @@ Partial Class Inventarios_TraspasoAlmacen ViewState("FolioBusqueda") = value End Set End Property - Private Property ArchivoBitacora As String Get Return CType(ViewState("ArchivoBitacora"), String) @@ -167,6 +166,17 @@ Partial Class Inventarios_TraspasoAlmacen ViewState("ArchivoBitacora") = value End Set End Property + Private Property SeleccionLoteCaducidadCombo As Boolean + Get + If ViewState("SeleccionLoteCaducidadCombo") Is Nothing Then + ViewState("SeleccionLoteCaducidadCombo") = False + End If + Return CType(ViewState("SeleccionLoteCaducidadCombo"), Boolean) + End Get + Set(value As Boolean) + ViewState("SeleccionLoteCaducidadCombo") = value + End Set + End Property #End Region Protected Sub Page_Load(sender As Object, e As EventArgs) Handles Me.Load @@ -212,6 +222,8 @@ Partial Class Inventarios_TraspasoAlmacen DivTransitorio2.Visible = True End If + If UsuarioActual.Empresa.Funcionalidad(578) = "1" Then SeleccionLoteCaducidadCombo = True + 'If UsuarioActual.CveEmpresa.Contiene(141, 152, 158, 159, 160, 161, 162, 163) Then ' ChkEmitirTimbrado.Visible = False ' divEmitir.Visible = False @@ -605,7 +617,7 @@ Partial Class Inventarios_TraspasoAlmacen End If Dim DrPS As DataRow = Nothing - DrPS = GlobalDTPS(UsuarioActual.CveEmpresa, CvePS:=CveProducto).FiltroPrimero("") ' Estado = -1 + DrPS = GlobalDTPSSimplificado(UsuarioActual.CveEmpresa, CvePS:=CveProducto).FiltroPrimero("") ' Estado = -1 If DrPS IsNot Nothing Then @@ -618,9 +630,16 @@ Partial Class Inventarios_TraspasoAlmacen End If If DrPS("AplicaCaducidad").ToString = "True" Then - If Not ChkSugiereFechaCaducidad.Checked AndAlso (TxtnFechaCaducidad.Text = "" OrElse TxtnLote.Text = "") Then - Alert("Falta Especificar lote/Fecha del producto", TipoMensaje.MsgAdvertencia) - Exit Sub + If SeleccionLoteCaducidadCombo Then + If DdlLoteFechaCaducidad.SelectedValue = "|" Then + Alert("Falta Especificar lote/Fecha del producto", TipoMensaje.MsgAdvertencia) + Exit Sub + End If + Else + If Not ChkSugiereFechaCaducidad.Checked AndAlso (TxtnFechaCaducidad.Text = "" OrElse TxtnLote.Text = "") Then + Alert("Falta Especificar lote/Fecha del producto", TipoMensaje.MsgAdvertencia) + Exit Sub + End If End If End If @@ -647,14 +666,9 @@ Partial Class Inventarios_TraspasoAlmacen If CantidadRestante <= 0 Then Exit For Next End If - End If - ObjInventarios.Dispose() - Else - - 'codigo temporal Dim tLote As String Dim tCaducidad As Date @@ -662,17 +676,19 @@ Partial Class Inventarios_TraspasoAlmacen tCaducidad = If(TxtnFechaCaducidad.Visible, TxtnFechaCaducidad.Text.ToDate, MinFecha) Dim tSerie As String = If(TxtnSerie.Visible, TxtnSerie.Text, "-1").Trim + If SeleccionLoteCaducidadCombo Then + Dim ArrayCaducidad As String() = DdlLoteFechaCaducidad.SelectedValue.Split("|"c) + tLote = ArrayCaducidad(0) + tCaducidad = ArrayCaducidad(1).ToDate + End If Dim Valido As Boolean = ValidaExistencia(Cantidad, CveProducto, DdlUnidad.SelectedValue.ToEntero, DdlSeccionAlmacen.SelectedValue.ToEntero, tSerie, tLote, tCaducidad) If Valido Then AgregarPS(Cantidad, CveProducto, DdlUnidad.SelectedValue.ToEntero, TxtnObservaciones.Text, CveSeccionAlmacen:=DdlSeccionAlmacen.SelectedValue.ToEntero, SeccionAlmacen:=DdlSeccionAlmacen.SelectedItem.Text, Serie:=If(TxtnSerie.Visible, TxtnSerie.Text, ""), Lote:=If(tLote = "-1", "", tLote), FechaCaducidad:=tCaducidad, CveSeccionAlmacenDestino:=DdlSeccionAlmacenDestino.SelectedValue.ToEntero, Limpia:=FuncionalidadSinSerie) End If - End If - End If - End If End Sub Private Function ValidaExistencia(Cantidad As Decimal, CvePS As Integer, CveUnidadMedida As Integer, CveSeccionAlmacen As Integer, Serie As String, Lote As String, FechaCaducidad As Date) As Boolean @@ -737,7 +753,6 @@ Partial Class Inventarios_TraspasoAlmacen End If Dim CveClasificacion As Integer - Dim DrPS As DataRow = GlobalDTPS(UsuarioActual.CveEmpresa, CvePS:=CvePS).FiltroPrimero("") If ChkEmitirTimbrado.Checked AndAlso ChkEmitirCartaPorte.Checked Then @@ -1369,36 +1384,46 @@ Partial Class Inventarios_TraspasoAlmacen TxtnFechaCaducidad.Visible = False If DdlProducto2.SelectedValue.ToEntero > 0 Then - Dim drP As DataRow = GlobalDTPS(UsuarioActual.CveEmpresa, CvePS:=DdlProducto2.SelectedValue.ToEntero).FiltroPrimero("", "PS") + Dim drP As DataRow = GlobalDTPSSimplificado(UsuarioActual.CveEmpresa, CvePS:=DdlProducto2.SelectedValue.ToEntero).FiltroPrimero("", "PS") If drP IsNot Nothing Then ThSeccionAlmacen.Visible = CBool(drP("AplicaSeccion")) TdSeccionAlmacen.Visible = CBool(drP("AplicaSeccion")) DdlSeccionAlmacen.Visible = CBool(drP("AplicaSeccion")) - 'GvDatos.Columns(5).Visible = CBool(drP("AplicaSeccion")) Dim AplicaSerie As Boolean = CBool(drP("AplicaSerie")) - ThSerie.Visible = AplicaSerie TdSerie.Visible = AplicaSerie TxtnSerie.Visible = AplicaSerie - 'GvDatos.Columns(6).Visible = CBool(drP("AplicaSerie")) - - TxtnLote.Visible = CBool(drP("AplicaLote")) - ThLote.Visible = CBool(drP("AplicaLote")) - TdLote.Visible = CBool(drP("AplicaLote")) - 'GvDatos.Columns(7).Visible = CBool(drP("AplicaLote")) - - - TxtnFechaCaducidad.Visible = CBool(drP("AplicaCaducidad")) - ThFechaCaducidad.Visible = CBool(drP("AplicaCaducidad")) - If Not String.IsNullOrWhiteSpace(UsuarioActual.Empresa.Funcionalidad(147)) Then ThFechaCaducidad.InnerText = UsuarioActual.Empresa.Funcionalidad(147) - 'ThFechaCaducidad.InnerText = If(UsuarioActual.Empresa.Funcionalidad(147) = "Fecha Elaboración", "Fecha Elaboración", "Fecha Caducidad") - TdFechaCaducidad.Visible = CBool(drP("AplicaCaducidad")) - 'GvDatos.Columns(8).Visible = CBool(drP("AplicaCaducidad")) + If SeleccionLoteCaducidadCombo AndAlso (CBool(drP("AplicaLote")) OrElse CBool(drP("AplicaCaducidad"))) Then + TxtnLote.Visible = False + ThLote.Visible = CBool(drP("AplicaLote")) + TdLote.Visible = CBool(drP("AplicaLote")) + TxtnFechaCaducidad.Visible = False + ThFechaCaducidad.Visible = CBool(drP("AplicaCaducidad")) + TdFechaCaducidad.Visible = CBool(drP("AplicaCaducidad")) + tbFechaCaducidad.Visible = False + DdlLoteFechaCaducidad.Visible = True + Dim ObjInventarios As New ClsInventarios + If ObjInventarios.GetExistenciasCaducidad(DdlProducto2.SelectedValue.ToEntero, -1, UsuarioActual.CveUsuario, UsuarioActual.CveEmpresa, DdlAlmacenOrigen.SelectedValue) Then + For Each dr As DataRow In ObjInventarios.DtResultados.FiltraParametros("", DistinctColumns:={"Lote", "FechaCaducidad"}).Rows + Dim Cad As String = "" + If dr("FechaCaducidad").ToString <> "" Then Cad = $"- Cad: {dr("FechaCaducidad").ToString.ToDate.ToString("dd/MM/yyyy")}" + DdlLoteFechaCaducidad.Items.Add(New ListItem($"Lote: {dr("Lote").ToString} {Cad}", $"{dr("Lote").ToString}|{dr("FechaCaducidad").ToString.ToDate.ToString("dd/MM/yyyy")}")) + Next + End If + ObjInventarios.Dispose() + Else + TxtnLote.Visible = CBool(drP("AplicaLote")) + ThLote.Visible = CBool(drP("AplicaLote")) + TdLote.Visible = CBool(drP("AplicaLote")) + TxtnFechaCaducidad.Visible = CBool(drP("AplicaCaducidad")) + ThFechaCaducidad.Visible = CBool(drP("AplicaCaducidad")) + If Not String.IsNullOrWhiteSpace(UsuarioActual.Empresa.Funcionalidad(147)) Then ThFechaCaducidad.InnerText = UsuarioActual.Empresa.Funcionalidad(147) + TdFechaCaducidad.Visible = CBool(drP("AplicaCaducidad")) + End If End If - End If DdlUnidad.Items.Clear()