'non'])] // défaut dans le cas d'un requête SQL ignorant ce champ private string $signature_devis = 'non'; // getters public function getAll(): array { // n'utiliser get_object_vars() qu'avec une entité parce qu'on maîtrise le nombre de propriétés return get_object_vars($this); } public function getAllWithWindowFields(): array { $common_data = parent::getAllWithWindowFields(); return array_merge($common_data, [ "Tâches:" => $this->taches, // JUSTE AJOUTÉ "Total Main d'oeuvre:" => $this->total_main_d_oeuvre, "Pièces:" => $this->pieces, "Total des pièces:" => $this->total_pieces, "Déplacement:" => $this->deplacement, "Prix du devis:" => $this->prix_devis, "Total HT:" => $this->total_HT, "Delai de livraison:" => $this->delai_livraison, "Durée de validité:" => $this->validite_devis, "Devis signé:" => $this->signature_devis]); } // setters public function set(string $entry, string $input): void { $input = $this->cleanSpecialChars($input); // possibilité que $input devienne une chaîne vide switch($entry) { case "Tâches:": $this->setTaches($input); break; case "Total Main d'oeuvre:": $this->setTotalMainDOeuvre($input); break; case "Pièces:": $this->setPieces($input); break; case "Total des pièces:": $this->setTotalPieces($input); break; case "Déplacement:": $this->setDeplacement($input); break; case "Prix du devis:": $this->setPrixDevis($input); break; case "Total HT:": $this->setTotalHT($input); break; case "Delai de livraison:": $this->setDelaiLivraison($input); break; case "Durée de validité:": $this->setValiditedevis($input); break; case "Devis signé:": $this->setSignatureDevis($input); break; default: // gérer les champ dans Prestation parent::set($entry, $input); } } public function setTaches(string $value): Devis { $this->taches = $value; return($this); } public function setTotalMainDOeuvre(string $value): Devis { $value = str_replace(',', '.', $value); $this->total_main_d_oeuvre = (float) $value; // float "nettoie" tous les caractères après le dernier chiffre trouvé (ex: 50€ => 50, abc => 0) return($this); } public function setPieces(string $value): Devis { $this->pieces = $value; return($this); } public function setTotalPieces(string $value): Devis { $value = str_replace(',', '.', $value); $this->total_pieces = (float) $value; return($this); } public function setDeplacement(string $value): Devis { $value = str_replace(',', '.', $value); $this->deplacement = (float) $value; return($this); } public function setTotalHT(string $value): Devis { $value = str_replace(',', '.', $value); $this->total_HT = (float) $value; return($this); } public function setPrixDevis(string $value): Devis { $value = str_replace(',', '.', $value); $this->prix_devis = (float) $value; return($this); } public function setDelaiLivraison(string $value): Devis { $this->delai_livraison = $value; return($this); } public function setValiditedevis(string $value): Devis { $this->validite_devis = $value; return($this); } public function setSignatureDevis(string $value): Devis { $this->signature_devis = $value; return($this); } private function setAll(array $input): void // private? { $this->taches = $input[0]; $this->total_main_d_oeuvre = (float)$input[1]; $this->pieces = $input[2]; $this->total_pieces = (float)$input[3]; $this->deplacement = (float)$input[4]; $this->prix_devis = (float)$input[5]; $this->total_HT = (float)$input[6]; $this->delai_livraison = $input[7]; $this->validite_devis = $input[8]; // $signature_devis est renseigné plus tard en modifiant le devis } public function validateForm(array $data_array): bool { if(count($data_array) === 9){ return true; } else{ echo "erreur de Devis::validateForm(), le tableau \$data_array n'a pas la taille attendue.\n"; return false; } } // à mettre plus tard dans une classe mère public function hydrate(array $data_array): void { //$this->setModePaiement(''); // vaut déjà '' $this->setAll($data_array); } }