Ejemplo n.º 1
0
        /// <summary>
        /// The validar agregar arete.
        /// </summary>
        /// <param name="animal">
        /// The animal.
        /// </param>
        /// <param name="corral">
        /// The corral.
        /// </param>
        /// <returns>
        /// The <see cref="ResultadoValidacion"/>.
        /// </returns>
        /// <exception cref="ExcepcionDesconocida">
        /// </exception>
        internal ResultadoValidacion ValidarAgregarArete(AnimalInfo animal, CorralInfo corral)
        {
            try
            {
                var resultado = new ResultadoValidacion();
                var animalBl  = new AnimalBL();

                if (corral == null)
                {
                    resultado.Resultado = false;
                    resultado.Mensaje   = ResourceServices.RevisionImplante_msgFaltaCorral;
                    return(resultado);
                }

                AnimalInfo animalResultado = animalBl.ObtenerAnimalPorArete(animal.Arete, animal.OrganizacionIDEntrada);

                if (animalResultado == null)
                {
                    resultado.Resultado = false;
                    resultado.Mensaje   = ResourceServices.RevisionImplante_msgAreteInvalido;
                    return(resultado);
                }

                AnimalMovimientoInfo movimientos = animalBl.ObtenerUltimoMovimientoAnimal(animalResultado);

                if (movimientos == null)
                {
                    resultado.Resultado = false;
                    resultado.Mensaje   = ResourceServices.RevisionImplante_msgSinMovimientos;
                    return(resultado);
                }

                if (movimientos.CorralID != corral.CorralID)
                {
                    resultado.Resultado = false;
                    resultado.Mensaje   = ResourceServices.RevisionImplante_msgFaltaCorral;
                    return(resultado);
                }

                resultado.Resultado = true;
                resultado.Control   = animalResultado;
                return(resultado);
            }
            catch (ExcepcionGenerica)
            {
                throw;
            }
            catch (Exception ex)
            {
                Logger.Error(ex);
                throw new ExcepcionDesconocida(MethodBase.GetCurrentMethod(), ex);
            }
        }
Ejemplo n.º 2
0
        public AnimalMovimientoInfo ObtenerUltimoMovimientoAnimal(AnimalInfo animalInfo)
        {
            AnimalMovimientoInfo result;

            try
            {
                Logger.Info();
                var animalBL = new AnimalBL();
                result = animalBL.ObtenerUltimoMovimientoAnimal(animalInfo);
            }
            catch (ExcepcionGenerica)
            {
                throw;
            }
            catch (Exception ex)
            {
                Logger.Error(ex);
                throw new ExcepcionDesconocida(MethodBase.GetCurrentMethod(), ex);
            }
            return(result);
        }
