/**
  * @name detailProduitMarche($pParam)
  * @param IdProduit
  * @desc Retourne le détail d'un produit
  */
 public function detailProduitMarche($pParam)
 {
     $lVr = ProduitMarcheValid::validDelete($pParam);
     if ($lVr->getValid()) {
         $lMarcheService = new MarcheService();
         $lReservationService = new ReservationService();
         $lProduit = $lMarcheService->selectProduit($pParam["id"]);
         $lId = $lProduit->getIdNom();
         $lModelesLot = ModeleLotViewManager::selectByIdNomProduit($lId);
         $lResponse = new DetailProduitResponse();
         $lResponse->setModelesLot($lModelesLot);
         $lNvLots = array();
         foreach ($lProduit->getLots() as $lLot) {
             $lReservation = $lReservationService->getReservationSurLot($lLot->getId());
             $lNvLot = new DetailMarcheReservationVO();
             $lNvLot->setId($lLot->getId());
             $lNvLot->setTaille($lLot->getTaille());
             $lNvLot->setPrix($lLot->getPrix());
             if (!is_null($lReservation[0]->getStoId())) {
                 $lNvLot->setReservation(true);
             }
             array_push($lNvLots, $lNvLot);
         }
         $lProduit->setLots($lNvLots);
         $lResponse->setProduit($lProduit);
         return $lResponse;
     }
     return $lVr;
 }
 /**
  * @name validUpdate($pData)
  * @return ProduitMarcheVR
  * @desc Test la validite de l'élément
  */
 public static function validUpdate($pData)
 {
     $lTestId = ProduitMarcheValid::validDelete($pData);
     if ($lTestId->getValid()) {
         $lVr = new ProduitMarcheVR();
         //Tests inputs
         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['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 (!isset($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 (!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 (!isset($pData['type'])) {
             $lVr->setValid(false);
             $lVr->getType()->setValid(false);
             $lErreur = new VRerreur();
             $lErreur->setCode(MessagesErreurs::ERR_201_CODE);
             $lErreur->setMessage(MessagesErreurs::ERR_201_MSG);
             $lVr->getType()->addErreur($lErreur);
         }
         if (!isset($pData['lotRemplacement'])) {
             $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()) {
             //Tests Techniques
             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);
             }
             if (!TestFonction::checkLength($pData['type'], 0, 11)) {
                 $lVr->setValid(false);
                 $lVr->getType()->setValid(false);
                 $lErreur = new VRerreur();
                 $lErreur->setCode(MessagesErreurs::ERR_101_CODE);
                 $lErreur->setMessage(MessagesErreurs::ERR_101_MSG);
                 $lVr->getType()->addErreur($lErreur);
             }
             if (!is_int((int) $pData['type'])) {
                 $lVr->setValid(false);
                 $lVr->getType()->setValid(false);
                 $lErreur = new VRerreur();
                 $lErreur->setCode(MessagesErreurs::ERR_108_CODE);
                 $lErreur->setMessage(MessagesErreurs::ERR_108_MSG);
                 $lVr->getType()->addErreur($lErreur);
             }
             if (!is_array($pData['lotRemplacement'])) {
                 $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['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['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 ($pData['type'] == '' && $pData['type'] != 0) {
                 $lVr->setValid(false);
                 $lVr->getType()->setValid(false);
                 $lErreur = new VRerreur();
                 $lErreur->setCode(MessagesErreurs::ERR_202_CODE);
                 $lErreur->setMessage(MessagesErreurs::ERR_201_MSG);
                 $lVr->getType()->addErreur($lErreur);
             }
             // Les quantités sont positives
             if ($pData['qteMaxCommande'] != -1 && $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'] != -1 && $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'] != -1 && $pData['qteRestante'] != -1 && $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->validAjout($pData['lots'][$i]);
                     if (!$lVrLot->getValid()) {
                         $lVr->setValid(false);
                     }
                     /*if(!empty($pData['qteMaxCommande'])) {
                     			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;
 }