Exemple #1
0
 public static FiltroGenerarArchivoDataLink GenerarRepartos(FiltroCheckListReparto filtro)
 {
     try
     {
         var repartoAlimentoBL = new RepartoAlimentoBL();
         var seguridad         = (SeguridadInfo)ObtenerSeguridad();
         filtro.OperadorID     = seguridad.Usuario.Operador.OperadorID;
         filtro.OrganizacionID = seguridad.Usuario.Organizacion.OrganizacionID;
         FiltroGenerarArchivoDataLink repartos = repartoAlimentoBL.GenerarRepartos(filtro);
         return(repartos);
     }
     catch (Exception ex)
     {
         Logger.Error(ex);
         throw;
     }
 }
        public FiltroGenerarArchivoDataLink GenerarRepartos(FiltroCheckListReparto filtro)
        {
            var repartos  = new List <GridRepartosModel>();
            var respuesta = new FiltroGenerarArchivoDataLink();

            try
            {
                Logger.Info();
                var parametroOrganizacionDAL = new ParametroOrganizacionDAL();

                ParametroOrganizacionInfo parametroRutaArchivo =
                    parametroOrganizacionDAL.ObtenerPorOrganizacionIDClaveParametro(filtro.OrganizacionID,
                                                                                    ParametrosEnum.rutaArchivoDatalink.
                                                                                    ToString());
                ParametroOrganizacionInfo parametroNombreArchivo =
                    parametroOrganizacionDAL.ObtenerPorOrganizacionIDClaveParametro(filtro.OrganizacionID,
                                                                                    ParametrosEnum.nombreArchivoDatalink.
                                                                                    ToString());
                if (parametroRutaArchivo == null)
                {
                    respuesta.Mensaje = string.Format(ConstantesBL.MensajeSinParametro, ParametrosEnum.rutaArchivoDatalink.
                                                      ToString());
                    return(respuesta);
                }

                if (parametroNombreArchivo == null)
                {
                    respuesta.Mensaje = string.Format(ConstantesBL.MensajeSinParametro, ParametrosEnum.nombreArchivoDatalink.
                                                      ToString());
                    return(respuesta);
                }
                string archivoDataLink = string.Format("{0}{1}", parametroRutaArchivo.Valor,
                                                       parametroNombreArchivo.Valor);
                if (File.Exists(archivoDataLink))
                {
                    string[] valoresArchivo;
                    using (var sr = new StreamReader(archivoDataLink))
                    {
                        valoresArchivo = sr.ReadToEnd().Split('\n');
                    }
                    var datosDataLink = (from s in valoresArchivo where !string.IsNullOrWhiteSpace(s) select CargarDatosArchivo(s)).ToList();
                    GenerarValoresGridReparto(repartos, datosDataLink, filtro);
                    if (!repartos.Any())
                    {
                        respuesta.Mensaje = ConstantesBL.MensajeSinDatosDataLink;
                    }
                    else
                    {
                        respuesta.DatosDataLink        = repartos;
                        respuesta.TotalKilosEmbarcados = repartos.Sum(rep => rep.KilosEmbarcados);
                        respuesta.TotalKilosRepartidos = repartos.Sum(rep => rep.KilosRepartidos);
                        respuesta.TotalSobrante        = respuesta.TotalKilosEmbarcados - respuesta.TotalKilosRepartidos;
                        respuesta.TotalTiempoViaje     = ObtenerTiempoTotalSuma(repartos);
                        respuesta.MermaReparto         = ObtenerMermaReparto(repartos);



                        //respuesta.DatosDataLink.ToList().ForEach(deta =>
                        //{
                        //    deta.TiempoTotalViaje = ObtenerTiempoTotalViajeConsulta(filtro.Fecha, deta);
                        //});
                    }
                }
                else
                {
                    respuesta.Mensaje = ConstantesBL.MensajeArchivoNoExiste;
                }
            }
            catch (ExcepcionGenerica ex)
            {
                Logger.Error(ex);
                throw new ExcepcionDesconocida(MethodBase.GetCurrentMethod(), ex);
            }
            catch (Exception ex)
            {
                Logger.Error(ex);
                throw new ExcepcionDesconocida(MethodBase.GetCurrentMethod(), ex);
            }
            return(respuesta);
        }