/** * @name modifierReservation($pParam) * @return ListeReservationCommandeVR * @desc Met à jour une réservation */ public function modifierReservation($pParam) { $lVr = CommandeReservationValid::validUpdate($pParam); if ($lVr->getValid()) { $lIdLot = $pParam["detailReservation"][0]["stoIdDetailCommande"]; $lDetailMarche = DetailMarcheViewManager::selectByLot($lIdLot); $lReservationService = new ReservationService(); $lReservation = new ReservationVO(); $lReservation->getId()->setIdCompte($pParam["id_compte"]); $lReservation->getId()->setIdCommande($lDetailMarche[0]->getComId()); 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); /*$lDetailProduit = DetailMarcheViewManager::selectByLot($lDetail["stoIdDetailCommande"]); $lDetailReservation->setIdNomProduit($lDetailProduit[0]->getNproId());*/ $lReservation->addDetailReservation($lDetailReservation); } $lReservationService = new ReservationService(); $lIdOperation = $lReservationService->set($lReservation); } 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 updateAbonnement($pCompteAbonnement) * @param CompteAbonnementVO * @return integer * @desc Met à jour un Abonnement */ private function updateAbonnement($pCompteAbonnement) { // Récupère le produitAbonnement $lProduitAbonnement = $this->getProduit($pCompteAbonnement->getIdProduitAbonnement()); // La liste des Produit identique en abonnement sur des marche en cours $lProduitsMarche = DetailMarcheViewManager::selectProduitAbonnementMarcheActifByIdNomProduit($lProduitAbonnement->getIdNomProduit()); $lListeProduitsMarche = array(); foreach ($lProduitsMarche as $lProduit) { if (isset($lListeProduitsMarche[$lProduit->getProId()])) { array_push($lListeProduitsMarche[$lProduit->getProId()]["lots"], $lProduit); } else { $lListeProduitsMarche[$lProduit->getProId()]["produit"] = $lProduit; $lListeProduitsMarche[$lProduit->getProId()]["lots"] = array(); array_push($lListeProduitsMarche[$lProduit->getProId()]["lots"], $lProduit); } } $lReservationService = new ReservationService(); $lStockService = new StockService(); foreach ($lListeProduitsMarche as $lProduitMarche) { $lSuspendu = false; // Si il n'y a pas de suspension à la date du marché if (TestFonction::dateTimeEstPLusGrandeEgale($lProduitMarche["produit"]->getComDateMarcheDebut(), $pCompteAbonnement->getDateDebutSuspension(), 'db') && TestFonction::dateTimeEstPLusGrandeEgale($pCompteAbonnement->getDateFinSuspension(), $lProduitMarche["produit"]->getComDateMarcheFin(), 'db')) { $lSuspendu = true; } $lPoursuivre = true; // Si le marché n'est pas encore passé if (!TestFonction::dateTimeEstPLusGrandeEgale($lProduitMarche["produit"]->getComDateMarcheDebut(), StringUtils::dateTimeAujourdhuiDb(), 'db')) { $lPoursuivre = false; } if ($lPoursuivre) { // Recherche de l'Id du lot dans le marché pour le produit correspondant. $lIdLot = 0; foreach ($lProduitMarche["lots"] as $lLot) { if (fmod($pCompteAbonnement->getQuantite(), $lLot->getDcomTaille()) == 0) { $lIdLot = $lLot->getDcomId(); $lTailleLot = $lLot->getDcomTaille(); $lPrixLot = $lLot->getDcomPrix(); } } // Si un lot correspond $lPoursuivre = $lIdLot != 0; if ($lPoursuivre) { $lReservation = new ReservationVO(); $lReservation->getId()->setIdCompte($pCompteAbonnement->getIdCompte()); $lReservation->getId()->setIdCommande($lProduitMarche["produit"]->getComId()); $lReservationsActuelle = $lReservationService->get($lReservation->getId()); $lTestDetailReservation = $lReservationsActuelle->getDetailReservation(); if (empty($lTestDetailReservation) && !$lSuspendu && $pCompteAbonnement->getEtat() == 0) { // Ajoute une réservation $lQuantite = $pCompteAbonnement->getQuantite(); if ($lProduitMarche["produit"]->getProStockInitial() != -1) { $lStockProduit = $lStockService->selectByIdProduitStockProduitReservation($lProduitMarche["produit"]->getProId()); $lStockDispo = $lProduitMarche["produit"]->getProStockInitial() - $lStockProduit[0]->getStoQuantite(); if ($lStockDispo > 0) { if ($lStockDispo < $lQuantite) { $lQuantite = $lStockDispo; } } else { // Plus de stock $lPoursuivre = false; } } if ($lPoursuivre) { if ($lProduitMarche["produit"]->getProMaxProduitCommande() != -1 && $lProduitMarche["produit"]->getProMaxProduitCommande() < $lQuantite) { $lQuantite = $lProduitMarche["produit"]->getProMaxProduitCommande(); } $lDetailReservation = new DetailReservationVO(); $lDetailReservation->setIdDetailCommande($lIdLot); $lDetailReservation->setQuantite(-1 * $lQuantite); $lDetailReservation->setMontant(-1 * $lQuantite / $lTailleLot * $lPrixLot); $lReservationsActuelle->addDetailReservation($lDetailReservation); $lReservationsActuelle->setId($lReservation->getId()); $lReservationService->set($lReservationsActuelle); } } else { // Si il y a une réservation déjà sur ce produit on la met à jour $lMaj = false; $lQuantiteActuelle = 0; foreach ($lReservationsActuelle->getDetailReservation() as $lDetailReservationActuelle) { if ($lDetailReservationActuelle->getIdProduit() == $lProduitMarche["produit"]->getProId()) { $lQuantiteActuelle = $lDetailReservationActuelle->getQuantite(); $lMaj = true; } else { $lReservation->addDetailReservation($lDetailReservationActuelle); } } if ($lMaj || !$lMaj && !$lSuspendu && $pCompteAbonnement->getEtat() == 0) { $lQuantite = $pCompteAbonnement->getQuantite(); if ($lProduitMarche["produit"]->getProStockInitial() != -1) { $lStockProduit = $lStockService->selectByIdProduitStockProduitReservation($lProduitMarche["produit"]->getProId()); $lStockDispo = $lProduitMarche["produit"]->getProStockInitial() - $lStockProduit[0]->getStoQuantite() - $lQuantiteActuelle; if ($lStockDispo > 0) { if ($lStockDispo < $lQuantite) { $lQuantite = $lStockDispo; } } else { // Plus de stock $lPoursuivre = false; } } if ($lPoursuivre) { if ($lProduitMarche["produit"]->getProMaxProduitCommande() != -1 && $lProduitMarche["produit"]->getProMaxProduitCommande() < $lQuantite) { $lQuantite = $lProduitMarche["produit"]->getProMaxProduitCommande(); } $lDetailReservation = new DetailReservationVO(); $lDetailReservation->setIdDetailCommande($lIdLot); $lDetailReservation->setQuantite(-1 * $lQuantite); $lDetailReservation->setMontant(-1 * $lQuantite / $lTailleLot * $lPrixLot); if ($pCompteAbonnement->getEtat() == 0 && !$lSuspendu) { // Si l'abonnement est toujours actif et qu'il n'y a pas de suspension $lReservation->addDetailReservation($lDetailReservation); } } $lReservationService->set($lReservation); } } } } } return CompteAbonnementManager::update($pCompteAbonnement); }
/** * @name update($pReservation) * @param ReservationVO * @return integer * @desc Met à jour une réservation */ private function update($pReservation) { $lTestDetailReservation = $pReservation->getDetailReservation(); if (!empty($lTestDetailReservation)) { // Si il y a encore des produits dans la réservation $lReservationsActuelle = $this->get($pReservation->getId()); $lOpeReservations = $this->selectOperationReservation($pReservation->getId()); $lIdOperation = $lOpeReservations[0]->getId(); /*$lOperation = $lOperations[0]; $lIdOperation = $lOperation->getId();*/ $lOperationService = new OperationService(); $lOperation = $lOperationService->getDetail($lIdOperation); $lTotal = 0; $lStockService = new StockService(); $lDetailOperationService = new DetailOperationService(); $lListeIdDetailCommande = array(); foreach ($pReservation->getDetailReservation() as $lProduit) { array_push($lListeIdDetailCommande, $lProduit->getIdDetailCommande()); } $lDetailMarche = DetailMarcheViewManager::selectByIdDetailCommande($lListeIdDetailCommande); foreach ($lReservationsActuelle->getDetailReservation() as $lReservationActuelle) { $lTestUpdate = false; foreach ($pReservation->getDetailReservation() as $lReservationNouvelle) { if ($lReservationActuelle->getIdDetailCommande() == $lReservationNouvelle->getIdDetailCommande()) { $lTotal += $lReservationNouvelle->getMontant(); // Maj du stock $lStock = new StockVO(); $lStock->setId($lReservationActuelle->getId()->getIdStock()); $lStock->setQuantite($lReservationNouvelle->getQuantite()); $lStock->setType(0); $lStock->setIdCompte($pReservation->getId()->getIdCompte()); $lStock->setIdDetailCommande($lReservationActuelle->getIdDetailCommande()); $lStock->setIdOperation($lIdOperation); $lStock->setIdNomProduit($lDetailMarche[$lReservationActuelle->getIdDetailCommande()]->getProIdNomProduit()); $lStock->setUnite($lDetailMarche[$lReservationActuelle->getIdDetailCommande()]->getProUniteMesure()); $lStockService->set($lStock); // Maj du détail Opération $lDetailOperation = new DetailOperationVO(); $lDetailOperation->setId($lReservationActuelle->getId()->getIdDetailOperation()); $lDetailOperation->setIdOperation($lIdOperation); $lDetailOperation->setIdCompte($pReservation->getId()->getIdCompte()); $lDetailOperation->setMontant($lReservationNouvelle->getMontant()); $lDetailOperation->setLibelle("Marché N°" . $pReservation->getId()->getIdCommande()); $lDetailOperation->setTypePaiement(0); $lDetailOperation->setIdDetailCommande($lReservationActuelle->getIdDetailCommande()); $lDetailOperation->setIdNomProduit($lDetailMarche[$lReservationActuelle->getIdDetailCommande()]->getProIdNomProduit()); $lDetailOperationService->set($lDetailOperation); $lTestUpdate = true; } } if (!$lTestUpdate) { // Suppression du stock et du detail operation $lStockService->delete($lReservationActuelle->getId()->getIdStock()); $lDetailOperationService->delete($lReservationActuelle->getId()->getIdDetailOperation()); } } foreach ($pReservation->getDetailReservation() as $lReservationNouvelle) { $lTestInsert = true; foreach ($lReservationsActuelle->getDetailReservation() as $lReservationActuelle) { if ($lReservationActuelle->getIdDetailCommande() == $lReservationNouvelle->getIdDetailCommande()) { $lTestInsert = false; } } if ($lTestInsert) { $lTotal += $lReservationNouvelle->getMontant(); // Ajout du stock $lStock = new StockVO(); $lStock->setQuantite($lReservationNouvelle->getQuantite()); $lStock->setType(0); $lStock->setIdCompte($pReservation->getId()->getIdCompte()); $lStock->setIdDetailCommande($lReservationNouvelle->getIdDetailCommande()); $lStock->setIdOperation($lIdOperation); $lStock->setIdNomProduit($lDetailMarche[$lReservationNouvelle->getIdDetailCommande()]->getProIdNomProduit()); $lStock->setUnite($lDetailMarche[$lReservationNouvelle->getIdDetailCommande()]->getProUniteMesure()); $lStockService->set($lStock); // Ajout du détail Opération $lDetailOperation = new DetailOperationVO(); $lDetailOperation->setIdOperation($lIdOperation); $lDetailOperation->setIdCompte($pReservation->getId()->getIdCompte()); $lDetailOperation->setMontant($lReservationNouvelle->getMontant()); $lDetailOperation->setLibelle("Marché N°" . $pReservation->getId()->getIdCommande()); $lDetailOperation->setTypePaiement(0); $lDetailOperation->setIdDetailCommande($lReservationNouvelle->getIdDetailCommande()); $lDetailOperation->setIdNomProduit($lDetailMarche[$lReservationNouvelle->getIdDetailCommande()]->getProIdNomProduit()); $lDetailOperationService->set($lDetailOperation); } } // Maj de l'opération $lOperation->setMontant($lTotal); $lOperationService->set($lOperation); } else { // La réservation est vide on la supprime $this->delete($pReservation->getId()); } }
/** * @name recherche( $pTypeRecherche, $pTypeCritere, $pCritereRecherche, $pTypeTri, $pCritereTri ) * @param string nom de la table * @param string Le type de critère de recherche * @param array(string) champs à récupérer dans la table * @param array(array(string, object)) Dictionnaire(champ, valeur)) contenant les champs à filtrer ainsi que la valeur du filtre * @param array(array(string, string)) Dictionnaire(champ, sens) contenant les tris à appliquer * @return array(DetailMarcheViewVO) * @desc Récupères les lignes de la table selon le critère de recherche puis trie et renvoie la liste de résultat sous forme d'une collection de DetailMarcheViewVO */ public static function recherche($pTypeRecherche, $pTypeCritere, $pCritereRecherche, $pTypeTri, $pCritereTri) { // Initialisation du Logger $lLogger =& Log::singleton('file', CHEMIN_FICHIER_LOGS); $lLogger->setMask(Log::MAX(LOG_LEVEL)); // Préparation de la requète $lChamps = array(CommandeManager::CHAMP_COMMANDE_ID . "," . CommandeManager::CHAMP_COMMANDE_NUMERO . "," . CommandeManager::CHAMP_COMMANDE_NOM . "," . CommandeManager::CHAMP_COMMANDE_DESCRIPTION . "," . CommandeManager::CHAMP_COMMANDE_DATE_MARCHE_DEBUT . "," . CommandeManager::CHAMP_COMMANDE_DATE_MARCHE_FIN . "," . CommandeManager::CHAMP_COMMANDE_DATE_DEBUT_RESERVATION . "," . CommandeManager::CHAMP_COMMANDE_DATE_FIN_RESERVATION . "," . CommandeManager::CHAMP_COMMANDE_ARCHIVE . "," . 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 . "," . NomProduitManager::CHAMP_NOMPRODUIT_ID . "," . NomProduitManager::CHAMP_NOMPRODUIT_NOM . "," . NomProduitManager::CHAMP_NOMPRODUIT_DESCRIPTION . "," . NomProduitManager::CHAMP_NOMPRODUIT_ID_CATEGORIE . "," . DetailCommandeManager::CHAMP_DETAILCOMMANDE_ID . "," . DetailCommandeManager::CHAMP_DETAILCOMMANDE_ID_PRODUIT . "," . DetailCommandeManager::CHAMP_DETAILCOMMANDE_TAILLE . "," . DetailCommandeManager::CHAMP_DETAILCOMMANDE_PRIX . "," . CategorieProduitManager::CHAMP_CATEGORIEPRODUIT_NOM . "," . FermeManager::CHAMP_FERME_ID . "," . FermeManager::CHAMP_FERME_NOM); /* $lFiltres = array(array( 'champ' => StringUtils::securiser($pTypeRecherche), 'valeur' => StringUtils::securiser($pCritereRecherche) )); $lTypeFiltre = array($pTypeCritere); // Protection du critère de tri if($pCritereTri != 'ASC' && $pCritereTri != 'DESC') { $pCritereTri = 'ASC'; } // Protection du type de tri if($pTypeTri == '') { $pTypeTri = CommandeManager::CHAMP_COMMANDE_ID; } $lTris = array( array('champ' => StringUtils::securiser($pTypeTri), 'sens'=> StringUtils::securiser($pCritereTri)) ); // Préparation de la requète de recherche $lRequete = DbUtils::prepareRequeteRecherche(DetailMarcheViewManager::VUE_DETAILMARCHE, $lChamps, $lFiltres, $lTypeFiltre, $lTris); $lLogger->log("Execution de la requete : " . $lRequete,PEAR_LOG_DEBUG); // Maj des logs $lSql = Dbutils::executerRequete($lRequete); */ // Préparation de la requète de recherche $lRequete = DbUtils::prepareRequeteRecherche(DetailMarcheViewManager::VUE_DETAILMARCHE, $lChamps, $pTypeRecherche, $pTypeCritere, $pCritereRecherche, $pTypeTri, $pCritereTri); $lListeDetailMarche = array(); if ($lRequete !== false) { $lLogger->log("Execution de la requete : " . $lRequete, PEAR_LOG_DEBUG); // Maj des logs $lSql = Dbutils::executerRequete($lRequete); if (mysql_num_rows($lSql) > 0) { while ($lLigne = mysql_fetch_assoc($lSql)) { array_push($lListeDetailMarche, DetailMarcheViewManager::remplir($lLigne[CommandeManager::CHAMP_COMMANDE_ID], $lLigne[CommandeManager::CHAMP_COMMANDE_NUMERO], $lLigne[CommandeManager::CHAMP_COMMANDE_NOM], $lLigne[CommandeManager::CHAMP_COMMANDE_DESCRIPTION], $lLigne[CommandeManager::CHAMP_COMMANDE_DATE_MARCHE_DEBUT], $lLigne[CommandeManager::CHAMP_COMMANDE_DATE_MARCHE_FIN], $lLigne[CommandeManager::CHAMP_COMMANDE_DATE_DEBUT_RESERVATION], $lLigne[CommandeManager::CHAMP_COMMANDE_DATE_FIN_RESERVATION], $lLigne[CommandeManager::CHAMP_COMMANDE_ARCHIVE], $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[NomProduitManager::CHAMP_NOMPRODUIT_ID], $lLigne[NomProduitManager::CHAMP_NOMPRODUIT_NOM], $lLigne[NomProduitManager::CHAMP_NOMPRODUIT_DESCRIPTION], $lLigne[NomProduitManager::CHAMP_NOMPRODUIT_ID_CATEGORIE], $lLigne[DetailCommandeManager::CHAMP_DETAILCOMMANDE_ID], $lLigne[DetailCommandeManager::CHAMP_DETAILCOMMANDE_ID_PRODUIT], $lLigne[DetailCommandeManager::CHAMP_DETAILCOMMANDE_TAILLE], $lLigne[DetailCommandeManager::CHAMP_DETAILCOMMANDE_PRIX], $lLigne[CategorieProduitManager::CHAMP_CATEGORIEPRODUIT_NOM], $lLigne[FermeManager::CHAMP_FERME_ID], $lLigne[FermeManager::CHAMP_FERME_NOM])); } } else { $lListeDetailMarche[0] = new DetailMarcheViewVO(); } return $lListeDetailMarche; } return $lListeDetailMarche; }
/** * @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; }
/** * @name selectProduit($pId) * @param integer * @return ProduitMarcheVO * @desc Retourne un Produit */ public function selectProduit($pId) { $lDetailMarche = DetailMarcheViewManager::selectByIdProduit($pId); $lProduit = new ProduitMarcheVO(); // Le Produit $lProduit->setId($lDetailMarche[0]->getProId()); $lProduit->setIdMarche($lDetailMarche[0]->getComId()); $lProduit->setIdCompteFerme($lDetailMarche[0]->getProIdCompteFerme()); $lProduit->setIdNom($lDetailMarche[0]->getNproId()); $lProduit->setNom($lDetailMarche[0]->getNproNom()); $lProduit->setDescription($lDetailMarche[0]->getNproDescription()); $lProduit->setIdCategorie($lDetailMarche[0]->getNproIdCategorie()); $lProduit->setCproNom($lDetailMarche[0]->getCproNom()); $lProduit->setUnite($lDetailMarche[0]->getProUniteMesure()); $lProduit->setQteMaxCommande($lDetailMarche[0]->getProMaxProduitCommande()); $lProduit->setStockReservation($lDetailMarche[0]->getProStockReservation()); $lProduit->setStockInitial($lDetailMarche[0]->getProStockInitial()); $lProduit->setType($lDetailMarche[0]->getProType()); $lProduit->setFerId($lDetailMarche[0]->getFerId()); $lProduit->setFerNom($lDetailMarche[0]->getFerNom()); $lProduit->setFerNom($lDetailMarche[0]->getFerNom()); foreach ($lDetailMarche as $lDetail) { // Le Lot $lLot = new DetailMarcheVO(); $lLot->setId($lDetail->getDcomId()); $lLot->setTaille($lDetail->getDcomTaille()); $lLot->setPrix($lDetail->getDcomPrix()); $lProduit->addLots($lLot); } return $lProduit; }
/** * @name controleModifierReservation($pParam) * @return ListeReservationCommandeVR * @desc Vérifie si il est possible de modifier la réservation */ public function controleModifierReservation($pParam) { $pParam['idCompte'] = $_SESSION[ID_COMPTE]; $lVr = ReservationMarcheValid::validAjout($pParam); if ($lVr->getValid()) { $lIdLot = $pParam["detailReservation"][0]["stoIdDetailCommande"]; $lDetailMarche = DetailMarcheViewManager::selectByLot($lIdLot); $lResponse = new ReservationMarcheResponse(); $lMarcheService = new MarcheService(); $lResponse->setMarche($lMarcheService->get($lDetailMarche[0]->getComId())); $lResponse->setAdherent(AdherentViewManager::select($_SESSION[DROIT_ID])); return $lResponse; } return $lVr; }