diff --git a/Ashx/SIGGPS.ashx b/Ashx/SIGGPS.ashx
index f9736c0e1..a58642f67 100644
--- a/Ashx/SIGGPS.ashx
+++ b/Ashx/SIGGPS.ashx
@@ -18,7 +18,9 @@ Public Class SIGGPS : Implements IHttpHandler, IRequiresSessionState
Case "getimginstalacion"
GetImgInstalacion(context)
Case "EjecutarNotificaciones"
- EjecutarNotificaciones(context)
+ EjecutarNotificaciones(context)
+ Case "EjecutaTrayectos"
+ EnviarCorreoTrayectos(context, context.Request("CveTrayecto").ToString().ToEntero())
End Select
ElseIf context.Request.InputStream IsNot Nothing Then
Using reader As New StreamReader(context.Request.InputStream)
@@ -224,5 +226,155 @@ Public Class SIGGPS : Implements IHttpHandler, IRequiresSessionState
)
Return Json
- End Function
+ End Function
+
+#Region "N O T F I C A C I O N - T R A Y E C T O S"
+ Private Sub EnviarCorreoTrayectos(ByVal context As HttpContext, CveTrayecto As Integer)
+ Dim Retorno As JObject = New JObject(New JProperty("EnvioCorreo", False), New JProperty("Mensaje", ""))
+
+ Dim DtInfoTrayecto As DataTable = Nothing
+ Dim DtTrayecto As DataTable = Nothing
+
+ Using ObjGPS As New ClsGPS
+ If ObjGPS.GetTrayectos(CveTrayecto, -1, -1) AndAlso ObjGPS.DtResultados.Rows.Count > 0 Then
+ DtTrayecto = ObjGPS.DtResultados.Copy()
+ End If
+
+ If ObjGPS.GetTrayectosDatos(CveTrayecto) Then
+ DtInfoTrayecto = ObjGPS.DtSetResultados.Tables(0).Copy()
+ End If
+ End Using
+
+ If DtTrayecto IsNot Nothing AndAlso DtInfoTrayecto IsNot Nothing AndAlso DtInfoTrayecto.Rows.Count > 0 Then
+ Dim RowTrayecto As DataRow = DtTrayecto.Rows(0)
+ Dim RowInfo As DataRow = DtInfoTrayecto.Rows(0)
+
+ Dim EnviarLiga As Boolean = CBool(RowTrayecto("EnviarLiga").ToString())
+
+ Dim Asunto As String = "Estatus de Trayecto"
+ Dim Cuerpo As String = GeneraCorreo(CveTrayecto, EnviarLiga, RowInfo)
+ Dim Correos As String = RowTrayecto("CorreosNotificacion").ToString()
+
+ Dim ObjMail As New ClsSisMail
+ If ObjMail.SendMail(ClsPaginas.EmpresaNotificaciones, Correos, Asunto, Cuerpo) Then
+ Retorno("EnvioCorreo") = True
+ Retorno("Mensaje") = "El correo fue enviado correctamente"
+ Else
+ Retorno("EnvioCorreo") = False
+ Retorno("Mensaje") = "Ocurrió un error al enviar el correo"
+ End If
+
+ End If
+
+ context.Response.Write(Retorno.ToString())
+ End Sub
+
+ Protected Function GeneraCorreo(CveTrayecto As Integer, EnviarLiga As Boolean, Row As DataRow) As String
+ Dim strBody As New StringBuilder
+ Try
+ strBody.Append(" ")
+ strBody.Append("
")
+ strBody.Append("")
+ Catch ex As Exception
+ OnError("Ocurrio un error al general el correo.", ex)
+ End Try
+ Return strBody.ToString()
+ End Function
+#End Region
+
End Class
\ No newline at end of file
diff --git a/GPS/RastreoTrayectos.aspx.vb b/GPS/RastreoTrayectos.aspx.vb
index 46c849a09..96c2666bd 100644
--- a/GPS/RastreoTrayectos.aspx.vb
+++ b/GPS/RastreoTrayectos.aspx.vb
@@ -13,6 +13,14 @@ Partial Class GPS_RastreoTrayectos
Inherits Page
#Region "P R O P I E D A D E S"
+ Private Property RastreoValido As Boolean
+ Get
+ Return CType(ViewState("RastreoValido"), Boolean)
+ End Get
+ Set(value As Boolean)
+ ViewState("RastreoValido") = value
+ End Set
+ End Property
Private Property TrazarLineaContinuo As Boolean
Get
Return CType(ViewState("TrazarLineaContinuo"), Boolean)
@@ -87,12 +95,19 @@ Partial Class GPS_RastreoTrayectos
Protected Sub Page_Load(sender As Object, e As EventArgs) Handles Me.Load
If Not Page.IsPostBack Then
RegistraScript("$('#SideNav').click();initMap();")
- Me.CveTrayecto = 97
-
- CreaDTPosiciones()
- CargaDatos()
- RastrearEquipos()
- CargaTabla()
+ If Request("P") IsNot Nothing Then
+ Dim URLParametros = Parametros(Decripta((Request("P").ToString)))
+ Me.CveTrayecto = URLParametros("CVETRAYECTO").ToString().ToEntero()
+ CargaDatos()
+ If RastreoValido Then
+ TrazarLineaContinuo = True
+ CreaDTCoordenadas()
+ CreaDTPosiciones()
+ RastrearEquipos()
+ CargaTabla()
+ End If
+
+ End If
End If
End Sub
Private Sub CreaDTPosiciones()
@@ -123,16 +138,19 @@ Partial Class GPS_RastreoTrayectos
Using ObjGPS As New ClsGPS
If ObjGPS.GetTrayectos(CveTrayecto, -1, -1) AndAlso ObjGPS.DtResultados.Rows.Count > 0 Then
Dim Row As DataRow = ObjGPS.DtResultados.Rows(0)
+
Me.CveDispositivo = Row("CveDispositivo").ToString().ToEntero()
Me.CveCliente = Row("CveCliente").ToString().ToEntero()
+ Me.RastreoValido = Not CBool(Row("EsFin"))
+
End If
End Using
- TrazarLineaContinuo = True
- CreaDTCoordenadas()
End Sub
Protected Sub TimmerRefresh_Tick(sender As Object, e As EventArgs)
DtPosiciones.Rows.Clear()
RegistraScript("DeleteMarkers();")
+
+
Dim LastCoord As String = ""
Dim TmpDT As New DataTable
Dim Info = ""
@@ -143,6 +161,14 @@ Partial Class GPS_RastreoTrayectos
Dim ObjGPS As New ClsGPS
Try
+ If ObjGPS.GetTrayectos(CveTrayecto, -1, -1) AndAlso ObjGPS.DtResultados.Rows.Count > 0 Then
+ Dim Row As DataRow = ObjGPS.DtResultados.Rows(0)
+ Me.RastreoValido = Not CBool(Row("EsFin"))
+ End If
+ If Not RastreoValido Then
+ Alert("El trayecto ha sido finalizado.", TipoMensaje.MsgAdvertencia)
+ Exit Sub
+ End If
Dim RowVehiculo As DataRow = GlobalDTDispositivos(CveCliente).FiltroPrimero($"CveDispositivo = {CveDispositivo}")
If ObjGPS.UltimaPosicionEquipoGet(CveDispositivo, MinFecha, MaxFecha) Then
@@ -178,7 +204,12 @@ Partial Class GPS_RastreoTrayectos
OnError("Ocurrió un error al rastrear equipo", ex)
End Try
End Sub
- Private Sub RastrearEquipos()
+ Private Sub RastrearEquipos()
+ If Not RastreoValido Then
+ Alert("El trayecto ha sido finalizado.", TipoMensaje.MsgAdvertencia)
+ Exit Sub
+ End If
+
Dim LastCoord As String = ""
Dim TmpDT As New DataTable
Dim Info = ""
@@ -217,7 +248,6 @@ Partial Class GPS_RastreoTrayectos
End Try
ObjGPS.Dispose()
End Sub
-
Private Sub CargaTabla()
If DtPosiciones IsNot Nothing Then
GvBarra.DataSource = DtPosiciones
@@ -229,7 +259,6 @@ Partial Class GPS_RastreoTrayectos
GvBarra.HeaderRow.Cells(4).Style.Add("display", "none !important")
End If
End Sub
-
Private Sub AddRowCoordenadasContinuas(Coord As String, CveDispositivo As Integer)
Dim dr As DataRow = DtCoordenadasContinuas.NewRow()
dr("CveDispositivo") = CveDispositivo
@@ -333,8 +362,19 @@ Partial Class GPS_RastreoTrayectos
RegistraScript("setTimeout(function(){OpcionesHistorico();},500);")
End Sub
-
-
+ Private Function Parametros(Cadena As String) As Hashtable
+ Dim P1() As String = Cadena.Split("&"c)
+ Dim Tmp As String
+ Dim P2() As String
+
+ Dim URLParametros As New Hashtable
+
+ For Each Tmp In P1
+ P2 = Tmp.Replace("%26%", "&").Split("="c)
+ URLParametros.Add(P2(0).ToString.ToUpper, P2(1))
+ Next
+ Return URLParametros
+ End Function
Public Sub RegistraScript(Script As String, Optional valuetick As String = "")
Dim Rdm As Random = New Random()
ScriptManager.RegisterStartupScript(Page, Me.GetType(), String.Format("{0}{1}{2}", (DateTime.Now.Ticks + 1), Rdm.Next(), valuetick), String.Format("", Script), False)
diff --git a/GPS/Trayectos.aspx.vb b/GPS/Trayectos.aspx.vb
index a1977fccd..ac950d613 100644
--- a/GPS/Trayectos.aspx.vb
+++ b/GPS/Trayectos.aspx.vb
@@ -8,10 +8,11 @@ Imports Extensiones
Imports Microsoft.Reporting.WebForms
Imports Newtonsoft.Json.Linq
Imports System.Linq
-
+Imports System.Net.Http
+
Partial Class GPS_Trayectos
- Inherits ClsPaginas
-
+ Inherits ClsPaginas
+
#Region "P R O P I E D A D E S"
Private Property DtGeocercasAgregar As DataTable
Get
@@ -36,9 +37,9 @@ Partial Class GPS_Trayectos
Set(value As DataTable)
ViewState("DtPosiciones") = value
End Set
- End Property
+ End Property
#End Region
-
+
Protected Sub Page_Load(sender As Object, e As EventArgs) Handles Me.Load
If Not Page.IsPostBack Then
DirectCast(Master.FindControl("TSM"), ScriptManager).EnablePageMethods = True
@@ -276,12 +277,12 @@ Partial Class GPS_Trayectos
Private Sub LimpiaCampos()
TxtNombre.Text = ""
DdlDispositivo.SelectedIndex = 0
- End Sub
-
+ End Sub
+
#Region "C O N S U L T A "
Protected Sub LnkConsultar_Click(sender As Object, e As EventArgs)
CargaTrayectos()
- End Sub
+ End Sub
#End Region
Protected Sub GvBarra_RowDataBound(sender As Object, e As GridViewRowEventArgs)
If e.Row.RowType = DataControlRowType.DataRow Then
@@ -413,105 +414,29 @@ Partial Class GPS_Trayectos
Dim GvRow As GridViewRow = DirectCast(DirectCast(sender, LinkButton).NamingContainer, GridViewRow)
Dim CveTrayecto As Integer = GvRow.DataKey("CveTrayecto").ToEntero()
- Dim EnviarLiga As Boolean = CBool(GvRow.DataKey("EnviarLiga"))
If CveTrayecto > 0 Then
- Dim DtInfoTrayecto As DataTable = Nothing
- Using ObjGPS As New ClsGPS
- If ObjGPS.GetTrayectosDatos(CveTrayecto) Then
- DtInfoTrayecto = ObjGPS.DtSetResultados.Tables(0).Copy()
+ Dim Url = New Uri(String.Format("{0}/ashx/SIGGPS.ashx?metodo=EjecutaTrayectos&CveTrayecto={1}", "https://gps.signalsgps.com", CveTrayecto))
+ Dim Retorno As String = "{}"
+ Try
+ Using httpClient = New HttpClient()
+ httpClient.Timeout = New TimeSpan(0, 0, 15)
+ Using request = New HttpRequestMessage(HttpMethod.Get, Url)
+ Dim response = httpClient.SendAsync(request).Result
+ If response.StatusCode = Net.HttpStatusCode.OK Then
+ Retorno = response.Content.ReadAsStringAsync().Result
+ End If
+ End Using
+ End Using
+
+ Dim Resp = JObject.Parse(Retorno)
+ If CBool(Resp("EnvioCorreo").ToString()) Then
+ Alert(Resp("Mensaje").ToString(), TipoMensaje.MsgInformacion)
+ Else
+ Alert(Resp("Mensaje").ToString(), TipoMensaje.MsgError)
End If
- End Using
- If DtInfoTrayecto IsNot Nothing AndAlso DtInfoTrayecto.Rows.Count > 0 Then
- Dim Row As DataRow = DtInfoTrayecto.Rows(0)
- GeneraCorreo(CveTrayecto, EnviarLiga, Row)
- End If
+ Catch ex As Exception
+ OnError("Ocurrió un error al descargar la factura", ex)
+ End Try
End If
End Sub
-
- Protected Function GeneraCorreo(CveTrayecto As Integer, EnviarLiga As Boolean, Row As DataRow) As String
- Dim strBody As New StringBuilder
- Try
- strBody.Append(" ")
- strBody.Append(" ")
- strBody.Append(" ")
- strBody.Append(" ")
- strBody.Append(" ")
- strBody.Append("
")
- strBody.Append(" ")
- strBody.Append("
")
- strBody.Append("
")
- strBody.Append("
")
- strBody.Append(" ")
- strBody.Append("
")
- strBody.Append("
")
- strBody.Append("")
- Catch ex As Exception
- OnError("Ocurrio un error al general el correo.", ex)
- End Try
- Return strBody.ToString()
- End Function
End Class