예제 #1
0
        public static List <AnimalInfo> ObtenerAretes(CorralInfo corralInfo)
        {
            List <AnimalInfo> listaAnimales = null;

            try
            {
                var seguridad = (SeguridadInfo)HttpContext.Current.Session["Seguridad"];

                if (seguridad != null)
                {
                    bool esPartida      = false;
                    int  organizacionId = seguridad.Usuario.Organizacion.OrganizacionID;

                    var        corralPl = new CorralPL();
                    CorralInfo corral   = corralPl.ObtenerCorralPorCodigo(organizacionId, corralInfo.Codigo);
                    if (corral.GrupoCorral == GrupoCorralEnum.Recepcion.GetHashCode())
                    {
                        esPartida = true;
                    }
                    var animalPL = new AnimalPL();
                    listaAnimales = animalPL.ObtenerAnimalesPorCorralDeteccion(corral.CorralID, esPartida);
                }
            }
            catch (Exception ex)
            {
                Logger.Error(ex);
            }
            return(listaAnimales);
        }
예제 #2
0
        public static CorralInfo ObtenerCorral(string corralCodigo)
        {
            CorralInfo corral = null;

            try
            {
                var seguridad      = (SeguridadInfo)HttpContext.Current.Session["Seguridad"];
                int organizacionId = seguridad.Usuario.Organizacion.OrganizacionID;
                if (seguridad != null)
                {
                    var corralPL = new CorralPL();
                    corral = corralPL.ObtenerCorralPorCodigo(organizacionId, corralCodigo);
                    if (corral.GrupoCorral == (int)GrupoCorralEnum.Corraleta)
                    {
                        if (corral.TipoCorral.TipoCorralID != (int)TipoCorral.CorraletaSacrificio &&
                            corral.TipoCorral.TipoCorralID != (int)TipoCorral.CorraletaRecuperado &&
                            corral.TipoCorral.TipoCorralID != (int)TipoCorral.CorraletaRecuperadosPartida)
                        {
                            corral.TipoCorral.TipoCorralID = -1; //Corraleta no es igual a sacrificio
                        }
                    }
                }
            }
            catch (Exception ex)
            {
                Logger.Error(ex);
            }
            return(corral);
        }
        public static LoteInfo ObtenerLote(string corralCodigo)
        {
            LoteInfo lote = null;

            try
            {
                CorralInfo corral         = null;
                var        lotePL         = new LotePL();
                var        corralPL       = new CorralPL();
                var        seguridad      = (SeguridadInfo)HttpContext.Current.Session["Seguridad"];
                int        organizacionId = seguridad.Usuario.Organizacion.OrganizacionID;
                corral = corralPL.ObtenerCorralPorCodigo(organizacionId, corralCodigo);

                if (corral != null)
                {
                    lote = lotePL.ObtenerPorCorralCerrado(organizacionId, corral.CorralID);
                }
                //lote = lotePL.ObtenerPorCorral(organizacionId, corral.CorralID);
            }
            catch (Exception ex)
            {
                Logger.Error(ex);
            }

            return(lote);
        }
예제 #4
0
        public static int Guardar(string arete, string codigoCorral, string codigoCorraleta, int tipoMovimiento)
        {
            int retorno = 0;

            try
            {
                var salidaIndividualPL = new SalidaIndividualPL();
                var corralPl           = new CorralPL();
                var seguridad          = (SeguridadInfo)HttpContext.Current.Session["Seguridad"];
                int organizacionId     = seguridad.Usuario.Organizacion.OrganizacionID;
                int usuario            = seguridad.Usuario.UsuarioID;
                int operador           = seguridad.Usuario.Operador.OperadorID;

                var corraleta = corralPl.ObtenerCorralPorCodigo(organizacionId, codigoCorraleta);

                retorno = salidaIndividualPL.Guardar(arete, organizacionId, codigoCorral, corraleta.CorralID,
                                                     usuario, (int)TipoMovimiento.SalidaPorRecuperacion, operador);
            }
            catch (Exception ex)
            {
                retorno = -1;
                Logger.Error(ex);
            }

            return(retorno);
        }
