diff --git a/library/Class/WebService/BibNumerique/Assimil.php b/library/Class/WebService/BibNumerique/Assimil.php index dc56d39530b2a38a7ef15b6aed933cef5c4d8c65..6113cb3a47dcb405ecbfc101060bd1fa1cd249ff 100644 --- a/library/Class/WebService/BibNumerique/Assimil.php +++ b/library/Class/WebService/BibNumerique/Assimil.php @@ -45,14 +45,13 @@ class Class_WebService_BibNumerique_Assimil extends Class_WebService_BibNumeriqu protected function _deleteNonHarvested() { - if(!$local_ids = - (new Storm_Model_Collection(Class_Album::findAllBy(['type_doc_id' => Class_TypeDoc::ASSIMIL]))) - ->collect('id_origine')) - return $this; - - if($to_delete = array_diff((array) $local_ids, $this->getHarvestedIds())) - (new Storm_Model_Collection(Class_Album::findAllBy(['id_origine' => $to_delete]))) - ->eachDo('delete'); + $harvested_ids = $this->getHarvestedIds(); + (new Storm_Model_Collection(Class_Album::findAllBy(['type_doc_id' => Class_TypeDoc::ASSIMIL]))) + ->reject( + function($album) use($harvested_ids) { + return in_array($album->getIdOrigine(), $harvested_ids); + }) + ->eachDo('delete'); return $this; }