diff --git a/Compras/Compras.aspx b/Compras/Compras.aspx index 0a205a1e2..925554a71 100644 --- a/Compras/Compras.aspx +++ b/Compras/Compras.aspx @@ -1306,7 +1306,7 @@ - <%--0--%> @@ -1342,7 +1342,7 @@ <%--3--%> - + <%--4--%> <%--5--%> @@ -1382,8 +1382,8 @@ - - + <%-- + --%> diff --git a/Compras/Compras.aspx.vb b/Compras/Compras.aspx.vb index e71797684..7355670af 100644 --- a/Compras/Compras.aspx.vb +++ b/Compras/Compras.aspx.vb @@ -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.
") + Respuesta = False + End If + + If AplicaCaducidad AndAlso (FechaCaducidad <= MinFecha) Then + sbErrores.Append($"Producto {Ps} requiere Fecha de Caducidad.
") + 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.
{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