-<?php\r
-\r
- require_once('protected/required.php');\r
-\r
- class PdoProduitManager extends AbstractPdoManager implements ProduitManager {\r
-\r
- public function createProduit($produit) {\r
-\r
- $query = $this -> pdo -> prepare(\r
- 'INSERT INTO produits (\r
- nom, \r
- exploitant, \r
- reference, \r
- version, \r
- historique\r
- ) VALUES (\r
- :nom, \r
- :exploitant, \r
- :reference, \r
- :version, \r
- :historique\r
- )'\r
- );\r
- $query -> bindValue(':nom', $produit -> getNom());\r
- $query -> bindValue(':exploitant', $produit -> getExploitant());\r
- $query -> bindValue(':reference', $produit -> getReference());\r
- $query -> bindValue(':version', $produit -> getVersion());\r
- $query -> execute();\r
- $query -> closeCursor();\r
-\r
- }\r
-\r
- public function updateProduit($produit) {\r
-\r
- $query = $this -> pdo -> prepare(\r
- 'UPDATE produits \r
- SET nom = :nom, \r
- exploitant = :exploitant, \r
- reference = :reference, \r
- version = :version, \r
- historique = :historique\r
- WHERE id = :id'\r
- );\r
- $query -> bindValue(':id', $produit -> getId());\r
- $query -> bindValue(':nom', $produit -> getNom());\r
- $query -> bindValue(':exploitant', $produit -> getExploitant());\r
- $query -> bindValue(':reference', $produit -> getReference());\r
- $query -> bindValue(':version', $produit -> getVersion());\r
- $query -> bindValue(':historique', $produit -> getHistorique());\r
- $query -> execute();\r
-\r
- }\r
-\r
- public function updateProduitInfos($array) {\r
- $produit = $this -> getProduitByReference($array['reference']);\r
- // TO-DO :\r
- // AJOUT EVENEMENT À L'HISTORIQUE\r
- // DEMANDE DE VALIDATION\r
- // CAS EXPLOITANT\r
- if($array['usager_type'] === "exploitant") {\r
- // RECUPERATION DE L'EXPLOITANT DU PRODUIT\r
- $exploitantManager = new PdoExploitantManager();\r
- $exploitant = $exploitantManager -> getExploitantByReference($produit -> getExploitant());\r
-\r
- // MISE À JOUR DE TOUS LES PRODUITS EN CHARGE DE L'EXPLOITANT\r
- $array['usager_type'] = "client";\r
- $produits_id = $exploitant -> getProduits();\r
- foreach ($produits_id as $produit_id) {\r
- $array['reference'] = $this -> getProduit($produit_id) -> getReference();\r
- $this -> updateProduitInfos($array);\r
- }\r
- // CAS CLIENT\r
- } else if($array['usager_type'] === "client") {\r
- if ($array['produit'] === $produit -> getNom()) {\r
- $query = $this -> pdo -> prepare(\r
- 'UPDATE produits SET version = :version WHERE reference = :reference'\r
- );\r
- $query -> bindValue(':reference', $array['reference']);\r
- $query -> bindValue(':version', $array['version']);\r
- $query -> execute();\r
- } else {\r
- echo "Erreur de nom du produit";\r
- }\r
- }\r
- }\r
-\r
- public function getProduit($id) {\r
-\r
- $query = $this -> pdo -> prepare('SELECT * FROM produits WHERE id = :id');\r
- $query -> bindValue(':id', $id);\r
- $query -> execute();\r
-\r
- $result = $query -> fetch(PDO::FETCH_ASSOC);\r
- $produit = new Produit(\r
- $result['id'], \r
- $result['nom'], \r
- $result['exploitant'], \r
- $result['reference'], \r
- $result['version'],\r
- $result['historique']\r
- );\r
-\r
- $query->closeCursor();\r
-\r
- return $produit;\r
- }\r
-\r
- public function getProduitByReference($reference) {\r
-\r
- $query = $this -> pdo -> prepare('SELECT * FROM produits WHERE reference = :reference');\r
- $query -> bindValue(':reference', $reference);\r
- $query -> execute();\r
-\r
- $result = $query -> fetch(PDO::FETCH_ASSOC);\r
- $produit = new Produit(\r
- $result['id'], \r
- $result['nom'], \r
- $result['exploitant'], \r
- $result['reference'], \r
- $result['version'],\r
- $result['historique']\r
- );\r
-\r
- $query->closeCursor();\r
-\r
- return $produit;\r
- }\r
-\r
- public function getProduits() {\r
-\r
- $query = $this -> pdo -> prepare('SELECT * FROM produits');\r
- $query -> execute();\r
-\r
- $results = $query -> fetchAll(PDO::FETCH_ASSOC);\r
- $produits = array();\r
- foreach ($results as $result) {\r
- $produits[] = new Produit(\r
- $result['id'], \r
- $result['nom'], \r
- $result['exploitant'], \r
- $result['reference'], \r
- $result['version'],\r
- $result['historique']\r
- );\r
- }\r
-\r
- $query->closeCursor();\r
-\r
- return $produits;\r
- }\r
-\r
- public function removeProduit($produit) {\r
-\r
- $query = $this -> pdo -> prepare('DELETE FROM produits WHERE id = :id');\r
- $query -> bindValue('id', $produit -> getId());\r
- $query -> execute();\r
-\r
- }\r
-\r
- }\r
-\r
-?>\r
+<?php
+
+ require_once('protected/required.php');
+
+ class PdoProduitManager extends AbstractPdoManager implements ProduitManager {
+
+ public function createProduit($produit) {
+
+ $query = $this -> pdo -> prepare(
+ 'INSERT INTO produits (nom) VALUES (:nom);'
+ );
+ $query -> bindValue(':nom', $produit -> getNom());
+ $query -> execute();
+ }
+
+ public function updateProduit($produit) {
+
+ $query = $this -> pdo -> prepare(
+ 'UPDATE produits
+ SET nom = :nom
+ WHERE id = :id'
+ );
+ $query -> bindValue(':id', $produit -> getId());
+ $query -> bindValue(':nom', $produit -> getNom());
+ $query -> execute();
+ }
+
+ public function getProduit($id) {
+
+ $query = $this -> pdo -> prepare('SELECT * FROM produits WHERE id = :id');
+ $query -> bindValue(':id', $id);
+ $query -> execute();
+
+ $result = $query -> fetch(PDO::FETCH_ASSOC);
+ $produit = new Produit($result['id'], $result['nom']);
+
+ $query->closeCursor();
+
+ return $produit;
+ }
+
+ public function getProduitByNom($nom) {
+
+ $query = $this -> pdo -> prepare('SELECT * FROM produits WHERE nom = :nom');
+ $query -> bindValue(':nom', $nom);
+ $query -> execute();
+
+ $result = $query -> fetch(PDO::FETCH_ASSOC);
+ $produit = new Produit($result['id'], $result['nom']);
+
+ $query->closeCursor();
+
+ return $produit;
+ }
+
+ public function getProduits() {
+
+ $query = $this -> pdo -> prepare('SELECT * FROM produits');
+ $query -> execute();
+
+ $results = $query -> fetchAll(PDO::FETCH_ASSOC);
+ $produits = array();
+ foreach ($results as $result) {
+ $produits[] = new Produit($result['id'], $result['nom']);
+ }
+
+ $query->closeCursor();
+
+ return $produits;
+ }
+
+ public function getNomsOfProduits() {
+
+ $query = $this -> pdo -> prepare('SELECT nom FROM produits');
+ $query -> execute();
+
+ $results = $query -> fetchAll(PDO::FETCH_ASSOC);
+ $noms = array();
+ foreach ($results as $result) {
+ $noms[] = $result['nom'];
+ }
+
+ $query->closeCursor();
+
+ return $noms;
+ }
+
+ public function removeProduit($produit) {
+
+ $query = $this -> pdo -> prepare('DELETE FROM produits WHERE id = :id');
+ $query -> bindValue('id', $produit -> getId());
+ $query -> execute();
+ }
+
+ }
+
+?>