From d287f481a84809afcb39c3a95d75d4bd48b693ba Mon Sep 17 00:00:00 2001 From: rrene Date: Sat, 18 Sep 2021 12:47:47 -0700 Subject: [PATCH 1/9] =?UTF-8?q?--=20cmabios=20en=20mejora=20de=20Saldosde?= =?UTF-8?q?=20mercanc=C3=ADa=20en=20tr=C3=A1nsito=20cuando=20es=20NC=20y?= =?UTF-8?q?=20sus=20impuestos?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- Compras/Compras.aspx | 2 +- Compras/Compras.aspx.vb | 46 ++++++++++++++++++++++++++++++++++------- 2 files changed, 40 insertions(+), 8 deletions(-) diff --git a/Compras/Compras.aspx b/Compras/Compras.aspx index ec9888e62..52d7f470c 100644 --- a/Compras/Compras.aspx +++ b/Compras/Compras.aspx @@ -4835,7 +4835,7 @@
- + diff --git a/Compras/Compras.aspx.vb b/Compras/Compras.aspx.vb index a389a2184..ef527e830 100644 --- a/Compras/Compras.aspx.vb +++ b/Compras/Compras.aspx.vb @@ -6071,12 +6071,36 @@ Partial Class Compras_Compras If chkImportacion.Checked Then ConceptoContable = 287 End If - If ObjConta.GetRetCuenta(ConceptoContable, UsuarioActual.CveEmpresa) And Not IdCtaContable > 0 Then If ObjConta.DtResultados.Rows.Count > 0 Then IdCtaContable = ObjConta.DtResultados.Rows(0)("IdCuentaIVAxAcreditar").ToString.ToEntero End If End If + 'si aplica NC sobre mov de almacen, el impuesto lo toma de la Factura.para la consideracion de mcia en tránsito + + If ChkNCInvNC.Checked And CveMoneda <> 1 AndAlso importeMovimiento > 0 Then + + Dim diferenciaTransito As Decimal = 0 + For Each Gvr As GridViewRow In GVNCInvAlmacen.Rows + If Gvr.FCTextBox("TxtCantidadNCInv").Text.ToDouble > 0 Then + + 'Dim DifTC As Decimal = tipoCambioActual - Gvr.DataKey("TipoCambio").ToDecimal + 'diferenciaTransito = DifTC * (Gvr.DataKey("IVA").ToDecimal / Gvr.FCTextBox("TxtCantidadNCInv").Text.ToDecimal) + 'diferenciaTransito += DifTC * (Gvr.DataKey("IEPSPS").ToDecimal / Gvr.FCTextBox("TxtCantidadNCInv").Text.ToDecimal) + importeMN = (Gvr.DataKey("IVA").ToDecimal.RoundSQL * Gvr.DataKey("TipoCambio").ToDecimal * Multiplicador).RoundSQL + 'se registra por cada compra relacionada + + + If Not ObjConta.AddPrePolizasDetalle(CvePrePoliza, TipoMovimiento, importeMN, Referencia, 14, Concepto, FechaMovimiento, IdCtaContable, -1, CveCompra:=CveCompra, CveCompraAmortizacion:=Gvr.DataKey("CveCompra").ToEntero, CveProveedor:=CveProveedorConcepto, ImporteMX:=importeMN, ImporteME:=If(tipoCambioActual = 1, 0, importeMovimiento), TipoCambio:=Gvr.DataKey("TipoCambio").ToDecimal, PorcentajeImpuesto:=PorcentajeImpuesto, Contabilizable:=SeContabiliza) Then + ErrorPrepoliza = True + End If + End If + Next + importeMovimiento = 0 + importeMN = 0 + End If + + Case 287 'IVA X Acreditar importeMovimiento = importeIVAxAcreditar @@ -6790,6 +6814,7 @@ Partial Class Compras_Compras End If Next + Dim diferenciaTransito As Decimal = 0 For Each Gvr As GridViewRow In GVNCInvAlmacen.Rows If Gvr.FCTextBox("TxtCantidadNCInv").Text.ToDouble > 0 Then Dim importeMNTemp As Decimal = 0 @@ -6797,6 +6822,9 @@ Partial Class Compras_Compras ErrorMovInv = True Exit For End If + Dim DifTC As Decimal = tipoCambioActual - Gvr.DataKey("TipoCambio").ToDecimal + 'diferenciaTransito = DifTC * (Gvr.DataKey("IVA").ToDecimal / Gvr.FCTextBox("TxtCantidadNCInv").Text.ToDecimal) + 'diferenciaTransito += DifTC * (Gvr.DataKey("IEPSPS").ToDecimal / Gvr.FCTextBox("TxtCantidadNCInv").Text.ToDecimal) importeMNTemp = (Gvr.DataKey("PU").ToDecimal * Gvr.FCTextBox("TxtCantidadNCInv").Text.ToDecimal * Gvr.DataKey("TipoCambio").ToDecimal).RoundSQL ImporteTransito += importeMNTemp 'se registra por cada compra relacionada @@ -6806,18 +6834,22 @@ Partial Class Compras_Compras End If Next - 'si hay diferencia - Dim diferenciaTransito As Decimal = ImporteTransito - importeMN.RoundSQL + + 'la diferencia se va aplicar sobre los + + 'Dim diferenciaTransito As Decimal = ImporteTransito - importeMN.RoundSQL If diferenciaTransito <> 0 Then Dim tCveCon As Integer = 65 + IdCtaContable = UsuarioActual.Empresa.IdCuentaPerdidaCambiaria If diferenciaTransito < 0 Then tCveCon = 64 + IdCtaContable = UsuarioActual.Empresa.IdCuentaGananciaCambiaria End If - diferenciaTransito = diferenciaTransito.Abs - IdCtaContable = 0 - If Not ObjConta.AddPrePolizasDetalle(CvePrePoliza, If(tCveCon = 64, True, False), diferenciaTransito, Referencia, tCveCon, Concepto, FechaMovimiento, IdCtaContable, -1, CveCompra:=CveCompra, CveProveedor:=CveProveedorConcepto, ImporteMX:=diferenciaTransito, ImporteME:=If(tipoCambioActual = 1, 0, importeMovimiento), TipoCambio:=1, CveMovimientoAlmacen:=CveMovimientoDevolucion, Contabilizable:=SeContabiliza) Then + diferenciaTransito = Math.Abs(diferenciaTransito) + + If Not ObjConta.AddPrePolizasDetalle(CvePrePoliza, If(tCveCon = 64, True, False), diferenciaTransito, Referencia, tCveCon, Concepto, FechaMovimiento, IdCtaContable, -1, CveCompra:=CveCompra, CveProveedor:=CveProveedorConcepto, ImporteMX:=diferenciaTransito, ImporteME:=If(tipoCambioActual = 1, 0, importeMovimiento), TipoCambio:=1, CveMovimientoAlmacen:=CveMovimientoDevolucion, Contabilizable:=SeContabiliza, CveSubProyecto:=CveSubProyecto) Then ErrorPrepoliza = True End If End If @@ -6973,7 +7005,7 @@ Partial Class Compras_Compras tidctacon = ViewState("CtaProveedorAnticiposExtranjera").ToString.ToEntero End If - ElseIf DdlTipoComprobante.SelectedValue = "NC" AndAlso UsuarioActual.Empresa.Funcionalidad(405).ToEntero > 0 Then + ElseIf DdlTipoComprobante.SelectedValue = "NC" Then tcvecon = 259 tidctacon = UsuarioActual.Empresa.Funcionalidad(405).ToEntero From 252a6e9a25061393f1cf6991fd2f128119fdd935 Mon Sep 17 00:00:00 2001 From: rakcsle Date: Tue, 21 Sep 2021 16:09:03 -0700 Subject: [PATCH 2/9] Consulta lenta --- Bancos/PopIEVentas.aspx.vb | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/Bancos/PopIEVentas.aspx.vb b/Bancos/PopIEVentas.aspx.vb index 330068893..1336491e0 100644 --- a/Bancos/PopIEVentas.aspx.vb +++ b/Bancos/PopIEVentas.aspx.vb @@ -561,7 +561,7 @@ Partial Class Bancos_PopIEVentas MovimientoPagar = Nothing ArrIE = New ArrayList() ArrIEFuncionariosEmpleados = New ArrayList() - RFCCliente = "" + RFCCliente = "-1" TxtFechaDocumento.Text = Now.ToShortDateString From 92f213c14f377dfecb33609ba081f910105cde43 Mon Sep 17 00:00:00 2001 From: rakcsle Date: Wed, 22 Sep 2021 09:50:23 -0700 Subject: [PATCH 3/9] CveSubProyecto Concepto 25 --- Compras/Compras.aspx.vb | 1 + 1 file changed, 1 insertion(+) diff --git a/Compras/Compras.aspx.vb b/Compras/Compras.aspx.vb index 5a0045c9c..2a15a440e 100644 --- a/Compras/Compras.aspx.vb +++ b/Compras/Compras.aspx.vb @@ -6093,6 +6093,7 @@ Partial Class Compras_Compras Case 25 'IEPS X Acreditar If Not DdlTipoComprobante.SelectedValue.Contiene("Ant") Then + CveSubProyectoInsertar = CveSubProyecto importeMovimiento = ImporteIEPSxAcreditar importeMN = Math.Round(importeMovimiento, 2) * tipoCambioActual * Multiplicador If tipoCambioActual > 1 Then Concepto += $" TC{tipoCambioActual} ${importeMovimiento.FormatoNumero(2)}" From 7d49ea4257b990ef1f6fe87627f185b4377c934e Mon Sep 17 00:00:00 2001 From: rrene Date: Wed, 22 Sep 2021 11:05:09 -0700 Subject: [PATCH 4/9] -- cambios en dispose --- App_Code/ClsGPS.vb | 15 ++++++++------- App_Code/ClsSisNotificaciones.vb | 18 +++++++++--------- App_Code/ClsVentas.vb | 12 ++++++------ 3 files changed, 23 insertions(+), 22 deletions(-) diff --git a/App_Code/ClsGPS.vb b/App_Code/ClsGPS.vb index a16f069eb..790d42e8d 100644 --- a/App_Code/ClsGPS.vb +++ b/App_Code/ClsGPS.vb @@ -5695,18 +5695,19 @@ Public Class ClsGPS If Not disposedValue Then If disposing Then ' TODO: Liberar otro estado (objetos administrados). - If Not Data Is Nothing Then Data.Dispose() + If Not Data Is Nothing Then Data.Dispose() : Data = Nothing If Not Dataset Is Nothing Then Dataset.Clear() Dataset.Dispose() + Dataset = Nothing End If - If Not DtPosiciones Is Nothing Then DtPosiciones.Dispose() - If Not SqlAdapter Is Nothing Then SqlAdapter.Dispose() - If Not SqlCommand Is Nothing Then SqlCommand.Dispose() - If Not SqlTransacc Is Nothing Then SqlTransacc.Dispose() + If Not DtPosiciones Is Nothing Then DtPosiciones.Dispose() : DtPosiciones = Nothing + If Not SqlAdapter Is Nothing Then SqlAdapter.Dispose() : SqlAdapter = Nothing + If Not SqlCommand Is Nothing Then SqlCommand.Dispose() : SqlCommand = Nothing + If Not SqlTransacc Is Nothing Then SqlTransacc.Dispose() : SqlTransacc = Nothing If SqlConexion.State <> ConnectionState.Closed Then SqlConexion.Close() - If Not SqlConexion Is Nothing Then SqlConexion.Dispose() - + If Not SqlConexion Is Nothing Then SqlConexion.Dispose() : SqlConexion = Nothing + End If ' TODO: Liberar su propio estado (objetos no administrados). diff --git a/App_Code/ClsSisNotificaciones.vb b/App_Code/ClsSisNotificaciones.vb index 4aafd6454..37eb2e654 100644 --- a/App_Code/ClsSisNotificaciones.vb +++ b/App_Code/ClsSisNotificaciones.vb @@ -2066,19 +2066,19 @@ Public Class ClsSisNotificaciones If disposing Then ' TODO: Liberar otro estado (objetos administrados). SqlConexion.Close() - SqlConexion.Dispose() + SqlConexion.Dispose() : SqlConexion = Nothing If Not DataSet Is Nothing Then DataSet.Clear() - DataSet.Dispose() + DataSet.Dispose() : DataSet = Nothing End If - If Not Data Is Nothing Then Data.Dispose() - If Not DTNotificacionesGPS Is Nothing Then DTNotificacionesGPS.Dispose() - If Not DTNotificacionesERP Is Nothing Then DTNotificacionesERP.Dispose() - If Not DTNotificacionesArmadas Is Nothing Then DTNotificacionesArmadas.Dispose() - If Not DTReportesProgramados Is Nothing Then DTReportesProgramados.Dispose() + If Not Data Is Nothing Then Data.Dispose() : Data = Nothing + If Not DTNotificacionesGPS Is Nothing Then DTNotificacionesGPS.Dispose() : DTNotificacionesGPS = Nothing + If Not DTNotificacionesERP Is Nothing Then DTNotificacionesERP.Dispose() : DTNotificacionesERP = Nothing + If Not DTNotificacionesArmadas Is Nothing Then DTNotificacionesArmadas.Dispose() : DTNotificacionesArmadas = Nothing + If Not DTReportesProgramados Is Nothing Then DTReportesProgramados.Dispose() : DTNotificacionesGPS = Nothing NotificacionesBitacora = "" - If Not SqlAdapter Is Nothing Then SqlAdapter.Dispose() - If Not SqlCommand Is Nothing Then SqlCommand.Dispose() + If Not SqlAdapter Is Nothing Then SqlAdapter.Dispose() : SqlAdapter = Nothing + If Not SqlCommand Is Nothing Then SqlCommand.Dispose() : SqlCommand = Nothing End If ' TODO: Liberar su propio estado (objetos no administrados). diff --git a/App_Code/ClsVentas.vb b/App_Code/ClsVentas.vb index c8a9c42e7..cee7e3770 100644 --- a/App_Code/ClsVentas.vb +++ b/App_Code/ClsVentas.vb @@ -5257,13 +5257,13 @@ Public Class ClsVentas If Not Me.disposedValue Then If disposing Then ' TODO: dispose managed state (managed objects). - If Not Data Is Nothing Then Data.Dispose() - If Not Dataset Is Nothing Then Dataset.Dispose() - If Not SqlAdapter Is Nothing Then SqlAdapter.Dispose() - If Not SqlCommand Is Nothing Then SqlCommand.Dispose() - If Not SqlTransacc Is Nothing Then SqlTransacc.Dispose() + If Not Data Is Nothing Then Data.Dispose() : Data = Nothing + If Not Dataset Is Nothing Then Dataset.Dispose() : Dataset = Nothing + If Not SqlAdapter Is Nothing Then SqlAdapter.Dispose() : SqlAdapter = Nothing + If Not SqlCommand Is Nothing Then SqlCommand.Dispose() : SqlCommand = Nothing + If Not SqlTransacc Is Nothing Then SqlTransacc.Dispose() : SqlTransacc = Nothing If SqlConexion.State <> ConnectionState.Closed Then SqlConexion.Close() - If Not SqlConexion Is Nothing Then SqlConexion.Dispose() + If Not SqlConexion Is Nothing Then SqlConexion.Dispose() : SqlConexion = Nothing End If ' TODO: free unmanaged resources (unmanaged objects) and override Finalize() below. From 0ebfd8302af8ca4074726892f572d43c299037e3 Mon Sep 17 00:00:00 2001 From: rakcsle Date: Wed, 22 Sep 2021 15:04:23 -0700 Subject: [PATCH 5/9] Dispose en clases --- App_Code/ClsAC.vb | 10 ++-- App_Code/ClsAC2.vb | 9 ++-- App_Code/ClsAF.vb | 11 ++-- App_Code/ClsAIMMGM.vb | 11 ++-- App_Code/ClsAcarreos.vb | 9 ++-- App_Code/ClsAcumuladores.vb | 14 ++--- App_Code/ClsBancos.vb | 12 +++-- App_Code/ClsBase.vb | 11 ++-- App_Code/ClsCGame.vb | 11 ++-- App_Code/ClsCRM.vb | 12 +++-- App_Code/ClsClaseBase.vb | 4 ++ App_Code/ClsClasificaciones.vb | 16 +++--- App_Code/ClsClientes.vb | 16 +++--- App_Code/ClsCompEstatusFactura.vb | 9 ++-- App_Code/ClsCompProveedores.vb | 10 ++-- App_Code/ClsCompras.vb | 9 ++-- App_Code/ClsContPAQi.vb | 14 ++--- App_Code/ClsContPAQi2.vb | 14 ++--- App_Code/ClsContabilidad.vb | 13 +++-- App_Code/ClsContratos.vb | 14 ++--- App_Code/ClsDG.vb | 11 ++-- App_Code/ClsDesarrollo.vb | 9 ++-- App_Code/ClsEdoc.vb | 10 ++-- App_Code/ClsEdocumentacion.vb | 14 ++--- App_Code/ClsEdosFinancieros.vb | 12 +++-- App_Code/ClsEncuestas.vb | 12 +++-- App_Code/ClsEsquemasComisiones.vb | 11 ++-- App_Code/ClsEstatusFactura.vb | 9 ++-- App_Code/ClsEventos.vb | 8 +-- App_Code/ClsFISConfiguracion.vb | 9 ++-- App_Code/ClsFinanzas.vb | 11 ++-- App_Code/ClsFlotillas.vb | 11 ++-- App_Code/ClsGPS.vb | 30 ++++++----- App_Code/ClsGPSHerramientas.vb | 11 ++-- App_Code/ClsGenerales.vb | 52 +++++++++++------- App_Code/ClsGralFolios.vb | 12 +++-- ...lsGralProductosServiciosCaracteristicas.vb | 10 ++-- App_Code/ClsImpuestos.vb | 11 ++-- App_Code/ClsIndicadores.vb | 10 ++-- App_Code/ClsInventarios.vb | 9 ++-- App_Code/ClsLeyendasFiscales.vb | 9 ++-- App_Code/ClsMF.vb | 11 ++-- App_Code/ClsMetodosPagos.vb | 9 ++-- App_Code/ClsModulos.vb | 9 ++-- App_Code/ClsMonedas.vb | 9 ++-- App_Code/ClsMovimientos.vb | 17 +++--- App_Code/ClsNominas.vb | 13 +++-- App_Code/ClsOC.vb | 10 ++-- App_Code/ClsOIEventos.vb | 14 ++--- App_Code/ClsOS.vb | 10 ++-- App_Code/ClsPV.vb | 11 ++-- App_Code/ClsPresupuestos.vb | 10 ++-- App_Code/ClsProductosServicios.vb | 10 ++-- App_Code/ClsProsEncuestas.vb | 9 ++-- App_Code/ClsProspectos.vb | 11 ++-- App_Code/ClsProyectos.vb | 10 ++-- App_Code/ClsPruebasJJMQ.vb | 11 ++-- App_Code/ClsPuntoVenta.vb | 10 ++-- App_Code/ClsRH.vb | 10 ++-- App_Code/ClsRMA.vb | 12 +++-- App_Code/ClsSAT.vb | 9 ++-- App_Code/ClsSCTLicencias.vb | 13 +++-- App_Code/ClsSeguimiento.vb | 8 +-- App_Code/ClsSisEmpresas.vb | 17 +++--- App_Code/ClsSisNotificaciones.vb | 35 ++++++------ App_Code/ClsSisParametros.vb | 15 +++--- App_Code/ClsSisProcesos.vb | 10 ++-- App_Code/ClsSisRoles.vb | 11 ++-- App_Code/ClsSisUsuarios.vb | 16 +++--- App_Code/ClsStiReports.vb | 11 ++-- App_Code/ClsSubProyectos.vb | 14 ++--- App_Code/ClsSucursales.vb | 10 ++-- App_Code/ClsTemporal.vb | 11 ++-- App_Code/ClsTiposEventos.vb | 9 ++-- App_Code/ClsUnidadesMedida.vb | 10 ++-- App_Code/ClsVentas.vb | 18 ++++--- App_Code/ClsVtaPromociones.vb | 10 ++-- App_Code/ClsVtaVendedores.vb | 14 ++--- Ventas/CatClientes.aspx | 54 ++++--------------- Ventas/CatClientes.aspx.vb | 19 +++++-- 80 files changed, 583 insertions(+), 447 deletions(-) diff --git a/App_Code/ClsAC.vb b/App_Code/ClsAC.vb index f3b7100ec..45e0a37f1 100644 --- a/App_Code/ClsAC.vb +++ b/App_Code/ClsAC.vb @@ -3245,11 +3245,13 @@ Public Class ClsAC Protected Overridable Sub Dispose(disposing As Boolean) If Not Me.disposedValue Then If disposing Then - If Not Data Is Nothing Then Data.Dispose() - If Not SqlAdapter Is Nothing Then SqlAdapter.Dispose() - If Not SqlCommand Is Nothing Then SqlCommand.Dispose() + If Not Data Is Nothing Then Data.Dispose() : Data = Nothing + + If Not SqlAdapter Is Nothing Then SqlAdapter.Dispose() : SqlAdapter = Nothing + If Not SqlCommand Is Nothing Then SqlCommand.Dispose() : SqlCommand = Nothing + If Not SqlTransacc Is Nothing Then SqlTransacc.Dispose() : SqlTransacc = Nothing If SqlConexion.State <> ConnectionState.Closed Then SqlConexion.Close() - If Not SqlConexion Is Nothing Then SqlConexion.Dispose() + If Not SqlConexion Is Nothing Then SqlConexion.Dispose() : SqlConexion = Nothing End If End If Me.disposedValue = True diff --git a/App_Code/ClsAC2.vb b/App_Code/ClsAC2.vb index 2a51e1786..50fbb9284 100644 --- a/App_Code/ClsAC2.vb +++ b/App_Code/ClsAC2.vb @@ -152,11 +152,12 @@ Public Class ClsAC2 Protected Overridable Sub Dispose(disposing As Boolean) If Not Me.disposedValue Then If disposing Then - If Not Data Is Nothing Then Data.Dispose() - If Not SqlAdapter Is Nothing Then SqlAdapter.Dispose() - If Not SqlCommand Is Nothing Then SqlCommand.Dispose() + If Not Data Is Nothing Then Data.Dispose() : Data = Nothing + If Not SqlAdapter Is Nothing Then SqlAdapter.Dispose() : SqlAdapter = Nothing + If Not SqlCommand Is Nothing Then SqlCommand.Dispose() : SqlCommand = Nothing + If Not SqlTransacc Is Nothing Then SqlTransacc.Dispose() : SqlTransacc = Nothing If SqlConexion.State <> ConnectionState.Closed Then SqlConexion.Close() - If Not SqlConexion Is Nothing Then SqlConexion.Dispose() + If Not SqlConexion Is Nothing Then SqlConexion.Dispose() : SqlConexion = Nothing End If End If Me.disposedValue = True diff --git a/App_Code/ClsAF.vb b/App_Code/ClsAF.vb index cd7bbc863..1ddd0ed3a 100644 --- a/App_Code/ClsAF.vb +++ b/App_Code/ClsAF.vb @@ -4520,10 +4520,13 @@ Public Class ClsAF If Not disposedValue Then If disposing Then ' TODO: Liberar otro estado (objetos administrados). - SqlConexion.Close() - SqlConexion.Dispose() - If Not Data Is Nothing Then Data.Dispose() - If Not SqlAdapter Is Nothing Then SqlAdapter.Dispose() + If Not Data Is Nothing Then Data.Dispose() : Data = Nothing + If Not DSet Is Nothing Then DSet.Dispose() : DSet = Nothing + If Not SqlAdapter Is Nothing Then SqlAdapter.Dispose() : SqlAdapter = Nothing + If Not SqlCommand Is Nothing Then SqlCommand.Dispose() : SqlCommand = Nothing + If Not SqlTransacc Is Nothing Then SqlTransacc.Dispose() : SqlTransacc = Nothing + If SqlConexion.State <> ConnectionState.Closed Then SqlConexion.Close() + If Not SqlConexion Is Nothing Then SqlConexion.Dispose() : SqlConexion = Nothing End If diff --git a/App_Code/ClsAIMMGM.vb b/App_Code/ClsAIMMGM.vb index b9268d0f6..58eb962a9 100644 --- a/App_Code/ClsAIMMGM.vb +++ b/App_Code/ClsAIMMGM.vb @@ -746,11 +746,12 @@ Public Class ClsAIMMGM If Not disposedValue Then If disposing Then ' TODO: Liberar otro estado (objetos administrados). - SqlConexion.Close() - SqlConexion.Dispose() - If Not Data Is Nothing Then Data.Dispose() - If Not SqlAdapter Is Nothing Then SqlAdapter.Dispose() - If Not SqlCommand Is Nothing Then SqlCommand.Dispose() + If Not Data Is Nothing Then Data.Dispose() : Data = Nothing + If Not SqlAdapter Is Nothing Then SqlAdapter.Dispose() : SqlAdapter = Nothing + If Not SqlCommand Is Nothing Then SqlCommand.Dispose() : SqlCommand = Nothing + If Not SqlTransacc Is Nothing Then SqlTransacc.Dispose() : SqlTransacc = Nothing + If SqlConexion.State <> ConnectionState.Closed Then SqlConexion.Close() + If Not SqlConexion Is Nothing Then SqlConexion.Dispose() : SqlConexion = Nothing End If diff --git a/App_Code/ClsAcarreos.vb b/App_Code/ClsAcarreos.vb index 6c42c9419..0c1a3abe6 100644 --- a/App_Code/ClsAcarreos.vb +++ b/App_Code/ClsAcarreos.vb @@ -1350,11 +1350,12 @@ Public Class ClsAcarreos Protected Overridable Sub Dispose(disposing As Boolean) If Not Me.disposedValue Then If disposing Then - If Not Data Is Nothing Then Data.Dispose() - If Not SqlAdapter Is Nothing Then SqlAdapter.Dispose() - If Not SqlCommand Is Nothing Then SqlCommand.Dispose() + If Not Data Is Nothing Then Data.Dispose() : Data = Nothing + If Not SqlAdapter Is Nothing Then SqlAdapter.Dispose() : SqlAdapter = Nothing + If Not SqlCommand Is Nothing Then SqlCommand.Dispose() : SqlCommand = Nothing + If Not SqlTransacc Is Nothing Then SqlTransacc.Dispose() : SqlTransacc = Nothing If SqlConexion.State <> ConnectionState.Closed Then SqlConexion.Close() - If Not SqlConexion Is Nothing Then SqlConexion.Dispose() + If Not SqlConexion Is Nothing Then SqlConexion.Dispose() : SqlConexion = Nothing End If End If Me.disposedValue = True diff --git a/App_Code/ClsAcumuladores.vb b/App_Code/ClsAcumuladores.vb index 7f01aa20f..4f8badf3f 100644 --- a/App_Code/ClsAcumuladores.vb +++ b/App_Code/ClsAcumuladores.vb @@ -1232,12 +1232,14 @@ Public Class ClsAcumuladores ' IDisposable Protected Overridable Sub Dispose(ByVal disposing As Boolean) If Not disposedValue Then - If disposing Then - ' TODO: Liberar otro estado (objetos administrados). - SqlConexion.Close() - SqlConexion.Dispose() - If Not Data Is Nothing Then Data.Dispose() - If Not SqlAdapter Is Nothing Then SqlAdapter.Dispose() + If disposing Then + + If Not Data Is Nothing Then Data.Dispose() : Data = Nothing + If Not DSet Is Nothing Then DSet.Dispose() : DSet = Nothing + If Not SqlAdapter Is Nothing Then SqlAdapter.Dispose() : SqlAdapter = Nothing + If Not SqlTransacc Is Nothing Then SqlTransacc.Dispose() : SqlTransacc = Nothing + If SqlConexion.State <> ConnectionState.Closed Then SqlConexion.Close() + If Not SqlConexion Is Nothing Then SqlConexion.Dispose() : SqlConexion = Nothing End If diff --git a/App_Code/ClsBancos.vb b/App_Code/ClsBancos.vb index 858a38c2f..72ba56b54 100644 --- a/App_Code/ClsBancos.vb +++ b/App_Code/ClsBancos.vb @@ -4273,12 +4273,14 @@ Public Class ClsBancos If Not Me.disposedValue Then If disposing Then ' TODO: dispose managed state (managed objects). - If Not Data Is Nothing Then Data.Dispose() - If Not SqlAdapter Is Nothing Then SqlAdapter.Dispose() - If Not SqlCommand Is Nothing Then SqlCommand.Dispose() - If Not SqlTransacc Is Nothing Then SqlTransacc.Dispose() + + If Not Data Is Nothing Then Data.Dispose() : Data = Nothing + If Not SqlAdapter Is Nothing Then SqlAdapter.Dispose() : SqlAdapter = Nothing + If Not SqlCommand Is Nothing Then SqlCommand.Dispose() : SqlCommand = Nothing + If Not SqlTransacc Is Nothing Then SqlTransacc.Dispose() : SqlTransacc = Nothing If SqlConexion.State <> ConnectionState.Closed Then SqlConexion.Close() - If Not SqlConexion Is Nothing Then SqlConexion.Dispose() + If Not SqlConexion Is Nothing Then SqlConexion.Dispose() : SqlConexion = Nothing + End If ' TODO: free unmanaged resources (unmanaged objects) and override Finalize() below. diff --git a/App_Code/ClsBase.vb b/App_Code/ClsBase.vb index 73949c0f0..77d090808 100644 --- a/App_Code/ClsBase.vb +++ b/App_Code/ClsBase.vb @@ -181,13 +181,12 @@ Public Class ClsBase If Not disposedValue Then If disposing Then ' TODO: Liberar otro estado (objetos administrados). - If Not SqlConexion Is Nothing Then - CerrarConexion() - SqlConexion.Dispose() - End If - If Not Data Is Nothing Then Data.Dispose() - If Not SqlAdapter Is Nothing Then SqlAdapter.Dispose() + If Not Data Is Nothing Then Data.Dispose() : Data = Nothing + If Not SqlAdapter Is Nothing Then SqlAdapter.Dispose() : SqlAdapter = Nothing + If Not sqlCommand Is Nothing Then sqlCommand.Dispose() : sqlCommand = Nothing + If SqlConexion.State <> ConnectionState.Closed Then SqlConexion.Close() + If Not SqlConexion Is Nothing Then SqlConexion.Dispose() : SqlConexion = Nothing End If diff --git a/App_Code/ClsCGame.vb b/App_Code/ClsCGame.vb index 50d497b46..dc66c337d 100644 --- a/App_Code/ClsCGame.vb +++ b/App_Code/ClsCGame.vb @@ -3400,11 +3400,14 @@ Public Class ClsCGame Protected Overridable Sub Dispose(disposing As Boolean) If Not Me.disposedValue Then If disposing Then - If Not Data Is Nothing Then Data.Dispose() - If Not SqlAdapter Is Nothing Then SqlAdapter.Dispose() - If Not SqlCommand Is Nothing Then SqlCommand.Dispose() + + If Not Data Is Nothing Then Data.Dispose() : Data = Nothing + If Not SqlAdapter Is Nothing Then SqlAdapter.Dispose() : SqlAdapter = Nothing + If Not SqlCommand Is Nothing Then SqlCommand.Dispose() : SqlCommand = Nothing + If Not SqlTransacc Is Nothing Then SqlTransacc.Dispose() : SqlTransacc = Nothing If SqlConexion.State <> ConnectionState.Closed Then SqlConexion.Close() - If Not SqlConexion Is Nothing Then SqlConexion.Dispose() + If Not SqlConexion Is Nothing Then SqlConexion.Dispose() : SqlConexion = Nothing + End If End If Me.disposedValue = True diff --git a/App_Code/ClsCRM.vb b/App_Code/ClsCRM.vb index 76da1aa43..334a04744 100644 --- a/App_Code/ClsCRM.vb +++ b/App_Code/ClsCRM.vb @@ -1137,11 +1137,15 @@ Public Class ClsCRM Protected Overridable Sub Dispose(disposing As Boolean) If Not Me.disposedValue Then If disposing Then - If Not Data Is Nothing Then Data.Dispose() - If Not SqlAdapter Is Nothing Then SqlAdapter.Dispose() - If Not SqlCommand Is Nothing Then SqlCommand.Dispose() + + If Not Data Is Nothing Then Data.Dispose() : Data = Nothing + If Not DSet Is Nothing Then DSet.Dispose() : DSet = Nothing + If Not SqlAdapter Is Nothing Then SqlAdapter.Dispose() : SqlAdapter = Nothing + If Not SqlCommand Is Nothing Then SqlCommand.Dispose() : SqlCommand = Nothing + If Not SqlTransacc Is Nothing Then SqlTransacc.Dispose() : SqlTransacc = Nothing If SqlConexion.State <> ConnectionState.Closed Then SqlConexion.Close() - If Not SqlConexion Is Nothing Then SqlConexion.Dispose() + If Not SqlConexion Is Nothing Then SqlConexion.Dispose() : SqlConexion = Nothing + End If End If Me.disposedValue = True diff --git a/App_Code/ClsClaseBase.vb b/App_Code/ClsClaseBase.vb index d5857b782..ca229a5e4 100644 --- a/App_Code/ClsClaseBase.vb +++ b/App_Code/ClsClaseBase.vb @@ -247,6 +247,7 @@ Public Class ClsClaseBase SqlConexion.Close() End Sub #End Region + Public Sub Dispose() Implements IDisposable.Dispose ConexionClose() If (SqlConexion IsNot Nothing) Then @@ -279,6 +280,9 @@ Public Class ClsClaseBase End Sub + + + End Class Public Class parametroQuery diff --git a/App_Code/ClsClasificaciones.vb b/App_Code/ClsClasificaciones.vb index a321f9f37..7c7e28372 100644 --- a/App_Code/ClsClasificaciones.vb +++ b/App_Code/ClsClasificaciones.vb @@ -610,13 +610,15 @@ Public Class ClsClasificaciones ' IDisposable Protected Overridable Sub Dispose(disposing As Boolean) If Not Me.disposedValue Then - If disposing Then - ' TODO: dispose managed state (managed objects). - If Not Data Is Nothing Then Data.Dispose() - If Not SqlAdapter Is Nothing Then SqlAdapter.Dispose() - If Not SqlCommand Is Nothing Then SqlCommand.Dispose() - If SqlConexion.State <> ConnectionState.Closed Then SqlConexion.Close() - If Not SqlConexion Is Nothing Then SqlConexion.Dispose() + If disposing Then + ' TODO: dispose managed state (managed objects). + If Not Data Is Nothing Then Data.Dispose() : Data = Nothing + If Not SqlAdapter Is Nothing Then SqlAdapter.Dispose() : SqlAdapter = Nothing + If Not SqlCommand Is Nothing Then SqlCommand.Dispose() : SqlCommand = Nothing + If Not SqlTransacc Is Nothing Then SqlTransacc.Dispose() : SqlTransacc = Nothing + If SqlConexion.State <> ConnectionState.Closed Then SqlConexion.Close() + If Not SqlConexion Is Nothing Then SqlConexion.Dispose() : SqlConexion = Nothing + End If ' TODO: free unmanaged resources (unmanaged objects) and override Finalize() below. diff --git a/App_Code/ClsClientes.vb b/App_Code/ClsClientes.vb index 5b4bd4c6b..364a870bc 100644 --- a/App_Code/ClsClientes.vb +++ b/App_Code/ClsClientes.vb @@ -1757,13 +1757,15 @@ Public Class ClsClientes ' IDisposable Protected Overridable Sub Dispose(disposing As Boolean) If Not Me.disposedValue Then - If disposing Then - ' TODO: dispose managed state (managed objects). - If Not Data Is Nothing Then Data.Dispose() - If Not SqlAdapter Is Nothing Then SqlAdapter.Dispose() - If Not SqlCommand Is Nothing Then SqlCommand.Dispose() - If SqlConexion.State <> ConnectionState.Closed Then SqlConexion.Close() - If Not SqlConexion Is Nothing Then SqlConexion.Dispose() + If disposing Then + ' TODO: dispose managed state (managed objects). + If Not Data Is Nothing Then Data.Dispose() : Data = Nothing + If Not SqlAdapter Is Nothing Then SqlAdapter.Dispose() : SqlAdapter = Nothing + If Not SqlCommand Is Nothing Then SqlCommand.Dispose() : SqlCommand = Nothing + If Not SqlTransacc Is Nothing Then SqlTransacc.Dispose() : SqlTransacc = Nothing + If SqlConexion.State <> ConnectionState.Closed Then SqlConexion.Close() + If Not SqlConexion Is Nothing Then SqlConexion.Dispose() : SqlConexion = Nothing + End If ' TODO: free unmanaged resources (unmanaged objects) and override Finalize() below. diff --git a/App_Code/ClsCompEstatusFactura.vb b/App_Code/ClsCompEstatusFactura.vb index 816d07e87..7408fe201 100644 --- a/App_Code/ClsCompEstatusFactura.vb +++ b/App_Code/ClsCompEstatusFactura.vb @@ -203,11 +203,12 @@ Public Class ClsCompEstatusFactura If Not Me.disposedValue Then If disposing Then ' TODO: dispose managed state (managed objects). - If Not Data Is Nothing Then Data.Dispose() - If Not SqlAdapter Is Nothing Then SqlAdapter.Dispose() - If Not SqlCommand Is Nothing Then SqlCommand.Dispose() + If Not Data Is Nothing Then Data.Dispose() : Data = Nothing + If Not SqlAdapter Is Nothing Then SqlAdapter.Dispose() : SqlAdapter = Nothing + If Not SqlCommand Is Nothing Then SqlCommand.Dispose() : SqlCommand = Nothing + If Not SqlTransacc Is Nothing Then SqlTransacc.Dispose() : SqlTransacc = Nothing If SqlConexion.State <> ConnectionState.Closed Then SqlConexion.Close() - If Not SqlConexion Is Nothing Then SqlConexion.Dispose() + If Not SqlConexion Is Nothing Then SqlConexion.Dispose() : SqlConexion = Nothing End If ' TODO: free unmanaged resources (unmanaged objects) and override Finalize() below. diff --git a/App_Code/ClsCompProveedores.vb b/App_Code/ClsCompProveedores.vb index 4594ff303..8a062f23f 100644 --- a/App_Code/ClsCompProveedores.vb +++ b/App_Code/ClsCompProveedores.vb @@ -1908,11 +1908,13 @@ Public Class ClsCompProveedores If Not Me.disposedValue Then If disposing Then ' TODO: dispose managed state (managed objects). - If Not Data Is Nothing Then Data.Dispose() - If Not SqlAdapter Is Nothing Then SqlAdapter.Dispose() - If Not SqlCommand Is Nothing Then SqlCommand.Dispose() + If Not Data Is Nothing Then Data.Dispose() : Data = Nothing + If Not SqlAdapter Is Nothing Then SqlAdapter.Dispose() : SqlAdapter = Nothing + If Not SqlCommand Is Nothing Then SqlCommand.Dispose() : SqlCommand = Nothing + If Not SqlTransacc Is Nothing Then SqlTransacc.Dispose() : SqlTransacc = Nothing If SqlConexion.State <> ConnectionState.Closed Then SqlConexion.Close() - If Not SqlConexion Is Nothing Then SqlConexion.Dispose() + If Not SqlConexion Is Nothing Then SqlConexion.Dispose() : SqlConexion = Nothing + End If ' TODO: free unmanaged resources (unmanaged objects) and override Finalize() below. diff --git a/App_Code/ClsCompras.vb b/App_Code/ClsCompras.vb index 8737fc436..4aa180e78 100644 --- a/App_Code/ClsCompras.vb +++ b/App_Code/ClsCompras.vb @@ -1884,11 +1884,12 @@ Public Class ClsCompras If Not Me.disposedValue Then If disposing Then ' TODO: dispose managed state (managed objects). - If Not Data Is Nothing Then Data.Dispose() - If Not SqlAdapter Is Nothing Then SqlAdapter.Dispose() - If Not SqlCommand Is Nothing Then SqlCommand.Dispose() + If Not Data Is Nothing Then Data.Dispose() : Data = Nothing + If Not SqlAdapter Is Nothing Then SqlAdapter.Dispose() : SqlAdapter = Nothing + If Not SqlCommand Is Nothing Then SqlCommand.Dispose() : SqlCommand = Nothing + If Not SqlTransacc Is Nothing Then SqlTransacc.Dispose() : SqlTransacc = Nothing If SqlConexion.State <> ConnectionState.Closed Then SqlConexion.Close() - If Not SqlConexion Is Nothing Then SqlConexion.Dispose() + If Not SqlConexion Is Nothing Then SqlConexion.Dispose() : SqlConexion = Nothing End If ' TODO: free unmanaged resources (unmanaged objects) and override Finalize() below. diff --git a/App_Code/ClsContPAQi.vb b/App_Code/ClsContPAQi.vb index bef333969..97ce501d7 100644 --- a/App_Code/ClsContPAQi.vb +++ b/App_Code/ClsContPAQi.vb @@ -11204,12 +11204,14 @@ Public Class ClsContPAQi If Not Me.disposedValue Then If disposing Then ' TODO: Liberar otro estado (objetos administrados). - SqlConexion.Close() - SqlConexion.Dispose() - If Not Data Is Nothing Then Data.Dispose() - If Not SqlAdapter Is Nothing Then SqlAdapter.Dispose() - If Not SqlCommand Is Nothing Then SqlCommand.Dispose() - StrSQL.Clear() + If Not Data Is Nothing Then Data.Dispose() : Data = Nothing + If Not DSet Is Nothing Then DSet.Dispose() : DSet = Nothing + If Not SqlAdapter Is Nothing Then SqlAdapter.Dispose() : SqlAdapter = Nothing + If Not SqlCommand Is Nothing Then SqlCommand.Dispose() : SqlCommand = Nothing + If Not SqlTransacc Is Nothing Then SqlTransacc.Dispose() : SqlTransacc = Nothing + If SqlConexion.State <> ConnectionState.Closed Then SqlConexion.Close() + If Not SqlConexion Is Nothing Then SqlConexion.Dispose() : SqlConexion = Nothing + End If ' TODO: Liberar su propio estado (objetos no administrados). diff --git a/App_Code/ClsContPAQi2.vb b/App_Code/ClsContPAQi2.vb index 34d41d4bd..0e1a8185a 100644 --- a/App_Code/ClsContPAQi2.vb +++ b/App_Code/ClsContPAQi2.vb @@ -1017,12 +1017,14 @@ Public Class ClsContPAQi2 If Not Me.disposedValue Then If disposing Then ' TODO: Liberar otro estado (objetos administrados). - SqlConexion.Close() - SqlConexion.Dispose() - If Not Data Is Nothing Then Data.Dispose() - If Not SqlAdapter Is Nothing Then SqlAdapter.Dispose() - If Not SqlCommand Is Nothing Then SqlCommand.Dispose() - StrSQL.Clear() + If Not Data Is Nothing Then Data.Dispose() : Data = Nothing + If Not SqlAdapter Is Nothing Then SqlAdapter.Dispose() : SqlAdapter = Nothing + If Not SqlCommand Is Nothing Then SqlCommand.Dispose() : SqlCommand = Nothing + If Not SqlTransacc Is Nothing Then SqlTransacc.Dispose() : SqlTransacc = Nothing + If SqlConexion.State <> ConnectionState.Closed Then SqlConexion.Close() + If Not SqlConexion Is Nothing Then SqlConexion.Dispose() : SqlConexion = Nothing + + End If ' TODO: Liberar su propio estado (objetos no administrados). diff --git a/App_Code/ClsContabilidad.vb b/App_Code/ClsContabilidad.vb index 266a9a71c..728d1d200 100644 --- a/App_Code/ClsContabilidad.vb +++ b/App_Code/ClsContabilidad.vb @@ -6234,12 +6234,15 @@ Public Class ClsContabilidad Protected Overridable Sub Dispose(disposing As Boolean) If Not Me.disposedValue Then If disposing Then - If Not Data Is Nothing Then Data.Dispose() - If Not SqlAdapter Is Nothing Then SqlAdapter.Dispose() - If Not SqlCommand Is Nothing Then SqlCommand.Dispose() - If Not SqlTransacc Is Nothing Then SqlTransacc.Dispose() + + If Not Data Is Nothing Then Data.Dispose() : Data = Nothing + If Not DSet Is Nothing Then DSet.Dispose() : DSet = Nothing + If Not SqlAdapter Is Nothing Then SqlAdapter.Dispose() : SqlAdapter = Nothing + If Not SqlCommand Is Nothing Then SqlCommand.Dispose() : SqlCommand = Nothing + If Not SqlTransacc Is Nothing Then SqlTransacc.Dispose() : SqlTransacc = Nothing If SqlConexion.State <> ConnectionState.Closed Then SqlConexion.Close() - If Not SqlConexion Is Nothing Then SqlConexion.Dispose() + If Not SqlConexion Is Nothing Then SqlConexion.Dispose() : SqlConexion = Nothing + End If End If Me.disposedValue = True diff --git a/App_Code/ClsContratos.vb b/App_Code/ClsContratos.vb index 99671766b..54e7cf9ff 100644 --- a/App_Code/ClsContratos.vb +++ b/App_Code/ClsContratos.vb @@ -3596,12 +3596,14 @@ Public Class ClsContratos If Not disposedValue Then If disposing Then ' TODO: Liberar otro estado (objetos administrados). - SqlConexion.Close() - SqlConexion.Dispose() - If Not Data Is Nothing Then Data.Dispose() - If Not Dataset Is Nothing Then Dataset.Dispose() - If Not SqlAdapter Is Nothing Then SqlAdapter.Dispose() - + If Not Data Is Nothing Then Data.Dispose() : Data = Nothing + If Not Dataset Is Nothing Then Dataset.Dispose() : Dataset = Nothing + If Not SqlAdapter Is Nothing Then SqlAdapter.Dispose() : SqlAdapter = Nothing + If Not SqlTransacc Is Nothing Then SqlTransacc.Dispose() : SqlTransacc = Nothing + If SqlConexion.State <> ConnectionState.Closed Then SqlConexion.Close() + If Not SqlConexion Is Nothing Then SqlConexion.Dispose() : SqlConexion = Nothing + + End If ' TODO: Liberar su propio estado (objetos no administrados). diff --git a/App_Code/ClsDG.vb b/App_Code/ClsDG.vb index b4b540c45..1c44c0193 100644 --- a/App_Code/ClsDG.vb +++ b/App_Code/ClsDG.vb @@ -638,11 +638,14 @@ Public Class ClsDG Protected Overridable Sub Dispose(disposing As Boolean) If Not Me.disposedValue Then If disposing Then - If Not Data Is Nothing Then Data.Dispose() - If Not SqlAdapter Is Nothing Then SqlAdapter.Dispose() - If Not SqlCommand Is Nothing Then SqlCommand.Dispose() + + If Not Data Is Nothing Then Data.Dispose() : Data = Nothing + If Not SqlAdapter Is Nothing Then SqlAdapter.Dispose() : SqlAdapter = Nothing + If Not SqlCommand Is Nothing Then SqlCommand.Dispose() : SqlCommand = Nothing + If Not SqlTransacc Is Nothing Then SqlTransacc.Dispose() : SqlTransacc = Nothing If SqlConexion.State <> ConnectionState.Closed Then SqlConexion.Close() - If Not SqlConexion Is Nothing Then SqlConexion.Dispose() + If Not SqlConexion Is Nothing Then SqlConexion.Dispose() : SqlConexion = Nothing + End If End If Me.disposedValue = True diff --git a/App_Code/ClsDesarrollo.vb b/App_Code/ClsDesarrollo.vb index ea17e0339..c3694ced1 100644 --- a/App_Code/ClsDesarrollo.vb +++ b/App_Code/ClsDesarrollo.vb @@ -548,13 +548,14 @@ Public Class ClsDesarrollo If Not Me.disposedValue Then If disposing Then ' TODO: dispose managed state (managed objects). - If Not Data Is Nothing Then Data.Dispose() - If Not SqlAdapter Is Nothing Then SqlAdapter.Dispose() - If Not SqlCommand Is Nothing Then SqlCommand.Dispose() + If Not Data Is Nothing Then Data.Dispose() : Data = Nothing + If Not SqlAdapter Is Nothing Then SqlAdapter.Dispose() : SqlAdapter = Nothing + If Not SqlCommand Is Nothing Then SqlCommand.Dispose() : SqlCommand = Nothing If SqlConexion.State <> ConnectionState.Closed Then SqlConexion.Close() - If Not SqlConexion Is Nothing Then SqlConexion.Dispose() + If Not SqlConexion Is Nothing Then SqlConexion.Dispose() : SqlConexion = Nothing End If + ' TODO: free unmanaged resources (unmanaged objects) and override Finalize() below. ' TODO: set large fields to null. End If diff --git a/App_Code/ClsEdoc.vb b/App_Code/ClsEdoc.vb index 6731807ea..82e6cf1e7 100644 --- a/App_Code/ClsEdoc.vb +++ b/App_Code/ClsEdoc.vb @@ -306,10 +306,12 @@ Public Class ClsEdoc If Not disposedValue Then If disposing Then ' TODO: Liberar otro estado (objetos administrados). - SqlConexion.Close() - SqlConexion.Dispose() - If Not Data Is Nothing Then Data.Dispose() - If Not SqlAdapter Is Nothing Then SqlAdapter.Dispose() + If Not Data Is Nothing Then Data.Dispose() : Data = Nothing + If Not DSet Is Nothing Then DSet.Dispose() : DSet = Nothing + If Not SqlAdapter Is Nothing Then SqlAdapter.Dispose() : SqlAdapter = Nothing + If Not SqlTransacc Is Nothing Then SqlTransacc.Dispose() : SqlTransacc = Nothing + If SqlConexion.State <> ConnectionState.Closed Then SqlConexion.Close() + If Not SqlConexion Is Nothing Then SqlConexion.Dispose() : SqlConexion = Nothing End If diff --git a/App_Code/ClsEdocumentacion.vb b/App_Code/ClsEdocumentacion.vb index dc764e2bb..dd22807c3 100644 --- a/App_Code/ClsEdocumentacion.vb +++ b/App_Code/ClsEdocumentacion.vb @@ -621,12 +621,14 @@ Public Class ClsEdocumentacion ' IDisposable Protected Overridable Sub Dispose(ByVal disposing As Boolean) If Not disposedValue Then - If disposing Then - ' TODO: Liberar otro estado (objetos administrados). - SqlConexion.Close() - SqlConexion.Dispose() - If Not Data Is Nothing Then Data.Dispose() - If Not SqlAdapter Is Nothing Then SqlAdapter.Dispose() + If disposing Then + ' TODO: Liberar otro estado (objetos administrados). + If Not Data Is Nothing Then Data.Dispose() : Data = Nothing + If Not DSet Is Nothing Then DSet.Dispose() : DSet = Nothing + If Not SqlAdapter Is Nothing Then SqlAdapter.Dispose() : SqlAdapter = Nothing + If Not SqlTransacc Is Nothing Then SqlTransacc.Dispose() : SqlTransacc = Nothing + If SqlConexion.State <> ConnectionState.Closed Then SqlConexion.Close() + If Not SqlConexion Is Nothing Then SqlConexion.Dispose() : SqlConexion = Nothing End If diff --git a/App_Code/ClsEdosFinancieros.vb b/App_Code/ClsEdosFinancieros.vb index 3f1aad05f..89b5ea2b1 100644 --- a/App_Code/ClsEdosFinancieros.vb +++ b/App_Code/ClsEdosFinancieros.vb @@ -881,13 +881,15 @@ Public Class ClsEdosFinancieros If disposing Then ' TODO: free other state (managed objects). 'RegistraCierreConexion() - SqlConexion.Close() - SqlConexion.Dispose() + If Not DT Is Nothing Then DT.Dispose() : DT = Nothing + If Not SqlAdapter Is Nothing Then SqlAdapter.Dispose() : SqlAdapter = Nothing + If Not SqlCommand Is Nothing Then SqlCommand.Dispose() : SqlCommand = Nothing + If SqlConexion.State <> ConnectionState.Closed Then SqlConexion.Close() + If Not SqlConexion Is Nothing Then SqlConexion.Dispose() : SqlConexion = Nothing + End If - If Not DT Is Nothing Then DT.Dispose() - If Not SqlAdapter Is Nothing Then SqlAdapter.Dispose() - If Not SqlCommand Is Nothing Then SqlCommand.Dispose() + ' TODO: free your own state (unmanaged objects). ' TODO: set large fields to null. diff --git a/App_Code/ClsEncuestas.vb b/App_Code/ClsEncuestas.vb index bafb08bd6..119c69534 100644 --- a/App_Code/ClsEncuestas.vb +++ b/App_Code/ClsEncuestas.vb @@ -701,11 +701,15 @@ Public Class ClsEncuestas Protected Overridable Sub Dispose(disposing As Boolean) If Not Me.disposedValue Then If disposing Then - If Not Data Is Nothing Then Data.Dispose() - If Not SqlAdapter Is Nothing Then SqlAdapter.Dispose() - If Not SqlCommand Is Nothing Then SqlCommand.Dispose() + + If Not Data Is Nothing Then Data.Dispose() : Data = Nothing + If Not SqlAdapter Is Nothing Then SqlAdapter.Dispose() : SqlAdapter = Nothing + If Not SqlCommand Is Nothing Then SqlCommand.Dispose() : SqlCommand = Nothing + If Not SqlTransacc Is Nothing Then SqlTransacc.Dispose() : SqlTransacc = Nothing If SqlConexion.State <> ConnectionState.Closed Then SqlConexion.Close() - If Not SqlConexion Is Nothing Then SqlConexion.Dispose() + If Not SqlConexion Is Nothing Then SqlConexion.Dispose() : SqlConexion = Nothing + + End If End If Me.disposedValue = True diff --git a/App_Code/ClsEsquemasComisiones.vb b/App_Code/ClsEsquemasComisiones.vb index 5528c2772..dc2e03932 100644 --- a/App_Code/ClsEsquemasComisiones.vb +++ b/App_Code/ClsEsquemasComisiones.vb @@ -499,12 +499,13 @@ Public Class ClsEsquemasComisiones If Not Me.disposedValue Then If disposing Then ' TODO: dispose managed state (managed objects). - If Not Data Is Nothing Then Data.Dispose() - If Not SqlAdapter Is Nothing Then SqlAdapter.Dispose() - If Not SqlCommand Is Nothing Then SqlCommand.Dispose() - If Not SqlTransacc Is Nothing Then SqlTransacc.Dispose() + If Not Data Is Nothing Then Data.Dispose() : Data = Nothing + If Not SqlAdapter Is Nothing Then SqlAdapter.Dispose() : SqlAdapter = Nothing + If Not SqlCommand Is Nothing Then SqlCommand.Dispose() : SqlCommand = Nothing + If Not SqlTransacc Is Nothing Then SqlTransacc.Dispose() : SqlTransacc = Nothing If SqlConexion.State <> ConnectionState.Closed Then SqlConexion.Close() - If Not SqlConexion Is Nothing Then SqlConexion.Dispose() + If Not SqlConexion Is Nothing Then SqlConexion.Dispose() : SqlConexion = Nothing + End If ' TODO: free unmanaged resources (unmanaged objects) and override Finalize() below. diff --git a/App_Code/ClsEstatusFactura.vb b/App_Code/ClsEstatusFactura.vb index 893538e23..9cf75cf64 100644 --- a/App_Code/ClsEstatusFactura.vb +++ b/App_Code/ClsEstatusFactura.vb @@ -230,11 +230,12 @@ Public Class ClsEstatusFactura If Not Me.disposedValue Then If disposing Then ' TODO: dispose managed state (managed objects). - If Not Data Is Nothing Then Data.Dispose() - If Not SqlAdapter Is Nothing Then SqlAdapter.Dispose() - If Not SqlCommand Is Nothing Then SqlCommand.Dispose() + If Not Data Is Nothing Then Data.Dispose() : Data = Nothing + If Not SqlAdapter Is Nothing Then SqlAdapter.Dispose() : SqlAdapter = Nothing + If Not SqlCommand Is Nothing Then SqlCommand.Dispose() : SqlCommand = Nothing + If Not SqlTransacc Is Nothing Then SqlTransacc.Dispose() : SqlTransacc = Nothing If SqlConexion.State <> ConnectionState.Closed Then SqlConexion.Close() - If Not SqlConexion Is Nothing Then SqlConexion.Dispose() + If Not SqlConexion Is Nothing Then SqlConexion.Dispose() : SqlConexion = Nothing End If ' TODO: free unmanaged resources (unmanaged objects) and override Finalize() below. diff --git a/App_Code/ClsEventos.vb b/App_Code/ClsEventos.vb index c631009a2..e08351f16 100644 --- a/App_Code/ClsEventos.vb +++ b/App_Code/ClsEventos.vb @@ -224,11 +224,11 @@ Public Class ClsEventos If Not Me.disposedValue Then If disposing Then ' TODO: dispose managed state (managed objects). - If Not Data Is Nothing Then Data.Dispose() - If Not SqlAdapter Is Nothing Then SqlAdapter.Dispose() - If Not SqlCommand Is Nothing Then SqlCommand.Dispose() + If Not Data Is Nothing Then Data.Dispose() : Data = Nothing + If Not SqlAdapter Is Nothing Then SqlAdapter.Dispose() : SqlAdapter = Nothing + If Not SqlCommand Is Nothing Then SqlCommand.Dispose() : SqlCommand = Nothing If SqlConexion.State <> ConnectionState.Closed Then SqlConexion.Close() - If Not SqlConexion Is Nothing Then SqlConexion.Dispose() + If Not SqlConexion Is Nothing Then SqlConexion.Dispose() : SqlConexion = Nothing End If ' TODO: free unmanaged resources (unmanaged objects) and override Finalize() below. diff --git a/App_Code/ClsFISConfiguracion.vb b/App_Code/ClsFISConfiguracion.vb index a1d8ddf32..52d7365c5 100644 --- a/App_Code/ClsFISConfiguracion.vb +++ b/App_Code/ClsFISConfiguracion.vb @@ -174,11 +174,12 @@ Public Class ClsFISConfiguracion If Not Me.disposedValue Then If disposing Then ' TODO: dispose managed state (managed objects). - If Not Data Is Nothing Then Data.Dispose() - If Not SqlAdapter Is Nothing Then SqlAdapter.Dispose() - If Not SqlCommand Is Nothing Then SqlCommand.Dispose() + If Not Data Is Nothing Then Data.Dispose() : Data = Nothing + If Not SqlAdapter Is Nothing Then SqlAdapter.Dispose() : SqlAdapter = Nothing + If Not SqlCommand Is Nothing Then SqlCommand.Dispose() : SqlCommand = Nothing + If Not SqlTransacc Is Nothing Then SqlTransacc.Dispose() : SqlTransacc = Nothing If SqlConexion.State <> ConnectionState.Closed Then SqlConexion.Close() - If Not SqlConexion Is Nothing Then SqlConexion.Dispose() + If Not SqlConexion Is Nothing Then SqlConexion.Dispose() : SqlConexion = Nothing End If ' TODO: free unmanaged resources (unmanaged objects) and override Finalize() below. diff --git a/App_Code/ClsFinanzas.vb b/App_Code/ClsFinanzas.vb index 3a032bc3a..20a6fdb07 100644 --- a/App_Code/ClsFinanzas.vb +++ b/App_Code/ClsFinanzas.vb @@ -200,11 +200,14 @@ Public Class ClsFinanzas Protected Overridable Sub Dispose(disposing As Boolean) If Not Me.disposedValue Then If disposing Then - If Not Data Is Nothing Then Data.Dispose() - If Not SqlAdapter Is Nothing Then SqlAdapter.Dispose() - If Not SqlCommand Is Nothing Then SqlCommand.Dispose() + + If Not Data Is Nothing Then Data.Dispose() : Data = Nothing + If Not SqlAdapter Is Nothing Then SqlAdapter.Dispose() : SqlAdapter = Nothing + If Not SqlCommand Is Nothing Then SqlCommand.Dispose() : SqlCommand = Nothing + If Not SqlTransacc Is Nothing Then SqlTransacc.Dispose() : SqlTransacc = Nothing If SqlConexion.State <> ConnectionState.Closed Then SqlConexion.Close() - If Not SqlConexion Is Nothing Then SqlConexion.Dispose() + If Not SqlConexion Is Nothing Then SqlConexion.Dispose() : SqlConexion = Nothing + End If End If diff --git a/App_Code/ClsFlotillas.vb b/App_Code/ClsFlotillas.vb index 17350750b..f9ff51f34 100644 --- a/App_Code/ClsFlotillas.vb +++ b/App_Code/ClsFlotillas.vb @@ -738,12 +738,13 @@ Public Class ClsFlotillas If Not Me.disposedValue Then If disposing Then ' TODO: dispose managed state (managed objects). - If Not Data Is Nothing Then Data.Dispose() - If Not SqlAdapter Is Nothing Then SqlAdapter.Dispose() - If Not SqlCommand Is Nothing Then SqlCommand.Dispose() - If Not SqlTransacc Is Nothing Then SqlTransacc.Dispose() + If Not Data Is Nothing Then Data.Dispose() : Data = Nothing + If Not SqlAdapter Is Nothing Then SqlAdapter.Dispose() : SqlAdapter = Nothing + If Not SqlCommand Is Nothing Then SqlCommand.Dispose() : SqlCommand = Nothing + If Not SqlTransacc Is Nothing Then SqlTransacc.Dispose() : SqlTransacc = Nothing If SqlConexion.State <> ConnectionState.Closed Then SqlConexion.Close() - If Not SqlConexion Is Nothing Then SqlConexion.Dispose() + If Not SqlConexion Is Nothing Then SqlConexion.Dispose() : SqlConexion = Nothing + End If ' TODO: free unmanaged resources (unmanaged objects) and override Finalize() below. diff --git a/App_Code/ClsGPS.vb b/App_Code/ClsGPS.vb index a16f069eb..21ddfea1e 100644 --- a/App_Code/ClsGPS.vb +++ b/App_Code/ClsGPS.vb @@ -5693,20 +5693,22 @@ Public Class ClsGPS ' IDisposable Protected Overridable Sub Dispose(ByVal disposing As Boolean) If Not disposedValue Then - If disposing Then - ' TODO: Liberar otro estado (objetos administrados). - If Not Data Is Nothing Then Data.Dispose() - If Not Dataset Is Nothing Then - Dataset.Clear() - Dataset.Dispose() - End If - If Not DtPosiciones Is Nothing Then DtPosiciones.Dispose() - If Not SqlAdapter Is Nothing Then SqlAdapter.Dispose() - If Not SqlCommand Is Nothing Then SqlCommand.Dispose() - If Not SqlTransacc Is Nothing Then SqlTransacc.Dispose() - If SqlConexion.State <> ConnectionState.Closed Then SqlConexion.Close() - If Not SqlConexion Is Nothing Then SqlConexion.Dispose() - + If disposing Then + ' TODO: Liberar otro estado (objetos administrados). + + + If Not DtPosiciones Is Nothing Then DtPosiciones.Dispose() : DtPosiciones = Nothing + + If Not Data Is Nothing Then Data.Dispose() : Data = Nothing + If Not Dataset Is Nothing Then Dataset.Dispose() : Dataset = Nothing + If Not SqlAdapter Is Nothing Then SqlAdapter.Dispose() : SqlAdapter = Nothing + If Not SqlCommand Is Nothing Then SqlCommand.Dispose() : SqlCommand = Nothing + If Not SqlTransacc Is Nothing Then SqlTransacc.Dispose() : SqlTransacc = Nothing + If SqlConexion.State <> ConnectionState.Closed Then SqlConexion.Close() + If Not SqlConexion Is Nothing Then SqlConexion.Dispose() : SqlConexion = Nothing + + + End If ' TODO: Liberar su propio estado (objetos no administrados). diff --git a/App_Code/ClsGPSHerramientas.vb b/App_Code/ClsGPSHerramientas.vb index 493863bad..2d0c6e456 100644 --- a/App_Code/ClsGPSHerramientas.vb +++ b/App_Code/ClsGPSHerramientas.vb @@ -187,11 +187,12 @@ Public Class ClsGPSHerramientas If Not Me.disposedValue Then If disposing Then ' TODO: Liberar otro estado (objetos administrados). - SqlConexion.Close() - SqlConexion.Dispose() - If Not Data Is Nothing Then Data.Dispose() - If Not SqlAdapter Is Nothing Then SqlAdapter.Dispose() - If Not SqlCommand Is Nothing Then SqlCommand.Dispose() + If Not Data Is Nothing Then Data.Dispose() : Data = Nothing + If Not SqlAdapter Is Nothing Then SqlAdapter.Dispose() : SqlAdapter = Nothing + If Not SqlCommand Is Nothing Then SqlCommand.Dispose() : SqlCommand = Nothing + If SqlConexion.State <> ConnectionState.Closed Then SqlConexion.Close() + If Not SqlConexion Is Nothing Then SqlConexion.Dispose() : SqlConexion = Nothing + End If ' TODO: Liberar su propio estado (objetos no administrados). diff --git a/App_Code/ClsGenerales.vb b/App_Code/ClsGenerales.vb index becb87884..e594b96c2 100644 --- a/App_Code/ClsGenerales.vb +++ b/App_Code/ClsGenerales.vb @@ -3327,22 +3327,7 @@ Public Class ClsGenerales #End Region - Protected Overridable Sub Dispose(ByVal disposing As Boolean) - If Not disposedValue Then - If disposing Then - ' TODO: Liberar otro estado (objetos administrados). - SqlConexion.Close() - SqlConexion.Dispose() - If Not Data Is Nothing Then Data.Dispose() - If Not SqlAdapter Is Nothing Then SqlAdapter.Dispose() - If Not SqlCommand Is Nothing Then SqlCommand.Dispose() - End If - - ' TODO: Liberar su propio estado (objetos no administrados). - ' TODO: Establecer campos grandes como Null. - End If - disposedValue = True - End Sub + #Region "CRUD_Edoc_DocumentacionTipo" @@ -3489,15 +3474,42 @@ Public Class ClsGenerales #End Region -#Region " IDisposable Support " - ' Visual Basic agregó este código para implementar correctamente el modelo descartable. + +#Region "IDisposable Support" + + + ' IDisposable + Protected Overridable Sub Dispose(disposing As Boolean) + If Not Me.disposedValue Then + If disposing Then + ' TODO: dispose managed state (managed objects). + If Not Data Is Nothing Then Data.Dispose() : Data = Nothing + If Not SqlAdapter Is Nothing Then SqlAdapter.Dispose() : SqlAdapter = Nothing + If Not SqlCommand Is Nothing Then SqlCommand.Dispose() : SqlCommand = Nothing + If Not SqlTransacc Is Nothing Then SqlTransacc.Dispose() : SqlTransacc = Nothing + If SqlConexion.State <> ConnectionState.Closed Then SqlConexion.Close() + If Not SqlConexion Is Nothing Then SqlConexion.Dispose() : SqlConexion = Nothing + + End If + + ' TODO: free unmanaged resources (unmanaged objects) and override Finalize() below. + ' TODO: set large fields to null. + End If + Me.disposedValue = True + End Sub + + + + ' This code added by Visual Basic to correctly implement the disposable pattern. Public Sub Dispose() Implements IDisposable.Dispose - ' No cambie este código. Coloque el código de limpieza en Dispose (ByVal que se dispone como Boolean). + ' Do not change this code. Put cleanup code in Dispose(disposing As Boolean) above. ConexionClose() Dispose(True) GC.SuppressFinalize(Me) End Sub -#End Region +#End Region + + #Region " P O L I Z A V I R T U A L " Public Function ModelosAutosGet(CveEmpresa As Integer) As Boolean diff --git a/App_Code/ClsGralFolios.vb b/App_Code/ClsGralFolios.vb index 2705071c7..6c5f231b4 100644 --- a/App_Code/ClsGralFolios.vb +++ b/App_Code/ClsGralFolios.vb @@ -276,12 +276,14 @@ Public Class ClsGralFolios Protected Overridable Sub Dispose(disposing As Boolean) If Not Me.disposedValue Then If disposing Then - ' TODO: dispose managed state (managed objects). - If Not Data Is Nothing Then Data.Dispose() - If Not SqlAdapter Is Nothing Then SqlAdapter.Dispose() - If Not SqlCommand Is Nothing Then SqlCommand.Dispose() + + If Not Data Is Nothing Then Data.Dispose() : Data = Nothing + If Not SqlAdapter Is Nothing Then SqlAdapter.Dispose() : SqlAdapter = Nothing + If Not SqlCommand Is Nothing Then SqlCommand.Dispose() : SqlCommand = Nothing + If Not SqlTransacc Is Nothing Then SqlTransacc.Dispose() : SqlTransacc = Nothing If SqlConexion.State <> ConnectionState.Closed Then SqlConexion.Close() - If Not SqlConexion Is Nothing Then SqlConexion.Dispose() + If Not SqlConexion Is Nothing Then SqlConexion.Dispose() : SqlConexion = Nothing + End If ' TODO: free unmanaged resources (unmanaged objects) and override Finalize() below. diff --git a/App_Code/ClsGralProductosServiciosCaracteristicas.vb b/App_Code/ClsGralProductosServiciosCaracteristicas.vb index 6c2ea130b..8ee0d7822 100644 --- a/App_Code/ClsGralProductosServiciosCaracteristicas.vb +++ b/App_Code/ClsGralProductosServiciosCaracteristicas.vb @@ -305,10 +305,12 @@ Public Class ClsGralProductosServiciosCaracteristicas If Not disposedValue Then If disposing Then ' TODO: Liberar otro estado (objetos administrados). - SqlConexion.Close() - SqlConexion.Dispose() - If Not Data Is Nothing Then Data.Dispose() - If Not SqlAdapter Is Nothing Then SqlAdapter.Dispose() + If Not Data Is Nothing Then Data.Dispose() : Data = Nothing + If Not SqlAdapter Is Nothing Then SqlAdapter.Dispose() : SqlAdapter = Nothing + If Not SqlCommand Is Nothing Then SqlCommand.Dispose() : SqlCommand = Nothing + If Not SqlTransacc Is Nothing Then SqlTransacc.Dispose() : SqlTransacc = Nothing + If SqlConexion.State <> ConnectionState.Closed Then SqlConexion.Close() + If Not SqlConexion Is Nothing Then SqlConexion.Dispose() : SqlConexion = Nothing End If diff --git a/App_Code/ClsImpuestos.vb b/App_Code/ClsImpuestos.vb index f4fd2c684..28d2929e3 100644 --- a/App_Code/ClsImpuestos.vb +++ b/App_Code/ClsImpuestos.vb @@ -146,11 +146,14 @@ Public Class ClsImpuestos Protected Overridable Sub Dispose(disposing As Boolean) If Not Me.disposedValue Then If disposing Then - If Not Data Is Nothing Then Data.Dispose() - If Not SqlAdapter Is Nothing Then SqlAdapter.Dispose() - If Not SqlCommand Is Nothing Then SqlCommand.Dispose() + + If Not Data Is Nothing Then Data.Dispose() : Data = Nothing + If Not SqlAdapter Is Nothing Then SqlAdapter.Dispose() : SqlAdapter = Nothing + If Not SqlCommand Is Nothing Then SqlCommand.Dispose() : SqlCommand = Nothing + If Not SqlTransacc Is Nothing Then SqlTransacc.Dispose() : SqlTransacc = Nothing If SqlConexion.State <> ConnectionState.Closed Then SqlConexion.Close() - If Not SqlConexion Is Nothing Then SqlConexion.Dispose() + If Not SqlConexion Is Nothing Then SqlConexion.Dispose() : SqlConexion = Nothing + End If End If Me.disposedValue = True diff --git a/App_Code/ClsIndicadores.vb b/App_Code/ClsIndicadores.vb index 625ddd31f..c9d8275aa 100644 --- a/App_Code/ClsIndicadores.vb +++ b/App_Code/ClsIndicadores.vb @@ -128,10 +128,12 @@ Public Class ClsIndicadores If Not disposedValue Then If disposing Then ' TODO: Liberar otro estado (objetos administrados). - SqlConexion.Close() - SqlConexion.Dispose() - If Not Data Is Nothing Then Data.Dispose() - If Not SqlAdapter Is Nothing Then SqlAdapter.Dispose() + If Not Data Is Nothing Then Data.Dispose() : Data = Nothing + If Not SqlAdapter Is Nothing Then SqlAdapter.Dispose() : SqlAdapter = Nothing + If Not SqlCommand Is Nothing Then SqlCommand.Dispose() : SqlCommand = Nothing + If Not SqlTransacc Is Nothing Then SqlTransacc.Dispose() : SqlTransacc = Nothing + If SqlConexion.State <> ConnectionState.Closed Then SqlConexion.Close() + If Not SqlConexion Is Nothing Then SqlConexion.Dispose() : SqlConexion = Nothing End If diff --git a/App_Code/ClsInventarios.vb b/App_Code/ClsInventarios.vb index 43eab1487..c256e98fe 100644 --- a/App_Code/ClsInventarios.vb +++ b/App_Code/ClsInventarios.vb @@ -5751,10 +5751,11 @@ Public Class ClsInventarios If Not disposedValue Then If disposing Then ' TODO: Liberar otro estado (objetos administrados). - SqlConexion.Close() - SqlConexion.Dispose() - If Not Data Is Nothing Then Data.Dispose() - If Not SqlAdapter Is Nothing Then SqlAdapter.Dispose() + If Not Data Is Nothing Then Data.Dispose() : Data = Nothing + If Not SqlAdapter Is Nothing Then SqlAdapter.Dispose() : SqlAdapter = Nothing + If Not SqlTransacc Is Nothing Then SqlTransacc.Dispose() : SqlTransacc = Nothing + If SqlConexion.State <> ConnectionState.Closed Then SqlConexion.Close() + If Not SqlConexion Is Nothing Then SqlConexion.Dispose() : SqlConexion = Nothing End If diff --git a/App_Code/ClsLeyendasFiscales.vb b/App_Code/ClsLeyendasFiscales.vb index 55c873e76..429a00b01 100644 --- a/App_Code/ClsLeyendasFiscales.vb +++ b/App_Code/ClsLeyendasFiscales.vb @@ -191,11 +191,12 @@ Public Class ClsLeyendasFiscales If Not Me.disposedValue Then If disposing Then ' TODO: dispose managed state (managed objects). - If Not Data Is Nothing Then Data.Dispose() - If Not SqlAdapter Is Nothing Then SqlAdapter.Dispose() - If Not SqlCommand Is Nothing Then SqlCommand.Dispose() + If Not Data Is Nothing Then Data.Dispose() : Data = Nothing + If Not SqlAdapter Is Nothing Then SqlAdapter.Dispose() : SqlAdapter = Nothing + If Not SqlCommand Is Nothing Then SqlCommand.Dispose() : SqlCommand = Nothing If SqlConexion.State <> ConnectionState.Closed Then SqlConexion.Close() - If Not SqlConexion Is Nothing Then SqlConexion.Dispose() + If Not SqlConexion Is Nothing Then SqlConexion.Dispose() : SqlConexion = Nothing + End If ' TODO: free unmanaged resources (unmanaged objects) and override Finalize() below. diff --git a/App_Code/ClsMF.vb b/App_Code/ClsMF.vb index 72ea537ca..e49c01e47 100644 --- a/App_Code/ClsMF.vb +++ b/App_Code/ClsMF.vb @@ -710,11 +710,14 @@ Public Class ClsMF Protected Overridable Sub Dispose(disposing As Boolean) If Not Me.disposedValue Then If disposing Then - If Not Data Is Nothing Then Data.Dispose() - If Not SqlAdapter Is Nothing Then SqlAdapter.Dispose() - If Not SqlCommand Is Nothing Then SqlCommand.Dispose() + + If Not Data Is Nothing Then Data.Dispose() : Data = Nothing + If Not SqlAdapter Is Nothing Then SqlAdapter.Dispose() : SqlAdapter = Nothing + If Not SqlCommand Is Nothing Then SqlCommand.Dispose() : SqlCommand = Nothing + If Not SqlTransacc Is Nothing Then SqlTransacc.Dispose() : SqlTransacc = Nothing If SqlConexion.State <> ConnectionState.Closed Then SqlConexion.Close() - If Not SqlConexion Is Nothing Then SqlConexion.Dispose() + If Not SqlConexion Is Nothing Then SqlConexion.Dispose() : SqlConexion = Nothing + End If End If Me.disposedValue = True diff --git a/App_Code/ClsMetodosPagos.vb b/App_Code/ClsMetodosPagos.vb index 59097d1df..e21006c56 100644 --- a/App_Code/ClsMetodosPagos.vb +++ b/App_Code/ClsMetodosPagos.vb @@ -113,11 +113,12 @@ Public Class ClsMetodosPagos If Not Me.disposedValue Then If disposing Then ' TODO: dispose managed state (managed objects). - If Not Data Is Nothing Then Data.Dispose() - If Not SqlAdapter Is Nothing Then SqlAdapter.Dispose() - If Not SqlCommand Is Nothing Then SqlCommand.Dispose() + If Not Data Is Nothing Then Data.Dispose() : Data = Nothing + If Not SqlAdapter Is Nothing Then SqlAdapter.Dispose() : SqlAdapter = Nothing + If Not SqlCommand Is Nothing Then SqlCommand.Dispose() : SqlCommand = Nothing If SqlConexion.State <> ConnectionState.Closed Then SqlConexion.Close() - If Not SqlConexion Is Nothing Then SqlConexion.Dispose() + If Not SqlConexion Is Nothing Then SqlConexion.Dispose() : SqlConexion = Nothing + End If ' TODO: free unmanaged resources (unmanaged objects) and override Finalize() below. diff --git a/App_Code/ClsModulos.vb b/App_Code/ClsModulos.vb index 3c47376f4..7c8e84877 100644 --- a/App_Code/ClsModulos.vb +++ b/App_Code/ClsModulos.vb @@ -412,11 +412,12 @@ Public Class ClsModulos If Not Me.disposedValue Then If disposing Then ' TODO: Liberar otro estado (objetos administrados). - If Not Data Is Nothing Then Data.Dispose() - If Not SqlAdapter Is Nothing Then SqlAdapter.Dispose() - If Not SqlCommand Is Nothing Then SqlCommand.Dispose() + If Not Data Is Nothing Then Data.Dispose() : Data = Nothing + If Not SqlAdapter Is Nothing Then SqlAdapter.Dispose() : SqlAdapter = Nothing + If Not SqlCommand Is Nothing Then SqlCommand.Dispose() : SqlCommand = Nothing If SqlConexion.State <> ConnectionState.Closed Then SqlConexion.Close() - If Not SqlConexion Is Nothing Then SqlConexion.Dispose() + If Not SqlConexion Is Nothing Then SqlConexion.Dispose() : SqlConexion = Nothing + End If ' TODO: Liberar su propio estado (objetos no administrados). diff --git a/App_Code/ClsMonedas.vb b/App_Code/ClsMonedas.vb index 26d96091d..3a4ac8dcd 100644 --- a/App_Code/ClsMonedas.vb +++ b/App_Code/ClsMonedas.vb @@ -134,11 +134,12 @@ Public Class ClsMonedas If Not Me.disposedValue Then If disposing Then ' TODO: dispose managed state (managed objects). - If Not Data Is Nothing Then Data.Dispose() - If Not SqlAdapter Is Nothing Then SqlAdapter.Dispose() - If Not SqlCommand Is Nothing Then SqlCommand.Dispose() + If Not Data Is Nothing Then Data.Dispose() : Data = Nothing + If Not SqlAdapter Is Nothing Then SqlAdapter.Dispose() : SqlAdapter = Nothing + If Not SqlCommand Is Nothing Then SqlCommand.Dispose() : SqlCommand = Nothing If SqlConexion.State <> ConnectionState.Closed Then SqlConexion.Close() - If Not SqlConexion Is Nothing Then SqlConexion.Dispose() + If Not SqlConexion Is Nothing Then SqlConexion.Dispose() : SqlConexion = Nothing + End If ' TODO: free unmanaged resources (unmanaged objects) and override Finalize() below. diff --git a/App_Code/ClsMovimientos.vb b/App_Code/ClsMovimientos.vb index 0193ebf94..680fbc2ae 100644 --- a/App_Code/ClsMovimientos.vb +++ b/App_Code/ClsMovimientos.vb @@ -1751,14 +1751,15 @@ Public Class ClsMovimientos ' IDisposable Protected Overridable Sub Dispose(disposing As Boolean) If Not Me.disposedValue Then - If disposing Then - ' TODO: dispose managed state (managed objects). - If Not Data Is Nothing Then Data.Dispose() - If Not SqlAdapter Is Nothing Then SqlAdapter.Dispose() - If Not SqlCommand Is Nothing Then SqlCommand.Dispose() - If Not SqlTransacc Is Nothing Then SqlTransacc.Dispose() - If SqlConexion.State <> ConnectionState.Closed Then SqlConexion.Close() - If Not SqlConexion Is Nothing Then SqlConexion.Dispose() + If disposing Then + ' TODO: dispose managed state (managed objects). + If Not Data Is Nothing Then Data.Dispose() : Data = Nothing + If Not SqlAdapter Is Nothing Then SqlAdapter.Dispose() : SqlAdapter = Nothing + If Not SqlCommand Is Nothing Then SqlCommand.Dispose() : SqlCommand = Nothing + If Not SqlTransacc Is Nothing Then SqlTransacc.Dispose() : SqlTransacc = Nothing + If SqlConexion.State <> ConnectionState.Closed Then SqlConexion.Close() + If Not SqlConexion Is Nothing Then SqlConexion.Dispose() : SqlConexion = Nothing + End If ' TODO: free unmanaged resources (unmanaged objects) and override Finalize() below. diff --git a/App_Code/ClsNominas.vb b/App_Code/ClsNominas.vb index f57a14a3c..8f4ffb729 100644 --- a/App_Code/ClsNominas.vb +++ b/App_Code/ClsNominas.vb @@ -2878,11 +2878,14 @@ Public Class ClsNominas Protected Overridable Sub Dispose(ByVal disposing As Boolean) If Not disposedValue Then If disposing Then - SqlConexion.Close() - SqlConexion.Dispose() - If Not Data Is Nothing Then Data.Dispose() - If Not SqlAdapter Is Nothing Then SqlAdapter.Dispose() - If Not SqlTransacc Is Nothing Then SqlTransacc.Dispose() + + If Not Data Is Nothing Then Data.Dispose() : Data = Nothing + If Not DTSet Is Nothing Then DTSet.Dispose() : DTSet = Nothing + If Not SqlAdapter Is Nothing Then SqlAdapter.Dispose() : SqlAdapter = Nothing + If Not SqlCommand Is Nothing Then SqlCommand.Dispose() : SqlCommand = Nothing + If Not SqlTransacc Is Nothing Then SqlTransacc.Dispose() : SqlTransacc = Nothing + If SqlConexion.State <> ConnectionState.Closed Then SqlConexion.Close() + If Not SqlConexion Is Nothing Then SqlConexion.Dispose() : SqlConexion = Nothing End If End If diff --git a/App_Code/ClsOC.vb b/App_Code/ClsOC.vb index 913c6ddf7..bd1832379 100644 --- a/App_Code/ClsOC.vb +++ b/App_Code/ClsOC.vb @@ -2611,11 +2611,13 @@ Public Class ClsOC Protected Overridable Sub Dispose(ByVal disposing As Boolean) If Not disposedValue Then If disposing Then - SqlConexion.Close() - SqlConexion.Dispose() - If Not Data Is Nothing Then Data.Dispose() - If Not SqlAdapter Is Nothing Then SqlAdapter.Dispose() + If Not Data Is Nothing Then Data.Dispose() : Data = Nothing + If Not SqlAdapter Is Nothing Then SqlAdapter.Dispose() : SqlAdapter = Nothing + If Not SqlCommand Is Nothing Then SqlCommand.Dispose() : SqlCommand = Nothing + If Not SqlTransacc Is Nothing Then SqlTransacc.Dispose() : SqlTransacc = Nothing + If SqlConexion.State <> ConnectionState.Closed Then SqlConexion.Close() + If Not SqlConexion Is Nothing Then SqlConexion.Dispose() : SqlConexion = Nothing End If End If disposedValue = True diff --git a/App_Code/ClsOIEventos.vb b/App_Code/ClsOIEventos.vb index 457ba77d3..bc70c3569 100644 --- a/App_Code/ClsOIEventos.vb +++ b/App_Code/ClsOIEventos.vb @@ -3162,12 +3162,14 @@ Public Class ClsOIEventos ' IDisposable Protected Overridable Sub Dispose(ByVal disposing As Boolean) If Not disposedValue Then - If disposing Then - ' TODO: Liberar otro estado (objetos administrados). - SqlConexion.Close() - SqlConexion.Dispose() - If Not Data Is Nothing Then Data.Dispose() - If Not SqlAdapter Is Nothing Then SqlAdapter.Dispose() + If disposing Then + ' TODO: Liberar otro estado (objetos administrados). + If Not Data Is Nothing Then Data.Dispose() : Data = Nothing + If Not SqlAdapter Is Nothing Then SqlAdapter.Dispose() : SqlAdapter = Nothing + If Not SqlCommand Is Nothing Then SqlCommand.Dispose() : SqlCommand = Nothing + If Not SqlTransacc Is Nothing Then SqlTransacc.Dispose() : SqlTransacc = Nothing + If SqlConexion.State <> ConnectionState.Closed Then SqlConexion.Close() + If Not SqlConexion Is Nothing Then SqlConexion.Dispose() : SqlConexion = Nothing End If diff --git a/App_Code/ClsOS.vb b/App_Code/ClsOS.vb index 431ef2037..42e8c4cd2 100644 --- a/App_Code/ClsOS.vb +++ b/App_Code/ClsOS.vb @@ -1680,10 +1680,12 @@ Public Class ClsOS If Not disposedValue Then If disposing Then ' TODO: Liberar otro estado (objetos administrados). - SqlConexion.Close() - SqlConexion.Dispose() - If Not Data Is Nothing Then Data.Dispose() - If Not SqlAdapter Is Nothing Then SqlAdapter.Dispose() + If Not Data Is Nothing Then Data.Dispose() : Data = Nothing + If Not SqlAdapter Is Nothing Then SqlAdapter.Dispose() : SqlAdapter = Nothing + If Not SqlCommand Is Nothing Then SqlCommand.Dispose() : SqlCommand = Nothing + If Not SqlTransacc Is Nothing Then SqlTransacc.Dispose() : SqlTransacc = Nothing + If SqlConexion.State <> ConnectionState.Closed Then SqlConexion.Close() + If Not SqlConexion Is Nothing Then SqlConexion.Dispose() : SqlConexion = Nothing End If diff --git a/App_Code/ClsPV.vb b/App_Code/ClsPV.vb index 63f2bb39e..382f34065 100644 --- a/App_Code/ClsPV.vb +++ b/App_Code/ClsPV.vb @@ -208,12 +208,13 @@ Public Class ClsPV If Not Me.disposedValue Then If disposing Then ' TODO: dispose managed state (managed objects). - If Not Data Is Nothing Then Data.Dispose() - If Not SqlAdapter Is Nothing Then SqlAdapter.Dispose() - If Not SqlCommand Is Nothing Then SqlCommand.Dispose() - If Not SqlTransacc Is Nothing Then SqlTransacc.Dispose() + If Not Data Is Nothing Then Data.Dispose() : Data = Nothing + If Not SqlAdapter Is Nothing Then SqlAdapter.Dispose() : SqlAdapter = Nothing + If Not SqlCommand Is Nothing Then SqlCommand.Dispose() : SqlCommand = Nothing + If Not SqlTransacc Is Nothing Then SqlTransacc.Dispose() : SqlTransacc = Nothing If SqlConexion.State <> ConnectionState.Closed Then SqlConexion.Close() - If Not SqlConexion Is Nothing Then SqlConexion.Dispose() + If Not SqlConexion Is Nothing Then SqlConexion.Dispose() : SqlConexion = Nothing + End If ' TODO: free unmanaged resources (unmanaged objects) and override Finalize() below. diff --git a/App_Code/ClsPresupuestos.vb b/App_Code/ClsPresupuestos.vb index 2bf7542f8..54c45a729 100644 --- a/App_Code/ClsPresupuestos.vb +++ b/App_Code/ClsPresupuestos.vb @@ -755,10 +755,12 @@ Public Class ClsPresupuestos If Not disposedValue Then If disposing Then ' TODO: Liberar otro estado (objetos administrados). - SqlConexion.Close() - SqlConexion.Dispose() - If Not Data Is Nothing Then Data.Dispose() - If Not SqlAdapter Is Nothing Then SqlAdapter.Dispose() + If Not Data Is Nothing Then Data.Dispose() : Data = Nothing + If Not SqlAdapter Is Nothing Then SqlAdapter.Dispose() : SqlAdapter = Nothing + If Not SqlCommand Is Nothing Then SqlCommand.Dispose() : SqlCommand = Nothing + If Not SqlTransacc Is Nothing Then SqlTransacc.Dispose() : SqlTransacc = Nothing + If SqlConexion.State <> ConnectionState.Closed Then SqlConexion.Close() + If Not SqlConexion Is Nothing Then SqlConexion.Dispose() : SqlConexion = Nothing End If diff --git a/App_Code/ClsProductosServicios.vb b/App_Code/ClsProductosServicios.vb index 113c97ce0..1b1a08d6f 100644 --- a/App_Code/ClsProductosServicios.vb +++ b/App_Code/ClsProductosServicios.vb @@ -2141,11 +2141,13 @@ Public Class ClsProductosServicios If Not Me.disposedValue Then If disposing Then ' TODO: dispose managed state (managed objects). - If Not Data Is Nothing Then Data.Dispose() - If Not SqlAdapter Is Nothing Then SqlAdapter.Dispose() - If Not SqlCommand Is Nothing Then SqlCommand.Dispose() + If Not Data Is Nothing Then Data.Dispose() : Data = Nothing + If Not SqlAdapter Is Nothing Then SqlAdapter.Dispose() : SqlAdapter = Nothing + If Not SqlCommand Is Nothing Then SqlCommand.Dispose() : SqlCommand = Nothing + If Not SqlTransacc Is Nothing Then SqlTransacc.Dispose() : SqlTransacc = Nothing If SqlConexion.State <> ConnectionState.Closed Then SqlConexion.Close() - If Not SqlConexion Is Nothing Then SqlConexion.Dispose() + If Not SqlConexion Is Nothing Then SqlConexion.Dispose() : SqlConexion = Nothing + End If ' TODO: free unmanaged resources (unmanaged objects) and override Finalize() below. diff --git a/App_Code/ClsProsEncuestas.vb b/App_Code/ClsProsEncuestas.vb index dc005bd79..7a74c21c6 100644 --- a/App_Code/ClsProsEncuestas.vb +++ b/App_Code/ClsProsEncuestas.vb @@ -775,10 +775,11 @@ Public Class ClsProsEncuestas If Not disposedValue Then If disposing Then ' TODO: Liberar otro estado (objetos administrados). - SqlConexion.Close() - SqlConexion.Dispose() - If Not Data Is Nothing Then Data.Dispose() - If Not SqlAdapter Is Nothing Then SqlAdapter.Dispose() + If Not Data Is Nothing Then Data.Dispose() : Data = Nothing + If Not SqlAdapter Is Nothing Then SqlAdapter.Dispose() : SqlAdapter = Nothing + If Not SqlTransacc Is Nothing Then SqlTransacc.Dispose() : SqlTransacc = Nothing + If SqlConexion.State <> ConnectionState.Closed Then SqlConexion.Close() + If Not SqlConexion Is Nothing Then SqlConexion.Dispose() : SqlConexion = Nothing End If diff --git a/App_Code/ClsProspectos.vb b/App_Code/ClsProspectos.vb index adfc2b6cd..2866b3324 100644 --- a/App_Code/ClsProspectos.vb +++ b/App_Code/ClsProspectos.vb @@ -4615,10 +4615,13 @@ Public Class ClsProspectos If Not disposedValue Then If disposing Then ' TODO: Liberar otro estado (objetos administrados). - SqlConexion.Close() - SqlConexion.Dispose() - If Not Data Is Nothing Then Data.Dispose() - If Not SqlAdapter Is Nothing Then SqlAdapter.Dispose() + If Not Data Is Nothing Then Data.Dispose() : Data = Nothing + + If Not SqlAdapter Is Nothing Then SqlAdapter.Dispose() : SqlAdapter = Nothing + + If Not SqlTransacc Is Nothing Then SqlTransacc.Dispose() : SqlTransacc = Nothing + If SqlConexion.State <> ConnectionState.Closed Then SqlConexion.Close() + If Not SqlConexion Is Nothing Then SqlConexion.Dispose() : SqlConexion = Nothing End If diff --git a/App_Code/ClsProyectos.vb b/App_Code/ClsProyectos.vb index 31b371e85..030fc7686 100644 --- a/App_Code/ClsProyectos.vb +++ b/App_Code/ClsProyectos.vb @@ -233,10 +233,12 @@ Public Class ClsProyectos If Not disposedValue Then If disposing Then ' TODO: Liberar otro estado (objetos administrados). - SqlConexion.Close() - SqlConexion.Dispose() - If Not Data Is Nothing Then Data.Dispose() - If Not SqlAdapter Is Nothing Then SqlAdapter.Dispose() + If Not Data Is Nothing Then Data.Dispose() : Data = Nothing + If Not SqlAdapter Is Nothing Then SqlAdapter.Dispose() : SqlAdapter = Nothing + If Not SqlCommand Is Nothing Then SqlCommand.Dispose() : SqlCommand = Nothing + If Not SqlTransacc Is Nothing Then SqlTransacc.Dispose() : SqlTransacc = Nothing + If SqlConexion.State <> ConnectionState.Closed Then SqlConexion.Close() + If Not SqlConexion Is Nothing Then SqlConexion.Dispose() : SqlConexion = Nothing End If diff --git a/App_Code/ClsPruebasJJMQ.vb b/App_Code/ClsPruebasJJMQ.vb index 3bd297b6e..1a812e2b5 100644 --- a/App_Code/ClsPruebasJJMQ.vb +++ b/App_Code/ClsPruebasJJMQ.vb @@ -157,11 +157,12 @@ Public Class ClsPruebasJJMQ If Not Me.disposedValue Then If disposing Then ' TODO: Liberar otro estado (objetos administrados). - SqlConexion.Close() - SqlConexion.Dispose() - If Not Data Is Nothing Then Data.Dispose() - If Not SqlAdapter Is Nothing Then SqlAdapter.Dispose() - If Not SqlCommand Is Nothing Then SqlCommand.Dispose() + If Not Data Is Nothing Then Data.Dispose() : Data = Nothing + If Not SqlAdapter Is Nothing Then SqlAdapter.Dispose() : SqlAdapter = Nothing + If Not SqlCommand Is Nothing Then SqlCommand.Dispose() : SqlCommand = Nothing + If Not SqlTransacc Is Nothing Then SqlTransacc.Dispose() : SqlTransacc = Nothing + If SqlConexion.State <> ConnectionState.Closed Then SqlConexion.Close() + If Not SqlConexion Is Nothing Then SqlConexion.Dispose() : SqlConexion = Nothing StrSQL.Clear() End If diff --git a/App_Code/ClsPuntoVenta.vb b/App_Code/ClsPuntoVenta.vb index 79f8f82ed..e524ce6bb 100644 --- a/App_Code/ClsPuntoVenta.vb +++ b/App_Code/ClsPuntoVenta.vb @@ -429,12 +429,12 @@ Public Class ClsPuntoVenta If Not Me.disposedValue Then If disposing Then ' TODO: dispose managed state (managed objects). - If Not Data Is Nothing Then Data.Dispose() - If Not SqlAdapter Is Nothing Then SqlAdapter.Dispose() - If Not SqlCommand Is Nothing Then SqlCommand.Dispose() - If Not SqlTransacc Is Nothing Then SqlTransacc.Dispose() + If Not Data Is Nothing Then Data.Dispose() : Data = Nothing + If Not SqlAdapter Is Nothing Then SqlAdapter.Dispose() : SqlAdapter = Nothing + If Not SqlCommand Is Nothing Then SqlCommand.Dispose() : SqlCommand = Nothing + If Not SqlTransacc Is Nothing Then SqlTransacc.Dispose() : SqlTransacc = Nothing If SqlConexion.State <> ConnectionState.Closed Then SqlConexion.Close() - If Not SqlConexion Is Nothing Then SqlConexion.Dispose() + If Not SqlConexion Is Nothing Then SqlConexion.Dispose() : SqlConexion = Nothing End If ' TODO: free unmanaged resources (unmanaged objects) and override Finalize() below. diff --git a/App_Code/ClsRH.vb b/App_Code/ClsRH.vb index c7d98a06d..455ae5763 100644 --- a/App_Code/ClsRH.vb +++ b/App_Code/ClsRH.vb @@ -7111,10 +7111,12 @@ chkAplicaVacacion As Boolean, chkAplicaIncapacidad As Boolean, chkAplicaRetardo If Not disposedValue Then If disposing Then ' TODO: Liberar otro estado (objetos administrados). - SqlConexion.Close() - SqlConexion.Dispose() - If Not Data Is Nothing Then Data.Dispose() - If Not SqlAdapter Is Nothing Then SqlAdapter.Dispose() + If Not Data Is Nothing Then Data.Dispose() : Data = Nothing + If Not DSet Is Nothing Then DSet.Dispose() : DSet = Nothing + If Not SqlAdapter Is Nothing Then SqlAdapter.Dispose() : SqlAdapter = Nothing + If Not SqlTransacc Is Nothing Then SqlTransacc.Dispose() : SqlTransacc = Nothing + If SqlConexion.State <> ConnectionState.Closed Then SqlConexion.Close() + If Not SqlConexion Is Nothing Then SqlConexion.Dispose() : SqlConexion = Nothing End If diff --git a/App_Code/ClsRMA.vb b/App_Code/ClsRMA.vb index b29752ac6..25726a92e 100644 --- a/App_Code/ClsRMA.vb +++ b/App_Code/ClsRMA.vb @@ -203,11 +203,13 @@ Public Class ClsRMA If Not disposedValue Then If disposing Then ' TODO: Liberar otro estado (objetos administrados). - SqlConexion.Close() - SqlConexion.Dispose() - If Not Data Is Nothing Then Data.Dispose() - If Not SqlAdapter Is Nothing Then SqlAdapter.Dispose() - If Not SqlCommand Is Nothing Then SqlCommand.Dispose() + If Not Data Is Nothing Then Data.Dispose() : Data = Nothing + If Not SqlAdapter Is Nothing Then SqlAdapter.Dispose() : SqlAdapter = Nothing + If Not SqlCommand Is Nothing Then SqlCommand.Dispose() : SqlCommand = Nothing + If Not SqlTransacc Is Nothing Then SqlTransacc.Dispose() : SqlTransacc = Nothing + If SqlConexion.State <> ConnectionState.Closed Then SqlConexion.Close() + If Not SqlConexion Is Nothing Then SqlConexion.Dispose() : SqlConexion = Nothing + End If ' TODO: Liberar su propio estado (objetos no administrados). diff --git a/App_Code/ClsSAT.vb b/App_Code/ClsSAT.vb index ec5a7b30e..62d6f4521 100644 --- a/App_Code/ClsSAT.vb +++ b/App_Code/ClsSAT.vb @@ -451,11 +451,12 @@ Public Class ClsSAT ' TODO: dispose managed state (managed objects). 'ConexionUpdate() - If Not Data Is Nothing Then Data.Dispose() - If Not SqlAdapter Is Nothing Then SqlAdapter.Dispose() - If Not SqlTransacc Is Nothing Then SqlTransacc.Dispose() + If Not Data Is Nothing Then Data.Dispose() : Data = Nothing + If Not SqlAdapter Is Nothing Then SqlAdapter.Dispose() : SqlAdapter = Nothing + If Not SqlTransacc Is Nothing Then SqlTransacc.Dispose() : SqlTransacc = Nothing If SqlConexion.State <> ConnectionState.Closed Then SqlConexion.Close() - If Not SqlConexion Is Nothing Then SqlConexion.Dispose() + If Not SqlConexion Is Nothing Then SqlConexion.Dispose() : SqlConexion = Nothing + End If diff --git a/App_Code/ClsSCTLicencias.vb b/App_Code/ClsSCTLicencias.vb index bdf704c01..7ae89385a 100644 --- a/App_Code/ClsSCTLicencias.vb +++ b/App_Code/ClsSCTLicencias.vb @@ -247,13 +247,16 @@ Public Class ClsSCTLicencias Protected Overridable Sub Dispose(ByVal disposing As Boolean) If Not disposedValue Then If disposing Then + ' TODO: Liberar otro estado (objetos administrados). - SqlConexion.Close() - SqlConexion.Dispose() + If Not Data Is Nothing Then Data.Dispose() : Data = Nothing + If Not SqlAdapter Is Nothing Then SqlAdapter.Dispose() : SqlAdapter = Nothing + If Not SqlCommand Is Nothing Then SqlCommand.Dispose() : SqlCommand = Nothing + If SqlConexion.State <> ConnectionState.Closed Then SqlConexion.Close() + If Not SqlConexion Is Nothing Then SqlConexion.Dispose() : SqlConexion = Nothing + End If - If Not Data Is Nothing Then Data.Dispose() - If Not SqlAdapter Is Nothing Then SqlAdapter.Dispose() - If Not SqlCommand Is Nothing Then SqlCommand.Dispose() + ' TODO: Liberar su propio estado (objetos no administrados). ' TODO: Establecer campos grandes como Null. diff --git a/App_Code/ClsSeguimiento.vb b/App_Code/ClsSeguimiento.vb index 96b21a7cf..d3359629a 100644 --- a/App_Code/ClsSeguimiento.vb +++ b/App_Code/ClsSeguimiento.vb @@ -166,10 +166,10 @@ Public Class ClsSeguimiento If Not disposedValue Then If disposing Then ' TODO: Liberar otro estado (objetos administrados). - SqlConexion.Close() - SqlConexion.Dispose() - If Not Data Is Nothing Then Data.Dispose() - If Not SqlAdapter Is Nothing Then SqlAdapter.Dispose() + If Not Data Is Nothing Then Data.Dispose() : Data = Nothing + If Not SqlAdapter Is Nothing Then SqlAdapter.Dispose() : SqlAdapter = Nothing + If SqlConexion.State <> ConnectionState.Closed Then SqlConexion.Close() + If Not SqlConexion Is Nothing Then SqlConexion.Dispose() : SqlConexion = Nothing End If diff --git a/App_Code/ClsSisEmpresas.vb b/App_Code/ClsSisEmpresas.vb index 8712432be..e96dd9a87 100644 --- a/App_Code/ClsSisEmpresas.vb +++ b/App_Code/ClsSisEmpresas.vb @@ -1846,14 +1846,15 @@ Public Class ClsSisEmpresas ' IDisposable Protected Overridable Sub Dispose(disposing As Boolean) If Not Me.disposedValue Then - If disposing Then - ' TODO: Liberar otro estado (objetos administrados). - If Not Data Is Nothing Then Data.Dispose() - If Not SqlAdapter Is Nothing Then SqlAdapter.Dispose() - If Not SqlCommand Is Nothing Then SqlCommand.Dispose() - 'If Not SqlTransacc Is Nothing Then SqlTransacc.Dispose() - If SqlConexion.State <> ConnectionState.Closed Then SqlConexion.Close() - If Not SqlConexion Is Nothing Then SqlConexion.Dispose() + If disposing Then + ' TODO: Liberar otro estado (objetos administrados). + If Not Data Is Nothing Then Data.Dispose() : Data = Nothing + If Not SqlAdapter Is Nothing Then SqlAdapter.Dispose() : SqlAdapter = Nothing + If Not SqlCommand Is Nothing Then SqlCommand.Dispose() : SqlCommand = Nothing + If Not SqlTransacc Is Nothing Then SqlTransacc.Dispose() : SqlTransacc = Nothing + If SqlConexion.State <> ConnectionState.Closed Then SqlConexion.Close() + If Not SqlConexion Is Nothing Then SqlConexion.Dispose() : SqlConexion = Nothing + End If ' TODO: Liberar su propio estado (objetos no administrados). diff --git a/App_Code/ClsSisNotificaciones.vb b/App_Code/ClsSisNotificaciones.vb index 4aafd6454..bcf8af387 100644 --- a/App_Code/ClsSisNotificaciones.vb +++ b/App_Code/ClsSisNotificaciones.vb @@ -2063,22 +2063,25 @@ Public Class ClsSisNotificaciones ' IDisposable Protected Overridable Sub Dispose(disposing As Boolean) If Not Me.disposedValue Then - If disposing Then - ' TODO: Liberar otro estado (objetos administrados). - SqlConexion.Close() - SqlConexion.Dispose() - If Not DataSet Is Nothing Then - DataSet.Clear() - DataSet.Dispose() - End If - If Not Data Is Nothing Then Data.Dispose() - If Not DTNotificacionesGPS Is Nothing Then DTNotificacionesGPS.Dispose() - If Not DTNotificacionesERP Is Nothing Then DTNotificacionesERP.Dispose() - If Not DTNotificacionesArmadas Is Nothing Then DTNotificacionesArmadas.Dispose() - If Not DTReportesProgramados Is Nothing Then DTReportesProgramados.Dispose() - NotificacionesBitacora = "" - If Not SqlAdapter Is Nothing Then SqlAdapter.Dispose() - If Not SqlCommand Is Nothing Then SqlCommand.Dispose() + If disposing Then + + + + If Not DTNotificacionesGPS Is Nothing Then DTNotificacionesGPS.Dispose() : DTNotificacionesGPS = Nothing + If Not DTNotificacionesERP Is Nothing Then DTNotificacionesERP.Dispose() : DTNotificacionesERP = Nothing + If Not DTNotificacionesArmadas Is Nothing Then DTNotificacionesArmadas.Dispose() : DTNotificacionesArmadas = Nothing + If Not DTReportesProgramados Is Nothing Then DTReportesProgramados.Dispose() : DTReportesProgramados = Nothing + NotificacionesBitacora = "" + + + If Not Data Is Nothing Then Data.Dispose() : Data = Nothing + If Not DataSet Is Nothing Then DataSet.Dispose() : DataSet = Nothing + If Not SqlAdapter Is Nothing Then SqlAdapter.Dispose() : SqlAdapter = Nothing + If Not SqlCommand Is Nothing Then SqlCommand.Dispose() : SqlCommand = Nothing + If SqlConexion.State <> ConnectionState.Closed Then SqlConexion.Close() + If Not SqlConexion Is Nothing Then SqlConexion.Dispose() : SqlConexion = Nothing + + End If ' TODO: Liberar su propio estado (objetos no administrados). diff --git a/App_Code/ClsSisParametros.vb b/App_Code/ClsSisParametros.vb index 8ab040848..31ee3bc15 100644 --- a/App_Code/ClsSisParametros.vb +++ b/App_Code/ClsSisParametros.vb @@ -255,12 +255,15 @@ Public Class ClsSisParametros Protected Overridable Sub Dispose(disposing As Boolean) If Not Me.disposedValue Then If disposing Then - ' TODO: Liberar otro estado (objetos administrados). - SqlConexion.Close() - SqlConexion.Dispose() - If Not Data Is Nothing Then Data.Dispose() - If Not SqlAdapter Is Nothing Then SqlAdapter.Dispose() - If Not SqlCommand Is Nothing Then SqlCommand.Dispose() + + + + If Not Data Is Nothing Then Data.Dispose() : Data = Nothing + If Not SqlAdapter Is Nothing Then SqlAdapter.Dispose() : SqlAdapter = Nothing + If Not SqlCommand Is Nothing Then SqlCommand.Dispose() : SqlCommand = Nothing + If SqlConexion.State <> ConnectionState.Closed Then SqlConexion.Close() + If Not SqlConexion Is Nothing Then SqlConexion.Dispose() : SqlConexion = Nothing + End If ' TODO: Liberar su propio estado (objetos no administrados). diff --git a/App_Code/ClsSisProcesos.vb b/App_Code/ClsSisProcesos.vb index a19a77896..573219743 100644 --- a/App_Code/ClsSisProcesos.vb +++ b/App_Code/ClsSisProcesos.vb @@ -216,11 +216,11 @@ Public Class ClsSisProcesos If Not Me.disposedValue Then If disposing Then ' TODO: Liberar otro estado (objetos administrados). - SqlConexion.Close() - SqlConexion.Dispose() - If Not Data Is Nothing Then Data.Dispose() - If Not SqlAdapter Is Nothing Then SqlAdapter.Dispose() - If Not SqlCommand Is Nothing Then SqlCommand.Dispose() + If Not Data Is Nothing Then Data.Dispose() : Data = Nothing + If Not SqlAdapter Is Nothing Then SqlAdapter.Dispose() : SqlAdapter = Nothing + If Not SqlCommand Is Nothing Then SqlCommand.Dispose() : SqlCommand = Nothing + If SqlConexion.State <> ConnectionState.Closed Then SqlConexion.Close() + If Not SqlConexion Is Nothing Then SqlConexion.Dispose() : SqlConexion = Nothing End If ' TODO: Liberar su propio estado (objetos no administrados). diff --git a/App_Code/ClsSisRoles.vb b/App_Code/ClsSisRoles.vb index 85b9a7211..89e0fa672 100644 --- a/App_Code/ClsSisRoles.vb +++ b/App_Code/ClsSisRoles.vb @@ -336,10 +336,13 @@ Public Class ClsSisRoles If Not Me.disposedValue Then If disposing Then ' TODO: Liberar otro estado (objetos administrados). - SqlConexion.Close() - SqlConexion.Dispose() - If Not Data Is Nothing Then Data.Dispose() - If Not SqlAdapter Is Nothing Then SqlAdapter.Dispose() + + If Not Data Is Nothing Then Data.Dispose() : Data = Nothing + If Not SqlAdapter Is Nothing Then SqlAdapter.Dispose() : SqlAdapter = Nothing + If Not SqlCommand Is Nothing Then SqlCommand.Dispose() : SqlCommand = Nothing + If Not SqlTransacc Is Nothing Then SqlTransacc.Dispose() : SqlTransacc = Nothing + If SqlConexion.State <> ConnectionState.Closed Then SqlConexion.Close() + If Not SqlConexion Is Nothing Then SqlConexion.Dispose() : SqlConexion = Nothing End If diff --git a/App_Code/ClsSisUsuarios.vb b/App_Code/ClsSisUsuarios.vb index 09896ce69..44acf89fc 100644 --- a/App_Code/ClsSisUsuarios.vb +++ b/App_Code/ClsSisUsuarios.vb @@ -2939,12 +2939,16 @@ Public Class ClsSisUsuarios #Region "IDisposable Support" Protected Overridable Sub Dispose(disposing As Boolean) If Not Me.disposedValue Then - If disposing Then - If Not Data Is Nothing Then Data.Dispose() - If Not SqlAdapter Is Nothing Then SqlAdapter.Dispose() - If Not SqlCommand Is Nothing Then SqlCommand.Dispose() - If SqlConexion.State <> ConnectionState.Closed Then SqlConexion.Close() - If Not SqlConexion Is Nothing Then SqlConexion.Dispose() + If disposing Then + + + If Not Data Is Nothing Then Data.Dispose() : Data = Nothing + If Not SqlAdapter Is Nothing Then SqlAdapter.Dispose() : SqlAdapter = Nothing + If Not SqlCommand Is Nothing Then SqlCommand.Dispose() : SqlCommand = Nothing + If Not SqlTransacc Is Nothing Then SqlTransacc.Dispose() : SqlTransacc = Nothing + If SqlConexion.State <> ConnectionState.Closed Then SqlConexion.Close() + If Not SqlConexion Is Nothing Then SqlConexion.Dispose() : SqlConexion = Nothing + End If End If Me.disposedValue = True diff --git a/App_Code/ClsStiReports.vb b/App_Code/ClsStiReports.vb index fa533de0a..8d000882f 100644 --- a/App_Code/ClsStiReports.vb +++ b/App_Code/ClsStiReports.vb @@ -106,10 +106,13 @@ Public Class ClsStiReports If Not disposedValue Then If disposing Then ' TODO: Liberar otro estado (objetos administrados). - SqlConexion.Close() - SqlConexion.Dispose() - If Not Data Is Nothing Then Data.Dispose() - If Not SqlAdapter Is Nothing Then SqlAdapter.Dispose() + + If Not Data Is Nothing Then Data.Dispose() : Data = Nothing + If Not SqlAdapter Is Nothing Then SqlAdapter.Dispose() : SqlAdapter = Nothing + If Not SqlCommand Is Nothing Then SqlCommand.Dispose() : SqlCommand = Nothing + If Not SqlTransacc Is Nothing Then SqlTransacc.Dispose() : SqlTransacc = Nothing + If SqlConexion.State <> ConnectionState.Closed Then SqlConexion.Close() + If Not SqlConexion Is Nothing Then SqlConexion.Dispose() : SqlConexion = Nothing End If diff --git a/App_Code/ClsSubProyectos.vb b/App_Code/ClsSubProyectos.vb index eb0f0d55a..f07ce9213 100644 --- a/App_Code/ClsSubProyectos.vb +++ b/App_Code/ClsSubProyectos.vb @@ -299,12 +299,14 @@ Public Class ClsSubProyectos ' IDisposable Protected Overridable Sub Dispose(ByVal disposing As Boolean) If Not disposedValue Then - If disposing Then - ' TODO: Liberar otro estado (objetos administrados). - SqlConexion.Close() - SqlConexion.Dispose() - If Not Data Is Nothing Then Data.Dispose() - If Not SqlAdapter Is Nothing Then SqlAdapter.Dispose() + If disposing Then + ' TODO: Liberar otro estado (objetos administrados). + + If Not Data Is Nothing Then Data.Dispose() : Data = Nothing + If Not SqlAdapter Is Nothing Then SqlAdapter.Dispose() : SqlAdapter = Nothing + If Not SqlTransacc Is Nothing Then SqlTransacc.Dispose() : SqlTransacc = Nothing + If SqlConexion.State <> ConnectionState.Closed Then SqlConexion.Close() + If Not SqlConexion Is Nothing Then SqlConexion.Dispose() : SqlConexion = Nothing End If diff --git a/App_Code/ClsSucursales.vb b/App_Code/ClsSucursales.vb index b7d3f0f00..e1d19cca9 100644 --- a/App_Code/ClsSucursales.vb +++ b/App_Code/ClsSucursales.vb @@ -351,11 +351,13 @@ Public Class ClsSucursales If Not Me.disposedValue Then If disposing Then ' TODO: dispose managed state (managed objects). - If Not Data Is Nothing Then Data.Dispose() - If Not SqlAdapter Is Nothing Then SqlAdapter.Dispose() - If Not SqlCommand Is Nothing Then SqlCommand.Dispose() + + If Not Data Is Nothing Then Data.Dispose() : Data = Nothing + If Not SqlAdapter Is Nothing Then SqlAdapter.Dispose() : SqlAdapter = Nothing + If Not SqlCommand Is Nothing Then SqlCommand.Dispose() : SqlCommand = Nothing + If Not SqlTransacc Is Nothing Then SqlTransacc.Dispose() : SqlTransacc = Nothing If SqlConexion.State <> ConnectionState.Closed Then SqlConexion.Close() - If Not SqlConexion Is Nothing Then SqlConexion.Dispose() + If Not SqlConexion Is Nothing Then SqlConexion.Dispose() : SqlConexion = Nothing End If ' TODO: free unmanaged resources (unmanaged objects) and override Finalize() below. diff --git a/App_Code/ClsTemporal.vb b/App_Code/ClsTemporal.vb index f9ee5ca69..3b727f52c 100644 --- a/App_Code/ClsTemporal.vb +++ b/App_Code/ClsTemporal.vb @@ -291,12 +291,13 @@ Public Class ClsTemporal If Not Me.disposedValue Then If disposing Then ' TODO: dispose managed state (managed objects). - If Not Data Is Nothing Then Data.Dispose() - If Not SqlAdapter Is Nothing Then SqlAdapter.Dispose() - If Not SqlCommand Is Nothing Then SqlCommand.Dispose() - If Not SqlTransacc Is Nothing Then SqlTransacc.Dispose() + + If Not Data Is Nothing Then Data.Dispose() : Data = Nothing + If Not SqlAdapter Is Nothing Then SqlAdapter.Dispose() : SqlAdapter = Nothing + If Not SqlCommand Is Nothing Then SqlCommand.Dispose() : SqlCommand = Nothing + If Not SqlTransacc Is Nothing Then SqlTransacc.Dispose() : SqlTransacc = Nothing If SqlConexion.State <> ConnectionState.Closed Then SqlConexion.Close() - If Not SqlConexion Is Nothing Then SqlConexion.Dispose() + If Not SqlConexion Is Nothing Then SqlConexion.Dispose() : SqlConexion = Nothing End If ' TODO: free unmanaged resources (unmanaged objects) and override Finalize() below. diff --git a/App_Code/ClsTiposEventos.vb b/App_Code/ClsTiposEventos.vb index 2905de837..76cb02e42 100644 --- a/App_Code/ClsTiposEventos.vb +++ b/App_Code/ClsTiposEventos.vb @@ -185,11 +185,12 @@ Public Class ClsTiposEventos If Not Me.disposedValue Then If disposing Then ' TODO: dispose managed state (managed objects). - If Not Data Is Nothing Then Data.Dispose() - If Not SqlAdapter Is Nothing Then SqlAdapter.Dispose() - If Not SqlCommand Is Nothing Then SqlCommand.Dispose() + + If Not Data Is Nothing Then Data.Dispose() : Data = Nothing + If Not SqlAdapter Is Nothing Then SqlAdapter.Dispose() : SqlAdapter = Nothing + If Not SqlCommand Is Nothing Then SqlCommand.Dispose() : SqlCommand = Nothing If SqlConexion.State <> ConnectionState.Closed Then SqlConexion.Close() - If Not SqlConexion Is Nothing Then SqlConexion.Dispose() + If Not SqlConexion Is Nothing Then SqlConexion.Dispose() : SqlConexion = Nothing End If ' TODO: free unmanaged resources (unmanaged objects) and override Finalize() below. diff --git a/App_Code/ClsUnidadesMedida.vb b/App_Code/ClsUnidadesMedida.vb index 69e51e5f8..542efe9bf 100644 --- a/App_Code/ClsUnidadesMedida.vb +++ b/App_Code/ClsUnidadesMedida.vb @@ -307,11 +307,13 @@ Public Class ClsUnidadesMedida If Not Me.disposedValue Then If disposing Then ' TODO: dispose managed state (managed objects). - If Not Data Is Nothing Then Data.Dispose() - If Not SqlAdapter Is Nothing Then SqlAdapter.Dispose() - If Not SqlCommand Is Nothing Then SqlCommand.Dispose() + + If Not Data Is Nothing Then Data.Dispose() : Data = Nothing + If Not SqlAdapter Is Nothing Then SqlAdapter.Dispose() : SqlAdapter = Nothing + If Not SqlCommand Is Nothing Then SqlCommand.Dispose() : SqlCommand = Nothing + If Not SqlTransacc Is Nothing Then SqlTransacc.Dispose() : SqlTransacc = Nothing If SqlConexion.State <> ConnectionState.Closed Then SqlConexion.Close() - If Not SqlConexion Is Nothing Then SqlConexion.Dispose() + If Not SqlConexion Is Nothing Then SqlConexion.Dispose() : SqlConexion = Nothing End If ' TODO: free unmanaged resources (unmanaged objects) and override Finalize() below. diff --git a/App_Code/ClsVentas.vb b/App_Code/ClsVentas.vb index c8a9c42e7..2a6cf907c 100644 --- a/App_Code/ClsVentas.vb +++ b/App_Code/ClsVentas.vb @@ -5257,13 +5257,19 @@ Public Class ClsVentas If Not Me.disposedValue Then If disposing Then ' TODO: dispose managed state (managed objects). - If Not Data Is Nothing Then Data.Dispose() - If Not Dataset Is Nothing Then Dataset.Dispose() - If Not SqlAdapter Is Nothing Then SqlAdapter.Dispose() - If Not SqlCommand Is Nothing Then SqlCommand.Dispose() - If Not SqlTransacc Is Nothing Then SqlTransacc.Dispose() + + + + If Not Data Is Nothing Then Data.Dispose() : Data = Nothing + If Not Dataset Is Nothing Then Dataset.Dispose() : Dataset = Nothing + If Not SqlAdapter Is Nothing Then SqlAdapter.Dispose() : SqlAdapter = Nothing + If Not SqlCommand Is Nothing Then SqlCommand.Dispose() : SqlCommand = Nothing + If Not SqlTransacc Is Nothing Then SqlTransacc.Dispose() : SqlTransacc = Nothing If SqlConexion.State <> ConnectionState.Closed Then SqlConexion.Close() - If Not SqlConexion Is Nothing Then SqlConexion.Dispose() + If Not SqlConexion Is Nothing Then SqlConexion.Dispose() : SqlConexion = Nothing + + + End If ' TODO: free unmanaged resources (unmanaged objects) and override Finalize() below. diff --git a/App_Code/ClsVtaPromociones.vb b/App_Code/ClsVtaPromociones.vb index f5e9e6bfa..3c11d5b04 100644 --- a/App_Code/ClsVtaPromociones.vb +++ b/App_Code/ClsVtaPromociones.vb @@ -139,11 +139,13 @@ Public Class ClsVtaPromociones If Not Me.disposedValue Then If disposing Then ' TODO: dispose managed state (managed objects). - If Not Data Is Nothing Then Data.Dispose() - If Not SqlAdapter Is Nothing Then SqlAdapter.Dispose() - If Not SqlCommand Is Nothing Then SqlCommand.Dispose() + + + If Not Data Is Nothing Then Data.Dispose() : Data = Nothing + If Not SqlAdapter Is Nothing Then SqlAdapter.Dispose() : SqlAdapter = Nothing + If Not SqlCommand Is Nothing Then SqlCommand.Dispose() : SqlCommand = Nothing If SqlConexion.State <> ConnectionState.Closed Then SqlConexion.Close() - If Not SqlConexion Is Nothing Then SqlConexion.Dispose() + If Not SqlConexion Is Nothing Then SqlConexion.Dispose() : SqlConexion = Nothing End If ' TODO: free unmanaged resources (unmanaged objects) and override Finalize() below. diff --git a/App_Code/ClsVtaVendedores.vb b/App_Code/ClsVtaVendedores.vb index 6949554e1..11c021c2d 100644 --- a/App_Code/ClsVtaVendedores.vb +++ b/App_Code/ClsVtaVendedores.vb @@ -265,13 +265,15 @@ Public Class ClsVtaVendedores Protected Overridable Sub Dispose(ByVal disposing As Boolean) If Not disposedValue Then If disposing Then - ' TODO: Liberar otro estado (objetos administrados). - SqlConexion.Close() - SqlConexion.Dispose() - If Not Data Is Nothing Then Data.Dispose() - If Not SqlAdapter Is Nothing Then SqlAdapter.Dispose() + ' TODO: Liberar otro estado (objetos administrados). + If Not Data Is Nothing Then Data.Dispose() : Data = Nothing + If Not SqlAdapter Is Nothing Then SqlAdapter.Dispose() : SqlAdapter = Nothing + If Not SqlCommand Is Nothing Then SqlCommand.Dispose() : SqlCommand = Nothing + If Not SqlTransacc Is Nothing Then SqlTransacc.Dispose() : SqlTransacc = Nothing + If SqlConexion.State <> ConnectionState.Closed Then SqlConexion.Close() + If Not SqlConexion Is Nothing Then SqlConexion.Dispose() : SqlConexion = Nothing - End If + End If ' TODO: Liberar su propio estado (objetos no administrados). ' TODO: Establecer campos grandes como Null. diff --git a/Ventas/CatClientes.aspx b/Ventas/CatClientes.aspx index 762d4efb9..bd1869aa2 100644 --- a/Ventas/CatClientes.aspx +++ b/Ventas/CatClientes.aspx @@ -473,47 +473,7 @@
- <%----%> - - - - + + + + + diff --git a/Ventas/CatClientes.aspx.vb b/Ventas/CatClientes.aspx.vb index 33a704d22..51f83bd8f 100644 --- a/Ventas/CatClientes.aspx.vb +++ b/Ventas/CatClientes.aspx.vb @@ -85,11 +85,22 @@ Partial Class CatClientes DdlClasificaciones.Items.Insert(0, New ListItem("Todas", "-1")) End Sub Private Sub CargaNombreClientes() - DdlClienteAUnificar.DataSource = GlobalDTCliente(UsuarioActual.CveEmpresa) - DdlClienteAUnificar.DataBind() - DdlClienteOriginal.DataSource = GlobalDTCliente(UsuarioActual.CveEmpresa) - DdlClienteOriginal.DataBind() + DdlClienteAUnificar.setEsWebService(True) + DdlClienteAUnificar.SelectedValue = "-1" + DdlClienteAUnificar.SelectedText = "Todos" + + + DdlClienteOriginal.setEsWebService(True) + DdlClienteOriginal.SelectedValue = "-1" + DdlClienteOriginal.SelectedText = "Todos" + + 'DdlClienteAUnificar.DataSource = GlobalDTCliente(UsuarioActual.CveEmpresa) + 'DdlClienteAUnificar.DataBind() + + 'DdlClienteOriginal.DataSource = GlobalDTCliente(UsuarioActual.CveEmpresa) + 'DdlClienteOriginal.DataBind() + UpBodyUnificar.Update() End Sub From 4c5690deaf41af35fa7ded041c41291babc8ff9b Mon Sep 17 00:00:00 2001 From: rrene Date: Wed, 22 Sep 2021 15:18:57 -0700 Subject: [PATCH 6/9] =?UTF-8?q?cache=20se=20pas=C3=B3=20a=2030=20minutos?= =?UTF-8?q?=20de=2060=20que=20tenia?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- App_Code/ClsPaginas.vb | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/App_Code/ClsPaginas.vb b/App_Code/ClsPaginas.vb index 8611e3a83..49aab559a 100644 --- a/App_Code/ClsPaginas.vb +++ b/App_Code/ClsPaginas.vb @@ -5470,7 +5470,7 @@ Public Class ClsPaginas Protected Overrides Sub SavePageStateToPersistenceMedium(pviewState As Object) 'If Request.Form("__VIEWSTATE_KEY") IsNot Nothing Then Cache.Remove(Request.Form("__VIEWSTATE_KEY")) 'elimino la cachado anteriormente Dim VSKey As String = String.Format("VIEWSTATE_{0}_{1}_{2}", Session.SessionID, Request.Path, Date.Now.Ticks) - Cache.Add(VSKey, pviewState, Nothing, Date.Now.AddMinutes(60), Cache.NoSlidingExpiration, CacheItemPriority.Default, Nothing) 'Store the ViewState on Cache + Cache.Add(VSKey, pviewState, Nothing, Date.Now.AddMinutes(30), Cache.NoSlidingExpiration, CacheItemPriority.Default, Nothing) 'Store the ViewState on Cache 'Session.Add(VSKey, pviewState) 'Store the ViewState on Cache ClientScript.RegisterHiddenField("__VIEWSTATE_KEY", VSKey) From 6e00abed29094ffe425c2418c4bd080c055871bd Mon Sep 17 00:00:00 2001 From: rrene Date: Wed, 22 Sep 2021 23:49:44 -0700 Subject: [PATCH 7/9] carta porte --- App_Code/CFDITimbre.vb | 6 +++--- App_Code/ClsProductosServicios.vb | 8 ++++++-- 2 files changed, 9 insertions(+), 5 deletions(-) diff --git a/App_Code/CFDITimbre.vb b/App_Code/CFDITimbre.vb index ddd73483a..a5704429e 100644 --- a/App_Code/CFDITimbre.vb +++ b/App_Code/CFDITimbre.vb @@ -587,7 +587,7 @@ End Class Public Class CFDICartaPorteUbicaciones Public Property TipoEstacion As String = "" - Public Property DistanciaRecorrida As Double = 0 + Public Property DistanciaRecorrida As Decimal = 0 'Public Property Ubicacion As New CFDICartaPorteUbicacion Public Property Origen As New CFDICartaPorteUbicacionOrigen Public Property Destino As New CFDICartaPorteUbicacionDestino @@ -680,8 +680,8 @@ Public Class CFDICartaPorteMercancia Public Property MaterialPeligroso As String = "" Public Property Embalaje As String = "" Public Property DescripEmbalaje As String = "" - Public Property PesoenKg As Double - Public Property ValorMercancia As Double + Public Property PesoenKg As Decimal + Public Property ValorMercancia As Decimal Public Property Moneda As String = "" Public Property FraccionArrancelaria As String = "" Public Property UUIDComercioExt As String = "" diff --git a/App_Code/ClsProductosServicios.vb b/App_Code/ClsProductosServicios.vb index 1b1a08d6f..e245b1f44 100644 --- a/App_Code/ClsProductosServicios.vb +++ b/App_Code/ClsProductosServicios.vb @@ -92,6 +92,7 @@ Public Class ClsProductosServicios Public Property CveMaterialPeligroso As Integer Public Property CveEmbalaje As Integer Public Property PesoKg As Decimal + Public Property Dimensiones As String 'Nuevo Raul: 10/08/2018 Public Property CveUsuarioModifico As Integer @@ -301,6 +302,7 @@ Public Class ClsProductosServicios CveMaterialPeligroso = Data.Rows(0)("CveMaterialPeligroso").ToString.ToEntero CveEmbalaje = Data.Rows(0)("CveEmbalaje").ToString.ToEntero PesoKg = Data.Rows(0)("PesoKg").ToString.ToDecimal + Dimensiones = Data.Rows(0)("Dimensiones").ToString 'Nuevo Raul: 10/08/2018 CveUsuarioModifico = Data.Rows(0)("CveUsuarioModifico").ToString.ToEntero @@ -416,7 +418,7 @@ Public Class ClsProductosServicios Optional CveModelo As Integer = -1, Optional CveMedida As Integer = -1, Optional CveRinTamaño As Integer = -1, Optional ClaveImpuestoEmpaque As String = "", Optional ClaveImpuestoUM As String = "", Optional ClaveCategoriaToxicidad As String = "", Optional ClaveImpuestoTipoProducto As String = "", Optional Litraje As Double = -1, Optional EsOutSourcing As Boolean = False, Optional AplicaSerie As Boolean = False, Optional AplicaLote As Boolean = False, Optional AplicaCaducidad As Boolean = False, Optional AplicaSeccion As Boolean = False, Optional TiempoCaducidad As Integer = -1, Optional CvePSAdicionalVigencia As Integer = -1, Optional PrecioLibre As Boolean = False, - Optional CveMaterialPeligroso As Integer = -1, Optional CveEmbalaje As Integer = -1, Optional PesoKg As Decimal = -1) As Integer + Optional CveMaterialPeligroso As Integer = -1, Optional CveEmbalaje As Integer = -1, Optional PesoKg As Decimal = -1, Optional Dimensiones As String = "") As Integer Dim Retorno As Integer = -1 DataAdapter("PA_ProductosServiciosAdd") @@ -503,6 +505,7 @@ Public Class ClsProductosServicios .Add("@CveMaterialPeligroso", SqlDbType.Int).Value = CveMaterialPeligroso .Add("@CveEmbalaje", SqlDbType.Int).Value = CveEmbalaje .Add("@PesoKg", SqlDbType.SmallMoney).Value = PesoKg + .Add("@Dimensiones", SqlDbType.VarChar).Value = Dimensiones End With @@ -651,7 +654,7 @@ Public Class ClsProductosServicios Optional CveClasificacionDetalle As Integer = -1, Optional CveTamaño As Integer = -1, Optional CveModelo As Integer = -1, Optional CveMedida As Integer = -1, Optional CveRinTamaño As Integer = -1, Optional ClaveImpuestoEmpaque As String = "", Optional ClaveImpuestoUM As String = "", Optional ClaveCategoriaToxicidad As String = "", Optional ClaveImpuestoTipoProducto As String = "", Optional Litraje As Double = -1, Optional EsOutSourcing As Boolean = False, Optional AplicaSerie As Boolean = False, Optional AplicaLote As Boolean = False, Optional AplicaCaducidad As Boolean = False, Optional AplicaSeccion As Boolean = False, Optional TiempoCaducidad As Integer = -1, Optional CvePSAdicionalVigencia As Integer = -1, Optional PrecioLibre As Boolean = False, - Optional CveMaterialPeligroso As Integer = -1, Optional CveEmbalaje As Integer = -1, Optional PesoKg As Decimal = -1) As Boolean + Optional CveMaterialPeligroso As Integer = -1, Optional CveEmbalaje As Integer = -1, Optional PesoKg As Decimal = -1, Optional Dimensiones As String = "") As Boolean Dim Retorno As Boolean = False @@ -740,6 +743,7 @@ Public Class ClsProductosServicios .Add("@CveMaterialPeligroso", SqlDbType.Int).Value = CveMaterialPeligroso .Add("@CveEmbalaje", SqlDbType.Int).Value = CveEmbalaje .Add("@PesoKg", SqlDbType.SmallMoney).Value = PesoKg + .Add("@Dimensiones", SqlDbType.VarChar).Value = Dimensiones End With From f1289c09b91dcf1ac1af654b080bddc640ef3eca Mon Sep 17 00:00:00 2001 From: rrene Date: Thu, 23 Sep 2021 06:49:28 -0700 Subject: [PATCH 8/9] -CARTAPORTE --- Inventarios/TraspasoAlmacen.aspx.vb | 54 +++++++++++++++++++++++++++-- 1 file changed, 51 insertions(+), 3 deletions(-) diff --git a/Inventarios/TraspasoAlmacen.aspx.vb b/Inventarios/TraspasoAlmacen.aspx.vb index f585987ab..eeb0e8011 100644 --- a/Inventarios/TraspasoAlmacen.aspx.vb +++ b/Inventarios/TraspasoAlmacen.aspx.vb @@ -2712,6 +2712,50 @@ Partial Class Inventarios_TraspasoAlmacen CartaPorte.Mercancias.UnidadPeso = "" CartaPorte.Mercancias.CargoporTasacion = 0 + ''CartaPorte.FiguraTransporte.AutoTransporteFederal.PermSCT = "TPAF01" + ''CartaPorte.FiguraTransporte.AutoTransporteFederal.NumPermisoSCT = "1234567890" + ''CartaPorte.FiguraTransporte.AutoTransporteFederal.NombreAseg = "GNP" + ''CartaPorte.FiguraTransporte.AutoTransporteFederal.NumPolizaSeguro = "P123" + ''CartaPorte.FiguraTransporte.AutoTransporteFederal.Vehiculo.ConfigVehicular = "C2" + ''CartaPorte.FiguraTransporte.AutoTransporteFederal.Vehiculo.PlacaVM = "WTF757A" + ''CartaPorte.FiguraTransporte.AutoTransporteFederal.Vehiculo.AnioModeloVM = 2007 + + ''Dim DomOrigen As New CFDICartaPorteDomicilio With {.Calle = "calle", + '' .Colonia = "", + '' .CP = "45200", + '' .Estado = "JAL", + '' .Pais = "MEX", + '' .Localidad = ""} + ''Dim DomDestino As New CFDICartaPorteDomicilio With {.Calle = "calle destino", + '' .Colonia = "", + '' .CP = "45200", + '' .Estado = "JAL", + '' .Pais = "MEX", + '' .Localidad = ""} + ''Dim Ubica As New CFDICartaPorteUbicaciones + ''Ubica.TipoEstacion = "01" + ''Ubica.DistanciaRecorrida = 6 + ''Ubica.Origen = New CFDICartaPorteUbicacionOrigen With {.RFCRemitente = "CAMJ841219I33", + '' .FechaHoraSalida = "2021-08-23T11:13:01", + '' .NombreRemitente = "Empresa", + '' .Domicilio = DomOrigen} + ''Ubica.Destino = New CFDICartaPorteUbicacionDestino With {.RFCDestinatario = "CAMJ841219I33", + '' .FechaHoraProgLlegada = "2021-08-23T11:13:01", + '' .NombreDestinatario = "Empresa dest", + '' .Domicilio = DomDestino} + + ''CartaPorte.Ubicaciones.Add(Ubica) + + ''CartaPorte.FiguraTransporte.ClaveTransporte = "01" + ''CartaPorte.FiguraTransporte.Operadores.Add(New CFDICartaPorteOperador With {.RFCOperador = "CAMJ841219I33", + '' .Domicilio = Nothing, + '' .NombreOperador = "juan Perez", + '' .NumLicencia = "Num Lic", + '' .NumRegidTribOperador = "", + '' .ResidenciaFiscalOperador = ""}) + + + Dim Dr As DataRow = DtCamiones.FiltroPrimero(String.Format("CveCamion= {0}", DdlUnidadCamion.SelectedValue)) If Dr IsNot Nothing Then @@ -2799,7 +2843,7 @@ Partial Class Inventarios_TraspasoAlmacen .Descripcion = "Flete", .ValorUnitario = 0, .Importe = 0, - .Descuento = 0L, + .Descuento = 0, .Unidad = "Servicio", .ClaveUnidad = "E48", .ClaveProdServ = "78101802", @@ -2977,7 +3021,7 @@ Partial Class Inventarios_TraspasoAlmacen 'If TimbrarFacturaGoCFDIv33(ObjFactura, UsuarioActual, 4) <> "" Then ' MensajeAlert.AppendFormat("
  • -- no timbró-{0}
