/**
  * @name validAjout($pData)
  * @return AdhesionVR
  * @desc Test la validite de l'élément
  */
 public static function validAjout($pData)
 {
     $lVr = new AdhesionVR();
     //Tests inputs
     if (!isset($pData['label'])) {
         $lVr->setValid(false);
         $lVr->getLabel()->setValid(false);
         $lErreur = new VRerreur();
         $lErreur->setCode(MessagesErreurs::ERR_201_CODE);
         $lErreur->setMessage(MessagesErreurs::ERR_201_MSG);
         $lVr->getLabel()->addErreur($lErreur);
     }
     if (!isset($pData['dateDebut'])) {
         $lVr->setValid(false);
         $lVr->getDateDebut()->setValid(false);
         $lErreur = new VRerreur();
         $lErreur->setCode(MessagesErreurs::ERR_201_CODE);
         $lErreur->setMessage(MessagesErreurs::ERR_201_MSG);
         $lVr->getDateDebut()->addErreur($lErreur);
     }
     if (!isset($pData['dateFin'])) {
         $lVr->setValid(false);
         $lVr->getDateFin()->setValid(false);
         $lErreur = new VRerreur();
         $lErreur->setCode(MessagesErreurs::ERR_201_CODE);
         $lErreur->setMessage(MessagesErreurs::ERR_201_MSG);
         $lVr->getDateFin()->addErreur($lErreur);
     }
     if (!isset($pData['types'])) {
         $lVr->setValid(false);
         $lVr->getTypes()->setValid(false);
         $lErreur = new VRerreur();
         $lErreur->setCode(MessagesErreurs::ERR_201_CODE);
         $lErreur->setMessage(MessagesErreurs::ERR_201_MSG);
         $lVr->getTypes()->addErreur($lErreur);
     }
     if ($lVr->getValid()) {
         //Tests Techniques
         if (!TestFonction::checkLength($pData['label'], 0, 45)) {
             $lVr->setValid(false);
             $lVr->getLabel()->setValid(false);
             $lErreur = new VRerreur();
             $lErreur->setCode(MessagesErreurs::ERR_101_CODE);
             $lErreur->setMessage(MessagesErreurs::ERR_101_MSG);
             $lVr->getLabel()->addErreur($lErreur);
         }
         if (!TestFonction::checkDate($pData['dateDebut'], 'db')) {
             $lVr->setValid(false);
             $lVr->getDateDebut()->setValid(false);
             $lErreur = new VRerreur();
             $lErreur->setCode(MessagesErreurs::ERR_103_CODE);
             $lErreur->setMessage(MessagesErreurs::ERR_103_MSG);
             $lVr->getDateDebut()->addErreur($lErreur);
         }
         if (!TestFonction::checkDateExist($pData['dateDebut'], 'db')) {
             $lVr->setValid(false);
             $lVr->getDateDebut()->setValid(false);
             $lErreur = new VRerreur();
             $lErreur->setCode(MessagesErreurs::ERR_105_CODE);
             $lErreur->setMessage(MessagesErreurs::ERR_105_MSG);
             $lVr->getDateDebut()->addErreur($lErreur);
         }
         if (!TestFonction::checkDate($pData['dateFin'], 'db')) {
             $lVr->setValid(false);
             $lVr->getDateFin()->setValid(false);
             $lErreur = new VRerreur();
             $lErreur->setCode(MessagesErreurs::ERR_103_CODE);
             $lErreur->setMessage(MessagesErreurs::ERR_103_MSG);
             $lVr->getDateFin()->addErreur($lErreur);
         }
         if (!TestFonction::checkDateExist($pData['dateFin'], 'db')) {
             $lVr->setValid(false);
             $lVr->getDateFin()->setValid(false);
             $lErreur = new VRerreur();
             $lErreur->setCode(MessagesErreurs::ERR_105_CODE);
             $lErreur->setMessage(MessagesErreurs::ERR_105_MSG);
             $lVr->getDateFin()->addErreur($lErreur);
         }
         //Tests Fonctionnels
         if (empty($pData['label'])) {
             $lVr->setValid(false);
             $lVr->getLabel()->setValid(false);
             $lErreur = new VRerreur();
             $lErreur->setCode(MessagesErreurs::ERR_201_CODE);
             $lErreur->setMessage(MessagesErreurs::ERR_201_MSG);
             $lVr->getLabel()->addErreur($lErreur);
         }
         if (empty($pData['dateDebut'])) {
             $lVr->setValid(false);
             $lVr->getDateDebut()->setValid(false);
             $lErreur = new VRerreur();
             $lErreur->setCode(MessagesErreurs::ERR_201_CODE);
             $lErreur->setMessage(MessagesErreurs::ERR_201_MSG);
             $lVr->getDateDebut()->addErreur($lErreur);
         }
         if (empty($pData['dateFin'])) {
             $lVr->setValid(false);
             $lVr->getDateFin()->setValid(false);
             $lErreur = new VRerreur();
             $lErreur->setCode(MessagesErreurs::ERR_201_CODE);
             $lErreur->setMessage(MessagesErreurs::ERR_201_MSG);
             $lVr->getDateFin()->addErreur($lErreur);
         }
         if (empty($pData['types'])) {
             $lVr->setValid(false);
             $lVr->getTypes()->setValid(false);
             $lErreur = new VRerreur();
             $lErreur->setCode(MessagesErreurs::ERR_201_CODE);
             $lErreur->setMessage(MessagesErreurs::ERR_201_MSG);
             $lVr->getTypes()->addErreur($lErreur);
         }
         if (!TestFonction::dateEstPLusGrandeEgale($pData['dateFin'], $pData['dateDebut'], 'db')) {
             $lVr->setValid(false);
             $lVr->getDateDebut()->setValid(false);
             $lVr->getDateFin()->setValid(false);
             $lErreur = new VRerreur();
             $lErreur->setCode(MessagesErreurs::ERR_252_CODE);
             $lErreur->setMessage(MessagesErreurs::ERR_252_MSG);
             $lVr->getDateDebut()->addErreur($lErreur);
             $lVr->getDateFin()->addErreur($lErreur);
         }
         if (!is_array($pData['types'])) {
             $lVr->setValid(false);
             $lVr->getTypes()->setValid(false);
             $lErreur = new VRerreur();
             $lErreur->setCode(MessagesErreurs::ERR_115_CODE);
             $lErreur->setMessage(MessagesErreurs::ERR_115_MSG);
             $lVr->getTypes()->addErreur($lErreur);
         } else {
             foreach ($pData['types'] as $lType) {
                 if (!is_null($lType)) {
                     if (isset($lType['id'])) {
                         if (empty($lType['id'])) {
                             $lVrType = TypeAdhesionValid::validAjout($lType);
                         } else {
                             $lVrType = TypeAdhesionValid::validUpdate($lType);
                         }
                         if (!$lVrType->getValid()) {
                             $lVr->setValid(false);
                         }
                         $lVr->addTypes($lVrType);
                     } else {
                         $lVr->setValid(false);
                     }
                 }
             }
         }
     }
     return $lVr;
 }
 /**
  * @name validUpdate($pData)
  * @return TypeAdhesionVR
  * @desc Test la validite de l'élément
  */
 public static function validUpdate($pData)
 {
     $lVr = TypeAdhesionValid::validDelete($pData);
     if ($lVr->getValid()) {
         $lVr = TypeAdhesionValid::validAjout($pData);
     }
     return $lVr;
 }
 /**
  * @name listeAdherentSurTypeAdhesion($pParam)
  * @return CSV
  * @desc Retourne la liste des adhérents sur un type adhésion
  */
 public function listeAdherentSurTypeAdhesion($pParam)
 {
     $lVr = TypeAdhesionValid::validDelete($pParam);
     if ($lVr->getValid()) {
         $lIdTypeAdhesion = $pParam['id'];
         $lAdhesionService = new AdhesionService();
         $lCSV = new CSV();
         $lCSV->setNom('Liste_Adherent.csv');
         // Le Nom
         // L'entete
         $lTypeAdhesion = $lAdhesionService->getTypeAdhesion($lIdTypeAdhesion);
         $lEntete = array($lTypeAdhesion->getLabel(), $lTypeAdhesion->getMontant() . SIGLE_MONETAIRE, "");
         $lCSV->setEntete($lEntete);
         $lListeAdherent = $lAdhesionService->getListeAdherentSurAdhesion($lIdTypeAdhesion);
         $lContenuTableau = array();
         foreach ($lListeAdherent as $lAdherent) {
             array_push($lContenuTableau, array($lAdherent->getNumero(), $lAdherent->getNom(), $lAdherent->getPrenom()));
         }
         $lCSV->setData($lContenuTableau);
         // Export en CSV
         $lCSV->output();
     } else {
         return $lVr;
     }
 }