This commit is contained in:
Rakcsle Supertramp
2020-11-18 19:33:26 -07:00
2 changed files with 66 additions and 76 deletions

View File

@@ -516,18 +516,18 @@
</asp:TemplateField> </asp:TemplateField>
<asp:TemplateField HeaderText="Lote" ItemStyle-HorizontalAlign="Center" ItemStyle-Width="7.5%" Visible="false"> <asp:TemplateField HeaderText="Lote" ItemStyle-HorizontalAlign="Center" ItemStyle-Width="7.5%" Visible="false">
<ItemTemplate> <ItemTemplate>
<asp:TextBox ID="TxtLote" CssClass="form-control input-sm" runat="server" Visible="false" Text='<%# Eval("Lote") %>'></asp:TextBox> <asp:TextBox ID="TxtLote" CssClass="form-control input-sm" runat="server" Visible="false" Text='<%# Eval("Lote") %>' Enabled="false"></asp:TextBox>
</ItemTemplate> </ItemTemplate>
</asp:TemplateField> </asp:TemplateField>
<asp:TemplateField HeaderText="F.Caducidad" ItemStyle-HorizontalAlign="Center" ItemStyle-Width="5%" Visible="false"> <asp:TemplateField HeaderText="F.Caducidad" ItemStyle-HorizontalAlign="Center" ItemStyle-Width="5%" Visible="false">
<ItemTemplate> <ItemTemplate>
<div class="input-group input-sm input-small date date-picker " data-date-format="dd/mm/yyyy" style="width: 120px !important; padding: 0px;"> <div class="input-group input-sm input-small date date-picker " data-date-format="dd/mm/yyyy" style="width: 120px !important; padding: 0px;">
<asp:TextBox ID="TxtCaducidad" Text='<%# Eval("FechaCaducidad") %>' CssClass="form-control input-sm ADSMaskDate" Style="width: 78px" runat="server" Visible="false"></asp:TextBox> <asp:TextBox ID="TxtCaducidad" Text='<%# Eval("FechaCaducidad") %>' CssClass="form-control input-sm ADSMaskDate" Style="width: 78px" runat="server" Visible="false" Enabled="false"></asp:TextBox>
<span class="input-group-btn " > <span class="input-group-btn " >
<asp:LinkButton runat="server" ID="LnkCaducidad" class="btn default" Visible="false"> <i class="fa fa-calendar"></i> </asp:LinkButton> <asp:LinkButton runat="server" ID="LnkCaducidad" class="btn default" Visible="false" Enabled="false"> <i class="fa fa-calendar"></i> </asp:LinkButton>
<ajax:MaskedEditExtender ID="MEECaducidad" runat="server" TargetControlID="TxtCaducidad" Mask="99/99/9999" MaskType="Date" DisplayMoney="Left" AcceptNegative="Left"></ajax:MaskedEditExtender> <ajax:MaskedEditExtender ID="MEECaducidad" runat="server" TargetControlID="TxtCaducidad" Mask="99/99/9999" MaskType="Date" DisplayMoney="Left" AcceptNegative="Left"></ajax:MaskedEditExtender>
<ajax:CalendarExtender runat="server" ID="CECaducidad" TargetControlID="TxtCaducidad" PopupButtonID="LnkCaducidad" PopupPosition="BottomLeft" Enabled="True" Format="dd/MM/yyyy" ></ajax:CalendarExtender> <ajax:CalendarExtender runat="server" Enabled="false" ID="CECaducidad" TargetControlID="TxtCaducidad" PopupButtonID="LnkCaducidad" PopupPosition="BottomLeft" Format="dd/MM/yyyy" ></ajax:CalendarExtender>
<asp:RequiredFieldValidator ID="RFVCaducidad" runat="server" ControlToValidate="TxtCaducidad" Display="None" ErrorMessage="<b><span style='text-decoration: underline'>ERROR:</span></b><br />El campo <b>''Caducidad''</b> es necesario, por favor ingréselo." ValidationGroup="GrpGuardar"></asp:RequiredFieldValidator> <asp:RequiredFieldValidator ID="RFVCaducidad" runat="server" ControlToValidate="TxtCaducidad" Display="None" ErrorMessage="<b><span style='text-decoration: underline'>ERROR:</span></b><br />El campo <b>''Caducidad''</b> es necesario, por favor ingréselo." ValidationGroup="GrpGuardar"></asp:RequiredFieldValidator>
<ajax:ValidatorCalloutExtender ID="VCECaducidad" runat="server" HighlightCssClass="vco" TargetControlID="RFVCaducidad"></ajax:ValidatorCalloutExtender> <ajax:ValidatorCalloutExtender ID="VCECaducidad" runat="server" HighlightCssClass="vco" TargetControlID="RFVCaducidad"></ajax:ValidatorCalloutExtender>
</span> </span>

