* @copyright Since 2007 PrestaShop SA and Contributors * @license https://opensource.org/licenses/OSL-3.0 Open Software License (OSL 3.0) */ namespace PrestaShop\PrestaShop\Adapter\Order\CommandHandler; use Configuration; use PrestaShop\PrestaShop\Adapter\Order\AbstractOrderHandler; use PrestaShop\PrestaShop\Core\Domain\Order\Exception\OrderException; use PrestaShop\PrestaShop\Core\Domain\Order\Invoice\Command\GenerateInvoiceCommand; use PrestaShop\PrestaShop\Core\Domain\Order\Invoice\CommandHandler\GenerateOrderInvoiceHandlerInterface; /** * @internal */ final class GenerateInvoiceHandler extends AbstractOrderHandler implements GenerateOrderInvoiceHandlerInterface { /** * {@inheritdoc} */ public function handle(GenerateInvoiceCommand $command) { $order = $this->getOrder($command->getOrderId()); if (!Configuration::get('PS_INVOICE', null, null, $order->id_shop)) { throw new OrderException('Invoice management has been disabled.'); } if ($order->hasInvoice()) { throw new OrderException('This order already has an invoice.'); } $order->setInvoice(true); } }