mirror of
https://gitlab.com/Chill-Projet/chill-bundles.git
synced 2026-04-07 05:23:45 +00:00
Améliorer la gestion des adresses dans PersonUpsertHandler en ajoutant des vérifications pour les codes postaux et en évitant d'ajouter des adresses nulles.
This commit is contained in:
@@ -54,7 +54,7 @@ readonly class PersonUpsertHandler
|
||||
private ValidatorInterface $validator,
|
||||
) {}
|
||||
|
||||
private function createAddressWithMessage(UpsertMessage $message): Address
|
||||
private function createAddressWithMessage(UpsertMessage $message): ?Address
|
||||
{
|
||||
$newAddress = new Address();
|
||||
if (null !== $message->addressStreet) {
|
||||
@@ -65,9 +65,14 @@ readonly class PersonUpsertHandler
|
||||
}
|
||||
if (null !== $message->addressPostcode) {
|
||||
$postalCode = $this->postalCodeRepository->findOneBy(['code' => $message->addressPostcode]);
|
||||
if (null !== $postalCode) {
|
||||
$newAddress->setPostcode($postalCode);
|
||||
if (null === $postalCode) {
|
||||
// Si aucun code postal trouvé, on ne gère pas l'adresse
|
||||
return null;
|
||||
}
|
||||
$newAddress->setPostcode($postalCode);
|
||||
} else {
|
||||
// Si pas de postcode fourni, on ne gère pas l'adresse
|
||||
return null;
|
||||
}
|
||||
if (null !== $message->addressExtra) {
|
||||
$newAddress->setExtra($message->addressExtra);
|
||||
@@ -116,7 +121,7 @@ readonly class PersonUpsertHandler
|
||||
* Si externalId existe, retourne le Center associé.
|
||||
* Sinon, cherche par nom, sinon crée un nouveau Center.
|
||||
*/
|
||||
private function findOrCreateCenter(?string $externalId, ?string $centerName): object | null
|
||||
private function findOrCreateCenter(?string $externalId, ?string $centerName): ?object
|
||||
{
|
||||
if (null === $externalId && null === $centerName) {
|
||||
return null;
|
||||
@@ -173,7 +178,9 @@ readonly class PersonUpsertHandler
|
||||
$messageAddressMatch = $this->isMessageAddressMatch($lastCurrentAddress, $message);
|
||||
if (!$messageAddressMatch) {
|
||||
$newAddress = $this->createAddressWithMessage($message);
|
||||
$currentHousehold->addAddress($newAddress);
|
||||
if (null !== $newAddress) {
|
||||
$currentHousehold->addAddress($newAddress);
|
||||
}
|
||||
}
|
||||
}
|
||||
} elseif (null === $currentHousehold && $hasAddressInfo) {
|
||||
@@ -182,7 +189,9 @@ readonly class PersonUpsertHandler
|
||||
|
||||
// Create the new address
|
||||
$newAddress = $this->createAddressWithMessage($message);
|
||||
$newHousehold->addAddress($newAddress);
|
||||
if (null !== $newAddress) {
|
||||
$newHousehold->addAddress($newAddress);
|
||||
}
|
||||
|
||||
// Create a MembersEditor with the new household and add the person
|
||||
$membersEditor = $this->membersEditorFactory->createEditor($newHousehold);
|
||||
|
||||
Reference in New Issue
Block a user