From d7a7ca69c5709fa80a2f60578d7431cbf50f2255 Mon Sep 17 00:00:00 2001 From: llaffont <llaffont@afi-sa.fr> Date: Fri, 28 Aug 2015 16:37:29 +0200 Subject: [PATCH] When cosmogramme index albums, does not delete records if only update is needed --- .../php/integration/pseudo_notices.php | 84 ++++++++----------- 1 file changed, 37 insertions(+), 47 deletions(-) diff --git a/cosmogramme/php/integration/pseudo_notices.php b/cosmogramme/php/integration/pseudo_notices.php index e5374f45006..ff84745ea0e 100644 --- a/cosmogramme/php/integration/pseudo_notices.php +++ b/cosmogramme/php/integration/pseudo_notices.php @@ -209,61 +209,51 @@ if ($phase == 0.5) // ---------------------------------------------------------------- -if ($phase < 0.7) -{ - // init variables - if ($phase == 0.6) - { - unset($phase_data); - $phase_data["nombre"] = 0; - $phase_data["timeStart"] = time(); - $phase_data["pointeur_reprise"] = 0; - setVariable("traitement_phase", "Pseudo-notices : RESSOURCES NUMERIQUES :"); - $log->ecrire('<span class="violet">Notices RESSOURCES NUMERIQUES :</span>' . BR); - } - else print('<span class="violet">Notices RESSOURCES NUMERIQUES : suppressions</span>' . BR); +if ($phase < 0.7) { + unset($phase_data); + $phase_data["nombre"] = 0; + $phase_data["timeStart"] = time(); + $phase_data["pointeur_reprise"] = 0; + setVariable("traitement_phase", "Pseudo-notices : RESSOURCES NUMERIQUES :"); + $log->ecrire('<span class="violet">Notices RESSOURCES NUMERIQUES :</span>' . BR); - // suppression des notices et des exemplaires - $phase = 0.61; - $items = fetchAll("select id_notice from notices where type_doc>99"); - if ($items) - { - foreach ($items as $item) - { - if (!$mode_cron and $chrono->tempsPasse() > 10) sauveContexte(); - $id_notice = $item["id_notice"]; - deletePseudoNotice($id_notice); - } - } - $phase = 0.7; + $phase = 0.7; } -if ($phase == 0.7) -{ + +if ($phase == 0.7) { if ($phase_data["nombre"] and !$mode_cron) - print('<span class="violet">Notices RESSOURCES NUMERIQUES : ajouts</span>' . BR); + print('<span class="violet">Notices RESSOURCES NUMERIQUES : mise à jour</span>' . BR); + if (!$mode_cron and $chrono->tempsPasse() > 10) sauveContexte(); + $chrono->start(); - $result = $sql->prepareListe("select * from album where id >" . $phase_data["pointeur_reprise"] . " and visible=true order by id"); - if ($result) - { - while ($enreg = $sql->fetchNext($result)) - { - if (!$mode_cron and $chrono->tempsPasse() > 10) sauveContexte(); - $enreg["id_bib"] = $sql->fetchOne("select site_id from album_categorie where id=" . $enreg["cat_id"]); - $phase_data["nombre"]++; - if(!$enreg["type_doc_id"]) $enreg["type_doc_id"]=100; - $ret = $notice->traitePseudoNotice($enreg["type_doc_id"], $enreg); - tracePseudoNotice($ret, $enreg); - $phase_data["pointeur_reprise"] = $enreg["id"]; - Class_Album::clearCache(); - Class_AlbumRessource::clearCache(); - Class_Notice::clearCache(); - Class_Exemplaire::clearCache(); - } - } + while ( $albums = Class_Album::findAllBy(['where' => 'id > ' . $phase_data["pointeur_reprise"], + 'visible' => true, + 'order' => 'id', + 'limit' => 100]) ) { + foreach($albums as $album) { + if (!$mode_cron and $chrono->tempsPasse() > 10) sauveContexte(); + + $phase_data["nombre"]++; + + $album->index(); + $notice = $album->getNotice(); + $statut = $notice + ? ['statut' => 0, 'id_notice' => 0] + : ['statut' => 1, + 'id_notice' => $notice->getId(), + 'unimarc' => $notice->getUnimarc(), + 'code_barres' => $notice->getCodeBarres(), + 'facettes' => $notice->getFacettes()]; + + tracePseudoNotice($ret, $statut); + $phase_data["pointeur_reprise"] = $album->getId(); + } + } + traceRecapPseudoNotices($phase_data); $phase = 1; } -- GitLab