", MensajeErrorCFDI) 'End If - If ObjTimbrado.TimbrarFactura(UsuarioActual, ObjFactura) Then + If ObjTimbrado.TimbrarFactura(UsuarioActual, ObjFactura, 3) Then MensajeAlert.Append("Emitido con exito.") 'XML Dim ArchivoXML = String.Format("{0}/XML/{1}/{2}.xml", UsuarioActual.Empresa.Ruta, ObjFactura.TipoDocto, ObjFactura.SerieFolio) @@ -2991,7 +3035,11 @@ Partial Class Inventarios_TraspasoAlmacen MensajeAlert.AppendFormat("", Encripta(String.Format("OP=DesPdfTra&CVEMOVIMIENTO={0}&EXT={1}&FOLIO={2}&TIPODOCTO={3}", CveMovimientoTimbrado, "PDF", ObjFactura.SerieFolio, ObjFactura.TipoDocto))) End If - MensajeAlert.AppendFormat("", Encripta(String.Format("OP=CARPO&CVEMOV={0}", CveMovimientoTimbrado))) + If UsuarioActual.Empresa.Funcionalidad(161) = "1" Then + MensajeAlert.AppendFormat("", Encripta(String.Format("OP=CARPOTIMBRE&CVEMOV={0}", CveMovimientoTimbrado))) + Else + MensajeAlert.AppendFormat("", Encripta(String.Format("OP=CARPO&CVEMOV={0}", CveMovimientoTimbrado))) + End If Else MensajeAlert.AppendFormat("
  • {0}
