function getReservation($reservationId = null) { if (!isset($reservationId)) { $reservationId = JRequest::getInt("reservationId"); } /* $confirmationTable = $this->getTable('Confirmations'); $reservation = $confirmationTable->getReservationData($reservationId); $reservation->reservedItems = explode(",",$reservation->items_reserved); $reservation->extraOptionIds = explode(",",$reservation->extraOptionIds); $reservation->hotelId = $reservation->hotel_id; $hotel = HotelService::getHotel($reservation->hotel_id); $reservation->currency = HotelService::getHotelCurrency($hotel); if(!isset($reservation->totalPaid)) $reservation->totalPaid = 0; //dmp($reservation); $reservationData = new stdClass; $reservationData->userData = $reservation; $reservationData->appSettings = JHotelUtil::getInstance()->getApplicationSettings(); $reservationData->hotel = $hotel; $reservationService = new ReservationService(); $reservationDetails = $reservationService->generateReservationSummary($reservationData); $reservationDetails->reservationData = $reservationData; */ $reservationService = new ReservationService(); $reservationDetails = $reservationService->getReservation($reservationId); /*$reservationDetails = $reservationDetails->reservationData->userData->confirmation_details; dmp($reservationDetails);*/ return $reservationDetails; }
/** * @name getListeReservationExport($pParam) * @return array() * @desc Retourne la liste des réservations pour une commande et la liste de produits demandés */ private function getListeReservationExport($pParam) { $lIdMarche = $pParam['id_commande']; $lIdProduits = $pParam['id_produits']; $lReservationService = new ReservationService(); $lReservations = $lReservationService->getReservationProduit($lIdMarche, $lIdProduits); // Mise en forme des données par produit $lTableauReservation = array(); $lQuantiteReservation = array(); foreach ($lReservations as $lReservation) { $lLigne = array(); $lLigne['compte'] = $lReservation->getCptLabel(); $lLigne['prenom'] = $lReservation->getAdhPrenom(); $lLigne['nom'] = $lReservation->getAdhNom(); $lLigne['telephonePrincipal'] = $lReservation->getAdhTelephonePrincipal(); if (isset($lTableauReservation[$lReservation->getCptLabel()])) { $lTableauReservation[$lLigne['compte']][$lReservation->getProId()] = $lReservation->getStoQuantite() * -1; } else { foreach ($lIdProduits as $lIdProduit) { if ($lReservation->getProId() == $lIdProduit) { $lLigne[$lIdProduit] = $lReservation->getStoQuantite() * -1; } else { $lLigne[$lIdProduit] = ''; } } $lTableauReservation[$lLigne['compte']] = $lLigne; } if (isset($lQuantiteReservation[$lReservation->getProId()])) { $lQuantiteReservation[$lReservation->getProId()] += $lReservation->getStoQuantite() * -1; } else { $lQuantiteReservation[$lReservation->getProId()] = $lReservation->getStoQuantite() * -1; } } return array('quantite' => $lQuantiteReservation, 'detail' => $lTableauReservation); }
public function testGetReservationsPullsReservationFromTheRepositoryAndAddsThemToTheCoordinator() { $timezone = 'UTC'; $startDate = Date::Now(); $endDate = Date::Now(); $scheduleId = 100; $range = new DateRange($startDate, $endDate); $repository = $this->getMock('IReservationViewRepository'); $reservationListing = new TestReservationListing(); $listingFactory = $this->getMock('IReservationListingFactory'); $rows = FakeReservationRepository::GetReservationRows(); $res1 = ReservationItemView::Populate($rows[0]); $res2 = ReservationItemView::Populate($rows[1]); $res3 = ReservationItemView::Populate($rows[2]); $date = Date::Now(); $blackout1 = new TestBlackoutItemView(1, $date, $date, 1); $blackout2 = new TestBlackoutItemView(2, $date, $date, 2); $blackout3 = new TestBlackoutItemView(3, $date, $date, 3); $repository->expects($this->once())->method('GetReservationList')->with($this->equalTo($startDate), $this->equalTo($endDate), $this->isNull(), $this->isNull(), $this->equalTo($scheduleId), $this->isNull())->will($this->returnValue(array($res1, $res2, $res3))); $repository->expects($this->once())->method('GetBlackoutsWithin')->with($this->equalTo(new DateRange($startDate, $endDate)), $this->equalTo($scheduleId))->will($this->returnValue(array($blackout1, $blackout2, $blackout3))); $listingFactory->expects($this->once())->method('CreateReservationListing')->with($this->equalTo($timezone))->will($this->returnValue($reservationListing)); $service = new ReservationService($repository, $listingFactory); $listing = $service->GetReservations($range, $scheduleId, $timezone); $this->assertEquals($reservationListing, $listing); $this->assertTrue(in_array($res1, $reservationListing->reservations)); $this->assertTrue(in_array($res2, $reservationListing->reservations)); $this->assertTrue(in_array($res3, $reservationListing->reservations)); $this->assertTrue(in_array($blackout1, $reservationListing->blackouts)); $this->assertTrue(in_array($blackout2, $reservationListing->blackouts)); $this->assertTrue(in_array($blackout3, $reservationListing->blackouts)); }
function getReservationDetails() { $userData = UserDataService::getUserData(); $reservationData = new stdClass(); $reservationData->userData = $userData; $reservationData->appSettings = JHotelUtil::getInstance()->getApplicationSettings(); $reservationData->hotel = HotelService::getHotel($userData->hotelId); $reservationService = new ReservationService(); $reservationDetails = $reservationService->generateReservationSummary($reservationData); UserDataService::setReservationDetails($reservationDetails); $reservationDetails->reservationData = $reservationData; return $reservationDetails; }
/** * @name ajoutReservation($pIdCompte,$pIdMarche) * @param integer * @param integer * @return bool * @desc Positionne les réservations pour les abonnements du compte sur le maché */ public function ajoutReservation($pIdCompte, $pIdMarche) { $lProduits = $this->getProduitsAbonne($pIdCompte); $lMarcheService = new MarcheService(); $lMarche = $lMarcheService->get($pIdMarche); $lReservationAbonnement = array("idCompte" => $pIdCompte, "produits" => array()); foreach ($lMarche->getProduits() as $lNouveauProduit) { // Ajout des réservations pour abonnement if ($lNouveauProduit->getType() == 2) { $lIdNomProduit = $lNouveauProduit->getIdNom(); foreach ($lProduits as $lProduit) { if ($lIdNomProduit == $lProduit->getNproId()) { // Pas de suspension de l'abonnement et stock dispo pour positionner cette réservation (ou pas de limite de stock) if (!(TestFonction::dateTimeEstPLusGrandeEgale($lMarche->getDateMarcheDebut(), $lProduit->getCptAboDateDebutSuspension(), 'db') && TestFonction::dateTimeEstPLusGrandeEgale($lProduit->getCptAboDateFinSuspension(), $lMarche->getDateMarcheDebut(), 'db')) && !(TestFonction::dateTimeEstPLusGrandeEgale($lMarche->getDateMarcheFin(), $lProduit->getCptAboDateDebutSuspension(), 'db') && TestFonction::dateTimeEstPLusGrandeEgale($lProduit->getCptAboDateFinSuspension(), $lMarche->getDateMarcheFin(), 'db')) && ($lNouveauProduit->getStockReservation() >= $lProduit->getCptAboQuantite() || $lNouveauProduit->getStockInitial() == -1)) { foreach ($lNouveauProduit->getLots() as $lLot) { $lDcomId = $lLot->getId(); } $lReservationAbonnement["produits"][$lIdNomProduit] = array("id" => $lIdNomProduit, "idLot" => $lDcomId, "quantite" => $lProduit->getCptAboQuantite()); } } } } } // Positionnement des réservations $lReservationService = new ReservationService(); $lReservationVO = new ReservationVO(); $lReservationVO->getId()->setIdCompte($pIdCompte); $lReservationVO->getId()->setIdCommande($pIdMarche); $lEnregistrer = false; foreach ($lReservationAbonnement["produits"] as $lDetail) { $lDetailCommande = DetailCommandeManager::select($lDetail["idLot"]); $lPrix = $lDetail["quantite"] / $lDetailCommande->getTaille() * $lDetailCommande->getPrix(); $lDetailReservation = new DetailReservationVO(); $lDetailReservation->setIdDetailCommande($lDetail["idLot"]); $lDetailReservation->setQuantite($lDetail["quantite"] * -1); $lDetailReservation->setMontant($lPrix * -1); $lReservationVO->addDetailReservation($lDetailReservation); $lEnregistrer = true; } if ($lEnregistrer) { $lReservationService->set($lReservationVO); } }
function managereservations() { $this->rows = ReservationService::getClientReservations(JFactory::getUser()->id); $tpl = 'managereservations'; return $tpl; }
/** * @name validGetMarche($pData) * @return ReservationMarcheVR * @desc Test la validite de l'élément */ public static function validGetMarche($pData) { $lVr = new ReservationMarcheVR(); //Tests inputs if (!isset($pData['id_commande'])) { $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['idCompte'])) { $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 (!is_int((int) $pData['id_commande'])) { $lVr->setValid(false); $lVr->getLog()->setValid(false); $lErreur = new VRerreur(); $lErreur->setCode(MessagesErreurs::ERR_104_CODE); $lErreur->setMessage(MessagesErreurs::ERR_104_MSG); $lVr->getLog()->addErreur($lErreur); } if (!is_int((int) $pData['idCompte'])) { $lVr->setValid(false); $lVr->getLog()->setValid(false); $lErreur = new VRerreur(); $lErreur->setCode(MessagesErreurs::ERR_104_CODE); $lErreur->setMessage(MessagesErreurs::ERR_104_MSG); $lVr->getLog()->addErreur($lErreur); } //Tests Fonctionnels if (empty($pData['id_commande'])) { $lVr->setValid(false); $lVr->getLog()->setValid(false); $lErreur = new VRerreur(); $lErreur->setCode(MessagesErreurs::ERR_207_CODE); $lErreur->setMessage(MessagesErreurs::ERR_207_MSG); $lVr->getLog()->addErreur($lErreur); } if (empty($pData['idCompte'])) { $lVr->setValid(false); $lVr->getLog()->setValid(false); $lErreur = new VRerreur(); $lErreur->setCode(MessagesErreurs::ERR_207_CODE); $lErreur->setMessage(MessagesErreurs::ERR_207_MSG); $lVr->getLog()->addErreur($lErreur); } $lIdReservation = new IdReservationVO(); $lIdReservation->setIdCompte($pData['idCompte']); $lIdReservation->setIdCommande($pData['id_commande']); $lReservationService = new ReservationService(); $lOperations = $lReservationService->selectOperationReservation($lIdReservation); $lOperation = $lOperations[0]; $lIdOperation = $lOperation->getId(); // Si il y a déjà une réservation existante $lTypeResa = array(0, 7, 15); if (!is_null($lIdOperation) && in_array($lOperation->getTypePaiement(), $lTypeResa)) { $lVr->setValid(false); $lVr->getLog()->setValid(false); $lErreur = new VRerreur(); $lErreur->setCode(MessagesErreurs::ERR_220_CODE); $lErreur->setMessage(MessagesErreurs::ERR_220_MSG); $lVr->getLog()->addErreur($lErreur); } } return $lVr; }
/** * @copyright Copyright (C) 2008-2009 CMSJunkie. All rights reserved. * * This program is free software: you can redistribute it and/or modify * it under the terms of the GNU General Public License as published by * the Free Software Foundation * This program is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. * See the GNU General Public License for more details. * You should have received a copy of the GNU General Public License * along with this program. If not, see <http://www.gnu.org/licenses/>. */ // no direct access defined('_JEXEC') or die('Restricted access'); JHTML::_('stylesheet', 'modules/mod_jreservationinfo/assets/css/style.css'); require_once JPATH_SITE . '/administrator/components/com_jhotelreservation/helpers/defines.php'; require_once JPATH_SITE . '/administrator/components/com_jhotelreservation/helpers/utils.php'; // Include the syndicate functions only once require_once dirname(__FILE__) . DS . 'helper.php'; $userData = UserDataService::getUserData(); $hotel = HotelService::getHotel($userData->hotelId); $reservationData = new stdClass(); $reservationData->userData = $userData; $reservationData->appSettings = JHotelUtil::getInstance()->getApplicationSettings(); $reservationData->hotel = $hotel; $reservationService = new ReservationService(); $reservationDetails = $reservationService->generateReservationSummary($reservationData); $moduleclass_sfx = htmlspecialchars($params->get('moduleclass_sfx')); require JModuleHelper::getLayoutPath('mod_jreservationinfo', $params->get('layout', 'default'));
/** * @name supprimerReservation($pParam) * @return ListeReservationCommandeVR * @desc Met à jour une réservation */ public function supprimerReservation($pParam) { $lVr = CommandeReservationValid::validDelete($pParam); if ($lVr->getValid()) { $lReservationService = new ReservationService(); $lIdReservation = new IdReservationVO(); $lIdReservation->setIdCompte($pParam["id_compte"]); $lIdReservation->setIdCommande($pParam["id_commande"]); $lReservationService->delete($lIdReservation); } return $lVr; }
function sendCancellationEmail($reservationId) { $reservationService = new ReservationService(); $reservationDetails = $reservationService->getReservation($reservationId, -1); $sentResult = true; if ($reservationDetails->hotelId > 0) { $sentResult = EmailService::sendCancelationEmail($reservationDetails); } return $sentResult; }
/** * @name validUpdate($pData) * @return CommandeReservationVR * @desc Test la validite de l'élément */ public static function validUpdate($pData) { $lVr = CommandeReservationValid::validAjout($pData); //Tests inputs if (!isset($pData['id_commande'])) { $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 (!is_int((int) $pData['id_commande'])) { $lVr->setValid(false); $lVr->getLog()->setValid(false); $lErreur = new VRerreur(); $lErreur->setCode(MessagesErreurs::ERR_104_CODE); $lErreur->setMessage(MessagesErreurs::ERR_104_MSG); $lVr->getLog()->addErreur($lErreur); } //Tests Fonctionnels if (empty($pData['id_commande'])) { $lVr->setValid(false); $lVr->getLog()->setValid(false); $lErreur = new VRerreur(); $lErreur->setCode(MessagesErreurs::ERR_207_CODE); $lErreur->setMessage(MessagesErreurs::ERR_207_MSG); $lVr->getLog()->addErreur($lErreur); } $lIdReservation = new IdReservationVO(); $lIdReservation->setIdCompte($pData['id_compte']); $lIdReservation->setIdCommande($pData['id_commande']); $lReservationService = new ReservationService(); $lOperations = $lReservationService->selectOperationReservation($lIdReservation); $lOperation = $lOperations[0]; $lIdOperation = $lOperation->getId(); // Si la réservation n'est pas déjà achetée if (!is_null($lIdOperation) && $lOperation->getTypePaiement() == 22) { $lVr->setValid(false); $lVr->getLog()->setValid(false); $lErreur = new VRerreur(); $lErreur->setCode(MessagesErreurs::ERR_274_CODE); $lErreur->setMessage(MessagesErreurs::ERR_274_MSG); $lVr->getLog()->addErreur($lErreur); } } return $lVr; }
/** * @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 } } } }
function sendReviews() { $table = $this->getTable('Confirmations', 'Table'); $reviews = $table->getReviewsToSend(); foreach ($reviews as $review) { $reservationService = new ReservationService(); $reservationDetails = $reservationService->getReservation($review->confirmation_id); $emailService = new EmailService(); $emailService->sendReviewEmail($reservationDetails); $table->load($review->confirmation_id); $table->review_email_date = date('Y-m-d H:i:s'); $table->store(); } exit; }
/** * @name delete($pIdAdherent) * @param integer * @return AdherentVO * @desc Supprime un adherent */ public function delete($pIdAdherent) { $lAdherentValid = new NAMESPACE_CLASSE\NAMESPACE_VALIDATEUR\MOD_SERVICE\AdherentValid(); if ($lAdherentValid->delete($pIdAdherent)) { $lAdherent = AdherentManager::select($pIdAdherent); $lCompteService = new CompteService(); $lNbAdherentSurCompte = $lCompteService->getNombreAdherentSurCompte($lAdherent->getIdCompte()); $lAdhesionService = new AdhesionService(); // Suppression des adhésions $lAdhesionService->deleteAdhesionAdherentByIdAdherent($pIdAdherent); // Change l'état à supprimé $lAdherent->setEtat(2); AdherentManager::update($lAdherent); // Désactive l'identification $lIdentification = IdentificationManager::selectByIdType($lAdherent->getId(), 1); $lIdentification = $lIdentification[0]; $lIdentification->setAutorise(0); IdentificationManager::update($lIdentification); //Désinscription de la mailing liste $lMailingListeService = new MailingListeService(); if ($lAdherent->getCourrielPrincipal() != "") { $lMailingListeService->delete($lAdherent->getCourrielPrincipal()); } if ($lAdherent->getCourrielSecondaire() != "") { $lMailingListeService->delete($lAdherent->getCourrielSecondaire()); } // Si c'est le dernier adhérent du compte : suppression des réservations et abonnements if ($lNbAdherentSurCompte < 2) { // Suppression des réservations en cours $lMarcheService = new MarcheService(); $lReservations = $lMarcheService->getNonAchatParCompte($lAdherent->getIdCompte()); if (!is_null($lReservations[0]->getId())) { $lReservationService = new ReservationService(); foreach ($lReservations as $lReservation) { $lIdReservation = new IdReservationVO(); $lIdReservation->setIdCompte($lAdherent->getIdCompte()); $lIdReservation->setIdCommande($lReservation->getId()); $lReservationService->delete($lIdReservation); } } // Suppression des abonnements $lAbonnementService = new AbonnementService(); $lProduits = $lAbonnementService->getProduitsAbonne($lAdherent->getIdCompte()); foreach ($lProduits as $lProduit) { $lAbonnementService->deleteAbonnement($lProduit->getCptAboId()); } } return true; } else { return false; } }
function cancelReservation() { $confirmationId = JRequest::getVar('reservationId'); BookingService::cancelReservation($confirmationId); $msg = JText::_('LNG_RESERVATION_CANCELED'); $reservationService = new ReservationService(); $reservationDetails = $reservationService->getReservation($review->confirmation_id); $emailService = new EmailService(); $emailService->sendCancelationEmail($reservationDetails); $this->setRedirect(JRoute::_('index.php?option=' . getBookingExtName() . '&task=customeraccount.managereservations'), $msg); }
/** * @name delete($pId) * @param IdAchatVO * @desc Supprime un achat */ public function delete($pId) { $lAchatValid = new NAMESPACE_CLASSE\NAMESPACE_VALIDATEUR\MOD_SERVICE\AchatValid(); if (!is_null($pId) && $lAchatValid->select($pId)) { $lAchatActuel = $this->select($pId); $lOperationService = new OperationService(); // Suppression des opérations if (!is_null($lAchatActuel->getRechargement())) { // Rechargement $lOperationService->delete($lAchatActuel->getRechargement()->getId()); } $lIdCompte = 0; $lIdMarche = 0; $lIdOperationAchat = 0; if (!is_null($lAchatActuel->getOperationAchat())) { // Achat avec Ope Zeybu $lIdOperationAchat = $lAchatActuel->getOperationAchat()->getId(); $lOperationService->delete($lAchatActuel->getOperationAchat()->getId()); $lOperationAchatChampComp = $lAchatActuel->getOperationAchat()->getChampComplementaire(); $lOperationService->delete($lOperationAchatChampComp[8]->getValeur()); $lIdCompte = $lAchatActuel->getOperationAchat()->getIdCompte(); $lIdMarche = $lOperationAchatChampComp[1]->getValeur(); } $lIdOperationAchatSolidaire = 0; if (!is_null($lAchatActuel->getOperationAchatSolidaire())) { // Achat solidaire avec ope zeybu $lIdOperationAchatSolidaire = $lAchatActuel->getOperationAchatSolidaire()->getId(); $lOperationService->delete($lAchatActuel->getOperationAchatSolidaire()->getId()); $lOperationAchatSolidaireChampComp = $lAchatActuel->getOperationAchatSolidaire()->getChampComplementaire(); $lOperationService->delete($lOperationAchatSolidaireChampComp[8]->getValeur()); $lIdCompte = $lAchatActuel->getOperationAchatSolidaire()->getIdCompte(); $lIdMarche = $lOperationAchatSolidaireChampComp[1]->getValeur(); } // Suppression de l'ensemble des lignes de produit DetailAchatManager::delete($lIdOperationAchat, $lIdOperationAchatSolidaire); $lDetailOperationService = new DetailOperationService(); $lStockService = new StockService(); foreach ($lAchatActuel->getProduits() as $lProduitInital) { $lStockService->delete($lProduitInital->getIdStock()); $lDetailOperationService->delete($lProduitInital->getIdDetailOperation()); $lStockService->delete($lProduitInital->getIdStockSolidaire()); $lDetailOperationService->delete($lProduitInital->getIdDetailOperationSolidaire()); } // Suppression de la réservation $lReservationService = new ReservationService(); $lIdReservation = new IdReservationVO(); $lIdReservation->setIdCompte($lIdCompte); $lIdReservation->setIdCommande($lIdMarche); $lReservationService->delete($lIdReservation); return true; } return false; }
/** * @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; }
/** * @name autorisationSupprimerLot($pParam) * @return DetailProduitResponse * @desc Retourne les Modèles de lot d'un produit */ public function autorisationSupprimerLot($pParam) { $lVr = DetailCommandeValid::validDelete($pParam); if ($lVr->getValid()) { $lId = $pParam['id']; $lReservationService = new ReservationService(); $lResponse = new AutorisationSupprimerLotResponse(); $lResponse->setAutorise(!$lReservationService->reservationSurLot($lId)); return $lResponse; } return $lVr; }
/** * @name getInfoAchatMarche($pParam) * @return InfoAchatCommandeResponse * @desc Retourne les infos de réservation d'un adhérent */ public function getInfoAchatMarche($pParam) { $lVr = MarcheValid::validGetInfoAchatMarche($pParam); if ($lVr->getValid()) { $lResponse = new InfoAchatCommandeResponse(); if ($pParam["id_adherent"] != 0) { // Si ce n'est pas le compte invité $lAdherent = AdherentViewManager::select($pParam["id_adherent"]); $lResponse->setAdherent($lAdherent); } $lStockService = new StockService(); $lStockProduitsDisponible = $lStockService->getProduitsDisponible(); // Stock de produit disponible $lStock = array(); $lProduitsMarche = array(); $lProduitsReservation = array(); $lProduitsAchat = array(); if ($pParam["id_commande"] != -1) { // Si ce n'est pas la caisse permanente $lMarcheService = new MarcheService(); $lMarche = $lMarcheService->get($pParam["id_commande"]); $lProduitsMarche = $lMarche->getProduits(); $lResponse->setMarche($lMarche); // Les informations du marché if ($pParam["id_adherent"] != 0) { // Si ce n'est pas le compte invité $lReservationService = new ReservationService(); $lIdReservation = new IdReservationVO(); $lIdReservation->setIdCompte($lAdherent->getAdhIdCompte()); $lIdReservation->setIdCommande($pParam["id_commande"]); // Récupère les réservations actives $lProduitsReservation = $lReservationService->get($lIdReservation, true)->getDetailReservation(); $lResponse->setReservation($lProduitsReservation); // La réservation $lAchatService = new AchatService(); $lOperationsAchat = $lAchatService->selectOperationAchat($lAdherent->getAdhIdCompte(), $pParam["id_commande"]); $lAchat = new AchatVO(); if (!is_null($lOperationsAchat[0]->getId())) { $lAchat = $lAchatService->get($lOperationsAchat[0]->getId()); $lProduitsAchat = $lAchat->getProduits(); } else { $lOperationService = new OperationService(); $lOperationsRechargement = $lOperationService->getOperationRechargementSurMarche($lAdherent->getAdhIdCompte(), $pParam["id_commande"]); if (!is_null($lOperationsRechargement[0]->getId())) { $lAchat = $lAchatService->get($lOperationsRechargement[0]->getId()); } } $lResponse->setAchats($lAchat); // L'achat } } if ($pParam["id_adherent"] != 0) { // Si ce n'est pas le compte invité $lAdhesionService = new AdhesionService(); $lResponse->setNbAdhesionEnCours($lAdhesionService->getNbAdhesionEnCoursSurAdherent($pParam["id_adherent"])); } // Fusion des stocks $lLotsProduits = array(); foreach ($lStockProduitsDisponible as $lProduitStock) { if (!is_null($lProduitStock->getId())) { $lAjout = true; foreach ($lProduitsMarche as $lProduitMarche) { if ($lProduitStock->getIdNom() == $lProduitMarche->getIdNom() && $lProduitStock->getUnite() == $lProduitMarche->getUnite()) { $lAjout = false; } } if ($lAjout) { if (!isset($lStock[$lProduitStock->getCproNom()])) { $lStock[$lProduitStock->getCproNom()] = array("cproId" => $lProduitStock->getIdCategorie(), "cproNom" => $lProduitStock->getCproNom(), "produits" => array()); } $lUnite = $lProduitStock->getUnite(); $lStock[$lProduitStock->getCproNom()]["produits"][$lProduitStock->getNom() . $lProduitStock->getUnite()] = new ProduitDetailAchatAfficheVO($lProduitStock->getIdNom(), null, null, null, null, null, null, null, null, null, $lUnite, null, $lUnite, null, null, $lProduitStock->getIdCategorie(), $lProduitStock->getCproNom(), null, $lProduitStock->getNom()); $lLotsProduits[$lProduitStock->getIdNom() . $lProduitStock->getUnite()] = array("nom" => $lProduitStock->getNom(), "type" => "modele", "lots" => $lProduitStock->getLots()); } } } foreach ($lProduitsMarche as $lProduitMarche) { if (!isset($lStock[$lProduitMarche->getCproNom()])) { $lStock[$lProduitMarche->getCproNom()] = array("cproId" => $lProduitMarche->getIdCategorie(), "cproNom" => $lProduitMarche->getCproNom(), "produits" => array()); } $lUnite = !is_null($lProduitMarche->getUnite()) ? $lProduitMarche->getUnite() : $lProduitMarche->getUniteSolidaire(); $lMontant = NULL; $lQuantite = NULL; $lIdDetailCommande = NULL; // Ajout des réservations if (empty($lProduitsAchat)) { foreach ($lProduitsReservation as $lProduitReservation) { if ($lProduitReservation->getIdNomProduit() == $lProduitMarche->getIdNom() && $lProduitReservation->getUnite() == $lProduitMarche->getUnite()) { $lQuantite = $lProduitReservation->getQuantite(); $lMontant = $lProduitReservation->getMontant(); $lIdDetailCommande = $lProduitReservation->getIdDetailCommande(); } } } $lStock[$lProduitMarche->getCproNom()]["produits"][$lProduitMarche->getNom() . $lProduitMarche->getUnite()] = new ProduitDetailAchatAfficheVO($lProduitMarche->getIdNom(), null, null, null, null, $lIdDetailCommande, null, null, null, $lQuantite, $lUnite, null, $lUnite, $lMontant, null, $lProduitMarche->getIdCategorie(), $lProduitMarche->getCproNom(), null, $lProduitMarche->getNom()); $lLotsProduits[$lProduitMarche->getIdNom() . $lProduitMarche->getUnite()] = array("nom" => $lProduitMarche->getNom(), "type" => "marche", "lots" => $lProduitMarche->getLots()); } foreach ($lProduitsAchat as $lProduitAchat) { $lUnite = !is_null($lProduitAchat->getUnite()) ? $lProduitAchat->getUnite() : $lProduitAchat->getUniteSolidaire(); if (!is_null($lUnite)) { if (isset($lStock[$lProduitAchat->getCproNom()][$lProduitAchat->getNproNom()][$lUnite])) { $lStock[$lProduitAchat->getCproNom()][$lProduitAchat->getNproNom()][$lUnite]->setIdStock($lProduitAchat->getIdStock()); $lStock[$lProduitAchat->getCproNom()][$lProduitAchat->getNproNom()][$lUnite]->setIdStockSolidaire($lProduitAchat->getIdStockSolidaire()); $lStock[$lProduitAchat->getCproNom()][$lProduitAchat->getNproNom()][$lUnite]->setIdDetailCommande($lProduitAchat->getIdDetailCommande()); $lStock[$lProduitAchat->getCproNom()][$lProduitAchat->getNproNom()][$lUnite]->setIdModeleLot($lProduitAchat->getIdModeleLot()); $lStock[$lProduitAchat->getCproNom()][$lProduitAchat->getNproNom()][$lUnite]->setIdDetailCommandeSolidaire($lProduitAchat->getIdDetailCommandeSolidaire()); $lStock[$lProduitAchat->getCproNom()][$lProduitAchat->getNproNom()][$lUnite]->setIdModeleLotSolidaire($lProduitAchat->getIdModeleLotSolidaire()); $lStock[$lProduitAchat->getCproNom()][$lProduitAchat->getNproNom()][$lUnite]->setQuantite($lProduitAchat->getQuantite()); $lStock[$lProduitAchat->getCproNom()][$lProduitAchat->getNproNom()][$lUnite]->setQuantiteSolidaire($lProduitAchat->getQuantiteSolidaire()); $lStock[$lProduitAchat->getCproNom()][$lProduitAchat->getNproNom()][$lUnite]->setMontant($lProduitAchat->getMontant()); $lStock[$lProduitAchat->getCproNom()][$lProduitAchat->getNproNom()][$lUnite]->setMontantSolidaire($lProduitAchat->getMontantSolidaire()); $lStock[$lProduitAchat->getCproNom()][$lProduitAchat->getNproNom()][$lUnite]->setIdDetailOperation($lProduitAchat->getIdDetailOperation()); $lStock[$lProduitAchat->getCproNom()][$lProduitAchat->getNproNom()][$lUnite]->setIdDetailOperationSolidaire($lProduitAchat->getIdDetailOperationSolidaire()); } else { if (!isset($lStock[$lProduitAchat->getCproNom()])) { $lStock[$lProduitAchat->getCproNom()] = array("cproId" => $lProduitAchat->getCproId(), "cproNom" => $lProduitAchat->getCproNom(), "produits" => array()); } $lProduitAchat->setUnite($lUnite); $lProduitAchat->setUniteSolidaire($lUnite); $lStock[$lProduitAchat->getCproNom()]["produits"][$lProduitAchat->getNproNom() . $lUnite] = $lProduitAchat; // Ajout des lots $lModelesLot = ModeleLotManager::selectByIdNomProduit($lProduitAchat->getIdNomProduit()); // Récupère même les lots supprimés car il y a peut être eu un achat sur ce lot précédemment $lLots = array(); foreach ($lModelesLot as $lModeleLot) { $lLot = new DetailMarcheVO(); $lLot->setId($lModeleLot->getId()); $lLot->setTaille($lModeleLot->getQuantite()); $lLot->setPrix($lModeleLot->getPrix()); $lLots[$lModeleLot->getId()] = $lLot; } $lLotsProduits[$lProduitAchat->getIdNomProduit() . $lUnite] = array("nom" => $lProduitAchat->getNproNom(), "type" => "modele", "lots" => $lLots); } } } ksort($lStock); $lResponse->setStock($lStock); // Stock de produit disponible $lResponse->setLots($lLotsProduits); // Lots des produits $lBanqueService = new BanqueService(); $lTypePaiementService = new TypePaiementService(); $lResponse->setTypePaiement($lTypePaiementService->selectVisible()); // Type de paiment $lResponse->setBanques($lBanqueService->getAllActif()); // Liste des banques $lResponse->setIdRequete(uniqid()); return $lResponse; } return $lVr; }
function sendCancellationEmail($reservationId) { $reservationService = new ReservationService(); $reservationDetails = $reservationService->getReservation($reservationId); return EmailService::sendCancelationEmail($reservationDetails); }
/** * @name supprimerReservation($pParam) * @return ListeReservationCommandeVR * @desc Supprime une réservation */ public function supprimerReservation($pParam) { $pParam['idCompte'] = $_SESSION[ID_COMPTE]; $lVr = ReservationMarcheValid::validDelete($pParam); if ($lVr->getValid()) { $lReservationService = new ReservationService(); $lIdReservation = new IdReservationVO(); $lIdReservation->setIdCompte($pParam['idCompte']); $lIdReservation->setIdCommande($pParam["id_commande"]); $lReservationService->delete($lIdReservation); // Repositionne une réservations sur les abonnements $lAbonnementService = new AbonnementService(); $lAbonnementService->ajoutReservation($pParam['idCompte'], $pParam["id_commande"]); } return $lVr; }