예제 #5
0
        public static CorralInfo ObtenerDatosDelCorral(CorralInfo corralInfo, int enfermeria)
        {
            try{
                var seguridad = HttpContext.Current.Session["Seguridad"] as SeguridadInfo;

                int organizacionId = seguridad.Usuario.Organizacion.OrganizacionID;

                var corralPL   = new CorralPL();
                var operadorPL = new OperadorPL();

                var corral = corralPL.ObtenerCorralPorCodigo(organizacionId, corralInfo.Codigo);

                if (corral != null)
                {
                    if (corralPL.ValidarCorralPorEnfermeria(corral.Codigo, enfermeria, organizacionId))
                    {
                        corral.Operador             = operadorPL.ObtenerPorCodigoCorral(corral.Codigo, organizacionId);
                        corral.perteneceAEnfermeria = true;
                    }
                    else
                    {
                        corral = new CorralInfo();
                        corral.perteneceAEnfermeria = false;
                    }
                }

                return(corral);
            }
            catch (Exception ex)
            {
                Logger.Error(ex);
                throw;
            }
        }
        public static List <AnimalInfo> ObtenerAnimalesPorCodigoCorral(string corralCodigo)
        {
            List <AnimalInfo> lista = null;

            try
            {
                SeguridadInfo seguridad = HttpContext.Current.Session["Seguridad"] as SeguridadInfo;

                int organizacionId = seguridad.Usuario.Organizacion.OrganizacionID;

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

                CorralInfo corral = null;

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

                return(animalPl.ObtenerAnimalesPorCorral(corral, organizacionId));
            }
            catch (Exception ex)
            {
                Logger.Error(ex);
            }
            return(lista);
        }
예제 #7
0
        private void txtCorral_LostFocus(object sender, RoutedEventArgs e)
        {
            try
            {
                Contexto.CorralInfo.Organizacion = (OrganizacionInfo)cmbOrganizacion.SelectedItem;
                if (Contexto.CorralInfo.Organizacion == null || Contexto.CorralInfo.Organizacion.OrganizacionID == 0)
                {
                    SkMessageBox.Show(Application.Current.Windows[ConstantesVista.WindowPrincipal],
                                      Properties.Resources.ReporteConsumoCorral_SeleccioneOrganizacion,
                                      MessageBoxButton.OK, MessageImage.Error);

                    cmbOrganizacion.Focus();
                }
                else
                {
                    var corralPL = new CorralPL();

                    var corral = corralPL.ObtenerCorralPorCodigo(Contexto.CorralInfo.Organizacion.OrganizacionID, Contexto.CorralInfo.Codigo);
                    Contexto.CorralInfo        = corral;
                    Contexto.LoteInfo.CorralID = Contexto.CorralInfo.CorralID;
                }
            }
            catch (Exception ex)
            {
                Logger.Error(ex);
                SkMessageBox.Show(Application.Current.Windows[ConstantesVista.WindowPrincipal],
                                  Properties.Resources.ReporteConsumoProgramadovsServido_ErrorCargarCombos,
                                  MessageBoxButton.OK, MessageImage.Error);
            }
        }
