From ad7b731f73be5d629ab7381d98233c0804564869 Mon Sep 17 00:00:00 2001 From: rrene Date: Wed, 26 Apr 2023 15:55:25 -0700 Subject: [PATCH] -validacion al final --- Compras/Compras.aspx | 64 ++++++------- Compras/Compras.aspx.vb | 197 ++++++++++------------------------------ 2 files changed, 76 insertions(+), 185 deletions(-) diff --git a/Compras/Compras.aspx b/Compras/Compras.aspx index 5facc8424..17f32de8d 100644 --- a/Compras/Compras.aspx +++ b/Compras/Compras.aspx @@ -4845,7 +4845,7 @@
+ DataKeyNames="CveCompra,TipoCambio,CveTipoConcepto,UUID,Saldo,SerieFolio,Fecha,CveMoneda,Total,CveProveedor" runat="server" AutoGenerateColumns="false" GridLines="None" CssClass="table table-striped table-hover Widthall ScrollAD"> @@ -5880,46 +5880,34 @@ } - function chkAnt(t, txt, importe, TotalSaldo, CveMonedaAnticipo, TCAnticipo, CveMonedaOriginal) { + function chkAnt(t, txt, importe, TotalSaldoCompra, CveMonedaAnticipo, TCAnticipo, CveMonedaOriginal, TCCompra) { var Total = ToDouble($get('TxtTotal').value); - //TotalSaldo = Total; + debugger; var txtvalue = ToDouble(txt.value); + var ImportePago, ImporteCompra; + + var TCC = TCCompra / TCAnticipo; var importevalue = ToDouble(importe); - if (CveMonedaAnticipo = 1 && CveMonedaOriginal == 2) { - txtvalue = ToDouble(txtvalue / TCAnticipo); - importevalue = ToDouble(importevalue / TCAnticipo); - } else if (CveMonedaAnticipo = 2 && CveMonedaOriginal == 1) { - txtvalue = ToDouble(txtvalue * TCAnticipo); - importevalue = ToDouble(importevalue * TCAnticipo); - } - //var SaldoCompra = parseFloat(parseFloat($get('HdnCompraSaldo').value).toFixed(2)); - var SaldoCompra = (TotalSaldo - FnSumaValoresAnt() + txtvalue).toFixed(2); // le agrego lo del valor actual para validarlo - - - - if (t.checked) { - - if (SaldoCompra > 0) { - if (SaldoCompra > importevalue) { - txt.value = ToDouble(importevalue).toFixed(2); - //SaldoCompra = SaldoCompra - importe; - //$get('HdnCompraSaldo').value = SaldoCompra; - - } else { - txt.value = ToDouble(SaldoCompra).toFixed(2); - //SaldoCompra = 0.00; - //$get('HdnCompraSaldo').value = SaldoCompra; - } - - } else { - t.checked = false; - txt.value = ""; - //SaldoCompra = SaldoCompra - importe; + if (CveMonedaAnticipo != CveMonedaOriginal) { + if (CveMonedaAnticipo == 1 && CveMonedaOriginal == 2) { + txtvalue = ToDouble(txtvalue / TCAnticipo); + importevalue = ToDouble(importevalue / TCAnticipo); + } else if (CveMonedaAnticipo == 2 && CveMonedaOriginal == 1) { + txtvalue = ToDouble(txtvalue * TCAnticipo); + importevalue = ToDouble(importevalue * TCAnticipo); } + } + var DifSaldo = (TotalSaldoCompra - FnSumaValoresAnt()).toFixed(2); // le agrego lo del valor actual para validarlo - } else { - //$get('HdnCompraSaldo').value = parseFloat(SaldoCompra) + parseFloat(txt.value); + if (t.checked) + { + if (DifSaldo > importevalue) { + txt.value = ToDouble(importevalue*TCC).toFixed(2); + } else { + txt.value = ToDouble(DifSaldo*TCC).toFixed(2); + } + } else { txt.value = ""; } @@ -5935,6 +5923,7 @@ var Total = ToDouble($get('TxtTotal').value); let txtComisionImporte = 0; + debugger; if (txtComision != null) { if (!isNaN(txtComision.value)) { @@ -5952,8 +5941,7 @@ } return; } - - debugger; + if (CveMonedaAnticipo == 1 && CveMonedaOriginal == 2) { txtvalue = ToDouble(txtvalue / TCAnticipo); } else if (CveMonedaAnticipo == 2 && CveMonedaOriginal == 1) { @@ -5961,7 +5949,7 @@ } var SaldoCompra = (TotalSaldo - FnSumaValoresAnt() + ToDouble(txtvalue)).toFixed(2); // le agrego lo del valor actual para validarlo //parseFloat(parseFloat($get('HdnCompraSaldo').value).toFixed(2)); - alert(txtvalue); + if (SaldoCompra < 0) txt.value = SaldoCompra - txtvalue; //minimo entre saldocompra y el saldoanticipo if (SaldoCompra < saldo) saldo = SaldoCompra; diff --git a/Compras/Compras.aspx.vb b/Compras/Compras.aspx.vb index 841911cad..3779fad2f 100644 --- a/Compras/Compras.aspx.vb +++ b/Compras/Compras.aspx.vb @@ -7,11 +7,8 @@ Imports System.Diagnostics Imports System.Globalization Imports System.IO Imports System.Threading.Tasks -Imports Newtonsoft.Jsonf +Imports Newtonsoft.Json Imports Extensiones -Imports System.Activities.Expressions -Imports iText.Barcodes.Dmcode -Imports Microsoft.Reporting.WebForms Imports MoreLinq Partial Class Compras_Compras @@ -490,14 +487,6 @@ Partial Class Compras_Compras ViewState("CompraSaldo") = value End Set End Property - Private Property Saldo As Double - Get - Return ViewState("Saldo").ToString.ToDouble - End Get - Set(value As Double) - ViewState("Saldo") = value - End Set - End Property Private Property CveMoneda As Integer Get @@ -1234,7 +1223,7 @@ Partial Class Compras_Compras CierrePeriodo = False NCDevolucion = False CompraCargada = False - Saldo = 0 + CompraSaldo = 0 SubTotalOriginal = 0 CveConceptoContableAlmacen = 0 EsNoDeducible = False @@ -1418,8 +1407,6 @@ Partial Class Compras_Compras InicializaAplicaNCFact() End If - - If UsuarioActual.Empresa.UsaAC Then CambiaEjercicioAC() End If @@ -1509,7 +1496,7 @@ Partial Class Compras_Compras End If 'SI ES UNA COMPRA NUEVA SE PONE EL TOTAL, SI NO EL SALDO - LblSaldoFactura.Text = If(CveCompra > 0, Saldo.FormatoNumero, TxtTotal.Text.FormatoNumero) + LblSaldoFactura.Text = If(CveCompra > 0, CompraSaldo.FormatoNumero, TxtTotal.Text.FormatoNumero) 'cuando es factura con amortizacion, el importe a descontar es el saldo que se debe de aplicar para la amortizacion If ListaDocumentos IsNot Nothing AndAlso ListaDocumentos.Count > 0 Then LblSaldoFactura.Text = TmpDT.SUMD("Descuento").ToString @@ -2425,12 +2412,6 @@ Partial Class Compras_Compras End If End If - Dim MostrarRetIva6 As Boolean = False - - - - - TxtSubTotal.Text = SubtotalTemp.FormatoNumero TxtDescuento.Text = DescuentosTemp.FormatoNumero TxtSubTotal2.Text = Subtotal2Temp.FormatoNumero @@ -2476,23 +2457,6 @@ Partial Class Compras_Compras 'ASIGNA VALORES ORIGINALES PARA GUARDAR AsignaValoresOriginales(SubtotalTemp, Subtotal2Temp, IVATemp, RetIVATemp, RetISRTemp, Total) - 'If UsuarioActual.Empresa.Funcionalidad(577).ToString = "1" Then - - - ' If RetencionIVA = 0 And IVAOriginal > 0 Then - ' For Each dRow As DataRow In TmpDT.Rows - ' If dRow("CveTipoPS").ToString.ToEntero = 1 Then - - ' 'comentado para reubicar el boton - ' 'tdIVA6.Visible = True - - - ' Exit For - ' End If - ' Next - ' End If - - 'End If End Sub @@ -2592,7 +2556,7 @@ Partial Class Compras_Compras 'CargaProveedor Dim dr As DataRow = ObjCompra.DtResultados.Rows(0) - Saldo = dr("Saldo").ToString.ToDecimal + CompraSaldo = dr("Saldo").ToString.ToDecimal RBLPago.Visible = False Dim CveProveedor As Integer = dr("CveProveedor").ToString.ToEntero @@ -2689,7 +2653,6 @@ Partial Class Compras_Compras TxtTotal.Text = dr("Total").ToString.FormatoNumero(2) HfTotalCompra.Value = TxtTotal.Text - CompraSaldo = TxtTotal.Text.ToDouble TipoCambio = dr("TipoCambio").ToString.ToDecimal Dim TipoCambioOriginal = dr("TipoCambioOriginal").ToString.ToDouble @@ -2797,29 +2760,7 @@ Partial Class Compras_Compras 'ImgAddObs.Attributes.Add("onclick", "javascript: PosicionaObjeto(this.id,'DivEventoBitacora',null,-250,-250); $('#DivEventoBitacora').show(1000); ") ImgAddObs.Visible = True ChkAplicaNotaCredito.Checked = CBool(dr("AplicaNotaCredito").ToString) - 'RBLPago.Enabled = False - 'If dr("CveIE").ToString.ToEntero > 0 Then - ' RBLPago.SelectedValue = "2" - ' 'cargo los datos del pago - ' 'PnlPago.Visible = True - ' 'PnlChkFuncionariosEmpleados.Visible = True - ' Dim ObjIE As New ClsBancos() - - ' If ObjIE.GetBancosIE(dr("CveIE").ToString.ToEntero, UsuarioActual.CveEmpresa) Then - ' If ObjIE.DtResultados.Rows.Count > 0 Then - - ' DdlTipoTransaccion.SelectedValue = ObjIE.CveTipoTransaccion.ToString - ' DdlCuenta.SelectedValue = ObjIE.CveCuenta.ToString - ' TxtDocumentoFolio.Text = ObjIE.Folio - ' TxtDocumentoImporte.Text = ObjIE.Importe.FormatoNumero - ' TxtDocumentoObservaciones.Text = ObjIE.Observaciones - - ' End If - ' End If - - ' ObjIE.Dispose() - 'End If CompraSaldo = TotalGeneral - LblAmortizacion.Text.ToDouble If EmpresaPrueba Then CompraSaldo = dr("Saldo").ToString.ToDouble @@ -7208,19 +7149,27 @@ Partial Class Compras_Compras Pago.TipoPago = "NC" Pago.Fecha = CompraActual.Fecha 'toma la misma fecha de la provisión en el pago de NC + Dim CompraPago As New Compra 'datos de la compra tipodocto:Fac, para sobreescribirlos - CompraActual.CveCompra = Gvr.DataKey("CveCompra").ToEntero - CompraActual.SerieFolio = Gvr.DataKey("SerieFolio") - CompraActual.TC = Gvr.DataKey("TipoCambio").ToDecimal - CompraActual.Fecha = Gvr.DataKey("Fecha").ToDate - CompraActual.CveMoneda = Gvr.DataKey("CveMoneda").ToEntero - - ErrorPrepoliza = AplicaPrePolizaPagoCompra(CompraActual, Pago, CvePrePoliza, ObjConta) + CompraPago.CveCompra = Gvr.DataKey("CveCompra").ToEntero + CompraPago.CveProveedor = Gvr.DataKey("CveProveedor").ToEntero + CompraPago.SerieFolio = Gvr.DataKey("SerieFolio") + CompraPago.TC = Gvr.DataKey("TipoCambio").ToDecimal + CompraPago.Fecha = Gvr.DataKey("Fecha").ToDate + CompraPago.CveMoneda = Gvr.DataKey("CveMoneda").ToEntero + CompraPago.Total = Gvr.DataKey("Total").ToDecimal + CompraPago.CveTipoConceptoProveedor = Gvr.DataKey("CveTipoConcepto").ToEntero + CompraPago.CveSubProyecto = CompraActual.CveSubProyecto + ErrorPrepoliza = AplicaPrePolizaPagoCompra(CompraPago, Pago, CvePrePoliza, ObjConta) + If ErrorPrepoliza Then + Exit For + End If End If Next If ErrorPrepoliza Then + ErrorMovtosCxP = True Exit Select End If @@ -8089,6 +8038,12 @@ Partial Class Compras_Compras Dim Msg As New StringBuilder Msg.Append("La compra se registró correctamente") + If Not ErrorPrepoliza AndAlso ObjConta.ValidacionPrePolizaCuadre(CvePrePoliza, 4) Then + If ObjConta.ValorPolizaDescuadre > 0 Then + GuardaLogAD($"Compras/Compras-Guardar | Error{ObjConta.MensajePolizaDescuadre} Diferencia{ObjConta.ValorDiferencia} | CvePrePoliza:{CvePrePoliza}", "LogPrePolizas") + ErrorPrepolizaDescuadre = True + End If + End If 'ACTUALIZA CVEFACTURA If Request("CveFactura") IsNot Nothing Then @@ -8142,8 +8097,6 @@ Partial Class Compras_Compras Dim TempParametros = Encripta(String.Format("OP=PREPO&CvePrePoliza={0}", CvePrePoliza)) Msg.Append($" Imprimir ") - - End If If CveMovimientoInventario > 0 Then @@ -8170,7 +8123,6 @@ Partial Class Compras_Compras End If End If - If Not TieneError Then ObjCompras.Commit() If ObjContaAC IsNot Nothing Then ObjContaAC.Commit() @@ -8621,6 +8573,7 @@ Partial Class Compras_Compras Dim ImporteAnt As Decimal = gvr.FCTextBox("TxtAnticipo").Text.ToDecimal Dim ImporComisionAnticipo As Decimal = gvr.FCTextBox("TxtComision").Text.ToDecimal + Dim Pago As New CompraPago Pago.TipoPago = gvr.DataKey("TipoDocto") Pago.ImportePago = ImporteAnt @@ -8629,6 +8582,10 @@ Partial Class Compras_Compras Pago.TCPago = TipoCambioAnt Pago.CveProveedor = gvr.DataKey("CveProveedor").ToEntero + If CompraActual.CveMoneda = 1 AndAlso Pago.CveMonedaPago = 2 Then + CompraActual.TC = Pago.TCPago + End If + Select Case gvr.DataKey("TipoDocto") Case "NC", "DEV" CveConceptoCompra = If(CveMonedaAnticipo = 1, 60, 60) @@ -8638,8 +8595,8 @@ Partial Class Compras_Compras CveIE = -1 Pago.AplicaAcreditable = False Case "Egsc" - CveConceptoCompra = If(CveMonedaAnticipo = 1, 21, 21) - CveConceptoCompraComplementaria = 266 + 'CveConceptoCompra = If(CveMonedaAnticipo = 1, 21, 21) + 'CveConceptoCompraComplementaria = 266 IdCtaContable = If(CveMonedaAnticipo = 1, CtaProveedorAnticipos, CtaProveedorAnticiposExtranjera) IdCtaContableComp = CtaProveedorAnticiposComplementaria @@ -9791,68 +9748,6 @@ Partial Class Compras_Compras importeMovimiento = 0 IdCtaContable = 0 - ' Case 5 'Proveedores - ' Dim TieneConceptoProveedorAcreedor As Boolean = False - ' Dim CveIE As Integer = -1 - - ' 'If Not ObjConta.GetPrePolizasDetalleCompra(CveCompra, UsuarioActual.CveEmpresa) Then - ' ' ErrorPrepoliza = True - ' 'Else - ' ' If ObjConta.DtResultados.FiltraParametros("CveConceptoContable IN (5,305)").Rows.Count > 0 Then - ' ' TieneConceptoProveedorAcreedor = True - ' ' CveIE = ObjConta.DtResultados.FiltraParametros("CveConceptoContable = 6 OR CveConceptoContable = 68 OR CveConceptoContable = 49 OR CveConceptoContable = 205 OR CveConceptoContable = 176").Rows(0)("CveIE").ToString.ToEntero - ' ' End If - ' 'End If - - ' If TieneConceptoProveedorAcreedor Then - ' If CveTipoConcepto = 2 Then ConceptoContable = 305 'cuando es acreedor - ' Dim UsaComplementaria As Boolean = True - ' If tipoCambioActual <> 1 Then - ' Select Case ConceptoContable - ' Case 5 - ' ConceptoContable = 311 - ' Case 305 - ' ConceptoContable = 306 - ' Case Else - ' End Select - ' End If - - ' Dim importeProv As Decimal = 0 - ' importeProv = TxtTotal.Text.ToDecimal - - ' If Not DdlTipoComprobante.SelectedValue.Contiene("NC", "DEV") Then - - ' importeMovimiento = importeProv - ' importeMN = importeMovimiento * tipoCambioActual * Multiplicador - - ' If tipoCambioActual > 1 Then Referencia += $" TC{tipoCambioActual} ${importeMovimiento.FormatoNumero(2)}" - ' Dim CveConceptoContableComplementaria As Integer = 201 - ' If CveTipoConcepto = 2 Then CveConceptoContableComplementaria = 307 - - - - ' If tipoCambioActual = 1 Then - ' IdCtaContable = If(CveTipoConcepto = 2, CtaProveedorAcreedores, CtaProveedor) - ' Dim Concepto = $"{NombreProveedor} {TxtSerie.Text} - {TxtFolio.Text}" - - ' If Not ObjConta.AddPrePolizasDetalle(CvePrePoliza, TipoMovimiento, importeMovimiento, Referencia, ConceptoContable, Concepto, FechaMovimiento, IdCtaContable, -1, CveCompra:=CveCompra, CveSubProyecto:=-1, CveProveedor:=CveProveedor, CveIE:=CveIE, CvePersonal:=CvePersonal, CveCreditoDetalle:=-1, ImporteMX:=Math.Round(importeMN, 2, MidpointRounding.AwayFromZero), ImporteME:=If(tipoCambioActual = 1, 0, importeMovimiento), TipoCambio:=tipoCambioActual) Then - ' ErrorPrepoliza = True - ' Exit For - ' End If - - ' Else - ' IdCtaContable = CtaProveedorComplementaria - ' If importeMovimiento <> 0 AndAlso (IdCtaContable > 0 Or UsaComplementaria) Then 'Cuando tiene complementaria lo dividimos en dos Then - ' importeMN = importeMovimiento - ' If Not ObjConta.AddPrePolizasDetalle(CvePrePoliza, TipoMovimiento, 0, Referencia, CveConceptoContableComplementaria, Referencia, FechaMovimiento, IdCtaContable, -1, CveIE, CveCompra:=CveCompra, CveProveedor:=CveProveedor, ImporteMX:=importeMovimiento * tipoCambioActual - importeMovimiento, ImporteME:=importeMovimiento, TipoCambio:=tipoCambioActual) Then - ' ErrorPrepoliza = True - ' End If - ' End If - ' IdCtaContable = CtaProveedorExtranjera - ' End If - ' End If - ' End If - End Select Next End If @@ -10154,17 +10049,25 @@ Partial Class Compras_Compras If e.Row.DBCampo("Saldo").ToDouble < 0 Then e.Row.Cells(3).ForeColor = Drawing.Color.Red If e.Row.DBCampo("Saldo").ToDouble = 0 Then e.Row.FCLiteral("LtlAnticipos").Text = "" Dim ImporteAmortizacion As Decimal = If(ListaDocumentos IsNot Nothing AndAlso ListaDocumentos.Count > 0, TmpDT.SUMD("ImporteConImpuestos"), TxtTotal.Text.ToDecimal) - - e.Row.FCCheckBox("Chk").Attributes.Add("onclick", String.Format("chkAnt(this,{0},{1},{2});", e.Row.FCTextBox("TxtAnticipo").ClientID, e.Row.DBCampo("Saldo"), If(CveCompra > 0, Saldo, ImporteAmortizacion), e.Row.DBCampo("CveMoneda").ToEntero, If(Not e.Row.DBCampo("TCCompra").ToDouble > 1, GlobalTipoCambio(e.Row.DBCampo("Fecha").ToDate), e.Row.DBCampo("TCCompra").ToDouble), DdlMoneda.SelectedValue.ToEntero)) 'SI ES UNA COMPRA NUEVA SE PONE EL TOTAL, SI NO EL SALDO - - Dim tTCFecha As Double = If(Not e.Row.DBCampo("TCCompra").ToDouble > 1, GlobalTipoCambio(e.Row.DBCampo("Fecha").ToDate), e.Row.DBCampo("TCCompra").ToDouble) + + e.Row.FCCheckBox("Chk").Attributes.Add("onclick", String.Format("chkAnt(this,{0},{1},{2},{3},{4},{5},{6});", + e.Row.FCTextBox("TxtAnticipo").ClientID, + e.Row.DBCampo("Saldo"), + If(CveCompra > 0, CompraSaldo, ImporteAmortizacion), + e.Row.DBCampo("CveMoneda"), + tTCFecha, + DdlMoneda.SelectedValue, + IIf(DdlMoneda.SelectedValue = "1", 1, TxtTC.Text))) 'SI ES UNA COMPRA NUEVA SE PONE EL TOTAL, SI NO EL SALDO + + + If UsuarioActual.Empresa.CveEmpresa.Contiene(13, 83) Then e.Row.FCTextBox("TxtAnticipo").Attributes.Add("onKeyUp", String.Format("FnCambiaAnt({0},this,{1},{2},{3},{4},{5},{6});", e.Row.FCCheckBox("Chk").ClientID, e.Row.DBCampo("Saldo"), - If(CveCompra > 0, Saldo, ImporteAmortizacion), e.Row.DBCampo("CveMoneda").ToEntero, + If(CveCompra > 0, CompraSaldo, ImporteAmortizacion), e.Row.DBCampo("CveMoneda").ToEntero, tTCFecha, DdlMoneda.SelectedValue.ToEntero, e.Row.FCTextBox("TxtComision").ClientID)) 'SI ES UNA COMPRA NUEVA SE PONE EL TOTAL, SI NO EL SALDO @@ -10172,7 +10075,7 @@ Partial Class Compras_Compras e.Row.FCTextBox("TxtComision").Attributes.Add("onKeyUp", String.Format("FnCambiaAnt({0},{6},{1},{2},{3},{4},{5},this);", e.Row.FCCheckBox("Chk").ClientID, e.Row.DBCampo("Saldo"), - If(CveCompra > 0, Saldo, ImporteAmortizacion), + If(CveCompra > 0, CompraSaldo, ImporteAmortizacion), e.Row.DBCampo("CveMoneda").ToEntero, tTCFecha, DdlMoneda.SelectedValue.ToEntero, @@ -10181,7 +10084,7 @@ Partial Class Compras_Compras e.Row.FCTextBox("TxtAnticipo").Attributes.Add("onKeyUp", String.Format("FnCambiaAnt({0},this,{1},{2},{3},{4},{5});", e.Row.FCCheckBox("Chk").ClientID, e.Row.DBCampo("Saldo"), - If(CveCompra > 0, Saldo, ImporteAmortizacion), e.Row.DBCampo("CveMoneda").ToEntero, + If(CveCompra > 0, CompraSaldo, ImporteAmortizacion), e.Row.DBCampo("CveMoneda").ToEntero, tTCFecha, DdlMoneda.SelectedValue.ToEntero, e.Row.FCTextBox("TxtComision").ClientID)) 'SI ES UNA COMPRA NUEVA SE PONE EL TOTAL, SI NO EL SALDO @@ -10189,7 +10092,7 @@ Partial Class Compras_Compras e.Row.FCTextBox("TxtComision").Attributes.Add("onKeyUp", String.Format("FnCambiaAnt({0},{6},{1},{2},{3},{4},{5},this);", e.Row.FCCheckBox("Chk").ClientID, e.Row.DBCampo("Saldo"), - If(CveCompra > 0, Saldo, ImporteAmortizacion), + If(CveCompra > 0, CompraSaldo, ImporteAmortizacion), e.Row.DBCampo("CveMoneda").ToEntero, tTCFecha, DdlMoneda.SelectedValue.ToEntero, @@ -20424,7 +20327,7 @@ Partial Class Compras_Compras Dim MensajeProducto As String = "" Dim MensajeCantidad As String = "" Dim MensajeImporte As String = "" - If objContratos.ValidaPSContrato(TempPS) Then + If TempPS <> "" AndAlso objContratos.ValidaPSContrato(TempPS) Then If objContratos.DtResultados.Rows.Count > 0 Then MensajeProducto = "Los siguientes productos no pertenece al contrato seleccionado: " MensajeCantidad = "Los siguientes productos sobrepasan la cantidad faltante del contrato seleccionado: " @@ -20461,7 +20364,7 @@ Partial Class Compras_Compras If DtPS.MAX("CveSubProyecto", "CveSubProyecto IS NOT NULL").ToEntero > 0 AndAlso DtPS.MAX("CvePS", "CvePS IS NOT NULL").ToEntero > 0 Then Dim TempPS As String = JsonConvert.SerializeObject(DtPS).ToString - If ObjContratos.GetPSContratoDetalle(CveContrato, TempPS) Then + If TempPS <> "" AndAlso ObjContratos.GetPSContratoDetalle(CveContrato, TempPS) Then DtpsTemp = ObjContratos.DtResultados End If ObjContratos.Dispose()