Ejemplo n.º 3
0
        /// <summary>
        /// Metodo para Guardar/Modificar un Corral
        /// </summary>
        /// <param name="arete"></param>
        /// <param name="organizacion"></param>
        /// <param name="codigoCorral"></param>
        /// <param name="corraletaID"></param>
        /// <param name="usuarioCreacion"></param>
        /// <param name="tipoMovimiento"></param>
        /// <param name="operador"></param>
        internal int Guardar(string arete, int organizacion, string codigoCorral, int corraletaID, int usuarioCreacion, int tipoMovimiento, int operador)
        {
            int retorno = 0;

            try
            {
                Logger.Info();
                var salidaIndividualDAL = new SalidaIndividualDAL();
                var animalBl            = new AnimalBL();
                var corralBl            = new CorralBL();
                var loteBl = new LoteBL();

                using (var transaccion = new TransactionScope())
                {
                    var animal = animalBl.ObtenerAnimalPorArete(arete, organizacion);
                    if (animal != null)
                    {
                        if (tipoMovimiento == TipoMovimiento.SalidaPorRecuperacion.GetHashCode())
                        {
                            var corralOrigen = corralBl.ObtenerCorralPorCodigo(organizacion, codigoCorral);
                            var loteOrigen   = new LoteInfo();
                            if (corralOrigen != null)
                            {
                                loteOrigen = loteBl.DeteccionObtenerPorCorral(organizacion, corralOrigen.CorralID);
                            }

                            var corralDestino = corralBl.ObtenerPorId(corraletaID);
                            var loteDestino   = new LoteInfo();
                            if (corralDestino != null)
                            {
                                loteDestino = loteBl.DeteccionObtenerPorCorral(organizacion, corralDestino.CorralID);
                            }

                            if (corralOrigen != null)
                            {
                                if (loteOrigen != null)
                                {
                                    if (corralDestino != null)
                                    {
                                        if (corralDestino.TipoCorral.TipoCorralID !=
                                            TipoCorral.CorraletaRecuperado.GetHashCode() && corralDestino.TipoCorral.TipoCorralID != TipoCorral.CorraletaRecuperadosPartida.GetHashCode())
                                        {
                                            if (loteDestino != null)
                                            {
                                                var animalMovimientoBl = new AnimalMovimientoBL();

                                                var ultimoMovimiento = animalBl.ObtenerUltimoMovimientoAnimal(animal);

                                                if (ultimoMovimiento != null)
                                                {
                                                    var animalMovimientoOrigen = new AnimalMovimientoInfo
                                                    {
                                                        AnimalID          = animal.AnimalID,
                                                        CorralID          = corralDestino.CorralID,
                                                        LoteID            = loteDestino.LoteID,
                                                        TipoMovimientoID  = tipoMovimiento,
                                                        OperadorID        = operador,
                                                        OrganizacionID    = organizacion,
                                                        TrampaID          = ultimoMovimiento.TrampaID,
                                                        Peso              = ultimoMovimiento.Peso,
                                                        Temperatura       = ultimoMovimiento.Temperatura,
                                                        UsuarioCreacionID = usuarioCreacion
                                                    };
                                                    animalMovimientoBl.GuardarAnimalMovimiento(animalMovimientoOrigen);

                                                    loteOrigen.Cabezas = loteOrigen.Cabezas - 1;

                                                    loteDestino.Cabezas       = loteDestino.Cabezas + 1;
                                                    loteDestino.CabezasInicio = loteDestino.CabezasInicio + 1;

                                                    var filtroActualizaCabezas = new FiltroActualizarCabezasLote
                                                    {
                                                        LoteIDOrigen          = loteOrigen.LoteID,
                                                        LoteIDDestino         = loteDestino.LoteID,
                                                        CabezasProcesadas     = 1,
                                                        UsuarioModificacionID = usuarioCreacion
                                                    };
                                                    loteBl.ActualizarCabezasProcesadas(filtroActualizaCabezas);
                                                }
                                                else
                                                {
                                                    retorno = -1;
                                                }
                                            }
                                            else
                                            {
                                                retorno = -1;
                                            }
                                        }
                                        else
                                        {
                                            var loteBL             = new LoteBL();
                                            var animalMovimientoBl = new AnimalMovimientoBL();
                                            var ultimoMovimiento   = animalBl.ObtenerUltimoMovimientoAnimal(animal);

                                            LoteInfo loteDestinoCorraleta = loteBL.DeteccionObtenerPorCorral(organizacion,
                                                                                                             corralDestino.CorralID);
                                            int loteIDGuardar = 0;
                                            if (loteDestinoCorraleta == null || loteDestinoCorraleta.Activo == EstatusEnum.Inactivo)
                                            {
                                                var loteNuevo = new LoteInfo
                                                {
                                                    Activo               = EstatusEnum.Activo,
                                                    Cabezas              = 1,
                                                    CabezasInicio        = 1,
                                                    CorralID             = corralDestino.CorralID,
                                                    DisponibilidadManual = false,
                                                    OrganizacionID       = organizacion,
                                                    TipoCorralID         = corralDestino.TipoCorral.TipoCorralID,
                                                    TipoProcesoID        = TipoProceso.EngordaPropio.GetHashCode(),
                                                    UsuarioCreacionID    = usuarioCreacion
                                                };
                                                loteIDGuardar = loteBL.GuardaLote(loteNuevo);
                                            }
                                            else
                                            {
                                                loteIDGuardar = loteDestinoCorraleta.LoteID;
                                                loteDestinoCorraleta.Cabezas = loteDestinoCorraleta.Cabezas + 1;

                                                var filtroActualizaCabezas = new FiltroActualizarCabezasLote
                                                {
                                                    LoteIDOrigen          = 0,
                                                    LoteIDDestino         = loteDestinoCorraleta.LoteID,
                                                    CabezasProcesadas     = 1,
                                                    UsuarioModificacionID = usuarioCreacion
                                                };
                                                loteBl.ActualizarCabezasProcesadas(filtroActualizaCabezas);

                                                //loteBl.ActualizaNoCabezasEnLote(loteDestinoCorraleta, loteDestinoCorraleta);
                                            }

                                            if (ultimoMovimiento != null)
                                            {
                                                var animalMovimientoOrigen = new AnimalMovimientoInfo
                                                {
                                                    AnimalID          = animal.AnimalID,
                                                    CorralID          = corralDestino.CorralID,
                                                    LoteID            = loteIDGuardar,
                                                    TipoMovimientoID  = tipoMovimiento,
                                                    OrganizacionID    = organizacion,
                                                    OperadorID        = operador,
                                                    TrampaID          = ultimoMovimiento.TrampaID,
                                                    Peso              = ultimoMovimiento.Peso,
                                                    Temperatura       = ultimoMovimiento.Temperatura,
                                                    UsuarioCreacionID = usuarioCreacion
                                                };
                                                animalMovimientoBl.GuardarAnimalMovimiento(animalMovimientoOrigen);


                                                loteOrigen.Cabezas = loteOrigen.Cabezas - 1;

                                                var filtroActualizaCabezas = new FiltroActualizarCabezasLote
                                                {
                                                    LoteIDOrigen          = loteOrigen.LoteID,
                                                    LoteIDDestino         = 0,
                                                    CabezasProcesadas     = 1,
                                                    UsuarioModificacionID = usuarioCreacion
                                                };
                                                loteBl.ActualizarCabezasProcesadas(filtroActualizaCabezas);
                                            }
                                            else
                                            {
                                                retorno = -1;
                                            }
                                        }
                                    }
                                    else
                                    {
                                        retorno = -1;
                                    }
                                }
                                else
                                {
                                    retorno = -1;
                                }
                            }
                            else
                            {
                                retorno = -1;
                            }
                        }
                        else//Salida por sacrificio
                        {
                            // Se crean los movimientos del animal
                            retorno = GuardarSalidaIndividialSacrificio(animal, organizacion, codigoCorral, corraletaID, usuarioCreacion, tipoMovimiento, operador);

                            // Se crea registro en animal Salida
                            retorno = salidaIndividualDAL.Guardar(arete, organizacion, codigoCorral,
                                                                  corraletaID, usuarioCreacion, tipoMovimiento);
                        }
                    }
                    else
                    {
                        retorno = -1;
                    }
                    transaccion.Complete();
                }

                return(retorno);
            }
            catch (ExcepcionGenerica)
            {
                retorno = -1;
                throw;
            }
            catch (Exception ex)
            {
                retorno = -1;
                Logger.Error(ex);
                throw new ExcepcionDesconocida(MethodBase.GetCurrentMethod(), ex);
            }
        }
