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