예제 #8
0
        public static List <AnimalInfo> ObtenerAnimalesPorCodigoCorral(string corralCodigo)
        {
            List <AnimalInfo> lista = null;

            try
            {
                SeguridadInfo seguridad = HttpContext.Current.Session["Seguridad"] as SeguridadInfo;

                int organizacionId = seguridad.Usuario.Organizacion.OrganizacionID;

                var        corralPl = new CorralPL();
                CorralInfo corral   = corralPl.ObtenerCorralPorCodigo(organizacionId, corralCodigo);
                corral.Organizacion = new OrganizacionInfo {
                    OrganizacionID = organizacionId
                };
                if (corral.GrupoCorral == (int)GrupoCorralEnum.Recepcion)
                {
                    lista = new List <AnimalInfo>();
                    var interfaz = new InterfaceSalidaAnimalPL();

                    var anim = interfaz.ObtenerAretesInterfazSalidaAnimal(corralCodigo, organizacionId);
                    if (anim != null)
                    {
                        foreach (InterfaceSalidaAnimalInfo interfaceAnimal in anim)
                        {
                            var animal = new AnimalInfo {
                                Arete = interfaceAnimal.Arete
                            };
                            lista.Add(animal);
                        }
                    }
                }
                else
                {
                    var animalPl = new AnimalPL();
                    lista = animalPl.ObtenerAnimalesPorCorral(corral, organizacionId);
                }
                return(lista);
            }
            catch (Exception ex)
            {
                Logger.Error(ex);
            }
            return(lista);
        }
        public static int ObtenerCorral(string corralCodigo, int TipoVenta)
        {
            CorralInfo corral;

            corral = null;
            var pl      = new CorralPL();
            int retorno = 0;

            try
            {
                var seguridad      = (SeguridadInfo)HttpContext.Current.Session["Seguridad"];
                int organizacionId = seguridad.Usuario.Organizacion.OrganizacionID;

                if (seguridad != null)
                {
                    corral = pl.ObtenerCorralPorCodigo(organizacionId, corralCodigo);

                    if (corral != null)
                    {
                        if ((TipoVenta == TipoVentaEnum.Propio.GetHashCode() && corral.TipoCorral.TipoCorralID == (int)TipoCorral.CronicoVentaMuerte) ||
                            (TipoVenta == TipoVentaEnum.Externo.GetHashCode() && (corral.TipoCorral.TipoCorralID == (int)TipoCorral.Maquila || corral.TipoCorral.TipoCorralID == (int)TipoCorral.Intensivo)))
                        {
                            retorno = 1;
                        }
                        else
                        {
                            retorno = 2;
                        }
                    }
                    else
                    {
                        retorno = 0;
                    }
                }
            }
            catch (Exception ex)
            {
                Logger.Error(ex);
                retorno = 0;
            }

            return(retorno);
        }
