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);
 }
예제 #3
0
 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));
 }
예제 #4
0
 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);
     }
 }
예제 #6
0
 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;
 }
예제 #10
0
 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;
 }
예제 #12
0
 /**
  * @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
             }
         }
     }
 }
예제 #13
0
 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;
 }
예제 #14
0
 /**
  * @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;
     }
 }
예제 #15
0
 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);
 }
예제 #16
0
 /**
  * @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;
 }
예제 #20
0
 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;
 }