Commit 1da2648c authored by Laurent Lecluse's avatar Laurent Lecluse
Browse files

Correctif pour tous les cas d'intervenants ayant un code INSEE contenant 75 et...

Correctif pour tous les cas d'intervenants ayant un code INSEE contenant 75 et nés en Seine et Oise <=1968.
parent 21e27334
Loading
Loading
Loading
Loading
+1 −0
Original line number Diff line number Diff line
@@ -22,6 +22,7 @@ ne sont plus affichées lorsqu'on clique sur l'utilisateur en haut à droite.
* Dans la fiche de service, les codes des éléments et des étapes s'affichent de nouveau (ils n'étaient plus visibles)
* Lorsqu'on crée un nouveau rôle et qu'on lui ajoute des privilèges, l'application ne plante plus (problème de cache de données réglé).
* Dans l'export Winpaye, le numéro INSEE est maintenant correctement formatté (il supprime les espaces en trop, et ajoute des zéros devant les clés si nécessaire)
* Dans le dossier, les Numéros INSEE avec pour département 75 sont comptés valides par rapport au département de naissance si l'intervenant est né en actuelle région parisienne avant 1968.

## Nouveautés
* Nouveau script de test d'accès à la BDD depuis le script de mise à jour (./bin/ose test-bdd)
+12 −0
Original line number Diff line number Diff line
@@ -139,4 +139,16 @@ class Departement implements HistoriqueAwareInterface, ImportAwareInterface
        return $this->id;
    }



    /**
     * @return bool
     */
    public function inIleDeFrance(): bool
    {
        $intCode = (int)$this->getCode();

        return in_array($intCode, [78,91,92,93,94,95]);
    }

}
+21 −7
Original line number Diff line number Diff line
@@ -2,6 +2,8 @@

namespace Application\Validator;

use Application\Constants;
use Application\Entity\Db\Departement;
use Application\Service\Traits\CiviliteServiceAwareTrait;
use Application\Service\Traits\DepartementServiceAwareTrait;
use Application\Service\Traits\PaysServiceAwareTrait;
@@ -218,8 +220,6 @@ class NumeroINSEEValidator extends NumeroINSEE
        if (empty($context['departementNaissance'])) {
            return true;
        }
        $departementNaissance = $this->getServiceDepartement()->get($context['departementNaissance'], true);
        /* @var $departementNaissance DepartementEntity */

        // Si on trouve un code de département en métropole ou outre-mer valide,
        // on vérifie qu'il est cohérent avec le code du département de naissance saisi
@@ -228,11 +228,25 @@ class NumeroINSEEValidator extends NumeroINSEE
            ||
            ($d = $this->getDepartementOutreMerValide($value))
        ) {
            /* @var $departementNaissance Departement */
            $departementNaissance = $this->getServiceDepartement()->get($context['departementNaissance'], true);
            if ($d !== $departementNaissance->getCode()) {
                $return        = false;
                $dateNaissance = \DateTime::createFromFormat(Constants::DATE_FORMAT, $context['dateNaissance']);
                if ($dateNaissance) {
                    $anneeNaissance = (int)$dateNaissance->format('Y');
                    if ($anneeNaissance <= 1968) {
                        if ($departementNaissance->inIleDeFrance() && $d === '075') {
                            $return = true;
                        }
                    }
                }
                if (!$return) {
                    $this->error(self::MSG_DEPT);

                    return false;
                }
            }
        } // Sinon, le code département n'est pas valide
        else {
            $this->error(self::MSG_DEPT);