From 884e77261157975e2968119be3c20cf9a0fd7abf Mon Sep 17 00:00:00 2001 From: gloas <gloas@afi-sa.fr> Date: Wed, 21 Nov 2018 09:36:59 +0100 Subject: [PATCH] hotline #81316 fix failures --- .../php/classes/classe_notice_integration.php | 2 +- library/Class/Notice/SerialArticles.php | 14 +++++++++----- 2 files changed, 10 insertions(+), 6 deletions(-) diff --git a/cosmogramme/php/classes/classe_notice_integration.php b/cosmogramme/php/classes/classe_notice_integration.php index c4110b69820..37b0eb43a69 100644 --- a/cosmogramme/php/classes/classe_notice_integration.php +++ b/cosmogramme/php/classes/classe_notice_integration.php @@ -220,7 +220,7 @@ class notice_integration { "date_maj"=>date("Y-m-d")]; foreach($this->notice["articles_periodiques"]["articles"] as $id_unimarc) { - $clef_unimarc = (int) $id_unimarc; + $clef_unimarc = intval($id_unimarc); if(!$clef_unimarc) { $this->notice["warnings"][] = ["Identifiant article de périodique incorrect", diff --git a/library/Class/Notice/SerialArticles.php b/library/Class/Notice/SerialArticles.php index 7b668bfe181..f264e54cd48 100644 --- a/library/Class/Notice/SerialArticles.php +++ b/library/Class/Notice/SerialArticles.php @@ -31,7 +31,7 @@ class NoticeSerialArticlesLoader extends Storm_Model_Loader { $update_columns = array_filter(['clef_chapeau' => $instance->getNameKey(), 'clef_numero' => $instance->getNumberKey(), 'clef_article' => $instance->getArticleKey(), - 'clef_unimarc' => $instance->getUnimarcKey(), + 'clef_unimarc' => $this->_forgeUnimarcKey($instance), 'unimarc' => $instance->getUnimarc(), 'date_maj' => $instance->getUpdated(), 'qualite' => $instance->getQuality()]); @@ -47,12 +47,9 @@ class NoticeSerialArticlesLoader extends Storm_Model_Loader { if ($unimarc_key = $instance->getUnimarcKey()) return Class_Notice_SerialArticles::findFirstBy(['clef_unimarc' => $unimarc_key]); - $unimarc_key = hash('crc32b', - $instance->getTitle()); - if($article = Class_Notice_SerialArticles::findFirstBy(['clef_chapeau' => $instance->getNameKey(), 'clef_numero' => $instance->getNumberKey(), - 'clef_unimarc' => $unimarc_key])) + 'clef_unimarc' => $this->_forgeUnimarcKey($instance)])) return $article; return Class_Notice_SerialArticles::findFirstBy(['clef_chapeau' => $instance->getNameKey(), @@ -60,6 +57,13 @@ class NoticeSerialArticlesLoader extends Storm_Model_Loader { 'clef_article' => $instance->getArticleKey(), 'clef_unimarc' => '']); } + + + protected function _forgeUnimarcKey($instance) { + return $instance->getUnimarcKey() + ? $instance->getUnimarcKey() + : hash('crc32b', $instance->getTitle()); + } } -- GitLab