From dedbe2f5cee33431c1299c7f0dbef4e247dc2447 Mon Sep 17 00:00:00 2001 From: polo Date: Mon, 19 Dec 2022 02:51:03 +0100 Subject: nouveau client main.php en cours --- src/main.php | 215 ++++++++++++++++++++++++++++++++--------------------------- 1 file changed, 118 insertions(+), 97 deletions(-) (limited to 'src/main.php') 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 @@ // configuration du programme par l'utilisateur require('../config.php'); // fichier de l'utilisateur: à déplacer peut-être dans un dossier config + +// à coder peut-être plus tard +//require('config_check.php'); // contrôle de config.php, on ajoutera des / aux chemins quand ils manquent //require('config_window.php'); // configuration user-friendly et assistée avec des messages d'erreur et des indications -//require('config_check.php'); // contrôle de config.php // variables diverses, certaines utilisent les variables de config.php $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 require('model/StructTablesDB.php'); Model::createTables(); +require('model/traits.php'); require('model/Clients.php'); require('model/Prestations.php'); require('model/DevisFactures.php'); require('model/CESU.php'); require('model/Locations.php'); -// instancier et supprimer à chaque fois quand nécessaire -$Client = new Clients(); -$Client->setPrenom_nom('Jean Némar')->setAdresse('10, rue des douves')->setCode_client('464653476')->setCommentaires('un peu chiant'); -$Client->create(); - -// même chose avec un tableau en entrée au lieu d'écrire toutes les méthodes -$input = ['prenom_nom' => 'Eva Casquer', 'adresse' => "2, place d'Écosse", 'code_client' => '958465875', 'commentaires' => 'bonne vache à lait']; -$Client->hydrate($input); -$Client->create(); - -$input = ['prenom_nom' => 'Eva Paparla', 'commentaires' => 'grosse nunuche']; -$Client->hydrate($input); -$Client->update(2); - -$Client->delete(3); - -//$Date = new Dates; - - require('view/Zenity.php'); // commande système zenity require('view/zenity_setup.php'); // texte dans les fenêtres ET instanciation (un objet = une commande) require('Latex.php'); // générer le code LaTeX -// injection de variables dans le document -// problème à régler: et si je veux faire une deuxième facture? -//~ include('latex_templates/devis.php'); -//~ include('latex_templates/facture.php'); -//~ include('latex_templates/enveloppe_recto.php'); -//~ include('latex_templates/enveloppe_verso.php'); -//~ include('latex_templates/location.php'); +/* SYNTAXE BDD */ +// chaînage de méthodes +//~ $Client->setPrenom_nom('Jean Némar')->setAdresse('10, rue des douves')->setCode_client('464653476')->setCommentaires('un peu chiant'); +//~ $Client->create(); + +// tableau en entrée +//~ $input = ['prenom_nom' => 'Eva Casquer', 'adresse' => "2, place d'Écosse", 'code_client' => '958465875', 'commentaires' => 'bonne vache à lait']; +//~ $Client->hydrate($input); +//~ $Client->create(); + +//~ $input = ['prenom_nom' => 'Eva Paparla', 'commentaires' => 'grosse nunuche']; +//~ $Client->hydrate($input); +//~ $Client->update(2); + +//~ $Client->delete(3); // boucle principale $boucle = true; while($boucle) { - // menu principal + // niveau 1: menu principal $choix_niv1 = exec($MenuPrincipal->get()); - // enregistrement - if($choix_niv1 === $menu_principal_entrees[0]) // = Nouvelle prestation + // Nouvelle prestation + if($choix_niv1 === $menu_principal_entrees[0]) { - // est ce que le client est déjà dans la base? - if(exec($QuestionNouveauClient->get()) === 0) // $? = 0 signifie oui + $Client = new Clients; + $id_client_connu = false; + + // niveau 2: est ce que le client est déjà dans la base? + if(exec($QuestionNouveauClient->get()) == '0') // $? = 0 signifie oui, double égal == pour le transtypage { - // saisie du nom du client et recherche - $client_saisie = exec($RechercheClient->get()); + echo "debug: recherche souhaitée\n"; - // sélection parmi les résultats - $ResultatsRechercheClient->setEntries(recherche_client($client_saisie)); - $choix_niv2 = exec($ResultatsRechercheClient->get()); - if($choix_niv2 !== '') + // niveau 3: saisie du nom du client + $client_saisie = exec($RechercheClient->get()); + if($client_saisie !== '') { - echo "client trouvé\n"; + echo "debug: recherche effectuée\n"; + + $ResultatsRechercheClient->setEntries(rechercheClient($client_saisie)); // recherche silencieuse + + // niveau 4: sélection parmi les résultats + $choix_niv4 = exec($ResultatsRechercheClient->get()); + if($choix_niv4 !== '') + { + echo "debug: client sélectionné\n"; + $id_client_connu = true; + } + else + { + echo "debug: client pas trouvé ou pas sélectionné\n"; + } } - else // chaîne vide + else { - echo "client pas trouvé\n"; - exec($NouveauClient->get()); - - // enregistrement dans la BDD - + echo "debug: recherche annulée ou saisie vide\n"; } - - // récupération des infos dans la BDD - } else { - echo "nouveau client\n"; - exec($NouveauClient->get()); - - // enregistrement dans la BDD - + echo "debug: nouveau client\n"; } - // choix type comptable: devis, facture, cesu - $choix_niv2 = exec($MenuEnregistrement->get()); - $continuer = true; - if($choix_niv2 === $menu_enregistrement_entrees[0]) - { - // - } - elseif($choix_niv2 === $menu_enregistrement_entrees[1]) + // niveau 2: on n'a pas cherché OU on n'a pas trouvé + if(!$id_client_connu) { - // - } - elseif($choix_niv2 === $menu_enregistrement_entrees[2]) - { - // - } - elseif($choix_niv2 === $menu_enregistrement_entrees[3]) - { - // - } - else - { - $continuer = false; // retour menu principal + $id_client_connu = enregistrementNouveauClient($Client, $NouveauClient); } - // détail de la prestation - if($continuer) - { - exec($Calendrier->get()); - exec($FormulairePrestation->get()); - // enregistrement date et prestation en BDD - exec($CommentairePrestation->get()); - // enregistrement commentaire en BDD - // vérification? - - // tableau récaptilatif et demande de confirmation des informations - // création fichiers LaTeX et PDF - - // imprimer? - //~ $imprimer_facture = exec('zenity --question --width=250 --title="Base de données mise à jour" --text="Imprimer la facture?"'); - //~ $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"'); + // niveau 2: type comptable d'enregistrement: devis, facture, cesu ou pas de prestation + if($id_client_connu) + { + $choix_niv2 = exec($MenuEnregistrement->get()); + $continuer = true; + if($choix_niv2 === $menu_enregistrement_entrees[0]) + { + // + } + elseif($choix_niv2 === $menu_enregistrement_entrees[1]) + { + // + } + elseif($choix_niv2 === $menu_enregistrement_entrees[2]) + { + // + } + elseif($choix_niv2 === $menu_enregistrement_entrees[3]) + { + // + } + else + { + $continuer = false; // retour menu principal + } + + if($continuer) + { + //niveau 3: détail de la prestation + $Date = new Dates(exec($Calendrier->get())); + $Objet->setDate($Date->getTimestamp()); // enregistrement du timestamp en BDD + + exec($FormulairePrestation->get()); + // enregistrement date et prestation en BDD + + exec($CommentairePrestation->get()); + // enregistrement commentaire en BDD + // vérification? + + // tableau récaptilatif et demande de confirmation des informations + + // création fichiers LaTeX et PDF + //~ $latex_path = '../data/latex/'; // noms de variables dans le config.php + //~ $file_name = 'devis.tex'; + //~ $template = 'devis'; // vaut 'devis' ou 'enveloppe_recto' ou 'enveloppe_verso' ou 'facture' ou 'location' + //~ $latex = getLatexFromTemplate($template); + //~ file_put_contents($latex_path . $file_name, $latex); // injection des variables & écriture du fichier + //~ $pdf_path = '../data/pdf/'; + //~ latexToPdf($latex_path, $file_name, $pdf_path); + + // imprimer? + //~ $imprimer_facture = exec('zenity --question --width=250 --title="Base de données mise à jour" --text="Imprimer la facture?"'); + //~ $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"'); + } } + unset($Client); // suppression de la dernière référence (normallement) } - elseif($choix_niv1 === $menu_principal_entrees[1]) // = Modifier un enregistrement - {} + // Modifier un enregistrement + elseif($choix_niv1 === $menu_principal_entrees[1]) + { + // niveau 2: + } - elseif($choix_niv1 === $menu_principal_entrees[2]) // = Fichier clients + // Fichier clients + elseif($choix_niv1 === $menu_principal_entrees[2]) { // quel affichage? un grand tableau avec zenity? une page web? un document LaTeX? } @@ -202,15 +223,15 @@ while($boucle) $choix_niv2 = exec($MenuCommunication->get()); if($choix_niv2 === $menu_communication_entrees[0]) // = Flyer (nécessite gimp) { - exec(window_app_command($image_editor, $flyer)); + exec(windowAppCommand($image_editor, $flyer)); } elseif($choix_niv2 === $menu_communication_entrees[1]) // = Carte de visite (nécessite scribus) { - exec(window_app_command($publishing, $business_card)); + exec(windowAppCommand($publishing, $business_card)); } elseif($choix_niv2 === $menu_communication_entrees[2]) // = Explorateur de fichiers { - exec(window_app_command($file_explorer, $pub)); + exec(windowAppCommand($file_explorer, $pub)); } else { @@ -223,7 +244,7 @@ while($boucle) { if($sqlitebrowser_enable) { - exec(window_app_command($sqlite_gui, $db_place)); + exec(windowAppCommand($sqlite_gui, $db_place)); } else { -- cgit v1.2.3