/**
  * @name getProduitByIdNom($pId)
  * @param integer
  * @return ProduitAbonnementVO
  * @desc Retourne un ProduitAbonnementVO
  */
 public function getProduitByIdNom($pId)
 {
     $lProduit = ProduitAbonnementManager::selectByIdNom($pId);
     $lProduit->setLots(ListeLotAbonnementViewManager::selectByIdProduitAbonnement($lProduit->getId()));
     return $lProduit;
 }
 /**
  * @name validAjout($pData)
  * @return ListeProduitVR
  * @desc Test la validite de l'élément
  */
 public static function validAjout($pData)
 {
     $lVr = new ListeProduitVR();
     //Tests inputs
     if (!isset($pData['idNomProduit'])) {
         $lVr->setValid(false);
         $lVr->getIdNomProduit()->setValid(false);
         $lErreur = new VRerreur();
         $lErreur->setCode(MessagesErreurs::ERR_201_CODE);
         $lErreur->setMessage(MessagesErreurs::ERR_201_MSG);
         $lVr->getIdNomProduit()->addErreur($lErreur);
     }
     if (!isset($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 (!isset($pData['stockInitial'])) {
         $lVr->setValid(false);
         $lVr->getStockInitial()->setValid(false);
         $lErreur = new VRerreur();
         $lErreur->setCode(MessagesErreurs::ERR_201_CODE);
         $lErreur->setMessage(MessagesErreurs::ERR_201_MSG);
         $lVr->getStockInitial()->addErreur($lErreur);
     }
     if (!isset($pData['max'])) {
         $lVr->setValid(false);
         $lVr->getMax()->setValid(false);
         $lErreur = new VRerreur();
         $lErreur->setCode(MessagesErreurs::ERR_201_CODE);
         $lErreur->setMessage(MessagesErreurs::ERR_201_MSG);
         $lVr->getMax()->addErreur($lErreur);
     }
     if (!isset($pData['frequence'])) {
         $lVr->setValid(false);
         $lVr->getFrequence()->setValid(false);
         $lErreur = new VRerreur();
         $lErreur->setCode(MessagesErreurs::ERR_201_CODE);
         $lErreur->setMessage(MessagesErreurs::ERR_201_MSG);
         $lVr->getFrequence()->addErreur($lErreur);
     }
     if (!isset($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);
     }
     if ($lVr->getValid()) {
         if (!TestFonction::checkLength($pData['idNomProduit'], 0, 11)) {
             $lVr->setValid(false);
             $lVr->getIdNomProduit()->setValid(false);
             $lErreur = new VRerreur();
             $lErreur->setCode(MessagesErreurs::ERR_101_CODE);
             $lErreur->setMessage(MessagesErreurs::ERR_101_MSG);
             $lVr->getIdNomProduit()->addErreur($lErreur);
         }
         if (!is_int((int) $pData['idNomProduit'])) {
             $lVr->setValid(false);
             $lVr->getIdNomProduit()->setValid(false);
             $lErreur = new VRerreur();
             $lErreur->setCode(MessagesErreurs::ERR_108_CODE);
             $lErreur->setMessage(MessagesErreurs::ERR_108_MSG);
             $lVr->getIdNomProduit()->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['stockInitial'], 0, 12) || $pData['stockInitial'] > 999999999.99) {
             $lVr->setValid(false);
             $lVr->getStockInitial()->setValid(false);
             $lErreur = new VRerreur();
             $lErreur->setCode(MessagesErreurs::ERR_101_CODE);
             $lErreur->setMessage(MessagesErreurs::ERR_101_MSG);
             $lVr->getStockInitial()->addErreur($lErreur);
         }
         if (!is_float((double) $pData['stockInitial'])) {
             $lVr->setValid(false);
             $lVr->getStockInitial()->setValid(false);
             $lErreur = new VRerreur();
             $lErreur->setCode(MessagesErreurs::ERR_109_CODE);
             $lErreur->setMessage(MessagesErreurs::ERR_109_MSG);
             $lVr->getStockInitial()->addErreur($lErreur);
         }
         if (!TestFonction::checkLength($pData['max'], 0, 12) || $pData['max'] > 999999999.99) {
             $lVr->setValid(false);
             $lVr->getMax()->setValid(false);
             $lErreur = new VRerreur();
             $lErreur->setCode(MessagesErreurs::ERR_101_CODE);
             $lErreur->setMessage(MessagesErreurs::ERR_101_MSG);
             $lVr->getMax()->addErreur($lErreur);
         }
         if (!is_float((double) $pData['max'])) {
             $lVr->setValid(false);
             $lVr->getMax()->setValid(false);
             $lErreur = new VRerreur();
             $lErreur->setCode(MessagesErreurs::ERR_109_CODE);
             $lErreur->setMessage(MessagesErreurs::ERR_109_MSG);
             $lVr->getMax()->addErreur($lErreur);
         }
         if (!TestFonction::checkLength($pData['frequence'], 0, 200)) {
             $lVr->setValid(false);
             $lVr->getFrequence()->setValid(false);
             $lErreur = new VRerreur();
             $lErreur->setCode(MessagesErreurs::ERR_101_CODE);
             $lErreur->setMessage(MessagesErreurs::ERR_101_MSG);
             $lVr->getFrequence()->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['idNomProduit'])) {
             $lVr->setValid(false);
             $lVr->getIdNomProduit()->setValid(false);
             $lErreur = new VRerreur();
             $lErreur->setCode(MessagesErreurs::ERR_201_CODE);
             $lErreur->setMessage(MessagesErreurs::ERR_201_MSG);
             $lVr->getIdNomProduit()->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['stockInitial'])) {
             $lVr->setValid(false);
             $lVr->getStockInitial()->setValid(false);
             $lErreur = new VRerreur();
             $lErreur->setCode(MessagesErreurs::ERR_201_CODE);
             $lErreur->setMessage(MessagesErreurs::ERR_201_MSG);
             $lVr->getStockInitial()->addErreur($lErreur);
         }
         if (empty($pData['max'])) {
             $lVr->setValid(false);
             $lVr->getMax()->setValid(false);
             $lErreur = new VRerreur();
             $lErreur->setCode(MessagesErreurs::ERR_201_CODE);
             $lErreur->setMessage(MessagesErreurs::ERR_201_MSG);
             $lVr->getMax()->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->getIdNomProduit()->getValid()) {
             $lNomProduit = NomProduitManager::select($pData['idNomProduit']);
             $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);
             }
             $lProAbo = ProduitAbonnementManager::selectByIdNomProduit($pData['idNomProduit']);
             $lProAbo = $lProAbo[0];
             if ($lProAbo->getId() != NULL && $lProAbo->getEtat() == 0) {
                 $lVr->setValid(false);
                 $lVr->getLog()->setValid(false);
                 $lErreur = new VRerreur();
                 $lErreur->setCode(MessagesErreurs::ERR_251_CODE);
                 $lErreur->setMessage(MessagesErreurs::ERR_251_MSG);
                 $lVr->getLog()->addErreur($lErreur);
             }
         }
         if ($pData['stockInitial'] <= 0) {
             $lVr->setValid(false);
             $lVr->getStockInitial()->setValid(false);
             $lErreur = new VRerreur();
             $lErreur->setCode(MessagesErreurs::ERR_215_CODE);
             $lErreur->setMessage(MessagesErreurs::ERR_215_CODE);
             $lVr->getStockInitial()->addErreur($lErreur);
         }
         if ($pData['max'] <= 0 && $pData['max'] != -1) {
             $lVr->setValid(false);
             $lVr->getMax()->setValid(false);
             $lErreur = new VRerreur();
             $lErreur->setCode(MessagesErreurs::ERR_215_CODE);
             $lErreur->setMessage(MessagesErreurs::ERR_215_CODE);
             $lVr->getMax()->addErreur($lErreur);
         }
         if ($pData['max'] != -1 && $pData['max'] > $pData['stockInitial']) {
             $lVr->setValid(false);
             $lVr->getStockInitial()->setValid(false);
             $lVr->getMax()->setValid(false);
             $lErreur = new VRerreur();
             $lErreur->setCode(MessagesErreurs::ERR_205_CODE);
             $lErreur->setMessage(MessagesErreurs::ERR_205_MSG);
             $lVr->getStockInitial()->addErreur($lErreur);
             $lVr->getMax()->addErreur($lErreur);
         }
         if (is_array($pData['lots'])) {
             $lValidLot = new DetailCommandeValid();
             $i = 0;
             while (isset($pData['lots'][$i])) {
                 $lVrLot = $lValidLot->validAjout($pData['lots'][$i]);
                 if (!$lVrLot->getValid()) {
                     $lVr->setValid(false);
                 }
                 $lVr->addLots($lVrLot);
                 $i++;
             }
         }
     }
     return $lVr;
 }