From c75fc72f390f0b38f5841e2b4726844d0f987e96 Mon Sep 17 00:00:00 2001 From: jevgenijvisockij Date: Wed, 17 Apr 2024 13:49:04 +0300 Subject: [PATCH] Moved order retrieval logic to repository --- src/Repository/OrderRepository.php | 12 ++++++++++++ src/Service/OrderStatusService.php | 18 +++++++----------- 2 files changed, 19 insertions(+), 11 deletions(-) diff --git a/src/Repository/OrderRepository.php b/src/Repository/OrderRepository.php index 82d43d1f4..281c297f8 100644 --- a/src/Repository/OrderRepository.php +++ b/src/Repository/OrderRepository.php @@ -36,4 +36,16 @@ public function findOneByCartId($id_cart) { return $this->findOneBy(['id_cart' => (int) $id_cart]); } + + /** + * @param int $id_cart + * + * @return \ObjectModel[]|null + * + * @throws \PrestaShopException + */ + public function findAllByCartId($id_cart) + { + return $this->findAllBy(['id_cart' => (int) $id_cart]); + } } diff --git a/src/Service/OrderStatusService.php b/src/Service/OrderStatusService.php index 3b6a90657..47fe0d11c 100644 --- a/src/Service/OrderStatusService.php +++ b/src/Service/OrderStatusService.php @@ -13,11 +13,10 @@ namespace Mollie\Service; use Configuration; -use Db; -use DbQuery; use Mollie\Api\Types\OrderStatus; use Mollie\Api\Types\PaymentStatus; use Mollie\Config\Config; +use Mollie\Repository\OrderRepository; use Mollie\Utility\OrderStatusUtility; use Order; use OrderDetail; @@ -38,9 +37,12 @@ class OrderStatusService */ private $mailService; - public function __construct(MailService $mailService) + private $orderRepository; + + public function __construct(MailService $mailService, OrderRepository $orderRepository) { $this->mailService = $mailService; + $this->orderRepository = $orderRepository; } /** @@ -104,15 +106,9 @@ public function setOrderStatus($orderId, $statusId, $useExistingPayment = null, $useExistingPayment = !$order->hasInvoice(); } - $orders = Db::getInstance()->executeS( - (new DbQuery()) - ->select('id_order') - ->from('orders') - ->where('id_cart = ' . (int) $order->id_cart) - ); + $orders = $this->orderRepository->findAllByCartId($order->id_cart); if (count($orders) > 1) { - foreach ($orders as $orderData) { - $subOrder = new Order($orderData['id_order']); + foreach ($orders as $subOrder) { $history = new OrderHistory(); $history->id_order = $subOrder->id; $history->changeIdOrderState($statusId, $subOrder->id, $useExistingPayment);