From 4a6f32bc61006910e1129e9e00621499f6e03184 Mon Sep 17 00:00:00 2001 From: Maxime BONGIORNO Date: Wed, 9 Jan 2019 16:11:21 +0100 Subject: [PATCH] prevent to add multiple time the same SKU in order --- .../OrderItem/OrderItemFormChangesProvider.php | 12 ++++++++++++ .../Resources/translations/messages.en.yml | 1 + 2 files changed, 13 insertions(+) diff --git a/src/Marello/Bundle/OrderBundle/Provider/OrderItem/OrderItemFormChangesProvider.php b/src/Marello/Bundle/OrderBundle/Provider/OrderItem/OrderItemFormChangesProvider.php index 8cff664cf..e84cddef2 100644 --- a/src/Marello/Bundle/OrderBundle/Provider/OrderItem/OrderItemFormChangesProvider.php +++ b/src/Marello/Bundle/OrderBundle/Provider/OrderItem/OrderItemFormChangesProvider.php @@ -72,6 +72,18 @@ public function processFormChanges(FormChangeContextInterface $context) } } } + + $duplicatedItems = array_diff_assoc($productIds, array_unique($productIds)); + if(!empty($duplicatedItems)) { + foreach ($duplicatedItems as $duplicatedItem) + { + $itemResult[self::IDENTIFIER_PREFIX . $duplicatedItem] = [ + 'message' => $this->translator + ->trans('marello.order.orderitem.messages.product_duplicated_in_order'), + ]; + } + } + $result[self::ITEMS_FIELD] = $itemResult; $context->setResult($result); } diff --git a/src/Marello/Bundle/OrderBundle/Resources/translations/messages.en.yml b/src/Marello/Bundle/OrderBundle/Resources/translations/messages.en.yml index 2afb217e3..b0cec1152 100644 --- a/src/Marello/Bundle/OrderBundle/Resources/translations/messages.en.yml +++ b/src/Marello/Bundle/OrderBundle/Resources/translations/messages.en.yml @@ -97,6 +97,7 @@ marello: messages: product_not_salable: Product cannot be sold in the chosen Sales Channel + product_duplicated_in_order: Product is duplicated in the order # Customer Entity customer: