public static CorralInfo ObtenerCorral(string arete)
        {
            AnimalInfo           animal           = null;
            AnimalMovimientoInfo animalMovimiento = null;
            CorralInfo           corral           = null;
            int respuesta = 0;

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

                animal = animalPL.ObtenerAnimalPorArete(arete, organizacionId);

                animalMovimiento = animalPL.ObtenerUltimoMovimientoAnimal(animal);

                corral = corralPL.ObtenerPorId(animalMovimiento.CorralID);
            }
            catch (Exception ex)
            {
                Logger.Error(ex);
            }

            return(corral);
        }
예제 #2
0
        public static AnimalInfo ValidaEsAnimalDeCargaInicial(AnimalInfo animalInfo)
        {
            AnimalInfo animal = null;

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

                int organizacionId = seguridad.Usuario.Organizacion.OrganizacionID;

                var animalPl = new AnimalPL();

                /* Validar Si el arete existe en el inventario */
                animal = animalPl.ObtenerAnimalPorArete(animalInfo.Arete, organizacionId);
                if (!(animal != null && animal.CargaInicial))
                {
                    animal = null;
                }
            }
            catch (Exception ex)
            {
                Logger.Error(ex);
                //throw;
            }
            return(animal);
        }
예제 #3
0
        public static CorralInfo ObtenerCorralArete(string arete)
        {
            CorralInfo corral = null;

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

                if (seguridad != null)
                {
                    organizacionId = seguridad.Usuario.Organizacion.OrganizacionID;
                }

                var animalPl   = new AnimalPL();
                var corralPl   = new CorralPL();
                var animalInfo = animalPl.ObtenerAnimalPorArete(arete, organizacionId);

                if (animalInfo != null)
                {
                    var ultimoMovimiento = animalPl.ObtenerUltimoMovimientoAnimal(animalInfo);
                    if (ultimoMovimiento != null)
                    {
                        corral = corralPl.ObtenerPorId(ultimoMovimiento.CorralID);
                    }
                }
            }
            catch (Exception e)
            {
                Logger.Error(e);
            }

            return(corral);
        }
예제 #4
0
        public static AnimalInfo ObtenerExisteArete(string arete)
        {
            AnimalInfo animal = null;

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

                animal = animalPL.ObtenerAnimalPorArete(arete, organizacionId);

                if (animal != null)
                {
                    MuerteInfo muerto = muertePL.ObtenerMuertoPorArete(organizacionId, arete);
                    if (muerto != null)
                    {
                        animal.AnimalID = -1;
                    }
                }

                //ObtenerCorralDestinoAnimal(arete);
            }
            catch (Exception ex)
            {
                Logger.Error(ex);
            }

            return(animal);
        }
