From e7b8de32c1d3c4016c46c46acaf3e6e18f65b279 Mon Sep 17 00:00:00 2001 From: Marija Date: Tue, 14 May 2024 14:40:12 +0200 Subject: [PATCH] Add check if order has been paid using SeQura payment methods in observers CS-5420 --- Observer/OrderAddressObserver.php | 6 ++++++ Observer/OrderCancellationObserver.php | 4 +++- Observer/OrderShipmentObserver.php | 5 +++++ 3 files changed, 14 insertions(+), 1 deletion(-) diff --git a/Observer/OrderAddressObserver.php b/Observer/OrderAddressObserver.php index 02b5556..992dab1 100644 --- a/Observer/OrderAddressObserver.php +++ b/Observer/OrderAddressObserver.php @@ -14,6 +14,7 @@ use Sequra\Core\Controller\Webhook\Index as WebhookController; use SeQura\Core\Infrastructure\Logger\Logger; use SeQura\Core\Infrastructure\ServiceRegister; +use Sequra\Core\Model\Ui\ConfigProvider; use Sequra\Core\Services\BusinessLogic\Utility\SeQuraTranslationProvider; use Sequra\Core\Services\BusinessLogic\Utility\TransformEntityService; @@ -81,6 +82,11 @@ public function execute(Observer $observer): void private function handleAddressUpdate(MagentoAddress $magentoAddress): void { $magentoOrder = $magentoAddress->getOrder(); + + if ($magentoOrder->getPayment()->getMethod() !== ConfigProvider::CODE) { + return; + } + if ($magentoOrder->getStatus() === Order::STATE_PAYMENT_REVIEW) { throw new LocalizedException($this->translationProvider->translate('sequra.error.cannotUpdate')); } diff --git a/Observer/OrderCancellationObserver.php b/Observer/OrderCancellationObserver.php index 4bca4ba..70c686b 100644 --- a/Observer/OrderCancellationObserver.php +++ b/Observer/OrderCancellationObserver.php @@ -15,6 +15,7 @@ use SeQura\Core\BusinessLogic\Domain\Order\Service\OrderService; use SeQura\Core\Infrastructure\Logger\Logger; use SeQura\Core\Infrastructure\ServiceRegister; +use Sequra\Core\Model\Ui\ConfigProvider; use Sequra\Core\Services\BusinessLogic\Utility\SeQuraTranslationProvider; /** @@ -50,7 +51,8 @@ public function __construct(SeQuraTranslationProvider $translationProvider) public function execute(Observer $observer): void { $orderData = $observer->getData('order'); - if (WebhookController::isWebhookProcessing() || $orderData->getStatus() !== Order::STATE_CANCELED) { + if (WebhookController::isWebhookProcessing() || $orderData->getStatus() !== Order::STATE_CANCELED || + $orderData->getPayment()->getMethod() !== ConfigProvider::CODE) { return; } diff --git a/Observer/OrderShipmentObserver.php b/Observer/OrderShipmentObserver.php index 0eb36e8..dfa3130 100644 --- a/Observer/OrderShipmentObserver.php +++ b/Observer/OrderShipmentObserver.php @@ -13,6 +13,7 @@ use SeQura\Core\BusinessLogic\Domain\Order\Service\OrderService; use SeQura\Core\Infrastructure\Logger\Logger; use SeQura\Core\Infrastructure\ServiceRegister; +use Sequra\Core\Model\Ui\ConfigProvider; use Sequra\Core\Services\BusinessLogic\Utility\SeQuraTranslationProvider; use Sequra\Core\Services\BusinessLogic\Utility\TransformEntityService; @@ -77,6 +78,10 @@ private function handleShipment(MagentoShipment $shipmentData): void { $orderData = $shipmentData->getOrder(); + if ($orderData->getPayment()->getMethod() !== ConfigProvider::CODE) { + return; + } + if ($orderData->getStatus() === Order::STATE_PAYMENT_REVIEW) { throw new LocalizedException($this->translationProvider->translate('sequra.error.cannotShip')); }