/** * @name getInfoAjoutAdhesionAdherent($pParam) * @return InfoAjoutAdhesionAdherentResponse * @desc Retourne les informations pour le formulaire d'adhésion d'un adhérent à une adhésion */ public function getInfoAjoutAdhesionAdherent($pParam) { $lVr = AdhesionAdherentDetailValid::validInfoAjoutAdhesionAdherent($pParam); if ($lVr->getValid()) { $lAdhesionService = new AdhesionService(); $lTypePaiementService = new TypePaiementService(); $lBanqueService = new BanqueService(); $lAdherentService = new AdherentService(); $lAdherent = $lAdherentService->get($pParam['idAdherent']); $lCompteService = new CompteService(); $lNbAdherentSurCompte = $lCompteService->getNombreAdherentSurCompte($lAdherent->getAdhIdCompte()); $lAdhesion = $lAdhesionService->get($pParam['id']); if ($lNbAdherentSurCompte == 1) { // Si seul adhérent sur le compte ne propose pas les adhésions sur périmètre adhérent $lFiltrePerimetre = 1; } else { // Si plusieurs adhérents uniquement les types adhésion compte $lFiltrePerimetre = 2; } $lTypes = array(); foreach ($lAdhesion->getTypes() as $i => $lType) { if ($lType->getPerId() == $lFiltrePerimetre) { array_push($lTypes, $lType); } } $lAdhesion->setTypes($lTypes); return new InfoAjoutAdhesionAdherentResponse($lAdhesion, $lTypePaiementService->selectVisible(), $lBanqueService->getAllActif()); } return $lVr; }
/** * @name validAjout($pData) * @return AdhesionAdherentVR * @desc Test la validite de l'élément */ public static function validAjout($pData) { $lVr = new AdhesionAdherentVR(); //Tests inputs if (!isset($pData['idAdherent'])) { $lVr->setValid(false); $lVr->getIdAdherent()->setValid(false); $lErreur = new VRerreur(); $lErreur->setCode(MessagesErreurs::ERR_201_CODE); $lErreur->setMessage(MessagesErreurs::ERR_201_MSG); $lVr->getIdAdherent()->addErreur($lErreur); } if (!isset($pData['idTypeAdhesion'])) { $lVr->setValid(false); $lVr->getIdTypeAdhesion()->setValid(false); $lErreur = new VRerreur(); $lErreur->setCode(MessagesErreurs::ERR_201_CODE); $lErreur->setMessage(MessagesErreurs::ERR_201_MSG); $lVr->getIdTypeAdhesion()->addErreur($lErreur); } if (!isset($pData['statutFormulaire'])) { $lVr->setValid(false); $lVr->getStatutFormulaire()->setValid(false); $lErreur = new VRerreur(); $lErreur->setCode(MessagesErreurs::ERR_201_CODE); $lErreur->setMessage(MessagesErreurs::ERR_201_MSG); $lVr->getStatutFormulaire()->addErreur($lErreur); } if ($lVr->getValid()) { //Tests Techniques if (!TestFonction::checkLength($pData['idAdherent'], 0, 11)) { $lVr->setValid(false); $lVr->getIdAdherent()->setValid(false); $lErreur = new VRerreur(); $lErreur->setCode(MessagesErreurs::ERR_101_CODE); $lErreur->setMessage(MessagesErreurs::ERR_101_MSG); $lVr->getIdAdherent()->addErreur($lErreur); } if (!is_int((int) $pData['idAdherent'])) { $lVr->setValid(false); $lVr->getIdAdherent()->setValid(false); $lErreur = new VRerreur(); $lErreur->setCode(MessagesErreurs::ERR_104_CODE); $lErreur->setMessage(MessagesErreurs::ERR_104_MSG); $lVr->getIdAdherent()->addErreur($lErreur); } if (!TestFonction::checkLength($pData['idTypeAdhesion'], 0, 11)) { $lVr->setValid(false); $lVr->getIdTypeAdhesion()->setValid(false); $lErreur = new VRerreur(); $lErreur->setCode(MessagesErreurs::ERR_101_CODE); $lErreur->setMessage(MessagesErreurs::ERR_101_MSG); $lVr->getIdTypeAdhesion()->addErreur($lErreur); } if (!is_int((int) $pData['idTypeAdhesion'])) { $lVr->setValid(false); $lVr->getIdTypeAdhesion()->setValid(false); $lErreur = new VRerreur(); $lErreur->setCode(MessagesErreurs::ERR_104_CODE); $lErreur->setMessage(MessagesErreurs::ERR_104_MSG); $lVr->getIdTypeAdhesion()->addErreur($lErreur); } if (!TestFonction::checkLength($pData['statutFormulaire'], 0, 1)) { $lVr->setValid(false); $lVr->getStatutFormulaire()->setValid(false); $lErreur = new VRerreur(); $lErreur->setCode(MessagesErreurs::ERR_101_CODE); $lErreur->setMessage(MessagesErreurs::ERR_101_MSG); $lVr->getStatutFormulaire()->addErreur($lErreur); } //Tests Fonctionnels if (empty($pData['idAdherent'])) { $lVr->setValid(false); $lVr->getIdAdherent()->setValid(false); $lErreur = new VRerreur(); $lErreur->setCode(MessagesErreurs::ERR_201_CODE); $lErreur->setMessage(MessagesErreurs::ERR_201_MSG); $lVr->getIdAdherent()->addErreur($lErreur); } if (empty($pData['idTypeAdhesion'])) { $lVr->setValid(false); $lVr->getIdTypeAdhesion()->setValid(false); $lErreur = new VRerreur(); $lErreur->setCode(MessagesErreurs::ERR_201_CODE); $lErreur->setMessage(MessagesErreurs::ERR_201_MSG); $lVr->getIdTypeAdhesion()->addErreur($lErreur); } // Vérifie si l'adhérent existe $lAdherentService = new AdherentService(); if (!$lAdherentService->estActif($pData['idAdherent'])) { $lVr->setValid(false); $lVr->getIdAdherent()->setValid(false); $lErreur = new VRerreur(); $lErreur->setCode(MessagesErreurs::ERR_216_CODE); $lErreur->setMessage(MessagesErreurs::ERR_216_MSG); $lVr->getIdAdherent()->addErreur($lErreur); } // Le type adhésion doit exister et être actif $lAdhesionService = new AdhesionService(); $lTypeAdhesion = $lAdhesionService->getTypeAdhesion($pData['idTypeAdhesion']); if ($lTypeAdhesion->getEtat() != 0) { $lVr->setValid(false); $lVr->getIdTypeAdhesion()->setValid(false); $lErreur = new VRerreur(); $lErreur->setCode(MessagesErreurs::ERR_216_CODE); $lErreur->setMessage(MessagesErreurs::ERR_216_MSG); $lVr->getIdTypeAdhesion()->addErreur($lErreur); } $lAdherent = $lAdherentService->get($pData['idAdherent']); $lCompteService = new CompteService(); $lNbAdherentSurCompte = $lCompteService->getNombreAdherentSurCompte($lAdherent->getAdhIdCompte()); $lPerimetreOK = false; if ($lNbAdherentSurCompte == 1) { // Si seul adhérent sur le compte adhésions sur périmètre adhérent $lPerimetreOK = $lTypeAdhesion->getIdPerimetre() == 1; } else { // Si plusieurs adhérents uniquement les types adhésion compte $lPerimetreOK = $lTypeAdhesion->getIdPerimetre() == 2; } if (!$lPerimetreOK) { $lVr->setValid(false); $lVr->getIdTypeAdhesion()->setValid(false); $lErreur = new VRerreur(); $lErreur->setCode(MessagesErreurs::ERR_272_CODE); $lErreur->setMessage(MessagesErreurs::ERR_272_MSG); $lVr->getIdTypeAdhesion()->addErreur($lErreur); } // Pas de doublon d'adhésion if ($lAdhesionService->typeAdhesionAdherentExiste($pData['idAdherent'], $pData['idTypeAdhesion'])) { $lVr->setValid(false); $lVr->getIdTypeAdhesion()->setValid(false); $lErreur = new VRerreur(); $lErreur->setCode(MessagesErreurs::ERR_270_CODE); $lErreur->setMessage(MessagesErreurs::ERR_270_MSG); $lVr->getIdTypeAdhesion()->addErreur($lErreur); } } 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; } }