/** * @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 getListeCommandeEnCours() * @return CaisseListeCommandeResponse * @desc Retourne la liste des commandes en cours */ public function getListeCommandeEnCours() { $lListeCommande = new CaisseListeCommandeResponse(); $lMarcheService = new MarcheService(); $lListeCommande->setListeCommande($lMarcheService->selectCaisseListeMarche()); return $lListeCommande; }
/** * @name getListe() * @return MonMarcheResponse * @desc Retourne la liste des Marchés et réservations en cours */ public function getListe() { $lResponse = new MonMarcheResponse(); $lMarcheService = new MarcheService(); $lResponse->setMarches($lMarcheService->getNonAchatParCompte($_SESSION[ID_COMPTE])); return $lResponse; }
/** * @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 getListePaiement($pParam) * @return InfoMarcheVR * @desc Retourne la liste des adhérents qui ont réservé sur cette commande et les infos sur la commande. */ public function getListePaiement($pParam) { $lVr = MarcheValid::validGetMarche($pParam); if ($lVr->getValid()) { $lIdMarche = $pParam["id"]; $lOperationService = new OperationService(); $lMarcheService = new MarcheService(); $lResponse = new ListePaiementResponse(); $lResponse->setListeCheque($lOperationService->getListeChequeCaisse($lIdMarche)); $lResponse->setListeEspece($lOperationService->getListeEspeceCaisse($lIdMarche)); $lResponse->setNumero($lMarcheService->getInfoMarche($lIdMarche)->getNumero()); 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 getListeMarche() * @return ListeMarcheResponse * @desc Retourne la liste des marchés. */ public function getListeMarche() { $lMarcheService = new MarcheService(); return new ListeMarcheResponse($lMarcheService->get()); }
/** * @name ajouterProduitMarche($pParam) * @param ProduitVO * @desc Met à jour un produit du marché */ public function ajouterProduitMarche($pParam) { $lVr = CommandeCompleteValid::validAjoutProduit($pParam); if ($lVr->getValid()) { $lMarcheService = new MarcheService(); $lProduit = ProduitCommandeToVO::convertFromArray($pParam); $lMarcheService->ajoutProduit($lProduit); } return $lVr; }
/** * @name update($pAchat) * @param AchatVO * @return integer * @desc Met à jour un achat */ private function update($pAchat) { $lOperationService = new OperationService(); // Rechargement $lIdRechargement = $pAchat->getRechargement()->getId(); $lCompteRechargement = $pAchat->getRechargement()->getIdCompte(); $lMajRechargement = false; if (!empty($lIdRechargement) && !is_null($lIdRechargement)) { $lMontantRechargement = $pAchat->getRechargement()->getMontant(); if (!empty($lMontantRechargement) && !is_null($lMontantRechargement)) { // Maj du rechargement $lMajRechargement = true; $lIdRechargement = $lOperationService->set($pAchat->getRechargement()); } else { if ($lMontantRechargement == 0) { // Suppression du rechargement $lOperationService->delete($lIdRechargement); $lIdRechargement = NULL; } } } else { if (!empty($lCompteRechargement) && !is_null($lCompteRechargement)) { // Ajout du rechargement $pAchat->getRechargement()->setLibelle('Rechargement'); $lIdRechargement = $lOperationService->set($pAchat->getRechargement()); } } //$lIdOperationAchat = 0; //$lIdOperationAchatSolidaire = 0; $lIdCompte = 0; $lIdMarche = 0; $lLibelleOperation = ''; $lLibelleOperationSolidaire = ''; $lAchatActuel = NULL; $lIdOperationAchatActuel = 0; $lIdOperationAchatSolidaireActuel = 0; // Achat $lIdOperationAchat = $pAchat->getOperationAchat()->getId(); $lTestCompteAchat = $pAchat->getOperationAchat()->getIdCompte(); $lMajAchat = false; if (!empty($lIdOperationAchat) && !is_null($lIdOperationAchat)) { $lAchatActuel = $this->select($lIdOperationAchat); $lIdOperationAchatActuel = $lIdOperationAchat; $lMontantAchat = $pAchat->getOperationAchat()->getMontant(); $ltestChampComplementaire = $pAchat->getOperationAchat()->getChampComplementaire(); $lIdOperationZeybu = $ltestChampComplementaire[8]->getValeur(); $lLibelleOperation = $pAchat->getOperationAchat()->getLibelle(); $lIdCompte = $pAchat->getOperationAchat()->getIdCompte(); if (isset($ltestChampComplementaire[1])) { $lIdMarche = $ltestChampComplementaire[1]->getValeur(); } if (!empty($lMontantAchat) && !is_null($lMontantAchat)) { // Maj de l'achat $lMajAchat = true; $lIdOperationAchat = $lOperationService->set($pAchat->getOperationAchat()); $lOperationZeybu = $lOperationService->getDetail($lIdOperationZeybu); $lOperationZeybu->setMontant($pAchat->getOperationAchat()->getMontant() * -1); $lOperationService->set($lOperationZeybu); } else { if ($lMontantAchat == 0) { // Suppression de l'achat $lOperationService->delete($lIdOperationAchat); $lOperationService->delete($lIdOperationZeybu); $lIdOperationAchat = NULL; } } } else { if (!empty($lTestCompteAchat) && !is_null($lTestCompteAchat)) { // Ajout Achat $lIdCompte = $pAchat->getOperationAchat()->getIdCompte(); $ltestChampComplementaire = $pAchat->getOperationAchat()->getChampComplementaire(); if (isset($ltestChampComplementaire[1])) { $lIdMarche = $ltestChampComplementaire[1]->getValeur(); $lMarcheService = new MarcheService(); $lMarche = $lMarcheService->getInfoMarche($lIdMarche); $lLibelleOperation = "Marché N°" . $lMarche->getNumero(); } else { $lLibelleOperation = "Achat du " . StringUtils::dateAujourdhuiFr(); } $pAchat->getOperationAchat()->setLibelle($lLibelleOperation); $lIdOperationAchat = $lOperationService->set($pAchat->getOperationAchat()); // Operation d'achat $lOperationZeybu = new OperationDetailVO(); $lOperationZeybu->setIdCompte(-1); $lOperationZeybu->setMontant($pAchat->getOperationAchat()->getMontant() * -1); $lOperationZeybu->setLibelle($lLibelleOperation); $lOperationZeybu->setTypePaiement($pAchat->getOperationAchat()->getTypePaiement()); $lOperationZeybuChampComplementaire = $pAchat->getOperationAchat()->getChampComplementaire(); $lOperationZeybuChampComplementaire[8] = new OperationChampComplementaireVO(null, 8, $lIdOperationAchat); $lOperationZeybu->setChampComplementaire($lOperationZeybuChampComplementaire); $lIdOperationZeybu = $lOperationService->set($lOperationZeybu); // Operation Zeybu } } // Achat Solidaire $lIdOperationAchatSolidaire = $pAchat->getOperationAchatSolidaire()->getId(); $lTestCompteAchatSolidaire = $pAchat->getOperationAchatSolidaire()->getIdCompte(); $lMajAchatSolidaire = false; if (!empty($lIdOperationAchatSolidaire) && !is_null($lIdOperationAchatSolidaire)) { if (is_null($lAchatActuel)) { $lAchatActuel = $this->select($lIdOperationAchatSolidaire); } $lIdOperationAchatSolidaireActuel = $lIdOperationAchatSolidaire; $lMontantAchatSolidaire = $pAchat->getOperationAchatSolidaire()->getMontant(); $ltestChampComplementaire = $pAchat->getOperationAchatSolidaire()->getChampComplementaire(); $lIdOperationZeybuSolidaire = $ltestChampComplementaire[8]->getValeur(); $lLibelleOperationSolidaire = $pAchat->getOperationAchatSolidaire()->getLibelle(); $lIdCompte = $pAchat->getOperationAchatSolidaire()->getIdCompte(); if (isset($ltestChampComplementaire[1])) { $lIdMarche = $ltestChampComplementaire[1]->getValeur(); } if (!empty($lMontantAchatSolidaire) && !is_null($lMontantAchatSolidaire)) { // Maj de l'achat $lMajAchatSolidaire = true; $lIdOperationAchatSolidaire = $lOperationService->set($pAchat->getOperationAchatSolidaire()); $lOperationZeybuSolidaire = $lOperationService->getDetail($lIdOperationZeybuSolidaire); $lOperationZeybuSolidaire->setMontant($pAchat->getOperationAchatSolidaire()->getMontant() * -1); $lOperationService->set($lOperationZeybuSolidaire); } else { if ($lMontantAchatSolidaire == 0) { // Suppression de l'achat $lOperationService->delete($lIdOperationAchatSolidaire); $lOperationService->delete($lIdOperationZeybuSolidaire); $lIdOperationAchatSolidaire = NULL; } } } else { if (!empty($lTestCompteAchatSolidaire) && !is_null($lTestCompteAchatSolidaire)) { $lIdCompte = $pAchat->getOperationAchatSolidaire()->getIdCompte(); $ltestChampComplementaire = $pAchat->getOperationAchatSolidaire()->getChampComplementaire(); if (isset($ltestChampComplementaire[1])) { if (!isset($lMarche)) { // Pour éviter de lancer 2 fois la requête $lIdMarche = $ltestChampComplementaire[1]->getValeur(); $lMarcheService = new MarcheService(); $lMarche = $lMarcheService->getInfoMarche($lIdMarche); } $lLibelleOperationSolidaire = "Marché Solidaire N°" . $lMarche->getNumero(); } else { $lLibelleOperationSolidaire = "Achat Solidaire du " . StringUtils::dateAujourdhuiFr(); } $pAchat->getOperationAchatSolidaire()->setLibelle($lLibelleOperationSolidaire); $lIdOperationAchatSolidaire = $lOperationService->set($pAchat->getOperationAchatSolidaire()); // Operation d'achat Solidaire $lOperationZeybuSolidaire = new OperationDetailVO(); $lOperationZeybuSolidaire->setIdCompte(-1); $lOperationZeybuSolidaire->setMontant($pAchat->getOperationAchatSolidaire()->getMontant() * -1); $lOperationZeybuSolidaire->setLibelle($lLibelleOperationSolidaire); $lOperationZeybuSolidaire->setTypePaiement($pAchat->getOperationAchatSolidaire()->getTypePaiement()); $lOperationZeybuSolidaireChampComplementaire = $pAchat->getOperationAchatSolidaire()->getChampComplementaire(); $lOperationZeybuSolidaireChampComplementaire[8] = new OperationChampComplementaireVO(null, 8, $lIdOperationAchatSolidaire); $lOperationZeybuSolidaire->setChampComplementaire($lOperationZeybuSolidaireChampComplementaire); $lIdOperationZeybuSolidaire = $lOperationService->set($lOperationZeybuSolidaire); // Operation Zeybu solidaire } } // Liaison Rechargement if (!is_null($lIdRechargement)) { $lMaj = false; $lRechargementChampComplementaire = $pAchat->getRechargement()->getChampComplementaire(); if (!is_null($lIdOperationAchat)) { $lMaj = true; $lRechargementChampComplementaire[12] = new OperationChampComplementaireVO(null, 12, $lIdOperationAchat); } else { if (is_null($lIdOperationAchat)) { unset($lRechargementChampComplementaire[12]); } } if (!is_null($lIdOperationAchatSolidaire)) { $lMaj = true; $lRechargementChampComplementaire[13] = new OperationChampComplementaireVO(null, 13, $lIdOperationAchatSolidaire); } else { if (is_null($lIdOperationAchatSolidaire)) { unset($lRechargementChampComplementaire[13]); } } if ($lMaj) { $pAchat->getRechargement()->setChampComplementaire($lRechargementChampComplementaire); $lOperationService->set($pAchat->getRechargement()); } } // Liaison achat if (!is_null($lIdOperationAchat)) { $lChampComplementaire = $pAchat->getOperationAchat()->getChampComplementaire(); $lChampComplementaire[8] = new OperationChampComplementaireVO(null, 8, $lIdOperationZeybu); if (!is_null($lIdRechargement)) { $lChampComplementaire[14] = new OperationChampComplementaireVO(null, 14, $lIdRechargement); } else { if (is_null($lIdRechargement)) { unset($lChampComplementaire[14]); } } if (!is_null($lIdOperationAchatSolidaire)) { $lChampComplementaire[13] = new OperationChampComplementaireVO(null, 13, $lIdOperationAchatSolidaire); } else { if (is_null($lIdOperationAchatSolidaire)) { unset($lChampComplementaire[13]); } } $pAchat->getOperationAchat()->setChampComplementaire($lChampComplementaire); $lOperationService->set($pAchat->getOperationAchat()); // Operation d'achat avec lien operation zeybu } // Liaison Achat Solidaire if (!is_null($lIdOperationAchatSolidaire)) { $lChampComplementaireSolidaire = $pAchat->getOperationAchatSolidaire()->getChampComplementaire(); $lChampComplementaireSolidaire[8] = new OperationChampComplementaireVO(null, 8, $lIdOperationZeybuSolidaire); if (!is_null($lIdRechargement)) { $lChampComplementaireSolidaire[14] = new OperationChampComplementaireVO(null, 14, $lIdRechargement); } else { if (is_null($lIdRechargement)) { unset($lChampComplementaireSolidaire[14]); } } if (!is_null($lIdOperationAchat)) { $lChampComplementaireSolidaire[12] = new OperationChampComplementaireVO(null, 12, $lIdOperationAchat); } else { if (is_null($lIdOperationAchat)) { unset($lChampComplementaireSolidaire[12]); } } $pAchat->getOperationAchatSolidaire()->setChampComplementaire($lChampComplementaireSolidaire); $lOperationService->set($pAchat->getOperationAchatSolidaire()); // Operation d'achat solidaire avec lien operation zeybu } // Ajout des produits $lIdModeleLot = array(); $lIdDetailCommande = array(); foreach ($pAchat->getProduits() as $lProduit) { $lTestModeleLot = $lProduit->getIdModeleLot(); $lTestDetailCommande = $lProduit->getIdDetailCommande(); if (!empty($lTestModeleLot) && !is_null($lTestModeleLot)) { array_push($lIdModeleLot, $lTestModeleLot); } else { if (!empty($lTestDetailCommande) && !is_null($lTestDetailCommande)) { array_push($lIdDetailCommande, $lTestDetailCommande); } } $lTestModeleLotSolidaire = $lProduit->getIdModeleLotSolidaire(); $lTestDetailCommandeSolidaire = $lProduit->getIdDetailCommandeSolidaire(); if (!empty($lTestModeleLotSolidaire) && !is_null($lTestModeleLotSolidaire)) { array_push($lIdModeleLot, $lTestModeleLotSolidaire); } else { if (!empty($lTestDetailCommandeSolidaire) && !is_null($lTestDetailCommandeSolidaire)) { array_push($lIdDetailCommande, $lTestDetailCommandeSolidaire); } } } if (!empty($lIdModeleLot)) { $lListeModeleLot = ModeleLotManager::selectByArray($lIdModeleLot); } if (!empty($lIdDetailCommande)) { $lListeDetailCommande = DetailCommandeManager::selectByArrayClassByDcomId($lIdDetailCommande); } // Suppression de l'ensemble des lignes de produit qui seront à nouveau insérées DetailAchatManager::delete($lIdOperationAchatActuel, $lIdOperationAchatSolidaireActuel); $lDetailOperationService = new DetailOperationService(); $lStockService = new StockService(); foreach ($lAchatActuel->getProduits() as $lProduitInital) { $lMaj = false; foreach ($pAchat->getProduits() as $lProduitMaj) { if ($lProduitInital->getIdStock() == $lProduitMaj->getIdStock() && $lProduitInital->getIdDetailOperation() == $lProduitMaj->getIdDetailOperation() && $lProduitInital->getIdStockSolidaire() == $lProduitMaj->getIdStockSolidaire() && $lProduitInital->getIdDetailOperationSolidaire() == $lProduitMaj->getIdDetailOperationSolidaire()) { // Modification $lMaj = true; // Stock $lIdStock = 0; $lIdDetailOperation = 0; if ($lProduitInital->getIdStock() == 0 && $lProduitMaj->getQuantite() < 0) { // Ajout $lUnite = ''; $lTestModeleLot = $lProduitMaj->getIdModeleLot(); $lTestDetailCommande = $lProduitMaj->getIdDetailCommande(); if (!empty($lTestModeleLot) && !is_null($lTestModeleLot)) { $lUnite = $lListeModeleLot[$lTestModeleLot]->getUnite(); } else { if (!empty($lTestDetailCommande) && !is_null($lTestDetailCommande)) { $lUnite = $lListeDetailCommande[$lTestDetailCommande]->getUnite(); } } $lIdStock = $lStockService->set(new StockVO(null, null, $lProduitMaj->getQuantite(), 1, $lIdCompte, $lProduitMaj->getIdDetailCommande(), $lProduitMaj->getIdModeleLot(), $lIdOperationAchat, $lProduitMaj->getIdNomProduit(), $lUnite)); // Prix $lIdDetailOperation = $lDetailOperationService->set(new DetailOperationVO(null, $lIdOperationAchat, $lIdCompte, $lProduitMaj->getMontant(), $lLibelleOperation, null, 7, $lProduitMaj->getIdDetailCommande(), $lProduitMaj->getIdModeleLot(), $lProduitMaj->getIdNomProduit(), null)); } else { if ($lProduitInital->getIdStock() != 0 && $lProduitMaj->getQuantite() < 0) { // Modification $lStockInitial = $lStockService->get($lProduitInital->getIdStock()); $lIdStock = $lStockInitial->getId(); $lStockInitial->setQuantite($lProduitMaj->getQuantite()); $lStockService->set($lStockInitial); // Prix $lDetailOperationInitial = $lDetailOperationService->get($lProduitInital->getIdDetailOperation()); $lIdDetailOperation = $lDetailOperationInitial->getId(); $lDetailOperationInitial->setMontant($lProduitMaj->getMontant()); $lDetailOperationService->set($lDetailOperationInitial); } else { // Suppression $lStockService->delete($lProduitInital->getIdStock()); $lDetailOperationService->delete($lProduitInital->getIdDetailOperation()); } } // Stock Solidaire $lIdStockSolidaire = 0; $lIdDetailOperationSolidaire = 0; if ($lProduitInital->getIdStockSolidaire() == 0 && $lProduitMaj->getQuantiteSolidaire() < 0) { $lUniteSolidaire = ''; $lTestModeleLotSolidaire = $lProduitMaj->getIdModeleLotSolidaire(); $lTestDetailCommandeSolidaire = $lProduitMaj->getIdDetailCommandeSolidaire(); if (!empty($lTestModeleLotSolidaire) && !is_null($lTestModeleLotSolidaire)) { $lUniteSolidaire = $lListeModeleLot[$lTestModeleLotSolidaire]->getUnite(); } else { if (!empty($lTestDetailCommandeSolidaire) && !is_null($lTestDetailCommandeSolidaire)) { $lUniteSolidaire = $lListeDetailCommande[$lTestDetailCommandeSolidaire]->getUnite(); } } $lIdStockSolidaire = $lStockService->set(new StockVO(null, null, $lProduitMaj->getQuantiteSolidaire(), 2, $lIdCompte, $lProduitMaj->getIdDetailCommandeSolidaire(), $lProduitMaj->getIdModeleLotSolidaire(), $lIdOperationAchatSolidaire, $lProduitMaj->getIdNomProduit(), $lUniteSolidaire)); // Prix $lIdDetailOperationSolidaire = $lDetailOperationService->set(new DetailOperationVO(null, $lIdOperationAchatSolidaire, $lIdCompte, $lProduitMaj->getMontantSolidaire(), $lLibelleOperationSolidaire, null, 8, $lProduitMaj->getIdDetailCommandeSolidaire(), $lProduitMaj->getIdModeleLotSolidaire(), $lProduitMaj->getIdNomProduit(), null)); } else { if ($lProduitInital->getIdStockSolidaire() != 0 && $lProduitMaj->getQuantiteSolidaire() < 0) { // Modification $lStockInitialSolidaire = $lStockService->get($lProduitInital->getIdStockSolidaire()); $lIdStockSolidaire = $lStockInitialSolidaire->getId(); $lStockInitialSolidaire->setQuantite($lProduitMaj->getQuantiteSolidaire()); $lStockService->set($lStockInitialSolidaire); // Prix $lDetailOperationInitialSolidaire = $lDetailOperationService->get($lProduitInital->getIdDetailOperationSolidaire()); $lIdDetailOperationSolidaire = $lDetailOperationInitialSolidaire->getId(); $lDetailOperationInitialSolidaire->setMontant($lProduitMaj->getMontantSolidaire()); $lDetailOperationService->set($lDetailOperationInitialSolidaire); } else { // Suppression $lStockService->delete($lProduitInital->getIdStockSolidaire()); $lDetailOperationService->delete($lProduitInital->getIdDetailOperationSolidaire()); } } if ($lProduitMaj->getQuantiteSolidaire() < 0 || $lProduitMaj->getQuantite() < 0) { // Pas d'ajout de ligne vide DetailAchatManager::insert(new DetailAchatVO($lIdOperationAchat, $lIdOperationAchatSolidaire, $lProduitMaj->getIdNomProduit(), $lIdStock, $lIdDetailOperation, $lIdStockSolidaire, $lIdDetailOperationSolidaire)); } } } if (!$lMaj) { // Suppression $lStockService->delete($lProduitInital->getIdStock()); $lDetailOperationService->delete($lProduitInital->getIdDetailOperation()); $lStockService->delete($lProduitInital->getIdStockSolidaire()); $lDetailOperationService->delete($lProduitInital->getIdDetailOperationSolidaire()); } } foreach ($pAchat->getProduits() as $lProduitMaj) { $lMaj = false; foreach ($lAchatActuel->getProduits() as $lProduitInital) { if ($lProduitInital->getIdStock() == $lProduitMaj->getIdStock() && $lProduitInital->getIdDetailOperation() == $lProduitMaj->getIdDetailOperation() && $lProduitInital->getIdStockSolidaire() == $lProduitMaj->getIdStockSolidaire() && $lProduitInital->getIdDetailOperationSolidaire() == $lProduitMaj->getIdDetailOperationSolidaire()) { // Modification $lMaj = true; } } if (!$lMaj) { // Ajout // Stock $lIdStock = 0; $lIdDetailOperation = 0; if ($lProduitMaj->getQuantite() < 0) { $lUnite = ''; $lTestModeleLot = $lProduitMaj->getIdModeleLot(); $lTestDetailCommande = $lProduitMaj->getIdDetailCommande(); if (!empty($lTestModeleLot) && !is_null($lTestModeleLot)) { $lUnite = $lListeModeleLot[$lTestModeleLot]->getUnite(); } else { if (!empty($lTestDetailCommande) && !is_null($lTestDetailCommande)) { $lUnite = $lListeDetailCommande[$lTestDetailCommande]->getUnite(); } } $lIdStock = $lStockService->set(new StockVO(null, null, $lProduitMaj->getQuantite(), 1, $lIdCompte, $lProduitMaj->getIdDetailCommande(), $lProduitMaj->getIdModeleLot(), $lIdOperationAchat, $lProduitMaj->getIdNomProduit(), $lUnite)); // Prix $lIdDetailOperation = $lDetailOperationService->set(new DetailOperationVO(null, $lIdOperationAchat, $lIdCompte, $lProduitMaj->getMontant(), $lLibelleOperation, null, 7, $lProduitMaj->getIdDetailCommande(), $lProduitMaj->getIdModeleLot(), $lProduitMaj->getIdNomProduit(), null)); } // Stock Solidaire $lIdStockSolidaire = 0; $lIdDetailOperationSolidaire = 0; if ($lProduitMaj->getQuantiteSolidaire() < 0) { $lUniteSolidaire = ''; $lTestModeleLotSolidaire = $lProduitMaj->getIdModeleLotSolidaire(); $lTestDetailCommandeSolidaire = $lProduitMaj->getIdDetailCommandeSolidaire(); if (!empty($lTestModeleLotSolidaire) && !is_null($lTestModeleLotSolidaire)) { $lUniteSolidaire = $lListeModeleLot[$lTestModeleLotSolidaire]->getUnite(); } else { if (!empty($lTestDetailCommandeSolidaire) && !is_null($lTestDetailCommandeSolidaire)) { $lUniteSolidaire = $lListeDetailCommande[$lTestDetailCommandeSolidaire]->getUnite(); } } $lIdStockSolidaire = $lStockService->set(new StockVO(null, null, $lProduitMaj->getQuantiteSolidaire(), 2, $lIdCompte, $lProduitMaj->getIdDetailCommandeSolidaire(), $lProduitMaj->getIdModeleLotSolidaire(), $lIdOperationAchatSolidaire, $lProduitMaj->getIdNomProduit(), $lUniteSolidaire)); // Prix $lIdDetailOperationSolidaire = $lDetailOperationService->set(new DetailOperationVO(null, $lIdOperationAchatSolidaire, $lIdCompte, $lProduitMaj->getMontantSolidaire(), $lLibelleOperationSolidaire, null, 8, $lProduitMaj->getIdDetailCommandeSolidaire(), $lProduitMaj->getIdModeleLotSolidaire(), $lProduitMaj->getIdNomProduit(), null)); } if ($lProduitMaj->getQuantiteSolidaire() < 0 || $lProduitMaj->getQuantite() < 0) { // Pas d'ajout de ligne vide DetailAchatManager::insert(new DetailAchatVO($lIdOperationAchat, $lIdOperationAchatSolidaire, $lProduitMaj->getIdNomProduit(), $lIdStock, $lIdDetailOperation, $lIdStockSolidaire, $lIdDetailOperationSolidaire)); } } } // Retourne l'Id de l'achat ou à defaut celui de l'achat solidaire $lIdRetour = $lIdOperationAchat; if ($lIdRetour == 0) { if ($lIdOperationAchatSolidaire != 0) { $lIdRetour = $lIdOperationAchatSolidaire; } else { $lIdRetour = $lIdRechargement; } } return $lIdRetour; }
/** * @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 ajouterMarche($lParam) * @return AjoutCommandeResponse * @desc Ajoute la commande */ public function ajouterMarche($lParam) { $lCommande = $lParam; $lVr = CommandeCompleteValid::validAjout($lCommande); if ($lVr->getValid()) { $lCommandeVO = CommandeCompleteToVO::convertFromArray($lCommande); $lMarcheService = new MarcheService(); $lId = $lMarcheService->insert($lCommandeVO); if ($lId != null) { $lResponse = new AjoutCommandeResponse(); $lResponse->setValid(true); $lResponse->setId($lId); $lResponse->setNumero($lId); return $lResponse; } else { $lVr = new TemplateVR(); $lVr->setValid(false); $lVr->getLog()->setValid(false); $lErreur = new VRerreur(); $lErreur->setCode(MessagesErreurs::ERR_113_CODE); $lErreur->setMessage(MessagesErreurs::ERR_113_MSG); $lVr->getLog()->addErreur($lErreur); return $lVr; } } return $lVr; }
/** * @name delete($pIdAdherent) * @param integer * @return AdherentVO * @desc Supprime un adherent */ public function delete($pIdAdherent) { $lAdherentValid = new NAMESPACE_CLASSE\NAMESPACE_VALIDATEUR\MOD_SERVICE\AdherentValid(); if ($lAdherentValid->delete($pIdAdherent)) { $lAdherent = AdherentManager::select($pIdAdherent); $lCompteService = new CompteService(); $lNbAdherentSurCompte = $lCompteService->getNombreAdherentSurCompte($lAdherent->getIdCompte()); $lAdhesionService = new AdhesionService(); // Suppression des adhésions $lAdhesionService->deleteAdhesionAdherentByIdAdherent($pIdAdherent); // Change l'état à supprimé $lAdherent->setEtat(2); AdherentManager::update($lAdherent); // Désactive l'identification $lIdentification = IdentificationManager::selectByIdType($lAdherent->getId(), 1); $lIdentification = $lIdentification[0]; $lIdentification->setAutorise(0); IdentificationManager::update($lIdentification); //Désinscription de la mailing liste $lMailingListeService = new MailingListeService(); if ($lAdherent->getCourrielPrincipal() != "") { $lMailingListeService->delete($lAdherent->getCourrielPrincipal()); } if ($lAdherent->getCourrielSecondaire() != "") { $lMailingListeService->delete($lAdherent->getCourrielSecondaire()); } // Si c'est le dernier adhérent du compte : suppression des réservations et abonnements if ($lNbAdherentSurCompte < 2) { // Suppression des réservations en cours $lMarcheService = new MarcheService(); $lReservations = $lMarcheService->getNonAchatParCompte($lAdherent->getIdCompte()); if (!is_null($lReservations[0]->getId())) { $lReservationService = new ReservationService(); foreach ($lReservations as $lReservation) { $lIdReservation = new IdReservationVO(); $lIdReservation->setIdCompte($lAdherent->getIdCompte()); $lIdReservation->setIdCommande($lReservation->getId()); $lReservationService->delete($lIdReservation); } } // Suppression des abonnements $lAbonnementService = new AbonnementService(); $lProduits = $lAbonnementService->getProduitsAbonne($lAdherent->getIdCompte()); foreach ($lProduits as $lProduit) { $lAbonnementService->deleteAbonnement($lProduit->getCptAboId()); } } return true; } else { return false; } }
/** * @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; }