Ejemplo n.º 1
0
        public RepartoAlimentoInfo ConsultarRepartos(FiltroCheckListReparto filtro)
        {
            try
            {
                Logger.Info();
                var repartoAlimentoDAL     = new RepartoAlimentoDAL();
                RepartoAlimentoInfo result = repartoAlimentoDAL.ConsultarRepartos(filtro);
                if (result == null)
                {
                    return(null);
                }
                result.ListaGridRepartos.ToList().ForEach(deta =>
                {
                    deta.TiempoTotalViaje = ObtenerTiempoTotalViajeConsulta(result.FechaReparto, deta);
                });

                result.TotalKilosEmbarcados = result.ListaGridRepartos.Sum(rep => rep.KilosEmbarcados);
                result.TotalKilosRepartidos = result.ListaGridRepartos.Sum(rep => rep.KilosRepartidos);
                result.TotalSobrante        = result.TotalKilosEmbarcados - result.TotalKilosRepartidos;
                result.TotalTiempoViaje     = ObtenerTiempoTotalSuma(result.ListaGridRepartos);
                result.MermaReparto         = ObtenerMermaReparto(result.ListaGridRepartos);
                result.Observaciones        = ObtenerObservacion(result.ListaGridRepartos);

                return(result);
            }
            catch (ExcepcionGenerica)
            {
                throw;
            }
            catch (Exception ex)
            {
                Logger.Error(ex);
                throw new ExcepcionDesconocida(MethodBase.GetCurrentMethod(), ex);
            }
        }
Ejemplo n.º 2
0
 /// <summary>
 /// Obtiene un registro de RepartoAlimento
 /// </summary>
 /// <param name="filtro">Descripción de la RepartoAlimento</param>
 /// <returns></returns>
 internal List <RepartoAlimentoInfo> ImprimirRepartos(FiltroCheckListReparto filtro)
 {
     try
     {
         Logger.Info();
         Dictionary <string, object> parameters = AuxRepartoAlimentoDAL.ObtenerParametrosImprimirReparto(filtro);
         DataSet ds = Retrieve("RepartoAlimento_ObtenerImpresion", parameters);
         List <RepartoAlimentoInfo> result = null;
         if (ValidateDataSet(ds))
         {
             result = MapRepartoAlimentoDAL.ObtenerPorImprimirRepartos(ds);
         }
         return(result);
     }
     catch (SqlException ex)
     {
         Logger.Error(ex);
         throw new ExcepcionServicio(MethodBase.GetCurrentMethod(), ex);
     }
     catch (DataException ex)
     {
         Logger.Error(ex);
         throw new ExcepcionServicio(MethodBase.GetCurrentMethod(), ex);
     }
     catch (Exception ex)
     {
         Logger.Error(ex);
         throw new ExcepcionDesconocida(MethodBase.GetCurrentMethod(), ex);
     }
 }
Ejemplo n.º 3
0
 public static RepartoAlimentoInfo ConsultarRepartos(FiltroCheckListReparto filtro)
 {
     try
     {
         var repartoAlimentoBL = new RepartoAlimentoBL();
         var seguridad         = (SeguridadInfo)ObtenerSeguridad();
         filtro.OperadorID = seguridad.Usuario.UsuarioID;
         RepartoAlimentoInfo repartos = repartoAlimentoBL.ConsultarRepartos(filtro);
         return(repartos);
     }
     catch (Exception ex)
     {
         Logger.Error(ex);
         throw;
     }
 }
Ejemplo n.º 4
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;
     }
 }
Ejemplo n.º 5
0
 /// <summary>
 /// Obtiene la Lista de los valores para el Grid de Repartos
 /// </summary>
 /// <param name="filtro">filtros de la busqueda</param>
 /// <returns></returns>
 public static Dictionary <string, object> ObtenerParametrosImprimirReparto(FiltroCheckListReparto filtro)
 {
     try
     {
         Logger.Info();
         var parametros =
             new Dictionary <string, object>
         {
             { "@OperadorID", filtro.OperadorID },
             { "@Fecha", filtro.Fecha },
             { "@CamionRepartoID", filtro.CamionRepartoID },
         };
         return(parametros);
     }
     catch (Exception ex)
     {
         Logger.Error(ex);
         throw new ExcepcionDesconocida(MethodBase.GetCurrentMethod(), ex);
     }
 }
