/** * @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; }