View File

@@ -851,7 +851,7 @@ Partial Class Inventarios_EntregaAlmacen
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) = "Fecha Elaboración", "Fecha Elaboración", "Fecha Caducidad")
SugerirFechaLote() SugerirFecha()
End If End If
GvDatos.DataSource = DtDatos GvDatos.DataSource = DtDatos
@@ -3821,14 +3821,37 @@ Partial Class Inventarios_EntregaAlmacen
#End Region #End Region
#Region "sugerir caducidad" #Region "sugerir caducidad"
Private Sub SugerirFechaLote()
Private Sub SugerirFecha()
Dim ObjInventarios As New ClsInventarios() Dim ObjInventarios As New ClsInventarios()
Dim FechasExcluidas As New List(Of String) 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 TempDT As New DataTable
Dim DtRow As DataRow = DtDatos.Rows(contador) TempDT = DtDatos.Clone
Dim DtAux As New DataTable
DtAux = DtDatos.Clone
For Each DtRow As DataRow In DtDatos.Rows
Dim Row As DataRow = DtAux.NewRow()
For Each Column As DataColumn In DtDatos.Columns
Row.Item(Column.ColumnName) = DtRow.Item(Column.ColumnName)
Next
DtAux.Rows.Add(Row)
SugerirFechaLote(0, MinFecha, FechasExcluidas, ObjInventarios, DtAux)
TempDT.Merge(DtAux)
DtAux.Clear()
Next
ObjInventarios.Dispose()
DtDatos = TempDT
End Sub
Private Sub SugerirFechaLote(contador As Integer, FechaExcluida As Date, FechasExcluidas As List(Of String), ObjInventarios As ClsInventarios, DataTableAux As DataTable)
FechasExcluidas.Add(FechaExcluida.ToDate.ToString)
Dim DtRow As DataRow = DataTableAux.Rows(contador)
Dim AplicaCaducidad As Boolean = DtRow.Item("AplicaCaducidad").ToString = "True" Dim AplicaCaducidad As Boolean = DtRow.Item("AplicaCaducidad").ToString = "True"
Dim AplicaLote As Boolean = DtRow.Item("AplicaLote").ToString = "True" Dim AplicaLote As Boolean = DtRow.Item("AplicaLote").ToString = "True"
Dim Cantidad As Integer = DtRow.Item("CantidadC").ToString.ToEntero Dim Cantidad As Integer = DtRow.Item("CantidadC").ToString.ToEntero
@@ -3845,59 +3868,26 @@ Partial Class Inventarios_EntregaAlmacen
DtRow.Item("CantidadS") = CantidadDisponible DtRow.Item("CantidadS") = CantidadDisponible
If Cantidad > CantidadDisponible Then If Cantidad > CantidadDisponible Then
Dim RowFaltante As DataRow = DtDatos.NewRow() Dim RowFaltante As DataRow = DataTableAux.NewRow()
Dim CantidadFaltante As Integer = (Cantidad - CantidadDisponible) Dim CantidadFaltante As Integer = (Cantidad - CantidadDisponible)
RowFaltante.Item("CantidadC") = CantidadFaltante RowFaltante.Item("CantidadC") = CantidadFaltante
RowFaltante.Item("CantidadF") = CantidadFaltante RowFaltante.Item("CantidadF") = CantidadFaltante
RowFaltante.Item("CantidadS") = CantidadFaltante RowFaltante.Item("CantidadS") = CantidadFaltante
DtRow.Item("CantidadC") = CantidadDisponible DtRow.Item("CantidadC") = CantidadDisponible
For Each Column As DataColumn In DtDatos.Columns For Each Column As DataColumn In DataTableAux.Columns
If Not Column.ColumnName.Contiene("CantidadC", "CantidadF", "CantidadS") Then If Not Column.ColumnName.Contiene("CantidadC", "CantidadF", "CantidadS") Then
RowFaltante.Item(Column.ColumnName) = DtRow.Item(Column.ColumnName) RowFaltante.Item(Column.ColumnName) = DtRow.Item(Column.ColumnName)
End If End If
Next Next
FechasExcluidas.Add(MinimumRow.Item("FechaCaducidad").ToString) DataTableAux.Rows.Add(RowFaltante)
DtDatos.Rows.Add(RowFaltante) SugerirFechaLote(contador + 1, MinimumRow.Item("FechaCaducidad").ToString.ToDate, FechasExcluidas, ObjInventarios, DataTableAux)
MaxRows += 1
Else Else
DtRow.Item("CantidadF") = Cantidad DtRow.Item("CantidadF") = Cantidad
Exit Sub
End If End If
End If End If
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 Sub
#End Region #End Region