/// <summary>
 /// Obtiene por Animal Movimiento ID
 /// </summary>
 /// <param name="animalMovimientoID">id del animal movimiento</param>
 /// <returns></returns>
 public DeteccionAnimalInfo ObtenerPorAnimalMovimientoID(long animalMovimientoID)
 {
     try
     {
         Logger.Info();
         Dictionary <string, object> parameters = AuxDeteccionAnimalDAL.ObtenerParametrosPorAnimalMovimientoID(animalMovimientoID);
         DataSet             ds     = Retrieve("DeteccionAnimal_ObtenerPorAnimalMovimientoID", parameters);
         DeteccionAnimalInfo result = null;
         if (ValidateDataSet(ds))
         {
             result = MapDeteccionAnimalDAL.ObtenerPorAnimalMovimientoID(ds);
         }
         return(result);
     }
     catch (SqlException ex)
     {
         Logger.Error(ex);
         throw new ExcepcionServicio(MethodBase.GetCurrentMethod(), ex);
     }
     catch (DataException ex)
     {
         Logger.Error(ex);
         throw new ExcepcionServicio(MethodBase.GetCurrentMethod(), ex);
     }
     catch (Exception ex)
     {
         Logger.Error(ex);
         throw new ExcepcionDesconocida(MethodBase.GetCurrentMethod(), ex);
     }
 }
 /// <summary>
 /// Metodo para Guardar/Modificar una entidad DeteccionAnimal
 /// </summary>
 /// <param name="info"></param>
 public int Guardar(DeteccionAnimalInfo info)
 {
     try
     {
         Logger.Info();
         var deteccionAnimalDAL = new DeteccionAnimalDAL();
         int result             = info.DeteccionAnimalID;
         if (info.DeteccionAnimalID == 0)
         {
             result = deteccionAnimalDAL.Crear(info);
         }
         else
         {
             deteccionAnimalDAL.Actualizar(info);
         }
         return(result);
     }
     catch (ExcepcionGenerica)
     {
         throw;
     }
     catch (Exception ex)
     {
         Logger.Error(ex);
         throw new ExcepcionDesconocida(MethodBase.GetCurrentMethod(), ex);
     }
 }
 /// <summary>
 /// Metodo para Crear un registro de DeteccionAnimal
 /// </summary>
 /// <param name="info">Valores de la entidad que será creada</param>
 public int Crear(DeteccionAnimalInfo info)
 {
     try
     {
         Logger.Info();
         Dictionary <string, object> parameters = AuxDeteccionAnimalDAL.ObtenerParametrosCrear(info);
         int result = Create("DeteccionAnimal_Crear", parameters);
         return(result);
     }
     catch (SqlException ex)
     {
         Logger.Error(ex);
         throw new ExcepcionServicio(MethodBase.GetCurrentMethod(), ex);
     }
     catch (DataException ex)
     {
         Logger.Error(ex);
         throw new ExcepcionServicio(MethodBase.GetCurrentMethod(), ex);
     }
     catch (Exception ex)
     {
         Logger.Error(ex);
         throw new ExcepcionDesconocida(MethodBase.GetCurrentMethod(), ex);
     }
 }
 /// <summary>
 ///  Obtiene parametros para actualizar
 /// </summary>
 /// <param name="info">Valores de la entidad</param>
 /// <returns></returns>
 public static Dictionary <string, object> ObtenerParametrosActualizar(DeteccionAnimalInfo info)
 {
     try
     {
         Logger.Info();
         var parametros =
             new Dictionary <string, object>
         {
             { "@DeteccionAnimalID", info.DeteccionAnimalID },
             { "@AnimalMovimientoID", info.AnimalMovimientoID },
             { "@Arete", info.Arete },
             { "@AreteMetalico", info.AreteMetalico },
             { "@FotoDeteccion", info.FotoDeteccion },
             { "@LoteID", info.Lote.LoteID },
             { "@OperadorID", info.Operador.OperadorID },
             { "@TipoDeteccionID", info.TipoDeteccion.TipoDeteccionID },
             { "@GradoID", info.Grado.GradoID },
             { "@Observaciones", info.Observaciones },
             { "@NoFierro", info.NoFierro },
             { "@FechaDeteccion", info.FechaDeteccion },
             { "@DeteccionAnalista", info.DeteccionAnalista },
             { "@Activo", info.Activo },
             { "@UsuarioModificacionID", info.UsuarioModificacionID },
         };
         return(parametros);
     }
     catch (Exception ex)
     {
         Logger.Error(ex);
         throw new ExcepcionDesconocida(MethodBase.GetCurrentMethod(), ex);
     }
 }
