Пример #1
0
 private void ObtenerEntradasGanado()
 {
     try
     {
         var entradaGanadoPL = new EntradaGanadoPL();
         if (!dtpFecha.SelectedDate.HasValue || dtpFecha.SelectedDate.Value == DateTime.MinValue)
         {
             SkMessageBox.Show(Application.Current.Windows[ConstantesVista.WindowPrincipal],
                               Properties.Resources.ImpresionTarjetaRecepcion_FechaInvalida, MessageBoxButton.OK,
                               MessageImage.Warning);
             return;
         }
         Contexto.Fecha   = dtpFecha.SelectedDate.Value;
         impresionTarjeta =
             entradaGanadoPL.ObtenerEntradasImpresionTarjetaRecepcion(Contexto);
         if (impresionTarjeta != null && impresionTarjeta.Any())
         {
             impresionTarjeta.ForEach(impre =>
             {
                 impre.Descripcion =
                     string.Format(Properties.Resources.ImpresionTarjetaRecepcion_NomenclaturaFormato,
                                   impre.FolioEntrada);
             });
         }
     }
     catch (Exception ex)
     {
         Logger.Error(ex);
         SkMessageBox.Show(Application.Current.Windows[ConstantesVista.WindowPrincipal],
                           Properties.Resources.ImpresionTarjetaRecepcion_ErrorConsultarEntradas, MessageBoxButton.OK,
                           MessageImage.Error);
     }
 }
 /// <summary>
 /// Funcion que permite generar la lista de corrales listos para ser programados
 /// </summary>
 private void LlenaDatosGrid()
 {
     try
     {
         var entradaGanadoPl = new EntradaGanadoPL();
         listaEntradaGanado = entradaGanadoPl.ObtenerPorTipoCorral(organizacionID, (int)TipoCorral.Recepcion);
         if (listaEntradaGanado != null)
         {
             dgProgramacionCorteGanado.ItemsSource = agruparLista(listaEntradaGanado.Lista);
         }
         else
         {
             dgProgramacionCorteGanado.ItemsSource = null;
             SkMessageBox.Show(Application.Current.Windows[ConstantesVista.WindowPrincipal],
                               Properties.Resources.ProgramacionCorteGanado_ErrorSinDatos,
                               MessageBoxButton.OK,
                               MessageImage.Warning);
         }
     }
     catch (ExcepcionGenerica)
     {
         SkMessageBox.Show(Application.Current.Windows[ConstantesVista.WindowPrincipal],
                           Properties.Resources.ProgramacionCorteGanado_ErrorObtenerPartidas,
                           MessageBoxButton.OK,
                           MessageImage.Error);
     }
     catch (Exception ex)
     {
         Logger.Error(ex);
         SkMessageBox.Show(Application.Current.Windows[ConstantesVista.WindowPrincipal],
                           Properties.Resources.ProgramacionCorteGanado_ErrorObtenerPartidas,
                           MessageBoxButton.OK,
                           MessageImage.Error);
     }
 }