예제 #5
0
 private void TxtAreteNuevo_OnLostFocus(object sender, RoutedEventArgs e)
 {
     try
     {
         //var elementoArete = (FiltroAnimalesReemplazoArete)dgAretes.CurrentCell.Item;
         //var animalPL = new AnimalPL();
         var text          = (System.Windows.Controls.TextBox)sender;
         var elementoArete = Contexto.ListaAretes.FirstOrDefault(are => are.AreteCorte.Equals(text.Text)); //(FiltroAnimalesReemplazoArete)dgAretes.Items
         if (elementoArete == null)
         {
             return;
         }
         var animalPL = new AnimalPL();
         if (string.IsNullOrWhiteSpace(elementoArete.AreteCorte))
         {
             elementoArete.AreteCorte = elementoArete.AreteCentro;
             return;
         }
         AnimalInfo animal = animalPL.ObtenerAnimalPorArete(elementoArete.AreteCorte,
                                                            Contexto.EntradaGanado.OrganizacionID);
         if (animal != null)
         {
             SkMessageBox.Show(Application.Current.Windows[ConstantesVista.WindowPrincipal],
                               string.Format(Properties.Resources.ReemplazoArete_ExisteArete, animal.FolioEntrada), MessageBoxButton.OK, MessageImage.Warning);
             elementoArete.AreteCorte = elementoArete.AreteCentro;
         }
     }
     catch (Exception ex)
     {
         Logger.Error(ex);
         SkMessageBox.Show(Application.Current.Windows[ConstantesVista.WindowPrincipal],
                           Properties.Resources.ReemplazoArete_ErrorValidarArete, MessageBoxButton.OK, MessageImage.Error);
     }
 }
        public static ResultadoInfo <CorralInfo> ExisteCorraletaDeSacrificioConfigurada(string arete)
        {
            ResultadoInfo <CorralInfo> corraletas = null;

            try
            {
                var animalPL     = new AnimalPL();
                var tipoGanadoPL = new TipoGanadoPL();
                var parametroOrg = new ParametroOrganizacionPL();
                var corralPL     = new CorralPL();

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

                // Se obtiene el animal
                var animal = animalPL.ObtenerAnimalPorArete(arete, organizacionId);

                if (animal != null)
                {
                    // Obtener el tipo de ganado
                    animal.TipoGanado = tipoGanadoPL.ObtenerPorID(animal.TipoGanadoID);
                    // Se obtiene el tipo de corraletaSacrificio a Buscar
                    var paramTipoCorraletaSacrificio = animal.TipoGanado.Sexo == Sexo.Macho ?
                                                       ParametrosEnum.CorraletaSacrificioMacho : ParametrosEnum.CorraletaSacrificioHembra;
                    var parametroOrganizacionInfo =
                        parametroOrg.ObtenerPorOrganizacionIDClaveParametro(organizacionId, paramTipoCorraletaSacrificio.ToString());
                    // Si se tiene configurado el parametro
                    if (parametroOrganizacionInfo != null)
                    {
                        //Obtener info de las corraletas configuradas
                        corraletas =
                            corralPL.ObtenerInformacionCorraletasDisponiblesSacrificio(organizacionId, parametroOrganizacionInfo.Valor);
                        if (corraletas != null && corraletas.Lista.Count > 0)
                        {
                            var corral = new CorralInfo {
                                Codigo = "Seleccione", CorralID = 0
                            };
                            corraletas.Lista.Insert(0, corral);
                        }
                    }
                }
            }
            catch (Exception ex)
            {
                Logger.Error(ex);
            }

            return(corraletas);
        }
        public static AnimalInfo ObtenerExisteArete(string arete)
        {
            AnimalInfo animal = null;

            try
            {
                var animalPL       = new AnimalPL();
                var seguridad      = (SeguridadInfo)HttpContext.Current.Session["Seguridad"];
                int organizacionId = seguridad.Usuario.Organizacion.OrganizacionID;
                int pesoProyectado = 0;
                animal = animalPL.ObtenerAnimalPorArete(arete, organizacionId);

                pesoProyectado = animalPL.ObtenerPesoProyectado(arete, organizacionId);

                animal.PesoAlCorte = pesoProyectado;
            }
            catch (Exception ex)
            {
                Logger.Error(ex);
            }

            return(animal);
        }
        public static AnimalInfo ObtenerExistenciaAnimal(string arete, int loteID)
        {
            var seguridad = (SeguridadInfo)HttpContext.Current.Session["Seguridad"];
            var programacionSacrificioPL = new ProgramacionSacrificioPL();
            var animalInfo = new AnimalInfo {
                Arete = arete,
                OrganizacionIDEntrada = seguridad.Usuario.Organizacion.OrganizacionID
            };

            var resultado = programacionSacrificioPL.ObtenerExistenciaAnimal(animalInfo, loteID);

            if (resultado == null)
            {
                var animalPl = new AnimalPL();
                /* Validar Si el arete existe en el inventario Como Carga Inicial*/
                var animalCargaInicial = animalPl.ObtenerAnimalPorArete(arete, seguridad.Usuario.Organizacion.OrganizacionID);
                if (animalCargaInicial != null && animalCargaInicial.CargaInicial)
                {
                    resultado = animalCargaInicial;
                }
            }

            return(resultado);
        }
