Compras ajuste mensaje validacion Lote Fecha Caducidad

This commit is contained in:
rakcsle
2024-11-20 12:04:40 -07:00
parent 6482fa0ce9
commit a0072d5931
2 changed files with 63 additions and 19 deletions

View File

@@ -1306,7 +1306,7 @@
<asp:UpdatePanel ID="UpInv" runat="server" UpdateMode="Conditional">
<ContentTemplate>
<asp:GridView ID="GvInv" runat="server" DataKeyNames="Total,PU,Cantidad,CvePS,Descuento,UUIDRow" AutoGenerateColumns="false" GridLines="None" EmptyDataText="Aun no hay registros."
<asp:GridView ID="GvInv" runat="server" DataKeyNames="Total,PU,Cantidad,CvePS,Descuento,UUIDRow,AplicaLote,AplicaCaducidad,PS" AutoGenerateColumns="false" GridLines="None" EmptyDataText="Aun no hay registros."
ShowHeaderWhenEmpty="True" CssClass="table table-striped table-hover Widthall mysmallbtn" Visible="false">
<Columns>
<%--0--%>
@@ -1342,7 +1342,7 @@
</ItemTemplate>
</asp:TemplateField>
<%--3--%>
<asp:BoundField ItemStyle-Width="20%" ItemStyle-HorizontalAlign="Left" HeaderText=" Servicio" DataField="PS" />
<asp:BoundField ItemStyle-Width="20%" ItemStyle-HorizontalAlign="Left" HeaderText=" Producto" DataField="PS" />
<%--4--%>
<asp:BoundField ItemStyle-Width="7.5%" HeaderText="P.U." DataField="PU" DataFormatString="{0:#,##0.00####}" ItemStyle-HorizontalAlign="Right" />
<%--5--%>
@@ -1382,8 +1382,8 @@
<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="TopLeft" 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>
<ajax:ValidatorCalloutExtender ID="VCECaducidad" runat="server" HighlightCssClass="vco" TargetControlID="RFVCaducidad"></ajax:ValidatorCalloutExtender>
<%--<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>--%>
</div>
</ItemTemplate>

View File

