예제 #1
0
 public StockVehicularVo(DetalleStockVehicular detalle)
 {
     Id           = detalle.StockVehicular.Id;
     Zona         = detalle.StockVehicular.Zona.Descripcion;
     TipoVehiculo = detalle.StockVehicular.TipoCoche.Descripcion;
     Interno      = detalle.Vehiculo.Interno;
     Patente      = detalle.Vehiculo.Patente;
 }
예제 #2
0
        private void EliminarAsignaciones(DetalleStockVehicular detalle)
        {
            var idStockVehicular = detalle.StockVehicular.Id;
            var idCoche          = detalle.Vehiculo.Id;

            var asignaciones = DaoFactory.DetalleStockVehicularDAO.GetByStockAndCoche(idStockVehicular, idCoche);

            foreach (var asignacion in asignaciones)
            {
                asignacion.StockVehicular.Detalles.Remove(asignacion);
                DaoFactory.StockVehicularDAO.SaveOrUpdate(asignacion.StockVehicular);
            }
        }
예제 #3
0
        protected override void OnSave()
        {
            EditObject.Empresa   = DAOFactory.EmpresaDAO.FindById(cbEmpresa.Selected);
            EditObject.Zona      = DAOFactory.ZonaDAO.FindById(cbZona.Selected);
            EditObject.TipoCoche = DAOFactory.TipoCocheDAO.FindById(cbTipoVehiculo.Selected);

            EditObject.Detalles.Clear();
            foreach (ListItem item in lstAsignados.Items)
            {
                var coche   = DAOFactory.CocheDAO.FindById(Convert.ToInt32(item.Value));
                var detalle = new DetalleStockVehicular();
                detalle.StockVehicular = EditObject;
                detalle.Vehiculo       = coche;
                EditObject.Detalles.Add(detalle);

                EliminarAsignaciones(detalle);
            }

            DAOFactory.StockVehicularDAO.SaveOrUpdate(EditObject);
        }
예제 #4
0
        protected override void OnExecute(Timer timer)
        {
            STrace.Trace(ComponentName, "Inicio de la tarea");

            var empresas = DaoFactory.EmpresaDAO.GetList().Where(e => e.ActualizaStockVehicular);

            STrace.Trace(GetType().FullName, string.Format("Procesando empresas. Cantidad: {0}", empresas.Count()));

            try
            {
                foreach (var empresa in empresas)
                {
                    STrace.Trace(GetType().FullName, string.Format("Procesando Empresa: {0}({1})", empresa.RazonSocial, empresa.Id));

                    var vehiculos = DaoFactory.CocheDAO.FindList(new[] { empresa.Id }, new[] { -1 })
                                    .Where(c => c.Dispositivo != null);

                    var vehiculosPendientes = vehiculos.Count();
                    STrace.Trace(GetType().FullName, string.Format("Vehículos a procesar: {0}", vehiculosPendientes));

                    foreach (var vehiculo in vehiculos)
                    {
                        STrace.Trace(GetType().FullName, string.Format("Procesando vehículo: {0}({1})", vehiculo.Interno, vehiculo.Id));

                        var lastDm = DaoFactory.DatamartDAO.GetLastDatamart(vehiculo.Id, DateTime.UtcNow);
                        if (lastDm != null && lastDm.GeograficRefference != null)
                        {
                            if (lastDm.GeograficRefference.Zonas.Any())
                            {
                                var zona         = lastDm.GeograficRefference.Zonas.OrderBy(z => z.Zona.Prioridad).Select(z => z.Zona).FirstOrDefault();
                                var tipoVehiculo = vehiculo.TipoCoche;

                                var stock = DaoFactory.StockVehicularDAO.GetByZonaAndTipoCoche(zona.Id, tipoVehiculo.Id);
                                if (stock != null && !stock.Detalles.Select(d => d.Vehiculo).Contains(vehiculo))
                                {
                                    var detalle = new DetalleStockVehicular();
                                    detalle.StockVehicular = stock;
                                    detalle.Vehiculo       = vehiculo;
                                    stock.Detalles.Add(detalle);
                                    EliminarAsignaciones(detalle);

                                    DaoFactory.StockVehicularDAO.SaveOrUpdate(stock);
                                }
                            }
                        }

                        STrace.Trace(GetType().FullName, string.Format("Vehículos a procesar: {0}", --vehiculosPendientes));
                    }
                }

                STrace.Trace(GetType().FullName, "Tarea finalizada.");
            }
            catch (Exception ex)
            {
                AddError(ex);
            }
            finally
            {
                ClearData();
            }
        }