diff --git a/VERSIONS_HOTLINE/173129 b/VERSIONS_HOTLINE/173129
new file mode 100644
index 0000000000000000000000000000000000000000..94bf09ebc555136ea3f113a8a487231eafbfc656
--- /dev/null
+++ b/VERSIONS_HOTLINE/173129
@@ -0,0 +1 @@
+ - correctif #173129 : PNB : le décodage des fichiers ONIX de Dilicom prend en compte les informations de protection technologique et utilise le DRM LCP s'il fait partie de la liste.
\ No newline at end of file
diff --git a/library/Class/Loan/Pnb.php b/library/Class/Loan/Pnb.php
index 7ee4edf61f71b91503c51fe47b0b8374de5fab74..4fbfc07272de272bdae951db5f852e137244bd5b 100644
--- a/library/Class/Loan/Pnb.php
+++ b/library/Class/Loan/Pnb.php
@@ -198,6 +198,13 @@ class Class_Loan_Pnb extends Storm_Model_Abstract {
   }
 
 
+  public function getOptionsFromAlbum() :string {
+    return ($album = $this->getAlbum())
+      ? $album->getNote('330$a') ?? ''
+      : '';
+  }
+
+
   protected function _addGenericFormatAudioBooksIfNotSet($format)  {
     if (!$format)
       $format = 'EA;EC;ED;E101';
@@ -278,6 +285,13 @@ class Class_Loan_Pnb extends Storm_Model_Abstract {
   }
 
 
+  public function getOptions() {
+    return ($options = $this->getOptionsFromAlbum())
+      ? $options
+      : parent::getOptions();
+  }
+
+
   public function getUser() {
     if ($user = parent::_get('user'))
       return $user;
@@ -325,11 +339,22 @@ class Class_Loan_Pnb extends Storm_Model_Abstract {
 
 
   public function allowExtend() {
-    return $this->getOptions()==static::DRM_LCP;
+    return $this->isLcpProtected();
   }
 
 
   public function allowEarlyReturn() {
-    return $this->getOptions()==static::DRM_LCP;
+    return $this->isLcpProtected();
+  }
+
+
+  public function isLcpProtected() :bool {
+    return in_array(static::DRM_LCP,  explode(';',(string)$this->getOptions()));
+  }
+
+
+  public function getFirstOption() {
+    $options = explode(';',(string)$this->getOptions());
+    return reset($options);
   }
 }
diff --git a/library/Class/WebService/BibNumerique/Dilicom/Book.php b/library/Class/WebService/BibNumerique/Dilicom/Book.php
index 0d186b5cf435a72951f03feec85fe3710a845f6d..6a6fd415580c4bee5b73c4f268b94779f1e778a8 100644
--- a/library/Class/WebService/BibNumerique/Dilicom/Book.php
+++ b/library/Class/WebService/BibNumerique/Dilicom/Book.php
@@ -29,7 +29,8 @@ class Class_WebService_BibNumerique_Dilicom_Book extends Class_WebService_BibNum
     $_order_line_id,
     $_order_date,
     $_items = [],
-    $_usage_constraints = [];
+    $_usage_constraints = [],
+    $_options=[];
 
   public function getItems() {
     return $this->_items;
@@ -38,6 +39,9 @@ class Class_WebService_BibNumerique_Dilicom_Book extends Class_WebService_BibNum
 
   protected function updateAlbum(Class_Album $album, $update_constraints = false) : Class_Album {
     $album->setFormat($this->getFormats());
+    if ($options = $this->getOptions())
+      $album->addNote('330$a', $options);
+
     if ($update_constraints)
       return $this->_updateConstraintsInAlbum($album);
 
@@ -79,10 +83,10 @@ class Class_WebService_BibNumerique_Dilicom_Book extends Class_WebService_BibNum
     $album->save();
     $album->index();
     return $album;
-   }
+  }
 
 
-  protected function _filterItems($album){
+  protected function _filterItems(CLass_Album $album) : array{
     $order_ids = array_map(
                            function($item) {
                              return $item->getOrderLineId();
@@ -109,6 +113,9 @@ class Class_WebService_BibNumerique_Dilicom_Book extends Class_WebService_BibNum
       ->setFormat($this->getFormats())
       ->setDroits($this->_('Tous droits réservés'))
       ->setItems($this->_items);
+    if ($options = $this->getOptions())
+      $album->addNote('330$a', $options);
+
     return $this;
   }
 
@@ -139,6 +146,13 @@ class Class_WebService_BibNumerique_Dilicom_Book extends Class_WebService_BibNum
   }
 
 
+  public function addToOptions(string $option) {
+    if ($option)
+      $this->_options []= $option;
+    return $this;
+  }
+
+
   public function setIsbn($isbn) {
     $this->_isbn = $isbn;
     return $this;
@@ -174,5 +188,10 @@ class Class_WebService_BibNumerique_Dilicom_Book extends Class_WebService_BibNum
   public function getFormats() {
     return implode(';', array_unique($this->_formats));
   }
+
+
+  public function getOptions() {
+    return implode(';', array_unique($this->_options));
+  }
 }
 ?>
diff --git a/library/Class/WebService/BibNumerique/Dilicom/Hub.php b/library/Class/WebService/BibNumerique/Dilicom/Hub.php
index 67a94e9840d0f7242f6cd8ede141bec48733d461..79899bf18a5e3700e19a3c690b0c4629731d260d 100644
--- a/library/Class/WebService/BibNumerique/Dilicom/Hub.php
+++ b/library/Class/WebService/BibNumerique/Dilicom/Hub.php
@@ -164,6 +164,7 @@ class Class_WebService_BibNumerique_Dilicom_Hub extends Class_WebService_Abstrac
                                          'expected_return_date' => $this->_endLoanDate($item),
                                          'record_origin_id' => $album->getIdOrigine(),
                                          'order_line_id' => (string) $item->getOrderLineId()]);
+
     $loan->save();
     $response = $this->_dilicomCall('loanBook',
                                     array_filter(['glnLoaner' => $user->getBibGLN(),
@@ -171,6 +172,9 @@ class Class_WebService_BibNumerique_Dilicom_Hub extends Class_WebService_Abstrac
                                                   'UserInfo.gender' => (1 == ($value = $this->getPhpCommand()->rand(1, 2))) ? 'F': 'H',
                                                   'DRMinfo.readerPass' => base64_encode($this->getPhpCommand()->hash('sha256', $this->_getReaderId($user), true)),
                                                   'DRMinfo.readerHint' => $this->_getReaderHint($user),
+                                                  'DRMinfo.ePubTechnicalProtection' => $loan->isLcpProtected()
+                                                  ? Class_Loan_Pnb::DRM_LCP
+                                                  : $loan->getFirstOption(),
                                                   'DRMinfo.ReaderId' => $this->_getReaderId($user),
                                                   'DRMinfo.extendUrl' => Class_Url::absolute(['module' => 'opac',
                                                                                               'controller' => 'bib-numerique',
diff --git a/library/Class/WebService/BibNumerique/Dilicom/ONIXFile.php b/library/Class/WebService/BibNumerique/Dilicom/ONIXFile.php
index 0be0e4e2a08ad6ec50e1eecc1391d2b48389d433..16e458b763236f82ad95bf2320496d6d4d095fa6 100644
--- a/library/Class/WebService/BibNumerique/Dilicom/ONIXFile.php
+++ b/library/Class/WebService/BibNumerique/Dilicom/ONIXFile.php
@@ -67,7 +67,16 @@ class Class_WebService_BibNumerique_Dilicom_ONIXFile {
                      'X436' => 'ResourceContentType',
                      'X318' => 'EPubUsageType',
                      'X320' => 'Quantity',
-                     'X321' => 'EPubUsageUnit'];
+                     'X321' => 'EPubUsageUnit'],
+    $_technical_protection_mapping =
+    ['00'  => 'None',
+     '01' => 'DRM',
+     '02' => 'Watermarking',
+     '03' => 'ACS',
+     '04' => 'Apple DRM',
+     '05' => 'OMA',
+     '06' => 'LCP',
+     '07' => 'Sony'];
 
 
   public function __construct() {
@@ -235,6 +244,11 @@ class Class_WebService_BibNumerique_Dilicom_ONIXFile {
   }
 
 
+  public function endEPubTechnicalProtection( string $content) {
+    $this->_book->addToOptions($this->_technical_protection_mapping[$content] ?? '');
+  }
+
+
   public function startEPubUsageConstraint() {
     $this->_book->addUsageConstraint($this->_current_usage_constraint = new Class_Album_UsageConstraint());
   }
diff --git a/library/ZendAfi/View/Helper/Api/PnbLoans.php b/library/ZendAfi/View/Helper/Api/PnbLoans.php
index 04fa5485930815039984e3794a0421a93dfeffff..fbe2ed745dd923642ab825cdfe901430f6d36daa 100644
--- a/library/ZendAfi/View/Helper/Api/PnbLoans.php
+++ b/library/ZendAfi/View/Helper/Api/PnbLoans.php
@@ -46,7 +46,9 @@ class ZendAfi_View_Helper_Api_PnbLoans extends ZendAfi_View_Helper_Api_Abstract
               'frontCoverMedium' => $loan->getPoster(),
               'gtin13'=> $loan->getIsbnOrEan(),
               'loanerGln'=>  $user->getBibGLN(),
-              'epubTechnicalProtection' => $loan->getOptions(),
+              'epubTechnicalProtection' => $loan->isLcpProtected()
+              ? Class_Loan_Pnb::DRM_LCP
+              : $loan->getFirstOption(),
               'imprintName' => $loan->getFirstEditor(),
               'collection' => $loan->getFirstCollection(),
               'contributors'=>[],
diff --git a/tests/fixtures/full_pnb_3056031760007_20230806T063428Z.xml b/tests/fixtures/full_pnb_3056031760007_20230806T063428Z.xml
new file mode 100644
index 0000000000000000000000000000000000000000..c62ad9773d6d4173e3c4e20cfa35950b221a91a0
--- /dev/null
+++ b/tests/fixtures/full_pnb_3056031760007_20230806T063428Z.xml
@@ -0,0 +1,478 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<pnbOffers
+xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
+xsi:noNamespaceSchemaLocation="https://pnb-dilicom.centprod.com/notices_onix/schema/pnb_diffusion_offre_collectivite.xsd">
+<offer>
+    <notice>&lt;?xml version="1.0" encoding="UTF-8"?&gt;&lt;ONIXMessage release="3.0" xmlns="http://www.editeur.org/onix/3.0/reference" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://www.editeur.org/onix/3.0/reference https://pnb-dilicom.centprod.com/notices_onix/schema_onix/ONIX_BookProduct_3.0_reference.xsd"&gt;
+&lt;Header&gt;
+&lt;Sender&gt;
+&lt;SenderIdentifier&gt;&lt;SenderIDType&gt;06&lt;/SenderIDType&gt;&lt;IDValue&gt;3025599000108&lt;/IDValue&gt;&lt;/SenderIdentifier&gt;
+&lt;SenderName&gt;SERVEUR DILICOM - PNB NUMERIQUE&lt;/SenderName&gt;&lt;/Sender&gt;
+&lt;Addressee&gt;&lt;AddresseeIdentifier&gt;&lt;AddresseeIDType&gt;06&lt;/AddresseeIDType&gt;&lt;IDValue&gt;3056031760007&lt;/IDValue&gt;&lt;/AddresseeIdentifier&gt;&lt;/Addressee&gt;
+&lt;SentDateTime&gt;20230806T0834Z&lt;/SentDateTime&gt;
+&lt;/Header&gt;
+&lt;Product&gt;
+&lt;RecordReference&gt;EDEN-747043-126-1039358-1648718316802-LIBRARIES&lt;/RecordReference&gt;
+&lt;NotificationType&gt;04&lt;/NotificationType&gt;
+&lt;ProductIdentifier&gt;
+&lt;ProductIDType&gt;03&lt;/ProductIDType&gt;
+&lt;IDValue&gt;9782812623455&lt;/IDValue&gt;
+&lt;/ProductIdentifier&gt;
+&lt;ProductIdentifier&gt;
+&lt;ProductIDType&gt;01&lt;/ProductIDType&gt;
+&lt;IDTypeName&gt;internal_key&lt;/IDTypeName&gt;
+&lt;IDValue&gt;eden-747043-126-1039358-1648718316802-libraries&lt;/IDValue&gt;
+&lt;/ProductIdentifier&gt;
+&lt;DescriptiveDetail&gt;
+&lt;ProductComposition&gt;00&lt;/ProductComposition&gt;
+&lt;ProductForm&gt;EB&lt;/ProductForm&gt;
+&lt;ProductFormDetail&gt;E101&lt;/ProductFormDetail&gt;
+&lt;ProductFormDetail&gt;E200&lt;/ProductFormDetail&gt;
+&lt;ProductFormFeature&gt;
+&lt;ProductFormFeatureType&gt;07&lt;/ProductFormFeatureType&gt;
+&lt;ProductFormFeatureValue&gt;on-site&lt;/ProductFormFeatureValue&gt;
+&lt;ProductFormFeatureDescription&gt;PNBONLINE04&lt;/ProductFormFeatureDescription&gt;
+&lt;/ProductFormFeature&gt;
+&lt;ProductFormFeature&gt;
+&lt;ProductFormFeatureType&gt;15&lt;/ProductFormFeatureType&gt;
+&lt;ProductFormFeatureValue&gt;101A&lt;/ProductFormFeatureValue&gt;
+&lt;/ProductFormFeature&gt;
+&lt;EpubTechnicalProtection&gt;03&lt;/EpubTechnicalProtection&gt;
+&lt;EpubTechnicalProtection&gt;06&lt;/EpubTechnicalProtection&gt;
+&lt;EpubUsageConstraint&gt;
+&lt;EpubUsageType&gt;02&lt;/EpubUsageType&gt;
+&lt;EpubUsageStatus&gt;03&lt;/EpubUsageStatus&gt;
+&lt;/EpubUsageConstraint&gt;
+&lt;EpubUsageConstraint&gt;
+&lt;EpubUsageType&gt;03&lt;/EpubUsageType&gt;
+&lt;EpubUsageStatus&gt;01&lt;/EpubUsageStatus&gt;
+&lt;/EpubUsageConstraint&gt;
+&lt;EpubUsageConstraint&gt;
+&lt;EpubUsageType&gt;04&lt;/EpubUsageType&gt;
+&lt;EpubUsageStatus&gt;02&lt;/EpubUsageStatus&gt;
+&lt;EpubUsageLimit&gt;
+&lt;Quantity&gt;6&lt;/Quantity&gt;
+&lt;EpubUsageUnit&gt;06&lt;/EpubUsageUnit&gt;
+&lt;/EpubUsageLimit&gt;
+&lt;/EpubUsageConstraint&gt;
+&lt;EpubUsageConstraint&gt;
+&lt;EpubUsageType&gt;06&lt;/EpubUsageType&gt;
+&lt;EpubUsageStatus&gt;02&lt;/EpubUsageStatus&gt;
+&lt;EpubUsageLimit&gt;
+&lt;Quantity&gt;59&lt;/Quantity&gt;
+&lt;EpubUsageUnit&gt;09&lt;/EpubUsageUnit&gt;
+&lt;/EpubUsageLimit&gt;
+&lt;EpubUsageLimit&gt;
+&lt;Quantity&gt;30&lt;/Quantity&gt;
+&lt;EpubUsageUnit&gt;10&lt;/EpubUsageUnit&gt;
+&lt;/EpubUsageLimit&gt;
+&lt;EpubUsageLimit&gt;
+&lt;Quantity&gt;30&lt;/Quantity&gt;
+&lt;EpubUsageUnit&gt;07&lt;/EpubUsageUnit&gt;
+&lt;/EpubUsageLimit&gt;
+&lt;/EpubUsageConstraint&gt;
+&lt;EpubUsageConstraint&gt;
+&lt;EpubUsageType&gt;08&lt;/EpubUsageType&gt;
+&lt;EpubUsageStatus&gt;02&lt;/EpubUsageStatus&gt;
+&lt;EpubUsageLimit&gt;
+&lt;Quantity&gt;2&lt;/Quantity&gt;
+&lt;EpubUsageUnit&gt;10&lt;/EpubUsageUnit&gt;
+&lt;/EpubUsageLimit&gt;
+&lt;/EpubUsageConstraint&gt;
+&lt;EpubUsageConstraint&gt;
+&lt;EpubUsageType&gt;07&lt;/EpubUsageType&gt;
+&lt;EpubUsageStatus&gt;02&lt;/EpubUsageStatus&gt;
+&lt;EpubUsageLimit&gt;
+&lt;Quantity&gt;2555&lt;/Quantity&gt;
+&lt;EpubUsageUnit&gt;09&lt;/EpubUsageUnit&gt;
+&lt;/EpubUsageLimit&gt;
+&lt;/EpubUsageConstraint&gt;
+&lt;EpubUsageConstraint&gt;
+&lt;EpubUsageType&gt;04&lt;/EpubUsageType&gt;
+&lt;EpubUsageStatus&gt;02&lt;/EpubUsageStatus&gt;
+&lt;EpubUsageLimit&gt;
+&lt;Quantity&gt;10&lt;/Quantity&gt;
+&lt;EpubUsageUnit&gt;07&lt;/EpubUsageUnit&gt;
+&lt;/EpubUsageLimit&gt;
+&lt;/EpubUsageConstraint&gt;
+&lt;Collection&gt;
+&lt;CollectionType&gt;11&lt;/CollectionType&gt;
+&lt;TitleDetail&gt;
+&lt;TitleType&gt;01&lt;/TitleType&gt;
+&lt;TitleElement&gt;
+&lt;TitleElementLevel&gt;02&lt;/TitleElementLevel&gt;
+&lt;TitleText&gt;Rouergue Littérature&lt;/TitleText&gt;
+&lt;/TitleElement&gt;
+&lt;/TitleDetail&gt;
+&lt;/Collection&gt;
+&lt;TitleDetail&gt;
+&lt;TitleType&gt;01&lt;/TitleType&gt;
+&lt;TitleElement&gt;
+&lt;TitleElementLevel&gt;01&lt;/TitleElementLevel&gt;
+&lt;TitleText&gt;La gardienne de Mona Lisa&lt;/TitleText&gt;
+&lt;/TitleElement&gt;
+&lt;/TitleDetail&gt;
+&lt;Contributor&gt;
+&lt;SequenceNumber&gt;1&lt;/SequenceNumber&gt;
+&lt;ContributorRole&gt;A01&lt;/ContributorRole&gt;
+&lt;PersonName&gt;Peter May&lt;/PersonName&gt;
+&lt;PersonNameInverted&gt;May, Peter&lt;/PersonNameInverted&gt;
+&lt;NamesBeforeKey&gt;Peter&lt;/NamesBeforeKey&gt;
+&lt;KeyNames&gt;May&lt;/KeyNames&gt;
+&lt;BiographicalNote&gt;Né en 1951 à Glasgow, Peter May a été journaliste, puis brillant et prolifique scénariste de la télévision écossaise. Il vit depuis une dizaine d’années dans le Lot où il se consacre à l’écriture. Sa trilogie écossaise – L’Île des chasseurs d’oiseaux, L’Homme de Lewis et Le Braconnier du lac perdu –, initialement publiée en français par les Éditions du Rouergue, a conquis le monde entier. Saluée par de nombreux prix littéraires, toute son œuvre est disponible aux Éditions du Rouergue.&lt;/BiographicalNote&gt;
+&lt;ContributorPlace&gt;
+&lt;ContributorPlaceRelator&gt;08&lt;/ContributorPlaceRelator&gt;
+&lt;CountryCode&gt;FR&lt;/CountryCode&gt;
+&lt;/ContributorPlace&gt;
+&lt;/Contributor&gt;
+&lt;Contributor&gt;
+&lt;SequenceNumber&gt;2&lt;/SequenceNumber&gt;
+&lt;ContributorRole&gt;B06&lt;/ContributorRole&gt;
+&lt;PersonName&gt;Ariane Bataille&lt;/PersonName&gt;
+&lt;PersonNameInverted&gt;Bataille, Ariane&lt;/PersonNameInverted&gt;
+&lt;NamesBeforeKey&gt;Ariane&lt;/NamesBeforeKey&gt;
+&lt;KeyNames&gt;Bataille&lt;/KeyNames&gt;
+&lt;BiographicalNote/&gt;
+&lt;ContributorPlace&gt;
+&lt;ContributorPlaceRelator&gt;08&lt;/ContributorPlaceRelator&gt;
+&lt;CountryCode&gt;FR&lt;/CountryCode&gt;
+&lt;/ContributorPlace&gt;
+&lt;/Contributor&gt;
+&lt;Language&gt;
+&lt;LanguageRole&gt;01&lt;/LanguageRole&gt;
+&lt;LanguageCode&gt;fre&lt;/LanguageCode&gt;
+&lt;/Language&gt;
+&lt;Language&gt;
+&lt;LanguageRole&gt;02&lt;/LanguageRole&gt;
+&lt;LanguageCode&gt;eng&lt;/LanguageCode&gt;
+&lt;/Language&gt;
+&lt;Extent&gt;
+&lt;ExtentType&gt;22&lt;/ExtentType&gt;
+&lt;ExtentValue&gt;1.36&lt;/ExtentValue&gt;
+&lt;ExtentUnit&gt;19&lt;/ExtentUnit&gt;
+&lt;/Extent&gt;
+&lt;Extent&gt;
+&lt;ExtentType&gt;00&lt;/ExtentType&gt;
+&lt;ExtentValue&gt;434&lt;/ExtentValue&gt;
+&lt;ExtentUnit&gt;03&lt;/ExtentUnit&gt;
+&lt;/Extent&gt;
+&lt;Subject&gt;
+&lt;MainSubject/&gt;
+&lt;SubjectSchemeIdentifier&gt;10&lt;/SubjectSchemeIdentifier&gt;
+&lt;SubjectCode&gt;FIC030000&lt;/SubjectCode&gt;
+&lt;/Subject&gt;
+&lt;Subject&gt;
+&lt;MainSubject/&gt;
+&lt;SubjectSchemeIdentifier&gt;29&lt;/SubjectSchemeIdentifier&gt;
+&lt;SubjectCode&gt;3448&lt;/SubjectCode&gt;
+&lt;SubjectHeadingText&gt;Romans policiers&lt;/SubjectHeadingText&gt;
+&lt;/Subject&gt;
+&lt;Subject&gt;
+&lt;SubjectSchemeIdentifier&gt;29&lt;/SubjectSchemeIdentifier&gt;
+&lt;SubjectSchemeVersion&gt;DILICOM10&lt;/SubjectSchemeVersion&gt;
+&lt;SubjectCode&gt;3449&lt;/SubjectCode&gt;
+&lt;SubjectHeadingText&gt;Policier historique&lt;/SubjectHeadingText&gt;
+&lt;/Subject&gt;
+&lt;/DescriptiveDetail&gt;
+&lt;CollateralDetail&gt;
+&lt;TextContent&gt;
+&lt;TextType&gt;03&lt;/TextType&gt;
+&lt;ContentAudience&gt;00&lt;/ContentAudience&gt;
+&lt;Text&gt;&amp;lt;p&amp;gt;Enzo MacLeod est un enquêteur hors pair. Le célèbre Écossais de Cahors n’est-il pas parvenu à résoudre plusieurs affaires ayant mis en échec la fine fleur de la police française ? Mais en cette année 2020, alors que sévit la pandémie, son souhait le plus cher est de veiller sur sa famille. C’est compter sans sa vieille amie Magali Blanc, spécialiste en archéologie médico-légale. Empêchée de se déplacer, elle demande à Enzo de se rendre à Carennac, un village où l’on vient de découvrir le squelette d’un officier de la Luftwaffe, vraisemblablement exécuté à la fin de la Seconde Guerre mondiale.&amp;lt;/p&amp;gt;&lt;/Text&gt;
+&lt;/TextContent&gt;
+&lt;SupportingResource&gt;
+&lt;ResourceContentType&gt;01&lt;/ResourceContentType&gt;
+&lt;ContentAudience&gt;00&lt;/ContentAudience&gt;
+&lt;ResourceMode&gt;03&lt;/ResourceMode&gt;
+&lt;ResourceVersion&gt;
+&lt;ResourceForm&gt;01&lt;/ResourceForm&gt;
+&lt;ResourceVersionFeature&gt;
+&lt;ResourceVersionFeatureType&gt;04&lt;/ResourceVersionFeatureType&gt;
+&lt;FeatureValue&gt;9782812623394_couv_300.jpg&lt;/FeatureValue&gt;
+&lt;/ResourceVersionFeature&gt;
+&lt;ResourceVersionFeature&gt;
+&lt;ResourceVersionFeatureType&gt;01&lt;/ResourceVersionFeatureType&gt;
+&lt;FeatureValue&gt;D502&lt;/FeatureValue&gt;
+&lt;/ResourceVersionFeature&gt;
+&lt;ResourceVersionFeature&gt;
+&lt;ResourceVersionFeatureType&gt;03&lt;/ResourceVersionFeatureType&gt;
+&lt;FeatureValue&gt;2481&lt;/FeatureValue&gt;
+&lt;/ResourceVersionFeature&gt;
+&lt;ResourceVersionFeature&gt;
+&lt;ResourceVersionFeatureType&gt;02&lt;/ResourceVersionFeatureType&gt;
+&lt;FeatureValue&gt;3633&lt;/FeatureValue&gt;
+&lt;/ResourceVersionFeature&gt;
+&lt;ResourceLink&gt;https://assets.edenlivres.fr/medias/96/11c1c81a2f2de60f5e7e609c1637ca4f6cf45e.jpg&lt;/ResourceLink&gt;
+&lt;ContentDate&gt;
+&lt;ContentDateRole&gt;17&lt;/ContentDateRole&gt;
+&lt;DateFormat&gt;14&lt;/DateFormat&gt;
+&lt;Date&gt;20220331T111835+0200&lt;/Date&gt;
+&lt;/ContentDate&gt;
+&lt;/ResourceVersion&gt;
+&lt;/SupportingResource&gt;
+&lt;SupportingResource&gt;
+&lt;ResourceContentType&gt;15&lt;/ResourceContentType&gt;
+&lt;ContentAudience&gt;00&lt;/ContentAudience&gt;
+&lt;ResourceMode&gt;04&lt;/ResourceMode&gt;
+&lt;ResourceVersion&gt;
+&lt;ResourceForm&gt;01&lt;/ResourceForm&gt;
+&lt;ResourceVersionFeature&gt;
+&lt;ResourceVersionFeatureType&gt;04&lt;/ResourceVersionFeatureType&gt;
+&lt;FeatureValue&gt;excerpt.pdf&lt;/FeatureValue&gt;
+&lt;/ResourceVersionFeature&gt;
+&lt;ResourceVersionFeature&gt;
+&lt;ResourceVersionFeatureType&gt;01&lt;/ResourceVersionFeatureType&gt;
+&lt;FeatureValue&gt;D401&lt;/FeatureValue&gt;
+&lt;/ResourceVersionFeature&gt;
+&lt;ResourceLink&gt;https://assets.edenlivres.fr/medias/44/5f6ee857a7f58e5a1526bd57de113b2b34fe7a.pdf&lt;/ResourceLink&gt;
+&lt;ContentDate&gt;
+&lt;ContentDateRole&gt;17&lt;/ContentDateRole&gt;
+&lt;DateFormat&gt;14&lt;/DateFormat&gt;
+&lt;Date&gt;20220331T111846+0200&lt;/Date&gt;
+&lt;/ContentDate&gt;
+&lt;/ResourceVersion&gt;
+&lt;/SupportingResource&gt;
+&lt;SupportingResource&gt;
+&lt;ResourceContentType&gt;15&lt;/ResourceContentType&gt;
+&lt;ContentAudience&gt;00&lt;/ContentAudience&gt;
+&lt;ResourceMode&gt;04&lt;/ResourceMode&gt;
+&lt;ResourceVersion&gt;
+&lt;ResourceForm&gt;01&lt;/ResourceForm&gt;
+&lt;ResourceVersionFeature&gt;
+&lt;ResourceVersionFeatureType&gt;04&lt;/ResourceVersionFeatureType&gt;
+&lt;FeatureValue&gt;excerpt.epub&lt;/FeatureValue&gt;
+&lt;/ResourceVersionFeature&gt;
+&lt;ResourceVersionFeature&gt;
+&lt;ResourceVersionFeatureType&gt;01&lt;/ResourceVersionFeatureType&gt;
+&lt;FeatureValue&gt;E101&lt;/FeatureValue&gt;
+&lt;/ResourceVersionFeature&gt;
+&lt;ResourceLink&gt;https://assets.edenlivres.fr/medias/f1/194de3fec1a539bb56a0903a75ccb57ed94298.epub&lt;/ResourceLink&gt;
+&lt;ContentDate&gt;
+&lt;ContentDateRole&gt;17&lt;/ContentDateRole&gt;
+&lt;DateFormat&gt;14&lt;/DateFormat&gt;
+&lt;Date&gt;20220331T111847+0200&lt;/Date&gt;
+&lt;/ContentDate&gt;
+&lt;/ResourceVersion&gt;
+&lt;/SupportingResource&gt;
+&lt;SupportingResource&gt;
+&lt;ResourceContentType&gt;01&lt;/ResourceContentType&gt;
+&lt;ContentAudience&gt;00&lt;/ContentAudience&gt;
+&lt;ResourceMode&gt;03&lt;/ResourceMode&gt;
+&lt;ResourceFeature&gt;
+&lt;ResourceFeatureType&gt;02&lt;/ResourceFeatureType&gt;
+&lt;FeatureValue&gt;front_cover_small&lt;/FeatureValue&gt;
+&lt;/ResourceFeature&gt;
+&lt;ResourceVersion&gt;
+&lt;ResourceForm&gt;01&lt;/ResourceForm&gt;
+&lt;ResourceVersionFeature&gt;
+&lt;ResourceVersionFeatureType&gt;04&lt;/ResourceVersionFeatureType&gt;
+&lt;FeatureValue&gt;https://assets.edenlivres.fr/medias/96/11c1c81a2f2de60f5e7e609c1637ca4f6cf45e.jpg?h=-&amp;amp;w=65&lt;/FeatureValue&gt;
+&lt;/ResourceVersionFeature&gt;
+&lt;ResourceVersionFeature&gt;
+&lt;ResourceVersionFeatureType&gt;01&lt;/ResourceVersionFeatureType&gt;
+&lt;FeatureValue&gt;D502&lt;/FeatureValue&gt;
+&lt;/ResourceVersionFeature&gt;
+&lt;ResourceVersionFeature&gt;
+&lt;ResourceVersionFeatureType&gt;03&lt;/ResourceVersionFeatureType&gt;
+&lt;FeatureValue&gt;65&lt;/FeatureValue&gt;
+&lt;/ResourceVersionFeature&gt;
+&lt;ResourceLink&gt;https://assets.edenlivres.fr/medias/96/11c1c81a2f2de60f5e7e609c1637ca4f6cf45e.jpg?h=-&amp;amp;w=65&lt;/ResourceLink&gt;
+&lt;ContentDate&gt;
+&lt;ContentDateRole&gt;17&lt;/ContentDateRole&gt;
+&lt;DateFormat&gt;14&lt;/DateFormat&gt;
+&lt;Date&gt;20220331T111835+0200&lt;/Date&gt;
+&lt;/ContentDate&gt;
+&lt;/ResourceVersion&gt;
+&lt;/SupportingResource&gt;
+&lt;SupportingResource&gt;
+&lt;ResourceContentType&gt;01&lt;/ResourceContentType&gt;
+&lt;ContentAudience&gt;00&lt;/ContentAudience&gt;
+&lt;ResourceMode&gt;03&lt;/ResourceMode&gt;
+&lt;ResourceFeature&gt;
+&lt;ResourceFeatureType&gt;02&lt;/ResourceFeatureType&gt;
+&lt;FeatureValue&gt;front_cover_medium&lt;/FeatureValue&gt;
+&lt;/ResourceFeature&gt;
+&lt;ResourceVersion&gt;
+&lt;ResourceForm&gt;01&lt;/ResourceForm&gt;
+&lt;ResourceVersionFeature&gt;
+&lt;ResourceVersionFeatureType&gt;04&lt;/ResourceVersionFeatureType&gt;
+&lt;FeatureValue&gt;https://assets.edenlivres.fr/medias/96/11c1c81a2f2de60f5e7e609c1637ca4f6cf45e.jpg?h=-&amp;amp;w=200&lt;/FeatureValue&gt;
+&lt;/ResourceVersionFeature&gt;
+&lt;ResourceVersionFeature&gt;
+&lt;ResourceVersionFeatureType&gt;01&lt;/ResourceVersionFeatureType&gt;
+&lt;FeatureValue&gt;D502&lt;/FeatureValue&gt;
+&lt;/ResourceVersionFeature&gt;
+&lt;ResourceVersionFeature&gt;
+&lt;ResourceVersionFeatureType&gt;03&lt;/ResourceVersionFeatureType&gt;
+&lt;FeatureValue&gt;200&lt;/FeatureValue&gt;
+&lt;/ResourceVersionFeature&gt;
+&lt;ResourceLink&gt;https://assets.edenlivres.fr/medias/96/11c1c81a2f2de60f5e7e609c1637ca4f6cf45e.jpg?h=-&amp;amp;w=200&lt;/ResourceLink&gt;
+&lt;ContentDate&gt;
+&lt;ContentDateRole&gt;17&lt;/ContentDateRole&gt;
+&lt;DateFormat&gt;14&lt;/DateFormat&gt;
+&lt;Date&gt;20220331T111835+0200&lt;/Date&gt;
+&lt;/ContentDate&gt;
+&lt;/ResourceVersion&gt;
+&lt;/SupportingResource&gt;
+&lt;SupportingResource&gt;
+&lt;ResourceContentType&gt;01&lt;/ResourceContentType&gt;
+&lt;ContentAudience&gt;00&lt;/ContentAudience&gt;
+&lt;ResourceMode&gt;03&lt;/ResourceMode&gt;
+&lt;ResourceFeature&gt;
+&lt;ResourceFeatureType&gt;02&lt;/ResourceFeatureType&gt;
+&lt;FeatureValue&gt;front_cover_large&lt;/FeatureValue&gt;
+&lt;/ResourceFeature&gt;
+&lt;ResourceVersion&gt;
+&lt;ResourceForm&gt;01&lt;/ResourceForm&gt;
+&lt;ResourceVersionFeature&gt;
+&lt;ResourceVersionFeatureType&gt;04&lt;/ResourceVersionFeatureType&gt;
+&lt;FeatureValue&gt;https://assets.edenlivres.fr/medias/96/11c1c81a2f2de60f5e7e609c1637ca4f6cf45e.jpg?h=-&amp;amp;w=1000&lt;/FeatureValue&gt;
+&lt;/ResourceVersionFeature&gt;
+&lt;ResourceVersionFeature&gt;
+&lt;ResourceVersionFeatureType&gt;01&lt;/ResourceVersionFeatureType&gt;
+&lt;FeatureValue&gt;D502&lt;/FeatureValue&gt;
+&lt;/ResourceVersionFeature&gt;
+&lt;ResourceVersionFeature&gt;
+&lt;ResourceVersionFeatureType&gt;03&lt;/ResourceVersionFeatureType&gt;
+&lt;FeatureValue&gt;1000&lt;/FeatureValue&gt;
+&lt;/ResourceVersionFeature&gt;
+&lt;ResourceLink&gt;https://assets.edenlivres.fr/medias/96/11c1c81a2f2de60f5e7e609c1637ca4f6cf45e.jpg?h=-&amp;amp;w=1000&lt;/ResourceLink&gt;
+&lt;ContentDate&gt;
+&lt;ContentDateRole&gt;17&lt;/ContentDateRole&gt;
+&lt;DateFormat&gt;14&lt;/DateFormat&gt;
+&lt;Date&gt;20220331T111835+0200&lt;/Date&gt;
+&lt;/ContentDate&gt;
+&lt;/ResourceVersion&gt;
+&lt;/SupportingResource&gt;
+&lt;SupportingResource&gt;
+&lt;ResourceContentType&gt;16&lt;/ResourceContentType&gt;
+&lt;ContentAudience&gt;00&lt;/ContentAudience&gt;
+&lt;ResourceMode&gt;06&lt;/ResourceMode&gt;
+&lt;ResourceVersion&gt;
+&lt;ResourceForm&gt;01&lt;/ResourceForm&gt;
+&lt;ResourceLink&gt;https://www.edenlivres.fr/p/747043&lt;/ResourceLink&gt;
+&lt;/ResourceVersion&gt;
+&lt;/SupportingResource&gt;
+&lt;/CollateralDetail&gt;
+&lt;PublishingDetail&gt;
+&lt;Imprint&gt;
+&lt;ImprintName&gt;Éditions du Rouergue&lt;/ImprintName&gt;
+&lt;/Imprint&gt;
+&lt;Publisher&gt;
+&lt;PublishingRole&gt;01&lt;/PublishingRole&gt;
+&lt;PublisherIdentifier&gt;
+&lt;PublisherIDType&gt;06&lt;/PublisherIDType&gt;
+&lt;IDValue&gt;3052841560011&lt;/IDValue&gt;
+&lt;/PublisherIdentifier&gt;
+&lt;PublisherIdentifier&gt;
+&lt;PublisherIDType&gt;01&lt;/PublisherIDType&gt;
+&lt;IDTypeName&gt;DM_GLOBAL_ID&lt;/IDTypeName&gt;
+&lt;IDValue&gt;EDEN141&lt;/IDValue&gt;
+&lt;/PublisherIdentifier&gt;
+&lt;PublisherName&gt;rouergue littérature&lt;/PublisherName&gt;
+&lt;Website&gt;
+&lt;WebsiteRole&gt;01&lt;/WebsiteRole&gt;
+&lt;WebsiteLink&gt;http://www.lerouergue.com&lt;/WebsiteLink&gt;
+&lt;/Website&gt;
+&lt;/Publisher&gt;
+&lt;PublishingStatus&gt;04&lt;/PublishingStatus&gt;
+&lt;PublishingDate&gt;
+&lt;PublishingDateRole&gt;01&lt;/PublishingDateRole&gt;
+&lt;DateFormat&gt;14&lt;/DateFormat&gt;
+&lt;Date&gt;20220504T000000+0200&lt;/Date&gt;
+&lt;/PublishingDate&gt;
+&lt;PublishingDate&gt;
+&lt;PublishingDateRole&gt;19&lt;/PublishingDateRole&gt;
+&lt;DateFormat&gt;14&lt;/DateFormat&gt;
+&lt;Date&gt;20220504T000000+0200&lt;/Date&gt;
+&lt;/PublishingDate&gt;
+&lt;PublishingDate&gt;
+&lt;PublishingDateRole&gt;09&lt;/PublishingDateRole&gt;
+&lt;DateFormat&gt;14&lt;/DateFormat&gt;
+&lt;Date&gt;20220331T000000+0200&lt;/Date&gt;
+&lt;/PublishingDate&gt;
+&lt;PublishingDate&gt;
+&lt;PublishingDateRole&gt;02&lt;/PublishingDateRole&gt;
+&lt;DateFormat&gt;14&lt;/DateFormat&gt;
+&lt;Date&gt;20220504T000000+0200&lt;/Date&gt;
+&lt;/PublishingDate&gt;
+&lt;SalesRights&gt;
+&lt;SalesRightsType&gt;01&lt;/SalesRightsType&gt;
+&lt;Territory&gt;
+&lt;CountriesIncluded&gt;AT BE BG BL CA CH CY CZ DE EE ES FI FR GF GP GR HR HU IE IT LT LU LV MC MF MQ MT NC NL PF PL PM PT RE RO RU SI SK TF WF YT&lt;/CountriesIncluded&gt;
+&lt;/Territory&gt;
+&lt;/SalesRights&gt;
+&lt;SalesRestriction&gt;
+&lt;SalesRestrictionType&gt;06&lt;/SalesRestrictionType&gt;
+&lt;/SalesRestriction&gt;
+&lt;/PublishingDetail&gt;
+&lt;RelatedMaterial&gt;
+&lt;RelatedProduct&gt;
+&lt;ProductRelationCode&gt;31&lt;/ProductRelationCode&gt;
+&lt;ProductIdentifier&gt;
+&lt;ProductIDType&gt;03&lt;/ProductIDType&gt;
+&lt;IDValue&gt;9782812623431&lt;/IDValue&gt;
+&lt;/ProductIdentifier&gt;
+&lt;ProductForm&gt;EA&lt;/ProductForm&gt;
+&lt;ProductFormDetail&gt;E101&lt;/ProductFormDetail&gt;
+&lt;ProductFormDetail&gt;E200&lt;/ProductFormDetail&gt;
+&lt;/RelatedProduct&gt;
+&lt;RelatedProduct&gt;
+&lt;ProductRelationCode&gt;13&lt;/ProductRelationCode&gt;
+&lt;ProductIdentifier&gt;
+&lt;ProductIDType&gt;03&lt;/ProductIDType&gt;
+&lt;IDValue&gt;9782812623394&lt;/IDValue&gt;
+&lt;/ProductIdentifier&gt;
+&lt;ProductForm&gt;BA&lt;/ProductForm&gt;
+&lt;/RelatedProduct&gt;
+&lt;RelatedProduct&gt;
+&lt;ProductRelationCode&gt;06&lt;/ProductRelationCode&gt;
+&lt;ProductIdentifier&gt;
+&lt;ProductIDType&gt;15&lt;/ProductIDType&gt;
+&lt;IDValue&gt;9782812623431&lt;/IDValue&gt;
+&lt;/ProductIdentifier&gt;
+&lt;/RelatedProduct&gt;
+&lt;RelatedProduct&gt;
+&lt;ProductRelationCode&gt;06&lt;/ProductRelationCode&gt;
+&lt;ProductIdentifier&gt;
+&lt;ProductIDType&gt;15&lt;/ProductIDType&gt;
+&lt;IDValue&gt;9782812623448&lt;/IDValue&gt;
+&lt;/ProductIdentifier&gt;
+&lt;/RelatedProduct&gt;
+&lt;/RelatedMaterial&gt;
+&lt;/Product&gt;
+&lt;/ONIXMessage&gt;</notice>
+    <orderLine>
+        <orderId>990320204TEA1</orderId>
+        <orderIdColl>990320204</orderIdColl>
+        <orderLineId>62e7ce1db65395562cf6ec4e</orderLineId>
+        <orderDate>2022-08-01T14:59:09.431+02:00</orderDate>
+        <ean13>9782812623455</ean13>
+        <quantity>1</quantity>
+        <usage>
+            <loanTerms>
+                <loanMaxDuration>
+                    <value>59</value>
+                    <unit>DAY</unit>
+                </loanMaxDuration>
+                <nbLoans>30</nbLoans>
+                <loanNbSimultaneousUsers>30</loanNbSimultaneousUsers>
+                <consultNbSimultaneousUsersInSitu>10</consultNbSimultaneousUsersInSitu>
+                <consultNbSimultaneousUsersExSitu>0</consultNbSimultaneousUsersExSitu>
+            </loanTerms>
+            <userRights>
+                <printing>PROHIBITED</printing>
+                <copyAndPaste>PERMITTED_UNLIMITED</copyAndPaste>
+                <nbAllowedDevices>6</nbAllowedDevices>
+            </userRights>
+            <collRights>
+                <offerValidity>
+                    <value>2555</value>
+                    <unit>DAY</unit>
+                </offerValidity>
+            </collRights>
+        </usage>
+        <returnStatus>OK</returnStatus>
+    </orderLine>
+</offer>
+</pnbOffers>
diff --git a/tests/scenarios/MobileApplication/RestfulApiTest.php b/tests/scenarios/MobileApplication/RestfulApiTest.php
index 2942f70e205bca82c9a68f5dda9872fc3568b63d..65f8e396bac363367cdc5c9f8222e23b269bc02e 100644
--- a/tests/scenarios/MobileApplication/RestfulApiTest.php
+++ b/tests/scenarios/MobileApplication/RestfulApiTest.php
@@ -34,12 +34,12 @@ abstract class Scenario_MobileApplication_RestfulApi_UserAccountTestCase extends
     Class_CommSigb::setInstance($this->_sigb = $this->mock());
     Class_AdminVar::set('ACTIVATE_AUTH_LOG', '1');
 
-    $this->fixture('Class_Bib',
+    $this->fixture(Class_Bib::class,
                    ['id' => 1,
                     'gln' => '3056032160004',
                     'libelle' => 'Vaise-sur-Ravoire']);
 
-    $puppy = $this->fixture('Class_Users',
+    $puppy = $this->fixture(Class_Users::class,
                             ['id' => 345,
                              'pseudo' => 'Puppy',
                              'date_fin' => '2018-02-12',
@@ -90,12 +90,13 @@ abstract class Scenario_MobileApplication_RestfulApi_UserAccountTestCase extends
                    ]);
 
 
-    $this->fixture('Class_User_ApiToken',
+    $this->fixture(Class_User_ApiToken::class,
                    ['id' => 1,
                     'token' => 'nonos',
                     'client_id' => 'MyBibApp',
                     'user' => $puppy]);
-    $this->fixture('Class_User_ApiToken',
+
+    $this->fixture(Class_User_ApiToken::class,
                    ['id' => 3,
                     'token' => 'exptoken',
                     'client_id' => 'MyBibApp',
@@ -107,7 +108,7 @@ abstract class Scenario_MobileApplication_RestfulApi_UserAccountTestCase extends
       ->setDateRetour('01/01/1974')
       ->setBibliotheque('Annecy')
       ->getExemplaire()
-      ->setNoticeOPAC($this->fixture('Class_Notice',
+      ->setNoticeOPAC($this->fixture(Class_Notice::class,
                                      ['id' => 34,
                                       'url_vignette' => 'http://img.com/potter.jpg',
                                       'titre_principal' => 'Harry Potter<br /> La chambre des secrets',
@@ -126,13 +127,13 @@ abstract class Scenario_MobileApplication_RestfulApi_UserAccountTestCase extends
       ->setEtat('En attente')
       ->getExemplaire()
       ->setCodeBarre('M-456')
-      ->setNoticeOPAC($this->fixture('Class_Notice',
+      ->setNoticeOPAC($this->fixture(Class_Notice::class,
                                      ['id' => 83,
                                       'url_vignette' => 'http://img.com/marcus.jpg',
                                       'titre_principal' => 'Afrodeezia',
                                       'auteur_principal' => 'Marcus Miller' ]));
 
-    $this->fixture('Class_Exemplaire',
+    $this->fixture(Class_Exemplaire::class,
                    ['id' => 2,
                     'code_barres' => 'M-456',
                     'bib' => $this->fixture('Class_Bib', ['id' => 3, 'libelle' => 'Annecy']),
@@ -160,7 +161,9 @@ abstract class Scenario_MobileApplication_RestfulApi_UserAccountTestCase extends
 
     $book->setFormat('A103;E200');
     $book->setISBN('9782823608489');
-    $album =$this->fixture('Class_Album',
+    $book->addNote('330$a','ACS;LCP');
+
+    $album =$this->fixture(Class_Album::class,
                            ['id' => 4,
                             'notice_id' => 5,
                             'id_origine' => 'Dilicom-88817216',
@@ -173,14 +176,13 @@ abstract class Scenario_MobileApplication_RestfulApi_UserAccountTestCase extends
          ->assertSave();
     $book->index();
 
-    $loan = $this->fixture('Class_Loan_Pnb',
+    $loan = $this->fixture(Class_Loan_Pnb::class,
                            ['id' => 5,
                             'subscriber_id' => $puppy->getIdabon(),
                             'ongoing' => true,
                             'order_line_id' => '1234',
                             'expected_return_date' => '2032-05-02 18:14:14',
                             'loan_date' => '2016-06-13 15:10:02',
-                            'options' =>'LCP',
                             'loan_link'=> 'https://pnb-test.centprod.com/v3//link/3056000302801/LOAN/303/9791033159216-AZ585E8AKPX5HZZ86D4PUWPL6X5P9I7K.do',
                            ]);
     $loan->setAlbum($book);
@@ -201,8 +203,8 @@ abstract class Scenario_MobileApplication_RestfulApi_UserAccountTestCase extends
 
 
 class Scenario_MobileApplication_RestfulApi_UserPnbLoanWithTokenTest extends Scenario_MobileApplication_RestfulApi_UserAccountTestCase  {
-  protected $_json,
-    $_storm_default_to_volatile=true;
+  protected $_json;
+
   public function setUp() {
     parent::setUp();
     Class_Loan_pnb::setTimeSource(new TimeSourceForTest('2019-03-15 15:48:03'));
@@ -216,7 +218,7 @@ class Scenario_MobileApplication_RestfulApi_UserPnbLoanWithTokenTest extends Sce
     Class_User_ApiToken::getLoader()->setTimeSource(new TimeSourceForTest('2019-03-15 15:48:03'));
     Class_IdentityClient::find(2)->setActive(false)->save();
 
-    $this->fixture('Class_User_ApiToken',
+    $this->fixture(Class_User_ApiToken::class,
                    ['id' => 3,
                     'token' => 'mytoken',
                     'refresh_token'=>'1234',
diff --git a/tests/scenarios/PnbDilicom/PnbDilicomTest.php b/tests/scenarios/PnbDilicom/PnbDilicomTest.php
index df94e22a43bab2bb88f92757d9e8030813f9cf7e..8d55089043a403212355463a55930e3aebfccb98 100644
--- a/tests/scenarios/PnbDilicom/PnbDilicomTest.php
+++ b/tests/scenarios/PnbDilicom/PnbDilicomTest.php
@@ -755,9 +755,6 @@ class PnbDilicomProduitsTerroirOffersParserTest extends PnbDilicomOfferParserTes
 
 class PnbDilicomONIXParserTest extends ModelTestCase {
 
-  protected $_storm_default_to_volatile = true;
-
-
   public function setUp() {
     parent::setUp();
     $xmlpath = realpath(__DIR__) . '/../../fixtures/la_mer.xml';
@@ -895,9 +892,6 @@ class PnbDilicomONIXParserTest extends ModelTestCase {
 
 abstract class PnbDilicomViewHelperNoticeTestCase extends ViewHelperTestCase {
 
-  protected $_storm_default_to_volatile = true;
-
-
   public function setUp() {
     parent::setUp();
     $this->_helper = new ZendAfi_View_Helper_Notice_Dilicom();
@@ -971,9 +965,6 @@ class PnbDilicomViewHelperNoticeLoggedTest extends PnbDilicomViewHelperNoticeTes
 
 class PnbDilicomRechercheControllerViewnoticeWithInspectorGadgetTest extends Admin_AbstractControllerTestCase {
 
-  protected $_storm_default_to_volatile = true;
-
-
   public function setUp() {
     parent::setUp();
     RessourcesNumeriquesFixtures::activateDilicom();
@@ -1015,9 +1006,6 @@ class PnbDilicomRechercheControllerViewnoticeWithInspectorGadgetTest extends Adm
 
 class PnbDilicomTelephoneRechercheControllerViewNoticeTest extends TelephoneAbstractControllerTestCase {
 
-  protected $_storm_default_to_volatile = true;
-
-
   public function setUp() {
     parent::setUp();
     RessourcesNumeriquesFixtures::activateDilicom();
@@ -1027,20 +1015,20 @@ class PnbDilicomTelephoneRechercheControllerViewNoticeTest extends TelephoneAbst
     $book->assertSave();
     $book->index();
 
-    $this->fixture('Class_Bib',
+    $this->fixture(Class_Bib::class,
                    ['id' => 1,
                     'libelle' => 'annecy',
                     'gln' => '2222'
                    ]);
 
-    $logged_user = $this->fixture('Class_Users',
+    $logged_user = $this->fixture(Class_Users::class,
                                   ['id' => 6,
                                    'nom'=>'Pito',
                                    'login'=>'Chat',
                                    'password'=>'123456',
                                    'id_site' => 1,
                                    'idabon' => '12345',
-                                   'user_groups' => [$this->fixture('Class_UserGroup',
+                                   'user_groups' => [$this->fixture(Class_UserGroup::class,
                                                                     ['id' => '20',
                                                                      'libelle' => 'Multimedia',
                                                                      'rights' => [Class_UserGroup::RIGHT_ACCES_PNB_DILICOM]])]]);
@@ -1052,7 +1040,7 @@ class PnbDilicomTelephoneRechercheControllerViewNoticeTest extends TelephoneAbst
 
   /** @test */
   public function pageShouldContainsLinkToRessouresNumeriques() {
-    $this->dispatch('/telephone/recherche/viewnotice/id/1', true);
+    $this->dispatch('/telephone/recherche/viewnotice/id/1');
     $this->assertXPathContentContains('//ul[contains(@class, "doctype_112")]//a',
                                       'Accéder à la ressource');
   }
@@ -1060,21 +1048,21 @@ class PnbDilicomTelephoneRechercheControllerViewNoticeTest extends TelephoneAbst
 
   /** @test */
   public function loanBookActionShouldBeLoanBookNotAjax() {
-    $this->dispatch('/telephone/recherche/ressourcesnumeriques/id/1', true);
+    $this->dispatch('/telephone/recherche/ressourcesnumeriques/id/1');
     $this->assertXPath('//a[contains(@href, "bib-numerique/loan-book/id/3")]');
   }
 
 
   /** @test */
   public function consultBookActionShouldNotBeVisible() {
-    $this->dispatch('/telephone/recherche/ressourcesnumeriques/id/1', true);
+    $this->dispatch('/telephone/recherche/ressourcesnumeriques/id/1');
     $this->assertNotXPath('//a[contains(@href, "bib-numerique/consult-book/id/3")]');
   }
 
 
   /** @test */
   public function previewIframeShouldNotBeDisplayed() {
-    $this->dispatch('/telephone/recherche/ressourcesnumeriques/id/1', true);
+    $this->dispatch('/telephone/recherche/ressourcesnumeriques/id/1');
     $this->assertNotXPath('//iframe');
   }
 }
@@ -1100,7 +1088,7 @@ abstract class PnbDilicomHoldsTestCase extends PnbDilicomHubTestCase {
 
 
   protected function _setupProfil() {
-    $this->fixture('Class_Profil',
+    $this->fixture(Class_Profil::class,
                    ['id' => 1,
                     'libelle' => 'OPAC on steroids',
                     'mail_site' => 'ridley@localhost.localdomain.com'])
@@ -1139,12 +1127,12 @@ abstract class PnbDilicomHoldsTestCase extends PnbDilicomHubTestCase {
     Class_Hold_Pnb::setTimeSource($timesource);
 
 
-    $bib = $this->fixture('Class_Bib',
+    $bib = $this->fixture(Class_Bib::class,
                           ['id' => 2,
                            'libelle' => 'Dead Horse Point']);
 
 
-    $thelma = $this->fixture('Class_Users',
+    $thelma = $this->fixture(Class_Users::class,
                              ['id' => 6,
                               'login' => 'thelma',
                               'password' => 'girlpower',
@@ -1154,7 +1142,7 @@ abstract class PnbDilicomHoldsTestCase extends PnbDilicomHubTestCase {
                               'role_level' => ZendAfi_Acl_AdminControllerRoles::ABONNE_SIGB,
                              ]);
 
-    $darryl = $this->fixture('Class_Users',
+    $darryl = $this->fixture(Class_Users::class,
                              ['id' => 8,
                               'login' => 'darryl',
                               'password' => 'machopower',
@@ -1162,7 +1150,7 @@ abstract class PnbDilicomHoldsTestCase extends PnbDilicomHubTestCase {
                               'idabon' => '130',
                               'role_level' => ZendAfi_Acl_AdminControllerRoles::ABONNE_SIGB]);
 
-    $louise = $this->fixture('Class_Users',
+    $louise = $this->fixture(Class_Users::class,
                              ['id' => 7,
                               'login' => 'louise',
                               'mail'=> 'louisenonvalide',
@@ -1172,39 +1160,39 @@ abstract class PnbDilicomHoldsTestCase extends PnbDilicomHubTestCase {
                               'role_level' => ZendAfi_Acl_AdminControllerRoles::ABONNE_SIGB]);
 
 
-    $thelma_expired_hold_on_totem = $this->fixture('Class_Hold_Pnb',
+    $thelma_expired_hold_on_totem = $this->fixture(Class_Hold_Pnb::class,
                                                    ['id' => 1,
                                                     'user_id' => $thelma->getId(),
                                                     'record_origin_id' => $this->book->getIdOrigine(),
                                                     'hold_date' => '2022-03-01 20:10:00',
                                                     'expiration_date' => '2022-04-01 20:10:00']);
 
-    $louise_pending_hold_on_totem = $this->fixture('Class_Hold_Pnb',
+    $louise_pending_hold_on_totem = $this->fixture(Class_Hold_Pnb::class,
                                                    ['id' => 2,
                                                     'user_id' => $louise->getId(),
                                                     'record_origin_id' => $this->book->getIdOrigine(),
                                                     'hold_date' => '2022-06-02 20:10:00']);
 
-    $thelma_pending_hold_on_totem_by_idabon = $this->fixture('Class_Hold_Pnb',
+    $thelma_pending_hold_on_totem_by_idabon = $this->fixture(Class_Hold_Pnb::class,
                                                              ['id' => 3,
                                                               'subscriber_id' => $thelma->getIdabon(),
                                                               'record_origin_id' => $this->book->getIdOrigine(),
                                                               'hold_date' => '2022-06-01 20:10:00']);
 
-    $louise_pending_hold_on_other_record = $this->fixture('Class_Hold_Pnb',
+    $louise_pending_hold_on_other_record = $this->fixture(Class_Hold_Pnb::class,
                                                           ['id' => 4,
                                                            'user_id' => $louise->getId(),
                                                            'record_origin_id' => '6673464',
                                                            'hold_date' => '2022-05-02 22:12:00']);
 
-    $darryl_pending_hold_on_totem = $this->fixture('Class_Hold_Pnb',
+    $darryl_pending_hold_on_totem = $this->fixture(Class_Hold_Pnb::class,
                                                    ['id' => 5,
                                                     'user_id' => $darryl->getId(),
                                                     'record_origin_id' => $this->book->getIdOrigine(),
                                                     'hold_date' => '2022-06-03 20:10:00']);
 
 
-    $other_user_pending_hold_on_totem = $this->fixture('Class_Hold_Pnb',
+    $other_user_pending_hold_on_totem = $this->fixture(Class_Hold_Pnb::class,
                                                        ['id' => 6,
                                                         'user_id' => 666,
                                                         'record_origin_id' => $this->book->getIdOrigine(),
@@ -1447,12 +1435,21 @@ class PnbDilicomOffersParserDelayLoanTest extends ModelTestCase {
   public function firstAlbumShouldBeLaPlaneteDesChats() {
     $album = $this->_books[0]->import();
     $this->assertEquals('La Planète des chats', $album->getTitre());
+    return $album;
+  }
+
+
+  /** @test
+   * @depends firstAlbumShouldBeLaPlaneteDesChats
+   */
+  public function firstAlbumNote330ShouldBeLCP($album) {
+    $this->assertEquals('ACS;LCP', $album->getNote('330$a'));
     return $album->getItems();
   }
 
 
   /**
-   * @depends firstAlbumShouldBeLaPlaneteDesChats
+   * @depends firstAlbumNote330ShouldBeLCP
    * @test */
   public function whenDateBeforeEndDatefirstAlbumUsageConstraintsShouldBeAValidOffer(array $items) {
     Class_Album_UsageConstraint::setTimeSource(new TimeSourceForTest('2021-02-25 14:14:14'));
@@ -1461,7 +1458,7 @@ class PnbDilicomOffersParserDelayLoanTest extends ModelTestCase {
 
 
   /**
-   * @depends firstAlbumShouldBeLaPlaneteDesChats
+   * @depends firstAlbumNote330ShouldBeLCP
    * @test */
   public function whenDateValidityIsOverfirstAlbumUsageConstraintsShouldNotBeAValidOffer(array $items) {
     Class_Album_UsageConstraint::setTimeSource(new TimeSourceForTest('2030-10-14 15:00:14'));
@@ -1505,7 +1502,7 @@ class PnbDilicomOffersValidityUpdateFromXmlTest extends ModelTestCase {
   public function setUp() {
     parent::setUp();
 
-    $this->fixture('Class_Album',
+    $this->fixture(Class_Album::class,
                    ['id' => 45,
                     'titre' => 'La Planète des chats',
                     'url_origine' => 'http://www.dilicom.net',
@@ -1556,6 +1553,13 @@ class PnbDilicomOffersValidityUpdateFromXmlTest extends ModelTestCase {
   }
 
 
+  /** @test */
+  public function firstAlbumNotesShouldBeLCP() {
+    $album = $this->_albums[0];
+    $this->assertEquals('ACS;LCP', $album->getNote('330$a'));
+  }
+
+
   /**
    * @depends firstAlbumShouldBeLaPlaneteDesChats
    * @test  */
@@ -1626,6 +1630,7 @@ abstract class PnbDilicomLoansTestCase extends PnbDilicomHoldsTestCase {
                     'user_id' => 6,
                     'subscriber_id' => '',
                     'record_origin_id' => $this->book->getIdOrigine(),
+                    'record_origin_id' => $this->book->getIdOrigine(),
                     'order_line_id' => 'x321',
                     'loan_date' => '2022-03-01 20:10:00',
                     'expected_return_date' => '2022-04-01 20:10:00']);
@@ -1805,3 +1810,23 @@ class PnbDilicomLoansQueryPageTest extends PnbDilicomLoansTestCase{
                         $this->_wrapper->getAttributesForLastCallOn('findAllBy'));
   }
 }
+
+
+
+
+class PnbDilicomWithEpubTechProtectionDetailOffersParserTest extends PnbDilicomOfferParserTestCase {
+
+  protected $_pnb_filename = 'full_pnb_3056031760007_20230806T063428Z.xml';
+
+
+  public function setUp() {
+    parent::setUp();
+    $this->_books = Class_WebService_BibNumerique_Dilicom_PNBOffersFile::booksFromXML($this->_xml);
+  }
+
+
+  /** @test */
+  public function bookGetOptionsShouldBeAcsLcp() {
+    $this->assertEquals('ACS;LCP', $this->_books[0]->getOptions());
+  }
+}
diff --git a/tests/scenarios/Templates/TemplatesAbonneTest.php b/tests/scenarios/Templates/TemplatesAbonneTest.php
index ba7bc6331bb2fd17a2c8ad2bfcc7f60e9ef7f9fe..46f8e165262efe821607f0150becf06346132af0 100644
--- a/tests/scenarios/Templates/TemplatesAbonneTest.php
+++ b/tests/scenarios/Templates/TemplatesAbonneTest.php
@@ -36,7 +36,7 @@ abstract class TemplatesIntonationAccountTestCase extends TemplatesIntonationTes
                             'zone995' => serialize([['code' => 'a', 'valeur' => 'PotterItem'],
                                                     ['code' => 'v', 'valeur' => '7'],
                                                     ['code' => 'h', 'valeur' => 'Numero 23']]),
-                            'notice' => $this->fixture('Class_Notice',
+                            'notice' => $this->fixture(Class_Notice::class,
                                                        ['id' => 889,
                                                         'titre_principal' => 'Potter',
                                                         'type_doc' => Class_TypeDoc::LIVRE,
@@ -70,7 +70,7 @@ abstract class TemplatesIntonationAccountTestCase extends TemplatesIntonationTes
                                           'code_barres' => 124,
                                           'id_int_bib' => 1,
                                           'zone995' => serialize([['clef' => 'a', 'valeur' => 'AliceItem']]),
-                                          'notice' => $this->fixture('Class_Notice',
+                                          'notice' => $this->fixture(Class_Notice::class,
                                                                      ['id' => 827,
                                                                       'titre_principal' => 'Alice',
                                                                       'unimarc' => '01175cam0 22002771  450 001001500000010003700015100004100052101000800093102000700101105001800108106000600126200009300132210002400225211001300249215006400262300002400326307002900350330027300379345001800652461005600670700001800726701003000744801003300774856008300807940000700890frOr0354235228  a978-2-35592-635-8bbr.d7,65 EUR  a20140225d2014    |  |0fre|0103||||ba  afre  aFR  a        0||y|  ar1 aAlice au royaume de TrèfleeCheshire cat Waltzh5fQuinRosegdessin Mamenosuke Fujimaru  aPariscKi-oond2014 1a20140227  a1 vol. (164 p.)cillustrations en noir et blancd18 x 13 cm  aTraduit du japonais  aSens de lecture japonais  aPerdue dans la forêt aux portes, Alice tombe nez à nez avec Ace. Devenue malgré elle la confidente du chevalier, elle ne sait comment repousser ses avances. Lorsque le chat du Cheshire, qui a assisté à la scène, intervient, la rencontre tourne à l\'affrontement.  b9782355926358 1tAlice au royaume de Trèfle : Cheshire cat Waltzv5 1aQuinRose4070 1aFujimarubMamenosuke4440  aFRbElectrec20140225gAFNOR  uhttp://www.electre.com//GetBlob.ashx?Ean=9782355926358,0-1913692&Size=Original  aLR'])]));
@@ -81,13 +81,13 @@ abstract class TemplatesIntonationAccountTestCase extends TemplatesIntonationTes
                                   'Bibliotheque' => 'Almont',
                                   'N° de notice' => '5678']);
 
-    $this->fixture('Class_Exemplaire',
+    $this->fixture(Class_Exemplaire::class,
                    ['id' => 918,
                     'id_origine' => 5678,
                     'code_barres' => 124,
                     'id_int_bib' => 1,
                     'zone995' => serialize([['clef' => 'a', 'valeur' => 'AliceItem']]),
-                    'notice' => $this->fixture('Class_Notice',
+                    'notice' => $this->fixture(Class_Notice::class,
                                                ['id' => 827,
                                                 'titre_principal' => 'Alice',
                                                 'type_doc' => 1])]);
@@ -118,7 +118,7 @@ abstract class TemplatesIntonationAccountTestCase extends TemplatesIntonationTes
                                        'id_int_bib' => 1,
                                        'id_notice' => 820]);
 
-    $this->fixture('Class_Notice',
+    $this->fixture(Class_Notice::class,
                    ['id' => 820,
                     'titre_principal' => 'Dobby',
                     'type_doc' => Class_TypeDoc::DVD,
@@ -286,6 +286,7 @@ abstract class TemplatesIntonationAccountTestCase extends TemplatesIntonationTes
                                  'visible' => 1,
                                  'status' => 3,
                                  'id_origine' => 'Dilicom-3663608260879']);
+    $pnb_album->addNote('330$a',"LCP");
 
     $pnb_album->index();
 
@@ -298,7 +299,6 @@ abstract class TemplatesIntonationAccountTestCase extends TemplatesIntonationTes
                     'expected_return_date' => '2017-12-13 13:57:33',
                     'loan_date' => '2017-11-13 13:57:33',
                     'loan_link' => 'https://pnb-dilicom.centprod.com/v2//XXXXXXXX.do',
-                    'options' => 'LCP',
                     'order_line_id' => '584837a045ce56ef0a072a8b']);
 
     $membership = $this->fixture(Class_Membership::class,