/**
  * @name select($pId,$pIdFerme)
  * @param integer
  * @param integer
  * @return ListeProduitsNonAbonneViewVO
  * @desc Récupère la ligne correspondant à l'id en paramètre, créé une ListeProduitsNonAbonneViewVO contenant les informations et la renvoie
  */
 public static function select($pId, $pIdFerme)
 {
     // Initialisation du Logger
     $lLogger =& Log::singleton('file', CHEMIN_FICHIER_LOGS);
     $lLogger->setMask(Log::MAX(LOG_LEVEL));
     $lRequete = "SELECT \n\t\t\tPRODUIT." . ProduitAbonnementManager::CHAMP_PRODUITABONNEMENT_ID . "," . FermeManager::CHAMP_FERME_ID . "," . CategorieProduitManager::CHAMP_CATEGORIEPRODUIT_ID . "," . NomProduitManager::CHAMP_NOMPRODUIT_ID . ", NOM." . NomProduitManager::CHAMP_NOMPRODUIT_NOM . "," . CategorieProduitManager::CHAMP_CATEGORIEPRODUIT_NOM . "," . FermeManager::CHAMP_FERME_NOM . "\n\t\t\tFROM " . ProduitAbonnementManager::TABLE_PRODUITABONNEMENT . " PRODUIT\n\t\t\tJOIN " . NomProduitManager::TABLE_NOMPRODUIT . " NOM ON " . NomProduitManager::CHAMP_NOMPRODUIT_ID . "=" . ProduitAbonnementManager::CHAMP_PRODUITABONNEMENT_ID_NOM_PRODUIT . "\n\t\t\tJOIN " . CategorieProduitManager::TABLE_CATEGORIEPRODUIT . " ON " . CategorieProduitManager::CHAMP_CATEGORIEPRODUIT_ID . "=" . NomProduitManager::CHAMP_NOMPRODUIT_ID_CATEGORIE . "\n\t\t\tJOIN " . FermeManager::TABLE_FERME . " ON " . FermeManager::CHAMP_FERME_ID . "=" . NomProduitManager::CHAMP_NOMPRODUIT_ID_FERME . "\n\t\t\tJOIN  " . DetailProduitAbonnementViewManager::VUE_DETAILPRODUITABONNEMENT . " DETAIL ON DETAIL." . ProduitAbonnementManager::CHAMP_PRODUITABONNEMENT_ID . " = PRODUIT." . ProduitAbonnementManager::CHAMP_PRODUITABONNEMENT_ID . "\n\t\t\tWHERE PRODUIT." . ProduitAbonnementManager::CHAMP_PRODUITABONNEMENT_ID . " NOT IN (\n\t\t\t\tSELECT " . CompteAbonnementManager::CHAMP_COMPTEABONNEMENT_ID_PRODUIT_ABONNEMENT . "\n\t\t\t\tFROM " . CompteAbonnementManager::TABLE_COMPTEABONNEMENT . "\n\t\t\t\tWHERE " . CompteAbonnementManager::CHAMP_COMPTEABONNEMENT_ID_COMPTE . " = '" . StringUtils::securiser($pId) . "'\n\t\t\t\tAND " . FermeManager::CHAMP_FERME_ID . " = '" . StringUtils::securiser($pIdFerme) . "'\n\t\t\t\tAND " . CompteAbonnementManager::CHAMP_COMPTEABONNEMENT_ETAT . " = 0\n\t\t\t)\n\t\t\tAND " . FermeManager::CHAMP_FERME_ID . " = '" . StringUtils::securiser($pIdFerme) . "'\n\t\t\tAND " . ProduitAbonnementManager::CHAMP_PRODUITABONNEMENT_ETAT . " = 0 \n\t\t\tAND " . NomProduitManager::CHAMP_NOMPRODUIT_ETAT . " = 0\n\t\t\tAND (\n\t\t\t\t\t(DETAIL." . ProduitAbonnementManager::CHAMP_PRODUITABONNEMENT_STOCK_INITIAL . " - DETAIL." . DetailProduitAbonnementViewManager::CHAMP_PRODUITABONNEMENT_RESERVATION . ") > 0\n\t\t\t\tOR\t\n\t\t\t\t\t(DETAIL." . ProduitAbonnementManager::CHAMP_PRODUITABONNEMENT_STOCK_INITIAL . " - DETAIL." . DetailProduitAbonnementViewManager::CHAMP_PRODUITABONNEMENT_RESERVATION . ") IS NULL\t\t\t\t\t\n\t\t\t\t)";
     $lLogger->log("Execution de la requete : " . $lRequete, PEAR_LOG_DEBUG);
     // Maj des logs
     $lSql = Dbutils::executerRequete($lRequete);
     $lListeListeProduitsNonAbonne = array();
     if (mysql_num_rows($lSql) > 0) {
         while ($lLigne = mysql_fetch_assoc($lSql)) {
             array_push($lListeListeProduitsNonAbonne, ListeProduitsNonAbonneViewManager::remplir($lLigne[ProduitAbonnementManager::CHAMP_PRODUITABONNEMENT_ID], $lLigne[FermeManager::CHAMP_FERME_ID], $lLigne[CategorieProduitManager::CHAMP_CATEGORIEPRODUIT_ID], $lLigne[NomProduitManager::CHAMP_NOMPRODUIT_ID], $lLigne[NomProduitManager::CHAMP_NOMPRODUIT_NOM], $lLigne[CategorieProduitManager::CHAMP_CATEGORIEPRODUIT_NOM], $lLigne[FermeManager::CHAMP_FERME_NOM]));
         }
     } else {
         $lListeListeProduitsNonAbonne[0] = new ListeProduitsNonAbonneViewVO();
     }
     return $lListeListeProduitsNonAbonne;
 }
 /**
  * @name getProduitsNonAbonne($pIdCompte,$pIdFerme)
  * @return array(ListeProduitsNonAbonneViewVO)
  * @desc Retourne une liste de ListeProduitsNonAbonneViewVO
  */
 public function getProduitsNonAbonne($pIdCompte, $pIdFerme)
 {
     return ListeProduitsNonAbonneViewManager::select($pIdCompte, $pIdFerme);
 }