Пример #3
0
 /// <summary>
 /// Consulta el Folio de Entrada Seleccionado
 /// </summary>
 private void ConsultarEntradaGanado()
 {
     try
     {
         int folioEntrada;
         int.TryParse(skAyudaFolio.Descripcion, out folioEntrada);
         if (folioEntrada == 0)
         {
             skAyudaFolio.Descripcion = skAyudaFolio.Clave;
             int.TryParse(skAyudaFolio.Descripcion, out folioEntrada);
         }
         var entradaGanadoPL = new EntradaGanadoPL();
         var entradaGanado   = entradaGanadoPL.ObtenerEntradasGanadoCosteado(folioEntrada, organizacionIdLogin);
         if (entradaGanado == null)
         {
             return;
         }
         ContenedorCosteoEntrada.EntradaGanado = entradaGanado;
         CargarCamposConsulta();
         var dataContext = DataContext;
         DataContext = null;
         DataContext = dataContext;
         skAyudaFolio.Descripcion =
             ContenedorCosteoEntrada.EntradaGanado.FolioEntrada.ToString(CultureInfo.InvariantCulture);
     }
     catch (Exception ex)
     {
         SkMessageBox.Show(Application.Current.Windows[ConstantesVista.WindowPrincipal], ex.Message, MessageBoxButton.OK, MessageImage.Error);
     }
 }
 /// <summary>
 /// Metodo para obtener corrales con sus lotes activos
 /// </summary>
 /// <param name="inicio"></param>
 /// <param name="limite"></param>
 private void ObtenerPartidas(int inicio, int limite)
 {
     try
     {
         var entradaPL = new EntradaGanadoPL();
         var pagina    = new PaginacionInfo {
             Inicio = inicio, Limite = limite
         };
         ResultadoInfo <EntradaGanadoInfo> resultadoBusqueda = entradaPL.ObtenerPartidasProgramadasPorPaginas(pagina, int.MinValue,
                                                                                                              organizacionID);
         if (resultadoBusqueda != null && resultadoBusqueda.Lista != null &&
             resultadoBusqueda.Lista.Count > 0)
         {
             GridResultado.ItemsSource         = agruparGrid(resultadoBusqueda.Lista);
             PaginacionPartidas.TotalRegistros = resultadoBusqueda.TotalRegistros;
         }
         else
         {
             PaginacionPartidas.TotalRegistros = 0;
             GridResultado.ItemsSource         = new List <EntradaGanadoInfo>();
         }
         GridResultado.SelectedIndex = -1;
     }
     catch (Exception)
     {
         SkMessageBox.Show(Application.Current.Windows[ConstantesVista.WindowPrincipal],
                           "Ocurrio un error al consultar las partidas", MessageBoxButton.OK, SuKarne.Controls.Enum.MessageImage.Error);
     }
 }
Пример #5
0
        private void Guardar()
        {
            var entradaGanadoPL = new EntradaGanadoPL();

            entradaGanadoPL.GuardarReemplazoAretes(Contexto.ListaAretes.Where(
                                                       are => are.PermiteEditar && (!are.AreteCentro.Trim().Equals(are.AreteCorte.Trim()))).ToList(), Contexto.EntradaGanado);
            SkMessageBox.Show(Application.Current.Windows[ConstantesVista.WindowPrincipal],
                              Properties.Resources.GuardadoConExito, MessageBoxButton.OK, MessageImage.Correct);
            InicializaContexto();
            dgAretes.ItemsSource = null;
        }
Пример #6
0
 /// <summary>
 /// Metodo para obtener corrales con sus lotes activos que no cuentan con fecha de evalauacion
 /// </summary>
 private void ObtenerCorrales()
 {
     try
     {
         var usuario        = HttpContext.Current.Session["Seguridad"] as SeguridadInfo;
         int organizacionID = 0;
         if (usuario != null)
         {
             organizacionID = usuario.Usuario.Organizacion.OrganizacionID;
         }
         var entradaPl         = new EntradaGanadoPL();
         var resultadoBusqueda = entradaPl.ObtenerPorIDOrganizacion(organizacionID,
                                                                    TipoCorral.Recepcion.GetHashCode());
         if (resultadoBusqueda != null && resultadoBusqueda.Lista != null &&
             resultadoBusqueda.Lista.Count > 0)
         {
             var listaBusqueda = (from item in resultadoBusqueda.Lista
                                  select new
             {
                 Horas = CalcularHorasTranscurridas(item.FechaEntrada, item.FechaSalida),
                 item.FolioEntrada,
                 item.CodigoCorral,
                 item.Lote.LoteID,
                 item.Lote.Lote,
                 item.CabezasRecibidas,
                 item.PesoTara,
                 PesoLlegada = String.Format("{0:#,#}", (int)(item.PesoBruto - item.PesoTara)),
                 item.FechaEntrada,
                 item.OrganizacionOrigen,
                 item.FolioOrigen,
                 item.CorralID,
                 item.PesoBruto,
                 item.FechaSalida,
                 item.PesoOrigen,
                 HoraLlegada = item.FechaEntrada.ToShortTimeString()
             }).ToList();
             gvBusqueda.DataSource = listaBusqueda;
             gvBusqueda.DataBind();
             txttotalAyuda.Value = Numeros.ValorUno.GetHashCode().ToString();
         }
         else
         {
             gvBusqueda.DataSource = new List <EntradaGanadoInfo>();
             gvBusqueda.DataBind();
             txttotalAyuda.Value = Numeros.ValorCero.GetHashCode().ToString();
         }
     }
     catch (Exception ex)
     {
         Logger.Error(ex);
     }
 }
