private void ArmarTablaPrimerTiempoMuerto(DataSet ds, RepartoAlimentoInfo primerReparto) { var tablaTiemposMuertosPrimerReparto = new DataTable { TableName = "TiemposMuertosPrimerReparto" }; tablaTiemposMuertosPrimerReparto.Columns.Add("HoraInicial", typeof(string)); tablaTiemposMuertosPrimerReparto.Columns.Add("HoraFinal", typeof(string)); tablaTiemposMuertosPrimerReparto.Columns.Add("Causa", typeof(string)); if (primerReparto.ListaTiempoMuerto != null && primerReparto.ListaTiempoMuerto.Any()) { primerReparto.ListaTiempoMuerto.ForEach(tiempos => { DataRow renglonTiempoMuerto = tablaTiemposMuertosPrimerReparto.NewRow(); renglonTiempoMuerto["HoraInicial"] = tiempos.HoraInicio; renglonTiempoMuerto["HoraFinal"] = tiempos.HoraFin; renglonTiempoMuerto["Causa"] = tiempos.CausaTiempoMuerto.Descripcion; tablaTiemposMuertosPrimerReparto.Rows.Add(renglonTiempoMuerto); }); } ds.Tables.Add(tablaTiemposMuertosPrimerReparto); }
/// <summary> /// Obtiene parametros para actualizar /// </summary> /// <param name="info">Valores de la entidad</param> /// <returns></returns> public static Dictionary <string, object> ObtenerParametrosActualizar(RepartoAlimentoInfo info) { try { Logger.Info(); var parametros = new Dictionary <string, object> { { "@RepartoAlimentoID", info.RepartoAlimentoID }, { "@TipoServicioID", info.TipoServicioID }, { "@CamionRepartoID", info.CamionRepartoID }, { "@UsuarioIDReparto", info.UsuarioIDReparto }, { "@HorometroInicial", info.HorometroInicial }, { "@HorometroFinal", info.HorometroFinal }, { "@OdometroInicial", info.OdometroInicial }, { "@OdometroFinal", info.OdometroFinal }, { "@LitrosDiesel", info.LitrosDiesel }, { "@FechaReparto", info.FechaReparto }, { "@Activo", info.Activo }, { "@UsuarioModificacionID", info.UsuarioModificacionID }, }; return(parametros); } catch (Exception ex) { Logger.Error(ex); throw new ExcepcionDesconocida(MethodBase.GetCurrentMethod(), ex); } }
/// <summary> /// Metodo para Crear un registro de RepartoAlimento /// </summary> /// <param name="info">Valores de la entidad que será creada</param> internal int Crear(RepartoAlimentoInfo info) { try { Logger.Info(); Dictionary <string, object> parameters = AuxRepartoAlimentoDAL.ObtenerParametrosCrear(info); int result = Create("RepartoAlimento_Crear", parameters); 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); } }
/// <summary> /// Obtiene un registro de RepartoAlimento /// </summary> /// <param name="filtro">Descripción de la RepartoAlimento</param> /// <returns></returns> internal RepartoAlimentoInfo ConsultarRepartos(FiltroCheckListReparto filtro) { try { Logger.Info(); Dictionary <string, object> parameters = AuxRepartoAlimentoDAL.ObtenerParametrosConsultarReparto(filtro); DataSet ds = Retrieve("RepartoAlimento_ObtenerPorFiltros", parameters); RepartoAlimentoInfo result = null; if (ValidateDataSet(ds)) { result = MapRepartoAlimentoDAL.ObtenerPorConsultarRepartos(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 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); } }
private void ArmarTablaCabecero(DataSet ds, RepartoAlimentoInfo primerReparto, RepartoAlimentoInfo segundoReparto) { var tablaCabecero = new DataTable { TableName = "Cabecero" }; tablaCabecero.Columns.Add("CamionReparto", typeof(string)); tablaCabecero.Columns.Add("Fecha", typeof(DateTime)); tablaCabecero.Columns.Add("Operador", typeof(string)); tablaCabecero.Columns.Add("HorometroInicial", typeof(int)); tablaCabecero.Columns.Add("HorometroFinal", typeof(int)); tablaCabecero.Columns.Add("OdometroInicial", typeof(int)); tablaCabecero.Columns.Add("OdometroFinal", typeof(int)); tablaCabecero.Columns.Add("LitrosDiesel", typeof(int)); tablaCabecero.Columns.Add("Observaciones", typeof(string)); tablaCabecero.Columns.Add("TotalKilosEmbarcadosPrimero", typeof(int)); tablaCabecero.Columns.Add("TotalKilosRepartidosPrimero", typeof(int)); tablaCabecero.Columns.Add("TotalSobrantePrimero", typeof(int)); tablaCabecero.Columns.Add("TotalTiempoViajePrimero", typeof(string)); tablaCabecero.Columns.Add("MermaRepartoPrimero", typeof(int)); tablaCabecero.Columns.Add("TotalKilosEmbarcadosSegundo", typeof(int)); tablaCabecero.Columns.Add("TotalKilosRepartidosSegundo", typeof(int)); tablaCabecero.Columns.Add("TotalSobranteSegundo", typeof(int)); tablaCabecero.Columns.Add("TotalTiempoViajeSegundo", typeof(string)); tablaCabecero.Columns.Add("MermaRepartoSegundo", typeof(int)); if (primerReparto == null || segundoReparto == null) { return; } DataRow renglonCabecero = tablaCabecero.NewRow(); renglonCabecero["CamionReparto"] = primerReparto.CamionReparto.NumeroEconomico; renglonCabecero["Fecha"] = primerReparto.FechaReparto; renglonCabecero["Operador"] = primerReparto.Usuario.Nombre; renglonCabecero["HorometroInicial"] = primerReparto.HorometroInicial; renglonCabecero["HorometroFinal"] = segundoReparto.HorometroFinal; renglonCabecero["OdometroInicial"] = primerReparto.OdometroInicial; renglonCabecero["OdometroFinal"] = segundoReparto.OdometroFinal; renglonCabecero["LitrosDiesel"] = primerReparto.LitrosDiesel + segundoReparto.LitrosDiesel; renglonCabecero["TotalKilosEmbarcadosPrimero"] = primerReparto.TotalKilosEmbarcados; renglonCabecero["TotalKilosRepartidosPrimero"] = primerReparto.TotalKilosRepartidos; renglonCabecero["TotalSobrantePrimero"] = primerReparto.TotalSobrante; renglonCabecero["TotalTiempoViajePrimero"] = primerReparto.TotalTiempoViaje; renglonCabecero["MermaRepartoPrimero"] = primerReparto.MermaReparto; renglonCabecero["TotalKilosEmbarcadosSegundo"] = segundoReparto.TotalKilosEmbarcados; renglonCabecero["TotalKilosRepartidosSegundo"] = segundoReparto.TotalKilosRepartidos; renglonCabecero["TotalSobranteSegundo"] = segundoReparto.TotalSobrante; renglonCabecero["TotalTiempoViajeSegundo"] = segundoReparto.TotalTiempoViaje; renglonCabecero["MermaRepartoSegundo"] = segundoReparto.MermaReparto; renglonCabecero["Observaciones"] = string.Format("{0}; {1}", primerReparto.Observaciones, segundoReparto.Observaciones); tablaCabecero.Rows.Add(renglonCabecero); ds.Tables.Add(tablaCabecero); }
/// <summary> /// Metodo para Guardar/Modificar una entidad RepartoAlimento /// </summary> /// <param name="reparto"></param> /// <param name="repartoDetalle"></param> /// <param name="organizacionID"></param> public int Guardar(RepartoAlimentoInfo reparto, List <GridRepartosModel> repartoDetalle, int organizacionID) { try { Logger.Info(); var repartoAlimentoDAL = new RepartoAlimentoDAL(); int result = reparto.RepartoAlimentoID; var listaRepartosAlimentoDetalle = new List <RepartoAlimentoDetalleInfo>(); GenerarRepartoAlimentoDetalle(repartoDetalle, listaRepartosAlimentoDetalle, organizacionID, reparto.RepartoAlimentoID); using (var transaction = new TransactionScope()) { if (reparto.RepartoAlimentoID == 0) { result = repartoAlimentoDAL.Crear(reparto); } else { repartoAlimentoDAL.Actualizar(reparto); } listaRepartosAlimentoDetalle.ForEach(detalle => { detalle.RepartoAlimentoID = result; detalle.UsuarioCreacionID = reparto.UsuarioCreacionID; }); var repartoAlimentoDetalleDAL = new RepartoAlimentoDetalleDAL(); repartoAlimentoDetalleDAL.Guardar(listaRepartosAlimentoDetalle); if (reparto.ListaTiempoMuerto != null && reparto.ListaTiempoMuerto.Any()) { reparto.ListaTiempoMuerto.ForEach(tiempo => tiempo.UsuarioCreacionID = reparto.UsuarioCreacionID); var tiempoMuertoDAL = new TiempoMuertoDAL(); tiempoMuertoDAL.GuardarTiempoMuertoReparto(reparto.ListaTiempoMuerto.Where(tiempo => tiempo.TiempoMuertoID == 0).ToList(), result); } transaction.Complete(); } return(result); } catch (ExcepcionGenerica) { throw; } 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; } }
/// <summary> /// Obtiene una entidad RepartoAlimento por su descripción /// </summary> /// <param name="descripcion"></param> /// <returns></returns> public RepartoAlimentoInfo ObtenerPorDescripcion(string descripcion) { try { Logger.Info(); var repartoAlimentoDAL = new RepartoAlimentoDAL(); RepartoAlimentoInfo result = repartoAlimentoDAL.ObtenerPorDescripcion(descripcion); return(result); } catch (ExcepcionGenerica) { throw; } 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."; } }
public static void GuardarReparto(RepartoAlimentoInfo reparto, List <GridRepartosModel> repartoDetalle) { try { var repartoAlimentoBL = new RepartoAlimentoBL(); var seguridad = (SeguridadInfo)ObtenerSeguridad(); reparto.UsuarioCreacionID = seguridad.Usuario.UsuarioID; if (reparto.RepartoAlimentoID > 0) { reparto.UsuarioModificacionID = seguridad.Usuario.UsuarioID; } reparto.UsuarioIDReparto = seguridad.Usuario.UsuarioID; int organizacionID = seguridad.Usuario.Organizacion.OrganizacionID; repartoAlimentoBL.Guardar(reparto, repartoDetalle, organizacionID); } catch (Exception ex) { Logger.Error(ex); throw; } }
/// <summary> /// Método que obtiene un registro /// </summary> /// <param name="ds"></param> /// <returns></returns> public static RepartoAlimentoInfo ObtenerPorDescripcion(DataSet ds) { try { Logger.Info(); DataTable dt = ds.Tables[ConstantesDAL.DtDatos]; RepartoAlimentoInfo entidad = (from info in dt.AsEnumerable() select new RepartoAlimentoInfo { RepartoAlimentoID = info.Field <int>("RepartoAlimentoID"), TipoServicio = new TipoServicioInfo { TipoServicioId = info.Field <int>("TipoServicioID"), Descripcion = info.Field <string>("TipoServicio") }, CamionReparto = new CamionRepartoInfo { CamionRepartoID = info.Field <int>("CamionRepartoID"), NumeroEconomico = info.Field <string>("NumeroEconomico") }, Usuario = new UsuarioInfo { UsuarioID = info.Field <int>("UsuarioID") }, HorometroInicial = info.Field <int>("HorometroInicial"), HorometroFinal = info.Field <int>("HorometroFinal"), OdometroInicial = info.Field <int>("OdometroInicial"), OdometroFinal = info.Field <int>("OdometroFinal"), LitrosDiesel = info.Field <int>("LitrosDiesel"), FechaReparto = info.Field <DateTime>("FechaReparto"), Activo = info.Field <bool>("Activo").BoolAEnum(), }).First(); return(entidad); } catch (Exception ex) { Logger.Error(ex); throw new ExcepcionDesconocida(MethodBase.GetCurrentMethod(), ex); } }
private void ArmarTablaSegundoReparto(DataSet ds, RepartoAlimentoInfo segundoReparto) { var tablaSegundoReparto = new DataTable { TableName = "SegundoReparto" }; tablaSegundoReparto.Columns.Add("Racion", typeof(int)); tablaSegundoReparto.Columns.Add("Tolva", typeof(string)); tablaSegundoReparto.Columns.Add("KilosEmbarcados", typeof(int)); tablaSegundoReparto.Columns.Add("KilosRepartidos", typeof(int)); tablaSegundoReparto.Columns.Add("Sobrante", typeof(int)); tablaSegundoReparto.Columns.Add("CorralInicio", typeof(string)); tablaSegundoReparto.Columns.Add("CorralFinal", typeof(string)); tablaSegundoReparto.Columns.Add("HoraInicioReparto", typeof(string)); tablaSegundoReparto.Columns.Add("HoraFinalReparto", typeof(string)); tablaSegundoReparto.Columns.Add("TiempoTotalViaje", typeof(string)); segundoReparto.ListaGridRepartos.ToList().ForEach(detalle => { DataRow renglonPrimerReparto = tablaSegundoReparto.NewRow(); renglonPrimerReparto["Racion"] = detalle.RacionFormula; renglonPrimerReparto["Tolva"] = detalle.NumeroTolva; renglonPrimerReparto["KilosEmbarcados"] = detalle.KilosEmbarcados; renglonPrimerReparto["KilosRepartidos"] = detalle.KilosRepartidos; renglonPrimerReparto["Sobrante"] = detalle.Sobrante; renglonPrimerReparto["CorralInicio"] = detalle.CorralInicio; renglonPrimerReparto["CorralFinal"] = detalle.CorralFinal; renglonPrimerReparto["HoraInicioReparto"] = detalle.HoraInicioReparto; renglonPrimerReparto["HoraFinalReparto"] = detalle.HoraFinalReparto; renglonPrimerReparto["TiempoTotalViaje"] = detalle.TiempoTotalViaje; tablaSegundoReparto.Rows.Add(renglonPrimerReparto); }); ds.Tables.Add(tablaSegundoReparto); }
/// <summary> /// Obtiene parametros para obtener lista paginada /// </summary> /// <param name="pagina"></param> /// <param name="filtro"></param> /// <returns></returns> public static Dictionary <string, object> ObtenerParametrosPorPagina(PaginacionInfo pagina, RepartoAlimentoInfo filtro) { try { Logger.Info(); var parametros = new Dictionary <string, object> { { "@RepartoAlimentoID", filtro.RepartoAlimentoID }, { "@Activo", filtro.Activo }, { "@Inicio", pagina.Inicio }, { "@Limite", pagina.Limite } }; return(parametros); } catch (Exception ex) { Logger.Error(ex); throw new ExcepcionDesconocida(MethodBase.GetCurrentMethod(), ex); } }
/// <summary> /// Obtiene un lista paginada /// </summary> /// <param name="pagina"></param> /// <param name="filtro"></param> /// <returns></returns> internal ResultadoInfo <RepartoAlimentoInfo> ObtenerPorPagina(PaginacionInfo pagina, RepartoAlimentoInfo filtro) { try { Dictionary <string, object> parameters = AuxRepartoAlimentoDAL.ObtenerParametrosPorPagina(pagina, filtro); DataSet ds = Retrieve("RepartoAlimento_ObtenerPorPagina", parameters); ResultadoInfo <RepartoAlimentoInfo> result = null; if (ValidateDataSet(ds)) { result = MapRepartoAlimentoDAL.ObtenerPorPagina(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); } }
/// <summary> /// Obtiene un lista paginada /// </summary> /// <param name="pagina"></param> /// <param name="filtro"></param> /// <returns></returns> public ResultadoInfo <RepartoAlimentoInfo> ObtenerPorPagina(PaginacionInfo pagina, RepartoAlimentoInfo filtro) { try { Logger.Info(); var repartoAlimentoDAL = new RepartoAlimentoDAL(); ResultadoInfo <RepartoAlimentoInfo> result = repartoAlimentoDAL.ObtenerPorPagina(pagina, filtro); return(result); } catch (ExcepcionGenerica) { throw; } catch (Exception ex) { Logger.Error(ex); throw new ExcepcionDesconocida(MethodBase.GetCurrentMethod(), ex); } }
/// <summary> /// Método que obtiene un registro /// </summary> /// <param name="ds"></param> /// <returns></returns> public static RepartoAlimentoInfo ObtenerPorConsultarRepartos(DataSet ds) { try { Logger.Info(); DataTable dt = ds.Tables[ConstantesDAL.DtDatos]; DataTable dtDetalle = ds.Tables[ConstantesDAL.DtDetalle]; DataTable dtTiemposMuertos = ds.Tables[ConstantesDAL.DtTiemposMuertos]; RepartoAlimentoInfo entidad = (from info in dt.AsEnumerable() select new RepartoAlimentoInfo { RepartoAlimentoID = info.Field <int>("RepartoAlimentoID"), TipoServicioID = info.Field <int>("TipoServicioID"), CamionRepartoID = info.Field <int>("CamionRepartoID"), UsuarioIDReparto = info.Field <int>("UsuarioIDReparto"), HorometroInicial = info.Field <int>("HorometroInicial"), HorometroFinal = info.Field <int>("HorometroFinal"), OdometroInicial = info.Field <int>("OdometroInicial"), OdometroFinal = info.Field <int>("OdometroFinal"), LitrosDiesel = info.Field <int>("LitrosDiesel"), FechaReparto = info.Field <DateTime>("FechaReparto"), ListaGridRepartos = (from detalle in dtDetalle.AsEnumerable() select new GridRepartosModel { RepartoAlimentoID = detalle.Field <int>("RepartoAlimentoID"), RepartoAlimentoDetalleID = detalle.Field <int>("RepartoAlimentoDetalleID"), NumeroTolva = detalle.Field <string>("Tolva"), Servicio = info.Field <int>("TipoServicioID"), Reparto = detalle.Field <int>("FolioReparto"), RacionFormula = detalle.Field <int>("FormulaIDRacion"), KilosEmbarcados = detalle.Field <int>("KilosEmbarcados"), KilosRepartidos = detalle.Field <int>("KilosRepartidos"), Sobrante = detalle.Field <int>("Sobrante"), PesoFinal = detalle.Field <int>("PesoFinal"), CorralInicio = detalle.Field <string>("CorralInicio"), CorralFinal = detalle.Field <string>("CorralFinal"), HoraInicioReparto = detalle.Field <string>("HoraRepartoInicio"), HoraFinalReparto = detalle.Field <string>("HoraRepartoFinal"), Observaciones = detalle.Field <string>("Observaciones"), }).ToList(), ListaTiempoMuerto = (from tiempo in dtTiemposMuertos.AsEnumerable() select new TiempoMuertoInfo { TiempoMuertoID = tiempo.Field <int>("TiempoMuertoID"), RepartoAlimentoID = tiempo.Field <int>("RepartoAlimentoID"), HoraInicio = tiempo.Field <string>("HoraInicio"), HoraFin = tiempo.Field <string>("HoraFin"), CausaTiempoMuerto = new CausaTiempoMuertoInfo { CausaTiempoMuertoID = tiempo.Field <int>("CausaTiempoMuertoID"), Descripcion = tiempo.Field <string>("CausaTiempoMuerto") } }).ToList() }).First(); return(entidad); } catch (Exception ex) { Logger.Error(ex); throw new ExcepcionDesconocida(MethodBase.GetCurrentMethod(), ex); } }
private void GenerarReporte(List <RepartoAlimentoInfo> reporte) { var ds = new DataSet(); 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; } ArmarTablaCabecero(ds, primerReparto, segundoReparto); ArmarTablaPrimerReparto(ds, primerReparto); ArmarTablaPrimerTiempoMuerto(ds, primerReparto); ArmarTablaSegundoReparto(ds, segundoReparto); ArmarTablaSegundoTiempoMuerto(ds, segundoReparto); //ds.WriteXml(@"c:\Reporte\CheckListReparto.xml", XmlWriteMode.WriteSchema); //var crystalReport = new ReportDocument(); // creating object of crystal report //crystalReport.Load(Server.MapPath("~/Reportes/CheckListReparto.rpt")); // path of report //crystalReport.SetDataSource(ds); // binding datatable //crv.ReportSource = crystalReport; //crystalReport.ExportToHttpResponse(ExportFormatType.PortableDocFormat, Response, false, string.Format("{0}{1}", "CheckListReparto", primerReparto.FechaReparto)); //crystalReport.Dispose(); //crystalReport.ExportToHttpResponse //(CrystalDecisions.Shared.ExportFormatType.PortableDocFormat, Response, true, "PersonDetails"); var rptdoc = new ReportDocument(); // creating object of crystal report rptdoc.Load(Server.MapPath("~/Reportes/CheckListReparto.rpt")); // path of report rptdoc.SetDataSource(ds); //var archivo = crystalReport.ExportToStream(ExportFormatType.PortableDocFormat); crv.ReportSource = rptdoc; crv.DataBind(); //rptdoc.ExportOptions.ExportFormatType = ExportFormatType.PortableDocFormat; //rptdoc.ExportOptions.ExportDestinationType = ExportDestinationType.DiskFile; //rptdoc.ExportOptions.DestinationOptions = new DiskFileDestinationOptions(); //((DiskFileDestinationOptions)rptdoc.ExportOptions.DestinationOptions).DiskFileName = Server.MapPath("~/Reportes/CheckListReparto.pdf"); //rptdoc.Export(); //rptdoc.Close(); //rptdoc.Dispose(); //Response.ClearContent(); //Response.ClearHeaders(); //Response.ContentType = "application/pdf"; //Response.AppendHeader("Content-Disposition", "attachment; filename=CheckListReparto.pdf"); //Response.WriteFile(Server.MapPath("~/Reportes/CheckListReparto.pdf")); //Response.Flush(); //Response.Close(); //System.IO.File.Delete(Server.MapPath("~/Reportes/CheckListReparto.pdf")); var arreglo = rptdoc.ExportToStream(ExportFormatType.PortableDocFormat); byte[] arregloBytes = new byte[arreglo.Length]; arreglo.Read(arregloBytes, 0, Convert.ToInt32(arreglo.Length)); arreglo.Close(); //arreglo.Length Response.ContentType = "application/pdf"; Response.AddHeader("Content-Disposition", "attachment;filename=CheckListReparto.pdf"); Response.BinaryWrite(arregloBytes); Session["ErrorCheckListReparto"] = "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; } } }