/**
  * @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;
 }
Ejemplo n.º 3
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;
     }
 }