Пример #7
0
 public static EntradaGanadoInfo TraerInformacionEntrada(FiltroCalificacionGanadoInfo filtroCalificacionGanado)
 {
     try
     {
         var entradaGanadoPL = new EntradaGanadoPL();
         var seguridad       = (SeguridadInfo)ObtenerSeguridad();
         filtroCalificacionGanado.OrganizacionID = seguridad.Usuario.Organizacion.OrganizacionID;
         var entradaGanado = entradaGanadoPL.ObtenerEntradaGanadoCapturaCalidad(filtroCalificacionGanado);
         return(entradaGanado);
     }
     catch (Exception ex)
     {
         Logger.Error(ex);
         throw;
     }
 }
Пример #8
0
        public static Response <List <EntradaGanadoInfo> > ObtenerCorralesSinEvaluar()
        {
            try
            {
                int organizacionID = 0;
                var usuario        = HttpContext.Current.Session["Seguridad"] as SeguridadInfo;
                if (usuario != null)
                {
                    organizacionID = usuario.Usuario.Organizacion.OrganizacionID;
                }
                var entradaPl         = new EntradaGanadoPL();
                var resultadoBusqueda = entradaPl.TraerGanadoPorOrganizacionId(organizacionID,
                                                                               (int)TipoCorral.Recepcion);

                if (resultadoBusqueda != null)
                {
                    var listaBusqueda = (from item in resultadoBusqueda
                                         select new EntradaGanadoInfo
                    {
                        Horas = item.Horas,
                        FolioEntrada = item.FolioEntrada,
                        CodigoCorral = item.CodigoCorral,
                        LoteID = item.LoteID,
                        CodigoLote = item.CodigoLote,
                        CabezasRecibidas = item.CabezasRecibidas,
                        PesoLlegada = (int)(item.PesoBruto - item.PesoTara),
                        PesoTara = item.PesoTara,
                        FechaEntrada = item.FechaEntrada,
                        OrganizacionOrigen = item.OrganizacionOrigen,
                        FolioOrigen = item.FolioOrigen,
                        CorralID = item.CorralID,
                        PesoBruto = item.PesoBruto,
                        FechaSalida = item.FechaSalida,
                        PesoOrigen = item.PesoOrigen
                    }).ToList();
                    return(Response <List <EntradaGanadoInfo> > .CrearResponse(true, listaBusqueda));
                }
                return(Response <List <EntradaGanadoInfo> > .CrearResponseVacio <List <EntradaGanadoInfo> >(false,
                                                                                                            "Ocurrio un error al consultar"));
            }
            catch (Exception ex)
            {
                return(Response <List <EntradaGanadoInfo> > .CrearResponseVacio <List <EntradaGanadoInfo> >(false,
                                                                                                            ex.Message));
            }
        }
        public static CorralInfo TraerCorral(CorralInfo corralInfo, int embarqueId)
        {
            try
            {
                var seguridad      = (SeguridadInfo)ObtenerSeguridad();
                int organizacionId = seguridad.Usuario.Organizacion.OrganizacionID; //corralInfo.Organizacion.OrganizacionID;

                var corralPL = new CorralPL();
                corralInfo.Organizacion = new OrganizacionInfo {
                    OrganizacionID = organizacionId
                };
                corralInfo.TipoCorral = new TipoCorralInfo {
                    TipoCorralID = 1
                };                                                               //TipoCorral = 1 Recepción

                CorralInfo corral = corralPL.ObtenerPorCodigoCorral(corralInfo);

                if (corral != null)
                {
                    int corralId    = corral.CorralID;
                    int lotesActivo = TraerLoteObtenerActivosPorCorral(corralId);
                    if (lotesActivo > 0)
                    {
                        //Obtener programaciones por corral
                        var entradaGanadoPL = new EntradaGanadoPL();
                        int total           = entradaGanadoPL.ObtenerPorCorralDisponible(organizacionId, corralId, embarqueId);
                        if (total > 0)
                        {
                            //si la condición se cumple el corral ya tiene un lote asignado
                            corral = new CorralInfo();
                        }
                    }
                }

                return(corral);
            }
            catch (Exception ex)
            {
                Logger.Error(ex);
                throw;
            }
        }
