get()); if($choix_niv2 === ZenitySetup::$modification_client['service']) // ne pas modifier le client mais une prestation { echo "choix: modifier une prestation\n"; // on passe à la suite } elseif($choix_niv2 === "Client ou Prospect?") // modifier type de client { echo "choix: modifier" . $choix_niv2 . "\n"; $TypeDeClient = new ZenityList(ZenitySetup::$type_client_text, ZenitySetup::$type_client_entrees); $input = exec($TypeDeClient->get()); if($input === ZenitySetup::$type_client_entrees[0]) { echo "choix: " . $input . "\n"; $Client->setType('client'); } elseif($input === ZenitySetup::$type_client_entrees[1]) { echo "choix: " . $input . "\n"; $Client->setType('prospect'); } else { echo "choix: annulation\n"; } $Client->update(); return [3, $Client]; // menu précédent } elseif(is_string($choix_niv2) && $choix_niv2 != '') // modifier une valeur { echo "choix: modifier" . $choix_niv2 . "\n"; $ModificationClient = new ZenityEntry($choix_niv2); $input = exec($ModificationClient->get()); if(is_string($input) && $input != '') { $Client->set($choix_niv2, $input); $Client->update(); // mettre à jour les documents (il faudrait modifier tous les documents!!) $EnveloppeRecto = Latex::makeInstance('enveloppe_recto'); $EnveloppeRecto->setData($Client); $EnveloppeRecto->makeLatex(); makeTexAndPdf($EnveloppeRecto); } else { echo "choix: annulation\n"; } return [3, $Client]; // menu précédent } else // annuler { echo "annulation: retour au menu principal\n"; return [0, null]; // menu principal } // -- partie 3: rechercher une prestation -- $Presta = getServices($Client); // = 0 ou type "Prestations" if(!is_object($Presta) || !get_class($Presta) == 'Prestations') { echo "debug: annulation sélection client\n"; return [3, $Client]; // menu précédent } switch($Presta->getTypePresta()) { case 'facture': $PrestaDetails = new DevisFactures('factures'); break; case 'devis': $PrestaDetails = new DevisFactures('devis'); break; case 'cesu': $PrestaDetails = new CESU(); break; case 'location': $PrestaDetails = new Locations(); break; } $PrestaDetails->setIDPresta($Presta->getID()); $PrestaDetails->hydrate($PrestaDetails->getDetailsByIdPresta()); // -- partie 4: modifier une prestation -- // fenêtre $ModificationPrestaMenu = makeModifyServiceWindow($Presta, $PrestaDetails); $Calendrier = new ZenityCalendar(ZenitySetup::$calendar['section3']); $choix_niv3 = exec($ModificationPrestaMenu->get()); if($choix_niv3 === ZenitySetup::$modification_presta['devis_facture']) // devis -> facture { echo "choix: changer un devis en facture\n"; return [3, $Client]; // menu "client" } elseif($choix_niv3 === 'Date:') { $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 [3, $Client]; // menu principal } else { // mettre à jour la base de données $Presta->setDate($Date->getTimestamp(), true); // un entier pour la BDD, "true" pour modifier le code_presta $Presta->update(); // mettre à jour les documents $DocumentPresta = Latex::makeInstance($Presta->getTypePresta()); // $type = facture, devis, location $DocumentPresta->setData($Client)->setData($Presta)->setData($PrestaDetails); $DocumentPresta->makeLatex(); makeTexAndPdf($DocumentPresta); } return [3, $Client]; // menu précédent } //~ elseif($choix_niv3 === 'Type de Presta:') // choix impossible pour le moment //~ { //~ echo "choix: Impossible de modifier le type de prestation\n"; //~ return [3, $Client]; // menu "client" //~ } elseif(is_string($choix_niv3) && $choix_niv3 != '') // modifier une valeur { echo "choix: modifier" . $choix_niv3 . "\n"; $ModificationPrestaForm = new ZenityEntry($choix_niv3); $input = exec($ModificationPrestaForm->get()); //if(is_string($input) && $input != '') if(is_string($input)) // chaine vide autorisée { $Presta->set($choix_niv3, $input); $PrestaDetails->set($choix_niv3, $input); // mettre à jour la base de données $Presta->update(); $PrestaDetails->update(); // mettre à jour les documents if($Presta->getTypePresta() === 'devis' || $Presta->getTypePresta() === 'facture' || $Presta->getTypePresta() === 'location') { $DocumentPresta = Latex::makeInstance($Presta->getTypePresta()); // $type = facture, devis, location $DocumentPresta->setData($Client)->setData($Presta)->setData($PrestaDetails); $DocumentPresta->makeLatex(); makeTexAndPdf($DocumentPresta); } } else { echo "choix: annulation\n"; } return [3, $Client]; // menu précédent } else // annuler { echo "annulation: retour au menu précédent\n"; return [3, $Client]; // menu précédent } //return [0, null]; // menu principal }