source: pmb4.2/trunk/fuentes/pmb/classes/receptions_relances.class.php @ 815

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

Initial release of pmb 4.2

  • Property svn:executable set to *
File size: 38.9 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: receptions_relances.class.php,v 1.7 2013-04-04 13:02:43 mbertin Exp $
6
7if (stristr($_SERVER['REQUEST_URI'], ".class.php")) die("no access");
8
9require_once("$class_path/pdf_factory.class.php");
10require_once("$class_path/rtf_factory.class.php");
11require_once("$class_path/lignes_actes.class.php");
12require_once("$class_path/types_produits.class.php");
13
14class lettreRelance_PDF {
15       
16        var $PDF;
17        var $orient_page = 'P';                 //Orientation page (P=portrait, L=paysage)
18        var $largeur_page = 210;                //Largeur de page
19        var $hauteur_page = 297;                //Hauteur de page
20        var $unit = 'mm';                               //Unite
21        var $marge_haut = 10;                   //Marge haut
22        var $marge_bas = 20;                    //Marge bas
23        var $marge_droite = 10;                 //Marge droite
24        var $marge_gauche = 10;                 //Marge gauche
25        var $w = 190;                                   //Largeur utile page
26        var $font = 'Helvetica';                //Police
27        var $fs = 10;                                   //Taille police
28        var $x_logo = 10;                               //Distance du logo / bord gauche de page
29        var $y_logo = 10;                               //Distance du logo / bord haut de page
30        var $l_logo = 20;                               //Largeur logo
31        var $h_logo = 20;                               //Hauteur logo
32        var $x_raison = 35;                             //Distance raison sociale / bord gauche de page
33        var $y_raison = 10;                             //Distance raison sociale / bord haut de page
34        var $l_raison = 100;                    //Largeur raison sociale
35        var $h_raison = 10;                             //Hauteur raison sociale
36        var $fs_raison = 16;                    //Taille police raison sociale
37        var $x_date = 150;                              //Distance date / bord gauche de page
38        var $y_date = 10;                               //Distance date / bord haut de page
39        var $l_date = 0;                                //Largeur date
40        var $h_date = 6;                                //Hauteur date
41        var $fs_date = 8;                               //Taille police date
42        var $sep_ville_date = '';               //Séparateur entre ville et date
43        var $x_adr_rel = 10;                    //Distance adr relance / bord gauche de page
44        var $y_adr_rel = 35;                    //Distance adr relance / bord haut de page
45        var $l_adr_rel = 60;                    //Largeur adr relance
46        var $h_adr_rel = 5;                             //Hauteur adr relance
47        var $fs_adr_rel = 10;                   //Taille police adr relance
48        var $text_adr_tel = '';
49        var $text_adr_fax = '';
50        var $text_adr_email = '';
51        var $x_adr_fou = 100;                   //Distance adr fournisseur / bord gauche de page
52        var $y_adr_fou = 55;                    //Distance adr fournisseur / bord haut de page
53        var $l_adr_fou = 100;                   //Largeur adr fournisseur
54        var $h_adr_fou = 6;                             //Hauteur adr fournisseur
55        var $fs_adr_fou = 14;                   //Police adr fournisseur
56        var $x_titre = 10;                              //Distance titre / bord gauche de page
57        var $y_titre = 90;                              //Distance titre / bord haut de page
58        var $l_titre = 100;                             //Largeur titre
59        var $h_titre = 10;                              //Hauteur titre
60        var $fs_titre = 16;                             //Police titre
61        var $text_titre = '';
62        var $x_num = 10;                                //Distance num commande/devis / bord gauche de page
63        var $l_num = 0;                                 //Largeur num commande
64        var $h_num = 10;                                //Hauteur num commande
65        var $fs_num = 16;                               //Taille police num commande/devis
66        var $text_num = '';                             //Texte commande/devis
67        var $text_ech = '';                             //Texte date echeance
68        var $text_num_ech = '';
69        var $x_num_cli = 10;                    //Distance num client / bord gauche de page
70        var $y_num_cli = 80;                    //Distance num client / bord haut de page
71        var $l_num_cli = 0;                             //Largeur num commande
72        var $h_num_cli = 10;                    //Hauteur num commande
73        var $fs_num_cli = 16;                   //Taille police num commande/devis
74        var $text_num_cli = '';                 //Texte numéro client
75        var $text_before = '';                  //texte avant table relances
76        var $text_after = '';                   //texte après table relances
77        var $h_tab = 5;                                 //Hauteur de ligne table relance
78        var $fs_tab = 10;                               //Taille police table relance
79        var $x_tab = 10;                                //position table relance / bord droit page
80        var $y_tab = 10;                                //position table relance / haut page sur pages 2 et +
81        var $x_sign = 10;                               //Distance signature / bord gauche de page
82        var $l_sign = 60;                               //Largeur cellule signature
83        var $h_sign = 5;                                //Hauteur signature
84        var $fs_sign = 10;                              //Taille police signature
85        var $text_sign = '';                    //Texte signature
86        var $y_footer = 15;                             //Distance footer / bas de page
87        var $fs_footer = 8;                             //Taille police footer
88        var $x_col1 = '';
89        var $w_col1 = '';
90        var $txt_header_col1 = '';
91        var $x_col2 = '';
92        var $w_col2 = '';
93        var $txt_header_col2 = '';
94        var $x_col3 = '';
95        var $w_col3 = '';
96        var $txt_header_col3 = '';
97        var $x_col4 = '';
98        var $w_col4 = '';
99        var $txt_header_col4 = '';
100        var $x_col5 = '';
101        var $w_col5 = '';
102        var $txt_header_col5 = '';
103        var $y = 0;
104        var $h = 0;
105        var $s = 0;
106        var $h_header = 0;
107        var $p_header = false;
108        var $filename = 'lettre_relance.pdf';
109       
110        function __construct() {
111               
112                global $msg, $charset, $pmb_pdf_font;
113                global $acquisition_pdfrel_orient_page, $acquisition_pdfrel_text_size, $acquisition_pdfrel_format_page, $acquisition_pdfrel_marges_page;
114                global $acquisition_pdfrel_pos_logo, $acquisition_pdfrel_pos_raison, $acquisition_pdfrel_pos_date, $acquisition_pdfrel_pos_adr_fac;
115                global $acquisition_pdfrel_pos_adr_liv, $acquisition_pdfrel_pos_adr_fou, $acquisition_pdfrel_pos_num, $acquisition_pdfrel_text_before;
116                global $acquisition_pdfrel_text_after, $acquisition_pdfrel_tab_rel, $acquisition_pdfrel_pos_sign, $acquisition_pdfrel_text_sign;
117                global $acquisition_pdfrel_pos_footer, $acquisition_pdfrel_pos_titre, $acquisition_pdfrel_pos_num_cli ;
118                       
119                if($acquisition_pdfrel_orient_page) $this->orient_page = $acquisition_pdfrel_orient_page;
120               
121                $format_page = explode('x',$acquisition_pdfrel_format_page);
122                if($format_page[0]) $this->largeur_page = $format_page[0];
123                if($format_page[1]) $this->hauteur_page = $format_page[1];
124
125                $this->PDF = pdf_factory::make($this->orient_page, $this->unit, array($this->largeur_page, $this->hauteur_page));
126               
127                $marges_page = explode(',', $acquisition_pdfrel_marges_page);
128                if ($marges_page[0]) $this->marge_haut = $marges_page[0];
129                if ($marges_page[1]) $this->marge_bas = $marges_page[1];
130                if ($marges_page[2]) $this->marge_droite = $marges_page[2];
131                if ($marges_page[3]) $this->marge_gauche = $marges_page[3];
132                               
133                $this->w = $this->largeur_page-$this->marge_gauche-$this->marge_droite;
134               
135                $this->font = $pmb_pdf_font;
136                if($acquisition_pdfrel_text_size) $this->fs = $acquisition_pdfrel_text_size;
137
138                $pos_logo = explode(',', $acquisition_pdfrel_pos_logo);
139                if ($pos_logo[0]) $this->x_logo = $pos_logo[0];
140                if ($pos_logo[1]) $this->y_logo = $pos_logo[1];
141                if ($pos_logo[2]) $this->l_logo = $pos_logo[2];
142                if ($pos_logo[3]) $this->h_logo = $pos_logo[3];
143
144                $pos_raison = explode(',', $acquisition_pdfrel_pos_raison);
145                if ($pos_raison[0]) $this->x_raison = $pos_raison[0];
146                if ($pos_raison[1]) $this->y_raison = $pos_raison[1];
147                if ($pos_raison[2]) $this->l_raison = $pos_raison[2];
148                if ($pos_raison[3]) $this->h_raison = $pos_raison[3];
149                if ($pos_raison[4]) $this->fs_raison = $pos_raison[4];
150               
151                $pos_date = explode(',', $acquisition_pdfrel_pos_date);
152                if ($pos_date[0]) $this->x_date = $pos_date[0];
153                if ($pos_date[1]) $this->y_date = $pos_date[1];
154                if ($pos_date[2]) $this->l_date = $pos_date[2];
155                if ($pos_date[3]) $this->h_date = $pos_date[3];
156                if ($pos_date[4]) $this->fs_date = $pos_date[4];
157                $this->sep_ville_date = $msg['acquisition_act_sep_ville_date'];
158               
159                $pos_adr_rel = explode(',', $acquisition_pdfrel_pos_adr_rel);
160                if ($pos_adr_rel[0]) $this->x_adr_rel = $pos_adr_rel[0];
161                if ($pos_adr_rel[1]) $this->y_adr_rel = $pos_adr_rel[1];
162                if ($pos_adr_rel[2]) $this->l_adr_rel = $pos_adr_rel[2];
163                if ($pos_adr_rel[3]) $this->h_adr_rel = $pos_adr_rel[3];
164                if ($pos_adr_rel[4]) $this->fs_adr_rel = $pos_adr_rel[4];
165                $this->text_adr_tel = $msg['acquisition_tel'].".";
166                $this->text_adr_fax = $msg['acquisition_fax'].".";
167                $this->text_adr_email = $msg['acquisition_mail']." :";
168               
169                $pos_adr_fou = explode(',', $acquisition_pdfrel_pos_adr_fou);
170                if ($pos_adr_fou[0]) $this->x_adr_fou = $pos_adr_fou[0];
171                if ($pos_adr_fou[1]) $this->y_adr_fou = $pos_adr_fou[1];
172                if ($pos_adr_fou[2]) $this->l_adr_fou = $pos_adr_fou[2];
173                if ($pos_adr_fou[3]) $this->h_adr_fou = $pos_adr_fou[3];
174                if ($pos_adr_fou[4]) $this->fs_adr_fou = $pos_adr_fou[4];
175               
176                $pos_titre = explode(',', $acquisition_pdfrel_pos_titre);
177                if ($pos_titre[0]) $this->x_titre = $pos_titre[0];
178                if ($pos_titre[1]) $this->y_titre = $pos_titre[1];
179                if ($pos_titre[2]) $this->l_titre = $pos_titre[2];
180                if ($pos_titre[3]) $this->h_titre = $pos_titre[3];
181                if ($pos_titre[4]) $this->fs_titre = $pos_titre[4];
182                $this->text_titre = $msg['acquisition_recept_lettre_titre'];
183               
184                $pos_num = explode(',', $acquisition_pdfrel_pos_num);
185                if ($pos_num[0]) $this->x_num = $pos_num[0];
186                if ($pos_num[2]) $this->l_num = $pos_num[1];
187                if ($pos_num[3]) $this->h_num = $pos_num[2];
188                if ($pos_num[4]) $this->fs_num = $pos_num[3];
189                $this->text_num = $msg['acquisition_act_num_cde'];
190                $this->text_ech = $msg['acquisition_recept_lettre_ech'];
191                               
192                $pos_num_cli = explode(',', $acquisition_pdfrel_pos_num_cli);
193                if ($pos_num_cli[0]) $this->x_num_cli = $pos_num_cli[0];
194                if ($pos_num_cli[0]) $this->x_num_cli = $pos_num_cli[0];
195                if ($pos_num_cli[2]) $this->l_num_cli = $pos_num_cli[1];
196                if ($pos_num_cli[3]) $this->h_num_cli = $pos_num_cli[2];
197                if ($pos_num_cli[4]) $this->fs_num_cli = $pos_num_cli[3];
198                $this->text_num_cli = $msg['acquisition_num_cp_client'];
199               
200                $this->text_before = $acquisition_pdfrel_text_before;
201                $this->text_after = $acquisition_pdfrel_text_after;
202               
203                $pos_tab = explode(',', $acquisition_pdfrel_tab_rel);
204                if ($pos_tab[0]) $this->h_tab = $pos_tab[0];
205                if ($pos_tab[1]) $this->fs_tab = $pos_tab[1];
206                $this->x_tab = $this->marge_gauche;
207                $this->y_tab = $this->marge_haut; 
208               
209                $pos_sign = explode(',', $acquisition_pdfrel_pos_sign);
210                if ($pos_sign[0]) $this->x_sign = $pos_sign[0];
211                if ($pos_sign[1]) $this->l_sign = $pos_sign[1];
212                if ($pos_sign[2]) $this->h_sign = $pos_sign[2];
213                if ($pos_sign[3]) $this->fs_sign = $pos_sign[3];
214                       
215                if ($acquisition_pdfrel_text_sign) $this->text_sign = $acquisition_pdfrel_text_sign;
216                        else $this->text_sign = $msg['acquisition_act_sign'];
217               
218                $pos_footer = explode(',', $acquisition_pdfrel_pos_footer);
219                if ($pos_footer[0]) $this->PDF->y_footer = $pos_footer[0];
220                        else $this->PDF->y_footer=$this->y_footer;
221                if ($pos_footer[1]) $this->PDF->fs_footer = $pos_footer[1];
222                        else $this->PDF->fs_footer=$this->fs_footer;
223               
224                $this->x_col1 =  $this->x_tab;
225                $this->w_col1 = round($this->w*20/100);
226                $this->txt_header_col1 = $msg['acquisition_act_tab_typ']."\n".$msg['acquisition_act_tab_code'];
227               
228                $this->x_col2 = $this->x_col1 + $this->w_col1;
229                $this->w_col2 = round($this->w*50/100);
230                $this->txt_header_col2 = $msg['acquisition_act_tab_lib'];
231               
232                $this->x_col3 = $this->x_col2 + $this->w_col2;
233                $this->w_col3 = round($this->w*10/100); 
234                $this->txt_header_col3 = $msg['acquisition_qte_cde'];
235               
236                $this->x_col4 = $this->x_col3 + $this->w_col3;
237                $this->w_col4 = round($this->w*10/100); 
238                $this->txt_header_col4 = $msg['acquisition_qte_liv'];
239               
240                $this->x_col5 = $this->x_col4 + $this->w_col4;
241                $this->w_col5 = round($this->w*10/100); 
242                $this->txt_header_col5 = $msg['acquisition_act_tab_sol'];
243               
244                $this->PDF->Open();
245                $this->PDF->SetMargins($this->marge_gauche, $this->marge_haut, $this->marge_droite);
246                $this->PDF->setFont($this->font);
247
248                $this->h_header = $this->h_tab * max(   $this->PDF->NbLines($this->w_col1, $this->txt_header_col1 ),
249                $this->PDF->NbLines($this->w_col2,$this->txt_header_col2),
250                $this->PDF->NbLines($this->w_col3, $this->txt_header_col3),
251                $this->PDF->NbLines($this->w_col4, $this->txt_header_col4),
252                $this->PDF->NbLines($this->w_col5, $this->txt_header_col5) );
253                $this->p_header = false;
254               
255                $this->PDF->footer_type = 2;
256                $this->PDF->msg_footer = $msg['acquisition_act_page'];
257        }
258       
259       
260        function doLettre(&$bib, &$bib_coord, &$fou, &$fou_coord, &$tab_act) {
261               
262                global $msg;
263               
264                $this->PDF->AddPage();
265                $this->PDF->npage = 1;
266               
267                //Affichage logo
268                if($bib->logo != '') {
269                        $this->PDF->Image($bib->logo, $this->x_logo, $this->y_logo, $this->l_logo, $this->h_logo);
270                }
271               
272                //Affichage raison sociale
273                $raison =  $bib->raison_sociale;
274                $this->PDF->setFontSize($this->fs_raison);
275                $this->PDF->SetXY($this->x_raison, $this->y_raison);
276                $this->PDF->MultiCell($this->l_raison, $this->h_raison, $raison, 0, 'L', 0);
277               
278                //Affichage date $ville
279                $ville_end=stripos($bib_coord->ville,"cedex"); 
280                if($ville_end!==false) $ville=trim(substr($bib_coord->ville,0,$ville_end));
281                else $ville=$bib_coord->ville;
282                $date = $ville.$this->sep_ville_date.format_date(today());
283                $this->PDF->setFontSize($this->fs_date);
284                $this->PDF->SetXY($this->x_date, $this->y_date);
285                $this->PDF->Cell($this->l_date, $this->h_date, $date, 0, 0, 'L', 0);
286               
287                //Affichage coordonnees fournisseur
288                //si pas de raison sociale définie, on reprend le libellé
289                //si il y a une raison sociale, pas besoin
290                if($fou->raison_sociale != '') {
291                        $adr_fou = $fou->raison_sociale."\n";
292                } else { 
293                        $adr_fou = $coord_fou->libelle."\n";
294                }
295                if($fou_coord->adr1 != '') $adr_fou.= $fou_coord->adr1."\n";
296                if($fou_coord->adr2 != '') $adr_fou.= $fou_coord->adr2."\n";
297                if($fou_coord->cp != '') $adr_fou.= $fou_coord->cp." ";
298                if($fou_coord->ville != '') $adr_fou.= $fou_coord->ville."\n\n";
299                if ($fou_coord->contact != '') $adr_fou.= $fou_coord->contact;
300                $this->PDF->setFontSize($this->fs_adr_fou);
301                $this->PDF->SetXY($this->x_adr_fou, $this->y_adr_fou);
302                $this->PDF->MultiCell($this->l_adr_fou, $this->h_adr_fou, $adr_fou, 0, 'L', 0);
303               
304                //Affichage adresse bibliotheque
305                $adr_rel=''; 
306                if($bib_coord->libelle != '') $adr_rel.= $bib_coord->libelle."\n"; 
307                if($bib_coord->adr1 != '') $adr_rel.= $bib_coord->adr1."\n";
308                if($bib_coord->adr2 != '') $adr_rel.= $bib_coord->adr2."\n";
309                if($bib_coord->cp != '') $adr_rel.= $bib_coord->cp." ";
310                if($bib_coord->ville != '') $adr_rel.= $bib_coord->ville."\n";
311                if($bib_coord->tel1 != '') $adr_rel.= $this->text_adr_tel." ".$bib_coord->tel1."\n";
312                if($bib_coord->fax != '') $adr_rel.= $this->text_adr_fax." ".$bib_coord->fax."\n";
313                if($bib_coord->email != '') $adr_rel.= $this->text_adr_email." ".$bib_coord->email."\n";
314                $this->PDF->setFontSize($this->fs_adr_rel);
315                $this->PDF->SetXY($this->x_adr_rel, $this->y_adr_rel);
316                $this->PDF->MultiCell($this->l_adr_rel, $this->h_adr_rel, $adr_rel, 1, 'L', 0);
317               
318                //Affichage numero client
319                $numero_cli = $this->text_num_cli." ".$fou->num_cp_client;
320                $this->PDF->SetFontSize($this->fs_num_cli);
321                $this->PDF->SetXY($this->x_num_cli, $this->y_num_cli);
322                $this->PDF->Cell($this->l_num_cli, $this->h_num_cli, $numero_cli, 0, 0, 'L', 0);
323                $this->PDF->Ln();
324               
325                //Affichage titre
326                $this->PDF->setFontSize($this->fs_titre);
327                $this->PDF->SetXY($this->x_titre, $this->y_titre);
328                $this->PDF->Cell($this->l_titre, $this->h_titre, $this->text_titre, 0, 0, 'L', 0);
329               
330                //Affichage tiret pliage
331                $this->PDF->Line(0,105, 3, 105);
332                $this->y=$this->PDF->GetY();
333                $this->PDF->Ln();
334                $this->PDF->Ln();
335
336                //Affichage texte before
337                if ($this->text_before != '') {
338                        $this->PDF->SetFontSize($this->fs);
339                        $this->PDF->MultiCell($this->w, $this->h_tab, $this->text_before, 0, 'J', 0);
340                }
341               
342                //Affichage des lignes de relances
343                $this->PDF->SetAutoPageBreak(false);
344                $this->PDF->AliasNbPages();
345       
346                $this->PDF->SetFontSize($this->fs_tab);
347                $this->PDF->SetFillColor(230);
348                $this->y = $this->PDF->GetY();
349                $this->PDF->SetXY($this->x_tab,$this->y);
350               
351                foreach($tab_act as $id_act=>$tab_lig) {
352                       
353                        $this->p_header = false;
354                        $act = new actes($id_act);
355                        $this->text_num_ech = $this->text_num.' '.$act->numero;
356                        if ($act->date_ech!='0000-00-00') $this->text_num_ech.= ' '.sprintf($this->text_ech,format_date($act->date_ech));
357                       
358                        foreach($tab_lig as $id_lig) {
359                               
360                                $lig = new lignes_actes($id_lig);
361                                $typ = new types_produits($lig->num_type);
362                                $col1 = $typ->libelle;
363                                if($lig->code) $col1.= "\n".$lig->code;
364                                $col2 = $lig->libelle;
365                                $col3 = $lig->nb;
366                                $col4 = $lig->getNbDelivered();
367                                $col5 = $col3-$col4;
368                               
369                                //Est ce qu'on dépasse ?               
370                                $this->h = $this->h_tab * max(  $this->PDF->NbLines($this->w_col1, $col1),
371                                                        $this->PDF->NbLines($this->w_col2, $col2),
372                                                        $this->PDF->NbLines($this->w_col3, $col3),
373                                                        $this->PDF->NbLines($this->w_col4, $col4),
374                                                        $this->PDF->NbLines($this->w_col5, $col5) );
375                                $this->s = $this->y+$this->h;
376                                if(!$this->p_header) $this->s=$this->s + $this->h_header;               
377                               
378                                //Si oui, chgt page
379                                if ($this->s > ($this->hauteur_page-$this->marge_bas-$this->fs_footer)){
380                                        $this->PDF->AddPage();
381                                        $this->y = $this->y_tab;
382                                        $this->p_header = false;
383                                }
384                                if (!$this->p_header) {
385                                        $this->doEntete();             
386                                        $this->y+=$this->h_header;             
387                                }
388                                $this->p_header = true; 
389                               
390                                $this->PDF->SetXY($this->x_col1, $this->y);
391                                $this->PDF->Rect($this->x_col1, $this->y, $this->w_col1, $this->h);
392                                $this->PDF->MultiCell($this->w_col1, $this->h_tab, $col1, 0, 'L');
393                                $this->PDF->SetXY($this->x_col2, $this->y);
394                                $this->PDF->Rect($this->x_col2, $this->y, $this->w_col2, $this->h);
395                                $this->PDF->MultiCell($this->w_col2, $this->h_tab, $col2, 0, 'L');
396                                $this->PDF->SetXY($this->x_col3, $this->y);
397                                $this->PDF->Rect($this->x_col3, $this->y, $this->w_col3, $this->h);
398                                $this->PDF->MultiCell($this->w_col3, $this->h_tab, $col3, 0, 'R');
399                                $this->PDF->SetXY($this->x_col4, $this->y);
400                                $this->PDF->Rect($this->x_col4, $this->y, $this->w_col4, $this->h);
401                                $this->PDF->MultiCell($this->w_col4, $this->h_tab, $col4, 0, 'R');
402                                $this->PDF->SetXY($this->x_col5, $this->y);
403                                $this->PDF->Rect($this->x_col5, $this->y, $this->w_col5, $this->h);
404                                $this->PDF->MultiCell($this->w_col5, $this->h_tab, $col5, 0, 'R');
405                                $this->y+= $this->h;
406                       
407                        }
408                }
409
410                $this->PDF->SetAutoPageBreak(true, $this->marge_bas);
411                $this->PDF->SetX($this->marge_gauche);
412                $this->PDF->SetY($this->y);
413                $this->PDF->Ln();
414                $this->PDF->SetFontSize($this->fs);
415       
416                //Affichage texte after
417                $this->PDF->Ln();
418                if ($this->text_after != '') {
419                        $this->PDF->MultiCell($this->w, $this->h_tab, $this->text_after, 0, 'J', 0);
420                        $this->PDF->Ln();
421                }
422               
423                //Affichage signature
424                $this->PDF->Ln();
425                $this->PDF->SetFontSize($this->fs_sign);
426                $this->PDF->SetX($this->x_sign);
427                $this->PDF->MultiCell($this->l_sign, $this->h_sign, $this->text_sign, 0, 'L', 0);
428                                       
429
430        }
431       
432        function getLettre($format=0,$name='lettre_relance.pdf') {
433                if (!$format) {
434                        return $this->PDF->OutPut();
435                } else {
436                        return $this->PDF->OutPut($name,'S');
437                }
438        }
439       
440        function getFileName() {
441                return $this->filename;
442        }
443       
444        //Entete de tableau
445        function doEntete() {
446                $this->PDF->SetXY($this->x_num,$this->y);
447                $this->PDF->MultiCell($this->w_num, $this->h_num, $this->text_num_ech, 0, 'L');
448                $this->y = $this->PDF->GetY();
449                $this->PDF->SetXY($this->x_col1, $this->y);
450                $this->PDF->Rect($this->x_col1, $this->y, $this->w_col1, $this->h_header, 'FD');
451                $this->PDF->MultiCell($this->w_col1, $this->h_tab, $this->txt_header_col1, 0, 'L');
452                $this->PDF->SetXY($this->x_col2, $this->y);
453                $this->PDF->Rect($this->x_col2, $this->y, $this->w_col2, $this->h_header, 'FD');
454                $this->PDF->MultiCell($this->w_col2, $this->h_tab, $this->txt_header_col2, 0, 'L');
455                $this->PDF->SetXY($this->x_col3, $this->y);
456                $this->PDF->Rect($this->x_col3, $this->y, $this->w_col3, $this->h_header, 'FD');
457                $this->PDF->MultiCell($this->w_col3, $this->h_tab, $this->txt_header_col3, 0, 'L');
458                $this->PDF->SetXY($this->x_col4, $this->y);
459                $this->PDF->Rect($this->x_col4, $this->y, $this->w_col4, $this->h_header, 'FD');
460                $this->PDF->MultiCell($this->w_col4, $this->h_tab, $this->txt_header_col4, 0, 'L');
461                $this->PDF->SetXY($this->x_col5, $this->y);
462                $this->PDF->Rect($this->x_col5, $this->y, $this->w_col5, $this->h_header, 'FD');
463                $this->PDF->MultiCell($this->w_col5, $this->h_tab, $this->txt_header_col5, 0, 'L');
464        }
465       
466}
467
468
469class lettreRelance_RTF {
470       
471        var $RTF;
472        var $sect;
473        var $orient_page = 'P';                 //Orientation page (P=portrait, L=paysage)
474        var $largeur_page = 21;                 //Largeur de page
475        var $hauteur_page = 29.7;               //Hauteur de page
476        var $unit = 'cm';                               //Unite
477        var $marge_haut = 1;                    //Marge haut
478        var $marge_bas = 2;                             //Marge bas
479        var $marge_droite = 1;                  //Marge droite
480        var $marge_gauche = 1;                  //Marge gauche
481        var $w = 19;                                    //Largeur utile page
482        var $fonts = array();                   //Tableau de polices
483        var $font = 'Helvetica';                //Nom police
484        var $fs = 10;                                   //Taille police
485        var $x_logo = 1;                                //Distance du logo / bord gauche de page
486        var $y_logo = 1;                                //Distance du logo / bord haut de page
487        var $l_logo = 2;                                //Largeur logo
488        var $h_logo = 2;                                //Hauteur logo
489        var $x_raison = 3.5;                    //Distance raison sociale / bord gauche de page
490        var $y_raison = 1;                              //Distance raison sociale / bord haut de page
491        var $l_raison = 10;                             //Largeur raison sociale
492        var $h_raison = 1;                              //Hauteur raison sociale
493        var $fs_raison = 16;                    //Taille police raison sociale
494        var $x_date = 15;                               //Distance date / bord gauche de page
495        var $y_date = 1;                                //Distance date / bord haut de page
496        var $l_date = 0;                                //Largeur date
497        var $h_date = 6;                                //Hauteur date
498        var $fs_date = 8;                               //Taille police date
499        var $sep_ville_date = '';               //Séparateur entre ville et date
500        var $x_adr_rel = 1;                             //Distance adr relance / bord gauche de page
501        var $y_adr_rel = 3.5;                   //Distance adr relance / bord haut de page
502        var $l_adr_rel = 6;                             //Largeur adr relance
503        var $h_adr_rel = 0.5;                   //Hauteur adr relance
504        var $fs_adr_rel = 10;                   //Taille police adr relance
505        var $text_adr_tel = '';
506        var $text_adr_fax = '';
507        var $text_adr_email = '';
508        var $x_adr_fou = 10;                    //Distance adr fournisseur / bord gauche de page
509        var $y_adr_fou = 5.5;                   //Distance adr fournisseur / bord haut de page
510        var $l_adr_fou = 10;                    //Largeur adr fournisseur
511        var $h_adr_fou = 0.6;                   //Hauteur adr fournisseur
512        var $fs_adr_fou = 14;                   //Police adr fournisseur
513        var $x_titre = 1;                               //Distance titre / bord gauche de page
514        var $y_titre = 9;                               //Distance titre / bord haut de page
515        var $l_titre = 10;                              //Largeur titre
516        var $h_titre = 1;                               //Hauteur titre
517        var $fs_titre = 16;                             //Police titre
518        var $text_titre = '';
519        var $x_num = 1;                                 //Distance num commande/devis / bord gauche de page
520        var $l_num = 0;                                 //Largeur num commande
521        var $h_num = 1;                                 //Hauteur num commande
522        var $fs_num = 16;                               //Taille police num commande/devis
523        var $text_num = '';                             //Texte commande/devis
524        var $text_ech = '';                             //Texte date echeance
525        var $text_num_ech = '';
526        var $x_num_cli = 1;                             //Distance num client / bord gauche de page
527        var $y_num_cli = 8;                             //Distance num client / bord haut de page
528        var $l_num_cli = 0;                             //Largeur num commande
529        var $h_num_cli = 1;                             //Hauteur num commande
530        var $fs_num_cli = 16;                   //Taille police num commande/devis
531        var $text_num_cli = '';                 //Texte numéro client
532        var $text_before = '';                  //texte avant table relances
533        var $text_after = '';                   //texte après table relances
534        var $h_tab = 0.5;                               //Hauteur de ligne table relance
535        var $fs_tab = 10;                               //Taille police table relance
536        var $x_tab = 1;                                 //position table relance / bord droit page
537        var $y_tab = 1;                                 //position table relance / haut page sur pages 2 et +
538        var $x_sign = 1;                                //Distance signature / bord gauche de page
539        var $l_sign = 6;                                //Largeur cellule signature
540        var $h_sign = 0.5;                              //Hauteur signature
541        var $fs_sign = 10;                              //Taille police signature
542        var $text_sign = '';                    //Texte signature
543        var $y_footer = 1.5;                    //Distance footer / bas de page
544        var $fs_footer = 8;                             //Taille police footer
545        var $msg_footer = '';
546        var $x_col1 = '';
547        var $w_col1 = '';
548        var $txt_header_col1 = '';              //Hauteur entete tableau
549        var $x_col2 = '';
550        var $w_col2 = '';
551        var $txt_header_col2 = '';
552        var $x_col3 = '';
553        var $w_col3 = '';
554        var $txt_header_col3 = '';
555        var $x_col4 = '';
556        var $w_col4 = '';
557        var $txt_header_col4 = '';
558        var $x_col5 = '';
559        var $w_col5 = '';
560        var $txt_header_col5 = '';
561        var $p_header = false;
562        var $tab = null;
563        var $row = 1;
564        var $filename = 'lettre_relance.rtf';
565       
566        function __construct() {
567               
568                global $msg, $charset, $pmb_pdf_font;
569                global $acquisition_pdfrel_orient_page, $acquisition_pdfrel_text_size, $acquisition_pdfrel_format_page, $acquisition_pdfrel_marges_page;
570                global $acquisition_pdfrel_pos_logo, $acquisition_pdfrel_pos_raison, $acquisition_pdfrel_pos_date, $acquisition_pdfrel_pos_adr_fac;
571                global $acquisition_pdfrel_pos_adr_liv, $acquisition_pdfrel_pos_adr_fou, $acquisition_pdfrel_pos_num, $acquisition_pdfrel_text_before;
572                global $acquisition_pdfrel_text_after, $acquisition_pdfrel_tab_rel, $acquisition_pdfrel_pos_sign, $acquisition_pdfrel_text_sign;
573                global $acquisition_pdfrel_pos_footer, $acquisition_pdfrel_pos_titre, $acquisition_pdfrel_pos_num_cli ;
574               
575               
576                $this->RTF = rtf_factory::make();
577                if($acquisition_pdfrel_orient_page=='L') $this->RTF->setLandscape();
578               
579                $format_page = explode('x',$acquisition_pdfrel_format_page);
580                if($format_page[0]) $this->largeur_page = $format_page[0] / 10;
581                if($format_page[1]) $this->hauteur_page = $format_page[1] / 10;
582                $this->RTF->paperHeight = $this->hauteur_page;
583                $this->RTF->paperWidth = $this->largeur_page;
584               
585                $marges_page = explode(',', $acquisition_pdfrel_marges_page);
586                if ($marges_page[0]) $this->marge_haut = $marges_page[0] / 10;
587                if ($marges_page[1]) $this->marge_bas = $marges_page[1] / 10;
588                if ($marges_page[2]) $this->marge_droite = $marges_page[2] / 10;
589                if ($marges_page[3]) $this->marge_gauche = $marges_page[3] / 10;
590               
591                $this->w = $this->largeur_page-$this->marge_droite-$this->marge_gauche;
592               
593                $this->font = $pmb_pdf_font;
594                if($acquisition_pdfrel_text_size) $this->fs = $acquisition_pdfrel_text_size;
595                $this->fonts['standard'] = new Font($this->fs, $this->font);
596               
597                $pos_logo = explode(',', $acquisition_pdfrel_pos_logo);
598                if ($pos_logo[0]) $this->x_logo = $pos_logo[0] / 10;
599                if ($pos_logo[1]) $this->y_logo = $pos_logo[1] / 10;
600                if ($pos_logo[2]) $this->l_logo = $pos_logo[2] / 10;
601                if ($pos_logo[3]) $this->h_logo = $pos_logo[3] / 10;
602
603                $pos_raison = explode(',', $acquisition_pdfrel_pos_raison);
604                if ($pos_raison[0]) $this->x_raison = $pos_raison[0] / 10;
605                if ($pos_raison[1]) $this->y_raison = $pos_raison[1] / 10;
606                if ($pos_raison[2]) $this->l_raison = $pos_raison[2] / 10;
607                if ($pos_raison[3]) $this->h_raison = $pos_raison[3] / 10;
608                if ($pos_raison[4]) $this->fs_raison = $pos_raison[4];
609                $this->fonts['raison'] = new Font($this->fs_raison, $this->font);
610               
611                $pos_date = explode(',', $acquisition_pdfrel_pos_date);
612                if ($pos_date[0]) $this->x_date = $pos_date[0] / 10;
613                if ($pos_date[1]) $this->y_date = $pos_date[1] / 10;
614                if ($pos_date[2]) $this->l_date = $pos_date[2] / 10;
615                if ($pos_date[3]) $this->h_date = $pos_date[3] / 10;
616                if ($pos_date[4]) $this->fs_date = $pos_date[4];
617                $this->fonts['date'] = new Font($this->fs_date, $this->font);
618                $this->sep_ville_date = $msg['acquisition_act_sep_ville_date'];
619               
620                $pos_adr_rel = explode(',', $acquisition_pdfrel_pos_adr_rel);
621                if ($pos_adr_rel[0]) $this->x_adr_rel = $pos_adr_rel[0] / 10;
622                if ($pos_adr_rel[1]) $this->y_adr_rel = $pos_adr_rel[1] / 10;
623                if ($pos_adr_rel[2]) $this->l_adr_rel = $pos_adr_rel[2] / 10;
624                if ($pos_adr_rel[3]) $this->h_adr_rel = $pos_adr_rel[3] / 10;
625                if ($pos_adr_rel[4]) $this->fs_adr_rel = $pos_adr_rel[4];
626                $this->fonts['adr_rel'] = new Font($this->fs_adr_rel, $this->font);
627                $this->text_adr_tel = $msg['acquisition_tel'].".";
628                $this->text_adr_fax = $msg['acquisition_fax'].".";
629                $this->text_adr_email = $msg['acquisition_mail']." :";
630               
631                $pos_adr_fou = explode(',', $acquisition_pdfrel_pos_adr_fou);
632                if ($pos_adr_fou[0]) $this->x_adr_fou = $pos_adr_fou[0] / 10;
633                if ($pos_adr_fou[1]) $this->y_adr_fou = $pos_adr_fou[1] / 10;
634                if ($pos_adr_fou[2]) $this->l_adr_fou = $pos_adr_fou[2] / 10;
635                if ($pos_adr_fou[3]) $this->h_adr_fou = $pos_adr_fou[3] / 10;
636                if ($pos_adr_fou[4]) $this->fs_adr_fou = $pos_adr_fou[4];
637                $this->fonts['adr_fou'] = new Font($this->fs_adr_fou, $this->font);
638               
639                $pos_titre = explode(',', $acquisition_pdfrel_pos_titre);
640                if ($pos_titre[0]) $this->x_titre = $pos_titre[0] / 10;
641                if ($pos_titre[1]) $this->y_titre = $pos_titre[1] / 10;
642                if ($pos_titre[2]) $this->l_titre = $pos_titre[2] / 10;
643                if ($pos_titre[3]) $this->h_titre = $pos_titre[3] / 10;
644                if ($pos_titre[4]) $this->fs_titre = $pos_titre[4];
645                $this->fonts['titre'] = new Font($this->fs_titre, $this->font);
646                $this->text_titre = $msg['acquisition_recept_lettre_titre'];
647               
648                $pos_num = explode(',', $acquisition_pdfrel_pos_num);
649                if ($pos_num[0]) $this->x_num = $pos_num[0] / 10;
650                if ($pos_num[2]) $this->l_num = $pos_num[1] / 10;
651                if ($pos_num[3]) $this->h_num = $pos_num[2] / 10;
652                if ($pos_num[4]) $this->fs_num = $pos_num[3];
653                $this->fonts['num'] = new Font($this->fs_num, $this->font);
654                $this->text_num = $msg['acquisition_act_num_cde'];
655                $this->text_ech = $msg['acquisition_recept_lettre_ech'];
656                               
657                $pos_num_cli = explode(',', $acquisition_pdfrel_pos_num_cli);
658                if ($pos_num_cli[0]) $this->x_num_cli = $pos_num_cli[0] / 10;
659                if ($pos_num_cli[0]) $this->x_num_cli = $pos_num_cli[0] / 10;
660                if ($pos_num_cli[2]) $this->l_num_cli = $pos_num_cli[1] / 10;
661                if ($pos_num_cli[3]) $this->h_num_cli = $pos_num_cli[2] / 10;
662                if ($pos_num_cli[4]) $this->fs_num_cli = $pos_num_cli[3];
663                $this->fonts['num_cli'] = new Font($this->fs_num_cli, $this->font);
664                $this->text_num_cli = $msg['acquisition_num_cp_client'];
665               
666                $this->text_before = $acquisition_pdfrel_text_before;
667                $this->text_after = $acquisition_pdfrel_text_after;
668               
669                $pos_tab = explode(',', $acquisition_pdfrel_tab_rel);
670                if ($pos_tab[0]) $this->h_tab = $pos_tab[0] / 10;
671                if ($pos_tab[1]) $this->fs_tab = $pos_tab[1] /10;
672                $this->x_tab = $this->marge_gauche;
673                $this->y_tab = $this->marge_haut; 
674               
675                $pos_sign = explode(',', $acquisition_pdfrel_pos_sign);
676                if ($pos_sign[0]) $this->x_sign = $pos_sign[0] / 10;
677                if ($pos_sign[1]) $this->l_sign = $pos_sign[1] / 10;
678                if ($pos_sign[2]) $this->h_sign = $pos_sign[2] / 10;
679                if ($pos_sign[3]) $this->fs_sign = $pos_sign[3];
680                $this->fonts['sign'] = new Font($this->fs_sign, $this->font);
681               
682                       
683                if ($acquisition_pdfrel_text_sign) $this->text_sign = $acquisition_pdfrel_text_sign; 
684                        else $text_sign = $msg['acquisition_act_sign'];
685               
686                $pos_footer = explode(',', $acquisition_pdfrel_pos_footer);
687                if ($pos_footer[0]) $this->PDF->y_footer = $pos_footer[0] / 10;
688                        else $this->PDF->y_footer=$this->y_footer;
689                if ($pos_footer[1]) $this->PDF->fs_footer = $pos_footer[1] / 10;
690                        else $this->PDF->fs_footer=$this->fs_footer;
691               
692                $this->x_col1 =  $this->x_tab;
693                $this->w_col1 = floor($this->w*20/100);
694                $this->txt_header_col1 = $msg['acquisition_act_tab_typ']."\n".$msg['acquisition_act_tab_code'];
695               
696                $this->x_col2 = $this->x_col1 + $this->w_col1;
697                $this->w_col2 = floor($this->w*50/100);
698                $this->txt_header_col2 = $msg['acquisition_act_tab_lib'];
699               
700                $this->x_col3 = $this->x_col2 + $this->w_col2;
701                $this->w_col3 = floor(($this->w-$this->w_col1-$this->w_col2)/3);
702                $this->txt_header_col3 = $msg['acquisition_qte_cde'];
703               
704                $this->x_col4 = $this->x_col3 + $this->w_col3;
705                $this->w_col4 = floor(($this->w-$this->w_col1-$this->w_col2)/3);
706                $this->txt_header_col4 = $msg['acquisition_qte_liv'];
707               
708                $this->x_col5 = $this->x_col4 + $this->w_col4;
709                $this->w_col5 = floor(($this->w-$this->w_col1-$this->w_col2)/3); 
710                $this->txt_header_col5 = $msg['acquisition_act_tab_sol'];
711               
712                $this->RTF->setMargins($this->marge_gauche, $this->marge_haut, $this->marge_droite ,$this->marge_bas);
713
714                $this->RTF->addFooter('all');
715                $this->msg_footer = $this->RTF->to_utf8($msg['acquisition_act_page']);
716        }
717       
718        function doLettre(&$bib, &$bib_coord, &$fou, &$fou_coord, &$tab_act) {
719               
720                global $msg;
721               
722                $this->sect = &$this->RTF->addSection();
723                //$this->RTF->footers[] = $this->msg_footer;
724               
725                $tab1 = $this->sect->addTable();
726                $tab1->addRows(1,0);
727                $tab1->addColumnsList(array(    $this->x_raison - $this->x_logo, 
728                                                                                $this->x_date - $this->x_raison, 
729                                                                                $this->largeur_page - $this->marge_droite - $this->x_date
730                                                                        )
731                                                                );
732                //$this->PDF->npage = 1;
733               
734                //Affichage logo
735                if($bib->logo != '') {
736                        $par_logo = new ParFormat();
737                        $tab1->addImageToCell(1, 1, $bib->logo, new ParFormat(), $this->l_logo, $this->h_logo);         
738                }
739               
740                //Affichage raison sociale
741                $raison = $this->RTF->to_utf8($bib->raison_sociale);
742                $par_raison = new ParFormat();
743                $tab1->writeToCell(1,2,$raison, $this->fonts['raison'], $par_raison);
744               
745                //Affichage date ville
746                $ville_end=stripos($bib_coord->ville,"cedex"); 
747                if($ville_end!==false) $ville=trim(substr($bib_coord->ville,0,$ville_end));
748                else $ville=$bib_coord->ville;
749                $date = $ville.$this->sep_ville_date.format_date(today());
750                $date = $this->RTF->to_utf8($date);
751                $par_ville = new ParFormat();
752                $tab1->writeToCell(1,3,$date, $this->fonts['date'], $par_ville);
753                               
754                $this->sect->writeText('', $this->fonts['standard'], new parFormat());
755               
756                $tab2 = $this->sect->addTable();
757                $tab2->addRows(1,0);
758                $tab2->addColumnsList(array(    $this->l_adr_rel - $this->x_adr_rel, 
759                                                                                $this->x_adr_fou - $this->l_adr_rel - $this->x_adr_rel,
760                                                                                $this->largeur_page - $this->x_adr_fou
761                                                                        )
762                                                                );
763               
764                //Affichage adresse bibliotheque
765                $adr_rel=''; 
766                if($bib_coord->libelle != '') $adr_rel.= $bib_coord->libelle."\r\n"; 
767                if($bib_coord->adr1 != '') $adr_rel.= $bib_coord->adr1."\r\n";
768                if($bib_coord->adr2 != '') $adr_rel.= $bib_coord->adr2."\r\n";
769                if($bib_coord->cp != '') $adr_rel.= $bib_coord->cp." ";
770                if($bib_coord->ville != '') $adr_rel.= $bib_coord->ville."\r\n";
771                if($bib_coord->tel1 != '') $adr_rel.= $this->text_adr_tel." ".$bib_coord->tel1."\r\n";
772                if($bib_coord->fax != '') $adr_rel.= $this->text_adr_fax." ".$bib_coord->fax."\r\n";
773                if($bib_coord->email != '') $adr_rel.= $this->text_adr_email." ".$bib_coord->email."\r\n";
774                $adr_rel = $this->RTF->to_utf8($adr_rel);
775                $par_adr_rel = new parFormat();
776                $tab2->writeToCell(1,1,$adr_rel, $this->fonts['adr_rel'], $par_adr_rel);
777                                                                               
778                //Affichage coordonnees fournisseur
779                //si pas de raison sociale définie, on reprend le libellé
780                //si il y a une raison sociale, pas besoin
781                if($fou->raison_sociale != '') {
782                        $adr_fou = $fou->raison_sociale."\r\n";
783                } else { 
784                        $adr_fou = $coord_fou->libelle."\r\n";
785                }
786                if($fou_coord->adr1 != '') $adr_fou.= $fou_coord->adr1."\r\n";
787                if($fou_coord->adr2 != '') $adr_fou.= $fou_coord->adr2."\r\n";
788                if($fou_coord->cp != '') $adr_fou.= $fou_coord->cp." ";
789                if($fou_coord->ville != '') $adr_fou.= $fou_coord->ville."\r\n\r\n";
790                if ($fou_coord->contact != '') $adr_fou.= $fou_coord->contact;
791                $adr_fou = $this->RTF->to_utf8($adr_fou);
792                $par_adr_fou = new parFormat();
793                $tab2->writeToCell(1,3,$adr_fou, $this->fonts['adr_fou'], $par_adr_fou);
794               
795               
796                //Affichage numero client
797                $numero_cli = $this->RTF->to_utf8($this->text_num_cli." ".$fou->num_cp_client);
798                $par_numero_cli = new parFormat();
799                $par_numero_cli->setSpaceAfter(10);
800                $this->sect->writeText($numero_cli, $this->fonts['num_cli'], $par_numero_cli);
801               
802                //Affichage titre
803                $text_titre = $this->RTF->to_utf8($this->text_titre);
804                $par_titre = new parFormat();
805                $par_titre->setSpaceAfter(10);
806                $par_titre->setIndentLeft($this->x_titre - $this->marge_gauche);
807                $this->sect->writeText($text_titre, $this->fonts['titre'], $par_titre);
808
809                //Affichage texte before
810                if ($this->text_before != '') {
811                        $text_before = $this->RTF->to_utf8($this->text_before);
812                        $par_before = new parFormat();
813                        $this->sect->writeText($text_before, $this->fonts['standard'], $par_before);
814                }
815                //Affichage des lignes de relances
816                foreach($tab_act as $id_act=>$tab_lig) {
817                       
818                        $this->p_header = false;
819                        $act = new actes($id_act);
820                        $this->text_num_ech = $this->text_num.' '.$act->numero;
821                        if ($act->date_ech!='0000-00-00') $this->text_num_ech.= ' '.sprintf($this->text_ech,format_date($act->date_ech));
822                        $this->doEntete();
823                       
824                        foreach($tab_lig as $id_lig) {
825                               
826                                $lig = new lignes_actes($id_lig);
827                                $typ = new types_produits($lig->num_type);
828                                $col1 = $typ->libelle;
829                                if($lig->code) $col1.= "\r\n".$lig->code;
830                                $col2 = $lig->libelle;
831                                $col3 = $lig->nb;
832                                $col4 = $lig->getNbDelivered();
833                                $col5 = $col3-$col4;
834                               
835                                $this->tab->addRows(1,0);
836                                $this->tab->addColumnsList(array(       $this->w_col1, 
837                                                                                                        $this->w_col2,
838                                                                                                        $this->w_col3,
839                                                                                                        $this->w_col4,
840                                                                                                        $this->w_col5
841                                                                                                )
842                                                                                        );
843                                $border_format = new BorderFormat(0.5, "#000000");
844
845                                $txt_col1 = $this->RTF->to_utf8($col1);
846                                $par_col1 = new parFormat();
847                                $this->tab->writeToCell($this->row,1,$txt_col1, $this->fonts['standard'], $par_col1);
848                               
849                                $txt_col2 = $this->RTF->to_utf8($col2);
850                                $par_col2 = new parFormat();
851                                $this->tab->writeToCell($this->row,2,$txt_col2, $this->fonts['standard'], $par_col2);
852
853                                $txt_col3 = $this->RTF->to_utf8($col3);
854                                $par_col3 = new parFormat();
855                                $this->tab->writeToCell($this->row,3,$txt_col3, $this->fonts['standard'], $par_col3);
856                               
857                                $txt_col4 = $this->RTF->to_utf8($col4);
858                                $par_col4 = new parFormat();
859                                $this->tab->writeToCell($this->row,4,$txt_col4, $this->fonts['standard'], $par_col4);
860                               
861                                $txt_col5 = $this->RTF->to_utf8($col5);
862                                $par_col5 = new parFormat();
863                                $this->tab->writeToCell($this->row,5,$txt_col5, $this->fonts['standard'], $par_col5);
864                               
865                                $this->tab->setBordersOfCells($border_format, 1, 1, $this->row, 5);
866                               
867                                $this->row++;
868                        }
869                }
870
871                //Affichage texte after
872                if ($this->text_after != '') {
873                        $text_after = $this->RTF->to_utf8($this->text_after);
874                        $par_after = new parFormat();
875                       
876                        $this->sect->writeText($text_after, $this->fonts['standard'], $par_after);
877                }
878               
879                //Affichage signature
880                $text_sign = $this->RTF->to_utf8($this->text_sign);
881                $par_sign = new parFormat();
882                $par_sign->setSpaceBefore(10);
883                $par_sign->setIndentLeft($this->x_sign - $this->marge_gauche);
884                $this->sect->writeText($text_sign, $this->fonts['sign'], $par_sign);
885                $this->sect->insertPageBreak();
886        }
887       
888       
889        function getLettre($name='lettre_relance') {   
890               
891                return $this->RTF->sendRtf($name);
892        }       
893       
894        function getFileName() {
895                return $this->filename;
896        }
897       
898        function doEntete() {
899
900                $text_num_ech = $this->RTF->to_utf8($this->text_num_ech);
901                $par_num_ech = new parFormat();
902                $par_num_ech->setSpaceBefore(10);
903                $par_num_ech->setSpaceAfter(10);
904                $this->sect->writeText($text_num_ech, $this->fonts['standard'], $par_num_ech);
905               
906                $this->tab = $this->sect->addTable();
907                $this->row=1;
908                               
909                $this->tab->addRows(1,0);
910                $this->tab->addColumnsList(array(       $this->w_col1, 
911                                                                                        $this->w_col2,
912                                                                                        $this->w_col3,
913                                                                                        $this->w_col4,
914                                                                                        $this->w_col5
915                                                                                )
916                                                                        );
917                $border_format = new BorderFormat(0.5, "#000000");
918                $txt_header_col1 = $this->RTF->to_utf8($this->txt_header_col1);
919                $par_header_col1 = new parFormat();
920                $this->tab->writeToCell($this->row,1,$txt_header_col1, $this->fonts['standard'], $par_header_col1);
921                $txt_header_col2 = $this->RTF->to_utf8($this->txt_header_col2);
922                $par_header_col2 = new parFormat();
923                $this->tab->writeToCell($this->row,2,$txt_header_col2, $this->fonts['standard'], $par_header_col2);
924                $txt_header_col3 = $this->RTF->to_utf8($this->txt_header_col3);
925                $par_header_col3 = new parFormat();
926                $this->tab->writeToCell($this->row,3,$txt_header_col3, $this->fonts['standard'], $par_header_col3);
927                $txt_header_col4 = $this->RTF->to_utf8($this->txt_header_col4);
928                $par_header_col4 = new parFormat();
929                $this->tab->writeToCell($this->row,4,$txt_header_col4, $this->fonts['standard'], $par_header_col4);
930                $txt_header_col5 = $this->RTF->to_utf8($this->txt_header_col5);
931                $par_header_col5 = new parFormat();
932                $this->tab->writeToCell($this->row,5,$txt_header_col5, $this->fonts['standard'], $par_header_col5);
933                $this->tab->setBordersOfCells($border_format, 1, 1, 1, 5);
934                $this->tab->setBackgroundOfCells('#D3D3D3', 1, 1, 1, 5); 
935                $this->row++;
936        }
937}
Note: See TracBrowser for help on using the repository browser.