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

@@ -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