/**
  * @name validAjout($pData)
  * @returnCommandeDetailReservationVR
  * @desc Test la validite de l'élément
  */
 public static function validAjout($pData)
 {
     $lVr = new ProduitDetailAchatVR();
     //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['idStock'])) {
         $lVr->setValid(false);
         $lVr->getIdStock()->setValid(false);
         $lErreur = new VRerreur();
         $lErreur->setCode(MessagesErreurs::ERR_201_CODE);
         $lErreur->setMessage(MessagesErreurs::ERR_201_MSG);
         $lVr->getIdStock()->addErreur($lErreur);
     }
     if (!isset($pData['idDetailOperation'])) {
         $lVr->setValid(false);
         $lVr->getIdDetailOperation()->setValid(false);
         $lErreur = new VRerreur();
         $lErreur->setCode(MessagesErreurs::ERR_201_CODE);
         $lErreur->setMessage(MessagesErreurs::ERR_201_MSG);
         $lVr->getIdDetailOperation()->addErreur($lErreur);
     }
     if (!isset($pData['idStockSolidaire'])) {
         $lVr->setValid(false);
         $lVr->getIdStockSolidaire()->setValid(false);
         $lErreur = new VRerreur();
         $lErreur->setCode(MessagesErreurs::ERR_201_CODE);
         $lErreur->setMessage(MessagesErreurs::ERR_201_MSG);
         $lVr->getIdStockSolidaire()->addErreur($lErreur);
     }
     if (!isset($pData['idDetailOperationSolidaire'])) {
         $lVr->setValid(false);
         $lVr->getIdDetailOperationSolidaire()->setValid(false);
         $lErreur = new VRerreur();
         $lErreur->setCode(MessagesErreurs::ERR_201_CODE);
         $lErreur->setMessage(MessagesErreurs::ERR_201_MSG);
         $lVr->getIdDetailOperationSolidaire()->addErreur($lErreur);
     }
     if (!isset($pData['idDetailCommande'])) {
         $lVr->setValid(false);
         $lVr->getIdDetailCommande()->setValid(false);
         $lErreur = new VRerreur();
         $lErreur->setCode(MessagesErreurs::ERR_201_CODE);
         $lErreur->setMessage(MessagesErreurs::ERR_201_MSG);
         $lVr->getIdDetailCommande()->addErreur($lErreur);
     }
     if (!isset($pData['idModeleLot'])) {
         $lVr->setValid(false);
         $lVr->getIdModeleLot()->setValid(false);
         $lErreur = new VRerreur();
         $lErreur->setCode(MessagesErreurs::ERR_201_CODE);
         $lErreur->setMessage(MessagesErreurs::ERR_201_MSG);
         $lVr->getIdModeleLot()->addErreur($lErreur);
     }
     if (!isset($pData['idDetailCommandeSolidaire'])) {
         $lVr->setValid(false);
         $lVr->getIdDetailCommandeSolidaire()->setValid(false);
         $lErreur = new VRerreur();
         $lErreur->setCode(MessagesErreurs::ERR_201_CODE);
         $lErreur->setMessage(MessagesErreurs::ERR_201_MSG);
         $lVr->getIdDetailCommandeSolidaire()->addErreur($lErreur);
     }
     if (!isset($pData['idModeleLotSolidaire'])) {
         $lVr->setValid(false);
         $lVr->getIdModeleLotSolidaire()->setValid(false);
         $lErreur = new VRerreur();
         $lErreur->setCode(MessagesErreurs::ERR_201_CODE);
         $lErreur->setMessage(MessagesErreurs::ERR_201_MSG);
         $lVr->getIdModeleLotSolidaire()->addErreur($lErreur);
     }
     if (!isset($pData['quantite'])) {
         $lVr->setValid(false);
         $lVr->getQuantite()->setValid(false);
         $lErreur = new VRerreur();
         $lErreur->setCode(MessagesErreurs::ERR_201_CODE);
         $lErreur->setMessage(MessagesErreurs::ERR_201_MSG);
         $lVr->getQuantite()->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['quantiteSolidaire'])) {
         $lVr->setValid(false);
         $lVr->getQuantiteSolidaire()->setValid(false);
         $lErreur = new VRerreur();
         $lErreur->setCode(MessagesErreurs::ERR_201_CODE);
         $lErreur->setMessage(MessagesErreurs::ERR_201_MSG);
         $lVr->getQuantiteSolidaire()->addErreur($lErreur);
     }
     if (!isset($pData['uniteSolidaire'])) {
         $lVr->setValid(false);
         $lVr->getUniteSolidaire()->setValid(false);
         $lErreur = new VRerreur();
         $lErreur->setCode(MessagesErreurs::ERR_201_CODE);
         $lErreur->setMessage(MessagesErreurs::ERR_201_MSG);
         $lVr->getUniteSolidaire()->addErreur($lErreur);
     }
     if (!isset($pData['montant'])) {
         $lVr->setValid(false);
         $lVr->getMontant()->setValid(false);
         $lErreur = new VRerreur();
         $lErreur->setCode(MessagesErreurs::ERR_201_CODE);
         $lErreur->setMessage(MessagesErreurs::ERR_201_MSG);
         $lVr->getMontant()->addErreur($lErreur);
     }
     if (!isset($pData['montantSolidaire'])) {
         $lVr->setValid(false);
         $lVr->getMontantSolidaire()->setValid(false);
         $lErreur = new VRerreur();
         $lErreur->setCode(MessagesErreurs::ERR_201_CODE);
         $lErreur->setMessage(MessagesErreurs::ERR_201_MSG);
         $lVr->getMontantSolidaire()->addErreur($lErreur);
     }
     if ($lVr->getValid()) {
         //Tests Techniques
         if (!is_int((int) $pData['idNomProduit'])) {
             $lVr->setValid(false);
             $lVr->getIdNomProduit()->setValid(false);
             $lErreur = new VRerreur();
             $lErreur->setCode(MessagesErreurs::ERR_104_CODE);
             $lErreur->setMessage(MessagesErreurs::ERR_104_MSG);
             $lVr->getIdNomProduit()->addErreur($lErreur);
         }
         if ($pData['quantite'] != '' && (!TestFonction::checkLength($pData['quantite'], 0, 12) || $pData['quantite'] > 999999999.99)) {
             $lVr->setValid(false);
             $lVr->getQuantite()->setValid(false);
             $lErreur = new VRerreur();
             $lErreur->setCode(MessagesErreurs::ERR_101_CODE);
             $lErreur->setMessage(MessagesErreurs::ERR_101_MSG);
             $lVr->getQuantite()->addErreur($lErreur);
         }
         if ($pData['quantite'] != '' && !is_float((double) $pData['quantite'])) {
             $lVr->setValid(false);
             $lVr->getQuantite()->setValid(false);
             $lErreur = new VRerreur();
             $lErreur->setCode(MessagesErreurs::ERR_109_CODE);
             $lErreur->setMessage(MessagesErreurs::ERR_109_MSG);
             $lVr->getQuantite()->addErreur($lErreur);
         }
         if ($pData['unite'] != '' && !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 ($pData['quantiteSolidaire'] != '' && (!TestFonction::checkLength($pData['quantiteSolidaire'], 0, 12) || $pData['quantiteSolidaire'] > 999999999.99)) {
             $lVr->setValid(false);
             $lVr->getQuantiteSolidaire()->setValid(false);
             $lErreur = new VRerreur();
             $lErreur->setCode(MessagesErreurs::ERR_101_CODE);
             $lErreur->setMessage(MessagesErreurs::ERR_101_MSG);
             $lVr->getQuantiteSolidaire()->addErreur($lErreur);
         }
         if ($pData['quantiteSolidaire'] != '' && !is_float((double) $pData['quantiteSolidaire'])) {
             $lVr->setValid(false);
             $lVr->getQuantiteSolidaire()->setValid(false);
             $lErreur = new VRerreur();
             $lErreur->setCode(MessagesErreurs::ERR_109_CODE);
             $lErreur->setMessage(MessagesErreurs::ERR_109_MSG);
             $lVr->getQuantiteSolidaire()->addErreur($lErreur);
         }
         if ($pData['uniteSolidaire'] != '' && !TestFonction::checkLength($pData['uniteSolidaire'], 0, 20)) {
             $lVr->setValid(false);
             $lVr->getUniteSolidaire()->setValid(false);
             $lErreur = new VRerreur();
             $lErreur->setCode(MessagesErreurs::ERR_101_CODE);
             $lErreur->setMessage(MessagesErreurs::ERR_101_MSG);
             $lVr->getUniteSolidaire()->addErreur($lErreur);
         }
         if ($pData['montant'] != '' && (!TestFonction::checkLength($pData['montant'], 0, 12) || $pData['montant'] > 999999999.99)) {
             $lVr->setValid(false);
             $lVr->getMontant()->setValid(false);
             $lErreur = new VRerreur();
             $lErreur->setCode(MessagesErreurs::ERR_101_CODE);
             $lErreur->setMessage(MessagesErreurs::ERR_101_MSG);
             $lVr->getMontant()->addErreur($lErreur);
         }
         if ($pData['montant'] != '' && !is_float((double) $pData['montant'])) {
             $lVr->setValid(false);
             $lVr->getMontant()->setValid(false);
             $lErreur = new VRerreur();
             $lErreur->setCode(MessagesErreurs::ERR_109_CODE);
             $lErreur->setMessage(MessagesErreurs::ERR_109_MSG);
             $lVr->getMontant()->addErreur($lErreur);
         }
         if ($pData['montantSolidaire'] != '' && (!TestFonction::checkLength($pData['montantSolidaire'], 0, 12) || $pData['montantSolidaire'] > 999999999.99)) {
             $lVr->setValid(false);
             $lVr->getMontantSolidaire()->setValid(false);
             $lErreur = new VRerreur();
             $lErreur->setCode(MessagesErreurs::ERR_101_CODE);
             $lErreur->setMessage(MessagesErreurs::ERR_101_MSG);
             $lVr->getMontantSolidaire()->addErreur($lErreur);
         }
         if ($pData['montantSolidaire'] != '' && !is_float((double) $pData['montantSolidaire'])) {
             $lVr->setValid(false);
             $lVr->getMontantSolidaire()->setValid(false);
             $lErreur = new VRerreur();
             $lErreur->setCode(MessagesErreurs::ERR_109_CODE);
             $lErreur->setMessage(MessagesErreurs::ERR_109_MSG);
             $lVr->getMontantSolidaire()->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 ($pData['montant'] != '' && empty($pData['quantite'])) {
             $lVr->setValid(false);
             $lVr->getQuantite()->setValid(false);
             $lErreur = new VRerreur();
             $lErreur->setCode(MessagesErreurs::ERR_201_CODE);
             $lErreur->setMessage(MessagesErreurs::ERR_201_MSG);
             $lVr->getQuantite()->addErreur($lErreur);
         }
         if ($pData['quantite'] != '' && empty($pData['montant'])) {
             $lVr->setValid(false);
             $lVr->getMontant()->setValid(false);
             $lErreur = new VRerreur();
             $lErreur->setCode(MessagesErreurs::ERR_201_CODE);
             $lErreur->setMessage(MessagesErreurs::ERR_201_MSG);
             $lVr->getMontant()->addErreur($lErreur);
         }
         if ($pData['montantSolidaire'] != '' && empty($pData['quantiteSolidaire'])) {
             $lVr->setValid(false);
             $lVr->getQuantiteSolidaire()->setValid(false);
             $lErreur = new VRerreur();
             $lErreur->setCode(MessagesErreurs::ERR_201_CODE);
             $lErreur->setMessage(MessagesErreurs::ERR_201_MSG);
             $lVr->getQuantiteSolidaire()->addErreur($lErreur);
         }
         if ($pData['quantiteSolidaire'] != '' && empty($pData['montantSolidaire'])) {
             $lVr->setValid(false);
             $lVr->getMontantSolidaire()->setValid(false);
             $lErreur = new VRerreur();
             $lErreur->setCode(MessagesErreurs::ERR_201_CODE);
             $lErreur->setMessage(MessagesErreurs::ERR_201_MSG);
             $lVr->getMontantSolidaire()->addErreur($lErreur);
         }
         if ($pData['quantite'] != '' && $pData['quantite'] >= 0) {
             $lVr->setValid(false);
             $lVr->getQuantite()->setValid(false);
             $lErreur = new VRerreur();
             $lErreur->setCode(MessagesErreurs::ERR_215_CODE);
             $lErreur->setMessage(MessagesErreurs::ERR_215_MSG);
             $lVr->getQuantite()->addErreur($lErreur);
         }
         if ($pData['quantiteSolidaire'] != '' && $pData['quantiteSolidaire'] >= 0) {
             $lVr->setValid(false);
             $lVr->getQuantiteSolidaire()->setValid(false);
             $lErreur = new VRerreur();
             $lErreur->setCode(MessagesErreurs::ERR_215_CODE);
             $lErreur->setMessage(MessagesErreurs::ERR_215_MSG);
             $lVr->getQuantiteSolidaire()->addErreur($lErreur);
         }
         if ($pData['montant'] != '' && $pData['montant'] >= 0) {
             $lVr->setValid(false);
             $lVr->getMontant()->setValid(false);
             $lErreur = new VRerreur();
             $lErreur->setCode(MessagesErreurs::ERR_215_CODE);
             $lErreur->setMessage(MessagesErreurs::ERR_215_MSG);
             $lVr->getMontant()->addErreur($lErreur);
         }
         if ($pData['montantSolidaire'] != '' && $pData['montantSolidaire'] >= 0) {
             $lVr->setValid(false);
             $lVr->getMontantSolidaire()->setValid(false);
             $lErreur = new VRerreur();
             $lErreur->setCode(MessagesErreurs::ERR_215_CODE);
             $lErreur->setMessage(MessagesErreurs::ERR_215_MSG);
             $lVr->getMontantSolidaire()->addErreur($lErreur);
         }
         $lNomProduitService = new NomProduitService();
         $lNomProduit = $lNomProduitService->get($pData["idNomProduit"]);
         if ($lNomProduit->getId() != $pData["idNomProduit"]) {
             $lVr->setValid(false);
             $lVr->getLog()->setValid(false);
             $lErreur = new VRerreur();
             $lErreur->setCode(MessagesErreurs::ERR_216_CODE);
             $lErreur->setMessage(MessagesErreurs::ERR_216_MSG);
             $lVr->getLog()->addErreur($lErreur);
         }
     }
     return $lVr;
 }
 /**
  * @name getUniteProduit($pParam)
  * @return UniteNomProduitResponse
  * @desc Retourne la liste des produits d'une ferme
  */
 public function getUniteProduit($pParam)
 {
     $lVr = NomProduitValid::validDelete($pParam);
     if ($lVr->getValid()) {
         $lNomProduitService = new NomProduitService();
         return new UniteNomProduitResponse($lNomProduitService->selectUniteNomProduit($pParam['id']));
     }
     return $lVr;
 }