/** * @name selectDetailProduits($pIdProduits) * @param array(integer idProduit) * @return array(DetailProduitVO) * @desc Récupères le détail des produits et les renvoie sous forme d'une collection de DetailProduitVO */ public static function selectDetailProduits($pIdProduits) { $lProduitValid = new NAMESPACE_CLASSE\NAMESPACE_VALIDATEUR\MOD_SERVICE\ProduitValid(); if ($lProduitValid->selectDetailProduits($pIdProduits)) { return ProduitManager::selectDetailProduits($pIdProduits); } else { return false; } }
/** * @name getInfoCommandeArchive() * @return InfoCommandeResponse * @desc Retourne les infos sur la commande archivée */ public function getInfoCommandeArchive($pParam) { $lVr = InfoCommandeValid::get($pParam); if ($lVr->getValid()) { $lResponse = new InfoCommandeResponse(); $lResponse->setInfoCommande(ProduitManager::selectResumeMarche($pParam['id_marche'])); $lResponse->setDetailMarche(CommandeManager::select($pParam['id_marche'])); return $lResponse; } return $lVr; }
/** * @name validAjoutProduit($pData) * @return CommandeCompleteVR * @desc Test la validite de l'élément */ public static function validAjoutProduit($pData) { $lVr = CommandeCompleteValid::validDelete($pData); if ($lVr->getValid()) { $lVr = ProduitMarcheValid::validAjout($pData); if ($lVr->getValid()) { // Test si produit déjà dans le marché $lProduit = ProduitManager::selectbyIdNomProduitIdMarche($pData['idNom'], $pData['id']); $lType = $lProduit[0]->getType(); $lId = $lProduit[0]->getId(); if (!empty($lId) && $lType == $pData['type']) { $lVr->setValid(false); $lVr->getLog()->setValid(false); $lErreur = new VRerreur(); $lErreur->setCode(MessagesErreurs::ERR_211_CODE); $lErreur->setMessage(MessagesErreurs::ERR_211_MSG); $lVr->getLog()->addErreur($lErreur); } } } return $lVr; }
/** * @name getListeAchatEtReservationCSV($pParam) * @return Un Fichier CSV * @desc Retourne la liste des achats et réservations pour une commande et la liste de produits demandés */ public function getListeAchatEtReservationCSV($pParam) { $lVr = ExportListeAchatEtReservationValid::validAjout($pParam); if ($lVr->getValid()) { $lIdProduits = $pParam['id_produits']; $lInfoAR = $this->getListeAchatEtReservationExport($pParam); $lQuantiteAR = $lInfoAR['quantite']; $lTableauAR = $lInfoAR['detail']; $lCSV = new CSV(); $lCSV->setNom('AchatEtRéservations.csv'); // Le Nom // L'entete $lEntete = array("Compte", "Nom", "Prénom", "Tel."); $lLigne2 = array("", "", "", ""); $lLigne3 = array("", "", "", "Total"); foreach ($lIdProduits as $lIdProduit) { $lProduit = ProduitManager::select($lIdProduit); $lNomProduit = NomProduitManager::select($lProduit->getIdNomProduit()); $lLabelNomProduit = htmlspecialchars_decode($lNomProduit->getNom(), ENT_QUOTES); if ($lProduit->getType() == 2) { $lLabelNomProduit .= " (Abonnement)"; } array_push($lEntete, $lLabelNomProduit, "", "", "", "", "", "", "", "", ""); array_push($lLigne2, "Réservation", "", "Achat", "", "", "", "Solidaire", "", "", ""); $lQuantiteReservation = ''; $lUniteReservation = ''; if (isset($lQuantiteAR[$lIdProduit]['reservation']) && !empty($lQuantiteAR[$lIdProduit]['reservation'])) { $lQuantiteReservation = $lQuantiteAR[$lIdProduit]['reservation']; $lUniteReservation = $lProduit->getUniteMesure(); } $lQuantiteAchat = ''; $lUniteAchat = ''; if (isset($lQuantiteAR[$lIdProduit]['qteAchat']) && !empty($lQuantiteAR[$lIdProduit]['qteAchat'])) { $lQuantiteAchat = $lQuantiteAR[$lIdProduit]['qteAchat']; $lUniteAchat = $lProduit->getUniteMesure(); } $lPrixAchat = ''; $lSiglePrixAchat = ''; if (isset($lQuantiteAR[$lIdProduit]['prixAchat']) && !empty($lQuantiteAR[$lIdProduit]['prixAchat'])) { $lPrixAchat = $lQuantiteAR[$lIdProduit]['prixAchat']; $lSiglePrixAchat = SIGLE_MONETAIRE; } $lQuantiteSolidaire = ''; $lUniteSolidaire = ''; if (isset($lQuantiteAR[$lIdProduit]['qteSolidaire']) && !empty($lQuantiteAR[$lIdProduit]['qteSolidaire'])) { $lQuantiteSolidaire = $lQuantiteAR[$lIdProduit]['qteSolidaire']; $lUniteSolidaire = $lProduit->getUniteMesure(); } $lPrixSolidaire = ''; $lSiglePrixSolidaire = ''; if (isset($lQuantiteAR[$lIdProduit]['prixSolidaire']) && !empty($lQuantiteAR[$lIdProduit]['prixSolidaire'])) { $lPrixSolidaire = $lQuantiteAR[$lIdProduit]['prixSolidaire']; $lSiglePrixSolidaire = SIGLE_MONETAIRE; } array_push($lLigne3, $lQuantiteReservation, $lUniteReservation, $lQuantiteAchat, $lUniteAchat, $lPrixAchat, $lSiglePrixAchat, $lQuantiteSolidaire, $lUniteSolidaire, $lPrixSolidaire, $lSiglePrixSolidaire); } $lCSV->setEntete($lEntete); // Les données $contenuTableau = array(); array_push($contenuTableau, $lLigne2); array_push($contenuTableau, $lLigne3); foreach ($lTableauAR as $lVal) { $lLigne = array(); array_push($lLigne, $lVal['compte']); array_push($lLigne, $lVal['nom']); array_push($lLigne, $lVal['prenom']); array_push($lLigne, $lVal['telephonePrincipal']); foreach ($lIdProduits as $lIdProduit) { $lQuantiteReservation = ''; $lUniteReservation = ''; if (isset($lVal[$lIdProduit]['reservation']) && !empty($lVal[$lIdProduit]['reservation'])) { $lQuantiteReservation = $lVal[$lIdProduit]['reservation']; $lUniteReservation = $lVal[$lIdProduit]['unite']; } $lQuantiteAchat = ''; $lUniteAchat = ''; if (isset($lVal[$lIdProduit]['qteAchat']) && !empty($lVal[$lIdProduit]['qteAchat'])) { $lQuantiteAchat = $lVal[$lIdProduit]['qteAchat']; $lUniteAchat = $lVal[$lIdProduit]['unite']; } $lPrixAchat = ''; $lSiglePrixAchat = ''; if (isset($lVal[$lIdProduit]['prixAchat']) && !empty($lVal[$lIdProduit]['prixAchat'])) { $lPrixAchat = $lVal[$lIdProduit]['prixAchat']; $lSiglePrixAchat = SIGLE_MONETAIRE; } $lQuantiteSolidaire = ''; $lUniteSolidaire = ''; if (isset($lVal[$lIdProduit]['qteSolidaire']) && !empty($lVal[$lIdProduit]['qteSolidaire'])) { $lQuantiteSolidaire = $lVal[$lIdProduit]['qteSolidaire']; $lUniteSolidaire = $lVal[$lIdProduit]['unite']; } $lPrixSolidaire = ''; $lSiglePrixSolidaire = ''; if (isset($lVal[$lIdProduit]['prixSolidaire']) && !empty($lVal[$lIdProduit]['prixSolidaire'])) { $lPrixSolidaire = $lVal[$lIdProduit]['prixSolidaire']; $lSiglePrixSolidaire = SIGLE_MONETAIRE; } array_push($lLigne, $lQuantiteReservation, $lUniteReservation, $lQuantiteAchat, $lUniteAchat, $lPrixAchat, $lSiglePrixAchat, $lQuantiteSolidaire, $lUniteSolidaire, $lPrixSolidaire, $lSiglePrixSolidaire); } array_push($contenuTableau, $lLigne); } $lCSV->setData($contenuTableau); // Export en CSV $lCSV->output(); } else { return $lVr; } }
/** * @name updateStockProduit($pStock) * @param StockVO * @return integer * @desc Met à jour une opération */ public function updateStockProduit($pStock) { // TODO les test : on update que les types 0/1/2/3/4/5/6 $lStockActuel = $this->get($pStock->getId()); $pStock->setDate(StringUtils::dateTimeAujourdhuiDb()); // TODO Mise à jour du stock selon le type switch ($pStock->getType()) { case 0: // Reservation $lLot = DetailCommandeManager::select($pStock->getIdDetailCommande()); $lProduit = ProduitManager::select($lLot->getIdProduit()); if ($pStock->getQuantite() != -1 && $lProduit->getStockInitial() == -1) { // Maj Stock Reservation dans le produit $lProduit->setStockReservation($lProduit->getStockReservation() + $pStock->getQuantite()); $lProduit->setStockInitial($pStock->getQuantite()); ProduitManager::update($lProduit); } else { if ($pStock->getQuantite() == -1 && $lProduit->getStockInitial() != -1) { //echo 2; // Maj Stock Reservation dans le produit $lProduit->setStockReservation($lProduit->getStockReservation() - $lProduit->getStockInitial()); $lProduit->setStockInitial(-1); ProduitManager::update($lProduit); } else { if ($pStock->getQuantite() != -1 && $lProduit->getStockInitial() != -1) { //echo 3; // Maj Stock Reservation dans le produit $lProduit->setStockReservation($lProduit->getStockReservation() - $lProduit->getStockInitial() + $pStock->getQuantite()); $lProduit->setStockInitial($pStock->getQuantite()); ProduitManager::update($lProduit); } } } break; } $this->insertHistorique($pStock); // Ajout historique return StockManager::update($pStock); // update }
</table> </page_footer> <table cellspacing="0" style="width: 100%; text-align: left; font-size: 10pt;"> <thead> <tr> <th style="width: 55px; text-align: center; border: solid 1px black;" >Compte</th> <th style="width: 125px; text-align: center; border-top: solid 1px black; border-bottom: solid 1px black; border-right: solid 1px black;">Nom</th> <th style="width: 125px; text-align: center; border-top: solid 1px black; border-bottom: solid 1px black; border-right: solid 1px black;">Prénom</th> <th style="width: 95px; text-align: center; border-top: solid 1px black; border-bottom: solid 1px black; border-right: solid 1px black;">Tél.</th> <?php $lLots = array(); $lNbLignePrixProduit = 0; $j = 0; while ($j < $lNbProduitPage) { $lIdProduit = $lIdProduits[$i * $lLimitePaysage + $j]; $lProduits = ProduitManager::selectDetailProduits(array($lIdProduit)); $lProduit = $lProduits[0]; $lLots[$lIdProduit] = DetailCommandeManager::selectByIdProduit($lIdProduit); $lnbLignePrix = count($lLots[$lIdProduit]); if ($lNbLignePrixProduit < $lnbLignePrix) { $lNbLignePrixProduit = $lnbLignePrix; } $lLabelNomProduit = $lProduit->getNproNom(); if ($lProduit->getProType() == 2) { $lLabelNomProduit .= " (Abonnement)"; } ?> <th colspan="2" style="width: 80px; text-align: center; border-top: solid 1px black; border-bottom: solid 1px black; border-right: solid 1px black;"><?php echo $lLabelNomProduit; ?> </th>
/** * @name validDelete($pData) * @return ProduitMarcheVR * @desc Test la validite de l'élément */ public static function validDelete($pData) { $lVr = new ProduitMarcheVR(); //Tests inputs if (!isset($pData['id'])) { $lVr->setValid(false); $lVr->getId()->setValid(false); $lErreur = new VRerreur(); $lErreur->setCode(MessagesErreurs::ERR_201_CODE); $lErreur->setMessage(MessagesErreurs::ERR_201_MSG); $lVr->getId()->addErreur($lErreur); } if ($lVr->getValid()) { //Tests Techniques if (!TestFonction::checkLength($pData['id'], 0, 11)) { $lVr->setValid(false); $lVr->getId()->setValid(false); $lErreur = new VRerreur(); $lErreur->setCode(MessagesErreurs::ERR_101_CODE); $lErreur->setMessage(MessagesErreurs::ERR_101_MSG); $lVr->getId()->addErreur($lErreur); } if (!is_int((int) $pData['id'])) { $lVr->setValid(false); $lVr->getId()->setValid(false); $lErreur = new VRerreur(); $lErreur->setCode(MessagesErreurs::ERR_104_CODE); $lErreur->setMessage(MessagesErreurs::ERR_104_MSG); $lVr->getId()->addErreur($lErreur); } if (empty($pData['id'])) { $lVr->setValid(false); $lVr->getId()->setValid(false); $lErreur = new VRerreur(); $lErreur->setCode(MessagesErreurs::ERR_201_CODE); $lErreur->setMessage(MessagesErreurs::ERR_201_MSG); $lVr->getId()->addErreur($lErreur); } // Le produit doit exister $lProduit = ProduitManager::select($pData['id']); if ($lProduit->getId() != $pData['id']) { $lVr->setValid(false); $lVr->getId()->setValid(false); $lErreur = new VRerreur(); $lErreur->setCode(MessagesErreurs::ERR_210_CODE); $lErreur->setMessage(MessagesErreurs::ERR_210_MSG); $lVr->getId()->addErreur($lErreur); } } return $lVr; }
/** * @name validUpdate($pData) * @returnCommandeDetailReservationVR * @desc Test la validite de l'élément */ public static function validUpdate($pData) { $lVr = new CommandeDetailReservationVR(); //Tests inputs if (!isset($pData['stoQuantite'])) { $lVr->setValid(false); $lVr->getStoQuantite()->setValid(false); $lErreur = new VRerreur(); $lErreur->setCode(MessagesErreurs::ERR_201_CODE); $lErreur->setMessage(MessagesErreurs::ERR_201_MSG); $lVr->getStoQuantite()->addErreur($lErreur); } if (!isset($pData['stoIdDetailCommande'])) { $lVr->setValid(false); $lVr->getStoIdDetailCommande()->setValid(false); $lErreur = new VRerreur(); $lErreur->setCode(MessagesErreurs::ERR_201_CODE); $lErreur->setMessage(MessagesErreurs::ERR_201_MSG); $lVr->getStoIdDetailCommande()->addErreur($lErreur); } if (!isset($pData['idOperation'])) { $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 (!TestFonction::checkLength($pData['stoQuantite'], 0, 12) || $pData['stoQuantite'] > 999999999.99) { $lVr->setValid(false); $lVr->getStoQuantite()->setValid(false); $lErreur = new VRerreur(); $lErreur->setCode(MessagesErreurs::ERR_101_CODE); $lErreur->setMessage(MessagesErreurs::ERR_101_MSG); $lVr->getStoQuantite()->addErreur($lErreur); } if (!is_float((double) $pData['stoQuantite'])) { $lVr->setValid(false); $lVr->getStoQuantite()->setValid(false); $lErreur = new VRerreur(); $lErreur->setCode(MessagesErreurs::ERR_108_CODE); $lErreur->setMessage(MessagesErreurs::ERR_108_MSG); $lVr->getStoQuantite()->addErreur($lErreur); } if (!TestFonction::checkLength($pData['stoIdDetailCommande'], 0, 11)) { $lVr->setValid(false); $lVr->getStoIdDetailCommande()->setValid(false); $lErreur = new VRerreur(); $lErreur->setCode(MessagesErreurs::ERR_101_CODE); $lErreur->setMessage(MessagesErreurs::ERR_101_MSG); $lVr->getStoIdDetailCommande()->addErreur($lErreur); } if (!is_float((double) $pData['stoIdDetailCommande'])) { $lVr->setValid(false); $lVr->getStoIdDetailCommande()->setValid(false); $lErreur = new VRerreur(); $lErreur->setCode(MessagesErreurs::ERR_108_CODE); $lErreur->setMessage(MessagesErreurs::ERR_108_MSG); $lVr->getStoIdDetailCommande()->addErreur($lErreur); } if (!is_int((int) $pData['idOperation'])) { $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['stoQuantite'])) { $lVr->setValid(false); $lVr->getStoQuantite()->setValid(false); $lErreur = new VRerreur(); $lErreur->setCode(MessagesErreurs::ERR_201_CODE); $lErreur->setMessage(MessagesErreurs::ERR_201_MSG); $lVr->getStoQuantite()->addErreur($lErreur); } if (empty($pData['stoIdDetailCommande'])) { $lVr->setValid(false); $lVr->getStoIdDetailCommande()->setValid(false); $lErreur = new VRerreur(); $lErreur->setCode(MessagesErreurs::ERR_201_CODE); $lErreur->setMessage(MessagesErreurs::ERR_201_MSG); $lVr->getStoIdDetailCommande()->addErreur($lErreur); } if (empty($pData['idOperation'])) { $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 ($pData['stoQuantite'] >= 0) { $lVr->setValid(false); $lVr->getStoQuantite()->setValid(false); $lErreur = new VRerreur(); $lErreur->setCode(MessagesErreurs::ERR_201_CODE); $lErreur->setMessage(MessagesErreurs::ERR_201_MSG); $lVr->getStoQuantite()->addErreur($lErreur); } $lDcom = DetailCommandeManager::select($pData['stoIdDetailCommande']); if ($lDcom->getId() == null) { $lVr->setValid(false); $lVr->getLog()->setValid(false); $lErreur = new VRerreur(); $lErreur->setCode(MessagesErreurs::ERR_216_CODE); $lErreur->setMessage(MessagesErreurs::ERR_216_MSG); $lVr->getLog()->addErreur($lErreur); } else { $lPdt = ProduitManager::select($lDcom->getIdProduit()); if ($lPdt->getId() == null) { $lVr->setValid(false); $lVr->getLog()->setValid(false); $lErreur = new VRerreur(); $lErreur->setCode(MessagesErreurs::ERR_216_CODE); $lErreur->setMessage(MessagesErreurs::ERR_216_MSG); $lVr->getLog()->addErreur($lErreur); } else { $lQte = $pData['stoQuantite'] * -1; if ($lPdt->getMaxProduitCommande() != -1 && $lQte > $lPdt->getMaxProduitCommande()) { $lVr->setValid(false); $lVr->getStoIdProduit()->setValid(false); $lErreur = new VRerreur(); $lErreur->setCode(MessagesErreurs::ERR_217_CODE); $lErreur->setMessage(MessagesErreurs::ERR_217_MSG); $lVr->getStoIdProduit()->addErreur($lErreur); } $StockService = new StockService(); $lStocks = $StockService->getDetailReservation($pData['idOperation']); $lStock = $lStocks[0]; $lQuantiteReservation = $lStock->getQuantite(); if ($lPdt->getStockInitial() != -1 && $lQte > $lPdt->getStockReservation() - $lQuantiteReservation) { $lVr->setValid(false); $lVr->getStoIdProduit()->setValid(false); $lErreur = new VRerreur(); $lErreur->setCode(MessagesErreurs::ERR_218_CODE); $lErreur->setMessage(MessagesErreurs::ERR_218_MSG); $lVr->getStoIdProduit()->addErreur($lErreur); } } } } return $lVr; }
/** * @name getListeReservationCSV($pParam) * @return Un Fichier CSV * @desc Retourne la liste des réservations pour une commande et la liste de produits demandés */ public function getListeReservationCSV($pParam) { $lVr = ExportListeReservationValid::validAjout($pParam); if ($lVr->getValid()) { $lIdProduits = $pParam['id_produits']; $lInfoReservation = $this->getListeReservationExport($pParam); $lQuantiteReservation = $lInfoReservation['quantite']; $lTableauReservation = $lInfoReservation['detail']; $lCSV = new CSV(); $lCSV->setNom('Réservations.csv'); // Le Nom // L'entete $lEntete = array("Compte", "Nom", "Prénom", "Tel."); $lLigne2 = array("", "", "", ""); $lLigne3 = array("", "", "", ""); foreach ($lIdProduits as $lIdProduit) { $lProduit = ProduitManager::select($lIdProduit); $lNomProduit = NomProduitManager::select($lProduit->getIdNomProduit()); $lLabelNomProduit = htmlspecialchars_decode($lNomProduit->getNom(), ENT_QUOTES); if ($lProduit->getType() == 2) { $lLabelNomProduit .= " (Abonnement)"; } array_push($lEntete, $lLabelNomProduit, ""); array_push($lLigne2, "Prévu", "Réel"); $lQuantite = ''; if (isset($lQuantiteReservation[$lIdProduit])) { $lQuantite = $lQuantiteReservation[$lIdProduit]; } array_push($lLigne3, $lQuantite, ""); } $lCSV->setEntete($lEntete); // Les données $contenuTableau = array(); array_push($contenuTableau, $lLigne2); array_push($contenuTableau, $lLigne3); foreach ($lTableauReservation as $lVal) { $lLigne = array(); array_push($lLigne, $lVal['compte']); array_push($lLigne, $lVal['nom']); array_push($lLigne, $lVal['prenom']); array_push($lLigne, $lVal['telephonePrincipal']); foreach ($lIdProduits as $lIdProduit) { array_push($lLigne, $lVal[$lIdProduit], ""); } array_push($contenuTableau, $lLigne); } $lCSV->setData($contenuTableau); // Export en CSV $lCSV->output(); } else { return $lVr; } }
/** * @name getDetailProduit($pParam) * @return DetailProduitResponse * @desc Retourne le détail d'un produit */ public function getDetailProduit($pParam) { $lVr = AfficheReservationAdherentValid::validGetDetailProduit($pParam); if ($lVr->getValid()) { $lId = $pParam['id']; $lProduit = ProduitManager::select($lId); $lIdNomProduit = $lProduit->getIdNomProduit(); $lNomProduit = NomProduitViewManager::select($lProduit->getIdNomProduit($lIdNomProduit)); $lNomProduit = $lNomProduit[0]; $lNomProduitCatalagueVO = new NomProduitCatalogueVO(); $lNomProduitCatalagueVO->setId($lNomProduit->getNProIdFerme()); $lNomProduitCatalagueVO->setCproNom($lNomProduit->getCproNom()); $lNomProduitCatalagueVO->setNom($lNomProduit->getNProNom()); $lNomProduitCatalagueVO->setDescription($lNomProduit->getNProDescription()); $lProducteurs = NomProduitProducteurViewManager::select($lIdNomProduit); $lNomProduitCatalagueVO->setProducteurs($lProducteurs); $lCaracteristiques = CaracteristiqueProduitViewManager::select($lIdNomProduit); $lNomProduitCatalagueVO->setCaracteristiques($lCaracteristiques); $lResponse = new DetailProduitResponse(); $lResponse->setProduit($lNomProduitCatalagueVO); return $lResponse; } return $lVr; }
/** * @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 selectDetailProduits($pProduits) * @param array(integer idProduit) * @return array(DetailProduitVO) * @desc Récupères le détail des produits et les renvoie sous forme d'une collection de DetailProduitVO */ public static function selectDetailProduits($pProduits) { // Initialisation du Logger $lLogger =& Log::singleton('file', CHEMIN_FICHIER_LOGS); $lLogger->setMask(Log::MAX(LOG_LEVEL)); $lRequete = "SELECT " . ProduitManager::CHAMP_PRODUIT_ID . "," . ProduitManager::CHAMP_PRODUIT_ID_COMMANDE . "," . ProduitManager::CHAMP_PRODUIT_ID_NOM_PRODUIT . "," . ProduitManager::CHAMP_PRODUIT_UNITE_MESURE . "," . ProduitManager::CHAMP_PRODUIT_MAX_PRODUIT_COMMANDE . "," . ProduitManager::CHAMP_PRODUIT_ID_COMPTE_FERME . "," . ProduitManager::CHAMP_PRODUIT_STOCK_RESERVATION . "," . ProduitManager::CHAMP_PRODUIT_STOCK_INITIAL . "," . ProduitManager::CHAMP_PRODUIT_TYPE . "," . ProduitManager::CHAMP_PRODUIT_ETAT . "," . NomProduitManager::CHAMP_NOMPRODUIT_ID . "," . NomProduitManager::CHAMP_NOMPRODUIT_NUMERO . "," . NomProduitManager::CHAMP_NOMPRODUIT_NOM . "," . NomProduitManager::CHAMP_NOMPRODUIT_DESCRIPTION . "," . NomProduitManager::CHAMP_NOMPRODUIT_ID_CATEGORIE . "," . NomProduitManager::CHAMP_NOMPRODUIT_ID_FERME . "," . NomProduitManager::CHAMP_NOMPRODUIT_ETAT . "," . CategorieProduitManager::CHAMP_CATEGORIEPRODUIT_ID . "," . CategorieProduitManager::CHAMP_CATEGORIEPRODUIT_NOM . "," . CategorieProduitManager::CHAMP_CATEGORIEPRODUIT_DESCRIPTION . "," . CategorieProduitManager::CHAMP_CATEGORIEPRODUIT_ETAT . "\n \t\t\tFROM " . ProduitManager::TABLE_PRODUIT . " \n\t\t\tJOIN " . NomProduitManager::TABLE_NOMPRODUIT . " on " . NomProduitManager::CHAMP_NOMPRODUIT_ID . " = " . ProduitManager::CHAMP_PRODUIT_ID_NOM_PRODUIT . "\n\t\t\tJOIN " . CategorieProduitManager::TABLE_CATEGORIEPRODUIT . " on " . CategorieProduitManager::CHAMP_CATEGORIEPRODUIT_ID . " = " . NomProduitManager::CHAMP_NOMPRODUIT_ID_CATEGORIE . "\n\t\t\tWHERE " . ProduitManager::CHAMP_PRODUIT_ID . " in ( '" . str_replace(",", "','", StringUtils::securiser(implode(",", $pProduits))) . "')\n\t\t\tORDER BY " . CategorieProduitManager::CHAMP_CATEGORIEPRODUIT_NOM . " ASC," . NomProduitManager::CHAMP_NOMPRODUIT_NOM . " ASC;"; $lLogger->log("Execution de la requete : " . $lRequete, PEAR_LOG_DEBUG); // Maj des logs $lSql = Dbutils::executerRequete($lRequete); $lListeProduit = array(); if (mysql_num_rows($lSql) > 0) { while ($lLigne = mysql_fetch_assoc($lSql)) { array_push($lListeProduit, ProduitManager::remplirDetailProduit($lLigne[ProduitManager::CHAMP_PRODUIT_ID], $lLigne[ProduitManager::CHAMP_PRODUIT_ID_COMMANDE], $lLigne[ProduitManager::CHAMP_PRODUIT_ID_NOM_PRODUIT], $lLigne[ProduitManager::CHAMP_PRODUIT_UNITE_MESURE], $lLigne[ProduitManager::CHAMP_PRODUIT_MAX_PRODUIT_COMMANDE], $lLigne[ProduitManager::CHAMP_PRODUIT_ID_COMPTE_FERME], $lLigne[ProduitManager::CHAMP_PRODUIT_STOCK_RESERVATION], $lLigne[ProduitManager::CHAMP_PRODUIT_STOCK_INITIAL], $lLigne[ProduitManager::CHAMP_PRODUIT_TYPE], $lLigne[ProduitManager::CHAMP_PRODUIT_ETAT], $lLigne[NomProduitManager::CHAMP_NOMPRODUIT_ID], $lLigne[NomProduitManager::CHAMP_NOMPRODUIT_NUMERO], $lLigne[NomProduitManager::CHAMP_NOMPRODUIT_NOM], $lLigne[NomProduitManager::CHAMP_NOMPRODUIT_DESCRIPTION], $lLigne[NomProduitManager::CHAMP_NOMPRODUIT_ID_CATEGORIE], $lLigne[NomProduitManager::CHAMP_NOMPRODUIT_ID_FERME], $lLigne[NomProduitManager::CHAMP_NOMPRODUIT_ETAT], $lLigne[CategorieProduitManager::CHAMP_CATEGORIEPRODUIT_ID], $lLigne[CategorieProduitManager::CHAMP_CATEGORIEPRODUIT_NOM], $lLigne[CategorieProduitManager::CHAMP_CATEGORIEPRODUIT_DESCRIPTION], $lLigne[CategorieProduitManager::CHAMP_CATEGORIEPRODUIT_ETAT])); } } else { $lListeProduit[0] = new DetailProduitVO(); } return $lListeProduit; }
/** * @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 } } } }
/** * @name validAjout($pData) * @returnCommandeDetailReservationVR * @desc Test la validite de l'élément */ public static function validAjout($pData) { $lVr = new MarcheDetailAchatVR(); //Tests inputs if (!isset($pData['id'])) { $lVr->setValid(false); $lVr->getId()->setValid(false); $lErreur = new VRerreur(); $lErreur->setCode(MessagesErreurs::ERR_201_CODE); $lErreur->setMessage(MessagesErreurs::ERR_201_MSG); $lVr->getId()->addErreur($lErreur); } if (!isset($pData['quantite'])) { $lVr->setValid(false); $lVr->getQuantite()->setValid(false); $lErreur = new VRerreur(); $lErreur->setCode(MessagesErreurs::ERR_201_CODE); $lErreur->setMessage(MessagesErreurs::ERR_201_MSG); $lVr->getQuantite()->addErreur($lErreur); } if (!isset($pData['prix'])) { $lVr->setValid(false); $lVr->getPrix()->setValid(false); $lErreur = new VRerreur(); $lErreur->setCode(MessagesErreurs::ERR_201_CODE); $lErreur->setMessage(MessagesErreurs::ERR_201_MSG); $lVr->getPrix()->addErreur($lErreur); } if (!isset($pData['idCommande'])) { $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 (!TestFonction::checkLength($pData['id'], 0, 11)) { $lVr->setValid(false); $lVr->getId()->setValid(false); $lErreur = new VRerreur(); $lErreur->setCode(MessagesErreurs::ERR_101_CODE); $lErreur->setMessage(MessagesErreurs::ERR_101_MSG); $lVr->getId()->addErreur($lErreur); } if (!is_int((int) $pData['id'])) { $lVr->setValid(false); $lVr->getId()->setValid(false); $lErreur = new VRerreur(); $lErreur->setCode(MessagesErreurs::ERR_108_CODE); $lErreur->setMessage(MessagesErreurs::ERR_108_MSG); $lVr->getId()->addErreur($lErreur); } if (!TestFonction::checkLength($pData['quantite'], 0, 12) || $pData['quantite'] > 999999999.99) { $lVr->setValid(false); $lVr->getQuantite()->setValid(false); $lErreur = new VRerreur(); $lErreur->setCode(MessagesErreurs::ERR_101_CODE); $lErreur->setMessage(MessagesErreurs::ERR_101_MSG); $lVr->getQuantite()->addErreur($lErreur); } if (!is_float((double) $pData['quantite'])) { $lVr->setValid(false); $lVr->getQuantite()->setValid(false); $lErreur = new VRerreur(); $lErreur->setCode(MessagesErreurs::ERR_108_CODE); $lErreur->setMessage(MessagesErreurs::ERR_108_MSG); $lVr->getQuantite()->addErreur($lErreur); } if (!TestFonction::checkLength($pData['prix'], 0, 12) || $pData['prix'] > 999999999.99) { $lVr->setValid(false); $lVr->getPrix()->setValid(false); $lErreur = new VRerreur(); $lErreur->setCode(MessagesErreurs::ERR_101_CODE); $lErreur->setMessage(MessagesErreurs::ERR_101_MSG); $lVr->getPrix()->addErreur($lErreur); } if (!is_float((double) $pData['prix'])) { $lVr->setValid(false); $lVr->getPrix()->setValid(false); $lErreur = new VRerreur(); $lErreur->setCode(MessagesErreurs::ERR_108_CODE); $lErreur->setMessage(MessagesErreurs::ERR_108_MSG); $lVr->getPrix()->addErreur($lErreur); } if (!TestFonction::checkLength($pData['idCommande'], 0, 11)) { $lVr->setValid(false); $lVr->getLog()->setValid(false); $lErreur = new VRerreur(); $lErreur->setCode(MessagesErreurs::ERR_101_CODE); $lErreur->setMessage(MessagesErreurs::ERR_101_MSG); $lVr->getLog()->addErreur($lErreur); } if (!is_int((int) $pData['idCommande'])) { $lVr->setValid(false); $lVr->getLog()->setValid(false); $lErreur = new VRerreur(); $lErreur->setCode(MessagesErreurs::ERR_108_CODE); $lErreur->setMessage(MessagesErreurs::ERR_108_MSG); $lVr->getLog()->addErreur($lErreur); } //Tests Fonctionnels if (empty($pData['id'])) { $lVr->setValid(false); $lVr->getId()->setValid(false); $lErreur = new VRerreur(); $lErreur->setCode(MessagesErreurs::ERR_201_CODE); $lErreur->setMessage(MessagesErreurs::ERR_201_MSG); $lVr->getId()->addErreur($lErreur); } if (empty($pData['quantite'])) { $lVr->setValid(false); $lVr->getQuantite()->setValid(false); $lErreur = new VRerreur(); $lErreur->setCode(MessagesErreurs::ERR_201_CODE); $lErreur->setMessage(MessagesErreurs::ERR_201_MSG); $lVr->getQuantite()->addErreur($lErreur); } if (empty($pData['prix'])) { $lVr->setValid(false); $lVr->getPrix()->setValid(false); $lErreur = new VRerreur(); $lErreur->setCode(MessagesErreurs::ERR_201_CODE); $lErreur->setMessage(MessagesErreurs::ERR_201_MSG); $lVr->getPrix()->addErreur($lErreur); } if (empty($pData['idCommande'])) { $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 ($pData['quantite'] >= 0) { $lVr->setValid(false); $lVr->getQuantite()->setValid(false); $lErreur = new VRerreur(); $lErreur->setCode(MessagesErreurs::ERR_201_CODE); $lErreur->setMessage(MessagesErreurs::ERR_201_MSG); $lVr->getQuantite()->addErreur($lErreur); } if ($pData['prix'] >= 0) { $lVr->setValid(false); $lVr->getPrix()->setValid(false); $lErreur = new VRerreur(); $lErreur->setCode(MessagesErreurs::ERR_201_CODE); $lErreur->setMessage(MessagesErreurs::ERR_201_MSG); $lVr->getPrix()->addErreur($lErreur); } $lPdt = ProduitManager::select($pData['id']); if ($lPdt->getId() == null) { $lVr->setValid(false); $lVr->getLog()->setValid(false); $lErreur = new VRerreur(); $lErreur->setCode(MessagesErreurs::ERR_216_CODE); $lErreur->setMessage(MessagesErreurs::ERR_216_MSG); $lVr->getLog()->addErreur($lErreur); } else { if ($lPdt->getIdCommande() != $pData['idCommande']) { $lVr->setValid(false); $lVr->getLog()->setValid(false); $lErreur = new VRerreur(); $lErreur->setCode(MessagesErreurs::ERR_216_CODE); $lErreur->setMessage(MessagesErreurs::ERR_216_MSG); $lVr->getLog()->addErreur($lErreur); } } } return $lVr; }
/** * @name validUpdate($pData) * @return DetailReservationMarcheVR * @desc Test la validite de l'élément */ public static function validUpdate($pData) { $lVr = new DetailReservationMarcheVR(); //Tests inputs if (!isset($pData['stoQuantite'])) { $lVr->setValid(false); $lVr->getStoQuantite()->setValid(false); $lErreur = new VRerreur(); $lErreur->setCode(MessagesErreurs::ERR_201_CODE); $lErreur->setMessage(MessagesErreurs::ERR_201_MSG); $lVr->getStoQuantite()->addErreur($lErreur); } if (!isset($pData['stoIdDetailCommande'])) { $lVr->setValid(false); $lVr->getStoIdDetailCommande()->setValid(false); $lErreur = new VRerreur(); $lErreur->setCode(MessagesErreurs::ERR_201_CODE); $lErreur->setMessage(MessagesErreurs::ERR_201_MSG); $lVr->getStoIdDetailCommande()->addErreur($lErreur); } if (!isset($pData['idOperation'])) { $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 (!TestFonction::checkLength($pData['stoQuantite'], 0, 12) || $pData['stoQuantite'] > 999999999.99) { $lVr->setValid(false); $lVr->getStoQuantite()->setValid(false); $lErreur = new VRerreur(); $lErreur->setCode(MessagesErreurs::ERR_101_CODE); $lErreur->setMessage(MessagesErreurs::ERR_101_MSG); $lVr->getStoQuantite()->addErreur($lErreur); } if (!is_float((double) $pData['stoQuantite'])) { $lVr->setValid(false); $lVr->getStoQuantite()->setValid(false); $lErreur = new VRerreur(); $lErreur->setCode(MessagesErreurs::ERR_108_CODE); $lErreur->setMessage(MessagesErreurs::ERR_108_MSG); $lVr->getStoQuantite()->addErreur($lErreur); } if (!TestFonction::checkLength($pData['stoIdDetailCommande'], 0, 11)) { $lVr->setValid(false); $lVr->getStoIdDetailCommande()->setValid(false); $lErreur = new VRerreur(); $lErreur->setCode(MessagesErreurs::ERR_101_CODE); $lErreur->setMessage(MessagesErreurs::ERR_101_MSG); $lVr->getStoIdDetailCommande()->addErreur($lErreur); } if (!is_float((double) $pData['stoIdDetailCommande'])) { $lVr->setValid(false); $lVr->getStoIdDetailCommande()->setValid(false); $lErreur = new VRerreur(); $lErreur->setCode(MessagesErreurs::ERR_108_CODE); $lErreur->setMessage(MessagesErreurs::ERR_108_MSG); $lVr->getStoIdDetailCommande()->addErreur($lErreur); } if (!is_int((int) $pData['idOperation'])) { $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['stoQuantite'])) { $lVr->setValid(false); $lVr->getStoQuantite()->setValid(false); $lErreur = new VRerreur(); $lErreur->setCode(MessagesErreurs::ERR_201_CODE); $lErreur->setMessage(MessagesErreurs::ERR_201_MSG); $lVr->getStoQuantite()->addErreur($lErreur); } if (empty($pData['stoIdDetailCommande'])) { $lVr->setValid(false); $lVr->getStoIdDetailCommande()->setValid(false); $lErreur = new VRerreur(); $lErreur->setCode(MessagesErreurs::ERR_201_CODE); $lErreur->setMessage(MessagesErreurs::ERR_201_MSG); $lVr->getStoIdDetailCommande()->addErreur($lErreur); } if (empty($pData['idOperation'])) { $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 ($pData['stoQuantite'] >= 0) { $lVr->setValid(false); $lVr->getStoQuantite()->setValid(false); $lErreur = new VRerreur(); $lErreur->setCode(MessagesErreurs::ERR_201_CODE); $lErreur->setMessage(MessagesErreurs::ERR_201_MSG); $lVr->getStoQuantite()->addErreur($lErreur); } $lDcom = DetailCommandeManager::select($pData['stoIdDetailCommande']); if ($lDcom->getId() == null) { $lVr->setValid(false); $lVr->getLog()->setValid(false); $lErreur = new VRerreur(); $lErreur->setCode(MessagesErreurs::ERR_216_CODE); $lErreur->setMessage(MessagesErreurs::ERR_216_MSG); $lVr->getLog()->addErreur($lErreur); } else { $lPdt = ProduitManager::select($lDcom->getIdProduit()); if ($lPdt->getId() == null) { $lVr->setValid(false); $lVr->getLog()->setValid(false); $lErreur = new VRerreur(); $lErreur->setCode(MessagesErreurs::ERR_216_CODE); $lErreur->setMessage(MessagesErreurs::ERR_216_MSG); $lVr->getLog()->addErreur($lErreur); } else { $lQte = $pData['stoQuantite'] * -1; if ($lPdt->getMaxProduitCommande() != -1 && $lQte > $lPdt->getMaxProduitCommande()) { $lVr->setValid(false); $lVr->getStoQuantite()->setValid(false); $lErreur = new VRerreur(); $lErreur->setCode(MessagesErreurs::ERR_217_CODE); $lErreur->setMessage(MessagesErreurs::ERR_217_MSG); $lVr->getStoQuantite()->addErreur($lErreur); } /*$StockService = new StockService(); $lStocks = $StockService->getDetailReservation($pData['idOperation']); $lContinu = true; $lQuantiteReservation = 0; $i = 0; while($lContinu && isset($lStocks[$i])) { if( $lStocks[$i]->getIdDetailCommande() == $pData['stoIdDetailCommande']) { $lQuantiteReservation = $lStocks[$i]->getQuantite(); $lContinu = false; } $i++; } */ $lQteMax = $lPdt->getStockReservation(); if ($pData['idOperation'] != -1) { $StockService = new StockService(); $lStocks = $StockService->getDetailReservation($pData['idOperation']); $lContinu = true; $lQuantiteReservation = 0; $i = 0; while ($lContinu && isset($lStocks[$i])) { if ($lStocks[$i]->getIdDetailCommande() == $pData['stoIdDetailCommande']) { $lQuantiteReservation = $lStocks[$i]->getQuantite(); $lContinu = false; } $i++; } $lQteMax -= $lQuantiteReservation; // Qté réservation est négative -- = + } if ($lPdt->getStockInitial() != -1 && $lQte > $lQteMax) { $lVr->setValid(false); $lVr->getStoQuantite()->setValid(false); $lErreur = new VRerreur(); $lErreur->setCode(MessagesErreurs::ERR_218_CODE); $lErreur->setMessage(MessagesErreurs::ERR_218_MSG); $lVr->getStoQuantite()->addErreur($lErreur); } // La quantité doit être un multiple du lot if (fmod($lQte, $lDcom->getTaille()) != 0) { $lVr->setValid(false); $lVr->getStoQuantite()->setValid(false); $lErreur = new VRerreur(); $lErreur->setCode(MessagesErreurs::ERR_245_CODE); $lErreur->setMessage(MessagesErreurs::ERR_245_MSG); $lVr->getStoQuantite()->addErreur($lErreur); } } } } return $lVr; }
/** * @name modifierReservation($pParam) * @return ListeReservationCommandeVR * @desc Met à jour une réservation */ public function modifierReservation($pParam) { $pParam['idCompte'] = $_SESSION[ID_COMPTE]; $lVr = ReservationMarcheValid::validUpdate($pParam); if ($lVr->getValid()) { $lReservationService = new ReservationService(); $lIdLot = $pParam["detailReservation"][0]["stoIdDetailCommande"]; $lDetailMarche = DetailMarcheViewManager::selectByLot($lIdLot); $lReservation = new ReservationVO(); $lReservation->getId()->setIdCompte($_SESSION[ID_COMPTE]); $lReservation->getId()->setIdCommande($lDetailMarche[0]->getComId()); $lReservationAbonnement = array(); $lReservationsActuelle = $lReservationService->get($lReservation->getId()); $lProduitsAbonnementMarche = ProduitManager::selectbyIdMarcheProduitAbonnement($lDetailMarche[0]->getComId()); foreach ($lReservationsActuelle->getDetailReservation() as $lReservationActuelle) { foreach ($lProduitsAbonnementMarche as $lProduitAboMarche) { if ($lReservationActuelle->getIdProduit() == $lProduitAboMarche->getId()) { $lReservationAbonnement[$lProduitAboMarche->getId()] = $lReservationActuelle; } } } foreach ($pParam["detailReservation"] as $lDetail) { $lDetailCommande = DetailCommandeManager::select($lDetail["stoIdDetailCommande"]); $lPrix = $lDetail["stoQuantite"] / $lDetailCommande->getTaille() * $lDetailCommande->getPrix(); $lDetailReservation = new DetailReservationVO(); $lDetailReservation->setIdDetailCommande($lDetail["stoIdDetailCommande"]); $lDetailReservation->setQuantite($lDetail["stoQuantite"]); $lDetailReservation->setMontant($lPrix); $lAjout = true; foreach ($lProduitsAbonnementMarche as $lProduitAboMarche) { if ($lDetailCommande->getIdProduit() == $lProduitAboMarche->getId()) { if (!isset($lReservationAbonnement[$lProduitAboMarche->getId()])) { $lReservationAbonnement[$lProduitAboMarche->getId()] = $lDetailReservation; } $lAjout = false; } } if ($lAjout) { $lReservation->addDetailReservation($lDetailReservation); } } foreach ($lReservationAbonnement as $lReservationAbo) { $lReservation->addDetailReservation($lReservationAbo); } $lIdOperation = $lReservationService->set($lReservation); } return $lVr; }