diff options
| author | polo <ordipolo@gmx.fr> | 2022-12-19 02:51:03 +0100 |
|---|---|---|
| committer | polo <ordipolo@gmx.fr> | 2022-12-19 02:51:03 +0100 |
| commit | dedbe2f5cee33431c1299c7f0dbef4e247dc2447 (patch) | |
| tree | 4d2481ca044aae30886a9879acd53c4777c180bc /src/main.php | |
| parent | ff14091476a35de16a9ea3208501040cfae93a06 (diff) | |
| download | AppliGestionPHP-dedbe2f5cee33431c1299c7f0dbef4e247dc2447.tar.gz AppliGestionPHP-dedbe2f5cee33431c1299c7f0dbef4e247dc2447.tar.bz2 AppliGestionPHP-dedbe2f5cee33431c1299c7f0dbef4e247dc2447.zip | |
nouveau client main.php en cours
Diffstat (limited to 'src/main.php')
| -rwxr-xr-x | src/main.php | 215 |
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 |
| 6 | require('../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 |
| 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 | |||
| 29 | require('model/StructTablesDB.php'); | 31 | require('model/StructTablesDB.php'); |
| 30 | Model::createTables(); | 32 | Model::createTables(); |
| 31 | 33 | ||
| 34 | require('model/traits.php'); | ||
| 32 | require('model/Clients.php'); | 35 | require('model/Clients.php'); |
| 33 | require('model/Prestations.php'); | 36 | require('model/Prestations.php'); |
| 34 | require('model/DevisFactures.php'); | 37 | require('model/DevisFactures.php'); |
| 35 | require('model/CESU.php'); | 38 | require('model/CESU.php'); |
| 36 | require('model/Locations.php'); | 39 | require('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 | |||
| 57 | require('view/Zenity.php'); // commande système zenity | 41 | require('view/Zenity.php'); // commande système zenity |
| 58 | require('view/zenity_setup.php'); // texte dans les fenêtres ET instanciation (un objet = une commande) | 42 | require('view/zenity_setup.php'); // texte dans les fenêtres ET instanciation (un objet = une commande) |
| 59 | require('Latex.php'); // générer le code LaTeX | 43 | require('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; |
| 72 | while($boucle) | 64 | while($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 | { |
