source: pmb4.2/trunk/fuentes/pmb/acquisition/achats/livraisons/livraisons.inc.php @ 815

Last change on this file since 815 was 815, checked in by jrpelegrina, 4 years ago

Initial release of pmb 4.2

  • Property svn:executable set to *
File size: 12.7 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: livraisons.inc.php,v 1.32 2015-04-03 11:16:26 jpermanne Exp $
6
7if (stristr($_SERVER['REQUEST_URI'], ".inc.php")) die("no access");
8
9// gestion des livraisons
10require_once("$class_path/entites.class.php");
11require_once("$class_path/actes.class.php");
12include_once("$include_path/templates/actes.tpl.php");
13require_once("$class_path/liens_actes.class.php");
14include_once("$include_path/templates/livraisons.tpl.php");
15
16
17//Affiche la liste des etablissements
18function show_list_biblio() {
19       
20        global $msg, $charset;
21        global $tab_bib, $nb_bib;
22        global $current_module;
23
24        //Affichage de la liste des bibliothèques auxquelles a acces l'utilisateur si > 1
25        if ($nb_bib == '1') {
26                show_list_liv($tab_bib[0][0]);
27                exit;
28        }
29       
30        $def_bibli=entites::getSessionBibliId();
31        if (in_array($def_bibli, $tab_bib[0])) {
32                show_list_liv($def_bibli);
33                exit;           
34        }                       
35
36        $aff = "<form class='form-".$current_module."' id='list_biblio_form' name='list_biblio_form' method='post' action=\"\" >";
37        $aff.= "<h3>".htmlentities($msg['acquisition_menu_chx_ent'], ENT_QUOTES, $charset)."</h3>       <div class='row'></div>";
38        $aff.= "<table>";
39       
40        $parity=1;
41        foreach($tab_bib[0] as $k=>$v) {
42                if ($parity % 2) {
43                        $pair_impair = "even";
44                } else {
45                        $pair_impair = "odd";
46                }
47                $parity += 1;
48                $tr_javascript=" onmouseover=\"this.className='surbrillance'\" onmouseout=\"this.className='".$pair_impair."'\" onmousedown=\"document.forms['list_biblio_form'].setAttribute('action','./acquisition.php?categ=ach&sub=livr&action=list&id_bibli=".$v."');document.forms['list_biblio_form'].submit(); \" ";
49        $aff.= "<tr class='".$pair_impair."' ".$tr_javascript." style='cursor: pointer'><td><i>".htmlentities($tab_bib[1][$k], ENT_QUOTES, $charset)."</i></td></tr>";
50        }       
51        $aff.=" </table></form>";
52        print $aff;
53}
54
55
56//Affiche la liste des livraisons pour un etablissement
57function show_list_liv($id_bibli) {
58       
59        global $msg, $charset;
60        global $search_form_actes, $livlist_form;
61        global $nb_per_page_acq;
62        global $class_path;
63        global $user_input, $statut, $page, $nbr_lignes, $tri_param, $limit_param, $last_param;
64        global $tab_bib;
65       
66        //Creation selecteur etablissement
67        $sel_bibli ="<select class='saisie-50em' id='id_bibli' name='id_bibli' onchange=\"submit();\" >";
68        foreach($tab_bib[0] as $k=>$v) {
69                $sel_bibli.="<option value='".$v."' ";
70                if($v==$id_bibli) $sel_bibli.="selected='selected' ";
71                $sel_bibli.=">".htmlentities($tab_bib[1][$k], ENT_QUOTES, $charset)."</option>";
72        }
73        $sel_bibli.="</select>";
74        $search_form_actes=str_replace('<!-- sel_bibli -->', $sel_bibli,$search_form_actes);
75       
76        //Creation selecteur statut
77        $sel_statut = "<select class='saisie-25em' id='statut' name='statut' onchange=\"submit();\" >";
78        $list_statut = actes::getStatelist(TYP_ACT_LIV);
79        foreach($list_statut as $k=>$v){
80                $sel_statut.="<option value='".$k."'>".htmlentities($v, ENT_QUOTES, $charset)."</option>";
81        }
82        $sel_statut.= "</select>";
83        $search_form_actes=str_replace('<!-- sel_statut -->', $sel_statut ,$search_form_actes);
84       
85       
86        //Affichage form de recherche
87        $titre = htmlentities($msg['recherche'].' : '.$msg['acquisition_ach_liv'], ENT_QUOTES, $charset);
88        $action ="./acquisition.php?categ=ach&sub=livr&action=list&user_input=";
89        $search_form_actes = str_replace('!!form_title!!', $titre, $search_form_actes);
90        $search_form_actes = str_replace('!!action!!', $action, $search_form_actes);
91        $search_form_actes = str_replace('!!user_input!!', $user_input, $search_form_actes);
92       
93        print $search_form_actes;
94        if (!$statut) {
95                $statut = getSessionLivState(); //Recuperation du statut courant
96        } else {
97                setSessionLivState($statut);   
98        }
99        print "<script type='text/javascript' >document.forms['search'].elements['statut'].value = ".$statut.";document.forms['search'].elements['user_input'].focus();
100        document.forms['search'].elements['user_input'].select();</script>";
101
102        //Prise en compte du formulaire de recherche
103        // nombre de références par pages
104        if ($nb_per_page_acq != "") 
105                $nb_per_page = $nb_per_page_acq ;
106        else $nb_per_page = 10;
107       
108       
109        // traitement de la saisie utilisateur
110
111        require_once($class_path."/analyse_query.class.php");
112       
113        // on récupére le nombre de lignes qui vont bien
114        if(!$nbr_lignes) {
115
116                if(!$user_input) {
117                        $nbr_lignes = entites::getNbActes($id_bibli, TYP_ACT_LIV, $statut);
118                } else {
119                        $aq=new analyse_query(stripslashes($user_input),0,0,0,0);
120                        if ($aq->error) {
121                                error_message($msg["searcher_syntax_error"],sprintf($msg["searcher_syntax_error_desc"],$aq->current_car,$aq->input_html,$aq->error_message));
122                                exit;
123                        }
124                        $nbr_lignes = entites::getNbActes($id_bibli, TYP_ACT_LIV, $statut, $aq, $user_input);
125                }
126
127        } else {
128                $aq=new analyse_query(stripslashes($user_input),0,0,0,0);
129        }
130
131       
132        if(!$page) $page=1;
133        $debut =($page-1)*$nb_per_page;
134
135
136        if($nbr_lignes) {
137       
138                $url_base = "$PHP_SELF?categ=ach&sub=livr&action=list&id_bibli=$id_bibli&user_input=".rawurlencode(stripslashes($user_input))."&statut=$statut" ;
139               
140                // on lance la vraie requête
141                if(!$user_input) {
142                        $res = entites::listActes($id_bibli, TYP_ACT_LIV, $statut, $debut, $nb_per_page);
143                } else {
144                        $res = entites::listActes($id_bibli, TYP_ACT_LIV, $statut, $debut, $nb_per_page, $aq, $user_input);
145                }
146
147       
148                //Affichage liste des livraisons
149                $liv_list="";
150                $nbr = pmb_mysql_num_rows($res);
151               
152                $parity=1;
153                for($i=0;$i<$nbr;$i++) {
154                        $row=pmb_mysql_fetch_object($res);
155                        $fourn = new entites($row->num_fournisseur);
156                        $id_cde = liens_actes::getParent($row->id_acte);
157                        $cde = new actes($id_cde);
158       
159                        $st = ( ($row->statut) & ~(STA_ACT_ARC) );
160                                       
161                        switch ($st) {
162                                case STA_ACT_REC :
163                                        $st_liv = htmlentities($msg['acquisition_liv_rec'], ENT_QUOTES, $charset);
164                                        break;
165                                default :
166                                        $st_liv = '';
167                        }
168       
169                        if( ($row->statut & STA_ACT_ARC) == STA_ACT_ARC ) $st_liv = '<s>'.$st_liv.'</s>';       
170       
171                        if ($parity % 2) {
172                                $pair_impair = "even";
173                        } else {
174                                $pair_impair = "odd";
175                        }
176                        $parity += 1;
177                        $tr_javascript = "onmouseover=\"this.className='surbrillance'\" onmouseout=\"this.className='".$pair_impair."'\" ";
178                        $dn_javascript = "onmousedown=\"document.location='./acquisition.php?categ=ach&sub=livr&action=modif&id_bibli=".$id_bibli."&id_liv=".$row->id_acte."' \" ";
179                $liv_list.= "<tr class='".$pair_impair."' ".$tr_javascript." style='cursor: pointer' >
180                                                <td ".$dn_javascript." ><i>".$row->numero."</i></td>
181                                                <td ".$dn_javascript." ><i>".$cde->numero."</i></td>
182                                                <td ".$dn_javascript." ><i>".htmlentities($fourn->raison_sociale, ENT_QUOTES, $charset)."</i></td>
183                                                <td ".$dn_javascript." ><i>".formatdate($row->date_acte)."</i></td>
184                                                <td ".$dn_javascript." ><i>$st_liv</i></td>
185                                                <td>
186                                                        <a href=# onclick=\"openPopUp('./pdf.php?pdfdoc=livr&id_liv=".$row->id_acte."' ,'print_PDF', 600, 500, -2, -2, 'toolbar=no, dependent=yes, resizable=yes');\" >
187                                                                <img src='./images/print.gif' border='0' align='center' alt='".htmlentities($msg['imprimer'],ENT_QUOTES, $charset)."' title='".htmlentities($msg['imprimer'],ENT_QUOTES, $charset)."' />
188                                                        </a>
189                                                </td>
190                                                </tr>";
191                }
192       
193                if (!$last_param) {
194                        $nav_bar = aff_pagination ($url_base, $nbr_lignes, $nb_per_page, $page) ;
195                } else {
196                $nav_bar = "";
197            }
198               
199            $livlist_form = str_replace('<!-- liv_list -->',$liv_list,$livlist_form);
200                $livlist_form = str_replace('<!-- nav_bar -->',$nav_bar,$livlist_form);
201           
202                print $livlist_form;
203       
204        } else {
205                // la requête n'a produit aucun résultat
206                error_message($msg['acquisition_liv_rech'], str_replace('!!liv_cle!!', stripslashes($user_input), $msg['acquisition_liv_rech_error']), 0, './categ=ach&sub=livr&action=list&id_bibli='.$id_bibli);
207        }
208               
209}
210
211
212//Affiche le formulaire de création de livraison depuis une commande
213function show_from_cde($id_bibli, $id_cde) {
214
215        global $msg, $charset;
216        global $livr_modif_form, $frame_show_from_cde, $form_search, $bt_enr;
217       
218        $form = $livr_modif_form;
219        $titre = htmlentities($msg['acquisition_liv_cre'], ENT_QUOTES, $charset);
220
221        $date_cre = formatdate(today());
222
223        $cde = new actes($id_cde);
224        $num_cde = htmlentities($cde->numero, ENT_QUOTES, $charset);
225        $id_fou = $cde->num_fournisseur;
226        $fou = new entites($id_fou);
227        $lib_fou = htmlentities($fou->raison_sociale, ENT_QUOTES, $charset);
228                                       
229        $bibli = new entites($id_bibli);
230        $exer = new exercices($cde->num_exercice);
231                                       
232        $numero = '';
233        $comment = '';
234        $ref = '';
235               
236        $form = str_replace('<!-- frame_show -->', $frame_show_from_cde, $form);
237       
238        $form = str_replace('<!-- bouton_enr -->', $bt_enr, $form);
239        $form = str_replace('<!-- form_search -->', $form_search, $form);               
240        $form = str_replace('!!form_title!!', $titre, $form);           
241        $form = str_replace('!!id_bibli!!', $id_bibli, $form); 
242        $form = str_replace('!!lib_bibli!!', htmlentities($bibli->raison_sociale, ENT_QUOTES, $charset), $form);       
243        $form = str_replace('!!lib_exer!!', htmlentities($exer->libelle, ENT_QUOTES, $charset), $form); 
244
245        $form = str_replace('!!id_cde!!', $id_cde, $form);
246        $lien_cde = "<a href=\"./acquisition.php?categ=ach&sub=cmde&action=modif&id_bibli=".$id_bibli."&id_cde=".$id_cde."\">".$num_cde."</a>"; 
247        $form = str_replace('!!num_cde!!', $lien_cde, $form);
248        $form = str_replace('!!date_cre!!', $date_cre, $form);
249        $form = str_replace('!!id_liv!!', 0, $form);
250        $form = str_replace('!!numero!!', $numero, $form);
251        $form = str_replace('!!id_fou!!', $id_fou, $form);
252        $form = str_replace('!!lib_fou!!', $lib_fou, $form);
253        $form = str_replace('!!comment!!', $comment, $form);
254        $form = str_replace('!!ref!!', $ref, $form);
255
256        print $form;
257
258
259}
260
261
262//Affiche le formulaire de modification de livraison
263function show_form_liv($id_bibli, $id_liv) {
264
265        global $msg, $charset;
266        global $livr_modif_form, $frame_show, $bt_sup, $bt_enr, $form_search;
267        global $pmb_type_audit, $bt_audit;
268       
269        $form = $livr_modif_form;
270        $titre = htmlentities($msg['acquisition_liv_mod'], ENT_QUOTES, $charset);
271
272        $liv = new actes($id_liv);
273        $id_fou = $liv->num_fournisseur;
274        $date_cre = $liv->date_acte;
275        $numero = htmlentities($liv->numero, ENT_QUOTES, $charset);
276        $comment = htmlentities($liv->commentaires, ENT_QUOTES, $charset);
277        $ref = htmlentities($liv->reference, ENT_QUOTES, $charset);
278       
279        $id_cde = liens_actes::getParent($id_liv);     
280        $cde = new actes($id_cde);     
281        $num_cde = htmlentities($cde->numero, ENT_QUOTES, $charset);
282       
283        $fou = new entites($id_fou);
284        $lib_fou = htmlentities($fou->raison_sociale, ENT_QUOTES, $charset);
285                                               
286        $bibli = new entites($id_bibli);       
287        $exer = new exercices($liv->num_exercice);
288
289        $form = str_replace('<!-- frame_show -->', $frame_show, $form);
290
291        if( ($cde->statut & STA_ACT_ARC) == STA_ACT_ARC ) {     //La commande est archivée donc le bl non modifiable
292
293        } else {        //Le bl est modifiable
294
295                $form = str_replace('<!-- bouton_sup -->', $bt_sup, $form);
296                $form = str_replace('<!-- bouton_enr -->', $bt_enr, $form);
297                $form = str_replace('<!-- form_search -->', $form_search, $form);
298
299        }
300
301                       
302        $form = str_replace('!!form_title!!', $titre, $form);           
303        $form = str_replace('!!id_bibli!!', $id_bibli, $form); 
304        $form = str_replace('!!lib_bibli!!', htmlentities($bibli->raison_sociale, ENT_QUOTES, $charset), $form);       
305        $form = str_replace('!!lib_exer!!', htmlentities($exer->libelle, ENT_QUOTES, $charset), $form); 
306
307        $form = str_replace('!!id_cde!!', $id_cde, $form);
308        $lien_cde = "<a href=\"./acquisition.php?categ=ach&sub=cmde&action=modif&id_bibli=".$id_bibli."&id_cde=".$id_cde."\">".$num_cde."</a>"; 
309        $form = str_replace('!!num_cde!!', $lien_cde, $form);
310        $form = str_replace('!!date_cre!!', formatdate($date_cre), $form);
311        $form = str_replace('!!id_liv!!', $id_liv, $form);
312        $form = str_replace('!!numero!!', $numero, $form);
313        $form = str_replace('!!id_fou!!', $id_fou, $form);
314        $form = str_replace('!!lib_fou!!', $lib_fou, $form);
315        $form = str_replace('!!comment!!', $comment, $form);
316        $form = str_replace('!!ref!!', $ref, $form);
317       
318        if ($id_liv && $pmb_type_audit) {
319                $form = str_replace('<!-- bouton_audit -->', $bt_audit, $form);
320        }
321
322        print $form;
323
324}
325
326
327//Supprime la livraison
328function sup_liv($id_liv, $id_cde) {
329
330        $cde = new actes($id_cde);
331        $cde->statut = ($cde->statut & (~STA_ACT_REC) | STA_ACT_ENC); //Statut commande = soldé->en cours
332        $cde->update_statut();
333
334        actes::delete($id_liv);
335        liens_actes::delete($id_liv);
336       
337} 
338
339
340//Traitement des actions
341print "<h1>".htmlentities($msg['acquisition_ach_ges'],ENT_QUOTES, $charset)."&nbsp;:&nbsp;".htmlentities($msg['acquisition_ach_liv'],ENT_QUOTES, $charset)."</h1>";
342
343switch($action) {
344
345        case 'list' :
346                entites::setSessionBibliId($id_bibli);
347                show_list_liv($id_bibli);
348                break;
349
350        case 'from_cde' :
351                show_from_cde($id_bibli, $id_cde);
352                break; 
353       
354        case 'modif' :
355                show_form_liv($id_bibli, $id_liv);
356                break;
357               
358        case 'delete' :
359                sup_liv($id_liv, $id_cde);
360                show_list_liv($id_bibli);
361                break;
362       
363        default:
364                show_list_biblio();     
365                break;
366               
367}
368
369?>
370
Note: See TracBrowser for help on using the repository browser.