Пример #10
0
        private void ObtenerDiasEngorda(IEnumerable <AnimalInfo> animales)
        {
            var entradaGanadoPL = new EntradaGanadoPL();
            List <EntradaGanadoInfo> entradas = animales.Select(x => new EntradaGanadoInfo
            {
                FolioOrigen    = x.FolioEntrada,
                OrganizacionID = Contexto.OrganizacionId
            }).ToList();

            entradas = entradaGanadoPL.ObtenerEntradasPorFolioOrigenXML(entradas);
            if (entradas != null && entradas.Any())
            {
                var    count = entradas.Count;
                double temp  = 0D;
                for (int i = 0; i < count; i++)
                {
                    temp += entradas[i].FechaEntrada.Ticks / (double)count;
                }
                var fechaPromedio = new TimeSpan((long)temp);
                var fechaActual   = new TimeSpan(DateTime.Now.Ticks);
                Contexto.DiasEngorda = (fechaActual - fechaPromedio).Days;
            }
        }
Пример #11
0
 private void ObtenerAretesPartida()
 {
     try
     {
         var entradaGanadoPL = new EntradaGanadoPL();
         List <FiltroAnimalesReemplazoArete> aretes = entradaGanadoPL.ObtenerReemplazoAretes(Contexto.EntradaGanado);
         if (aretes == null)
         {
             SkMessageBox.Show(Application.Current.Windows[ConstantesVista.WindowPrincipal], Properties.Resources.ReemplazoArete_SinAretes, MessageBoxButton.OK, MessageImage.Warning);
             InicializaContexto();
             return;
         }
         FiltroAnimalesReemplazoArete primerArete = aretes.FirstOrDefault();
         if (primerArete != null)
         {
             Contexto.CabezasOrigen    = primerArete.CabezasOrigen;
             Contexto.CabezasRecibidas = primerArete.CabezasRecibidas;
             Contexto.CabezasCortadas  = aretes.Count(arete => arete.AnimalID != 0 && arete.FolioEntradaCorte == Contexto.EntradaGanado.FolioEntrada);
         }
         aretes.ForEach(are =>
         {
             if (string.IsNullOrWhiteSpace(are.AreteCorte) || are.FolioEntradaCentro != are.FolioEntradaCorte)
             {
                 are.PermiteEditar = true;
                 are.AreteCorte    = are.AreteCentro;
             }
         });
         Contexto.ListaAretes = aretes;
         CargarAretesGrid();
     }
     catch (Exception ex)
     {
         Logger.Error(ex);
         SkMessageBox.Show(Application.Current.Windows[ConstantesVista.WindowPrincipal],
                           Properties.Resources.ReemplazoArete_ErrorCargarAretes, MessageBoxButton.OK, MessageImage.Error);
     }
 }