예제 #9
0
        public static int GuardarDeteccion(DeteccionInfo deteccion)
        {
            int retValue = 0;

            try
            {
                CorralInfo corral   = new CorralInfo();
                CorralPL   corralPL = new CorralPL();
                corral = ObtenerCorral(deteccion.CorralCodigo);
                var           seguridad       = (SeguridadInfo)HttpContext.Current.Session["Seguridad"];
                LoteInfo      lote            = ObtenerLotesCorral(corral.CorralID);
                AnimalPL      animalPL        = new AnimalPL();
                AnimalInfo    animal          = null;
                var           esCargaInicial  = FlagCargaInicial.Default;
                string        areteSalida     = string.Empty;
                int           salida          = 0;
                int           organizacionID  = 0;
                DeteccionInfo deteccionGrabar = null;
                //informacion del la organzacion y usuario
                if (seguridad != null)
                {
                    organizacionID = seguridad.Usuario.Organizacion.OrganizacionID;
                    var deteccionPl = new DeteccionPL();

                    string areteDeteccion = animalPL.obtenerExisteDeteccion(deteccion.Arete);
                    if (!string.IsNullOrWhiteSpace(areteDeteccion))
                    {
                        return(3);
                    }
                    string areteDeteccionMetalico = animalPL.obtenerExisteDeteccionTestigo(deteccion.AreteMetalico);
                    if (!string.IsNullOrWhiteSpace(areteDeteccionMetalico))
                    {
                        return(3);
                    }

                    if (corral.GrupoCorral != (int)GrupoCorralEnum.Recepcion)
                    {
                        if (deteccion.Arete != string.Empty && deteccion.AreteMetalico == string.Empty)
                        {
                            var animalPl = new AnimalPL();
                            var animales = animalPl.ObtenerAnimalesPorCorral(corral, organizacionID);
                            if (animales != null)
                            {
                                for (int i = 0; i < animales.Count; i++)
                                {
                                    if (deteccion.Arete == animales[i].Arete)
                                    {
                                        esCargaInicial = FlagCargaInicial.SeEncuentraEnCorral;
                                        break;
                                    }
                                }
                            }
                            /* Validar Si el arete existe en el inventario */
                            animal = animalPl.ObtenerAnimalPorArete(deteccion.Arete, organizacionID);
                            if (animal != null && animal.CargaInicial && esCargaInicial == FlagCargaInicial.Default)
                            {
                                esCargaInicial = FlagCargaInicial.EsCargaInicial;
                            }
                            else if (animal == null)
                            {
                                animal = new AnimalInfo()
                                {
                                    Arete                 = deteccion.Arete,
                                    AreteMetalico         = deteccion.AreteMetalico,
                                    LoteID                = lote.LoteID,
                                    CorralID              = corral.CorralID,
                                    UsuarioModificacionID = seguridad.Usuario.UsuarioID,
                                };
                                // Este arete se dara de alta en el corral
                                esCargaInicial = FlagCargaInicial.EsAreteNuevo;
                            }
                        }

                        if (deteccion.AreteMetalico != string.Empty && deteccion.Arete == string.Empty)
                        {
                            animal = animalPL.ObtenerAnimalPorAreteTestigo(deteccion.AreteMetalico, organizacionID);
                        }
                    }
                    else
                    {
                        if (deteccion.AreteMetalico == string.Empty && deteccion.Arete != string.Empty)
                        {
                            var interfaceSalidaAnimalPl = new InterfaceSalidaAnimalPL();
                            InterfaceSalidaAnimalInfo interfaceSalidaAnimalInfo = interfaceSalidaAnimalPl.ObtenerNumeroAreteIndividual(deteccion.Arete, organizacionID);

                            if (interfaceSalidaAnimalInfo != null)
                            {
                                deteccion.AreteMetalico = interfaceSalidaAnimalInfo.AreteMetalico;
                            }
                        }
                        else if (deteccion.AreteMetalico != string.Empty && deteccion.Arete == string.Empty)
                        {
                            var interfaceSalidaAnimalPl = new InterfaceSalidaAnimalPL();
                            InterfaceSalidaAnimalInfo interfaceSalidaAnimalInfo = interfaceSalidaAnimalPl.ObtenerNumeroAreteMetalico(deteccion.Arete, organizacionID);

                            if (interfaceSalidaAnimalInfo != null)
                            {
                                deteccion.Arete = interfaceSalidaAnimalInfo.Arete;
                            }
                        }
                    }

                    string foto = string.Empty;
                    if (deteccion.FotoDeteccion != string.Empty)
                    {
                        foto = TipoFoto.Enfermo.ToString() + '/' + deteccion.FotoDeteccion;
                    }

                    if (animal != null)
                    {
                        deteccionGrabar = new DeteccionInfo()
                        {
                            LoteID              = lote.LoteID,
                            CorralID            = corral.CorralID,
                            FotoDeteccion       = foto,
                            Observaciones       = deteccion.Observaciones,
                            Arete               = animal.Arete,
                            AreteMetalico       = animal.AreteMetalico,
                            OperadorID          = seguridad.Usuario.Operador.OperadorID,
                            UsuarioCreacionID   = seguridad.Usuario.UsuarioID,
                            DescripcionGanado   = deteccion.DescripcionGanado,
                            Problemas           = deteccion.Problemas,
                            Sintomas            = deteccion.Sintomas,
                            GradoID             = deteccion.GradoID,
                            NoFierro            = deteccion.NoFierro,
                            GrupoCorral         = corral.GrupoCorral,
                            DescripcionGanadoID = deteccion.DescripcionGanadoID,
                            Activo              = 1
                        };
                    }
                    else
                    {
                        deteccionGrabar = new DeteccionInfo()
                        {
                            LoteID              = lote.LoteID,
                            CorralID            = corral.CorralID,
                            FotoDeteccion       = foto,
                            Observaciones       = deteccion.Observaciones,
                            Arete               = deteccion.Arete,
                            AreteMetalico       = deteccion.AreteMetalico,
                            OperadorID          = seguridad.Usuario.Operador.OperadorID,
                            UsuarioCreacionID   = seguridad.Usuario.UsuarioID,
                            DescripcionGanado   = deteccion.DescripcionGanado,
                            Problemas           = deteccion.Problemas,
                            Sintomas            = deteccion.Sintomas,
                            GradoID             = deteccion.GradoID,
                            NoFierro            = deteccion.NoFierro,
                            GrupoCorral         = corral.GrupoCorral,
                            DescripcionGanadoID = deteccion.DescripcionGanadoID,
                            Activo              = 1
                        };
                    }

                    if (corral.TipoCorral.TipoCorralID == (int)TipoCorral.CorraletaSacrificio)
                    {
                        deteccionGrabar.LoteID = animalPL.ObtenerLoteSalidaAnimal(deteccionGrabar.Arete, deteccionGrabar.AreteMetalico, organizacionID);
                        corral = corralPL.ObtenerCorralPorLoteID(deteccionGrabar.LoteID, organizacionID);
                        deteccionGrabar.GrupoCorral = corral.GrupoCorral;
                    }


                    if (corral.GrupoCorral == (int)GrupoCorralEnum.Recepcion)
                    {
                        if (deteccionGrabar.GradoID == GradoEnfermedadEnum.Level1.GetHashCode() ||
                            deteccionGrabar.GradoID == GradoEnfermedadEnum.Level2.GetHashCode())
                        {
                            return(2); //Error de Ganado Grado 2 en corral de Recepcion
                        }
                    }

                    var resultado = deteccionPl.GuardarDeteccion(deteccionGrabar,
                                                                 esCargaInicial,
                                                                 animal);
                    if (resultado == 1)
                    {
                        retValue = resultado;
                    }
                }
                else
                {
                    retValue = 0;
                }
            }
            catch (Exception ex)
            {
                retValue = -1;
            }
            return(retValue);
        }