Ejemplo n.º 4
0
        /// <summary>
        /// Metodo para guardar la salida a sacrificio a un animal
        /// </summary>
        /// <param name="animal"></param>
        /// <param name="organizacion"></param>
        /// <param name="codigoCorral"></param>
        /// <param name="corraletaID"></param>
        /// <param name="usuarioCreacion"></param>
        /// <param name="tipoMovimiento"></param>
        /// <param name="operador"></param>
        private int GuardarSalidaIndividialSacrificio(AnimalInfo animal, int organizacion, string codigoCorral, int corraletaID, int usuarioCreacion, int tipoMovimiento, int operador)
        {
            int retorno            = 0;
            var animalBl           = new AnimalBL();
            var corralBl           = new CorralBL();
            var animalMovimientoBl = new AnimalMovimientoBL();
            var loteBl             = new LoteBL();

            var corralOrigen = corralBl.ObtenerCorralPorCodigo(organizacion, codigoCorral);

            if (corralOrigen != null)
            {
                var loteOrigen = loteBl.DeteccionObtenerPorCorral(organizacion, corralOrigen.CorralID);
                if (loteOrigen != null)
                {
                    var corralDestino = corralBl.ObtenerPorId(corraletaID);
                    if (corralDestino != null)
                    {
                        var loteDestino = loteBl.DeteccionObtenerPorCorral(organizacion, corralDestino.CorralID);
                        if (loteDestino == null)
                        {
                            // Si el corral destino no tiene lo te se crea uno
                            var loteBL        = new LoteBL();
                            int loteIDGuardar = 0;
                            var loteNuevo     = new LoteInfo
                            {
                                Activo               = EstatusEnum.Activo,
                                Cabezas              = 0,
                                CabezasInicio        = 0,
                                CorralID             = corralDestino.CorralID,
                                DisponibilidadManual = false,
                                OrganizacionID       = organizacion,
                                TipoCorralID         = corralDestino.TipoCorral.TipoCorralID,
                                TipoProcesoID        = TipoProceso.EngordaPropio.GetHashCode(),
                                UsuarioCreacionID    = usuarioCreacion
                            };
                            loteIDGuardar = loteBL.GuardaLote(loteNuevo);
                            loteDestino   = new LoteInfo {
                                LoteID = loteIDGuardar
                            };
                        }
                        // Se obtiene la info del ultimo movimiento del animal
                        var ultimoMovimiento = animalBl.ObtenerUltimoMovimientoAnimal(animal);
                        if (ultimoMovimiento != null)
                        {
                            var animalMovimientoOrigen = new AnimalMovimientoInfo
                            {
                                AnimalID          = animal.AnimalID,
                                CorralID          = corralDestino.CorralID,
                                LoteID            = loteDestino.LoteID,
                                TipoMovimientoID  = tipoMovimiento,
                                OperadorID        = operador,
                                OrganizacionID    = organizacion,
                                TrampaID          = ultimoMovimiento.TrampaID,
                                Peso              = ultimoMovimiento.Peso,
                                Temperatura       = ultimoMovimiento.Temperatura,
                                UsuarioCreacionID = usuarioCreacion
                            };
                            animalMovimientoBl.GuardarAnimalMovimiento(animalMovimientoOrigen);

                            loteOrigen.Cabezas        = loteOrigen.Cabezas - 1;
                            loteDestino.Cabezas       = loteDestino.Cabezas + 1;
                            loteDestino.CabezasInicio = loteDestino.CabezasInicio + 1;

                            var filtroActualizaCabezas = new FiltroActualizarCabezasLote
                            {
                                LoteIDOrigen          = loteOrigen.LoteID,
                                LoteIDDestino         = loteDestino.LoteID,
                                CabezasProcesadas     = 1,
                                UsuarioModificacionID = usuarioCreacion
                            };
                            loteBl.ActualizarCabezasProcesadas(filtroActualizaCabezas);

                            //loteBl.ActualizaNoCabezasEnLote(loteDestino, loteOrigen);
                        }
                        else
                        {
                            retorno = -1;
                        }
                    }
                    else
                    {
                        retorno = -1;
                    }
                }
                else
                {
                    retorno = -1;
                }
            }
            else
            {
                retorno = -1;
            }

            return(retorno);
        }
