-validacion al final

This commit is contained in:
2023-04-26 15:55:25 -07:00
parent 8fb6be35b1
commit ad7b731f73
2 changed files with 76 additions and 185 deletions

View File

@@ -4845,7 +4845,7 @@
<div class="row">
<div class="col-md-12">
<asp:GridView ID="GvFacturaNC" OnRowDataBound="GvFacturaNC_RowDataBound"
DataKeyNames="CveCompra,TipoCambio,CveTipoConcepto,UUID,Saldo,SerieFolio,Fecha,CveMoneda" runat="server" AutoGenerateColumns="false" GridLines="None" CssClass="table table-striped table-hover Widthall ScrollAD">
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">
<Columns>
<asp:TemplateField>
<ItemTemplate>
@@ -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;

View File

@@ -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($" <a class='Texto' target='_blank' href=""/Compras/PopUpVerFactura.aspx?P={TempParametros}""> <i class='fa fa-file-pdf-o' aria-hidden='true'></i> Imprimir </a>")
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()