Beispiel #5
0
 /// <summary>
 ///  Método que obtiene un registro
 /// </summary>
 /// <param name="ds"></param>
 /// <returns></returns>
 public static DeteccionAnimalInfo ObtenerPorAnimalMovimientoID(DataSet ds)
 {
     try
     {
         Logger.Info();
         DataTable           dt      = ds.Tables[ConstantesDAL.DtDatos];
         DeteccionAnimalInfo entidad =
             (from info in dt.AsEnumerable()
              select
              new DeteccionAnimalInfo
         {
             DeteccionAnimalID = info.Field <int>("DeteccionAnimalID"),
             AnimalMovimientoID = info.Field <long>("AnimalMovimientoID"),
             Arete = info.Field <string>("Arete"),
             AreteMetalico = info.Field <string>("AreteMetalico"),
             FotoDeteccion = info.Field <string>("FotoDeteccion"),
             Lote = new LoteInfo {
                 LoteID = info.Field <int>("LoteID"), Lote = info.Field <string>("Lote"), TipoCorralID = info.Field <int>("TipoCorralID")
             },
             Operador = new OperadorInfo {
                 OperadorID = info.Field <int>("OperadorID"), Nombre = info.Field <string>("Operador")
             },
             TipoDeteccion = new TipoDeteccionInfo {
                 TipoDeteccionID = info.Field <int>("TipoDeteccionID"), Descripcion = info.Field <string>("TipoDeteccion")
             },
             Grado = new GradoInfo {
                 GradoID = info.Field <int>("GradoID"), Descripcion = info.Field <string>("Grado")
             },
             Observaciones = info.Field <string>("Observaciones"),
             NoFierro = info.Field <string>("NoFierro"),
             FechaDeteccion = info.Field <DateTime>("FechaDeteccion"),
             DeteccionAnalista = info.Field <bool>("DeteccionAnalista"),
             Activo = info.Field <bool>("Activo").BoolAEnum(),
             GrupoCorralID = info.Field <int>("GrupoCorralID")
         }).First();
         return(entidad);
     }
     catch (Exception ex)
     {
         Logger.Error(ex);
         throw new ExcepcionDesconocida(MethodBase.GetCurrentMethod(), ex);
     }
 }
 /// <summary>
 /// Obtiene por Animal Movimiento ID
 /// </summary>
 /// <param name="animalMovimientoID">id del animal movimiento</param>
 /// <returns></returns>
 public DeteccionAnimalInfo ObtenerPorAnimalMovimientoID(long animalMovimientoID)
 {
     try
     {
         Logger.Info();
         var deteccionAnimalDAL     = new DeteccionAnimalDAL();
         DeteccionAnimalInfo result = deteccionAnimalDAL.ObtenerPorAnimalMovimientoID(animalMovimientoID);
         return(result);
     }
     catch (ExcepcionGenerica)
     {
         throw;
     }
     catch (Exception ex)
     {
         Logger.Error(ex);
         throw new ExcepcionDesconocida(MethodBase.GetCurrentMethod(), ex);
     }
 }
 /// <summary>
 /// Obtiene una entidad DeteccionAnimal por su descripción
 /// </summary>
 /// <param name="descripcion"></param>
 /// <returns></returns>
 public DeteccionAnimalInfo ObtenerPorDescripcion(string descripcion)
 {
     try
     {
         Logger.Info();
         var deteccionAnimalDAL     = new DeteccionAnimalDAL();
         DeteccionAnimalInfo result = deteccionAnimalDAL.ObtenerPorDescripcion(descripcion);
         return(result);
     }
     catch (ExcepcionGenerica)
     {
         throw;
     }
     catch (Exception ex)
     {
         Logger.Error(ex);
         throw new ExcepcionDesconocida(MethodBase.GetCurrentMethod(), ex);
     }
 }
 /// <summary>
 /// Metodo para actualizar un registro de DeteccionAnimal
 /// </summary>
 /// <param name="info">Valores de la entidad que se actualizarán</param>
 public void Actualizar(DeteccionAnimalInfo info)
 {
     try
     {
         Logger.Info();
         Dictionary <string, object> parameters = AuxDeteccionAnimalDAL.ObtenerParametrosActualizar(info);
         Update("DeteccionAnimal_Actualizar", parameters);
     }
     catch (SqlException ex)
     {
         Logger.Error(ex);
         throw new ExcepcionServicio(MethodBase.GetCurrentMethod(), ex);
     }
     catch (DataException ex)
     {
         Logger.Error(ex);
         throw new ExcepcionServicio(MethodBase.GetCurrentMethod(), ex);
     }
     catch (Exception ex)
     {
         Logger.Error(ex);
         throw new ExcepcionDesconocida(MethodBase.GetCurrentMethod(), ex);
     }
 }
 /// <summary>
 /// Obtiene un lista paginada
 /// </summary>
 /// <param name="pagina"></param>
 /// <param name="filtro"></param>
 /// <returns></returns>
 public ResultadoInfo <DeteccionAnimalInfo> ObtenerPorPagina(PaginacionInfo pagina, DeteccionAnimalInfo filtro)
 {
     try
     {
         Dictionary <string, object> parameters = AuxDeteccionAnimalDAL.ObtenerParametrosPorPagina(pagina, filtro);
         DataSet ds = Retrieve("DeteccionAnimal_ObtenerPorPagina", parameters);
         ResultadoInfo <DeteccionAnimalInfo> result = null;
         if (ValidateDataSet(ds))
         {
             result = MapDeteccionAnimalDAL.ObtenerPorPagina(ds);
         }
         return(result);
     }
     catch (SqlException ex)
     {
         Logger.Error(ex);
         throw new ExcepcionServicio(MethodBase.GetCurrentMethod(), ex);
     }
     catch (DataException ex)
     {
         Logger.Error(ex);
         throw new ExcepcionServicio(MethodBase.GetCurrentMethod(), ex);
     }
     catch (Exception ex)
     {
         Logger.Error(ex);
         throw new ExcepcionDesconocida(MethodBase.GetCurrentMethod(), ex);
     }
 }
 /// <summary>
 /// Obtiene parametros para obtener lista paginada
 /// </summary>
 /// <param name="pagina"></param>
 /// <param name="filtro"></param>
 /// <returns></returns>
 public static Dictionary <string, object> ObtenerParametrosPorPagina(PaginacionInfo pagina, DeteccionAnimalInfo filtro)
 {
     try
     {
         Logger.Info();
         var parametros =
             new Dictionary <string, object>
         {
             { "@DeteccionAnimalID", filtro.DeteccionAnimalID },
             //{"@Descripcion", filtro.Descripcion},
             { "@Activo", filtro.Activo },
             { "@Inicio", pagina.Inicio },
             { "@Limite", pagina.Limite }
         };
         return(parametros);
     }
     catch (Exception ex)
     {
         Logger.Error(ex);
         throw new ExcepcionDesconocida(MethodBase.GetCurrentMethod(), ex);
     }
 }
