/** * @name recherche( $pTypeRecherche, $pTypeCritere, $pCritereRecherche, $pTypeTri, $pCritereTri ) * @param string nom de la table * @param string Le type de critère de recherche * @param array(string) champs à récupérer dans la table * @param array(array(string, object)) Dictionnaire(champ, valeur)) contenant les champs à filtrer ainsi que la valeur du filtre * @param array(array(string, string)) Dictionnaire(champ, sens) contenant les tris à appliquer * @return array(CaracteristiqueVO) * @desc Récupères les lignes de la table selon le critère de recherche puis trie et renvoie la liste de résultat sous forme d'une collection de CaracteristiqueVO */ public static function recherche($pTypeRecherche, $pTypeCritere, $pCritereRecherche, $pTypeTri, $pCritereTri) { // Initialisation du Logger $lLogger =& Log::singleton('file', CHEMIN_FICHIER_LOGS); $lLogger->setMask(Log::MAX(LOG_LEVEL)); // Préparation de la requète $lChamps = array(CaracteristiqueManager::CHAMP_CARACTERISTIQUE_ID . "," . CaracteristiqueManager::CHAMP_CARACTERISTIQUE_NOM . "," . CaracteristiqueManager::CHAMP_CARACTERISTIQUE_DESCRIPTION . "," . CaracteristiqueManager::CHAMP_CARACTERISTIQUE_ETAT); // Préparation de la requète de recherche $lRequete = DbUtils::prepareRequeteRecherche(CaracteristiqueManager::TABLE_CARACTERISTIQUE, $lChamps, $pTypeRecherche, $pTypeCritere, $pCritereRecherche, $pTypeTri, $pCritereTri); $lListeCaracteristique = array(); if ($lRequete !== false) { $lLogger->log("Execution de la requete : " . $lRequete, PEAR_LOG_DEBUG); // Maj des logs $lSql = Dbutils::executerRequete($lRequete); if (mysql_num_rows($lSql) > 0) { while ($lLigne = mysql_fetch_assoc($lSql)) { array_push($lListeCaracteristique, CaracteristiqueManager::remplirCaracteristique($lLigne[CaracteristiqueManager::CHAMP_CARACTERISTIQUE_ID], $lLigne[CaracteristiqueManager::CHAMP_CARACTERISTIQUE_NOM], $lLigne[CaracteristiqueManager::CHAMP_CARACTERISTIQUE_DESCRIPTION], $lLigne[CaracteristiqueManager::CHAMP_CARACTERISTIQUE_ETAT])); } } else { $lListeCaracteristique[0] = new CaracteristiqueVO(); } return $lListeCaracteristique; } $lListeCaracteristique[0] = new CaracteristiqueVO(); return $lListeCaracteristique; }
/** * @name exportProduitCaracteristique($pParam) * @return CSV * @desc Retourne la liste des produits liés à la caracteristique */ public function exportProduitCaracteristique($pParam) { $lVr = CaracteristiqueValid::validDelete($pParam); if ($lVr->getValid()) { $lCaracteristique = CaracteristiqueManager::select($pParam['id']); $lProduits = ListeProduitCaracteristiqueViewManager::select($pParam['id']); $lCSV = new CSV(); $lTitre = str_replace(" ", "_", $lCaracteristique->getNom()); $lCSV->setNom($lTitre . '_:_Liste_des_produits.csv'); // Le Nom // L'entete $lEntete = array("Nom du Produit"); $lCSV->setEntete($lEntete); $lContenuTableau = array(); foreach ($lProduits as $lProduit) { array_push($lContenuTableau, array($lProduit->getNproNom())); } $lCSV->setData($lContenuTableau); // Export en CSV $lCSV->output(); } return $lVr; }
/** * @name validDelete($pData) * @return CaracteristiqueVR * @desc Test la validite de l'élément */ public static function validDelete($pData) { $lVr = new CaracteristiqueVR(); //Tests inputs if (!isset($pData['id'])) { $lVr->setValid(false); $lVr->getId()->setValid(false); $lErreur = new VRerreur(); $lErreur->setCode(MessagesErreurs::ERR_201_CODE); $lErreur->setMessage(MessagesErreurs::ERR_201_MSG); $lVr->getId()->addErreur($lErreur); } if ($lVr->getValid()) { //Tests Techniques if (!TestFonction::checkLength($pData['id'], 0, 11)) { $lVr->setValid(false); $lVr->getId()->setValid(false); $lErreur = new VRerreur(); $lErreur->setCode(MessagesErreurs::ERR_101_CODE); $lErreur->setMessage(MessagesErreurs::ERR_101_MSG); $lVr->getId()->addErreur($lErreur); } if (!is_int((int) $pData['id'])) { $lVr->setValid(false); $lVr->getId()->setValid(false); $lErreur = new VRerreur(); $lErreur->setCode(MessagesErreurs::ERR_108_CODE); $lErreur->setMessage(MessagesErreurs::ERR_108_MSG); $lVr->getId()->addErreur($lErreur); } //Tests Fonctionnels if (empty($pData['id'])) { $lVr->setValid(false); $lVr->getId()->setValid(false); $lErreur = new VRerreur(); $lErreur->setCode(MessagesErreurs::ERR_201_CODE); $lErreur->setMessage(MessagesErreurs::ERR_201_MSG); $lVr->getId()->addErreur($lErreur); } // La catégorie doit exister $lCategorie = CaracteristiqueManager::select($pData['id']); if ($lCategorie->getId() != $pData['id']) { $lVr->setValid(false); $lVr->getId()->setValid(false); $lErreur = new VRerreur(); $lErreur->setCode(MessagesErreurs::ERR_201_CODE); $lErreur->setMessage(MessagesErreurs::ERR_201_MSG); $lVr->getId()->addErreur($lErreur); } } return $lVr; }
/** * @name validAjout($pData) * @return NomProduitCatalogueVR * @desc Test la validite de l'élément */ public static function validAjout($pData) { $lVr = new NomProduitCatalogueVR(); //Tests inputs if (!isset($pData['id'])) { $lVr->setValid(false); $lVr->getId()->setValid(false); $lErreur = new VRerreur(); $lErreur->setCode(MessagesErreurs::ERR_101_CODE); $lErreur->setMessage(MessagesErreurs::ERR_101_MSG); $lVr->getId()->addErreur($lErreur); } if (!isset($pData['numero'])) { $lVr->setValid(false); $lVr->getNumero()->setValid(false); $lErreur = new VRerreur(); $lErreur->setCode(MessagesErreurs::ERR_101_CODE); $lErreur->setMessage(MessagesErreurs::ERR_101_MSG); $lVr->getNumero()->addErreur($lErreur); } if (!isset($pData['idCategorie'])) { $lVr->setValid(false); $lVr->getIdCategorie()->setValid(false); $lErreur = new VRerreur(); $lErreur->setCode(MessagesErreurs::ERR_101_CODE); $lErreur->setMessage(MessagesErreurs::ERR_101_MSG); $lVr->getIdCategorie()->addErreur($lErreur); } if (!isset($pData['nom'])) { $lVr->setValid(false); $lVr->getNom()->setValid(false); $lErreur = new VRerreur(); $lErreur->setCode(MessagesErreurs::ERR_101_CODE); $lErreur->setMessage(MessagesErreurs::ERR_101_MSG); $lVr->getNom()->addErreur($lErreur); } if (!isset($pData['description'])) { $lVr->setValid(false); $lVr->getDescription()->setValid(false); $lErreur = new VRerreur(); $lErreur->setCode(MessagesErreurs::ERR_101_CODE); $lErreur->setMessage(MessagesErreurs::ERR_101_MSG); $lVr->getDescription()->addErreur($lErreur); } if (!isset($pData['producteurs'])) { $lVr->setValid(false); $lVr->getProducteurs()->setValid(false); $lErreur = new VRerreur(); $lErreur->setCode(MessagesErreurs::ERR_101_CODE); $lErreur->setMessage(MessagesErreurs::ERR_101_MSG); $lVr->getProducteurs()->addErreur($lErreur); } if (!isset($pData['caracteristiques'])) { $lVr->setValid(false); $lVr->getCaracteristiques()->setValid(false); $lErreur = new VRerreur(); $lErreur->setCode(MessagesErreurs::ERR_101_CODE); $lErreur->setMessage(MessagesErreurs::ERR_101_MSG); $lVr->getCaracteristiques()->addErreur($lErreur); } if (!isset($pData['modelesLot'])) { $lVr->setValid(false); $lVr->getLog()->setValid(false); $lErreur = new VRerreur(); $lErreur->setCode(MessagesErreurs::ERR_101_CODE); $lErreur->setMessage(MessagesErreurs::ERR_101_MSG); $lVr->getLog()->addErreur($lErreur); } if ($lVr->getValid()) { //Tests Techniques if (!TestFonction::checkLength($pData['id'], 0, 11)) { $lVr->setValid(false); $lVr->getId()->setValid(false); $lErreur = new VRerreur(); $lErreur->setCode(MessagesErreurs::ERR_101_CODE); $lErreur->setMessage(MessagesErreurs::ERR_101_MSG); $lVr->getId()->addErreur($lErreur); } if (!is_int((int) $pData['id'])) { $lVr->setValid(false); $lVr->getId()->setValid(false); $lErreur = new VRerreur(); $lErreur->setCode(MessagesErreurs::ERR_108_CODE); $lErreur->setMessage(MessagesErreurs::ERR_108_MSG); $lVr->getId()->addErreur($lErreur); } if (!TestFonction::checkLength($pData['numero'], 0, 50)) { $lVr->setValid(false); $lVr->getNumero()->setValid(false); $lErreur = new VRerreur(); $lErreur->setCode(MessagesErreurs::ERR_101_CODE); $lErreur->setMessage(MessagesErreurs::ERR_101_MSG); $lVr->getNumero()->addErreur($lErreur); } if (!TestFonction::checkLength($pData['idCategorie'], 0, 11)) { $lVr->setValid(false); $lVr->getIdCategorie()->setValid(false); $lErreur = new VRerreur(); $lErreur->setCode(MessagesErreurs::ERR_101_CODE); $lErreur->setMessage(MessagesErreurs::ERR_101_MSG); $lVr->getIdCategorie()->addErreur($lErreur); } if (!is_int((int) $pData['idCategorie'])) { $lVr->setValid(false); $lVr->getIdCategorie()->setValid(false); $lErreur = new VRerreur(); $lErreur->setCode(MessagesErreurs::ERR_108_CODE); $lErreur->setMessage(MessagesErreurs::ERR_108_MSG); $lVr->getIdCategorie()->addErreur($lErreur); } if (!TestFonction::checkLength($pData['nom'], 0, 50)) { $lVr->setValid(false); $lVr->getNom()->setValid(false); $lErreur = new VRerreur(); $lErreur->setCode(MessagesErreurs::ERR_101_CODE); $lErreur->setMessage(MessagesErreurs::ERR_101_MSG); $lVr->getNom()->addErreur($lErreur); } if (!TestFonction::checkLength($pData['description'], 0, 500)) { $lVr->setValid(false); $lVr->getDescription()->setValid(false); $lErreur = new VRerreur(); $lErreur->setCode(MessagesErreurs::ERR_101_CODE); $lErreur->setMessage(MessagesErreurs::ERR_101_MSG); $lVr->getDescription()->addErreur($lErreur); } if (!is_array($pData['producteurs'])) { $lVr->setValid(false); $lVr->getProducteurs()->setValid(false); $lErreur = new VRerreur(); $lErreur->setCode(MessagesErreurs::ERR_115_CODE); $lErreur->setMessage(MessagesErreurs::ERR_115_MSG); $lVr->getProducteurs()->addErreur($lErreur); } if (!is_array($pData['caracteristiques'])) { $lVr->setValid(false); $lVr->getCaracteristiques()->setValid(false); $lErreur = new VRerreur(); $lErreur->setCode(MessagesErreurs::ERR_115_CODE); $lErreur->setMessage(MessagesErreurs::ERR_115_MSG); $lVr->getCaracteristiques()->addErreur($lErreur); } if (!is_array($pData['modelesLot'])) { $lVr->setValid(false); $lVr->getLog()->setValid(false); $lErreur = new VRerreur(); $lErreur->setCode(MessagesErreurs::ERR_115_CODE); $lErreur->setMessage(MessagesErreurs::ERR_115_MSG); $lVr->getLog()->addErreur($lErreur); } if ($lVr->getValid()) { //Tests Fonctionnels if (empty($pData['id'])) { $lVr->setValid(false); $lVr->getId()->setValid(false); $lErreur = new VRerreur(); $lErreur->setCode(MessagesErreurs::ERR_201_CODE); $lErreur->setMessage(MessagesErreurs::ERR_201_MSG); $lVr->getId()->addErreur($lErreur); } if (empty($pData['idCategorie'])) { $lVr->setValid(false); $lVr->getIdCategorie()->setValid(false); $lErreur = new VRerreur(); $lErreur->setCode(MessagesErreurs::ERR_201_CODE); $lErreur->setMessage(MessagesErreurs::ERR_201_MSG); $lVr->getIdCategorie()->addErreur($lErreur); } if ($pData['idCategorie'] == 0) { $lVr->setValid(false); $lVr->getIdCategorie()->setValid(false); $lErreur = new VRerreur(); $lErreur->setCode(MessagesErreurs::ERR_201_CODE); $lErreur->setMessage(MessagesErreurs::ERR_201_MSG); $lVr->getIdCategorie()->addErreur($lErreur); } if (empty($pData['nom'])) { $lVr->setValid(false); $lVr->getNom()->setValid(false); $lErreur = new VRerreur(); $lErreur->setCode(MessagesErreurs::ERR_201_CODE); $lErreur->setMessage(MessagesErreurs::ERR_201_MSG); $lVr->getNom()->addErreur($lErreur); } if (empty($pData['modelesLot'])) { $lVr->setValid(false); $lVr->getLog()->setValid(false); $lErreur = new VRerreur(); $lErreur->setCode(MessagesErreurs::ERR_264_CODE); $lErreur->setMessage(MessagesErreurs::ERR_264_MSG); $lVr->getLog()->addErreur($lErreur); } // La Ferme doit exister $lFerme = FermeManager::select($pData['id']); if ($lFerme->getId() != $pData['id']) { $lVr->setValid(false); $lVr->getId()->setValid(false); $lErreur = new VRerreur(); $lErreur->setCode(MessagesErreurs::ERR_201_CODE); $lErreur->setMessage(MessagesErreurs::ERR_201_MSG); $lVr->getId()->addErreur($lErreur); } // La Catégorie doit exister $lCategorieProduit = CategorieProduitManager::select($pData['idCategorie']); if ($lCategorieProduit->getId() != $pData['idCategorie']) { $lVr->setValid(false); $lVr->getIdCategorie()->setValid(false); $lErreur = new VRerreur(); $lErreur->setCode(MessagesErreurs::ERR_201_CODE); $lErreur->setMessage(MessagesErreurs::ERR_201_MSG); $lVr->getIdCategorie()->addErreur($lErreur); } foreach ($pData['producteurs'] as $lProducteur) { $lProducteurVO = ProducteurManager::select($lProducteur); if ($lProducteurVO->getIdFerme() != $pData['id']) { $lVr->setValid(false); $lVr->getProducteurs()->setValid(false); $lErreur = new VRerreur(); $lErreur->setCode(MessagesErreurs::ERR_216_CODE); $lErreur->setMessage(MessagesErreurs::ERR_216_MSG); $lVr->getProducteurs()->addErreur($lErreur); } } foreach ($pData['caracteristiques'] as $lCaracteristique) { $lCaracteristiqueVO = CaracteristiqueManager::select($lCaracteristique); if ($lCaracteristiqueVO->getId() != $lCaracteristique) { $lVr->setValid(false); $lVr->getCaracteristiques()->setValid(false); $lErreur = new VRerreur(); $lErreur->setCode(MessagesErreurs::ERR_216_CODE); $lErreur->setMessage(MessagesErreurs::ERR_216_MSG); $lVr->getCaracteristiques()->addErreur($lErreur); } } foreach ($pData['modelesLot'] as $lModeleLot) { $lModeleLotVR = ModeleLotValid::ValidSet($lModeleLot); if (!$lModeleLotVR->getValid()) { $lVr->setValid(false); } $lVr->addModelesLot($lModeleLotVR); } } } return $lVr; }