/**
  * @name getReservation($pParam)
  * @return ReservationMarcheResponse
  * @desc Retourne les détails d'une réservation et de la commande
  */
 public function getReservation($pParam)
 {
     $pParam['idCompte'] = $_SESSION[ID_COMPTE];
     $lVr = ReservationMarcheValid::validGetReservation($pParam);
     if ($lVr->getValid()) {
         $lResponse = new ReservationMarcheResponse();
         $lMarcheService = new MarcheService();
         $lResponse->setMarche($lMarcheService->get($pParam["id_commande"]));
         $lResponse->setAdherent(AdherentViewManager::select($_SESSION[DROIT_ID]));
         // Ajoute la réservation si elle existe
         $lReservationService = new ReservationService();
         $lIdReservation = new IdReservationVO();
         $lIdReservation->setIdCompte($_SESSION[ID_COMPTE]);
         $lIdReservation->setIdCommande($pParam["id_commande"]);
         if ($lReservationService->enCours($lIdReservation)) {
             $lResponse->setReservation($lReservationService->get($lIdReservation)->getDetailReservation());
         }
         return $lResponse;
     }
     return $lVr;
 }
 /**
  * @name validAjout($pData)
  * @return ReservationMarcheVR
  * @desc Test la validite de l'élément
  */
 public static function validAjout($pData)
 {
     $lVr = new ReservationMarcheVR();
     //Tests inputs
     if (!isset($pData['detailReservation'])) {
         $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_array($pData['detailReservation'])) {
             $lVr->setValid(false);
             $lVr->getLog()->setValid(false);
             $lErreur = new VRerreur();
             $lErreur->setCode(MessagesErreurs::ERR_115_CODE);
             $lErreur->setMessage(MessagesErreurs::ERR_115_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['detailReservation'])) {
             $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);
         }
         if (isset($pData["detailReservation"][0]["stoIdDetailCommande"])) {
             $lIdLot = $pData["detailReservation"][0]["stoIdDetailCommande"];
             $lDetailMarche = DetailMarcheViewManager::selectByLot($lIdLot);
             // Marché : réservation non terminée
             if (!TestFonction::dateTimeEstPLusGrandeEgale($lDetailMarche[0]->getComDateFinReservation(), StringUtils::dateTimeAujourdhuiDb())) {
                 $lVr->setValid(false);
                 $lVr->getLog()->setValid(false);
                 $lErreur = new VRerreur();
                 $lErreur->setCode(MessagesErreurs::ERR_221_CODE);
                 $lErreur->setMessage(MessagesErreurs::ERR_221_MSG);
                 $lVr->getLog()->addErreur($lErreur);
             } else {
                 $lIdReservation = new IdReservationVO();
                 $lIdReservation->setIdCompte($pData['idCompte']);
                 $lIdReservation->setIdCommande($lDetailMarche[0]->getComId());
                 $lReservationService = new ReservationService();
                 $lOperations = $lReservationService->selectOperationReservation($lIdReservation);
                 $lOperation = $lOperations[0];
                 if ($lReservationService->enCours($lIdReservation)) {
                     $lIdOperation = $lOperation->getId();
                 } else {
                     $lIdOperation = -1;
                 }
                 // Si il y a 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);
                 		}*/
                 if ($lVr->getValid()) {
                     foreach ($pData['detailReservation'] as $lReservation) {
                         $lDetailMarche = DetailMarcheViewManager::selectByLot($lReservation["stoIdDetailCommande"]);
                         $lIdProduit = $lDetailMarche[0]->getProId();
                         $lReservation["idOperation"] = $lIdOperation;
                         $lVrReservation = DetailReservationMarcheValid::validAjout($lReservation);
                         if (!$lVrReservation->getValid()) {
                             $lVr->setValid(false);
                         }
                         if (isset($lIdProduit)) {
                             $lCommandes = $lVr->getCommandes();
                             $lCommandes[$lIdProduit] = $lVrReservation;
                             $lVr->setCommandes($lCommandes);
                         }
                     }
                 }
             }
         } else {
             $lVr->setValid(false);
             $lVr->getLog()->setValid(false);
             $lErreur = new VRerreur();
             $lErreur->setCode(MessagesErreurs::ERR_117_CODE);
             $lErreur->setMessage(MessagesErreurs::ERR_117_MSG);
             $lVr->getLog()->addErreur($lErreur);
         }
     }
     return $lVr;
 }
 /**
  * @name validAjout($pData)
  * @return CommandeReservationVR
  * @desc Test la validite de l'élément
  */
 public static function validAjout($pData)
 {
     $lVr = new CommandeReservationVR();
     //Tests inputs
     if (!isset($pData['detailReservation'])) {
         $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['id_compte'])) {
         $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_array($pData['detailReservation'])) {
             $lVr->setValid(false);
             $lVr->getLog()->setValid(false);
             $lErreur = new VRerreur();
             $lErreur->setCode(MessagesErreurs::ERR_115_CODE);
             $lErreur->setMessage(MessagesErreurs::ERR_115_MSG);
             $lVr->getLog()->addErreur($lErreur);
         }
         if (!is_int((int) $pData['id_compte'])) {
             $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['detailReservation'])) {
             $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['id_compte'])) {
             $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 (isset($pData["detailReservation"][0]["stoIdDetailCommande"])) {
             $lIdLot = $pData["detailReservation"][0]["stoIdDetailCommande"];
             $lDetailMarche = DetailMarcheViewManager::selectByLot($lIdLot);
             // Marché : réservation non terminée
             $lIdReservation = new IdReservationVO();
             $lIdReservation->setIdCompte($pData['id_compte']);
             $lIdReservation->setIdCommande($lDetailMarche[0]->getComId());
             $lReservationService = new ReservationService();
             $lOperations = $lReservationService->selectOperationReservation($lIdReservation);
             $lOperation = $lOperations[0];
             if ($lReservationService->enCours($lIdReservation)) {
                 $lIdOperation = $lOperation->getId();
             } else {
                 $lIdOperation = -1;
             }
             if ($lVr->getValid()) {
                 foreach ($pData['detailReservation'] as $lReservation) {
                     $lDetailMarche = DetailMarcheViewManager::selectByLot($lReservation["stoIdDetailCommande"]);
                     $lIdProduit = $lDetailMarche[0]->getProId();
                     $lReservation["idOperation"] = $lIdOperation;
                     $lVrReservation = CommandeDetailReservationValid::validAjout($lReservation);
                     if (!$lVrReservation->getValid()) {
                         $lVr->setValid(false);
                     }
                     if (isset($lIdProduit)) {
                         $lCommandes = $lVr->getCommandes();
                         $lCommandes[$lIdProduit] = $lVrReservation;
                         $lVr->setCommandes($lCommandes);
                     }
                 }
             }
         } else {
             $lVr->setValid(false);
             $lVr->getLog()->setValid(false);
             $lErreur = new VRerreur();
             $lErreur->setCode(MessagesErreurs::ERR_117_CODE);
             $lErreur->setMessage(MessagesErreurs::ERR_117_MSG);
             $lVr->getLog()->addErreur($lErreur);
         }
     }
     return $lVr;
 }
