From a9918251a3ef28d205a5a8333ebc530f4e236fcf Mon Sep 17 00:00:00 2001 From: JORGE LUIS CAUDILLO ESPARZA Date: Sat, 18 Jan 2020 14:26:00 -0700 Subject: [PATCH] Reparrastre --- App_Code/ClsGPS.vb | 212 ++++++++++++++++++-------------- GPS/RepArrastre.aspx | 188 ++++++++++++++++++++++++---- GPS/RepArrastre.aspx.cs | 77 +++++++++++- Imagenes/rsz_11rsz_cargreen.png | Bin 3351 -> 12360 bytes 4 files changed, 358 insertions(+), 119 deletions(-) diff --git a/App_Code/ClsGPS.vb b/App_Code/ClsGPS.vb index 9bffc2e1f..6e1ee8d05 100644 --- a/App_Code/ClsGPS.vb +++ b/App_Code/ClsGPS.vb @@ -8,9 +8,9 @@ Imports System.IO Imports Newtonsoft.Json Public Class ClsGPS - Implements IDisposable + Implements IDisposable #Region "Campos" - 'SQL + 'SQL Private Econ As OleDb.OleDbConnection Private SqlConexion As SqlConnection Private SqlAdapter As SqlDataAdapter @@ -45,9 +45,9 @@ Public Class ClsGPS Public Property EstaDentro As Boolean Public Property CvePuntoDeInteresGrupo As Integer Public Property CveGeoReferencia As Integer - Public Property MensajeError As String + Public Property MensajeError As String #End Region - + Sub New(Optional TransaccionCompartida As SqlTransaction = Nothing) If TransaccionCompartida Is Nothing Then @@ -74,9 +74,9 @@ Public Class ClsGPS End With If Not SqlTransacc Is Nothing Then SqlAdapter.SelectCommand.Transaction = SqlTransacc Data = New DataTable - End Sub + End Sub #Region "Conexiones" - + Private Sub ConexionAdd() If ConfigurationManager.AppSettings("RegistraConexion") IsNot Nothing AndAlso ConfigurationManager.AppSettings("RegistraConexion").ToString() = "1" Then Try @@ -109,7 +109,7 @@ Public Class ClsGPS CveConexion = 0 End If - End Sub + End Sub #End Region Public Function IniciaTransacSQL() As SqlTransaction If SqlTransacc Is Nothing Then SqlTransacc = SqlConexion.BeginTransaction() @@ -120,8 +120,40 @@ Public Class ClsGPS End Sub Public Sub Commit() SqlTransacc.Commit() - End Sub - + End Sub +#Region "Arrastre" + + Public Function GPS_ArrastreGET(CveDispositivo As Integer) As Boolean + Dim Retorno As Boolean = False + DataAdapter("PA_GPS_ArrastreGET") + With SqlAdapter.SelectCommand.Parameters + addParameters("@CveDispositivo", SqlDbType.Int, CveDispositivo) + End With + Try + SqlAdapter.Fill(Data) + Retorno = True + Catch ex As Exception + OnError("Ocurrió un error al obtener los datos de Arrastre", ex, SqlAdapter.SelectCommand.Parameters.ParametrosInfo()) + End Try + Return Retorno + End Function + Public Function GPS_ArrastreActivarDesactivar(CveDispositivo As Integer, ArrastreActivo As Boolean) As Boolean + Dim Retorno As Boolean = False + DataAdapter("PA_GPS_ArrastreActivarDesactivar") + With SqlAdapter.SelectCommand.Parameters + addParameters("@CveDispositivo", SqlDbType.Int, CveDispositivo) + addParameters("@ArrastreActivo", SqlDbType.Bit, ArrastreActivo) + End With + Try + Dataset = New DataSet() + SqlAdapter.Fill(Dataset) + Retorno = True + Catch ex As Exception + OnError("Ocurrió un error al activar o desactivar la alerta de Arrastre", ex, SqlAdapter.SelectCommand.Parameters.ParametrosInfo()) + End Try + Return Retorno + End Function +#End Region Public Function GetTemperatura(CveDispositivo As Integer, CveSensor As Integer, strFechaInicio As String, strFechaFin As String, CveUsuario As Integer) As Boolean Dim Retorno As Boolean = False DataAdapter("PA_GPS_TramaData") @@ -170,8 +202,8 @@ Public Class ClsGPS OnError("Ocurrió un error al obtener las zonas horarias", ex, SqlAdapter.SelectCommand.Parameters.ParametrosInfo()) End Try Return Retorno - End Function - + End Function + #Region "FacturasSims" Public Function GetFacturasSims(CveUsuario As Integer, CveEmpresa As Integer, Periodo As Integer) As Boolean Dim retorno As Boolean = False @@ -258,9 +290,9 @@ Public Class ClsGPS addParameters("@cveGpsFacturaSim", SqlDbType.Int, cveGpsFacturaSim) retorno = RunQuery("Ocurrió un error al eliminar el FacturasSims.") Return retorno - End Function + End Function #End Region - + #Region "M O D E L O S" Public Function AddMarca(Marca As String, Estatus As Boolean, CveUsuario As Integer) As Boolean Dim Retorno As Boolean = False @@ -456,13 +488,13 @@ Public Class ClsGPS End Try Return Retorno - End Function - - + End Function + + #End Region - + #Region "Rastreo" - + Public Function CoordenadasGet(id As Integer, Nombre As String) As Boolean Dim Retorno As Boolean = False DataAdapter("PA_Coords_Get") @@ -1565,11 +1597,11 @@ Public Class ClsGPS End Try Return Retorno - End Function - - + End Function + + #End Region - + #Region "Puntos de interes" Public Function PuntoDeInteresAdd(PuntoDeInteres As String, CveCliente As Integer, GEOM As String, Estatus As Boolean, Descripcion As String, CvePuntoDeInteresGrupo As Integer) As Boolean Dim Retorno As Boolean = False @@ -1736,12 +1768,12 @@ Public Class ClsGPS OnError("Ocurrió un error al obtener el reporte de los Puntos de Interés.", ex, SqlAdapter.SelectCommand.Parameters.ParametrosInfo()) End Try Return Retorno - End Function - - - + End Function + + + #End Region - + #Region "CONDUCTORES" Public Function ConductorAdd(Conductor As String, Estatus As Boolean, CveUsuario As Integer, SerieLicencia As String, FechaNacimiento As Date, VencimientoLicencia As Date, Optional CveCliente As Integer = -1) As Boolean Dim Retorno As Boolean = False @@ -1887,9 +1919,9 @@ Public Class ClsGPS End Try Return Retorno - End Function + End Function #End Region - + #Region "CONTROLADORES GRAFICOS" Public Function ControladorGraficoAdd(ControladorGrafico As String, UM As String) As Boolean Dim Retorno As Boolean = False @@ -1957,10 +1989,10 @@ Public Class ClsGPS End Try Return Retorno - End Function - + End Function + #End Region - + #Region "V E H I C U L O S" Public Function VehiculoAdd(Modelo As String, Color As String, Serie As String, Nombre As String, NoEconomico As String, CveUsuario As Integer, CveCliente As Integer) As Boolean Dim Retorno As Boolean = False @@ -2038,9 +2070,9 @@ Public Class ClsGPS End Try Return Retorno - End Function + End Function #End Region - + #Region "TIPO COMUNICACION" Public Function TipoComunicacionAdd(TipoComunicacion As String, Estatus As Boolean, CveUsuario As Integer) As Boolean Dim Retorno As Boolean = False @@ -2113,10 +2145,10 @@ Public Class ClsGPS End Try Return Retorno - End Function - + End Function + #End Region - + #Region "R U T A S" Public Function AddRuta(Ruta As String, CveCliente As Integer) As Boolean Dim Retorno As Boolean = False @@ -2179,9 +2211,9 @@ Public Class ClsGPS OnError("Ocurrió un error al eliminar la ruta.", ex, SqlAdapter.SelectCommand.Parameters.ParametrosInfo()) End Try Return Retorno - End Function + End Function #End Region - + Public Function GetResGuardantesSim(CveEmpresa As Integer) As Boolean Dim Retorno As Boolean = False DataAdapter("PA_GPS_ResGuardantesSimnGet") @@ -2195,9 +2227,9 @@ Public Class ClsGPS OnError("Ocurrió un error al obtener el proveedor de comunicacion.", ex, SqlAdapter.SelectCommand.Parameters.ParametrosInfo()) End Try Return Retorno - End Function + End Function #Region "Proveedor Comunicacion" - + Public Function ProveedorComunicacion_Add(ProveedorComunicacion As String, Estatus As Byte, CveUsuario As Integer, CveTipoComunicacion As Integer, APNIP As String, APNUSER As String, APNPASS As String, correo As String) As Boolean Dim Retorno As Boolean = False @@ -2279,12 +2311,12 @@ Public Class ClsGPS End Try Return Retorno - End Function - + End Function + #End Region - + #Region "Proveedor Comunicacion Cuentas" - + Public Function ProveedoresComunicacionCuentasAdd(CveProveedorComunicacion As Integer, CvePlanDato As Integer, CveUsuario As Integer, IP As String, SSID As String, NumeroTelefono As String, Estatus As Integer, CveEmpresa As Integer, Imei As String, CveUsuarioResguardante As Integer, Optional Activacion As Integer = -1) As Boolean Dim Retorno As Boolean = False DataAdapter("PA_GPS_ProveedoresComunicacionCuentasAdd") @@ -2423,10 +2455,10 @@ Public Class ClsGPS End Try Return Retorno - End Function - + End Function + #End Region - + #Region "E V E N T O S" Public Function EventoTipoAdd(EventoTipo As String, Estatus As Boolean, CveUsuario As Integer) As Boolean Dim Retorno As Boolean = False @@ -2901,15 +2933,15 @@ Public Class ClsGPS End Try Return Retorno - End Function - - - + End Function + + + #End Region - + #Region "Plan de Datos" - - + + Public Function PlanesDatosAdd(CveProveedorComunicacion As Integer, CveUsuario As Integer, PlanDato As String, Importe As Decimal, Estatus As Integer, Capacidad As Integer, TipoPlan As String, CostoAdicional As String, TechoFacturacion As String, CveEmpresa As Integer) As Boolean Dim Retorno As Boolean = False @@ -2998,10 +3030,10 @@ Public Class ClsGPS End Try Return Retorno - End Function - + End Function + #End Region - + #Region "Dispositivos" Public Function DispositivoAdd(TipoDispositivo As Integer, NumTelefono As String, CveModelo As Integer, CveProveedorComunicacionCuenta As Integer, CveCliente As Integer, IMEI As String, Serie As String, CveEstatus As Integer, SerieVehiculo As String, ColorVehiculo As String, NombreVehiculo As String, NoEconomico As String, devID As String, devPort As Integer, ModeloVehiculo As String, AñoVehiculo As String, ClaseVehiculo As String, PlacasVehiculo As String, LimiteVelocidad As Boolean, VelocidadMaxima As Double, @@ -3328,10 +3360,10 @@ Public Class ClsGPS OnError("Ocurrió un error al actualizar los dispositivos.", ex, SqlAdapter.SelectCommand.Parameters.ParametrosInfo()) End Try Return Retorno - End Function - + End Function + #End Region - + #Region "REPORTES" Public Function GetReportes() As Boolean Dim Retorno As Boolean = False @@ -3645,9 +3677,9 @@ Public Class ClsGPS OnError("Ocurrió un obtener el reporte de eventos.", ex, SqlAdapter.SelectCommand.Parameters.ParametrosInfo()) End Try Return Retorno - End Function + End Function #End Region - + #Region "I N D I C A D O R E S" Public Function IndicadoresGet(CveCliente As Integer, FechaInicio As DateTime, FechaFin As DateTime) As Boolean Dim Retorno As Boolean = False @@ -3664,9 +3696,9 @@ Public Class ClsGPS OnError("Ocurrió un obtener el reporte de indicadores.", ex, SqlAdapter.SelectCommand.Parameters.ParametrosInfo()) End Try Return Retorno - End Function + End Function #End Region - + #Region "DashBoard" Public Function GetDashboard(CveCliente As Integer, FechaI As DateTime, FechaF As DateTime, Optional Top As Integer = 5) As String Dim Retorno As String = "[]" @@ -3917,10 +3949,10 @@ Public Class ClsGPS End Try Return Retorno - End Function - + End Function + #End Region - + #Region "Controles" Public Function GetCombustible(CveDispositivo As Integer, CveControl As Integer) As Boolean Dim Retorno As Boolean = False @@ -4275,9 +4307,9 @@ Public Class ClsGPS End Try Return Retorno - End Function + End Function #End Region - + #Region "A P L I C A C I O N M O V I L " Public Function AddTrama(DevID As String, Trama As String, Lat As Double, Lng As Double, FechaTrama As DateTime, Optional Speed As Double = 0, Optional Modelo As String = "App") As Boolean Dim Retorno As Boolean = False @@ -4411,9 +4443,9 @@ Public Class ClsGPS End Try Return Retorno - End Function + End Function #End Region - + #Region "G R U P O S" Public Function GruposAdd(Nombre As String, CveCliente As Integer) As Integer @@ -4483,10 +4515,10 @@ Public Class ClsGPS End Try Return Retorno - End Function - + End Function + #End Region - + #Region "G R U P O S - D E T A L L E" Public Function GruposDetallesAdd(CveDispositivoGrupo As Integer, CveDispositivo As Integer) As Boolean Dim Retorno As Boolean = False @@ -4535,9 +4567,9 @@ Public Class ClsGPS End Try Return Retorno - End Function + End Function #End Region - + #Region "A L T A S - B A J A S" Public Function AddAltaBajas(CveDispositivo As Integer, Fecha As DateTime, CveUsuario As Integer, Tipo As Integer, CveCliente As Integer) As Boolean Dim Retorno As Boolean = False @@ -4578,9 +4610,9 @@ Public Class ClsGPS End Try Return Retorno - End Function + End Function #End Region - + #Region "P A S A J E R O S" Public Function GetCortesChofer(CveCorteChofer As Integer, CveDispositivo As Integer, CveUsuarioIngreso As Integer) As Boolean Dim retorno As Boolean = False @@ -4714,9 +4746,9 @@ Public Class ClsGPS OnError("Ocurrió un error al eliminar los costos del kilometro.", ex, SqlAdapter.SelectCommand.Parameters.ParametrosInfo()) End Try Return retorno - End Function + End Function #End Region - + #Region "T R A Y E C T O S" Public Function AddTrayecto(Trayecto As String, Fecha As DateTime, Folio As String, CveDispositivo As Integer, CveCliente As Integer) As Integer Dim retorno As Integer = 0 @@ -5266,10 +5298,10 @@ Public Class ClsGPS OnError("Ocurrió un error al obtener la configuracion de FreightVerify.", ex, SqlAdapter.SelectCommand.Parameters.ParametrosInfo()) End Try Return retorno - End Function - + End Function + #End Region - + #Region "F U N C I O N E S" Public Function ReaderToJson(ByVal rdr As SqlDataReader) As String Dim sb As StringBuilder = New StringBuilder() @@ -5323,10 +5355,10 @@ Public Class ClsGPS jsonWriter.WriteEndArray() End Using Return sw.ToString() - End Function - + End Function + #End Region - + Protected Sub addParameters(name As String, tipo As SqlDbType, valor As Object) If SqlConexion.State = ConnectionState.Open Then SqlAdapter.SelectCommand.Parameters.Add(name, tipo).Value = valor @@ -5372,9 +5404,9 @@ Public Class ClsGPS addParameters("@FechaFin", SqlDbType.DateTime, fechaFin) retorno = RunQuery("Ocurrió un error al obtener el CombustibleResumen.") Return retorno - End Function + End Function #Region " IDisposable Support " - ' IDisposable + ' IDisposable Protected Overridable Sub Dispose(ByVal disposing As Boolean) If Not disposedValue Then If disposing Then @@ -5405,6 +5437,6 @@ Public Class ClsGPS ConexionClose() Dispose(True) GC.SuppressFinalize(Me) - End Sub + End Sub #End Region End Class diff --git a/GPS/RepArrastre.aspx b/GPS/RepArrastre.aspx index d8f7b0845..dc674de2a 100644 --- a/GPS/RepArrastre.aspx +++ b/GPS/RepArrastre.aspx @@ -3,6 +3,11 @@ + Reporte de Arrastre @@ -10,6 +15,9 @@ +
  • + Apagar vehiculo +
  • @@ -42,42 +50,168 @@ -
    -
    -
    -
    -
    -
    -
    - - TIEMPOS OPERATIVOS -
    -
    -
    -
    + + +
    +
    +
    +
    +
    +
    + + datos vehiculo +
    +
    +
    +
    +
    -
    - -
    -
    -
    -
    -
    - +
    + +
    -
    - -
    -
    - +
    + +
    +
    + +
    +
    + +
    +
    +
    +
    +
    +
    + +
    +
    + +
    +
    +
    +
    +
    +
    + +
    +
    + +
    +
    +
    +
    +
    +
    + +
    +
    + +
    +
    +
    +
    -
    + + +
    + + diff --git a/GPS/RepArrastre.aspx.cs b/GPS/RepArrastre.aspx.cs index cff9cc9c6..722d89e64 100644 --- a/GPS/RepArrastre.aspx.cs +++ b/GPS/RepArrastre.aspx.cs @@ -1,25 +1,98 @@ using System; using System.Collections.Generic; +using System.Data; using System.Linq; using System.Web; using System.Web.UI; using System.Web.UI.WebControls; +using Extensiones; public partial class GPS_RepArrastre : ClsPaginas { + + public int CveDispositivo + { + get + { + if (ViewState["CveDispositivo"] != null) + { + return ViewState["CveDispositivo"].ToString().ToEntero(); + + } + else + { + return 0; + } + } + set { ViewState["CveDispositivo"] = value; } + } protected void Page_Load(object sender, EventArgs e) { if (!IsPostBack) { - - DdlDispositivo.DataSource = get_GlobalDTDispositivosUsuarios(UsuarioActual.CveCliente, UsuarioActual.CveUsuario) ; + // fijo borrar + DdlDispositivo.DataSource = get_GlobalDTDispositivosUsuarios(263965, 1928) ; + //DdlDispositivo.DataSource = get_GlobalDTDispositivosUsuarios(UsuarioActual.CveCliente, UsuarioActual.CveUsuario) ; DdlDispositivo.DataBind(); + getArrastre(); } } + private void getArrastre() + { + CveDispositivo = DdlDispositivo.SelectedValue.ToEntero(); + using (ClsGPS objgps = new ClsGPS()) + { + if (objgps.GPS_ArrastreGET(CveDispositivo) && objgps.DtResultados.Rows.Count > 0) + { + DataRow dtrow = objgps.DtResultados.Rows[0]; + upInfo(dtrow); + } + + } + } + public void upInfo(DataRow dtrow) + { + if ( dtrow != null) + { + LblVelocidad.Text = $"{dtrow["Speed"]:N0}"; + LblEncApa.Text = $"{dtrow["EncendidoText"]}"; + LblFechaInfo.Text = $"{dtrow["FechaTrama"]:dd/MM/yyyy}"; + //LblVelocidad.Text = $"{dtrow[""]}"; + //LblVelocidad.Text = $"{dtrow[""]}";addmarkerActual({ lat: -25.363, lng: 131.044 }) + string pVehiculo = string.Format("{{ lat: {0}, lng: {1}}}", dtrow["Lat"], dtrow["Lng"]); + string parrastre = string.Format("{{ lat: {0}, lng: {1}}}", dtrow["LatArrastre"], dtrow["LngArrastre"]); + TxtFunciones.Text = string.Format("addmarkerActual({0},{3}){1};setCenter({2})", pVehiculo, (dtrow["ArrastreActivo"].ToString() == "1" ? $" ;addmarkerarrastre({parrastre})" : ";addmarkerarrastre()"), (dtrow["ArrastreActivo"].ToString() == "1" ? parrastre : pVehiculo), dtrow["Encendido"].ToString().ToEntero()); + UpInfo.Update(); + } + } protected void BtnConsultar_Click(object sender, EventArgs e) { + getArrastre(); + } + + protected void chkActivarArrastre_CheckedChanged(object sender, EventArgs e) + { + using (ClsGPS objgps = new ClsGPS()) + { + if (objgps.GPS_ArrastreActivarDesactivar(CveDispositivo, chkActivarArrastre.Checked)){ + + if (objgps.GPS_ArrastreGET(CveDispositivo) && objgps.DtResultados.Rows.Count > 0) + { + DataRow dtrow = objgps.DtResultados.Rows[0]; + upInfo(dtrow); + } + if (chkActivarArrastre.Checked) + { + Alert("se ha activado la funcion de arrastre"); + } + else + { + Alert("se ha desactivado la funcion de arrastre"); + } + } + } } } \ No newline at end of file diff --git a/Imagenes/rsz_11rsz_cargreen.png b/Imagenes/rsz_11rsz_cargreen.png index 374265dcdff88139471efd318ca18c897a06c209..2d560ffea549d8c8140e5db71366c891c6f918ca 100644 GIT binary patch literal 12360 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 IM6N<$g3Q2aC;$Ke