", ObjTimbrado.MensajeErrorCFDI) From dd0da844f75a132d27f3fd224a4fe1c8577a2434 Mon Sep 17 00:00:00 2001 From: JORGE LUIS CAUDILLO ESPARZA Date: Thu, 23 Sep 2021 08:10:35 -0700 Subject: [PATCH 9/9] --- App_Code/ClsClaseBase.vb | 4 +- App_Code/ClsGenerales.vb | 9 +- App_Code/ClsNominas.vb | 20 ++++ App_Code/ClsRH.vb | 10 +- Bin/GoCfdi.dll | Bin 343040 -> 388096 bytes General/ExcelToBD.aspx | 19 ++-- General/ExcelToBD.aspx.cs | 155 ++++++++++++++++++++++++++++-- Nomina/ChecadorAsistencia.aspx | 117 ++++++++++++++-------- Nomina/ChecadorAsistencia.aspx.cs | 69 ++++++++++--- RH/Personal.aspx | 10 +- RH/Personal.aspx.vb | 5 +- vwd.webinfo | 6 ++ 12 files changed, 344 insertions(+), 80 deletions(-) diff --git a/App_Code/ClsClaseBase.vb b/App_Code/ClsClaseBase.vb index d5857b782..87f8dd891 100644 --- a/App_Code/ClsClaseBase.vb +++ b/App_Code/ClsClaseBase.vb @@ -121,13 +121,13 @@ Public Class ClsClaseBase End If End Sub - Public Function runQuerystr(Query As String, Optional Listaparametros As List(Of parametroQuery) = Nothing, Optional msgError As String = "", Optional mostrarError As Boolean = True) As Boolean + Public Function runQuerystr(Query As String, Optional Listaparametros As List(Of parametroQuery) = Nothing, Optional msgError As String = "", Optional mostrarError As Boolean = True, Optional tipo As CommandType = CommandType.Text) As Boolean Dim retorno As Boolean = False Try If SqlConexion.State = ConnectionState.Open Then SqlAdapter.SelectCommand.Parameters.Clear() SqlAdapter.SelectCommand.CommandText = Query - SqlAdapter.SelectCommand.CommandType = CommandType.Text + SqlAdapter.SelectCommand.CommandType = tipo Data = New DataTable() If Not IsNothing(Listaparametros) Then For Each pr As parametroQuery In Listaparametros diff --git a/App_Code/ClsGenerales.vb b/App_Code/ClsGenerales.vb index 56b39138a..ba8ee9104 100644 --- a/App_Code/ClsGenerales.vb +++ b/App_Code/ClsGenerales.vb @@ -2525,7 +2525,9 @@ Public Class ClsGenerales Public Function GetHistorialBitacora(CveAcarreo As Integer, CveOrdenCompra As Integer, CveActivoFijo As Integer, CveOS As Integer, CvePS As Integer, CveCompra As Integer, CveIE As Integer, CveEmpresa As Integer, Optional CveUsuario As Integer = -1, Optional CvePersonal As Integer = -1, - Optional IdPoliza As Integer = -1, Optional CvePrePoliza As Integer = -1, Optional CvePeriodo As Integer = -1, Optional CveConceptoNomina As Integer = -1, Optional CvePromocion As Integer = -1) As Boolean + Optional IdPoliza As Integer = -1, Optional CvePrePoliza As Integer = -1, Optional CvePeriodo As Integer = -1, Optional CveConceptoNomina As Integer = -1, Optional CvePromocion As Integer = -1, + Optional CveAsistencia As Integer = -1, Optional CveAsistenciaDetalle As Integer = -1, Optional CveTipoBitacora As Integer = -1, + Optional FechaInicio As String = "", Optional FechaFin As String = "") As Boolean Dim Retorno As Boolean = False DataAdapter("PA_Gral_HistorialBitacoraGet") @@ -2547,6 +2549,11 @@ Public Class ClsGenerales .Add("@CvePromocion", SqlDbType.Int).Value = CvePromocion + .Add("@CveAsistencia", SqlDbType.Int).Value = CveAsistencia + .Add("@CveAsistenciaDetalle", SqlDbType.Int).Value = CveAsistenciaDetalle + .Add("@CveTipoBitacora", SqlDbType.Int).Value = CveTipoBitacora + .Add("@FechaInicio", SqlDbType.VarChar).Value = FechaInicio + .Add("@FechaFin", SqlDbType.VarChar).Value = FechaFin End With 'SqlTypes.SqlDateTime.Null diff --git a/App_Code/ClsNominas.vb b/App_Code/ClsNominas.vb index f57a14a3c..4bb07c31d 100644 --- a/App_Code/ClsNominas.vb +++ b/App_Code/ClsNominas.vb @@ -2251,6 +2251,26 @@ Public Class ClsNominas End Try Return retorno End Function + Public Function ExcelToBD(xmlstring As String) As Boolean + Dim retorno As Boolean = False + + Try + DTSet = New DataSet() + DataAdapter("PA_ExcelToBD", CommandType.StoredProcedure) + With SqlAdapter.SelectCommand.Parameters + .Add("@xmlstring", SqlDbType.Xml).Value = xmlstring + End With + SqlAdapter.Fill(DTSet) + retorno = True + Catch sqEx As SqlException + retorno = False + OnError("Ocurrió un error al obtener la asistenciadetalle.", sqEx, SqlAdapter.SelectCommand.Parameters.ParametrosInfo()) + Catch ex As Exception + retorno = False + OnError("Ocurrió un error al obtener la asistenciadetalle.", ex, SqlAdapter.SelectCommand.Parameters.ParametrosInfo()) + End Try + Return retorno + End Function Public Function AsistenciaDetallePorTurnoGet(FechaInicio As DateTime, FechaFin As DateTime, CveEmpresa As Integer, Optional CvePersonal As Integer = -1) As Boolean Dim retorno As Boolean = False diff --git a/App_Code/ClsRH.vb b/App_Code/ClsRH.vb index c7d98a06d..be7964414 100644 --- a/App_Code/ClsRH.vb +++ b/App_Code/ClsRH.vb @@ -1807,7 +1807,7 @@ chkAplicaVacacion As Boolean, chkAplicaIncapacidad As Boolean, chkAplicaRetardo Calle As String, NumExt As String, NumInt As String, Colonia As String, CP As String, Ciudad As String, CveEstado As Integer, Telefono As String, Celular As String, RFC As String, CURP As String, NombrePadre As String, NombreMadre As String, CveSATBanco As Integer, CveSATRiesgoPuesto As Integer, CveSATRegimenContratacion As Integer, CveClienteAsignado As Integer, CveSubProyecto As Integer, URL As String, CveSupervisor As Integer, CLABE As String, BancoNumCuenta As String, CveJornada As Integer, IdCtaContPersonal As Integer, CtaContPersonal As String, IdCtaContPrestamos As Integer, CtaContPrestamos As String, CveUsuario As Integer, CveEmpresa As Integer, CveUsuarioNomina As Integer, Optional CveSubProyectoZona As Integer = Nothing, Optional CveUniforme As Integer = -1, - Optional TelefonoExtension As String = "-1", Optional CelularPersonal As String = "-1", Optional TelefonoMarcadoRapido As String = "-1", Optional ContactoAlterno As String = "-1", Optional CveTipodeSalario As Integer = 1, Optional Sindicalizado As Boolean = False, Optional CvePais As Integer = -1) As Boolean + Optional TelefonoExtension As String = "-1", Optional CelularPersonal As String = "-1", Optional TelefonoMarcadoRapido As String = "-1", Optional ContactoAlterno As String = "-1", Optional CveTipodeSalario As Integer = 1, Optional Sindicalizado As Boolean = False, Optional CvePais As Integer = -1, Optional Pensionado As Boolean = False) As Boolean Dim Retorno As Boolean = False @@ -1889,6 +1889,7 @@ chkAplicaVacacion As Boolean, chkAplicaIncapacidad As Boolean, chkAplicaRetardo .Add("@ContactoAlterno", SqlDbType.VarChar).Value = ContactoAlterno .Add("@CveTipodeSalario", SqlDbType.Int).Value = CveTipodeSalario .Add("@Sindicalizado", SqlDbType.Bit).Value = Sindicalizado + .Add("@Pensionado", SqlDbType.Bit).Value = Pensionado .Add("@CvePais", SqlDbType.Int).Value = CvePais .Add("@RETURN_VALUE", SqlDbType.Int).Direction = ParameterDirection.ReturnValue @@ -1922,7 +1923,7 @@ chkAplicaVacacion As Boolean, chkAplicaIncapacidad As Boolean, chkAplicaRetardo NombrePadre As String, NombreMadre As String, CveSATBanco As Integer, CveSATRiesgoPuesto As Integer, CveSATRegimenContratacion As Integer, CveClienteAsignado As Integer, CveSubProyecto As Integer, CvePersonal As Integer, URL As String, CveSupervisor As Integer, CLABE As String, BancoNumCuenta As String, CveJornada As Integer, IdCtaContPersonal As Integer, CtaContPersonal As String, IdCtaContPrestamos As Integer, CtaContPrestamos As String, CveEmpresa As Integer, CveUsuarioNomina As Integer, Optional CveSubProyectoZona As Integer = Nothing, Optional CveUniforme As Integer = -1, Optional TelefonoExtension As String = "-1", Optional CelularPersonal As String = "-1", Optional TelefonoMarcadoRapido As String = "-1", Optional ContactoAlterno As String = "-1", Optional CveUsuarioModifico As Integer = -1, - Optional FechaActivo As Date = MinFecha, Optional FechaReingreso As Date = MinFecha, Optional CveTipodeSalario As Integer = 1, Optional Sindicalizado As Integer = -1, Optional CvePais As Integer = -1) As Boolean + Optional FechaActivo As Date = MinFecha, Optional FechaReingreso As Date = MinFecha, Optional CveTipodeSalario As Integer = 1, Optional Sindicalizado As Integer = -1, Optional CvePais As Integer = -1, Optional Pensionado As Boolean = False) As Boolean Dim Retorno As Boolean = False @@ -2008,6 +2009,7 @@ chkAplicaVacacion As Boolean, chkAplicaIncapacidad As Boolean, chkAplicaRetardo .Add("@FechaReingreso", SqlDbType.Date).Value = FechaReingreso .Add("@CveTipodeSalario", SqlDbType.Int).Value = CveTipodeSalario .Add("@Sindicalizado", SqlDbType.Int).Value = Sindicalizado + .Add("@Pensionado", SqlDbType.Bit).Value = Pensionado .Add("@CvePais", SqlDbType.Int).Value = CvePais End With @@ -2441,7 +2443,7 @@ chkAplicaVacacion As Boolean, chkAplicaIncapacidad As Boolean, chkAplicaRetardo End Function - Public Function UpAsistenciaDetalle(CveEmpresa As Integer, registros As List(Of RequestUpAsistenciaDetalle)) As Boolean + Public Function UpAsistenciaDetalle(CveEmpresa As Integer, CveUsuario As Integer, registros As List(Of RequestUpAsistenciaDetalle)) As Boolean Dim Retorno As Boolean = False Dim xmlProductos As System.Xml.Linq.XDocument = Nothing If registros IsNot Nothing AndAlso registros.Count > 0 Then @@ -2451,6 +2453,7 @@ chkAplicaVacacion As Boolean, chkAplicaIncapacidad As Boolean, chkAplicaRetardo SqlDataAdapter("PA_RH_AsistenciaDetalleUP") With SqlAdapter.SelectCommand.Parameters .Add("@CveEmpresa", SqlDbType.Int).Value = CveEmpresa + .Add("@CveUsuario", SqlDbType.Int).Value = CveUsuario .Add("@xmlRegistros", SqlDbType.Xml).Value = xmlProductos.ToString() End With Try @@ -7145,4 +7148,5 @@ Public Class RequestUpAsistenciaDetalle Public Property CvePersonal As Integer Public Property CveAsistenciasInasistencias As Integer Public Property CveSubProyecto As Integer + Public Property Motivo As String End Class diff --git a/Bin/GoCfdi.dll b/Bin/GoCfdi.dll index aba020c12f4ab08c987d2a636243b15464c8d7e3..f6da1e75afbaeabd1ae16449f4dd79eb5f8bbb71 100644 GIT binary patch delta 74128 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 gK0ysQTFyE}|1ZrAt#pI?;4v*( delta 58142 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 - +
@@ -48,9 +48,13 @@ Paso 2: Configuración
- Mostrar
+
+
+ Mostrar +
+
@@ -67,19 +71,19 @@
- +
- +
- +
@@ -88,12 +92,15 @@
- Continuar + Continuar
+ + +
diff --git a/General/ExcelToBD.aspx.cs b/General/ExcelToBD.aspx.cs index cabe4ccdb..4f00078ce 100644 --- a/General/ExcelToBD.aspx.cs +++ b/General/ExcelToBD.aspx.cs @@ -1,6 +1,9 @@ using System; +using System.Collections.Concurrent; using System.Collections.Generic; +using System.Data; using System.Linq; +using System.Text.RegularExpressions; using System.Web; using System.Web.UI; using System.Web.UI.WebControls; @@ -41,6 +44,16 @@ public partial class General_ExcelToBD : System.Web.UI.Page set { ViewState["workBooks"] = value; } } + private ConcurrentDictionary ColumnsTitles + { + get + { + if (ViewState["ColumnsTitles"] == null) { return null; } + else { return (ConcurrentDictionary)ViewState["ColumnsTitles"]; } + } + + set { ViewState["ColumnsTitles"] = value; } + } #endregion protected void Page_Load(object sender, EventArgs e) { @@ -64,21 +77,21 @@ public partial class General_ExcelToBD : System.Web.UI.Page workBooks.Add(new ADSWorksBooks() { Name = wokitem.Name, position = position++ }); } - + } DdlWorkBooks.DataSource = workBooks; DdlWorkBooks.DataBind(); if (workBooks.Count > 0) { DdlWorkBooks.SelectedIndex = 0; - DdlWorkBooks_SelectedIndexChanged(null,null); + DdlWorkBooks_SelectedIndexChanged(null, null); } } protected void DdlWorkBooks_SelectedIndexChanged(object sender, EventArgs e) { using (var workbook = new XLWorkbook(URLFile)) - { + { int Filas = 0; int columnas = 0; @@ -86,25 +99,151 @@ public partial class General_ExcelToBD : System.Web.UI.Page Filas = workSheet.LastColumnUsed().CellCount(); columnas = workSheet.LastRowUsed().CellCount(); TxtFilas.Text = Filas.ToString(); - TxtInicia.Text = "1"; - TxtColumnas.Text = Filas.ToString(); + TxtInicia.Text = "2"; + TxtColumnas.Text = "62";// columnas.ToString(); } } protected void Lnkdoit_Click(object sender, EventArgs e) { - + GVDatos.DataSource = GetDatosExcel(); + GVDatos.DataBind(); } protected void LnkContinuar_Click(object sender, EventArgs e) { - int Filas = 0; - int columnas = 0; + DataSet ds = new DataSet(); + DataTable dtDatos = new DataTable(); + DataTable dt = GetDatosExcel(); + ds.DataSetName = "DSDatos"; + dtDatos.TableName = "TCol"; + dt.TableName = "TData"; + + dtDatos.Columns.Add(new DataColumn("Columnas", typeof(string))); + dtDatos.Columns.Add(new DataColumn("LEN", typeof(int))); + foreach (DataColumn item in dt.Columns) + { + DataRow drow = dtDatos.NewRow(); + drow["Columnas"] = item.ColumnName; + int longitud = 0; + foreach (DataRow dr in dt.Rows) + { + int length = dr[item.ColumnName].ToString().Length; + + longitud = length > longitud ? length : longitud; + } + drow["LEN"] = longitud; + dtDatos.Rows.Add(drow); + } + + ds.Tables.Add(dtDatos); + ds.Tables.Add(dt); + string xml = ds.GetXml(); + + using (ClsNominas objbase = new ClsNominas()) + { + if (objbase.ExcelToBD(xml)) + { + this.Alert("Información capturada", ModExtensiones.TipoMensaje.MsgInformacion); + } + } + GVDatos.DataSource = dt; + GVDatos.DataBind(); + + //this.Alert(string.Format("
{0}\n

