From a4d88fd1913758cc95b395eefcf5e9d730450382 Mon Sep 17 00:00:00 2001 From: polo Date: Sat, 23 Dec 2023 10:00:24 +0100 Subject: =?UTF-8?q?devis=20payant,=20cr=C3=A9er=20devis=20depuis=20facture?= =?UTF-8?q?,=20changement=20dans=20getIDsByIdClient(),=20suppression=20d?= =?UTF-8?q?=C3=A9pendance=20paquet=20latex=20"ulem",=20(string)=20dans=20s?= =?UTF-8?q?etTelephone()?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- src/sections/2_service.php | 118 ++++++++++++++++++++++++--------------------- 1 file changed, 62 insertions(+), 56 deletions(-) (limited to 'src/sections/2_service.php') diff --git a/src/sections/2_service.php b/src/sections/2_service.php index 1d58606..9683ef9 100644 --- a/src/sections/2_service.php +++ b/src/sections/2_service.php @@ -8,13 +8,14 @@ function newService($Client): array // $Client est un Client ou null // fenêtres $MenuEnregistrement = new ZenityList(ZenitySetup::$menu_enregistrement_text, ZenitySetup::$menu_enregistrement_entrees); $Calendrier = new ZenityCalendar(ZenitySetup::$calendar['section2']); - $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); + $FormulaireDevis = new ZenityForms(ZenitySetup::$formulaire['text'], ZenitySetup::$formulaire['devis_entrees']); + $FormulaireFacture = new ZenityForms(ZenitySetup::$formulaire['text'], ZenitySetup::$formulaire['facture_entrees']); + $FormulaireFactureReduit = new ZenityForms(ZenitySetup::$formulaire['text'], ZenitySetup::$formulaire['facture_entrees_reduit']); + $FormulaireCesu = new ZenityForms(ZenitySetup::$formulaire['text'], ZenitySetup::$formulaire['cesu_entrees']); + $FormulaireLocation = new ZenityForms(ZenitySetup::$formulaire['text'], ZenitySetup::$formulaire['location_entrees']); $CommentairePrestation = new ZenityEntry(ZenitySetup::$commentaire_prestation_text); //$Recapitulatif = new ZenityList(ZenitySetup::$recapitulatif_text, ZenitySetup::$recapitulatif_entrees); // tableau à multiples colonnes - $FinSection2 = new ZenityList(ZenitySetup::$fin_section_2_text, ZenitySetup::$fin_section_2_entrees); + $FinSection2 = new ZenityList(ZenitySetup::$fin_section_2['text'], ZenitySetup::$fin_section_2['entrees']); // -- partie 1: le client -- @@ -57,44 +58,38 @@ function newService($Client): array // $Client est un Client ou null case ZenitySetup::$menu_enregistrement_entrees[0]: // "Devis" $PrestaDetails = new DevisFactures('devis'); $Presta->setTypePresta('devis'); - $input = exec($FormulaireDevis->get()); + $answers = exec($FormulaireDevis->get()); break; case ZenitySetup::$menu_enregistrement_entrees[1]: // "Facture" + $PrestaDetails = new DevisFactures('factures'); // attention! type "facture" mais table "factures" + $Presta->setTypePresta('facture'); + $answers = exec($FormulaireFacture->get()); + break; + case ZenitySetup::$menu_enregistrement_entrees[2]: // "Facture à partir d'un devis" + // recherche du devis + $Quotation = getServices($Client, 'devis'); // rechercher un devis, type 'devis' spécifié pour $Presta->getIDsByIdClient() + if(!is_object($Quotation) || get_class($Quotation) != 'Prestations' || $Quotation->getTypePresta() != 'devis') + { + echo "debug: annulation sélection client\n"; + return [2, $Client]; // menu précédent + } + $QuotationDetails = new DevisFactures('devis'); + // facture: objet vide et formulaire $PrestaDetails = new DevisFactures('factures'); $Presta->setTypePresta('facture'); - $input =exec($FormulaireFacture->get()); + $answers = exec($FormulaireFactureReduit->get()); + //$answers = '' + answers[0], answers[1], answers[2], answers[3], '', '', '', '', '', answers[4]; + //var_dump($answers); break; - - //~ case ZenitySetup::$menu_enregistrement_entrees[2]: // "Facture à partir d'un devis" - //~ $PrestaDetails = new DevisFactures('facture'); - //~ $Presta->setTypePresta('facture'); - // 1 choix d'un devis - //makeObjectService(); // liste les devis existants pour ce client - // - // 2 hydratation - // - // 3 préremplissage du formulaire - //$FormulaireFacture->set($Data) - // - // et plus loin: - // 4 édition de la facture - //$input = exec($FormulaireFacture->get()); - // - // 5 hydratation avec les changements - // - //echo $FormulaireFacture->get() . "\n"; - //~ $input = exec($FormulaireFacture->get()); - //~ break; - case ZenitySetup::$menu_enregistrement_entrees[3]: // "CESU" $PrestaDetails = new CESU(); $Presta->setTypePresta('cesu'); - $input = exec($FormulaireCesu->get()); + $answers = exec($FormulaireCesu->get()); break; case ZenitySetup::$menu_enregistrement_entrees[4]: // "Location" $PrestaDetails = new Locations(); $Presta->setTypePresta('location'); - $input = exec($FormulaireLocation->get()); + $answers = exec($FormulaireLocation->get()); break; case ZenitySetup::$menu_enregistrement_entrees[5]: // "Prestation non vendue" $Presta->setTypePresta('non_vendue'); @@ -106,28 +101,12 @@ function newService($Client): array // $Client est un Client ou null $Presta->makeCodePresta($Date, $Client->getCodeClient()); // d'un objet à l'autre - // hydratation ou saut étape 3/3 si presta non vendu - if($choix_niv2 != ZenitySetup::$menu_enregistrement_entrees[5]) - { - if($input == '') // annulation - { - echo "debug: annulation lors de l'enregistrement des détails de la prestation\n"; - return [0, null]; - } - 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, null]; - } - unset($input); - } - // commentaire - étape 3/3 - $input = exec($CommentairePrestation->get()); - if($input == '') + $comment = exec($CommentairePrestation->get()); + if($comment == '') { echo "debug: pas de commentaire saisi\n"; - // on n'interrompt pas le script et on enregistre dans tous les cas (annulatation, chaîne vide) + // on n'interrompt pas le script et on enregistre dans tous les cas (annulatation comprise) } // 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 () @@ -140,13 +119,39 @@ function newService($Client): array // $Client est un Client ou null //~ echo "debug: annulation à la saisie d'un commentaire\n"; //~ return 0; //~ } - $Presta->setCommentaires($input); - unset($input); + $Presta->setCommentaires($comment); + + // hydratation d'une facture à partir d'un devis + if($choix_niv2 === ZenitySetup::$menu_enregistrement_entrees[2]) // cas: facture à partir d'un devis + { + // devis retrouvé ($Quotation est déjà hydraté) + $QuotationDetails->setIDPresta($Quotation->getID()); + $QuotationDetails->hydrate($QuotationDetails->getDetailsByIdPresta()); + + // facture avec le devis + $QuotationDetails->hydrateReceiptWithQuotation($PrestaDetails); + } + + // hydratation avec la saisie du formulaire + if($choix_niv2 != ZenitySetup::$menu_enregistrement_entrees[5]) // cas: tous les cas sauf presta non vendue + { + if($answers == '') // annulation + { + echo "debug: annulation lors de l'enregistrement des détails de la prestation\n"; + return [0, null]; + } + elseif(isset($PrestaDetails) && !$PrestaDetails->hydrateFromForm($answers, $Presta)) // echec de l'hydratation + { + echo "debug: erreur de hydrateFromForm()\n"; // messages d'erreur à mettre ici ou dans hydrateFromForm()? + return [0, null]; + } + } + // mise à jour base de données $Presta->create(); $Presta->setID(); // sans paramètre, exécute un $this->db->lastInsertId() - if(isset($PrestaDetails)) // presta non vendue + if(isset($PrestaDetails)) // presta vendue { $PrestaDetails->setIDPresta($Presta->getID()); // d'un objet à l'autre $PrestaDetails->create(); @@ -210,18 +215,19 @@ function newService($Client): array // $Client est un Client ou null //~ $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"'); + // ? modifications avec le menu de la section 3 obtenu avec makeModifyCustomerWindow() // -- partie 5: on fait quoi maintenant -- $choix_niv2 = exec($FinSection2->get()); - if($choix_niv2 === ZenitySetup::$fin_section_2_entrees[0]) + if($choix_niv2 === ZenitySetup::$fin_section_2['entrees'][0]) // afficher le document { return [4, null]; // section 4: getDocument() } - elseif($choix_niv2 === ZenitySetup::$fin_section_2_entrees[1]) + elseif($choix_niv2 === ZenitySetup::$fin_section_2['entrees'][1]) // modifier les informations { return [3, $Client]; // section 3: modifyData() } - elseif($choix_niv2 === ZenitySetup::$fin_section_2_entrees[2]) + elseif($choix_niv2 === ZenitySetup::$fin_section_2['entrees'][2]) // enregistrer une autre prestation { return [2, null]; // relancer section 2: newService() } -- cgit v1.2.3