diff options
Diffstat (limited to 'src/functions.php')
-rw-r--r-- | src/functions.php | 63 |
1 files changed, 21 insertions, 42 deletions
diff --git a/src/functions.php b/src/functions.php index 0b075b5..1bbb40c 100644 --- a/src/functions.php +++ b/src/functions.php | |||
@@ -100,7 +100,9 @@ function rechercheClient(string $input, Clients $Client): array | |||
100 | return($result); | 100 | return($result); |
101 | } | 101 | } |
102 | 102 | ||
103 | function makeLatexAndPdfDocument(Clients $Client = null, Prestations $Presta = null, $PrestaDetails = null) | 103 | |
104 | // remplacer par une classe Latex | ||
105 | function makeLatexAndPdfDocuments(Clients $Client = null, Prestations $Presta = null, $PrestaDetails = null) | ||
104 | { | 106 | { |
105 | $latex = ''; | 107 | $latex = ''; |
106 | $year = ''; | 108 | $year = ''; |
@@ -111,7 +113,10 @@ function makeLatexAndPdfDocument(Clients $Client = null, Prestations $Presta = n | |||
111 | // verso d'une enveloppe | 113 | // verso d'une enveloppe |
112 | $latex = makeLatex('enveloppe_verso'); // pas de données transmises, elles sont dans la classe Config | 114 | $latex = makeLatex('enveloppe_verso'); // pas de données transmises, elles sont dans la classe Config |
113 | $file_name = 'enveloppe_verso.tex'; | 115 | $file_name = 'enveloppe_verso.tex'; |
114 | makeFiles($latex_path, $pdf_path, $file_name, $latex); | 116 | makeFile($latex_path, $file_name, $latex); |
117 | |||
118 | latexToPdf($latex_path, $file_name, $pdf_path); | ||
119 | |||
115 | 120 | ||
116 | if($Client !== null) | 121 | if($Client !== null) |
117 | { | 122 | { |
@@ -119,11 +124,16 @@ function makeLatexAndPdfDocument(Clients $Client = null, Prestations $Presta = n | |||
119 | 124 | ||
120 | // recto d'une enveloppe | 125 | // recto d'une enveloppe |
121 | $latex_recto_path = $latex_path . 'enveloppes_recto/'; | 126 | $latex_recto_path = $latex_path . 'enveloppes_recto/'; |
122 | $pdf_verso_path = $pdf_path . 'enveloppes_recto/'; | 127 | $pdf_recto_path = $pdf_path . 'enveloppes_recto/'; |
123 | $data['code_postal'] = implode(' \ ', str_split($data['code_postal'])); // code postal avec 2 espaces entre chaque chiffre: 2 \ 9 \ 0 \ 0 \ 0 | 128 | $data['code_postal_espaces'] = implode(' \ ', str_split($data['code_postal'])); // code postal avec 2 espaces entre chaque chiffre: 2 \ 9 \ 0 \ 0 \ 0 |
129 | |||
124 | $latex = makeLatex('enveloppe_recto', $data); // injection des variables | 130 | $latex = makeLatex('enveloppe_recto', $data); // injection des variables |
125 | $file_name = $Client->getCodeClient() . '.tex'; | 131 | $file_name = $Client->getCodeClient() . '.tex'; |
126 | makeFiles($latex_recto_path, $pdf_verso_path, $file_name, $latex); | 132 | makeFolder($latex_recto_path); |
133 | makeFile($latex_recto_path, $file_name, $latex); | ||
134 | |||
135 | makeFolder($pdf_recto_path); | ||
136 | latexToPdf($latex_recto_path, $file_name, $pdf_recto_path); | ||
127 | 137 | ||
128 | // facture, devis, location | 138 | // facture, devis, location |
129 | if($Presta !== null && $PrestaDetails !== null) | 139 | if($Presta !== null && $PrestaDetails !== null) |
@@ -138,9 +148,14 @@ function makeLatexAndPdfDocument(Clients $Client = null, Prestations $Presta = n | |||
138 | $latex_year_path = $latex_path . $year . '/'; // un sous-dossier par année | 148 | $latex_year_path = $latex_path . $year . '/'; // un sous-dossier par année |
139 | $pdf_year_path = $pdf_path . $year . '/'; | 149 | $pdf_year_path = $pdf_path . $year . '/'; |
140 | $data = array_merge($data, $PrestaDetails->getAll()); | 150 | $data = array_merge($data, $PrestaDetails->getAll()); |
151 | |||
141 | $latex = makeLatex($type, $data, $Date); // injection des variables | 152 | $latex = makeLatex($type, $data, $Date); // injection des variables |
142 | $file_name = $Presta->getCodePresta() . '.tex'; | 153 | $file_name = $Presta->getCodePresta() . '.tex'; |
143 | makeFiles($latex_year_path, $pdf_year_path, $file_name, $latex); | 154 | makeFolder($latex_year_path); |
155 | makeFile($latex_year_path, $file_name, $latex); | ||
156 | |||
157 | makeFolder($pdf_year_path); | ||
158 | latexToPdf($latex_year_path, $file_name, $pdf_year_path); | ||
144 | } | 159 | } |
145 | elseif($type === 'cesu' || $type === 'non_vendue') | 160 | elseif($type === 'cesu' || $type === 'non_vendue') |
146 | {} // pas de document | 161 | {} // pas de document |
@@ -153,7 +168,6 @@ function makeLatexAndPdfDocument(Clients $Client = null, Prestations $Presta = n | |||
153 | } | 168 | } |
154 | } | 169 | } |
155 | 170 | ||
156 | |||
157 | function makeLatex(string $type, array $data = [], Dates $Date = null) | 171 | function makeLatex(string $type, array $data = [], Dates $Date = null) |
158 | { | 172 | { |
159 | $date = ''; | 173 | $date = ''; |
@@ -172,38 +186,3 @@ function makeLatex(string $type, array $data = [], Dates $Date = null) | |||
172 | // normallement le code PHP inséré avec include est nettoyé en quittant la fonction | 186 | // normallement le code PHP inséré avec include est nettoyé en quittant la fonction |
173 | return($latex); | 187 | return($latex); |
174 | } | 188 | } |
175 | |||
176 | function makeFiles($latex_path, $pdf_path, $file_name, $latex) | ||
177 | { | ||
178 | makeFolder($latex_path); | ||
179 | makeFolder($pdf_path); | ||
180 | file_put_contents($latex_path. $file_name, $latex); // écriture du fichier | ||
181 | latexToPdf($latex_path, $file_name, $pdf_path); | ||
182 | } | ||
183 | |||
184 | function makeFolder(string $path) | ||
185 | { | ||
186 | if(!file_exists($path)) | ||
187 | { | ||
188 | mkdir($path); | ||
189 | chmod($path, 0755); // droits en octal | ||
190 | } | ||
191 | } | ||
192 | |||
193 | // compilation à partir d'un fichier .tex | ||
194 | function latexToPdf(string $latexPath, string $fileName, string $pdfPath) | ||
195 | { | ||
196 | $outputDir = ''; | ||
197 | if($pdfPath !== '') | ||
198 | { | ||
199 | $outputDir = '-output-directory=' . $pdfPath . ' '; | ||
200 | } | ||
201 | |||
202 | // compilation | ||
203 | exec('pdflatex ' . $outputDir . $latexPath . $fileName); | ||
204 | |||
205 | // nettoyage | ||
206 | $basename = basename($fileName, '.tex'); | ||
207 | unlink($pdfPath . $basename . '.aux'); | ||
208 | unlink($pdfPath . $basename . '.log'); | ||
209 | } | ||