summaryrefslogtreecommitdiff
path: root/php/main.php
diff options
context:
space:
mode:
Diffstat (limited to 'php/main.php')
-rwxr-xr-xphp/main.php193
1 files changed, 193 insertions, 0 deletions
diff --git a/php/main.php b/php/main.php
new file mode 100755
index 0000000..934f718
--- /dev/null
+++ b/php/main.php
@@ -0,0 +1,193 @@
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';
16var_dump($db_place);
17$sqlitebrowser_enable = false;
18$sqlite_cli = ''; // commande sqlite ou sqlite3
19$x_term_command = ''; // commande terminal en mode graphique
20
21require('dependances.php'); // vérification des dépendances
22require('functions.php');
23
24require('ConnectionDatabase.php'); // class DB extends PDO, connexion à la base et création de la base et des tables si elles n'existent pas déjà
25require('Model.php'); // class Model extends DB, requêtes SQL
26Connection::$dsn = 'sqlite:' . $db_place; // Data Source Name = 1er paramètre du constructeur de PDO: $bdd = new PDO($dsn);
27$Database = new Model(); // connexion et méthodes pour manipuler la base de données
28
29require('ZenityClasses.php'); // méthodes pour créer les commandes
30require('zenity_setup.php'); // texte dans les fenêtres ET instanciation (un objet = une commande)
31
32// require('php/latex.php');
33// require('php/compileLatex.php');
34
35
36// boucle principale
37$boucle = true;
38while($boucle)
39{
40 // menu principal
41 $choix_niv1 = exec($MenuPrincipal->get());
42
43 // enregistrement
44 if($choix_niv1 == 'Nouvelle prestation')
45 {
46 // est ce que le client est déjà dans la base?
47 if(exec($QuestionNouveauClient->get()) == 0) // $? = 0 signifie oui
48 {
49 // saisie du nom du client et recherche
50 $client_saisie = exec($RechercheClient->get());
51
52 // sélection parmi les résultats
53 $ResultatsRechercheClient->set_entries(recherche_client($client_saisie));
54 $choix_niv2 = exec($ResultatsRechercheClient->get());
55 if($choix_niv2 != '')
56 {
57 echo "client trouvé\n";
58 }
59 else // chaîne vide
60 {
61 echo "client pas trouvé\n";
62 exec($NouveauClient->get());
63
64 // enregistrement dans la BDD
65
66 }
67
68 // récupération des infos dans la BDD
69
70 }
71 else
72 {
73 echo "nouveau client\n";
74 exec($NouveauClient->get());
75
76 // enregistrement dans la BDD
77
78 }
79
80 // infos sur la prestation
81 $choix_niv2 = exec($MenuEnregistrement->get());
82 $continuer = true;
83 if($choix_niv2 == "Devis")
84 {
85 $type = 'DEVIS';
86 }
87 elseif($choix_niv2 == "Facture")
88 {
89 $type = 'FACTURE';
90 }
91 elseif($choix_niv2 == "CESU")
92 {
93 $type = 'CESU';
94 }
95 elseif($choix_niv2 == "Pas de prestation")
96 {
97 $type = '';
98 }
99 else
100 {
101 $continuer = false; // retour menu principal
102 }
103
104 if($continuer)
105 {
106 exec($Calendrier->get());
107 exec($FormulairePrestation->get());
108 // enregistrement date et prestation en BDD
109 exec($CommentairePrestation->get());
110 // enregistrement commentaire en BDD
111 }
112 }
113
114 elseif($choix_niv1 == 'Fichier clients')
115 {
116 // quel affichage? un grand tableau avec zenity? une page web? un document LaTeX?
117 }
118
119 // documents à imprimer
120 elseif($choix_niv1 == 'Créer/imprimer un document')
121 {
122 $choix_niv2 = exec($MenuDocuments->get());
123 if($choix_niv2 == 'Devis')
124 {
125
126 }
127 elseif($choix_niv2 == 'Facture')
128 {
129
130 }
131 elseif($choix_niv2 == 'Lettre avec adresse')
132 {
133
134 }
135 elseif($choix_niv2 == 'Livre des recettes')
136 {
137
138 }
139 elseif($choix_niv2 == "Registre des achats")
140 {
141
142 }
143 elseif($choix_niv2 == "Bilan annuel")
144 {
145
146 }
147 else
148 {
149 // retour menu principal
150 }
151 }
152
153 // Supports de communication
154 elseif($choix_niv1 == 'Communication')
155 {
156 $choix_niv2 = exec($MenuCommunication->get());
157 if($choix_niv2 == 'Flyer (nécessite gimp)')
158 {
159 exec(window_app_command('gimp', $flyer));
160 }
161 elseif($choix_niv2 == 'Carte de visite (nécessite scribus)')
162 {
163 exec(window_app_command('scribus', $business_card));
164 }
165 elseif($choix_niv2 == 'Explorateur de fichiers')
166 {
167 exec(window_app_command($file_explorer, $pub));
168 }
169 else
170 {
171 // retour menu principal
172 }
173 }
174
175 // BDD
176 elseif($choix_niv1 == 'Base de données')
177 {
178 if($sqlitebrowser_enable)
179 {
180 exec(window_app_command('sqlitebrowser', $db_place));
181 }
182 else
183 {
184 exec($x_term_command . ' ' . $sqlite_cli . ' ' . $db_place); // correpond à priori à: xterm -e sqlite3 ~/ORDIPOLO/Appli_PHP/ordipolo.sqlite
185 }
186 }
187 else
188 {
189 $boucle = false; // byebye
190 }
191}
192
193// sauvegarder la base de données