source: pmb4.2/trunk/fuentes/pmb/admin/import/func_epires.inc.php @ 815

Last change on this file since 815 was 815, checked in by jrpelegrina, 4 years ago

Initial release of pmb 4.2

  • Property svn:executable set to *
File size: 23.5 KB
Line 
1<?php
2// +-------------------------------------------------+
3// © 2002-2004 PMB Services / www.sigb.net pmb@sigb.net et contributeurs (voir www.sigb.net)
4// +-------------------------------------------------+
5// $Id: func_epires.inc.php,v 1.17.4.1 2015-09-22 12:47:36 mbertin Exp $
6
7// DEBUT paramétrage propre à la base de données d'importation :
8require_once($class_path."/serials.class.php");
9require_once($class_path."/thesaurus.class.php");
10require_once($class_path."/categories.class.php");
11require_once($class_path."/noeuds.class.php");
12
13function recup_noticeunimarc_suite($notice) {
14        global $info_464,$info_200,$info_676;
15        global $info_900,$info_901,$info_902,$info_903,$info_904,$info_910;
16        global $rs,$bl,$dt;
17       
18        $info_464="";
19        $info_900="";
20        $info_901="";
21        $info_902="";
22        $info_903="";
23        $info_904="";
24        $info_910="";
25        $info_200="";
26        $info_676="";
27       
28        $record = new iso2709_record($notice, AUTO_UPDATE);
29        $rs=$record->inner_guide["rs"]; 
30        $bl=$record->inner_guide["bl"];
31        $dt=$record->inner_guide["dt"];
32       
33        for ($i=0;$i<count($record->inner_directory);$i++) {
34                $cle=$record->inner_directory[$i]['label'];
35                switch($cle) {
36                        case "464":
37                                //C'est un périodique donc un dépouillement ou une notice objet
38                                $info_464=$record->get_subfield($cle,"t","v","p","d","z","e","u");
39                                break;
40                        case "200":
41                                $info_200=$record->get_subfield($cle,"a");
42                        default:
43                                break;
44       
45                } /* end of switch */
46       
47        } /* end of for */
48       
49        $info_900=$record->get_subfield("900","a");
50        $info_901=$record->get_subfield("901","a");
51        $info_902=$record->get_subfield("902","a");
52        $info_903=$record->get_subfield("903","a");
53        $info_910=$record->get_subfield("910","a");
54        $info_904=$record->get_subfield_array_array("904","a");
55        $info_676=$record->get_subfield("676","a");
56       
57} // fin recup_noticeunimarc_suite = fin récupération des variables propres à la bretagne
58
59//trouve un champ perso et renvoi so id
60function trouve_champ_perso($nom) {
61        $rqt = "SELECT idchamp FROM notices_custom WHERE name='" . addslashes($nom) . "'";
62        $res = pmb_mysql_query($rqt);
63       
64        if (pmb_mysql_num_rows($res)>0)
65                return pmb_mysql_result($res,0);
66        else
67                return 0;
68}
69
70//trouve le thesaurus avec le code et renvoi son id
71function trouve_thesaurus($code) {
72        $rqt = "SELECT num_thesaurus FROM noeuds WHERE autorite='" . $code . "'";
73        $res = pmb_mysql_query($rqt);
74       
75        if (pmb_mysql_num_rows($res)>0)
76                return pmb_mysql_result($res,0);
77        else
78                return 0;
79}
80
81function import_new_notice_suite() {
82        global $dbh ;
83        global $notice_id ;
84       
85        global $info_464,$info_676 ;
86        global $info_606_a,$info_606_x;
87        global $info_900,$info_901,$info_902, $info_200,$info_903,$info_904,$info_910;
88        global $rs,$bl,$dt;
89        global $bulletin_ex;
90        global $m_thess;
91       
92        //si on est en multi-thesaurus
93        if (!$m_thess) {
94                $rqt = "SELECT count(1) FROM thesaurus WHERE active=1";
95                $m_thess = pmb_mysql_result(pmb_mysql_query($rqt),0,0);
96        }
97       
98        //Cas des périodiques
99        if (is_array($info_464) && trim($info_464[0]['t'])) {
100                $requete="SELECT * FROM notices WHERE notice_id=$notice_id";
101                $resultat=pmb_mysql_query($requete);
102                $r=pmb_mysql_fetch_object($resultat);
103                //Notice chapeau existe-t-elle ?
104                $requete="SELECT notice_id FROM notices WHERE tit1='".addslashes($info_464[0]['t'])."' and niveau_hierar='1' and niveau_biblio='s'";
105                $resultat=pmb_mysql_query($requete);
106                if (@pmb_mysql_num_rows($resultat)) {
107                        //Si oui, récupération id
108                        $chapeau_id=pmb_mysql_result($resultat,0,0);
109                       
110                        //Mise à jour du champ commentaire de gestion si nécessaire
111                        if ($info_903[0]) {
112                                $requete="UPDATE notices SET commentaire_gestion=concat(commentaire_gestion,' ','".addslashes($info_903[0])."') WHERE notice_id=$chapeau_id";
113                                pmb_mysql_query($requete);
114                        }
115
116                        //Bulletin existe-t-il ?
117                        $requete="SELECT bulletin_id FROM bulletins WHERE bulletin_numero='".addslashes($info_464[0]['v'])."' AND mention_date='".addslashes($info_464[0]['d'])."' AND bulletin_notice=$chapeau_id";   
118                        $resultat=pmb_mysql_query($requete);
119                        if (@pmb_mysql_num_rows($resultat)) {
120                                //Si oui, récupération id bulletin
121                                $bulletin_id=pmb_mysql_result($resultat,0,0);   
122                        } else {
123                                //Si non, création bulletin
124                                $info=array();
125                                $bulletin=new bulletinage("",$chapeau_id);
126                                if ($info_464[0]['u']) 
127                                        $info['bul_titre'] = addslashes($info_464[0]['u']);
128                                else $info['bul_titre'] = addslashes("Bulletin ".$info_464[0]['v']);
129                               
130                                $info['bul_no'] = addslashes($info_464[0]['v']);
131                                $info['bul_date'] = addslashes($info_464[0]['d']);
132                                if (!$info_464[0]['e']) {
133                                        if ($info_902[0])
134                                                $info['date_date']=$info_902[0];
135                                } else
136                                        $info['date_date']=$info_464[0]['e'];
137                                $bulletin_id=$bulletin->update($info);
138                        }
139                } else {
140                        //Si non, création notice chapeau et bulletin
141                        $chapeau=new serial();
142                        $info=array();
143                        $info['tit1']=addslashes($info_464[0]['t']);
144                        $info['niveau_biblio']='s';
145                        $info['niveau_hierar']='1';
146                        $info['typdoc']=$r->typdoc;
147
148                        $chapeau->update($info);
149                        $chapeau_id=$chapeau->serial_id;
150
151                        //Mise à jour du champ commentaire de gestion si nécessaire
152                        if ($info_903[0]) {
153                                $requete="UPDATE notices SET commentaire_gestion=concat(commentaire_gestion,' ','".addslashes($info_903[0])."') WHERE notice_id=$chapeau_id";
154                                pmb_mysql_query($requete);
155                        }
156                       
157                        $bulletin=new bulletinage("",$chapeau_id);
158                        $info=array();
159                        if ($info_464[0]['u'])
160                                $info['bul_titre']=addslashes($info_464[0]['u']);
161                        else $info['bul_titre']=addslashes("Bulletin ".$info_464[0]['v']);
162
163                        $info['bul_no']=addslashes($info_464[0]['v']);
164                        $info['bul_date']=addslashes($info_464[0]['d']);
165                        if (!$info_464[0]['e']) {
166                                if ($info_902[0])
167                                        $info['date_date']=$info_902[0];
168                        } else
169                                $info['date_date']=$info_464[0]['e'];
170                        $bulletin_id=$bulletin->update($info);
171                }
172               
173                //Passage de la notice en article
174                $requete="UPDATE notices SET niveau_biblio='a', niveau_hierar='2', npages='".addslashes($info_464[0]['p'])."' WHERE notice_id=$notice_id";
175                pmb_mysql_query($requete);
176                $requete="INSERT INTO analysis (analysis_bulletin,analysis_notice) VALUES($bulletin_id,$notice_id)";
177                pmb_mysql_query($requete);
178                $bulletin_ex=$bulletin_id;
179        } else 
180                $bulletin_ex=0;
181               
182
183        //Traitement du thésaurus
184        if ($m_thess>1) {
185                //on est en multi-thesaurus
186                for ($i=0; $i<count($info_606_a); $i++) {
187                        for ($j=0; $j<count($info_606_a[$i]); $j++) {
188                                $descripteur_tete=$info_606_a[$i][$j];
189                                $descripteur_fils=$info_606_x[$i][$j];
190                               
191                                //Recherche du thésaurus
192                                $thes_id=trouve_thesaurus($descripteur_tete);
193                                //Recherche du terme fils
194                                if ($thes_id>0) {
195                                        $categ_id_fils=categories::searchLibelle(addslashes(trim($descripteur_fils)),$thes_id,"fr_FR");
196                                        if (!$categ_id_fils) {
197                                                //Création
198                                                $new_thes=$thes_id==1?4:$thes_id;       //Choix du thesaurus Candidats descripteurs si descripteur inexistant
199                                                $categ_id_fils=categories::searchLibelle(addslashes(trim($descripteur_fils)),$new_thes,"fr_FR");
200                                                if (!$categ_id_fils) {
201                                                        $noeud=new noeuds();
202                                                        $noeud->num_thesaurus=($new_thes);
203                                                        $thesau=new thesaurus($new_thes);
204                                                        $noeud->num_parent=$thesau->num_noeud_racine;
205                                                        $noeud->save();
206                                                        $categ_id_fils=$noeud->id_noeud;
207                                                        //Création du libellé
208                                                        $categ=new categories($noeud->id_noeud,'fr_FR');
209                                                        $categ->libelle_categorie=$descripteur_fils;
210                                                        $categ->index_categorie=" ".strip_empty_words($descripteur_fils)." ";
211                                                        $categ->save();
212                                                }
213                                        }
214                                        $requete="INSERT INTO notices_categories (notcateg_notice, num_noeud, ordre_categorie) VALUES ($notice_id,$categ_id_fils, ".($i+1).")";
215                                        pmb_mysql_query($requete);
216                                }
217                        }
218                } //for($i
219        } else {
220                //Traitement du thésaurus unique
221                for ($i=0; $i<count($info_606_a); $i++) {
222                        for ($j=0; $j<count($info_606_a[$i]); $j++) {
223                                $descripteur_tete=$info_606_a[$i][$j];
224                                $descripteur_fils=$info_606_x[$i][$j];
225                       
226                                //Recherche du terme de tête
227                                //$requete="SELECT num_noeud FROM categories WHERE libelle_categorie='".addslashes($descripteur_tete)."' AND langue='fr_FR'";
228                                $requete="SELECT id_noeud FROM noeuds WHERE autorite='".addslashes($descripteur_tete)."'";
229                                $resultat=pmb_mysql_query($requete);
230                                if (@pmb_mysql_num_rows($resultat)) {
231                                        //la tête existe !
232                                        $categ_id_tete=pmb_mysql_result($resultat,0,0);
233                                } else {
234                                        //Création de la tête
235                                        //Nouveau Noeud !
236                                        $th=new thesaurus(1);
237                                        $noeud=new noeuds();
238                                        $noeud->num_thesaurus=$th->id_thesaurus;
239                                        $noeud->num_parent=$th->num_noeud_racine;
240                                        $noeud->autorite=$descripteur_tete;
241                                        $noeud->save();
242                                        $categ_id_tete=$noeud->id_noeud;
243                                        //Création du libellé
244                                        $categ=new categories($noeud->id_noeud,'fr_FR');
245                                        $categ->libelle_categorie=$descripteur_tete;
246                                        $categ->index_categorie=" ".strip_empty_words($descripteur_tete)." ";
247                                        $categ->save();
248                                }
249                                //Recherche du terme fils
250                                $categ_id_fils=categories::searchLibelle(addslashes($descripteur_fils),1,"fr_FR");
251                                if (!$categ_id_fils) {
252                                        //Création
253                                        $noeud=new noeuds();
254                                        $noeud->num_thesaurus=1;
255                                        $noeud->num_parent=$categ_id_tete;
256                                        $noeud->save();
257                                        $categ_id_fils=$noeud->id_noeud;
258                                        //Création du libellé
259                                        $categ=new categories($noeud->id_noeud,'fr_FR');
260                                        $categ->libelle_categorie=$descripteur_fils;
261                                        $categ->index_categorie=" ".strip_empty_words($descripteur_fils)." ";
262                                        $categ->save();
263                                }
264                                $requete="INSERT INTO notices_categories (notcateg_notice, num_noeud, ordre_categorie) VALUES ($notice_id, $categ_id_fils, ".($i+1).")";
265                                pmb_mysql_query($requete);
266                        }
267                }
268        }
269       
270        //Indexation décimale
271        if ($info_676[0]) {
272                $requete="select indexint_id from indexint where indexint_name='".addslashes($info_676[0])."'";
273                $resultat=pmb_mysql_query($requete);
274                if (pmb_mysql_num_rows($resultat)) {
275                        $indexint=pmb_mysql_result($resultat,0,0);
276                } else {
277                        $requete="insert into indexint (indexint_name) values('".addslashes($info_676[0])."')";
278                        pmb_mysql_query($requete);
279                        $indexint=pmb_mysql_insert_id();
280                }
281                $requete="update notices set indexint=".$indexint." where notice_id=".$notice_id;
282                pmb_mysql_query($requete);
283        }       
284       
285        //Organisme
286        if ($info_900[0]) {
287                $no_champ = trouve_champ_perso("op");
288                if ($no_champ>0) {
289                        $requete="SELECT max(notices_custom_list_value*1) FROM notices_custom_lists WHERE notices_custom_champ=".$no_champ;
290                        $resultat=pmb_mysql_query($requete);
291                        $max=@pmb_mysql_result($resultat,0,0);
292                        $n=$max+1;
293                        $requete="SELECT notices_custom_list_value FROM notices_custom_lists WHERE notices_custom_list_lib='".addslashes($info_900[0])."' AND notices_custom_champ=".$no_champ;
294                        $resultat=pmb_mysql_query($requete);
295                        if (pmb_mysql_num_rows($resultat)) {
296                                $value=pmb_mysql_result($resultat,0,0);
297                        } else {
298                                $requete="INSERT INTO notices_custom_lists (notices_custom_champ,notices_custom_list_value,notices_custom_list_lib) VALUES($no_champ,$n,'".addslashes($info_900[0])."')";
299                                pmb_mysql_query($requete);
300                                $value=$n;
301                                $n++;
302                        }
303                        $requete="INSERT INTO notices_custom_values (notices_custom_champ,notices_custom_origine,notices_custom_integer) VALUES($no_champ,$notice_id,$value)";
304                        pmb_mysql_query($requete);
305                }
306        }
307       
308        //Genre
309        if ($info_901[0]) {
310                $no_champ = trouve_champ_perso("gen");
311                if ($no_champ>0) {
312                        $requete="SELECT max(notices_custom_list_value*1) FROM notices_custom_lists WHERE notices_custom_champ=".$no_champ;
313                        $resultat=pmb_mysql_query($requete);
314                        $max=@pmb_mysql_result($resultat,0,0);
315                        $n=$max+1;
316                        $requete="SELECT notices_custom_list_value FROM notices_custom_lists WHERE notices_custom_list_lib='".addslashes($info_901[0])."' AND notices_custom_champ=".$no_champ;
317                        $resultat=pmb_mysql_query($requete);
318                        if (pmb_mysql_num_rows($resultat)) {
319                                $value=pmb_mysql_result($resultat,0,0);
320                        } else {
321                                $requete="INSERT INTO notices_custom_lists (notices_custom_champ,notices_custom_list_value,notices_custom_list_lib) VALUES($no_champ,$n,'".addslashes($info_901[0])."')";
322                                pmb_mysql_query($requete);
323                                $value=$n;
324                                $n++;
325                        }
326                        $requete="INSERT INTO notices_custom_values (notices_custom_champ,notices_custom_origine,notices_custom_integer) VALUES($no_champ,$notice_id,$value)";
327                        pmb_mysql_query($requete);
328                }
329        }
330
331        //Type de texte
332        if (count($info_904)) {
333                $no_champ = trouve_champ_perso("typtext");
334                if ($no_champ>0) {
335                        for ($i=0; $i<count($info_904); $i++) {
336                                for ($j=0; $j<count($info_904[$i]); $j++) {
337                                        $requete="SELECT max(notices_custom_list_value*1) FROM notices_custom_lists WHERE notices_custom_champ=".$no_champ;
338                                        $resultat=pmb_mysql_query($requete);
339                                        $max=@pmb_mysql_result($resultat,0,0);
340                                        $n=$max+1;
341                                        $requete="SELECT notices_custom_list_value FROM notices_custom_lists WHERE notices_custom_list_lib='".addslashes($info_904[$i][$j])."' AND notices_custom_champ=".$no_champ;
342                                        $resultat=pmb_mysql_query($requete);
343                                        if (pmb_mysql_num_rows($resultat)) {
344                                                $value=pmb_mysql_result($resultat,0,0);
345                                        } else {
346                                                $requete="INSERT INTO notices_custom_lists (notices_custom_champ,notices_custom_list_value,notices_custom_list_lib) VALUES($no_champ,$n,'".addslashes($info_904[$i][$j])."')";
347                                                pmb_mysql_query($requete);
348                                                $value=$n;
349                                                $n++;
350                                        }
351                                        $requete="INSERT INTO notices_custom_values (notices_custom_champ,notices_custom_origine,notices_custom_integer) VALUES($no_champ,$notice_id,$value)";
352                                        pmb_mysql_query($requete);
353                                }
354                        }
355                }
356        }
357       
358        //Date de saisie
359        if ($info_902[0]) {
360                $no_champ = trouve_champ_perso("ds");
361                if ($no_champ>0) {
362                        $requete="INSERT INTO notices_custom_values (notices_custom_champ,notices_custom_origine,notices_custom_date) VALUES($no_champ,$notice_id,'".str_replace(".","-",$info_902[0])."')";
363                        pmb_mysql_query($requete);
364                }
365        }
366       
367        //N° de lot
368        if ($info_903[0]) {
369                $requete="UPDATE notices SET commentaire_gestion='".addslashes($info_903[0])."' WHERE notice_id=$notice_id";
370                pmb_mysql_query($requete);
371        }
372       
373        //Cas de la mise à jour des périodiques ou du champ bord (notices chapeau)
374        if ($bl=="s") {
375                //Si c'est un périodique
376                if ($dt=="a") {
377                        //Passage de la notice en notice chapeau
378                        $requete="UPDATE notices SET niveau_biblio='s', niveau_hierar='1' WHERE notice_id=$notice_id";
379                        pmb_mysql_query($requete);
380                        //Recherche si la notice existe déjà par rapport au titre
381                        $requete="select notice_id FROM notices WHERE ucase(tit1)='".addslashes(strtoupper($info_200[0]))."' AND niveau_biblio='s' AND niveau_hierar='1' AND notice_id!=$notice_id";
382                        $resultat=pmb_mysql_query($requete);
383                        $update=false;
384                        if (pmb_mysql_num_rows($resultat)) {
385                                $update=true;
386                                $n_update=pmb_mysql_result($resultat,0,0);
387                                //Mise à jour de tous les bulletins
388                                $requete="UPDATE bulletins SET bulletin_notice=".$notice_id." WHERE bulletin_notice=".$n_update;
389                                pmb_mysql_query($requete);
390                                //Suppression de l'ancienne notice
391                                $requete="DELETE FROM notices WHERE notice_id=$n_update";
392                                pmb_mysql_query($requete);
393                                $requete="DELETE FROM notices_categories WHERE notcateg_notice=".$n_update;
394                                pmb_mysql_query($requete);
395                                $requete="DELETE FROM notices_custom_values WHERE notices_custom_origine=".$n_update;
396                                pmb_mysql_query($requete);
397                                $requete="DELETE FROM responsability WHERE responsability_author=".$n_update;
398                                pmb_mysql_query($requete);
399                        }
400                       
401                        if ((!$update)&&($rs!="n")) {
402                                //Si il n'y a pas de création, on supprime la notice
403                                $requete="DELETE FROM notices WHERE notice_id=$notice_id";
404                                pmb_mysql_query($requete);
405                                $requete="DELETE FROM notices_categories WHERE notcateg_notice=".$notice_id;
406                                pmb_mysql_query($requete);
407                                $requete="DELETE FROM notices_custom_values WHERE notices_custom_origine=".$notice_id;
408                                pmb_mysql_query($requete);
409                                $requete="DELETE FROM responsability WHERE responsability_author=".$notice_id;
410                                pmb_mysql_query($requete);
411                        }
412                } else if ($dt=="l") {
413                        //Recherche si la notice existe déjà par rapport au titre
414                        $requete="select notice_id FROM notices WHERE ucase(tit1)='".addslashes(strtoupper($info_200[0]))."' AND typdoc='l' AND notice_id!=$notice_id";
415                        $resultat=pmb_mysql_query($requete);
416                        $update=false;
417                        if (pmb_mysql_num_rows($resultat)) {
418                                $update=true;
419                                $n_update=pmb_mysql_result($resultat,0,0);
420                                //Suppression de l'ancienne notice
421                                $requete="DELETE FROM notices WHERE notice_id=$n_update";
422                                pmb_mysql_query($requete);
423                                $requete="DELETE FROM notices_categories WHERE notcateg_notice=".$n_update;
424                                pmb_mysql_query($requete);
425                                $requete="DELETE FROM notices_custom_values WHERE notices_custom_origine=".$n_update;
426                                pmb_mysql_query($requete);
427                                $requete="DELETE FROM responsability WHERE responsability_author=".$n_update;
428                                pmb_mysql_query($requete);
429                        }
430                } else if ($dt=="r") {
431                        //Mise à jour du champ bord
432                        if ($info_910[0]) {
433                                $no_champ = trouve_champ_perso("bord");
434                                if ($no_champ>0) {
435                                        //Recherche si la notice existe déjà par rapport au titre
436                                        $requete="SELECT notice_id FROM notices WHERE ucase(tit1)='".addslashes(strtoupper($info_200[0]))."' AND niveau_biblio='s' AND niveau_hierar='1' AND notice_id!=$notice_id";
437                                        $resultat=pmb_mysql_query($requete);
438                                        if (pmb_mysql_num_rows($resultat)) {
439                                                $notice_update=pmb_mysql_result($resultat,0,0);
440                                                $requete="UPDATE notices_custom_values SET notices_custom_text='".addslashes(str_replace("##","\n",$info_910[0]))."' WHERE notices_custom_champ=$no_champ AND notices_custom_origine=".$notice_update;
441                                                pmb_mysql_query($requete);
442                                                if (!pmb_mysql_affected_rows()) {
443                                                        $requete="INSERT INTO notices_custom_values (notices_custom_champ,notices_custom_origine,notices_custom_text) VALUES($no_champ,$notice_update,'".addslashes(str_replace("##","\n",$info_910[0]))."')";
444                                                        pmb_mysql_query($requete);
445                                                }
446                                        }
447                                }
448                        }
449                        //Suppression de la nouvelle notice
450                        $requete="DELETE FROM notices WHERE notice_id=".$notice_id;
451                        pmb_mysql_query($requete);
452                }
453        }
454       
455} // fin import_new_notice_suite
456                       
457// TRAITEMENT DES EXEMPLAIRES ICI
458function traite_exemplaires () {
459        global $msg, $dbh ;
460       
461        global $prix, $notice_id, $info_995, $typdoc_995, $tdoc_codage, $book_lender_id, 
462                $section_995, $sdoc_codage, $book_statut_id, $locdoc_codage, $codstatdoc_995, $statisdoc_codage,
463                $cote_mandatory ;
464       
465        global $bulletin_ex;
466               
467        // lu en 010$d de la notice
468        $price = $prix[0];
469       
470        // la zone 995 est répétable
471        for ($nb_expl = 0; $nb_expl < sizeof ($info_995); $nb_expl++) {
472                /* RAZ expl */
473                $expl = array();
474               
475                /* préparation du tableau à passer à la méthode */
476                $expl['cb']         = $info_995[$nb_expl]['f'];
477                $unique=false;
478                $cb=$expl['cb'];
479                $cb1=$cb;
480                $n_cb=2;
481                while (!$unique) {
482                        $requete="select 1 from exemplaires where expl_cb='".addslashes($cb1)."'";
483                        $resultat=pmb_mysql_query($requete);
484                        if (pmb_mysql_num_rows($resultat)) {
485                                $cb1=$cb." ".$n_cb;
486                                $n_cb++;
487                        } else $unique=true;
488                }
489                $expl['cb']=$cb1;
490                if ($bulletin_ex) {
491                        $expl['bulletin']=$bulletin_ex;
492                        $expl['notice']=0;
493                } else {
494                        $expl['notice']     = $notice_id ;
495                        $expl['bulletin']=0;
496                }
497                // $expl['typdoc']     = $info_995[$nb_expl]['r']; à chercher dans docs_typdoc
498                $data_doc=array();
499                //$data_doc['tdoc_libelle'] = $info_995[$nb_expl]['r']." -Type doc importé (".$book_lender_id.")";
500                //$data_doc['tdoc_libelle'] = $typdoc_995[$info_995[$nb_expl]['r']];
501                //if (!$data_doc['tdoc_libelle']) $data_doc['tdoc_libelle'] = "\$r non conforme -".$info_995[$nb_expl]['r']."-" ;
502                $data_doc['duree_pret'] = 0 ; /* valeur par défaut */
503                $data_doc['tdoc_codage_import'] = $info_995[$nb_expl]['r'] ;
504                $data_doc['tdoc_libelle']=$info_995[$nb_expl]['r'] ;
505                if ($tdoc_codage) $data_doc['tdoc_owner'] = $book_lender_id ;
506                        else $data_doc['tdoc_owner'] = 0 ;
507                $expl['typdoc'] = docs_type::import($data_doc);
508               
509                $expl['cote'] = $info_995[$nb_expl]['k'];
510         
511        if (!trim($expl['cote'])) $expl['cote']="SC";
512                       
513                // $expl['section']    = $info_995[$nb_expl]['q']; à chercher dans docs_section
514                $data_doc=array();
515                if (!$info_995[$nb_expl]['t']) 
516                        $info_995[$nb_expl]['t'] = "inconnu";
517                $data_doc['section_libelle'] = $info_995[$nb_expl]['t'] ;
518                $data_doc['sdoc_codage_import'] = $info_995[$nb_expl]['t'] ;
519                if ($sdoc_codage) $data_doc['sdoc_owner'] = $book_lender_id ;
520                        else $data_doc['sdoc_owner'] = 0 ;
521                $expl['section'] = docs_section::import($data_doc);
522               
523                $expl['statut'] = $book_statut_id;
524               
525                // $expl['location']   = $info_995[$nb_expl]['']; à fixer par combo_box
526                // figé dans le code ici pour l'instant :
527                //$info_995[$nb_expl]['localisation']="Bib princip"; /* biblio principale */
528                $data_doc=array();
529                $data_doc['location_libelle'] = "inconnu";
530                if ($info_995[$nb_expl]['a']) {
531                        $data_doc['location_libelle'] = $info_995[$nb_expl]['a'];
532                        $data_doc['locdoc_codage_import'] = $info_995[$nb_expl]['a'];
533                } else
534                        $data_doc['locdoc_codage_import']="Centre de documentation";
535
536                if ($locdoc_codage) 
537                        $data_doc['locdoc_owner'] = $book_lender_id ;
538                else 
539                        $data_doc['locdoc_owner'] = 0 ;
540                $expl['location'] = docs_location::import($data_doc);
541               
542                // $expl['codestat']   = $info_995[$nb_expl]['q']; 'q' utilisé, éventuellement à fixer par combo_box
543                $data_doc=array();
544                //$data_doc['codestat_libelle'] = $info_995[$nb_expl]['q']." -Pub visé importé (".$book_lender_id.")";
545                if (!$info_995[$nb_expl]['q']) 
546                        $info_995[$nb_expl]['q'] = "inconnu";
547                $data_doc['codestat_libelle'] = $info_995[$nb_expl]['q'] ;
548                $data_doc['statisdoc_codage_import'] = $info_995[$nb_expl]['q'] ;
549                if ($statisdoc_codage) $data_doc['statisdoc_owner'] = $book_lender_id ;
550                        else $data_doc['statisdoc_owner'] = 0 ;
551                $expl['codestat'] = docs_codestat::import($data_doc);
552               
553               
554                // $expl['creation']   = $info_995[$nb_expl]['']; à préciser
555                // $expl['modif']      = $info_995[$nb_expl]['']; à préciser
556                       
557                $expl['note']       = $info_995[$nb_expl]['u'];
558                $expl['prix']       = $price;
559                $expl['expl_owner'] = $book_lender_id ;
560                $expl['cote_mandatory'] = $cote_mandatory ;
561               
562                $expl['date_depot'] = substr($info_995[$nb_expl]['m'],0,4)."-".substr($info_995[$nb_expl]['m'],4,2)."-".substr($info_995[$nb_expl]['m'],6,2) ;     
563                $expl['date_retour'] = substr($info_995[$nb_expl]['n'],0,4)."-".substr($info_995[$nb_expl]['n'],4,2)."-".substr($info_995[$nb_expl]['n'],6,2) ;
564               
565                $expl_id = exemplaire::import($expl);
566               
567                if ($expl_id == 0)
568                        $nb_expl_ignores++;
569                       
570        } // fin for
571} // fin traite_exemplaires     TRAITEMENT DES EXEMPLAIRES JUSQU'ICI
572
573// fonction spécifique d'export de la zone 995
574function export_traite_exemplaires ($ex=array()) {
575        global $msg, $dbh ;
576       
577        $subfields["a"] = $ex -> lender_libelle;
578        $subfields["c"] = $ex -> lender_libelle;
579        $subfields["f"] = $ex -> expl_cb;
580        $subfields["k"] = $ex -> expl_cote;
581        $subfields["u"] = $ex -> expl_note;
582
583        if ($ex->statusdoc_codage_import) $subfields["o"] = $ex -> statusdoc_codage_import;
584        if ($ex -> tdoc_codage_import) $subfields["r"] = $ex -> tdoc_codage_import;
585                else $subfields["r"] = "uu";
586        if ($ex -> sdoc_codage_import) $subfields["q"] = $ex -> sdoc_codage_import;
587                else $subfields["q"] = "u";
588       
589        global $export996 ;
590        $export996['f'] = $ex -> expl_cb ;
591        $export996['k'] = $ex -> expl_cote ;
592        $export996['u'] = $ex -> expl_note ;
593
594        $export996['m'] = substr($ex -> expl_date_depot, 0, 4).substr($ex -> expl_date_depot, 5, 2).substr($ex -> expl_date_depot, 8, 2) ;
595        $export996['n'] = substr($ex -> expl_date_retour, 0, 4).substr($ex -> expl_date_retour, 5, 2).substr($ex -> expl_date_retour, 8, 2) ;
596
597        $export996['a'] = $ex -> lender_libelle;
598        $export996['b'] = $ex -> expl_owner;
599
600        $export996['v'] = $ex -> location_libelle;
601        $export996['w'] = $ex -> ldoc_codage_import;
602
603        $export996['x'] = $ex -> section_libelle;
604        $export996['y'] = $ex -> sdoc_codage_import;
605
606        $export996['e'] = $ex -> tdoc_libelle;
607        $export996['r'] = $ex -> tdoc_codage_import;
608
609        $export996['1'] = $ex -> statut_libelle;
610        $export996['2'] = $ex -> statusdoc_codage_import;
611        $export996['3'] = $ex -> pret_flag;
612       
613        global $export_traitement_exemplaires ;
614        $export996['0'] = $export_traitement_exemplaires ;
615       
616        return  $subfields ;
617
618}
Note: See TracBrowser for help on using the repository browser.