示例#1
0
 /// <summary>
 /// Metodo que actualiza el estatus a recibido de la programacion de embarque (Cabecero)
 /// </summary>
 /// <param name="entradaGanado"></param>
 /// <param name="estatus"></param>
 internal void ActualizarEstatus(EntradaGanadoInfo entradaGanado, Estatus estatus)
 {
     try
     {
         Logger.Info();
         var embarqueDAL = new EmbarqueDAL();
         embarqueDAL.ActualizarEstatus(entradaGanado, estatus);
     }
     catch (ExcepcionGenerica)
     {
         throw;
     }
     catch (Exception ex)
     {
         Logger.Error(ex);
         throw new ExcepcionDesconocida(MethodBase.GetCurrentMethod(), ex);
     }
 }
示例#2
0
        /// <summary>
        ///     Obtiene registro de la programación de embarque por su Id
        /// </summary>
        /// <returns></returns>
        internal EmbarqueInfo ObtenerPorFolioEmbarqueOrganizacion(int folioEmbarque, int organizacionId)
        {
            EmbarqueInfo info;

            try
            {
                Logger.Info();
                var embarqueDAL = new EmbarqueDAL();
                info = embarqueDAL.ObtenerPorFolioEmbarqueOrganizacion(folioEmbarque, organizacionId);
            }
            catch (ExcepcionGenerica)
            {
                throw;
            }
            catch (Exception ex)
            {
                Logger.Error(ex);
                throw new ExcepcionDesconocida(MethodBase.GetCurrentMethod(), ex);
            }
            return(info);
        }
示例#3
0
        /// <summary>
        /// Metodo que Obtiene los embarques que estan pendientes de recibir
        /// </summary>
        /// <param name="entradaGanado"></param>
        internal int PendientesRecibir(EntradaGanadoInfo entradaGanado)
        {
            int totalPendientes;

            try
            {
                Logger.Info();
                var embarqueDAL = new EmbarqueDAL();
                totalPendientes = embarqueDAL.PendientesRecibir(entradaGanado);
            }
            catch (ExcepcionGenerica)
            {
                throw;
            }
            catch (Exception ex)
            {
                Logger.Error(ex);
                throw new ExcepcionDesconocida(MethodBase.GetCurrentMethod(), ex);
            }
            return(totalPendientes);
        }
示例#4
0
        /// <summary>
        /// Obtiene una lista de embarques pendiente de recibir
        /// </summary>
        /// <param name="pagina"></param>
        /// <param name="filtro"></param>
        /// <returns></returns>
        internal ResultadoInfo <EntradaEmbarqueInfo> ObtenerEmbarquesPedientesPorPagina(PaginacionInfo pagina, FiltroEmbarqueInfo filtro)
        {
            ResultadoInfo <EntradaEmbarqueInfo> result;

            try
            {
                Logger.Info();
                var embarqueDAL = new EmbarqueDAL();
                result = embarqueDAL.ObtenerEmbarquesPedientesPorPagina(pagina, filtro);
            }
            catch (ExcepcionGenerica)
            {
                throw;
            }
            catch (Exception ex)
            {
                Logger.Error(ex);
                throw new ExcepcionDesconocida(MethodBase.GetCurrentMethod(), ex);
            }
            return(result);
        }
示例#5
0
        /// <summary>
        ///     Obtiene registro de la programación de embarque por su folio
        /// </summary>
        /// <param name="embarqueId"> </param>
        /// <returns></returns>
        internal IList <EmbarqueDetalleInfo> ObtenerEscalasPorEmbarqueID(int embarqueId)
        {
            IList <EmbarqueDetalleInfo> result;

            try
            {
                Logger.Info();
                var embarqueDAL = new EmbarqueDAL();
                result = embarqueDAL.ObtenerEscalasPorEmbarqueID(embarqueId);
            }
            catch (ExcepcionGenerica)
            {
                throw;
            }
            catch (Exception ex)
            {
                Logger.Error(ex);
                throw new ExcepcionDesconocida(MethodBase.GetCurrentMethod(), ex);
            }
            return(result);
        }
示例#6
0
        /// <summary>
        ///     Obtiene registro de la programación de embarque por su folio
        /// </summary>
        /// <param> <name></name> </param>
        /// <param name="folioEmbarque"> </param>
        /// <returns></returns>
        internal EmbarqueInfo ObtenerPorFolioEmbarque(int folioEmbarque)
        {
            EmbarqueInfo result;

            try
            {
                Logger.Info();
                var embarqueDAL = new EmbarqueDAL();
                result = embarqueDAL.ObtenerPorFolioEmbarque(folioEmbarque);
            }
            catch (ExcepcionGenerica)
            {
                throw;
            }
            catch (Exception ex)
            {
                Logger.Error(ex);
                throw new ExcepcionDesconocida(MethodBase.GetCurrentMethod(), ex);
            }
            return(result);
        }
示例#7
0
        /// <summary>
        ///     Metodo que guarda un Embarque
        /// </summary>
        /// <param name="embarqueInfo"></param>
        internal int GuardarEmbarque(EmbarqueInfo embarqueInfo)
        {
            try
            {
                Logger.Info();
                var embarqueDAL = new EmbarqueDAL();
                using (var transaction = new TransactionScope())
                {
                    if (embarqueInfo.EmbarqueID != 0)
                    {
                        embarqueDAL.Actualizar(embarqueInfo);
                    }
                    else
                    {
                        embarqueInfo.EmbarqueID = embarqueDAL.Crear(embarqueInfo);
                    }

                    embarqueDAL.GuardarEscala(embarqueInfo.ListaEscala,
                                              embarqueInfo.EmbarqueID);

                    //Obtener por Programacion por ID
                    IList <EmbarqueDetalleInfo> listaEscalasGuardado =
                        embarqueDAL.ObtenerEscalasPorEmbarqueID(
                            embarqueInfo.EmbarqueID);

                    //relacionar el identity EmbarqueDetalleID a la lista de costos
                    IEnumerable <CostoEmbarqueDetalleInfo> listaCostos =
                        embarqueInfo.ListaEscala.SelectMany(x => x.ListaCostoEmbarqueDetalle).ToList();

                    foreach (var costo in listaCostos)
                    {
                        if (costo.EmbarqueDetalleID != 0)
                        {
                            continue;
                        }
                        var escalaInfo =
                            listaEscalasGuardado.FirstOrDefault(x => x.Orden == costo.Orden);
                        if (escalaInfo != null)
                        {
                            costo.EmbarqueDetalleID = escalaInfo.EmbarqueDetalleID;
                        }
                    }

                    if (listaCostos.Any())
                    {
                        embarqueDAL.GuardarCosto(listaCostos);
                    }

                    var embarqueGuardado = embarqueDAL.ObtenerPorID(embarqueInfo.EmbarqueID);
                    transaction.Complete();

                    return(embarqueGuardado.FolioEmbarque);
                }
            }
            catch (ExcepcionGenerica)
            {
                throw;
            }
            catch (Exception ex)
            {
                Logger.Error(ex);
                throw new ExcepcionDesconocida(MethodBase.GetCurrentMethod(), ex);
            }
        }