/// <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); } }
/// <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); } }
/// <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); } }
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); }