/**
  * @name updateStockProduit($pStock)
  * @param StockVO
  * @return integer
  * @desc Met à jour une opération
  */
 public function updateStockProduit($pStock)
 {
     // TODO les test : on update que les types 0/1/2/3/4/5/6
     $lStockActuel = $this->get($pStock->getId());
     $pStock->setDate(StringUtils::dateTimeAujourdhuiDb());
     // TODO Mise à jour du stock selon le type
     switch ($pStock->getType()) {
         case 0:
             // Reservation
             $lLot = DetailCommandeManager::select($pStock->getIdDetailCommande());
             $lProduit = ProduitManager::select($lLot->getIdProduit());
             if ($pStock->getQuantite() != -1 && $lProduit->getStockInitial() == -1) {
                 // Maj Stock Reservation dans le produit
                 $lProduit->setStockReservation($lProduit->getStockReservation() + $pStock->getQuantite());
                 $lProduit->setStockInitial($pStock->getQuantite());
                 ProduitManager::update($lProduit);
             } else {
                 if ($pStock->getQuantite() == -1 && $lProduit->getStockInitial() != -1) {
                     //echo 2;
                     // Maj Stock Reservation dans le produit
                     $lProduit->setStockReservation($lProduit->getStockReservation() - $lProduit->getStockInitial());
                     $lProduit->setStockInitial(-1);
                     ProduitManager::update($lProduit);
                 } else {
                     if ($pStock->getQuantite() != -1 && $lProduit->getStockInitial() != -1) {
                         //echo 3;
                         // Maj Stock Reservation dans le produit
                         $lProduit->setStockReservation($lProduit->getStockReservation() - $lProduit->getStockInitial() + $pStock->getQuantite());
                         $lProduit->setStockInitial($pStock->getQuantite());
                         ProduitManager::update($lProduit);
                     }
                 }
             }
             break;
     }
     $this->insertHistorique($pStock);
     // Ajout historique
     return StockManager::update($pStock);
     // update
 }
 /**
  * @name supprimerProduit($pId)
  * @param integer
  * @desc Supprime un produit du marché
  */
 public function supprimerProduit($pId)
 {
     $lProduit = ProduitManager::select($pId);
     // Suppression des lots
     $lLots = DetailCommandeManager::selectByIdProduit($pId);
     foreach ($lLots as $lLot) {
         $lLot->setEtat(1);
         DetailCommandeManager::update($lLot);
     }
     $lProduit->setEtat(1);
     ProduitManager::update($lProduit);
     // Modif des réservations
     $lReservationService = new ReservationService();
     $lIdMarche = $lProduit->getIdCommande();
     foreach ($lLots as $lLot) {
         // Chaque lot modifié
         $lListeDetailReservation = $lReservationService->getReservationSurLot($lLot->getId());
         if (!is_null($lListeDetailReservation[0]->getDopeIdCompte())) {
             // Si il y a des réservations
             foreach ($lListeDetailReservation as $lDetailReservation) {
                 // Chaque réservation de lot modifié
                 $lIdReservationVO = new IdReservationVO();
                 $lIdReservationVO->setIdCompte($lDetailReservation->getDopeIdCompte());
                 $lIdReservationVO->setIdCommande($lIdMarche);
                 $lReservationVO = $lReservationService->get($lIdReservationVO);
                 $lNvDetailReservation = array();
                 foreach ($lReservationVO->getDetailReservation() as $lDetailReservationActuelle) {
                     if ($lDetailReservationActuelle->getIdDetailCommande() != $lLot->getId()) {
                         // Ne positionne que les autres produits
                         array_push($lNvDetailReservation, $lDetailReservationActuelle);
                     }
                 }
                 $lReservationVO->setDetailReservation($lNvDetailReservation);
                 $lReservationService->set($lReservationVO);
                 // Maj de la reservation
             }
         }
     }
 }