Exemple #1
0
        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);
        }
Exemple #2
0
 /// <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);
     }
 }
Exemple #3
0
 /// <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);
     }
 }
Exemple #4
0
 /// <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);
            }
        }
Exemple #6
0
        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);
            }
        }
Exemple #8
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;
     }
 }
 /// <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);
     }
 }
Exemple #10
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.";
            }
        }
Exemple #11
0
 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;
     }
 }
Exemple #12
0
 /// <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);
     }
 }
Exemple #13
0
        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);
        }
Exemple #14
0
 /// <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);
     }
 }
Exemple #15
0
 /// <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);
     }
 }
Exemple #17
0
 /// <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);
     }
 }
Exemple #18
0
        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;
                }
            }
        }