Cambios en Trayectos

This commit is contained in:
2021-05-19 10:16:49 -07:00
parent 1bff45d151
commit 68c6d1b3d1
5 changed files with 518 additions and 154 deletions

View File

@@ -9,10 +9,12 @@ Imports Microsoft.Reporting.WebForms
Imports Newtonsoft.Json.Linq
Imports System.Linq
Imports System.Net.Http
Imports System.Net.Http.Headers
Imports Newtonsoft.Json
Partial Class GPS_TrayectoDetalle
Inherits ClsPaginas
Inherits ClsPaginas
#Region "P R O P I E D A D E S"
Private Property DtGeocercas As DataTable
Get
@@ -29,9 +31,8 @@ Partial Class GPS_TrayectoDetalle
Set(value As DataTable)
ViewState("DtPosiciones") = value
End Set
End Property
#End Region
End Property
Private Property CveTrayecto As Integer
Get
Return CType(ViewState("CveTrayecto"), Integer)
@@ -39,8 +40,20 @@ Partial Class GPS_TrayectoDetalle
Set(value As Integer)
ViewState("CveTrayecto") = value
End Set
End Property
End Property
Private Property CveEstatusActual As Integer
Get
Return CType(ViewState("CveEstatusActual"), Integer)
End Get
Set(value As Integer)
ViewState("CveEstatusActual") = value
End Set
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
@@ -52,102 +65,205 @@ Partial Class GPS_TrayectoDetalle
End If
End Sub
Private Sub CargaTrayectoHistorial(CveTrayecto As Integer)
Dim ObjGPS As New ClsGPS
Try
If CveTrayecto > 0 Then
RegistraScript("initMap();")
If ObjGPS.GetTrayectosEstatusHistorial(CveTrayecto) Then
Dim Direcciones = ConsultarDirecciones(ObjGPS.DtResultados)
For Each Dir As JObject In Direcciones
ObjGPS.DtResultados.Rows(Dir("Indice").ToEntero())("Direccion") = Dir("Direccion").ToString()
Next
GvEstatus.DataSource = ObjGPS.DtResultados
GvEstatus.DataBind()
End If
If ObjGPS.GetTrayectosDatos(CveTrayecto) Then
Dim DtDatos = ObjGPS.DtSetResultados.Tables(0)
If DtDatos.Rows.Count > 0 Then
Dim RowEstatus As DataRow = DtDatos.Rows(0)
LblTitulo.Text = $"Trayecto: {RowEstatus("Trayecto")}"
LtlEstatusActual.Text = RowEstatus("Estatus").ToString()
LtlDispositivo.Text = RowEstatus("Vehiculo").ToString()
LtlFechaI.Text = If(String.IsNullOrEmpty(RowEstatus("FechaInicio").ToString()), "No ha ingresado a la geocerca de inicio", String.Format("{0:dd/MM/yyyy HH:mm tt}", RowEstatus("FechaInicio").ToString().ToDateTime()))
LtlFechaF.Text = If(String.IsNullOrEmpty(RowEstatus("FechaFin").ToString()), "No ha Terminado", String.Format("{0:dd/MM/yyyy HH:mm tt}", RowEstatus("FechaFin").ToString().ToDateTime()))
LtlVMedia.Text = String.Format("{0:N2} KM/H", RowEstatus("VMedia"))
LtlVMax.Text = String.Format("{0:N2} KM/H", RowEstatus("VMax"))
LtlTiempo.Text = String.Format("{0}", RowEstatus("TiempoOperativo"))
LtlKM.Text = String.Format("{0:N2} KM", RowEstatus("Dist"))
LtlExcesosVelo.Text = String.Format("{0}", RowEstatus("ExcesosVelocidad"))
LtlCombustibleI.Text = If(String.IsNullOrEmpty(RowEstatus("CombustibleInicial").ToString()), "No Disponible", String.Format("{0:N2}", RowEstatus("CombustibleInicial")))
LtlCombustibleF.Text = If(String.IsNullOrEmpty(RowEstatus("CombustibleFinal").ToString()), "No Disponible", String.Format("{0:N2}", RowEstatus("CombustibleFinal")))
LtlCargas.Text = String.Format("{0:N0}", RowEstatus("Cargas"))
LtlDescargas.Text = String.Format("{0:N0}", RowEstatus("Descargas"))
LtlCombustibleConsumido.Text = String.Format("{0:N2} L", RowEstatus("CombustibleConsumido"))
LtlRendimiento.Text = String.Format("{0:N2} KM/L", RowEstatus("Rendimiento"))
GvIgnicion.DataSource = ObjGPS.DtSetResultados.Tables(1)
GvIgnicion.DataBind()
GvExcesos.DataSource = ObjGPS.DtSetResultados.Tables(2)
GvExcesos.DataBind()
GvRalenti.DataSource = ObjGPS.DtSetResultados.Tables(3)
GvRalenti.DataBind()
GvCombustible.DataSource = ObjGPS.DtSetResultados.Tables(4)
GvCombustible.DataBind()
GvGastos.DataSource = ObjGPS.DtSetResultados.Tables(5)
GvGastos.DataBind()
End If
End If
Dim count = 0
If ObjGPS.GetTrayectosGeoReferencias(CveTrayecto) Then
DtGeocercas = ObjGPS.DtResultados
If DtGeocercas IsNot Nothing Then
Dim Coord As String = ""
Dim CoordAnterior As String = ""
Dim CveEstatus As Integer = -1
Dim CveEstatusAnterior As Integer = -1
'GEOCERCAS
For Each Row As DataRow In DtGeocercas.Rows
count += 1
Coord = SQLToGmaps(Row("Geom").ToString, "POLYGON")
CveEstatus = Row("CveEstatusTrayecto").ToString.ToEntero
CveEstatusAnterior = Row("CveEstatusAnterior").ToString.ToEntero
Dim EsInicio As Boolean = CBool(IfNull(Row("EsInicio"), 0))
Dim EsFin As Boolean = CBool(IfNull(Row("EsFin"), 0))
Dim InicioFin As Integer = If(EsInicio, 1, If(EsFin, 2, 0))
RegistraScript($"creaPoligono({Coord}, '{Row("Color").ToString}', '{Row("GeoReferencia")}', '{Row("EstatusTrayecto")}',{InicioFin},{CveEstatus},{CveEstatusAnterior})", count.ToString())
Next
End If
End If
If ObjGPS.GetTrayectosHistorial(CveTrayecto, UsuarioActual.CveCliente) Then
DtPosiciones = ObjGPS.DtResultados
If DtPosiciones IsNot Nothing Then
Dim Fecha, Vehiculo, Icono, CoordDis, Info As String
For Each Row As DataRow In DtPosiciones.Rows
CoordDis = Row("PosicionVehiculo").ToString.SQLToGmaps("POINT")
Fecha = Row("FechaTrama").ToString
Vehiculo = Row("Vehiculo").ToString
Info = InfoWindow($"{Row("EventoTexto")}", "-1", Row("CveDispositivo").ToString.ToEntero, Row, PermisoComandos:=False)
If Row("Velocidad").ToString.ToDouble > 1 Then
Icono = $"/Imagenes/{Row("Icono")}green.png"
Else
Icono = $"/Imagenes/{Row("Icono")}.png"
End If
RegistraScript($"CreaMarcador({CoordDis},'{Row("Vehiculo")}', '{Info}', '{Icono}');", count.ToString())
Next
End If
End If
End If
Catch ex As Exception
OnError("Ocurrió un error al consultar el trayecto.", ex)
End Try
ObjGPS.Dispose()
If CveTrayecto > 0 Then
Dim CveDispositivo As Integer = -1
Dim ObjGPS As New ClsGPS
Dim DtEstatusHistorial As DataTable = Nothing
Dim DtPuntosInteres As DataTable = Nothing
Dim DsDatos As DataSet = Nothing
Dim FechaInicio As DateTime = MinFecha
Dim FechaFin As DateTime = MaxFecha
Try
If ObjGPS.GetTrayectosDatos(CveTrayecto) Then
DsDatos = ObjGPS.DtSetResultados.Copy
If DsDatos IsNot Nothing AndAlso DsDatos.Tables.Count > 0 Then
CveDispositivo = DsDatos.Tables(0).Rows(0)("CveDispositivo").ToString().ToEntero
If Not String.IsNullOrEmpty(DsDatos.Tables(0).Rows(0)("FechaInicio").ToString()) Then
FechaInicio = DsDatos.Tables(0).Rows(0)("FechaInicio").ToString().ToDateTime
End If
If Not String.IsNullOrEmpty(DsDatos.Tables(0).Rows(0)("FechaFin").ToString()) Then
FechaFin = DsDatos.Tables(0).Rows(0)("FechaFin").ToString().ToDateTime
End If
End If
End If
If ObjGPS.GetTrayectosGeoReferencias(CveTrayecto) Then
DtGeocercas = ObjGPS.DtResultados.Copy
End If
'If ObjGPS.GetTrayectosHistorial(CveTrayecto, UsuarioActual.CveCliente) Then
' DtPosiciones = ObjGPS.DtResultados.Copy()
'End If
If CveDispositivo > 0 Then
If ObjGPS.UltimaPosicionEquipoGet(CveDispositivo.ToString(), UsuarioActual.CveCliente) Then
DtPosiciones = ObjGPS.DtResultados.Copy()
End If
End If
If ObjGPS.GetTrayectosEstatusHistorial(CveTrayecto) Then
DtEstatusHistorial = ObjGPS.DtResultados.Copy
End If
If FechaInicio > MinFecha Then
If FechaFin <= MinFecha Then
FechaFin = MaxFecha
End If
If ObjGPS.RepPuntosGet(-1, CveDispositivo.ToString(), FechaInicio, FechaFin, UsuarioActual.CveCliente) Then
DtPuntosInteres = ObjGPS.DtResultados.Copy
End If
End If
Catch ex As Exception
OnError("Ocurrió un error al consultar el trayecto.", ex)
End Try
ObjGPS.Dispose()
Try
RegistraScript("initMap();")
If DtEstatusHistorial IsNot Nothing AndAlso DtEstatusHistorial.Rows.Count > 0 Then
Dim Direcciones = ConsultarDirecciones(DtEstatusHistorial)
For Each Dir As JObject In Direcciones
DtEstatusHistorial.Rows(Dir("Indice").ToEntero())("Direccion") = Dir("Direccion").ToString()
Next
GvEstatus.DataSource = DtEstatusHistorial
GvEstatus.DataBind()
End If
If DsDatos IsNot Nothing AndAlso DsDatos.Tables.Count > 0 Then
Dim RowEstatus As DataRow = DsDatos.Tables(0).Rows(0)
LblTitulo.Text = $"Trayecto: {RowEstatus("Trayecto")}"
LtlEstatusActual.Text = RowEstatus("Estatus").ToString()
CveEstatusActual = RowEstatus("CveEstatusActual").ToString().ToEntero()
If CBool(RowEstatus("EsFin")) Then
BtnTerminarTrayeto.Visible = False
LnkActualizarEstatus.Visible = False
BtnRecalcular.Visible = False
LblETA.Text = "TERMINADO"
End If
LtlDispositivo.Text = RowEstatus("Vehiculo").ToString()
LtlFechaI.Text = If(String.IsNullOrEmpty(RowEstatus("FechaInicio").ToString()), "No ha ingresado a la geocerca de inicio", String.Format("{0:dd/MM/yyyy HH:mm tt}", RowEstatus("FechaInicio").ToString().ToDateTime()))
LtlFechaF.Text = If(String.IsNullOrEmpty(RowEstatus("FechaFin").ToString()), "No ha Terminado", String.Format("{0:dd/MM/yyyy HH:mm tt}", RowEstatus("FechaFin").ToString().ToDateTime()))
LtlVMedia.Text = String.Format("{0:N2} KM/H", RowEstatus("VMedia"))
LtlVMax.Text = String.Format("{0:N2} KM/H", RowEstatus("VMax"))
LtlTiempo.Text = String.Format("{0}", RowEstatus("TiempoOperativo"))
LtlKM.Text = String.Format("{0:N2} KM", RowEstatus("Dist"))
LtlExcesosVelo.Text = String.Format("{0}", RowEstatus("ExcesosVelocidad"))
LtlCombustibleI.Text = If(String.IsNullOrEmpty(RowEstatus("CombustibleInicial").ToString()), "No Disponible", String.Format("{0:N2}", RowEstatus("CombustibleInicial")))
LtlCombustibleF.Text = If(String.IsNullOrEmpty(RowEstatus("CombustibleFinal").ToString()), "No Disponible", String.Format("{0:N2}", RowEstatus("CombustibleFinal")))
LtlCargas.Text = String.Format("{0:N0}", RowEstatus("Cargas"))
LtlDescargas.Text = String.Format("{0:N0}", RowEstatus("Descargas"))
LtlCombustibleConsumido.Text = String.Format("{0:N2} L", RowEstatus("CombustibleConsumido"))
LtlRendimiento.Text = String.Format("{0:N2} KM/L", RowEstatus("Rendimiento"))
GvIgnicion.DataSource = DsDatos.Tables(1)
GvIgnicion.DataBind()
GvExcesos.DataSource = DsDatos.Tables(2)
GvExcesos.DataBind()
GvRalenti.DataSource = DsDatos.Tables(3)
GvRalenti.DataBind()
GvCombustible.DataSource = DsDatos.Tables(4)
GvCombustible.DataBind()
GvGastos.DataSource = DsDatos.Tables(5)
GvGastos.DataBind()
End If
Dim count = 0
If DtPosiciones IsNot Nothing AndAlso DtPosiciones.Rows.Count > 0 Then
Dim Fecha, Vehiculo, Icono, CoordDis, Info As String
For Each Row As DataRow In DtPosiciones.Rows
count += 1
CoordDis = Row("Posicion").ToString.SQLToGmaps("POINT")
Fecha = Row("FechaTrama").ToString
Vehiculo = Row("NombreVehiculo").ToString
Info = InfoWindow($"{Vehiculo}", "-1", Row("CveDispositivo").ToString.ToEntero, Row, PermisoComandos:=False)
If Row("Velocidad").ToString.ToDouble > 1 Then
Icono = $"/Imagenes/{Row("Icono")}green.png"
Else
Icono = $"/Imagenes/{Row("Icono")}.png"
End If
RegistraScript($"CreaMarcador({CoordDis},'{Vehiculo}', '{Info}', '{Icono}');", count.ToString())
Next
End If
If DtGeocercas IsNot Nothing AndAlso DtGeocercas.Rows.Count > 0 Then
Dim Coord As String = ""
Dim CoordAnterior As String = ""
Dim CveEstatus As Integer = -1
Dim CveEstatusAnterior As Integer = -1
'GEOCERCAS
For Each Row As DataRow In DtGeocercas.Rows
count += 1
Coord = SQLToGmaps(Row("Geom").ToString, "POLYGON")
CveEstatus = Row("CveEstatusTrayecto").ToString.ToEntero
CveEstatusAnterior = Row("CveEstatusAnterior").ToString.ToEntero
Dim EsInicio As Boolean = CBool(IfNull(Row("EsInicio"), 0))
Dim EsFin As Boolean = CBool(IfNull(Row("EsFin"), 0))
Dim InicioFin As Integer = If(EsInicio, 1, If(EsFin, 2, 0))
Dim Cruzo As String = IfNull(Row("Cruzo"), "0").ToString()
RegistraScript($"creaPoligono({Coord}, '{Row("Color").ToString}', '{Row("GeoReferencia")}', '{Row("EstatusTrayecto")}',{InicioFin},{CveEstatus},{CveEstatusAnterior},{Cruzo})", count.ToString())
Next
End If
If DtPuntosInteres IsNot Nothing Then
Dim SBBody As New StringBuilder
Dim CoordsPoligono = ""
Dim Coords = ""
Dim Titulo = ""
Dim Info = ""
Dim GeoCercas = ""
Dim Color = ""
For Each RowPI As DataRow In DtPuntosInteres.Rows
count += 1
Coords = SQLToGmaps(RowPI("Punto").ToString, "POINT")
SBBody.Append($"<div>")
SBBody.Append($"<div><h5><b> Punto: {RowPI("PuntoDeInteres")}</b></h5></div>")
Color = "#26C281"
SBBody.Append($"<div><table>")
SBBody.Append($"<tr><td><b>{RowPI("Vehiculo")}:</b> {RowPI("Visitas")} visitas</td></tr>")
SBBody.Append($"<tr><td>Última Visita: {RowPI("UltimaVisita")}</td></tr>")
SBBody.Append($"</table></div>")
SBBody.Append($"</div>")
RegistraScript($"CreaCirculo({Coords},'{Color}');CreaMarcadorPI({Coords},'{RowPI("PuntoDeInteres")}','{SBBody.ToString}');", count.ToString())
Next
count += 1
RegistraScript("CalcularETA();", count.ToString())
End If
Catch ex As Exception
OnError("Ocurrió un error al cargar los datos del trayecto", ex)
End Try
End If
'UpIgniciones.Update()
'UpEventos.Update()
@@ -206,17 +322,24 @@ Partial Class GPS_TrayectoDetalle
Protected Sub BtnTerminarTrayeto_Click(sender As Object, e As EventArgs)
Dim DtEstatus As DataTable = Nothing
Dim ObjGPS As New ClsGPS
If ObjGPS.GetEstatusTrayectos(-1, UsuarioActual.CveCliente) Then
DtEstatus = ObjGPS.DtResultados.Copy()
End If
Dim CveEstatusFinal As Integer = DtEstatus.FiltroPrimeroValor("CveEstatusTrayecto", "EsFin = True").ToEntero()
If CveEstatusFinal > 0 Then
If ObjGPS.UpdateTrayectoEstatus(CveTrayecto, CveEstatusFinal) Then
Alert("El trayecto se finalizo correctamente")
End If
Else
Alert("No se pudo obtener el estatus final", TipoMensaje.MsgError)
End If
Try
If ObjGPS.GetEstatusTrayectos(-1, UsuarioActual.CveCliente) Then
DtEstatus = ObjGPS.DtResultados.Copy()
End If
Dim CveEstatusFinal As Integer = DtEstatus.FiltroPrimeroValor("CveEstatusTrayecto", "EsFin = True").ToEntero()
If CveEstatusFinal > 0 Then
If ObjGPS.UpdateTrayectoEstatus(CveTrayecto, CveEstatusFinal) Then
Alert("El trayecto se finalizo correctamente", JSBtnAceptar:="RefrescarPagina();", ShowCloseButton:=False)
End If
Else
Alert("No se pudo obtener el estatus final", TipoMensaje.MsgError)
End If
Catch ex As Exception
OnError("Ocurrió un error al actualizar el trayecto", ex)
End Try
ObjGPS.Dispose()
End Sub
Protected Sub GvGastos_RowDataBound(sender As Object, e As GridViewRowEventArgs)
@@ -256,4 +379,50 @@ Partial Class GPS_TrayectoDetalle
2, UsuarioActual.CveUsuario, UsuarioActual.CveCliente, CveTrayecto:=Me.CveTrayecto) Then
RegistraScript("$('#DModal').modal('hide')")
Alert("El Gasto se agregó correctamente.", TipoMensaje.MsgInformacion)
End If
ObjPS.Dispose()
'CargaDatos()
End Sub
Protected Sub BtnRecalcular_Click(sender As Object, e As EventArgs)
If CveTrayecto > 0 Then
CargaTrayectoHistorial(CveTrayecto)
CargaReporte()
End If
End Sub
Protected Sub LnkActualizarEstatus_Click(sender As Object, e As EventArgs)
Dim CveEstatusSiguiente As Integer = -1
Dim Estatus As String = ""
Using ObjGPS As New ClsGPS
If ObjGPS.GetTrayectosGeoReferencias(CveTrayecto) Then
Dim Row As DataRow = ObjGPS.DtResultados.FiltroPrimero($"CveEstatusTrayecto = {CveEstatusActual}")
If Row IsNot Nothing Then
CveEstatusSiguiente = Row("CveEstatusSiguiente").ToString().ToEntero()
End If
End If
If CveEstatusSiguiente > 0 Then
If ObjGPS.GetEstatusTrayectos(CveEstatusSiguiente, UsuarioActual.CveCliente) Then
Estatus = ObjGPS.DtResultados.FiltroPrimeroValor("Estatus")
End If
If Not String.IsNullOrEmpty(Estatus) Then
If ObjGPS.UpdateTrayectoEstatus(CveTrayecto, CveEstatusSiguiente) Then
Alert($"El trayecto se cambió al estatus <b>{Estatus}</b>.", JSBtnAceptar:="RefrescarPagina();", ShowCloseButton:=False)
End If
Else
Alert("No se pudo cambiar al estatus siguiente.", TipoMensaje.MsgError)
End If
Else
Alert("No se pudo cambiar al estatus siguiente.", TipoMensaje.MsgError)
End If
End Using
End Sub