From 08f6b2ea4b5721d3c8b1b3a7a097a06567ea391f Mon Sep 17 00:00:00 2001 From: Dominik Pfaffenbauer Date: Wed, 2 Aug 2023 09:33:12 +0200 Subject: [PATCH] [OrderBundle] don't modify CartItem twice --- .../Form/DataMapper/CartItemQuantityDataMapper.php | 11 ++--------- 1 file changed, 2 insertions(+), 9 deletions(-) diff --git a/src/CoreShop/Bundle/OrderBundle/Form/DataMapper/CartItemQuantityDataMapper.php b/src/CoreShop/Bundle/OrderBundle/Form/DataMapper/CartItemQuantityDataMapper.php index 00f7542a10..6aa5400578 100644 --- a/src/CoreShop/Bundle/OrderBundle/Form/DataMapper/CartItemQuantityDataMapper.php +++ b/src/CoreShop/Bundle/OrderBundle/Form/DataMapper/CartItemQuantityDataMapper.php @@ -19,6 +19,7 @@ namespace CoreShop\Bundle\OrderBundle\Form\DataMapper; use CoreShop\Component\StorageList\StorageListItemQuantityModifierInterface; +use Doctrine\Common\Collections\ArrayCollection; use Symfony\Component\Form\DataMapperInterface; /** @@ -40,13 +41,10 @@ public function mapDataToForms($viewData, $forms): void public function mapFormsToData($forms, &$viewData): void { $formsOtherThanQuantity = []; - $quantityForm = null; //First map all the other fields, then map quantity. foreach ($forms as $form) { if ('quantity' === $form->getName()) { - $quantityForm = $form; - $targetQuantity = $form->getData(); $this->cartItemQuantityModifier->modify($viewData, (float) $targetQuantity); @@ -57,12 +55,7 @@ public function mapFormsToData($forms, &$viewData): void } if (!empty($formsOtherThanQuantity)) { - $this->propertyPathDataMapper->mapFormsToData($formsOtherThanQuantity, $viewData); - } - - if (null !== $quantityForm) { - $targetQuantity = $quantityForm->getData(); - $this->cartItemQuantityModifier->modify($viewData, (float) $targetQuantity); + $this->propertyPathDataMapper->mapFormsToData(new ArrayCollection($formsOtherThanQuantity), $viewData); } } }