From 747674b450d6840ce9bd9aecd765cf31445ef8d3 Mon Sep 17 00:00:00 2001 From: polo Date: Sat, 22 Jul 2023 12:29:47 +0200 Subject: navigation entre sections, boucle principale, client ou prospect --- src/model/Clients.php | 6 ++++++ src/model/Model.php | 13 +++++++++---- src/model/StructTablesDB.php | 2 +- src/model/traits.php | 2 +- 4 files changed, 17 insertions(+), 6 deletions(-) (limited to 'src/model') diff --git a/src/model/Clients.php b/src/model/Clients.php index d9dd28d..f36acc1 100644 --- a/src/model/Clients.php +++ b/src/model/Clients.php @@ -13,6 +13,7 @@ class Clients extends Model protected $telephone; protected $courriel; protected $apropos; + protected $type = 'prospect'; //~ use ModelChildren; @@ -81,6 +82,11 @@ class Clients extends Model $this->apropos = (string) $value; return $this; } + public function setType($value) + { + $this->type = (string) $value; + return $this; + } public function findByKeywords(array $keywords, string $field): array // n'hydrate pas les variables, on doit choisir un client et hydrater ensuite diff --git a/src/model/Model.php b/src/model/Model.php index 17d1292..3fb3bdf 100644 --- a/src/model/Model.php +++ b/src/model/Model.php @@ -43,7 +43,7 @@ abstract class Model extends DB foreach($data as $key => $value) { // nom du setter - // nom_du_champ devient setNomDuChamp + // nom_propriete => setPropriete // on sépare les mots par des espaces, ucwords met la première lettre de chaque mot en majuscule, puis on supprime les espaces $setter_name = 'set' . str_replace(' ', '', ucwords(str_replace('_', ' ', $key))); // ucwords: première lettre de chaque mot en majuscule if(method_exists($this, $setter_name)) @@ -207,7 +207,7 @@ abstract class Model extends DB // update UPDATE - public function update(int $id) + public function update(int $id) // utiliser plutôt $this->ID ? { $fields = []; $values = []; @@ -219,13 +219,18 @@ abstract class Model extends DB $values[] = $value; } } - $values[] = $id; + $values[] = $id; // cette syntaxe ajoute une valeur au tableau $field_list = implode(', ', $fields); - // UPDATE annonces SET titre = ?, description = ?, actif = ? WHERE id= ? + // UPDATE annonces SET titre = ?, description = ?, actif = ? WHERE id = ? return($this->execQuery('UPDATE ' . $this->table . ' SET ' . $field_list . ' WHERE id = ?', $values)); } + public function updateOneValue(string $field, $value) + { + return($this->execQuery('UPDATE ' . $this->table . ' SET ' . $field . ' = ? WHERE id = ?', [$value, $this->ID])); + } + // delete DELETE protected function delete(int $id) diff --git a/src/model/StructTablesDB.php b/src/model/StructTablesDB.php index 75a4383..769d502 100644 --- a/src/model/StructTablesDB.php +++ b/src/model/StructTablesDB.php @@ -9,7 +9,7 @@ class StructTablesDB static public $structureOfTables = [ // la table prestations est liée à la table clients // les tables devis_factures, cesu et locations sont liées à la table prestations - 'clients' => ['ID' => 'INTEGER', 'prenom_nom' => 'TEXT', 'code_client' => 'TEXT', 'adresse' => 'TEXT', 'code_postal' => 'TEXT', 'ville' => 'TEXT', 'telephone' => 'TEXT', 'courriel' => 'TEXT', 'apropos' => 'TEXT'], + 'clients' => ['ID' => 'INTEGER', 'prenom_nom' => 'TEXT', 'code_client' => 'TEXT', 'adresse' => 'TEXT', 'code_postal' => 'TEXT', 'ville' => 'TEXT', 'telephone' => 'TEXT', 'courriel' => 'TEXT', 'apropos' => 'TEXT', 'type' => 'TEXT DEFAULT prospect'], 'prestations' => ['ID' => 'INTEGER', 'ID_client' => 'INTEGER', 'code_presta' => 'TEXT', 'date' => 'INTEGER', 'type_presta' => 'TEXT', 'mode_paiement' => 'TEXT', 'commentaires' => 'TEXT'], 'devis' => ['ID' => 'INTEGER', 'ID_presta' => 'INTEGER', 'taches' => 'TEXT', 'total_main_d_oeuvre' => 'REAL', 'pieces' => 'TEXT', 'total_pieces' => 'REAL', 'deplacement' => 'REAL', 'total_HT' => 'REAL', 'delai_livraison' => 'TEXT', 'validite_devis' => 'TEXT', 'signature_devis' => 'TEXT'], 'factures' => ['ID' => 'INTEGER', 'ID_presta' => 'INTEGER', 'taches' => 'TEXT', 'machine' => 'TEXT', 'OS' => 'TEXT', 'donnees' => 'TEXT', 'cles_licences' => 'TEXT', 'total_main_d_oeuvre' => 'REAL', 'pieces' => 'TEXT', 'total_pieces' => 'REAL', 'deplacement' => 'REAL', 'total_HT' => 'REAL'], diff --git a/src/model/traits.php b/src/model/traits.php index 03121be..88451d9 100644 --- a/src/model/traits.php +++ b/src/model/traits.php @@ -1,7 +1,7 @@