diff --git a/App_Code/ClsPaginas.vb b/App_Code/ClsPaginas.vb
index 989276d85..bc48001fa 100644
--- a/App_Code/ClsPaginas.vb
+++ b/App_Code/ClsPaginas.vb
@@ -201,6 +201,32 @@ Public Class ClsPaginas
#End Region
#Region "GlobalDTs"
+
+ Public Shared Property GlobalDTNotificacionesUsuarios(CveUsuario As Integer, CveEmpresa As Integer) As DataTable
+ Get
+ Dim AppNombre As String = $"GlobalDTNotificacionesUsuarios-{CveEmpresa}"
+ If HttpContext.Current.Application(AppNombre) Is Nothing Then
+ Using ObjUsuarios As New ClsSisNotificaciones
+ If ObjUsuarios.NotificacionesUsuariosGet(-1, CveEmpresa) Then HttpContext.Current.Application(AppNombre) = ObjUsuarios.DtResultados
+ End Using
+ End If
+
+ Dim filtros As New List(Of String)
+ If CveUsuario <> -1 Then filtros.Add($"CveUsuario = {CveUsuario}")
+ If filtros.Count > 0 Then
+ Dim Dv As New DataView(DirectCast(HttpContext.Current.Application(AppNombre), DataTable), String.Join(" AND ", filtros), "", DataViewRowState.CurrentRows)
+ GlobalDTNotificacionesUsuarios = Dv.ToTable
+ Dv.Dispose()
+ Else
+ GlobalDTNotificacionesUsuarios = DirectCast(HttpContext.Current.Application(AppNombre), DataTable)
+ End If
+ End Get
+ Set(value As DataTable)
+ Dim AppNombre As String = $"GlobalDTNotificacionesUsuarios-{CveEmpresa}"
+ HttpContext.Current.Application(AppNombre) = value
+ End Set
+ End Property
+
Public Shared Property GlobalTipoCambio(Optional Fecha As Date = MinFecha) As Double
Get
If GlobalTipoCambio <= 0 Then
diff --git a/App_Code/ClsSisNotificaciones.vb b/App_Code/ClsSisNotificaciones.vb
index 82679d758..354cfa4c9 100644
--- a/App_Code/ClsSisNotificaciones.vb
+++ b/App_Code/ClsSisNotificaciones.vb
@@ -1,42 +1,42 @@
-Option Explicit On
-Option Strict Off
-
-Imports System.Data
-Imports System.Data.SqlClient
-Imports System.IO
-Imports System.Net
-Imports System.Net.Http
-Imports CrystalDecisions.CrystalReports.Engine
-Imports CrystalDecisions.Shared
-Imports Extensiones
-Imports GemBox.Spreadsheet
-Imports Microsoft.AspNet.SignalR
-Imports Microsoft.Reporting.WebForms
-Imports Newtonsoft.Json.Linq
-
-Public Class ClsSisNotificaciones
+Option Explicit On
+Option Strict Off
+
+Imports System.Data
+Imports System.Data.SqlClient
+Imports System.IO
+Imports System.Net
+Imports System.Net.Http
+Imports CrystalDecisions.CrystalReports.Engine
+Imports CrystalDecisions.Shared
+Imports Extensiones
+Imports GemBox.Spreadsheet
+Imports Microsoft.AspNet.SignalR
+Imports Microsoft.Reporting.WebForms
+Imports Newtonsoft.Json.Linq
+
+Public Class ClsSisNotificaciones
Implements IDisposable
-#Region "C A M P O S"
+#Region "C A M P O S"
'SQL
- Private SqlConexion As SqlConnection
- Private SqlAdapter As SqlDataAdapter
- Private SqlCommand As SqlCommand
- Private Data As DataTable
- Private DataSet As DataSet
-
- 'Atributos de la clase
- Private _CveNotificacion As Integer
- Private _CveEmpresa As Integer
- Private _ClavesNotificaciones As Dictionary(Of String, List(Of Integer))
-
- Private disposedValue As Boolean = False ' Para detectar llamadas redundantes
- 'PARA REGISTRAR CONEXION
- Private CveConexion As Integer = 0
-#End Region
+ Private SqlConexion As SqlConnection
+ Private SqlAdapter As SqlDataAdapter
+ Private SqlCommand As SqlCommand
+ Private Data As DataTable
+ Private DataSet As DataSet
-#Region "P R O P I E D A D E S"
+ 'Atributos de la clase
+ Private _CveNotificacion As Integer
+ Private _CveEmpresa As Integer
+ Private _ClavesNotificaciones As Dictionary(Of String, List(Of Integer))
+
+ Private disposedValue As Boolean = False ' Para detectar llamadas redundantes
+ 'PARA REGISTRAR CONEXION
+ Private CveConexion As Integer = 0
+#End Region
+
+#Region "P R O P I E D A D E S"
'Public ReadOnly Property FirebaseWebService As String
' Get
' Return ConfigurationManager.AppSettings("FirebaseWebService").ToString()
@@ -72,95 +72,95 @@ Public Class ClsSisNotificaciones
End Get
End Property
- Public Const FirebaseWebService As String = "https://fcm.googleapis.com/fcm/send"
- Public Const FirebaseServerKey As String = "AAAAqx0xsBA:APA91bHip_JcMGhNQiIzdnodY9ynkHIjX9wEc4TrLkepXK0Lz1QEar5dys6sa3ourPLGiEJD4fGGnSzrk2M_9aJuQo55LjvSJs2c1bU74u-yArMcbI0F_cKzbYAcOMRc8pbRknuWGsXX"
- Public Const SenderID As String = "734929203216"
-
- Public ReadOnly Property DtResultados() As DataTable
- Get
- DtResultados = Data
- End Get
- End Property
- Public Property NotificacionesBitacora As String
- Public Property DTReportesProgramados As DataTable
- Public Property DTNotificacionesGPS As DataTable
- Public Property DTNotificacionesERP As DataTable
+ Public Const FirebaseWebService As String = "https://fcm.googleapis.com/fcm/send"
+ Public Const FirebaseServerKey As String = "AAAAqx0xsBA:APA91bHip_JcMGhNQiIzdnodY9ynkHIjX9wEc4TrLkepXK0Lz1QEar5dys6sa3ourPLGiEJD4fGGnSzrk2M_9aJuQo55LjvSJs2c1bU74u-yArMcbI0F_cKzbYAcOMRc8pbRknuWGsXX"
+ Public Const SenderID As String = "734929203216"
+
+ Public ReadOnly Property DtResultados() As DataTable
+ Get
+ DtResultados = Data
+ End Get
+ End Property
+ Public Property NotificacionesBitacora As String
+ Public Property DTReportesProgramados As DataTable
+ Public Property DTNotificacionesGPS As DataTable
+ Public Property DTNotificacionesERP As DataTable
Public Property DTNotificacionesArmadas As DataTable
-#End Region
- Sub New()
- SqlConexion = New SqlConnection
- SqlConexion.ConnectionString = ClsPaginas.UsuarioActualRutaDB
- SqlAdapter = New SqlDataAdapter("", SqlConexion)
- Try
- SqlConexion.Open()
- Catch ex As Exception
- Me.OnError("Ocurrió un error al intentar conectarse a la base de datos.", ex)
- End Try
-
- 'Inicializamos las propiedades necesarias
- _ClavesNotificaciones = New Dictionary(Of String, List(Of Integer))
- ConexionAdd()
- End Sub
-
- Private Sub DataAdapter(StrSQL As String, Optional TipoComando As CommandType = CommandType.StoredProcedure)
- With SqlAdapter.SelectCommand
- .Parameters.Clear()
- .CommandText = StrSQL
- .CommandType = TipoComando
- End With
- Data = New DataTable
- End Sub
-#Region "Conexiones"
+#End Region
+ Sub New()
+ SqlConexion = New SqlConnection
+ SqlConexion.ConnectionString = ClsPaginas.UsuarioActualRutaDB
+ SqlAdapter = New SqlDataAdapter("", SqlConexion)
+ Try
+ SqlConexion.Open()
+ Catch ex As Exception
+ Me.OnError("Ocurrió un error al intentar conectarse a la base de datos.", ex)
+ End Try
- Private Sub ConexionAdd()
- If ConfigurationManager.AppSettings("RegistraConexion") IsNot Nothing AndAlso ConfigurationManager.AppSettings("RegistraConexion").ToString() = "1" Then
-
- Try
- 'DataAdapter(String.Format("INSERT INTO Sis_Conexiones (Clase,Modulo) VALUES ('ClsRH','{0}')", "RH/CatMotivosBaja"), CommandType.Text) ' pendiente de terminar parra registrar el cveconexion, falta el rarámetro de módulo
- DataAdapter("PA_Sis_RegistrarConexion")
- With SqlAdapter.SelectCommand.Parameters
- .Add("@Clase", SqlDbType.VarChar).Value = Me.GetType().Name
- .Add("@Modulo", SqlDbType.VarChar).Value = String.Format("{0}?{1}", HttpContext.Current.Request.Url.AbsolutePath.ToString, HttpContext.Current.Request.QueryString.ToString)
- .Add("@IDConexion", SqlDbType.Int).Direction = ParameterDirection.Output
- End With
- SqlAdapter.Fill(Data)
- CveConexion = SqlAdapter.SelectCommand.Parameters("@IDConexion").Value.ToString.ToEntero
- Catch ex As Exception
- OnError("Ocurrió un error registrar la conexión.", ex, SqlAdapter.SelectCommand.Parameters.ParametrosInfo)
- End Try
-
- End If
- End Sub
-
- Private Sub ConexionClose()
- If CveConexion > 0 AndAlso ConfigurationManager.AppSettings("RegistraConexion") IsNot Nothing AndAlso ConfigurationManager.AppSettings("RegistraConexion").ToString() = "1" Then
-
- DataAdapter(String.Format("UPDATE Sis_Conexiones SET FechaCierre = GETDATE() WHERE CveConexion = {0}", CveConexion), CommandType.Text)
- Try
- SqlAdapter.Fill(Data)
-
- Catch ex As Exception
- OnError("Ocurrió un error registrar la conexión.", ex, SqlAdapter.SelectCommand.Parameters.ParametrosInfo)
- End Try
- CveConexion = 0
-
- End If
-
+ 'Inicializamos las propiedades necesarias
+ _ClavesNotificaciones = New Dictionary(Of String, List(Of Integer))
+ ConexionAdd()
End Sub
-#End Region
-#Region "N O T I F I C A C I O N E S"
+ Private Sub DataAdapter(StrSQL As String, Optional TipoComando As CommandType = CommandType.StoredProcedure)
+ With SqlAdapter.SelectCommand
+ .Parameters.Clear()
+ .CommandText = StrSQL
+ .CommandType = TipoComando
+ End With
+ Data = New DataTable
+ End Sub
+#Region "Conexiones"
+
+ Private Sub ConexionAdd()
+ If ConfigurationManager.AppSettings("RegistraConexion") IsNot Nothing AndAlso ConfigurationManager.AppSettings("RegistraConexion").ToString() = "1" Then
+
+ Try
+ 'DataAdapter(String.Format("INSERT INTO Sis_Conexiones (Clase,Modulo) VALUES ('ClsRH','{0}')", "RH/CatMotivosBaja"), CommandType.Text) ' pendiente de terminar parra registrar el cveconexion, falta el rarámetro de módulo
+ DataAdapter("PA_Sis_RegistrarConexion")
+ With SqlAdapter.SelectCommand.Parameters
+ .Add("@Clase", SqlDbType.VarChar).Value = Me.GetType().Name
+ .Add("@Modulo", SqlDbType.VarChar).Value = String.Format("{0}?{1}", HttpContext.Current.Request.Url.AbsolutePath.ToString, HttpContext.Current.Request.QueryString.ToString)
+ .Add("@IDConexion", SqlDbType.Int).Direction = ParameterDirection.Output
+ End With
+ SqlAdapter.Fill(Data)
+ CveConexion = SqlAdapter.SelectCommand.Parameters("@IDConexion").Value.ToString.ToEntero
+ Catch ex As Exception
+ OnError("Ocurrió un error registrar la conexión.", ex, SqlAdapter.SelectCommand.Parameters.ParametrosInfo)
+ End Try
+
+ End If
+ End Sub
+
+ Private Sub ConexionClose()
+ If CveConexion > 0 AndAlso ConfigurationManager.AppSettings("RegistraConexion") IsNot Nothing AndAlso ConfigurationManager.AppSettings("RegistraConexion").ToString() = "1" Then
+
+ DataAdapter(String.Format("UPDATE Sis_Conexiones SET FechaCierre = GETDATE() WHERE CveConexion = {0}", CveConexion), CommandType.Text)
+ Try
+ SqlAdapter.Fill(Data)
+
+ Catch ex As Exception
+ OnError("Ocurrió un error registrar la conexión.", ex, SqlAdapter.SelectCommand.Parameters.ParametrosInfo)
+ End Try
+ CveConexion = 0
+
+ End If
+
+ End Sub
+#End Region
+
+#Region "N O T I F I C A C I O N E S"
Public Shared Sub EnviarAlerta(Titulo As String, Mensaje As String, CveUsuario As String, Optional Tipo As TipoNotificacion = TipoNotificacion.AlertaVentanaNoOcultar, Optional TimeOut As Integer = 0)
- Dim hub = GlobalHost.ConnectionManager.GetHubContext(Of Notificaciones)()
- 'VERIFICA SI EXISTE LA CONEXION DEL USUARIO
+ Dim hub = GlobalHost.ConnectionManager.GetHubContext(Of Notificaciones)()
+ 'VERIFICA SI EXISTE LA CONEXION DEL USUARIO
If Notificaciones.UsuariosConexiones.Keys.Any(Function(key) key = CveUsuario) Then
hub.Clients.Client(Notificaciones.UsuariosConexiones(CveUsuario)).alertaVentana(Titulo, Mensaje, DirectCast(Tipo, Integer), TimeOut)
End If
End Sub
Public Shared Sub ContadorCampana(Mensaje As String, CveUsuario As String)
- Dim hub = GlobalHost.ConnectionManager.GetHubContext(Of Notificaciones)()
- 'VERIFICA SI EXISTE LA CONEXION DEL USUARIO
+ Dim hub = GlobalHost.ConnectionManager.GetHubContext(Of Notificaciones)()
+ 'VERIFICA SI EXISTE LA CONEXION DEL USUARIO
If Notificaciones.UsuariosConexiones.Keys.Any(Function(key) key = CveUsuario) Then
hub.Clients.Client(Notificaciones.UsuariosConexiones(CveUsuario)).ContadorCampana(Mensaje)
End If
@@ -169,95 +169,95 @@ Public Class ClsSisNotificaciones
Public Sub DispararNotificacion(CveNotificacion As Integer, CvesFiltro As List(Of Object), CveEmpresa As Integer)
-
- _CveNotificacion = CveNotificacion
- _CveEmpresa = CveEmpresa
-
- 'MockUp de Notificacion #3
- CvesFiltro.Add(71471) 'CveOC
- CvesFiltro.Add(4) 'CveEstatus - Autorizada
-
- ObtenerUsuariosNotificacion(CvesFiltro)
-
- 'Agregamos los Usuarios a la Bitacora
- For Each Usuario As Integer In _ClavesNotificaciones("CveUsuario")
- AddNotificacionesBitacora(Usuario)
- Next
-
- End Sub
-
- Private Sub ObtenerUsuariosNotificacion(CvesFiltro As List(Of Object))
-
- Select Case _CveNotificacion
-
- Case 1 'Notificar Solicitud de Orden de Compra
-
- Case 2 'Notificar Cambio Estatus Orden de Compra
- NotificarEdicionOC(CveOrdenCompra:=CvesFiltro(0).ToString.ToEntero, CveEstatus:=CvesFiltro(1).ToString.ToEntero)
-
- Case 3 'Notificar Edicion de Orden de Compra
-
- Case 4 'Notificar Cambio en Bitacora de Orden de Compra
-
- End Select
-
+
+ _CveNotificacion = CveNotificacion
+ _CveEmpresa = CveEmpresa
+
+ 'MockUp de Notificacion #3
+ CvesFiltro.Add(71471) 'CveOC
+ CvesFiltro.Add(4) 'CveEstatus - Autorizada
+
+ ObtenerUsuariosNotificacion(CvesFiltro)
+
+ 'Agregamos los Usuarios a la Bitacora
+ For Each Usuario As Integer In _ClavesNotificaciones("CveUsuario")
+ AddNotificacionesBitacora(Usuario)
+ Next
+
End Sub
-#End Region
+ Private Sub ObtenerUsuariosNotificacion(CvesFiltro As List(Of Object))
+
+ Select Case _CveNotificacion
+
+ Case 1 'Notificar Solicitud de Orden de Compra
+
+ Case 2 'Notificar Cambio Estatus Orden de Compra
+ NotificarEdicionOC(CveOrdenCompra:=CvesFiltro(0).ToString.ToEntero, CveEstatus:=CvesFiltro(1).ToString.ToEntero)
+
+ Case 3 'Notificar Edicion de Orden de Compra
+
+ Case 4 'Notificar Cambio en Bitacora de Orden de Compra
+
+ End Select
-#Region "L O G I C A - N O T I F I C A C I O N E S"
- Private Sub NotificarEdicionOC(CveOrdenCompra As Integer, CveEstatus As Integer)
- Select Case CveEstatus
-
- Case 2 'Solicitada
-
- Case 3 'Supervisada
-
- Case 4 'Autorizada
- GetUsuariosNotifiacionOCAutorizada(CveOrdenCompra)
-
- Dim Claves As New List(Of Integer)
- For Each item As DataRow In Data.Rows
- Claves.Add(item("CveUsuario").ToString.ToEntero)
- Next
-
- If Claves.Count > 0 Then
- _ClavesNotificaciones.Add("CveUsuario", Claves)
- End If
-
- End Select
-
End Sub
-#End Region
-#Region "C O R R E O"
+#End Region
- Private Sub EnviarCorreos(DTNotificacionesCorreo As DataTable)
+#Region "L O G I C A - N O T I F I C A C I O N E S"
+ Private Sub NotificarEdicionOC(CveOrdenCompra As Integer, CveEstatus As Integer)
+ Select Case CveEstatus
+
+ Case 2 'Solicitada
+
+ Case 3 'Supervisada
+
+ Case 4 'Autorizada
+ GetUsuariosNotifiacionOCAutorizada(CveOrdenCompra)
+
+ Dim Claves As New List(Of Integer)
+ For Each item As DataRow In Data.Rows
+ Claves.Add(item("CveUsuario").ToString.ToEntero)
+ Next
+
+ If Claves.Count > 0 Then
+ _ClavesNotificaciones.Add("CveUsuario", Claves)
+ End If
+
+ End Select
+
+ End Sub
+#End Region
+
+#Region "C O R R E O"
+
+ Private Sub EnviarCorreos(DTNotificacionesCorreo As DataTable)
For Each notificacion As DataRow In DTNotificacionesCorreo.Rows
Dim Hilo As New System.Threading.Thread(Sub() MandaMail(notificacion("CveNotificacionBitacora").ToString.ToEntero, notificacion("Encabezado").ToString, notificacion("Cuerpo").ToString, notificacion("Correo").ToString, ""))
Hilo.Start()
- Next
- End Sub
-
- Private Sub MandaMail(CveNotificacionBitacora As Integer, Asunto As String, Cuerpo As String, Mail As String, MailCC As String)
- Dim ObjMail As New ClsSisMail()
- Dim ObjNotificacion As New ClsSisNotificaciones
- Try
- Dim ResultadoMail As Integer = 0
- Dim LSRutasMail As New List(Of ClsSisMail.ArchivoMail)
- If ObjMail.SendMail(ClsPaginas.EmpresaNotificacionesGPS, Mail, Asunto, Cuerpo, MailCC, LSRutasMail) Then
- ObjNotificacion.UpdateNotificacionesBitacoraNotifico(CveNotificacionBitacora, 1)
- End If
- Catch ex As Exception
- OnError("Ocurrió error al mandar el Mail", ex)
- End Try
- ObjNotificacion.Dispose()
+ Next
End Sub
-#End Region
+ Private Sub MandaMail(CveNotificacionBitacora As Integer, Asunto As String, Cuerpo As String, Mail As String, MailCC As String)
+ Dim ObjMail As New ClsSisMail()
+ Dim ObjNotificacion As New ClsSisNotificaciones
+ Try
+ Dim ResultadoMail As Integer = 0
+ Dim LSRutasMail As New List(Of ClsSisMail.ArchivoMail)
+ If ObjMail.SendMail(ClsPaginas.EmpresaNotificacionesGPS, Mail, Asunto, Cuerpo, MailCC, LSRutasMail) Then
+ ObjNotificacion.UpdateNotificacionesBitacoraNotifico(CveNotificacionBitacora, 1)
+ End If
+ Catch ex As Exception
+ OnError("Ocurrió error al mandar el Mail", ex)
+ End Try
+ ObjNotificacion.Dispose()
+ End Sub
+
+#End Region
#Region "V A L I D A - U S U A R I O"
- Private Function ValidaUsuarioSistema(CveEmpresa As Integer) As Usuario
+ Private Function ValidaUsuarioSistema(CveEmpresa As Integer) As Usuario
Dim UsuarioActual As Usuario = Nothing
Dim NombreCadena As String = ClsPaginas.GlobalNombreCadenaConexion(CveEmpresa)
Dim ObjUsuarios As New ClsSisUsuarioAutenticacion(NombreCadena:=NombreCadena)
@@ -268,453 +268,453 @@ Public Class ClsSisNotificaciones
End If
ObjUsuarios.Dispose()
- Return UsuarioActual
- End Function
- Private Sub CreaObjetoEmpresa(ByRef UsuarioActual As Usuario)
-
- Dim ObjEmpresa As New ClsSisEmpresas()
- If ObjEmpresa.GetEmpresas(UsuarioActual.CveEmpresa, "-1", "-1", "-1", "-1") Then
- If ObjEmpresa.GetEmpresasFuncionalidades(UsuarioActual.CveEmpresa) Then
- Dim dttmp As Data.DataTable = ObjEmpresa.DtResultados
-
- Dim EmpresasFuncionalidades As New HybridDictionary
- For Each Row As Data.DataRow In dttmp.Rows
- EmpresasFuncionalidades.Add(Convert.ToInt32(Row("CveFuncionalidad")), Row("Valor").ToString)
- Next
- ObjEmpresa.Empresa.SetFuncionalidades(EmpresasFuncionalidades)
- End If
-
- UsuarioActual.Empresa = ObjEmpresa.Empresa
- End If
- ObjEmpresa.Dispose()
+ Return UsuarioActual
+ End Function
+ Private Sub CreaObjetoEmpresa(ByRef UsuarioActual As Usuario)
+
+ Dim ObjEmpresa As New ClsSisEmpresas()
+ If ObjEmpresa.GetEmpresas(UsuarioActual.CveEmpresa, "-1", "-1", "-1", "-1") Then
+ If ObjEmpresa.GetEmpresasFuncionalidades(UsuarioActual.CveEmpresa) Then
+ Dim dttmp As Data.DataTable = ObjEmpresa.DtResultados
+
+ Dim EmpresasFuncionalidades As New HybridDictionary
+ For Each Row As Data.DataRow In dttmp.Rows
+ EmpresasFuncionalidades.Add(Convert.ToInt32(Row("CveFuncionalidad")), Row("Valor").ToString)
+ Next
+ ObjEmpresa.Empresa.SetFuncionalidades(EmpresasFuncionalidades)
+ End If
+
+ UsuarioActual.Empresa = ObjEmpresa.Empresa
+ End If
+ ObjEmpresa.Dispose()
End Sub
#End Region
-#Region "N O T I F I C A C I O N E S - M E T O D O S G E N E R A L E S"
+#Region "N O T I F I C A C I O N E S - M E T O D O S G E N E R A L E S"
- Public Function ObtenerNotificaciones() As Boolean
-
- If Not GetNotificacionesBitacoraPendientes(1000) Then
- Return False
- End If
-
- If DTNotificacionesGPS IsNot Nothing AndAlso DTNotificacionesGPS.Rows.Count > 0 Then
- EnviarNotificacionesGPS()
- End If
-
- If DTNotificacionesERP IsNot Nothing AndAlso DTNotificacionesERP.Rows.Count > 0 Then
- 'EnviarNotificacionesERP()
- End If
-
- If DTNotificacionesArmadas IsNot Nothing AndAlso DTNotificacionesArmadas.Rows.Count > 0 Then
- EnviarNotificacionesArmadas()
- End If
-
- If DTReportesProgramados IsNot Nothing AndAlso DTReportesProgramados.Rows.Count > 0 Then
- ArmarReportesProgramados()
- End If
-
- Return False
- End Function
-
- Public Sub ArmarReportesProgramados()
+ Public Function ObtenerNotificaciones() As Boolean
+
+ If Not GetNotificacionesBitacoraPendientes(1000) Then
+ Return False
+ End If
+
+ If DTNotificacionesGPS IsNot Nothing AndAlso DTNotificacionesGPS.Rows.Count > 0 Then
+ EnviarNotificacionesGPS()
+ End If
+
+ If DTNotificacionesERP IsNot Nothing AndAlso DTNotificacionesERP.Rows.Count > 0 Then
+ 'EnviarNotificacionesERP()
+ End If
+
+ If DTNotificacionesArmadas IsNot Nothing AndAlso DTNotificacionesArmadas.Rows.Count > 0 Then
+ EnviarNotificacionesArmadas()
+ End If
+
+ If DTReportesProgramados IsNot Nothing AndAlso DTReportesProgramados.Rows.Count > 0 Then
+ ArmarReportesProgramados()
+ End If
+
+ Return False
+ End Function
+
+ Public Sub ArmarReportesProgramados()
Try
- For Each RowReporte As DataRow In DTReportesProgramados.Rows
- Dim CveReporteProgramado As Integer = RowReporte("CveReporteProgramado").ToString.ToEntero
- Dim CveNotificacionBitacora As Integer = RowReporte("CveNotificacionBitacora").ToString.ToEntero
-
- Dim Correos As String = RowReporte("Correos").ToString
- Dim NombreCliente As String = RowReporte("Cliente").ToString
-
- Dim FechaI As DateTime = RowReporte("FechaI").ToString.ToDateTime
- Dim FechaF As DateTime = RowReporte("FechaF").ToString.ToDateTime
-
- Dim CveReporte As Integer = RowReporte("CveReporte").ToString.ToEntero
- Dim CveCliente As Integer = RowReporte("CveCliente").ToString.ToEntero
- Dim CveEmpresa As Integer = RowReporte("CveEmpresa").ToString.ToEntero
-
- Dim DtExtras As DataTable = Nothing
- Dim DtDispositivos As DataTable = Nothing
-
- Dim Formato As String = RowReporte("Formato").ToString
-
- Dim UsuarioActual As Usuario = ValidaUsuarioSistema(CveEmpresa)
-
- Dim ObjGPS As New ClsGPS
- If CveReporte.Contiene(1, 2, 3, 4, 5, 6, 7, 8, 10) Then
- If ObjGPS.ReportesProgramadosDispositivosGet(CveReporteProgramado) Then
- DtDispositivos = ObjGPS.DtResultados.Copy()
- End If
- End If
- If CveReporte = 4 Then
- If ObjGPS.ReportesProgramadosEventosGet(CveReporteProgramado) Then
- DtExtras = ObjGPS.DtResultados
- End If
- End If
- ObjGPS.Dispose()
-
- EnviarReporteProgramado(CveCliente, NombreCliente, Formato, Correos, FechaI, FechaF, CveReporte, CveNotificacionBitacora, DtDispositivos, DtExtras, UsuarioActual)
-
- If DtExtras IsNot Nothing Then
- DtExtras.Clear()
- DtExtras.Dispose()
- End If
-
- If DtDispositivos IsNot Nothing Then
- DtDispositivos.Clear()
- DtDispositivos.Dispose()
- End If
-
+ For Each RowReporte As DataRow In DTReportesProgramados.Rows
+ Dim CveReporteProgramado As Integer = RowReporte("CveReporteProgramado").ToString.ToEntero
+ Dim CveNotificacionBitacora As Integer = RowReporte("CveNotificacionBitacora").ToString.ToEntero
+
+ Dim Correos As String = RowReporte("Correos").ToString
+ Dim NombreCliente As String = RowReporte("Cliente").ToString
+
+ Dim FechaI As DateTime = RowReporte("FechaI").ToString.ToDateTime
+ Dim FechaF As DateTime = RowReporte("FechaF").ToString.ToDateTime
+
+ Dim CveReporte As Integer = RowReporte("CveReporte").ToString.ToEntero
+ Dim CveCliente As Integer = RowReporte("CveCliente").ToString.ToEntero
+ Dim CveEmpresa As Integer = RowReporte("CveEmpresa").ToString.ToEntero
+
+ Dim DtExtras As DataTable = Nothing
+ Dim DtDispositivos As DataTable = Nothing
+
+ Dim Formato As String = RowReporte("Formato").ToString
+
+ Dim UsuarioActual As Usuario = ValidaUsuarioSistema(CveEmpresa)
+
+ Dim ObjGPS As New ClsGPS
+ If CveReporte.Contiene(1, 2, 3, 4, 5, 6, 7, 8, 10) Then
+ If ObjGPS.ReportesProgramadosDispositivosGet(CveReporteProgramado) Then
+ DtDispositivos = ObjGPS.DtResultados.Copy()
+ End If
+ End If
+ If CveReporte = 4 Then
+ If ObjGPS.ReportesProgramadosEventosGet(CveReporteProgramado) Then
+ DtExtras = ObjGPS.DtResultados
+ End If
+ End If
+ ObjGPS.Dispose()
+
+ EnviarReporteProgramado(CveCliente, NombreCliente, Formato, Correos, FechaI, FechaF, CveReporte, CveNotificacionBitacora, DtDispositivos, DtExtras, UsuarioActual)
+
+ If DtExtras IsNot Nothing Then
+ DtExtras.Clear()
+ DtExtras.Dispose()
+ End If
+
+ If DtDispositivos IsNot Nothing Then
+ DtDispositivos.Clear()
+ DtDispositivos.Dispose()
+ End If
+
If UsuarioActual IsNot Nothing Then
UsuarioActual = Nothing
- End If
- Next
- Catch ex As Exception
- OnError("Ocurrió un error al enviar el reporte programado", ex)
- End Try
- End Sub
-
-
- 'Public Function ArmarNotificacion(TipoPlantilla As Integer) As DataTable
- ' If ArmarPlantillaNotificacion(NotificacionesBitacora, TipoPlantilla) Then
- ' Return DtResultados
- ' End If
- ' Return New DataTable()
- 'End Function
-
- Public Sub EnviarReporteProgramado(CveCliente As Integer, NombreCliente As String, Formato As String, Correos As String, FechaI As DateTime, FechaF As DateTime, CveReporte As Integer, CveNotificacionBitacora As Integer, DtDispositivos As DataTable, DtExtras As DataTable, UsuarioActual As Usuario)
- Dim CveDispositivo As Integer = -1
- Dim NombreVehiculo As String = ""
- Dim RutaReporte As String
- Dim retorno As Byte() = Nothing
-
- Select Case CveReporte
- Case 1 'Ultima Posicion
- Dim LSRutasMail As New List(Of ClsSisMail.ArchivoMail)
- Dim ObjGPS As New ClsGPS
- Try
- RutaReporte = $"{ModExtensiones.DirectorioBaseEmpresas}/Empresas/Grales/ReportesProgramados/RPTUltimaPosicion.rdlc"
- Dim Direcciones As JArray = Nothing
- If Formato = "Excel" Then
- Dim Dispositivos As New StringBuilder
- For Each Row As DataRow In DtDispositivos.Rows
- Dispositivos.AppendFormat("{0};", Row("CveDispositivo"))
- Next
- If ObjGPS.UltimaPosicionEquipoGet(Dispositivos.ToString(), CveCliente) Then
- Direcciones = ConsultarDirecciones(ObjGPS.DtResultados)
- For Each Dir As JObject In Direcciones
- ObjGPS.DtResultados.Rows(Dir("Indice").ToEntero())("Direccion") = Dir("Direccion").ToString()
- Next
- retorno = GenerarReporteUltimaPosicionExcel(DtDispositivos, ObjGPS.DtResultados, FechaI, FechaF, Correos)
- If retorno IsNot Nothing Then
- LSRutasMail.Add(New ClsSisMail.ArchivoMail With {.ArchivoBinario = retorno, .NombreArchivo = "ReporteTiempoMuerto.xlsx"})
- End If
- End If
- ElseIf Formato = "PDF" Then
- Dim Dispositivos As New StringBuilder
- For Each Row As DataRow In DtDispositivos.Rows
- Dispositivos.AppendFormat("{0};", Row("CveDispositivo"))
- Next
- If ObjGPS.UltimaPosicionEquipoGet(Dispositivos.ToString(), CveCliente) Then
- Direcciones = ConsultarDirecciones(ObjGPS.DtResultados)
- For Each Dir As JObject In Direcciones
- ObjGPS.DtResultados.Rows(Dir("Indice").ToEntero())("Direccion") = Dir("Direccion").ToString()
- Next
- retorno = GenerarReporteUltimaPosicion(ObjGPS.DtResultados, RutaReporte, FechaI, FechaF, Correos)
- If retorno IsNot Nothing Then
- LSRutasMail.Add(New ClsSisMail.ArchivoMail With {.ArchivoBinario = retorno, .NombreArchivo = "ReporteUltimaPosicion.pdf"})
- End If
- End If
- End If
- If LSRutasMail.Count > 0 Then
- Dim ObjMail As New ClsSisMail()
- Dim ResultadoMail As Integer = 0
- If ObjMail.SendMail(ClsPaginas.EmpresaNotificacionesGPS, Correos, $"Reporte Programado {Date.Today.ToShortDateString}", "Se adjunta en pdf el Reporte Programado.", "", LSRutasMail) Then
- UpdateNotificacionesBitacoraNotifico(CveNotificacionBitacora, 1)
- End If
- End If
-
- Catch ex As Exception
- GuardaLog(String.Format("Ocurrio un error al generar el reporte RLDC {0}", ex))
- End Try
- ObjGPS.Dispose()
- Case 2 'Historico
-
- Dim ObjGPS As New ClsGPS
- Try
- RutaReporte = $"{ModExtensiones.DirectorioBaseEmpresas}/Empresas/Grales/ReportesProgramados/RPTHistorico.rpt"
- Dim ObjMail As New ClsSisMail()
- Dim ResultadoMail As Integer = 0
- Dim Archivos As New List(Of ClsSisMail.ArchivoMail)
- Dim NombreReporte As String = "Reporte"
- Dim DataSource As DataSet = Nothing
-
- If Formato = "Excel" Then
- DataSource = New DataSet()
- End If
-
- For Each RowDisp As DataRow In DtDispositivos.Rows
- CveDispositivo = RowDisp("CveDispositivo").ToString().ToEntero
- NombreVehiculo = RowDisp("NombreVehiculo").ToString()
- NombreReporte = $"Reporte_Historico_{NombreVehiculo}_{FechaI.ToString("yyyy_MM_dd_HH_mm_ss")}_{ FechaF.ToString("yyyy_MM_dd_HH_mm_ss")}"
-
- Dim Direcciones As JArray = Nothing
- If ObjGPS.GetPosicionEquipo(CveDispositivo, FechaI, FechaF) Then
- Try
- Direcciones = ConsultarDirecciones(ObjGPS.DtResultados)
- For Each Dir As JObject In Direcciones
- ObjGPS.DtResultados.Rows(Dir("Indice").ToEntero())("Direccion") = Dir("Direccion").ToString()
- Next
- Catch ex As Exception
- GuardaLog(String.Format("Ocurrio un error al obtener las direcciones {0}", ex))
- End Try
- If Formato = "PDF" Then
- retorno = GenerarReporteHistorico(ObjGPS.DtResultados, RutaReporte, FechaI, FechaF, Correos, NombreReporte, NombreCliente, UsuarioActual)
- ElseIf Formato = "Excel" Then
- ObjGPS.DtResultados.TableName = NombreVehiculo
- DataSource.Tables.Add(ObjGPS.DtResultados)
- End If
- End If
-
- If retorno IsNot Nothing Then
- Archivos.Add(New ClsSisMail.ArchivoMail With {.ArchivoBinario = retorno, .NombreArchivo = $"{NombreReporte}.pdf"})
- End If
- Next
-
- If DataSource IsNot Nothing Then
- NombreReporte = $"Reporte_Historico_{FechaI.ToString("yyyy_MM_dd_HH_mm_ss")}_{ FechaF.ToString("yyyy_MM_dd_HH_mm_ss")}"
- retorno = GenerarReporteHistoricoExcel(DataSource, RutaReporte, FechaI, FechaF, Correos, NombreReporte)
- If retorno IsNot Nothing Then
- Archivos.Add(New ClsSisMail.ArchivoMail With {.ArchivoBinario = retorno, .NombreArchivo = $"{NombreReporte}.xlsx"})
- End If
- End If
-
- If Archivos.Count > 0 Then
- If ObjMail.SendMail(ClsPaginas.EmpresaNotificacionesGPS, Correos, $"Reporte Programado {Date.Today.ToShortDateString}", $"Se adjunta el {Formato} en el Reporte Programado.", "", Archivos) Then
- UpdateNotificacionesBitacoraNotifico(CveNotificacionBitacora, 1)
- End If
- End If
- Catch ex As Exception
- GuardaLog(String.Format("Ocurrio un error al generar el reporte RLDC {0}", ex))
- End Try
- ObjGPS.Dispose()
- Case 3 'Tiempo Muerto
- Dim LSRutasMail As New List(Of ClsSisMail.ArchivoMail)
- Dim ObjGPS As New ClsGPS
- Try
- RutaReporte = $"{ModExtensiones.DirectorioBaseEmpresas}/Empresas/Grales/ReportesProgramados/RPTiempoMuerto.rpt"
- Dim DataSource As DataSet = Nothing
- Dim Direcciones As JArray = Nothing
- If Formato = "Excel" Then
- Dim Dispositivos As New StringBuilder
- For Each Row As DataRow In DtDispositivos.Rows
- Dispositivos.AppendFormat("{0};", Row("CveDispositivo"))
- Next
- If ObjGPS.GetRepTiempoMuerto(Dispositivos.ToString(), CveCliente, FechaI, FechaF) Then
- Direcciones = ConsultarDirecciones(ObjGPS.DtResultados)
- For Each Dir As JObject In Direcciones
- ObjGPS.DtResultados.Rows(Dir("Indice").ToEntero())("Direccion") = Dir("Direccion").ToString()
- Next
- retorno = GenerarReporteTiempoMuertoExcel(ObjGPS.DtResultados, FechaI, FechaF, Correos)
- If retorno IsNot Nothing Then
- LSRutasMail.Add(New ClsSisMail.ArchivoMail With {.ArchivoBinario = retorno, .NombreArchivo = "ReporteTiempoMuerto.xlsx"})
- End If
- End If
- ElseIf Formato = "PDF" Then
- Dim Dispositivos As New StringBuilder
- For Each Row As DataRow In DtDispositivos.Rows
- Dispositivos.AppendFormat("{0};", Row("CveDispositivo"))
- Next
- If ObjGPS.GetRepTiempoMuerto(Dispositivos.ToString(), CveCliente, FechaI, FechaF) Then
- Direcciones = ConsultarDirecciones(ObjGPS.DtResultados)
- For Each Dir As JObject In Direcciones
- ObjGPS.DtResultados.Rows(Dir("Indice").ToEntero())("Direccion") = Dir("Direccion").ToString()
- Next
- retorno = GenerarReporteTiempoMuerto(ObjGPS.DtResultados, RutaReporte, FechaI, FechaF, Correos, "ReporteTiempoMuerto")
- If retorno IsNot Nothing Then
- LSRutasMail.Add(New ClsSisMail.ArchivoMail With {.ArchivoBinario = retorno, .NombreArchivo = "ReporteTiempoMuerto.pdf"})
- End If
- End If
- End If
- If LSRutasMail.Count > 0 Then
- Dim ObjMail As New ClsSisMail()
- Dim ResultadoMail As Integer = 0
- If ObjMail.SendMail(ClsPaginas.EmpresaNotificacionesGPS, Correos, $"Reporte Programado {Date.Today.ToShortDateString}", "Se adjunta en pdf el Reporte Programado.", "", LSRutasMail) Then
- UpdateNotificacionesBitacoraNotifico(CveNotificacionBitacora, 1)
- End If
- End If
- Catch ex As Exception
- GuardaLog(String.Format("Ocurrio un error al generar el reporte RLDC {0}", ex))
- End Try
- ObjGPS.Dispose()
- Case 4 'Evento
- Dim LSRutasMail As New List(Of ClsSisMail.ArchivoMail)
- Dim ObjGPS As New ClsGPS
- Try
- RutaReporte = $"{ModExtensiones.DirectorioBaseEmpresas}/Empresas/Grales/ReportesProgramados/RPTEventos.rpt"
- Dim Direcciones As JArray = Nothing
- Dim Dispositivos As New StringBuilder
- For Each Row As DataRow In DtDispositivos.Rows
- Dispositivos.AppendFormat("{0};", Row("CveDispositivo"))
- Next
- Dim Eventos As New StringBuilder
- For Each Row As DataRow In DtExtras.Rows
- Eventos.AppendFormat("{0};", Row("Cve"))
- Next
- If ObjGPS.GetRepEventos(Dispositivos.ToString(), Eventos.ToString(), FechaI, FechaF, CveCliente) Then
- Direcciones = ConsultarDirecciones(ObjGPS.DtResultados)
- For Each Dir As JObject In Direcciones
- ObjGPS.DtResultados.Rows(Dir("Indice").ToEntero())("Direccion") = Dir("Direccion").ToString()
- Next
- Dim NombreArchivo As String = ""
- If Formato = "Excel" Then
- retorno = GenerarReporteEventosExcel(DtDispositivos, ObjGPS.DtResultados, FechaI, FechaF, Correos)
- NombreArchivo = "ReporteEventos.xlsx"
- ElseIf Formato = "PDF" Then
- retorno = GenerarReporteEventos(ObjGPS.DtResultados, RutaReporte, FechaI, FechaF, Correos)
- NombreArchivo = "ReporteEventos.pdf"
- End If
- If retorno IsNot Nothing Then
- LSRutasMail.Add(New ClsSisMail.ArchivoMail With {.ArchivoBinario = retorno, .NombreArchivo = NombreArchivo})
- End If
- End If
- If LSRutasMail.Count > 0 Then
- Dim ObjMail As New ClsSisMail()
- Dim ResultadoMail As Integer = 0
- If ObjMail.SendMail(ClsPaginas.EmpresaNotificacionesGPS, Correos, $"Reporte Programado {Date.Today.ToShortDateString}", "Se adjunta en pdf el Reporte Programado.", "", LSRutasMail) Then
- UpdateNotificacionesBitacoraNotifico(CveNotificacionBitacora, 1)
- End If
- End If
- Catch ex As Exception
- GuardaLog(String.Format("Ocurrio un error al generar el reporte RLDC {0}", ex))
- End Try
- ObjGPS.Dispose()
- Case 5 'Ralenti
- Dim LSRutasMail As New List(Of ClsSisMail.ArchivoMail)
- Dim ObjGPS As New ClsGPS
- Try
- RutaReporte = $"{ModExtensiones.DirectorioBaseEmpresas}/Empresas/Grales/ReportesProgramados/RPTRalenti.rdlc"
- Dim Direcciones As JArray = Nothing
- If Formato = "Excel" Then
- Dim Dispositivos As New StringBuilder
- For Each Row As DataRow In DtDispositivos.Rows
- Dispositivos.AppendFormat("{0};", Row("CveDispositivo"))
- Next
- If ObjGPS.GetRepRalenti(Dispositivos.ToString(), FechaI, FechaF, CveCliente) Then
- Direcciones = ConsultarDirecciones(ObjGPS.DtResultados)
- For Each Dir As JObject In Direcciones
- ObjGPS.DtResultados.Rows(Dir("Indice").ToEntero())("Direccion") = Dir("Direccion").ToString()
- Next
- retorno = GenerarReporteRalentiExcel(DtDispositivos, ObjGPS.DtResultados, FechaI, FechaF, Correos)
- If retorno IsNot Nothing Then
- LSRutasMail.Add(New ClsSisMail.ArchivoMail With {.ArchivoBinario = retorno, .NombreArchivo = "ReporteRalenti.xlsx"})
- End If
- End If
- ElseIf Formato = "PDF" Then
- Dim Dispositivos As New StringBuilder
- For Each Row As DataRow In DtDispositivos.Rows
- Dispositivos.AppendFormat("{0};", Row("CveDispositivo"))
- Next
- If ObjGPS.GetRepRalenti(Dispositivos.ToString(), FechaI, FechaF, CveCliente) Then
- Direcciones = ConsultarDirecciones(ObjGPS.DtResultados)
- For Each Dir As JObject In Direcciones
- ObjGPS.DtResultados.Rows(Dir("Indice").ToEntero())("Direccion") = Dir("Direccion").ToString()
- Next
- retorno = GenerarReporteRalenti(ObjGPS.DtResultados, RutaReporte, FechaI, FechaF, Correos)
- If retorno IsNot Nothing Then
- LSRutasMail.Add(New ClsSisMail.ArchivoMail With {.ArchivoBinario = retorno, .NombreArchivo = "ReporteRalenti.pdf"})
- End If
- End If
- End If
- If LSRutasMail.Count > 0 Then
- Dim ObjMail As New ClsSisMail()
- Dim ResultadoMail As Integer = 0
- If ObjMail.SendMail(ClsPaginas.EmpresaNotificacionesGPS, Correos, $"Reporte Programado {Date.Today.ToShortDateString}", "Se adjunta en pdf el Reporte Programado.", "", LSRutasMail) Then
- UpdateNotificacionesBitacoraNotifico(CveNotificacionBitacora, 1)
- End If
- End If
- Catch ex As Exception
- GuardaLog(String.Format("Ocurrio un error al generar el reporte RLDC {0}", ex))
- End Try
- ObjGPS.Dispose()
- Case 6 'Geocercas
- RutaReporte = $"{ModExtensiones.DirectorioBaseEmpresas}/Empresas/Grales/ReportesProgramados/RPGeocercas.rdlc"
- Dim LSRutasMail As New List(Of ClsSisMail.ArchivoMail)
- Dim ObjGPS As New ClsGPS
- Try
- Dim Dispositivos As New StringBuilder
- For Each Row As DataRow In DtDispositivos.Rows
- Dispositivos.AppendFormat("{0};", Row("CveDispositivo"))
- Next
- If ObjGPS.GetRepGeoReferenciasEntradasSalidas(Dispositivos.ToString(), FechaI, FechaF, CveCliente) Then
- If ObjGPS.DtResultados.Rows.Count > 0 Then
- Dim Direcciones As JArray = ConsultarDirecciones(ObjGPS.DtResultados)
- For Each Dir As JObject In Direcciones
- ObjGPS.DtResultados.Rows(Dir("Indice").ToEntero())("Direccion") = Dir("Direccion").ToString()
- Next
- Dim NombreArchivo As String = ""
- If Formato = "Excel" Then
- retorno = GenerarReporteGeocercasExcel(ObjGPS.DtResultados, FechaI, FechaF, Correos)
- NombreArchivo = "ReporteGeocercas.xlsx"
- ElseIf Formato = "PDF" Then
- retorno = GenerarReporteGeocercas(ObjGPS.DtResultados, RutaReporte, FechaI, FechaF, Correos)
- NombreArchivo = "ReporteGeocercas.pdf"
- End If
- If retorno IsNot Nothing AndAlso Not String.IsNullOrEmpty(NombreArchivo) Then
- LSRutasMail.Add(New ClsSisMail.ArchivoMail With {.ArchivoBinario = retorno, .NombreArchivo = NombreArchivo})
- End If
- End If
- End If
- If LSRutasMail.Count > 0 Then
- Dim ObjMail As New ClsSisMail()
- Dim ResultadoMail As Integer = 0
- If ObjMail.SendMail(ClsPaginas.EmpresaNotificacionesGPS, Correos, $"Reporte Programado {Date.Today.ToShortDateString}", "Se adjunta en pdf el Reporte Programado.", "", LSRutasMail) Then
- UpdateNotificacionesBitacoraNotifico(CveNotificacionBitacora, 1)
- End If
- End If
- Catch ex As Exception
- GuardaLog(String.Format("Ocurrio un error al generar el reporte RLDC {0}", ex))
- End Try
- ObjGPS.Dispose()
- Case 7 'Puntos de Interes
- RutaReporte = $"{ModExtensiones.DirectorioBaseEmpresas}/Empresas/Grales/ReportesProgramados/RPPuntosDeInteres.rdlc"
- Dim LSRutasMail As New List(Of ClsSisMail.ArchivoMail)
- Dim ObjGPS As New ClsGPS
- Try
- Dim Dispositivos As New StringBuilder
- For Each Row As DataRow In DtDispositivos.Rows
- Dispositivos.AppendFormat("{0};", Row("CveDispositivo"))
- Next
- If ObjGPS.GetRepPuntosDeInteres(Dispositivos.ToString(), FechaI, FechaF, CveCliente) Then
- If ObjGPS.DtResultados.Rows.Count > 0 Then
- Dim Direcciones As JArray = ConsultarDirecciones(ObjGPS.DtResultados)
- For Each Dir As JObject In Direcciones
- ObjGPS.DtResultados.Rows(Dir("Indice").ToEntero())("Direccion") = Dir("Direccion").ToString()
- Next
- Dim NombreArchivo As String = ""
- If Formato = "Excel" Then
- retorno = GenerarReportePuntosDeInteresExcel(ObjGPS.DtResultados, FechaI, FechaF, Correos)
- NombreArchivo = "ReportePuntosInteres.xlsx"
- ElseIf Formato = "PDF" Then
- retorno = GenerarReportePuntosInteres(ObjGPS.DtResultados, RutaReporte, FechaI, FechaF, Correos)
- NombreArchivo = "ReportePuntosInteres.pdf"
- End If
- If retorno IsNot Nothing AndAlso Not String.IsNullOrEmpty(NombreArchivo) Then
- LSRutasMail.Add(New ClsSisMail.ArchivoMail With {.ArchivoBinario = retorno, .NombreArchivo = NombreArchivo})
- End If
- End If
- End If
- If LSRutasMail.Count > 0 Then
- Dim ObjMail As New ClsSisMail()
- Dim ResultadoMail As Integer = 0
- If ObjMail.SendMail(ClsPaginas.EmpresaNotificacionesGPS, Correos, $"Reporte Programado {Date.Today.ToShortDateString}", "Se adjunta en pdf el Reporte Programado.", "", LSRutasMail) Then
- UpdateNotificacionesBitacoraNotifico(CveNotificacionBitacora, 1)
- End If
- End If
- Catch ex As Exception
- GuardaLog(String.Format("Ocurrio un error al generar el reporte RLDC {0}", ex))
- End Try
+ End If
+ Next
+ Catch ex As Exception
+ OnError("Ocurrió un error al enviar el reporte programado", ex)
+ End Try
+ End Sub
+
+
+ 'Public Function ArmarNotificacion(TipoPlantilla As Integer) As DataTable
+ ' If ArmarPlantillaNotificacion(NotificacionesBitacora, TipoPlantilla) Then
+ ' Return DtResultados
+ ' End If
+ ' Return New DataTable()
+ 'End Function
+
+ Public Sub EnviarReporteProgramado(CveCliente As Integer, NombreCliente As String, Formato As String, Correos As String, FechaI As DateTime, FechaF As DateTime, CveReporte As Integer, CveNotificacionBitacora As Integer, DtDispositivos As DataTable, DtExtras As DataTable, UsuarioActual As Usuario)
+ Dim CveDispositivo As Integer = -1
+ Dim NombreVehiculo As String = ""
+ Dim RutaReporte As String
+ Dim retorno As Byte() = Nothing
+
+ Select Case CveReporte
+ Case 1 'Ultima Posicion
+ Dim LSRutasMail As New List(Of ClsSisMail.ArchivoMail)
+ Dim ObjGPS As New ClsGPS
+ Try
+ RutaReporte = $"{ModExtensiones.DirectorioBaseEmpresas}/Empresas/Grales/ReportesProgramados/RPTUltimaPosicion.rdlc"
+ Dim Direcciones As JArray = Nothing
+ If Formato = "Excel" Then
+ Dim Dispositivos As New StringBuilder
+ For Each Row As DataRow In DtDispositivos.Rows
+ Dispositivos.AppendFormat("{0};", Row("CveDispositivo"))
+ Next
+ If ObjGPS.UltimaPosicionEquipoGet(Dispositivos.ToString(), CveCliente) Then
+ Direcciones = ConsultarDirecciones(ObjGPS.DtResultados)
+ For Each Dir As JObject In Direcciones
+ ObjGPS.DtResultados.Rows(Dir("Indice").ToEntero())("Direccion") = Dir("Direccion").ToString()
+ Next
+ retorno = GenerarReporteUltimaPosicionExcel(DtDispositivos, ObjGPS.DtResultados, FechaI, FechaF, Correos)
+ If retorno IsNot Nothing Then
+ LSRutasMail.Add(New ClsSisMail.ArchivoMail With {.ArchivoBinario = retorno, .NombreArchivo = "ReporteTiempoMuerto.xlsx"})
+ End If
+ End If
+ ElseIf Formato = "PDF" Then
+ Dim Dispositivos As New StringBuilder
+ For Each Row As DataRow In DtDispositivos.Rows
+ Dispositivos.AppendFormat("{0};", Row("CveDispositivo"))
+ Next
+ If ObjGPS.UltimaPosicionEquipoGet(Dispositivos.ToString(), CveCliente) Then
+ Direcciones = ConsultarDirecciones(ObjGPS.DtResultados)
+ For Each Dir As JObject In Direcciones
+ ObjGPS.DtResultados.Rows(Dir("Indice").ToEntero())("Direccion") = Dir("Direccion").ToString()
+ Next
+ retorno = GenerarReporteUltimaPosicion(ObjGPS.DtResultados, RutaReporte, FechaI, FechaF, Correos)
+ If retorno IsNot Nothing Then
+ LSRutasMail.Add(New ClsSisMail.ArchivoMail With {.ArchivoBinario = retorno, .NombreArchivo = "ReporteUltimaPosicion.pdf"})
+ End If
+ End If
+ End If
+ If LSRutasMail.Count > 0 Then
+ Dim ObjMail As New ClsSisMail()
+ Dim ResultadoMail As Integer = 0
+ If ObjMail.SendMail(ClsPaginas.EmpresaNotificacionesGPS, Correos, $"Reporte Programado {Date.Today.ToShortDateString}", "Se adjunta en pdf el Reporte Programado.", "", LSRutasMail) Then
+ UpdateNotificacionesBitacoraNotifico(CveNotificacionBitacora, 1)
+ End If
+ End If
+
+ Catch ex As Exception
+ GuardaLog(String.Format("Ocurrio un error al generar el reporte RLDC {0}", ex))
+ End Try
+ ObjGPS.Dispose()
+ Case 2 'Historico
+
+ Dim ObjGPS As New ClsGPS
+ Try
+ RutaReporte = $"{ModExtensiones.DirectorioBaseEmpresas}/Empresas/Grales/ReportesProgramados/RPTHistorico.rpt"
+ Dim ObjMail As New ClsSisMail()
+ Dim ResultadoMail As Integer = 0
+ Dim Archivos As New List(Of ClsSisMail.ArchivoMail)
+ Dim NombreReporte As String = "Reporte"
+ Dim DataSource As DataSet = Nothing
+
+ If Formato = "Excel" Then
+ DataSource = New DataSet()
+ End If
+
+ For Each RowDisp As DataRow In DtDispositivos.Rows
+ CveDispositivo = RowDisp("CveDispositivo").ToString().ToEntero
+ NombreVehiculo = RowDisp("NombreVehiculo").ToString()
+ NombreReporte = $"Reporte_Historico_{NombreVehiculo}_{FechaI.ToString("yyyy_MM_dd_HH_mm_ss")}_{ FechaF.ToString("yyyy_MM_dd_HH_mm_ss")}"
+
+ Dim Direcciones As JArray = Nothing
+ If ObjGPS.GetPosicionEquipo(CveDispositivo, FechaI, FechaF) Then
+ Try
+ Direcciones = ConsultarDirecciones(ObjGPS.DtResultados)
+ For Each Dir As JObject In Direcciones
+ ObjGPS.DtResultados.Rows(Dir("Indice").ToEntero())("Direccion") = Dir("Direccion").ToString()
+ Next
+ Catch ex As Exception
+ GuardaLog(String.Format("Ocurrio un error al obtener las direcciones {0}", ex))
+ End Try
+ If Formato = "PDF" Then
+ retorno = GenerarReporteHistorico(ObjGPS.DtResultados, RutaReporte, FechaI, FechaF, Correos, NombreReporte, NombreCliente, UsuarioActual)
+ ElseIf Formato = "Excel" Then
+ ObjGPS.DtResultados.TableName = NombreVehiculo
+ DataSource.Tables.Add(ObjGPS.DtResultados)
+ End If
+ End If
+
+ If retorno IsNot Nothing Then
+ Archivos.Add(New ClsSisMail.ArchivoMail With {.ArchivoBinario = retorno, .NombreArchivo = $"{NombreReporte}.pdf"})
+ End If
+ Next
+
+ If DataSource IsNot Nothing Then
+ NombreReporte = $"Reporte_Historico_{FechaI.ToString("yyyy_MM_dd_HH_mm_ss")}_{ FechaF.ToString("yyyy_MM_dd_HH_mm_ss")}"
+ retorno = GenerarReporteHistoricoExcel(DataSource, RutaReporte, FechaI, FechaF, Correos, NombreReporte)
+ If retorno IsNot Nothing Then
+ Archivos.Add(New ClsSisMail.ArchivoMail With {.ArchivoBinario = retorno, .NombreArchivo = $"{NombreReporte}.xlsx"})
+ End If
+ End If
+
+ If Archivos.Count > 0 Then
+ If ObjMail.SendMail(ClsPaginas.EmpresaNotificacionesGPS, Correos, $"Reporte Programado {Date.Today.ToShortDateString}", $"Se adjunta el {Formato} en el Reporte Programado.", "", Archivos) Then
+ UpdateNotificacionesBitacoraNotifico(CveNotificacionBitacora, 1)
+ End If
+ End If
+ Catch ex As Exception
+ GuardaLog(String.Format("Ocurrio un error al generar el reporte RLDC {0}", ex))
+ End Try
+ ObjGPS.Dispose()
+ Case 3 'Tiempo Muerto
+ Dim LSRutasMail As New List(Of ClsSisMail.ArchivoMail)
+ Dim ObjGPS As New ClsGPS
+ Try
+ RutaReporte = $"{ModExtensiones.DirectorioBaseEmpresas}/Empresas/Grales/ReportesProgramados/RPTiempoMuerto.rpt"
+ Dim DataSource As DataSet = Nothing
+ Dim Direcciones As JArray = Nothing
+ If Formato = "Excel" Then
+ Dim Dispositivos As New StringBuilder
+ For Each Row As DataRow In DtDispositivos.Rows
+ Dispositivos.AppendFormat("{0};", Row("CveDispositivo"))
+ Next
+ If ObjGPS.GetRepTiempoMuerto(Dispositivos.ToString(), CveCliente, FechaI, FechaF) Then
+ Direcciones = ConsultarDirecciones(ObjGPS.DtResultados)
+ For Each Dir As JObject In Direcciones
+ ObjGPS.DtResultados.Rows(Dir("Indice").ToEntero())("Direccion") = Dir("Direccion").ToString()
+ Next
+ retorno = GenerarReporteTiempoMuertoExcel(ObjGPS.DtResultados, FechaI, FechaF, Correos)
+ If retorno IsNot Nothing Then
+ LSRutasMail.Add(New ClsSisMail.ArchivoMail With {.ArchivoBinario = retorno, .NombreArchivo = "ReporteTiempoMuerto.xlsx"})
+ End If
+ End If
+ ElseIf Formato = "PDF" Then
+ Dim Dispositivos As New StringBuilder
+ For Each Row As DataRow In DtDispositivos.Rows
+ Dispositivos.AppendFormat("{0};", Row("CveDispositivo"))
+ Next
+ If ObjGPS.GetRepTiempoMuerto(Dispositivos.ToString(), CveCliente, FechaI, FechaF) Then
+ Direcciones = ConsultarDirecciones(ObjGPS.DtResultados)
+ For Each Dir As JObject In Direcciones
+ ObjGPS.DtResultados.Rows(Dir("Indice").ToEntero())("Direccion") = Dir("Direccion").ToString()
+ Next
+ retorno = GenerarReporteTiempoMuerto(ObjGPS.DtResultados, RutaReporte, FechaI, FechaF, Correos, "ReporteTiempoMuerto")
+ If retorno IsNot Nothing Then
+ LSRutasMail.Add(New ClsSisMail.ArchivoMail With {.ArchivoBinario = retorno, .NombreArchivo = "ReporteTiempoMuerto.pdf"})
+ End If
+ End If
+ End If
+ If LSRutasMail.Count > 0 Then
+ Dim ObjMail As New ClsSisMail()
+ Dim ResultadoMail As Integer = 0
+ If ObjMail.SendMail(ClsPaginas.EmpresaNotificacionesGPS, Correos, $"Reporte Programado {Date.Today.ToShortDateString}", "Se adjunta en pdf el Reporte Programado.", "", LSRutasMail) Then
+ UpdateNotificacionesBitacoraNotifico(CveNotificacionBitacora, 1)
+ End If
+ End If
+ Catch ex As Exception
+ GuardaLog(String.Format("Ocurrio un error al generar el reporte RLDC {0}", ex))
+ End Try
+ ObjGPS.Dispose()
+ Case 4 'Evento
+ Dim LSRutasMail As New List(Of ClsSisMail.ArchivoMail)
+ Dim ObjGPS As New ClsGPS
+ Try
+ RutaReporte = $"{ModExtensiones.DirectorioBaseEmpresas}/Empresas/Grales/ReportesProgramados/RPTEventos.rpt"
+ Dim Direcciones As JArray = Nothing
+ Dim Dispositivos As New StringBuilder
+ For Each Row As DataRow In DtDispositivos.Rows
+ Dispositivos.AppendFormat("{0};", Row("CveDispositivo"))
+ Next
+ Dim Eventos As New StringBuilder
+ For Each Row As DataRow In DtExtras.Rows
+ Eventos.AppendFormat("{0};", Row("Cve"))
+ Next
+ If ObjGPS.GetRepEventos(Dispositivos.ToString(), Eventos.ToString(), FechaI, FechaF, CveCliente) Then
+ Direcciones = ConsultarDirecciones(ObjGPS.DtResultados)
+ For Each Dir As JObject In Direcciones
+ ObjGPS.DtResultados.Rows(Dir("Indice").ToEntero())("Direccion") = Dir("Direccion").ToString()
+ Next
+ Dim NombreArchivo As String = ""
+ If Formato = "Excel" Then
+ retorno = GenerarReporteEventosExcel(DtDispositivos, ObjGPS.DtResultados, FechaI, FechaF, Correos)
+ NombreArchivo = "ReporteEventos.xlsx"
+ ElseIf Formato = "PDF" Then
+ retorno = GenerarReporteEventos(ObjGPS.DtResultados, RutaReporte, FechaI, FechaF, Correos)
+ NombreArchivo = "ReporteEventos.pdf"
+ End If
+ If retorno IsNot Nothing Then
+ LSRutasMail.Add(New ClsSisMail.ArchivoMail With {.ArchivoBinario = retorno, .NombreArchivo = NombreArchivo})
+ End If
+ End If
+ If LSRutasMail.Count > 0 Then
+ Dim ObjMail As New ClsSisMail()
+ Dim ResultadoMail As Integer = 0
+ If ObjMail.SendMail(ClsPaginas.EmpresaNotificacionesGPS, Correos, $"Reporte Programado {Date.Today.ToShortDateString}", "Se adjunta en pdf el Reporte Programado.", "", LSRutasMail) Then
+ UpdateNotificacionesBitacoraNotifico(CveNotificacionBitacora, 1)
+ End If
+ End If
+ Catch ex As Exception
+ GuardaLog(String.Format("Ocurrio un error al generar el reporte RLDC {0}", ex))
+ End Try
+ ObjGPS.Dispose()
+ Case 5 'Ralenti
+ Dim LSRutasMail As New List(Of ClsSisMail.ArchivoMail)
+ Dim ObjGPS As New ClsGPS
+ Try
+ RutaReporte = $"{ModExtensiones.DirectorioBaseEmpresas}/Empresas/Grales/ReportesProgramados/RPTRalenti.rdlc"
+ Dim Direcciones As JArray = Nothing
+ If Formato = "Excel" Then
+ Dim Dispositivos As New StringBuilder
+ For Each Row As DataRow In DtDispositivos.Rows
+ Dispositivos.AppendFormat("{0};", Row("CveDispositivo"))
+ Next
+ If ObjGPS.GetRepRalenti(Dispositivos.ToString(), FechaI, FechaF, CveCliente) Then
+ Direcciones = ConsultarDirecciones(ObjGPS.DtResultados)
+ For Each Dir As JObject In Direcciones
+ ObjGPS.DtResultados.Rows(Dir("Indice").ToEntero())("Direccion") = Dir("Direccion").ToString()
+ Next
+ retorno = GenerarReporteRalentiExcel(DtDispositivos, ObjGPS.DtResultados, FechaI, FechaF, Correos)
+ If retorno IsNot Nothing Then
+ LSRutasMail.Add(New ClsSisMail.ArchivoMail With {.ArchivoBinario = retorno, .NombreArchivo = "ReporteRalenti.xlsx"})
+ End If
+ End If
+ ElseIf Formato = "PDF" Then
+ Dim Dispositivos As New StringBuilder
+ For Each Row As DataRow In DtDispositivos.Rows
+ Dispositivos.AppendFormat("{0};", Row("CveDispositivo"))
+ Next
+ If ObjGPS.GetRepRalenti(Dispositivos.ToString(), FechaI, FechaF, CveCliente) Then
+ Direcciones = ConsultarDirecciones(ObjGPS.DtResultados)
+ For Each Dir As JObject In Direcciones
+ ObjGPS.DtResultados.Rows(Dir("Indice").ToEntero())("Direccion") = Dir("Direccion").ToString()
+ Next
+ retorno = GenerarReporteRalenti(ObjGPS.DtResultados, RutaReporte, FechaI, FechaF, Correos)
+ If retorno IsNot Nothing Then
+ LSRutasMail.Add(New ClsSisMail.ArchivoMail With {.ArchivoBinario = retorno, .NombreArchivo = "ReporteRalenti.pdf"})
+ End If
+ End If
+ End If
+ If LSRutasMail.Count > 0 Then
+ Dim ObjMail As New ClsSisMail()
+ Dim ResultadoMail As Integer = 0
+ If ObjMail.SendMail(ClsPaginas.EmpresaNotificacionesGPS, Correos, $"Reporte Programado {Date.Today.ToShortDateString}", "Se adjunta en pdf el Reporte Programado.", "", LSRutasMail) Then
+ UpdateNotificacionesBitacoraNotifico(CveNotificacionBitacora, 1)
+ End If
+ End If
+ Catch ex As Exception
+ GuardaLog(String.Format("Ocurrio un error al generar el reporte RLDC {0}", ex))
+ End Try
+ ObjGPS.Dispose()
+ Case 6 'Geocercas
+ RutaReporte = $"{ModExtensiones.DirectorioBaseEmpresas}/Empresas/Grales/ReportesProgramados/RPGeocercas.rdlc"
+ Dim LSRutasMail As New List(Of ClsSisMail.ArchivoMail)
+ Dim ObjGPS As New ClsGPS
+ Try
+ Dim Dispositivos As New StringBuilder
+ For Each Row As DataRow In DtDispositivos.Rows
+ Dispositivos.AppendFormat("{0};", Row("CveDispositivo"))
+ Next
+ If ObjGPS.GetRepGeoReferenciasEntradasSalidas(Dispositivos.ToString(), FechaI, FechaF, CveCliente) Then
+ If ObjGPS.DtResultados.Rows.Count > 0 Then
+ Dim Direcciones As JArray = ConsultarDirecciones(ObjGPS.DtResultados)
+ For Each Dir As JObject In Direcciones
+ ObjGPS.DtResultados.Rows(Dir("Indice").ToEntero())("Direccion") = Dir("Direccion").ToString()
+ Next
+ Dim NombreArchivo As String = ""
+ If Formato = "Excel" Then
+ retorno = GenerarReporteGeocercasExcel(ObjGPS.DtResultados, FechaI, FechaF, Correos)
+ NombreArchivo = "ReporteGeocercas.xlsx"
+ ElseIf Formato = "PDF" Then
+ retorno = GenerarReporteGeocercas(ObjGPS.DtResultados, RutaReporte, FechaI, FechaF, Correos)
+ NombreArchivo = "ReporteGeocercas.pdf"
+ End If
+ If retorno IsNot Nothing AndAlso Not String.IsNullOrEmpty(NombreArchivo) Then
+ LSRutasMail.Add(New ClsSisMail.ArchivoMail With {.ArchivoBinario = retorno, .NombreArchivo = NombreArchivo})
+ End If
+ End If
+ End If
+ If LSRutasMail.Count > 0 Then
+ Dim ObjMail As New ClsSisMail()
+ Dim ResultadoMail As Integer = 0
+ If ObjMail.SendMail(ClsPaginas.EmpresaNotificacionesGPS, Correos, $"Reporte Programado {Date.Today.ToShortDateString}", "Se adjunta en pdf el Reporte Programado.", "", LSRutasMail) Then
+ UpdateNotificacionesBitacoraNotifico(CveNotificacionBitacora, 1)
+ End If
+ End If
+ Catch ex As Exception
+ GuardaLog(String.Format("Ocurrio un error al generar el reporte RLDC {0}", ex))
+ End Try
+ ObjGPS.Dispose()
+ Case 7 'Puntos de Interes
+ RutaReporte = $"{ModExtensiones.DirectorioBaseEmpresas}/Empresas/Grales/ReportesProgramados/RPPuntosDeInteres.rdlc"
+ Dim LSRutasMail As New List(Of ClsSisMail.ArchivoMail)
+ Dim ObjGPS As New ClsGPS
+ Try
+ Dim Dispositivos As New StringBuilder
+ For Each Row As DataRow In DtDispositivos.Rows
+ Dispositivos.AppendFormat("{0};", Row("CveDispositivo"))
+ Next
+ If ObjGPS.GetRepPuntosDeInteres(Dispositivos.ToString(), FechaI, FechaF, CveCliente) Then
+ If ObjGPS.DtResultados.Rows.Count > 0 Then
+ Dim Direcciones As JArray = ConsultarDirecciones(ObjGPS.DtResultados)
+ For Each Dir As JObject In Direcciones
+ ObjGPS.DtResultados.Rows(Dir("Indice").ToEntero())("Direccion") = Dir("Direccion").ToString()
+ Next
+ Dim NombreArchivo As String = ""
+ If Formato = "Excel" Then
+ retorno = GenerarReportePuntosDeInteresExcel(ObjGPS.DtResultados, FechaI, FechaF, Correos)
+ NombreArchivo = "ReportePuntosInteres.xlsx"
+ ElseIf Formato = "PDF" Then
+ retorno = GenerarReportePuntosInteres(ObjGPS.DtResultados, RutaReporte, FechaI, FechaF, Correos)
+ NombreArchivo = "ReportePuntosInteres.pdf"
+ End If
+ If retorno IsNot Nothing AndAlso Not String.IsNullOrEmpty(NombreArchivo) Then
+ LSRutasMail.Add(New ClsSisMail.ArchivoMail With {.ArchivoBinario = retorno, .NombreArchivo = NombreArchivo})
+ End If
+ End If
+ End If
+ If LSRutasMail.Count > 0 Then
+ Dim ObjMail As New ClsSisMail()
+ Dim ResultadoMail As Integer = 0
+ If ObjMail.SendMail(ClsPaginas.EmpresaNotificacionesGPS, Correos, $"Reporte Programado {Date.Today.ToShortDateString}", "Se adjunta en pdf el Reporte Programado.", "", LSRutasMail) Then
+ UpdateNotificacionesBitacoraNotifico(CveNotificacionBitacora, 1)
+ End If
+ End If
+ Catch ex As Exception
+ GuardaLog(String.Format("Ocurrio un error al generar el reporte RLDC {0}", ex))
+ End Try
ObjGPS.Dispose()
'Case 8 ' Subida/Bajada de Pasajeros
' Dim PasajerosEntrada, PasajerosSalida, Ascensos, Descensos As Integer
@@ -802,145 +802,145 @@ Public Class ClsSisNotificaciones
' End Try
' ObjGPS.Dispose()
' End If
- Case 10 'Reporte de Ignicion
- Dim ObjGPS As New ClsGPS
- Try
- RutaReporte = $"{ModExtensiones.DirectorioBaseEmpresas}/Empresas/Grales/ReportesProgramados/RPIgnicion.rdlc"
- Dim ObjMail As New ClsSisMail()
- Dim ResultadoMail As Integer = 0
- Dim Archivos As New List(Of ClsSisMail.ArchivoMail)
- Dim NombreReporte As String = "Reporte"
- Dim DataSource As DataSet = Nothing
-
- If Formato = "Excel" Then
- DataSource = New DataSet()
- End If
-
- For Each RowDisp As DataRow In DtDispositivos.Rows
- CveDispositivo = RowDisp("CveDispositivo").ToString().ToEntero
- NombreVehiculo = RowDisp("NombreVehiculo").ToString()
- NombreReporte = $"Reporte_Ignicion_{NombreVehiculo}_{FechaI.ToString("yyyy_MM_dd_HH_mm_ss")}_{ FechaF.ToString("yyyy_MM_dd_HH_mm_ss")}"
-
- Dim DireccionesInicial As JArray = Nothing, DireccionesFinal As JArray = Nothing
-
- If ObjGPS.GetRepIgnicion(CveDispositivo, FechaI, FechaF, CveCliente) Then
- Try
+ Case 10 'Reporte de Ignicion
+ Dim ObjGPS As New ClsGPS
+ Try
+ RutaReporte = $"{ModExtensiones.DirectorioBaseEmpresas}/Empresas/Grales/ReportesProgramados/RPIgnicion.rdlc"
+ Dim ObjMail As New ClsSisMail()
+ Dim ResultadoMail As Integer = 0
+ Dim Archivos As New List(Of ClsSisMail.ArchivoMail)
+ Dim NombreReporte As String = "Reporte"
+ Dim DataSource As DataSet = Nothing
+
+ If Formato = "Excel" Then
+ DataSource = New DataSet()
+ End If
+
+ For Each RowDisp As DataRow In DtDispositivos.Rows
+ CveDispositivo = RowDisp("CveDispositivo").ToString().ToEntero
+ NombreVehiculo = RowDisp("NombreVehiculo").ToString()
+ NombreReporte = $"Reporte_Ignicion_{NombreVehiculo}_{FechaI.ToString("yyyy_MM_dd_HH_mm_ss")}_{ FechaF.ToString("yyyy_MM_dd_HH_mm_ss")}"
+
+ Dim DireccionesInicial As JArray = Nothing, DireccionesFinal As JArray = Nothing
+
+ If ObjGPS.GetRepIgnicion(CveDispositivo, FechaI, FechaF, CveCliente) Then
+ Try
DireccionesInicial = ConsultarDireccionesIgnicion(ObjGPS.DtResultados, "CveTramaEncendido", "LatitudInicial", "LongitudInicial")
DireccionesFinal = ConsultarDireccionesIgnicion(ObjGPS.DtResultados, "CveTramaApagado", "LatitudFinal", "LongitudFinal")
- For Each Dir As JObject In DireccionesInicial
- ObjGPS.DtResultados.Rows(Dir("Indice").ToEntero())("DireccionInical") = Dir("Direccion").ToString()
- Next
-
- For Each Dir As JObject In DireccionesFinal
- ObjGPS.DtResultados.Rows(Dir("Indice").ToEntero())("DireccionFinal") = Dir("Direccion").ToString()
- Next
- Catch ex As Exception
- GuardaLog(String.Format("Ocurrio un error al obtener las direcciones {0}", ex))
- End Try
- If Formato = "PDF" Then
- retorno = GenerarReporteIgnicion(ObjGPS.DtResultados, RutaReporte, FechaI, FechaF, Correos, NombreReporte)
- ElseIf Formato = "Excel" Then
- ObjGPS.DtResultados.TableName = NombreVehiculo
- DataSource.Tables.Add(ObjGPS.DtResultados)
- End If
- End If
-
- If retorno IsNot Nothing Then
- Archivos.Add(New ClsSisMail.ArchivoMail With {.ArchivoBinario = retorno, .NombreArchivo = $"{NombreReporte}.pdf"})
- End If
- Next
-
- If DataSource IsNot Nothing Then
- NombreReporte = $"Reporte_Ignicion_{FechaI.ToString("yyyy_MM_dd_HH_mm_ss")}_{ FechaF.ToString("yyyy_MM_dd_HH_mm_ss")}"
- retorno = GenerarReporteIgnicionExcel(DataSource, RutaReporte, FechaI, FechaF, Correos, NombreReporte)
- If retorno IsNot Nothing Then
- Archivos.Add(New ClsSisMail.ArchivoMail With {.ArchivoBinario = retorno, .NombreArchivo = $"{NombreReporte}.xlsx"})
- End If
- End If
-
- If Archivos.Count > 0 Then
- If ObjMail.SendMail(ClsPaginas.EmpresaNotificacionesGPS, Correos, $"Reporte Programado {Date.Today.ToShortDateString}", $"Se adjunta el {Formato} en el Reporte Programado.", "", Archivos) Then
- UpdateNotificacionesBitacoraNotifico(CveNotificacionBitacora, 1)
- End If
- End If
- Catch ex As Exception
- GuardaLog(String.Format("Ocurrio un error al generar el reporte RLDC {0}", ex))
- End Try
- ObjGPS.Dispose()
- End Select
+ For Each Dir As JObject In DireccionesInicial
+ ObjGPS.DtResultados.Rows(Dir("Indice").ToEntero())("DireccionInical") = Dir("Direccion").ToString()
+ Next
+
+ For Each Dir As JObject In DireccionesFinal
+ ObjGPS.DtResultados.Rows(Dir("Indice").ToEntero())("DireccionFinal") = Dir("Direccion").ToString()
+ Next
+ Catch ex As Exception
+ GuardaLog(String.Format("Ocurrio un error al obtener las direcciones {0}", ex))
+ End Try
+ If Formato = "PDF" Then
+ retorno = GenerarReporteIgnicion(ObjGPS.DtResultados, RutaReporte, FechaI, FechaF, Correos, NombreReporte)
+ ElseIf Formato = "Excel" Then
+ ObjGPS.DtResultados.TableName = NombreVehiculo
+ DataSource.Tables.Add(ObjGPS.DtResultados)
+ End If
+ End If
+
+ If retorno IsNot Nothing Then
+ Archivos.Add(New ClsSisMail.ArchivoMail With {.ArchivoBinario = retorno, .NombreArchivo = $"{NombreReporte}.pdf"})
+ End If
+ Next
+
+ If DataSource IsNot Nothing Then
+ NombreReporte = $"Reporte_Ignicion_{FechaI.ToString("yyyy_MM_dd_HH_mm_ss")}_{ FechaF.ToString("yyyy_MM_dd_HH_mm_ss")}"
+ retorno = GenerarReporteIgnicionExcel(DataSource, RutaReporte, FechaI, FechaF, Correos, NombreReporte)
+ If retorno IsNot Nothing Then
+ Archivos.Add(New ClsSisMail.ArchivoMail With {.ArchivoBinario = retorno, .NombreArchivo = $"{NombreReporte}.xlsx"})
+ End If
+ End If
+
+ If Archivos.Count > 0 Then
+ If ObjMail.SendMail(ClsPaginas.EmpresaNotificacionesGPS, Correos, $"Reporte Programado {Date.Today.ToShortDateString}", $"Se adjunta el {Formato} en el Reporte Programado.", "", Archivos) Then
+ UpdateNotificacionesBitacoraNotifico(CveNotificacionBitacora, 1)
+ End If
+ End If
+ Catch ex As Exception
+ GuardaLog(String.Format("Ocurrio un error al generar el reporte RLDC {0}", ex))
+ End Try
+ ObjGPS.Dispose()
+ End Select
End Sub
-#Region "G E N E R A R - R E P O R T E"
- Private Function GenerarReporteUltimaPosicion(DataSource As DataTable, Liga As String, FechaI As DateTime, FechaF As DateTime, Correos As String) As Byte()
- Dim Retorno As Byte() = Nothing
- If DataSource IsNot Nothing AndAlso DataSource.Rows.Count > 0 Then
- Dim js As JObject = Nothing
- Try
- Dim RptParametro As New List(Of ReportParameter)
- RptParametro.Add(New ReportParameter("FechaInicio", FechaI.ToShortDateString))
- RptParametro.Add(New ReportParameter("FechaFin", FechaF.ToShortDateString))
- RptParametro.Add(New ReportParameter("MapaURL", ""))
- RptParametro.Add(New ReportParameter("UsuarioImprimio", Correos))
- RptParametro.Add(New ReportParameter("FechaImpresion", ClsPaginas.NowADS().ToShortDateString))
-
- Retorno = StreamPDF(Liga, DataSource, RptParametro, "ReporteUltimaPosicion", "PDF", MR:=Nothing, RDSName:="DsOC")
- Catch ex As Exception
- GuardaLog(String.Format("Ocurrio un error al generar el reporte RLDC {0}", ex))
- End Try
- Else
- Alert("No se pudo imprimir el pdf, ya que no se ha hecho una consulta, o ésta no arrojó resultados.", TipoMensaje.MsgInformacion)
- End If
- Return Retorno
- End Function
- Private Function GenerarReporteUltimaPosicionExcel(DtDispositivos As DataTable, DataSource As DataTable, FechaI As DateTime, FechaF As DateTime, Correos As String) As Byte()
- Dim Retorno As New MemoryStream()
- SpreadsheetInfo.SetLicense(ModExtensiones.SerialGemBoxSpreadsheet)
-
- Dim FileExcel As ExcelFile = New ExcelFile
- For Each Dr As DataRow In DtDispositivos.Rows
- Dim CveDispositivo As Integer = Dr("CveDispositivo").ToString().ToEntero()
- Dim NombreVehiculo = Dr("NombreVehiculo").ToString()
-
- Dim FilterRows = DataSource.FiltraParametros($"CveDispositivo = {CveDispositivo}")
- Dim Dt = GenerarDTUltimaPosicion(NombreVehiculo, FilterRows)
-
- Dim item = FileExcel.Worksheets.Add(Dt.TableName)
- item.InsertDataTable(Dt, New InsertDataTableOptions() With
- {
- .ColumnHeaders = True,
- .StartRow = 0,
- .StartColumn = 0
- })
- item.Rows(0).Style.FillPattern.SetPattern(FillPatternStyle.Solid, SpreadsheetColor.FromArgb(75, 119, 190), SpreadsheetColor.FromArgb(255, 255, 255))
- item.Rows(0).Style.Font.Color = SpreadsheetColor.FromArgb(255, 255, 255)
-
- Dim columnCount = item.CalculateMaxUsedColumns()
- For i = 0 To columnCount
- item.Columns(i).AutoFit(1, item.Rows(i), item.Rows(item.Rows.Count - 1))
- Next
- Next
- FileExcel.Save(Retorno, SaveOptions.XlsxDefault)
-
- Return Retorno.ToArray()
- End Function
- Private Function GenerarReporteHistorico(DataSource As DataTable, Liga As String, FechaI As DateTime, FechaF As DateTime, Correos As String, NombreReporte As String, NombreCliente As String, UsuarioActual As Usuario) As Byte()
- Dim Retorno As Byte() = Nothing
- Try
- Dim RptParametro As New List(Of CrystalParametro)
-
+#Region "G E N E R A R - R E P O R T E"
+ Private Function GenerarReporteUltimaPosicion(DataSource As DataTable, Liga As String, FechaI As DateTime, FechaF As DateTime, Correos As String) As Byte()
+ Dim Retorno As Byte() = Nothing
+ If DataSource IsNot Nothing AndAlso DataSource.Rows.Count > 0 Then
+ Dim js As JObject = Nothing
+ Try
+ Dim RptParametro As New List(Of ReportParameter)
+ RptParametro.Add(New ReportParameter("FechaInicio", FechaI.ToShortDateString))
+ RptParametro.Add(New ReportParameter("FechaFin", FechaF.ToShortDateString))
+ RptParametro.Add(New ReportParameter("MapaURL", ""))
+ RptParametro.Add(New ReportParameter("UsuarioImprimio", Correos))
+ RptParametro.Add(New ReportParameter("FechaImpresion", ClsPaginas.NowADS().ToShortDateString))
+
+ Retorno = StreamPDF(Liga, DataSource, RptParametro, "ReporteUltimaPosicion", "PDF", MR:=Nothing, RDSName:="DsOC")
+ Catch ex As Exception
+ GuardaLog(String.Format("Ocurrio un error al generar el reporte RLDC {0}", ex))
+ End Try
+ Else
+ Alert("No se pudo imprimir el pdf, ya que no se ha hecho una consulta, o ésta no arrojó resultados.", TipoMensaje.MsgInformacion)
+ End If
+ Return Retorno
+ End Function
+ Private Function GenerarReporteUltimaPosicionExcel(DtDispositivos As DataTable, DataSource As DataTable, FechaI As DateTime, FechaF As DateTime, Correos As String) As Byte()
+ Dim Retorno As New MemoryStream()
+ SpreadsheetInfo.SetLicense(ModExtensiones.SerialGemBoxSpreadsheet)
+
+ Dim FileExcel As ExcelFile = New ExcelFile
+ For Each Dr As DataRow In DtDispositivos.Rows
+ Dim CveDispositivo As Integer = Dr("CveDispositivo").ToString().ToEntero()
+ Dim NombreVehiculo = Dr("NombreVehiculo").ToString()
+
+ Dim FilterRows = DataSource.FiltraParametros($"CveDispositivo = {CveDispositivo}")
+ Dim Dt = GenerarDTUltimaPosicion(NombreVehiculo, FilterRows)
+
+ Dim item = FileExcel.Worksheets.Add(Dt.TableName)
+ item.InsertDataTable(Dt, New InsertDataTableOptions() With
+ {
+ .ColumnHeaders = True,
+ .StartRow = 0,
+ .StartColumn = 0
+ })
+ item.Rows(0).Style.FillPattern.SetPattern(FillPatternStyle.Solid, SpreadsheetColor.FromArgb(75, 119, 190), SpreadsheetColor.FromArgb(255, 255, 255))
+ item.Rows(0).Style.Font.Color = SpreadsheetColor.FromArgb(255, 255, 255)
+
+ Dim columnCount = item.CalculateMaxUsedColumns()
+ For i = 0 To columnCount
+ item.Columns(i).AutoFit(1, item.Rows(i), item.Rows(item.Rows.Count - 1))
+ Next
+ Next
+ FileExcel.Save(Retorno, SaveOptions.XlsxDefault)
+
+ Return Retorno.ToArray()
+ End Function
+ Private Function GenerarReporteHistorico(DataSource As DataTable, Liga As String, FechaI As DateTime, FechaF As DateTime, Correos As String, NombreReporte As String, NombreCliente As String, UsuarioActual As Usuario) As Byte()
+ Dim Retorno As Byte() = Nothing
+ Try
+ Dim RptParametro As New List(Of CrystalParametro)
+
Dim logouri = String.Format("{0}://{1}:{2}/Empresas/{3}/Logo.png", HttpContext.Current.Request.Url.Scheme, HttpContext.Current.Request.Url.Host, HttpContext.Current.Request.Url.Port, UsuarioActual.CveEmpresa)
Dim Imagen As New System.IO.FileInfo(String.Format("{0}/Logo.png", UsuarioActual.Empresa.Ruta))
- RptParametro.Add(New CrystalParametro("FechaInicio", FechaI.ToString))
- RptParametro.Add(New CrystalParametro("FechaFin", FechaF.ToString))
- RptParametro.Add(New CrystalParametro("UsuarioImprimio", Correos))
- RptParametro.Add(New CrystalParametro("FechaImpresion", ClsPaginas.NowADS().ToShortDateString))
- If DataSource.Rows.Count > 0 Then
- RptParametro.Add(New CrystalParametro("KMRecorridos", $"{DataSource.Rows(0)("KMRecorridos")} KM"))
- Else
- RptParametro.Add(New CrystalParametro("KMRecorridos", "0 KM"))
+ RptParametro.Add(New CrystalParametro("FechaInicio", FechaI.ToString))
+ RptParametro.Add(New CrystalParametro("FechaFin", FechaF.ToString))
+ RptParametro.Add(New CrystalParametro("UsuarioImprimio", Correos))
+ RptParametro.Add(New CrystalParametro("FechaImpresion", ClsPaginas.NowADS().ToShortDateString))
+ If DataSource.Rows.Count > 0 Then
+ RptParametro.Add(New CrystalParametro("KMRecorridos", $"{DataSource.Rows(0)("KMRecorridos")} KM"))
+ Else
+ RptParametro.Add(New CrystalParametro("KMRecorridos", "0 KM"))
End If
RptParametro.Add(New CrystalParametro("NombreEmpresa", NombreCliente))
@@ -949,99 +949,99 @@ Public Class ClsSisNotificaciones
RptParametro.Add(New CrystalParametro("LogoPath", logouri))
Else
RptParametro.Add(New CrystalParametro("LogoPath", ""))
- End If
-
- Retorno = StreamPDFCrystal(Liga, DataSource, RptParametro, NombreReporte, "PDF")
- Catch ex As Exception
- GuardaLog(String.Format("Ocurrio un error al generar el reporte RLDC {0}", ex))
- End Try
- Return Retorno
- End Function
- Private Function GenerarReporteHistoricoExcel(DataSource As DataSet, Liga As String, FechaI As DateTime, FechaF As DateTime, Correos As String, NombreReporte As String) As Byte()
- Dim Retorno As New MemoryStream()
- SpreadsheetInfo.SetLicense(ModExtensiones.SerialGemBoxSpreadsheet)
-
- Dim FileExcel As ExcelFile = New ExcelFile
- For Each Dt As DataTable In DataSource.Tables
-
- Dt.Columns.Remove("CveTrama")
- Dt.Columns.Remove("CveDispositivo")
- Dt.Columns.Remove("LatLng")
- Dt.Columns.Remove("NoEconomico")
- Dt.Columns.Remove("DevID")
- Dt.Columns.Remove("KMRecorridos")
- Dt.Columns.Remove("TiempoMuerto")
- Dt.Columns.Remove("SPD")
- Dt.Columns.Remove("Lng")
- Dt.Columns.Remove("PWR_VOLT")
- Dt.Columns.Remove("H_METER")
- Dt.Columns.Remove("Posicion")
- Dt.Columns.Remove("CRS")
-
- Dt.Columns("Vehiculo").SetOrdinal(0)
- Dt.Columns("Vehiculo").ColumnName = "Vehículo"
- Dt.Columns("Direccion").SetOrdinal(Dt.Columns.Count - 1)
-
- Dt.Columns("Direccion").ColumnName = "Dirección"
- Dt.Columns("Lat").ColumnName = "Latitud"
- Dt.Columns("Lon").ColumnName = "Longitud"
-
- Dim item = FileExcel.Worksheets.Add(Dt.TableName)
- item.InsertDataTable(Dt, New InsertDataTableOptions() With
- {
- .ColumnHeaders = True,
- .StartRow = 0,
- .StartColumn = 0
- })
- item.Rows(0).Style.FillPattern.SetPattern(FillPatternStyle.Solid, SpreadsheetColor.FromArgb(75, 119, 190), SpreadsheetColor.FromArgb(255, 255, 255))
- item.Rows(0).Style.Font.Color = SpreadsheetColor.FromArgb(255, 255, 255)
-
- Dim columnCount = item.CalculateMaxUsedColumns()
- For i = 0 To columnCount
- item.Columns(i).AutoFit(1, item.Rows(i), item.Rows(item.Rows.Count - 1))
- Next
-
- Next
- FileExcel.Save(Retorno, SaveOptions.XlsxDefault)
- If DataSet IsNot Nothing Then
- DataSet.Clear()
- DataSet.Dispose()
- End If
- Return Retorno.ToArray()
+ End If
+
+ Retorno = StreamPDFCrystal(Liga, DataSource, RptParametro, NombreReporte, "PDF")
+ Catch ex As Exception
+ GuardaLog(String.Format("Ocurrio un error al generar el reporte RLDC {0}", ex))
+ End Try
+ Return Retorno
+ End Function
+ Private Function GenerarReporteHistoricoExcel(DataSource As DataSet, Liga As String, FechaI As DateTime, FechaF As DateTime, Correos As String, NombreReporte As String) As Byte()
+ Dim Retorno As New MemoryStream()
+ SpreadsheetInfo.SetLicense(ModExtensiones.SerialGemBoxSpreadsheet)
+
+ Dim FileExcel As ExcelFile = New ExcelFile
+ For Each Dt As DataTable In DataSource.Tables
+
+ Dt.Columns.Remove("CveTrama")
+ Dt.Columns.Remove("CveDispositivo")
+ Dt.Columns.Remove("LatLng")
+ Dt.Columns.Remove("NoEconomico")
+ Dt.Columns.Remove("DevID")
+ Dt.Columns.Remove("KMRecorridos")
+ Dt.Columns.Remove("TiempoMuerto")
+ Dt.Columns.Remove("SPD")
+ Dt.Columns.Remove("Lng")
+ Dt.Columns.Remove("PWR_VOLT")
+ Dt.Columns.Remove("H_METER")
+ Dt.Columns.Remove("Posicion")
+ Dt.Columns.Remove("CRS")
+
+ Dt.Columns("Vehiculo").SetOrdinal(0)
+ Dt.Columns("Vehiculo").ColumnName = "Vehículo"
+ Dt.Columns("Direccion").SetOrdinal(Dt.Columns.Count - 1)
+
+ Dt.Columns("Direccion").ColumnName = "Dirección"
+ Dt.Columns("Lat").ColumnName = "Latitud"
+ Dt.Columns("Lon").ColumnName = "Longitud"
+
+ Dim item = FileExcel.Worksheets.Add(Dt.TableName)
+ item.InsertDataTable(Dt, New InsertDataTableOptions() With
+ {
+ .ColumnHeaders = True,
+ .StartRow = 0,
+ .StartColumn = 0
+ })
+ item.Rows(0).Style.FillPattern.SetPattern(FillPatternStyle.Solid, SpreadsheetColor.FromArgb(75, 119, 190), SpreadsheetColor.FromArgb(255, 255, 255))
+ item.Rows(0).Style.Font.Color = SpreadsheetColor.FromArgb(255, 255, 255)
+
+ Dim columnCount = item.CalculateMaxUsedColumns()
+ For i = 0 To columnCount
+ item.Columns(i).AutoFit(1, item.Rows(i), item.Rows(item.Rows.Count - 1))
+ Next
+
+ Next
+ FileExcel.Save(Retorno, SaveOptions.XlsxDefault)
+ If DataSet IsNot Nothing Then
+ DataSet.Clear()
+ DataSet.Dispose()
+ End If
+ Return Retorno.ToArray()
End Function
- Private Function GenerarReporteIgnicion(DataSource As DataTable, Liga As String, FechaI As DateTime, FechaF As DateTime, Correos As String, NombreReporte As String) As Byte()
- Dim Retorno As Byte() = Nothing
- Try
+ Private Function GenerarReporteIgnicion(DataSource As DataTable, Liga As String, FechaI As DateTime, FechaF As DateTime, Correos As String, NombreReporte As String) As Byte()
+ Dim Retorno As Byte() = Nothing
+ Try
Dim RptParametro As New List(Of ReportParameter)
- RptParametro.Add(New ReportParameter("FechaInicio", FechaI.ToString))
- RptParametro.Add(New ReportParameter("FechaFin", FechaF.ToString))
- RptParametro.Add(New ReportParameter("UsuarioImprimio", Correos))
- RptParametro.Add(New ReportParameter("FechaImpresion", ClsPaginas.NowADS().ToShortDateString))
-
- Retorno = StreamPDF(Liga, DataSource, RptParametro, "ReporteIgnicion", "PDF", MR:=Nothing, RDSName:="DsOC")
- Catch ex As Exception
- GuardaLog(String.Format("Ocurrio un error al generar el reporte RLDC {0}", ex))
- End Try
- Return Retorno
- End Function
-
- Private Function GenerarReporteIgnicionExcel(DataSource As DataSet, Liga As String, FechaI As DateTime, FechaF As DateTime, Correos As String, NombreReporte As String) As Byte()
- Dim Retorno As New MemoryStream()
- SpreadsheetInfo.SetLicense(ModExtensiones.SerialGemBoxSpreadsheet)
-
- Dim FileExcel As ExcelFile = New ExcelFile
- For Each Dt As DataTable In DataSource.Tables
-
- Dt.Columns.Remove("CveDispositivo")
- Dt.Columns.Remove("CveTramaEncendido")
- Dt.Columns.Remove("CveTramaApagado")
-
- Dt.Columns("Vehiculo").SetOrdinal(0)
+ RptParametro.Add(New ReportParameter("FechaInicio", FechaI.ToString))
+ RptParametro.Add(New ReportParameter("FechaFin", FechaF.ToString))
+ RptParametro.Add(New ReportParameter("UsuarioImprimio", Correos))
+ RptParametro.Add(New ReportParameter("FechaImpresion", ClsPaginas.NowADS().ToShortDateString))
+
+ Retorno = StreamPDF(Liga, DataSource, RptParametro, "ReporteIgnicion", "PDF", MR:=Nothing, RDSName:="DsOC")
+ Catch ex As Exception
+ GuardaLog(String.Format("Ocurrio un error al generar el reporte RLDC {0}", ex))
+ End Try
+ Return Retorno
+ End Function
+
+ Private Function GenerarReporteIgnicionExcel(DataSource As DataSet, Liga As String, FechaI As DateTime, FechaF As DateTime, Correos As String, NombreReporte As String) As Byte()
+ Dim Retorno As New MemoryStream()
+ SpreadsheetInfo.SetLicense(ModExtensiones.SerialGemBoxSpreadsheet)
+
+ Dim FileExcel As ExcelFile = New ExcelFile
+ For Each Dt As DataTable In DataSource.Tables
+
+ Dt.Columns.Remove("CveDispositivo")
+ Dt.Columns.Remove("CveTramaEncendido")
+ Dt.Columns.Remove("CveTramaApagado")
+
+ Dt.Columns("Vehiculo").SetOrdinal(0)
Dt.Columns("Vehiculo").ColumnName = "Vehículo"
- Dt.Columns("VMedia").ColumnName = "Velocidad Media"
+ Dt.Columns("VMedia").ColumnName = "Velocidad Media"
Dt.Columns("VMax").ColumnName = "Velocidad Maxima"
Dt.Columns("FechaEncendido").ColumnName = "Fecha Encendido"
@@ -1060,384 +1060,384 @@ Public Class ClsSisNotificaciones
Dt.Columns("DireccionFinal").SetOrdinal(Dt.Columns.Count - 1)
Dt.Columns("DireccionFinal").ColumnName = "Dirección Final"
- Dim item = FileExcel.Worksheets.Add(Dt.TableName)
- item.InsertDataTable(Dt, New InsertDataTableOptions() With
- {
- .ColumnHeaders = True,
- .StartRow = 0,
- .StartColumn = 0
- })
- item.Rows(0).Style.FillPattern.SetPattern(FillPatternStyle.Solid, SpreadsheetColor.FromArgb(75, 119, 190), SpreadsheetColor.FromArgb(255, 255, 255))
- item.Rows(0).Style.Font.Color = SpreadsheetColor.FromArgb(255, 255, 255)
-
- Dim columnCount = item.CalculateMaxUsedColumns()
- For i = 0 To columnCount
- item.Columns(i).AutoFit(1, item.Rows(i), item.Rows(item.Rows.Count - 1))
- Next
-
- Next
- FileExcel.Save(Retorno, SaveOptions.XlsxDefault)
- If DataSet IsNot Nothing Then
- DataSet.Clear()
- DataSet.Dispose()
- End If
- Return Retorno.ToArray()
+ Dim item = FileExcel.Worksheets.Add(Dt.TableName)
+ item.InsertDataTable(Dt, New InsertDataTableOptions() With
+ {
+ .ColumnHeaders = True,
+ .StartRow = 0,
+ .StartColumn = 0
+ })
+ item.Rows(0).Style.FillPattern.SetPattern(FillPatternStyle.Solid, SpreadsheetColor.FromArgb(75, 119, 190), SpreadsheetColor.FromArgb(255, 255, 255))
+ item.Rows(0).Style.Font.Color = SpreadsheetColor.FromArgb(255, 255, 255)
+
+ Dim columnCount = item.CalculateMaxUsedColumns()
+ For i = 0 To columnCount
+ item.Columns(i).AutoFit(1, item.Rows(i), item.Rows(item.Rows.Count - 1))
+ Next
+
+ Next
+ FileExcel.Save(Retorno, SaveOptions.XlsxDefault)
+ If DataSet IsNot Nothing Then
+ DataSet.Clear()
+ DataSet.Dispose()
+ End If
+ Return Retorno.ToArray()
End Function
-
- Private Function GenerarReporteTiempoMuerto(DataSource As DataTable, Liga As String, FechaI As DateTime, FechaF As DateTime, Correos As String, NombreReporte As String) As Byte()
- Dim Retorno As Byte() = Nothing
- Try
- Dim RptParametro As New List(Of CrystalParametro)
- RptParametro.Add(New CrystalParametro("FechaInicio", FechaI.ToString))
- RptParametro.Add(New CrystalParametro("FechaFin", FechaF.ToString))
- RptParametro.Add(New CrystalParametro("UsuarioImprimio", Correos))
- RptParametro.Add(New CrystalParametro("FechaImpresion", ClsPaginas.NowADS().ToShortDateString))
- RptParametro.Add(New CrystalParametro("TiempoMuerto", "10 Min"))
-
- Retorno = StreamPDFCrystal(Liga, DataSource, RptParametro, NombreReporte, "PDF")
- Catch ex As Exception
- GuardaLog(String.Format("Ocurrio un error al generar el reporte RLDC {0}", ex))
- End Try
- Return Retorno
- End Function
- Private Function GenerarReporteTiempoMuertoExcel(DataSource As DataTable, FechaI As DateTime, FechaF As DateTime, Correos As String) As Byte()
- Dim Retorno As New MemoryStream()
- SpreadsheetInfo.SetLicense(ModExtensiones.SerialGemBoxSpreadsheet)
-
- Dim FileExcel As ExcelFile = New ExcelFile
- For Each Row As DataRow In DataSource.Rows
- Dim Dt = GenerarDTTiempoMuerto(Row)
-
- Dim item = FileExcel.Worksheets.Add(Dt.TableName)
- item.InsertDataTable(Dt, New InsertDataTableOptions() With
- {
- .ColumnHeaders = True,
- .StartRow = 0,
- .StartColumn = 0
- })
- item.Rows(0).Style.FillPattern.SetPattern(FillPatternStyle.Solid, SpreadsheetColor.FromArgb(75, 119, 190), SpreadsheetColor.FromArgb(255, 255, 255))
- item.Rows(0).Style.Font.Color = SpreadsheetColor.FromArgb(255, 255, 255)
-
- Dim columnCount = item.CalculateMaxUsedColumns()
- For i = 0 To columnCount
- item.Columns(i).AutoFit(1, item.Rows(i), item.Rows(item.Rows.Count - 1))
- Next
-
- Next
- FileExcel.Save(Retorno, SaveOptions.XlsxDefault)
-
- Return Retorno.ToArray()
- End Function
- Private Function GenerarReporteRalenti(DataSource As DataTable, Liga As String, FechaI As DateTime, FechaF As DateTime, Correos As String) As Byte()
- Dim Retorno As Byte() = Nothing
- If DataSource IsNot Nothing AndAlso DataSource.Rows.Count > 0 Then
- Try
- Dim RptParametro As New List(Of ReportParameter)
- RptParametro.Add(New ReportParameter("FechaInicio", FechaI.ToShortDateString))
- RptParametro.Add(New ReportParameter("FechaFin", FechaF.ToShortDateString))
- RptParametro.Add(New ReportParameter("UsuarioImprimio", Correos))
- RptParametro.Add(New ReportParameter("FechaImpresion", ClsPaginas.NowADS().ToShortDateString))
-
- Retorno = StreamPDF(Liga, DataSource, RptParametro, "ReporteRalenti", "PDF", MR:=Nothing, RDSName:="DsOC")
- Catch ex As Exception
- GuardaLog(String.Format("Ocurrio un error al generar el reporte RLDC {0}", ex))
- End Try
- Else
- Alert("No se pudo imprimir el pdf, ya que no se ha hecho una consulta, o ésta no arrojó resultados.", TipoMensaje.MsgInformacion)
- End If
- Return Retorno
- End Function
- Private Function GenerarReporteRalentiExcel(DtDispositivos As DataTable, DataSource As DataTable, FechaI As DateTime, FechaF As DateTime, Correos As String) As Byte()
- Dim Retorno As New MemoryStream()
- SpreadsheetInfo.SetLicense(ModExtensiones.SerialGemBoxSpreadsheet)
-
- Dim FileExcel As ExcelFile = New ExcelFile
-
- For Each Dr As DataRow In DtDispositivos.Rows
- Dim CveDispositivo As Integer = Dr("CveDispositivo").ToString().ToEntero()
- Dim NombreVehiculo = Dr("NombreVehiculo").ToString()
- Dim FilterRows = DataSource.FiltraParametros($"CveDispositivo = {CveDispositivo}")
-
- Dim Dt = GenerarDTRalenti(NombreVehiculo, FilterRows)
- Dim item = FileExcel.Worksheets.Add(Dt.TableName)
- item.InsertDataTable(Dt, New InsertDataTableOptions() With
- {
- .ColumnHeaders = True,
- .StartRow = 0,
- .StartColumn = 0
- })
- item.Rows(0).Style.FillPattern.SetPattern(FillPatternStyle.Solid, SpreadsheetColor.FromArgb(75, 119, 190), SpreadsheetColor.FromArgb(255, 255, 255))
- item.Rows(0).Style.Font.Color = SpreadsheetColor.FromArgb(255, 255, 255)
-
- Dim columnCount = item.CalculateMaxUsedColumns()
- For i = 0 To columnCount
- item.Columns(i).AutoFit(1, item.Rows(i), item.Rows(item.Rows.Count - 1))
- Next
-
- Next
- FileExcel.Save(Retorno, SaveOptions.XlsxDefault)
-
- Return Retorno.ToArray()
- End Function
- Private Function GenerarReporteEventos(DataSource As DataTable, Liga As String, FechaI As DateTime, FechaF As DateTime, Correos As String) As Byte()
- Dim Retorno As Byte() = Nothing
- If DataSource IsNot Nothing Then
- Try
- Dim RptParametro As New List(Of CrystalParametro)
- RptParametro.Add(New CrystalParametro("FechaInicio", FechaI.ToString))
- RptParametro.Add(New CrystalParametro("FechaFin", FechaF.ToString))
- RptParametro.Add(New CrystalParametro("UsuarioImprimio", Correos))
- RptParametro.Add(New CrystalParametro("FechaImpresion", ClsPaginas.NowADS().ToShortDateString))
-
- Retorno = StreamPDFCrystal(Liga, DataSource, RptParametro, "ReporteEvento", "PDF")
- Catch ex As Exception
- GuardaLog(String.Format("Ocurrio un error al generar el reporte RLDC {0}", ex))
- End Try
- Else
- Alert("No se pudo imprimir el pdf, ya que no se ha hecho una consulta, o ésta no arrojó resultados.", TipoMensaje.MsgInformacion)
- End If
- Return Retorno
- End Function
- Private Function GenerarReporteEventosExcel(DtDispositivos As DataTable, DataSource As DataTable, FechaI As DateTime, FechaF As DateTime, Correos As String) As Byte()
- Dim Retorno As New MemoryStream()
- SpreadsheetInfo.SetLicense(ModExtensiones.SerialGemBoxSpreadsheet)
-
- Dim FileExcel As ExcelFile = New ExcelFile
- 'Dim DtDispositivos As DataTable = DataSource.FiltraParametros("", "", {"CveDispositivo", "Unidad"})
-
- For Each Dr As DataRow In DtDispositivos.Rows
- Dim CveDispositivo As Integer = Dr("CveDispositivo").ToString().ToEntero()
- Dim NombreVehiculo = Dr("NombreVehiculo").ToString()
- Dim FilterRows = DataSource.FiltraParametros($"CveDispositivo = {CveDispositivo}")
-
- Dim Dt = GenerarDTEventos(NombreVehiculo, FilterRows)
- Dim item = FileExcel.Worksheets.Add(Dt.TableName)
- item.InsertDataTable(Dt, New InsertDataTableOptions() With
- {
- .ColumnHeaders = True,
- .StartRow = 0,
- .StartColumn = 0
- })
- item.Rows(0).Style.FillPattern.SetPattern(FillPatternStyle.Solid, SpreadsheetColor.FromArgb(75, 119, 190), SpreadsheetColor.FromArgb(255, 255, 255))
- item.Rows(0).Style.Font.Color = SpreadsheetColor.FromArgb(255, 255, 255)
-
- Dim columnCount = item.CalculateMaxUsedColumns()
- For i = 0 To columnCount
- item.Columns(i).AutoFit(1, item.Rows(i), item.Rows(item.Rows.Count - 1))
- Next
-
- Next
- FileExcel.Save(Retorno, SaveOptions.XlsxDefault)
- If DtDispositivos IsNot Nothing Then
- DtDispositivos.Clear()
- DtDispositivos.Dispose()
- End If
- Return Retorno.ToArray()
- End Function
- Private Function GenerarReporteGeocercas(DataSource As DataTable, Liga As String, FechaI As DateTime, FechaF As DateTime, Correos As String) As Byte()
- Dim Retorno As Byte() = Nothing
- If DataSource IsNot Nothing AndAlso DataSource.Rows.Count > 0 Then
- Try
- Dim RptParametro As New List(Of ReportParameter)
- RptParametro.Add(New ReportParameter("FechaInicio", FechaI.ToShortDateString))
- RptParametro.Add(New ReportParameter("FechaFin", FechaF.ToShortDateString))
- RptParametro.Add(New ReportParameter("UsuarioImprimio", Correos))
- RptParametro.Add(New ReportParameter("MapaURL", ""))
- RptParametro.Add(New ReportParameter("FechaImpresion", ClsPaginas.NowADS().ToShortDateString))
-
- Retorno = StreamPDF(Liga, DataSource, RptParametro, "ReporteGeoReferencias", "PDF", MR:=Nothing, RDSName:="DsOC")
- Catch ex As Exception
- GuardaLog(String.Format("Ocurrio un error al generar el reporte RLDC {0}", ex))
- End Try
- Else
- Alert("No se pudo imprimir el pdf, ya que no se ha hecho una consulta, o ésta no arrojó resultados.", TipoMensaje.MsgInformacion)
- End If
- Return Retorno
- End Function
- Private Function GenerarReportePuntosInteres(DataSource As DataTable, Liga As String, FechaI As DateTime, FechaF As DateTime, Correos As String) As Byte()
- Dim Retorno As Byte() = Nothing
- If DataSource IsNot Nothing AndAlso DataSource.Rows.Count > 0 Then
- Try
- Dim RptParametro As New List(Of ReportParameter)
- RptParametro.Add(New ReportParameter("FechaInicio", FechaI.ToShortDateString))
- RptParametro.Add(New ReportParameter("FechaFin", FechaF.ToShortDateString))
- RptParametro.Add(New ReportParameter("UsuarioImprimio", Correos))
- RptParametro.Add(New ReportParameter("MapaURL", ""))
- RptParametro.Add(New ReportParameter("FechaImpresion", ClsPaginas.NowADS().ToShortDateString))
-
- Retorno = StreamPDF(Liga, DataSource, RptParametro, "ReportePuntosInteres", "PDF", MR:=Nothing, RDSName:="DsOC")
- Catch ex As Exception
- GuardaLog(String.Format("Ocurrio un error al generar el reporte RLDC {0}", ex))
- End Try
- Else
- Alert("No se pudo imprimir el pdf, ya que no se ha hecho una consulta, o ésta no arrojó resultados.", TipoMensaje.MsgInformacion)
- End If
- Return Retorno
- End Function
- Private Function GenerarReporteGeocercasExcel(DataSource As DataTable, FechaI As DateTime, FechaF As DateTime, Correos As String) As Byte()
- Dim Retorno As New MemoryStream()
- SpreadsheetInfo.SetLicense(ModExtensiones.SerialGemBoxSpreadsheet)
-
- Dim FileExcel As ExcelFile = New ExcelFile
- Dim DtDispositivos As DataTable = DataSource.FiltraParametros("", "", {"CveDispositivo", "Unidad"})
- Dim CveDispositivo As Integer = -1
- Dim NombreVehiculo As String
- For Each Dr As DataRow In DtDispositivos.Rows
- CveDispositivo = Dr("CveDispositivo").ToString().ToEntero()
- NombreVehiculo = Dr("Unidad").ToString()
-
- Dim FilterRows = DataSource.FiltraParametros($"CveDispositivo = {CveDispositivo}")
- Dim Dt = GenerarDTGeocercas(NombreVehiculo, FilterRows)
- Dim item = FileExcel.Worksheets.Add(Dt.TableName)
- item.InsertDataTable(Dt, New InsertDataTableOptions() With
- {
- .ColumnHeaders = True,
- .StartRow = 0,
- .StartColumn = 0
- })
- item.Rows(0).Style.FillPattern.SetPattern(FillPatternStyle.Solid, SpreadsheetColor.FromArgb(75, 119, 190), SpreadsheetColor.FromArgb(255, 255, 255))
- item.Rows(0).Style.Font.Color = SpreadsheetColor.FromArgb(255, 255, 255)
-
- Dim columnCount = item.CalculateMaxUsedColumns()
- For i = 0 To columnCount
- item.Columns(i).AutoFit(1, item.Rows(i), item.Rows(item.Rows.Count - 1))
- Next
-
- Next
- FileExcel.Save(Retorno, SaveOptions.XlsxDefault)
- If DtDispositivos IsNot Nothing Then
- DtDispositivos.Clear()
- DtDispositivos.Dispose()
- End If
- Return Retorno.ToArray()
- End Function
- Private Function GenerarReportePuntosDeInteresExcel(DataSource As DataTable, FechaI As DateTime, FechaF As DateTime, Correos As String) As Byte()
- Dim Retorno As New MemoryStream()
- SpreadsheetInfo.SetLicense(ModExtensiones.SerialGemBoxSpreadsheet)
-
- Dim FileExcel As ExcelFile = New ExcelFile
- Dim DtDispositivos As DataTable = DataSource.FiltraParametros("", "", {"CveDispositivo", "Unidad"})
- Dim CveDispositivo As Integer = -1
- Dim NombreVehiculo As String
- For Each Dr As DataRow In DtDispositivos.Rows
- CveDispositivo = Dr("CveDispositivo").ToString().ToEntero()
- NombreVehiculo = Dr("Unidad").ToString()
-
- Dim FilterRows = DataSource.FiltraParametros($"CveDispositivo = {CveDispositivo}")
- Dim Dt = GenerarDTPuntosInteres(NombreVehiculo, FilterRows)
- Dim item = FileExcel.Worksheets.Add(Dt.TableName)
- item.InsertDataTable(Dt, New InsertDataTableOptions() With
- {
- .ColumnHeaders = True,
- .StartRow = 0,
- .StartColumn = 0
- })
- item.Rows(0).Style.FillPattern.SetPattern(FillPatternStyle.Solid, SpreadsheetColor.FromArgb(75, 119, 190), SpreadsheetColor.FromArgb(255, 255, 255))
- item.Rows(0).Style.Font.Color = SpreadsheetColor.FromArgb(255, 255, 255)
-
- Dim columnCount = item.CalculateMaxUsedColumns()
- For i = 0 To columnCount
- item.Columns(i).AutoFit(1, item.Rows(i), item.Rows(item.Rows.Count - 1))
- Next
-
- Next
- FileExcel.Save(Retorno, SaveOptions.XlsxDefault)
-
- If DtDispositivos IsNot Nothing Then
- DtDispositivos.Clear()
- DtDispositivos.Dispose()
- End If
-
- Return Retorno.ToArray()
- End Function
-
- Private Function GenerarDTUltimaPosicion(Unidad As String, rows As DataTable) As DataTable
- Dim dt As New DataTable(Unidad)
-
- dt.Columns.Add("Vehículo", Type.GetType("System.String"))
- dt.Columns.Add("Fecha", Type.GetType("System.DateTime"))
- dt.Columns.Add("Tiempo Detenido", Type.GetType("System.String"))
- dt.Columns.Add("Latitud", Type.GetType("System.Double"))
- dt.Columns.Add("Longitud", Type.GetType("System.Double"))
- dt.Columns.Add("Conductor", Type.GetType("System.String"))
- dt.Columns.Add("Dirección", Type.GetType("System.String"))
-
- For Each Row As DataRow In rows.Rows
- Dim dr = dt.NewRow()
- dr("Vehículo") = Row("Vehiculo").ToString()
- dr("Fecha") = Row("FechaTrama").ToString().ToDateTime()
- dr("Tiempo Detenido") = Row("TiempoDetenido").ToString()
- dr("Latitud") = Row("Lat").ToString().ToDouble()
- dr("Longitud") = Row("Lon").ToString().ToDouble()
- dr("Conductor") = Row("Conductor").ToString()
- dr("Dirección") = Row("Direccion").ToString()
-
- dt.Rows.Add(dr)
- Next
- Return dt
-
- End Function
- Private Function GenerarDTTiempoMuerto(row As DataRow) As DataTable
- Dim dt As New DataTable(row("Unidad").ToString())
-
- dt.Columns.Add("Unidad", Type.GetType("System.String"))
- dt.Columns.Add("Fecha", Type.GetType("System.DateTime"))
- dt.Columns.Add("Tiempo Detenido", Type.GetType("System.String"))
- dt.Columns.Add("Latitud", Type.GetType("System.Double"))
- dt.Columns.Add("Longitud", Type.GetType("System.Double"))
- dt.Columns.Add("Conductor", Type.GetType("System.String"))
- dt.Columns.Add("Dirección", Type.GetType("System.String"))
-
- Dim dr = dt.NewRow()
- dr("Unidad") = row("Unidad").ToString()
- dr("Fecha") = row("Fecha").ToString().ToDateTime()
- dr("Tiempo Detenido") = row("TiempoDetenido").ToString()
- dr("Latitud") = row("Lat").ToString().ToDouble()
- dr("Longitud") = row("Lon").ToString().ToDouble()
- dr("Conductor") = row("Conductor").ToString()
- dr("Dirección") = row("Direccion").ToString()
-
- dt.Rows.Add(dr)
- Return dt
-
- End Function
- Private Function GenerarDTRalenti(Unidad As String, rows As DataTable) As DataTable
- Dim dt As New DataTable(Unidad)
-
- dt.Columns.Add("Vehículo", Type.GetType("System.String"))
- dt.Columns.Add("Fecha", Type.GetType("System.DateTime"))
- dt.Columns.Add("Tiempo Detenido", Type.GetType("System.String"))
- dt.Columns.Add("Latitud", Type.GetType("System.Double"))
- dt.Columns.Add("Longitud", Type.GetType("System.Double"))
- dt.Columns.Add("Conductor", Type.GetType("System.String"))
- dt.Columns.Add("Dirección", Type.GetType("System.String"))
-
- For Each Row As DataRow In rows.Rows
- Dim dr = dt.NewRow()
- dr("Vehículo") = Row("Unidad").ToString()
- dr("Fecha") = Row("Fecha").ToString().ToDateTime()
- dr("Tiempo Detenido") = Row("TiempoDetenido").ToString()
- dr("Latitud") = Row("Lat").ToString().ToDouble()
- dr("Longitud") = Row("Lon").ToString().ToDouble()
- dr("Conductor") = Row("Conductor").ToString()
- dr("Dirección") = Row("Direccion").ToString()
-
- dt.Rows.Add(dr)
- Next
- Return dt
-
- End Function
- Private Function GenerarDTEventos(Unidad As String, rows As DataTable) As DataTable
- Dim dt As New DataTable(Unidad)
-
- dt.Columns.Add("Vehículo", Type.GetType("System.String"))
- dt.Columns.Add("Fecha", Type.GetType("System.DateTime"))
- dt.Columns.Add("Evento", Type.GetType("System.String"))
- dt.Columns.Add("Latitud", Type.GetType("System.Double"))
- dt.Columns.Add("Longitud", Type.GetType("System.Double"))
- dt.Columns.Add("Conductor", Type.GetType("System.String"))
- dt.Columns.Add("Dirección", Type.GetType("System.String"))
-
+
+ Private Function GenerarReporteTiempoMuerto(DataSource As DataTable, Liga As String, FechaI As DateTime, FechaF As DateTime, Correos As String, NombreReporte As String) As Byte()
+ Dim Retorno As Byte() = Nothing
+ Try
+ Dim RptParametro As New List(Of CrystalParametro)
+ RptParametro.Add(New CrystalParametro("FechaInicio", FechaI.ToString))
+ RptParametro.Add(New CrystalParametro("FechaFin", FechaF.ToString))
+ RptParametro.Add(New CrystalParametro("UsuarioImprimio", Correos))
+ RptParametro.Add(New CrystalParametro("FechaImpresion", ClsPaginas.NowADS().ToShortDateString))
+ RptParametro.Add(New CrystalParametro("TiempoMuerto", "10 Min"))
+
+ Retorno = StreamPDFCrystal(Liga, DataSource, RptParametro, NombreReporte, "PDF")
+ Catch ex As Exception
+ GuardaLog(String.Format("Ocurrio un error al generar el reporte RLDC {0}", ex))
+ End Try
+ Return Retorno
+ End Function
+ Private Function GenerarReporteTiempoMuertoExcel(DataSource As DataTable, FechaI As DateTime, FechaF As DateTime, Correos As String) As Byte()
+ Dim Retorno As New MemoryStream()
+ SpreadsheetInfo.SetLicense(ModExtensiones.SerialGemBoxSpreadsheet)
+
+ Dim FileExcel As ExcelFile = New ExcelFile
+ For Each Row As DataRow In DataSource.Rows
+ Dim Dt = GenerarDTTiempoMuerto(Row)
+
+ Dim item = FileExcel.Worksheets.Add(Dt.TableName)
+ item.InsertDataTable(Dt, New InsertDataTableOptions() With
+ {
+ .ColumnHeaders = True,
+ .StartRow = 0,
+ .StartColumn = 0
+ })
+ item.Rows(0).Style.FillPattern.SetPattern(FillPatternStyle.Solid, SpreadsheetColor.FromArgb(75, 119, 190), SpreadsheetColor.FromArgb(255, 255, 255))
+ item.Rows(0).Style.Font.Color = SpreadsheetColor.FromArgb(255, 255, 255)
+
+ Dim columnCount = item.CalculateMaxUsedColumns()
+ For i = 0 To columnCount
+ item.Columns(i).AutoFit(1, item.Rows(i), item.Rows(item.Rows.Count - 1))
+ Next
+
+ Next
+ FileExcel.Save(Retorno, SaveOptions.XlsxDefault)
+
+ Return Retorno.ToArray()
+ End Function
+ Private Function GenerarReporteRalenti(DataSource As DataTable, Liga As String, FechaI As DateTime, FechaF As DateTime, Correos As String) As Byte()
+ Dim Retorno As Byte() = Nothing
+ If DataSource IsNot Nothing AndAlso DataSource.Rows.Count > 0 Then
+ Try
+ Dim RptParametro As New List(Of ReportParameter)
+ RptParametro.Add(New ReportParameter("FechaInicio", FechaI.ToShortDateString))
+ RptParametro.Add(New ReportParameter("FechaFin", FechaF.ToShortDateString))
+ RptParametro.Add(New ReportParameter("UsuarioImprimio", Correos))
+ RptParametro.Add(New ReportParameter("FechaImpresion", ClsPaginas.NowADS().ToShortDateString))
+
+ Retorno = StreamPDF(Liga, DataSource, RptParametro, "ReporteRalenti", "PDF", MR:=Nothing, RDSName:="DsOC")
+ Catch ex As Exception
+ GuardaLog(String.Format("Ocurrio un error al generar el reporte RLDC {0}", ex))
+ End Try
+ Else
+ Alert("No se pudo imprimir el pdf, ya que no se ha hecho una consulta, o ésta no arrojó resultados.", TipoMensaje.MsgInformacion)
+ End If
+ Return Retorno
+ End Function
+ Private Function GenerarReporteRalentiExcel(DtDispositivos As DataTable, DataSource As DataTable, FechaI As DateTime, FechaF As DateTime, Correos As String) As Byte()
+ Dim Retorno As New MemoryStream()
+ SpreadsheetInfo.SetLicense(ModExtensiones.SerialGemBoxSpreadsheet)
+
+ Dim FileExcel As ExcelFile = New ExcelFile
+
+ For Each Dr As DataRow In DtDispositivos.Rows
+ Dim CveDispositivo As Integer = Dr("CveDispositivo").ToString().ToEntero()
+ Dim NombreVehiculo = Dr("NombreVehiculo").ToString()
+ Dim FilterRows = DataSource.FiltraParametros($"CveDispositivo = {CveDispositivo}")
+
+ Dim Dt = GenerarDTRalenti(NombreVehiculo, FilterRows)
+ Dim item = FileExcel.Worksheets.Add(Dt.TableName)
+ item.InsertDataTable(Dt, New InsertDataTableOptions() With
+ {
+ .ColumnHeaders = True,
+ .StartRow = 0,
+ .StartColumn = 0
+ })
+ item.Rows(0).Style.FillPattern.SetPattern(FillPatternStyle.Solid, SpreadsheetColor.FromArgb(75, 119, 190), SpreadsheetColor.FromArgb(255, 255, 255))
+ item.Rows(0).Style.Font.Color = SpreadsheetColor.FromArgb(255, 255, 255)
+
+ Dim columnCount = item.CalculateMaxUsedColumns()
+ For i = 0 To columnCount
+ item.Columns(i).AutoFit(1, item.Rows(i), item.Rows(item.Rows.Count - 1))
+ Next
+
+ Next
+ FileExcel.Save(Retorno, SaveOptions.XlsxDefault)
+
+ Return Retorno.ToArray()
+ End Function
+ Private Function GenerarReporteEventos(DataSource As DataTable, Liga As String, FechaI As DateTime, FechaF As DateTime, Correos As String) As Byte()
+ Dim Retorno As Byte() = Nothing
+ If DataSource IsNot Nothing Then
+ Try
+ Dim RptParametro As New List(Of CrystalParametro)
+ RptParametro.Add(New CrystalParametro("FechaInicio", FechaI.ToString))
+ RptParametro.Add(New CrystalParametro("FechaFin", FechaF.ToString))
+ RptParametro.Add(New CrystalParametro("UsuarioImprimio", Correos))
+ RptParametro.Add(New CrystalParametro("FechaImpresion", ClsPaginas.NowADS().ToShortDateString))
+
+ Retorno = StreamPDFCrystal(Liga, DataSource, RptParametro, "ReporteEvento", "PDF")
+ Catch ex As Exception
+ GuardaLog(String.Format("Ocurrio un error al generar el reporte RLDC {0}", ex))
+ End Try
+ Else
+ Alert("No se pudo imprimir el pdf, ya que no se ha hecho una consulta, o ésta no arrojó resultados.", TipoMensaje.MsgInformacion)
+ End If
+ Return Retorno
+ End Function
+ Private Function GenerarReporteEventosExcel(DtDispositivos As DataTable, DataSource As DataTable, FechaI As DateTime, FechaF As DateTime, Correos As String) As Byte()
+ Dim Retorno As New MemoryStream()
+ SpreadsheetInfo.SetLicense(ModExtensiones.SerialGemBoxSpreadsheet)
+
+ Dim FileExcel As ExcelFile = New ExcelFile
+ 'Dim DtDispositivos As DataTable = DataSource.FiltraParametros("", "", {"CveDispositivo", "Unidad"})
+
+ For Each Dr As DataRow In DtDispositivos.Rows
+ Dim CveDispositivo As Integer = Dr("CveDispositivo").ToString().ToEntero()
+ Dim NombreVehiculo = Dr("NombreVehiculo").ToString()
+ Dim FilterRows = DataSource.FiltraParametros($"CveDispositivo = {CveDispositivo}")
+
+ Dim Dt = GenerarDTEventos(NombreVehiculo, FilterRows)
+ Dim item = FileExcel.Worksheets.Add(Dt.TableName)
+ item.InsertDataTable(Dt, New InsertDataTableOptions() With
+ {
+ .ColumnHeaders = True,
+ .StartRow = 0,
+ .StartColumn = 0
+ })
+ item.Rows(0).Style.FillPattern.SetPattern(FillPatternStyle.Solid, SpreadsheetColor.FromArgb(75, 119, 190), SpreadsheetColor.FromArgb(255, 255, 255))
+ item.Rows(0).Style.Font.Color = SpreadsheetColor.FromArgb(255, 255, 255)
+
+ Dim columnCount = item.CalculateMaxUsedColumns()
+ For i = 0 To columnCount
+ item.Columns(i).AutoFit(1, item.Rows(i), item.Rows(item.Rows.Count - 1))
+ Next
+
+ Next
+ FileExcel.Save(Retorno, SaveOptions.XlsxDefault)
+ If DtDispositivos IsNot Nothing Then
+ DtDispositivos.Clear()
+ DtDispositivos.Dispose()
+ End If
+ Return Retorno.ToArray()
+ End Function
+ Private Function GenerarReporteGeocercas(DataSource As DataTable, Liga As String, FechaI As DateTime, FechaF As DateTime, Correos As String) As Byte()
+ Dim Retorno As Byte() = Nothing
+ If DataSource IsNot Nothing AndAlso DataSource.Rows.Count > 0 Then
+ Try
+ Dim RptParametro As New List(Of ReportParameter)
+ RptParametro.Add(New ReportParameter("FechaInicio", FechaI.ToShortDateString))
+ RptParametro.Add(New ReportParameter("FechaFin", FechaF.ToShortDateString))
+ RptParametro.Add(New ReportParameter("UsuarioImprimio", Correos))
+ RptParametro.Add(New ReportParameter("MapaURL", ""))
+ RptParametro.Add(New ReportParameter("FechaImpresion", ClsPaginas.NowADS().ToShortDateString))
+
+ Retorno = StreamPDF(Liga, DataSource, RptParametro, "ReporteGeoReferencias", "PDF", MR:=Nothing, RDSName:="DsOC")
+ Catch ex As Exception
+ GuardaLog(String.Format("Ocurrio un error al generar el reporte RLDC {0}", ex))
+ End Try
+ Else
+ Alert("No se pudo imprimir el pdf, ya que no se ha hecho una consulta, o ésta no arrojó resultados.", TipoMensaje.MsgInformacion)
+ End If
+ Return Retorno
+ End Function
+ Private Function GenerarReportePuntosInteres(DataSource As DataTable, Liga As String, FechaI As DateTime, FechaF As DateTime, Correos As String) As Byte()
+ Dim Retorno As Byte() = Nothing
+ If DataSource IsNot Nothing AndAlso DataSource.Rows.Count > 0 Then
+ Try
+ Dim RptParametro As New List(Of ReportParameter)
+ RptParametro.Add(New ReportParameter("FechaInicio", FechaI.ToShortDateString))
+ RptParametro.Add(New ReportParameter("FechaFin", FechaF.ToShortDateString))
+ RptParametro.Add(New ReportParameter("UsuarioImprimio", Correos))
+ RptParametro.Add(New ReportParameter("MapaURL", ""))
+ RptParametro.Add(New ReportParameter("FechaImpresion", ClsPaginas.NowADS().ToShortDateString))
+
+ Retorno = StreamPDF(Liga, DataSource, RptParametro, "ReportePuntosInteres", "PDF", MR:=Nothing, RDSName:="DsOC")
+ Catch ex As Exception
+ GuardaLog(String.Format("Ocurrio un error al generar el reporte RLDC {0}", ex))
+ End Try
+ Else
+ Alert("No se pudo imprimir el pdf, ya que no se ha hecho una consulta, o ésta no arrojó resultados.", TipoMensaje.MsgInformacion)
+ End If
+ Return Retorno
+ End Function
+ Private Function GenerarReporteGeocercasExcel(DataSource As DataTable, FechaI As DateTime, FechaF As DateTime, Correos As String) As Byte()
+ Dim Retorno As New MemoryStream()
+ SpreadsheetInfo.SetLicense(ModExtensiones.SerialGemBoxSpreadsheet)
+
+ Dim FileExcel As ExcelFile = New ExcelFile
+ Dim DtDispositivos As DataTable = DataSource.FiltraParametros("", "", {"CveDispositivo", "Unidad"})
+ Dim CveDispositivo As Integer = -1
+ Dim NombreVehiculo As String
+ For Each Dr As DataRow In DtDispositivos.Rows
+ CveDispositivo = Dr("CveDispositivo").ToString().ToEntero()
+ NombreVehiculo = Dr("Unidad").ToString()
+
+ Dim FilterRows = DataSource.FiltraParametros($"CveDispositivo = {CveDispositivo}")
+ Dim Dt = GenerarDTGeocercas(NombreVehiculo, FilterRows)
+ Dim item = FileExcel.Worksheets.Add(Dt.TableName)
+ item.InsertDataTable(Dt, New InsertDataTableOptions() With
+ {
+ .ColumnHeaders = True,
+ .StartRow = 0,
+ .StartColumn = 0
+ })
+ item.Rows(0).Style.FillPattern.SetPattern(FillPatternStyle.Solid, SpreadsheetColor.FromArgb(75, 119, 190), SpreadsheetColor.FromArgb(255, 255, 255))
+ item.Rows(0).Style.Font.Color = SpreadsheetColor.FromArgb(255, 255, 255)
+
+ Dim columnCount = item.CalculateMaxUsedColumns()
+ For i = 0 To columnCount
+ item.Columns(i).AutoFit(1, item.Rows(i), item.Rows(item.Rows.Count - 1))
+ Next
+
+ Next
+ FileExcel.Save(Retorno, SaveOptions.XlsxDefault)
+ If DtDispositivos IsNot Nothing Then
+ DtDispositivos.Clear()
+ DtDispositivos.Dispose()
+ End If
+ Return Retorno.ToArray()
+ End Function
+ Private Function GenerarReportePuntosDeInteresExcel(DataSource As DataTable, FechaI As DateTime, FechaF As DateTime, Correos As String) As Byte()
+ Dim Retorno As New MemoryStream()
+ SpreadsheetInfo.SetLicense(ModExtensiones.SerialGemBoxSpreadsheet)
+
+ Dim FileExcel As ExcelFile = New ExcelFile
+ Dim DtDispositivos As DataTable = DataSource.FiltraParametros("", "", {"CveDispositivo", "Unidad"})
+ Dim CveDispositivo As Integer = -1
+ Dim NombreVehiculo As String
+ For Each Dr As DataRow In DtDispositivos.Rows
+ CveDispositivo = Dr("CveDispositivo").ToString().ToEntero()
+ NombreVehiculo = Dr("Unidad").ToString()
+
+ Dim FilterRows = DataSource.FiltraParametros($"CveDispositivo = {CveDispositivo}")
+ Dim Dt = GenerarDTPuntosInteres(NombreVehiculo, FilterRows)
+ Dim item = FileExcel.Worksheets.Add(Dt.TableName)
+ item.InsertDataTable(Dt, New InsertDataTableOptions() With
+ {
+ .ColumnHeaders = True,
+ .StartRow = 0,
+ .StartColumn = 0
+ })
+ item.Rows(0).Style.FillPattern.SetPattern(FillPatternStyle.Solid, SpreadsheetColor.FromArgb(75, 119, 190), SpreadsheetColor.FromArgb(255, 255, 255))
+ item.Rows(0).Style.Font.Color = SpreadsheetColor.FromArgb(255, 255, 255)
+
+ Dim columnCount = item.CalculateMaxUsedColumns()
+ For i = 0 To columnCount
+ item.Columns(i).AutoFit(1, item.Rows(i), item.Rows(item.Rows.Count - 1))
+ Next
+
+ Next
+ FileExcel.Save(Retorno, SaveOptions.XlsxDefault)
+
+ If DtDispositivos IsNot Nothing Then
+ DtDispositivos.Clear()
+ DtDispositivos.Dispose()
+ End If
+
+ Return Retorno.ToArray()
+ End Function
+
+ Private Function GenerarDTUltimaPosicion(Unidad As String, rows As DataTable) As DataTable
+ Dim dt As New DataTable(Unidad)
+
+ dt.Columns.Add("Vehículo", Type.GetType("System.String"))
+ dt.Columns.Add("Fecha", Type.GetType("System.DateTime"))
+ dt.Columns.Add("Tiempo Detenido", Type.GetType("System.String"))
+ dt.Columns.Add("Latitud", Type.GetType("System.Double"))
+ dt.Columns.Add("Longitud", Type.GetType("System.Double"))
+ dt.Columns.Add("Conductor", Type.GetType("System.String"))
+ dt.Columns.Add("Dirección", Type.GetType("System.String"))
+
+ For Each Row As DataRow In rows.Rows
+ Dim dr = dt.NewRow()
+ dr("Vehículo") = Row("Vehiculo").ToString()
+ dr("Fecha") = Row("FechaTrama").ToString().ToDateTime()
+ dr("Tiempo Detenido") = Row("TiempoDetenido").ToString()
+ dr("Latitud") = Row("Lat").ToString().ToDouble()
+ dr("Longitud") = Row("Lon").ToString().ToDouble()
+ dr("Conductor") = Row("Conductor").ToString()
+ dr("Dirección") = Row("Direccion").ToString()
+
+ dt.Rows.Add(dr)
+ Next
+ Return dt
+
+ End Function
+ Private Function GenerarDTTiempoMuerto(row As DataRow) As DataTable
+ Dim dt As New DataTable(row("Unidad").ToString())
+
+ dt.Columns.Add("Unidad", Type.GetType("System.String"))
+ dt.Columns.Add("Fecha", Type.GetType("System.DateTime"))
+ dt.Columns.Add("Tiempo Detenido", Type.GetType("System.String"))
+ dt.Columns.Add("Latitud", Type.GetType("System.Double"))
+ dt.Columns.Add("Longitud", Type.GetType("System.Double"))
+ dt.Columns.Add("Conductor", Type.GetType("System.String"))
+ dt.Columns.Add("Dirección", Type.GetType("System.String"))
+
+ Dim dr = dt.NewRow()
+ dr("Unidad") = row("Unidad").ToString()
+ dr("Fecha") = row("Fecha").ToString().ToDateTime()
+ dr("Tiempo Detenido") = row("TiempoDetenido").ToString()
+ dr("Latitud") = row("Lat").ToString().ToDouble()
+ dr("Longitud") = row("Lon").ToString().ToDouble()
+ dr("Conductor") = row("Conductor").ToString()
+ dr("Dirección") = row("Direccion").ToString()
+
+ dt.Rows.Add(dr)
+ Return dt
+
+ End Function
+ Private Function GenerarDTRalenti(Unidad As String, rows As DataTable) As DataTable
+ Dim dt As New DataTable(Unidad)
+
+ dt.Columns.Add("Vehículo", Type.GetType("System.String"))
+ dt.Columns.Add("Fecha", Type.GetType("System.DateTime"))
+ dt.Columns.Add("Tiempo Detenido", Type.GetType("System.String"))
+ dt.Columns.Add("Latitud", Type.GetType("System.Double"))
+ dt.Columns.Add("Longitud", Type.GetType("System.Double"))
+ dt.Columns.Add("Conductor", Type.GetType("System.String"))
+ dt.Columns.Add("Dirección", Type.GetType("System.String"))
+
+ For Each Row As DataRow In rows.Rows
+ Dim dr = dt.NewRow()
+ dr("Vehículo") = Row("Unidad").ToString()
+ dr("Fecha") = Row("Fecha").ToString().ToDateTime()
+ dr("Tiempo Detenido") = Row("TiempoDetenido").ToString()
+ dr("Latitud") = Row("Lat").ToString().ToDouble()
+ dr("Longitud") = Row("Lon").ToString().ToDouble()
+ dr("Conductor") = Row("Conductor").ToString()
+ dr("Dirección") = Row("Direccion").ToString()
+
+ dt.Rows.Add(dr)
+ Next
+ Return dt
+
+ End Function
+ Private Function GenerarDTEventos(Unidad As String, rows As DataTable) As DataTable
+ Dim dt As New DataTable(Unidad)
+
+ dt.Columns.Add("Vehículo", Type.GetType("System.String"))
+ dt.Columns.Add("Fecha", Type.GetType("System.DateTime"))
+ dt.Columns.Add("Evento", Type.GetType("System.String"))
+ dt.Columns.Add("Latitud", Type.GetType("System.Double"))
+ dt.Columns.Add("Longitud", Type.GetType("System.Double"))
+ dt.Columns.Add("Conductor", Type.GetType("System.String"))
+ dt.Columns.Add("Dirección", Type.GetType("System.String"))
+
If rows IsNot Nothing Then
For Each Row As DataRow In rows.Rows
Dim dr = dt.NewRow()
@@ -1451,532 +1451,532 @@ Public Class ClsSisNotificaciones
dt.Rows.Add(dr)
Next
- End If
-
- Return dt
-
- End Function
- Private Function GenerarDTGeocercas(Unidad As String, rows As DataTable) As DataTable
- Dim dt As New DataTable(Unidad)
-
- dt.Columns.Add("Vehículo", Type.GetType("System.String"))
- dt.Columns.Add("Geocerca", Type.GetType("System.String"))
- dt.Columns.Add("Fecha", Type.GetType("System.DateTime"))
- dt.Columns.Add("Evento", Type.GetType("System.String"))
- dt.Columns.Add("Latitud", Type.GetType("System.Double"))
- dt.Columns.Add("Longitud", Type.GetType("System.Double"))
- dt.Columns.Add("Conductor", Type.GetType("System.String"))
- dt.Columns.Add("Velocidad", Type.GetType("System.String"))
- dt.Columns.Add("Dirección", Type.GetType("System.String"))
-
- For Each Row As DataRow In rows.Rows
- Dim dr = dt.NewRow()
- dr("Vehículo") = Row("Unidad").ToString()
- dr("Fecha") = Row("Fecha").ToString().ToDateTime()
- dr("Evento") = Row("Evento").ToString()
- dr("Geocerca") = Row("Geocerca").ToString()
- dr("Latitud") = Row("Lat").ToString().ToDouble()
- dr("Longitud") = Row("Lon").ToString().ToDouble()
- dr("Velocidad") = Row("Velocidad").ToString().ToDouble()
- dr("Conductor") = Row("Conductor").ToString()
- dr("Dirección") = Row("Direccion").ToString()
- dt.Rows.Add(dr)
- Next
- Return dt
-
- End Function
- Private Function GenerarDTPuntosInteres(Unidad As String, rows As DataTable) As DataTable
- Dim dt As New DataTable(Unidad)
-
- dt.Columns.Add("Vehículo", Type.GetType("System.String"))
- dt.Columns.Add("Punto De Interés", Type.GetType("System.String"))
- dt.Columns.Add("Fecha", Type.GetType("System.DateTime"))
- dt.Columns.Add("Evento", Type.GetType("System.String"))
- dt.Columns.Add("Latitud", Type.GetType("System.Double"))
- dt.Columns.Add("Longitud", Type.GetType("System.Double"))
- dt.Columns.Add("Conductor", Type.GetType("System.String"))
- dt.Columns.Add("Velocidad", Type.GetType("System.String"))
- dt.Columns.Add("Dirección", Type.GetType("System.String"))
-
- For Each Row As DataRow In rows.Rows
- Dim dr = dt.NewRow()
- dr("Vehículo") = Row("Unidad").ToString()
- dr("Fecha") = Row("Fecha").ToString().ToDateTime()
- dr("Evento") = Row("Evento").ToString()
- dr("Punto De Interés") = Row("PuntoDeInteres").ToString()
- dr("Latitud") = Row("Lat").ToString().ToDouble()
- dr("Longitud") = Row("Lon").ToString().ToDouble()
- dr("Velocidad") = Row("Velocidad").ToString().ToDouble()
- dr("Conductor") = Row("Conductor").ToString()
- dr("Dirección") = Row("Direccion").ToString()
- dt.Rows.Add(dr)
- Next
- Return dt
-
+ End If
+
+ Return dt
+
+ End Function
+ Private Function GenerarDTGeocercas(Unidad As String, rows As DataTable) As DataTable
+ Dim dt As New DataTable(Unidad)
+
+ dt.Columns.Add("Vehículo", Type.GetType("System.String"))
+ dt.Columns.Add("Geocerca", Type.GetType("System.String"))
+ dt.Columns.Add("Fecha", Type.GetType("System.DateTime"))
+ dt.Columns.Add("Evento", Type.GetType("System.String"))
+ dt.Columns.Add("Latitud", Type.GetType("System.Double"))
+ dt.Columns.Add("Longitud", Type.GetType("System.Double"))
+ dt.Columns.Add("Conductor", Type.GetType("System.String"))
+ dt.Columns.Add("Velocidad", Type.GetType("System.String"))
+ dt.Columns.Add("Dirección", Type.GetType("System.String"))
+
+ For Each Row As DataRow In rows.Rows
+ Dim dr = dt.NewRow()
+ dr("Vehículo") = Row("Unidad").ToString()
+ dr("Fecha") = Row("Fecha").ToString().ToDateTime()
+ dr("Evento") = Row("Evento").ToString()
+ dr("Geocerca") = Row("Geocerca").ToString()
+ dr("Latitud") = Row("Lat").ToString().ToDouble()
+ dr("Longitud") = Row("Lon").ToString().ToDouble()
+ dr("Velocidad") = Row("Velocidad").ToString().ToDouble()
+ dr("Conductor") = Row("Conductor").ToString()
+ dr("Dirección") = Row("Direccion").ToString()
+ dt.Rows.Add(dr)
+ Next
+ Return dt
+
+ End Function
+ Private Function GenerarDTPuntosInteres(Unidad As String, rows As DataTable) As DataTable
+ Dim dt As New DataTable(Unidad)
+
+ dt.Columns.Add("Vehículo", Type.GetType("System.String"))
+ dt.Columns.Add("Punto De Interés", Type.GetType("System.String"))
+ dt.Columns.Add("Fecha", Type.GetType("System.DateTime"))
+ dt.Columns.Add("Evento", Type.GetType("System.String"))
+ dt.Columns.Add("Latitud", Type.GetType("System.Double"))
+ dt.Columns.Add("Longitud", Type.GetType("System.Double"))
+ dt.Columns.Add("Conductor", Type.GetType("System.String"))
+ dt.Columns.Add("Velocidad", Type.GetType("System.String"))
+ dt.Columns.Add("Dirección", Type.GetType("System.String"))
+
+ For Each Row As DataRow In rows.Rows
+ Dim dr = dt.NewRow()
+ dr("Vehículo") = Row("Unidad").ToString()
+ dr("Fecha") = Row("Fecha").ToString().ToDateTime()
+ dr("Evento") = Row("Evento").ToString()
+ dr("Punto De Interés") = Row("PuntoDeInteres").ToString()
+ dr("Latitud") = Row("Lat").ToString().ToDouble()
+ dr("Longitud") = Row("Lon").ToString().ToDouble()
+ dr("Velocidad") = Row("Velocidad").ToString().ToDouble()
+ dr("Conductor") = Row("Conductor").ToString()
+ dr("Dirección") = Row("Direccion").ToString()
+ dt.Rows.Add(dr)
+ Next
+ Return dt
+
End Function
-#End Region
+#End Region
- Private Sub EnviarNotificacionesGPS()
- Try
- If DTNotificacionesGPS IsNot Nothing Then
-
- 'Dim DTNotificacionesCampana = DTNotificacionesGPS.FiltraParametros("CveTipoPlantilla = 1")
- Dim DTNotificacionesCorreo = DTNotificacionesGPS.FiltraParametros("CveTipoPlantilla = 2")
- Dim DTNotificacionesVentana = DTNotificacionesGPS.FiltraParametros("CveTipoPlantilla = 3")
- 'Dim DTNotificacionesSMS = DTNotificacionesGPS.FiltraParametros("CveTipoPlantilla = 4")
- Dim DTNotificacionesApp = DTNotificacionesGPS.FiltraParametros("CveTipoPlantilla = 5")
-
- If DTNotificacionesVentana IsNot Nothing AndAlso DTNotificacionesVentana.Rows.Count > 0 Then
-
-
- For Each Dr As DataRow In DTNotificacionesVentana.Rows
- Dim Encabezado As String = Dr("Encabezado").ToString.Replace("{Vehiculo}", Dr("Vehiculo").ToString).Replace("{Clase}", Dr("Clase").ToString)
- Dim Mensaje As String = Dr("Cuerpo").ToString.Replace("{Mensaje}", $"{Dr("Nombre").ToString} {Dr("FechaEvento")}")
- Dim CveUsuario As Integer = Dr("CveUsuario").ToString.ToEntero
- Dim TipoNotificacion As Integer = Dr("TipoNotificacion").ToString().ToEntero()
- Dim Pie As String = Dr("Pie").ToString
- Dim Sonido As String = Dr("Sonido").ToString
- Dim Persistencia As Boolean = CBool(Dr("Persistencia").ToString().ToEntero())
- Dim Pos As String = Dr("Posicion").ToString
- Dim Coords As String = If(Not String.IsNullOrEmpty(Pos), SQLToGmapsJArray(Pos, "POINT").ToString, "")
-
- 'Dim JsonParams As New JObject(
- ' New JProperty("Titulo", Encabezado),
- ' New JProperty("Mensaje", Mensaje),
- ' New JProperty("Pie", Pie),
- ' New JProperty("Tipo", TipoNotificacion),
- ' New JProperty("Sonido", Sonido),
- ' New JProperty("Persistencia", Persistencia),
- ' New JProperty("Coordenadas", Coords)
- ' )
-
- Dim CveNotificacionBitacora As Integer = Dr("CveNotificacionBitacora").ToString.ToEntero
- Dim context = GlobalHost.ConnectionManager.GetHubContext(Of MyGPSHub)()
- SendNotificacionGPS(context, CveNotificacionBitacora, CveUsuario, Encabezado, Mensaje, TipoNotificacion, Pie, Sonido, Persistencia, Coords)
-
- UpdateNotificacionesBitacoraNotifico(CveNotificacionBitacora, 1)
- Next
- End If
-
- If DTNotificacionesApp IsNot Nothing AndAlso DTNotificacionesApp.Rows.Count > 0 Then
- Dim DtTokens As DataTable = Nothing
-
- Dim ObjGPS As New ClsGPS
- If ObjGPS.GetDeviceTokens(-1, "-1", "-1", 1) Then
- DtTokens = ObjGPS.DtResultados.Copy()
- End If
- ObjGPS.Dispose()
-
- If DtTokens IsNot Nothing Then
- For Each RowToken As DataRow In DtTokens.Rows
- Dim CveUsuario As Integer = RowToken("CveUsuario").ToString.ToEntero()
- Dim CveToken As Integer = RowToken("CveToken").ToString().ToEntero()
- Dim DeviceId As String = RowToken("DeviceId").ToString()
- Dim Token = RowToken("Token").ToString()
- Dim SO = RowToken("SO").ToString()
- Dim Badge As Integer = RowToken("Badge").ToString().ToEntero()
-
- If Not String.IsNullOrEmpty(Token) AndAlso CveUsuario > 0 AndAlso CveToken > 0 Then
- Dim DtAppsNotifications As DataTable = DTNotificacionesApp.FiltraParametros(String.Format("CveUsuario={0}", CveUsuario))
-
- Dim CveNotificacionBitacora As Integer = -1
- Dim CveDispositivo As Integer = -1
- Dim Vehiculo As String = ""
- Dim Pos As String = ""
- Dim Lat As Double = 0
- Dim Lng As Double = 0
- Dim Mensaje As String = ""
-
- For Each Dr As DataRow In DtAppsNotifications.Rows
- Mensaje = Dr("Nombre").ToString()
- CveNotificacionBitacora = Dr("CveNotificacionBitacora").ToString.ToEntero()
- CveDispositivo = Dr("CveDispositivo").ToString.ToEntero()
- Vehiculo = Dr("Vehiculo").ToString()
- Pos = Dr("Posicion").ToString()
-
- If Not String.IsNullOrEmpty(Pos) Then
- Dim ArrayPoint = SQLToGmapsJArray(Pos, "POINT")
- Lat = ArrayPoint(0)("lat").ToString().ToDouble()
- Lng = ArrayPoint(0)("lng").ToString().ToDouble()
- End If
-
- If CveNotificacionBitacora > 0 AndAlso CveDispositivo > 0 Then
- EnviarNotificacionAppGPS(CveToken, DeviceId, Token, SO, Badge, Vehiculo, Mensaje, CveUsuario, CveNotificacionBitacora, CveDispositivo, Vehiculo, Lat, Lng)
- End If
- Next
- If DtAppsNotifications IsNot Nothing Then
- DtAppsNotifications.Clear()
- DtAppsNotifications.Dispose()
- End If
- End If
- Next
- If DtTokens IsNot Nothing Then
- DtTokens.Clear()
- DtTokens.Dispose()
- End If
- End If
+ Private Sub EnviarNotificacionesGPS()
+ Try
+ If DTNotificacionesGPS IsNot Nothing Then
+
+ 'Dim DTNotificacionesCampana = DTNotificacionesGPS.FiltraParametros("CveTipoPlantilla = 1")
+ Dim DTNotificacionesCorreo = DTNotificacionesGPS.FiltraParametros("CveTipoPlantilla = 2")
+ Dim DTNotificacionesVentana = DTNotificacionesGPS.FiltraParametros("CveTipoPlantilla = 3")
+ 'Dim DTNotificacionesSMS = DTNotificacionesGPS.FiltraParametros("CveTipoPlantilla = 4")
+ Dim DTNotificacionesApp = DTNotificacionesGPS.FiltraParametros("CveTipoPlantilla = 5")
+
+ If DTNotificacionesVentana IsNot Nothing AndAlso DTNotificacionesVentana.Rows.Count > 0 Then
+
+
+ For Each Dr As DataRow In DTNotificacionesVentana.Rows
+ Dim Encabezado As String = Dr("Encabezado").ToString.Replace("{Vehiculo}", Dr("Vehiculo").ToString).Replace("{Clase}", Dr("Clase").ToString)
+ Dim Mensaje As String = Dr("Cuerpo").ToString.Replace("{Mensaje}", $"{Dr("Nombre").ToString} {Dr("FechaEvento")}")
+ Dim CveUsuario As Integer = Dr("CveUsuario").ToString.ToEntero
+ Dim TipoNotificacion As Integer = Dr("TipoNotificacion").ToString().ToEntero()
+ Dim Pie As String = Dr("Pie").ToString
+ Dim Sonido As String = Dr("Sonido").ToString
+ Dim Persistencia As Boolean = CBool(Dr("Persistencia").ToString().ToEntero())
+ Dim Pos As String = Dr("Posicion").ToString
+ Dim Coords As String = If(Not String.IsNullOrEmpty(Pos), SQLToGmapsJArray(Pos, "POINT").ToString, "")
+
+ 'Dim JsonParams As New JObject(
+ ' New JProperty("Titulo", Encabezado),
+ ' New JProperty("Mensaje", Mensaje),
+ ' New JProperty("Pie", Pie),
+ ' New JProperty("Tipo", TipoNotificacion),
+ ' New JProperty("Sonido", Sonido),
+ ' New JProperty("Persistencia", Persistencia),
+ ' New JProperty("Coordenadas", Coords)
+ ' )
+
+ Dim CveNotificacionBitacora As Integer = Dr("CveNotificacionBitacora").ToString.ToEntero
+ Dim context = GlobalHost.ConnectionManager.GetHubContext(Of MyGPSHub)()
+ SendNotificacionGPS(context, CveNotificacionBitacora, CveUsuario, Encabezado, Mensaje, TipoNotificacion, Pie, Sonido, Persistencia, Coords)
+
+ UpdateNotificacionesBitacoraNotifico(CveNotificacionBitacora, 1)
+ Next
End If
- If DTNotificacionesCorreo IsNot Nothing AndAlso DTNotificacionesCorreo.Rows.Count > 0 Then
- EnviarCorreos(DTNotificacionesCorreo)
- End If
-
- If Not DTNotificacionesApp Is Nothing Then DTNotificacionesApp.Dispose()
- 'If Not DTNotificacionesCampana Is Nothing Then DTNotificacionesCampana.Dispose()
- If Not DTNotificacionesCorreo Is Nothing Then DTNotificacionesCorreo.Dispose()
- 'If Not DTNotificacionesSMS Is Nothing Then DTNotificacionesSMS.Dispose()
- If Not DTNotificacionesVentana Is Nothing Then DTNotificacionesVentana.Dispose()
-
- End If
- Catch ex As Exception
- GuardaLog(ex.ToString())
- End Try
- End Sub
-
- Private Sub EnviarNotificacionesERP()
-
- End Sub
- Private Sub EnviarNotificacionesArmadas()
- Dim CveNotificacionBitacora As Integer = -1
- Dim CveUsuario As Integer = -1
- Dim TextoVentana As String = ""
- Dim TipoNotificacion As Integer = 0
- Dim Titulo As String = ""
- For Each Row As DataRow In DTNotificacionesArmadas.Rows
- CveNotificacionBitacora = Row("CveNotificacionBitacora").ToString().ToEntero()
- CveUsuario = Row("CveUsuario").ToString().ToEntero()
- TipoNotificacion = Row("TipoNotificacion").ToString().ToEntero()
- TextoVentana = Row("TextoVentana").ToString()
- 'Select Case TipoNotificacion
- ' Case 0
- ' Titulo = ""
- ' Case 1
- ' Titulo = "Alerta"
- ' Case 2
- ' Titulo = "Emergencia"
- ' Case Else
- ' Titulo = ""
- 'End Select
- If CveUsuario > 0 Then
- SendNotificacionERP(CveUsuario, Titulo, TextoVentana, TipoNotificacion)
- UpdateNotificacionesBitacoraNotifico(CveNotificacionBitacora, 1)
- End If
- CveUsuario = -1
- Titulo = ""
- TextoVentana = ""
- TipoNotificacion = -1
- Next
- End Sub
-
-
- '''