sugerencia de fecha de caducidad más proxima
This commit is contained in:
@@ -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>
|
||||||
|
|||||||
@@ -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,83 +3821,73 @@ 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 AplicaCaducidad As Boolean = DtRow.Item("AplicaCaducidad").ToString = "True"
|
Dim DtAux As New DataTable
|
||||||
Dim AplicaLote As Boolean = DtRow.Item("AplicaLote").ToString = "True"
|
DtAux = DtDatos.Clone
|
||||||
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
|
For Each DtRow As DataRow In DtDatos.Rows
|
||||||
Dim RowFaltante As DataRow = DtDatos.NewRow()
|
Dim Row As DataRow = DtAux.NewRow()
|
||||||
Dim CantidadFaltante As Integer = (Cantidad - CantidadDisponible)
|
For Each Column As DataColumn In DtDatos.Columns
|
||||||
RowFaltante.Item("CantidadC") = CantidadFaltante
|
Row.Item(Column.ColumnName) = DtRow.Item(Column.ColumnName)
|
||||||
RowFaltante.Item("CantidadF") = CantidadFaltante
|
Next
|
||||||
RowFaltante.Item("CantidadS") = CantidadFaltante
|
DtAux.Rows.Add(Row)
|
||||||
DtRow.Item("CantidadC") = CantidadDisponible
|
SugerirFechaLote(0, MinFecha, FechasExcluidas, ObjInventarios, DtAux)
|
||||||
For Each Column As DataColumn In DtDatos.Columns
|
TempDT.Merge(DtAux)
|
||||||
If Not Column.ColumnName.Contiene("CantidadC", "CantidadF", "CantidadS") Then
|
DtAux.Clear()
|
||||||
RowFaltante.Item(Column.ColumnName) = DtRow.Item(Column.ColumnName)
|
Next
|
||||||
End If
|
|
||||||
Next
|
ObjInventarios.Dispose()
|
||||||
FechasExcluidas.Add(MinimumRow.Item("FechaCaducidad").ToString)
|
|
||||||
DtDatos.Rows.Add(RowFaltante)
|
DtDatos = TempDT
|
||||||
MaxRows += 1
|
End Sub
|
||||||
Else
|
|
||||||
DtRow.Item("CantidadF") = Cantidad
|
Private Sub SugerirFechaLote(contador As Integer, FechaExcluida As Date, FechasExcluidas As List(Of String), ObjInventarios As ClsInventarios, DataTableAux As DataTable)
|
||||||
End If
|
FechasExcluidas.Add(FechaExcluida.ToDate.ToString)
|
||||||
|
|
||||||
|
Dim DtRow As DataRow = DataTableAux.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 = DataTableAux.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 DataTableAux.Columns
|
||||||
|
If Not Column.ColumnName.Contiene("CantidadC", "CantidadF", "CantidadS") Then
|
||||||
|
RowFaltante.Item(Column.ColumnName) = DtRow.Item(Column.ColumnName)
|
||||||
|
End If
|
||||||
|
Next
|
||||||
|
DataTableAux.Rows.Add(RowFaltante)
|
||||||
|
SugerirFechaLote(contador + 1, MinimumRow.Item("FechaCaducidad").ToString.ToDate, FechasExcluidas, ObjInventarios, DataTableAux)
|
||||||
|
Else
|
||||||
|
DtRow.Item("CantidadF") = Cantidad
|
||||||
|
Exit Sub
|
||||||
End If
|
End If
|
||||||
End If
|
End If
|
||||||
End If
|
End If
|
||||||
Next
|
End If
|
||||||
|
|
||||||
'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
|
||||||
|
|||||||
Reference in New Issue
Block a user