예제 #10
0
        public static int GuardarMuerte(MuerteInfo muerte)
        {
            int retValue = 0;

            try
            {
                CorralInfo corral   = new CorralInfo();
                CorralPL   corralPL = new CorralPL();
                AnimalPL   animalPL = new AnimalPL();
                LotePL     lotePL   = new LotePL();
                corral = ObtenerCorral(muerte.CorralCodigo);
                var        seguridad      = (SeguridadInfo)HttpContext.Current.Session["Seguridad"];
                LoteInfo   lote           = ObtenerLotesCorral(corral.CorralID);
                int        organizacionID = 0;
                AnimalInfo animal         = null;
                MuerteInfo muerteGrabar   = null;
                // 1 se encuentra en corral 2 Carga Inicial
                var esCargaInicial = FlagCargaInicial.Default;
                //informacion del la organzacion y usuario
                if (seguridad != null)
                {
                    organizacionID = seguridad.Usuario.Organizacion.OrganizacionID;
                    var deteccionPl = new DeteccionPL();

                    if (corral.GrupoCorral != (int)GrupoCorralEnum.Recepcion)
                    {
                        if (muerte.Arete != string.Empty && muerte.AreteMetalico == string.Empty)
                        {
                            var animalPl = new AnimalPL();
                            var animales = animalPl.ObtenerAnimalesPorCorral(corral, organizacionID);
                            if (animales != null)
                            {
                                for (int i = 0; i < animales.Count; i++)
                                {
                                    if (muerte.Arete == animales[i].Arete)
                                    {
                                        esCargaInicial = FlagCargaInicial.SeEncuentraEnCorral;
                                        break;
                                    }
                                }
                            }
                            /* Validar Si el arete existe en el inventario */
                            animal = animalPl.ObtenerAnimalPorArete(muerte.Arete, organizacionID);
                            if (animal != null && animal.CargaInicial && esCargaInicial == FlagCargaInicial.Default)
                            {
                                esCargaInicial = FlagCargaInicial.EsCargaInicial;
                            }
                            else if (animal == null)
                            {
                                animal = new AnimalInfo()
                                {
                                    Arete                 = muerte.Arete,
                                    AreteMetalico         = muerte.AreteMetalico,
                                    LoteID                = lote.LoteID,
                                    CorralID              = corral.CorralID,
                                    UsuarioModificacionID = seguridad.Usuario.UsuarioID,
                                };
                                // Este arete se dara de alta en el corral
                                esCargaInicial = FlagCargaInicial.EsAreteNuevo;
                            }
                        }
                        if (muerte.AreteMetalico != string.Empty && muerte.Arete == string.Empty)
                        {
                            animal = animalPL.ObtenerAnimalPorAreteTestigo(muerte.AreteMetalico, organizacionID);
                        }
                    }
                    var    guardarPl = new MuertePL();
                    string foto      = string.Empty;
                    if (muerte.FotoDeteccion != string.Empty)
                    {
                        foto = TipoFoto.Muerte.ToString() + '/' + muerte.FotoDeteccion;
                    }

                    if (animal != null)
                    {
                        muerteGrabar = new MuerteInfo
                        {
                            LoteId              = lote.LoteID,
                            CorralId            = corral.CorralID,
                            OrganizacionId      = seguridad.Usuario.Organizacion.OrganizacionID,
                            FotoDeteccion       = foto,
                            Observaciones       = muerte.Observaciones,
                            Arete               = animal.Arete,
                            AreteMetalico       = animal.AreteMetalico,
                            OperadorDeteccionId = seguridad.Usuario.Operador.OperadorID,
                            UsuarioCreacionID   = seguridad.Usuario.UsuarioID,
                            EstatusId           = (int)EstatusMuertes.Detectado
                        };
                    }
                    else
                    {
                        muerteGrabar = new MuerteInfo
                        {
                            LoteId              = lote.LoteID,
                            CorralId            = corral.CorralID,
                            OrganizacionId      = seguridad.Usuario.Organizacion.OrganizacionID,
                            FotoDeteccion       = foto,
                            Observaciones       = muerte.Observaciones,
                            Arete               = muerte.Arete,
                            AreteMetalico       = muerte.AreteMetalico,
                            OperadorDeteccionId = seguridad.Usuario.Operador.OperadorID,
                            UsuarioCreacionID   = seguridad.Usuario.UsuarioID,
                            EstatusId           = (int)EstatusMuertes.Detectado
                        };
                    }

                    if (corral.TipoCorral.TipoCorralID == (int)TipoCorral.CorraletaSacrificio)
                    {
                        muerteGrabar.LoteId = animalPL.ObtenerLoteSalidaAnimal(muerteGrabar.Arete, muerteGrabar.AreteMetalico, organizacionID);
                    }

                    if (muerteGrabar != null)
                    {
                        muerteGrabar.Corral = corral;
                        var resultado = guardarPl.GuardarMuerte(muerteGrabar,
                                                                esCargaInicial,
                                                                animal);
                        retValue = resultado;
                    }
                }
                else
                {
                    retValue = 0;
                }
            }
            catch (Exception ex)
            {
                retValue = -1;
            }
            return(retValue);
        }
