//Evento KeyDown de txtCorralOrigen private void txtCorralOrigen_KeyDown(object sender, KeyEventArgs e) { if (e.Key == Key.Enter || e.Key == Key.Tab) { if (String.IsNullOrWhiteSpace(txtCorralOrigen.Text)) { e.Handled = true; } else { LimpiarPantalla(false); //Verificar existencia del corral var corralPl = new CorralPL(); var resultado = corralPl.ObtenerExistenciaCorral(organizacionID, txtCorralOrigen.Text); if (resultado == null) { SkMessageBox.Show(Application.Current.Windows[ConstantesVista.WindowPrincipal], Properties.Resources.TraspasoGanadoCorral_CorralNoExiste, MessageBoxButton.OK, MessageImage.Warning); e.Handled = true; } else { //Verificar si corral es de enfermeria var corralInfo = new CorralInfo { Codigo = txtCorralOrigen.Text, GrupoCorral = (int)GrupoCorralEnum.Enfermeria, Organizacion = new OrganizacionInfo { OrganizacionID = organizacionID } }; corralInfo = corralPl.ObtenerPorCodigoGrupoCorral(corralInfo); if (corralInfo == null) { //Verificar si corral es de recepcion corralInfo = new CorralInfo { Codigo = txtCorralOrigen.Text, GrupoCorral = (int)GrupoCorralEnum.Produccion, Organizacion = new OrganizacionInfo { OrganizacionID = organizacionID } }; corralInfo = corralPl.ObtenerPorCodigoGrupoCorral(corralInfo); if (corralInfo == null) { corralInfo = new CorralInfo { Codigo = txtCorralOrigen.Text, GrupoCorral = (int)GrupoCorralEnum.Recepcion, Organizacion = new OrganizacionInfo { OrganizacionID = organizacionID } }; corralInfo = corralPl.ObtenerPorCodigoGrupoCorral(corralInfo); if (corralInfo == null) { SkMessageBox.Show(Application.Current.Windows[ConstantesVista.WindowPrincipal], Properties.Resources.TraspasoGanadoCorral_CorralNoEsEnfermeria, MessageBoxButton.OK, MessageImage.Warning); e.Handled = true; } else { corralInfoOrigen = corralInfo; corralInfoOrigen.OrganizacionId = organizacionID; var animalPL = new AnimalPL(); listaAnimales = animalPL.ObtenerAnimalesRecepcionPorCodigoCorral(corralInfo); if (listaAnimales != null) { lisBoxCorralOrigen.ItemsSource = listaAnimales; txtCorralDestino.IsEnabled = true; } else { SkMessageBox.Show(Application.Current.Windows[ConstantesVista.WindowPrincipal], Properties.Resources.TraspasoGanadoCorral_CorralNoTieneLoteActivo, MessageBoxButton.OK, MessageImage.Warning); e.Handled = true; } } } else { corralInfoOrigen = corralInfo; corralInfoOrigen.OrganizacionId = organizacionID; var animalPL = new AnimalPL(); listaAnimales = animalPL.ObtenerAnimalesPorCodigoCorral(corralInfo); if (listaAnimales != null) { lisBoxCorralOrigen.ItemsSource = listaAnimales; txtCorralDestino.IsEnabled = true; } else { SkMessageBox.Show(Application.Current.Windows[ConstantesVista.WindowPrincipal], Properties.Resources.TraspasoGanadoCorral_CorralNoTieneLoteActivo, MessageBoxButton.OK, MessageImage.Warning); e.Handled = true; } } } else { if (corralInfo.TipoCorral.TipoCorralID == (int)TipoCorral.CronicoVentaMuerte) { SkMessageBox.Show(Application.Current.Windows[ConstantesVista.WindowPrincipal], Properties.Resources.TraspasoGanadoCorral_CorralEsCronicoVentaMuerte, MessageBoxButton.OK, MessageImage.Warning); e.Handled = true; } else { //Obtener animales para mostrar Arete en list var animalPL = new AnimalPL(); listaAnimales = animalPL.ObtenerAnimalesPorCodigoCorral(corralInfo); corralInfoOrigen = corralInfo; corralInfoOrigen.OrganizacionId = organizacionID; if (listaAnimales != null) { lisBoxCorralOrigen.ItemsSource = listaAnimales; txtCorralDestino.IsEnabled = true; } else { SkMessageBox.Show(Application.Current.Windows[ConstantesVista.WindowPrincipal], Properties.Resources.TraspasoGanadoCorral_CorralNoTieneLoteActivo, MessageBoxButton.OK, MessageImage.Warning); e.Handled = true; } } } } } } }
//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); }