source: pmb4.2/trunk/fuentes/pmb/admin/import/func_pmi_customfields.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: 9.3 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_pmi_customfields.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
10function recup_noticeunimarc_suite($notice) {
11        global $info_900;
12
13        $info_900=array();
14
15        $record = new iso2709_record($notice, AUTO_UPDATE); 
16       
17        $info_900=$record->get_subfield("900","a","l","n");
18       
19} // fin recup_noticeunimarc_suite
20       
21function import_new_notice_suite() {
22        global $dbh ;
23        global $notice_id ;
24        global $info_606_a;
25        global $pmb_keyword_sep ;
26        global $info_900;
27        $mots_cles='';
28        for ($a=0; $a<sizeof($info_606_a); $a++) {
29                $mots_cles .= $info_606_a[$a][0]." $pmb_keyword_sep " ;
30        }
31        $mots_cles ? $index_matieres = strip_empty_words($mots_cles) : $index_matieres = '';
32        $rqt_maj = "update notices set index_l='".addslashes($mots_cles)."', index_matieres=' ".addslashes($index_matieres)." ' where notice_id='$notice_id' " ;
33        pmb_mysql_query($rqt_maj, $dbh);
34       
35        for($i=0;$i<count($info_900);$i++){             
36               
37                $req = " select idchamp, type, datatype from notices_custom where name='".$info_900[$i]['n']."'";
38                $res = pmb_mysql_query($req,$dbh);
39                if(pmb_mysql_num_rows($res)){
40                        $perso = pmb_mysql_fetch_object($res);
41                        if($perso->idchamp){
42                                if($perso->type == 'list'){
43                                        $requete="select notices_custom_list_value from notices_custom_lists where notices_custom_list_lib='".addslashes($info_900[$i]['a'])."' and notices_custom_champ=$perso->idchamp";
44                                        $resultat=pmb_mysql_query($requete);
45                                        if (pmb_mysql_num_rows($resultat)) {
46                                                $value=pmb_mysql_result($resultat,0,0);
47                                        } else {
48                                                $requete="select max(notices_custom_list_value*1) from notices_custom_lists where notices_custom_champ=$perso->idchamp";
49                                                $resultat=pmb_mysql_query($requete);
50                                                $max=@pmb_mysql_result($resultat,0,0);
51                                                $n=$max+1;
52                                                $requete="insert into notices_custom_lists (notices_custom_champ,notices_custom_list_value,notices_custom_list_lib) values($perso->idchamp,$n,'".addslashes($info_900[$i]['a'])."')";
53                                                pmb_mysql_query($requete);
54                                                $value=$n;
55                                        }
56                                        $requete="insert into notices_custom_values (notices_custom_champ,notices_custom_origine,notices_custom_integer) values($perso->idchamp,$notice_id,$value)";
57                                        pmb_mysql_query($requete);
58                                } elseif($perso->type == 'date_box'){
59                                        $tmp_date='';
60                                        $tmp_date=str_replace('/','',$info_900[$i]['a']);
61                                        $tmp_date=substr($tmp_date,4,4).'-'.substr($tmp_date,0,2).'-'.substr($tmp_date,2,2);
62                                        $requete="insert into notices_custom_values (notices_custom_champ,notices_custom_origine,notices_custom_date) values($perso->idchamp,$notice_id,'".addslashes($tmp_date)."')";
63                                        pmb_mysql_query($requete);
64                                } else {
65                                        $requete="insert into notices_custom_values (notices_custom_champ,notices_custom_origine,notices_custom_".$perso->datatype.") values($perso->idchamp,$notice_id,'".addslashes($info_900[$i]['a'])."')";
66                                        pmb_mysql_query($requete);
67                                }
68                        }       
69                }
70        }       
71} 
72
73                       
74// TRAITEMENT DES EXEMPLAIRES ICI
75function traite_exemplaires () {
76        global $nb_expl_ignores,$bulletin_ex ;
77        global $prix, $notice_id, $info_995, $typdoc_995, $tdoc_codage, $book_lender_id, 
78                $section_995, $sdoc_codage, $book_statut_id, $codstatdoc_995, $statisdoc_codage,
79                $cote_mandatory, $book_location_id ;
80               
81        // lu en 010$d de la notice
82        $price = $prix[0];
83       
84        // la zone 995 est répétable
85        for ($nb_expl = 0; $nb_expl < sizeof ($info_995); $nb_expl++) {
86               
87                /* RAZ expl */
88                $expl = array();
89               
90                /* préparation du tableau à passer à la méthode */
91                $expl['cb']         = $info_995[$nb_expl]['f'];
92               
93                if ($bulletin_ex) {
94                        $expl['bulletin']=$bulletin_ex;
95                        $expl['notice']=0;
96                } else {
97                        $expl['notice']     = $notice_id ;
98                        $expl['bulletin']=0;
99                }
100               
101                // $expl['typdoc']     = $info_995[$nb_expl]['r']; à chercher dans docs_typdoc
102                $data_doc=array();
103                //$data_doc['tdoc_libelle'] = $info_995[$nb_expl]['r']." -Type doc importé (".$book_lender_id.")";
104                $data_doc['tdoc_libelle'] = $typdoc_995[$info_995[$nb_expl]['r']];
105                if (!$data_doc['tdoc_libelle']) $data_doc['tdoc_libelle'] = "\$r non conforme -".$info_995[$nb_expl]['r']."-" ;
106                $data_doc['duree_pret'] = 0 ; /* valeur par défaut */
107                $data_doc['tdoc_codage_import'] = $info_995[$nb_expl]['r'] ;
108                if ($tdoc_codage) $data_doc['tdoc_owner'] = $book_lender_id ;
109                        else $data_doc['tdoc_owner'] = 0 ;
110                $expl['typdoc'] = docs_type::import($data_doc);
111               
112                $expl['cote'] = $info_995[$nb_expl]['k'];
113                       
114                // $expl['section']    = $info_995[$nb_expl]['q']; à chercher dans docs_section
115                $data_doc=array();
116                $info_995[$nb_expl]['q']=trim($info_995[$nb_expl]['q']);
117                if (!$info_995[$nb_expl]['q']) 
118                        $info_995[$nb_expl]['q'] = "In";
119                $data_doc['section_libelle'] = 'unknown';
120                $data_doc['sdoc_codage_import'] = $info_995[$nb_expl]['q'] ;
121                if ($sdoc_codage) $data_doc['sdoc_owner'] = $book_lender_id ;
122                        else $data_doc['sdoc_owner'] = 0 ;
123                $expl['section'] = docs_section::import($data_doc);
124               
125                /* $expl['statut']     à chercher dans docs_statut */
126                /* TOUT EST COMMENTE ICI, le statut est maintenant choisi lors de l'import
127                if ($info_995[$nb_expl]['o']=="") $info_995[$nb_expl]['o'] = "e";
128                $data_doc=array();
129                $data_doc['statut_libelle'] = $info_995[$nb_expl]['o']." -Statut importé (".$book_lender_id.")";
130                $data_doc['pret_flag'] = 1 ;
131                $data_doc['statusdoc_codage_import'] = $info_995[$nb_expl]['o'] ;
132                $data_doc['statusdoc_owner'] = $book_lender_id ;
133                $expl['statut'] = docs_statut::import($data_doc);
134                FIN TOUT COMMENTE */
135               
136                $expl['statut'] = $book_statut_id;
137                $expl['location'] = $book_location_id;
138               
139                // $expl['codestat']   = $info_995[$nb_expl]['q']; 'q' utilisé, éventuellement à fixer par combo_box
140                $data_doc=array();
141                //$data_doc['codestat_libelle'] = $info_995[$nb_expl]['q']." -Pub visé importé (".$book_lender_id.")";
142                $data_doc['codestat_libelle'] = 'Unknown';
143                $data_doc['statisdoc_codage_import'] = 'Un' ;
144                if ($statisdoc_codage) $data_doc['statisdoc_owner'] = $book_lender_id ;
145                        else $data_doc['statisdoc_owner'] = 0 ;
146                $expl['codestat'] = docs_codestat::import($data_doc);
147               
148               
149                // $expl['creation']   = $info_995[$nb_expl]['']; à préciser
150                // $expl['modif']      = $info_995[$nb_expl]['']; à préciser
151                       
152                $expl['note']       = $info_995[$nb_expl]['u'];
153                $expl['prix']       = $price;
154                $expl['expl_owner'] = $book_lender_id ;
155                $expl['cote_mandatory'] = $cote_mandatory ;
156               
157                $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) ;     
158                $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) ;
159               
160                // quoi_faire
161                if ($info_995[$nb_expl]['0']) $expl['quoi_faire'] = $info_995[$nb_expl]['0']  ;
162                        else $expl['quoi_faire'] = 2 ;
163               
164                $expl_id = exemplaire::import($expl);
165                if ($expl_id == 0) {
166                        $nb_expl_ignores++;
167                }
168                       
169                //debug : affichage zone 995
170                /*
171                echo "995\$a =".$info_995[$nb_expl]['a']."<br />";
172                echo "995\$b =".$info_995[$nb_expl]['b']."<br />";
173                echo "995\$c =".$info_995[$nb_expl]['c']."<br />";
174                echo "995\$d =".$info_995[$nb_expl]['d']."<br />";
175                echo "995\$f =".$info_995[$nb_expl]['f']."<br />";
176                echo "995\$k =".$info_995[$nb_expl]['k']."<br />";
177                echo "995\$m =".$info_995[$nb_expl]['m']."<br />";
178                echo "995\$n =".$info_995[$nb_expl]['n']."<br />";
179                echo "995\$o =".$info_995[$nb_expl]['o']."<br />";
180                echo "995\$q =".$info_995[$nb_expl]['q']."<br />";
181                echo "995\$r =".$info_995[$nb_expl]['r']."<br />";
182                echo "995\$u =".$info_995[$nb_expl]['u']."<br /><br />";
183                */
184                } // fin for
185        } // fin traite_exemplaires     TRAITEMENT DES EXEMPLAIRES JUSQU'ICI
186
187// fonction spécifique d'export de la zone 995
188function export_traite_exemplaires ($ex=array()) {
189       
190        $subfields["a"] = $ex -> lender_libelle;
191        $subfields["c"] = $ex -> lender_libelle;
192        $subfields["f"] = $ex -> expl_cb;
193        $subfields["k"] = $ex -> expl_cote;
194        $subfields["u"] = $ex -> expl_note;
195
196        if ($ex->statusdoc_codage_import) $subfields["o"] = $ex -> statusdoc_codage_import;
197        if ($ex -> tdoc_codage_import) $subfields["r"] = $ex -> tdoc_codage_import;
198                else $subfields["r"] = "uu";
199        if ($ex -> sdoc_codage_import) $subfields["q"] = $ex -> sdoc_codage_import;
200                else $subfields["q"] = "u";
201       
202        global $export996 ;
203        $export996['f'] = $ex -> expl_cb ;
204        $export996['k'] = $ex -> expl_cote ;
205        $export996['u'] = $ex -> expl_note ;
206
207        $export996['m'] = substr($ex -> expl_date_depot, 0, 4).substr($ex -> expl_date_depot, 5, 2).substr($ex -> expl_date_depot, 8, 2) ;
208        $export996['n'] = substr($ex -> expl_date_retour, 0, 4).substr($ex -> expl_date_retour, 5, 2).substr($ex -> expl_date_retour, 8, 2) ;
209
210        $export996['a'] = $ex -> lender_libelle;
211        $export996['b'] = $ex -> expl_owner;
212
213        $export996['v'] = $ex -> location_libelle;
214        $export996['w'] = $ex -> ldoc_codage_import;
215
216        $export996['x'] = $ex -> section_libelle;
217        $export996['y'] = $ex -> sdoc_codage_import;
218
219        $export996['e'] = $ex -> tdoc_libelle;
220        $export996['r'] = $ex -> tdoc_codage_import;
221
222        $export996['1'] = $ex -> statut_libelle;
223        $export996['2'] = $ex -> statusdoc_codage_import;
224        $export996['3'] = $ex -> pret_flag;
225       
226        global $export_traitement_exemplaires ;
227        $export996['0'] = $export_traitement_exemplaires ;
228       
229        return  $subfields ;
230
231        }       
Note: See TracBrowser for help on using the repository browser.