예제 #11
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 int ObtenerUltimoMovimiento(string arete)
        {
            AnimalInfo             animal           = null;
            AnimalMovimientoInfo   animalMovimiento = null;
            CorralInfo             corral           = null;
            List <TratamientoInfo> tratamientos     = null;

            int respuesta = 0;

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

                animal = animalPL.ObtenerAnimalPorArete(arete, organizacionId);

                animalMovimiento = animalPL.ObtenerUltimoMovimientoAnimal(animal);

                int animalSalida = animalPL.ObtenerExisteSalida(animal.AnimalID);

                var tratamiento = new CorteTransferenciaGanadoPL();

                tratamientos = tratamiento.ObtenerTratamientosAplicados(animal, -1);
                if (tratamientos != null)
                {
                    tratamientos =
                        tratamientos.Where(
                            tipo =>
                            tipo.TipoTratamientoInfo.TipoTratamientoID == TipoTratamiento.Enfermeria.GetHashCode() ||
                            tipo.TipoTratamientoInfo.TipoTratamientoID ==
                            TipoTratamiento.EnfermeriaAlCorte.GetHashCode()).
                        ToList();
                    for (var i = 0; i < tratamientos.Count; i++)
                    {
                        TimeSpan dias = DateTime.Now - tratamientos[i].FechaAplicacion;
                        if (dias.TotalDays < 30)
                        {
                            respuesta = 4; //No han pasado los treinta dias despues de ultimo tratamiento
                        }
                    }
                }

                if (respuesta == 0)
                {
                    if (animalSalida == 0)
                    {
                        //if (animalMovimiento.TipoMovimientoID == (int) TipoMovimiento.EntradaEnfermeria)
                        //{
                        corral = corralPL.ObtenerPorId(animalMovimiento.CorralID);
                        if (corral.TipoCorral.TipoCorralID == (int)TipoCorral.Enfermeria ||
                            corral.TipoCorral.TipoCorralID == (int)TipoCorral.CronicoRecuperacion ||
                            corral.TipoCorral.TipoCorralID == (int)TipoCorral.CronicoVentaMuerte)
                        {
                            if (corral.TipoCorral.TipoCorralID != (int)TipoCorral.CronicoVentaMuerte)
                            {
                                respuesta = 1;     //El arete es valido
                            }
                            else
                            {
                                respuesta = 2;     //El arete es de tipo cronico
                            }
                        }
                        else
                        {
                            respuesta = 0;     //El arete no se encuentra en enfermeria
                        }
                        //}
                        //else
                        //{
                        //    respuesta = 0; //El arete no se encuentra en enfermeria
                        //}
                    }
                    else
                    {
                        respuesta = 3; //El arete ya tiene una salida
                    }
                }
            }
            catch (Exception ex)
            {
                Logger.Error(ex);
            }

            return(respuesta);
        }
