From 945af9fda5146405ab9903d4d268bcb2fe95da25 Mon Sep 17 00:00:00 2001 From: polo Date: Tue, 10 Jan 2023 13:08:54 +0100 Subject: enregistrement section 1 --- src/model/traits.php | 83 +++++++++++++++++++++++++++++++++++++++++++++++++++- 1 file changed, 82 insertions(+), 1 deletion(-) (limited to 'src/model/traits.php') diff --git a/src/model/traits.php b/src/model/traits.php index 3d446c1..41f1c35 100644 --- a/src/model/traits.php +++ b/src/model/traits.php @@ -1,7 +1,9 @@ db = parent::getInstance(); //~ $this->ID = $this->db->lastInsertId(); // méthode de PDO //~ } + + public function setID(int $value = 0) + { + if($value === 0) + { + $this->ID = $this->db->lastInsertId(); // méthode de PDO + } + else + { + $this->ID = $value; + } + return($this); + } + + function hydrateFromForm(string $data_string, Object $Presta = NULL): bool // quand l'objet est $DetailsPresta, on hydrate aussi $Presta + { + //~ $tableSize = count(StructTablesDB::$structureOfTables[$this->getTable()]); // int + + if($data_string !== '') + { + $data_array = explode('|', $data_string); // array + //~ var_dump($data_array); + //~ if(count($data_array) === $tableSize - 1) // nombre de champs sauf ID qui est auto-incrémenté automatiquement + //~ { + //~ var_dump($this->getTable()); + //~ var_dump($data_array); + $check = false; + switch($this->getTable()) + { + case 'clients'; + if($data_array[0] == '') + { + echo "debug: données insuffisantes, le nom du client doit au minimum être renseigné\n"; + return false; + } + else + { + $check = $this->hydrate(['prenom_nom' => $data_array[0], 'code_client' => $data_array[1], 'adresse' => $data_array[2], 'telephone' => $data_array[3], 'courriel' => $data_array[4], 'commentaires' => $data_array[5]]); + } + break; + case 'prestations'; // inutilisé + break; + case 'devis'; + $check = $Presta->hydrate(['mode_paiement' => $data_array[11]]); + if($check) + { + $check = $this->hydrate(['taches' => $data_array[0], 'machine' => $data_array[1], 'OS' => $data_array[2], 'donnees' => $data_array[3], 'cles_licences' => $data_array[4], 'temps' => $data_array[5], 'total_main_d_oeuvre' => $data_array[6], 'pieces' => $data_array[7], 'total_pieces' => $data_array[8], 'deplacement' => $data_array[9], 'total_HT' => $data_array[10], + 'validite_devis' => $data_array[12], 'signature_devis' => $data_array[13]]); + } + break; + case 'factures'; + $check = $Presta->hydrate(['mode_paiement' => $data_array[11]]); + if($check) + { + $check = $this->hydrate(['taches' => $data_array[0], 'machine' => $data_array[1], 'OS' => $data_array[2], 'donnees' => $data_array[3], 'cles_licences' => $data_array[4], 'temps' => $data_array[5], 'total_main_d_oeuvre' => $data_array[6], 'pieces' => $data_array[7], 'total_pieces' => $data_array[8], 'deplacement' => $data_array[9], 'total_HT' => $data_array[10]]); + } + break; + case 'cesu'; + break; + case 'locations'; + break; + default: // inutilisé + echo "debug: table inconnue hydrateFromForm()"; + return false; + } + return $check; + //~ } + //~ else + //~ { + //~ echo "debug: mauvais tableau, il doit avoir " . $tableSize - 1 . " cases\n"; // ou -3 pour les factures + //~ return false; + //~ } + } + else + { + echo "debug: annulation lors du formulaire\n"; + return false; + } + } } -- cgit v1.2.3