Commit 8c86afc8 authored by Laurent's avatar Laurent

dev #92615 Koha : import serial titles and articles. Update PMB serial import

parent 4323546e
Pipeline #9358 failed with stage
in 42 minutes and 41 seconds
......@@ -122,7 +122,10 @@ class NoticeAjaxController extends ZendAfi_Controller_Action {
public function exemplairesAction() {
if ($this->notice->isFirstItemTypeSerialArticle())
$this->notice = $this->notice->getFirstExemplaire()->getPMBSerialRecord();
$this->notice = $this->notice->getLinkedSerialRecord();
if (!$this->notice)
return $this->_sendResponseWithScripts(sprintf('<p>%s</p>', $this->_('Aucun exemplaire trouvé')));
$nb_notices_oeuvre = Class_Notice::countBy(['clef_oeuvre' => $this->notice->getClefOeuvre(),
'id_notice not' => $this->notice->getId()]);
......@@ -163,11 +166,9 @@ class NoticeAjaxController extends ZendAfi_Controller_Action {
if ($xsl->isEnabled())
return $this->_sendResponseWithScripts($this->view->Notice_Xsl($xsl));
if ($notice->isPeriodique()) {
$periodiques = $this->notice->getArticlesPeriodique($this->id_notice);
return $this->_sendResponseWithScripts($this->notice_html->getArticlesPeriodique($periodiques));
}
if ($notice->isPeriodique())
return $this->_sendResponseWithScripts($this->view->Notice_ArticlesPeriodiques($notice));
$html = $this->view->notice_Entete($notice, ['entete' => Class_Codification::CHAMPS]);
$this->_sendResponseWithScripts($html);
......
......@@ -8,7 +8,7 @@ echo $this->toolbar($this->_("Recherche"),
<h3><?php echo $this->iconeSupport($this->notice->getTypeDoc()) . $this->notice->getTitrePrincipal() ;?></h3>
<p class="serie">
<?php
echo $this->getHelper('Notice_Entete')->addSeries($this->notice);
echo $this->notice_SeriesLink($this->notice);
?>
</p>
<p><?php echo $this->notice->getAuteurPrincipal();?></p>
......
'92615' =>
['Label' => $this->_('Intégration des périodiques issus des SIGB Koha et PMB'),
'Desc' => $this->_('Bokeh gère trois niveaux de notices de périodiques: titre de périodique, fascicule et dépouillement. Pour chaque niveau de notice, Bokeh affichera des liens pour aller au niveau supérieur ou inférieur'),
'Image' => '',
'Video' => 'https://youtu.be/tbdQufZij_k',
'Category' => $this->_('Intégration du catalogue'),
'Right' => function($feature_description, $user) {return true;},
'Wiki' => 'http://wiki.bokeh-library-portal.org/index.php?title=Import_des_p%C3%A9riodiques_Koha_dans_Bokeh',
'Test' => '',
'Date' => '2020-02-06'],
\ No newline at end of file
- ticket #92615 : Intégration des périodiques issus des SIGB Koha et PMB
\ No newline at end of file
......@@ -44,4 +44,9 @@ $front = Zend_Controller_Front::getInstance()
->registerPlugin(new ZendAfi_Controller_Plugin_CosmoAuth())
->registerPlugin(new ZendAfi_Controller_Plugin_CosmoBaseUrl());
$current_profil = Class_Profil::getCurrentProfil();
defineConstant('PATH_SKIN', '.' . $current_profil->getPathTheme());
defineConstant('URL_IMG', BASE_URL . $current_profil->getPathTheme() . 'images/');
$front->dispatch();
\ No newline at end of file
......@@ -126,18 +126,19 @@ class profil_donnees {
$this->attributs[0]["type_doc"][$i]["label"] = [];
$this->attributs[0]["type_doc"][$i]["zone_995"] = [];
for($j=0; $j < count($td); $j++) {
if(!isset($td[$j]["label"]))
foreach($td as $j => $definition) {
if(!isset($definition["label"]))
continue;
if($td[$j]["code"] == $type_doc->getId()) {
$this->attributs[0]["type_doc"][$i]["label"]=explode(";",$td[$j]["label"]);
$this->attributs[0]["type_doc"][$i]["zone_995"]=explode(";",$td[$j]["zone_995"]);
if ($definition["code"] == $type_doc->getId()) {
$this->attributs[0]["type_doc"][$i]["label"]=explode(";",$definition["label"]);
$this->attributs[0]["type_doc"][$i]["zone_995"]=explode(";",$definition["zone_995"]);
break;
}
}
}
// decompacter et consolider champs xml
$champs = getCodifsVariable("champs_abonne");
foreach($champs as $champ) {
......
This diff is collapsed.
......@@ -217,6 +217,9 @@ class NanookRecordsIntegrationAuxAnimauxLaGuerreTest extends NanookRecordsIntegr
}
}
class NanookRecordsIntegrationLeChantDesAbbayesTest extends NanookRecordsIntegrationTestCase {
public function setUp() {
parent::setUp();
......@@ -229,9 +232,17 @@ class NanookRecordsIntegrationLeChantDesAbbayesTest extends NanookRecordsIntegra
$notice = Class_Notice::find(1);
$this->assertTrue(strpos($notice->getFacettes(),'P347 P3092') != FALSE);
}
/** @test */
public function eanShouldBe3149020854846() {
$this->assertEquals('3149020854846', Class_Notice::find(1)->getEan());
}
}
class NanookRecordsIntegrationUpdateNoticeTest extends NoticeIntegrationTestCase {
protected $_profil_donnees = ['id_profil' => 150,
'id' => 150,
......
......@@ -23,21 +23,25 @@
require_once 'NoticeIntegrationTest.php';
abstract class NoticeIntegrationOrpheeTestCase extends NoticeIntegrationTestCase {
public function getProfilDonnees() {
return Class_IntProfilDonnees::forOrphee()
->setIdProfil(110)
->getRawAttributes();
}
}
/** @see http://forge.afi-sa.fr/issues/24365 */
class NoticeIntegrationOrpheeDegreeTest extends NoticeIntegrationTestCase {
class NoticeIntegrationOrpheeDegreeTest extends NoticeIntegrationOrpheeTestCase {
public function setUp() {
parent::setUp();
$this->loadNotice('unimarc_orphee_24365');
}
public function getProfilDonnees() {
return Class_IntProfilDonnees::forOrphee()
->setIdProfil(110)
->getRawAttributes();
}
/** @test */
public function recordShouldHaveOneItem() {
$this->assertEquals(1, Class_Exemplaire::count());
......@@ -54,7 +58,7 @@ class NoticeIntegrationOrpheeDegreeTest extends NoticeIntegrationTestCase {
/** @see http://forge.afi-sa.fr/issues/96923 */
class NoticeIntegrationOrpheeSerialWithDoubleSearchNoneTest extends NoticeIntegrationTestCase {
class NoticeIntegrationOrpheeSerialWithDoubleSearchNoneTest extends NoticeIntegrationOrpheeTestCase {
protected
$_sigb = Class_IntBib::SIGB_ORPHEE,
$_items;
......@@ -70,22 +74,22 @@ class NoticeIntegrationOrpheeSerialWithDoubleSearchNoneTest extends NoticeIntegr
}
public function getProfilDonnees() {
return Class_IntProfilDonnees::forOrphee()
->setIdProfil(110)
->getRawAttributes();
}
/** @test */
public function shouldCreate29Records() {
$this->assertEquals(29, Class_Notice::count());
}
/** @test */
public function firstItemIdOrigineshouldBefrOr0939524523() {
$this->assertEquals('frOr0939524523',
Class_Exemplaire::find(1)->getIdOrigine());
}
/** @test */
public function shouldHaveCreated29Items() {
$this->assertEquals(29, Class_Exemplaire::count());
$this->assertEquals(29, $this->_items->count());
}
......@@ -100,13 +104,10 @@ class NoticeIntegrationOrpheeSerialWithDoubleSearchNoneTest extends NoticeIntegr
}
/**
* @test
* @dataProvider numbers
*/
public function numberShouldHaveItsRecord($number) {
$key = 'GEO-UNNOUVEAUMONDELATER--' . $number . '-GEO-1979-2';
$this->assertNotNull(Class_Notice::findFirstBy(['clef_alpha' => $key]));
/** @test */
public function firstRecordClefAlphaShouldExpectation() {
$this->assertEquals('458',
Class_Exemplaire::find(1)->getSubfield(6));
}
......@@ -121,4 +122,46 @@ class NoticeIntegrationOrpheeSerialWithDoubleSearchNoneTest extends NoticeIntegr
return $item->getSubfield('6') == $number;
}));
}
}
class NoticeIntegrationOrpheeSerialInrockuptiblesTest extends NoticeIntegrationOrpheeTestCase {
public function setUp() {
parent::setUp();
$this->loadNotice('unimarc_inrocks');
}
/** @test */
public function numberOnRecordsWithTypeDocSerialShouldBeFourtyTwo() {
$this->assertEquals(42, Class_Notice::countBy(['type_doc' => Class_TypeDoc::PERIODIQUE]));
}
/** @test */
public function noPeriodicTitleShouldHaveBeenCreated() {
$this->assertEquals(0, Class_Notice::countBy(['type_doc' => Class_TypeDoc::PERIODIQUE_TITLE]));
}
/** @test */
public function numberOfItemsShouldBe42() {
$this->assertEquals(42, Class_Exemplaire::countBy([]));
}
/** @test */
public function firstSerialAlphaKeyShouldBeLESINROCKUPTIBLES___862_LESEDITIONSINDEPENDANTES__2() {
$this->assertEquals('LESINROCKUPTIBLES---862-LESEDITIONSINDEPENDANTES--2',
Class_Notice::findFirstBy(['type_doc' => Class_TypeDoc::PERIODIQUE])->getClefAlpha());
}
/** @test */
public function firstSerialHeadKeyShouldBeLESINROCKUPTIBLES___862_LESEDITIONSINDEPENDANTES__2() {
$this->assertEquals('INROCKUPTIBLES',
Class_Notice::findFirstBy(['type_doc' => Class_TypeDoc::PERIODIQUE])->getClefChapeau());
}
}
\ No newline at end of file
......@@ -88,7 +88,7 @@ abstract class NoticeIntegrationTestCase extends ModelTestCase {
VariableCache::getInstance()
->setValeurCache(['filtrer_fulltext' => 1,
'mode_doublon'=> 1,
'mode_doublon'=> Class_CosmoVar::DOUBLE_SEARCH_ALPHA_KEY,
'tracer_accents_iso'=>1,
'non_exportable'=> 'electre;decitre;gam;zebris',
'controle_codes_barres'=> 0,
......
......@@ -113,6 +113,13 @@ class PMBIntegrationRecordsSixSequencesTest extends PMBIntegrationRecordsTestCas
class PMBIntegrationSerialsTest extends PMBIntegrationRecordsTestCase {
public function getProfilDonnees() {
return Class_IntProfilDonnees::forPMB()
->setIdProfil(115)
->setAccents(Class_IntProfilDonnees::ENCODING_UTF8)
->getRawAttributes();
}
public function setUp() {
parent::setUp();
......@@ -121,22 +128,67 @@ class PMBIntegrationSerialsTest extends PMBIntegrationRecordsTestCase {
/** @test */
public function numberOfRecordsShouldBeFourtySix() {
$this->assertCount(46, Class_Notice::findAll());
public function numberOfRecordsShouldBeFourtySeven() {
$this->assertCount(47, Class_Notice::findAll());
}
/** @test */
public function numberOfRecordsTypeDoc2ShouldBeThree() {
$this->assertCount(3, Class_Notice::findAllBy(['type_doc' => 2]));
}
/** @test */
public function numberOfRecordsTypeDocPerArtShouldBeFourtyThree() {
$this->assertCount(43, Class_Notice::findAllBy(['type_doc' => 'per_art']));
}
/** @test */
public function numberOfRecordsTypeDocPerTitleShouldBeOne() {
$this->assertCount(1, Class_Notice::findAllBy(['type_doc' => 'per_title']));
}
/** @test */
public function firstRecordItemBarCodeShouldBeIdIntBibOneDashIdRecord21119() {
public function firstRecordTypePerArtItemBarCodeShouldBeIdIntBibOneDashIdRecord21119() {
$this->assertEquals('1-21119',
Class_Notice::find(1)->getFirstExemplaire()->getCodeBarres());
Class_Notice::findFirstBy(['type_doc' => 'per_art'])
->getFirstExemplaire()
->getCodeBarres());
}
/** @test */
public function firstRecordItemIdIntBibShouldBeOne() {
public function firstRecordType2ClefOeuvreShouldBeREVUEFRANCAISEDEPEDAGOGIE___N198() {
$this->assertEquals('REVUEFRANCAISEDEPEDAGOGIE---N198',
Class_Notice::findFirstBy(['type_doc' => 2])->getClefOeuvre());
}
/** @test */
public function firstRecordTypePerTitleItemBarCodeShouldBeIdIntBibOneDashIdRecord17165() {
$this->assertEquals('1-17165',
Class_Notice::findFirstBy(['type_doc' => 'per_title'])
->getFirstExemplaire()
->getCodeBarres());
}
/** @test */
public function firstRecordPertArtItemIdIntBibShouldBeOne() {
$this->assertEquals(1,
Class_Notice::find(1)->getFirstExemplaire()->getIdIntBib());
Class_Notice::findFirstBy(['type_doc' => 'per_art'])
->getFirstExemplaire()->getIdIntBib());
}
/** @test */
public function firstRecordPertArtClefChapeauShouldBeREVUE_FRANCAISE_DE_PEDAGOGIE_N198() {
$this->assertEquals('REVUE FRANCAISE DE PEDAGOGIE N 198',
Class_Notice::findFirstBy(['type_doc' => 'per_art'])
->getClefChapeau());
}
......@@ -169,8 +221,27 @@ class PMBIntegrationSerialsTest extends PMBIntegrationRecordsTestCase {
/** @test */
public function record21331ClefChapeauShouldBeREVUE_FR_60_BULL() {
$this->assertEquals('REVUE FRANCAISE DE PEDAGOGIE 60 BULL',
public function record21331ClefChapeauShouldBeREVUE_FR_200() {
$this->assertEquals('REVUE FRANCAISE DE PEDAGOGIE N 200',
Class_Exemplaire::findFirstBy(['code_barres' => '1-21331'])->getNotice()->getClefChapeau());
}
/** @test */
public function firstRecordType2TomeShouldBeN198() {
$this->assertEquals('N 198', Class_Notice::findFirstBy(['type_doc' => 2])->getTomeAlpha());
}
/** @test */
public function firstRecordType2HasSerieShouldBeTrue() {
$this->assertTrue(Class_Notice::findFirstBy(['type_doc' => 2])->hasSerie());
}
/** @test */
public function firstRecordType2TitreChapeauShouldBeRevueFrancaise() {
$this->assertEquals('Revue française de pédagogie',
Class_Notice::findFirstBy(['type_doc' => 2])->getTitreChapeau());
}
}
\ No newline at end of file
00885naa0a2200205 4500001000700000011001400007090001100021100004100032200004900073210001300122215001300135330015200148461006100300700002400361600003000385605001400415801003000429938019300459099002700652521225 a1241-7696 a521225 a20190507d2019 uu|y0frey5003 ba10aUlysse au bayoubArticlefDominique Aussenac d01/04/19 app.28-31 aPorté par un souffle épique, le quatrième roman de Lionel SalŁun nous transporte dans le Sud du Mississippi. Puissant, grinçant, haletant. 31808670tMatricule des anges (Le)v2029111511d01/04/19 aAussenacbDominique aSalaunbLionelf1959-.... aWhitesand 0aFRbIndexpressec20190507 a&rft.issn=1241-7696&rft.jtitle= Matricule des anges (Le)&rft.atitle=Ulysse au bayou&rft.aulast=Aussenac&rft.aufirst=Dominique&rft.date=01/04/19&rft.volume=202&rft.spage=pp.28&rft.epage=31 c2019-08-27d2019-08-28
\ No newline at end of file
02244naa0a2200253 4500001000700000011001400007090001100021100004100032200007900073210001300152215001300165330128600178461004301464700001901507605005901526969003101585969001801616969002401634606003701658600003201695801003001727938020601757099002701963521252 a0245-5676 a521252 a20190507d2019 uu|y0frey5003 ba10aKlaus Theweleit, égorger, puis éclater de rirebArticlefLaurent Perez d01/04/19 app.94-95 aParu en 1977-78, "Fantasmâlgories" de Klaus Theweleit a révolutionné la compréhension de la violence politique, en étudiant intimement l'imaginaire des membres des corps francs, ces milices d'extrême droite qui semèrent la terreur en Allemagne après la Première Guerre mondiale et préparèrent l'arrivée au pouvoir de Hitler. Prenant à contre-pied les interprétations traditionnelles fondées sur la critique idéologique et sociohistorique, le chercheur allemand y effectuait une lecture psychanalytique de la "structure corporelle" de ces jeunes hommes élevés dans la violence, passés par une rude discipline militaire, pathologiquement désarmés devant leur libido. "Le Rire des bourreaux" est le troisième livre de Theweleit à paraître en français, après "Un plus un", son essai sur le cinéma de Claude Lanzmann et Jean-Luc Godard (Théâtre Typographique, 2000), et "Fantasmâlgories" (l'Arche, 2016). L'auteur y applique ses théories aux meurtriers de masse actuels, d'extrême droite ou djihadistes, génocidaires rwandais ou enfants-soldats en Afrique. Il y cite abondamment les criminels eux-mêmes, les comptes rendus de leurs procès, les descriptions de leurs exactions - laissant le lecteur glacé d'horreur. 336001tArt Pressv465976692d01/04/19 aPerezbLaurent aLe Rire des bourreaux. Psychogramme du plaisir de tuer aCriminels et délinquants aDélinquants aCrimes et criminels aCriminelsxDans la littérature aTheweleitbKlausf1942-.... 0aFRbIndexpressec20190507 a&rft.issn=0245-5676&rft.jtitle=Art Press&rft.atitle=Klaus Theweleit, égorger, puis éclater de rire&rft.aulast=Perez&rft.aufirst=Laurent&rft.date=01/04/19&rft.volume=465&rft.spage=pp.94&rft.epage=95 c2019-08-27d2019-08-28
\ No newline at end of file
09156nas 2200613 450 001001500000100004100015101000800056106000600064110001600070200008900086210003900175995019600214995019800410995019800608995019800806995019601004995019601200995019801396995019801594995019801792995020001990995020002190995019602390995019802586995019802784995019602982995019803178995019803376995019803574995019603772995019803968995019604166995023404362995023504596995016404831995012304995995019805118995023005316995023205546995019805778995019805976995023206174995020006406995023406606995019606840995019807036995019807234995023407432995023407666995023407900995016208134995012308296995012308419frOr0472024727 a19950609a 0103  aFre aR aAcaz 1 aLes InrockuptiblesfChristian Fevret et Arnaud Deverre, directeurs de la publication 1aPariscLes Editions Independantes00a00106002036783b472024727cpd106g1h1i1l90212728o17/07/2012p14/09/2012q26/06/2012r13/07/2012t90212272u13792w9x12y2z1C06/06/2012D49F1G3H3NeS106T1U12V106W12Z22530686200a00106002051964b472024727cpd106g1h1i1l90374271o19/11/2013p06/12/2013q03/08/2013r13/09/2013t1314900380u13984w9x12y2z1C29/08/2012D49F1G6H6NeS106T1U12V106W12Z22530687400a00106002143399b472024727cpd106g1h1i1l1300500199o26/04/2014p09/05/2014q05/04/2014r26/04/2014t90374791u14672w9x12y2z1C26/06/2013D49F1G8H8NeS106T1U12V106W12Z22530691700a00106002149925b472024727cpd106g1h1i1l1300502091o08/03/2014p29/03/2014q21/02/2014r26/02/2014t90211439u14848w9x12y2z1C11/09/2013D49F1G7H7NeS106T1U12V106W12Z22530692800a00106002162100b472024727cpd106g1h1i1l69305134o09/11/2013p28/12/2013q19/10/2013r09/11/2013t90212770u14864w9x12y2z1C18/09/2013D49F1G4H4NeS106T1U12V106W12Z22530692900a00106002162845b472024727cpd106g1h1i1l90276282o28/06/2014p08/07/2014q21/12/2013r07/01/2014t90212770u14880w9x12y2z1C25/09/2013D10F1G6H6NeS106T1U12V106W12Z22530693000a00106002163579b472024727cpd106g1h1i1l1300500199o26/04/2014p09/05/2014q22/03/2014r28/03/2014t90212728u14896w9x12y2z1C02/10/2013D49F1G8H8NeS106T1U12V106W12Z22530693100a00106002166267b472024727cpd106g1h1i1l90212272o15/01/2014p05/02/2014q16/11/2013r10/01/2014t1101000393u14928w9x12y2z1C16/10/2013D49F1G3H3NeS106T1U12V106W12Z22530693300a00106002214646b472024727cpd106g1h1i1l1314903286o27/12/2013p14/01/2014q23/11/2013r21/12/2013t90538312u14944w9x12y2z1C23/10/2013D49F1G3H3NeS106T1U12V106W12Z22530693400a00106002217383b472024727cpd106g1h1i1l1300502091o08/03/2014p29/03/2014q11/02/2014r21/02/2014t1314903286u14992w9x12y2z1C13/11/2013D49F1G5H5NeS106T1U12V106W12Z22530693700a00106002218134b472024727cpd106g1h1i1l1314901497o17/05/2014p14/06/2014q17/01/2014r21/02/2014t1314903286u15008w9x12y2z1C20/11/2013D49F1G4H4NeS106T1U12V106W12Z22530693800a00106002220320b472024727cpd106g1h1i1l90212770o29/03/2014p12/04/2014q28/02/2014r25/03/2014t90212272u15024w9x12y2z1C27/11/2013D49F1G5H5NeS106T1U12V106W12Z22530693900a00106002220965b472024727cpd106g1h1i1l90212272o04/04/2014p15/04/2014q01/03/2014r29/03/2014t1314900237u15040w9x12y2z1C04/12/2013D49F1G5H5NeS106T1U12V106W12Z22530694000a00106002222722b472024727cpd106g1h1i1l1314903286o17/01/2014p21/03/2014q20/12/2013r15/01/2014t90212272u15056w9x12y2z1C11/12/2013D49F1G2H2NeS106T1U12V106W12Z22530694100a00106002223324b472024727cpd106g1h1i1l90538312o24/05/2014p12/07/2014q02/05/2014r24/05/2014t90538312u15072w9x12y2z1C18/12/2013D10F1G5H5NeS106T1U12V106W12Z22530694200a00106002225170b472024727cpd106g1h1i1l1314903286o02/04/2014p25/04/2014q04/03/2014r29/03/2014t90538312u15120w9x12y2z1C08/01/2014D49F1G4H4NeS106T1U12V106W12Z22530694500a00106002225808b472024727cpd106g1h1i1l1300501371o16/07/2014p06/08/2014q24/05/2014r12/07/2014t90538312u15136w9x12y2z1C15/01/2014D10F1G6H6NeS106T1U12V106W12Z22530694600a00106002229776b472024727cpd106g1h1i1l90276282o28/06/2014p02/08/2014q31/05/2014r18/06/2014t1300700415u15184w9x12y2z1C05/02/2014D10F1G5H5NeS106T1U12V106W12Z22530694900a00106002230063b472024727cpd106g1h1i1l90243241o25/04/2014p02/05/2014q29/03/2014r18/04/2014t90538312u15152w9x12y2z1C22/01/2014D49F1G6H6NeS106T1U12V106W12Z22530694700a00106002230519b472024727cpd106g1h1i1l90212272o16/05/2014p06/06/2014q22/03/2014r02/05/2014t1300701885u15200w9x12y2z1C12/02/2014D49F1G5H5NeS106T1U12V106W12Z22530695000a00106002233703b472024727cpd106g1h1i1l90211439o03/05/2014p21/05/2014q22/04/2014r03/05/2014t90212728u15216w9x12y2z1C19/02/2014D49F1G6H6NeS106T1U12V106W12Z22530695100a00106002253032b472024727cpd106g1h1i1k90212770l1300700415m08/08/2014n29/08/2014o18/06/2014p02/07/2014q24/05/2014r14/06/2014t1101000393u15280w9x12y2z2C19/03/2014D10F1G6H6NeS106T1U12V106W12Z22530695500a00106002255748b472024727cpd106g1h1i1k1314900907l1300701783m26/07/2014n06/09/2014o28/06/2014p26/07/2014q14/05/2014r06/06/2014t90212728u15328w9x12y2z2C09/04/2014D149F1G5H5NeS106T1U12V106W12Z22530695800a00106002266869b472024727cpd106g1h1i1l1300501371o16/07/2014p06/08/2014u15536w9x12y2z1C09/07/2014D10F1G1H1NeS106T1U12V106W12Z22530697100a00106002268006b472024727cpd106g1h1i1u15552w9x12y2z1C24/07/2014D149F1NeS106T1U12V106W12Z22530697200a00106002304835b472024727cpd106g1h1i1l1314900616o03/05/2014p17/05/2014q15/03/2014r03/05/2014t90211439u15232w9x12y2z1C26/02/2014D49F1G3H3NeS106T1U12V106W12Z22530695200a00106002306046b472024727cpd106g1h1i1k90276282l90212728m02/08/2014n23/08/2014o14/05/2014p21/05/2014q14/05/2014r14/05/2014t90211439u15248w9x12y2z2C05/03/2014D10F1G6H6NeS106T1U12V106W12Z22530695300a00106002306798b472024727cpd106g1h1i1k1314903544l90375025m09/08/2014n20/09/2014o23/04/2014p14/05/2014q28/03/2014r15/04/2014t90211439u15264w9x12y2z2C12/03/2014D10F1G4H4NeS106T1U12V106W12Z22530695400a00106002310329b472024727cpd106g1h1i1l69304817o17/05/2014p31/05/2014q22/04/2014r06/05/2014t1314903286u15296w9x12y2z1C26/03/2014D49F1G5H5NeS106T1U12V106W12Z22530695600a00106002310998b472024727cpd106g1h1i1l90276282o08/07/2014p02/08/2014q11/06/2014r02/07/2014t1314903678u15312w9x12y2z1C02/04/2014D10F1G5H5NeS106T1U12V106W12Z22530695700a00106002315351b472024727cpd106g1h1i1k90276282l1300800045m02/08/2014n23/08/2014o30/07/2014p30/07/2014q28/06/2014r19/07/2014t90212770u15344w9x12y2z2C16/04/2014D10F1G6H6NeS106T1U12V106W12Z22530695900a00106002318173b472024727cpd106g1h1i1l1300701783o28/06/2014p26/07/2014q06/06/2014r28/06/2014t1314902315u15392w9x12y2z1C07/05/2014D10F1G3H3NeS106T1U12V106W12Z22530696200a00106002318801b472024727cpd106g1h1i1k90276282l1300800045m02/08/2014n23/08/2014o30/07/2014p02/08/2014q30/07/2014r30/07/2014t1300800045u15408w9x12y2z2C14/05/2014D10F1G6H6NeS106T1U12V106W12Z22530696300a00106002319700b472024727cpd106g1h1i1l90243241o02/07/2014p15/07/2014q21/06/2014r02/07/2014t90212272u15424w9x12y2z1C21/05/2014D10F1G3H3NeS106T1U12V106W12Z22530696400a00106002321102b472024727cpd106g1h1i1l1300500199o08/07/2014p02/08/2014q13/06/2014r05/07/2014t90212728u15440w9x12y2z1C28/05/2014D10F1G3H3NeS106T1U12V106W12Z22530696500a00106002321631b472024727cpd106g1h1i1l1300500199o08/07/2014p02/08/2014q13/06/2014r05/07/2014t90212728u15456w9x12y2z1C04/06/2014D10F1G2H2NeS106T1U12V106W12Z22530696600a00106002322803b472024727cpd106g1h1i1k1314902295l1314903286m02/08/2014n23/08/2014o12/07/2014p01/08/2014q20/06/2014r11/07/2014t69305346u15472w9x12y2z2C11/06/2014D10F1G3H3NeS106T1U12V106W12Z22530696700a00106002323405b472024727cpd106g1h1i1k90276282l1300800045m02/08/2014n23/08/2014o30/07/2014p02/08/2014q28/06/2014r26/07/2014t1300701783u15488w9x12y2z2C18/06/2014D10F1G3H3NeS106T1U12V106W12Z22530696800a00106002324957b472024727cpd106g1h1i1k1314902295l1314903286m02/08/2014n23/08/2014o18/07/2014p01/08/2014q02/07/2014r15/07/2014t90243241u15504w9x12y2z2C25/06/2014D10F1G3H3NeS106T1U12V106W12Z22530696900a00106002325582b472024727cpd106g1h1i1k90212272m11/07/2014n01/08/2014u15520w9x12y2z2C02/07/2014D10F1G1H1NeS106T1U12V106W12Z22530697000a00106002329923b472024727cpd106g1h1i1u15568w9x12y2z1C23/07/2014D149F3NeS106T1U12V106W12Z22530697300a00106002332091b472024727cpd106g1h1i1u15616w9x12y1z1C13/08/2014D149F1NeS106T1U12V106W12Z225306976
\ No newline at end of file
00461oas2 22001331 4500001000700000011001400007035001900021090001100040100004100051200005000092210002700142461003600169995012200205494848 a0247-3739 aCHALLES-243248 a494848 a20180212 2016 frey50  aCette chimie qui nous empoisonne au quotidien d2016-06-01h2016-08-31 tAlternatives Economiquesv374N 10203052018-02-129493634bCHALLEScCHALLESeCHALLESETAGEfP-0085157313hPERi2018-02-12o0rPRETNORMALy2018-02-12
\ No newline at end of file
This diff is collapsed.
00237nas0a2200109 450000100030000001900070000303500160001009000070002610000410003320000250007480100280009966 c66 aCHY-1385600 a66 a20161219 frey50  afamille Dugroin (La) 0aFRb730656101c20110329
\ No newline at end of file
04099cum0a22006612 450000100070000000500170000701100140002403500150003809000110005310000410006410100080010511000160011320000950012921000320022446300540025646300580031046300550036846300530042346300550047646300560053146300570058746300510064446300530069546300560074846300510080446300550085546300610091046300660097146300550103746300530109246300570114546300510120270000390125380100220129280100220131480100220133699501340135899501260149299501080161899501080172699500840183499500840191899500960200299500840209899500840218299500840226699500960235099500840244699500840253099500840261499500840269899500960278299500840287899501080296299501260307099501220319699501190331833939920140515095001.0 a1294-9485 ablv-T70366 a339399 a20081230a20129999 u0frey5003 ba afre aafa 0xx011aIDEATeIdées-Design-Evasion-Architecture-Tendancefdirecteur de publication Laurent Blanc aPariscIDEAT Editionsd2008 0I140881tIDEAT : N ̊ 94 de juillet 2012vN ̊ 94 0I170270tIDEAT : N ̊ 105 de décembre 2013vN ̊ 105 0I131386tIDEAT : N ̊ 90 de février 2012vN ̊ 90 0I161952tIDEAT : N ̊ 101 de juin 2013vN ̊ 101 0I152297tIDEAT : N ̊ 98 de février 2013vN ̊ 98 0I162926tIDEAT : N ̊ 102 de juillet 2013vN ̊ 102 0I172339tIDEAT : N ̊ 106 de février 2014vN ̊ 106 0I133157tIDEAT : N ̊ 91 de mars 2012vN ̊ 91 0I173656tIDEAT : N ̊ 107 de mars 2014vN ̊ 107 0I144298tIDEAT : N ̊ 95 de septembre 2012vN ̊ 95 0I154599tIDEAT : N ̊ 99 de mars 2013vN ̊ 99 0I135465tIDEAT : N ̊ 92 d'avril-mai 2012vN ̊ 92 0I135466tIDEAT : HS n ̊ 92 d'avril-mai 2012vHS n ̊ 92 0I165190tIDEAT : N ̊ 103 de septembre-octobre 2013vN ̊ 103 0I147221tIDEAT : N ̊ 96 de novembre 2012vN ̊ 96 0I157482tIDEAT : N ̊ 100 d'avril 2013vN ̊ 100 0I167747tIDEAT : N ̊ 104 de novembre 2013vN ̊ 104 0I138052tIDEAT : N ̊ 93 de juin 2012vN ̊ 93 9384394aBlancbLaurent3874654651 1aFRbBLVc20081230 2aFRbBLVc20131127 3aFRbBLVc20140414 f058031484w2014-08-01609583830cBLV2052014-04-15n2014-08-298ARTSvN° 107 de mars 2014qADUo0eAJrREVm2014-08-0140bBLV f058031425w2014-06-17609583831cBLV2052014-04-158ARTSqADUo0vN° 106 de février 2014eAJrREVm2014-05-2440bBLV f20999w2014-07-11609583832cBLV2052014-04-15n2014-08-088ARTSqADUo0eAJrREVm2014-07-1140bBLV f20177w2014-04-26609583833cBLV2052014-04-15n2014-04-298ARTSqADUo0eAJrREVm2014-03-2940bBLV f20020w2014-04-15609583834cBLV2052014-04-158ARTSqADUo0eAJrREV40bBLV f19442w2014-04-15609583835cBLV2052014-04-158ARTSqADUo0eAJrREV40bBLV f18653w2014-07-12609583836cBLV2052014-04-158ARTSqADUo0eAJrREVm2014-06-1340bBLV f17991w2014-04-15609583837cBLV2052014-04-158ARTSqADUo0eAJrREV40bBLV f17550w2014-04-15609583838cBLV2052014-04-158ARTSqADUo0eAJrREV40bBLV f17042w2014-04-15609583839cBLV2052014-04-158ARTSqADUo0eAJrREV40bBLV f15860w2014-05-16609583840cBLV2052014-04-158ARTSqADUo4eAJrREVm2014-04-2541bBLV f15557w2014-04-15609583841cBLV2052014-04-158ARTSqADUo4eAJrREV41bBLV f16650w2014-04-15609583842cBLV2052014-04-158ARTSqADUo4eAJrREV41bBLV f16210w2014-04-15609583843cBLV2052014-04-158ARTSqADUo4eAJrREV41bBLV f16209w2014-04-15609583844cBLV2052014-04-158ARTSqADUo4eAJrREV41bBLV f21369w2014-05-24609583845cBLV2052014-04-158ARTSqADUo0eAJrREVm2014-05-1340bBLV f19041w2014-04-15609583846cBLV2052014-04-158ARTSqADUo0eAJrREV40bBLV f20558w2014-05-10609583847cBLV2052014-04-15n2014-05-138ARTSqADUo0eAJrREVm2014-04-1240bBLV f058031916w2014-08-05609586054cBLV2052014-05-158ARTSqADUo0vN° 108 d'avril-mai 2014eAJrREVm2014-07-1640bBLV f058031899w2014-08-01609587232cBLV2052014-05-228ARTSvN° 109 de juin 2014qADUo0eAJrREVm2014-07-1240bBLV f058032300w2014-07-02609592918cBLV2052014-07-028ARTSqADUo0vN° 110 de juillet-août 2014eAJrREV40bBLV
\ No newline at end of file
03400 2200229 45000010006000000100014000060710037000200730018000570900009000750910019000840990016001031000041001191010008001602000148001682100038003162150026003543000066003803300492004466100013009387000029009519702190009801258 d34.07 Eur bL.c.j. Editions Productionsa820 a3550460034185 a1258 a2b20140822c0 eVERLAYtDVD a20120910 frey50  afre aLa Pagaille fPascal Thomas, réal. et scén.gAgenore Incrocci, scén.gFrançois Périer, Patrick Chesnais, Remy Girard, Coralie Seyrig, act. cL.c.j. Editions Productionsd1991 a1 DVD (100 mn)ccoul. aPrêt + Consultation sur place coll. et Projection collective aMartin, séparé de sa femme Brigitte depuis 7 ans, vit avec Clément et Emilie ses deux enfants d'une vingtaine d'années, et Gabriel son beau père. Il a une relation régulière avec une jeune femme Patricia. Martin retrouve par hasard Brigitte et ils revivent un second grand amour, au grand dam de leurs proches, qui étaient tout à fait satisfaits de ce mode de vie "moderne". Pour échapper à ceux qui veulent les séparer, les époux préfèrent quitter le domicile familial... aComédie aThomasbPascal43704690 3http://catalogue.bnf.fr/ark:/12148/cb16745882m3http://catalogue.bnf.fr/ark:/12148/cb16745882m3http://catalogue.bnf.fr/ark:/12148/cb16745882m3http://catalogue.bnf.fr/ark:/12148/cb16745882m3http://catalogue.bnf.fr/ark:/12148/cb16745882m3http://catalogue.bnf.fr/ark:/12148/cb16745882m3http://catalogue.bnf.fr/ark:/12148/cb16745882m3http://catalogue.bnf.fr/ark:/12148/cb16745882m3http://catalogue.bnf.fr/ark:/12148/cb16745882m3http://catalogue.bnf.fr/ark:/12148/cb16745882m3http://catalogue.bnf.fr/ark:/12148/cb16745882m3http://catalogue.bnf.fr/ark:/12148/cb16745882m3http://catalogue.bnf.fr/ark:/12148/cb16745882m3http://catalogue.bnf.fr/ark:/12148/cb16745882m3http://catalogue.bnf.fr/ark:/12148/cb16745882m3http://catalogue.bnf.fr/ark:/12148/cb16745882m3http://catalogue.bnf.fr/ark:/12148/cb16745882m3http://catalogue.bnf.fr/ark:/12148/cb16745882m3http://catalogue.bnf.fr/ark:/12148/cb16745882m3http://catalogue.bnf.fr/ark:/12148/cb16745882m3http://catalogue.bnf.fr/ark:/12148/cb16745882m3http://catalogue.bnf.fr/ark:/12148/cb16745882m3http://catalogue.bnf.fr/ark:/12148/cb16745882m3http://catalogue.bnf.fr/ark:/12148/cb16745882m3http://catalogue.bnf.fr/ark:/12148/cb16745882m3http://catalogue.bnf.fr/ark:/12148/cb16745882m3http://catalogue.bnf.fr/ark:/12148/cb16745882m3http://catalogue.bnf.fr/ark:/12148/cb16745882m3http://catalogue.bnf.fr/ark:/12148/cb16745882m3http://catalogue.bnf.fr/ark:/12148/cb16745882m3http://catalogue.bnf.fr/ark:/12148/cb16745882m3http://catalogue.bnf.fr/ark:/12148/cb16745882m3http://catalogue.bnf.fr/ark:/12148/cb16745882m3http://catalogue.bnf.fr/ark:/12148/cb16745882m3http://catalogue.bnf.fr/ark:/12148/cb16745882m3http://catalogue.bnf.fr/ark:/12148/cb16745882m3http://catalogue.bnf.fr/ark:/12148/cb16745882m3http://catalogue.bnf.fr/ark:/12148/cb16745882m3http://catalogue.bnf.fr/ark:/12148/cb16745882m9746643http://catalogue.bnf.fr/ark:/12148/cb16745882maIncroccibAgenoref1919-20054690 13146571743http://ca 13139308153http://catalogue.bnf.f 1aPérier bFrançois4005 0aFRbCVSc20120822 fSTJ006212i34.07w2014-03-05300094077cMTRSTJ20kCo THO52012-12-07o0ecinema adultesddcrDVDm2014-02
\ No newline at end of file
04611 2200601 450000100060000001100240000603500160003009000100004610000410005610100130009710200070011020000270011721000520014421500160019630000210021232600120023367600370024570000550028270200470033780100240038490200550040890200260046391200110048911000160050060600390051685600400055595500670059595500640066209900340072699501560076099501390091699501350105599501540119099501440134499501330148899501480162199501440176999501340191399501310204799501480217899501310232699501350245799501310259299501440272399501450286799501430301299501440315599501550329999501290345499501660358399501280374999501320387776692 a0245-5676d6,50 EUR aCHY-0178511 a76692 a19940209a1980 u y0frey5003 ba0 afreaeng aFR1 aArt pressbPériodique aParisb2, rue Saint SimoncArt pressd1980 -... d29 cma0 p. aEdition bilingue aMensuel 9605201a700vBMCHY 1.1eBARBERAZ 19337808aMilletbCatherinef1948-....301908574300 19389262303155404710aJouannaisbJean-Yves 0aFRc19940209gAFNOR 9628187aRevues - Collection en cours et conservée 9628207aRevues - Arts aNA- 11 aafa||||0xx0 31308686aArtxPériodiques9531816 uhttps://www.artpress.com/zSite web rno 187, 1994 -...wno 194 (1994) ; no 389 et 394 (2011)aP 982 rHS15 (1994) ; HS18 (1997) ; HS19 (1998) ; HS6 (2003)aP 982 c2016-12-19d2019-07-11x18s1 10203052017-12-229434746bCHY-JRcCHY-JRe201fY1633432gAhPERi2017-12-22m2018-09-29o0p6.00rPRETNORMALvn°451, janvier 2018w4x1y2018-10-03 1020309436582bCHY-JRcCHY-JRe201fY1633034gAhPERi2018-01-24m2018-11-27o0rPRETNORMALvn°452, février 2018w3x1y2019-01-05 1020309497468bCHY-JRcCHY-JRe201fY1634180gAhPERi2018-02-21m2018-09-21o0rPRETNORMALvn°453, mars 2018w4x2y2018-09-27 10203052018-03-279500628bCHY-JRcCHY-JRe201fY1635994gAhPERi2018-03-27m2019-05-21o0p6.80rPRETNORMALvn°454, avril 2018w5x2y2019-06-22 10203052018-04-249503307bCHY-JRcCHY-JRe201fY1635603gAhPERi2018-04-24m2019-04-27o0rPRETNORMALvn° 455, mai 2018w5y2019-04-30 1020309505608bCHY-JRcCHY-JRe201fY1637958gAhPERi2018-05-23m2018-12-06o0rPRETNORMALvn° 456, juin 2018w4y2018-12-19 10203052018-06-269509406bCHY-JRcCHY-JRe201fY1637722gAhPERi2018-06-26m2018-09-21o0rPRETNORMALvn° 457, juillet 2018w2y2018-10-19 10203052018-08-309518978bCHY-JRcCHY-JRe201f1639220gAhPERi2018-08-30m2018-12-13o0rPRETNORMALvn°458, août 2018w3y2018-12-21 1020309521075bCHY-JRcCHY-JRe201f1640503gAhPERi2018-09-26m2018-11-22o0rPRETNORMALvn°459, octobre 2018w2y2018-12-14 10203052018-10-259524561bCHY-JRcCHY-JRe201f1642415gAhPERi2018-10-25o0rPRETNORMALvn°460, octobre 2018y2018-10-25 10203052018-11-289528769bCHY-JRcCHY-JRe201f1642098gAhPERi2018-11-28m2019-01-03o0rPRETNORMALvn°461, décembre 2018w1y2019-01-09 10203052018-12-279532040bCHY-JRcCHY-JRe201f1644385gAhPERi2018-12-27o0rPRETNORMALvn°462, janvier 2019y2018-12-27 10203052019-01-229534011bCHY-JRcCHY-JRe201f1644463gAhPERm2019-02-26o0rPRETNORMALvn°463, février 2019w1y2019-03-12 10203052019-02-269536905bCHY-JRcCHY-JRe201f1650193gAhPERm2019-04-23o0rPRETNORMALvn°464, mars 2019w1y2019-05-11 10203052019-03-289539774bCHY-JRcCHY-JRe201f1650367gAhPERi2019-03-28m2019-09-18o0rPRETNORMALvn°465, avril 2019w3y2019-09-25 10203052019-04-259542644bCHY-JRcCHY-JRe201f1651591gAhPERi2019-04-25m2019-08-20o0rPRETNORMALvn°466, mai 2019w2x1y2019-09-25 10203052019-05-289545024bCHY-JRcCHY-JRe201f1651851gAhPERi2019-05-28m2019-06-27o0rPRETNORMALvn°467, juin 2019w1y2019-07-10 10203052019-06-259547029bCHY-JRcCHY-JRe201f1652512gAhPERi2019-06-25m2019-08-30o0rPRETNORMALvn°468, juil. 2019w1y2019-09-18 10203052019-07-119548840bCHY-CAcCHY-CAe905fCHY-CA19070178hPERl+ 1 cahier Jeune créationo0rPRETNORMALvn°468, juil.-août 2019y2019-07-11 10203052019-08-239551529bCHY-JRcCHY-JRe201f1654010gAhPERi2019-08-23o0rPRETNORMALvn°469, sept. 2019y2019-08-23 10203052019-09-129553220bCHY-CAcCHY-CAe905fCHY-CA19095432hPERi2019-09-12o0rPRETNORMALuFrancis Bacon en toutes lettresvn°469, sept. 2019y2019-09-12 10203052019-09-259554439bCHY-JRcCHY-JRe201f1654428gAhPERi2019-09-25o0rPRETNORMALvn°470, oct. 2019y2019-09-25 10203052019-09-259554575bCHY-CAcCHY-CAe905fCHY-CA19095596hPERi2019-09-25o0rPRETNORMALvn°470, oct. 2019y2019-09-2505349nas0a2200625 4500001000700000011001400007035001600021090001100037099003500048100004100083101000800124102000700132110001600139200007900155207002300234210004100257215001000298326001500308606004800323676002700371801002800398856012700426912001100553999002800564902004100592902004300633995015600676995015700832995015300989995015401142995015201296995014701448995015001595995012801745995014401873995015702017995013902174995014502313995015302458995013402611995013502745995015102880995014903031995015403180995013403334995015003468995013903618995013403757995013403891995015204025995013304177995013404310995015004444995012904594111511 a1241-7696 aCHY-0532879 a11151100x156s1c2016-12-19d2017-02-16 a19990128a1992 m y0frey5003 ba0 afre aFR aaga||||0xu01 aMatricule des Anges (Le)bPériodiqueejournal d'informations littéraires 0aN°1 (1992, nov.)- aPariscLe Matricule des Angesd1992- d30 cm aBimestriel 953060731398379aLittératurexPériodiques 9605285a800vBMCHY 2.0 0aFRb730656101c19990128 3http://www.bm-chambery.fr/opacwebaloes/index.aspx?IdPage=706uhttp://www.bm-chambery.fr/opacwebaloes/index.aspx?IdPage=706 aNA- 11 30848103aPERcJRdLLgP 9628192aRevues - Collection en cours 962819330000000aRevues - Littérature 10203052017-03-239413740bCHY-JRcCHY-JRe101fY1624572gAhPERi2017-03-23m2018-09-08o0p6.00rPRETNORMALvn°179, janvier 2017w6x1y2018-10-05 10203052017-03-239413741bCHY-JRcCHY-JRe101fY1624576gAhPERi2017-03-23m2017-05-27o0p6.00rPRETNORMALvn°180, février 2017w3x1y2017-06-29 10203052017-03-239413742bCHY-JRcCHY-JRe101fY1624990gAhPERi2017-03-23m2017-08-05o0p6.00rPRETNORMALvn°181, mars 2017w5x1y2017-08-12 10203052017-04-149415987bCHY-JRcCHY-JRe101fY1625691gAhPERi2017-04-14m2018-06-16o0p6.00rPRETNORMALvn°182, avril 2017w7x2y2018-06-20 10203052017-05-179418756bCHY-JRcCHY-JRe101fY1626974gAhPERi2017-05-17m2018-07-11o0p6.00rPRETNORMALvn°183, mai 2017w6x1y2018-08-10 10203052017-06-159420630bCHY-JRcCHY-JRe101fY1626662gAhPERi2017-06-15m2018-03-20o0rPRETNORMALvn°184, juin 2017w4x1y2018-05-03 10203052017-07-139422423bCHY-JRcCHY-JRe101fY1628107gAhPERi2017-07-13m2019-05-04o0rPRETNORMALvn°185, juillet 2017w7x1y2019-05-22 1020309426187bCHY-JRcCHY-JRe101fY1629234gAhPERi2017-09-12o0p6.50rPRETNORMALvn°186, septembre 2017y2017-09-12 1020309428949bCHY-JRcCHY-JRe101fY1631236gAhPERi2017-10-18m2019-04-10o0p6.50rPRETNORMALvn°187, octobre 2017w5x1y2019-05-11 10203052017-11-249432178bCHY-JRcCHY-JRe101fY1631262gAhPERi2017-11-24m2018-06-16o0p6.00rPRETNORMALvn°188, novembre 2017w6x2y2018-06-20 1020309436163bCHY-JRcCHY-JRe101fY1633369gAhPERi2018-01-17m2019-04-17o0rPRETNORMALvn°189, janvier 2018w10x2y2019-05-10 1020309496827bCHY-JRcCHY-JRe101fY1634047gAhPERi2018-02-14m2019-04-16o0p6.50rPRETNORMALvn°190, février 2018w7x2y2019-05-15 1020309499597bCHY-JRcCHY-JRe101fY1634266gAhPERi2018-03-16m2019-09-21n2019-10-19o0p6.50rPRETNORMALvn°191, mars 2018w9x1y2019-09-21 1020309502278bCHY-JRcCHY-JRe101fY1635502gAhPERi2018-04-12m2018-09-08o0rPRETNORMALvn° 192, avril 2018w3y2018-10-05 1020309505029bCHY-JRcCHY-JRe101fY1635699gAhPERi2018-05-16m2018-12-08o0rPRETNORMALvn° 193, mai 2018w3x1y2019-03-01 10203052018-06-159508065bCHY-JRcCHY-JRe101fY1637687gAhPERi2018-06-15m2019-04-18o0p6.00rPRETNORMALvn° 194, juin 2018w4y2019-05-10 10203052018-07-129511258bCHY-JRcCHY-JRe101f1639209gAhPERi2018-07-12m2018-12-08o0rPRETNORMALvn°195, juillet 2018w5x1y2019-03-01 10203052018-09-079519629bCHY-JRcCHY-JRe101f1639451gAhPERi2018-09-07m2019-01-26o0p6.50rPRETNORMALvn°196, septembre 2018w5y2019-02-16 1020309522628bCHY-JRcCHY-JRe101f1640940gAhPERi2018-10-10m2019-01-25o0rPRETNORMALvn°197, octobre 2018w4y2019-02-13 1020309526795bCHY-JRcCHY-JRe101f1642370gAhPERi2018-11-15m2019-05-31n2019-07-30o0rPRETNORMALvn°198, novembre 2018w3x2y2019-05-31 1020309533438bCHY-JRcCHY-JRe101f1644275gAhPERi2019-01-15m2019-04-17o0rPRETNORMALvn°199, décembre 2018w4x1y2019-05-10 1020309535604bCHY-JRcCHY-JRe101f1644126gAhPERi2019-02-13m2019-06-05o0rPRETNORMALvn°200, janvier 2018w4y2019-07-03 1020309538434bCHY-JRcCHY-JRe101f1650212gAhPERi2019-03-14m2019-07-31o0rPRETNORMALvn°201, mars 2019w5x1y2019-09-06 10203052019-04-129541316bCHY-JRcCHY-JRe101f1651552gAhPERi2019-04-12m2019-06-27o0p6.50rPRETNORMALvn°202, avr. 2019w3x1y2019-07-19 1020309543822bCHY-JRcCHY-JRe101f1651905gAhPERi2019-05-14m2019-08-28o0rPRETNORMALvn°203, mai 2019w3x1y2019-09-28 1020309545881bCHY-JRcCHY-JRe101f1652807gAhPERi2019-06-11m2019-08-28o0rPRETNORMALvn°204, juin 2019w3x1y2019-09-28 10203052019-09-109548967bCHY-JRcCHY-JRe101f1652805gAhPERm2019-09-21n2019-10-19o0rPRETNORMALvn°205, juil.-août 2019w1y2019-09-21 10203052019-09-109552928bCHY-JRcCHY-JRe101f1654210gAhPERi2019-09-10o0rPRETNORMALvn°207, sept. 2019y2019-09-10
\ No newline at end of file
......@@ -38,6 +38,8 @@ class Class_CodifTypeDoc extends Storm_Model_Abstract {
'sections' => '',
'famille_id' => ''];
protected $_fixed_id = true;
protected static $_libelles = [self::INCONNU => 'Non identifié',
self::LIVRE => 'Livre',
self::PERIODIQUE => 'Périodique' ,
......@@ -46,6 +48,7 @@ class Class_CodifTypeDoc extends Storm_Model_Abstract {
self::LOGICIEL => 'Logiciel'];
public function getLibelle() {
return $this->_(static::$_libelles[$this->getFamilleId()]);
}
......
......@@ -271,13 +271,13 @@ class Class_Codification {
if ($notice->isDVD())
return $me->_('Voir tous les épisodes');
if (!$notice->isPeriodique())
return $me->_('Voir tous les tomes');
if ($notice->isFirstItemTypeSerialArticle())
return $me->_('Voir tous les articles de ce numéro');
return $me->_('Voir tous les numéros');
if ($notice->isPeriodique() || ($notice->getTypeDoc() == Class_TypeDoc::PERIODIQUE_TITLE))
return $me->_('Voir tous les numéros');
return $me->_('Voir tous les tomes');
};
......
......@@ -81,7 +81,7 @@ class Class_Cosmogramme_Integration_PhaseNotice
protected function _markItemsToBeDeleted($id_int_bib) {
$total = 0;
while( $items = Class_Exemplaire::findAllBy(['type' => Class_Notice::TYPE_BIBLIOGRAPHIC,
while( $items = Class_Exemplaire::findAllBy(['type not' => Class_Notice::TYPE_AUTHORITY,
'id_int_bib' => $id_int_bib,
'to_delete' => false,
'limit' => 1000])) {
......@@ -105,7 +105,7 @@ class Class_Cosmogramme_Integration_PhaseNotice
/** hooked called after the file has been fully processed */
protected function _afterFileProcessed($integration) {
$args = ['type' => Class_Notice::TYPE_BIBLIOGRAPHIC,
$args = ['type not' => Class_Notice::TYPE_AUTHORITY,
'id_int_bib' => $integration->getIdBib(),
'to_delete' => true];
......
......@@ -266,7 +266,7 @@ class Class_CriteresRecherche extends Class_CriteresRecherche_Abstract {
public function getTypeDoc() {
$digital_resource = Class_DigitalResource::getInstance();
$validator = function($type) use($digital_resource){
return $digital_resource->isPluginDocType($type) || is_numeric($type);
return null !== Class_TypeDoc::find($type);
};
return array_filter(explode(',',
$this->getParam('type_doc')),
......
......@@ -24,9 +24,9 @@ class Class_CriteresRecherche_Validator {
const
PATTERN_YEAR = '/^[0-9]{4}$/',
PATTERN_FACET = '/^[a-zA-Z0-9]+$/',
PATTERN_MULTIFACET = '/^[a-zA-Z0-9-]+$/',
PATTERN_MULTIFACET = '/^[a-zA-Z0-9-_]+$/',
PATTERN_MULTI_IDS = '/^[0-9,]+$/',
PATTERN_ALPHAMAJ = '/^[A-Z0-9- *]+$/';
PATTERN_ALPHA = '/^[a-zA-Z0-9-_ *]+$/';
public function isValid($key, $params) {
return $this->_validatorFor($key)->isValid($key, $params);
......@@ -57,7 +57,7 @@ class Class_CriteresRecherche_Validator {
static::PATTERN_FACET => ['rubrique', 'code_rebond'],
static::PATTERN_MULTIFACET => ['multifacets'],
static::PATTERN_MULTI_IDS => ['bib_select'],
static::PATTERN_ALPHAMAJ => ['serie']
static::PATTERN_ALPHA => ['serie']
];
foreach($map as $pattern => $names)
......
......@@ -129,11 +129,14 @@ class Class_Exemplaire extends Storm_Model_Abstract {
}
public function getPMBSerialRecord() {
public function getLinkedSerialRecord() {
//see Cosmogramme PMBIntegrationSerialsTest
$item = $this->getLoader()->findFirstBy(['id_origine' => $this->getSubfield('0'),
'id_int_bib' => $this->getIdIntBib()]);
return $item->getNotice();
if (!$id_origine = $this->getSubfield('0'))
return null;
$item = $this->getLoader()->findFirstBy(['id_origine' => $id_origine,
'id_int_bib' => $this->getIdIntBib(),]);
return $item ? $item->getNotice() : null;
}
......@@ -498,6 +501,10 @@ class Class_Exemplaire extends Storm_Model_Abstract {
|| (!$id_origine = $this->getSubfield($bundle_id_field)))
return null;
$bundle_id_field = $data_profile->getBundleIdField();
if (!$bundle_id = $this->getSubfield($bundle_id_field))
return null;
$bundle_item = Class_Exemplaire::getLoader()
->findFirstBy(['id_int_bib' => $id_int_bib,
'id_origine' => $id_origine]);
......
......@@ -114,6 +114,12 @@ class Class_Indexation {
}
public function serialCodeAlphaChapeau($titre, $tome) {
return $this->codeAlphaTitre($titre) . ' ' . $tome;
}
// Indexation d'un titre
public function codeAlphaTitre($titre)
{
......
......@@ -557,23 +557,24 @@ class Class_IntProfilDonnees extends Storm_Model_Abstract {
public static function forKoha() {
$type_doc = [['code' => '0', 'label' => '', 'zone_995' => 'IND' ],
['code' => '1', 'label' => 'am;na', 'zone_995' => 'LIV;LIVJ;LIVA;DOC;MANUEL' ],
['code' => '2', 'label' => 'as', 'zone_995' => 'REV;REVA;REVJ;'],
['code' => '3', 'label' => 'i;j', 'zone_995' => 'CD'],
['code' => '4', 'label' => 'g', 'zone_995' => 'DVD;JDVD;DVDA;DVDJ;VID'],
['code' => '5', 'label' => 'l;m', 'zone_995' => 'CDROM;CDR'],
['code' => '6', 'label' => '', 'zone_995' => 'LCD' ],
['code' => '7', 'label' => '', 'zone_995' => 'PAR;JPAR;' ],
['code' => '8', 'label' => '', 'zone_995' => ''],
['code' => '9', 'label' => '', 'zone_995' => ''],
['code' => '10', 'label' => ' ', 'zone_995' => ''],
['code' => '11', 'label' => '', 'zone_995' => 'JVID'],
['code' => '12', 'label' => '', 'zone_995' => 'MAT'],
['code' => '13', 'label' => 'km', 'zone_995' => 'EST'],
['code' => '14', 'label' => '', 'zone_995' => 'TLU'],
['code' => '15', 'label' => '', 'zone_995' => 'CAR'],
['code' => '16', 'label' => '', 'zone_995' => 'DIS']];
$type_doc = [['code' => '0', 'label' => '', 'zone_995' => 'IND' ],
['code' => '1', 'label' => 'am;na', 'zone_995' => 'LIV;LIVJ;LIVA;DOC;MANUEL' ],
['code' => '2', 'label' => 'as', 'zone_995' => 'REV;REVA;REVJ;'],
['code' => 'per_art','label' => 'aa', 'zone_995' => ''],
['code' => '3', 'label' => 'i;j', 'zone_995' => 'CD'],
['code' => '4', 'label' => 'g', 'zone_995' => 'DVD;JDVD;DVDA;DVDJ;VID'],
['code' => '5', 'label' => 'l;m', 'zone_995' => 'CDROM;CDR'],
['code' => '6', 'label' => '', 'zone_995' => 'LCD' ],
['code' => '7', 'label' => '', 'zone_995' => 'PAR;JPAR;' ],
['code' => '8', 'label' => '', 'zone_995' => ''],
['code' => '9', 'label' => '', 'zone_995' => ''],
['code' => '10', 'label' => ' ', 'zone_995' => ''],
['code' => '11', 'label' => '', 'zone_995' => 'JVID'],
['code' => '12', 'label' => '', 'zone_995' => 'MAT'],
['code' => '13', 'label' => 'km', 'zone_995' => 'EST'],
['code' => '14', 'label' => '', 'zone_995' => 'TLU'],
['code' => '15', 'label' => '', 'zone_995' => 'CAR'],
['code' => '16', 'label' => '', 'zone_995' => 'DIS']];
return self::newInstance(
['libelle' => 'Unimarc Koha',
......@@ -804,20 +805,22 @@ class Class_IntProfilDonnees extends Storm_Model_Abstract {
'format' => self::FORMAT_UNIMARC,
'attributs' =>
[['type_doc' =>
[[ 'code' => '0', 'label' => '', 'zone_995' => '' ],
[ 'code' => '1', 'label' => 'am;na', 'zone_995' => '' ],
[ 'code' => '2', 'label' => 'as;aa', 'zone_995' => ''],
[ 'code' => '3', 'label' => 'i;j', 'zone_995' => ''],
[ 'code' => '4', 'label' => 'g','zone_995' => ''],
[ 'code' => '5', 'label' => 'l;m', 'zone_995' => ''],
[ 'code' => '6', 'label' => '', 'zone_995' => '' ],
[ 'code' => '7', 'label' => '', 'zone_995' => '' ],
[ 'code' => '8', 'label' => '', 'zone_995' => ''],
[ 'code' => '9', 'label' => '', 'zone_995' => '']
[[ 'code' => '0', 'label' => '', 'zone_995' => '' ],
[ 'code' => '1', 'label' => 'am;na', 'zone_995' => '' ],
[ 'code' => '2', 'label' => '', 'zone_995' => '18'],
[ 'code' => '3', 'label' => 'i;j', 'zone_995' => ''],
[ 'code' => '4', 'label' => 'g', 'zone_995' => ''],
[ 'code' => '5', 'label' => 'l;m', 'zone_995' => ''],
[ 'code' => '6', 'label' => '', 'zone_995' => '' ],
[ 'code' => '7', 'label' => '', 'zone_995' => '' ],
[ 'code' => '8', 'label' => '', 'zone_995' => ''],
[ 'code' => '9', 'label' => '', 'zone_995' => ''],
['code' => 'per_art','label' => 'aa', 'zone_995' => ''],
['code' => 'per_title','label' => 'as', 'zone_995' => ''],
],
self::FIELD_ITEM_BARCODE => '996',
self::FIELD_ITEM_COTE => 'k',
self::FIELD_ITEM_TYPE_DOC => 'e',
self::FIELD_ITEM_TYPE_DOC => 'r',
self::FIELD_ITEM_GENRE => '',
self::FIELD_ITEM_SECTION => 'x',
self::FIELD_ITEM_EMPLACEMENT => '',
......@@ -929,9 +932,19 @@ class Class_IntProfilDonnees extends Storm_Model_Abstract {
public function setTypeDocRecognition($type_doc, $label, $zone_995) {
$config = unserialize($this->getAttributs());
$config[0]['type_doc'][$type_doc] = ['code' => $type_doc,
'label' => $label,
'zone_995' => $zone_995];
$entry = ['code' => $type_doc,
'label' => $label,
'zone_995' => $zone_995];
foreach($config[0][static::PROFILE_DOC_TYPES] as $index => $td) {
if ((string)$td['code'] == (string)$type_doc) {
$config[0][static::PROFILE_DOC_TYPES][$index] = $entry;
return $this->setAttributs($config);
}
}
$config[0][static::PROFILE_DOC_TYPES][] = $entry;
return $this->setAttributs($config);
}
......@@ -1023,7 +1036,10 @@ class Class_IntProfilDonnees extends Storm_Model_Abstract {
public function getFiletypeLabel() {
return $this->getLoader()->getFileTypes()[$this->getTypeFichier()];
$file_types = $this->getLoader()->getFileTypes();
return isset($file_types[$this->getTypeFichier()])
? $file_types[$this->getTypeFichier()]
: '';
}
......
......@@ -732,13 +732,18 @@ class Class_Notice extends Storm_Model_Abstract {
}