Ejemplo n.º 6
0
        protected void Page_Load(object sender, EventArgs e)
        {
            try
            {
                var operadorID      = Request.QueryString["OperadorID"];
                var fecha           = Request.QueryString["Fecha"];
                var camionRepartoID = Request.QueryString["CamionRepartoID"];

                var filtro = new FiltroCheckListReparto
                {
                    OperadorID      = Convert.ToInt32(operadorID),
                    Fecha           = DateTime.Parse(fecha),
                    CamionRepartoID = Convert.ToInt32(camionRepartoID)
                };
                var repartoAlimentoBL = new RepartoAlimentoBL();
                List <RepartoAlimentoInfo> reporte = repartoAlimentoBL.ImprimirRepartos(filtro);

                if (reporte == null)
                {
                    Session["ErrorCheckListReparto"] = "No hay información para los datos ingresados.";
                    return;
                }

                RepartoAlimentoInfo primerReparto =
                    reporte.FirstOrDefault(rep => rep.TipoServicioID == TipoServicioEnum.Matutino.GetHashCode());
                RepartoAlimentoInfo segundoReparto =
                    reporte.FirstOrDefault(rep => rep.TipoServicioID == TipoServicioEnum.Vespertino.GetHashCode());

                if (primerReparto == null || segundoReparto == null)
                {
                    Session["ErrorCheckListReparto"] = "No se han finalizado los registros de los dos servicios de reparto.";
                    return;
                }

                GenerarReporte(reporte);
            }
            catch (Exception ex)
            {
                Session["ErrorCheckListReparto"] = "Ocurrio un error al imprimir el CheckList de Reparto.";
            }
        }
Ejemplo n.º 7
0
        private void GenerarValoresGridReparto(List <GridRepartosModel> repartos, List <DatosRepartoDataLinkModel> datosDataLink, FiltroCheckListReparto filtro)
        {
            int orden = 0;

            datosDataLink.ForEach(data =>
            {
                orden++;
                data.OrdenRegistro = orden;
            });



            var datosFiltrados = new List <DatosRepartoDataLinkModel>();

            foreach (var datosRepartoDataLinkModel in datosDataLink)
            {
                if (datosRepartoDataLinkModel.Operador == filtro.OperadorID && datosRepartoDataLinkModel.NumeroCamion.ToUpper().Trim().Equals(filtro.NumeroEconomico.ToUpper().Trim()) && datosRepartoDataLinkModel.TipoServicio == filtro.TipoServicioID)
                {
                    var fechaSplit   = datosRepartoDataLinkModel.Fecha.Split('-');
                    var fechaReparto = new DateTime();
                    if (datosRepartoDataLinkModel.FormatoFecha == 0)
                    {
                        fechaReparto = new DateTime(2000 + Convert.ToInt32(fechaSplit[2]), Convert.ToInt32(fechaSplit[0]), Convert.ToInt32(fechaSplit[1]));
                    }
                    if (fechaReparto.Date != filtro.Fecha.Date)
                    {
                        continue;
                    }
                    datosRepartoDataLinkModel.FechaReparto = fechaReparto;
                    datosFiltrados.Add(datosRepartoDataLinkModel);
                }
            }
            if (!datosFiltrados.Any())
            {
                return;
            }
            repartos.AddRange((from data in datosFiltrados.OrderBy(data => data.OrdenRegistro)
                               group data by data.NumeroReparto into agrupado
                               let elementoDatos = agrupado.FirstOrDefault()
                                                   let kilosEmbarcados = ObtenerKilosEmbarcados(agrupado)
                                                                         let kilosRepartidos = ObtenerKilosRepartidos(agrupado)
                                                                                               select new GridRepartosModel
            {
                NumeroTolva = string.Empty,
                Servicio = elementoDatos == null ? 0 : elementoDatos.TipoServicio,
                Reparto = elementoDatos.NumeroReparto,
                RacionFormula = ObtenerRacionFormula(agrupado),
                KilosEmbarcados = kilosEmbarcados,
                KilosRepartidos = kilosRepartidos,
                Sobrante = kilosEmbarcados - kilosRepartidos,
                CorralInicio = ObtenerCorralInicio(agrupado),
                CorralFinal = ObtenerCorralFinal(agrupado),
                HoraInicioReparto = ObtenerHoraInicio(agrupado),
                HoraFinalReparto = ObtenerHoraFinal(agrupado),
                TiempoTotalViaje = ObtenerTiempoTotalViaje(agrupado.ToList()),
                PesoFinal = ObtenerPesoFinal(agrupado.ToList(), kilosRepartidos)
            }
                               ).ToList());

            var repartoAlimentoBL = new RepartoAlimentoDAL();
            RepartoAlimentoInfo repartoAlimentoExiste = repartoAlimentoBL.ConsultarRepartos(filtro);

            if (repartoAlimentoExiste != null && (repartoAlimentoExiste.ListaGridRepartos != null && repartoAlimentoExiste.ListaGridRepartos.Any()))
            {
                foreach (var datosReparto in repartos)
                {
                    var reparto =
                        repartoAlimentoExiste.ListaGridRepartos.FirstOrDefault(
                            rep => rep.Reparto == datosReparto.Reparto &&
                            rep.Servicio == datosReparto.Servicio &&
                            rep.RacionFormula == datosReparto.RacionFormula);
                    if (reparto == null)
                    {
                        continue;
                    }
                    datosReparto.NumeroTolva = reparto.NumeroTolva;
                }
            }
        }
Ejemplo n.º 8
0
        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);
        }