/**
  * @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 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;
 }