source: pmb4.2/trunk/fuentes/pmb/classes/simple_circ.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: 12.2 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: simple_circ.class.php,v 1.3.2.2 2015-09-22 13:17:41 ngantier Exp $
6
7if (stristr($_SERVER['REQUEST_URI'], ".class.php")) die("no access");
8
9require_once($include_path."/simple_circ/impr_etiquette.inc.php");
10
11class simple_circ {
12        protected $start_date;
13        protected $end_date;
14        protected $data;
15        protected $data_tri_day;
16        protected $circ_cb_list;
17       
18        public function __construct($start_date,$end_date,$circ_cb_list='') {
19               
20                if(!$start_date)$start_date=date("Ymd");
21                if(!$end_date)$end_date=date("Ymd");
22                $this->start_date=$start_date;
23                $this->end_date=$end_date;
24               
25                $this->circ_cb_list=array();
26                if(is_array($circ_cb_list)){
27                        foreach ($circ_cb_list as $circ_cb){
28                                $this->circ_cb_list[]=$circ_cb+0;
29                        }
30                }elseif($circ_cb_list){
31                        $this->circ_cb_list[]=$circ_cb_list+0;
32                }
33                $this->fetch_data();
34        }
35       
36        private function fetch_data() {
37                if(!count($this->circ_cb_list))
38                        $req="select *, g.date_parution as date_sortie from serialcirc,abts_grille_abt as g, abts_abts, notices where serialcirc_simple=1 and num_serialcirc_abt=num_abt  and abt_id=num_abt and num_notice=notice_id
39                                and g.date_parution >= '".$this->start_date."' and g.date_parution <= '".$this->end_date."' order by g.date_parution";
40                else 
41                        $req="select * from serialcirc, abts_abts, notices where num_serialcirc_abt=abt_id  and num_notice=notice_id
42                        and abt_id in(".implode(",", $this->circ_cb_list).")";
43                //print $req;
44                $this->data=array();
45                $this->data_tri_day=array();
46                $data=array();
47                $i=0;
48                $resultat=pmb_mysql_query($req);       
49                if (pmb_mysql_num_rows($resultat)) {
50                        while($r=pmb_mysql_fetch_object($resultat)){   
51                                //printr($r);
52                                $data[$i]["abt_name"]=$r->abt_name;
53                                $data[$i]["abt_id"]=$r->abt_id;
54                                $data[$i]["tit1"]=$r->tit1;
55                                $data[$i]["date_parution"]=$r->date_sortie;
56                                $this->data_tri_day[$r->date_sortie][]=$i;
57                                $req_diff="select * from serialcirc_diff where num_serialcirc_diff_serialcirc=".$r->id_serialcirc." order by serialcirc_diff_order";
58                                //print $req_diff;
59                                $resultat_diff=pmb_mysql_query($req_diff);     
60                                $count_diff=0;
61                                if (pmb_mysql_num_rows($resultat_diff)) {
62                                        while($r_diff=pmb_mysql_fetch_object($resultat_diff)){ 
63                                                //printr($r_diff);
64                                                if($r_diff->serialcirc_diff_empr_type){
65                                                        // un groupe de lecteur avec un responsable
66                                                        $data[$i]["diff"][$count_diff]["is_group"]=$r_diff->serialcirc_diff_empr_type;
67                                                        $data[$i]["diff"][$count_diff]["group_name"]=$r_diff->serialcirc_diff_group_name;
68                                                        $req_group="select * from serialcirc_group where num_serialcirc_group_diff=".$r_diff->id_serialcirc_diff." order by serialcirc_group_order";
69                                                        $resultat_group=pmb_mysql_query($req_group);
70                                                        $count_group=0;
71                                                        if (pmb_mysql_num_rows($resultat_group)) {
72                                                                while($r_group=pmb_mysql_fetch_object($resultat_group)){
73                                                                        //printr($r_group);                                                                     
74                                                                        $id_empr=$r_group->num_serialcirc_group_empr;
75                                                                        $data[$i]["diff"][$count_diff]["group"][$count_group]=$this->empr_info($id_empr);
76                                                                        $data[$i]["diff"][$count_diff]["group"][$count_group]["is_responsable"]=$r_group->serialcirc_group_responsable;
77                                                                        $count_group++;
78                                                                }
79                                                        }                                                       
80                                                }else{
81                                                        // un simple lecteur
82                                                        $id_empr=$r_diff->num_serialcirc_diff_empr;
83                                                        $data[$i]["diff"][$count_diff]=$this->empr_info($id_empr);
84                                                        $data[$i]["diff"][$count_diff]["is_group"]=0;                                                   
85                                                }                                       
86                                                $count_diff++;
87                                        }
88                                }
89                                $i++;   
90                        }
91                }
92                $this->data=$data;
93                //printr($data);
94        }
95
96        private function empr_info($id){
97                $info=array();
98                $req="select empr_cb, empr_nom ,  empr_prenom, empr_mail from empr where id_empr=".$id;
99                $res_empr=pmb_mysql_query($req);
100                if ($empr=pmb_mysql_fetch_object($res_empr)) {
101                        $info['cb'] = $empr->empr_cb;
102                        $info['nom'] = $empr->empr_nom;
103                        $info['prenom'] = $empr->empr_prenom;
104                        $info['mail'] = $empr->empr_mail;
105                        $info['id_empr']=$id;
106                        $info['view_link']='./circ.php?categ=pret&form_cb='.$empr->empr_cb;
107                        $info['empr_libelle']=$info['nom']." ".$info['prenom']." ( ".$info['cb'] ." ) ";
108                }
109                return $info;
110        }
111       
112        public function get_data(){
113                return $this->data;
114        }
115
116        public function get_display(){
117                global $msg,$base_path;
118                $simple_circ_form_tpl="
119                <script>
120                </script>
121                <form class='form-$current_module' id='simple_circ_form' name='simple_circ_form' method='post' action=''>
122                        <h3>".$msg["serial_simple_circ_edit_title"]."</h3>
123                        <div class='form-contenu'>
124                                <div class='row'>
125                                        <label class='etiquette' for='start_date'>".$msg["serial_simple_circ_edit_start_date"]."</label>
126                                        <input type='hidden' name='start_date' id='start_date' value='!!start_date!!' />
127                                        <input type='button' class='button' id='form_start_date' name='form_start_date'
128                                        onclick='openPopUp(\"$base_path/select.php?what=calendrier&caller=\"+this.form.name+\"&date_caller=!!day!!&param1=start_date&param2=form_start_date&auto_submit=NO&date_anterieure=YES\", \"".$msg["serial_simple_circ_edit_start_date"]."\", 250, 300, -2, -2, \"toolbar=no, dependent=yes, resizable=yes\")' value='!!form_start_date!!'/>
129
130                                        <label class='etiquette' for='end_date'>".$msg["serial_simple_circ_edit_end_date"]."</label>
131                                        <input type='hidden' name='end_date' id='end_date' value='!!end_date!!' />
132                                        <input type='button' class='button' id='form_end_date' name='form_end_date'
133                                        onclick='openPopUp(\"$base_path/select.php?what=calendrier&caller=\"+this.form.name+\"&date_caller=!!day!!&param1=end_date&param2=form_end_date&auto_submit=NO&date_anterieure=YES\", \"".$msg["serial_simple_circ_edit_end_date"]."\", 250, 300, -2, -2, \"toolbar=no, dependent=yes, resizable=yes\")' value='!!form_end_date!!'/>
134                                                                               
135                                        <input type='button' value='".$msg["serial_simple_circ_edit_calculate"]."' class='bouton' onclick=\"this.form.setAttribute('action','');this.form.submit();\"   />             
136                                </div>                         
137                                !!contents_to_print!!
138                                <div class='row'>
139                                                        ".gen_plus("circ_edit_format",$msg["serial_simple_circ_edit_format"],aff_choix_quoi_impr_cote())."
140                                </div>                 
141                        </div> 
142                        <div class='row'>
143                                <div class='left'>
144                                        <input type='button' value='".$msg["serial_simple_circ_edit_print"]."' class='bouton' onclick=\"this.form.setAttribute('action','./edit/serials_simple_circ_suite.php');this.form.submit();\" />               
145                                </div>
146                                <div class='right'>                     
147                                </div>
148                        </div>
149                        <div class='row'></div>
150                </form>
151                                               
152                <script>
153                        function add_cb(){
154                                var circ_cb=document.getElementById('circ_cb').value;
155                                if(circ_cb=='')return;
156                                var url= './edit/serials_simple_circ_suite.php?action=add_circ_cb&circ_cb=' + circ_cb;
157                               
158                                var req = new http_request();   
159                                if(req.request(url,1)){
160                                        alert ( req.get_text() );                       
161                                } else {
162                                        data=req.get_text();
163                                }
164                                if(!data.length){
165                                        alert('".$msg["serial_simple_circ_edit_print_error"]."');                                       
166                                document.getElementById('circ_cb').value='';
167                                        return;
168                                }
169                                var data = JSON.parse(data);
170                               
171                                data=data[0];
172                       
173                                var elmt=document.getElementById('cb_list');
174                                var tr = document.createElement('tr');
175                        elmt.appendChild(tr);
176     
177                        var td = document.createElement('td');
178                        tr.appendChild(td);
179                        var tdText = document.createTextNode(data.tit1);
180                        td.appendChild(tdText);
181                       
182                        var td = document.createElement('td');
183                        tr.appendChild(td);
184                        var tdText = document.createTextNode(data.abt_name);
185                        td.appendChild(tdText);
186                       
187                        var td = document.createElement('td');
188                        tr.appendChild(td);
189                        var newButton = document.createElement('input');
190                                newButton.setAttribute('type','button');                               
191                        newButton.className='bouton';
192                                newButton.setAttribute('value','X');                           
193                        newButton.onclick= function (){raz_line(this);};
194                        td.appendChild(newButton);
195                       
196                                var input = document.createElement('input');
197                                input.setAttribute('type','hidden');
198                                input.setAttribute('name','abt_cb[]');
199                                input.setAttribute('value',circ_cb);           
200                        td.appendChild(input);
201                        document.getElementById('circ_cb').value='';
202                       
203                        }
204                       
205                        function raz_all(){                             
206                                var elmt = document.getElementById('cb_list');
207                                var all_tr = elmt.getElementsByTagName('tr');
208                                var nb=all_tr.length;
209                                for(var i=0;i<nb;i++){
210                                        if(i){                                 
211                                                elmt.removeChild(all_tr[nb-i]);
212                                        }
213                                }
214                        }
215                       
216                        function raz_line(e){
217                                var elmt = document.getElementById('cb_list');
218                                var td=e.parentNode;
219                                elmt.removeChild(td.parentNode);
220                        }
221                       
222                        function testForEnter(event){   
223                                if (event.keyCode == 13){       
224                                        event.cancelBubble = true;
225                                        event.returnValue = false;
226                                        add_cb();
227                                        return false;
228                            }
229                        }
230                         
231                </script>       
232                <form class='form-$current_module' id='simple_circ_form_list' name='simple_circ_form_list' method='post' action=''>
233                        <h3>".$msg["serial_simple_circ_edit_list_title"]."</h3>
234                        <div class='form-contenu'>
235                                <div class='row'>                                       
236                                        <label class='etiquette' for='circ_cb'>".$msg["serial_simple_circ_edit_cb"]."</label>   
237                                </div> 
238                                <div class='row'>       
239                                        <input type='text' id='circ_cb' name='circ_cb' value='' onkeydown=\"return testForEnter(event);\" />                   
240                                        <input type='button' value='".$msg["serial_simple_circ_edit_list_add"]."' class='bouton' onclick=\"add_cb();\" />                               
241                                </div> 
242                                <div class='row'>
243                                        <table class='sortable' width='100%' id='cb_list'>
244                                                <tr>
245                                                        <th>".$msg["serial_simple_circ_edit_list_table_perio"]."</th>
246                                                        <th>".$msg["serial_simple_circ_edit_list_table_abt"]."</th>
247                                                        <th></th>                                                                       
248                                                </tr>           
249                                        </table>
250                                </div> 
251                        </div> 
252                        <div class='row'>
253                                <div class='left'>
254                                        <input type='button' value='".$msg["serial_simple_circ_edit_print"]."' class='bouton' onclick=\"this.form.setAttribute('action','./edit/serials_simple_circ_suite.php?action=print_list');this.form.submit();\" />                     
255                                </div>
256                                <div class='right'>     
257                                        <input type='button' value='".$msg["serial_simple_circ_edit_raz"]."' class='bouton' onclick=\"raz_all();document.getElementById('circ_cb').focus();\" />                                       
258                                </div>
259                        </div>
260                        <div class='row'></div>
261                </form>                                                 
262                ";
263               
264                $simple_circ_day_tpl="
265                        <h3>!!date_sortie!!</h3>
266                        <div class='row'>
267                                !!abt_list!!
268                        </div>";
269               
270                $simple_circ_abt_tpl="
271                        <div class='row'>                               
272                                <label class='etiquette'>!!tit1!!</label><br />
273                                <label class='etiquette'>!!abt_name!!</label>
274                                !!diff_list!!
275                        </div>";                               
276
277                $simple_circ_diff_group_tpl="
278                        <br />!!name!!<br />
279                        ";
280                               
281                $display="";
282                $display_day_list="";
283                /* plus demandé ...
284                foreach ($this->data_tri_day as $date_sortie => $index_list){
285                        $day_tpl=$simple_circ_day_tpl;
286                        $day_tpl=str_replace("!!date_sortie!!", formatDate($date_sortie), $day_tpl);
287                        $display_abt_list="";
288                        foreach ($index_list as $index){
289                                $abt=$this->data[$index];
290                                //printr($abt);
291                                $abt_tpl=$simple_circ_abt_tpl;
292                                $abt_tpl=str_replace("!!tit1!!", $abt["tit1"], $abt_tpl);
293                                $abt_tpl=str_replace("!!abt_name!!", $abt["abt_name"], $abt_tpl);
294                                $abt_tpl=str_replace("!!date_sortie!!", formatDate($date_sortie), $abt_tpl);
295                                $display_diff_list="";
296                                foreach($abt["diff"] as $diff){
297                                        if($diff["is_group"]){
298                                                $diff_group_tpl=$simple_circ_diff_group_tpl;
299                                                $diff_group_tpl=str_replace("!!name!!", $diff["group_name"], $diff_group_tpl);
300                                               
301                                                $display_diff_list.=$diff_group_tpl;
302                                        }else{
303                                               
304                                        }       
305                                       
306                                }
307                                $abt_tpl=str_replace("!!diff_list!!", $display_diff_list, $abt_tpl);
308                                $display_abt_list.=$abt_tpl;
309                        }
310                        $day_tpl=str_replace("!!abt_list!!", $display_abt_list, $day_tpl);
311
312                        $display_day_list.=$day_tpl;
313                }
314                */
315                $display_day_list="<label class='etiquette'>".$msg["serial_simple_circ_number"]." ".count($this->data)."</label>";
316                $form_tpl=$simple_circ_form_tpl;
317                $form_tpl=str_replace("!!contents_to_print!!", $display_day_list, $form_tpl);
318
319                $form_tpl=str_replace("!!day!!",  date("Ymd"), $form_tpl);             
320                $form_tpl=str_replace("!!start_date!!", $this->start_date, $form_tpl);         
321                $form_tpl=str_replace("!!form_start_date!!", formatDate($this->start_date), $form_tpl); 
322               
323                $form_tpl=str_replace("!!end_date!!", $this->end_date, $form_tpl);             
324                $form_tpl=str_replace("!!form_end_date!!", formatDate($this->end_date), $form_tpl);
325               
326               
327                $display.=$form_tpl;           
328                return $display;
329        }
330
331}// class end
Note: See TracBrowser for help on using the repository browser.