From 9d8133643773912d54fb0c7d86ef04e6acffa8c9 Mon Sep 17 00:00:00 2001 From: polo Date: Sat, 25 Feb 2023 02:27:22 +0100 Subject: =?UTF-8?q?lire=20tables,=20modifications=20BDD,=20cr=C3=A9ation?= =?UTF-8?q?=20documents=20et=20enveloppes=20latex,=20suppression=20de=20tr?= =?UTF-8?q?aits.php?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- src/sections/1_new_service.php | 68 ++++++++++++++++++++++-------------------- 1 file changed, 35 insertions(+), 33 deletions(-) (limited to 'src/sections') diff --git a/src/sections/1_new_service.php b/src/sections/1_new_service.php index 656b45f..d516329 100644 --- a/src/sections/1_new_service.php +++ b/src/sections/1_new_service.php @@ -12,7 +12,7 @@ function newService(): int // code de retour, si 0 retour menu principal, si 2 a $NouveauClient = new ZenityForms(ZenitySetup::$nouveau_client_text, ZenitySetup::$nouveau_client_entrees); $MenuEnregistrement = new ZenityList(ZenitySetup::$menu_enregistrement_text, ZenitySetup::$menu_enregistrement_entrees); $Calendrier = new ZenityCalendar(ZenitySetup::$calendar_text); - $FormulaireDevis = new ZenityForms(ZenitySetup::$formulaire_text, array_merge(ZenitySetup::$formulaire_facture_entrees, ZenitySetup::$formulaire_devis_entrees)); + $FormulaireDevis = new ZenityForms(ZenitySetup::$formulaire_text, ZenitySetup::$formulaire_devis_entrees); $FormulaireFacture = new ZenityForms(ZenitySetup::$formulaire_text, ZenitySetup::$formulaire_facture_entrees); $FormulaireCesu = new ZenityForms(ZenitySetup::$formulaire_text, ZenitySetup::$formulaire_cesu_entrees); $FormulaireLocation = new ZenityForms(ZenitySetup::$formulaire_text, ZenitySetup::$formulaire_location_entrees); @@ -29,7 +29,7 @@ function newService(): int // code de retour, si 0 retour menu principal, si 2 a $client_inconnu = true; if(exec($QuestionNouveauClient->get()) == '0') // $? = 0 signifie oui, double égal == pour le transtypage { - echo "debug: recherche souhaitée\n"; + echo "choix: recherche d'une client\n"; $input = exec($RechercheClient->get()); if($input == '') { @@ -57,7 +57,7 @@ function newService(): int // code de retour, si 0 retour menu principal, si 2 a } else { - echo "debug: nouveau client\n"; + echo "choix: nouveau client\n"; } // on n'a pas cherché OU on n'a pas trouvé @@ -108,22 +108,22 @@ function newService(): int // code de retour, si 0 retour menu principal, si 2 a { // formulaire - étape 2/3 case ZenitySetup::$menu_enregistrement_entrees[0]: // "Devis" - $Details = new DevisFactures($Client->getID(), 'devis'); + $Details = new DevisFactures('devis'); $Presta->setTypePresta('devis'); $input = exec($FormulaireDevis->get()); break; case ZenitySetup::$menu_enregistrement_entrees[1]: // "Facture" - $Details = new DevisFactures($Client->getID(), 'factures'); // 'factures' est le nom de la table, pas le type de presta + $Details = new DevisFactures('factures'); // 'factures' est le nom de la table, pas le type de presta $Presta->setTypePresta('facture'); $input =exec($FormulaireFacture->get()); break; case ZenitySetup::$menu_enregistrement_entrees[2]: // "CESU" - $Details = new CESU($Client->getID()); + $Details = new CESU(); $Presta->setTypePresta('cesu'); $input = exec($FormulaireCesu->get()); break; case ZenitySetup::$menu_enregistrement_entrees[3]: // "Location" - $Details = new Locations($Client->getID()); + $Details = new Locations(); $Presta->setTypePresta('location'); $input = exec($FormulaireLocation->get()); break; @@ -140,16 +140,27 @@ function newService(): int // code de retour, si 0 retour menu principal, si 2 a echo "debug: annulation lors de l'enregistrement des détails de la prestation\n"; return(0); } - elseif(isset($Details) && !$Details->hydrateFromForm($input, $Presta)) + elseif(isset($Details) && !$Details->hydrateFromForm($input, $Presta)) // echec de l'hydratation { - // messages d'erreur dans hydrateFromForm() + echo "debug: erreur de hydrateFromForm()\n"; // messages d'erreur à mettre ici ou dans hydrateFromForm()? return(0); } unset($input); // commentaire - étape 3/3 $input = exec($CommentairePrestation->get()); - //~ if($input == '') + if($input == '') + { + echo "debug: pas de commentaire saisi\n"; + // on n'interrompt pas le script et on enregistre dans tous les cas (annulatation, chaîne vide) + } + // Cliquer sur annuler (ou appuyer sur échap) revient dont à valider avec une chaîne vide et enregistrer la prestation + // la commande 'echo $?' ($? est le code de sortie de la commande précédente) renvoit 1 si on annule avec la touche échap () + // elle renvoit 0 si la fenêtre est fermée correctement, qu'on valide une chaîne vide ou qu'on clique sur Annuler (on ne peut pas savoir) + // malheureusement, si les deux commandes sont liées par un '&&' et qu'on annule la saisie, la 2è commande n'est pas exécutée + // solution partielle si echo $? ne renvoit rien, c'est qu'echo n'a pas été exécuté parce qu'on a appuyé sur échap (ou que le programme) + // 2>&1 semble inutile, pas de sortie d'erreur de zenity --entry + //~ if(exec('echo $?') != 1) //~ { //~ echo "debug: annulation à la saisie d'un commentaire\n"; //~ return(0); @@ -167,33 +178,23 @@ function newService(): int // code de retour, si 0 retour menu principal, si 2 a // -- partie 3: LaTeX -- - // créer le chemin et un sous-dossier avec l'année en cours - $latex_year_folder = Config::$latex_path . date('Y') . '/'; - makeFolder($latex_year_folder); - - $pdf_year_folder = Config::$pdf_path . date('Y') . '/'; - makeFolder($pdf_year_folder); - // document de la prestation switch($choix_niv2) { case ZenitySetup::$menu_enregistrement_entrees[0]: // "Devis" - $file_name = 'devis.tex'; - $template = 'devis'; - makeLatexAndPdfDocument($file_name, $template, $Client, $Presta, $Details); + $type = 'devis'; + makeLatexAndPdfDocument($type, $Client, $Presta, $Details); break; case ZenitySetup::$menu_enregistrement_entrees[1]: // "Facture" - $file_name = 'facture.tex'; - $template = 'facture'; - makeLatexAndPdfDocument($file_name, $template, $Client, $Presta, $Details); + $type = 'facture'; + makeLatexAndPdfDocument($type, $Client, $Presta, $Details); break; case ZenitySetup::$menu_enregistrement_entrees[2]: // "CESU" // pas de facture break; case ZenitySetup::$menu_enregistrement_entrees[3]: // "Location" - $file_name = 'location.tex'; - $template = 'location'; - makeLatexAndPdfDocument($file_name, $template, $Client, $Presta, $Details); + $type = 'location'; + makeLatexAndPdfDocument($type, $Client, $Presta, $Details); break; case ZenitySetup::$menu_enregistrement_entrees[4]: // "Prestation non vendue" // pas de facture @@ -203,13 +204,13 @@ function newService(): int // code de retour, si 0 retour menu principal, si 2 a return(0); } - // enveloppe - $file_name = 'enveloppe_recto.tex'; - $template = 'enveloppe_recto'; - makeLatexAndPdfDocument($file_name, $template, $Client); - $file_name = 'enveloppe_verso.tex'; - $template = 'enveloppe_verso'; - makeLatexAndPdfDocument($file_name, $template, $Client); + // enveloppe recto + $type = 'enveloppe_recto'; + makeLatexAndPdfDocument($type, $Client); + + // le verso ne dépend pas du client mais de l'entreprise + $type = 'enveloppe_verso'; + makeLatexAndPdfDocument($type); // -- partie 4: récapitulatif -- @@ -221,6 +222,7 @@ function newService(): int // code de retour, si 0 retour menu principal, si 2 a //~ $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"'); + // possibilité de modification // zenityQuestion if(exec($QuestionModifierPrestation->get()) == '0') -- cgit v1.2.3