/** * @name remplirLotAbonnement($pId, $pIdProduitAbonnement, $pTaille, $pPrix, $pEtat) * @param int(11) * @param int(11) * @param decimal(10,2) * @param decimal(10,2) * @param tinyint(1) * @return LotAbonnementVO * @desc Retourne une LotAbonnementVO remplie */ private static function remplirLotAbonnement($pId, $pIdProduitAbonnement, $pTaille, $pPrix, $pEtat) { $lLotAbonnement = new LotAbonnementVO(); $lLotAbonnement->setId($pId); $lLotAbonnement->setIdProduitAbonnement($pIdProduitAbonnement); $lLotAbonnement->setTaille($pTaille); $lLotAbonnement->setPrix($pPrix); $lLotAbonnement->setEtat($pEtat); return $lLotAbonnement; }
/** * @name updateProduit($pProduitAbonnement) * @param ProduitAbonnementVO * @return integer * @desc Met à jour un ProduitAbonnementVO */ private function updateProduit($pProduitAbonnement, $pLotRemplacement = array()) { $lProduitActuel = $this->selectProduit($pProduitAbonnement->getId()); //Les lots $lLotSupp = array(); foreach ($lProduitActuel->getLots() as $lLotActuel) { $lSuppLot = true; foreach ($pProduitAbonnement->getLots() as $lLotNv) { // Maj Lot if ($lLotActuel->getId() == $lLotNv->getId()) { $lDcomId = $lLotActuel->getId(); $lSuppLot = false; $lLotAbonnement = new LotAbonnementVO(); $lLotAbonnement->setId($lLotActuel->getId()); $lLotAbonnement->setIdProduitAbonnement($lProduitActuel->getId()); $lLotAbonnement->setTaille($lLotNv->getTaille()); $lLotAbonnement->setPrix($lLotNv->getPrix()); LotAbonnementManager::update($lLotAbonnement); } } // Supprimer Lot if ($lSuppLot) { array_push($lLotSupp, $lLotActuel->getId()); } } // Nouveau Lot $lLotAdd = array(); foreach ($pProduitAbonnement->getLots() as $lLotNv) { $lAjout = true; foreach ($lProduitActuel->getLots() as $lLotActuel) { if ($lLotActuel->getId() == $lLotNv->getId()) { $lAjout = false; } } if ($lAjout) { $lLotAbonnement = new LotAbonnementVO(); $lLotAbonnement->setIdProduitAbonnement($lProduitActuel->getId()); $lLotAbonnement->setTaille($lLotNv->getTaille()); $lLotAbonnement->setPrix($lLotNv->getPrix()); $lDcomId = LotAbonnementManager::insert($lLotAbonnement); $lLotAdd[$lLotNv->getId()] = $lDcomId; // Si supression d'un lot et positionnement de ce nouveau lot permet de récupérer l'ID } } // Chaque lot supprimé => La réservation est positionnée sur un autre lot foreach ($lLotSupp as $lIdLot) { if (isset($pLotRemplacement[$lIdLot])) { $lIdLotRemplacement = $pLotRemplacement[$lIdLot]; // Si le lot de remplacement est un nouveau lot on récupère le vrai id de base et non celui donné par le JS if ($lIdLotRemplacement < 0) { $lIdLotRemplacement = $lLotAdd[$lIdLotRemplacement]; } // Récupération des abonnements $lListeAbonnement = $this->getAbonnementSurLot($lIdLot); // Modification si il y a des abonnements if (!is_null($lListeAbonnement[0]->getCptAboId())) { foreach ($lListeAbonnement as $lAbonnement) { $lAncienAbonnement = CompteAbonnementManager::select($lAbonnement->getCptAboId()); $lAncienAbonnement->setIdLotAbonnement($lIdLotRemplacement); $this->updateAbonnement($lAncienAbonnement); } } } else { // Si pas de lot de remplacement suppression des abonnements du lot // Suppression des abonnements du lot $lListeAbonnement = $this->getAbonnementSurLot($lIdLot); foreach ($lListeAbonnement as $lAbonnement) { $this->deleteAbonnement($lAbonnement->getCptAboId()); } } // Suppression du lot $lDeleteLot = LotAbonnementManager::select($lIdLot); $lDeleteLot->setEtat(1); LotAbonnementManager::update($lDeleteLot); } return ProduitAbonnementManager::update($pProduitAbonnement); }
/** * @name updateProduit($pParam) * @desc Met à jour un produit */ public function updateProduit($pParam) { $lVr = ListeProduitValid::validUpdate($pParam); if ($lVr->getValid()) { $lAbonnementService = new AbonnementService(); $lProduitAbonnement = $lAbonnementService->getProduit($pParam["id"]); $lProduitAbonnement->setUnite($pParam['unite']); $lProduitAbonnement->setStockInitial($pParam['stockInitial']); $lProduitAbonnement->setMax($pParam['max']); $lProduitAbonnement->setFrequence($pParam['frequence']); $lProduitAbonnement->setLots(array()); foreach ($pParam['lots'] as $lLot) { $lLotAbonnement = new LotAbonnementVO(); $lLotAbonnement->setId($lLot["id"]); $lLotAbonnement->setIdProduitAbonnement($pParam["id"]); $lLotAbonnement->setTaille($lLot["taille"]); $lLotAbonnement->setPrix($lLot["prix"]); $lLotAbonnement->setEtat(0); $lProduitAbonnement->addLots($lLotAbonnement); } $lAbonnementService->setProduit($lProduitAbonnement, $pParam["lotRemplacement"]); } return $lVr; }