Пример #12
0
        public static int ObtenerExisteArete(string corralCodigo, string arete, bool validarDeteccion)
        {
            int    retorno = 0;
            string areteDeteccion = string.Empty, areteMuerte = string.Empty;

            try
            {
                SeguridadInfo      seguridad = HttpContext.Current.Session["Seguridad"] as SeguridadInfo;
                IList <AnimalInfo> animales  = null;
                int organizacionId           = seguridad.Usuario.Organizacion.OrganizacionID;

                var animalPl = new AnimalPL();
                var corralPl = new CorralPL();
                var lotePL   = new LotePL();

                AnimalInfo animal = null;
                CorralInfo corral = null;
                LoteInfo   lote   = null;

                corral = corralPl.ObtenerCorralPorCodigo(organizacionId, corralCodigo);
                corral.Organizacion = new OrganizacionInfo {
                    OrganizacionID = organizacionId
                };

                if (validarDeteccion)
                {
                    areteDeteccion = animalPl.obtenerExisteDeteccion(arete);
                }

                if (areteDeteccion == string.Empty)
                {
                    areteMuerte = animalPl.obtenerExisteMuerte(arete);
                    if (areteMuerte == string.Empty)
                    {
                        if (corral.TipoCorral.TipoCorralID != (int)TipoCorral.Recepcion &&
                            corral.TipoCorral.TipoCorralID != (int)TipoCorral.CorraletaSacrificio)
                        {
                            animales = animalPl.ObtenerAnimalesPorCorral(corral, organizacionId);
                            if (animales != null)
                            {
                                for (int i = 0; i < animales.Count; i++)
                                {
                                    if (arete == animales[i].Arete)
                                    {
                                        return(1);
                                    }
                                }
                            }
                            /* Validar Si el arete existe en el inventario  y es carga inicial */
                            var animalInventario = animalPl.ObtenerAnimalPorArete(arete, organizacionId);
                            if (animalInventario == null)
                            {
                                retorno = 0;
                            }
                        }
                        else if (corral.TipoCorral.TipoCorralID == (int)TipoCorral.CorraletaSacrificio)
                        {
                            animal = animalPl.ObtenerAnimalPorArete(arete, organizacionId);
                            if (animal != null)
                            {
                                if (animalPl.ObtenerExisteSalida(animal.AnimalID) > 0)
                                {
                                    retorno = 1;
                                }
                            }
                        }
                        else
                        {
                            var entrada = new EntradaGanadoPL();
                            lote = lotePL.ObtenerLotesActivos(organizacionId, corral.CorralID);

                            if (lote != null)
                            {
                                var datosEntrada = entrada.ObtenerEntradaPorLote(lote);

                                if (datosEntrada != null)
                                {
                                    if (datosEntrada.TipoOrganizacionOrigenId != (int)TipoOrganizacion.CompraDirecta)
                                    {
                                        int salida = corralPl.ObtenerExisteInterfaceSalida(organizacionId, corralCodigo, arete);
                                        if (salida > 0)
                                        {
                                            retorno = 1; // Existe arete en la interface
                                        }
                                        else
                                        {
                                            retorno = 0;//Valido, pero aqui va la validacion de interfaz salida
                                        }
                                    }
                                    else
                                    {
                                        /* Si es compra directa validar q el arete no exista en el inventario */
                                        var animalInventario = animalPl.ObtenerAnimalPorArete(arete, organizacionId);
                                        if (animalInventario != null)
                                        {
                                            retorno = 0;// el arete ya existe en el inventario
                                        }
                                        else
                                        {
                                            retorno = 1;//Valido, es compra directa y no existe en el inventario
                                        }
                                    }
                                }
                            }
                        }
                    }
                    else
                    {
                        retorno = 3;//Muerto
                    }
                }
                else
                {
                    retorno = 2;//Detectado
                }
            }
            catch (Exception ex)
            {
                Logger.Error(ex);
            }
            return(retorno);
        }
        public static TarjetaRecepcionGanadoInfo TraerEntradaGanado(EntradaGanadoInfo entradaGanadoInfo)
        {
            try
            {
                TarjetaRecepcionGanadoInfo result = null;
                var seguridad = (SeguridadInfo)ObtenerSeguridad();
                var entradaPl = new EntradaGanadoPL();
                var entradaGanadoCalidadPl = new EntradaGanadoCalidadPL();
                var operadorPL             = new OperadorPL();
                var choferPL = new ChoferPL();

                var jaulaPL = new JaulaPL();

                int folioEntrada   = entradaGanadoInfo.FolioEntrada;
                int organizacionId = seguridad.Usuario.Organizacion.OrganizacionID; //entradaGanadoInfo.OrganizacionID;

                entradaGanadoInfo = entradaPl.ObtenerPorFolioEntrada(folioEntrada, organizacionId);

                if (entradaGanadoInfo != null)
                {
                    var entradaGanadoCalidad =
                        entradaGanadoCalidadPl.ObtenerEntradaGanadoId(entradaGanadoInfo.EntradaGanadoID);

                    if (entradaGanadoCalidad == null)
                    {
                        result = new TarjetaRecepcionGanadoInfo
                        {
                            ConteoCapturado = false
                        };
                        return(result);
                    }
                    if (entradaGanadoCalidad.All(ent => ent.EntradaGanadoID == 0))
                    {
                        result = new TarjetaRecepcionGanadoInfo
                        {
                            ConteoCapturado = false
                        };
                        return(result);
                    }

                    int embarqueId = entradaGanadoInfo.EmbarqueID;
                    var embarquePL = new EmbarquePL();

                    var embarque = embarquePL.ObtenerPorID(embarqueId);

                    CorralInfo corral = TraerCorralPorEmbarque(embarque.FolioEmbarque);

                    result = new TarjetaRecepcionGanadoInfo
                    {
                        EntradaGanado   = entradaGanadoInfo,
                        Operador        = operadorPL.ObtenerPorID(entradaGanadoInfo.OperadorID),
                        Chofer          = choferPL.ObtenerPorID(entradaGanadoInfo.ChoferID),
                        Jaula           = jaulaPL.ObtenerPorID(entradaGanadoInfo.JaulaID),
                        Corral          = corral,
                        ConteoCapturado = true
                    };
                }

                return(result);
            }
            catch (Exception ex)
            {
                Logger.Error(ex);
                throw;
            }
        }
        public static string Guardar(EntradaGanadoInfo entradaGanadoInfo)
        {
            try
            {
                var seguridad      = (SeguridadInfo)ObtenerSeguridad();
                int organizacionId = seguridad.Usuario.Organizacion.OrganizacionID;

                int folioEntrada = entradaGanadoInfo.FolioEntrada;
                int corralId     = entradaGanadoInfo.CorralID;
                int usuarioId    = seguridad.Usuario.UsuarioID;

                var entradaGanadoPL          = new EntradaGanadoPL();
                EntradaGanadoInfo infoGrabar = entradaGanadoPL.ObtenerPorFolioEntrada(folioEntrada, organizacionId);

                int embarqueId = infoGrabar.EmbarqueID;
                foreach (var condicion in entradaGanadoInfo.ListaCondicionGanado)
                {
                    condicion.UsuarioID = usuarioId;
                }

                infoGrabar.CabezasRecibidas      = entradaGanadoInfo.CabezasRecibidas;
                infoGrabar.ListaCondicionGanado  = entradaGanadoInfo.ListaCondicionGanado;
                infoGrabar.UsuarioModificacionID = usuarioId;
                infoGrabar.CorralID        = entradaGanadoInfo.CorralID;
                infoGrabar.ManejoSinEstres = entradaGanadoInfo.ManejoSinEstres;

                LoteInfo loteInfo = ObtenerLoteCorralRuteo(organizacionId, corralId, embarqueId);

                if (loteInfo == null)
                {
                    loteInfo = infoGrabar.Lote;
                    TipoOrganizacionInfo tipoOrganizacion = TraerTipoOrganizacion(infoGrabar.TipoOrigen);

                    loteInfo.TipoProcesoID     = tipoOrganizacion.TipoProceso.TipoProcesoID;
                    loteInfo.OrganizacionID    = organizacionId;
                    loteInfo.UsuarioCreacionID = usuarioId;
                    if (corralId > 0)
                    {
                        CorralInfo corral = TraerCorralPorId(corralId);
                        if (corral != null)
                        {
                            loteInfo.CorralID     = corralId;
                            loteInfo.TipoCorralID = corral.TipoCorral.TipoCorralID;
                        }
                    }
                    loteInfo.Activo = EstatusEnum.Activo;
                    loteInfo.DisponibilidadManual = false;
                    loteInfo.Cabezas       = infoGrabar.CabezasRecibidas;
                    loteInfo.CabezasInicio = infoGrabar.CabezasOrigen;
                }
                else
                {
                    //Obtener programaciones por corral
                    int total = entradaGanadoPL.ObtenerPorCorralDisponible(organizacionId, corralId, embarqueId);
                    if (total > 0)
                    {
                        return("ERROR");
                    }
                    loteInfo.Cabezas               = infoGrabar.CabezasRecibidas;
                    loteInfo.CabezasInicio         = infoGrabar.CabezasRecibidas;
                    loteInfo.UsuarioModificacionID = usuarioId;
                    infoGrabar.Lote = loteInfo;
                }
                infoGrabar.CondicionJaula = entradaGanadoInfo.CondicionJaula;

                entradaGanadoPL.GuardarEntradaCondicion(infoGrabar);

                return("OK");
            }
            catch (Exception ex)
            {
                Logger.Error(ex);
                throw;
            }
        }
