* @copyright Since 2007 PrestaShop SA and Contributors * @license https://opensource.org/licenses/OSL-3.0 Open Software License (OSL 3.0) */ declare(strict_types=1); namespace PrestaShop\PrestaShop\Adapter\OrderReturnState\CommandHandler; use PrestaShop\PrestaShop\Core\Domain\OrderReturnState\Command\BulkDeleteOrderReturnStateCommand; use PrestaShop\PrestaShop\Core\Domain\OrderReturnState\CommandHandler\BulkDeleteOrderReturnStateHandlerInterface; use PrestaShop\PrestaShop\Core\Domain\OrderReturnState\Exception\BulkDeleteOrderReturnStateException; use PrestaShop\PrestaShop\Core\Domain\OrderReturnState\Exception\OrderReturnStateException; /** * Handles command which deletes OrderReturnStates in bulk action */ class BulkDeleteOrderReturnStateHandler extends AbstractOrderReturnStateHandler implements BulkDeleteOrderReturnStateHandlerInterface { /** * {@inheritdoc} * * @throws BulkDeleteOrderReturnStateException */ public function handle(BulkDeleteOrderReturnStateCommand $command): void { $errors = []; foreach ($command->getOrderReturnStateIds() as $orderReturnStateId) { try { $orderReturnState = $this->getOrderReturnState($orderReturnStateId); if (!$this->deleteOrderReturnState($orderReturnState)) { $errors[] = $orderReturnState->id; } } catch (OrderReturnStateException $e) { $errors[] = $orderReturnStateId->getValue(); } } if (!empty($errors)) { throw new BulkDeleteOrderReturnStateException( $errors, 'Failed to delete all of selected order return statuses' ); } } }