source: pmb4.2/trunk/fuentes/pmb/classes/serialcirc_diff.class.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: 38.3 KB
Line 
1<?php
2// +-------------------------------------------------+
3// | 2002-2007 PMB Services / www.sigb.net pmb@sigb.net et contributeurs (voir www.sigb.net)
4// +-------------------------------------------------+
5// $Id: serialcirc_diff.class.php,v 1.23.4.1 2015-09-22 13:17:41 ngantier Exp $
6
7if (stristr($_SERVER['REQUEST_URI'], ".class.php")) die("no access");
8
9require_once($include_path."/serialcirc.inc.php"); // constant déclaration
10require_once($include_path."/templates/serialcirc_diff.tpl.php");
11require_once($class_path."/serial_display.class.php");
12require_once($class_path."/empr_caddie.class.php");     
13require_once($class_path."/serialcirc_ask.class.php");
14require_once($class_path."/serialcirc_tpl.class.php");
15require_once($class_path."/serialcirc_print_fields.class.php");
16require_once($class_path."/parametres_perso.class.php");
17       
18class serialcirc_diff {
19       
20        var $diffusion=array();
21        var $abt_info=array();
22        var $serial_info=array();
23        var $num_abt=0;
24        var $circ_type=0; // rotative, étoile
25        var $virtual_circ=0; // virtuelle
26        var $simple_circ=0; // simplifiée
27        var $no_ret_circ=0; // pas de retour sur site
28       
29        var $num_periodicite=0;
30        var $retard_mode=0;
31        var $checked=0;
32        var $allow_send_ask=0;
33        var $allow_resa=0;
34        var $allow_copy=0;                     
35        var $allow_subscription=0;
36        var $duration_before_send=0;
37        var $expl_statut_circ=0;
38        var $expl_statut_circ_after=0;
39        var $sort_diff='';
40       
41        function serialcirc_diff($id_serialcirc=0,$num_abt=0 ) {
42                $id_serialcirc+=0;
43                $num_abt+=0;           
44                if($num_abt && !$id_serialcirc){                       
45                        $requete="select id_serialcirc from serialcirc where num_serialcirc_abt=".$num_abt;
46                        $resultat=pmb_mysql_query($requete);
47                        if (pmb_mysql_num_rows($resultat)) {
48                                $r=pmb_mysql_fetch_object($resultat);
49                                $id_serialcirc=$r->id_serialcirc;
50                        }                       
51                } elseif(!$num_abt && $id_serialcirc){
52                        $requete="select num_serialcirc_abt from serialcirc where id_serialcirc=".$id_serialcirc;
53                        $resultat=pmb_mysql_query($requete);
54                        if (pmb_mysql_num_rows($resultat)) {
55                                $r=pmb_mysql_fetch_object($resultat);
56                                $num_abt=$r->num_serialcirc_abt;
57                        }                       
58                       
59                }
60                $this->num_abt=$num_abt;       
61                $this->id=$id_serialcirc;               
62                $this->fetch_data(); 
63        }
64       
65        function fetch_data() {
66                $this->diffusion=array();
67                $this->abt_info=array();
68                $this->serial_info=array();
69                //on récupère les infos liées au périos
70                if($this->num_abt){
71                        $query = "select notice_id,tit1,abt_name from abts_abts join notices on notice_id = num_notice and abt_id = ".$this->num_abt;
72                        $result = pmb_mysql_query($query);
73                        if(pmb_mysql_num_rows($result)){
74                                $row = pmb_mysql_fetch_object($result);
75                                $this->abt_name=$row->abt_name; 
76                                $this->id_perio=$row->notice_id;
77                                $this->serial_info['serial_link']=      "./catalog.php?categ=serials&sub=view&serial_id=".$row->notice_id;
78                                $this->serial_info['serial_name']=$row->tit1;
79                                $this->serial_info['abt_link']="catalog.php?categ=serials&sub=view&view=abon&serial_id=".$row->notice_id;
80                                $this->serial_info['serialcirc_link']="catalog.php?categ=serialcirc_diff&sub=view&num_abt=".$this->num_abt;
81                                $this->serial_info['abt_name']=$row->abt_name;
82                                $this->serial_info['bulletinage_link']="./catalog.php?categ=serials&sub=pointage&serial_id=".$row->notice_id;                   
83                        }
84                }
85                //on récupère les in infos sur la circulation
86                if($this->id){
87                        $requete="select * from serialcirc where id_serialcirc=".$this->id ;
88                        $resultat=pmb_mysql_query($requete);
89                        if (pmb_mysql_num_rows($resultat)) {
90                                $r=pmb_mysql_fetch_object($resultat);                                           
91                                $this->circ_type=$r->serialcirc_type; // rotative ou étoile
92                                $this->virtual_circ=$r->serialcirc_virtual; // virtuelle
93                                $this->simple_circ=$r->serialcirc_simple; // virtuelle
94                                $this->no_ret_circ=$r->serialcirc_no_ret; 
95                                $this->duration=$r->serialcirc_duration;
96                                $this->checked=$r->serialcirc_checked;
97                                $this->retard_mode=$r->serialcirc_retard_mode;
98                                $this->allow_send_ask=$r->serialcirc_allow_send_ask;
99                                $this->allow_resa=$r->serialcirc_allow_resa;
100                                $this->allow_copy=$r->serialcirc_allow_copy;                   
101                                $this->allow_subscription=$r->serialcirc_allow_subscription;
102                                $this->duration_before_send=$r->serialcirc_duration_before_send;
103                                $this->expl_statut_circ=$r->serialcirc_expl_statut_circ;
104                                $this->piedpage=$r->serialcirc_piedpage;
105                                $this->tpl=$r->serialcirc_tpl;
106                                $this->expl_statut_circ_after=$r->serialcirc_expl_statut_circ_after;
107                                $this->sort_diff=$r->serialcirc_sort_diff;
108                               
109                                // liste des lecteurs et groupes de lecteur
110                                $requete="select * from serialcirc_diff where num_serialcirc_diff_serialcirc=".$this->id." order by serialcirc_diff_order";
111                                $resultat=pmb_mysql_query($requete);
112       
113                                while($r_empr=pmb_mysql_fetch_object($resultat)){                               
114                                        $this->diffusion[$r_empr->id_serialcirc_diff]['id']=$r_empr->id_serialcirc_diff;
115                                        $this->diffusion[$r_empr->id_serialcirc_diff]['empr_type']=$r_empr->serialcirc_diff_empr_type;
116                                        $this->diffusion[$r_empr->id_serialcirc_diff]['type_diff']=$r_empr->serialcirc_diff_type_diff;
117                                        $this->diffusion[$r_empr->id_serialcirc_diff]['num_empr']=$r_empr->num_serialcirc_diff_empr;
118                                        $this->diffusion[$r_empr->id_serialcirc_diff]['empr_name']=$r_empr->serialcirc_diff_group_name;
119                                        $this->diffusion[$r_empr->id_serialcirc_diff]['order']=$r_empr->serialcirc_diff_order;
120                                        $this->diffusion[$r_empr->id_serialcirc_diff]['duration']=$r_empr->serialcirc_diff_duration;
121                                        $this->diffusion[$r_empr->id_serialcirc_diff]['group']= array();// tableau des lecteurs du group
122                                        if($this->diffusion[$r_empr->id_serialcirc_diff]['empr_type']==SERIALCIRC_EMPR_TYPE_group){
123                                                // C'est un groupe; on va chercher les lecteurs de ce groupe
124                                                $requete="select * from serialcirc_group where num_serialcirc_group_diff=".$this->diffusion[$r_empr->id_serialcirc_diff]['id']." order by serialcirc_group_order";
125                                                $resultat_group_empr=pmb_mysql_query($requete);
126                                                $cpt_empr_group=0;
127                                                while($r_group_empr=pmb_mysql_fetch_object($resultat_group_empr)){
128                                                        $this->diffusion[$r_empr->id_serialcirc_diff]['group'][$cpt_empr_group]['id']=$r_group_empr->id_serialcirc_group;
129                                                        $this->diffusion[$r_empr->id_serialcirc_diff]['group'][$cpt_empr_group]['num_empr']=$r_group_empr->num_serialcirc_group_empr;
130                                                        $this->diffusion[$r_empr->id_serialcirc_diff]['group'][$cpt_empr_group]['order']=$r_group_empr->serialcirc_group_order;
131                                                        $this->diffusion[$r_empr->id_serialcirc_diff]['group'][$cpt_empr_group]['responsable']=$r_group_empr->serialcirc_group_responsable;                                             
132                                                        $this->diffusion[$r_empr->id_serialcirc_diff]['group'][$cpt_empr_group]['empr']=$this->empr_info($r_group_empr->num_serialcirc_group_empr);     
133                                                        $cpt_empr_group++;                             
134                                                }                                                       
135                                        } else{
136                                                // c'est un emprunteur physique
137                                                $this->diffusion[$r_empr->id_serialcirc_diff]['empr']=$this->empr_info($this->diffusion[$r_empr->id_serialcirc_diff]['num_empr']);
138                                        }
139                                }
140                        }
141                }else{
142                        $this->duration= $this->get_consultation_duration();
143                }       
144                //print"<pre>";print_r($this->diffusion);print"</pre>";exit;
145        }
146       
147        function get_consultation_duration(){
148                $requete="select consultation_duration from abts_periodicites , abts_abts,abts_modeles, abts_abts_modeles where
149                        abts_abts.abt_id=abts_abts_modeles.abt_id and abts_modeles.modele_id=abts_abts_modeles.modele_id and num_periodicite=periodicite_id
150                        and abts_abts.abt_id=".$this->num_abt ;
151                $resultat=pmb_mysql_query($requete);
152                $r=pmb_mysql_fetch_object($resultat);                   
153                return  $r->consultation_duration;
154        }
155       
156        function add_circ_expl($expl_id){
157                global $dbh;
158                if(!$this->id || !$expl_id) return 0;
159                $req="INSERT INTO serialcirc_expl SET
160                        num_serialcirc_expl_id=".$expl_id.",
161                        num_serialcirc_expl_serialcirc=".$this->id.",
162                        serialcirc_expl_bulletine_date=now();
163                ";
164                pmb_mysql_query($req, $dbh);                           
165        }
166       
167        function empr_info($id){
168                global $dbh;
169               
170                $info=array();
171                $req="select empr_cb, empr_nom ,  empr_prenom, empr_mail from empr where id_empr=".$id;
172                $res_empr=pmb_mysql_query($req);
173                if ($empr=pmb_mysql_fetch_object($res_empr)) {                 
174                        $info['cb'] = $empr->empr_cb;
175                        $info['nom'] = $empr->empr_nom; 
176                        $info['prenom'] = $empr->empr_prenom; 
177                        $info['mail'] = $empr->empr_mail;               
178                        $info['id_empr']=$id;
179                        $info['view_link']='./circ.php?categ=pret&form_cb='.$empr->empr_cb;
180                        $info['empr_libelle']=$info['nom']." ".$info['prenom']." ( ".$info['cb'] ." ) ";
181                }
182                $this->empr_info[$id]=$info;
183                return $info;
184        }       
185       
186        function update_serialcirc($data=''){
187                global $dbh;
188               
189                if(!$data){
190                        $data['circ_type']=0;
191                        $data['virtual_circ']=0;
192                        $data['simple_circ']=0;
193                        $data['no_ret_circ']+=0;
194                        $data['duration']=0;
195                        $data['checked']=0;
196                        $data['retard_mode']=0;
197                        $data['allow_resa']=0;
198                        $data['allow_copy']=0;
199                        $data['allow_send_ask']=0;
200                        $data['allow_subscription']=0;
201                        $data['duration_before_send']=0;
202                        $data['expl_statut_circ']=0;
203                        $data['expl_statut_circ_after']=0;
204                }else{
205                        $data['circ_type']+=0;
206                        $data['virtual_circ']+=0;
207                        $data['simple_circ']+=0;
208                        $data['no_ret_circ']+=0;
209                        $data['duration']+=0;
210                        $data['checked']+=0;
211                        $data['retard_mode']+=0;
212                        $data['allow_resa']+=0;
213                        $data['allow_copy']+=0;
214                        $data['allow_send_ask']+=0;
215                        $data['allow_subscription']+=0;
216                        $data['duration_before_send']+=0;
217                        $data['expl_statut_circ']+=0;
218                        $data['expl_statut_circ_after']+=0;                     
219                }
220               
221                if(!$this->id){ 
222                        $req="INSERT INTO serialcirc SET
223                                num_serialcirc_abt=".$this->num_abt.",
224                                serialcirc_type=".$data['circ_type'].",
225                                serialcirc_virtual=".$data['virtual_circ'].",
226                                serialcirc_simple=".$data['simple_circ'].",
227                                serialcirc_no_ret=".$data['no_ret_circ'].",
228                                serialcirc_duration=".$data['duration'].",
229                                serialcirc_checked=".$data['checked'].",
230                                serialcirc_retard_mode=".$data['retard_mode'].",
231                                serialcirc_allow_resa=".$data['allow_resa'].",
232                                serialcirc_allow_copy=".$data['allow_copy'].",
233                                serialcirc_allow_send_ask=".$data['allow_send_ask'].",
234                                serialcirc_allow_subscription=".$data['allow_subscription'].",
235                                serialcirc_duration_before_send=".$data['duration_before_send'].",
236                                serialcirc_expl_statut_circ=".$data['expl_statut_circ'].",
237                                serialcirc_expl_statut_circ_after=".$data['expl_statut_circ_after']."
238                        ";     
239                        pmb_mysql_query($req, $dbh);
240                        $this->id = pmb_mysql_insert_id($dbh);
241                }else{
242                        $req="UPDATE serialcirc SET
243                                num_serialcirc_abt=".$this->num_abt.",
244                                serialcirc_type=".$data['circ_type'].",
245                                serialcirc_virtual=".$data['virtual_circ'].",
246                                serialcirc_simple=".$data['simple_circ'].",
247                                serialcirc_no_ret=".$data['no_ret_circ'].",
248                                serialcirc_duration=".$data['duration'].",
249                                serialcirc_checked=".$data['checked'].",
250                                serialcirc_retard_mode=".$data['retard_mode'].",
251                                serialcirc_allow_resa=".$data['allow_resa'].",
252                                serialcirc_allow_copy=".$data['allow_copy'].",
253                                serialcirc_allow_send_ask=".$data['allow_send_ask'].",
254                                serialcirc_allow_subscription=".$data['allow_subscription'].",
255                                serialcirc_duration_before_send=".$data['duration_before_send'].",
256                                serialcirc_expl_statut_circ=".$data['expl_statut_circ'].",
257                                serialcirc_expl_statut_circ_after=".$data['expl_statut_circ_after']."
258                                WHERE id_serialcirc=".$this->id."
259                        ";     
260                        pmb_mysql_query($req, $dbh);                   
261                }       
262                //print $req;
263                $this->fetch_data(); 
264        }
265       
266        function empr_list_form (){
267                global $serialcirc_diff_form_empr_list;
268                global $serialcirc_diff_form_empr_list_empr;
269                global $serialcirc_diff_form_empr_list_group;           
270                global $serialcirc_diff_form_empr_list_group_elt;
271                global $serialcirc_diff_form_empr_list_group_empty;
272                global $msg;
273               
274                foreach($this->diffusion as $diff){                     
275                        if($diff['empr_type']==SERIALCIRC_EMPR_TYPE_empr){                             
276                                $tpl_empr=$serialcirc_diff_form_empr_list_empr;
277                                $name_elt=$this->empr_info[ $diff['empr']['id_empr']]['empr_libelle'];                         
278                        }else{                                 
279                                $name_elt=$diff['empr_name'];   
280                                $group_list_list="";
281                                if(count($diff['group'])){
282                                        $tpl_empr=$serialcirc_diff_form_empr_list_group;
283                                        $cpt=0;
284                                        foreach($diff['group'] as $empr){                       
285                                                $group_list=$serialcirc_diff_form_empr_list_group_elt;
286                                                $group_list=str_replace('!!id_empr!!', $empr['num_empr'], $group_list);
287                                                $group_list=str_replace('!!order!!', $cpt, $group_list);
288                                                $resp="";
289                                                if($empr['responsable']){
290                                                        $resp=$msg["serialcirc_group_responsable"];
291                                                }                                               
292                                                $group_list=str_replace('!!empr_libelle!!',$empr['empr']['empr_libelle'].$resp, $group_list);
293                                               
294                                               
295                                               
296                                                $group_list=str_replace('!!empr_cpt!!', $cpt, $group_list);     
297                                                $group_list_list.=$group_list;
298                                               
299                                                $cpt++; 
300                                        }                                       
301                                        $tpl_empr=str_replace('!!empr_list!!', $group_list_list, $tpl_empr);
302                                }else {
303                                        $tpl_empr=$serialcirc_diff_form_empr_list_group_empty;                                 
304                                }                                                       
305                        }                               
306                        $tpl_empr=str_replace('!!id_diff!!', $diff['id'], $tpl_empr);                   
307                        $tpl_empr=str_replace('!!empr_name!!', $name_elt, $tpl_empr);   
308                        $tpl_empr_list.=$tpl_empr;                             
309                }               
310                $form=$serialcirc_diff_form_empr_list;
311                if (count($this->diffusion)) {         
312                        $fields =new serialcirc_print_fields();
313                        $select_field=$fields->get_sort_form("sort_field",$this->sort_diff);
314                        $form=str_replace('!!sort_list!!', $select_field, $form);
315                } else {
316                        $form=str_replace('!!sort_list!!', "", $form);
317                }
318                $form=str_replace('!!empr_list!!', $tpl_empr_list, $form);     
319                return $form;
320        }       
321       
322        function empr_save($id_diff,$data){
323                global $dbh;
324               
325                $data['id_empr']+=0;
326                if(!$data['id_empr'])   return;
327                if(!$this->id){
328                        $this->update_serialcirc();
329                }       
330                $data['duration']+=0;
331                if(!$id_diff){                         
332                        $req="INSERT INTO serialcirc_diff SET
333                        num_serialcirc_diff_serialcirc=".$this->id.",
334                        serialcirc_diff_empr_type=".SERIALCIRC_EMPR_TYPE_empr.",
335                        num_serialcirc_diff_empr=".$data['id_empr'].",
336                        serialcirc_diff_duration=".$data['duration'].",
337                        serialcirc_diff_order=".count($this->diffusion)."                       
338                        ";
339                        pmb_mysql_query($req, $dbh);
340                        $id_serialcirc_diff = pmb_mysql_insert_id($dbh);               
341                }else{                         
342                        $req="UPDATE serialcirc_diff SET
343                        num_serialcirc_diff_serialcirc=".$this->id.",
344                        serialcirc_diff_empr_type=".SERIALCIRC_EMPR_TYPE_empr.",
345                        num_serialcirc_diff_empr=".$data['id_empr'].",
346                        serialcirc_diff_duration='".$data['duration']."'
347                        where id_serialcirc_diff=".$id_diff."                   
348                        ";
349                        pmb_mysql_query($req, $dbh);   
350                }
351                //print $req;
352                $this->fetch_data();           
353                serialcirc_ask::set_inscription($this->id_perio, $data['id_empr'],$this->id);           
354        }       
355       
356        function group_save($id_diff,$data){
357                global $dbh;
358
359                $id_diff+=0;
360                if(!$data['group_name'])        return;
361                if(!$this->id){
362                        $this->update_serialcirc();
363                }               
364                $data['duration']+=0;
365                if(!$this->diffusion[$id_diff]){                               
366                        $req="INSERT INTO serialcirc_diff SET
367                        num_serialcirc_diff_serialcirc=".$this->id.",
368                        serialcirc_diff_empr_type=".SERIALCIRC_EMPR_TYPE_group.",
369                        serialcirc_diff_type_diff='".$data['type_diff']."',
370                        serialcirc_diff_group_name='".$data['group_name']."',
371                        serialcirc_diff_duration=".$data['duration'].",
372                        serialcirc_diff_order=".count($this->diffusion)."                       
373                        ";
374                        pmb_mysql_query($req, $dbh);   
375                        $id_diff = pmb_mysql_insert_id($dbh);   
376                }else{                         
377                        $req="UPDATE serialcirc_diff SET
378                        num_serialcirc_diff_serialcirc=".$this->id.",
379                        serialcirc_diff_empr_type=".SERIALCIRC_EMPR_TYPE_group.",
380                        serialcirc_diff_type_diff='".$data['type_diff']."',
381                        serialcirc_diff_group_name='".$data['group_name']."',
382                        serialcirc_diff_duration='".$data['duration']."'
383                        where id_serialcirc_diff=".$id_diff."                   
384                        ";
385                        pmb_mysql_query($req, $dbh);   
386                }       
387
388                $req=" DELETE from serialcirc_group WHERE num_serialcirc_group_diff=$id_diff ";
389                pmb_mysql_query($req, $dbh);   
390                $order=0;
391                if(count($data['empr_list']))
392                foreach($data['empr_list'] as $id_empr){                       
393                        $req=" INSERT INTO serialcirc_group SET num_serialcirc_group_diff=$id_diff,num_serialcirc_group_empr=$id_empr,serialcirc_group_order=$order ";
394                        if($id_empr==$data['empr_resp'] )       $req.=", serialcirc_group_responsable=1";
395                        pmb_mysql_query($req, $dbh);   
396                        $order++;
397                }/*
398                if($data['add_type']==1 && $data['caddie_select']){// vient d'un panier
399                        $requete = "SELECT object_id, flag FROM empr_caddie_content where empr_caddie_id='".$data['caddie_select']."' ";
400                        $res = pmb_mysql_query($requete, $dbh);
401                        while($r=pmb_mysql_fetch_object($res)){
402                                $req=" INSERT INTO serialcirc_group SET num_serialcirc_group_diff=$id_diff,num_serialcirc_group_empr=".$r->object_id." ,serialcirc_group_order=$order ";
403                                pmb_mysql_query($req, $dbh);   
404                                $order++;                               
405                        }                       
406                }else
407                */if($data['add_type']==2 && $data['group_circ_select']){// vient d'un group
408                        $requete = "SELECT empr_id  FROM empr_groupe where groupe_id='".$data['group_circ_select']."' ";
409                        $res = pmb_mysql_query($requete, $dbh);
410                        while($r=pmb_mysql_fetch_object($res)){ 
411                                $req=" INSERT INTO serialcirc_group SET num_serialcirc_group_diff=$id_diff,num_serialcirc_group_empr=".$r->empr_id." ,serialcirc_group_order=$order ";
412                                pmb_mysql_query($req, $dbh);   
413                                $order++;                               
414                        }                                               
415                }
416                $this->fetch_data();
417        }
418       
419        function del_diff($id_diff){
420                global $dbh;
421                $req=" DELETE from serialcirc_group WHERE num_serialcirc_group_diff=$id_diff ";
422                pmb_mysql_query($req, $dbh);
423                $req=" DELETE from serialcirc_diff WHERE id_serialcirc_diff=$id_diff ";
424                pmb_mysql_query($req, $dbh);
425                $this->fetch_data();
426        }               
427
428       
429        function delete($num_abt=0){   
430                global $msg;
431               
432                if(!$num_abt)return;
433                if(serialcirc_diff::expl_in_circ($num_abt)){
434                        return $msg['serialcirc_error_delete_abt'];
435                }
436                $requete="select id_serialcirc from serialcirc where num_serialcirc_abt=".$num_abt;
437                $resultat=pmb_mysql_query($requete);
438                if (pmb_mysql_num_rows($resultat)) {
439                        $r = pmb_mysql_fetch_object($resultat);
440                        $id_serialcirc=$r->id_serialcirc;
441                                               
442                        $requete="select id_serialcirc_diff from serialcirc_diff where num_serialcirc_diff_serialcirc=".$id_serialcirc;
443                        $res_diff=pmb_mysql_query($requete);
444                        while($r = pmb_mysql_fetch_object($res_diff)){
445                                $id_diff=$r->id_serialcirc_diff;
446                               
447                                $requete="delete from serialcirc_group where num_serialcirc_group_diff=".$id_diff;
448                                pmb_mysql_query($requete);                             
449                                $requete="delete from serialcirc_expl where num_serialcirc_expl_serialcirc_diff=".$id_diff;
450                                pmb_mysql_query($requete);                                             
451                        }       
452                                                       
453                        $requete="delete from serialcirc_circ where num_serialcirc_circ_serialcirc=".$id_serialcirc;
454                        pmb_mysql_query($requete);     
455                        $requete="delete from serialcirc_diff where num_serialcirc_diff_serialcirc=".$id_serialcirc;
456                        pmb_mysql_query($requete);     
457                        $requete="delete from serialcirc_ask where num_serialcirc_ask_serialcirc=".$id_serialcirc;
458                        pmb_mysql_query($requete);
459                        $requete="delete from serialcirc where id_serialcirc=".$id_serialcirc;
460                        pmb_mysql_query($requete);
461                }       
462        }
463       
464        // l'abonnement a encore au moins un expl en circulation
465        function expl_in_circ($num_abt){
466                $requete="select num_serialcirc_expl_id from serialcirc, serialcirc_expl where num_serialcirc_expl_serialcirc=id_serialcirc and num_serialcirc_abt=".$num_abt;
467       
468                $resultat=pmb_mysql_query($requete);
469                if ($nb=pmb_mysql_num_rows($resultat)) {
470                        return $nb;
471                }
472                return 0;
473        }
474       
475        function get_caddie($id_caddie){
476                global $serialcirc_diff_form_group_empr_0;             
477                global $serialcirc_diff_form_group_empr;
478                global $charset,$dbh;
479               
480                $id_caddie+=0;
481                $empr_form_list="";                     
482                $empr_form=$serialcirc_diff_form_group_empr_0;
483                $requete = "SELECT * FROM empr, empr_caddie_content where empr_caddie_id='".$id_caddie."' and object_id=id_empr";
484                $res = pmb_mysql_query($requete, $dbh);
485                if (!$empr_count=pmb_mysql_num_rows($res)) {
486                        $empr_form=str_replace('!!empr_libelle!!', "", $empr_form);
487                        $empr_form=str_replace('!!empr_cpt!!', "0", $empr_form);                       
488                        $empr_form=str_replace('!!id_empr!!',"0", $empr_form);
489                        $empr_form=str_replace('!!checked!!',"", $empr_form);                   
490                        $empr_form_list=$empr_form;                     
491                }
492                $cpt=0; 
493                while($r=pmb_mysql_fetch_object($res)){         
494                        $empr_form=str_replace('!!id_empr!!', $r->id_empr, $empr_form);
495                        $empr_form=str_replace('!!empr_libelle!!',$r->empr_nom." ".$r->empr_prenom." (".$r->empr_cb." )", $empr_form);
496                        $empr_form=str_replace('!!checked!!','', $empr_form);
497                        $empr_form=str_replace('!!empr_cpt!!', $cpt, $empr_form);       
498                        $empr_form_list.=$empr_form;
499                        $empr_form=$serialcirc_diff_form_group_empr;
500                        $cpt++; 
501                }               
502                $empr_form_list=str_replace('!!empr_count!!', $empr_count, $empr_form_list);                   
503                return $empr_form_list;
504        }
505       
506        function show_form($form_ask=0,$id=0){
507                global $charset;
508                global $serialcirc_diff_form,$msg;
509                global $serialcirc_diff_form_empr;
510               
511                $form=$serialcirc_diff_form;
512                $form=str_replace('!!serialcirc_diff_form_empr_list!!', $this->empr_list_form(), $form);                       
513                switch($form_ask){
514                        case '1': // empr form
515                                $form_type=$this->empr_form($id);                               
516                        break;
517                        case '2': // group form                         
518                                $form_type=$this->group_form($id);                             
519                        break; 
520                        case '3': // group form                         
521                                $form_type=$this->option_form();                               
522                        break; 
523                        case '4': // add new empr from ask                             
524                                $form_type=$this->empr_add_form($id);                           
525                        break;
526                        case '5': // Fiche de circulation                               
527                                $form_type=$this->ficheformat_form();                           
528                        break;                                                 
529                        default:$form_type=$this->option_form($id);
530                }               
531                $form=str_replace('!!serialcirc_diff_form_type!!', $form_type, $form); 
532                $form=str_replace('!!serialcirc_diff_id!!', $this->id, $form); 
533                $form=str_replace('!!num_abt!!', $this->num_abt, $form);       
534                $form=str_replace('!!perio!!',   "<a href='".$this->serial_info['serial_link']."'>".htmlentities($this->serial_info['serial_name'],ENT_QUOTES,$charset)."</a>" , $form);       
535                $form=str_replace('!!abt!!',   "<a href='".$this->serial_info['abt_link']."'>".htmlentities($this->serial_info['abt_name'],ENT_QUOTES,$charset)."</a>" , $form);       
536                $form=str_replace('!!bulletinage_see!!',   "<a href='".$this->serial_info['bulletinage_link']."'>".htmlentities($msg['link_notice_to_bulletinage'],ENT_QUOTES,$charset)."</a>" , $form);       
537                $form=str_replace('!!num_abt!!', $this->num_abt, $form);       
538                $form=str_replace('!!form_ask!!', $form_ask, $form);   
539                return $form;
540        }
541       
542        function empr_form($id_diff=0){
543                global $serialcirc_diff_form_empr,$msg;         
544                $form=$serialcirc_diff_form_empr;
545               
546                if($id_diff){                   
547                        $form_title=$msg["serialcirc_diff_edit_title"];
548                        $form=str_replace('!!empr_libelle!!', $this->diffusion[$id_diff]['empr']['empr_libelle'], $form);
549                        $form=str_replace('!!duration!!', $this->diffusion[$id_diff]['duration'], $form);
550                        $id_empr=$this->diffusion[$id_diff]['empr']['id_empr'];
551                }else{                                 
552                        $form_title=$msg["serialcirc_diff_add_title"];
553                        $form=str_replace('!!empr_libelle!!','', $form);
554                        $form=str_replace('!!duration!!', $this->diffusion[$id_diff]['duration'], $form);
555                        $id_empr=0;
556                }       
557                $form=str_replace('!!id_empr!!', $id_empr, $form);     
558                $form=str_replace('!!id_diff!!', $id_diff, $form);             
559                $form=str_replace('!!form_title!!', $form_title, $form);               
560                return $form;
561        }
562               
563        function empr_add_form($id_empr){
564                global $serialcirc_diff_form_empr,$msg;         
565                $form=$serialcirc_diff_form_empr;
566                $empr_info= $this->empr_info($id_empr);
567                $form_title=$msg["serialcirc_diff_edit_title"];
568                $form=str_replace('!!empr_libelle!!', $empr_info['empr_libelle'], $form);
569                $form=str_replace('!!duration!!', '', $form);
570                $id_empr=$empr_info['id_empr'];
571       
572                $form=str_replace('!!id_empr!!', $id_empr, $form);     
573                $form=str_replace('!!id_diff!!', $id_diff, $form);             
574                $form=str_replace('!!form_title!!', $form_title, $form);
575               
576                return $form;
577        }                       
578        function group_form($id_diff=0){
579                global $serialcirc_diff_form_group,$msg, $charset;
580                global $serialcirc_diff_form_group_empr, $serialcirc_diff_form_group_empr_0;
581               
582                $form=$serialcirc_diff_form_group;
583                if($id_diff){                   
584                        $form_title=$msg["serialcirc_diff_edit_title"];
585                        $form=str_replace('!!group_name!!',$this->diffusion[$id_diff]['empr_name'], $form);
586                        $form=str_replace('!!duration!!', $this->diffusion[$id_diff]['duration'], $form);
587                }else{                                 
588                        $form_title=$msg["serialcirc_diff_add_title"];
589                        $form=str_replace('!!group_name!!','', $form);
590                }       
591                $checked="";
592                if ($this->diffusion[$id_diff]['type_diff'])$checked=" checked='checked' ";
593                $form=str_replace('!!type_diff_checked!!', $checked, $form);   
594               
595                $caddie_list = empr_caddie::get_cart_list();
596                $caddie_sel="";
597                foreach($caddie_list as $caddie){
598                        $caddie_sel.="<option value=".$caddie['idemprcaddie']." onchange=''>".htmlentities($caddie['name'],ENT_QUOTES,$charset)."</option>";
599                }
600                $group_empr_sel="";
601                $requete="select id_groupe, libelle_groupe from groupe";
602                $result=pmb_mysql_query($requete);
603                if (pmb_mysql_num_rows($result)) {
604                        while ($grp_temp=pmb_mysql_fetch_object($result)) {
605                                $group_empr_sel.="<option value=".$grp_temp->id_groupe." onchange=''>".htmlentities($grp_temp->libelle_groupe,ENT_QUOTES,$charset)."</option>";
606                        }
607                } 
608                $empr_form_list="";
609                $empr_form=$serialcirc_diff_form_group_empr_0;
610                $empr_count=count($this->diffusion[$id_diff]['group']);
611                if(!$empr_count){ // Pas de lecteur associés
612                        $empr_form=str_replace('!!empr_libelle!!', "", $empr_form);
613                        $empr_form=str_replace('!!empr_cpt!!', "0", $empr_form);                       
614                        $empr_form=str_replace('!!id_empr!!',"0", $empr_form);
615                        $empr_form=str_replace('!!checked!!',"", $empr_form);
616                       
617                        $empr_form_list=$empr_form;
618                }
619                if($empr_count){               
620                        $cpt=0; 
621                        foreach($this->diffusion[$id_diff]['group'] as $empr){                 
622                                $empr_form=str_replace('!!id_empr!!', $empr['num_empr'], $empr_form);
623                                $empr_form=str_replace('!!empr_libelle!!',$empr['empr']['empr_libelle'], $empr_form);
624                                $checked="";
625                                if($empr['responsable']){
626                                        $checked=" checked='checked' ";
627                                }
628                                $empr_form=str_replace('!!checked!!',$checked, $empr_form);
629                                $empr_form=str_replace('!!empr_cpt!!', $cpt, $empr_form);       
630                                $empr_form_list.=$empr_form;
631                                $empr_form=$serialcirc_diff_form_group_empr;
632                                $cpt++; 
633                        }
634                }               
635               
636                $form=str_replace('!!group_empr_list!!', $empr_form_list, $form);               
637                $form=str_replace('!!empr_count!!', $empr_count, $form);
638                $form=str_replace('!!caddie_select!!', $caddie_sel, $form);
639                $form=str_replace('!!group_circ_select!!', $group_empr_sel, $form);
640                $form=str_replace('!!id_diff!!', $id_diff, $form);             
641                $form=str_replace('!!form_title!!', $form_title, $form);               
642                return $form;
643        }
644       
645        function ficheformat_save($data){
646                $fields =new serialcirc_print_fields($this->id);               
647                $fields->save_form();
648                $this->fetch_data();           
649        }       
650       
651        function ficheformat_add_field($data){
652                $fields =new serialcirc_print_fields($this->id);               
653                $fields->add_field();           
654        }               
655       
656        function ficheformat_del_field($data){
657                $fields =new serialcirc_print_fields($this->id);               
658                $fields->del_field();           
659        }
660       
661        function ficheformat_change_fields($data){
662                global $form_serialcirc_tpl;
663               
664                $fields =new serialcirc_print_fields($this->id);
665                $fields->change_fields();
666                $this->tpl = ($form_serialcirc_tpl ? $form_serialcirc_tpl : "");
667        }
668                       
669        function ficheformat_form(){
670                global $serialcirc_diff_form_ficheformat;
671                global $msg;
672               
673                $form=$serialcirc_diff_form_ficheformat;
674               
675                if ($this->tpl+0 > 0) $selected = $this->tpl;
676                else $selected = 0;
677                $select_tpl=serialcirc_tpl::gen_tpl_select("form_serialcirc_tpl", $selected, "serialcirc_print_change_fields();");
678                $form=str_replace('!!fiche_tpl_field_sel!!', $select_tpl, $form);
679                $form=str_replace('!!fiche_tpl_id_sel!!', $selected, $form);
680                if (!$selected) {
681                        $fields =new serialcirc_print_fields($this->id);
682                        $select_field=$fields->get_select_form();
683                        $form=str_replace('!!fiche_add_field_sel!!', $select_field, $form);
684                       
685                        $piedpage_tpl="         
686                        <div class='row'>       
687                                <label class='etiquette' for='piedpage'>".$msg['serialcirc_diff_option_form_fiche_pied_page']."</label>!!fields_options!!
688                                <input class='bouton' type='button' onclick=\"insert_vars(document.getElementById('fields_options'), document.getElementById('piedpage')); return false; \" value=' ".$msg['admin_authperso_insert_field']." ' >                       
689                        </div>
690                        <div class='row'>
691                                <textarea type='text' name='piedpage' id='piedpage' class='saisie-50em' rows='4' cols='50' >!!pied_page!!</textarea>
692                        </div>";
693                       
694                        $fields_options="<select id='fields_options' name='fields_options'>";
695                        $fields_options.="<option value='{{last_empr.nom}}'>Dernier lecteur: Nom</option>";
696                        $fields_options.="<option value='{{last_empr.prenom}}'>Dernier lecteur: Prénom</option>";
697                        $fields_options.="<option value='{{last_empr.empr_libelle}}'>Dernier lecteur: Libellé</option>";
698                        $fields_options.="<option value='{{last_empr.mail}}'>Dernier lecteur: Mail</option>";
699                        $fields_options.="<option value='{{last_empr.cb}}'>Dernier lecteur: Code-barre</option>";
700                        $fields_options.="<option value='{{expl.cb}}'>Bulletin: Code-barre</option>";
701                        $fields_options.="<option value='{{expl.numero}}'>Bulletin: Numéro</option>";
702                        $fields_options.="<option value='{{expl.bulletine_date}}'>Bulletin: date</option>";
703                        $fields_options.="<option value='{{expl.serial_title}}'>Bulletin: Nom du périodique</option>";
704                        $fields_options.="<option value='{{expl.expl_location_name}}'>Bulletin: Localisation</option>";
705                        $fields_options.="<option value='{{expl.expl_cote}}'>Bulletin: Cote</option>";
706                        $fields_options.="</select>";   
707                        $piedpage_tpl=str_replace('!!fields_options!!', $fields_options, $piedpage_tpl);       
708                        $piedpage_tpl=str_replace('!!pied_page!!', $this->piedpage, $piedpage_tpl);     
709                        $form=str_replace('!!piedpageform!!', $piedpage_tpl, $form); 
710                       
711                } else {
712                        $form=str_replace('!!fiche_add_field_sel!!', '', $form);
713                        $form=str_replace('!!piedpageform!!', '', $form);
714                } 
715                return $form;
716        }       
717       
718        function option_save($data){
719                $this->update_serialcirc($data);
720                 
721        }       
722               
723        function option_form(){
724                global $serialcirc_diff_form_option,$charset;
725               
726                $form=$serialcirc_diff_form_option;
727               
728                if($this->circ_type == 0){
729                        $form=str_replace("!!circ_type_checked_0!!"," checked='checked' ",$form);
730                        $form=str_replace("!!circ_type_checked_1!!","",$form);
731                }else{
732                        $form=str_replace("!!circ_type_checked_0!!","",$form);
733                        $form=str_replace("!!circ_type_checked_1!!"," checked='checked' ",$form);       
734                }
735                $form=str_replace("!!circ_type_checked_".$this->circ_type."!!"," checked='checked' ",$form);
736                //circ vituelle
737                if($this->virtual_circ)$checked=" checked='checked' "; else $checked="";
738                $form=str_replace("!!virtual_checked!!", $checked,$form);       
739                // circ simplifiée
740                if($this->simple_circ)$checked=" checked='checked' "; else $checked="";
741                $form=str_replace("!!simple_circ_checked!!", $checked,$form);   
742                       
743                if($this->no_ret_circ)$checked=" checked='checked' "; else $checked="";
744                $form=str_replace("!!no_ret_circ_checked!!", $checked,$form);           
745               
746                if($this->virtual_circ) $display='block'; else $display='none';         
747                $form=str_replace("!!display_virtual_circ_part!!",$display,$form);     
748               
749                $form=str_replace("!!duration!!",$this->duration,$form);
750               
751                //$form=str_replace("!!retard_mode_checked_".$this->retard_mode."!!"," checked='checked' ",$form);
752                if($this->retard_mode == 0){
753                        $form=str_replace("!!retard_mode_checked_0!!"," checked='checked' ",$form);
754                        $form=str_replace("!!retard_mode_checked_1!!","",$form);
755                }else{
756                        $form=str_replace("!!retard_mode_checked_0!!","",$form);
757                        $form=str_replace("!!retard_mode_checked_1!!"," checked='checked' ",$form);     
758                }               
759               
760                if($this->checked)$checked=" checked='checked' "; else $checked="";
761                $form=str_replace("!!checked_checked!!",$checked,$form);
762               
763                if($this->allow_resa)$checked=" checked='checked' "; else $checked="";
764                $form=str_replace("!!allow_resa_checked!!",$checked,$form);
765               
766                if($this->allow_copy)$checked=" checked='checked' "; else $checked="";
767                $form=str_replace("!!allow_copy_checked!!",$checked,$form);
768               
769                if($this->allow_send_ask)$checked=" checked='checked' "; else $checked="";
770                $form=str_replace("!!allow_send_ask_checked!!",$checked,$form);
771               
772                if($this->allow_subscription)$checked=" checked='checked' "; else $checked="";
773                $form=str_replace("!!allow_subscription_checked!!",$checked,$form);
774                       
775                $form=str_replace("!!duration_before_send!!",$this->duration_before_send,$form);       
776               
777                $form=str_replace('!!expl_statut_circ!!',       do_selector('docs_statut', 'expl_statut_circ', $this->expl_statut_circ),$form); 
778                $form=str_replace('!!expl_statut_circ_after!!', do_selector('docs_statut', 'expl_statut_circ_after', $this->expl_statut_circ_after),$form);
779                       
780                return $form;
781        }
782               
783        function up_order_circdiff($tablo){     
784                global $dbh;   
785                $liste = explode(",",$tablo);
786                if ($liste[0]) {
787                        // réinitialisation du tri
788                        $rqt = "select num_serialcirc_diff_serialcirc from serialcirc_diff where id_serialcirc_diff='".$liste[0]."'";
789                        $res = pmb_mysql_query($rqt,$dbh);
790                        if ($res) {
791                                $id_serialcirc = pmb_mysql_result($res, 0, "num_serialcirc_diff_serialcirc");
792                                if ($id_serialcirc) {
793                                        $req=" UPDATE serialcirc SET serialcirc_sort_diff='' WHERE id_serialcirc=".$id_serialcirc;
794                                        pmb_mysql_query($req, $dbh);
795                                }
796                        }
797                }
798                for($i=0;$i<count($liste);$i++){
799                        $rqt = "update serialcirc_diff set serialcirc_diff_order='".$i."' where id_serialcirc_diff='".$liste[$i]."' ";
800                        pmb_mysql_query($rqt,$dbh);
801                }
802        }
803       
804        function up_order_circdiffprint($id_serialcirc,$tablo){ 
805                global $dbh;   
806                $fields =new serialcirc_print_fields($id_serialcirc);           
807                $fields->up_order($tablo);
808        }
809       
810        function duplicate($abt_to_id){
811                global $dbh;
812               
813                $requete="select id_serialcirc from serialcirc where num_serialcirc_abt=".$abt_to_id;
814                $resultat=pmb_mysql_query($requete);
815                if (pmb_mysql_num_rows($resultat)) {
816                        $status=serialcirc_diff::delete($abt_to_id);
817                        if($status)return $status;// error
818                }       
819               
820                $req="INSERT INTO serialcirc SET
821                        num_serialcirc_abt=".$abt_to_id.",
822                        serialcirc_type=".$this->circ_type.",
823                        serialcirc_virtual=".$this->virtual_circ.",
824                        serialcirc_simple=".$this->simple_circ.",
825                        serialcirc_no_ret=".$this->no_ret_circ.",
826                        serialcirc_duration=".$this->duration.",
827                        serialcirc_checked=".$this->checked.",
828                        serialcirc_retard_mode=".$this->retard_mode.",
829                        serialcirc_allow_resa=".$this->allow_resa.",
830                        serialcirc_allow_copy=".$this->allow_copy.",
831                        serialcirc_allow_send_ask=".$this->allow_send_ask.",
832                        serialcirc_allow_subscription=".$this->allow_subscription.",
833                        serialcirc_duration_before_send=".$this->duration_before_send.",
834                        serialcirc_expl_statut_circ=".$this->expl_statut_circ.",
835                        serialcirc_piedpage='".$this->piedpage."',
836                        serialcirc_tpl='".$this->tpl."',
837                        serialcirc_expl_statut_circ_after=".$this->expl_statut_circ_after."
838                        ";
839                pmb_mysql_query($req, $dbh);
840                $new_serialcirc_id = pmb_mysql_insert_id($dbh); 
841                               
842                $requete="select * from serialcirc_diff where num_serialcirc_diff_serialcirc=".$this->id." order by serialcirc_diff_order";
843                $res_empr=pmb_mysql_query($requete);   
844                while($r_empr=pmb_mysql_fetch_object($res_empr)){               
845                        $req="INSERT INTO serialcirc_diff SET
846                                num_serialcirc_diff_serialcirc=".$new_serialcirc_id.",
847                                serialcirc_diff_empr_type='".$r_empr->serialcirc_diff_empr_type."',
848                                serialcirc_diff_type_diff='".$r_empr->serialcirc_diff_type_diff."',
849                                num_serialcirc_diff_empr='".$r_empr->num_serialcirc_diff_empr."',
850                                serialcirc_diff_group_name='".$r_empr->serialcirc_diff_group_name."',
851                                serialcirc_diff_duration='".$r_empr->serialcirc_diff_duration."',
852                                serialcirc_diff_order=".$r_empr->serialcirc_diff_order."                       
853                        ";
854                        pmb_mysql_query($req, $dbh);   
855                        $new_id_serialcirc_diff = pmb_mysql_insert_id($dbh);           
856                       
857                        $requete="select * from serialcirc_group where num_serialcirc_group_diff=".$r_empr->id_serialcirc_diff ;
858                        $res_group=pmb_mysql_query($requete);                   
859                        while($r_group=pmb_mysql_fetch_object($res_group)){     
860                                $req="INSERT INTO serialcirc_group SET
861                                        num_serialcirc_group_diff=".$new_id_serialcirc_diff.",
862                                        num_serialcirc_group_empr='".$r_group->num_serialcirc_group_empr."',
863                                        serialcirc_group_responsable='".$r_group->serialcirc_group_responsable."',
864                                        serialcirc_group_order='".$r_group->serialcirc_group_order."'
865                                ";
866                                pmb_mysql_query($req, $dbh);           
867                               
868                        }                       
869                }                       
870        }
871               
872        function up_order_circdiffgroupdrop($tablo){   
873                global $dbh;   
874                $liste = explode(",",$tablo);
875                for($i=0;$i<count($liste);$i++){
876                        $ids= explode("_",$liste[$i]);
877                        $goup_id=$ids[0];
878                        $empr_id=$ids[1];       
879                        $rqt = "update serialcirc_group set serialcirc_group_order='".$i."' where num_serialcirc_group_diff='".$goup_id."' and num_serialcirc_group_empr=$empr_id";
880                        pmb_mysql_query($rqt,$dbh);
881                }
882        }       
883       
884        function sort_diff(){
885                global $dbh;
886                global $sort_field;
887       
888                if (!$this->id) return;
889               
890                $flag_get_value_from_database = false;
891                if (!$sort_field) {
892                        $rqt = "select serialcirc_sort_diff from serialcirc where id_serialcirc=".$this->id;
893                        $res = pmb_mysql_query($rqt,$dbh);
894                        $sort_field = pmb_mysql_result($res, 0, "serialcirc_sort_diff");
895                        $flag_get_value_from_database = true; 
896                }
897                $select_order = "serialcirc_diff_order";
898                $join = "";
899                if ($sort_field) {
900                        if (substr($sort_field, 0, 2) != "pp") {
901                                switch($sort_field) {
902                                        case "emprlibelle" :
903                                                $select_order = "concat (empr_nom,' ',empr_prenom) as empr_nom_prenom";
904                                                break;
905                                        case "name" :
906                                                $select_order = "empr_nom";
907                                                break;
908                                        case "cb" :
909                                                $select_order = "empr_cb";
910                                                break;
911                                        case "adr1" :
912                                                $select_order = "empr_adr1";
913                                                break;
914                                        case "adr2" :
915                                                $select_order = "empr_adr2";
916                                                break;
917                                        case "tel1" :
918                                                $select_order = "empr_tel1";
919                                                break;
920                                        case "tel2" :
921                                                $select_order = "empr_tel2";
922                                                break;
923                                        case "ville" :
924                                                $select_order = "empr_ville";
925                                                break;
926                                }
927                        } else {
928                                $p_perso = new parametres_perso("empr");
929                                $select_order = $p_perso->prefix."_custom_".$p_perso->t_fields[substr($sort_field, 3, 1)]["DATATYPE"];
930                                $join = "left join ".$p_perso->prefix."_custom_values on ".$p_perso->prefix."_custom_origine=id_empr and ".$p_perso->prefix."_custom_champ=".substr($sort_field, 3, 1);
931       
932                        }
933                }
934                $tab_sort = array();
935                $requete = "select id_serialcirc_diff, $select_order from serialcirc_diff join empr on num_serialcirc_diff_empr=id_empr $join where num_serialcirc_diff_serialcirc=".$this->id;
936                $result = pmb_mysql_query($requete,$dbh);
937                while ($row = pmb_mysql_fetch_array($result)) {
938                        $tab_sort[$row["id_serialcirc_diff"]] = strtolower($row[1]);
939                }
940                $requete = "select id_serialcirc_diff, $select_order from serialcirc_diff join serialcirc_group on id_serialcirc_diff=num_serialcirc_group_diff join empr on num_serialcirc_group_empr=id_empr $join where num_serialcirc_diff_serialcirc=".$this->id;
941                $result = pmb_mysql_query($requete,$dbh);
942                while ($row = pmb_mysql_fetch_array($result)) {
943                        $tab_sort[$row["id_serialcirc_diff"]] = strtolower($row[1]);
944                }
945                asort($tab_sort);
946       
947                $no_ordre = 0;
948                foreach ($tab_sort as $key=>$value) {
949                        $req="UPDATE serialcirc_diff SET
950                                        serialcirc_diff_order = ".$no_ordre."
951                                WHERE id_serialcirc_diff=".$key."
952                                AND num_serialcirc_diff_serialcirc=".$this->id;
953                        pmb_mysql_query($req,$dbh);
954                        $no_ordre++;
955                }
956               
957                if(!$flag_get_value_from_database) {
958                        //on met à jour le tri choisi dans la table serialcirc
959                        $query = "update serialcirc set serialcirc_sort_diff='".$sort_field."' where id_serialcirc=".$this->id;
960                        pmb_mysql_query($query);
961                }
962               
963                $this->fetch_data();
964        }
965} //serialcirc class end
Note: See TracBrowser for help on using the repository browser.