/** * @name getReservation($pParam) * @return ReservationAdherentResponse * @desc Retourne les détails d'une réservation et de la commande */ public function getReservation($pParam) { $lVr = AfficheReservationAdherentValid::validAjout($pParam); if ($lVr->getValid()) { $lIdAdherent = $pParam["id_adherent"]; $lIdCommande = $pParam["id_commande"]; $lResponse = new ReservationAdherentResponse(); $lAdherent = AdherentViewManager::select($lIdAdherent); $lResponse->setAdherent($lAdherent); $lMarcheService = new MarcheService(); $lResponse->setMarche($lMarcheService->get($pParam["id_commande"])); $lReservationService = new ReservationService(); $lIdReservation = new IdReservationVO(); $lIdReservation->setIdCompte($lAdherent->getAdhIdCompte()); $lIdReservation->setIdCommande($pParam["id_commande"]); if ($lReservationService->enCoursOuAchete($lIdReservation)) { $lReservation = $lReservationService->get($lIdReservation); $lResponse->setReservation($lReservation->getDetailReservation()); $lResponse->setEtat($lReservation->getEtat()); } else { $lResponse->setEtat(null); } return $lResponse; } return $lVr; }
/** * @name getInfoCompte() * @desc Donne les infos sur le compte du zeybu */ public function getInfoCompte() { $lCompteService = new CompteService(); $lOperationService = new OperationService(); $lMarcheService = new MarcheService(); $lSoldeSolidaire = $lCompteService->get(-2)->getSolde(); $lSoldeTotal = $lCompteService->get(-1)->getSolde(); $lSoldeCaisse = $lOperationService->getSoldeCaisse(); $lSoldeBanque = $lOperationService->getSoldeBanque(); return new InfoCompteZeybuResponse($lSoldeTotal, $lSoldeSolidaire, $lSoldeCaisse, $lSoldeBanque, $lMarcheService->get()); }
/** * @name getInfoCommande($pParam) * @return EditerCommandeResponse * @desc Retourne la liste des adhérents qui ont réservé sur cette commande et les infos sur la commande. */ public function getInfoCommande($pParam) { $lVr = EditerCommandeValid::validGetInfoCommande($pParam); if ($lVr->getValid()) { $lIdMarche = $pParam["id_marche"]; $lMarcheService = new MarcheService(); $lMarche = $lMarcheService->get($lIdMarche); $lResponse = new EditerCommandeResponse(); $lResponse->setMarche($lMarche); return $lResponse; } return $lVr; }
/** * @name getInfoCommande($pParam) * @return AfficheBonDeCommandeResponse * @desc Retourne la liste des producteurs de cette commande. */ public function getInfoCommande($pParam) { $lVr = BonDeCommandeValid::validGetInfoCommande($pParam); if ($lVr->getValid()) { $lIdMarche = $pParam["id_commande"]; $lMarcheService = new MarcheService(); $lMarche = $lMarcheService->get($lIdMarche); $lResponse = new AfficheBonDeCommandeResponse(); $lProducteurs = ListeProducteurMarcheViewManager::select($lIdMarche); $lResponse->setComNumero($lMarche->getNumero()); $lResponse->setArchive($lMarche->getArchive()); $lResponse->setProducteurs($lProducteurs); return $lResponse; } return $lVr; }
/** * @name getInfoDupliquerMarche($pParam) * @return AfficheAjoutCommandeResponse * @desc Retourne la liste des produits */ public function getInfoDupliquerMarche($pParam) { $lVr = EditerCommandeValid::validGetInfoCommande($pParam); if ($lVr->getValid()) { $lIdMarche = $pParam["id_marche"]; $lMarcheService = new MarcheService(); $lMarche = $lMarcheService->get($lIdMarche); $lAbonnementService = new AbonnementService(); foreach ($lMarche->getProduits() as $lProduit) { if ($lProduit->getType() == 2) { $lDetailAbonnement = $lAbonnementService->getProduitByIdNom($lProduit->getIdNom()); // Gestion des limites de stock et max adhérent pour les abonnements $lProduit->setStockInitial($lDetailAbonnement->getStockInitial()); $lProduit->setQteMaxCommande($lDetailAbonnement->getMax()); $lNvLots = array(); foreach ($lDetailAbonnement->getLots() as $lLot) { $lAbonnement = $lAbonnementService->getAbonnementSurLot($lLot->getId()); $lLotAbonnementMarcheVO = new LotAbonnementMarcheVO(); $lLotAbonnementMarcheVO->setId($lLot->getId()); $lLotAbonnementMarcheVO->setTaille($lLot->getTaille()); $lLotAbonnementMarcheVO->setPrix($lLot->getPrix()); if (!is_null($lAbonnement[0]->getCptAboId())) { $lLotAbonnementMarcheVO->setReservation(true); } array_push($lNvLots, $lLotAbonnementMarcheVO); } $lProduit->setLots($lNvLots); } } $lResponse = new DupliquerMarcheResponse(); $lResponse->setMarche($lMarche); $lFermeService = new FermeService(); $lResponse->setListeFerme($lFermeService->get()); return $lResponse; } return $lVr; }
/** * @name getListeMarche() * @return ListeMarcheResponse * @desc Retourne la liste des marchés. */ public function getListeMarche() { $lMarcheService = new MarcheService(); return new ListeMarcheResponse($lMarcheService->get()); }
/** * @name getInfoAchatMarche($pParam) * @return InfoAchatCommandeResponse * @desc Retourne les infos de réservation d'un adhérent */ public function getInfoAchatMarche($pParam) { $lVr = AchatValid::validInfoAchatMarche($pParam); if ($lVr->getValid()) { $lResponse = new InfoAchatCommandeResponse(); $lProduitsAchat = array(); $lIdMarche = 0; $lIdCompte = 0; if (!empty($pParam["id_commande"])) { $lIdMarche = $pParam["id_commande"]; } if (!empty($pParam["id"])) { $lAchatService = new AchatService(); $lAchat = $lAchatService->get($pParam["id"]); $lProduitsAchat = $lAchat->getProduits(); $lResponse->setAchats($lAchat); // L'achat if (!is_null($lAchat->getOperationAchat())) { $lIdCompte = $lAchat->getOperationAchat()->getIdCompte(); $lChcp = $lAchat->getOperationAchat()->getChampComplementaire(); if (isset($lChcp[1])) { $lIdMarche = $lChcp[1]->getValeur(); } } if (!is_null($lAchat->getOperationAchatSolidaire())) { $lIdCompte = $lAchat->getOperationAchatSolidaire()->getIdCompte(); $lChcp = $lAchat->getOperationAchatSolidaire()->getChampComplementaire(); if (isset($lChcp[1])) { $lIdMarche = $lChcp[1]->getValeur(); } } } if ($pParam["id_adherent"] > 0) { // Si c'est un compte adhérent $lData = $lVr->getData(); $lIdCompte = $lData['adherent']->getAdhIdCompte(); $lResponse->setAdherent($lData['adherent']); $lAdhesionService = new AdhesionService(); $lResponse->setNbAdhesionEnCours($lAdhesionService->getNbAdhesionEnCoursSurAdherent($pParam["id_adherent"])); } $lStockService = new StockService(); $lStockProduitsDisponible = $lStockService->getProduitsDisponible(); $lStock = array(); $lProduitsMarche = array(); if ($lIdMarche != 0) { // Si ce n'est pas la caisse permanente $lMarcheService = new MarcheService(); $lMarche = $lMarcheService->get($lIdMarche); $lProduitsMarche = $lMarche->getProduits(); $lResponse->setMarche($lMarche); // Les informations du marché } // Fusion des stocks $lLotsProduits = array(); foreach ($lStockProduitsDisponible as $lProduitStock) { $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 = !is_null($lProduitStock->getUnite()) ? $lProduitStock->getUnite() : $lProduitStock->getUniteSolidaire(); $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(); $lStock[$lProduitMarche->getCproNom()]["produits"][$lProduitMarche->getNom() . $lProduitMarche->getUnite()] = new ProduitDetailAchatAfficheVO($lProduitMarche->getIdNom(), null, null, null, null, null, null, null, null, null, $lUnite, null, $lUnite, null, 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; }
/** * @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); } }
/** * @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; }