/**
  * @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;
 }
Пример #9
0
 /**
  * @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;
 }
Пример #13
0
 /**
  * @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;
 }