246 lines
10 KiB
VB.net
246 lines
10 KiB
VB.net
Option Strict On
|
|
Option Explicit On
|
|
|
|
Imports Extensiones
|
|
Imports System.Data
|
|
Imports Newtonsoft.Json.Linq
|
|
Partial Class GPS_Conductores
|
|
Inherits ClsPaginas
|
|
|
|
#Region "Propiedades"
|
|
Public Property CveConductor As Integer
|
|
Get
|
|
Return ViewState("CveConductor").ToString.ToEntero
|
|
End Get
|
|
Set(value As Integer)
|
|
ViewState("CveConductor") = value
|
|
End Set
|
|
End Property
|
|
Public Property CveDispositivo As Integer
|
|
Get
|
|
Return ViewState("CveDispositivo").ToString.ToEntero
|
|
End Get
|
|
Set(value As Integer)
|
|
ViewState("CveDispositivo") = 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
|
|
CargaFechas()
|
|
If Request("CveConductor") IsNot Nothing AndAlso Request("CveConductor").ToString.ToEntero > 0 Then
|
|
CveConductor = Request("CveConductor").ToString.ToEntero
|
|
CargaPonderacion()
|
|
CargaGraficas()
|
|
CargaConductor(CveConductor)
|
|
UpDatos.Update()
|
|
CargaMapa()
|
|
End If
|
|
If Request("CveDispositivo") IsNot Nothing AndAlso Request("CveDispositivo").ToString.ToEntero > 0 Then
|
|
CveDispositivo = Request("CveDispositivo").ToString.ToEntero
|
|
CveConductor = -1
|
|
|
|
DdlGrupo.SelectedValueExist("2")
|
|
CargaGrupos()
|
|
DdlNombre.SelectedValueExist(CveDispositivo)
|
|
CargaPonderacion()
|
|
CargaGraficas()
|
|
CargaVehiculo(CveDispositivo)
|
|
DvContenido.Visible = True
|
|
UpDatos.Update()
|
|
CargaMapa()
|
|
End If
|
|
End If
|
|
End Sub
|
|
Private Sub CargaFechas()
|
|
txtFechaI.Text = $"01/{Now.Month}/{Now.Year} 00:00"
|
|
txtFechaF.Text = DateTime.Now.ToString("dd/MM/yyyy") + " 23:59"
|
|
End Sub
|
|
#Region "Conductores"
|
|
|
|
Private Sub CargaPonderacion()
|
|
Dim ObjGps As New ClsGPS
|
|
Dim Ponderacion As Integer = 100
|
|
Dim Riesgo As String = "0"
|
|
Dim Desgaste As String = "0"
|
|
Dim TotalEventos As String = "0"
|
|
|
|
If CveConductor <= 0 AndAlso CveDispositivo > 0 Then
|
|
If ObjGps.ConductoresGet(-1, "-1", -1, UsuarioActual.CveCliente) AndAlso ObjGps.DtResultados.Rows.Count > 0 Then
|
|
CveConductor = ObjGps.DtResultados.FiltroPrimeroValor("CveConductor", $"CveDispositivo = {CveDispositivo}").ToString.ToEntero
|
|
End If
|
|
End If
|
|
|
|
If ObjGps.GetEventosPonderacionCliente(UsuarioActual.CveCliente, CveConductor, txtFechaI.Text.ToDateTime(), txtFechaF.Text.ToDateTime()) AndAlso ObjGps.DtResultados.Rows.Count > 0 Then
|
|
Ponderacion = 100 - ObjGps.DtResultados(0)("Total").ToString.ToEntero
|
|
Riesgo = ObjGps.DtResultados(0)("Riesgo").ToString
|
|
Desgaste = ObjGps.DtResultados(0)("Desgaste").ToString
|
|
TotalEventos = ObjGps.DtResultados(0)("TotalEventos").ToString
|
|
End If
|
|
|
|
LblPonderacion.Text = Ponderacion.ToString
|
|
LblRiesgo.Text = Riesgo
|
|
LblDesgaste.Text = Desgaste
|
|
LblTotalEventos.Text = TotalEventos
|
|
|
|
If Ponderacion >= 70 Then
|
|
DivTituloPonderacion.Attributes("class") = "toplistaVerde verde"
|
|
DivCirculoPonderacion.Attributes("class") = "circuloVerde verde"
|
|
ElseIf Ponderacion >= 50 Then
|
|
DivTituloPonderacion.Attributes("class") = "toplistaAmarillo amarillo"
|
|
DivCirculoPonderacion.Attributes("class") = "circuloAmarillo amarillo"
|
|
Else
|
|
DivTituloPonderacion.Attributes("class") = "toplistaRojo rojo"
|
|
DivCirculoPonderacion.Attributes("class") = "circuloRojo rojo"
|
|
End If
|
|
|
|
ObjGps.Dispose()
|
|
End Sub
|
|
|
|
Private Sub CargaConductor(CveConductor As Integer)
|
|
Dim ObjGps As New ClsGPS
|
|
If ObjGps.ConductoresGet(CveConductor, "-1", -1, UsuarioActual.CveCliente) AndAlso ObjGps.DtResultados.Rows.Count > 0 Then
|
|
LblConductor.Text = ObjGps.DtResultados(0)("Conductor").ToString
|
|
LblFechaNacimiento.Text = ObjGps.DtResultados(0)("FechaNacimiento").ToString.ToDateTime.ToShortDateString
|
|
LblSerieLicencia.Text = ObjGps.DtResultados(0)("SerieLicencia").ToString
|
|
LblVigencia.Text = ObjGps.DtResultados(0)("VencimientoLicencia").ToString.ToDateTime.ToShortDateString
|
|
LblEstatus.Text = ObjGps.DtResultados(0)("EstatusT").ToString
|
|
|
|
If ObjGps.DtResultados(0)("Estatus").ToString = "True" Then
|
|
LblEstatus.ForeColor = Drawing.Color.Green
|
|
Else
|
|
LblEstatus.ForeColor = Drawing.Color.Red
|
|
End If
|
|
End If
|
|
ObjGps.Dispose()
|
|
TbConductor.Visible = True
|
|
TbVehiculo.Visible = False
|
|
UpInfo.Update()
|
|
End Sub
|
|
Private Sub CargaVehiculo(CveDispositivo As Integer)
|
|
Dim DrVehiculo = GlobalDTDispositivosUsuarios(UsuarioActual.CveCliente, UsuarioActual.CveUsuario).FiltroPrimero($"CveDispositivo = {CveDispositivo}")
|
|
If DrVehiculo IsNot Nothing Then
|
|
LblVehiculo.Text = DrVehiculo("NombreVehiculo").ToString
|
|
LblNoEconomicos.Text = DrVehiculo("NoEconomico").ToString
|
|
LblModelo.Text = DrVehiculo("Modelo").ToString
|
|
LblAnio.Text = DrVehiculo("AñoVehiculo").ToString
|
|
LblVelocidad.Text = DrVehiculo("VelocidadMaxima").ToString
|
|
End If
|
|
TbConductor.Visible = False
|
|
TbVehiculo.Visible = True
|
|
UpInfo.Update()
|
|
End Sub
|
|
|
|
Private Sub CargaMapa()
|
|
Dim ObjGps As New ClsGPS
|
|
|
|
If ObjGps.UltimaPosicionEquipoGet(CveDispositivo, txtFechaI.Text.ToDateTime(), txtFechaF.Text.ToDateTime()) AndAlso ObjGps.DtResultados.Rows.Count > 0 Then
|
|
Dim Coord As String = SQLToGmaps(ObjGps.DtResultados.Rows(0)("Posicion").ToString, "POINT")
|
|
RegistraScript($"DeleteMarkers();CreaMarcador({Coord},'{ObjGps.DtResultados.Rows(0)("NombreVehiculo")}');")
|
|
End If
|
|
|
|
ObjGps.Dispose()
|
|
End Sub
|
|
Private Sub CargaGraficas()
|
|
Dim ObjGps As New ClsGPS
|
|
|
|
Dim Velocidad As String = "0"
|
|
Dim VelocidadMaxima As String = "0"
|
|
|
|
If ObjGps.GetConductoresVelocidades(CveConductor) AndAlso ObjGps.DtResultados.Rows.Count > 0 Then
|
|
Velocidad = ObjGps.DtResultados(0)("Velocidad").ToString
|
|
VelocidadMaxima = ObjGps.DtResultados(0)("VelocidadMaxima").ToString
|
|
CveDispositivo = ObjGps.DtResultados(0)("CveDispositivo").ToString.ToEntero
|
|
End If
|
|
|
|
|
|
If ObjGps.GetConductoresEventos(CveConductor) Then
|
|
Dim Random = New Random()
|
|
Dim JsonArray As New JArray(
|
|
From dr In ObjGps.DtResultados
|
|
Let color = String.Format("#{0:X6}", Random.Next(&H1000000))
|
|
Select New JObject(
|
|
New JProperty("evento", dr("Evento").ToString),
|
|
New JProperty("value", dr("Total").ToString),
|
|
New JProperty("color", color)
|
|
)
|
|
)
|
|
HdnValoresPastel.Value = JsonArray.ToString
|
|
End If
|
|
ObjGps.Dispose()
|
|
RegistraScript($"EstablecerValoresTacometro(""{VelocidadMaxima}"",""{Velocidad}"");", "1")
|
|
RegistraScript($"EstablecerValoresPastel();", "2")
|
|
|
|
|
|
End Sub
|
|
|
|
Private Function SQLToGmaps(CoordsSQL As String, Tipo As String) As String
|
|
Dim CoordsPoligono As String = CoordsSQL.Replace($"{Tipo}", "").Replace(")", "").Replace("(", "")
|
|
Dim CoordsPuntos() As String = CoordsPoligono.Split(","c)
|
|
Dim Var As String = ""
|
|
For Each coordenada As String In CoordsPuntos
|
|
If coordenada Is CoordsPuntos.Last Then
|
|
Dim latlng() As String = coordenada.Trim.Split(" "c)
|
|
Var = $"{Var}{{lat: {latlng(1)}, lng: {latlng(0)} }}"
|
|
Else
|
|
Dim latlng() As String = coordenada.Trim.Split(" "c)
|
|
Var = $"{Var}{{lat: {latlng(1)}, lng: {latlng(0)} }},"
|
|
End If
|
|
Next
|
|
Return Var
|
|
End Function
|
|
|
|
#End Region
|
|
#Region "Lista Conductores"
|
|
Private Sub CargaGrupos()
|
|
DdlNombre.Items.Clear()
|
|
|
|
Dim ObjGps As New ClsGPS
|
|
Select Case DdlGrupo.SelectedValue
|
|
Case "1" 'CONDUCTOR
|
|
If ObjGps.ConductoresGet(-1, "-1", -1, UsuarioActual.CveCliente) Then
|
|
Dim Query = From d In ObjGps.DtResultados
|
|
Select Cve = d("CveConductor").ToString.ToEntero, Nombre = d("Conductor").ToString
|
|
DdlNombre.DataSource = Query
|
|
LtlNombre.Text = "Conductor:"
|
|
End If
|
|
Case "2" 'VEHICULOS
|
|
Dim Query = From d In GlobalDTDispositivosUsuarios(UsuarioActual.CveCliente, UsuarioActual.CveUsuario)
|
|
Select Cve = d("CveDispositivo").ToString.ToEntero, Nombre = d("NoEconomico").ToString
|
|
DdlNombre.DataSource = Query
|
|
LtlNombre.Text = "Vehículo:"
|
|
End Select
|
|
ObjGps.Dispose()
|
|
DdlNombre.DataBind()
|
|
DdlNombre.Items.Insert(0, New ListItem("Seleccione", "-1"))
|
|
UPFiltros.Update()
|
|
|
|
End Sub
|
|
#End Region
|
|
Protected Sub DdlGrupo_SelectedIndexChanged(sender As Object, e As EventArgs)
|
|
CargaGrupos()
|
|
End Sub
|
|
Protected Sub BtnConsultar_Click(sender As Object, e As EventArgs)
|
|
|
|
Select Case DdlGrupo.SelectedValue
|
|
Case "1" 'CONDUCTOR
|
|
CveConductor = DdlNombre.SelectedValue.ToEntero
|
|
CargaPonderacion()
|
|
CargaGraficas()
|
|
CargaConductor(CveConductor)
|
|
|
|
Case "2" 'VEHICULOS
|
|
CveDispositivo = DdlNombre.SelectedValue.ToEntero
|
|
CveConductor = -1
|
|
CargaPonderacion()
|
|
CargaGraficas()
|
|
CargaVehiculo(CveDispositivo)
|
|
End Select
|
|
DvContenido.Visible = True
|
|
UpDatos.Update()
|
|
CargaMapa()
|
|
End Sub
|
|
End Class
|