/** * @name select($pId, $pActive) * @param IdReservationVO * @param bool * @return ReservationVO * @desc Retourne une Reservation */ public function select($pId, $pActive = false) { $lOperations = $this->selectOperationReservation($pId, $pActive); $lReservation = new ReservationVO(); $lReservation->setId($pId); // Recherche du détail de la reservation $lDetailOperationService = new DetailOperationService(); $lStockService = new StockService(); if (!is_null($lOperations[0]->getTypePaiement())) { $lReservation->setEtat($lOperations[0]->getTypePaiement()); switch ($lOperations[0]->getTypePaiement()) { /* case 7: // Un achat foreach($lOperations as $lOperation) { if($lOperation->getTypePaiement() == 7) { // Mise à jour du détail de réservation à partir de l'historique du stock HistoriqueStockManager::selectReservation($lOperation->getId(), $lReservation); $lReservation->setTotal($lOperation->getMontant()); } } break;*/ case 22: // Reservation achetée // Reservation achetée case 0: // Reservation en cours $lOperation = $lOperations[0]; $lDetailsReservation = ReservationDetailViewManager::selectDetail($lOperation->getId(), 0, 0); foreach ($lDetailsReservation as $lDetail) { if ($lDetail->getDopeTypePaiement() == 0) { $lDetailReservation = new DetailReservationVO(); $lDetailReservation->getId()->setIdStock($lDetail->getStoId()); $lDetailReservation->getId()->setIdDetailOperation($lDetail->getDopeId()); $lDetailReservation->setIdDetailCommande($lDetail->getStoIdDetailCommande()); $lDetailReservation->setMontant($lDetail->getDopeMontant()); $lDetailReservation->setQuantite($lDetail->getStoQuantite()); $lDetailReservation->setIdProduit($lDetail->getDcomIdProduit()); $lDetailReservation->setIdNomProduit($lDetail->getDcomIdNomProduit()); $lDetailReservation->setUnite($lDetail->getStoUnite()); $lReservation->addDetailReservation($lDetailReservation); } } $lReservation->setTotal($lOperation->getMontant()); break; case 15: // Reservation non récupérée $lOperation = $lOperations[0]; $lDetailsReservation = ReservationDetailViewManager::selectDetail($lOperation->getId(), 15, 5); foreach ($lDetailsReservation as $lDetail) { if ($lDetail->getDopeTypePaiement() == 15) { $lDetailReservation = new DetailReservationVO(); $lDetailReservation->getId()->setIdStock($lDetail->getStoId()); $lDetailReservation->getId()->setIdDetailOperation($lDetail->getDopeId()); $lDetailReservation->setIdDetailCommande($lDetail->getStoIdDetailCommande()); $lDetailReservation->setMontant($lDetail->getDopeMontant()); $lDetailReservation->setQuantite($lDetail->getStoQuantite()); $lDetailReservation->setIdProduit($lDetail->getDcomIdProduit()); $lDetailReservation->setIdNomProduit($lDetail->getDcomIdNomProduit()); $lDetailReservation->setUnite($lDetail->getStoUnite()); $lReservation->addDetailReservation($lDetailReservation); } } $lReservation->setTotal($lOperation->getMontant()); break; case 16: // Reservation annulée $lOperation = $lOperations[0]; $lDetailsReservation = ReservationDetailViewManager::selectDetail($lOperation->getId(), 16, 6); foreach ($lDetailsReservation as $lDetail) { if ($lDetail->getDopeTypePaiement() == 16) { $lDetailReservation = new DetailReservationVO(); $lDetailReservation->getId()->setIdStock($lDetail->getStoId()); $lDetailReservation->getId()->setIdDetailOperation($lDetail->getDopeId()); $lDetailReservation->setIdDetailCommande($lDetail->getStoIdDetailCommande()); $lDetailReservation->setMontant($lDetail->getDopeMontant()); $lDetailReservation->setQuantite($lDetail->getStoQuantite()); $lDetailReservation->setIdProduit($lDetail->getDcomIdProduit()); $lDetailReservation->setIdNomProduit($lDetail->getDcomIdNomProduit()); $lDetailReservation->setUnite($lDetail->getStoUnite()); $lReservation->addDetailReservation($lDetailReservation); } } $lReservation->setTotal($lOperation->getMontant()); break; } } return $lReservation; }
/** * @name modifierAchat($pParam) * @return ListeReservationCommandeVR * @desc Met à jour une réservation */ public function modifierAchat($pParam) { $lVr = AfficheAchatAdherentValid::validModifierAchat($pParam); if ($lVr->getValid()) { $lAchatData = $pParam["achat"]; $lAchat = new AchatVO(); if ($lAchatData['idAchat'] < 0) { // Si c'est un ajout $lVr = AfficheAchatAdherentValid::validAjoutAchat($lAchatData); if ($lVr->getValid()) { // Recherche si il y a une réservation $lIdReservation = new IdReservationVO(); $lIdReservation->setIdCompte($lAchatData["idCompte"]); $lIdReservation->setIdCommande($lAchatData["idMarche"]); $lReservationService = new ReservationService(); $lOperations = $lReservationService->selectOperationReservation($lIdReservation); if ($lOperations[0]->getTypePaiement() == 0) { $lAchat->getId()->setIdReservation($lOperations[0]->getId()); } $lAchat->getId()->setIdCompte($lAchatData["idCompte"]); $lAchat->getId()->setIdCommande($lAchatData["idMarche"]); foreach ($lAchatData["produits"] as $lDetail) { $lDetailCommande = DetailCommandeManager::selectByIdProduit($lDetail["id"]); $lDetailAchat = new DetailReservationVO(); $lDetailAchat->setIdDetailCommande($lDetailCommande[0]->getId()); $lDetailAchat->setQuantite($lDetail["quantite"]); $lDetailAchat->setMontant($lDetail["prix"]); $lProduit = ProduitManager::select($lDetail["id"]); $lDetailAchat->setIdNomProduit($lProduit->getIdNomProduit()); $lDetailAchat->setUnite($lProduit->getUniteMesure()); if ($lAchatData["idAchat"] == -1) { $lAchat->addDetailAchat($lDetailAchat); } else { if ($lAchatData["idAchat"] == -2) { $lAchat->addDetailAchatSolidaire($lDetailAchat); } } } } else { return $lVr; } } else { $lOperationService = new OperationService(); $lOperation = $lOperationService->get($lAchatData["idAchat"]); $lAchat = new AchatVO(); $lAchat->getId()->setIdCompte($lOperation->getIdCompte()); $lAchat->getId()->setIdCommande($lOperation->getIdCommande()); $lAchat->getId()->setIdAchat($lOperation->getId()); foreach ($lAchatData["produits"] as $lDetail) { $lDetailCommande = DetailCommandeManager::selectByIdProduit($lDetail["id"]); $lDetailAchat = new DetailReservationVO(); $lDetailAchat->setIdDetailCommande($lDetailCommande[0]->getId()); $lDetailAchat->setQuantite($lDetail["quantite"]); $lDetailAchat->setMontant($lDetail["prix"]); $lProduit = ProduitManager::select($lDetail["id"]); $lDetailAchat->setIdNomProduit($lProduit->getIdNomProduit()); $lDetailAchat->setUnite($lProduit->getUniteMesure()); if ($lOperation->getTypePaiement() == 7) { $lAchat->addDetailAchat($lDetailAchat); } else { if ($lOperation->getTypePaiement() == 8) { $lAchat->addDetailAchatSolidaire($lDetailAchat); } } } } $lAchatService = new AchatService(); $lIdOperation = $lAchatService->set($lAchat); } return $lVr; }