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); } }
/// <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); } }
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; } }
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; } }
/// <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); } }
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."; } }
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; } } }
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); }