/// <summary> /// Report data binding. /// </summary> /// <param name="e"></param> protected override void OnLoad(EventArgs e) { base.OnLoad(e); var showResults = false; MobileActivity activity = null; if (!To.ToShortDateString().Equals(DateTime.UtcNow.ToShortDateString())) { activity = GetResults(); showResults = activity != null; } if (showResults) { DisplayResults(activity); } else { infoLabel1.Mode = InfoLabelMode.INFO; infoLabel1.Text = CultureManager.GetSystemMessage(NoRouteInfo); } var mobile = activity != null ? activity.Movil : DAOFactory.CocheDAO.FindById(Mobile).Interno; lblTitle.Text = string.Format(CultureManager.GetLabel(RepGeocercasTitle), mobile); tblResults.Visible = showResults; lnkResumenDeRuta.Enabled = showResults; }
public MobileActivityVo(MobileActivity t, DateTime desde, DateTime hasta, bool verDetalle) { IdMovil = t.Id; VelocidadMaxima = t.VelocidadMaxima; VelocidadPromedio = t.VelocidadPromedio; Infracciones = t.Infracciones; Movil = t.Movil; Patente = t.Patente; CentroDeCostos = t.CentroDeCostos; TipoVehiculo = t.TipoVehiculo; Recorrido = t.Recorrido; var dao = new DAOFactory(); var coche = dao.CocheDAO.FindById(t.Id); Costo = coche != null && coche.CocheOperacion != null ? Recorrido * coche.CocheOperacion.CostoKmHistorico : 0.0; HorasActivo = String.Format("Días:{0} - Horas {1}:{2}:{3}", t.HorasActivo.Days, t.HorasActivo.Hours, t.HorasActivo.Minutes, t.HorasActivo.Seconds); HorasDetenido = String.Format("Días:{0} - Horas {1}:{2}:{3}", t.HorasDetenido.Days, t.HorasDetenido.Hours, t.HorasDetenido.Minutes, t.HorasDetenido.Seconds); HorasInfraccion = String.Format("Días:{0} - Horas {1}:{2}:{3}", t.HorasInfraccion.Days, t.HorasInfraccion.Hours, t.HorasInfraccion.Minutes, t.HorasInfraccion.Seconds); if (verDetalle) { var infracciones = dao.InfraccionDAO.GetByVehiculo(IdMovil, Infraccion.Codigos.ExcesoVelocidad, desde, hasta); Leves = infracciones.Count(inf => (inf.Alcanzado - inf.Permitido) <= 9); Medias = infracciones.Count(inf => (inf.Alcanzado - inf.Permitido) > 9 && (inf.Alcanzado - inf.Permitido) <= 17); Graves = infracciones.Count(inf => (inf.Alcanzado - inf.Permitido) > 17); } }
/// <summary> /// Displays info aboute the specified route fragment. /// </summary> /// <param name="activity"></param> private void DisplayResults(MobileActivity activity) { lblDetencion.Text = activity.HorasDetenido.ToString(); lblInfraccion.Text = string.Format(CultureManager.GetLabel(TimeAndEventsInfractions), activity.HorasInfraccion, activity.Infracciones); lblKilometros.Text = string.Format("{0:0.00}km", activity.Recorrido); lblMovimiento.Text = activity.HorasActivo.ToString(); lblSinReportar.Text = activity.HorasSinReportar.ToString(); lblVelocidadMaxima.Text = string.Format("{0}km/h", activity.VelocidadMaxima); lblVelocidadPromedio.Text = string.Format("{0}km/h", activity.VelocidadPromedio); lblDuracion.Text = To.Subtract(From).ToString(); lblFin.Text = string.Format("{0} {1}", To.ToShortDateString(), To.TimeOfDay); lblInicio.Text = string.Format("{0} {1}", From.ToShortDateString(), From.TimeOfDay); }
public MobileActivityVo(MobileActivity t) { IdMovil = t.Id; VelocidadMaxima = t.VelocidadMaxima; VelocidadPromedio = t.VelocidadPromedio; Infracciones = t.Infracciones; Movil = t.Movil; Patente = t.Patente; CentroDeCostos = t.CentroDeCostos; TipoVehiculo = t.TipoVehiculo; Recorrido = t.Recorrido; var dao = new DAOFactory(); var coche = dao.CocheDAO.FindById(t.Id); Costo = coche != null && coche.CocheOperacion != null ? Recorrido * coche.CocheOperacion.CostoKmHistorico : 0.0; HorasActivo = String.Format("Días:{0} - Horas {1}:{2}:{3}", t.HorasActivo.Days, t.HorasActivo.Hours, t.HorasActivo.Minutes, t.HorasActivo.Seconds); HorasDetenido = String.Format("Días:{0} - Horas {1}:{2}:{3}", t.HorasDetenido.Days, t.HorasDetenido.Hours, t.HorasDetenido.Minutes, t.HorasDetenido.Seconds); HorasInfraccion = String.Format("Días:{0} - Horas {1}:{2}:{3}", t.HorasInfraccion.Days, t.HorasInfraccion.Hours, t.HorasInfraccion.Minutes, t.HorasInfraccion.Seconds); }
/// <summary> /// Gets sumarized information about the activity of the specified vehicles within the givenn timespan. /// </summary> /// <param name="desde"></param> /// <param name="hasta"></param> /// <param name="empresa"></param> /// <param name="linea"></param> /// <param name="ids"></param> /// <param name="km"></param> /// <returns></returns> public List <MobileActivity> GetMobileActivities(DateTime desde, DateTime hasta, Int32 empresa, Int32 linea, List <Int32> ids, Int32 km) { MobileActivity ma = null; DetachedCriteria vdc = GetVehiclesDetachedCriteria(ids.Count <= SQLParameterLimit ? ids.ToArray() : new int[] {}, new[] { empresa }, (linea != 0 ? new[] { 0, linea } : new int[] {})); DetachedCriteria dc = GetDatamartDetachedCriteria(false, vdc).FilterBeginEndBetween(desde, hasta); ProjectionList pl = Projections.ProjectionList(); pl.Add(Projections.Sum <Datamart>(dm => dm.MovementHours).WithAlias(() => ma.HsActivos)); pl.Add(Projections.Sum <Datamart>(dm => dm.StoppedHours).WithAlias(() => ma.HsInactivos)); pl.Add(Projections.Sum <Datamart>(dm => dm.InfractionMinutes).WithAlias(() => ma.HsInfraccion)); pl.Add(Projections.Sum <Datamart>(dm => dm.NoReportHours).WithAlias(() => ma.HsSinReportar)); pl.Add(Projections.Sum <Datamart>(dm => dm.Infractions).WithAlias(() => ma.Infracciones)); IProjection recorridoProjection = Projections.Sum <Datamart>(dm => dm.Kilometers).WithAlias(() => ma.Recorrido); pl.Add(recorridoProjection); pl.Add(Projections.Max <Datamart>(dm => dm.MaxSpeed).WithAlias(() => ma.VelocidadMaxima)); pl.Add(Projections.Group <Datamart>(dm => dm.Vehicle.Id).WithAlias(() => ma.Id)); ICriteria crit = GetDatamartCriteria(0, dc, pl, null, typeof(MobileActivity)); IList <MobileActivity> results = crit.List <MobileActivity>(); var cocheDAO = new CocheDAO(); foreach (MobileActivity r in results) { Coche coche = cocheDAO.FindById(r.Id); r.VelocidadPromedio = r.HsActivos > 0 ? Convert.ToInt32(r.Recorrido / r.HsActivos) : 0; r.HsInfraccion /= 60; r.CentroDeCostos = coche.CentroDeCostos != null ? coche.CentroDeCostos.Descripcion : null; r.TipoVehiculo = coche.TipoCoche != null ? coche.TipoCoche.Descripcion : null; r.Movil = coche.Interno; r.Patente = coche.Patente; } List <MobileActivity> result = (ids.Count > SQLParameterLimit ? results.Where(x => ids.Contains(x.Id)) : results).OrderBy(r => r.Movil).ToList(); return(result); }
private Microsoft.VisualStudio.Modeling.ModelElement GetParentForCloudcoreUser(MobileActivity childElement) { return childElement.SubProcess; }