/** * @name getProduitsDisponible() * @return array(ProduitMarcheVO) * @desc Retourne la liste des produits disponible en stock */ public function getProduitsDisponible() { $lStockProduit = StockProduitDisponibleViewManager::selectAll(); $lProduits = array(); foreach ($lStockProduit as $lProduit) { // Le Produit if (!isset($lProduits[$lProduit->getNproId()])) { $lProduitMarche = new ProduitMarcheVO(); /*$lProduitMarche->setId(); $lProduitMarche->setIdCompteFerme();*/ $lProduitMarche->setIdNom($lProduit->getNproId()); $lProduitMarche->setNom($lProduit->getNproNom()); /* $lProduitMarche->setDescription(); */ $lProduitMarche->setIdCategorie($lProduit->getCproId()); $lProduitMarche->setCproNom($lProduit->getCproNom()); $lProduitMarche->setUnite($lProduit->getStoQteUnite()); /*$lProduitMarche->setQteMaxCommande($lDetail->getProMaxProduitCommande()); $lProduitMarche->setStockReservation($lDetail->getProStockReservation()); $lProduitMarche->setStockInitial($lDetail->getProStockInitial()); $lProduitMarche->setType($lDetail->getProType());*/ $lProduitMarche->setFerId($lProduit->getFerId()); $lProduitMarche->setFerNom($lProduit->getFerNom()); $lProduits[$lProduit->getNproId()] = $lProduitMarche; } // Le Lot $lLot = new DetailMarcheVO(); $lLot->setId($lProduit->getMLotId()); $lLot->setTaille($lProduit->getMLotQuantite()); $lLot->setPrix($lProduit->getMLotPrix()); $lLots = $lProduits[$lProduit->getNproId()]->getLots(); $lLots[$lProduit->getMLotId()] = $lLot; $lProduits[$lProduit->getNproId()]->setLots($lLots); } return $lProduits; }
/** * @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 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; }