summaryrefslogtreecommitdiff
path: root/src
diff options
context:
space:
mode:
authorpolo <ordipolo@gmx.fr>2023-01-16 03:33:06 +0100
committerpolo <ordipolo@gmx.fr>2023-01-16 03:33:06 +0100
commit209c0b93c529356a094d7133a717e8f6ee6d90c6 (patch)
treeb8dac8968501fe4e0bba8dc98b80d0eb43770ecb /src
parent945af9fda5146405ab9903d4d268bcb2fe95da25 (diff)
downloadAppliGestionPHP-209c0b93c529356a094d7133a717e8f6ee6d90c6.zip
Config & config.ini, data folder, partie latex bientôt finie
Diffstat (limited to 'src')
-rw-r--r--src/Config.php131
-rw-r--r--src/functions.php19
-rw-r--r--src/latex_templates/devis.php93
-rw-r--r--src/latex_templates/enveloppe_recto.php28
-rw-r--r--src/latex_templates/enveloppe_verso.php20
-rw-r--r--src/latex_templates/facture.php92
-rw-r--r--src/latex_templates/location.php86
-rwxr-xr-xsrc/main.php23
-rw-r--r--src/sections/1_new_service.php53
9 files changed, 206 insertions, 339 deletions
diff --git a/src/Config.php b/src/Config.php
new file mode 100644
index 0000000..396b588
--- /dev/null
+++ b/src/Config.php
@@ -0,0 +1,131 @@
1<?php
2// src/Config.php
3
4class Config
5{
6 // valeurs par défaut au cas où
7 static public $business_name = 'ORDIPOLO';
8 static public $db_name = "ordipolo";
9 static public $db_path = '../data/';
10 static public $latex_path = '../data/latex/';
11 static public $pdf_path = '../data/pdf/';
12 static public $pub_path = "../pub/";
13 static public $flyer = "flyer.xcf";
14 static public $business_card = "carte.sla";
15 static public $image_editor = 'gimp';
16 static public $publishing = 'scribus';
17 static public $sgbd = 'sqlite';
18 static public $sqlite_gui = 'sqlitebrowser'; // ne pas utiliser si le sgbd n'est pas sqlite
19 static public $date_format = 'euro';
20
21 // pour que Config crée le dsn: Data Source Name (à mettre dans une autre classe!)
22 //~ static public $dsn = '';
23
24 // ça pourrait être bien de founir sqlite avec l'application pour supprimer une dépendance
25 //~ static public $sqliteBin = '../lib/sqlite_linux';
26 //~ static public $sqliteBin = '../lib/sqlite_win.exe';
27
28 static private $raw_data;
29
30 static public function readFile($file_path)
31 {
32 self::$raw_data = parse_ini_file($file_path);
33 }
34
35 static private function fieldIsPath($field): bool
36 {
37 if($field === 'db_path' || $field === 'latex_path' || $field === 'pdf_path' || $field === 'pub_path')
38 {
39 return true;
40 }
41 else
42 {
43 return false;
44 }
45 }
46
47 static private function checkPath($field, $value): bool
48 {
49 if(!file_exists($value))
50 {
51 echo "debug: le fichier config.ini comporte une erreur, le dossier " . $value . " renseigné pour le champ " . $field . " n'existe pas,\nla valeur par défaut: " . self::$$field . " sera utilisé\n";
52 return false;
53 }
54 if(!is_writable($value))
55 {
56 if($value == self::$$field)
57 {
58 echo "debug: le dossier " . $value . " n'est pas autorisé en écriture\n";
59 }
60 else
61 {
62 echo "debug: le dossier " . $value . " renseigné pour le champ " . $field . " dans le fichier config.ini n'est pas autorisé en écriture,\nla valeur par défaut: " . self::$$field . " sera utilisée\n";
63 }
64 return false;
65 }
66 return true;
67 }
68
69 static public function slashAtEndOfPath($path): string
70 {
71 if(!str_ends_with($path, '/'))
72 {
73 return($path . '/');
74 }
75 else
76 {
77 return $path;
78 }
79 }
80
81 static public function hydrate()
82 {
83 foreach(self::$raw_data as $field => $value)
84 {
85 if(isset(self::$$field)) // vérification du nom du champ
86 {
87 // vérification du contenu
88 if(self::fieldIsPath($field)) // cas où le champ db_path, latex_path, pdf_path ou pub_path
89 {
90 if(self::checkPath($field, $value))
91 {
92 $value = self::slashAtEndOfPath($value);
93 self::$$field = $value;
94 }
95 }
96 else // tester le reste?
97 {
98 self::$$field = $value;
99 }
100 // else: la valeur par défaut est conservée
101 }
102 else
103 {
104 echo "debug: le fichier config.ini comporte une erreur, le champ: " . $field . " est incorrect,\nl'information contenue sur cette ligne ne sera pas utilisée\n";
105 }
106 }
107 }
108
109 // à faire plus tard
110 // transformer les chemins pour qu'ils soient relatif au dossier 'src' où s'exécute le programme
111 static private function adjustRelativePath($input)
112 {
113 // chemin windows?
114
115 // chemin relatif ou absolu (par le 1er caractère)
116
117 // obtenir l'emplacement du dossier de l'utilisateur '~'
118 $userHomePlace = exec('');
119
120 // obtenir l'emplacement du dossier 'src'
121 $appExecPlace = getcwd();
122 }
123
124 //~ static public function makeDsn()
125 //~ {
126 //~ if($this->sgbd === 'sqlite')
127 //~ {
128 //~ $this->dsn = 'sqlite:' . $this->db_name . '.sqlite';
129 //~ }
130 //~ }
131}
diff --git a/src/functions.php b/src/functions.php
index 0ec280f..b8779e8 100644
--- a/src/functions.php
+++ b/src/functions.php
@@ -35,7 +35,24 @@ function rechercheClient(string $input, Clients $Client): array
35 return($result); 35 return($result);
36} 36}
37 37
38function getLatexFromTemplate(string $template) 38function makeFolder(string $path)
39{
40 if(!file_exists($path))
41 {
42 mkdir($path);
43 chmod($path, 0755);
44 }
45}
46
47function makeLatexAndPdfDocument($file_name, $template, Clients $Client, Prestations $Presta = null, $Details = null) // $Details peut être de type DevisFactures ou Locations
48{
49 //~ $data = ; // tableau associatif avec des données des différents objets
50 $latex = getLatexFromTemplate($template, $data);
51 file_put_contents($latex_path . $file_name, $latex); // injection des variables & écriture du fichier
52 latexToPdf($latex_path, $file_name, $pdf_path);
53}
54
55function getLatexFromTemplate(string $template, $data)
39{ 56{
40 // variables à injecter 57 // variables à injecter
41 $nom_client = "M. Duchmol"; 58 $nom_client = "M. Duchmol";
diff --git a/src/latex_templates/devis.php b/src/latex_templates/devis.php
deleted file mode 100644
index 8f5e640..0000000
--- a/src/latex_templates/devis.php
+++ /dev/null
@@ -1,93 +0,0 @@
1<?php
2// latex_templates/devis.php
3
4ob_start();
5?>
6\documentclass{report}
7
8\usepackage[french]{babel}
9\usepackage{lmodern} % police latin modern
10\usepackage[utf8]{inputenc} % encodage d'entrée (document)
11\usepackage[T1]{fontenc} % encodage de sortie (rendu)
12\usepackage[top=2cm, bottom=2cm, left=2cm, right=2cm]{geometry} % marges
13\usepackage{graphicx} % insertions d'images
14\usepackage{textcomp} % pour N°
15\usepackage{xcolor} % texte en couleur
16\usepackage{tabularx} % dimensions des tableaux automatique
17\usepackage{tikz} % le rectangle
18
19\begin{document}
20 \setlength{\parindent}{0cm} % supprimer les alinéas
21 \large{}
22 \pagestyle{empty} % en-tête et pied de page vides
23 \definecolor{vert}{rgb}{0.07, 0.46, 0.13} % saisie en vert
24
25 \begin{center}
26 \includegraphics{../ordipolo.png}\\
27 \Large\textbf{Dépannage informatique - Assistance à domicile}
28 \end{center}
29
30 2 A rue de l'île de Man, 29000 Quimper
31
32 SIRET : 814 320 610 00011
33
34 \begin{tabularx}{0.67\linewidth}{@{}X@{}@{}X@{}}
35 Tel : 06.63.85.48.82 & Courriel : ordipolo@gmx.fr
36 \end{tabularx}
37
38 Plus d'infos sur le site web: https\string://ordipolo.fr\\
39 % \string supprime l'espace devant les :
40
41 \begin{center}
42 \large\textbf{DEVIS}
43 \end{center}
44
45 CLIENT\\
46
47 \begin{tabularx}{\linewidth}{@{}X@{}@{}X@{}}
48 Mme, M : \textcolor{vert}{<?= $nom_client ?>} &
49 Date du devis : \textcolor{vert}{}\\
50 Adresse : \textcolor{vert}{} &
51 Delai de livraison : \textcolor{vert}{}\\
52 \end{tabularx}\\\\
53
54 PRESTATION\\
55
56 \textcolor{vert}{}
57
58 Total main d'oeuvre : \textcolor{vert}{}\\
59
60 PIÈCES\\
61
62 \textcolor{vert}{}
63
64 Total pièces : \textcolor{vert}{}\\
65
66 TOTAL\\
67
68 Déplacement : \textcolor{vert}{}
69
70 Total HT : \textcolor{vert}{}
71
72 \textit{(TVA non applicable, article 293B du code général des impôts)}
73
74 Référence du devis : \textcolor{vert}{}\\
75
76 Devis reçu avant l'exécution des travaux, signature du client :\\
77 \begin{tikzpicture}
78 \draw (0,0) rectangle (4,2);
79 \end{tikzpicture}\\
80
81 \normalsize{}NOTA BENE\\
82
83 Si le délai de livraison n'est pas spécifié, un délai d'un mois est appliqué.
84
85 Si Ordipolo garde votre ordinateur le temps nécessaire à la réparation, un reçu vous est remis.
86 Le client peut bénéficier gratuitement d'un ordinateur de prêt sur demande et selon disponibilité.
87
88 La réparation inclut l'intervention sur les logiciels et si nécessaire le démontage et remontage de la machine et le remplacement d'une pièce. Ordi Polo ne répare pas les composants électroniques défectueux et n'est pas responsable des dysfonctionnements de l'ordinateur dont l'origine est matérielle.
89
90 Les prestations d'Ordipolo sont régies par le code du commerce.
91\end{document}
92<?php
93$latex = ob_get_clean();
diff --git a/src/latex_templates/enveloppe_recto.php b/src/latex_templates/enveloppe_recto.php
deleted file mode 100644
index 99d65a1..0000000
--- a/src/latex_templates/enveloppe_recto.php
+++ /dev/null
@@ -1,28 +0,0 @@
1<?php
2// latex_templates/enveloppe_recto.php
3
4ob_start();
5?>
6\documentclass[]{report}
7
8\usepackage[french]{babel}
9\usepackage{lmodern} % police latin modern
10\usepackage[utf8]{inputenc} % encodage d'entrée (document)
11\usepackage[T1]{fontenc} % encodage de sortie (rendu)
12\usepackage{graphicx} % insertions d'images
13\usepackage[papersize={22cm, 11cm}, top=1cm, left=1cm, bottom=1cm]{geometry}
14\pagestyle{empty}
15
16\begin{document}
17 \setlength{\parindent}{0cm}
18 \includegraphics{../ordipolo.png}\\
19 \large\textbf{Dépannage informatique - Assistance à domicile}
20
21 \setlength{\parindent}{7,9cm}
22 \begin{minipage}[b][5,8cm]{12cm}
23 \LARGE{M. Truc\\3, rue Machin\\\\\\}
24 \LARGE{2 \ 9 \ 0 \ 0 \ 0 \ \ \ \ QUIMPER}
25 \end{minipage}
26\end{document}
27<?php
28$latex = ob_get_clean();
diff --git a/src/latex_templates/enveloppe_verso.php b/src/latex_templates/enveloppe_verso.php
deleted file mode 100644
index ae2e716..0000000
--- a/src/latex_templates/enveloppe_verso.php
+++ /dev/null
@@ -1,20 +0,0 @@
1<?php
2// latex_templates/enveloppe_verso.php
3
4ob_start();
5?>
6\documentclass[]{report}
7
8\usepackage[french]{babel}
9\usepackage{lmodern} % police latin modern
10\usepackage[utf8]{inputenc} % encodage d'entrée (document)
11\usepackage[T1]{fontenc} % encodage de sortie (rendu)
12\usepackage[papersize={22cm, 11cm}, top=0.6cm, left=4.5cm]{geometry}
13\pagestyle{empty}
14
15\begin{document}
16 \setlength{\parindent}{0cm}
17 \Large{Paul Jusot\\2A, rue de l'île de Man\\29000 QUIMPER}
18\end{document}
19<?php
20$latex = ob_get_clean();
diff --git a/src/latex_templates/facture.php b/src/latex_templates/facture.php
deleted file mode 100644
index 5d62b91..0000000
--- a/src/latex_templates/facture.php
+++ /dev/null
@@ -1,92 +0,0 @@
1<?php
2// latex_templates/facture.php
3
4ob_start();
5?>
6\documentclass{report}
7
8\usepackage[french]{babel}
9\usepackage{lmodern} % police latin modern
10\usepackage[utf8]{inputenc} % encodage d'entrée (document)
11\usepackage[T1]{fontenc} % encodage de sortie (rendu)
12\usepackage[top=2cm, bottom=2cm, left=2cm, right=2cm]{geometry} % marges
13\usepackage{graphicx} % insertions d'images
14\usepackage{textcomp} % pour N°
15\usepackage{xcolor} % texte en couleur
16\usepackage{tabularx} % dimensions des tableaux automatique
17
18\begin{document}
19 \setlength{\parindent}{0cm} % supprimer les alinéas
20 \large{}
21 \pagestyle{empty} % en-tête et pied de page vides
22 \definecolor{vert}{rgb}{0.07, 0.46, 0.13} % saisie en vert
23
24 \begin{center}
25 \includegraphics{../ordipolo.png}\\
26 \Large\textbf{Dépannage informatique - Assistance à domicile}
27 \end{center}
28
29 2 A rue de l'île de Man, 29000 Quimper
30
31 SIRET : 814 320 610 00011
32
33 \begin{tabularx}{0.67\linewidth}{@{}X@{}@{}X@{}}
34 Tel : 06.63.85.48.82 & Courriel : ordipolo@gmx.fr
35 \end{tabularx}
36
37 Plus d'infos sur le site web: https\string://ordipolo.fr\\
38 % \string supprime l'espace devant les :
39
40 \begin{center}
41 \large\textbf{FACTURE}
42 \end{center}
43
44 CLIENT\\
45
46 \begin{tabularx}{\linewidth}{@{}X@{}@{}X@{}}
47 Mme, M : \textcolor{vert}{} &
48 Date : \textcolor{vert}{}\\
49 \end{tabularx}\\
50 Adresse : \textcolor{vert}{}\\
51
52 PRESTATION\\
53
54 \textcolor{vert}{}
55
56 Modèle de l'ordinateur : \textcolor{vert}{}
57
58 Système d'exploitation : \textcolor{vert}{}
59
60 Données à conserver : \textcolor{vert}{}
61
62 Clé d'activation : \textcolor{vert}{}\\
63
64 Total main d'oeuvre : \textcolor{vert}{}\\
65
66 PIÈCES\\
67
68 \textcolor{vert}{}
69
70 Total pièces : \textcolor{vert}{}\\
71
72 TOTAL\\
73
74 Déplacement : \textcolor{vert}{}
75
76 Total HT : \textcolor{vert}{}
77
78 \textit{(TVA non applicable, article 293B du code général des impôts)}
79
80 Référence de la facture : \textcolor{vert}{}\\
81
82 \small{}NOTA BENE\\
83
84 Si Ordipolo garde votre ordinateur le temps nécessaire à la réparation, un reçu vous est remis.
85 Le client peut bénéficier gratuitement d'un ordinateur de prêt sur demande et selon disponibilité.
86
87 La réparation inclut l'intervention sur les logiciels et si nécessaire le démontage et remontage de la machine et le remplacement d'une pièce. Ordi Polo ne répare pas les composants électroniques défectueux et n'est pas responsable des dysfonctionnements de l'ordinateur dont l'origine est matérielle.
88
89 Les prestations d'Ordipolo sont régies par le code du commerce.
90\end{document}
91<?php
92$latex = ob_get_clean();
diff --git a/src/latex_templates/location.php b/src/latex_templates/location.php
deleted file mode 100644
index dbffd0e..0000000
--- a/src/latex_templates/location.php
+++ /dev/null
@@ -1,86 +0,0 @@
1<?php
2// latex_templates/location.php
3
4ob_start();
5?>
6\documentclass{report}
7
8\usepackage[french]{babel}
9\usepackage{lmodern} % police latin modern
10\usepackage[utf8]{inputenc} % encodage d'entrée (document)
11\usepackage[T1]{fontenc} % encodage de sortie (rendu)
12\usepackage[top=2cm, bottom=2cm, left=2cm, right=2cm]{geometry} % marges
13\usepackage{graphicx} % insertions d'images
14\usepackage{textcomp} % pour N°
15\usepackage{xcolor} % texte en couleur
16%\usepackage{wrapfig} % placer texte et image côte-à-côte
17\usepackage{tabularx} % dimensions des tableaux automatique
18
19\begin{document}
20 \setlength{\parindent}{0cm} % supprimer les alinéas
21 \large{}
22 \pagestyle{empty} % en-tête et pied de page vides
23 \definecolor{vert}{rgb}{0.07, 0.46, 0.13} % saisie en vert
24
25 \begin{center}
26 \includegraphics{../ordipolo.png}\\
27 \Large\textbf{Dépannage informatique - Assistance à domicile}
28 \end{center}
29
30 2 A rue de l'île de Man, 29000 Quimper
31
32 SIRET : 814 320 610 00011
33
34 \begin{tabularx}{0.67\linewidth}{@{}X@{}@{}X@{}}
35 Tel : 06.63.85.48.82 & Courriel : ordipolo@gmx.fr
36 \end{tabularx}
37
38 Plus d'infos sur le site web: https\string://ordipolo.fr\\
39 % \string supprime l'espace devant les :
40
41 \begin{center}
42 \large\textbf{CONTRAT DE LOCATION}
43 \end{center}
44
45 PROPRIÉTAIRE\\
46
47 Mme, M : \textcolor{vert}{Paul Jusot}\\
48 Adresse : \textcolor{vert}{2A, rue de l'île de Man, 29000 Quimper}\\
49
50 LOCATAIRE\\
51
52 \begin{tabularx}{\linewidth}{@{}X@{}@{}X@{}}
53 Mme, M : \textcolor{vert}{} & tel : \textcolor{vert}{}\\
54 Adresse : \textcolor{vert}{} & courriel : \textcolor{vert}{}
55 \end{tabularx}\\\\
56
57 BIEN LOUÉ\\
58
59 Désignation : \textcolor{vert}{}\\
60 Modèle, description : \textcolor{vert}{}\\
61
62 État des lieux initial : \textcolor{vert}{}\\\\
63
64 État des lieux final : \textcolor{vert}{}\\\\
65
66 CLAUSES\\
67
68 Durée du prêt : \textcolor{vert}{}\\
69 Loyer mensuel : \textcolor{vert}{}\\
70
71
72 \textbf{Le bénéficiaire de cette location s’engage à prendre soin du bien désigné et à en faire un usage strictement personnel.}\\
73
74 \begin{tabularx}{\linewidth}{@{}X@{}@{}X@{}}
75 Fait en deux exemplaires à : \textcolor{vert}{} & le : \textcolor{vert}{} \\
76 \end{tabularx}\\
77
78 \begin{tabularx}{\linewidth}{@{}X@{}@{}X@{}}
79 Le bénéficiaire du prêt : \textcolor{vert}{} &
80 Le loueur : \textcolor{vert}{}\\
81 \end{tabularx}\\
82 \normalsize(précéder la signature de la mention « lu et approuvé »)
83
84\end{document}
85<?php
86$latex = ob_get_clean();
diff --git a/src/main.php b/src/main.php
index 0a8ae09..ee0888e 100755
--- a/src/main.php
+++ b/src/main.php
@@ -3,18 +3,20 @@
3// php/main.php 3// php/main.php
4 4
5// configuration du programme par l'utilisateur 5// configuration du programme par l'utilisateur
6require('../config.php'); // fichier de l'utilisateur: à déplacer peut-être dans un dossier config 6//~ require('../config.php'); // fichier de l'utilisateur: à déplacer peut-être dans un dossier config
7require('Config.php'); // classe structure de données, lit config.php et préviens les erreurs (par exemple les / aux chemins manquants)
8Config::readFile('../config.ini');
9Config::hydrate();
7 10
8// à coder peut-être plus tard 11// et à coder peut-être plus tard
9//require('config_check.php'); // contrôle de config.php, on ajoutera des / aux chemins quand ils manquent
10//require('config_window.php'); // configuration user-friendly et assistée avec des messages d'erreur et des indications 12//require('config_window.php'); // configuration user-friendly et assistée avec des messages d'erreur et des indications
11 13
12// variables diverses, certaines utilisent les variables de config.php 14// variables diverses, certaines utilisent les variables de config.php
13$exec_mode = 'gui'; // les versions pure console (CLI) et serveur web (CGI) de ce programme ne sont pas prévues pour l'instant 15$exec_mode = 'gui'; // les versions pure console (CLI) et serveur web (CGI) de ce programme ne sont pas prévues pour l'instant
14$file_explorer = 'xdg-open'; // ouvre l'explorateur de fichiers par défaut quand suivi d'un chemin en paramètre 16$file_explorer = 'xdg-open'; // ouvre l'explorateur de fichiers par défaut quand suivi d'un chemin en paramètre
15$flyer = $pub . $flyer; 17$flyer = Config::$pub_path . Config::$flyer;
16$business_card = $pub . $business_card; 18$business_card = Config::$pub_path . Config::$business_card;
17$db_place .= $db_name . '.sqlite'; 19Config::$db_path .= Config::$db_name . '.' . Config::$sgbd;
18$sqlitebrowser_enable = false; 20$sqlitebrowser_enable = false;
19$sqlite_cli = ''; // commande sqlite ou sqlite3 21$sqlite_cli = ''; // commande sqlite ou sqlite3
20$x_term_command = ''; // commande terminal en mode graphique 22$x_term_command = ''; // commande terminal en mode graphique
@@ -22,10 +24,11 @@ $x_term_command = ''; // commande terminal en mode graphique
22require('dependances.php'); // vérification des dépendances 24require('dependances.php'); // vérification des dépendances
23require('functions.php'); 25require('functions.php');
24require('Dates.php'); // gère dates et timestamps 26require('Dates.php'); // gère dates et timestamps
25Dates::$date_format = $date_format; // dates européennes ou américaines 27Dates::$date_format = Config::$date_format; // dates européennes ou américaines
26 28
27require('model/DB.php'); // connexion en héritant de PDO 29require('model/DB.php'); // connexion en héritant de PDO
28DB::$dsn = 'sqlite:' . $db_place; // Data Source Name = 1er paramètre du constructeur de PDO: $bdd = new PDO($dsn); 30// création du DSN à mettre ailleurs (dans Model?)
31DB::$dsn = 'sqlite:' . Config::$db_path; // Data Source Name = 1er paramètre du constructeur de PDO: $bdd = new PDO($dsn);
29 32
30require('model/Model.php'); // class Model extends DB, requêtes SQL 33require('model/Model.php'); // class Model extends DB, requêtes SQL
31require('model/StructTablesDB.php'); 34require('model/StructTablesDB.php');
@@ -150,11 +153,11 @@ while($boucle)
150 echo("choix: $choix_niv1\n"); 153 echo("choix: $choix_niv1\n");
151 if($sqlitebrowser_enable) 154 if($sqlitebrowser_enable)
152 { 155 {
153 exec(windowAppCommand($sqlite_gui, $db_place)); 156 exec(windowAppCommand(Config::$sqlite_gui, Config::$db_path));
154 } 157 }
155 else 158 else
156 { 159 {
157 exec($x_term_command . ' ' . $sqlite_cli . ' ' . $db_place); // correpond à priori à: xterm -e sqlite3 ~/ORDIPOLO/Appli_PHP/ordipolo.sqlite 160 exec($x_term_command . ' ' . $sqlite_cli . ' ' . Config::$db_path); // correpond à priori à: xterm -e sqlite3 ~/ORDIPOLO/Appli_PHP/ordipolo.sqlite
158 } 161 }
159 } 162 }
160 163
diff --git a/src/sections/1_new_service.php b/src/sections/1_new_service.php
index aaf441a..656b45f 100644
--- a/src/sections/1_new_service.php
+++ b/src/sections/1_new_service.php
@@ -130,7 +130,7 @@ function newService(): int // code de retour, si 0 retour menu principal, si 2 a
130 case ZenitySetup::$menu_enregistrement_entrees[4]: // "Prestation non vendue" 130 case ZenitySetup::$menu_enregistrement_entrees[4]: // "Prestation non vendue"
131 $Presta->setTypePresta('non_vendue'); 131 $Presta->setTypePresta('non_vendue');
132 break; 132 break;
133 default: // inutile normallement, cas déjà géré plus haut 133 default: // inutile normallement, cas déjà géré avant
134 echo "debug: sortie du menu enregistrement incorrect\n"; 134 echo "debug: sortie du menu enregistrement incorrect\n";
135 return(0); 135 return(0);
136 } 136 }
@@ -167,14 +167,49 @@ function newService(): int // code de retour, si 0 retour menu principal, si 2 a
167 167
168 // -- partie 3: LaTeX -- 168 // -- partie 3: LaTeX --
169 169
170 // création fichiers LaTeX et PDF 170 // créer le chemin et un sous-dossier avec l'année en cours
171 //~ $latex_path = '../data/latex/'; // noms de variables dans le config.php 171 $latex_year_folder = Config::$latex_path . date('Y') . '/';
172 //~ $file_name = 'devis.tex'; 172 makeFolder($latex_year_folder);
173 //~ $template = 'devis'; // vaut 'devis' ou 'enveloppe_recto' ou 'enveloppe_verso' ou 'facture' ou 'location' 173
174 //~ $latex = getLatexFromTemplate($template); 174 $pdf_year_folder = Config::$pdf_path . date('Y') . '/';
175 //~ file_put_contents($latex_path . $file_name, $latex); // injection des variables & écriture du fichier 175 makeFolder($pdf_year_folder);
176 //~ $pdf_path = '../data/pdf/'; 176
177 //~ latexToPdf($latex_path, $file_name, $pdf_path); 177 // document de la prestation
178 switch($choix_niv2)
179 {
180 case ZenitySetup::$menu_enregistrement_entrees[0]: // "Devis"
181 $file_name = 'devis.tex';
182 $template = 'devis';
183 makeLatexAndPdfDocument($file_name, $template, $Client, $Presta, $Details);
184 break;
185 case ZenitySetup::$menu_enregistrement_entrees[1]: // "Facture"
186 $file_name = 'facture.tex';
187 $template = 'facture';
188 makeLatexAndPdfDocument($file_name, $template, $Client, $Presta, $Details);
189 break;
190 case ZenitySetup::$menu_enregistrement_entrees[2]: // "CESU"
191 // pas de facture
192 break;
193 case ZenitySetup::$menu_enregistrement_entrees[3]: // "Location"
194 $file_name = 'location.tex';
195 $template = 'location';
196 makeLatexAndPdfDocument($file_name, $template, $Client, $Presta, $Details);
197 break;
198 case ZenitySetup::$menu_enregistrement_entrees[4]: // "Prestation non vendue"
199 // pas de facture
200 break;
201 default: // inutile normallement, cas déjà géré avant
202 echo "debug: sortie du menu enregistrement incorrect\n";
203 return(0);
204 }
205
206 // enveloppe
207 $file_name = 'enveloppe_recto.tex';
208 $template = 'enveloppe_recto';
209 makeLatexAndPdfDocument($file_name, $template, $Client);
210 $file_name = 'enveloppe_verso.tex';
211 $template = 'enveloppe_verso';
212 makeLatexAndPdfDocument($file_name, $template, $Client);
178 213
179 214
180 // -- partie 4: récapitulatif -- 215 // -- partie 4: récapitulatif --