diff --git a/Inventarios/EntregaAlmacen.aspx b/Inventarios/EntregaAlmacen.aspx
index 7b0398fbb..2bbd9cffe 100644
--- a/Inventarios/EntregaAlmacen.aspx
+++ b/Inventarios/EntregaAlmacen.aspx
@@ -516,7 +516,7 @@
-
+
diff --git a/Inventarios/EntregaAlmacen.aspx.vb b/Inventarios/EntregaAlmacen.aspx.vb
index e21187015..499598d68 100644
--- a/Inventarios/EntregaAlmacen.aspx.vb
+++ b/Inventarios/EntregaAlmacen.aspx.vb
@@ -851,6 +851,7 @@ Partial Class Inventarios_EntregaAlmacen
If AplicaCaducidad Then GvDatos.Columns(9).Visible = True
GvDatos.Columns(9).HeaderText = If(UsuarioActual.Empresa.Funcionalidad(147) = "Fecha Elaboración", "Fecha Elaboración", "Fecha Caducidad")
+ SugerirFechaLote()
End If
GvDatos.DataSource = DtDatos
@@ -3819,5 +3820,85 @@ Partial Class Inventarios_EntregaAlmacen
End Sub
#End Region
+#Region "sugerir caducidad"
+ Private Sub SugerirFechaLote()
+ Dim ObjInventarios As New ClsInventarios()
+ Dim FechasExcluidas As New List(Of String)
+ FechasExcluidas.Add(MinFecha.ToDate.ToString)
+ Dim MaxRows As Integer = DtDatos.Rows.Count - 1
+ For contador As Integer = 0 To MaxRows
+ Dim DtRow As DataRow = DtDatos.Rows(contador)
+ Dim AplicaCaducidad As Boolean = DtRow.Item("AplicaCaducidad").ToString = "True"
+ Dim AplicaLote As Boolean = DtRow.Item("AplicaLote").ToString = "True"
+ Dim Cantidad As Integer = DtRow.Item("CantidadC").ToString.ToEntero
+ Dim FechasExcluidasFiltro As String = String.Format("FechaCaducidad NOT IN('{0}')", String.Join("','", FechasExcluidas))
+ If AplicaCaducidad Or AplicaLote Then
+ Dim CvePS As Integer = DtRow.Item("CvePS").ToString.ToEntero
+ If ObjInventarios.GetExistenciasCaducidad(CvePS, -1, UsuarioActual.CveUsuario, UsuarioActual.CveEmpresa) Then
+ If ObjInventarios.DtResultados.Rows.Count > 0 Then
+ Dim MinimumRow As DataRow = ObjInventarios.DtResultados.FiltroPrimero(FechasExcluidasFiltro, "FechaCaducidad")
+ DtRow.Item("FechaCaducidad") = MinimumRow.Item("FechaCaducidad").ToString
+ DtRow.Item("Lote") = MinimumRow.Item("Lote").ToString
+ Dim CantidadDisponible As Integer = MinimumRow.Item("Cantidad").ToString.ToEntero
+ DtRow.Item("CantidadF") = CantidadDisponible
+ DtRow.Item("CantidadS") = CantidadDisponible
+
+ If Cantidad > CantidadDisponible Then
+ Dim RowFaltante As DataRow = DtDatos.NewRow()
+ Dim CantidadFaltante As Integer = (Cantidad - CantidadDisponible)
+ RowFaltante.Item("CantidadC") = CantidadFaltante
+ RowFaltante.Item("CantidadF") = CantidadFaltante
+ RowFaltante.Item("CantidadS") = CantidadFaltante
+ DtRow.Item("CantidadC") = CantidadDisponible
+ For Each Column As DataColumn In DtDatos.Columns
+ If Not Column.ColumnName.Contiene("CantidadC", "CantidadF", "CantidadS") Then
+ RowFaltante.Item(Column.ColumnName) = DtRow.Item(Column.ColumnName)
+ End If
+ Next
+ FechasExcluidas.Add(MinimumRow.Item("FechaCaducidad").ToString)
+ DtDatos.Rows.Add(RowFaltante)
+ MaxRows += 1
+ Else
+ DtRow.Item("CantidadF") = Cantidad
+ End If
+ End If
+ End If
+ End If
+ Next
+
+ 'For Each DtRow As DataRow In DtDatos.Rows
+ ' Dim AplicaCaducidad As Boolean = DtRow.Item("AplicaCaducidad").ToString = "True"
+ ' Dim AplicaLote As Boolean = DtRow.Item("AplicaLote").ToString = "True"
+ ' Dim Cantidad As Integer = DtRow.Item("CantidadC").ToString.ToEntero
+ ' Dim FechasExcluidasFiltro As String = String.Format("FechaCaducidad NOT IN('{0}')", String.Join("','", FechasExcluidas))
+ ' If AplicaCaducidad Or AplicaLote Then
+ ' Dim CvePS As Integer = DtRow.Item("CvePS").ToString.ToEntero
+ ' If ObjInventarios.GetExistenciasCaducidad(CvePS, -1, UsuarioActual.CveUsuario, UsuarioActual.CveEmpresa) Then
+ ' Dim MinimumRow As DataRow = ObjInventarios.DtResultados.FiltroPrimero(FechasExcluidasFiltro, "FechaCaducidad")
+ ' DtRow.Item("FechaCaducidad") = MinimumRow.Item("FechaCaducidad").ToString
+ ' DtRow.Item("Lote") = MinimumRow.Item("Lote").ToString
+ ' Dim CantidadDisponible As Integer = MinimumRow.Item("Cantidad").ToString.ToEntero
+ ' DtRow.Item("CantidadF") = CantidadDisponible
+
+ ' If Cantidad > CantidadDisponible Then
+ ' Dim RowFaltante As DataRow = DtDatos.NewRow()
+ ' RowFaltante.Item("CantidadC") = (Cantidad - CantidadDisponible)
+ ' RowFaltante.Item("CantidadF") = (Cantidad - CantidadDisponible)
+ ' RowFaltante.Item("CantidadS") = (Cantidad - CantidadDisponible)
+ ' For Each Column As DataColumn In DtDatos.Columns
+ ' If Not Column.ColumnName.Contiene("CantidadC", "CantidadF", "CantidadS") Then
+ ' RowFaltante.Item(Column.ColumnName) = DtRow.Item(Column.ColumnName)
+ ' End If
+ ' Next
+
+ ' DtDatos.Rows.Add(RowFaltante)
+ ' End If
+ ' End If
+ ' End If
+ 'Next
+ ObjInventarios.Dispose()
+ End Sub
+
+#End Region
End Class
diff --git a/Inventarios/Kardex.aspx b/Inventarios/Kardex.aspx
index 08c2ac128..8d89182cd 100644
--- a/Inventarios/Kardex.aspx
+++ b/Inventarios/Kardex.aspx
@@ -4,6 +4,11 @@