source: pmb4.2/trunk/fuentes/pmb/catalog/serials/pointage/pointage_exemplarise.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: 24.8 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: pointage_exemplarise.php,v 1.58.2.5 2015-11-18 11:24:07 jpermanne Exp $
6
7// définition du minimum nécéssaire
8$base_path="./../../..";
9$base_auth = "CATALOGAGE_AUTH";
10$base_title = "\$msg[6]";
11require_once ("$base_path/includes/init.inc.php");
12require_once($class_path."/serials.class.php");
13require_once($class_path."/serial_display.class.php");
14require_once("$include_path/explnum.inc.php") ;
15require_once ($class_path . "/parse_format.class.php");
16require_once($class_path."/parametres_perso.class.php");
17require_once("$class_path/abts_pointage.class.php");
18require_once("$class_path/explnum.class.php");
19require_once("$class_path/serialcirc_diff.class.php");
20require_once($class_path."/serialcirc.class.php");
21
22
23$templates = <<<ENDOFFILE
24                        <script type='text/javascript'>
25                                function desactive(obj) {
26                                        var obj_1=obj+"_1";     
27                                        var obj_2=obj+"_2";     
28                                        var obj_3=obj+"_3";             
29                                        parent.document.getElementById(obj_1).disabled = true;
30                                        parent.document.getElementById(obj_2).disabled = true;
31                                        parent.document.getElementById(obj_3).disabled = true;
32                                }               
33                                function enregistre(obj,bul_id) {
34                                        var obj_bul=obj+"_bul";         
35                                        desactive(obj)
36                                        parent.document.getElementById(obj_bul).innerHTML="<a href='./catalog.php?categ=serials&sub=bulletinage&action=view&bul_id="+bul_id+"'>"+"!!Voir_le_bulletin!!"+"</a>!!serialcir_print!!!!print_cote!!";
37                                        parent.kill_frame_periodique();
38                                }               
39                                function Fermer(obj) {
40                                        desactive(obj)
41                                        parent.kill_frame_periodique();
42                                }
43                        </script>
44<div style='width: 98%;'>
45        <div id="bouton_fermer_notice_preview" class="right"><a href='#' onClick='parent.kill_frame_periodique();return false;'>X</a></div>
46        !!form!!
47</div>                                         
48ENDOFFILE;
49$templates=str_replace("!!Voir_le_bulletin!!",$msg['pointage_voir_le_bulletin'],$templates);
50
51
52if($act=="memo_doc_num"){       
53        // retour après telechargement du document numérique associé au bulletin
54        print "
55                <script type='text/javascript'>
56                        function desactive(obj) {
57                                var obj_1=obj+'_1';     
58                                var obj_2=obj+'_2';     
59                                var obj_3=obj+'_3';             
60                                parent.document.getElementById(obj_1).disabled = true;
61                                parent.document.getElementById(obj_2).disabled = true;
62                                parent.document.getElementById(obj_3).disabled = true;
63                        }
64                        var obj_bul='".$id_bull."_bul';         
65                        desactive($id_bull);
66                        parent.document.getElementById(obj_bul).innerHTML=\"<a href='./catalog.php?categ=serials&sub=bulletinage&action=view&bul_id=$bul_id'>".$msg['pointage_voir_le_bulletin']."</a>\";
67                        parent.kill_frame_periodique();
68                </script>
69        ";
70        exit;
71}       
72/*
73if(!$expl_id) // pas d'id, c'est une création
74        echo str_replace('!!page_title!!', $msg[4000].$msg[1003].$msg[4007], $serial_header);
75else echo str_replace('!!page_title!!', $msg[4000].$msg[1003].$msg[4008], $serial_header);
76*/
77function do_selector_bul_section($section_id, $location_id) {
78        global $dbh;
79        global $charset;
80        global $deflt_section;
81        global $deflt_location;
82       
83        if (!$section_id) $section_id=$deflt_section ;
84        if (!$location_id) $location_id=$deflt_location;
85
86        $rqtloc = "SELECT idlocation FROM docs_location order by location_libelle";
87        $resloc = pmb_mysql_query($rqtloc, $dbh);
88        while ($loc=pmb_mysql_fetch_object($resloc)) {
89                $requete = "SELECT idsection, section_libelle FROM docs_section, docsloc_section where idsection=num_section and num_location='$loc->idlocation' order by section_libelle";
90                $result = pmb_mysql_query($requete, $dbh);
91                $nbr_lignes = pmb_mysql_num_rows($result);
92                if ($nbr_lignes) {                     
93                        if ($loc->idlocation==$location_id) $selector .= "<div id=\"docloc_section".$loc->idlocation."\" style=\"display:block\">";
94                                else $selector .= "<div id=\"docloc_section".$loc->idlocation."\" style=\"display:none\">";
95                        $selector .= "<select name='f_ex_section".$loc->idlocation."' id='f_ex_section".$loc->idlocation."'>";
96                        while($line = pmb_mysql_fetch_row($result)) {
97                                $selector .= "<option value='$line[0]'";
98                                $line[0] == $section_id ? $selector .= ' SELECTED>' : $selector .= '>';
99                                $selector .= htmlentities($line[1],ENT_QUOTES, $charset).'</option>';
100                                }                                         
101                        $selector .= '</select></div>';
102                        }                 
103                }
104        return $selector;                         
105}                                                 
106
107function bul_do_form($obj) {
108        // $obj = objet contenant les propriétés de l'exemplaire associé
109        global $bul_expl_form1,$expl_bulletinage_tpl;
110        global $msg; // pour texte du bouton supprimer
111        global $dbh,$charset;
112        global $pmb_type_audit,$select_categ_prop,$pmb_antivol ;
113        global $id_bull,$bul_id,$serial_id,$numero,$pmb_rfid_activate,$pmb_rfid_serveur_url;
114        global $deflt_explnum_statut;
115       
116        if(!$obj->abt_numeric)$bul_expl_form1 = str_replace('!!expl_bulletinage_tpl!!', $expl_bulletinage_tpl, $bul_expl_form1);       
117        else $bul_expl_form1 = str_replace('!!expl_bulletinage_tpl!!', "", $bul_expl_form1);   
118        $action = "./pointage_exemplarise.php?act=update&id_bull=$id_bull&bul_id=$bul_id";
119       
120        // statut
121        $select_statut = gen_liste_multiple ("select id_explnum_statut, gestion_libelle from explnum_statut order by 2", "id_explnum_statut", "gestion_libelle", "id_explnum_statut", "f_explnum_statut", "", $deflt_explnum_statut, "", "","","",0) ;
122        $bul_expl_form1 = str_replace('!!statut_list!!', $select_statut, $bul_expl_form1);
123                       
124        // mise à jour des champs de gestion
125        $bul_expl_form1 = str_replace('!!bul_id!!', $obj->expl_bulletin, $bul_expl_form1);
126        $bul_expl_form1 = str_replace('!!id_form!!', md5(microtime()), $bul_expl_form1);
127        $bul_expl_form1 = str_replace('!!org_cb!!', $obj->expl_cb, $bul_expl_form1);   
128        $bul_expl_form1 = str_replace('!!expl_id!!', $obj->expl_id, $bul_expl_form1);
129       
130        $bul_expl_form1 = str_replace('!!action!!', $action, $bul_expl_form1);
131        $bul_expl_form1 = str_replace('!!id!!', $obj->expl_notice, $bul_expl_form1);
132        $bul_expl_form1 = str_replace('!!cb!!', $obj->expl_cb, $bul_expl_form1);
133        $bul_expl_form1 = str_replace('!!note!!', $obj->expl_note, $bul_expl_form1);
134        $bul_expl_form1 = str_replace('!!comment!!', $obj->expl_comment, $bul_expl_form1);
135        $bul_expl_form1 = str_replace('!!cote!!', htmlentities($obj->expl_cote,ENT_QUOTES, $charset), $bul_expl_form1);
136        $bul_expl_form1 = str_replace('!!prix!!', $obj->expl_prix, $bul_expl_form1);
137        if(!$obj->abt_numeric)$bul_expl_form1 = str_replace('!!focus!!',$obj->focus, $bul_expl_form1);
138        else $bul_expl_form1 = str_replace('!!focus!!',"", $bul_expl_form1);
139        // select "type document"
140        $bul_expl_form1 = str_replace('!!type_doc!!',
141                                do_selector('docs_type', 'expl_typdoc', $obj->expl_typdoc),
142                                $bul_expl_form1);               
143        // select "section"
144        $bul_expl_form1 = str_replace('!!section!!',
145                                do_selector_bul_section($obj->expl_section, $obj->expl_location),
146                                $bul_expl_form1);
147        // select "statut"
148        $bul_expl_form1 = str_replace('!!statut!!',
149                                do_selector('docs_statut', 'expl_statut', $obj->expl_statut),
150                                $bul_expl_form1);
151        // select "localisation"
152        $bul_expl_form1 = str_replace('!!localisation!!',
153                                gen_liste ("select distinct idlocation, location_libelle from docs_location, docsloc_section where num_location=idlocation order by 2", "idlocation", "location_libelle", 'expl_location', "calcule_section(this);", $obj->expl_location, "", "","","",0),
154                                $bul_expl_form1);
155        // select "code statistique"
156        $bul_expl_form1 = str_replace('!!codestat!!',
157                                do_selector('docs_codestat', 'expl_codestat', $obj->expl_codestat),
158                                $bul_expl_form1);
159        // select "owner"
160        $bul_expl_form1 = str_replace('!!owner!!',
161                                do_selector('lenders', 'expl_owner', $obj->expl_owner),
162                                $bul_expl_form1);
163        $selector="";
164        if($pmb_antivol>0) {
165                // select "type_antivol"
166                $selector = "
167                <div class='colonne3'>
168                <!-- code stat -->
169                <label class='etiquette' for='type_antivol'>$msg[type_antivol]</label>
170                <div class='row'>
171                <select name='type_antivol' id='type_antivol'>";       
172                $selector .= "<option value='0'";
173                if($obj->type_antivol ==0)$selector .= ' SELECTED';
174                $selector .= '>';
175                $selector .= $msg["type_antivol_aucun"].'</option>';
176                $selector .= "<option value='1'";
177                if($obj->type_antivol ==1)$selector .= ' SELECTED';
178                $selector .= '>';
179                $selector .= $msg["type_antivol_magnetique"].'</option>';
180                $selector .= "<option value='2'";
181                if($obj->type_antivol ==2)$selector .= ' SELECTED';
182                $selector .= '>';
183                $selector .= $msg["type_antivol_autre"].'</option>';           
184                                               
185                $selector .= '</select></div></div>';   
186        }       
187        $bul_expl_form1 = str_replace('!!type_antivol!!', $selector, $bul_expl_form1);
188        $bul_expl_form1 = str_replace('!!bul_id!!', $bul_id, $bul_expl_form1);
189        $bul_expl_form1 = str_replace('!!expl_id!!', $obj->expl_id, $bul_expl_form1);   
190        $bul_expl_form1 = str_replace('!!bul_no!!', htmlentities($obj->bul_no,ENT_QUOTES, $charset)     , $bul_expl_form1);
191        $date_date_formatee = formatdate_input($obj->date_date);
192        $date_clic = "onClick=\"openPopUp('./../../../select.php?what=calendrier&caller=expl&date_caller=".str_replace('-', '', $obj->date_date)."&param1=date_date&param2=date_date_lib&auto_submit=NO&date_anterieure=YES', 'date_date', 250, 300, -2, -2, 'toolbar=no, dependent=yes, resizable=yes')\"  ";
193        $date_date = "<input type='hidden' name='date_date' value='".str_replace('-','', $obj->date_date)."' />
194                <input class='saisie-10em' type='text' name='date_date_lib' value='".$date_date_formatee."' placeholder='".$msg["format_date_input_placeholder"]."'/>
195                <input class='bouton_small' type='button' name='date_date_lib_bouton' value='".$msg["bouton_calendrier"]."' ".$date_clic." />";
196               
197        $bul_expl_form1 = str_replace('!!date_date!!', $date_date, $bul_expl_form1);
198        $bul_expl_form1 = str_replace('!!bul_date!!', htmlentities($obj->bul_date,ENT_QUOTES, $charset), $bul_expl_form1);
199        $bul_expl_form1 = str_replace('!!bul_titre!!', htmlentities($obj->bul_titre,ENT_QUOTES, $charset), $bul_expl_form1);
200        $bul_expl_form1 = str_replace('!!serial_id!!', $serial_id, $bul_expl_form1);
201        $bul_expl_form1 = str_replace('!!numero!!', $obj->bul_titre, $bul_expl_form1); 
202        $bul_expl_form1 = str_replace('!!destinataire!!', $obj->destinataire, $bul_expl_form1);
203
204        $p_perso=new parametres_perso("expl");
205        if (!$p_perso->no_special_fields) {
206                $c=0;
207                $perso="";
208                $perso_=$p_perso->show_editable_fields($obj->expl_id);
209                for ($i=0; $i<count($perso_["FIELDS"]); $i++) {
210                        $p=$perso_["FIELDS"][$i];
211                        if ($c==0) $perso.="<div class='row'>\n";
212                        $perso.="<div class='colonne3'><label for='".$p["NAME"]."' class='etiquette'>".$p["TITRE"]."</label><div class='row'>".$p["AFF"]."</div></div>\n";
213                        $c++;
214                        if ($c==3) {
215                                $perso.="</div>\n";
216                                $c=0;
217                        }
218                }       
219                if ($c==1) $perso.="<div class='colonne2'>&nbsp;</div>\n</div>\n";
220                $perso=$perso_["CHECK_SCRIPTS"]."\n".$perso;
221        } else 
222                $perso="\n<script>function check_form() { return true; }</script>\n";
223        $bul_expl_form1 = str_replace("!!champs_perso!!",$perso,$bul_expl_form1);
224       
225        if ($pmb_rfid_activate==1 && $pmb_rfid_serveur_url && !$obj->abt_numeric) {
226                $script_rfid_encode="if(script_rfid_encode()==false) return false;";   
227                $bul_expl_form1 = str_replace('!!questionrfid!!', $script_rfid_encode, $bul_expl_form1);
228        }
229        else $bul_expl_form1 = str_replace('!!questionrfid!!', '', $bul_expl_form1);
230       
231        $bul_expl_form1 = str_replace('!!create_notice_bul!!', '<input type="checkbox" value="1" id="create_notice_bul" name="create_notice_bul">&nbsp;'.$msg['bulletinage_create_notice'], $bul_expl_form1);
232       
233        return $bul_expl_form1 ;
234}
235
236function sql_value($rqt) {
237        if($result=pmb_mysql_query($rqt))
238                if($row = pmb_mysql_fetch_row($result)) return $row[0];
239        return '';
240}
241
242$requete = "SELECT * FROM abts_grille_abt WHERE id_bull='$id_bull'";
243$abtsQuery = pmb_mysql_query($requete, $dbh);
244if(pmb_mysql_num_rows($abtsQuery)) {
245        $abts = pmb_mysql_fetch_object($abtsQuery);
246        $modele_id = $abts->modele_id;
247        $abt_id = $abts->num_abt;
248        $value['date_date']=$abts->date_parution;
249}
250$requete = "SELECT * FROM abts_abts WHERE abt_id='$abt_id'";
251$abtsQuery = pmb_mysql_query($requete, $dbh);
252if(pmb_mysql_num_rows($abtsQuery)) {
253        $abts = pmb_mysql_fetch_object($abtsQuery);
254        $abt_numeric = $abts->abt_numeric;
255        $exemp_auto = $abts->exemp_auto;
256        $type_antivol = $abts->type_antivol;
257        $date_debut = $abts->date_debut;
258        $date_fin = $abts->date_fin;
259       
260}
261$requete = "SELECT num_notice,format_periode FROM abts_modeles WHERE modele_id='$modele_id'";
262$abtsQuery = pmb_mysql_query($requete, $dbh);
263if(pmb_mysql_num_rows($abtsQuery)) {
264        $abts = pmb_mysql_fetch_object($abtsQuery);
265        $format_periode = $abts->format_periode;
266        $serial_id = $abts->num_notice;
267}
268
269//Préparation nouveau bulletin
270$myBulletinage = new bulletinage(0, $serial_id);
271
272//Genération du libellé de période
273$print_format=new parse_format();
274$print_format->var_format['DATE'] = $value['date_date'];
275$print_format->var_format['NUM'] = $nume;
276$print_format->var_format['VOL'] = $vol;
277$print_format->var_format['TOM'] = $tom;
278$print_format->var_format['START_DATE'] = $date_debut;
279$print_format->var_format['END_DATE'] = $date_fin;
280
281$requete = "SELECT * FROM abts_abts_modeles WHERE modele_id='$modele_id' and abt_id='$abt_id' ";
282$abtsabtsQuery = pmb_mysql_query($requete, $dbh);
283if(pmb_mysql_num_rows($abtsabtsQuery)) {
284        $abtsabts = pmb_mysql_fetch_object($abtsabtsQuery);
285        $print_format->var_format['START_NUM'] = $abtsabts->num;
286        $print_format->var_format['START_VOL'] = $abtsabts->vol;
287        $print_format->var_format['START_TOM'] = $abtsabts->tome;       
288        $num_statut=$abtsabts->num_statut_general;
289}
290
291
292$print_format->cmd = $format_periode;
293$libelle_periode=$print_format->exec_cmd();
294
295$flag_exemp_auto=0;
296if ($exemp_auto==1){
297        require_once($include_path."/$pmb_numero_exemplaire_auto_script");
298        $flag_exemp_auto=1;
299}
300
301if(($act=='update') ) {
302        $value['niveau_biblio']='b'; 
303        $value['niveau_hierar']='2'; 
304        $value['bul_no']=$bul_no;
305        $value['bul_date']=$bul_date;
306        // on verifie l'existance du bulletin
307        if(!$bul_id){
308                if(!($bul_id=sql_value("SELECT bulletin_id FROM bulletins where  bulletin_numero='$bul_no' and date_date='".$value['date_date']."' and bulletin_notice='$serial_id'"))){
309                        //création de notice de bulletin si case à cocher
310                        if ($create_notice_bul) {
311                                $value['create_notice_bul']=true;
312                                $value['tit1'] = $value["bul_no"].($value["bul_date"]?" - ".$value["bul_date"]:"").($bul_titre?" - ".$bul_titre:"");
313                                $value['typdoc']=$xmlta_doctype_bulletin;
314                                $value['statut']=$deflt_notice_statut;
315                               
316                                if($value['date_date'] == '0000-00-00' || !isset($value['bul_date'])) $value['year'] = "";
317                                else $value['year'] = substr($value['date_date'],0,4);
318                               
319                                $value['date_parution'] = $value['date_date'];
320                        }               
321                        //Création du bulletin si pas déjà présent
322                        $bul_id = $myBulletinage->update($value);
323                }
324        }
325        if(!$abt_numeric){
326                // c'est un abonnement qui n'est pas exclusivement numérique. On crée l'exemplaire de bulletin
327                $expl_cote = clean_string($expl_cote);
328                $expl_note = clean_string($expl_note);
329                $expl_comment = clean_string($expl_comment);
330                $expl_prix = clean_string($expl_prix); 
331               
332                $formlocid="f_ex_section".$expl_location ;
333                $expl_section=$$formlocid ;
334       
335                // si le code-barre saisi est vide, on affiche une erreur
336                if (trim($f_ex_cb) == "") {
337                        print "<script>alert('".addslashes($msg['pointage_message_code_vide'])."'); history.go(-1);</script>";
338                        exit();
339                }
340                // si le code-barre saisi est déjà utilisé, on affiche une erreur
341                $requete = "SELECT COUNT(1) FROM exemplaires WHERE expl_cb='$f_ex_cb'";
342                $myQuery = pmb_mysql_query($requete, $dbh);
343                if(pmb_mysql_result($myQuery, 0, 0))  { 
344                        print "<script>alert('".addslashes($msg['pointage_message_code_utilise'])."'); history.go(-1);</script>";
345                        exit();
346                }
347                // Dépiéger l'exemplaire (lié à l'abonnement) du dernier bulletin               
348                if($num_statut) {
349                        //A ne faire que si l'abonnement n'a pas de liste de circulation associée...
350                        $query = "select id_serialcirc from serialcirc where num_serialcirc_abt = ".$abt_id;
351                        $result = pmb_mysql_query($query,$dbh);
352                        if(!pmb_mysql_num_rows($result)){
353                                $requete="SELECT bulletin_id  FROM bulletins where date_date<'$date_date' and bulletin_notice='$serial_id' ORDER BY date_date DESC LIMIT 1";
354                                $result_dernier = pmb_mysql_query($requete,$dbh);
355                                if ($r_dernier = pmb_mysql_fetch_object($result_dernier)) {
356                                        $dernier_bul_id =$r_dernier->bulletin_id;
357                                        $requete = "update exemplaires set expl_statut=$num_statut where expl_bulletin=$dernier_bul_id and expl_abt_num='$abt_id' ";
358                                        pmb_mysql_query($requete, $dbh);
359                                }
360                        }
361                }
362               
363               
364                $transfert_origine=", transfert_location_origine='$expl_location', transfert_statut_origine='$expl_statut', transfert_section_origine='$expl_section' ";
365               
366                // on prépare la date de création ou modification
367                $expl_date = today();
368               
369                $values = "expl_cb='$f_ex_cb'";
370                $values .= ", expl_notice='0'";
371                $values .= ", expl_bulletin='$bul_id'";
372                $values .= ", expl_typdoc='$expl_typdoc'";
373                $values .= ", expl_cote='$expl_cote'";
374                $values .= ", expl_section='$expl_section'";
375                $values .= ", expl_statut='$expl_statut'";
376                $values .= ", expl_location='$expl_location' $transfert_origine ";
377                $values .= ", expl_codestat='$expl_codestat'";
378                $values .= ", expl_note='$expl_note'";
379                $values .= ", expl_comment='$expl_comment'";
380                $values .= ", expl_prix='$expl_prix'";
381                $values .= ", expl_owner='$expl_owner'";
382                $values .= ", type_antivol='$type_antivol'";
383                $values .= ", expl_abt_num='$abt_id'";
384                $requete = "INSERT INTO exemplaires set $values , create_date=sysdate() ";
385       
386                $myQuery = pmb_mysql_query($requete, $dbh);
387                $expl_id=pmb_mysql_insert_id(); 
388                audit::insert_creation (AUDIT_EXPL, $expl_id) ;
389
390                //parametres_perso de l'exemplaire
391                $p_perso=new parametres_perso("expl");
392                $nberrors=$p_perso->check_submited_fields();
393                if(!$nberrors) $p_perso->rec_fields_perso($expl_id);
394
395                $serialcirc_diff=new serialcirc_diff(0,$abt_id);
396                if(count($serialcirc_diff->diffusion)){ //est-ce qu'il y a des destinataires ?
397                        // Si c'est à faire circuler
398                        if($serialcirc_diff->id){ 
399                                $serialcirc_diff->add_circ_expl($expl_id);
400                                $serialcir_print="<br/><input class='bouton' type='button' onclick='serialcirc_print_list_circ($expl_id,0);return false;' value='".$msg['serialcirc_circ_list_bull_circulation_imprimer_bt']."'>";
401                        }elseif ($pmb_serialcirc_subst){                       
402                                $print_cote="<img src='./images/print.gif' alt='Imprimer...' title='Imprimer...' align='middle' border='0'      style='padding-left:7px' onclick='imprime_cote($expl_id);return false;' >";
403                        }
404                }
405       
406        }
407        //Mis à jour du bulletin avec les valeurs du formulaire
408        $requete = "UPDATE bulletins set bulletin_numero='$bul_no',date_date='$date_date', mention_date='$bul_date', bulletin_titre='$bul_titre' WHERE bulletin_id='$bul_id' ";
409        $myQuery = pmb_mysql_query($requete, $dbh);
410       
411        // Mise a jour de la table notices_mots_global_index pour toutes les notices en relation avec l'exemplaire
412        $req_maj="SELECT bulletin_notice,num_notice, analysis_notice FROM bulletins LEFT JOIN analysis ON analysis_bulletin=bulletin_id WHERE bulletin_id='".$bul_id."'";
413        $res_maj=pmb_mysql_query($req_maj);
414        if($res_maj && pmb_mysql_num_rows($res_maj)){
415                $first=true;//Pour la premiere ligne de résultat on doit indexer aussi la notice de périodique et de bulletin au besoin
416                while ( $ligne=pmb_mysql_fetch_object($res_maj) ) {
417                        if($first){
418                                if($ligne->bulletin_notice){
419                                        notice::majNoticesMotsGlobalIndex($ligne->bulletin_notice,'expl');
420                                }
421                                if($ligne->num_notice){
422                                        notice::majNoticesMotsGlobalIndex($ligne->num_notice,'expl');
423                                }
424                        }
425                        if($ligne->analysis_notice){
426                                notice::majNoticesMotsGlobalIndex($ligne->analysis_notice,'expl');
427                        }
428                        $first=false;
429                }
430        }
431       
432        // Déclaration du bulletin comme reçu
433        $requete="update abts_grille_abt set state='2' where id_bull= '$id_bull' ";     
434        pmb_mysql_query($requete);
435       
436       
437        if(($f_fichier["name"]!="") || trim($f_url)){   
438                // Il y a un document numérique rattaché au bulletin
439                $up_place=0;
440                $id_rep=0;
441                $path = '';
442                $ck_index=0;
443                if ($deflt_upload_repertoire) {
444                        $id_rep = $deflt_upload_repertoire;
445                        if($id_rep) {
446                                $r = new upload_folder($id_rep);
447                                $path = $r->repertoire_nom;
448                                $up_place = 1;
449                        }
450                }       
451                if ($pmb_indexation_docnum && $pmb_indexation_docnum_default) $ck_index=1;
452                $explnum = new explnum();       
453                // Url de retour après téléchargement du document.     
454                $retour ="$base_path/catalog/serials/pointage/pointage_exemplarise.php?act=memo_doc_num&id_bull=$id_bull&bul_id=$bul_id";               
455                $explnum->mise_a_jour(0, $bul_id, $f_filename, $f_url, $retour,0,0, $f_explnum_statut); 
456                exit();
457        }else{ 
458                // Pas de doc numérique, on ferme l'iframe
459                $id_form = md5(microtime());
460                $templates=str_replace("!!form!!","<script type='text/javascript'>enregistre('$id_bull','$bul_id');</script>",$templates);     
461        }
462} else {
463        // Formulaire
464        include("$include_path/templates/serials.tpl.php");
465       
466        abts_pointage::delete_retard($abt_id,  $value['date_date'],$numero);   
467       
468        if($nonrecevable) {
469                $value['bul_titre'] = $msg['abonnements_bulletin_non_recevable'] ;
470                $requete="update abts_grille_abt set state='3' where id_bull= '$id_bull' ";     
471                pmb_mysql_query($requete);             
472                abts_pointage::delete_retard($abt_id);
473                $templates=str_replace("!!form!!","<script type='text/javascript'>parent.kill_frame_periodique();</script>",$templates);//Il ne faut pas utiliser la fonction Fermer() pour pouvoir recevoir un bulletin que l'on aurai coché "Non recevable" par erreur
474                print $templates;
475                exit();
476        }
477        $expl = new stdClass();
478        $expl->date_date =$value['date_date'];
479        $expl->bul_date = $libelle_periode; 
480        $expl->bul_no = stripslashes($numero);
481               
482        //Récupération des infos du bulletin pour les proposer sur la frame
483        $requete = "SELECT * FROM bulletins where bulletin_numero='$numero' and bulletin_notice='$serial_id' and date_date='".$value['date_date']."'";
484        $bull_Query = pmb_mysql_query($requete, $dbh);
485        if(pmb_mysql_num_rows($bull_Query)) {   
486                $bull = pmb_mysql_fetch_object($bull_Query);
487                $bul_id= $bull->bulletin_id;
488                $expl->date_date = $bull->date_date;
489                $expl->bul_date = $bull->mention_date;
490                $expl->bul_titre = $bull->bulletin_titre;
491        }       
492        if($flag_exemp_auto==1) {
493                //Génération automatique de code barre, activé pour cet abonnement
494                $requete="DELETE from exemplaires_temp where sess not in (select SESSID from sessions)";
495                $res = pmb_mysql_query($requete,$dbh); 
496        //Appel à la fonction de génération automatique de cb
497        $code_exemplaire =init_gen_code_exemplaire(0,$bul_id);
498        do {
499                $code_exemplaire = gen_code_exemplaire(0,$bul_id,$code_exemplaire);
500                $requete="select expl_cb from exemplaires WHERE expl_cb='$code_exemplaire'";
501                $res0 = pmb_mysql_query($requete,$dbh);
502                $requete="select cb from exemplaires_temp WHERE cb='$code_exemplaire' AND sess <>'".SESSid."'";
503                $res1 = pmb_mysql_query($requete,$dbh);
504        } while((pmb_mysql_num_rows($res0)||pmb_mysql_num_rows($res1)));
505               
506                //Memorise dans temps le cb et la session pour le cas de multi utilisateur session
507                $requete="INSERT INTO exemplaires_temp (cb ,sess) VALUES ('$code_exemplaire','".SESSid."')";
508                $res = pmb_mysql_query($requete,$dbh);
509                $expl->expl_cb=$code_exemplaire;       
510                //Focus sur le bouton 'Enregistre'
511                $expl->focus="<script type='text/javascript' >document.forms[\"expl\"].bouton_enregistre.focus();</script>";
512        } else {
513                //Focus sur le l'input de saisie de code barre
514                $expl->focus="<script type='text/javascript' >document.forms[\"expl\"].f_ex_cb.focus();</script>";
515        }
516        $bull_form="";                         
517        $perio = new serial_display($myBulletinage->serial_id, 1);
518        $perio_header =  $perio->header;
519       
520        print pmb_bidi("<div class='row'><h2>".$perio_header.'</h2></div>');
521        if($abt_numeric){
522                $expl->abt_numeric=1;
523        }else {
524                // c'est un abonnement qui n'est pas exclusivement numérique. On crée le formulaire de l'exemplaire de bulletin
525                $expl->abt_numeric=0;
526
527                $requete = "SELECT * FROM abts_abts WHERE abt_id='$abt_id'";
528                $abtsQuery = pmb_mysql_query($requete, $dbh);
529                if(pmb_mysql_num_rows($abtsQuery)) {
530                        $abts = pmb_mysql_fetch_object($abtsQuery);
531                        $expl->expl_cote = $abts->cote;
532                        $expl->expl_location = $abts->location_id;
533                        $expl->expl_section = $abts->section_id;
534                        $expl->expl_codestat = $abts->codestat_id;
535                        $expl->expl_typdoc = $abts->typdoc_id;
536                        $expl->expl_statut = $abts->statut_id;
537                        $expl->expl_owner = $abts->lender_id;
538                        $expl->type_antivol = $abts->type_antivol;
539                        $expl->expl_note = $abts->expl_note;
540                        $expl->expl_comment = $abts->expl_comment;
541                        $expl->expl_prix = $abts->expl_prix;           
542                        $expl->destinataire = $abts->destinataire;
543                }                               
544                // sélection de la cote dewey de la notice chapeau pour pré-renseignement de la cote en création expl
545                $query_cote = "select indexint_name from indexint, notices, bulletins where bulletin_id='$bul_id' and bulletin_notice=notice_id and notices.indexint=indexint.indexint_id ";
546                $myQuery_cote = pmb_mysql_query($query_cote , $dbh);
547                if(pmb_mysql_num_rows($myQuery_cote)) {
548                        $pre_cote = pmb_mysql_fetch_object($myQuery_cote);
549                        $expl->expl_cote = $pre_cote->indexint_name ;
550                }       
551        }       
552        $bull_form.= bul_do_form($expl);
553        $templates=str_replace("!!form!!",$bull_form,$templates);       
554}
555$templates=str_replace("!!serialcir_print!!",$serialcir_print,$templates);
556$templates=str_replace("!!print_cote!!",$print_cote,$templates);
557
558print $templates;
559?>
Note: See TracBrowser for help on using the repository browser.