Beispiel #11
0
 /// <summary>
 /// Obtiene un lista paginada
 /// </summary>
 /// <param name="pagina"></param>
 /// <param name="filtro"></param>
 /// <returns></returns>
 public ResultadoInfo <DeteccionAnimalInfo> ObtenerPorPagina(PaginacionInfo pagina, DeteccionAnimalInfo filtro)
 {
     try
     {
         Logger.Info();
         var deteccionAnimalDAL = new DeteccionAnimalDAL();
         ResultadoInfo <DeteccionAnimalInfo> result = deteccionAnimalDAL.ObtenerPorPagina(pagina, filtro);
         return(result);
     }
     catch (ExcepcionGenerica)
     {
         throw;
     }
     catch (Exception ex)
     {
         Logger.Error(ex);
         throw new ExcepcionDesconocida(MethodBase.GetCurrentMethod(), ex);
     }
 }
Beispiel #12
0
        public static List <CorralInfo> ObtenerCorralDestinoAnimal(string arete)
        {
            var corrales = new List <CorralInfo>();

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

                //animal = animalPL.ObtenerAnimalPorArete(arete, organizacionId);

                List <AnimalMovimientoInfo> movimientosArete =
                    animalMovimientoPL.ObtenerMovimientosPorArete(organizacionId, arete);

                var    movimientoEnfermeria    = new AnimalMovimientoInfo();
                var    movimientoCorralOrigen  = new AnimalMovimientoInfo();
                var    parametroOrganizacionPL = new ParametroOrganizacionPL();
                var    deteccionAnimalBL       = new DeteccionAnimalBL();
                var    corralPL       = new CorralPL();
                double diasEnfermeria = 0;
                if (movimientosArete != null && movimientosArete.Any())
                {
                    movimientosArete = movimientosArete.OrderByDescending(mov => mov.AnimalMovimientoID).ToList();
                    foreach (var animalMovimientoInfo in movimientosArete)
                    {
                        if (animalMovimientoInfo.GrupoCorralID == GrupoCorralEnum.Enfermeria.GetHashCode())
                        {
                            var movimientosDiferenteEnfermeria =
                                movimientosArete.Any(
                                    mov => mov.GrupoCorralID != GrupoCorralEnum.Enfermeria.GetHashCode());

                            if (!movimientosDiferenteEnfermeria)
                            {
                                var primerMovimientoEnfermeria = movimientosArete.LastOrDefault();

                                if (primerMovimientoEnfermeria != null)
                                {
                                    movimientoEnfermeria = primerMovimientoEnfermeria;

                                    DeteccionAnimalInfo deteccionAnimal =
                                        deteccionAnimalBL.ObtenerPorAnimalMovimientoID(
                                            movimientoEnfermeria.AnimalMovimientoID);

                                    if (deteccionAnimal != null)
                                    {
                                        animalMovimientoInfo.GrupoCorralEnum = (GrupoCorralEnum)deteccionAnimal.GrupoCorralID;
                                        movimientoCorralOrigen = animalMovimientoInfo;
                                        TimeSpan diferencia = DateTime.Now - movimientoEnfermeria.FechaMovimiento;
                                        diasEnfermeria = diferencia.TotalDays;
                                        break;
                                    }
                                }
                            }
                            movimientoEnfermeria = animalMovimientoInfo;
                            continue;
                        }
                        if (animalMovimientoInfo.GrupoCorralID != GrupoCorralEnum.Enfermeria.GetHashCode())
                        {
                            //Validar que el corral no sea el de Sobrantes
                            ParametroOrganizacionInfo parametroOrganizacionSobrante =
                                parametroOrganizacionPL.ObtenerPorOrganizacionIDClaveParametro(organizacionId,
                                                                                               ParametrosEnum.CORRALSOBRANTE.ToString());

                            if (parametroOrganizacionSobrante != null &&
                                !string.IsNullOrWhiteSpace(parametroOrganizacionSobrante.Valor))
                            {
                                var corralSobrante = new CorralInfo
                                {
                                    Codigo       = parametroOrganizacionSobrante.Valor,
                                    Organizacion = new OrganizacionInfo
                                    {
                                        OrganizacionID = organizacionId
                                    }
                                };

                                corralSobrante = corralPL.ObtenerPorCodicoOrganizacionCorral(corralSobrante);
                                var lotePL = new LotePL();
                                if (corralSobrante != null)
                                {
                                    LoteInfo loteOrigenSobrante = lotePL.ObtenerPorCorral(organizacionId,
                                                                                          corralSobrante.CorralID);
                                    TimeSpan diferencia;
                                    if (loteOrigenSobrante != null)
                                    {
                                        if (loteOrigenSobrante.LoteID == animalMovimientoInfo.LoteID)
                                        {
                                            DeteccionAnimalInfo deteccionAnimal =
                                                deteccionAnimalBL.ObtenerPorAnimalMovimientoID(
                                                    movimientoEnfermeria.AnimalMovimientoID);

                                            if (deteccionAnimal != null)
                                            {
                                                animalMovimientoInfo.GrupoCorralEnum =
                                                    (GrupoCorralEnum)animalMovimientoInfo.GrupoCorralID;
                                                movimientoCorralOrigen        = animalMovimientoInfo;
                                                movimientoCorralOrigen.LoteID = deteccionAnimal.Lote.LoteID;
                                                diferencia     = DateTime.Now - movimientoEnfermeria.FechaMovimiento;
                                                diasEnfermeria = diferencia.TotalDays;
                                                break;
                                            }
                                        }
                                    }

                                    animalMovimientoInfo.GrupoCorralEnum =
                                        (GrupoCorralEnum)animalMovimientoInfo.GrupoCorralID;
                                    movimientoCorralOrigen = animalMovimientoInfo;
                                    diferencia             = DateTime.Now - movimientoEnfermeria.FechaMovimiento;
                                    diasEnfermeria         = diferencia.TotalDays;
                                    break;
                                }
                            }
                        }
                    }
                }
                int diasRecuperacion = 0;



                ParametroOrganizacionInfo parametroOrganizacion =
                    parametroOrganizacionPL.ObtenerPorOrganizacionIDClaveParametro(organizacionId,
                                                                                   ParametrosEnum.DiasRecuperacion.
                                                                                   ToString());

                if (parametroOrganizacion != null)
                {
                    int.TryParse(parametroOrganizacion.Valor, out diasRecuperacion);
                }

                if (diasRecuperacion == 0)
                {
                    diasRecuperacion = 7; //Valor por default, si no se encuentra el parámetro de la organización
                }



                if (movimientoCorralOrigen.TipoCorralID == TipoCorral.CorraletaRecuperado.GetHashCode() ||
                    movimientoCorralOrigen.TipoCorralID == TipoCorral.CorraletaRecuperadosPartida.GetHashCode())
                {
                    var tipoCorralRecuperado = new TipoCorralInfo
                    {
                        TipoCorralID = TipoCorral.CorraletaRecuperado.GetHashCode()
                    };
                    List <CorralInfo> corralesRecuperados = corralPL.ObtenerCorralesPorTipoCorral(tipoCorralRecuperado, organizacionId);
                    if (corralesRecuperados != null && corralesRecuperados.Any())
                    {
                        corrales.AddRange(corralesRecuperados);
                        return(corrales);
                    }
                }
                switch (movimientoCorralOrigen.GrupoCorralEnum)
                {
                case GrupoCorralEnum.Produccion:
                    if (diasEnfermeria < diasRecuperacion)
                    {
                        var lotePL = new LotePL();
                        //var corralPL = new CorralPL();
                        LoteInfo loteOriginal = lotePL.ObtenerPorId(movimientoCorralOrigen.LoteID);
                        if (loteOriginal != null && loteOriginal.Activo == EstatusEnum.Activo)
                        {
                            corrales.Add(loteOriginal.Corral);
                        }
                        else
                        {
                            var tipoCorralRecuperado = new TipoCorralInfo
                            {
                                TipoCorralID = TipoCorral.CorraletaRecuperado.GetHashCode()
                            };
                            List <CorralInfo> corralesRecuperados = corralPL.ObtenerCorralesPorTipoCorral(tipoCorralRecuperado, organizacionId);
                            if (corralesRecuperados != null && corralesRecuperados.Any())
                            {
                                corrales.AddRange(corralesRecuperados);
                            }
                        }
                    }
                    else
                    {
                        //var corralPL = new CorralPL();
                        var tipoCorralRecuperado = new TipoCorralInfo
                        {
                            TipoCorralID = TipoCorral.CorraletaRecuperado.GetHashCode()
                        };
                        List <CorralInfo> corralesRecuperados = corralPL.ObtenerCorralesPorTipoCorral(tipoCorralRecuperado, organizacionId);
                        if (corralesRecuperados != null && corralesRecuperados.Any())
                        {
                            corrales.AddRange(corralesRecuperados);
                        }
                    }
                    break;

                case GrupoCorralEnum.Recepcion:
                    if (diasEnfermeria < diasRecuperacion)
                    {
                        //var corralPL = new CorralPL();

                        var tipoCorralRecuperadoPartida = new TipoCorralInfo
                        {
                            TipoCorralID = TipoCorral.CorraletaRecuperadosPartida.GetHashCode()
                        };
                        List <CorralInfo> corralesRecuperados = corralPL.ObtenerCorralesPorTipoCorral(tipoCorralRecuperadoPartida, organizacionId);
                        if (corralesRecuperados != null && corralesRecuperados.Any())
                        {
                            corrales.AddRange(corralesRecuperados);
                        }
                    }
                    else
                    {
                        //var corralPL = new CorralPL();
                        var tipoCorralRecuperado = new TipoCorralInfo
                        {
                            TipoCorralID = TipoCorral.CorraletaRecuperado.GetHashCode()
                        };
                        List <CorralInfo> corralesRecuperados = corralPL.ObtenerCorralesPorTipoCorral(tipoCorralRecuperado, organizacionId);
                        if (corralesRecuperados != null && corralesRecuperados.Any())
                        {
                            corrales.AddRange(corralesRecuperados);
                        }
                    }
                    break;
                }

                if (!corrales.Any())
                {
                    var tipoCorralRecuperado = new TipoCorralInfo
                    {
                        TipoCorralID = TipoCorral.CorraletaRecuperado.GetHashCode()
                    };
                    List <CorralInfo> corralesRecuperados = corralPL.ObtenerCorralesPorTipoCorral(tipoCorralRecuperado, organizacionId);
                    if (corralesRecuperados != null && corralesRecuperados.Any())
                    {
                        corrales.AddRange(corralesRecuperados);
                    }
                }
            }
            catch (Exception ex)
            {
                Logger.Error(ex);
            }

            return(corrales);
        }