ahora se sugiere el lote con prioridad a sacar del almacen basandose en la fecha de caducidad

This commit is contained in:
Antonio Gonzalez
2020-11-11 18:59:37 -07:00
parent 372317019f
commit 2bd3eff8c4
4 changed files with 97 additions and 9 deletions

View File

@@ -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