mirror of
https://gitlab.com/Chill-Projet/chill-bundles.git
synced 2025-08-21 07:03:49 +00:00
Household/composition add + fixes household composition editor
This commit is contained in:
@@ -12,6 +12,8 @@ declare(strict_types=1);
|
||||
namespace Chill\PersonBundle\Serializer\Normalizer;
|
||||
|
||||
use Chill\PersonBundle\Entity\Household\Household;
|
||||
use Chill\PersonBundle\Entity\Household\HouseholdComposition;
|
||||
use Chill\PersonBundle\Entity\Household\HouseholdCompositionType;
|
||||
use Chill\PersonBundle\Entity\Household\Position;
|
||||
use Chill\PersonBundle\Entity\Person;
|
||||
use Chill\PersonBundle\Household\MembersEditor;
|
||||
@@ -22,6 +24,7 @@ use Symfony\Component\Serializer\Normalizer\DenormalizerAwareInterface;
|
||||
use Symfony\Component\Serializer\Normalizer\DenormalizerAwareTrait;
|
||||
use Symfony\Component\Serializer\Normalizer\DenormalizerInterface;
|
||||
|
||||
use UnexpectedValueException;
|
||||
use function array_key_exists;
|
||||
|
||||
class MembersEditorNormalizer implements DenormalizerAwareInterface, DenormalizerInterface
|
||||
@@ -148,6 +151,23 @@ class MembersEditorNormalizer implements DenormalizerAwareInterface, Denormalize
|
||||
);
|
||||
}
|
||||
|
||||
if (null !== $data['composition']) {
|
||||
$compositionType = $this->denormalizer->denormalize($data['composition']['household_composition_type'], HouseholdCompositionType::class, $format, $context);
|
||||
$numberOfChildren = $data['composition']['number_of_children'];
|
||||
$startDate = $this->denormalizer->denormalize($data['composition']['start_date'], DateTimeImmutable::class, $format, $context);
|
||||
|
||||
if (null === $compositionType) {
|
||||
throw new UnexpectedValueException('composition type cannot be null');
|
||||
}
|
||||
|
||||
$householdComposition = (new HouseholdComposition())
|
||||
->setHouseholdCompositionType($compositionType)
|
||||
->setNumberOfChildren($numberOfChildren)
|
||||
->setStartDate($startDate);
|
||||
|
||||
$household->addComposition($householdComposition);
|
||||
}
|
||||
|
||||
return $editor;
|
||||
}
|
||||
|
||||
|
Reference in New Issue
Block a user