public static int GuardarDeteccion(DeteccionInfo deteccion) { int retValue = 0; try { CorralInfo corral = new CorralInfo(); CorralPL corralPL = new CorralPL(); corral = ObtenerCorral(deteccion.CorralCodigo); var seguridad = (SeguridadInfo)HttpContext.Current.Session["Seguridad"]; LoteInfo lote = ObtenerLotesCorral(corral.CorralID); AnimalPL animalPL = new AnimalPL(); AnimalInfo animal = null; var esCargaInicial = FlagCargaInicial.Default; string areteSalida = string.Empty; int salida = 0; int organizacionID = 0; DeteccionInfo deteccionGrabar = null; //informacion del la organzacion y usuario if (seguridad != null) { organizacionID = seguridad.Usuario.Organizacion.OrganizacionID; var deteccionPl = new DeteccionPL(); string areteDeteccion = animalPL.obtenerExisteDeteccion(deteccion.Arete); if (!string.IsNullOrWhiteSpace(areteDeteccion)) { return(3); } string areteDeteccionMetalico = animalPL.obtenerExisteDeteccionTestigo(deteccion.AreteMetalico); if (!string.IsNullOrWhiteSpace(areteDeteccionMetalico)) { return(3); } if (corral.GrupoCorral != (int)GrupoCorralEnum.Recepcion) { if (deteccion.Arete != string.Empty && deteccion.AreteMetalico == string.Empty) { var animalPl = new AnimalPL(); var animales = animalPl.ObtenerAnimalesPorCorral(corral, organizacionID); if (animales != null) { for (int i = 0; i < animales.Count; i++) { if (deteccion.Arete == animales[i].Arete) { esCargaInicial = FlagCargaInicial.SeEncuentraEnCorral; break; } } } /* Validar Si el arete existe en el inventario */ animal = animalPl.ObtenerAnimalPorArete(deteccion.Arete, organizacionID); if (animal != null && animal.CargaInicial && esCargaInicial == FlagCargaInicial.Default) { esCargaInicial = FlagCargaInicial.EsCargaInicial; } else if (animal == null) { animal = new AnimalInfo() { Arete = deteccion.Arete, AreteMetalico = deteccion.AreteMetalico, LoteID = lote.LoteID, CorralID = corral.CorralID, UsuarioModificacionID = seguridad.Usuario.UsuarioID, }; // Este arete se dara de alta en el corral esCargaInicial = FlagCargaInicial.EsAreteNuevo; } } if (deteccion.AreteMetalico != string.Empty && deteccion.Arete == string.Empty) { animal = animalPL.ObtenerAnimalPorAreteTestigo(deteccion.AreteMetalico, organizacionID); } } else { if (deteccion.AreteMetalico == string.Empty && deteccion.Arete != string.Empty) { var interfaceSalidaAnimalPl = new InterfaceSalidaAnimalPL(); InterfaceSalidaAnimalInfo interfaceSalidaAnimalInfo = interfaceSalidaAnimalPl.ObtenerNumeroAreteIndividual(deteccion.Arete, organizacionID); if (interfaceSalidaAnimalInfo != null) { deteccion.AreteMetalico = interfaceSalidaAnimalInfo.AreteMetalico; } } else if (deteccion.AreteMetalico != string.Empty && deteccion.Arete == string.Empty) { var interfaceSalidaAnimalPl = new InterfaceSalidaAnimalPL(); InterfaceSalidaAnimalInfo interfaceSalidaAnimalInfo = interfaceSalidaAnimalPl.ObtenerNumeroAreteMetalico(deteccion.Arete, organizacionID); if (interfaceSalidaAnimalInfo != null) { deteccion.Arete = interfaceSalidaAnimalInfo.Arete; } } } string foto = string.Empty; if (deteccion.FotoDeteccion != string.Empty) { foto = TipoFoto.Enfermo.ToString() + '/' + deteccion.FotoDeteccion; } if (animal != null) { deteccionGrabar = new DeteccionInfo() { LoteID = lote.LoteID, CorralID = corral.CorralID, FotoDeteccion = foto, Observaciones = deteccion.Observaciones, Arete = animal.Arete, AreteMetalico = animal.AreteMetalico, OperadorID = seguridad.Usuario.Operador.OperadorID, UsuarioCreacionID = seguridad.Usuario.UsuarioID, DescripcionGanado = deteccion.DescripcionGanado, Problemas = deteccion.Problemas, Sintomas = deteccion.Sintomas, GradoID = deteccion.GradoID, NoFierro = deteccion.NoFierro, GrupoCorral = corral.GrupoCorral, DescripcionGanadoID = deteccion.DescripcionGanadoID, Activo = 1 }; } else { deteccionGrabar = new DeteccionInfo() { LoteID = lote.LoteID, CorralID = corral.CorralID, FotoDeteccion = foto, Observaciones = deteccion.Observaciones, Arete = deteccion.Arete, AreteMetalico = deteccion.AreteMetalico, OperadorID = seguridad.Usuario.Operador.OperadorID, UsuarioCreacionID = seguridad.Usuario.UsuarioID, DescripcionGanado = deteccion.DescripcionGanado, Problemas = deteccion.Problemas, Sintomas = deteccion.Sintomas, GradoID = deteccion.GradoID, NoFierro = deteccion.NoFierro, GrupoCorral = corral.GrupoCorral, DescripcionGanadoID = deteccion.DescripcionGanadoID, Activo = 1 }; } if (corral.TipoCorral.TipoCorralID == (int)TipoCorral.CorraletaSacrificio) { deteccionGrabar.LoteID = animalPL.ObtenerLoteSalidaAnimal(deteccionGrabar.Arete, deteccionGrabar.AreteMetalico, organizacionID); corral = corralPL.ObtenerCorralPorLoteID(deteccionGrabar.LoteID, organizacionID); deteccionGrabar.GrupoCorral = corral.GrupoCorral; } if (corral.GrupoCorral == (int)GrupoCorralEnum.Recepcion) { if (deteccionGrabar.GradoID == GradoEnfermedadEnum.Level1.GetHashCode() || deteccionGrabar.GradoID == GradoEnfermedadEnum.Level2.GetHashCode()) { return(2); //Error de Ganado Grado 2 en corral de Recepcion } } var resultado = deteccionPl.GuardarDeteccion(deteccionGrabar, esCargaInicial, animal); if (resultado == 1) { retValue = resultado; } } else { retValue = 0; } } catch (Exception ex) { retValue = -1; } return(retValue); }