예제 #10
0
        public static CorralInfo ValidarCorral(CorralInfo corralInfo)
        {
            var corral = new CorralInfo();

            try
            {
                var seguridad = HttpContext.Current.Session["Seguridad"] as SeguridadInfo;

                if (seguridad != null)
                {
                    var organizacionId = seguridad.Usuario.Organizacion.OrganizacionID;
                    var operadorId     = seguridad.Usuario.Operador.OperadorID;

                    var corralPL   = new CorralPL();
                    var operadorPL = new OperadorPL();

                    corral = corralPL.ObtenerCorralPorCodigo(organizacionId, corralInfo.Codigo);

                    if (corral != null)
                    {
                        var operador = operadorPL.ObtenerLectorPorCodigoCorral(corral.Codigo, organizacionId);

                        if (operador != null)
                        {
                            if (operador.OperadorID == operadorId)
                            {
                                corral.Operador = operador;
                            }
                        }
                    }
                }
            }
            catch (Exception ex)
            {
                Logger.Error(ex);
                corral = null;
            }

            return(corral);
        }
        public static int ValidarCorraleta(string corraleta)
        {
            CorralInfo corral    = null;
            int        respuesta = 0;

            try
            {
                var corralPL       = new CorralPL();
                var seguridad      = (SeguridadInfo)HttpContext.Current.Session["Seguridad"];
                int organizacionId = seguridad.Usuario.Organizacion.OrganizacionID;

                corral = corralPL.ObtenerCorralPorCodigo(organizacionId, corraleta);

                if (corral != null)
                {
                    if (corral.TipoCorral.TipoCorralID == (int)TipoCorral.CorraletaSacrificio)
                    {
                        respuesta = 1;
                    }
                    else
                    {
                        respuesta = 2;
                    }
                }
                else
                {
                    respuesta = 0;
                }
            }
            catch (Exception ex)
            {
                Logger.Error(ex);
            }

            return(respuesta);
        }
        public static CorralInfo ObtenerCorral(string corralCodigo)
        {
            CorralInfo corral;

            corral = null;
            var corralPL = new CorralPL();

            try
            {
                var seguridad      = (SeguridadInfo)HttpContext.Current.Session["Seguridad"];
                int organizacionId = seguridad.Usuario.Organizacion.OrganizacionID;

                if (seguridad != null)
                {
                    corral = corralPL.ObtenerCorralPorCodigo(organizacionId, corralCodigo);
                }
            }
            catch (Exception ex)
            {
                Logger.Error(ex);
            }

            return(corral);
        }
        /// <summary>
        /// Carga la informacion del arete en pantalla
        /// </summary>
        private void LlenarDatosArete()
        {
            MuerteInfo areteMuerto = null;
            var        pl          = new MuertePL();
            var        animalPL    = new AnimalPL();
            var        corralPL    = new CorralPL();

            try
            {
                var seguridad      = (SeguridadInfo)HttpContext.Current.Session["Seguridad"];
                var organizacionID = seguridad.Usuario.Organizacion.OrganizacionID;
                if (seguridad != null)
                {
                    //Se obtiene el Corral para ver Si es de Recepcion
                    corralInfo = corralPL.ObtenerCorralPorCodigo(organizacionID, corralInfo.Codigo);

                    if (corralInfo.GrupoCorral == (int)GrupoCorralEnum.Recepcion)
                    {
                        /* Si el corral es de Recepcion */
                        areteMuerto = pl.ObtenerGanadoMuertoPorAreteRecepcion(organizacionID, numeroArete);
                    }
                    else
                    {
                        /* Si el corral es de Enfermeria o produccion */
                        areteMuerto = pl.ObtenerGanadoMuertoPorArete(organizacionID, numeroArete);
                        if (areteMuerto != null && areteMuerto.AnimalId > 0)
                        {
                            areteMuerto.Peso = animalPL.ObtenerUltimoMovimientoAnimal(new AnimalInfo()
                            {
                                AnimalID = areteMuerto.AnimalId, OrganizacionIDEntrada = organizacionID
                            }).Peso;
                        }
                        else
                        {
                            if (areteMuerto == null)
                            {
                                areteMuerto = new MuerteInfo {
                                    Arete = numeroArete, CorralCodigo = corralInfo.Codigo
                                };
                            }
                            var lote   = new LoteInfo();
                            var lotePl = new LotePL();
                            lote = lotePl.ObtenerPorCorral(organizacionID, corralInfo.CorralID);
                            if (lote != null)
                            {
                                var listaAnimales = animalPL.ObtenerAnimalesPorLoteID(lote);
                                if (listaAnimales != null)
                                {
                                    var listaMovimientosActivos = (from animal in listaAnimales
                                                                   let movimiento = new AnimalMovimientoInfo()
                                                                                    select animalPL.ObtenerUltimoMovimientoAnimal(animal)).ToList();

                                    if (listaMovimientosActivos.Count > 0)
                                    {
                                        areteMuerto.Peso = listaMovimientosActivos.Sum(registro => registro.Peso) /
                                                           listaMovimientosActivos.Count;
                                    }
                                }
                            }
                        }
                    }

                    if (areteMuerto != null)
                    {
                        hdMuerteId.Value = areteMuerto.MuerteId.ToString();
                        hdAnimalId.Value = areteMuerto.AnimalId.ToString();
                        hdCorralId.Value = areteMuerto.CorralId.ToString();
                        hdLoteId.Value   = areteMuerto.LoteId.ToString();

                        if (areteMuerto.MuerteId == 0)
                        {
                            hdMuerteId.Value = muerteId.ToString();
                        }

                        txtCorral.Text            = areteMuerto.CorralCodigo;
                        txtPeso.Text              = areteMuerto.Peso.ToString();
                        txtAreteMetalico.Text     = areteMuerto.AreteMetalico;
                        txtNumeroArete.Text       = areteMuerto.Arete;
                        txtNombreResponsable.Text = seguridad.Usuario.Nombre;
                        lblFechaSalida.Text      += " " + DateTime.Now.ToShortDateString();
                        lblHoraSalida.Text       += " " + DateTime.Now.ToShortTimeString();

                        var parametros = ObtenerParametrosRutaImagenes(seguridad.Usuario.Organizacion.OrganizacionID);
                        imgFotoDeteccion.Visible = false;
                        if (parametros != null && areteMuerto.FotoDeteccion != string.Empty)
                        {
                            imgFotoDeteccion.Visible  = true;
                            imgFotoDeteccion.ImageUrl = parametros.Valor + areteMuerto.FotoDeteccion;
                        }
                    }
                    else
                    {
                        ClientScript.RegisterStartupScript(this.GetType(), "myScript", "MostrarFalloCargarDatos();", true);
                    }
                }
            }
            catch (Exception ex)
            {
                Logger.Error(ex);
                throw;
            }
        }
        /// <summary>
        /// Metodo para validar el corral destino
        /// </summary>
        private bool ValidarCorralDestino()
        {
            try
            {
                //Buscar el corral en el inventario
                var corralPL   = new CorralPL();
                var corralInfo = corralPL.ObtenerCorralPorCodigo(organizacionID, txtCorralDestino.Text);
                if (corralInfo != null)
                {
                    if (corralInfo.GrupoCorral == (int)GrupoCorralEnum.Enfermeria ||
                        corralInfo.GrupoCorral == (int)GrupoCorralEnum.Produccion)
                    {
                        // Obtener el lote del corral
                        var lotePL = new LotePL();
                        var lote   = lotePL.ObtenerPorCorralCerrado(organizacionID, corralInfo.CorralID);

                        if (lote != null)
                        {
                            //Si existe se obtienen los datos del corral
                            corralDestino = corralInfo;
                        }
                        else
                        {
                            SkMessageBox.Show(Application.Current.Windows[ConstantesVista.WindowPrincipal],
                                              Properties.Resources.TrasferenciaGanadoIndividual_GrupoCorralSinLote,
                                              MessageBoxButton.OK, MessageImage.Warning);
                            txtCorralDestino.Text      = String.Empty;
                            txtCorralDestino.Focusable = true;
                            txtCorralDestino.Focus();
                            //e.Handled = true;
                            return(false);
                        }
                    }
                    else
                    {
                        SkMessageBox.Show(Application.Current.Windows[ConstantesVista.WindowPrincipal],
                                          Properties.Resources.TrasferenciaGanadoIndividual_GrupoCorralInvalido,
                                          MessageBoxButton.OK, MessageImage.Warning);
                        txtCorralDestino.Focusable = true;
                        txtCorralDestino.Focus();
                        txtCorralDestino.Text = String.Empty;
                        //e.Handled = true;
                        return(false);
                    }
                }
                else
                {
                    SkMessageBox.Show(Application.Current.Windows[ConstantesVista.WindowPrincipal],
                                      Properties.Resources.TrasferenciaGanadoIndividual_CorralNoExiste,
                                      MessageBoxButton.OK, MessageImage.Warning);
                    txtCorralDestino.Focusable = true;
                    txtCorralDestino.Focus();
                    txtCorralDestino.Text = String.Empty;
                    //e.Handled = true;
                    return(false);
                }
            }
            catch (Exception ex)
            {
                Logger.Error(ex);
            }
            return(true);
        }
        public static AnimalInfo ObtenerExisteArete(string corralCodigo, string arete, string areteRFID)
        {
            AnimalInfo animalAgregado = new AnimalInfo();

            int retorno = 0;

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

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

                CorralInfo corral = null;

                corral = corralPl.ObtenerCorralPorCodigo(organizacionId, corralCodigo);

                areteVentaDetalle = animalPl.ObtenerExisteVentaDetalle(arete, areteRFID);

                if (areteVentaDetalle == "")
                {
                    if (corral != null)
                    {
                        corral.Organizacion = new OrganizacionInfo {
                            OrganizacionID = organizacionId
                        };


                        animales = animalPl.ObtenerAnimalesPorCorral(corral, organizacionId);

                        if (animales != null)
                        {
                            if (arete.Trim() != string.Empty && animales.Any(t => arete == t.Arete))
                            {
                                animalAgregado = (from animal in animales where animal.Arete == arete select animal).FirstOrDefault();
                                retorno        = 1; //El arete es valido
                            }
                            else if (areteRFID.Trim() != string.Empty && animales.Any(t => areteRFID == t.AreteMetalico))
                            {
                                animalAgregado = (from animal in animales where animal.AreteMetalico == areteRFID select animal).FirstOrDefault();
                                retorno        = 1; //El arete es valido
                            }
                            else
                            {
                                if (corral.GrupoCorral == (int)GrupoCorralEnum.Enfermeria ||
                                    corral.GrupoCorral == (int)GrupoCorralEnum.Produccion)
                                {
                                    /* Validar Si el arete existe en el inventario */
                                    var animal = animalPl.ObtenerAnimalPorArete(arete, organizacionId);
                                    if (animal != null && animal.CargaInicial)
                                    {
                                        animalAgregado = animal;
                                        retorno        = 3; //El arete es valido
                                    }
                                }
                            }
                        }
                    }
                }
                else
                {
                    retorno = 2;//El arete ya tiene una salida
                }
            }
            catch (Exception ex)
            {
                Logger.Error(ex);
            }
            animalAgregado.TipoGanadoID = retorno;
            return(animalAgregado);
        }
