This commit is contained in:
Rakcsle Supertramp
2020-11-19 13:08:03 -07:00
2 changed files with 58 additions and 60 deletions

View File

@@ -121,7 +121,7 @@
</span> </span>
</div> </div>
<ajax:MaskedEditExtender ID="MEEFecha" runat="server" TargetControlID="TxtFechaCadNueva" Mask="99/99/9999" MaskType="Date" DisplayMoney="Left" AcceptNegative="Left"></ajax:MaskedEditExtender> <ajax:MaskedEditExtender ID="MEEFecha" runat="server" TargetControlID="TxtFechaCadNueva" Mask="99/99/9999" MaskType="Date" DisplayMoney="Left" AcceptNegative="Left"></ajax:MaskedEditExtender>
<ajax:CalendarExtender runat="server" ID="CEFecha" TargetControlID="TxtFechaCadNueva" PopupButtonID="ImgFecha" PopupPosition="BottomRight" Enabled="True"></ajax:CalendarExtender> <ajax:CalendarExtender runat="server" ID="CEFecha" TargetControlID="TxtFechaCadNueva" PopupButtonID="ImgFecha" PopupPosition="BottomLeft" Enabled="True"></ajax:CalendarExtender>
<%--<asp:DropDownList ID="DDlS" runat="server" Width="150px" DataValueField="CveSeccionAlmacen" DataTextField="SeccionAlmacen" class="select2me"></asp:DropDownList>--%> <%--<asp:DropDownList ID="DDlS" runat="server" Width="150px" DataValueField="CveSeccionAlmacen" DataTextField="SeccionAlmacen" class="select2me"></asp:DropDownList>--%>
</ItemTemplate> </ItemTemplate>
</asp:TemplateField> </asp:TemplateField>

View File