Пример #15
0
        public static List <AnimalInfo> ObtenerAnimalesPorCodigoCorral(CorralInfo corralInfo)
        {
            try
            {
                var seguridad = HttpContext.Current.Session["Seguridad"] as SeguridadInfo;

                int  organizacionId = seguridad.Usuario.Organizacion.OrganizacionID;
                bool validarSalida  = true;

                var animalPl = new AnimalPL();
                var corralPl = new CorralPL();
                var entrada  = new EntradaGanadoPL();

                List <AnimalInfo> listaanimales = null;

                var corralIn = corralPl.ObtenerCorralPorCodigo(organizacionId, corralInfo.Codigo);

                if (corralIn != null)
                {
                    var lotePl = new LotePL();
                    var lote   = lotePl.ObtenerLotesActivos(organizacionId, corralIn.CorralID);

                    if (lote != null)
                    {
                        if (corralIn.GrupoCorral == (int)GrupoCorralEnum.Enfermeria ||
                            corralIn.GrupoCorral == (int)GrupoCorralEnum.Produccion)
                        {
                            listaanimales = animalPl.ObtenerAnimalesPorCorral(corralInfo, organizacionId);
                        }
                        else if (corralIn.GrupoCorral == (int)GrupoCorralEnum.Recepcion)
                        {
                            var datosEntrada = entrada.ObtenerEntradaPorLote(lote);

                            if (datosEntrada != null)
                            {
                                if (datosEntrada.TipoOrganizacionOrigenId == (int)TipoOrganizacion.CompraDirecta)
                                {
                                    validarSalida = false;
                                }
                            }

                            AnimalInfo animal;

                            if (validarSalida)
                            {
                                listaanimales = new List <AnimalInfo>();
                                var interfaz = new InterfaceSalidaAnimalPL();

                                var anim = interfaz.ObtenerAretesInterfazSalidaAnimal(corralInfo.Codigo, organizacionId);
                                if (anim != null)
                                {
                                    foreach (InterfaceSalidaAnimalInfo interfaceAnimal in anim)
                                    {
                                        animal       = new AnimalInfo();
                                        animal.Arete = interfaceAnimal.Arete;
                                        listaanimales.Add(animal);
                                    }
                                }
                                else
                                {
                                    animal = new AnimalInfo {
                                        AnimalID = -1
                                    };
                                    listaanimales.Add(animal);
                                }
                            }
                        }
                    }
                }
                return(listaanimales);
            }
            catch (Exception ex)
            {
                Logger.Error(ex);
                throw;
            }
        }