/// <summary> /// Guardar la salida por recuperacion /// </summary> /// <returns></returns> private bool GuardarSalidaRecuperacion() { var regreso = false; if (lisBoxCorralDestino.Items.Count > 0) { var lotePL = new LotePL(); var lote = new LoteInfo { Corral = new CorralInfo { CorralID = corralIdOrigen }, CorralID = corralIdOrigen, OrganizacionID = organizacionId }; lote = lotePL.ObtenerPorCorralID(lote); var animalMovimientoPL = new AnimalMovimientoPL(); List <AnimalMovimientoInfo> movimientosAnimal = animalMovimientoPL.ObtenerUltimoMovimientoAnimal(animales); if (movimientosAnimal != null) { var loteDestino = new LoteInfo { Corral = new CorralInfo { CorralID = corralIdDestino }, CorralID = corralIdDestino, OrganizacionID = organizacionId }; loteDestino = lotePL.ObtenerPorCorralID(loteDestino); movimientosAnimal.ForEach(datos => { datos.LoteID = loteDestino.LoteID; datos.CorralID = corralIdDestino; datos.TipoMovimientoID = TipoMovimiento.SalidaEnfermeria.GetHashCode(); datos.Activo = EstatusEnum.Activo; datos.UsuarioCreacionID = usuario; datos.UsuarioModificacionID = usuario; }); lote.Cabezas -= movimientosAnimal.Count; loteDestino.Cabezas += movimientosAnimal.Count; using (var scope = new TransactionScope()) { animalMovimientoPL.GuardarAnimalMovimientoXML(movimientosAnimal); var filtro = new FiltroActualizarCabezasLote { CabezasProcesadas = movimientosAnimal.Count, LoteIDDestino = loteDestino.LoteID, LoteIDOrigen = lote.LoteID, UsuarioModificacionID = AuxConfiguracion.ObtenerUsuarioLogueado() }; lotePL.ActualizarCabezasProcesadas(filtro); scope.Complete(); } regreso = true; } } return(regreso); }