/**
  * @name validUpdate($pData)
  * @return CommandeCompleteVR
  * @desc Test la validite de l'élément
  */
 public static function validUpdate($pData)
 {
     $lTestId = CommandeCompleteValid::validDelete($pData);
     if ($lTestId->getValid()) {
         $lVr = new CommandeCompleteVR();
         //Tests inputs
         if (!isset($pData['numero'])) {
             $lVr->setValid(false);
             $lVr->getNumero()->setValid(false);
             $lErreur = new VRerreur();
             $lErreur->setCode(MessagesErreurs::ERR_201_CODE);
             $lErreur->setMessage(MessagesErreurs::ERR_201_MSG);
             $lVr->getNumero()->addErreur($lErreur);
         }
         if (!isset($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 (!isset($pData['dateMarcheDebut'])) {
             $lVr->setValid(false);
             $lVr->getDateMarcheDebut()->setValid(false);
             $lErreur = new VRerreur();
             $lErreur->setCode(MessagesErreurs::ERR_201_CODE);
             $lErreur->setMessage(MessagesErreurs::ERR_201_MSG);
             $lVr->getDateMarcheDebut()->addErreur($lErreur);
         }
         if (!isset($pData['timeMarcheDebut'])) {
             $lVr->setValid(false);
             $lVr->getTimeMarcheDebut()->setValid(false);
             $lErreur = new VRerreur();
             $lErreur->setCode(MessagesErreurs::ERR_201_CODE);
             $lErreur->setMessage(MessagesErreurs::ERR_201_MSG);
             $lVr->getTimeMarcheDebut()->addErreur($lErreur);
         }
         if (!isset($pData['dateMarcheFin'])) {
             $lVr->setValid(false);
             $lVr->getDateMarcheFin()->setValid(false);
             $lErreur = new VRerreur();
             $lErreur->setCode(MessagesErreurs::ERR_201_CODE);
             $lErreur->setMessage(MessagesErreurs::ERR_201_MSG);
             $lVr->getDateMarcheFin()->addErreur($lErreur);
         }
         if (!isset($pData['timeMarcheFin'])) {
             $lVr->setValid(false);
             $lVr->getTimeMarcheFin()->setValid(false);
             $lErreur = new VRerreur();
             $lErreur->setCode(MessagesErreurs::ERR_201_CODE);
             $lErreur->setMessage(MessagesErreurs::ERR_201_MSG);
             $lVr->getTimeMarcheFin()->addErreur($lErreur);
         }
         if (!isset($pData['dateDebutReservation'])) {
             $lVr->setValid(false);
             $lVr->getDateDebutReservation()->setValid(false);
             $lErreur = new VRerreur();
             $lErreur->setCode(MessagesErreurs::ERR_201_CODE);
             $lErreur->setMessage(MessagesErreurs::ERR_201_MSG);
             $lVr->getDateDebutReservation()->addErreur($lErreur);
         }
         if (!isset($pData['timeDebutReservation'])) {
             $lVr->setValid(false);
             $lVr->getTimeDebutReservation()->setValid(false);
             $lErreur = new VRerreur();
             $lErreur->setCode(MessagesErreurs::ERR_201_CODE);
             $lErreur->setMessage(MessagesErreurs::ERR_201_MSG);
             $lVr->getTimeDebutReservation()->addErreur($lErreur);
         }
         if (!isset($pData['dateFinReservation'])) {
             $lVr->setValid(false);
             $lVr->getDateFinReservation()->setValid(false);
             $lErreur = new VRerreur();
             $lErreur->setCode(MessagesErreurs::ERR_201_CODE);
             $lErreur->setMessage(MessagesErreurs::ERR_201_MSG);
             $lVr->getDateFinReservation()->addErreur($lErreur);
         }
         if (!isset($pData['timeFinReservation'])) {
             $lVr->setValid(false);
             $lVr->getTimeFinReservation()->setValid(false);
             $lErreur = new VRerreur();
             $lErreur->setCode(MessagesErreurs::ERR_201_CODE);
             $lErreur->setMessage(MessagesErreurs::ERR_201_MSG);
             $lVr->getTimeFinReservation()->addErreur($lErreur);
         }
         if (!isset($pData['archive'])) {
             $lVr->setValid(false);
             $lVr->getArchive()->setValid(false);
             $lErreur = new VRerreur();
             $lErreur->setCode(MessagesErreurs::ERR_201_CODE);
             $lErreur->setMessage(MessagesErreurs::ERR_201_MSG);
             $lVr->getArchive()->addErreur($lErreur);
         }
         if (!isset($pData['produits'])) {
             $lVr->setValid(false);
             $lVr->getLog()->setValid(false);
             $lErreur = new VRerreur();
             $lErreur->setCode(MessagesErreurs::ERR_201_CODE);
             $lErreur->setMessage(MessagesErreurs::ERR_201_MSG);
             $lVr->getLog()->addErreur($lErreur);
         }
         if (!isset($pData['description'])) {
             $lVr->setValid(false);
             $lVr->getDescription()->setValid(false);
             $lErreur = new VRerreur();
             $lErreur->setCode(MessagesErreurs::ERR_201_CODE);
             $lErreur->setMessage(MessagesErreurs::ERR_201_MSG);
             $lVr->getDescription()->addErreur($lErreur);
         }
         if ($lVr->getValid()) {
             //Tests Techniques
             if (!TestFonction::checkLength($pData['numero'], 0, 11)) {
                 $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 (!is_int((int) $pData['numero'])) {
                 $lVr->setValid(false);
                 $lVr->getNumero()->setValid(false);
                 $lErreur = new VRerreur();
                 $lErreur->setCode(MessagesErreurs::ERR_108_CODE);
                 $lErreur->setMessage(MessagesErreurs::ERR_108_MSG);
                 $lVr->getNumero()->addErreur($lErreur);
             }
             if (!TestFonction::checkLength($pData['nom'], 0, 100)) {
                 $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::checkDate($pData['dateMarcheDebut'], 'db')) {
                 $lVr->setValid(false);
                 $lVr->getDateMarcheDebut()->setValid(false);
                 $lErreur = new VRerreur();
                 $lErreur->setCode(MessagesErreurs::ERR_103_CODE);
                 $lErreur->setMessage(MessagesErreurs::ERR_103_MSG);
                 $lVr->getDateMarcheDebut()->addErreur($lErreur);
             }
             if (!TestFonction::checkDateExist($pData['dateMarcheDebut'], 'db')) {
                 $lVr->setValid(false);
                 $lVr->getDateMarcheDebut()->setValid(false);
                 $lErreur = new VRerreur();
                 $lErreur->setCode(MessagesErreurs::ERR_105_CODE);
                 $lErreur->setMessage(MessagesErreurs::ERR_105_MSG);
                 $lVr->getDateMarcheDebut()->addErreur($lErreur);
             }
             if (!TestFonction::checkTime($pData['timeMarcheDebut'])) {
                 $lVr->setValid(false);
                 $lVr->getTimeMarcheDebut()->setValid(false);
                 $lErreur = new VRerreur();
                 $lErreur->setCode(MessagesErreurs::ERR_106_CODE);
                 $lErreur->setMessage(MessagesErreurs::ERR_106_MSG);
                 $lVr->getTimeMarcheDebut()->addErreur($lErreur);
             }
             if (!TestFonction::checkTimeExist($pData['timeMarcheDebut'])) {
                 $lVr->setValid(false);
                 $lVr->getTimeMarcheDebut()->setValid(false);
                 $lErreur = new VRerreur();
                 $lErreur->setCode(MessagesErreurs::ERR_107_CODE);
                 $lErreur->setMessage(MessagesErreurs::ERR_107_MSG);
                 $lVr->getTimeMarcheDebut()->addErreur($lErreur);
             }
             if (!TestFonction::checkDate($pData['dateMarcheFin'], 'db')) {
                 $lVr->setValid(false);
                 $lVr->getDateMarcheFin()->setValid(false);
                 $lErreur = new VRerreur();
                 $lErreur->setCode(MessagesErreurs::ERR_103_CODE);
                 $lErreur->setMessage(MessagesErreurs::ERR_103_MSG);
                 $lVr->getDateMarcheFin()->addErreur($lErreur);
             }
             if (!TestFonction::checkDateExist($pData['dateMarcheFin'], 'db')) {
                 $lVr->setValid(false);
                 $lVr->getDateMarcheFin()->setValid(false);
                 $lErreur = new VRerreur();
                 $lErreur->setCode(MessagesErreurs::ERR_105_CODE);
                 $lErreur->setMessage(MessagesErreurs::ERR_105_MSG);
                 $lVr->getDateMarcheFin()->addErreur($lErreur);
             }
             if (!TestFonction::checkTime($pData['timeMarcheFin'])) {
                 $lVr->setValid(false);
                 $lVr->getTimeMarcheFin()->setValid(false);
                 $lErreur = new VRerreur();
                 $lErreur->setCode(MessagesErreurs::ERR_106_CODE);
                 $lErreur->setMessage(MessagesErreurs::ERR_106_MSG);
                 $lVr->getTimeMarcheFin()->addErreur($lErreur);
             }
             if (!TestFonction::checkTimeExist($pData['timeMarcheFin'])) {
                 $lVr->setValid(false);
                 $lVr->getTimeMarcheFin()->setValid(false);
                 $lErreur = new VRerreur();
                 $lErreur->setCode(MessagesErreurs::ERR_107_CODE);
                 $lErreur->setMessage(MessagesErreurs::ERR_107_MSG);
                 $lVr->getTimeMarcheFin()->addErreur($lErreur);
             }
             if (!TestFonction::checkDate($pData['dateDebutReservation'], 'db')) {
                 $lVr->setValid(false);
                 $lVr->getDateDebutReservation()->setValid(false);
                 $lErreur = new VRerreur();
                 $lErreur->setCode(MessagesErreurs::ERR_103_CODE);
                 $lErreur->setMessage(MessagesErreurs::ERR_103_MSG);
                 $lVr->getDateDebutReservation()->addErreur($lErreur);
             }
             if (!TestFonction::checkDateExist($pData['dateDebutReservation'], 'db')) {
                 $lVr->setValid(false);
                 $lVr->getDateDebutReservation()->setValid(false);
                 $lErreur = new VRerreur();
                 $lErreur->setCode(MessagesErreurs::ERR_105_CODE);
                 $lErreur->setMessage(MessagesErreurs::ERR_105_MSG);
                 $lVr->getDateDebutReservation()->addErreur($lErreur);
             }
             if (!TestFonction::checkTime($pData['timeDebutReservation'])) {
                 $lVr->setValid(false);
                 $lVr->getTimeDebutReservation()->setValid(false);
                 $lErreur = new VRerreur();
                 $lErreur->setCode(MessagesErreurs::ERR_106_CODE);
                 $lErreur->setMessage(MessagesErreurs::ERR_106_MSG);
                 $lVr->getTimeDebutReservation()->addErreur($lErreur);
             }
             if (!TestFonction::checkTimeExist($pData['timeDebutReservation'])) {
                 $lVr->setValid(false);
                 $lVr->getTimeDebutReservation()->setValid(false);
                 $lErreur = new VRerreur();
                 $lErreur->setCode(MessagesErreurs::ERR_107_CODE);
                 $lErreur->setMessage(MessagesErreurs::ERR_107_MSG);
                 $lVr->getTimeDebutReservation()->addErreur($lErreur);
             }
             if (!TestFonction::checkDate($pData['dateFinReservation'], 'db')) {
                 $lVr->setValid(false);
                 $lVr->getDateFinReservation()->setValid(false);
                 $lErreur = new VRerreur();
                 $lErreur->setCode(MessagesErreurs::ERR_103_CODE);
                 $lErreur->setMessage(MessagesErreurs::ERR_103_MSG);
                 $lVr->getDateFinReservation()->addErreur($lErreur);
             }
             if (!TestFonction::checkDateExist($pData['dateFinReservation'], 'db')) {
                 $lVr->setValid(false);
                 $lVr->getDateFinReservation()->setValid(false);
                 $lErreur = new VRerreur();
                 $lErreur->setCode(MessagesErreurs::ERR_105_CODE);
                 $lErreur->setMessage(MessagesErreurs::ERR_105_MSG);
                 $lVr->getDateFinReservation()->addErreur($lErreur);
             }
             if (!TestFonction::checkTime($pData['timeFinReservation'])) {
                 $lVr->setValid(false);
                 $lVr->getTimeFinReservation()->setValid(false);
                 $lErreur = new VRerreur();
                 $lErreur->setCode(MessagesErreurs::ERR_106_CODE);
                 $lErreur->setMessage(MessagesErreurs::ERR_106_MSG);
                 $lVr->getTimeFinReservation()->addErreur($lErreur);
             }
             if (!TestFonction::checkTimeExist($pData['timeFinReservation'])) {
                 $lVr->setValid(false);
                 $lVr->getTimeFinReservation()->setValid(false);
                 $lErreur = new VRerreur();
                 $lErreur->setCode(MessagesErreurs::ERR_107_CODE);
                 $lErreur->setMessage(MessagesErreurs::ERR_107_MSG);
                 $lVr->getTimeFinReservation()->addErreur($lErreur);
             }
             if (!TestFonction::checkLength($pData['archive'], 0, 1)) {
                 $lVr->setValid(false);
                 $lVr->getArchive()->setValid(false);
                 $lErreur = new VRerreur();
                 $lErreur->setCode(MessagesErreurs::ERR_101_CODE);
                 $lErreur->setMessage(MessagesErreurs::ERR_101_MSG);
                 $lVr->getArchive()->addErreur($lErreur);
             }
             if (!is_array($pData['produits'])) {
                 $lVr->setValid(false);
                 $lVr->getLog()->setValid(false);
                 $lErreur = new VRerreur();
                 $lErreur->setCode(MessagesErreurs::ERR_111_CODE);
                 $lErreur->setMessage(MessagesErreurs::ERR_111_MSG);
                 $lVr->getLog()->addErreur($lErreur);
             }
             //Tests Fonctionnels
             if (empty($pData['numero'])) {
                 $lVr->setValid(false);
                 $lVr->getNumero()->setValid(false);
                 $lErreur = new VRerreur();
                 $lErreur->setCode(MessagesErreurs::ERR_201_CODE);
                 $lErreur->setMessage(MessagesErreurs::ERR_201_MSG);
                 $lVr->getNumero()->addErreur($lErreur);
             }
             if (empty($pData['dateMarcheDebut'])) {
                 $lVr->setValid(false);
                 $lVr->getDateMarcheDebut()->setValid(false);
                 $lErreur = new VRerreur();
                 $lErreur->setCode(MessagesErreurs::ERR_201_CODE);
                 $lErreur->setMessage(MessagesErreurs::ERR_201_MSG);
                 $lVr->getDateMarcheDebut()->addErreur($lErreur);
             }
             if (empty($pData['timeMarcheDebut'])) {
                 $lVr->setValid(false);
                 $lVr->getTimeMarcheDebut()->setValid(false);
                 $lErreur = new VRerreur();
                 $lErreur->setCode(MessagesErreurs::ERR_201_CODE);
                 $lErreur->setMessage(MessagesErreurs::ERR_201_MSG);
                 $lVr->getTimeMarcheDebut()->addErreur($lErreur);
             }
             if (empty($pData['dateMarcheFin'])) {
                 $lVr->setValid(false);
                 $lVr->getDateMarcheFin()->setValid(false);
                 $lErreur = new VRerreur();
                 $lErreur->setCode(MessagesErreurs::ERR_201_CODE);
                 $lErreur->setMessage(MessagesErreurs::ERR_201_MSG);
                 $lVr->getDateMarcheFin()->addErreur($lErreur);
             }
             if (empty($pData['timeMarcheFin'])) {
                 $lVr->setValid(false);
                 $lVr->getTimeMarcheFin()->setValid(false);
                 $lErreur = new VRerreur();
                 $lErreur->setCode(MessagesErreurs::ERR_201_CODE);
                 $lErreur->setMessage(MessagesErreurs::ERR_201_MSG);
                 $lVr->getTimeMarcheFin()->addErreur($lErreur);
             }
             if (empty($pData['dateDebutReservation'])) {
                 $lVr->setValid(false);
                 $lVr->getDateDebutReservation()->setValid(false);
                 $lErreur = new VRerreur();
                 $lErreur->setCode(MessagesErreurs::ERR_201_CODE);
                 $lErreur->setMessage(MessagesErreurs::ERR_201_MSG);
                 $lVr->getDateDebutReservation()->addErreur($lErreur);
             }
             if (empty($pData['timeDebutReservation'])) {
                 $lVr->setValid(false);
                 $lVr->getTimeDebutReservation()->setValid(false);
                 $lErreur = new VRerreur();
                 $lErreur->setCode(MessagesErreurs::ERR_201_CODE);
                 $lErreur->setMessage(MessagesErreurs::ERR_201_MSG);
                 $lVr->getTimeDebutReservation()->addErreur($lErreur);
             }
             if (empty($pData['dateFinReservation'])) {
                 $lVr->setValid(false);
                 $lVr->getDateFinReservation()->setValid(false);
                 $lErreur = new VRerreur();
                 $lErreur->setCode(MessagesErreurs::ERR_201_CODE);
                 $lErreur->setMessage(MessagesErreurs::ERR_201_MSG);
                 $lVr->getDateFinReservation()->addErreur($lErreur);
             }
             if (empty($pData['timeFinReservation'])) {
                 $lVr->setValid(false);
                 $lVr->getTimeFinReservation()->setValid(false);
                 $lErreur = new VRerreur();
                 $lErreur->setCode(MessagesErreurs::ERR_201_CODE);
                 $lErreur->setMessage(MessagesErreurs::ERR_201_MSG);
                 $lVr->getTimeFinReservation()->addErreur($lErreur);
             }
             if (empty($pData['archive']) && intval($pData['archive']) != 0) {
                 $lVr->setValid(false);
                 $lVr->getArchive()->setValid(false);
                 $lErreur = new VRerreur();
                 $lErreur->setCode(MessagesErreurs::ERR_201_CODE);
                 $lErreur->setMessage(MessagesErreurs::ERR_201_MSG);
                 $lVr->getArchive()->addErreur($lErreur);
             }
             if (empty($pData['produits'])) {
                 $lVr->setValid(false);
                 $lVr->getLog()->setValid(false);
                 $lErreur = new VRerreur();
                 $lErreur->setCode(MessagesErreurs::ERR_207_CODE);
                 $lErreur->setMessage(MessagesErreurs::ERR_207_MSG);
                 $lVr->getLog()->addErreur($lErreur);
             }
             if (!TestFonction::dateTimeEstPLusGrandeEgale($pData['dateFinReservation'] . " " . $pData['timeFinReservation'], $pData['dateDebutReservation'] . " " . $pData['timeDebutReservation'], "db")) {
                 if (!TestFonction::dateEstPLusGrandeEgale($pData['dateFinReservation'], $pData['dateDebutReservation'], "db")) {
                     $lVr->setValid(false);
                     $lVr->getDateDebutReservation()->setValid(false);
                     $lVr->getDateFinReservation()->setValid(false);
                     $lErreur = new VRerreur();
                     $lErreur->setCode(MessagesErreurs::ERR_247_CODE);
                     $lErreur->setMessage(MessagesErreurs::ERR_247_MSG);
                     $lVr->getDateDebutReservation()->addErreur($lErreur);
                     $lVr->getDateFinReservation()->addErreur($lErreur);
                 } else {
                     if (TestFonction::timeEstPLusGrandeEgale($pData['timeDebutReservation'], $pData['timeFinReservation'])) {
                         $lVr->setValid(false);
                         $lVr->getTimeDebutReservation()->setValid(false);
                         $lVr->getTimeFinReservation()->setValid(false);
                         $lErreur = new VRerreur();
                         $lErreur->setCode(MessagesErreurs::ERR_248_CODE);
                         $lErreur->setMessage(MessagesErreurs::ERR_248_MSG);
                         $lVr->getTimeDebutReservation()->addErreur($lErreur);
                         $lVr->getTimeFinReservation()->addErreur($lErreur);
                     }
                 }
             }
             if (!TestFonction::dateTimeEstPLusGrandeEgale($pData['dateMarcheDebut'] . " " . $pData['timeMarcheDebut'], $pData['dateFinReservation'] . " " . $pData['timeFinReservation'], "db")) {
                 if (!TestFonction::dateEstPLusGrandeEgale($pData['dateMarcheDebut'], $pData['dateFinReservation'], "db")) {
                     $lVr->setValid(false);
                     $lVr->getDateMarcheDebut()->setValid(false);
                     $lVr->getDateFinReservation()->setValid(false);
                     $lErreur = new VRerreur();
                     $lErreur->setCode(MessagesErreurs::ERR_202_CODE);
                     $lErreur->setMessage(MessagesErreurs::ERR_202_MSG);
                     $lVr->getDateMarcheDebut()->addErreur($lErreur);
                     $lVr->getDateFinReservation()->addErreur($lErreur);
                 } else {
                     if (TestFonction::timeEstPLusGrandeEgale($pData['timeFinReservation'], $pData['timeMarcheDebut'])) {
                         $lVr->setValid(false);
                         $lVr->getTimeMarcheDebut()->setValid(false);
                         $lVr->getTimeFinReservation()->setValid(false);
                         $lErreur = new VRerreur();
                         $lErreur->setCode(MessagesErreurs::ERR_203_CODE);
                         $lErreur->setMessage(MessagesErreurs::ERR_203_MSG);
                         $lVr->getTimeMarcheDebut()->addErreur($lErreur);
                         $lVr->getTimeFinReservation()->addErreur($lErreur);
                     }
                 }
             }
             if (TestFonction::dateTimeEstPLusGrandeEgale($pData['dateMarcheDebut'] . " " . $pData['timeMarcheDebut'], $pData['dateMarcheFin'] . " " . $pData['timeMarcheFin'], "db")) {
                 if (TestFonction::timeEstPLusGrandeEgale($pData['timeMarcheDebut'], $pData['timeMarcheFin'])) {
                     $lVr->setValid(false);
                     $lVr->getTimeMarcheDebut()->setValid(false);
                     $lVr->getTimeMarcheFin()->setValid(false);
                     $lErreur = new VRerreur();
                     $lErreur->setCode(MessagesErreurs::ERR_204_CODE);
                     $lErreur->setMessage(MessagesErreurs::ERR_204_MSG);
                     $lVr->getTimeMarcheDebut()->addErreur($lErreur);
                     $lVr->getTimeMarcheFin()->addErreur($lErreur);
                 } else {
                     if (TestFonction::dateEstPLusGrandeEgale($pData['dateMarcheDebut'], $pData['dateMarcheFin'], "db")) {
                         $lVr->setValid(false);
                         $lVr->getDateMarcheDebut()->setValid(false);
                         $lVr->getDateMarcheFin()->setValid(false);
                         $lErreur = new VRerreur();
                         $lErreur->setCode(MessagesErreurs::ERR_208_CODE);
                         $lErreur->setMessage(MessagesErreurs::ERR_208_MSG);
                         $lVr->getDateMarcheDebut()->addErreur($lErreur);
                         $lVr->getDateMarcheFin()->addErreur($lErreur);
                     }
                 }
             }
             if (is_array($pData['produits'])) {
                 $lValidProduit = new ProduitCommandeValid();
                 $i = 0;
                 while (isset($pData['produits'][$i])) {
                     $lVrProduit = $lValidProduit->validAjout($pData['produits'][$i]);
                     if (!$lVrProduit->getValid()) {
                         $lVr->setValid(false);
                     }
                     $lVr->addProduits($lVrProduit);
                     $i++;
                 }
             }
             // Test si la commande existe
             $lCommande = CommandeManager::select($pData['id']);
             if ($lCommande->getId() != $pData['id']) {
                 $lVr->setValid(false);
                 $lVr->getId()->setValid(false);
                 $lErreur = new VRerreur();
                 $lErreur->setCode(MessagesErreurs::ERR_216_CODE);
                 $lErreur->setMessage(MessagesErreurs::ERR_216_MSG);
                 $lVr->getId()->addErreur($lErreur);
             }
         }
         return $lVr;
     }
     return $lTestId;
 }
 /**
  * @name validUpdate($pData)
  * @return ProduitCommandeVR
  * @desc Test la validite de l'élément
  */
 public static function validUpdate($pData)
 {
     $lTestId = ProduitCommandeValid::validDelete($pData);
     if ($lTestId->getValid()) {
         $lVr = new ProduitCommandeVR();
         //Tests Techniques
         if (!TestFonction::checkLength($pData['idNom'], 0, 11)) {
             $lVr->setValid(false);
             $lVr->getIdNom()->setValid(false);
             $lErreur = new VRerreur();
             $lErreur->setCode(MessagesErreurs::ERR_101_CODE);
             $lErreur->setMessage(MessagesErreurs::ERR_101_MSG);
             $lVr->getIdNom()->addErreur($lErreur);
         }
         if (!is_int((int) $pData['idNom'])) {
             $lVr->setValid(false);
             $lVr->getIdNom()->setValid(false);
             $lErreur = new VRerreur();
             $lErreur->setCode(MessagesErreurs::ERR_108_CODE);
             $lErreur->setMessage(MessagesErreurs::ERR_108_MSG);
             $lVr->getIdNom()->addErreur($lErreur);
         }
         if (!TestFonction::checkLength($pData['idProducteur'], 0, 11)) {
             $lVr->setValid(false);
             $lVr->getIdProducteur()->setValid(false);
             $lErreur = new VRerreur();
             $lErreur->setCode(MessagesErreurs::ERR_101_CODE);
             $lErreur->setMessage(MessagesErreurs::ERR_101_MSG);
             $lVr->getIdProducteur()->addErreur($lErreur);
         }
         if (!is_int((int) $pData['idProducteur'])) {
             $lVr->setValid(false);
             $lVr->getIdProducteur()->setValid(false);
             $lErreur = new VRerreur();
             $lErreur->setCode(MessagesErreurs::ERR_108_CODE);
             $lErreur->setMessage(MessagesErreurs::ERR_108_MSG);
             $lVr->getIdProducteur()->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['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 ($pData['idCategorie'] != '' && !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['categorie'], 0, 50)) {
             $lVr->setValid(false);
             $lVr->getCategorie()->setValid(false);
             $lErreur = new VRerreur();
             $lErreur->setCode(MessagesErreurs::ERR_101_CODE);
             $lErreur->setMessage(MessagesErreurs::ERR_101_MSG);
             $lVr->getCategorie()->addErreur($lErreur);
         }
         if (!TestFonction::checkLength($pData['unite'], 0, 20)) {
             $lVr->setValid(false);
             $lVr->getUnite()->setValid(false);
             $lErreur = new VRerreur();
             $lErreur->setCode(MessagesErreurs::ERR_101_CODE);
             $lErreur->setMessage(MessagesErreurs::ERR_101_MSG);
             $lVr->getUnite()->addErreur($lErreur);
         }
         if (!TestFonction::checkLength($pData['qteMaxCommande'], 0, 12) || $pData['qteMaxCommande'] > 999999999.99) {
             $lVr->setValid(false);
             $lVr->getQteMaxCommande()->setValid(false);
             $lErreur = new VRerreur();
             $lErreur->setCode(MessagesErreurs::ERR_101_CODE);
             $lErreur->setMessage(MessagesErreurs::ERR_101_MSG);
             $lVr->getQteMaxCommande()->addErreur($lErreur);
         }
         if (!is_float((double) $pData['qteMaxCommande'])) {
             $lVr->setValid(false);
             $lVr->getQteMaxCommande()->setValid(false);
             $lErreur = new VRerreur();
             $lErreur->setCode(MessagesErreurs::ERR_109_CODE);
             $lErreur->setMessage(MessagesErreurs::ERR_109_MSG);
             $lVr->getQteMaxCommande()->addErreur($lErreur);
         }
         if (!TestFonction::checkLength($pData['qteRestante'], 0, 12) || $pData['qteRestante'] > 999999999.99) {
             $lVr->setValid(false);
             $lVr->getQteRestante()->setValid(false);
             $lErreur = new VRerreur();
             $lErreur->setCode(MessagesErreurs::ERR_101_CODE);
             $lErreur->setMessage(MessagesErreurs::ERR_101_MSG);
             $lVr->getQteRestante()->addErreur($lErreur);
         }
         if (!is_float((double) $pData['qteRestante'])) {
             $lVr->setValid(false);
             $lVr->getQteRestante()->setValid(false);
             $lErreur = new VRerreur();
             $lErreur->setCode(MessagesErreurs::ERR_109_CODE);
             $lErreur->setMessage(MessagesErreurs::ERR_109_MSG);
             $lVr->getQteRestante()->addErreur($lErreur);
         }
         if (!is_array($pData['lots'])) {
             $lVr->setValid(false);
             $lVr->getLog()->setValid(false);
             $lErreur = new VRerreur();
             $lErreur->setCode(MessagesErreurs::ERR_110_CODE);
             $lErreur->setMessage(MessagesErreurs::ERR_110_MSG);
             $lVr->getLog()->addErreur($lErreur);
         }
         //Tests Fonctionnels
         if (empty($pData['idNom'])) {
             $lVr->setValid(false);
             $lVr->getIdNom()->setValid(false);
             $lErreur = new VRerreur();
             $lErreur->setCode(MessagesErreurs::ERR_201_CODE);
             $lErreur->setMessage(MessagesErreurs::ERR_201_MSG);
             $lVr->getIdNom()->addErreur($lErreur);
         }
         if (empty($pData['idProducteur'])) {
             $lVr->setValid(false);
             $lVr->getIdProducteur()->setValid(false);
             $lErreur = new VRerreur();
             $lErreur->setCode(MessagesErreurs::ERR_201_CODE);
             $lErreur->setMessage(MessagesErreurs::ERR_201_MSG);
             $lVr->getIdProducteur()->addErreur($lErreur);
         }
         if (empty($pData['unite'])) {
             $lVr->setValid(false);
             $lVr->getUnite()->setValid(false);
             $lErreur = new VRerreur();
             $lErreur->setCode(MessagesErreurs::ERR_201_CODE);
             $lErreur->setMessage(MessagesErreurs::ERR_201_MSG);
             $lVr->getUnite()->addErreur($lErreur);
         }
         if (empty($pData['qteMaxCommande'])) {
             $lVr->setValid(false);
             $lVr->getQteMaxCommande()->setValid(false);
             $lErreur = new VRerreur();
             $lErreur->setCode(MessagesErreurs::ERR_201_CODE);
             $lErreur->setMessage(MessagesErreurs::ERR_201_MSG);
             $lVr->getQteMaxCommande()->addErreur($lErreur);
         }
         if (empty($pData['qteRestante'])) {
             $lVr->setValid(false);
             $lVr->getQteRestante()->setValid(false);
             $lErreur = new VRerreur();
             $lErreur->setCode(MessagesErreurs::ERR_201_CODE);
             $lErreur->setMessage(MessagesErreurs::ERR_201_MSG);
             $lVr->getQteRestante()->addErreur($lErreur);
         }
         if (empty($pData['lots'])) {
             $lVr->setValid(false);
             $lVr->getLog()->setValid(false);
             $lErreur = new VRerreur();
             $lErreur->setCode(MessagesErreurs::ERR_201_CODE);
             $lErreur->setMessage(MessagesErreurs::ERR_201_MSG);
             $lVr->getLog()->addErreur($lErreur);
         }
         // Test de l'existance du produit
         if ($lVr->getIdNom()->getValid()) {
             $lNomProduit = NomProduitManager::select($pData['idNom']);
             $lId = $lNomProduit->getId();
             if (empty($lId)) {
                 $lVr->setValid(false);
                 $lVr->getLog()->setValid(false);
                 $lErreur = new VRerreur();
                 $lErreur->setCode(MessagesErreurs::ERR_210_CODE);
                 $lErreur->setMessage(MessagesErreurs::ERR_210_MSG);
                 $lVr->getLog()->addErreur($lErreur);
             }
         }
         // Test de l'existance du producteur
         if ($lVr->getIdProducteur()->getValid()) {
             $lIdProducteur = ProducteurManager::select($pData['idProducteur']);
             $lId = $lIdProducteur->getId();
             if (empty($lId)) {
                 $lVr->setValid(false);
                 $lVr->getLog()->setValid(false);
                 $lErreur = new VRerreur();
                 $lErreur->setCode(MessagesErreurs::ERR_234_CODE);
                 $lErreur->setMessage(MessagesErreurs::ERR_234_MSG);
                 $lVr->getLog()->addErreur($lErreur);
             }
         }
         // Les quantités sont positives
         if ($pData['qteMaxCommande'] <= 0) {
             $lVr->setValid(false);
             $lVr->getQteMaxCommande()->setValid(false);
             $lErreur = new VRerreur();
             $lErreur->setCode(MessagesErreurs::ERR_215_CODE);
             $lErreur->setMessage(MessagesErreurs::ERR_215_MSG);
             $lVr->getQteMaxCommande()->addErreur($lErreur);
         }
         if ($pData['qteRestante'] <= 0) {
             $lVr->setValid(false);
             $lVr->getQteRestante()->setValid(false);
             $lErreur = new VRerreur();
             $lErreur->setCode(MessagesErreurs::ERR_215_CODE);
             $lErreur->setMessage(MessagesErreurs::ERR_215_MSG);
             $lVr->getQteRestante()->addErreur($lErreur);
         }
         if ($pData['qteMaxCommande'] > $pData['qteRestante']) {
             $lVr->setValid(false);
             $lVr->getQteRestante()->setValid(false);
             $lVr->getQteMaxCommande()->setValid(false);
             $lErreur = new VRerreur();
             $lErreur->setCode(MessagesErreurs::ERR_205_CODE);
             $lErreur->setMessage(MessagesErreurs::ERR_205_MSG);
             $lVr->getQteRestante()->addErreur($lErreur);
             $lVr->getQteMaxCommande()->addErreur($lErreur);
         }
         if (is_array($pData['lots'])) {
             $lValidLot = new DetailCommandeValid();
             $i = 0;
             while (isset($pData['lots'][$i])) {
                 $lVrLot = $lValidLot->validUpdate($pData['lots'][$i]);
                 if (!$lVrLot->getValid()) {
                     $lVr->setValid(false);
                 }
                 if (floatval($pData['lots'][$i]['taille']) > floatval($pData['qteMaxCommande'])) {
                     $lVr->setValid(false);
                     $lVrLot->setValid(false);
                     $lVrLot->getTaille()->setValid(false);
                     $lErreur = new VRerreur();
                     $lErreur->setCode(MessagesErreurs::ERR_206_CODE);
                     $lErreur->setMessage(MessagesErreurs::ERR_206_MSG);
                     $lVrLot->getTaille()->addErreur($lErreur);
                 }
                 $lVr->addLots($lVrLot);
                 $i++;
             }
         }
         return $lVr;
     }
     return $lTestId;
 }