From 6fed008ff2ab56a02e0944531fd06a591dda6aac Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Julien=20Fastr=C3=A9?= Date: Thu, 10 Jun 2021 11:48:06 +0200 Subject: [PATCH] fix creation of new household during move --- .../Controller/HouseholdMemberController.php | 5 +++++ src/Bundle/ChillPersonBundle/Household/MembersEditor.php | 2 +- .../Serializer/Normalizer/MembersEditorNormalizer.php | 2 +- 3 files changed, 7 insertions(+), 2 deletions(-) diff --git a/src/Bundle/ChillPersonBundle/Controller/HouseholdMemberController.php b/src/Bundle/ChillPersonBundle/Controller/HouseholdMemberController.php index da361abda..996c195cc 100644 --- a/src/Bundle/ChillPersonBundle/Controller/HouseholdMemberController.php +++ b/src/Bundle/ChillPersonBundle/Controller/HouseholdMemberController.php @@ -54,6 +54,11 @@ class HouseholdMemberController extends ApiController // $em = $this->getDoctrine()->getManager(); + // if new household, persist it + if (FALSE === $em->contains($editor->getHousehold())) { + $em->persist($editor->getHousehold()); + } + foreach ($editor->getPersistable() as $el) { $em->persist($el); } diff --git a/src/Bundle/ChillPersonBundle/Household/MembersEditor.php b/src/Bundle/ChillPersonBundle/Household/MembersEditor.php index 527404c75..970010288 100644 --- a/src/Bundle/ChillPersonBundle/Household/MembersEditor.php +++ b/src/Bundle/ChillPersonBundle/Household/MembersEditor.php @@ -35,9 +35,9 @@ class MembersEditor ->setPerson($person) ->setPosition($position) ->setHolder($holder) - ->setHousehold($this->household) ->setComment($comment) ; + $this->household->addMember($membership); if ($position->getShareHousehold()) { foreach ($person->getHouseholdParticipations() as $participation) { diff --git a/src/Bundle/ChillPersonBundle/Serializer/Normalizer/MembersEditorNormalizer.php b/src/Bundle/ChillPersonBundle/Serializer/Normalizer/MembersEditorNormalizer.php index 603c1a9e5..12fe4ab5c 100644 --- a/src/Bundle/ChillPersonBundle/Serializer/Normalizer/MembersEditorNormalizer.php +++ b/src/Bundle/ChillPersonBundle/Serializer/Normalizer/MembersEditorNormalizer.php @@ -34,7 +34,7 @@ class MembersEditorNormalizer implements DenormalizerInterface, DenormalizerAwar $editor = $this->factory->createEditor($household); - if (NULL == $data['concerned'] ?? [] + if (NULL == $data['concerned'] ?? NULL && FALSE === ยท\is_array('concerned')) { throw new Exception\UnexpectedValueException("The schema does not have any key 'concerned'"); }