Ejemplo n.º 5
0
        /// <summary>
        /// Metodo para Guardar la Salida Ganado
        /// </summary>
        /// <param name="animalInactivo"></param>
        internal bool GuardarSalidaGanado(AnimalInfo animalInactivo)
        {
            var envioAnimal = false;

            try
            {
                Logger.Info();
                var animalBL = new AnimalBL();

                //Se obtiene el ultimo movimiento
                var ultimoMovimiento = animalBL.ObtenerUltimoMovimientoAnimal(animalInactivo);

                var salidaGanadoInfo = new SalidaGanadoInfo
                {
                    Organizacion = new OrganizacionInfo
                    {
                        OrganizacionID = animalInactivo.OrganizacionIDEntrada
                    },
                    TipoMovimiento = (TipoMovimiento)ultimoMovimiento.TipoMovimientoID,
                    Activo         = EstatusEnum.Activo,
                    //VentaGanado = new VentaGanadoInfo(){VentaGanadoID = null},
                    UsuarioCreacionID = animalInactivo.UsuarioCreacionID
                };

                if (ultimoMovimiento.TipoMovimientoID == (int)TipoMovimiento.SalidaPorVenta)
                {
                    //Si el ultimo movimiento es venta obtener el ID de la VentaGanado
                    var ventaDetalleBL = new VentaGanadoDetalleBL();
                    VentaGanadoDetalleInfo ventaDetalleInfo =
                        ventaDetalleBL.ExisteAnimal(animalInactivo);

                    if (ventaDetalleInfo != null)
                    {
                        salidaGanadoInfo.VentaGanado = new VentaGanadoInfo
                        {
                            VentaGanadoID = ventaDetalleInfo.VentaGanadoID
                        };
                    }
                }

                var salidaGanadoDAL           = new SalidaGanadoDAL();
                SalidaGanadoInfo salidaGanado = null;

                //Se valida si la venta es
                if (salidaGanadoInfo.VentaGanado != null)
                {
                    //Se busca la venta en la salida Ganado
                    salidaGanado = salidaGanadoDAL.ExisteVentaEnSalidaGanado(salidaGanadoInfo);
                }

                if (salidaGanado == null)
                {
                    //Se guarda en SalidaGanado
                    salidaGanado =
                        salidaGanadoDAL.GuardarSalidaGanado(salidaGanadoInfo, (int)TipoFolio.SalidaGanado);
                }

                //Se almacena SalidaAnimal
                var salidaAnimalBL = new SalidaAnimalBL();

                var salidaAnimalInfo = new SalidaAnimalInfo()
                {
                    SalidaGanado = salidaGanado,
                    Animal       = animalInactivo,
                    Lote         = new LoteInfo {
                        LoteID = ultimoMovimiento.LoteID
                    },
                    Activo            = EstatusEnum.Activo,
                    UsuarioCreacionID = animalInactivo.UsuarioCreacionID
                };

                envioAnimal = salidaAnimalBL.Guardar(salidaAnimalInfo);

                envioAnimal = true;
            }
            catch (ExcepcionGenerica)
            {
                throw;
            }
            catch (Exception ex)
            {
                Logger.Error(ex);
                throw new ExcepcionDesconocida(MethodBase.GetCurrentMethod(), ex);
            }
            return(envioAnimal);
        }