/**
  * @name modifierProduitMarche($pParam)
  * @param ProduitVO
  * @desc Met à jour un produit du marché
  */
 public function modifierProduitMarche($pParam)
 {
     $lVr = ProduitMarcheValid::validUpdate($pParam);
     if ($lVr->getValid()) {
         $lMarcheService = new MarcheService();
         $lProduit = ProduitCommandeToVO::convertFromArray($pParam);
         $lMarcheService->updateProduit($lProduit, $pParam["lotRemplacement"]);
     }
     return $lVr;
 }
 /**
  * @name validAjoutProduit($pData)
  * @return CommandeCompleteVR
  * @desc Test la validite de l'élément
  */
 public static function validAjoutProduit($pData)
 {
     $lVr = CommandeCompleteValid::validDelete($pData);
     if ($lVr->getValid()) {
         $lVr = ProduitMarcheValid::validAjout($pData);
         if ($lVr->getValid()) {
             // Test si produit déjà dans le marché
             $lProduit = ProduitManager::selectbyIdNomProduitIdMarche($pData['idNom'], $pData['id']);
             $lType = $lProduit[0]->getType();
             $lId = $lProduit[0]->getId();
             if (!empty($lId) && $lType == $pData['type']) {
                 $lVr->setValid(false);
                 $lVr->getLog()->setValid(false);
                 $lErreur = new VRerreur();
                 $lErreur->setCode(MessagesErreurs::ERR_211_CODE);
                 $lErreur->setMessage(MessagesErreurs::ERR_211_MSG);
                 $lVr->getLog()->addErreur($lErreur);
             }
         }
     }
     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;
 }