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