/// <summary> /// Carga la informacion del arete en pantalla /// </summary> private void LlenarDatosArete() { MuerteInfo areteMuerto = null; var pl = new MuertePL(); var animalPL = new AnimalPL(); var corralPL = new CorralPL(); try { var seguridad = (SeguridadInfo)HttpContext.Current.Session["Seguridad"]; var organizacionID = seguridad.Usuario.Organizacion.OrganizacionID; if (seguridad != null) { //Se obtiene el Corral para ver Si es de Recepcion corralInfo = corralPL.ObtenerCorralPorCodigo(organizacionID, corralInfo.Codigo); if (corralInfo.GrupoCorral == (int)GrupoCorralEnum.Recepcion) { /* Si el corral es de Recepcion */ areteMuerto = pl.ObtenerGanadoMuertoPorAreteRecepcion(organizacionID, numeroArete); } else { /* Si el corral es de Enfermeria o produccion */ areteMuerto = pl.ObtenerGanadoMuertoPorArete(organizacionID, numeroArete); if (areteMuerto != null && areteMuerto.AnimalId > 0) { areteMuerto.Peso = animalPL.ObtenerUltimoMovimientoAnimal(new AnimalInfo() { AnimalID = areteMuerto.AnimalId, OrganizacionIDEntrada = organizacionID }).Peso; } else { if (areteMuerto == null) { areteMuerto = new MuerteInfo { Arete = numeroArete, CorralCodigo = corralInfo.Codigo }; } var lote = new LoteInfo(); var lotePl = new LotePL(); lote = lotePl.ObtenerPorCorral(organizacionID, corralInfo.CorralID); if (lote != null) { var listaAnimales = animalPL.ObtenerAnimalesPorLoteID(lote); if (listaAnimales != null) { var listaMovimientosActivos = (from animal in listaAnimales let movimiento = new AnimalMovimientoInfo() select animalPL.ObtenerUltimoMovimientoAnimal(animal)).ToList(); if (listaMovimientosActivos.Count > 0) { areteMuerto.Peso = listaMovimientosActivos.Sum(registro => registro.Peso) / listaMovimientosActivos.Count; } } } } } if (areteMuerto != null) { hdMuerteId.Value = areteMuerto.MuerteId.ToString(); hdAnimalId.Value = areteMuerto.AnimalId.ToString(); hdCorralId.Value = areteMuerto.CorralId.ToString(); hdLoteId.Value = areteMuerto.LoteId.ToString(); if (areteMuerto.MuerteId == 0) { hdMuerteId.Value = muerteId.ToString(); } txtCorral.Text = areteMuerto.CorralCodigo; txtPeso.Text = areteMuerto.Peso.ToString(); txtAreteMetalico.Text = areteMuerto.AreteMetalico; txtNumeroArete.Text = areteMuerto.Arete; txtNombreResponsable.Text = seguridad.Usuario.Nombre; lblFechaSalida.Text += " " + DateTime.Now.ToShortDateString(); lblHoraSalida.Text += " " + DateTime.Now.ToShortTimeString(); var parametros = ObtenerParametrosRutaImagenes(seguridad.Usuario.Organizacion.OrganizacionID); imgFotoDeteccion.Visible = false; if (parametros != null && areteMuerto.FotoDeteccion != string.Empty) { imgFotoDeteccion.Visible = true; imgFotoDeteccion.ImageUrl = parametros.Valor + areteMuerto.FotoDeteccion; } } else { ClientScript.RegisterStartupScript(this.GetType(), "myScript", "MostrarFalloCargarDatos();", true); } } } catch (Exception ex) { Logger.Error(ex); throw; } }
//Metodo que valida que corral destino tenga capacidad y no este cerrado private bool ValidarCorralDestino() { var corralValido = true; //Verificar que corral sea grupo enfermeria var corralInfo = new CorralInfo { Codigo = txtCorralDestino.Text, GrupoCorral = corralInfoOrigen.GrupoCorral, Organizacion = new OrganizacionInfo { OrganizacionID = organizacionID } }; var corralPL = new CorralPL(); corralInfoDestino = corralPL.ObtenerPorCodigoGrupoCorral(corralInfo); if (corralInfoDestino != null) { if (corralInfoDestino.TipoCorral.TipoCorralID == TipoCorral.CronicoVentaMuerte.GetHashCode()) { SkMessageBox.Show(Application.Current.Windows[ConstantesVista.WindowPrincipal], Properties.Resources.TraspasoGanadoCorrales_CorralCronico, MessageBoxButton.OK, MessageImage.Warning); corralValido = false; } var lotePL = new LotePL(); var resultadoLote = lotePL.ObtenerPorCorral(organizacionID, corralInfoDestino.CorralID); if (resultadoLote != null) { //Verificar capacidad de corral destino if (!(resultadoLote.Cabezas < corralInfoDestino.Capacidad)) { SkMessageBox.Show(Application.Current.Windows[ConstantesVista.WindowPrincipal], Properties.Resources.CorteTransferenciaGanado_NoCapacidadCorral, MessageBoxButton.OK, MessageImage.Warning); corralValido = false; } } else { var resultadoLoteCerrado = lotePL.ObtenerPorCorralCerrado(organizacionID, corralInfoDestino.CorralID); if (resultadoLoteCerrado != null) { //Corral destino cerrado SkMessageBox.Show(Application.Current.Windows[ConstantesVista.WindowPrincipal], Properties.Resources.CorteTransferenciaGanado_CorralDestinoCerrado, MessageBoxButton.OK, MessageImage.Warning); corralValido = false; } } } else { if (corralInfoOrigen.GrupoCorral == GrupoCorralEnum.Enfermeria.GetHashCode()) { //Corral no es de grupo enfermeria SkMessageBox.Show(Application.Current.Windows[ConstantesVista.WindowPrincipal], Properties.Resources.TraspasoGanadoCorral_CorralNoEsEnfermeria, MessageBoxButton.OK, MessageImage.Warning); corralValido = false; } else if (corralInfoOrigen.GrupoCorral == GrupoCorralEnum.Produccion.GetHashCode()) { //Corral no es de grupo produccion SkMessageBox.Show(Application.Current.Windows[ConstantesVista.WindowPrincipal], Properties.Resources.TraspasoGanadoCorral_CorralNoEsProduccion, MessageBoxButton.OK, MessageImage.Warning); corralValido = false; } else if (corralInfoOrigen.GrupoCorral == GrupoCorralEnum.Recepcion.GetHashCode()) { //Corral no es de grupo recepcion SkMessageBox.Show(Application.Current.Windows[ConstantesVista.WindowPrincipal], Properties.Resources.TraspasoGanadoCorral_CorralNoEsRecepcion, MessageBoxButton.OK, MessageImage.Warning); corralValido = false; } } return(corralValido); }
//Metodo que valida que corral destino tenga capacidad private bool ValidarCapacidadCorralDestino(bool todosDerecha) { var corralConCapacidad = true; int sumatoriaCabezas; var aretesSeleccionadosOrigen = lisBoxCorralOrigen.SelectedItems; var aretesTotalOrigen = lisBoxCorralOrigen.Items.Count; var aretesDestino = lisBoxCorralDestino.Items.Count; //Corral grupo enfermeria var lotePL = new LotePL(); var resultadoLote = lotePL.ObtenerPorCorral(organizacionID, corralInfoDestino.CorralID); if (resultadoLote != null) { if (todosDerecha) { sumatoriaCabezas = resultadoLote.Cabezas + aretesDestino + aretesTotalOrigen; if (!((sumatoriaCabezas) <= corralInfoDestino.Capacidad)) { //Corral no tiene capacidad SkMessageBox.Show(Application.Current.Windows[ConstantesVista.WindowPrincipal], Properties.Resources.CorteTransferenciaGanado_NoCapacidadCorral, MessageBoxButton.OK, MessageImage.Warning); corralConCapacidad = false; } } else { sumatoriaCabezas = resultadoLote.Cabezas + aretesDestino + aretesSeleccionadosOrigen.Count; if (!((sumatoriaCabezas) <= corralInfoDestino.Capacidad)) { //Corral no tiene capacidad SkMessageBox.Show(Application.Current.Windows[ConstantesVista.WindowPrincipal], Properties.Resources.CorteTransferenciaGanado_NoCapacidadCorral, MessageBoxButton.OK, MessageImage.Warning); corralConCapacidad = false; } } } else { if (todosDerecha) { sumatoriaCabezas = aretesDestino + aretesTotalOrigen; if (!((sumatoriaCabezas) <= corralInfoDestino.Capacidad)) { //Corral no tiene capacidad SkMessageBox.Show(Application.Current.Windows[ConstantesVista.WindowPrincipal], Properties.Resources.CorteTransferenciaGanado_NoCapacidadCorral, MessageBoxButton.OK, MessageImage.Warning); corralConCapacidad = false; } } else { sumatoriaCabezas = aretesDestino + aretesSeleccionadosOrigen.Count; if (!((sumatoriaCabezas) <= corralInfoDestino.Capacidad)) { //Corral no tiene capacidad SkMessageBox.Show(Application.Current.Windows[ConstantesVista.WindowPrincipal], Properties.Resources.CorteTransferenciaGanado_NoCapacidadCorral, MessageBoxButton.OK, MessageImage.Warning); corralConCapacidad = false; } } } return(corralConCapacidad); }
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); }