예제 #13
0
        public static int ObtenerUltimoMovimiento(string arete)
        {
            AnimalInfo           animal           = null;
            AnimalMovimientoInfo animalMovimiento = null;
            CorralInfo           corral           = null;
            int respuesta = 0;

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

                animal = animalPL.ObtenerAnimalPorArete(arete, organizacionId);

                animalMovimiento = animalPL.ObtenerUltimoMovimientoAnimal(animal);

                if (animalMovimiento == null)
                {
                    //No existe en el inventario
                    return(-1);
                }

                //int animalSalida = animalPL.ObtenerExisteSalida(animal.AnimalID);

                //if (animalSalida == 0)
                //{
                corral = corralPL.ObtenerPorId(animalMovimiento.CorralID);
                //if (corral.TipoCorral.TipoCorralID == (int)TipoCorral.Enfermeria || corral.TipoCorral.TipoCorralID == (int)TipoCorral.CronicoRecuperacion)
                //{
                if (corral.TipoCorral.TipoCorralID == (int)TipoCorral.Enfermeria ||
                    corral.TipoCorral.TipoCorralID == (int)TipoCorral.CronicoRecuperacion ||
                    corral.TipoCorral.TipoCorralID == (int)TipoCorral.CronicoVentaMuerte)
                {
                    if (corral.TipoCorral.TipoCorralID != (int)TipoCorral.CronicoVentaMuerte)
                    {
                        respuesta = 1;
                    }
                    else
                    {
                        respuesta = 2;
                    }
                }
                else
                {
                    respuesta = 0;
                }
                //}
                //else
                //{
                //    respuesta = 0;
                //}
                //}
                //else
                //{
                //    respuesta = 3;
                //}
            }
            catch (Exception ex)
            {
                Logger.Error(ex);
            }

            return(respuesta);
        }
        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);
        }