source: pmb4.2/trunk/fuentes/pmb/acquisition/achats/devis/devis.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: 42.0 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: devis.inc.php,v 1.42 2015-04-03 11:16:29 jpermanne Exp $
6
7if (stristr($_SERVER['REQUEST_URI'], ".inc.php")) die("no access");
8
9// gestion des devis
10require_once("$class_path/entites.class.php");
11require_once("$class_path/actes.class.php");
12require_once("$class_path/liens_actes.class.php");
13require_once("$class_path/lignes_actes.class.php");
14require_once("$include_path/templates/actes.tpl.php");
15require_once("$include_path/templates/devis.tpl.php");
16require_once("$base_path/acquisition/achats/func_achats.inc.php");
17require_once("$class_path/suggestions.class.php");
18require_once("$class_path/suggestions_map.class.php");
19require_once("$base_path/acquisition/suggestions/func_suggestions.inc.php");
20require_once ("$class_path/notice.class.php");
21require_once("$class_path/sel_display.class.php");
22require_once("$class_path/lettre_devis.class.php");
23
24//Affiche la liste des etablissements
25function show_list_biblio() {
26       
27        global $msg, $charset;
28        global $tab_bib, $nb_bib;
29        global $current_module;
30
31        //Affiche la liste des etablissements auxquels a acces l'utilisateur si > 1     
32        if ($nb_bib == '1') {
33                show_list_dev($tab_bib[0][0]); 
34                exit;   
35        }
36       
37        $def_bibli=entites::getSessionBibliId();
38        if (in_array($def_bibli, $tab_bib[0])) {
39                show_list_dev($def_bibli);
40                exit;           
41        }                       
42       
43        $aff = "<form class='form-".$current_module."' id='list_biblio_form' name='list_biblio_form' method='post' action=\"\" >";
44        $aff.= "<h3>".htmlentities($msg['acquisition_menu_chx_ent'], ENT_QUOTES, $charset)."</h3><div class='row'></div>";             
45        $aff.= "<table>";
46       
47        $parity=1;
48        foreach($tab_bib[0] as $k=>$v) {
49                if ($parity % 2) {
50                        $pair_impair = "even";
51                } else {
52                        $pair_impair = "odd";
53                }
54                $parity += 1;
55                $tr_javascript=" onmouseover=\"this.className='surbrillance'\" onmouseout=\"this.className='".$pair_impair."'\" onmousedown=\"document.forms['list_biblio_form'].setAttribute('action','./acquisition.php?categ=ach&sub=devi&action=list&id_bibli=".$v."');document.forms['list_biblio_form'].submit(); \" ";
56               $aff.= "<tr class='".$pair_impair."' ".$tr_javascript." style='cursor: pointer'><td><i>".htmlentities($tab_bib[1][$k], ENT_QUOTES, $charset)."</i></td></tr>";
57        }
58        $aff.= "</table></form>";
59        print $aff;
60}
61
62
63//Affiche la liste des devis pour un etablissement
64function show_list_dev($id_bibli) {
65       
66        global $msg, $charset;
67        global $search_form_actes, $devlist_form,$devlist_bt_chk,$devlist_script;
68        global $devlist_bt_arc, $devlist_bt_delete, $devlist_bt_rec;
69        global $nb_per_page_acq;
70        global $class_path;
71        global $user_input, $statut, $page, $nbr_lignes, $last_param;
72        global $tab_bib;
73        global $acquisition_pdfdev_by_mail;
74
75        $bib = new entites($id_bibli);
76        $bib_coord = pmb_mysql_fetch_object(entites::get_coordonnees($id_bibli,1));
77       
78        //Creation selecteur etablissement
79        $sel_bibli ="<select class='saisie-50em' id='id_bibli' name='id_bibli' onchange=\"submit();\" >";
80        foreach($tab_bib[0] as $k=>$v) {
81                $sel_bibli.="<option value='".$v."' ";
82                if($v==$id_bibli) $sel_bibli.="selected='selected' ";
83                $sel_bibli.=">".htmlentities($tab_bib[1][$k], ENT_QUOTES, $charset)."</option>";
84        }
85        $sel_bibli.="</select>";
86        $search_form_actes=str_replace('<!-- sel_bibli -->', $sel_bibli,$search_form_actes);
87
88        //Creation selecteur statut
89        $sel_statut = "<select class='saisie-25em' id='statut' name='statut' onchange=\"submit();\" >";
90        $list_statut = actes::getStatelist(TYP_ACT_DEV);
91        foreach($list_statut as $k=>$v){
92                $sel_statut.="<option value='".$k."'>".htmlentities($v, ENT_QUOTES, $charset)."</option>";
93        }
94        $sel_statut.= "</select>";
95        $search_form_actes=str_replace('<!-- sel_statut -->', $sel_statut ,$search_form_actes);
96       
97        //Affichage form de recherche
98        $titre = htmlentities($msg['recherche'].' : '.$msg['acquisition_ach_dev'], ENT_QUOTES, $charset);
99        $action ="./acquisition.php?categ=ach&sub=devi&action=list&user_input=";
100        $bouton_add = "<input class='bouton' type='button' value='".$msg['acquisition_ajout_dev']."' onClick=\"document.location='./acquisition.php?categ=ach&sub=devi&action=modif&id_bibli=".$id_bibli."&id_dev=0';\" />";
101        $search_form_actes = str_replace('!!form_title!!', $titre, $search_form_actes);
102        $search_form_actes = str_replace('!!action!!', $action, $search_form_actes);
103        $search_form_actes = str_replace('<!-- bouton_add -->', $bouton_add, $search_form_actes);
104        $search_form_actes = str_replace('!!user_input!!', $user_input, $search_form_actes);
105       
106        print $search_form_actes;
107        if (!$statut) {
108                $statut = getSessionDevState(); //Recuperation du statut courant
109        } else {
110                setSessionDevState($statut);   
111        }
112        print "<script type='text/javascript' >document.forms['search'].elements['statut'].value = '".$statut."';document.forms['search'].elements['user_input'].focus();
113        document.forms['search'].elements['user_input'].select();</script>";
114        //Prise en compte du formulaire de recherche
115        // nombre de références par pages
116        if ($nb_per_page_acq != "") 
117                $nb_per_page = $nb_per_page_acq ;
118        else 
119                $nb_per_page = 10;
120       
121       
122        // traitement de la saisie utilisateur
123
124        require_once($class_path."/analyse_query.class.php");
125       
126        // on récupére le nombre de lignes qui vont bien
127        if(!$nbr_lignes) {
128
129                if(!$user_input) {
130                        $nbr_lignes = entites::getNbActes($id_bibli, TYP_ACT_DEV, $statut);
131                } else {
132                        $aq=new analyse_query(stripslashes($user_input),0,0,0,0);
133                        if ($aq->error) {
134                                error_message($msg["searcher_syntax_error"],sprintf($msg["searcher_syntax_error_desc"],$aq->current_car,$aq->input_html,$aq->error_message));
135                                exit;
136                        }
137                        $nbr_lignes = entites::getNbActes($id_bibli, TYP_ACT_DEV, $statut, $aq, $user_input);
138                }
139
140        } else {
141                $aq=new analyse_query(stripslashes($user_input),0,0,0,0);
142        }
143
144       
145        if(!$page) $page=1;
146        $debut =($page-1)*$nb_per_page;
147
148
149        if($nbr_lignes) {
150       
151                $url_base = "$PHP_SELF?categ=ach&sub=devi&action=list&id_bibli=$id_bibli&user_input=".rawurlencode(stripslashes($user_input))."&statut=$statut" ;
152               
153                // on lance la requete
154                if(!$user_input) {
155                        $res = entites::listActes($id_bibli, TYP_ACT_DEV, $statut, $debut, $nb_per_page);
156                } else {
157                        $res = entites::listActes($id_bibli, TYP_ACT_DEV, $statut, $debut, $nb_per_page, $aq, $user_input);
158                }
159
160       
161                //Affichage liste des devis
162                $dev_list="";
163                $nbr = pmb_mysql_num_rows($res);
164               
165                $parity=1;
166                for($i=0;$i<$nbr;$i++) {
167                        $row=pmb_mysql_fetch_object($res);
168                        $fourn = new entites($row->num_fournisseur);
169       
170                        $st = ( ($row->statut) & ~(STA_ACT_ARC) );
171                        switch ($st) {
172                                case STA_ACT_ENC :
173                                        $st_dev = htmlentities($msg['acquisition_dev_enc'], ENT_QUOTES, $charset);
174                                        break;
175                                case STA_ACT_REC :
176                                        $st_dev = htmlentities($msg['acquisition_dev_rec'], ENT_QUOTES, $charset);
177                                        break;
178                                default :
179                                        $st_dev = htmlentities($msg['acquisition_dev_enc'], ENT_QUOTES, $charset);
180                        }
181                       
182                        if( ($row->statut & STA_ACT_ARC) == STA_ACT_ARC ) $st_dev = '<s>'.$st_dev.'</s>';       
183                                       
184                        if ($parity % 2) {
185                                $pair_impair = "even";
186                        } else {
187                                $pair_impair = "odd";
188                        }
189                        $parity += 1;
190                        $tr_javascript = "onmouseover=\"this.className='surbrillance'\" onmouseout=\"this.className='".$pair_impair."'\" ";
191                        $dn_javascript = "onmousedown=\"document.location='./acquisition.php?categ=ach&sub=devi&action=modif&id_bibli=".$id_bibli."&id_dev=".$row->id_acte."' \" ";
192                $dev_list.= "<tr class='".$pair_impair."' ".$tr_javascript." style='cursor: pointer' >
193                                                <td ".$dn_javascript." ><i>".$row->numero."</i></td>
194                                                <td ".$dn_javascript." ><i>".htmlentities($fourn->raison_sociale, ENT_QUOTES, $charset)."</i></td>
195                                                <td ".$dn_javascript." ><i>".formatdate($row->date_acte)."</i></td>
196                                                <td ".$dn_javascript." ><i>$st_dev</i></td>
197                                                <td>
198                                                        <a href=# onclick=\"document.location='./acquisition.php?categ=ach&sub=devi&action=print&id_bibli=".$id_bibli."&id_dev=".$row->id_acte."&page=".$page."&by_mail=0'\" >
199                                                                <img src='./images/print.gif' border='0' align='center' alt='".htmlentities(addslashes($msg['imprimer']),ENT_QUOTES, $charset)."' title='".htmlentities(addslashes($msg['imprimer']),ENT_QUOTES, $charset)."' />
200                                                        </a>";
201                        if ( ( (($row->statut & ~STA_ACT_ARC)== STA_ACT_ENC) && $acquisition_pdfdev_by_mail && strpos($bib_coord->email,'@')) ) {
202                        $dev_list.= "                   
203                                                        <a href=# onclick=\"document.location='./acquisition.php?categ=ach&sub=devi&action=print&id_bibli=".$id_bibli."&id_dev=".$row->id_acte."&page=".$page."&by_mail=1'\" >
204                                                                <img src='./images/mail.png' border='0' align='center' alt='".htmlentities($msg['58'],ENT_QUOTES, $charset)."' title='".htmlentities($msg['58'],ENT_QUOTES, $charset)."' />
205                                                        </a>";
206                        }
207                        $dev_list.= "   </td>";
208                if ($statut!=STA_ACT_ALL) {
209                                $dev_list.= "<td><input type='checkbox' name='chk[]' id='chk[".$row->id_acte."]' value='".$row->id_acte."'/></td>";
210                        }
211                        $dev_list.= "</tr>";
212                }
213
214                if (!$last_param) {
215                        $nav_bar = aff_pagination($url_base, $nbr_lignes, $nb_per_page, $page) ;
216                } else { 
217                $nav_bar = "";
218                }
219               
220                $devlist_form = str_replace('<!-- dev_list -->',$dev_list,$devlist_form);
221                $devlist_form = str_replace('<!-- nav_bar -->',$nav_bar,$devlist_form);
222
223                $bt_list='';
224                $bt_sup='';
225                if($statut!=STA_ACT_ALL) {
226                        //colonne chk
227                        $devlist_form=str_replace("<!-- chk_th -->", "<th class='act_cell_chkbox'>&nbsp;</th>",$devlist_form);
228               
229                        //Bouton Sélectionner
230                        $devlist_form=str_replace('<!-- bt_chk -->', $devlist_bt_chk,$devlist_form);
231
232                        //JavaScript
233                        $devlist_form=str_replace('<!-- script -->', $devlist_script,$devlist_form);
234
235                        //Bouton recevoir + archiver
236                        if ($statut==STA_ACT_ENC){
237                                $bt_list=$devlist_bt_rec.'&nbsp;'.$devlist_bt_arc;
238                        }
239                       
240                        //Bouton archiver
241                        if ($statut==STA_ACT_REC){
242                                $bt_list=$devlist_bt_arc;
243                        }
244                       
245                        //Bouton supprimer
246                        $bt_sup=$devlist_bt_delete;
247                }
248               
249               
250                       
251               
252                $devlist_form = str_replace('<!-- bt_list -->',$bt_list,$devlist_form);
253                $devlist_form = str_replace('<!-- bt_sup -->',$bt_sup,$devlist_form);
254                print $devlist_form;
255                       
256        } else {
257                // la requête n'a produit aucun résultat
258                error_message($msg['acquisition_dev_rech'], str_replace('!!dev_cle!!', stripslashes($user_input), $msg['acquisition_dev_rech_error']), 0, './categ=ach&sub=devi&action=list&id_bibli='.$id_bibli);
259        }
260       
261}
262
263
264//Affiche le formulaire de création/modification de devis
265function show_dev($id_bibli, $id_dev) {
266
267        global $msg, $charset;
268        global $modif_dev_form,  $bt_enr, $bt_dup, $bt_sup, $bt_cde, $bt_imp;
269        global $pmb_gestion_devise;
270        global $p_user;
271        global $pmb_type_audit, $bt_audit;
272       
273        //Recuperation etablissement
274        $bibli = new entites($id_bibli);
275        $lib_bibli = htmlentities($bibli->raison_sociale, ENT_QUOTES, $charset);
276       
277        //Prise en compte des adresses utilisateurs par défaut 
278        $tab1 = explode('|', $p_user->speci_coordonnees_etab);
279        $tab_adr=array();
280        foreach ($tab1 as $v) {
281                $tab2=explode(',', $v);
282                $tab_adr[$tab2[0]]['id_adr_fac']=$tab2[1];
283                $tab_adr[$tab2[0]]['id_adr_liv']=$tab2[2];
284        }
285        $def_id_adr_fac=$tab_adr[$id_bibli]['id_adr_fac'];
286        $def_id_adr_liv=$tab_adr[$id_bibli]['id_adr_liv'];
287
288        $form = $modif_dev_form;
289       
290        if(!$id_dev) {  //nouveau devis
291               
292                $titre = htmlentities($msg['acquisition_dev_cre'], ENT_QUOTES, $charset);               
293                $date_cre = formatdate(today());
294                //$numero = calcNumero($id_bibli, TYP_ACT_DEV);
295                $statut = STA_ACT_ENC;
296                $sel_statut = "<input type='hidden' id='statut' name='statut' value='".$statut."' />";
297                $sel_statut.=htmlentities($msg['acquisition_dev_enc'], ENT_QUOTES, $charset);
298                $id_fou = '0';
299                $lib_fou = '';
300                $id_adr_fou = '0';
301                $adr_fou = '';
302                if ($def_id_adr_fac) {
303                        $id_adr_fac = $def_id_adr_fac;
304                        $coord = new coordonnees($def_id_adr_fac);
305                } else {
306                        $coord_fac = entites::get_coordonnees($id_bibli, '1');
307                        if (pmb_mysql_num_rows($coord_fac) != 0) {
308                                $coord = pmb_mysql_fetch_object($coord_fac);
309                                $id_adr_fac = $coord->id_contact;
310                        } else {
311                                $id_adr_fac='0';
312                        }
313                }
314                if ($id_adr_fac) {
315                        if($coord->libelle != '') $adr_fac = htmlentities($coord->libelle, ENT_QUOTES, $charset)."\n";
316                        if($coord->contact != '') $adr_fac.= htmlentities($coord->contact, ENT_QUOTES, $charset)."\n";
317                        if($coord->adr1 != '') $adr_fac.= htmlentities($coord->adr1, ENT_QUOTES, $charset)."\n";
318                        if($coord->adr2 != '') $adr_fac.= htmlentities($coord->adr2, ENT_QUOTES, $charset)."\n";
319                        if($coord->cp !='') $adr_fac.= htmlentities($coord->cp, ENT_QUOTES, $charset).' ';
320                        if($coord->ville != '') $adr_fac.= htmlentities($coord->ville, ENT_QUOTES, $charset);
321                } else {
322                        $adr_fac = '';
323                }
324                if ($def_id_adr_liv) {
325                        $id_adr_liv = $def_id_adr_liv;
326                        $coord = new coordonnees($def_id_adr_liv);
327                } else {
328                        $coord_liv = entites::get_coordonnees($id_bibli, '2');
329                        if (pmb_mysql_num_rows($coord_liv) != 0) {
330                                $coord = pmb_mysql_fetch_object($coord_liv);
331                                $id_adr_liv = $coord->id_contact;
332                        } else {
333                                $id_adr_liv='0';
334                        }
335                }
336                if ($id_adr_liv) {
337                        if($coord->libelle != '') $adr_liv = htmlentities($coord->libelle, ENT_QUOTES, $charset)."\n";
338                        if($coord->contact != '') $adr_liv.= htmlentities($coord->contact, ENT_QUOTES, $charset)."\n"; 
339                        if($coord->adr1 != '') $adr_liv.= htmlentities($coord->adr1, ENT_QUOTES, $charset)."\n";
340                        if($coord->adr2 != '') $adr_liv.= htmlentities($coord->adr2, ENT_QUOTES, $charset)."\n";
341                        if($coord->cp !='') $adr_liv.= htmlentities($coord->cp, ENT_QUOTES, $charset).' ';
342                        if($coord->ville != '') $adr_liv.= htmlentities($coord->ville, ENT_QUOTES, $charset);
343                } else {
344                        $id_adr_liv = $id_adr_fac;
345                        $adr_liv = $adr_fac;
346                }
347                $comment = '';
348                $comment_i = '';
349                $liens_cde = '';
350                $ref = '';
351                $devise = $pmb_gestion_devise;
352               
353                $bt_dup='';
354                $bt_cde='';
355                $bt_imp = '';
356                $bt_audit = '';
357                $bt_sup = '';
358               
359                $lignes = array(0=>0, 1=>'');
360               
361        } else {                // modification de devis
362               
363                $dev = new actes($id_dev);
364               
365                $titre = htmlentities($msg['acquisition_dev_mod'], ENT_QUOTES, $charset);
366                $date_cre = formatdate($dev->date_acte);
367                $numero = htmlentities($dev->numero, ENT_QUOTES, $charset);
368                $statut = $dev->statut;
369                if (($statut & STA_ACT_ARC) == STA_ACT_ARC) {
370                        $statut=STA_ACT_ARC;
371                }
372
373                //Creation selecteur statut
374                $sel_statut = "<select class='saisie-25em' id='statut' name='statut' >";
375                $list_statut = actes::getStatelist(TYP_ACT_DEV, FALSE);
376                foreach($list_statut as $k=>$v){
377                        $sel_statut.="<option value='".$k."'>".htmlentities($v, ENT_QUOTES, $charset)."</option>";
378                }
379                $sel_statut.= "</select>";
380                $id_fou = $dev->num_fournisseur;
381                $fou = new entites($id_fou);
382                $lib_fou = htmlentities($fou->raison_sociale, ENT_QUOTES, $charset);
383                $coord = entites::get_coordonnees($fou->id_entite, '1');
384                if (pmb_mysql_num_rows($coord) != 0) {
385                        $coord = pmb_mysql_fetch_object($coord);
386                        $id_adr_fou = $coord->id_contact;
387                        if($coord->libelle != '') $adr_fou = htmlentities($coord->libelle, ENT_QUOTES, $charset)."\n";
388                        if($coord->contact !='') $adr_fou.=  htmlentities($coord->contact, ENT_QUOTES, $charset)."\n";
389                        if($coord->adr1 != '') $adr_fou.= htmlentities($coord->adr1, ENT_QUOTES, $charset)."\n";
390                        if($coord->adr2 != '') $adr_fou.= htmlentities($coord->adr2, ENT_QUOTES, $charset)."\n";
391                        if($coord->cp !='') $adr_fou.= htmlentities($coord->cp, ENT_QUOTES, $charset).' ';
392                        if($coord->ville != '') $adr_fou.= htmlentities($coord->ville, ENT_QUOTES, $charset);
393                } else {
394                        $id_adr_fou = '0';
395                        $adr_fou = '';
396                }
397                $id_adr_fac = $dev->num_contact_fact;
398                if ($id_adr_fac) {
399                        $coord_fac = new coordonnees($id_adr_fac);
400                        if($coord_fac->libelle != '') $adr_fac = htmlentities($coord_fac->libelle, ENT_QUOTES, $charset)."\n";
401                        if($coord->contact !='') $adr_fac.=  htmlentities($coord_fac->contact, ENT_QUOTES, $charset)."\n";
402                        if($coord_fac->adr1 != '') $adr_fac.= htmlentities($coord_fac->adr1, ENT_QUOTES, $charset)."\n";
403                        if($coord_fac->adr2 != '') $adr_fac.= htmlentities($coord_fac->adr2, ENT_QUOTES, $charset)."\n";
404                        if($coord_fac->cp !='') $adr_fac.= htmlentities($coord_fac->cp, ENT_QUOTES, $charset).' ';
405                        if($coord_fac->ville != '') $adr_fac.= htmlentities($coord_fac->ville, ENT_QUOTES, $charset);
406                } else {
407                        $id_adr_fac = '0';
408                        $adr_fac = '';
409                }
410                $id_adr_liv = $dev->num_contact_livr;
411                if ($id_adr_liv) {
412                        $coord_liv = new coordonnees($id_adr_liv);
413                        if($coord_liv->libelle != '') $adr_liv = htmlentities($coord_liv->libelle, ENT_QUOTES, $charset)."\n";
414                        if($coord_liv->contact != '') $adr_liv.= htmlentities($coord_liv->contact, ENT_QUOTES, $charset)."\n";
415                        if($coord_liv->adr1 != '') $adr_liv.= htmlentities($coord_liv->adr1, ENT_QUOTES, $charset)."\n";
416                        if($coord_liv->adr2 != '') $adr_liv.= htmlentities($coord_liv->adr2, ENT_QUOTES, $charset)."\n";
417                        if($coord_liv->cp !='') $adr_liv.= htmlentities($coord_liv->cp, ENT_QUOTES, $charset).' ';
418                        if($coord_liv->ville != '') $adr_liv.= htmlentities($coord_liv->ville, ENT_QUOTES, $charset);
419                } else {
420                        $id_adr_liv = '0';
421                        $adr_liv = '';
422                }
423                $comment = htmlentities($dev->commentaires, ENT_QUOTES, $charset);     
424                $comment_i = htmlentities($dev->commentaires_i, ENT_QUOTES, $charset); 
425                $tab_liens = liens_actes::getChilds($id_dev);
426                $liens_cde = '';
427                while (($row_liens = pmb_mysql_fetch_object($tab_liens))) {
428                        if( ($row_liens->type_acte) == TYP_ACT_CDE ) {
429                                $liens_cde.= "<br /><a href=\"./acquisition.php?categ=ach&sub=cmde&action=modif&id_bibli=".$id_bibli."&id_cde=".$row_liens->num_acte_lie."\">".$row_liens->numero."</a>"; 
430                        } 
431                }               
432                $ref = htmlentities($dev->reference, ENT_QUOTES, $charset);
433                $devise = htmlentities($dev->devise, ENT_QUOTES, $charset);
434
435                if (!$pmb_type_audit) {
436                        $bt_audit = '';
437                }
438               
439                $lignes = show_lig_dev($id_dev);               
440        }
441
442        //complement formulaire
443        $form = str_replace('<!-- sel_statut -->', $sel_statut, $form); 
444        $form = str_replace('<!-- bouton_enr -->', $bt_enr, $form);
445        $form = str_replace('<!-- bouton_dup -->', $bt_dup, $form);
446        $form = str_replace('<!-- bouton_cde -->', $bt_cde, $form);
447        $form = str_replace('<!-- bouton_imp -->', $bt_imp, $form);
448        $form = str_replace('<!-- bouton_audit -->', $bt_audit, $form);
449        $form = str_replace('<!-- bouton_sup -->', $bt_sup, $form);
450        $form = str_replace('!!act_nblines!!', $lignes[0], $form);
451        $form = str_replace('<!-- lignes -->', $lignes[1], $form);
452       
453        //Remplissage formulaire
454        $form = str_replace('!!form_title!!', $titre, $form);           
455        $form = str_replace('!!id_bibli!!', $id_bibli, $form); 
456        $form = str_replace('!!lib_bibli!!', $lib_bibli, $form);       
457        $form = str_replace('!!id_dev!!', $id_dev, $form);
458        $form = str_replace('!!date_cre!!', $date_cre, $form);
459        $form = str_replace('!!numero!!', $numero, $form);
460        $form = str_replace('!!statut!!', $statut, $form);     
461        $form = str_replace('!!id_fou!!', $id_fou, $form);
462        $form = str_replace('!!lib_fou!!', $lib_fou, $form);
463        $form = str_replace('!!id_adr_fou!!', $id_adr_fou, $form);
464        $form = str_replace('!!adr_fou!!', $adr_fou, $form);
465        $form = str_replace('!!id_adr_liv!!', $id_adr_liv, $form);
466        $form = str_replace('!!adr_liv!!', $adr_liv, $form);
467        $form = str_replace('!!id_adr_fac!!', $id_adr_fac, $form);
468        $form = str_replace('!!adr_fac!!', $adr_fac, $form);
469        $form = str_replace('!!comment!!', $comment, $form);
470        $form = str_replace('!!comment_i!!', $comment_i, $form);
471        $form = str_replace('!!ref!!', $ref, $form);
472        $form = str_replace('!!devise!!', $devise, $form);
473        $form = str_replace('!!liens_cde!!', $liens_cde, $form);
474
475        print $form;
476}
477
478
479//Affiche les lignes d'un devis
480function show_lig_dev($id_dev) {
481       
482        global $charset;
483        global $acquisition_gestion_tva;
484        global $modif_dev_row_form;
485       
486        $form = "";
487        $i=0;   
488        if (!$id_dev) {
489                $t = array(0=>$i, $form);
490                return $t;
491        }
492       
493        $lignes = actes::getLignes($id_dev);           
494        while (($row = pmb_mysql_fetch_object($lignes))) {
495               
496                $i++;   
497                $form.= $modif_dev_row_form;
498               
499                $form = str_replace('!!no!!', $i, $form);
500                $form = str_replace('!!code!!', htmlentities($row->code, ENT_QUOTES, $charset), $form);
501                $form = str_replace('!!lib!!', htmlentities($row->libelle, ENT_QUOTES, $charset), $form);
502                $form = str_replace('!!qte!!', $row->nb, $form);
503                $form = str_replace('!!prix!!', $row->prix, $form);
504                if ($row->num_type) {
505                        $tp = new types_produits($row->num_type);
506                        $form = str_replace('!!typ!!', $tp->id_produit, $form);
507                        $form = str_replace('!!lib_typ!!', htmlentities($tp->libelle, ENT_QUOTES, $charset), $form);
508                } else {
509                        $form = str_replace('!!typ!!', '0', $form);
510                        $form = str_replace('!!lib_typ!!', '', $form);
511                }                       
512                if ($acquisition_gestion_tva) {
513                        $form = str_replace('!!tva!!', $row->tva , $form);
514                }
515                $form = str_replace('!!rem!!', $row->remise, $form);
516                $form = str_replace('!!id_sug!!', $row->num_acquisition, $form);
517                $form = str_replace('!!id_lig!!', $row->id_ligne, $form);
518                $form = str_replace('!!typ_lig!!', $row->type_ligne, $form);
519                $form = str_replace('!!id_prod!!', $row->num_produit, $form);
520                       
521        }
522        $t = array(0=>$i, 1=>$form);
523        return $t;
524}
525
526
527//Affiche la liste des etablissements pour choix depuis suggestions
528function show_list_biblio_from_sug($sugchk) {
529
530        global $msg, $charset;
531        global $tab_bib, $nb_bib;
532        global $current_module;
533        $sugchk = rawurlencode(serialize($sugchk));
534       
535        //Affiche la liste des etablissements auxquels a acces l'utilisateur si > 1     
536        if ($nb_bib == '1') {
537                show_dev_from_sug($tab_bib[0][0], $sugchk);     
538                exit;   
539        }
540       
541        $def_bibli=entites::getSessionBibliId();
542        if (in_array($def_bibli, $tab_bib[0])) {
543                show_dev_from_sug($def_bibli, $sugchk);
544                exit;           
545        }                       
546       
547        $aff = "<form class='form-".$current_module."' id='list_biblio_form' name='list_biblio_form' method='post' action=\"\" >";
548        $aff.= "<input type='hidden' id='sugchk' name='sugchk' value='".$sugchk."' />";
549        $aff.= "<h3>".htmlentities($msg['acquisition_menu_chx_ent'], ENT_QUOTES, $charset)."</h3><div class='row'></div>";             
550        $aff.= "<table>";
551       
552        $parity=1;
553        foreach($tab_bib[0] as $k=>$v) {
554                if ($parity % 2) {
555                        $pair_impair = "even";
556                } else {
557                        $pair_impair = "odd";
558                }
559                $parity += 1;
560                $tr_javascript=" onmouseover=\"this.className='surbrillance'\" onmouseout=\"this.className='".$pair_impair."'\" onmousedown=\"document.forms['list_biblio_form'].setAttribute('action','./acquisition.php?categ=ach&sub=devi&action=from_sug_next&id_bibli=".$v."');document.forms['list_biblio_form'].submit(); \" ";
561               $aff.= "<tr class='".$pair_impair."' ".$tr_javascript." style='cursor: pointer'><td><i>".htmlentities($tab_bib[1][$k], ENT_QUOTES, $charset)."</i></td></tr>";
562        }
563        $aff.= "</table></form>";
564        print $aff;
565}
566
567
568//Affiche le formulaire de creation de devis depuis suggestions
569function show_dev_from_sug($id_bibli, $sugchk) {
570       
571        global $msg, $charset;
572        global $modif_dev_form, $bt_enr;
573        global $pmb_gestion_devise;
574        global $p_user;
575
576        //Recuperation etablissement
577        $bibli = new entites($id_bibli);
578        $lib_bibli = htmlentities($bibli->raison_sociale, ENT_QUOTES, $charset);
579       
580        //Prise en compte des adresses utilisateurs par défaut 
581        $tab1 = explode('|', $p_user->speci_coordonnees_etab);
582        $tab_adr=array();
583        foreach ($tab1 as $v) {
584                $tab2=explode(',', $v);
585                $tab_adr[$tab2[0]]['id_adr_fac']=$tab2[1];
586                $tab_adr[$tab2[0]]['id_adr_liv']=$tab2[2];
587        }
588        $def_id_adr_fac=$tab_adr[$id_bibli]['id_adr_fac'];
589        $def_id_adr_liv=$tab_adr[$id_bibli]['id_adr_liv'];
590
591        $form = $modif_dev_form;
592       
593        $titre = htmlentities($msg['acquisition_dev_cre'], ENT_QUOTES, $charset);
594        $date_cre = formatdate(today());
595        //$numero = calcNumero($id_bibli, TYP_ACT_DEV); 
596        $statut = STA_ACT_ENC;
597        $sel_statut = "<input type='hidden' id='statut' name='statut' value='".$statut."' />";
598        $sel_statut.=htmlentities($msg['acquisition_dev_enc'], ENT_QUOTES, $charset);
599        $id_fou = '0';
600        $lib_fou = '';
601        $id_adr_fou = '0';
602        $adr_fou = '';
603        if ($def_id_adr_fac) {
604                $id_adr_fac = $def_id_adr_fac;
605                $coord = new coordonnees($def_id_adr_fac);
606        } else {
607                $coord_fac = entites::get_coordonnees($id_bibli, '1');
608                if (pmb_mysql_num_rows($coord_fac) != 0) {
609                        $coord = pmb_mysql_fetch_object($coord_fac);
610                        $id_adr_fac = $coord->id_contact;
611                } else {
612                        $id_adr_fac='0';
613                }
614        }
615        if ($id_adr_fac) {
616                if($coord->libelle != '') $adr_fac = htmlentities($coord->libelle, ENT_QUOTES, $charset)."\n";
617                if($coord->contact != '') $adr_fac.= htmlentities($coord->contact, ENT_QUOTES, $charset)."\n";
618                if($coord->adr1 != '') $adr_fac.= htmlentities($coord->adr1, ENT_QUOTES, $charset)."\n";
619                if($coord->adr2 != '') $adr_fac.= htmlentities($coord->adr2, ENT_QUOTES, $charset)."\n";
620                if($coord->cp !='') $adr_fac.= htmlentities($coord->cp, ENT_QUOTES, $charset).' ';
621                if($coord->ville != '') $adr_fac.= htmlentities($coord->ville, ENT_QUOTES, $charset);
622        } else {
623                $adr_fac = '';
624        }
625
626        if ($def_id_adr_liv) {
627                $id_adr_liv = $def_id_adr_liv;
628                $coord = new coordonnees($def_id_adr_liv);
629        } else {
630                $coord_liv = entites::get_coordonnees($id_bibli, '2');
631                if (pmb_mysql_num_rows($coord_liv) != 0) {
632                        $coord = pmb_mysql_fetch_object($coord_liv);
633                        $id_adr_liv = $coord->id_contact;
634                } else {
635                        $id_adr_liv='0';
636                }
637        }
638        if ($id_adr_liv) {
639                if($coord->libelle != '') $adr_liv = htmlentities($coord->libelle, ENT_QUOTES, $charset)."\n";
640                if($coord->contact != '') $adr_liv.= htmlentities($coord->contact, ENT_QUOTES, $charset)."\n"; 
641                if($coord->adr1 != '') $adr_liv.= htmlentities($coord->adr1, ENT_QUOTES, $charset)."\n";
642                if($coord->adr2 != '') $adr_liv.= htmlentities($coord->adr2, ENT_QUOTES, $charset)."\n";
643                if($coord->cp !='') $adr_liv.= htmlentities($coord->cp, ENT_QUOTES, $charset).' ';
644                if($coord->ville != '') $adr_liv.= htmlentities($coord->ville, ENT_QUOTES, $charset);
645        } else {
646                $id_adr_liv = $id_adr_fac;
647                $adr_liv = $adr_fac;
648        }
649        $comment = '';
650        $comment_i = '';
651        $liens_cde = '';
652        $ref = '';
653        $devise = $pmb_gestion_devise;
654
655        $bt_dup='';
656        $bt_cde='';
657        $bt_imp = '';
658        $bt_audit = '';
659       
660        $lignes = show_lig_dev_from_sug($sugchk);
661
662        $id_dev=0;
663       
664        //complement formulaire
665        $form = str_replace('<!-- sel_statut -->', $sel_statut, $form); 
666        $form = str_replace('<!-- bouton_enr -->', $bt_enr, $form);
667        $form = str_replace('<!-- bouton_dup -->', $bt_dup, $form);
668        $form = str_replace('<!-- bouton_cde -->', $bt_cde, $form);
669        $form = str_replace('<!-- bouton_imp -->', $bt_imp, $form);
670        $form = str_replace('<!-- bouton_audit -->', $bt_audit, $form);
671        $form = str_replace('!!act_nblines!!', $lignes[0], $form);
672        $form = str_replace('<!-- lignes -->', $lignes[1], $form);
673       
674        //Remplissage formulaire
675        $form = str_replace('!!form_title!!', $titre, $form);           
676        $form = str_replace('!!id_bibli!!', $id_bibli, $form); 
677        $form = str_replace('!!lib_bibli!!', $lib_bibli, $form);       
678        $form = str_replace('!!id_dev!!', $id_dev, $form);
679        $form = str_replace('!!date_cre!!', $date_cre, $form);
680        $form = str_replace('!!numero!!', "", $form);
681        $form = str_replace('!!statut!!', $statut, $form);     
682        $form = str_replace('!!id_fou!!', $id_fou, $form);
683        $form = str_replace('!!lib_fou!!', $lib_fou, $form);
684        $form = str_replace('!!id_adr_fou!!', $id_adr_fou, $form);
685        $form = str_replace('!!adr_fou!!', $adr_fou, $form);
686        $form = str_replace('!!id_adr_liv!!', $id_adr_liv, $form);
687        $form = str_replace('!!adr_liv!!', $adr_liv, $form);
688        $form = str_replace('!!id_adr_fac!!', $id_adr_fac, $form);
689        $form = str_replace('!!adr_fac!!', $adr_fac, $form);
690        $form = str_replace('!!comment!!', $comment, $form);
691        $form = str_replace('!!comment_i!!', $comment_i, $form);
692        $form = str_replace('!!ref!!', $ref, $form);
693        $form = str_replace('!!devise!!', $devise, $form);
694        $form = str_replace('!!liens_cde!!', $liens_cde, $form);
695                               
696        print $form;
697}
698
699
700//Affiche les lignes de devis depuis les suggestions
701function show_lig_dev_from_sug($sugchk) {
702       
703        global $dbh,$charset;
704        global $acquisition_gestion_tva;
705        global $modif_dev_row_form;
706       
707        $form = "";
708        $i=0;   
709       
710        $arrchk = unserialize(rawurldecode(stripslashes($sugchk)));
711        foreach($arrchk as $value) {
712
713                $i++;
714               
715                $sug = new suggestions($value);
716                $form.=$modif_dev_row_form;
717               
718                $code="";
719                $taec="";
720                $prix='0';
721                $nb='none';
722
723                if ($sug->num_notice) {
724                        $q = "select niveau_biblio from notices where notice_id='".$sug->num_notice."' "; 
725                        $r = pmb_mysql_query($q,$dbh);
726                        if(pmb_mysql_num_rows($r)) {
727                                $nb=pmb_mysql_result($r,0,0);
728                        }
729                }
730               
731                switch($nb) {
732                        case 'a' :
733                                $typ_lig = 1;
734                                $notice=new sel_article_display($sug->num_notice,'');
735                                $notice->getData();
736                                $notice->responsabilites = get_notice_authors($sug->num_notice);
737                                $notice->doHeader();
738                                $taec= $notice->titre;
739                                if($notice->auteur1) {
740                                        $taec.="\n".$notice->auteur1;
741                                }
742                                if($notice->in_bull) {
743                                        $taec.="\n".$notice->in_bull;
744                                }
745                                $prix=$notice->prix;
746                                break;
747                        case 'm' :
748                                $typ_lig = 1;
749                                $notice=new sel_mono_display($sug->num_notice,'');
750                                $notice->getData();
751                                $notice->responsabilites = get_notice_authors($sug->num_notice);
752                                $notice->doHeader();
753                                $code = $notice->code;
754                                $taec= $notice->titre;
755                                if($notice->auteur1) {
756                                        $taec.="\n".$notice->auteur1;
757                                }
758                                if ($notice->editeur1) {
759                                        $taec.= "\n".$notice->editeur1;
760                                }
761                                if ($notice->editeur1 && $notice->ed_date) {
762                                        $taec.= ", ".$notice->ed_date;
763                                } elseif ($notice->ed_date){
764                                        $taec.= $notice->ed_date;
765                                }
766                                if ($notice->collection) {
767                                        $taec.= "\n".$notice->collection;
768                                }
769                                $prix=$notice->prix;
770                                break;
771                        default :
772                                $typ_lig = 0;
773                                $code = htmlentities($sug->code, ENT_QUOTES, $charset);
774                                $taec= htmlentities($sug->titre,ENT_QUOTES,$charset);
775                                if ($sug->auteur!="") $taec.= "\n".htmlentities($sug->auteur,ENT_QUOTES,$charset);
776                                if ($sug->editeur != "") $taec.= "\n".htmlentities($sug->editeur,ENT_QUOTES,$charset);
777                                $prix=htmlentities($sug->prix, ENT_QUOTES, $charset); 
778                                break;
779                }
780               
781                $form = str_replace('!!no!!', $i, $form);
782                $form = str_replace('!!code!!', $code, $form);
783                $form = str_replace('!!lib!!', $taec, $form);
784                $form = str_replace('!!qte!!', $sug->nb, $form);
785                $form = str_replace('!!prix!!', $prix,$form);
786                if ($acquisition_gestion_tva) {
787                        $form = str_replace('!!tva!!', '0.00', $form);         
788                }
789                $form = str_replace('!!typ!!', '0', $form);
790                $form = str_replace('!!lib_typ!!', '', $form);
791                $form = str_replace('!!rem!!', '0.00', $form);
792                $form = str_replace('!!id_sug!!', $sug->id_suggestion, $form);
793                $form = str_replace('!!id_lig!!', '0', $form);
794                $form = str_replace('!!id_prod!!', $sug->num_notice, $form);                                                           
795        }
796        $t = array(0=>$i, 1=>$form);
797        return $t;
798}
799
800
801//Sauvegarde devis
802function update_dev() {
803       
804        global $id_bibli, $id_dev, $num_dev, $statut;
805        global $id_fou;
806        global $id_adr_liv, $id_adr_fac;
807        global $comment, $comment_i, $ref, $devise;
808        global $code, $lib, $qte, $prix, $typ, $tva, $rem, $id_sug, $id_lig, $typ_lig, $id_prod;
809        global $acquisition_gestion_tva;
810
811       
812        //Recuperation des lignes valides
813        $tab_lig=array();
814        if (count($id_lig)){
815                foreach($id_lig as $k=>$v) {
816                        $code[$k] = trim($code[$k]);
817                        $lib[$k] = trim($lib[$k]);
818                        if ($code[$k] !='' || $lib[$k]!='') {           
819                                $tab_lig[$k]=$v;
820                        }
821                }
822        }
823        if (!$id_dev) {         //Creation de devis
824       
825                $dev = new actes();
826                $dev->type_acte = TYP_ACT_DEV;
827                $dev->num_entite = $id_bibli;
828                /*$num_dev=trim($num_dev);
829                if ($num_dev!='') {
830                        $dev->numero=$num_dev;
831                } else {
832                        $dev->calc();
833                }*/
834                $dev->statut=STA_ACT_ENC;
835                $dev->num_fournisseur = $id_fou;
836                $dev->num_contact_livr = $id_adr_liv;
837                $dev->num_contact_fact = $id_adr_fac;
838                $dev->commentaires = trim($comment);
839                $dev->commentaires_i = trim($comment_i);
840                $dev->reference = trim($ref);
841                $dev->devise = trim($devise);
842                $dev->save();                   
843       
844                $id_dev= $dev->id_acte;
845               
846                //Creation des lignes de devis
847                foreach($tab_lig as $k=>$v) {
848                       
849                        $lig_dev = new lignes_actes();
850                        $lig_dev->type_ligne = $typ_lig[$k];
851                        $lig_dev->num_acte = $id_dev;
852                        $lig_dev->num_produit = $id_prod[$k];
853                        $lig_dev->num_acquisition = $id_sug[$k];
854                        $lig_dev->num_type = $typ[$k];
855                        $lig_dev->code = $code[$k];
856                        $lig_dev->libelle = $lib[$k];
857                        $lig_dev->prix = $prix[$k];
858                        if ($acquisition_gestion_tva) {
859                                $lig_dev->tva = $tva[$k];
860                        } else {
861                                $lig_dev->tva = '0.00';
862                        }
863                        $lig_dev->remise = $rem[$k];
864                        $lig_dev->nb = round($qte[$k]);
865                        $lig_dev->date_cre = today();                   
866                        $lig_dev->save();
867                }       
868       
869                //Mise à jour du statut des suggestions et envoi email suivi de suggestion
870                $sug_map = new suggestions_map();
871                $sug_map->doTransition('ESTIMATED', $id_sug);
872               
873        } else {                //Modification de devis
874       
875                $dev = new actes($id_dev);
876                /*$num_dev=trim($num_dev);
877                if ($num_dev!='') {
878                        $dev->numero=$num_dev;
879                } else {
880                        $dev->numero=addslashes($dev->numero);
881                }*/
882               
883                $old_statut=($dev->statut & ~STA_ACT_ARC);
884                if ($old_statut != STA_ACT_ENC && $old_statut != STA_ACT_REC) {
885                        $old_statut=STA_ACT_ENC;
886                }
887
888                if ($statut == STA_ACT_ARC) {
889                        $rec_statut = ($old_statut | STA_ACT_ARC);
890                } else {
891                        $rec_statut = $statut;
892                }
893               
894                $dev->statut = $rec_statut;
895                $dev->num_fournisseur = $id_fou;
896                $dev->num_contact_livr = $id_adr_liv;
897                $dev->num_contact_fact = $id_adr_fac;
898                $dev->commentaires = trim($comment);
899                $dev->commentaires_i = trim($comment_i);
900                $dev->reference = trim($ref);
901                $dev->devise = trim($devise);
902                $dev->save();
903                       
904                //maj des lignes de devis
905                foreach($tab_lig as $k=>$v) {
906                                               
907                        $lig_dev = new lignes_actes($v);
908                        $lig_dev->type_ligne = $typ_lig[$k];
909                        $lig_dev->num_acte = $id_dev;
910                        $lig_dev->num_produit = $id_prod[$k];
911                        $lig_dev->num_acquisition = $id_sug[$k];
912                        $lig_dev->num_type = $typ[$k];
913                        $lig_dev->code = $code[$k];
914                        $lig_dev->libelle = $lib[$k];
915                        $lig_dev->prix = $prix[$k];
916                        if ($acquisition_gestion_tva) {
917                                $lig_dev->tva = $tva[$k];
918                        } else {
919                                $lig_dev->tva = '0.00';
920                        }               
921                        $lig_dev->remise = $rem[$k];
922                        $lig_dev->nb = round($qte[$k]);
923                        $lig_dev->date_cre = today();                   
924                        $lig_dev->save();
925                        if($v==0) $tab_lig[$k]=$lig_dev->id_ligne;
926                }               
927                //suppression des lignes non reprises
928                $dev->cleanLignes($id_dev, $tab_lig);
929        }       
930}
931
932
933//Duplication de devis
934function duplicate_dev($id_bibli, $id_dev) {
935
936        global $msg, $charset;
937        global $modif_dev_form,  $bt_enr;
938       
939        $bibli = new entites($id_bibli);
940        $lib_bibli = htmlentities($bibli->raison_sociale, ENT_QUOTES, $charset);
941       
942        $form = $modif_dev_form;
943
944        $dev = new actes($id_dev);
945
946        $titre = htmlentities($msg['acquisition_dev_cre'], ENT_QUOTES, $charset);               
947        $date_cre = formatdate(today());
948        $numero = calcNumero($id_bibli, TYP_ACT_DEV);
949        $statut = STA_ACT_ENC;
950        $sel_statut = "<input type='hidden' id='statut' name='statut' value='".$statut."' />";
951        $sel_statut.= htmlentities($msg['acquisition_dev_enc'], ENT_QUOTES, $charset);
952        $id_fou = $dev->num_fournisseur;
953        $form = str_replace('!!id_fou!!', $id_fou, $form);
954        $fou = new entites($id_fou);
955        $lib_fou = htmlentities($fou->raison_sociale, ENT_QUOTES, $charset);
956        $coord = entites::get_coordonnees($fou->id_entite, '1');
957        if (pmb_mysql_num_rows($coord) != 0) {
958                $coord = pmb_mysql_fetch_object($coord);
959                $id_adr_fou = $coord->id_contact;
960                if($coord->libelle != '') $adr_fou = htmlentities($coord->libelle, ENT_QUOTES, $charset)."\n";
961                if($coord->contact !='') $adr_fou.=  htmlentities($coord->contact, ENT_QUOTES, $charset)."\n";
962                if($coord->adr1 != '') $adr_fou.= htmlentities($coord->adr1, ENT_QUOTES, $charset)."\n";
963                if($coord->adr2 != '') $adr_fou.= htmlentities($coord->adr2, ENT_QUOTES, $charset)."\n";
964                if($coord->cp !='') $adr_fou.= htmlentities($coord->cp, ENT_QUOTES, $charset).' ';
965                if($coord->ville != '') $adr_fou.= htmlentities($coord->ville, ENT_QUOTES, $charset);
966        } else {
967                $id_adr_fou = '0';
968                $adr_fou = '';
969        }
970        $id_adr_fac = $dev->num_contact_fact;
971        if ($id_adr_fac) {
972                $coord_fac = new coordonnees($id_adr_fac);
973                if($coord_fac->libelle != '') $adr_fac = htmlentities($coord_fac->libelle, ENT_QUOTES, $charset)."\n";
974                if($coord->contact !='') $adr_fac.=  htmlentities($coord_fac->contact, ENT_QUOTES, $charset)."\n";
975                if($coord_fac->adr1 != '') $adr_fac.= htmlentities($coord_fac->adr1, ENT_QUOTES, $charset)."\n";
976                if($coord_fac->adr2 != '') $adr_fac.= htmlentities($coord_fac->adr2, ENT_QUOTES, $charset)."\n";
977                if($coord_fac->cp !='') $adr_fac.= htmlentities($coord_fac->cp, ENT_QUOTES, $charset).' ';
978                if($coord_fac->ville != '') $adr_fac.= htmlentities($coord_fac->ville, ENT_QUOTES, $charset);
979        } else {
980                $id_adr_fac = '0';
981                $adr_fac = '';
982        }
983        $id_adr_liv = $dev->num_contact_livr;
984        if ($id_adr_liv) {
985                $coord_liv = new coordonnees($id_adr_liv);
986                if($coord_liv->libelle != '') $adr_liv = htmlentities($coord_liv->libelle, ENT_QUOTES, $charset)."\n";
987                if($coord_liv->contact != '') $adr_liv.= htmlentities($coord_liv->contact, ENT_QUOTES, $charset)."\n";
988                if($coord_liv->adr1 != '') $adr_liv.= htmlentities($coord_liv->adr1, ENT_QUOTES, $charset)."\n";
989                if($coord_liv->adr2 != '') $adr_liv.= htmlentities($coord_liv->adr2, ENT_QUOTES, $charset)."\n";
990                if($coord_liv->cp !='') $adr_liv.= htmlentities($coord_liv->cp, ENT_QUOTES, $charset).' ';
991                if($coord_liv->ville != '') $adr_liv.= htmlentities($coord_liv->ville, ENT_QUOTES, $charset);
992        } else {
993                $id_adr_liv = '0';
994                $adr_liv = '';
995        }
996        $comment = ''; 
997        $comment_i = htmlentities($dev->commentaires_i, ENT_QUOTES, $charset);
998        $liens_cde = '';
999        $ref = '';
1000        $devise = htmlentities($dev->devise, ENT_QUOTES, $charset);
1001       
1002        $bt_dup='';
1003        $bt_cde='';
1004        $bt_imp = '';
1005        $bt_audit = '';
1006        $bt_sup='';
1007
1008        $lignes = show_lig_dev($id_dev);
1009       
1010        $id_dev=0;
1011
1012        //complement formulaire
1013        $form = str_replace('<!-- sel_statut -->', $sel_statut, $form); 
1014        $form = str_replace('<!-- bouton_enr -->', $bt_enr, $form);
1015        $form = str_replace('<!-- bouton_dup -->', $bt_dup, $form);
1016        $form = str_replace('<!-- bouton_cde -->', $bt_cde, $form);
1017        $form = str_replace('<!-- bouton_imp -->', $bt_imp, $form);
1018        $form = str_replace('<!-- bouton_audit -->', $bt_audit, $form);
1019        $form = str_replace('<!-- bouton_sup -->', $bt_sup, $form);
1020        $form = str_replace('!!act_nblines!!', $lignes[0], $form);
1021        $form = str_replace('<!-- lignes -->', $lignes[1], $form);
1022       
1023        //Remplissage formulaire
1024        $form = str_replace('!!form_title!!', $titre, $form);           
1025        $form = str_replace('!!id_bibli!!', $id_bibli, $form); 
1026        $form = str_replace('!!lib_bibli!!', $lib_bibli, $form);       
1027        $form = str_replace('!!id_dev!!', $id_dev, $form);
1028        $form = str_replace('!!date_cre!!', $date_cre, $form);
1029        $form = str_replace('!!numero!!', $numero, $form);
1030        $form = str_replace('!!statut!!', $statut, $form);     
1031        $form = str_replace('!!id_fou!!', $id_fou, $form);
1032        $form = str_replace('!!lib_fou!!', $lib_fou, $form);
1033        $form = str_replace('!!id_adr_fou!!', $id_adr_fou, $form);
1034        $form = str_replace('!!adr_fou!!', $adr_fou, $form);
1035        $form = str_replace('!!id_adr_liv!!', $id_adr_liv, $form);
1036        $form = str_replace('!!adr_liv!!', $adr_liv, $form);
1037        $form = str_replace('!!id_adr_fac!!', $id_adr_fac, $form);
1038        $form = str_replace('!!adr_fac!!', $adr_fac, $form);
1039        $form = str_replace('!!comment!!', $comment, $form);
1040        $form = str_replace('!!comment_i!!', $comment_i, $form);
1041        $form = str_replace('!!ref!!', $ref, $form);
1042        $form = str_replace('!!devise!!', $devise, $form);
1043        $form = str_replace('!!liens_cde!!', $liens_cde, $form);
1044        print $form;
1045}
1046
1047
1048function delete_dev_list() {
1049        global $chk;
1050       
1051        if(is_array($chk)) {
1052                foreach ($chk as $id_dev) {
1053                        $dev=new actes($id_dev);
1054                        if ($dev->type_acte==TYP_ACT_DEV) {
1055                                $dev->delete();
1056                        }
1057                }
1058        }
1059}
1060
1061
1062
1063function rec_dev_list() {
1064        global $chk;
1065       
1066        if(is_array($chk)) {
1067                foreach ($chk as $id_dev) {
1068                        $dev=new actes($id_dev);
1069                        if($dev->type_acte==TYP_ACT_DEV) {
1070                                $dev->statut=STA_ACT_REC;
1071                                $dev->update_statut();
1072                        }
1073                }
1074        }
1075}
1076
1077
1078
1079function arc_dev_list() {
1080        global $chk;
1081       
1082        if(is_array($chk)) {
1083                foreach ($chk as $id_dev) {
1084                        $dev=new actes($id_dev);
1085                        if($dev->type_acte==TYP_ACT_DEV) {
1086                                $dev->statut=($dev->statut | STA_ACT_ARC);
1087                                $dev->update_statut();
1088                        }
1089                }
1090        }
1091}
1092
1093function print_dev($id_bibli=0, $id_dev=0, $by_mail=FALSE) {
1094       
1095        global $dbh, $charset, $base_path, $acquisition_pdfdev_print;
1096        global $acquisition_pdfdev_obj_mail, $acquisition_pdfdev_text_mail;
1097        global $acquisition_pdfdev_by_mail,$PMBuseremailbcc;
1098               
1099        if (!($id_bibli && $id_dev)) return;
1100
1101        $bib = new entites($id_bibli);
1102        $bib_coord = pmb_mysql_fetch_object(entites::get_coordonnees($id_bibli,1));
1103
1104        $dev = new actes($id_dev);
1105       
1106        $id_fou = $dev->num_fournisseur;
1107        $fou = new entites($id_fou);
1108        $fou_coord = pmb_mysql_fetch_object(entites::get_coordonnees($id_fou,1));
1109       
1110        $no_mail=FALSE;
1111        if ( $by_mail==FALSE || !($acquisition_pdfdev_by_mail && strpos($bib_coord->email,'@') && strpos($fou_coord->email,'@')) ) {
1112               
1113                $no_mail=TRUE;
1114               
1115        } else {
1116               
1117                $dest_name='';
1118                if($fou_coord->libelle) {
1119                        $dest_name = $fou_coord->libelle;
1120                } else {
1121                        $dest_name = $fou->raison_sociale;
1122                }
1123                if($fou_coord->contact) $dest_name.=" ".$fou_coord->contact;
1124                $dest_mail=$fou_coord->email;
1125                $obj_mail = $acquisition_pdfdev_obj_mail; 
1126                $text_mail = $acquisition_pdfdev_text_mail;
1127                $bib_name = $bib_coord->raison_sociale; 
1128                $bib_mail = $bib_coord->email;
1129               
1130                $lettre = lettreDevis_factory::make();
1131                $lettre->doLettre($id_bibli,$id_dev);
1132                $piece_jointe=array();
1133                $piece_jointe[0]['contenu']=$lettre->getLettre('S');
1134                $piece_jointe[0]['nomfichier']=$lettre->getFileName();
1135               
1136               
1137                //         mailpmb($to_nom="", $to_mail,   $obj="",   $corps="",  $from_name="", $from_mail, $headers, $copie_CC="", $copie_BCC="", $faire_nl2br=0, $pieces_jointes=array())
1138                $res_envoi=mailpmb($dest_name, $dest_mail, $obj_mail, $text_mail ,$bib_name, $bib_mail, "Content-Type: text/plain; charset=\"$charset\"", '', $PMBuseremailbcc, 1, $piece_jointe);
1139                if (!$res_envoi) {
1140                        $no_mail=TRUE;
1141                }
1142                               
1143        }
1144
1145        if ($no_mail) {
1146                print " 
1147                        <form name='print_dev' action='pdf.php?pdfdoc=devi' target='lettre' method='post'>             
1148                                <input type='hidden' name='id_bibli' value='".$id_bibli."'/>
1149                                <input type='hidden' name='id_dev' value='".$id_dev."'/>
1150                                <script type='text/javascript'>
1151                                        openPopUp('','lettre', 600, 500, -2, -2, 'toolbar=no, dependent=yes, resizable=yes');
1152                                        document.print_dev.submit();
1153                                </script>
1154                        </form>";
1155        }       
1156       
1157}
1158
1159//Traitement des actions
1160print "<h1>".htmlentities($msg['acquisition_ach_ges'],ENT_QUOTES, $charset)."&nbsp;:&nbsp;".htmlentities($msg['acquisition_ach_dev'],ENT_QUOTES, $charset)."</h1>";
1161
1162switch($action) {
1163
1164        case 'list':
1165                entites::setSessionBibliId($id_bibli);
1166                show_list_dev($id_bibli);
1167                break;
1168
1169        case 'modif':
1170                show_dev($id_bibli, $id_dev);
1171                break;
1172
1173        case 'delete' :
1174                actes::delete($id_dev);
1175                liens_actes::delete($id_dev);
1176                show_list_dev($id_bibli);
1177                break;
1178
1179        case 'update' :
1180                update_dev();
1181                show_list_dev($id_bibli);
1182                break;
1183       
1184        case 'from_sug' :
1185                show_list_biblio_from_sug($chk);
1186                break;
1187
1188        case 'from_sug_next' :
1189                show_dev_from_sug($id_bibli, $sugchk);
1190                break;
1191
1192        case 'duplicate' :
1193                duplicate_dev($id_bibli, $id_dev);
1194                break;
1195
1196        case 'list_delete' :
1197                delete_dev_list();
1198                show_list_dev($id_bibli);
1199                break;         
1200               
1201        case 'list_rec':
1202                rec_dev_list();
1203                show_list_dev($id_bibli);
1204                break;         
1205               
1206        case 'list_arc':
1207                arc_dev_list();
1208                show_list_dev($id_bibli);
1209                break;         
1210
1211        case 'print' :
1212                print_dev($id_bibli, $id_dev, $by_mail);
1213                show_list_dev($id_bibli);
1214                break;
1215               
1216        default:
1217                show_list_biblio();     
1218                break;
1219}
1220
1221?>
1222
Note: See TracBrowser for help on using the repository browser.