/**
  * @name getDetailAbonnement($pParam)
  * @desc Donne le détail d'un produit et de l'abonnement
  */
 public function getDetailAbonnement($pParam)
 {
     $lVr = ListeAbonneValid::validGetDetailAbonnement($pParam);
     if ($lVr->getValid()) {
         $lAbonnementService = new AbonnementService();
         $lResponse = new DetailAbonnementResponse();
         $lResponse->setProduit($lAbonnementService->getDetailProduit($pParam["idProduit"]));
         $lResponse->setAbonnement($lAbonnementService->getAbonnement($pParam["idCompteAbonnement"]));
         return $lResponse;
     }
     return $lVr;
 }
 /**
  * @name validUpdate($pData)
  * @return ListeAbonneVR
  * @desc Test la validite de l'élément
  */
 public static function validUpdate($pData)
 {
     $lTestId = ListeAbonneValid::validDelete($pData);
     if ($lTestId->getValid()) {
         $lVr = new ListeAbonneVR();
         //Tests inputs
         if (!isset($pData['idCompte'])) {
             $lVr->setValid(false);
             $lVr->getIdCompte()->setValid(false);
             $lErreur = new VRerreur();
             $lErreur->setCode(MessagesErreurs::ERR_201_CODE);
             $lErreur->setMessage(MessagesErreurs::ERR_201_MSG);
             $lVr->getIdCompte()->addErreur($lErreur);
         }
         if (!isset($pData['idProduitAbonnement'])) {
             $lVr->setValid(false);
             $lVr->getIdProduitAbonnement()->setValid(false);
             $lErreur = new VRerreur();
             $lErreur->setCode(MessagesErreurs::ERR_201_CODE);
             $lErreur->setMessage(MessagesErreurs::ERR_201_MSG);
             $lVr->getIdProduitAbonnement()->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['idLotAbonnement'])) {
             $lVr->setValid(false);
             $lVr->getIdLotAbonnement()->setValid(false);
             $lErreur = new VRerreur();
             $lErreur->setCode(MessagesErreurs::ERR_201_CODE);
             $lErreur->setMessage(MessagesErreurs::ERR_201_MSG);
             $lVr->getIdLotAbonnement()->addErreur($lErreur);
         }
         if ($lVr->getValid()) {
             if (!TestFonction::checkLength($pData['idCompte'], 0, 11)) {
                 $lVr->setValid(false);
                 $lVr->getIdCompte()->setValid(false);
                 $lErreur = new VRerreur();
                 $lErreur->setCode(MessagesErreurs::ERR_101_CODE);
                 $lErreur->setMessage(MessagesErreurs::ERR_101_MSG);
                 $lVr->getIdCompte()->addErreur($lErreur);
             }
             if (!is_int((int) $pData['idCompte'])) {
                 $lVr->setValid(false);
                 $lVr->getIdCompte()->setValid(false);
                 $lErreur = new VRerreur();
                 $lErreur->setCode(MessagesErreurs::ERR_108_CODE);
                 $lErreur->setMessage(MessagesErreurs::ERR_108_MSG);
                 $lVr->getIdCompte()->addErreur($lErreur);
             }
             if (!TestFonction::checkLength($pData['idProduitAbonnement'], 0, 11)) {
                 $lVr->setValid(false);
                 $lVr->getIdProduitAbonnement()->setValid(false);
                 $lErreur = new VRerreur();
                 $lErreur->setCode(MessagesErreurs::ERR_101_CODE);
                 $lErreur->setMessage(MessagesErreurs::ERR_101_MSG);
                 $lVr->getIdProduitAbonnement()->addErreur($lErreur);
             }
             if (!is_int((int) $pData['idProduitAbonnement'])) {
                 $lVr->setValid(false);
                 $lVr->getIdProduitAbonnement()->setValid(false);
                 $lErreur = new VRerreur();
                 $lErreur->setCode(MessagesErreurs::ERR_108_CODE);
                 $lErreur->setMessage(MessagesErreurs::ERR_108_MSG);
                 $lVr->getIdProduitAbonnement()->addErreur($lErreur);
             }
             if (!TestFonction::checkLength($pData['idLotAbonnement'], 0, 11)) {
                 $lVr->setValid(false);
                 $lVr->getIdLotAbonnement()->setValid(false);
                 $lErreur = new VRerreur();
                 $lErreur->setCode(MessagesErreurs::ERR_101_CODE);
                 $lErreur->setMessage(MessagesErreurs::ERR_101_MSG);
                 $lVr->getIdLotAbonnement()->addErreur($lErreur);
             }
             if (!is_int((int) $pData['idLotAbonnement'])) {
                 $lVr->setValid(false);
                 $lVr->getIdLotAbonnement()->setValid(false);
                 $lErreur = new VRerreur();
                 $lErreur->setCode(MessagesErreurs::ERR_108_CODE);
                 $lErreur->setMessage(MessagesErreurs::ERR_108_MSG);
                 $lVr->getIdLotAbonnement()->addErreur($lErreur);
             }
             if (!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 (!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);
             }
             //Tests Fonctionnels
             if (empty($pData['idCompte'])) {
                 $lVr->setValid(false);
                 $lVr->getIdCompte()->setValid(false);
                 $lErreur = new VRerreur();
                 $lErreur->setCode(MessagesErreurs::ERR_201_CODE);
                 $lErreur->setMessage(MessagesErreurs::ERR_201_MSG);
                 $lVr->getIdCompte()->addErreur($lErreur);
             }
             if (empty($pData['idProduitAbonnement'])) {
                 $lVr->setValid(false);
                 $lVr->getIdProduitAbonnement()->setValid(false);
                 $lErreur = new VRerreur();
                 $lErreur->setCode(MessagesErreurs::ERR_201_CODE);
                 $lErreur->setMessage(MessagesErreurs::ERR_201_MSG);
                 $lVr->getIdProduitAbonnement()->addErreur($lErreur);
             }
             if (empty($pData['idLotAbonnement'])) {
                 $lVr->setValid(false);
                 $lVr->getIdLotAbonnement()->setValid(false);
                 $lErreur = new VRerreur();
                 $lErreur->setCode(MessagesErreurs::ERR_201_CODE);
                 $lErreur->setMessage(MessagesErreurs::ERR_201_MSG);
                 $lVr->getIdLotAbonnement()->addErreur($lErreur);
             }
             if (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);
             }
             $lCompteService = new CompteService();
             if (!$lCompteService->existe($pData['idCompte'])) {
                 $lVr->setValid(false);
                 $lVr->getIdCompte()->setValid(false);
                 $lErreur = new VRerreur();
                 $lErreur->setCode(MessagesErreurs::ERR_201_CODE);
                 $lErreur->setMessage(MessagesErreurs::ERR_201_MSG);
                 $lVr->getIdCompte()->addErreur($lErreur);
             }
             $lAbonnementService = new AbonnementService();
             if (!$lAbonnementService->produitExiste($pData['idProduitAbonnement'])) {
                 $lVr->setValid(false);
                 $lVr->getIdProduitAbonnement()->setValid(false);
                 $lErreur = new VRerreur();
                 $lErreur->setCode(MessagesErreurs::ERR_201_CODE);
                 $lErreur->setMessage(MessagesErreurs::ERR_201_MSG);
                 $lVr->getIdProduitAbonnement()->addErreur($lErreur);
             }
             if (!$lAbonnementService->lotExiste($pData['idLotAbonnement'])) {
                 $lVr->setValid(false);
                 $lVr->getIdLotAbonnement()->setValid(false);
                 $lErreur = new VRerreur();
                 $lErreur->setCode(MessagesErreurs::ERR_201_CODE);
                 $lErreur->setMessage(MessagesErreurs::ERR_201_MSG);
                 $lVr->getIdLotAbonnement()->addErreur($lErreur);
             }
             if (!$lAbonnementService->lotAppartientProduit($pData['idProduitAbonnement'], $pData['idLotAbonnement'])) {
                 $lVr->setValid(false);
                 $lVr->getIdProduitAbonnement()->setValid(false);
                 $lErreur = new VRerreur();
                 $lErreur->setCode(MessagesErreurs::ERR_201_CODE);
                 $lErreur->setMessage(MessagesErreurs::ERR_201_MSG);
                 $lVr->getIdProduitAbonnement()->addErreur($lErreur);
                 $lVr->getIdLotAbonnement()->addErreur($lErreur);
             }
             if ($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);
             }
             $lAbonnement = $lAbonnementService->getAbonnement($pData['id']);
             $lDetailProduit = $lAbonnementService->getDetailProduit($pData['idProduitAbonnement']);
             $lDetailProduit = $lDetailProduit[0];
             if ($lDetailProduit->getProAboStockInitial() - $lDetailProduit->getProAboReservation() + $lAbonnement->getCptAboQuantite() < $pData['quantite']) {
                 $lVr->setValid(false);
                 $lVr->getQuantite()->setValid(false);
                 $lErreur = new VRerreur();
                 $lErreur->setCode(MessagesErreurs::ERR_249_CODE);
                 $lErreur->setMessage(MessagesErreurs::ERR_249_MSG);
                 $lVr->getQuantite()->addErreur($lErreur);
             }
             if ($lDetailProduit->getProAboMax() < $pData['quantite'] && $lDetailProduit->getProAboMax() != -1) {
                 $lVr->setValid(false);
                 $lVr->getQuantite()->setValid(false);
                 $lErreur = new VRerreur();
                 $lErreur->setCode(MessagesErreurs::ERR_250_CODE);
                 $lErreur->setMessage(MessagesErreurs::ERR_250_MSG);
                 $lVr->getQuantite()->addErreur($lErreur);
             }
         }
         return $lVr;
     }
     return $lTestId;
 }