@@ -270,7 +270,7 @@ Partial Class Inventarios_EntregaAlmacen
InicializaValores() InicializaValores()
CargaParametrosAD() CargaParametrosAD()
If UsuarioActual.CveEmpresa.Contiene(72, 80) Then DdlAlmacen.AutoPostBack = True If UsuarioActual.CveEmpresa.Contiene(72, 80, 146, 119) Then DdlAlmacen.AutoPostBack = True
If UsuarioActual.Empresa.Funcionalidad(281).ToEntero() = 1 Then If UsuarioActual.Empresa.Funcionalidad(281).ToEntero() = 1 Then
@@ -833,7 +833,7 @@ Partial Class Inventarios_EntregaAlmacen
CargaGvDatos() CargaGvDatos()
End Sub End Sub
Private Sub CargaGvDatos() Private Sub CargaGvDatos(Optional CveAlmacen As Integer = -1)
If DtDatos IsNot Nothing Then If DtDatos IsNot Nothing Then
@@ -849,9 +849,12 @@ Partial Class Inventarios_EntregaAlmacen
If AplicaSeccion Then GvDatos.Columns(7).Visible = True If AplicaSeccion Then GvDatos.Columns(7).Visible = True
If AplicaLote Then GvDatos.Columns(8).Visible = True If AplicaLote Then GvDatos.Columns(8).Visible = True
If AplicaCaducidad Then GvDatos.Columns(9).Visible = True 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") GvDatos.Columns(9).HeaderText = If(UsuarioActual.Empresa.Funcionalidad(147) <> "", UsuarioActual.Empresa.Funcionalidad(147), "")
SugerirFecha() 'SugerirFecha()
If DdlAlmacen.SelectedValue.ToEntero > 0 Then
SugiereLoteCaducidad(DdlAlmacen.SelectedValue.ToEntero)
End If
End If End If
GvDatos.DataSource = DtDatos GvDatos.DataSource = DtDatos
@@ -3749,7 +3752,7 @@ Partial Class Inventarios_EntregaAlmacen
Protected Sub DdlAlmacen_SelectedIndexChanged(sender As Object, e As EventArgs) Handles DdlAlmacen.SelectedIndexChanged Protected Sub DdlAlmacen_SelectedIndexChanged(sender As Object, e As EventArgs) Handles DdlAlmacen.SelectedIndexChanged
If DdlAlmacen.SelectedValue <> "-1" Then If DdlAlmacen.SelectedValue <> "-1" Then
CargaGvDatos() CargaGvDatos(DdlAlmacen.SelectedValue.ToEntero)
End If End If
End Sub End Sub
@@ -3822,72 +3825,67 @@ Partial Class Inventarios_EntregaAlmacen
#Region "sugerir caducidad" #Region "sugerir caducidad"
Private Sub SugerirFecha() Private Sub SugiereLoteCaducidad(CveAlmacen As Integer)
Dim ObjInventarios As New ClsInventarios()
Dim FechasExcluidas As New List(Of String)
Dim TempDT As New DataTable Dim TempDT As New DataTable
Dim DtLotesCaducidad As New DataTable
TempDT = DtDatos.Clone TempDT = DtDatos.Clone
Dim DtAux As New DataTable Dim CvePSAnterior As Integer = 0
DtAux = DtDatos.Clone Dim ObjInventarios As New ClsInventarios()
For Each DtRow As DataRow In DtDatos.Rows For Each dr As DataRow In DtDatos.Rows
Dim Row As DataRow = DtAux.NewRow() If CBool(dr("AplicaLote")) Then
For Each Column As DataColumn In DtDatos.Columns If CvePSAnterior <> dr("CvePS").ToString.ToEntero Then
Row.Item(Column.ColumnName) = DtRow.Item(Column.ColumnName) CvePSAnterior = dr("CvePS").ToString.ToEntero
Next
DtAux.Rows.Add(Row) If ObjInventarios.GetExistenciasCaducidad(dr("CvePS").ToString.ToEntero, CveAlmacen, UsuarioActual.CveUsuario, UsuarioActual.CveEmpresa) Then
SugerirFechaLote(0, MinFecha, FechasExcluidas, ObjInventarios, DtAux) DtLotesCaducidad.Merge(ObjInventarios.DtResultados)
TempDT.Merge(DtAux)
DtAux.Clear() End If
End If
End If
Next Next
ObjInventarios.Dispose() ObjInventarios.Dispose()
DtDatos = TempDT For Each dr As DataRow In DtDatos.Rows
End Sub If CBool(dr("AplicaLote")) Then
Private Sub SugerirFechaLote(contador As Integer, FechaExcluida As Date, FechasExcluidas As List(Of String), ObjInventarios As ClsInventarios, DataTableAux As DataTable) Dim dtta As DataTable = DtLotesCaducidad.FiltraParametros(String.Format("CvePS = {0}", dr("CvePS")))
FechasExcluidas.Add(FechaExcluida.ToDate.ToString)
Dim DtRow As DataRow = DataTableAux.Rows(contador) If dtta IsNot Nothing AndAlso dtta.Rows.Count > 0 Then
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 'recorre que cumplan con la cantidad total a llenar
Dim RowFaltante As DataRow = DataTableAux.NewRow() Dim CantidadSurtir As Decimal = dr("CantidadF").ToString.ToDecimal
Dim CantidadFaltante As Integer = (Cantidad - CantidadDisponible) For Each drl As DataRow In dtta.Rows
RowFaltante.Item("CantidadC") = CantidadFaltante If CantidadSurtir < drl("Cantidad").ToString.ToDecimal Then
RowFaltante.Item("CantidadF") = CantidadFaltante dr("CantidadF") = CantidadSurtir
RowFaltante.Item("CantidadS") = CantidadFaltante dr("CantidadC") = CantidadSurtir
DtRow.Item("CantidadC") = CantidadDisponible dr("Lote") = drl("Lote")
For Each Column As DataColumn In DataTableAux.Columns dr("FechaCaducidad") = drl("FechaCaducidad")
If Not Column.ColumnName.Contiene("CantidadC", "CantidadF", "CantidadS") Then TempDT.ImportRow(dr)
RowFaltante.Item(Column.ColumnName) = DtRow.Item(Column.ColumnName) CantidadSurtir = 0
End If Else
Next CantidadSurtir -= drl("Cantidad").ToString.ToDecimal
DataTableAux.Rows.Add(RowFaltante) dr("CantidadF") = drl("Cantidad").ToString.ToDecimal
SugerirFechaLote(contador + 1, MinimumRow.Item("FechaCaducidad").ToString.ToDate, FechasExcluidas, ObjInventarios, DataTableAux) dr("CantidadC") = drl("Cantidad").ToString.ToDecimal
Else dr("Lote") = drl("Lote")
DtRow.Item("CantidadF") = Cantidad dr("FechaCaducidad") = drl("FechaCaducidad")
Exit Sub TempDT.ImportRow(dr)
End If End If
If CantidadSurtir <= 0 Then Exit For
Next
Else
'error, no hay lote sugerido
End If End If
Else
TempDT.ImportRow(dr)
End If End If
End If
Next
DtDatos = TempDT
End Sub End Sub
#End Region #End Region