Exemplo n.º 4
0
 /**
  * @name ajoutProduit($pProduit)
  * @param ProduitMarcheVO
  * @desc Ajoute une produit au marche
  */
 public function ajoutProduit($pProduit)
 {
     $lComptes = CompteNomProduitViewManager::select($pProduit->getIdNom());
     $lComptes = $lComptes[0];
     $lIdCompteFerme = $lComptes->getFerIdCompte();
     // Insertion du produit
     $lProduit = new ProduitVO();
     $lProduit->setIdCommande($pProduit->getId());
     $lProduit->setIdNomProduit($pProduit->getIdNom());
     $lProduit->setUniteMesure($pProduit->getUnite());
     if ($pProduit->getQteMaxCommande() == "" || $pProduit->getQteMaxCommande() == -1) {
         $lProduit->setMaxProduitCommande(-1);
     } else {
         $lProduit->setMaxProduitCommande($pProduit->getQteMaxCommande());
     }
     $lProduit->setIdCompteFerme($lIdCompteFerme);
     if ($pProduit->getQteRestante() == "" || $pProduit->getQteRestante() == -1) {
         $lProduit->setStockReservation(0);
         $lProduit->setStockInitial(-1);
     } else {
         $lProduit->setStockReservation($pProduit->getQteRestante());
         $lProduit->setStockInitial($pProduit->getQteRestante());
     }
     $lProduit->setType($pProduit->getType());
     $lIdProduit = ProduitManager::insert($lProduit);
     //Insertion des lots
     $lCorrespondanceLotAbonnement = array();
     foreach ($pProduit->getLots() as $lNouveauLot) {
         $lDetailCommande = new DetailCommandeVO();
         $lDetailCommande->setIdProduit($lIdProduit);
         $lDetailCommande->setTaille($lNouveauLot->getTaille());
         $lDetailCommande->setPrix($lNouveauLot->getPrix());
         $lDcomId = DetailCommandeManager::insert($lDetailCommande);
         $lCorrespondanceLotAbonnement[$lNouveauLot->getId()] = $lDcomId;
     }
     $lStockService = new StockService();
     //Insertion du stock -> Met à jour le stock reservation dans le produit
     $lStock = new StockVO();
     if ($pProduit->getQteRestante() == "" || $pProduit->getQteRestante() == -1) {
         $lStock->setQuantite(0);
     } else {
         $lStock->setQuantite($pProduit->getQteRestante());
     }
     $lStock->setType(0);
     $lStock->setIdCompte($lIdCompteFerme);
     $lStock->setIdDetailCommande($lDcomId);
     //$lStock->setIdOperation(0);
     $lStockService->set($lStock);
     // Ajout des réservations pour abonnement
     if ($lProduit->getType() == 2) {
         $lIdMarche = $lProduit->getIdCommande();
         $lMarche = $this->getInfoMarche($lIdMarche);
         $lAbonnementService = new AbonnementService();
         $lReservationService = new ReservationService();
         $lIdNomProduit = $lProduit->getIdNomProduit();
         $lAbonnes = $lAbonnementService->getAbonnesByIdNomProduit($lIdNomProduit);
         if (!is_null($lAbonnes[0]->getCptAboIdProduitAbonnement())) {
             // Si il y a des abonnés
             foreach ($lAbonnes as $lAbonne) {
                 // Pas de suspension de l'abonnement
                 if (!(TestFonction::dateTimeEstPLusGrandeEgale($lMarche->getDateMarcheDebut(), $lAbonne->getCptAboDateDebutSuspension(), 'db') && TestFonction::dateTimeEstPLusGrandeEgale($lAbonne->getCptAboDateFinSuspension(), $lMarche->getDateMarcheDebut(), 'db')) && !(TestFonction::dateTimeEstPLusGrandeEgale($lMarche->getDateMarcheFin(), $lAbonne->getCptAboDateDebutSuspension(), 'db') && TestFonction::dateTimeEstPLusGrandeEgale($lAbonne->getCptAboDateFinSuspension(), $lMarche->getDateMarcheFin(), 'db'))) {
                     $lIdCompte = $lAbonne->getCptAboIdCompte();
                     $lIdReservationVO = new IdReservationVO();
                     $lIdReservationVO->setIdCompte($lIdCompte);
                     $lIdReservationVO->setIdCommande($lIdMarche);
                     $lReservationVO = new ReservationVO();
                     $lReservationVO->setId($lIdReservationVO);
                     if ($lReservationService->enCours($lIdReservationVO)) {
                         $lReservationVO = $lReservationService->get($lIdReservationVO);
                     }
                     $lDetailCommande = DetailCommandeManager::select($lCorrespondanceLotAbonnement[$lAbonne->getCptAboIdLotAbonnement()]);
                     $lPrix = $lAbonne->getCptAboQuantite() / $lDetailCommande->getTaille() * $lDetailCommande->getPrix();
                     $lDetailReservation = new DetailReservationVO();
                     $lDetailReservation->setIdDetailCommande($lCorrespondanceLotAbonnement[$lAbonne->getCptAboIdLotAbonnement()]);
                     $lDetailReservation->setQuantite($lAbonne->getCptAboQuantite() * -1);
                     $lDetailReservation->setMontant($lPrix * -1);
                     $lReservationVO->addDetailReservation($lDetailReservation);
                     $lReservationService->set($lReservationVO);
                 }
             }
         }
     }
     return $lIdProduit;
 }