From 45f1b99a1060ee43deb6055faef1f8b16b5d80a2 Mon Sep 17 00:00:00 2001 From: polo Date: Fri, 1 Sep 2023 12:00:23 +0200 Subject: =?UTF-8?q?section=203=20bient=C3=B4t=20termin=C3=A9e?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- src/sections/3_modify_data.php | 157 +++++++++++++++++++++-------------------- 1 file changed, 82 insertions(+), 75 deletions(-) (limited to 'src/sections/3_modify_data.php') diff --git a/src/sections/3_modify_data.php b/src/sections/3_modify_data.php index e16a58f..71b977a 100644 --- a/src/sections/3_modify_data.php +++ b/src/sections/3_modify_data.php @@ -3,6 +3,8 @@ // // -- SECTION 3: Modifier un client, un prospect, une prestation, un devis -- +require('3-1_windows.php'); + function modifyData($Client): array { // -- partie 1: rechercher un client -- @@ -19,38 +21,16 @@ function modifyData($Client): array // -- partie 2: modifier un client -- - // fenêtre $ModificationClient - $ModificationClientMenu = new ZenityList(ZenitySetup::$modification_client['text'], []); - $entrees = []; - $i = 0; - $client_data = $Client->getAllWithWindowFields(); - //var_dump($client_data); - foreach($client_data as $key => $value) - { - $entrees[$i][] = $key; - $entrees[$i][] = $value; - $i++; - } - $entrees[$i][] = ZenitySetup::$modification_client['service']; - $entrees[$i][] = ''; - $i++; - $entrees[$i][] = ZenitySetup::$modification_client['return']; - $entrees[$i][] = ''; - $ModificationClientMenu->setListRows($entrees, 2, 2.5); + // fenêtre + $ModificationClientMenu = makeModifyCustomerWindow($Client); - // modifier une valeur $choix_niv2 = exec($ModificationClientMenu->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 === ZenitySetup::$modification_client['return']) // annuler - { - echo "choix: retour au menu principal\n"; - return [0, null]; // menu principal - } - elseif($choix_niv2 === "Client ou Prospect?") // modifier le client + 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); @@ -72,18 +52,21 @@ function modifyData($Client): array $Client->update(); return [3, $Client]; // menu précédent } - elseif(is_string($choix_niv2) && $choix_niv2 != '') // modifier le client + 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->getSetterAndSet($choix_niv2, $input); + $Client->set($choix_niv2, $input); $Client->update(); - // mettre à jour les documents - + // mettre à jour les documents (il faudrait modifier tous les documents!!) + $EnveloppeRecto = Latex::makeInstance('enveloppe_recto'); + $EnveloppeRecto->setData($Client); + $EnveloppeRecto->makeLatex(); + makeTexAndPdf($EnveloppeRecto); } else { @@ -105,25 +88,6 @@ function modifyData($Client): array echo "debug: annulation sélection client\n"; return [3, $Client]; // menu précédent } - - - // -- partie 4: modifier une prestation -- - - // fenêtre $ModificationPresta - $ModificationPrestaMenu = new ZenityList(ZenitySetup::$modification_presta['text'], []); - $entrees = []; - $i = 0; - - $presta_data = $Presta->getAllWithWindowFields(); - var_dump($presta_data); - foreach($presta_data as $key => $value) - { - $entrees[$i][] = $key; - $entrees[$i][] = $value; - $i++; - } - - // infos des sous-tables 'facture', 'devis', etc switch($Presta->getTypePresta()) { case 'facture': @@ -140,38 +104,81 @@ function modifyData($Client): array $PrestaDetails = new Locations(); break; } - if(isset($PrestaDetails)) + $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 { - $PrestaDetails->setIDPresta($Presta->getID()); - $PrestaDetails->hydrate($PrestaDetails->getDetailsByIdPresta()); - $presta_data = $PrestaDetails->getAllWithWindowFields(); - var_dump($presta_data); - foreach($presta_data as $key => $value) + echo "choix: modifier" . $choix_niv3 . "\n"; + $ModificationPrestaForm = new ZenityEntry($choix_niv3); + $input = exec($ModificationPrestaForm->get()); + if(is_string($input) && $input != '') { - $entrees[$i][] = $key; - $entrees[$i][] = $value; - $i++; + $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 + $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 } - - if($Presta->getTypePresta() === 'devis') + else // annuler { - $entrees[$i][] = ZenitySetup::$modification_presta['devis_facture']; // option changer le devis en facture - $entrees[$i][] = ''; - $i++; + echo "annulation: retour au menu précédent\n"; + return [3, $Client]; // menu précédent } - $entrees[$i][] = ZenitySetup::$modification_presta['service']; - $entrees[$i][] = ''; - $i++; - $entrees[$i][] = ZenitySetup::$modification_presta['return']; - $entrees[$i][] = ''; - $ModificationPrestaMenu->setListRows($entrees, 2, 2.5); - - // modifier une valeur - $choix_niv3 = exec($ModificationPrestaMenu->get()); - var_dump($choix_niv3); - - // si changement de type de prestation autre que de devis à facture, ça devient compliqué! - return [0, null]; // menu principal + //return [0, null]; // menu principal } -- cgit v1.2.3