table = strtolower(__CLASS__); //~ } //~ public function setIdFromLastInsertID() // à faire juste après l'écriture d'une nouvelle entrée //~ { //~ $this->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; } } }