summaryrefslogtreecommitdiff
path: root/src/main.php
diff options
context:
space:
mode:
authorpolo <ordipolo@gmx.fr>2022-12-14 12:55:46 +0100
committerpolo <ordipolo@gmx.fr>2022-12-14 12:55:46 +0100
commitff14091476a35de16a9ea3208501040cfae93a06 (patch)
tree89ebd00ad68fbb97aac71ef8a2972748f82dee0d /src/main.php
parenta45a3e0345890b9df3c5fa7c82966a64491eca02 (diff)
downloadAppliGestionPHP-ff14091476a35de16a9ea3208501040cfae93a06.zip
MODEL + reorganisation
Diffstat (limited to 'src/main.php')
-rwxr-xr-xsrc/main.php239
1 files changed, 239 insertions, 0 deletions
diff --git a/src/main.php b/src/main.php
new file mode 100755
index 0000000..e890744
--- /dev/null
+++ b/src/main.php
@@ -0,0 +1,239 @@
1#!/bin/php
2<?php
3// php/main.php
4
5// configuration du programme par l'utilisateur
6require('../config.php'); // fichier de l'utilisateur: à déplacer peut-être dans un dossier config
7//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
10// 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
12$file_explorer = 'xdg-open'; // ouvre l'explorateur de fichiers par défaut quand suivi d'un chemin en paramètre
13$flyer = $pub . $flyer;
14$business_card = $pub . $business_card;
15$db_place .= $db_name . '.sqlite';
16$sqlitebrowser_enable = false;
17$sqlite_cli = ''; // commande sqlite ou sqlite3
18$x_term_command = ''; // commande terminal en mode graphique
19
20require('dependances.php'); // vérification des dépendances
21require('functions.php');
22require('Dates.php'); // gère dates et timestamps
23Dates::$date_format = $date_format; // dates européennes ou américaines
24
25require('model/DB.php'); // connexion en héritant de PDO
26DB::$dsn = 'sqlite:' . $db_place; // Data Source Name = 1er paramètre du constructeur de PDO: $bdd = new PDO($dsn);
27
28require('model/Model.php'); // class Model extends DB, requêtes SQL
29require('model/StructTablesDB.php');
30Model::createTables();
31
32require('model/Clients.php');
33require('model/Prestations.php');
34require('model/DevisFactures.php');
35require('model/CESU.php');
36require('model/Locations.php');
37
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
58require('view/zenity_setup.php'); // texte dans les fenêtres ET instanciation (un objet = une commande)
59require('Latex.php'); // générer le code LaTeX
60
61// injection de variables dans le document
62// problème à régler: et si je veux faire une deuxième facture?
63//~ include('latex_templates/devis.php');
64//~ include('latex_templates/facture.php');
65//~ include('latex_templates/enveloppe_recto.php');
66//~ include('latex_templates/enveloppe_verso.php');
67//~ include('latex_templates/location.php');
68
69
70// boucle principale
71$boucle = true;
72while($boucle)
73{
74 // menu principal
75 $choix_niv1 = exec($MenuPrincipal->get());
76
77 // enregistrement
78 if($choix_niv1 === $menu_principal_entrees[0]) // = Nouvelle prestation
79 {
80 // est ce que le client est déjà dans la base?
81 if(exec($QuestionNouveauClient->get()) === 0) // $? = 0 signifie oui
82 {
83 // saisie du nom du client et recherche
84 $client_saisie = exec($RechercheClient->get());
85
86 // sélection parmi les résultats
87 $ResultatsRechercheClient->setEntries(recherche_client($client_saisie));
88 $choix_niv2 = exec($ResultatsRechercheClient->get());
89 if($choix_niv2 !== '')
90 {
91 echo "client trouvé\n";
92 }
93 else // chaîne vide
94 {
95 echo "client pas trouvé\n";
96 exec($NouveauClient->get());
97
98 // enregistrement dans la BDD
99
100 }
101
102 // récupération des infos dans la BDD
103
104 }
105 else
106 {
107 echo "nouveau client\n";
108 exec($NouveauClient->get());
109
110 // enregistrement dans la BDD
111
112 }
113
114 // choix type comptable: devis, facture, cesu
115 $choix_niv2 = exec($MenuEnregistrement->get());
116 $continuer = true;
117 if($choix_niv2 === $menu_enregistrement_entrees[0])
118 {
119 //
120 }
121 elseif($choix_niv2 === $menu_enregistrement_entrees[1])
122 {
123 //
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 }
137
138 // détail de la prestation
139 if($continuer)
140 {
141 exec($Calendrier->get());
142 exec($FormulairePrestation->get());
143 // enregistrement date et prestation en BDD
144 exec($CommentairePrestation->get());
145 // enregistrement commentaire en BDD
146 // vérification?
147
148 // tableau récaptilatif et demande de confirmation des informations
149 // création fichiers LaTeX et PDF
150
151 // imprimer?
152 //~ $imprimer_facture = exec('zenity --question --width=250 --title="Base de données mise à jour" --text="Imprimer la facture?"');
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"');
154 }
155 }
156
157 elseif($choix_niv1 === $menu_principal_entrees[1]) // = Modifier un enregistrement
158 {}
159
160 elseif($choix_niv1 === $menu_principal_entrees[2]) // = Fichier clients
161 {
162 // quel affichage? un grand tableau avec zenity? une page web? un document LaTeX?
163 }
164
165 // documents à imprimer
166 elseif($choix_niv1 === $menu_principal_entrees[3]) // = Créer/imprimer un document
167 {
168 $choix_niv2 = exec($MenuDocuments->get());
169 if($choix_niv2 === $menu_documents_entrees[0])
170 {
171
172 }
173 elseif($choix_niv2 === $menu_documents_entrees[1]) // = Facture
174 {
175
176 }
177 elseif($choix_niv2 === $menu_documents_entrees[2]) // = Lettre avec adresse
178 {
179
180 }
181 elseif($choix_niv2 === $menu_documents_entrees[3]) // = Livre des recettes
182 {
183
184 }
185 elseif($choix_niv2 === $menu_documents_entrees[4]) // = Registre des achats
186 {
187
188 }
189 elseif($choix_niv2 === $menu_documents_entrees[5]) // = Bilan annuel
190 {
191
192 }
193 else
194 {
195 // retour menu principal
196 }
197 }
198
199 // Supports de communication
200 elseif($choix_niv1 === $menu_principal_entrees[4]) // = Communication
201 {
202 $choix_niv2 = exec($MenuCommunication->get());
203 if($choix_niv2 === $menu_communication_entrees[0]) // = Flyer (nécessite gimp)
204 {
205 exec(window_app_command($image_editor, $flyer));
206 }
207 elseif($choix_niv2 === $menu_communication_entrees[1]) // = Carte de visite (nécessite scribus)
208 {
209 exec(window_app_command($publishing, $business_card));
210 }
211 elseif($choix_niv2 === $menu_communication_entrees[2]) // = Explorateur de fichiers
212 {
213 exec(window_app_command($file_explorer, $pub));
214 }
215 else
216 {
217 // retour menu principal
218 }
219 }
220
221 // BDD
222 elseif($choix_niv1 === $menu_principal_entrees[5]) // = Base de données
223 {
224 if($sqlitebrowser_enable)
225 {
226 exec(window_app_command($sqlite_gui, $db_place));
227 }
228 else
229 {
230 exec($x_term_command . ' ' . $sqlite_cli . ' ' . $db_place); // correpond à priori à: xterm -e sqlite3 ~/ORDIPOLO/Appli_PHP/ordipolo.sqlite
231 }
232 }
233
234 // arrêt
235 else
236 {
237 $boucle = false;
238 }
239}