From 78439b6a178e238ab8fb73d25567a85df78d6681 Mon Sep 17 00:00:00 2001 From: polo Date: Sun, 3 Sep 2023 02:45:17 +0200 Subject: section 3 prestas non vendues --- data/dev.sqlite | Bin 36864 -> 36864 bytes src/model/Model.php | 4 ++-- src/model/Prestations.php | 2 +- src/sections/3_modify_data.php | 48 +++++++++++++++++++++++++++-------------- src/view/ZenitySetup.php | 8 +++---- 5 files changed, 39 insertions(+), 23 deletions(-) diff --git a/data/dev.sqlite b/data/dev.sqlite index 6d55fd5..3762c69 100644 Binary files a/data/dev.sqlite and b/data/dev.sqlite differ diff --git a/src/model/Model.php b/src/model/Model.php index 4c4a80c..07826af 100644 --- a/src/model/Model.php +++ b/src/model/Model.php @@ -183,7 +183,7 @@ abstract class Model extends DB return($this->execQuery('SELECT * FROM ' . $this->table)->fetchAll()); // fonctionne aussi sans le point virgule dans le SQL!! } - public function findById() // obtenir une entrée avec son ID + public function findById() // obtenir une entrée grace à son ID { return($this->execQuery('SELECT * FROM ' . $this->table . ' WHERE id = ' . $this->ID)->fetch()); } @@ -191,7 +191,7 @@ abstract class Model extends DB { if($this->table == 'prestations') { - // à l'occaz, rendre abstraite la classe Prestations + // à l'occaz, créer une classe NonVendue et rendre Prestations abstraite echo 'erreur: ne pas appeler Model::getDetailsByIdPresta() si la table ciblée est "prestations".'; return 0; } diff --git a/src/model/Prestations.php b/src/model/Prestations.php index e9ba7a1..54ad4b7 100644 --- a/src/model/Prestations.php +++ b/src/model/Prestations.php @@ -59,7 +59,7 @@ class Prestations extends Model "Numéro prestation:" => end($code_presta_tableau), // dernière case "Date:" => $Date->getDate(), //"Type de Presta:" => $this->type_presta, // choix impossible pour le moment - "Mode de paiement:" => $this->mode_paiement, + "Mode de paiement:" => $this->mode_paiement, // non pertinent pour un devis "Commentaires:" => $this->commentaires]; } public function set(string $entry, string $input) diff --git a/src/sections/3_modify_data.php b/src/sections/3_modify_data.php index 1f48870..5da7ed9 100644 --- a/src/sections/3_modify_data.php +++ b/src/sections/3_modify_data.php @@ -88,7 +88,9 @@ function modifyData($Client): array echo "debug: annulation sélection client\n"; return [3, $Client]; // menu précédent } - switch($Presta->getTypePresta()) + + $type = $Presta->getTypePresta(); + switch($type) { case 'facture': $PrestaDetails = new DevisFactures('factures'); @@ -103,16 +105,21 @@ function modifyData($Client): array case 'location': $PrestaDetails = new Locations(); break; + case 'non_vendue': + $PrestaDetails = null; + break; + } + if($type != 'non_vendue') + { + $PrestaDetails->setIDPresta($Presta->getID()); + $PrestaDetails->hydrate($PrestaDetails->getDetailsByIdPresta()); } - $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 @@ -122,11 +129,13 @@ function modifyData($Client): array } elseif($choix_niv3 === 'Date:') { + // fenêtre + $Calendrier = new ZenityCalendar(ZenitySetup::$calendar['section3']); + $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" + if($Date->getDate() == '') // clic sur "annuler", touche "échap" { echo "debug: annulation à la saisie d'une date\n"; - //return [3, $Client]; // menu principal } else { @@ -135,10 +144,13 @@ function modifyData($Client): array $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); + if($type === 'devis' || $type === 'facture' || $type === 'location') + { + $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 @@ -156,17 +168,21 @@ function modifyData($Client): array //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->set($choix_niv3, $input); $Presta->update(); - $PrestaDetails->update(); + + if($type != 'non_vendue') + { + $PrestaDetails->set($choix_niv3, $input); + $PrestaDetails->update(); + } // mettre à jour les documents - if($Presta->getTypePresta() === 'devis' || $Presta->getTypePresta() === 'facture' || $Presta->getTypePresta() === 'location') + //$type = $Presta->getTypePresta(); + if($type === 'devis' || $type === 'facture' || $type === 'location') { - $DocumentPresta = Latex::makeInstance($Presta->getTypePresta()); // $type = facture, devis, location + $DocumentPresta = Latex::makeInstance($type); $DocumentPresta->setData($Client)->setData($Presta)->setData($PrestaDetails); $DocumentPresta->makeLatex(); makeTexAndPdf($DocumentPresta); diff --git a/src/view/ZenitySetup.php b/src/view/ZenitySetup.php index cf3ed11..d2b5796 100644 --- a/src/view/ZenitySetup.php +++ b/src/view/ZenitySetup.php @@ -33,10 +33,10 @@ class ZenitySetup 'section3' => 'Choisir une nouvelle date']; static public $formulaire_text = 'Nouvelle prestation 2/3 - Détail des travaux'; - static public $formulaire_devis_entrees = ["Tâches effectuées:", "Total main d\'oeuvre (euros):", "Détail des pièces:", "Total pièces (euros):", "Déplacement (euros)", "Total HT (euros):", "Delai de livraison", "Durée de validite du devis:"]; - static public $formulaire_facture_entrees = ["Tâches effectuées:", "Modèle du PC:", "OS:", "Données sauvegardées:", "Clés d\'activation:", "Total main d\'oeuvre (euros):", "Détail des pièces:", "Total pièces (euros):", "Déplacement (euros)", "Total HT (euros):", "Mode de paiement"]; - static public $formulaire_cesu_entrees = ["Tâches effectuées:", "Duree de travail:", "Salaire net", "Mode de paiement"]; // en fait je pourrais ajouter plein d'autres trucs - static public $formulaire_location_entrees = ["Désignation du bien", "Modèle, numéro de série, description:", "Valeur", "État des lieux du début:", "État des lieux de fin:", "Durée de la location en mois:", "Loyer mensuel:", "Nombre de loyers déjà payés:", "Montant du chèque de caution:"]; + static public $formulaire_devis_entrees = ["Tâches effectuées:", "Total main d\'oeuvre (euros):", "Détail des pièces:", "Total pièces (euros):", "Déplacement (euros):", "Total HT (euros):", "Delai de livraison", "Durée de validite du devis:"]; + static public $formulaire_facture_entrees = ["Tâches effectuées:", "Modèle du PC:", "OS:", "Données sauvegardées:", "Clés d\'activation:", "Total main d\'oeuvre (euros):", "Détail des pièces:", "Total pièces (euros):", "Déplacement (euros)", "Total HT (euros):", "Mode de paiement:"]; + static public $formulaire_cesu_entrees = ["Tâches effectuées:", "Duree de travail:", "Salaire net:", "Mode de paiement:"]; // en fait je pourrais ajouter plein d'autres trucs + static public $formulaire_location_entrees = ["Désignation du bien:", "Modèle, numéro de série, description:", "Valeur:", "État des lieux du début:", "État des lieux de fin:", "Durée de la location en mois:", "Loyer mensuel:", "Nombre de loyers déjà payés:", "Montant du chèque de caution:"]; static public $commentaire_prestation_text = 'Nouvelle prestation 3/3 - Commentaires'; static public $modification_client = ['text' => 'Modifier une information concernant un client', -- cgit v1.2.3