summaryrefslogtreecommitdiff
path: root/src/main.php
diff options
context:
space:
mode:
Diffstat (limited to 'src/main.php')
-rwxr-xr-xsrc/main.php215
1 files changed, 118 insertions, 97 deletions
diff --git a/src/main.php b/src/main.php
index e890744..eacd3b3 100755
--- a/src/main.php
+++ b/src/main.php
@@ -4,8 +4,10 @@
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 6require('../config.php'); // fichier de l'utilisateur: à déplacer peut-être dans un dossier config
7
8// à coder peut-être plus tard
9//require('config_check.php'); // contrôle de config.php, on ajoutera des / aux chemins quand ils manquent
7//require('config_window.php'); // configuration user-friendly et assistée avec des messages d'erreur et des indications 10//require('config_window.php'); // configuration user-friendly et assistée avec des messages d'erreur et des indications
8//require('config_check.php'); // contrôle de config.php
9 11
10// variables diverses, certaines utilisent les variables de config.php 12// variables diverses, certaines utilisent les variables de config.php
11$exec_mode = 'gui'; // les versions pure console (CLI) et serveur web (CGI) de ce programme ne sont pas prévues pour l'instant 13$exec_mode = 'gui'; // les versions pure console (CLI) et serveur web (CGI) de ce programme ne sont pas prévues pour l'instant
@@ -29,135 +31,154 @@ require('model/Model.php'); // class Model extends DB, requêtes SQL
29require('model/StructTablesDB.php'); 31require('model/StructTablesDB.php');
30Model::createTables(); 32Model::createTables();
31 33
34require('model/traits.php');
32require('model/Clients.php'); 35require('model/Clients.php');
33require('model/Prestations.php'); 36require('model/Prestations.php');
34require('model/DevisFactures.php'); 37require('model/DevisFactures.php');
35require('model/CESU.php'); 38require('model/CESU.php');
36require('model/Locations.php'); 39require('model/Locations.php');
37 40
38// instancier et supprimer à chaque fois quand nécessaire
39$Client = new Clients();
40$Client->setPrenom_nom('Jean Némar')->setAdresse('10, rue des douves')->setCode_client('464653476')->setCommentaires('un peu chiant');
41$Client->create();
42
43// même chose avec un tableau en entrée au lieu d'écrire toutes les méthodes
44$input = ['prenom_nom' => 'Eva Casquer', 'adresse' => "2, place d'Écosse", 'code_client' => '958465875', 'commentaires' => 'bonne vache à lait'];
45$Client->hydrate($input);
46$Client->create();
47
48$input = ['prenom_nom' => 'Eva Paparla', 'commentaires' => 'grosse nunuche'];
49$Client->hydrate($input);
50$Client->update(2);
51
52$Client->delete(3);
53
54//$Date = new Dates;
55
56
57require('view/Zenity.php'); // commande système zenity 41require('view/Zenity.php'); // commande système zenity
58require('view/zenity_setup.php'); // texte dans les fenêtres ET instanciation (un objet = une commande) 42require('view/zenity_setup.php'); // texte dans les fenêtres ET instanciation (un objet = une commande)
59require('Latex.php'); // générer le code LaTeX 43require('Latex.php'); // générer le code LaTeX
60 44
61// injection de variables dans le document 45/* SYNTAXE BDD */
62// problème à régler: et si je veux faire une deuxième facture? 46// chaînage de méthodes
63//~ include('latex_templates/devis.php'); 47//~ $Client->setPrenom_nom('Jean Némar')->setAdresse('10, rue des douves')->setCode_client('464653476')->setCommentaires('un peu chiant');
64//~ include('latex_templates/facture.php'); 48//~ $Client->create();
65//~ include('latex_templates/enveloppe_recto.php'); 49
66//~ include('latex_templates/enveloppe_verso.php'); 50// tableau en entrée
67//~ include('latex_templates/location.php'); 51//~ $input = ['prenom_nom' => 'Eva Casquer', 'adresse' => "2, place d'Écosse", 'code_client' => '958465875', 'commentaires' => 'bonne vache à lait'];
52//~ $Client->hydrate($input);
53//~ $Client->create();
54
55//~ $input = ['prenom_nom' => 'Eva Paparla', 'commentaires' => 'grosse nunuche'];
56//~ $Client->hydrate($input);
57//~ $Client->update(2);
58
59//~ $Client->delete(3);
68 60
69 61
70// boucle principale 62// boucle principale
71$boucle = true; 63$boucle = true;
72while($boucle) 64while($boucle)
73{ 65{
74 // menu principal 66 // niveau 1: menu principal
75 $choix_niv1 = exec($MenuPrincipal->get()); 67 $choix_niv1 = exec($MenuPrincipal->get());
76 68
77 // enregistrement 69 // Nouvelle prestation
78 if($choix_niv1 === $menu_principal_entrees[0]) // = Nouvelle prestation 70 if($choix_niv1 === $menu_principal_entrees[0])
79 { 71 {
80 // est ce que le client est déjà dans la base? 72 $Client = new Clients;
81 if(exec($QuestionNouveauClient->get()) === 0) // $? = 0 signifie oui 73 $id_client_connu = false;
74
75 // niveau 2: est ce que le client est déjà dans la base?
76 if(exec($QuestionNouveauClient->get()) == '0') // $? = 0 signifie oui, double égal == pour le transtypage
82 { 77 {
83 // saisie du nom du client et recherche 78 echo "debug: recherche souhaitée\n";
84 $client_saisie = exec($RechercheClient->get());
85 79
86 // sélection parmi les résultats 80 // niveau 3: saisie du nom du client
87 $ResultatsRechercheClient->setEntries(recherche_client($client_saisie)); 81 $client_saisie = exec($RechercheClient->get());
88 $choix_niv2 = exec($ResultatsRechercheClient->get()); 82 if($client_saisie !== '')
89 if($choix_niv2 !== '')
90 { 83 {
91 echo "client trouvé\n"; 84 echo "debug: recherche effectuée\n";
85
86 $ResultatsRechercheClient->setEntries(rechercheClient($client_saisie)); // recherche silencieuse
87
88 // niveau 4: sélection parmi les résultats
89 $choix_niv4 = exec($ResultatsRechercheClient->get());
90 if($choix_niv4 !== '')
91 {
92 echo "debug: client sélectionné\n";
93 $id_client_connu = true;
94 }
95 else
96 {
97 echo "debug: client pas trouvé ou pas sélectionné\n";
98 }
92 } 99 }
93 else // chaîne vide 100 else
94 { 101 {
95 echo "client pas trouvé\n"; 102 echo "debug: recherche annulée ou saisie vide\n";
96 exec($NouveauClient->get());
97
98 // enregistrement dans la BDD
99
100 } 103 }
101
102 // récupération des infos dans la BDD
103
104 } 104 }
105 else 105 else
106 { 106 {
107 echo "nouveau client\n"; 107 echo "debug: nouveau client\n";
108 exec($NouveauClient->get());
109
110 // enregistrement dans la BDD
111
112 } 108 }
113 109
114 // choix type comptable: devis, facture, cesu 110 // niveau 2: on n'a pas cherché OU on n'a pas trouvé
115 $choix_niv2 = exec($MenuEnregistrement->get()); 111 if(!$id_client_connu)
116 $continuer = true;
117 if($choix_niv2 === $menu_enregistrement_entrees[0])
118 {
119 //
120 }
121 elseif($choix_niv2 === $menu_enregistrement_entrees[1])
122 { 112 {
123 // 113 $id_client_connu = enregistrementNouveauClient($Client, $NouveauClient);
124 }
125 elseif($choix_niv2 === $menu_enregistrement_entrees[2])
126 {
127 //
128 }
129 elseif($choix_niv2 === $menu_enregistrement_entrees[3])
130 {
131 //
132 }
133 else
134 {
135 $continuer = false; // retour menu principal
136 } 114 }
137 115
138 // détail de la prestation 116 // niveau 2: type comptable d'enregistrement: devis, facture, cesu ou pas de prestation
139 if($continuer) 117 if($id_client_connu)
140 { 118 {
141 exec($Calendrier->get()); 119 $choix_niv2 = exec($MenuEnregistrement->get());
142 exec($FormulairePrestation->get()); 120 $continuer = true;
143 // enregistrement date et prestation en BDD 121 if($choix_niv2 === $menu_enregistrement_entrees[0])
144 exec($CommentairePrestation->get()); 122 {
145 // enregistrement commentaire en BDD 123 //
146 // vérification? 124 }
147 125 elseif($choix_niv2 === $menu_enregistrement_entrees[1])
148 // tableau récaptilatif et demande de confirmation des informations 126 {
149 // création fichiers LaTeX et PDF 127 //
150 128 }
151 // imprimer? 129 elseif($choix_niv2 === $menu_enregistrement_entrees[2])
152 //~ $imprimer_facture = exec('zenity --question --width=250 --title="Base de données mise à jour" --text="Imprimer la facture?"'); 130 {
153 //~ $imprimer_enveloppe = exec('zenity --question --width=250 --title="Base de données mise à jour" --text="Imprimer l\'adresse sur une enveloppe? (insérer une enveloppe DL sans fenêtre dans l\'imprimante"'); 131 //
132 }
133 elseif($choix_niv2 === $menu_enregistrement_entrees[3])
134 {
135 //
136 }
137 else
138 {
139 $continuer = false; // retour menu principal
140 }
141
142 if($continuer)
143 {
144 //niveau 3: détail de la prestation
145 $Date = new Dates(exec($Calendrier->get()));
146 $Objet->setDate($Date->getTimestamp()); // enregistrement du timestamp en BDD
147
148 exec($FormulairePrestation->get());
149 // enregistrement date et prestation en BDD
150
151 exec($CommentairePrestation->get());
152 // enregistrement commentaire en BDD
153 // vérification?
154
155 // tableau récaptilatif et demande de confirmation des informations
156
157 // création fichiers LaTeX et PDF
158 //~ $latex_path = '../data/latex/'; // noms de variables dans le config.php
159 //~ $file_name = 'devis.tex';
160 //~ $template = 'devis'; // vaut 'devis' ou 'enveloppe_recto' ou 'enveloppe_verso' ou 'facture' ou 'location'
161 //~ $latex = getLatexFromTemplate($template);
162 //~ file_put_contents($latex_path . $file_name, $latex); // injection des variables & écriture du fichier
163 //~ $pdf_path = '../data/pdf/';
164 //~ latexToPdf($latex_path, $file_name, $pdf_path);
165
166 // imprimer?
167 //~ $imprimer_facture = exec('zenity --question --width=250 --title="Base de données mise à jour" --text="Imprimer la facture?"');
168 //~ $imprimer_enveloppe = exec('zenity --question --width=250 --title="Base de données mise à jour" --text="Imprimer l\'adresse sur une enveloppe? (insérer une enveloppe DL sans fenêtre dans l\'imprimante"');
169 }
154 } 170 }
171 unset($Client); // suppression de la dernière référence (normallement)
155 } 172 }
156 173
157 elseif($choix_niv1 === $menu_principal_entrees[1]) // = Modifier un enregistrement 174 // Modifier un enregistrement
158 {} 175 elseif($choix_niv1 === $menu_principal_entrees[1])
176 {
177 // niveau 2:
178 }
159 179
160 elseif($choix_niv1 === $menu_principal_entrees[2]) // = Fichier clients 180 // Fichier clients
181 elseif($choix_niv1 === $menu_principal_entrees[2])
161 { 182 {
162 // quel affichage? un grand tableau avec zenity? une page web? un document LaTeX? 183 // quel affichage? un grand tableau avec zenity? une page web? un document LaTeX?
163 } 184 }
@@ -202,15 +223,15 @@ while($boucle)
202 $choix_niv2 = exec($MenuCommunication->get()); 223 $choix_niv2 = exec($MenuCommunication->get());
203 if($choix_niv2 === $menu_communication_entrees[0]) // = Flyer (nécessite gimp) 224 if($choix_niv2 === $menu_communication_entrees[0]) // = Flyer (nécessite gimp)
204 { 225 {
205 exec(window_app_command($image_editor, $flyer)); 226 exec(windowAppCommand($image_editor, $flyer));
206 } 227 }
207 elseif($choix_niv2 === $menu_communication_entrees[1]) // = Carte de visite (nécessite scribus) 228 elseif($choix_niv2 === $menu_communication_entrees[1]) // = Carte de visite (nécessite scribus)
208 { 229 {
209 exec(window_app_command($publishing, $business_card)); 230 exec(windowAppCommand($publishing, $business_card));
210 } 231 }
211 elseif($choix_niv2 === $menu_communication_entrees[2]) // = Explorateur de fichiers 232 elseif($choix_niv2 === $menu_communication_entrees[2]) // = Explorateur de fichiers
212 { 233 {
213 exec(window_app_command($file_explorer, $pub)); 234 exec(windowAppCommand($file_explorer, $pub));
214 } 235 }
215 else 236 else
216 { 237 {
@@ -223,7 +244,7 @@ while($boucle)
223 { 244 {
224 if($sqlitebrowser_enable) 245 if($sqlitebrowser_enable)
225 { 246 {
226 exec(window_app_command($sqlite_gui, $db_place)); 247 exec(windowAppCommand($sqlite_gui, $db_place));
227 } 248 }
228 else 249 else
229 { 250 {