@@ -12,10 +12,10 @@ Imports Extensiones
Imports MoreLinq
Imports System.Data.SqlClient
Imports ClsPaginas
Imports System.Activities.Expressions
Imports Microsoft.Data.Edm.Expressions
Imports Telerik.Web.UI
Imports DocumentFormat.OpenXml.Math
Imports Microsoft.Owin.Security.Provider
Partial Class Compras_Compras
Inherits ClsPaginas
@@ -4315,7 +4315,9 @@ Partial Class Compras_Compras
Exit Sub
End If
If Not ValidaLoteFechaCaducidad() Then
Exit Sub
End If
Dim TotalRealDevolucion As Decimal = 0
@@ -5735,8 +5737,8 @@ Partial Class Compras_Compras
Dim Lote As String = Dr("Lote").ToString
Dim FechaCaducidad As Date = If(Dr("FechaCaducidad").ToString.ToDate <= MinFecha, MinFecha, Dr("FechaCaducidad").ToString.ToDate)
Dim AplicaLote As Boolean = Boolean.Parse(Dr("AplicaLote").ToString)
Dim AplicaCaducidad As Boolean = Boolean.Parse(Dr("AplicaCaducidad").ToString)
Dim AplicaLote As Boolean = If(Dr("AplicaLote").ToString.Trim = "", False, Boolean.Parse(Dr("AplicaLote").ToString))
Dim AplicaCaducidad As Boolean = If(Dr("AplicaCaducidad").ToString.Trim = "", False, Boolean.Parse(Dr("AplicaCaducidad").ToString))
Dim CodigoPS As String = Dr("CodigoPS").ToString
If Dr("CveMetodoInventario").ToString.ToEntero = 5 Then
@@ -5747,7 +5749,7 @@ Partial Class Compras_Compras
Dim fechaDetalle As Date = drr("FechaCaducidad").ToString.ToDate
If Not ObjInventario.AddMovimientoDetalle(CveMovimientoInventario, 1, Dr("CveUM").ToString.ToEntero, Dr("CvePS").ToString.ToEntero, Dr("PU").ToString.ToDecimal, -1, Serie:=drr("Serie").ToString, FechaCaducidad:=drr("FechaCaducidad").ToString.ToDate, CostoIndirecto:=Dr("CostoIndirectoAlmacen").ToString.ToDecimal, CveCompraDetalle:=Dr("CveCompraDetalle").ToString.ToEntero, CveOrdenCompraDetalle:=Dr("CveOrdenCompraDetalle").ToString.ToEntero, Lote:=Lote) Then
If Not ObjInventario.AddMovimientoDetalle(CveMovimientoInventario, 1, Dr("CveUM").ToString.ToEntero, Dr("CvePS").ToString.ToEntero, Dr("PU").ToString.ToDecimal, -1, Serie:=drr("Serie").ToString, FechaCaducidad:=drr("FechaCaducidad").ToString.ToDate, CostoIndirecto:=Dr("CostoIndirectoAlmacen").ToString.ToDecimal, CveCompraDetalle:=Dr("CveCompraDetalle").ToString.ToEntero, CveOrdenCompraDetalle:=Dr("CveOrdenCompraDetalle").ToString.ToEntero) Then
ErrorMovInv = True
Exit For
End If
@@ -5777,12 +5779,12 @@ Partial Class Compras_Compras
If AplicaLote And Lote.Trim = "" Then
ErrorMovInv = True
Alert($"Porducto {CodigoPS} requiere Lote.")
Alert($"Porducto {CodigoPS} requiere Lote.", TipoMensaje.MsgAdvertencia)
Exit For
End If
If AplicaCaducidad And FechaCaducidad = MinFecha And Lote.Trim = "" Then
If AplicaCaducidad And FechaCaducidad <= MinFecha Then
ErrorMovInv = True
Alert($"Porducto {CodigoPS} requiere fecha de caducidad.")
Alert($"Porducto {CodigoPS} requiere fecha de caducidad.", TipoMensaje.MsgAdvertencia)
Exit For
End If
@@ -8026,6 +8028,45 @@ Partial Class Compras_Compras
End Function
Private Function ValidaLoteFechaCaducidad() As Boolean
Dim Respuesta As Boolean = True
Dim sbErrores As New StringBuilder
If UsuarioActual.Empresa.UsaInventarios AndAlso DdlTipoCompra.SelectedValue <> "13" Then 'And UsuarioActual.Empresa.UsaAC = False
For Each gvRow As GridViewRow In GvInv.Rows
Dim Chk As CheckBox = gvRow.FCCheckBox("cbInv")
If Chk.Checked Then
Dim Ps As String = gvRow.DataKey("PS")
Dim AplicaLote As Boolean = If(gvRow.DataKey("AplicaLote").Trim = "", False, Boolean.Parse(gvRow.DataKey("AplicaLote")))
Dim AplicaCaducidad As Boolean = If(gvRow.DataKey("AplicaCaducidad").Trim = "", False, Boolean.Parse(gvRow.DataKey("AplicaCaducidad")))
Dim Lote As String = gvRow.FCTextBox("TxtLote").Text
Dim FechaCaducidad As Date = gvRow.FCTextBox("TxtCaducidad").Text.ToDate
If AplicaLote AndAlso Lote.Trim = String.Empty Then
sbErrores.Append($"Producto {Ps} requiere Lote.</br>")
Respuesta = False
End If
If AplicaCaducidad AndAlso (FechaCaducidad <= MinFecha) Then
sbErrores.Append($"Producto {Ps} requiere Fecha de Caducidad.</br>")
Respuesta = False
End If
End If
Next
End If
If Not Respuesta Then
Alert($"Los siguientes productos requieren que se les especifique Lote o Fecha de Caducidad.</br>{sbErrores.ToString}", TipoMensaje.MsgAdvertencia)
End If
Return Respuesta
End Function
Private Function AjustaCombustibles() As Boolean
Dim Respuesta As Boolean = False
@@ -11093,6 +11134,9 @@ Partial Class Compras_Compras
If dRow("UUIDRow").ToString.Trim = "" Then
dRow("UUIDRow") = Guid.NewGuid().ToString()
End If
Dim CvePS As Integer = dRow("CvePS").ToString.ToEntero
dRow("AplicaLote") = Boolean.Parse(GlobalDTPSSimplificado(UsuarioActual.CveEmpresa).FiltroPrimeroValor("AplicaLote", $"CvePS={CvePS}"))
dRow("AplicaCaducidad") = Boolean.Parse(GlobalDTPSSimplificado(UsuarioActual.CveEmpresa).FiltroPrimeroValor("AplicaCaducidad", $"CvePS={CvePS}"))
Next
TmpDT.AcceptChanges()
@@ -11106,9 +11150,9 @@ Partial Class Compras_Compras
For Each dRow As DataRow In DtInv.Rows
Dim CvePS As Integer = dRow("CvePS").ToString.ToEntero
Dim AplicaLote As Boolean = Boolean.Parse(GlobalDTPSSimplificado(UsuarioActual.CveEmpresa).FiltroPrimeroValor("AplicaLote", $"CvePS={CvePS}"))
Dim AplicaCaducidad As Boolean = Boolean.Parse(GlobalDTPSSimplificado(UsuarioActual.CveEmpresa).FiltroPrimeroValor("AplicaCaducidad", $"CvePS={CvePS}"))
'Dim CvePS As Integer = dRow("CvePS").ToString.ToEntero
Dim AplicaLote As Boolean = Boolean.Parse(dRow("AplicaLote").ToString) 'Boolean.Parse(GlobalDTPSSimplificado(UsuarioActual.CveEmpresa).FiltroPrimeroValor("AplicaLote", $"CvePS={CvePS}"))
Dim AplicaCaducidad As Boolean = Boolean.Parse(dRow("AplicaCaducidad").ToString) 'Boolean.Parse(GlobalDTPSSimplificado(UsuarioActual.CveEmpresa).FiltroPrimeroValor("AplicaCaducidad", $"CvePS={CvePS}"))
GvInv.Columns(7).Visible = AplicaLote
GvInv.Columns(8).Visible = AplicaCaducidad
@@ -21852,7 +21896,7 @@ Partial Class Compras_Compras
End Class