From 321644b829703aec8e3390ba6030d3af7229b17d Mon Sep 17 00:00:00 2001 From: HECTOR RODRIGUEZ Date: Mon, 12 Jul 2021 17:29:00 -0700 Subject: [PATCH] modificacion para buscar usuario ingresado --- Ashx/E48.ashx | 353 +++++++++++++++++++++++++------------------------- 1 file changed, 179 insertions(+), 174 deletions(-) diff --git a/Ashx/E48.ashx b/Ashx/E48.ashx index ad1fdc507..ae7947be3 100644 --- a/Ashx/E48.ashx +++ b/Ashx/E48.ashx @@ -39,12 +39,15 @@ Public Class E48 : Implements IHttpHandler, IRequiresSessionState Dim RespuestaError As New FidelityAppsResponseError Dim TieneError As Boolean = False Dim JsonRequest As JObject = Nothing - Dim UsuarioActual As Usuario = ValidaUsuarioSistema(100, CveEmpresa) Dim ObjInventario As New ClsInventarios Dim ObjConta As New ClsContabilidad(ObjInventario.IniciaTransacSQL()) Dim CveMovimiento As Integer = 0 Dim Mensaje As String = "" Dim SinExistencia As String = "No hay existencias suficientes del producto: " + Dim ObjUsuarios As New ClsSisUsuarios + Dim CveUsuario As Integer + Dim UsuarioActual As Usuario = ValidaUsuarioSistema(100, CveEmpresa) + Dim ErrorAC As Boolean = False Dim ErrorMovInv As Boolean = False @@ -68,238 +71,240 @@ Public Class E48 : Implements IHttpHandler, IRequiresSessionState RespuestaError.Message = "Ocurrió un error al obtener el cuerpo de los parametros" End If - If Not TieneError AndAlso Not String.IsNullOrEmpty(JsonRequest("fecha")) AndAlso Not String.IsNullOrEmpty(JsonRequest("usuario")) AndAlso Not String.IsNullOrEmpty(JsonRequest("almacen")) AndAlso Not String.IsNullOrEmpty(JsonRequest("entrega")) AndAlso - Not String.IsNullOrEmpty(JsonRequest("observaciones")) AndAlso Not String.IsNullOrEmpty(JsonRequest("productos")) Then + If Not TieneError AndAlso Not String.IsNullOrEmpty(JsonRequest("fecha")) Then Dim Inv As New ClsInventarios Dim ObjProductosServicios As New ClsProductosServicios() Dim ObjContaAC As ClsContPAQi = Nothing Dim tFolio As Integer = Inv.GetFolioSiguiente(3, CveEmpresa) - Dim observaciones As String = JsonRequest("observaciones").ToString() + Dim observaciones As String = IIf(JsonRequest("observaciones").ToString() <> "", JsonRequest("observaciones").ToString(), "Salida Almacen") Dim CveAlmacen As Integer = 7 Dim IDPoliza As Integer = 0 - - Dim Fecha As Date = JsonRequest("fecha").ToString().ToDate Dim usuario As String = JsonRequest("usuario").ToString() + If ObjUsuarios.GetUsuariosEmpresas(-1) Then + CveUsuario = ObjUsuarios.DtResultados.FiltroPrimeroValor("CveUsuario", String.Format("Usuario = '{0}' ", usuario)).ToEntero + If CveUsuario > 0 Then + UsuarioActual = ValidaUsuarioSistema(CveUsuario, CveEmpresa) + Else + Mensaje = "No se encontro el usuario ingresado" + TieneError = True + End If + End If + Dim Fecha As Date = JsonRequest("fecha").ToString().ToDate Dim almacen As String = JsonRequest("almacen").ToString() Dim Recibe As String = JsonRequest("entrega").ToString() Dim GlobalDTInvConceptos As DataTable - Dim CveModalidad As Integer = GlobalDTAlmacen(UsuarioActual.CveEmpresa, CveAlmacen:=CveAlmacen).FiltroPrimeroValor("CveModalidad").ToEntero() - - Dim EsContabilizable As Boolean = (CveModalidad = 1) + Dim EsContabilizable As Boolean = True If Inv.GetConceptos Then GlobalDTInvConceptos = Inv.DtResultados Else GlobalDTInvConceptos = Nothing - Try + If Not TieneError Then + Try + Dim CvePrePoliza As Integer = ObjConta.AddPrePolizas("ASHX/E48", 53, 0, 0, 1, Fecha, observaciones, UsuarioActual.CveUsuario, CveEmpresa, CveTipoPoliza:=3) + CveMovimiento = ObjInventario.AddMovimiento(CveAlmacen, 3, 1, Fecha, tFolio, UsuarioActual.CveUsuario, CveEmpresa, -1, -1, -1, -1, Observaciones:=observaciones, Recibio:=Recibe, Modulo:="ASHX/E48") - Dim CvePrePoliza As Integer = ObjConta.AddPrePolizas("ASHX/E48", 53, 0, 0, 1, Fecha, observaciones, UsuarioActual.CveUsuario, UsuarioActual.CveEmpresa, CveTipoPoliza:=3) - CveMovimiento = ObjInventario.AddMovimiento(CveAlmacen, 3, 1, Fecha, tFolio, UsuarioActual.CveUsuario, UsuarioActual.CveEmpresa, -1, -1, -1, -1, Observaciones:=observaciones, Recibio:=Recibe, Modulo:="ASHX/E48") - - If CveMovimiento <= 0 OrElse CvePrePoliza <= 0 Then - RespuestaError.Message = "No se pudo almacenar el movimiento correctamente" - TieneError = True - ObjInventario.RollBack() 'deshace lo insertado - Else - - End If - - ''VALIDA EXISTENCIAS - Dim Cont As Integer = 0 - Dim ListaPS = JArray.Parse(JsonRequest("productos").ToString()) - - For Each JsonPS As JObject In ListaPS - - Dim Cantidad As Double = JsonPS("cantidad").ToString.ToDouble() - Dim CvePS As Integer = GlobalDTPSSimplificado(Codigo:=JsonPS("codigo").ToString()).FiltroPrimeroValor("CvePS").ToEntero() - Dim DrPS As DataRow = GlobalDTPS(UsuarioActual.CveEmpresa, CvePS:=CvePS).FiltroPrimero("") - Dim CveUM As Integer - If ObjProductosServicios.GetPS(CvePS, -1, CveEmpresa) Then - If ObjProductosServicios.DtResultados.Rows.Count > 0 Then - CveUM = ObjProductosServicios.CveUnidadMedida.ToString.ToEntero - End If - End If - If ObjInventario.GetExistenciasPS(CvePS, CveUM, CveEmpresa, CveAlmacen, FechaMovto:=String.Format("{0} 00:00", Fecha.ToString("yyyy/MM/dd"))) >= Cantidad Then - - If Not ObjInventario.AddMovimientoDetalle(CveMovimiento, Cantidad, CveUM, CvePS, 0, Observaciones:=observaciones, CveUsuarioModifico:=UsuarioActual.CveUsuario) Then - Mensaje = "Error al guardar los movimientos" - RespuestaError.Message = Mensaje - - ErrorMovInv = True - Exit For - End If + If CveMovimiento <= 0 OrElse CvePrePoliza <= 0 Then + RespuestaError.Message = "No se pudo almacenar el movimiento correctamente" + TieneError = True + ObjInventario.RollBack() 'deshace lo insertado Else - If UsuarioActual.TienePermisoProceso(114) Then - If ObjInventario.GetExistenciasPS(CvePS, CveUM, CveEmpresa, CveAlmacen, FechaMovto:=String.Format("{0} 00:00", Fecha.ToString("yyyy/MM/dd"))) >= Cantidad Then + + End If + + ''VALIDA EXISTENCIAS + Dim Cont As Integer = 0 + Dim ListaPS = JArray.Parse(JsonRequest("productos").ToString()) + + For Each JsonPS As JObject In ListaPS + + Dim Cantidad As Double = JsonPS("cantidad").ToString.ToDouble() + Dim CvePS As Integer = GlobalDTPSSimplificado(Codigo:=JsonPS("codigo").ToString()).FiltroPrimeroValor("CvePS").ToEntero() + Dim DrPS As DataRow = GlobalDTPS(CveEmpresa, CvePS:=CvePS).FiltroPrimero("") + Dim CveUM As Integer + If ObjProductosServicios.GetPS(CvePS, -1, CveEmpresa) Then + If ObjProductosServicios.DtResultados.Rows.Count > 0 Then + CveUM = ObjProductosServicios.CveUnidadMedida.ToString.ToEntero + End If + End If + If ObjInventario.GetExistenciasPS(CvePS, CveUM, CveEmpresa, CveAlmacen, FechaMovto:=String.Format("{0} 00:00", Fecha.ToString("yyyy/MM/dd"))) >= Cantidad Then + + If Not ObjInventario.AddMovimientoDetalle(CveMovimiento, Cantidad, CveUM, CvePS, 0, Observaciones:=observaciones, CveUsuarioModifico:=UsuarioActual.CveUsuario) Then Mensaje = "Error al guardar los movimientos" - RespuestaError.Message = Mensaje + ErrorMovInv = True Exit For End If Else - SinExistencia += String.Format("{0}, ", JsonPS("codigo").ToString()) - RespuestaError.Message = SinExistencia - ErrorMovInv = True : Exit For + If UsuarioActual.TienePermisoProceso(114) Then + If ObjInventario.GetExistenciasPS(CvePS, CveUM, CveEmpresa, CveAlmacen, FechaMovto:=String.Format("{0} 00:00", Fecha.ToString("yyyy/MM/dd"))) >= Cantidad Then + Mensaje = "Error al guardar los movimientos" + ErrorMovInv = True + Exit For + End If + Else + SinExistencia += String.Format("{0}, ", JsonPS("codigo").ToString()) + ErrorMovInv = True + End If + End If + Cont += 1 + Next + Mensaje = SinExistencia + 'Registro la prepóliza + If Not ErrorMovInv AndAlso ObjInventario.GetMovimientosDetalle(CveMovimiento, CveEmpresa) Then + Dim tValorInventario As Decimal = ObjInventario.DtResultados.SUMD("Total", "").RoundSQL() + Dim tValorOtro As Decimal = tValorInventario + Dim idCtaContable As Integer = 0 + Dim IdCtaContableOtro As Integer = UsuarioActual.Empresa.IdCuentaOtrosIngresos + Dim TipoMovtoAlmacen As Boolean = False + Dim TipoMovtoOtro As Boolean = True + Dim tCveSubProyecto As Integer = -1 + + Dim drA2 As DataRow = GlobalDTAlmacen(CveEmpresa).FiltroPrimero(String.Format("CveAlmacen = {0}", CveAlmacen)) + If drA2 IsNot Nothing Then + idCtaContable = drA2("IdCtaContable").ToString.ToEntero + tCveSubProyecto = drA2("CveSubProyecto").ToString.ToEntero End If - End If - Cont += 1 - Next - 'Registro la prepóliza - If Not ErrorMovInv AndAlso ObjInventario.GetMovimientosDetalle(CveMovimiento, UsuarioActual.CveEmpresa) Then - Dim tValorInventario As Decimal = ObjInventario.DtResultados.SUMD("Total", "").RoundSQL() - Dim tValorOtro As Decimal = tValorInventario - Dim idCtaContable As Integer = 0 - Dim IdCtaContableOtro As Integer = UsuarioActual.Empresa.IdCuentaOtrosIngresos - Dim TipoMovtoAlmacen As Boolean = False - Dim TipoMovtoOtro As Boolean = True - Dim tCveSubProyecto As Integer = -1 - - Dim drA2 As DataRow = GlobalDTAlmacen(UsuarioActual.CveEmpresa).FiltroPrimero(String.Format("CveAlmacen = {0}", CveAlmacen)) - If drA2 IsNot Nothing Then - idCtaContable = drA2("IdCtaContable").ToString.ToEntero - tCveSubProyecto = drA2("CveSubProyecto").ToString.ToEntero - End If + Dim OrigenMov As Integer = GlobalDTInvConceptos.FiltroPrimeroValor("Origen", "CveConcepto = " & 3).ToEntero + If OrigenMov = 1 Then TipoMovtoAlmacen = False Else TipoMovtoAlmacen = True + TipoMovtoOtro = Not TipoMovtoAlmacen - Dim OrigenMov As Integer = GlobalDTInvConceptos.FiltroPrimeroValor("Origen", "CveConcepto = " & 3).ToEntero - If OrigenMov = 1 Then TipoMovtoAlmacen = False Else TipoMovtoAlmacen = True - TipoMovtoOtro = Not TipoMovtoAlmacen - - Dim CveConceptoContable As Integer = 78 - Dim CveClasificacion As Integer = -1 + Dim CveConceptoContable As Integer = 78 + Dim CveClasificacion As Integer = -1 - If Not ObjConta.AddPrePolizasDetalle(CvePrePoliza, TipoMovtoAlmacen, tValorInventario, observaciones, 68, observaciones, Fecha, idCtaContable, -1, CveMovimientoAlmacen:=CveMovimiento, ImporteMX:=tValorInventario, CveClasificacion:=CveClasificacion, Contabilizable:=EsContabilizable) Then - ErrorMovInv = True - Else - If Not ObjConta.AddPrePolizasDetalle(CvePrePoliza, TipoMovtoOtro, tValorOtro, observaciones, CveConceptoContable, observaciones, Fecha, IdCtaContableOtro, -1, CveMovimientoAlmacen:=CveMovimiento, ImporteMX:=tValorOtro, CveSubProyecto:=tCveSubProyecto, CveClasificacion:=CveClasificacion, Contabilizable:=EsContabilizable) Then + If Not ObjConta.AddPrePolizasDetalle(CvePrePoliza, TipoMovtoAlmacen, tValorInventario, observaciones, 68, observaciones, Fecha, idCtaContable, -1, CveMovimientoAlmacen:=CveMovimiento, ImporteMX:=tValorInventario, CveClasificacion:=CveClasificacion, Contabilizable:=EsContabilizable) Then ErrorMovInv = True - End If - 'End Select - End If - Else - ErrorMovInv = True - End If - - '------------------------------------------------ - If Not ErrorMovInv Then - 'DEVENGAR - Dim TotalPorDevengar As Double = 0 - - 'cuando tiene AC y es salida de almacen, se manda al gasto, solo aplica si el almacen es contable - If UsuarioActual.Empresa.UsaAC AndAlso EsContabilizable Then - Dim DtII As DataTable = Nothing - Dim TotalDetalle As Double = 0.0 - Dim Importe As Decimal = 0 - 'NOTA. CUANDO ES SALIDA, EN AUTOMATICO NO TENEMOS LOS VALORES DE LA SALIDA TODAVIA, Y POR ESO IMPORTE ES CERO, ES RECARGAR CON LOS DATOS YA INSERTADOS - - If ObjInventario.GetMovimientosDetalle(CveMovimiento, UsuarioActual.CveEmpresa) Then - DtII = ObjInventario.DtResultados - End If - - TotalPorDevengar += Importe ' GvInv.Rows.Cast(Of GridViewRow)().Sum(Function(Gvr) Math.Round(Gvr.DataKey("PU").ToString.ToDouble, 4) * Math.Round(Gvr.DataKey("CantidadF").ToString.ToDouble, 4)) - TotalPorDevengar = Math.Round(TotalPorDevengar, 4) - ObjContaAC = New ClsContPAQi(UsuarioActual.Empresa) - ObjContaAC.IniciaTransacSQL() - - Dim AC As New ClsAC - Dim DtPresupuestos As DataTable = Nothing - If AC.GetPresupuestoEgresos(-1, True, UsuarioActual.Empresa.EjercicioActual, UsuarioActual.CveEmpresa) Then - DtPresupuestos = AC.DtResultados.Copy Else - Alert("Ocurrió un error al cargar los Presupuestos. Por favor vuelva a cargar la página", TipoMensaje.MsgError) - RegistraScript("playsonidito('142608__autistic-lucario__error.wav')") + If Not ObjConta.AddPrePolizasDetalle(CvePrePoliza, TipoMovtoOtro, tValorOtro, observaciones, CveConceptoContable, observaciones, Fecha, IdCtaContableOtro, -1, CveMovimientoAlmacen:=CveMovimiento, ImporteMX:=tValorOtro, CveSubProyecto:=tCveSubProyecto, CveClasificacion:=CveClasificacion, Contabilizable:=EsContabilizable) Then + ErrorMovInv = True + End If + 'End Select End If - AC.Dispose() + Else + ErrorMovInv = True + End If - IDPoliza = ObjContaAC.AddPoliza(3, "Salida de Almacen", TotalPorDevengar, TotalPorDevengar, UsuarioActual.CveUsuario, Fecha) + '------------------------------------------------ + If Not ErrorMovInv Then + 'DEVENGAR + Dim TotalPorDevengar As Double = 0 - If IDPoliza > 0 Then - Dim CuentaCargoCOG As Integer - Dim CuentaAbonoAlmacen As Integer = 0 - Dim drA As DataRow = GlobalDTAlmacen(UsuarioActual.CveEmpresa).FiltroPrimero(String.Format("CveAlmacen = {0}", CveAlmacen)) + 'cuando tiene AC y es salida de almacen, se manda al gasto, solo aplica si el almacen es contable + If UsuarioActual.Empresa.UsaAC AndAlso EsContabilizable Then + Dim DtII As DataTable = Nothing + Dim TotalDetalle As Double = 0.0 + Dim Importe As Decimal = 0 + 'NOTA. CUANDO ES SALIDA, EN AUTOMATICO NO TENEMOS LOS VALORES DE LA SALIDA TODAVIA, Y POR ESO IMPORTE ES CERO, ES RECARGAR CON LOS DATOS YA INSERTADOS - If drA IsNot Nothing Then CuentaAbonoAlmacen = drA("IdCtaContable").ToString.ToEntero - If UsuarioActual.CveEmpresa = 48 Then ' APH - CuentaCargoCOG = 1386 + If ObjInventario.GetMovimientosDetalle(CveMovimiento, UsuarioActual.CveEmpresa) Then + DtII = ObjInventario.DtResultados End If - Dim ConceptoRenglon As String = "Salida de Almacen" + TotalPorDevengar += Importe ' GvInv.Rows.Cast(Of GridViewRow)().Sum(Function(Gvr) Math.Round(Gvr.DataKey("PU").ToString.ToDouble, 4) * Math.Round(Gvr.DataKey("CantidadF").ToString.ToDouble, 4)) + TotalPorDevengar = Math.Round(TotalPorDevengar, 4) + ObjContaAC = New ClsContPAQi(UsuarioActual.Empresa) + ObjContaAC.IniciaTransacSQL() + + Dim AC As New ClsAC + Dim DtPresupuestos As DataTable = Nothing + If AC.GetPresupuestoEgresos(-1, True, UsuarioActual.Empresa.EjercicioActual, UsuarioActual.CveEmpresa) Then + DtPresupuestos = AC.DtResultados.Copy + Else + Mensaje = "Ocurrió un error al cargar los Presupuestos. Por favor vuelva a cargar la página" + End If + AC.Dispose() + + IDPoliza = ObjContaAC.AddPoliza(3, "Salida de Almacen", TotalPorDevengar, TotalPorDevengar, UsuarioActual.CveUsuario, Fecha) If IDPoliza > 0 Then - If ObjInventario.GetMovimientosDetalle(CveMovimiento, UsuarioActual.CveEmpresa) Then - Dim DtMovtos = ObjInventario.DtResultados - Importe = DtMovtos.SUMD("Total", "Estatus = ''") + Dim CuentaCargoCOG As Integer + Dim CuentaAbonoAlmacen As Integer = 0 + Dim drA As DataRow = GlobalDTAlmacen(UsuarioActual.CveEmpresa).FiltroPrimero(String.Format("CveAlmacen = {0}", CveAlmacen)) - If Importe > 0 Then - If CuentaCargoCOG > 0 AndAlso CuentaAbonoAlmacen > 0 Then - If ObjContaAC.AddMovimiento(IDPoliza, CuentaCargoCOG, False, Importe, "", ConceptoRenglon, 0, Fecha, "") Then - 'actualizo el idcuenta del presupuesto - If Not ObjContaAC.AddMovimiento(IDPoliza, CuentaAbonoAlmacen, True, Importe, "", ConceptoRenglon, 0, Fecha, "") Then + If drA IsNot Nothing Then CuentaAbonoAlmacen = drA("IdCtaContable").ToString.ToEntero + If UsuarioActual.CveEmpresa = 48 Then ' APH + CuentaCargoCOG = 1386 + End If + + Dim ConceptoRenglon As String = "Salida de Almacen" + + If IDPoliza > 0 Then + If ObjInventario.GetMovimientosDetalle(CveMovimiento, UsuarioActual.CveEmpresa) Then + Dim DtMovtos = ObjInventario.DtResultados + Importe = DtMovtos.SUMD("Total", "Estatus = ''") + + If Importe > 0 Then + If CuentaCargoCOG > 0 AndAlso CuentaAbonoAlmacen > 0 Then + If ObjContaAC.AddMovimiento(IDPoliza, CuentaCargoCOG, False, Importe, "", ConceptoRenglon, 0, Fecha, "") Then + 'actualizo el idcuenta del presupuesto + If Not ObjContaAC.AddMovimiento(IDPoliza, CuentaAbonoAlmacen, True, Importe, "", ConceptoRenglon, 0, Fecha, "") Then + ErrorAC = True + Mensaje = "No se pudo insertar movimiento en la poliza 2." + End If + Else ErrorAC = True - Mensaje = "No se pudo insertar movimiento en la poliza 2." + Mensaje = "No se pudo insertar movimiento en la poliza 1." End If - Else - ErrorAC = True - Mensaje = "No se pudo insertar movimiento en la poliza 1." End If End If + + End If - - End If - End If - If IDPoliza > 0 Then - ObjInventario.UpdateMovimientoPoliza(IDPoliza, CveMovimiento, UsuarioActual.CveEmpresa) + If IDPoliza > 0 Then + ObjInventario.UpdateMovimientoPoliza(IDPoliza, CveMovimiento, UsuarioActual.CveEmpresa) + End If + + Else + ErrorAC = True + Mensaje = "No se pudo insertar la poliza" End If + End If + + + If Not ErrorAC And Not ErrorMovInv Then + Dim Msg As New StringBuilder + Msg.AppendFormat("
El Movimiento se registro con el Folio: {0}", ObjInventario.Folio) + Msg.AppendFormat("

Imprimir Movimiento ", Encripta(String.Format("OP=Alm&CveMovimiento={0}", CveMovimiento))) + + If ObjContaAC IsNot Nothing Then ObjContaAC.AjustaPoliza(IDPoliza) + If IDPoliza > 0 Then Msg = Msg.AppendFormat("

Ver Póliza", IDPoliza) + + ObjInventario.Commit() ' aplica los movimientos insertados + If ObjContaAC IsNot Nothing Then ObjContaAC.Commit() + + + 'Limpia Valores cuando inserta de campos especiales Else - ErrorAC = True - Mensaje = "No se pudo insertar la poliza" + ObjInventario.RollBack() + CveMovimiento = 0 + If ObjContaAC IsNot Nothing Then ObjContaAC.RollBack() End If - End If - If Not ErrorAC And Not ErrorMovInv Then - Dim Msg As New StringBuilder - Msg.AppendFormat("
El Movimiento se registro con el Folio: {0}", ObjInventario.Folio) - Msg.AppendFormat("

Imprimir Movimiento ", Encripta(String.Format("OP=Alm&CveMovimiento={0}", CveMovimiento))) - - If ObjContaAC IsNot Nothing Then ObjContaAC.AjustaPoliza(IDPoliza) - If IDPoliza > 0 Then Msg = Msg.AppendFormat("

Ver Póliza", IDPoliza) - - ObjInventario.Commit() ' aplica los movimientos insertados - If ObjContaAC IsNot Nothing Then ObjContaAC.Commit() - - - 'Limpia Valores cuando inserta de campos especiales - Else - ObjInventario.RollBack() + ObjInventario.RollBack() 'deshace lo insertado CveMovimiento = 0 If ObjContaAC IsNot Nothing Then ObjContaAC.RollBack() End If - Else - ObjInventario.RollBack() 'deshace lo insertado + Catch ex As Exception + Try 'por si ya le habian dado rollback o commit + ObjInventario.RollBack() 'deshace lo insertad + Catch exx As Exception + + End Try CveMovimiento = 0 If ObjContaAC IsNot Nothing Then ObjContaAC.RollBack() - End If - - - Catch ex As Exception - Try 'por si ya le habian dado rollback o commit - ObjInventario.RollBack() 'deshace lo insertad - Catch exx As Exception + GuardaLog("Ocurrió un Error inesperado en el registro" & ex.ToString()) + Mensaje = "Ocurrió un Error inesperado en el registro" & ex.ToString() + TieneError = True End Try - CveMovimiento = 0 - If ObjContaAC IsNot Nothing Then ObjContaAC.RollBack() - GuardaLog("Ocurrió un Error inesperado en el registro" & ex.ToString()) - Mensaje = "Ocurrió un Error inesperado en el registro" & ex.ToString() - - TieneError = True - End Try + End If ObjInventario.Dispose() 'elimino la instancia If ObjContaAC IsNot Nothing Then ObjContaAC.Dispose()