", xml), ModExtensiones.TipoMensaje.MsgInformacion); + + } + public string validtitle(string Valor) + { + + Valor = Valor.Replace(" ", "_"); + Valor = Valor.Replace("$$$$", "_Money_"); + Valor = Valor.Replace("$$$", "_Money_"); + Valor = Valor.Replace("$$", "_Money_"); + Valor = Valor.Replace("$", "_Money_"); + Valor = Valor.Replace(".", string.Empty); + Regex reg = new Regex("[*'\",&#^@]"); + Valor = reg.Replace(Valor, string.Empty); + if (Valor.Trim().Length == 0) + { + Valor = "Val"; + } + return Valor; + } + public DataTable GetDatosExcel() + { + + DataTable dtDatos = new DataTable(); + ColumnsTitles = new ConcurrentDictionary(); using (var workbook = new XLWorkbook(URLFile)) { IXLWorksheet workSheet = workbook.Worksheet(DdlWorkBooks.SelectedValue.ToEntero()); + DateTime d = new DateTime(); + bool continuarFila = true; + string validaValor; + + int contadorValida = 0; + bool haveTitles = chkcontieneTitulos.Checked; + int FilaInicial = TxtInicia.Text.ToEntero() > 0 ? TxtInicia.Text.ToEntero() : 1; + int ColumnaFinal = TxtColumnas.Text.ToEntero(); + int cFila = FilaInicial; + int cCol = 1; + + while (cCol <= ColumnaFinal) + { + string Valor = cCol.ToString(); + if (haveTitles) + { + Valor = workSheet.Cell(cFila, cCol).Value != null && workSheet.Cell(cFila, cCol).Value.GetType() == d.GetType() ? string.Format("{0:yyyy/MM/dd}", workSheet.Cell(cFila, cCol).Value) : workSheet.Cell(cFila, cCol).Value.ToString(); + Valor = validtitle(Valor); + } + if (!ColumnsTitles.TryAdd(Valor, Valor)) + { + int x = 2; + while (!ColumnsTitles.TryAdd(string.Format("{0}_{1}", Valor, x), Valor)) { x++; } + Valor = string.Format("{0}_{1}", Valor, x); + } + dtDatos.Columns.Add(new DataColumn(Valor, typeof(string))); + cCol++; + } + if (haveTitles) + { + cFila++; + } + while (continuarFila) + { + DataRow drow = dtDatos.NewRow(); + cCol = 1; + validaValor = ""; + while (cCol <= ColumnaFinal) + { + string Valor = workSheet.Cell(cFila, cCol).Value != null && workSheet.Cell(cFila, cCol).Value.GetType() == d.GetType() ? string.Format("{0:yyyy/MM/dd}", workSheet.Cell(cFila, cCol).Value) : workSheet.Cell(cFila, cCol).Value.ToString(); + validaValor = string.Format("{0}{1}", validaValor, Valor); + drow[cCol - 1] = Valor; + cCol++; + } + if (validaValor.Trim() == "") + { + contadorValida++; + if (contadorValida > 30) + { + continuarFila = false; + } + } + else + { + contadorValida = 0; + dtDatos.Rows.Add(drow); + } + cFila++; + if (cFila >= 1048576) + { + continuarFila = false; + } + } } + return dtDatos; } } diff --git a/Nomina/ChecadorAsistencia.aspx b/Nomina/ChecadorAsistencia.aspx index 01a90f0c2..bcd279f98 100644 --- a/Nomina/ChecadorAsistencia.aspx +++ b/Nomina/ChecadorAsistencia.aspx @@ -115,11 +115,40 @@ - + +
+
+
+ + Historial de Modificación +
+
+
+
+
+
+
+ + + + + + + + + + + + + + + +
+
- - - - - - - - - -
- -
-
-
- - - - - -
- - - - -
-
- -
- - - - -
-
-
-
-
-
@@ -262,6 +252,43 @@
+ + + + + + + + + + + + + + + + +
+ + + + +
+
+ + + +
+
+ + + + + + +
+
<%--
@@ -332,7 +359,13 @@ -
+
+ +
+ +
+
+
diff --git a/Nomina/ChecadorAsistencia.aspx.cs b/Nomina/ChecadorAsistencia.aspx.cs index f4fa8aec6..72a8e28da 100644 --- a/Nomina/ChecadorAsistencia.aspx.cs +++ b/Nomina/ChecadorAsistencia.aspx.cs @@ -61,7 +61,7 @@ public partial class Nomina_ChecadorAsistencia : ClsPaginas private DataTable generateTable() { DateTime FechaI = TxtRpdFechaInicio.Text.ToDateTime(); - DateTime FechaF = TxtRpdFechaFin.Text.ToDateTime(); + DateTime FechaF = TxtRpdFechaFin.Text.ToDateTime().AddDays(1); DataTable dtCon = new DataTable(); dtCon.Columns.Add(new DataColumn("Codigo", typeof(string))); dtCon.Columns.Add(new DataColumn("Empleado", typeof(string))); @@ -98,12 +98,14 @@ public partial class Nomina_ChecadorAsistencia : ClsPaginas string asistencia2 = ""; string Horas2 = ""; + string HoraExtraPorAutorizar2 = ""; if (dtx.Rows.Count > 1) { DataRow drf = dtx.Rows[1]; asistencia2 = ""; TipoAsis = drf["TipoAsistencia"].ToString(); Horas2 = drf["Horas"].ToString(); + HoraExtraPorAutorizar2 = drf["HoraExtraPorAutorizar"].ToString().ToEntero() > 0 ? string.Format("({0:0.##})", drf["HoraExtraPorAutorizar"]) : ""; switch (drf["Tipo"].ToString().ToEntero()) { case 1: @@ -131,6 +133,7 @@ public partial class Nomina_ChecadorAsistencia : ClsPaginas } string asistencia = ""; TipoAsis = drfec["TipoAsistencia"].ToString(); + string HoraExtraPorAutorizar = drfec["HoraExtraPorAutorizar"].ToString().ToEntero() > 0 ? string.Format("({0:0.##})", drfec["HoraExtraPorAutorizar"]) : ""; switch (drfec["Tipo"].ToString().ToEntero()) { case 1: @@ -155,7 +158,7 @@ public partial class Nomina_ChecadorAsistencia : ClsPaginas default: break; } - drow[FechaCol] = string.Format("
{0}
{1}
{2}
{3}
", asistencia, drfec["Horas"], asistencia2, Horas2); + drow[FechaCol] = string.Format("
{0}
{1}{2}
{3}
{4}{5}
", asistencia, drfec["Horas"], HoraExtraPorAutorizar, asistencia2, Horas2, HoraExtraPorAutorizar2); //drow[FechaCol] = string.Format("{0}
{1:HH}:{1:mm} - {2:HH}:{2:mm}", asistencia, drfec["Entrada"], drfec["Salida"]); } else @@ -188,6 +191,29 @@ public partial class Nomina_ChecadorAsistencia : ClsPaginas DataTable dtCon = generateTable(); GvNominas.DataSource = dtCon; GvNominas.DataBind(); + DateTime fechai = TxtFecha.Text.ToDateTime(); + DateTime fechaf = fechai.AddDays(1); + using (ClsGenerales ObjGral = new ClsGenerales()) { + if (ObjGral.GetHistorialBitacora(-1, -1, -1, -1, -1, -1, -1, UsuarioActual.CveEmpresa, FechaInicio: fechai.ToString("yyyy/MM/dd"), FechaFin: fechai.ToString("yyyy/MM/dd"))) + { + GvBitacora.DataSource = ObjGral.DtResultados; + GvBitacora.DataBind(); + } + + } + /* + + If CvePersonal > 0 Then + Dim ObjGral As New ClsGenerales() + If ObjGral.GetHistorialBitacora(-1, -1, -1, -1, -1, -1, -1, UsuarioActual.CveEmpresa, CvePersonal:=CvePersonal) Then + GvBitacora.DataSource = ObjGral.DtResultados + End If + ObjGral.Dispose() + GvBitacora.DataBind() + UpHistorialModificacion.Update() + End If + */ + UpDatos.Update(); } @@ -273,9 +299,10 @@ public partial class Nomina_ChecadorAsistencia : ClsPaginas protected void LnkAgregarRegistro_Click(object sender, EventArgs e) { + DateTime fechaing = string.Format("{0:dd-MM-yyyy} {0:HH}:{0:mm}:{1:00}", TxtFechaIngreso.Text.ToDateTimeExcat(), TxtSegundos.Text.ToEntero()).ToDateTimeExcat("dd-MM-yyyy HH:mm:ss"); bool continuar = false; List items = new List(); - items.Add(new RequestAddChecadorRegistro() { CveChecador = DdlChecador.SelectedValue.ToEntero(), CvePersonal = DdlmcPersonal.SelectedValue.ToEntero(), ChecadorID = -1, Fecha = TxtFechaIngreso.Text.ToDateTimeExcat() }); + items.Add(new RequestAddChecadorRegistro() { CveChecador = DdlChecador.SelectedValue.ToEntero(), CvePersonal = DdlmcPersonal.SelectedValue.ToEntero(), ChecadorID = -1, Fecha = fechaing }); using (ClsRH objrh = new ClsRH()) { objrh.IniciaTransacSQL(); @@ -294,7 +321,7 @@ public partial class Nomina_ChecadorAsistencia : ClsPaginas } if (continuar) { - Alert(string.Format("La asistencia se a agregado ({0:dd-MM-yyyy HH:mm}).", TxtFechaIngreso.Text.ToDateTimeExcat()), ModExtensiones.TipoMensaje.ToastInformacion); + Alert(string.Format("La asistencia se a agregado ({0:dd-MM-yyyy HH:mm:ss}).", fechaing), ModExtensiones.TipoMensaje.ToastInformacion); } if (!chkcontinuarAgregando.Checked) { @@ -316,9 +343,8 @@ public partial class Nomina_ChecadorAsistencia : ClsPaginas DropDownList DdlAsisProyectoB = (DropDownList)e.Row.FindControl("DdlAsisProyecto"); DropDownList DdlAsisSubProyectoB = (DropDownList)e.Row.FindControl("DdlAsisSubProyecto"); Label LblAsisProyectoB = (Label)e.Row.FindControl("LblAsisProyecto"); - Label LblAsisSubProyectoB = (Label)e.Row.FindControl("LblAsisSubProyecto"); + //Label LblAsisSubProyectoB = (Label)e.Row.FindControl("LblAsisSubProyecto"); Panel PnlProyectoB = (Panel)e.Row.FindControl("PnlProyecto"); - Panel PnlSubProyectoB = (Panel)e.Row.FindControl("PnlSubProyecto"); DdlTipoAsistenciasB.DataSource = GlobalDTAsistenciasInasistencias.FiltraParametros(string.Format("CveEmpresa = {0}", UsuarioActual.CveEmpresa)); DdlTipoAsistenciasB.DataBind(); @@ -331,9 +357,8 @@ public partial class Nomina_ChecadorAsistencia : ClsPaginas LblAsisSubProyectoB.Text = LblAsisSubProyecto.Text; */ - CargarCentrosDeCosto(DdlAsisProyectoB, DdlAsisSubProyectoB, LblAsisProyectoB, LblAsisSubProyectoB); + CargarCentrosDeCosto(DdlAsisProyectoB, DdlAsisSubProyectoB, LblAsisProyectoB, LblAsisSubProyecto); PnlProyectoB.Visible = PnlProyecto.Visible; - PnlSubProyectoB.Visible = PnlSubProyectoB.Visible; DdlTipoAsistenciasB.SelectedValueExist(CveAsistenciasInasistencias); DdlAsisProyectoB.SelectedValueExist(CveProyecto); DdlAsisSubProyectoB.SelectedValueExist(CveSubProyecto); @@ -343,6 +368,7 @@ public partial class Nomina_ChecadorAsistencia : ClsPaginas protected void BtnEstusAsistenciaModal_Click(object sender, EventArgs e) { + bool continuar = true; DateTime fecha = TxtFecha.Text.ToDateTime(); int CvePersonal = TxtCvePersonal.Text.ToEntero(); List registros = new List(); @@ -356,17 +382,37 @@ public partial class Nomina_ChecadorAsistencia : ClsPaginas DropDownList DdlTipoAsistenciasB = (DropDownList)row.FindControl("DdlTipoAsistencias"); DropDownList DdlAsisProyectoB = (DropDownList)row.FindControl("DdlAsisProyecto"); DropDownList DdlAsisSubProyectoB = (DropDownList)row.FindControl("DdlAsisSubProyecto"); + TextBox TxtMotivo = (TextBox)row.FindControl("TxtMotivo"); RequestUpAsistenciaDetalle obj = new RequestUpAsistenciaDetalle(); obj.CveAsistenciaDetalle = CveAsistenciaDetalle; obj.CveAsistenciasInasistencias = DdlTipoAsistenciasB.SelectedValue.ToEntero(); obj.CveSubProyecto = DdlAsisSubProyectoB.SelectedValue.ToEntero(); obj.CvePersonal = CvePersonal; obj.Fecha = fecha; + obj.Motivo = TxtMotivo.Text.Trim(); + if (obj.Motivo.Length == 0 && CveAsistenciasInasistencias != obj.CveAsistenciasInasistencias) + { + continuar = false; + break; + } registros.Add(obj); } - using (ClsRH objRH = new ClsRH()) + if (continuar) { - objRH.UpAsistenciaDetalle(UsuarioActual.CveEmpresa, registros); + using (ClsRH objRH = new ClsRH()) + { + if (objRH.UpAsistenciaDetalle(UsuarioActual.CveEmpresa,UsuarioActual.CveUsuario, registros)) + { + Alert("Se ha guardado la asistencia satisfactoriamente"); + RegistraScript("$('#divDetallesDia').modal('hide');"); + LnkConsultar_Click(null, null); + } + } + } + else + { + + Alert("El campo motivo es requerido favor de llenarlo",ModExtensiones.TipoMensaje.MsgAdvertencia); } //int CvePersonal = TxtasiscvePersonal.Text.ToEntero(); //DateTime fecha = TxtasisFecha.Text.ToDate(); @@ -377,8 +423,7 @@ public partial class Nomina_ChecadorAsistencia : ClsPaginas // TxtHorasTriples.Text.Trim().ToDouble(), DdlMotivoHoraExtra.SelectedValue.ToEntero(), TxtObservaciones.Text.Trim(), UsuarioActual.CveUsuario, UsuarioActual.CveEmpresa)) // { // //Alert(string.Format("se ha guardado la asistencia satisfactoriamente
{0}
{1:dd/MM/yyyy}", TxtPersonal.Text, TxtasisFecha.Text.ToDate()), TipoMensaje.ToastInformacion); - // Alert("Se ha guardado la asistencia satisfactoriamente"); - // RegistraScript("$('#DModalModAsistencia').modal('hide');"); + // } //} diff --git a/RH/Personal.aspx b/RH/Personal.aspx index 4b9ac86db..d6bb8052a 100644 --- a/RH/Personal.aspx +++ b/RH/Personal.aspx @@ -566,11 +566,13 @@
- +
+ + +
-
@@ -3973,9 +3975,9 @@
+
-
@@ -4003,9 +4005,9 @@
-
+
<%-- MODAL BITACORA --%>