/**
  * @name modifierProducteur($pParam)
  * @desc Met à jour les informations du Producteur ainsi que ses autorisations
  */
 public function modifierProducteur($pParam)
 {
     $lVr = ProducteurValid::validUpdate($pParam);
     if ($lVr->getValid()) {
         $lProducteur = new ProducteurVO();
         $lProducteur->setId($pParam["id"]);
         $lProducteur->setIdFerme($pParam["idFerme"]);
         $lProducteur->setNom($pParam["nom"]);
         $lProducteur->setPrenom($pParam["prenom"]);
         $lProducteur->setCourrielPrincipal($pParam["courrielPrincipal"]);
         $lProducteur->setCourrielSecondaire($pParam["courrielSecondaire"]);
         $lProducteur->setTelephonePrincipal($pParam["telephonePrincipal"]);
         $lProducteur->setTelephoneSecondaire($pParam["telephoneSecondaire"]);
         $lProducteur->setAdresse($pParam["adresse"]);
         $lProducteur->setCodePostal($pParam["codePostal"]);
         $lProducteur->setVille($pParam["ville"]);
         $lProducteur->setDateNaissance($pParam["dateNaissance"]);
         $lProducteur->setCommentaire($pParam["commentaire"]);
         // Insertion de la date de mise à jour
         $lProducteur->setDateMaj(StringUtils::dateTimeAujourdhuiDb());
         // On reporte le numero dans la maj
         $lProducteurActuel = ProducteurManager::select($lProducteur->getId());
         $lProducteur->setNumero($lProducteurActuel->getNumero());
         // L'adherent n'est pas supprimé
         $lProducteur->setEtat(0);
         // Maj du producteur dans la BDD
         ProducteurManager::update($lProducteur);
         $lResponse = new ModifierProducteurResponse();
         $lResponse->setNumero($lProducteur->getNumero());
         return $lResponse;
     }
     return $lVr;
 }
 /**
  * @name insert($pVo)
  * @param ProducteurVO
  * @return integer
  * @desc Insère une nouvelle ligne dans la table, à partir des informations de la ProducteurVO en paramètre (l'id sera automatiquement calculé par la BDD)
  */
 public static function insert($pVo)
 {
     // Initialisation du Logger
     $lLogger =& Log::singleton('file', CHEMIN_FICHIER_LOGS);
     $lLogger->setMask(Log::MAX(LOG_LEVEL));
     // Mise en forme des données
     $pVo->setNom(StringUtils::formaterNom(trim($pVo->getNom())));
     $pVo->setPrenom(StringUtils::formaterPrenom(trim($pVo->getPrenom())));
     $pVo->setCourrielPrincipal(trim($pVo->getCourrielPrincipal()));
     $pVo->setCourrielSecondaire(trim($pVo->getCourrielSecondaire()));
     $pVo->setTelephonePrincipal(trim($pVo->getTelephonePrincipal()));
     $pVo->setTelephoneSecondaire(trim($pVo->getTelephoneSecondaire()));
     $pVo->setAdresse(trim($pVo->getAdresse()));
     $pVo->setCodePostal(trim($pVo->getCodePostal()));
     $pVo->setVille(StringUtils::formaterVille(trim($pVo->getVille())));
     $pVo->setCommentaire(trim($pVo->getCommentaire()));
     // Protection des dates vides
     if ($pVo->getDateNaissance() == '') {
         $pVo->setDateNaissance(StringUtils::FORMAT_DATE_NULLE);
     }
     if ($pVo->getDateCreation() == '') {
         $pVo->setDateCreation(StringUtils::FORMAT_DATE_NULLE);
     }
     if ($pVo->getDateMaj() == '') {
         $pVo->getDateMaj(StringUtils::FORMAT_DATE_NULLE);
     }
     $lRequete = "INSERT INTO " . ProducteurManager::TABLE_PRODUCTEUR . "\n\t\t\t\t(" . ProducteurManager::CHAMP_PRODUCTEUR_ID . "\n\t\t\t\t," . ProducteurManager::CHAMP_PRODUCTEUR_ID_FERME . "\n\t\t\t\t," . ProducteurManager::CHAMP_PRODUCTEUR_NUMERO . "\n\t\t\t\t," . ProducteurManager::CHAMP_PRODUCTEUR_NOM . "\n\t\t\t\t," . ProducteurManager::CHAMP_PRODUCTEUR_PRENOM . "\n\t\t\t\t," . ProducteurManager::CHAMP_PRODUCTEUR_COURRIEL_PRINCIPAL . "\n\t\t\t\t," . ProducteurManager::CHAMP_PRODUCTEUR_COURRIEL_SECONDAIRE . "\n\t\t\t\t," . ProducteurManager::CHAMP_PRODUCTEUR_TELEPHONE_PRINCIPAL . "\n\t\t\t\t," . ProducteurManager::CHAMP_PRODUCTEUR_TELEPHONE_SECONDAIRE . "\n\t\t\t\t," . ProducteurManager::CHAMP_PRODUCTEUR_ADRESSE . "\n\t\t\t\t," . ProducteurManager::CHAMP_PRODUCTEUR_CODE_POSTAL . "\n\t\t\t\t," . ProducteurManager::CHAMP_PRODUCTEUR_VILLE . "\n\t\t\t\t," . ProducteurManager::CHAMP_PRODUCTEUR_DATE_NAISSANCE . "\n\t\t\t\t," . ProducteurManager::CHAMP_PRODUCTEUR_DATE_CREATION . "\n\t\t\t\t," . ProducteurManager::CHAMP_PRODUCTEUR_DATE_MAJ . "\n\t\t\t\t," . ProducteurManager::CHAMP_PRODUCTEUR_COMMENTAIRE . "\n\t\t\t\t," . ProducteurManager::CHAMP_PRODUCTEUR_ETAT . ")\n\t\t\tVALUES (NULL\n\t\t\t\t,'" . StringUtils::securiser($pVo->getIdFerme()) . "'\n\t\t\t\t,'" . StringUtils::securiser($pVo->getNumero()) . "'\n\t\t\t\t,'" . StringUtils::securiser($pVo->getNom()) . "'\n\t\t\t\t,'" . StringUtils::securiser($pVo->getPrenom()) . "'\n\t\t\t\t,'" . StringUtils::securiser($pVo->getCourrielPrincipal()) . "'\n\t\t\t\t,'" . StringUtils::securiser($pVo->getCourrielSecondaire()) . "'\n\t\t\t\t,'" . StringUtils::securiser($pVo->getTelephonePrincipal()) . "'\n\t\t\t\t,'" . StringUtils::securiser($pVo->getTelephoneSecondaire()) . "'\n\t\t\t\t,'" . StringUtils::securiser($pVo->getAdresse()) . "'\n\t\t\t\t,'" . StringUtils::securiser($pVo->getCodePostal()) . "'\n\t\t\t\t,'" . StringUtils::securiser($pVo->getVille()) . "'\n\t\t\t\t,'" . StringUtils::securiser($pVo->getDateNaissance()) . "'\n\t\t\t\t,'" . StringUtils::securiser($pVo->getDateCreation()) . "'\n\t\t\t\t,'" . StringUtils::securiser($pVo->getDateMaj()) . "'\n\t\t\t\t,'" . StringUtils::securiser($pVo->getCommentaire()) . "'\n\t\t\t\t,'" . StringUtils::securiser($pVo->getEtat()) . "')";
     $lLogger->log("Execution de la requete : " . $lRequete, PEAR_LOG_DEBUG);
     // Maj des logs
     $lId = Dbutils::executerRequeteInsertRetourId($lRequete);
     // Execution de la requete et récupération de l'Id généré par la BDD
     $pVo->setId($lId);
     $pVo->setNumero('P' . $lId);
     // Mise à jour du numéro dans l'objet
     ProducteurManager::update($pVo);
     // Mise à jour de la base
     return $lId;
 }