Notificaciones en envio de estados de cuenta
This commit is contained in:
@@ -379,6 +379,67 @@ Public Class ClsMovimientos
|
|||||||
Return Retorno
|
Return Retorno
|
||||||
End Function
|
End Function
|
||||||
|
|
||||||
|
Public Function AddNotificacionEdoCuentaCliente(CveCliente As Integer, Fecha As DateTime) As Boolean
|
||||||
|
Dim Retorno As Boolean = False
|
||||||
|
|
||||||
|
DataAdapter("PA_Sis_NotificacionesEdoCuentaClienteAdd")
|
||||||
|
|
||||||
|
With SqlAdapter.SelectCommand.Parameters
|
||||||
|
.Add("@CveCliente", SqlDbType.Int).Value = CveCliente
|
||||||
|
.Add("@Fecha", SqlDbType.DateTime).Value = Fecha
|
||||||
|
End With
|
||||||
|
|
||||||
|
Try
|
||||||
|
SqlAdapter.Fill(Data)
|
||||||
|
Retorno = True
|
||||||
|
Catch ex As SqlException
|
||||||
|
OnError("Ocurrió un error al agregar notificaciones del estado de cuenta del Cliente.", ex, SqlAdapter.SelectCommand.Parameters.ParametrosInfo)
|
||||||
|
End Try
|
||||||
|
|
||||||
|
Return Retorno
|
||||||
|
End Function
|
||||||
|
|
||||||
|
Public Function GetNotificacionEdoCuentaCliente(CveEmpresa As Integer, CveCliente As Integer, Fecha As DateTime) As Boolean
|
||||||
|
Dim Retorno As Boolean = False
|
||||||
|
|
||||||
|
DataAdapter("PA_Sis_NotificacionesEdoCuentaClienteGet")
|
||||||
|
|
||||||
|
With SqlAdapter.SelectCommand.Parameters
|
||||||
|
.Add("@CveEmpresa", SqlDbType.Int).Value = CveEmpresa
|
||||||
|
.Add("@CveCliente", SqlDbType.Int).Value = CveCliente
|
||||||
|
.Add("@Fecha", SqlDbType.DateTime).Value = Fecha
|
||||||
|
End With
|
||||||
|
|
||||||
|
Try
|
||||||
|
SqlAdapter.Fill(Data)
|
||||||
|
Retorno = True
|
||||||
|
Catch ex As SqlException
|
||||||
|
OnError("Ocurrió un error al obtener notificaciones del estado de cuenta del Cliente.", ex, SqlAdapter.SelectCommand.Parameters.ParametrosInfo)
|
||||||
|
End Try
|
||||||
|
|
||||||
|
Return Retorno
|
||||||
|
End Function
|
||||||
|
|
||||||
|
Public Function UpdateNotificacionEdoCuentaCliente(CveNotificacionBitacora As Integer, Notifico As Boolean) As Boolean
|
||||||
|
Dim Retorno As Boolean = False
|
||||||
|
|
||||||
|
DataAdapter("PA_Sis_NotificacionesEdoCuentaClienteUpdate")
|
||||||
|
|
||||||
|
With SqlAdapter.SelectCommand.Parameters
|
||||||
|
.Add("@CveNotificacionBitacora", SqlDbType.Int).Value = CveNotificacionBitacora
|
||||||
|
.Add("@Notifico", SqlDbType.Bit).Value = Notifico
|
||||||
|
End With
|
||||||
|
|
||||||
|
Try
|
||||||
|
SqlAdapter.Fill(Data)
|
||||||
|
Retorno = True
|
||||||
|
Catch ex As SqlException
|
||||||
|
OnError("Ocurrió un error al actualizar notificaciones del estado de cuenta del Cliente.", ex, SqlAdapter.SelectCommand.Parameters.ParametrosInfo)
|
||||||
|
End Try
|
||||||
|
|
||||||
|
Return Retorno
|
||||||
|
End Function
|
||||||
|
|
||||||
Public Function GetClienteAbonos(CveCliente As Integer, Optional CveMoneda As Integer = -1, Optional FechaVencimientoInicio As String = "-1", Optional FechaVencimientoFin As String = "-1", Optional CveUsuarioProgramo As Integer = -1, Optional Serie As String = "", Optional SelectTop As Integer = -1, Optional CveClienteSucursal As Integer = -1) As Boolean
|
Public Function GetClienteAbonos(CveCliente As Integer, Optional CveMoneda As Integer = -1, Optional FechaVencimientoInicio As String = "-1", Optional FechaVencimientoFin As String = "-1", Optional CveUsuarioProgramo As Integer = -1, Optional Serie As String = "", Optional SelectTop As Integer = -1, Optional CveClienteSucursal As Integer = -1) As Boolean
|
||||||
Dim Retorno As Boolean = False
|
Dim Retorno As Boolean = False
|
||||||
DataAdapter("PA_Vta_ClienteBancos")
|
DataAdapter("PA_Vta_ClienteBancos")
|
||||||
|
|||||||
@@ -20,6 +20,8 @@ Public Class TareasProgramadas : Implements IHttpHandler
|
|||||||
Dim retorno As String = "no se encontro la variable"
|
Dim retorno As String = "no se encontro la variable"
|
||||||
Try
|
Try
|
||||||
Dim metodo As String = ""
|
Dim metodo As String = ""
|
||||||
|
Dim FechaActual As DateTime = Now
|
||||||
|
Dim FechaEnvio As DateTime = FechaActual
|
||||||
|
|
||||||
If context.Request("var") IsNot Nothing Then
|
If context.Request("var") IsNot Nothing Then
|
||||||
URLParametros = Parametros(context.Request("var"))
|
URLParametros = Parametros(context.Request("var"))
|
||||||
@@ -36,6 +38,9 @@ Public Class TareasProgramadas : Implements IHttpHandler
|
|||||||
End Using
|
End Using
|
||||||
ElseIf context.Request("metodo") IsNot Nothing Then
|
ElseIf context.Request("metodo") IsNot Nothing Then
|
||||||
metodo = context.Request("metodo").ToString()
|
metodo = context.Request("metodo").ToString()
|
||||||
|
If context.Request("FechaEnvio") IsNot Nothing Then
|
||||||
|
FechaEnvio = context.Request("FechaEnvio").ToString().ToDateTime()
|
||||||
|
End If
|
||||||
End If
|
End If
|
||||||
|
|
||||||
Select Case metodo
|
Select Case metodo
|
||||||
@@ -46,7 +51,7 @@ Public Class TareasProgramadas : Implements IHttpHandler
|
|||||||
context.Response.Write(retorno)
|
context.Response.Write(retorno)
|
||||||
Case "EstadosCuenta"
|
Case "EstadosCuenta"
|
||||||
'CargaEstadosCuenta(context, 119, 227774)
|
'CargaEstadosCuenta(context, 119, 227774)
|
||||||
CargaEstadosCuenta(context, 119, -1)
|
CargaEstadosCuenta(context, 119, -1, FechaEnvio, FechaActual)
|
||||||
End Select
|
End Select
|
||||||
Catch ex As Exception
|
Catch ex As Exception
|
||||||
ex.GuardaLog(ex.ToString())
|
ex.GuardaLog(ex.ToString())
|
||||||
@@ -270,7 +275,7 @@ Public Class TareasProgramadas : Implements IHttpHandler
|
|||||||
|
|
||||||
|
|
||||||
#Region "E S T A D O S D E C U E N T A"
|
#Region "E S T A D O S D E C U E N T A"
|
||||||
Private Sub CargaEstadosCuenta(ByVal context As HttpContext, pCveEmpresa As Integer, pCveCliente As Integer)
|
Private Sub CargaEstadosCuenta(ByVal context As HttpContext, pCveEmpresa As Integer, pCveCliente As Integer, FechaEnvio As DateTime, FechaActual As DateTime)
|
||||||
Dim Retorno As New JArray()
|
Dim Retorno As New JArray()
|
||||||
Dim DtEmpresas As DataTable = Nothing
|
Dim DtEmpresas As DataTable = Nothing
|
||||||
Using ObjEmpresas As New ClsSisEmpresas()
|
Using ObjEmpresas As New ClsSisEmpresas()
|
||||||
@@ -282,7 +287,7 @@ Public Class TareasProgramadas : Implements IHttpHandler
|
|||||||
If DtEmpresas IsNot Nothing Then
|
If DtEmpresas IsNot Nothing Then
|
||||||
For Each Row As DataRow In DtEmpresas.Rows
|
For Each Row As DataRow In DtEmpresas.Rows
|
||||||
Dim Usuario = ValidaUsuarioSistema(Row("CveEmpresa").ToString().ToEntero())
|
Dim Usuario = ValidaUsuarioSistema(Row("CveEmpresa").ToString().ToEntero())
|
||||||
Dim obj = EjecutarEnvioEstadoCuenta(Usuario, pCveCliente:=pCveCliente)
|
Dim obj = EjecutarEnvioEstadoCuenta(Usuario, FechaEnvio, FechaActual, pCveCliente:=pCveCliente)
|
||||||
|
|
||||||
Retorno.Add(obj)
|
Retorno.Add(obj)
|
||||||
Next
|
Next
|
||||||
@@ -331,7 +336,7 @@ Public Class TareasProgramadas : Implements IHttpHandler
|
|||||||
End Sub
|
End Sub
|
||||||
|
|
||||||
|
|
||||||
Private Function EjecutarEnvioEstadoCuenta(UsuarioActual As Usuario, Optional pCveCliente As Integer = -1) As JObject
|
Private Function EjecutarEnvioEstadoCuenta(UsuarioActual As Usuario, FechaEnvio As DateTime, FechaActual As DateTime, Optional pCveCliente As Integer = -1) As JObject
|
||||||
Dim ClientesSinEnviar As New JArray()
|
Dim ClientesSinEnviar As New JArray()
|
||||||
Dim ClientesEdoEnviado As New JArray()
|
Dim ClientesEdoEnviado As New JArray()
|
||||||
|
|
||||||
@@ -341,15 +346,13 @@ Public Class TareasProgramadas : Implements IHttpHandler
|
|||||||
New JProperty("Fecha", DateTime.Now.ToString("dd/MM/yyy HH:mm:ss"))
|
New JProperty("Fecha", DateTime.Now.ToString("dd/MM/yyy HH:mm:ss"))
|
||||||
)
|
)
|
||||||
Dim DTClientes As DataTable = Nothing
|
Dim DTClientes As DataTable = Nothing
|
||||||
|
Dim EnviarPendientes As Boolean = False
|
||||||
|
|
||||||
'Using ObjCliente As New ClsClientes
|
If FechaActual <> FechaEnvio Then
|
||||||
' If ObjCliente.GetClientes(pCveCliente, "-1", "-1", "-1", "-1", "-1", "-1", -1, UsuarioActual.CveEmpresa, TipoCliente:=-1, Estatus:=1) Then
|
EnviarPendientes = True
|
||||||
' If ObjCliente.DtResultados.Rows.Count > 0 Then
|
End If
|
||||||
' DTClientes = ObjCliente.DtResultados.Copy()
|
|
||||||
' End If
|
|
||||||
' End If
|
|
||||||
'End Using
|
|
||||||
|
|
||||||
|
If Not EnviarPendientes Then
|
||||||
Using ObjMov As New ClsMovimientos
|
Using ObjMov As New ClsMovimientos
|
||||||
Dim FechaI As String = "-1"
|
Dim FechaI As String = "-1"
|
||||||
Dim FechaF As String = "-1"
|
Dim FechaF As String = "-1"
|
||||||
@@ -375,18 +378,63 @@ Public Class TareasProgramadas : Implements IHttpHandler
|
|||||||
End If
|
End If
|
||||||
|
|
||||||
End Using
|
End Using
|
||||||
|
End If
|
||||||
|
|
||||||
If DTClientes IsNot Nothing Then
|
|
||||||
|
If DTClientes IsNot Nothing OrElse EnviarPendientes Then
|
||||||
|
|
||||||
'DTClientes = DTClientes.FiltraParametros("CveCliente IN (227289,227429,227733,227838,228181,228544,229176,229481,230029,230432,230860,230911,230918,231197,231576,232173,232185,233055,233295,233357,233588,236379,236460,237161,237635,238285,238530,238622,238724,239033,239099,239865,239895,239903,240202,240235,240236,240238,240303,240340,262404,262517,264765,264806,264825,264848,264930,265063,265180,265213,265214,265236,265344,265492,265555,265669,265797,265952,265963,266156,266182,268346,268396,268488,268535,268539,268558,268562,268706,268726,268787,268868,268889,268910,268925,269023,269081,269089,272066,272070,272657,273080,273084,275627,276259,276587,281115,283110,284664,285392,287653,288711,291374,292444,295578,296375,296598,302728,303936,306897,307183,311007,320060,320685,320800,323520,323772,325237,326996,327801,330630,331741,332118,337105,340502,341796,342807,343858,355862,358123,365794,371524,375391,377122,377948,378267,380167,381210,381878,383098,383250,383339,383650,384472,385321,385585,386630,387114,388987,396341,396405,396541,401995,404175,408306,416386,416819,420275,438732,447566,447636,450284,464150,464376,468051,475172,475932,476984,477997,478426)")
|
'DTClientes = DTClientes.FiltraParametros("CveCliente IN (227289,227429,227733,227838,228181,228544,229176,229481,230029,230432,230860,230911,230918,231197,231576,232173,232185,233055,233295,233357,233588,236379,236460,237161,237635,238285,238530,238622,238724,239033,239099,239865,239895,239903,240202,240235,240236,240238,240303,240340,262404,262517,264765,264806,264825,264848,264930,265063,265180,265213,265214,265236,265344,265492,265555,265669,265797,265952,265963,266156,266182,268346,268396,268488,268535,268539,268558,268562,268706,268726,268787,268868,268889,268910,268925,269023,269081,269089,272066,272070,272657,273080,273084,275627,276259,276587,281115,283110,284664,285392,287653,288711,291374,292444,295578,296375,296598,302728,303936,306897,307183,311007,320060,320685,320800,323520,323772,325237,326996,327801,330630,331741,332118,337105,340502,341796,342807,343858,355862,358123,365794,371524,375391,377122,377948,378267,380167,381210,381878,383098,383250,383339,383650,384472,385321,385585,386630,387114,388987,396341,396405,396541,401995,404175,408306,416386,416819,420275,438732,447566,447636,450284,464150,464376,468051,475172,475932,476984,477997,478426)")
|
||||||
|
Dim DtNotificaciones As DataTable = Nothing
|
||||||
|
|
||||||
|
Dim TieneErrorRegistro As Boolean = False
|
||||||
|
|
||||||
|
Dim ObjMovimientos As New ClsMovimientos
|
||||||
|
ObjMovimientos.IniciaTransacSQL()
|
||||||
|
|
||||||
|
If Not EnviarPendientes Then
|
||||||
|
Try
|
||||||
For Each RowCliente As DataRow In DTClientes.Rows
|
For Each RowCliente As DataRow In DTClientes.Rows
|
||||||
|
If Not ObjMovimientos.AddNotificacionEdoCuentaCliente(RowCliente("CveCliente").ToString().ToEntero(), FechaEnvio) Then
|
||||||
|
GuardaLog("Ocurrio un error al agregar las notificaciones de edo cuenta. CveCliente: " + RowCliente("CveCliente").ToString())
|
||||||
|
TieneErrorRegistro = True
|
||||||
|
Exit For
|
||||||
|
End If
|
||||||
|
Next
|
||||||
|
Catch ex As Exception
|
||||||
|
GuardaLog("Ocurrio un error al agregar las notificaciones de edo cuenta" + ex.ToString())
|
||||||
|
TieneErrorRegistro = True
|
||||||
|
End Try
|
||||||
|
End If
|
||||||
|
|
||||||
Dim CveCliente As Integer = RowCliente("CveCliente").ToString().ToEntero()
|
If Not TieneErrorRegistro Then
|
||||||
|
If ObjMovimientos.GetNotificacionEdoCuentaCliente(UsuarioActual.CveEmpresa, -1, FechaEnvio) Then
|
||||||
|
DtNotificaciones = ObjMovimientos.DtResultados.Copy()
|
||||||
|
Else
|
||||||
|
TieneErrorRegistro = True
|
||||||
|
End If
|
||||||
|
End If
|
||||||
|
|
||||||
|
|
||||||
|
If Not TieneErrorRegistro Then
|
||||||
|
ObjMovimientos.Commit()
|
||||||
|
Else
|
||||||
|
ObjMovimientos.RollBack()
|
||||||
|
If DtNotificaciones IsNot Nothing Then
|
||||||
|
DtNotificaciones.Clear()
|
||||||
|
DtNotificaciones = Nothing
|
||||||
|
End If
|
||||||
|
End If
|
||||||
|
ObjMovimientos.Dispose()
|
||||||
|
DTClientes.Dispose()
|
||||||
|
|
||||||
|
Try
|
||||||
|
If DtNotificaciones IsNot Nothing Then
|
||||||
|
For Each Row As DataRow In DtNotificaciones.Rows
|
||||||
|
Dim CveCliente As Integer = Row("CveCliente").ToString().ToEntero()
|
||||||
Dim Cliente As New Modelos.ClienteModel(CveCliente, UsuarioActual.CveEmpresa)
|
Dim Cliente As New Modelos.ClienteModel(CveCliente, UsuarioActual.CveEmpresa)
|
||||||
|
|
||||||
If Cliente IsNot Nothing Then
|
If Cliente IsNot Nothing Then
|
||||||
Dim Correo As String = Cliente.CobranzaCorreo '"japmx95@gmail.com" 'RowCliente("CobranzaCorreo").ToString()
|
Dim Correo As String = Cliente.CobranzaCorreo
|
||||||
|
|
||||||
Dim Envio As Boolean = False
|
Dim Envio As Boolean = False
|
||||||
If Not String.IsNullOrEmpty(Correo) Then
|
If Not String.IsNullOrEmpty(Correo) Then
|
||||||
@@ -395,6 +443,10 @@ Public Class TareasProgramadas : Implements IHttpHandler
|
|||||||
|
|
||||||
If Envio Then
|
If Envio Then
|
||||||
|
|
||||||
|
Using ObjMov As New ClsMovimientos
|
||||||
|
ObjMov.UpdateNotificacionEdoCuentaCliente(Row("CveNotificacionBitacora").ToString().ToEntero(), Notifico:=True)
|
||||||
|
End Using
|
||||||
|
|
||||||
ClientesEdoEnviado.Add(New JObject(
|
ClientesEdoEnviado.Add(New JObject(
|
||||||
New JProperty("CveCliente", Cliente.CveCliente),
|
New JProperty("CveCliente", Cliente.CveCliente),
|
||||||
New JProperty("Cliente", Cliente.Nombre)
|
New JProperty("Cliente", Cliente.Nombre)
|
||||||
@@ -410,9 +462,17 @@ Public Class TareasProgramadas : Implements IHttpHandler
|
|||||||
))
|
))
|
||||||
End If
|
End If
|
||||||
End If
|
End If
|
||||||
|
|
||||||
Next
|
Next
|
||||||
DTClientes.Dispose()
|
End If
|
||||||
|
|
||||||
|
Catch ex As Exception
|
||||||
|
GuardaLog("Ocurrio un error al agregar las notificaciones de edo cuenta. " + ex.ToString())
|
||||||
|
End Try
|
||||||
|
|
||||||
|
If DtNotificaciones IsNot Nothing Then
|
||||||
|
DtNotificaciones.Dispose()
|
||||||
|
End If
|
||||||
|
|
||||||
End If
|
End If
|
||||||
Json.Add(New JProperty("ClientesSinEnviar", ClientesSinEnviar))
|
Json.Add(New JProperty("ClientesSinEnviar", ClientesSinEnviar))
|
||||||
Json.Add(New JProperty("ClientesEdoEnviado", ClientesEdoEnviado))
|
Json.Add(New JProperty("ClientesEdoEnviado", ClientesEdoEnviado))
|
||||||
@@ -422,7 +482,7 @@ Public Class TareasProgramadas : Implements IHttpHandler
|
|||||||
|
|
||||||
Private Function EnviarEstadoCuenta(UsuarioActual As Usuario, Correo As String, Cliente As Modelos.ClienteModel) As Boolean
|
Private Function EnviarEstadoCuenta(UsuarioActual As Usuario, Correo As String, Cliente As Modelos.ClienteModel) As Boolean
|
||||||
Dim Retorno As Boolean = True
|
Dim Retorno As Boolean = True
|
||||||
|
Try
|
||||||
Dim ArchivoPDF As Byte() = Nothing
|
Dim ArchivoPDF As Byte() = Nothing
|
||||||
|
|
||||||
Dim Formato As String = "PDF"
|
Dim Formato As String = "PDF"
|
||||||
@@ -465,7 +525,7 @@ Public Class TareasProgramadas : Implements IHttpHandler
|
|||||||
Catch ex As Exception
|
Catch ex As Exception
|
||||||
Retorno = False
|
Retorno = False
|
||||||
dtt = Nothing
|
dtt = Nothing
|
||||||
OnError("Ocurrió un erro al obtener el CxC", ex)
|
GuardaLog("Ocurrió un erro al obtener el CxC. " + ex.ToString())
|
||||||
End Try
|
End Try
|
||||||
|
|
||||||
If Not Retorno Then
|
If Not Retorno Then
|
||||||
@@ -602,7 +662,8 @@ Public Class TareasProgramadas : Implements IHttpHandler
|
|||||||
End If
|
End If
|
||||||
|
|
||||||
Catch ex As Exception
|
Catch ex As Exception
|
||||||
OnError("Ocurrió error al mandar MAIL de Orden de Compra", ex)
|
ArchivoPDF = Nothing
|
||||||
|
GuardaLog("Ocurrió un erro al obtener el CxC" + ex.ToString())
|
||||||
End Try
|
End Try
|
||||||
Else
|
Else
|
||||||
Dim lista = New List(Of CrystalParametro)
|
Dim lista = New List(Of CrystalParametro)
|
||||||
@@ -653,7 +714,7 @@ Public Class TareasProgramadas : Implements IHttpHandler
|
|||||||
End If
|
End If
|
||||||
|
|
||||||
Catch ex As Exception
|
Catch ex As Exception
|
||||||
OnError("Ocurrió un error al generar el pdf", ex)
|
GuardaLog("Ocurrió un error al generar el pdf" + ex.ToString())
|
||||||
ArchivoPDF = Nothing
|
ArchivoPDF = Nothing
|
||||||
End Try
|
End Try
|
||||||
|
|
||||||
@@ -668,16 +729,18 @@ Public Class TareasProgramadas : Implements IHttpHandler
|
|||||||
<br />
|
<br />
|
||||||
<b>ESTE CORREO SE GENERO EN FORMA AUTOMATICA.</b>", Cliente.NombreComercial, UsuarioActual.Empresa.Empresa)
|
<b>ESTE CORREO SE GENERO EN FORMA AUTOMATICA.</b>", Cliente.NombreComercial, UsuarioActual.Empresa.Empresa)
|
||||||
|
|
||||||
Dim Hilo As New System.Threading.Thread(Sub() MandaCorreo(ArchivoPDF, Correo, $"Estado Actual de Cartera {UsuarioActual.Empresa.Empresa}", Cuerpo))
|
Retorno = MandaCorreo(ArchivoPDF, Correo, $"Estado Actual de Cartera {UsuarioActual.Empresa.Empresa}", Cuerpo)
|
||||||
Hilo.Start()
|
|
||||||
Retorno = True
|
|
||||||
Catch ex As Exception
|
Catch ex As Exception
|
||||||
Retorno = False
|
Retorno = False
|
||||||
OnError("Ocurrió error al mandar el correo de estado de cuenta", ex)
|
GuardaLog("Ocurrió error al mandar el correo de estado de cuenta. " + ex.ToString())
|
||||||
End Try
|
End Try
|
||||||
Else
|
Else
|
||||||
Retorno = False
|
Retorno = False
|
||||||
End If
|
End If
|
||||||
|
Catch ex As Exception
|
||||||
|
Retorno = False
|
||||||
|
GuardaLog("Ocurrió error al mandar el correo de estado de cuenta" + ex.ToString())
|
||||||
|
End Try
|
||||||
|
|
||||||
Return Retorno
|
Return Retorno
|
||||||
End Function
|
End Function
|
||||||
@@ -749,7 +812,7 @@ Public Class TareasProgramadas : Implements IHttpHandler
|
|||||||
|
|
||||||
Return Mail.SendMail(ClsPaginas.EmpresaNotificaciones, Para, Asunto, Body, Archivos:=LSRutasMail)
|
Return Mail.SendMail(ClsPaginas.EmpresaNotificaciones, Para, Asunto, Body, Archivos:=LSRutasMail)
|
||||||
Catch ex As Exception
|
Catch ex As Exception
|
||||||
OnError("Ocurrió un error al enviar el correo de edo cuenta", ex)
|
GuardaLog("Ocurrió error al mandar el correo de estado de cuenta. " + ex.ToString())
|
||||||
Return False
|
Return False
|
||||||
End Try
|
End Try
|
||||||
|
|
||||||
|
|||||||
Reference in New Issue
Block a user