예제 #16
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);
        }
예제 #17
0
        public static int ObtenerExisteAreteTestigo(string corralCodigo, string arete, string areteTestigo, 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();

                AnimalInfo animal = new AnimalInfo();
                CorralInfo corral = null;

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

                if (validarDeteccion)
                {
                    areteDeteccion = animalPl.obtenerExisteDeteccionTestigo(areteTestigo);
                }

                if (areteDeteccion == string.Empty)
                {
                    areteMuerte = animalPl.obtenerExisteMuerteTestigo(areteTestigo);
                    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 (areteTestigo == animales[i].AreteMetalico)
                                    {
                                        if (arete != string.Empty)
                                        {
                                            if (arete == animales[i].Arete)
                                            {
                                                retorno = 1; //Si corresponde
                                                break;
                                            }
                                            else
                                            {
                                                retorno = 2; //No corresponde
                                            }
                                        }
                                        else
                                        {
                                            retorno = 1; //No trae arete
                                        }
                                    }
                                }
                            }
                        }
                        else if (corral.TipoCorral.TipoCorralID == (int)TipoCorral.CorraletaSacrificio)
                        {
                            animal = animalPl.ObtenerAnimalPorAreteTestigo(areteTestigo, organizacionId);
                            if (animal != null)
                            {
                                if (animalPl.ObtenerExisteSalida(animal.AnimalID) > 0 && (arete == animal.Arete || arete == ""))
                                {
                                    retorno = 1;
                                }
                            }
                        }
                        else
                        {
                            retorno = 1;//No se valida si es recepcion
                        }
                    }
                    else
                    {
                        retorno = 3;//Muerto
                    }
                }
                else
                {
                    retorno = 2;//Detectado
                }
            }
            catch (Exception ex)
            {
                Logger.Error(ex);
            }
            return(retorno);
        }
예제 #18
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;
            }
        }