source: pmb4.2/trunk/fuentes/pmb/admin/import/func_bdp43.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: 12.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_bdp43.inc.php,v 1.5 2015-04-03 11:16:23 jpermanne Exp $
6
7if (stristr($_SERVER['REQUEST_URI'], ".inc.php")) die("no access");
8
9// DEBUT paramétrage propre à la base de données d'importation :
10$section_bdp43=array(
11        "Bande-dessinée Adultes",
12        "Romans Adultes",
13        "Romans policiers Adultes",
14        "Documentaires Adultes",
15        "Fond local",
16        "Périodiques adultes",
17        "Albums",
18        "Bande-dessinée Jeunes",
19        "Contes",
20        "Romans Enfants",
21        "Romans fantastiques",
22        "Documentaires Jeunes",
23        "Livres parlés",
24        "Exposition",
25        "Musique"
26        );
27
28
29$corresp_bdp43=array(
30        array("DA"),
31        array("R"),
32        array("RP"),
33        array("1","2","3","4","5","6","7","8","9","0"),
34        array("V1","V2","V3","V4","V5","V6","V7","V8","V9","V0","VR"),
35        array("PER"),
36        array("A"),
37        array("D"),
38        array("C"),
39        array("JR"),
40        array("SF"),
41        array("J1","J2","J3","J4","J5","J6","J7","J8","J9","J0"),
42        array("LP"),
43        array("LUDO","AFF"),
44        array("1.","2.","3.","4.","5.","6.","7.","8.","9.","0.", "GF")
45        );
46
47$sec_search_bdp43=array(
48"DA",
49"RP",
50"R",
51"1.","2.","3.","4.","5.","6.","7.","8.","9.","0.", "GF",
52"1","2","3","4","5","6","7","8","9","0",
53"V1","V2","V3","V4","V5","V6","V7","V8","V9","V0","VR",
54"PER",
55"LUDO","AFF",
56"A",
57"D",
58"C",
59"JR",
60"SF",
61"J1","J2","J3","J4","J5","J6","J7","J8","J9","J0",
62"LP"
63);
64
65function recup_noticeunimarc_suite($notice) {
66        } // fin recup_noticeunimarc_suite = fin récupération des variables propres BDP : rien de plus
67       
68function import_new_notice_suite() {
69        global $dbh ;
70        global $notice_id ;
71       
72        global $index_sujets ;
73        global $pmb_keyword_sep ;
74       
75        global $info_600_a, $info_600_j, $info_600_x, $info_600_y, $info_600_z ;
76        global $info_601_a, $info_601_j, $info_601_x, $info_601_y, $info_601_z ;
77        global $info_602_a, $info_602_j, $info_602_x, $info_602_y, $info_602_z ;
78        global $info_605_a, $info_605_j, $info_605_x, $info_605_y, $info_605_z ;
79        global $info_606_a, $info_606_j, $info_606_x, $info_606_y, $info_606_z ;
80        global $info_607_a, $info_607_j, $info_607_x, $info_607_y, $info_607_z ;
81
82        if (is_array($index_sujets)) $mots_cles = implode (" $pmb_keyword_sep ",$index_sujets);
83                else $mots_cles = $index_sujets;
84       
85        for ($a=0; $a<sizeof($info_600_a); $a++) {
86                $mots_cles .= " $pmb_keyword_sep ".$info_600_a[$a][0] ;
87                for ($j=0; $j<sizeof($info_600_j[$a]); $j++) $mots_cles .= " $pmb_keyword_sep ".$info_600_j[$a][$j] ;
88                for ($j=0; $j<sizeof($info_600_x[$a]); $j++) $mots_cles .= " $pmb_keyword_sep ".$info_600_x[$a][$j] ;
89                for ($j=0; $j<sizeof($info_600_y[$a]); $j++) $mots_cles .= " $pmb_keyword_sep ".$info_600_y[$a][$j] ;
90                for ($j=0; $j<sizeof($info_600_z[$a]); $j++) $mots_cles .= " $pmb_keyword_sep ".$info_600_z[$a][$j] ;
91                }
92        for ($a=0; $a<sizeof($info_601_a); $a++) {
93                $mots_cles .= " $pmb_keyword_sep ".$info_601_a[$a][0] ;
94                for ($j=0; $j<sizeof($info_601_j[$a]); $j++) $mots_cles .= " $pmb_keyword_sep ".$info_601_j[$a][$j] ;
95                for ($j=0; $j<sizeof($info_601_x[$a]); $j++) $mots_cles .= " $pmb_keyword_sep ".$info_601_x[$a][$j] ;
96                for ($j=0; $j<sizeof($info_601_y[$a]); $j++) $mots_cles .= " $pmb_keyword_sep ".$info_601_y[$a][$j] ;
97                for ($j=0; $j<sizeof($info_601_z[$a]); $j++) $mots_cles .= " $pmb_keyword_sep ".$info_601_z[$a][$j] ;
98                }
99        for ($a=0; $a<sizeof($info_602_a); $a++) {
100                $mots_cles .= " $pmb_keyword_sep ".$info_602_a[$a][0] ;
101                for ($j=0; $j<sizeof($info_602_j[$a]); $j++) $mots_cles .= " $pmb_keyword_sep ".$info_602_j[$a][$j] ;
102                for ($j=0; $j<sizeof($info_602_x[$a]); $j++) $mots_cles .= " $pmb_keyword_sep ".$info_602_x[$a][$j] ;
103                for ($j=0; $j<sizeof($info_602_y[$a]); $j++) $mots_cles .= " $pmb_keyword_sep ".$info_602_y[$a][$j] ;
104                for ($j=0; $j<sizeof($info_602_z[$a]); $j++) $mots_cles .= " $pmb_keyword_sep ".$info_602_z[$a][$j] ;
105                }
106        for ($a=0; $a<sizeof($info_605_a); $a++) {
107                $mots_cles .= " $pmb_keyword_sep ".$info_605_a[$a][0] ;
108                for ($j=0; $j<sizeof($info_605_j[$a]); $j++) $mots_cles .= " $pmb_keyword_sep ".$info_605_j[$a][$j] ;
109                for ($j=0; $j<sizeof($info_605_x[$a]); $j++) $mots_cles .= " $pmb_keyword_sep ".$info_605_x[$a][$j] ;
110                for ($j=0; $j<sizeof($info_605_y[$a]); $j++) $mots_cles .= " $pmb_keyword_sep ".$info_605_y[$a][$j] ;
111                for ($j=0; $j<sizeof($info_605_z[$a]); $j++) $mots_cles .= " $pmb_keyword_sep ".$info_605_z[$a][$j] ;
112                }
113        for ($a=0; $a<sizeof($info_606_a); $a++) {
114                $mots_cles .= " $pmb_keyword_sep ".$info_606_a[$a][0] ;
115                for ($j=0; $j<sizeof($info_606_j[$a]); $j++) $mots_cles .= " $pmb_keyword_sep ".$info_606_j[$a][$j] ;
116                for ($j=0; $j<sizeof($info_606_x[$a]); $j++) $mots_cles .= " $pmb_keyword_sep ".$info_606_x[$a][$j] ;
117                for ($j=0; $j<sizeof($info_606_y[$a]); $j++) $mots_cles .= " $pmb_keyword_sep ".$info_606_y[$a][$j] ;
118                for ($j=0; $j<sizeof($info_606_z[$a]); $j++) $mots_cles .= " $pmb_keyword_sep ".$info_606_z[$a][$j] ;
119                }
120        for ($a=0; $a<sizeof($info_607_a); $a++) {
121                $mots_cles .= " $pmb_keyword_sep ".$info_607_a[$a][0] ;
122                for ($j=0; $j<sizeof($info_607_j[$a]); $j++) $mots_cles .= " $pmb_keyword_sep ".$info_607_j[$a][$j] ;
123                for ($j=0; $j<sizeof($info_607_x[$a]); $j++) $mots_cles .= " $pmb_keyword_sep ".$info_607_x[$a][$j] ;
124                for ($j=0; $j<sizeof($info_607_y[$a]); $j++) $mots_cles .= " $pmb_keyword_sep ".$info_607_y[$a][$j] ;
125                for ($j=0; $j<sizeof($info_607_z[$a]); $j++) $mots_cles .= " $pmb_keyword_sep ".$info_607_z[$a][$j] ;
126                }
127        $mots_cles ? $index_matieres = strip_empty_words($mots_cles) : $index_matieres = '';
128        $rqt_maj = "update notices set index_l='".addslashes($mots_cles)."', index_matieres=' ".addslashes($index_matieres)." ' where notice_id='$notice_id' " ;
129        $res_ajout = pmb_mysql_query($rqt_maj, $dbh);
130        } // fin import_new_notice_suite
131                       
132// TRAITEMENT DES EXEMPLAIRES ICI
133function traite_exemplaires () {
134        global $msg, $dbh ;
135        global $nb_expl_ignores ;
136        global $prix, $notice_id, $info_995, $typdoc_995, $tdoc_codage, $book_lender_id, 
137                $section_bdp43, $sec_search_bdp43,$corresp_bdp43,$section_995, $sdoc_codage, $book_statut_id, $locdoc_codage, $codstatdoc_995, $statisdoc_codage,
138                $cote_mandatory, $book_location_id ;
139               
140        // lu en 010$d de la notice
141        $price = $prix[0];
142       
143        // la zone 995 est répétable
144        for ($nb_expl = 0; $nb_expl < sizeof ($info_995); $nb_expl++) {
145                /* RAZ expl */
146                $expl = array();
147               
148                /* préparation du tableau à passer à la méthode */
149                $expl['cb']         = $info_995[$nb_expl]['f'];
150                $expl['notice']     = $notice_id ;
151               
152                // $expl['typdoc']     = $info_995[$nb_expl]['r']; à chercher dans docs_typdoc
153                $data_doc=array();
154                //$data_doc['tdoc_libelle'] = $info_995[$nb_expl]['r']." -Type doc importé (".$book_lender_id.")";
155                $data_doc['tdoc_libelle'] = $typdoc_995[$info_995[$nb_expl]['r']];
156                if (!$data_doc['tdoc_libelle']) $data_doc['tdoc_libelle'] = "\$r non conforme -".$info_995[$nb_expl]['r']."-" ;
157                $data_doc['duree_pret'] = 0 ; /* valeur par défaut */
158                $data_doc['tdoc_codage_import'] = $info_995[$nb_expl]['r'] ;
159                if ($tdoc_codage) $data_doc['tdoc_owner'] = $book_lender_id ;
160                        else $data_doc['tdoc_owner'] = 0 ;
161                $expl['typdoc'] = docs_type::import($data_doc);
162               
163                $expl['cote'] = $info_995[$nb_expl]['k'];
164                       
165                // traitement des sections en fonction de la cote
166                // recherche début dans le tableau bien ordonné afin de trouvé les DA avant les D
167                //              si trouvé : on va le chercher dans le tableau de tableau,
168                //                      ça donne l'index avec lequel on va chercher le libellé
169                reset($sec_search_bdp43) ;
170                $flag = 0 ;
171                while (list($cle_tab,$val_tab)=each($sec_search_bdp43)) {
172                        $p=strpos((string)$info_995[$nb_expl]['k'],(string)$val_tab) ;
173                        if (($p!==false) && ($p==0)) {
174                                $flag=1;
175                                break;
176                                }
177                        }
178                if ($flag==1) {
179                        //Recherche de la section
180                        for ($i=0; $i<count($corresp_bdp43); $i++) {
181                                $as=array_search($val_tab,$corresp_bdp43[$i]);
182                                if (($as!==null)&&($as!==false)) {
183                                        $codage_section_lu=$i+1;
184                                        $libelle_section_lu=$section_bdp43[$i];
185                                }
186                        }
187                } else {
188                                $codage_section_lu = "INCONNU" ;
189                                $libelle_section_lu = "Section inconnue" ;
190                                }
191               
192                $data_doc=array();
193                $data_doc['section_libelle'] = $libelle_section_lu;
194                $data_doc['sdoc_codage_import'] = $codage_section_lu ;
195                if ($sdoc_codage) $data_doc['sdoc_owner'] = $book_lender_id ;
196                        else $data_doc['sdoc_owner'] = 0 ;
197                $expl['section'] = docs_section::import($data_doc);
198               
199               
200                /* $expl['statut']     à chercher dans docs_statut */
201                /* TOUT EST COMMENTE ICI, le statut est maintenant choisi lors de l'import
202                if ($info_995[$nb_expl]['o']=="") $info_995[$nb_expl]['o'] = "e";
203                $data_doc=array();
204                $data_doc['statut_libelle'] = $info_995[$nb_expl]['o']." -Statut importé (".$book_lender_id.")";
205                $data_doc['pret_flag'] = 1 ;
206                $data_doc['statusdoc_codage_import'] = $info_995[$nb_expl]['o'] ;
207                $data_doc['statusdoc_owner'] = $book_lender_id ;
208                $expl['statut'] = docs_statut::import($data_doc);
209                FIN TOUT COMMENTE */
210               
211                $expl['statut'] = $book_statut_id;
212               
213                $expl['location'] = $book_location_id;
214               
215                // $expl['codestat']   = $info_995[$nb_expl]['q']; 'q' utilisé, éventuellement à fixer par combo_box
216                $data_doc=array();
217                //$data_doc['codestat_libelle'] = $info_995[$nb_expl]['q']." -Pub visé importé (".$book_lender_id.")";
218                $data_doc['codestat_libelle'] = $codstatdoc_995[$info_995[$nb_expl]['q']];
219                $data_doc['statisdoc_codage_import'] = $info_995[$nb_expl]['q'] ;
220                if ($statisdoc_codage) $data_doc['statisdoc_owner'] = $book_lender_id ;
221                        else $data_doc['statisdoc_owner'] = 0 ;
222                $expl['codestat'] = docs_codestat::import($data_doc);
223               
224               
225                // $expl['creation']   = $info_995[$nb_expl]['']; à préciser
226                // $expl['modif']      = $info_995[$nb_expl]['']; à préciser
227                       
228                $expl['note']       = $info_995[$nb_expl]['u'];
229                $expl['prix']       = $price;
230                $expl['expl_owner'] = $book_lender_id ;
231                $expl['cote_mandatory'] = $cote_mandatory ;
232               
233                $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) ;     
234                $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) ;
235               
236                // quoi_faire
237                if ($info_995[$nb_expl]['0']) $expl['quoi_faire'] = $info_995[$nb_expl]['0']  ;
238                        else $expl['quoi_faire'] = 2 ;
239               
240                $expl_id = exemplaire::import($expl);
241                if ($expl_id == 0) {
242                        $nb_expl_ignores++;
243                        }
244                       
245                //debug : affichage zone 995
246                /*
247                echo "995\$a =".$info_995[$nb_expl]['a']."<br />";
248                echo "995\$b =".$info_995[$nb_expl]['b']."<br />";
249                echo "995\$c =".$info_995[$nb_expl]['c']."<br />";
250                echo "995\$d =".$info_995[$nb_expl]['d']."<br />";
251                echo "995\$f =".$info_995[$nb_expl]['f']."<br />";
252                echo "995\$k =".$info_995[$nb_expl]['k']."<br />";
253                echo "995\$m =".$info_995[$nb_expl]['m']."<br />";
254                echo "995\$n =".$info_995[$nb_expl]['n']."<br />";
255                echo "995\$o =".$info_995[$nb_expl]['o']."<br />";
256                echo "995\$q =".$info_995[$nb_expl]['q']."<br />";
257                echo "995\$r =".$info_995[$nb_expl]['r']."<br />";
258                echo "995\$u =".$info_995[$nb_expl]['u']."<br /><br />";
259                */
260                } // fin for
261        } // fin traite_exemplaires     TRAITEMENT DES EXEMPLAIRES JUSQU'ICI
262
263// fonction spécifique d'export de la zone 995
264function export_traite_exemplaires ($ex=array()) {
265        global $msg, $dbh ;
266       
267        $subfields["a"] = $ex -> lender_libelle;
268        $subfields["c"] = $ex -> lender_libelle;
269        $subfields["f"] = $ex -> expl_cb;
270        $subfields["k"] = $ex -> expl_cote;
271        $subfields["u"] = $ex -> expl_note;
272
273        if ($ex->statusdoc_codage_import) $subfields["o"] = $ex -> statusdoc_codage_import;
274        if ($ex -> tdoc_codage_import) $subfields["r"] = $ex -> tdoc_codage_import;
275                else $subfields["r"] = "uu";
276        if ($ex -> sdoc_codage_import) $subfields["q"] = $ex -> sdoc_codage_import;
277                else $subfields["q"] = "u";
278       
279        global $export996 ;
280        $export996['f'] = $ex -> expl_cb ;
281        $export996['k'] = $ex -> expl_cote ;
282        $export996['u'] = $ex -> expl_note ;
283
284        $export996['m'] = substr($ex -> expl_date_depot, 0, 4).substr($ex -> expl_date_depot, 5, 2).substr($ex -> expl_date_depot, 8, 2) ;
285        $export996['n'] = substr($ex -> expl_date_retour, 0, 4).substr($ex -> expl_date_retour, 5, 2).substr($ex -> expl_date_retour, 8, 2) ;
286
287        $export996['a'] = $ex -> lender_libelle;
288        $export996['b'] = $ex -> expl_owner;
289
290        $export996['v'] = $ex -> location_libelle;
291        $export996['w'] = $ex -> ldoc_codage_import;
292
293        $export996['x'] = $ex -> section_libelle;
294        $export996['y'] = $ex -> sdoc_codage_import;
295
296        $export996['e'] = $ex -> tdoc_libelle;
297        $export996['r'] = $ex -> tdoc_codage_import;
298
299        $export996['1'] = $ex -> statut_libelle;
300        $export996['2'] = $ex -> statusdoc_codage_import;
301        $export996['3'] = $ex -> pret_flag;
302       
303        global $export_traitement_exemplaires ;
304        $export996['0'] = $export_traitement_exemplaires ;
305       
306        return  $subfields ;
307
308        }       
Note: See TracBrowser for help on using the repository browser.