From 747674b450d6840ce9bd9aecd765cf31445ef8d3 Mon Sep 17 00:00:00 2001 From: polo Date: Sat, 22 Jul 2023 12:29:47 +0200 Subject: navigation entre sections, boucle principale, client ou prospect --- src/sections/1_new_service.php | 209 ----------------------------------------- 1 file changed, 209 deletions(-) delete mode 100644 src/sections/1_new_service.php (limited to 'src/sections/1_new_service.php') diff --git a/src/sections/1_new_service.php b/src/sections/1_new_service.php deleted file mode 100644 index 6f5a72c..0000000 --- a/src/sections/1_new_service.php +++ /dev/null @@ -1,209 +0,0 @@ -get()); - if($choix_niv2 === '') - { - echo "debug: annulation menu enregistrement\n"; - return 0; // menu principal - } - - $Presta = new Prestations($Client->getID()); - - // détail de la prestation - // calendrier - étape 1/3 - $Date = new Dates(exec($Calendrier->get())); // exec() renvoie soit une chaîne soit un false - if($Date->getDate() == '') // on n'a pas cliqué sur "annuler" - { - echo "debug: annulation à la saisie d'une date\n"; - return 0; // menu principal - } - - $Presta->setDate($Date->getTimestamp()); // un entier pour la BDD - - switch($choix_niv2) - { - // formulaire - étape 2/3 - //~ case ZenitySetup::$menu_enregistrement_entrees[0]: // "Devis" - //~ $PrestaDetails = new DevisFactures('devis'); - //~ $Presta->setTypePresta('devis'); - //~ $input = exec($FormulaireDevis->get()); - //~ break; - case ZenitySetup::$menu_enregistrement_entrees[0]: // "Facture" - $PrestaDetails = 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[1]: // "CESU" - $PrestaDetails = new CESU(); - $Presta->setTypePresta('cesu'); - $input = exec($FormulaireCesu->get()); - break; - case ZenitySetup::$menu_enregistrement_entrees[2]: // "Location" - $PrestaDetails = new Locations(); - $Presta->setTypePresta('location'); - $input = exec($FormulaireLocation->get()); - break; - case ZenitySetup::$menu_enregistrement_entrees[3]: // "Prestation non vendue" - $Presta->setTypePresta('non_vendue'); - break; - default: // inutile normallement, cas déjà géré avant - echo "debug: sortie du menu enregistrement incorrect\n"; - return 0; - } - - $Presta->makeCodePresta($Date, $Client->getCodeClient()); // d'un objet à l'autre - - if($choix_niv2 != ZenitySetup::$menu_enregistrement_entrees[3]) // si presta non vendue, saut étape 3/3 - { - if($input == '') // annulation - { - echo "debug: annulation lors de l'enregistrement des détails de la prestation\n"; - return 0; - } - elseif(isset($PrestaDetails) && !$PrestaDetails->hydrateFromForm($input, $Presta)) // echec de l'hydratation - { - 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 == '') - { - 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; - //~ } - $Presta->setCommentaires($input); - unset($input); - - $Presta->create(); - $Presta->setID(); // sans paramètre, exécute un $this->db->lastInsertId() - - if(isset($PrestaDetails)) // presta non vendue - { - $PrestaDetails->setIDPresta($Presta->getID()); // d'un objet à l'autre - $PrestaDetails->create(); - $PrestaDetails->setID(); // sans paramètre, exécute un $this->db->lastInsertId() - } - - - // -- partie 3: LaTeX -- - - //makeLatexAndPdfDocuments($Client, $Presta, $PrestaDetails); - // factoriser tout ça - /* plusieurs parties: - * - une fonction ou on crée et manipule les objets (une classe par type de document) - * - manipulation des données - * - chemins et noms de fichiers - * - insertion des variables - * - écriture du fichier (+ dossier si nécessaire) - */ - // et pour bien faire ajouter aussi une interface - - // fabrique d'objets (sans connaître les noms des classes) - $EnveloppeRecto = Latex::makeLatexSubClass('enveloppe_recto'); - $EnveloppeVerso = Latex::makeLatexSubClass('enveloppe_verso'); - $DocumentPresta = Latex::makeLatexSubClass($Presta->getTypePresta()); // $type = facture, devis, location - - // génération du latex - $EnveloppeRecto->setData($Client); - $EnveloppeRecto->setFileName($Client->getCodeClient() . '.tex'); - $EnveloppeRecto->setLatexPath(Config::$latex_path . 'enveloppes_recto/'); - $EnveloppeRecto->setPdfPath(Config::$pdf_path . 'enveloppes_recto/'); - $EnveloppeRecto->spacesInPostCode(); - $EnveloppeRecto->makeLatex(); - - $EnveloppeVerso->setFileName('enveloppe_verso.tex'); - $EnveloppeVerso->setLatexPath(Config::$latex_path); - $EnveloppeVerso->setPdfPath(Config::$pdf_path); - $EnveloppeVerso->makeLatex(); - - $DocumentPresta->setData($Client); - $DocumentPresta->setData($Presta); - $DocumentPresta->setData($PrestaDetails); - $DocumentPresta->makeDateInstance($Presta->getDate()); // paramètre = int - $DocumentPresta->setFileName($Presta->getCodePresta() . '.tex'); - $DocumentPresta->setLatexPath(Config::$latex_path . $DocumentPresta->getYear() . '/'); - $DocumentPresta->setPdfPath(Config::$pdf_path . $DocumentPresta->getYear() . '/'); - $DocumentPresta->makeLatex(); - - // création des fichiers - makeFolder($EnveloppeRecto->getLatexPath()); - makeFolder($EnveloppeRecto->getPdfPath()); - makeFile($EnveloppeRecto->getLatexPath(), $EnveloppeRecto->getFileName(), $EnveloppeRecto->getLatex()); - latexToPdf($EnveloppeRecto->getLatexPath(), $EnveloppeRecto->getFileName(), $EnveloppeRecto->getPdfPath()); - - makeFile($EnveloppeVerso->getLatexPath(), $EnveloppeVerso->getFileName(), $EnveloppeVerso->getLatex()); - latexToPdf($EnveloppeVerso->getLatexPath(), $EnveloppeVerso->getFileName(), $EnveloppeVerso->getPdfPath()); - - makeFolder($DocumentPresta->getLatexPath()); - makeFolder($DocumentPresta->getPdfPath()); - makeFile($DocumentPresta->getLatexPath(), $DocumentPresta->getFileName(), $DocumentPresta->getLatex()); - latexToPdf($DocumentPresta->getLatexPath(), $DocumentPresta->getFileName(), $DocumentPresta->getPdfPath()); - - - // -- partie 4: récapitulatif -- - - // tableau récaptilatif - // ZenityList - - // 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"'); - - - // -- partie 5: on fait quoi maintenant -- - - // possibilité de modification - // zenityQuestion - //~ if(exec($QuestionModifierPrestation->get()) == '0') - //~ { - //~ return 3; // section "Modifier un enregistrement" - //~ } - //~ else - //~ { - //~ return 0; // menu principal - //~ } - return 0; // menu principal -} -- cgit v1.2.3