<?php
namespace Ebizmarts\SagePaySuite\Model\PiRequestManagement\EcommerceManagement;

/**
 * Interceptor class for @see \Ebizmarts\SagePaySuite\Model\PiRequestManagement\EcommerceManagement
 */
class Interceptor extends \Ebizmarts\SagePaySuite\Model\PiRequestManagement\EcommerceManagement implements \Magento\Framework\Interception\InterceptorInterface
{
    use \Magento\Framework\Interception\Interceptor;

    public function __construct(\Ebizmarts\SagePaySuite\Helper\Checkout $checkoutHelper, \Ebizmarts\SagePaySuite\Model\Api\PIRest $piRestApi, \Ebizmarts\SagePaySuite\Model\Config\SagePayCardType $ccConvert, \Ebizmarts\SagePaySuite\Model\PiRequest $piRequest, \Ebizmarts\SagePaySuite\Helper\Data $suiteHelper, \Ebizmarts\SagePaySuite\Api\Data\PiResultInterface $result, \Magento\Checkout\Model\Session $checkoutSession, \Ebizmarts\SagePaySuiteLogger\Model\Logger\Logger $sagePaySuiteLogger, \Ebizmarts\SagePaySuite\Model\Config\ClosedForActionFactory $actionFactory, \Magento\Sales\Model\Order\Payment\TransactionFactory $transactionFactory, \Magento\Quote\Model\QuoteValidator $quoteValidator, \Magento\Sales\Model\Order\Email\Sender\InvoiceSender $invoiceEmailSender, \Ebizmarts\SagePaySuite\Model\Config $config, \Ebizmarts\SagePaySuite\Model\CryptAndCodeData $cryptAndCode, \Ebizmarts\SagePaySuite\Model\Token\VaultDetailsHandler $vaultDetailsHandler, \Magento\Framework\Event\ManagerInterface $eventManager, \Magento\Framework\UrlInterface $url, \Magento\Sales\Api\OrderPaymentRepositoryInterfaceFactory $orderPaymentRepositoryInterfaceFactory)
    {
        $this->___init();
        parent::__construct($checkoutHelper, $piRestApi, $ccConvert, $piRequest, $suiteHelper, $result, $checkoutSession, $sagePaySuiteLogger, $actionFactory, $transactionFactory, $quoteValidator, $invoiceEmailSender, $config, $cryptAndCode, $vaultDetailsHandler, $eventManager, $url, $orderPaymentRepositoryInterfaceFactory);
    }

    /**
     * {@inheritdoc}
     */
    public function placeOrder()
    {
        $pluginInfo = $this->pluginList->getNext($this->subjectType, 'placeOrder');
        return $pluginInfo ? $this->___callPlugins('placeOrder', func_get_args(), $pluginInfo) : parent::placeOrder();
    }

    /**
     * {@inheritdoc}
     */
    public function tryToVoidTransactionAndUpdateResult($errorMessage = null)
    {
        $pluginInfo = $this->pluginList->getNext($this->subjectType, 'tryToVoidTransactionAndUpdateResult');
        return $pluginInfo ? $this->___callPlugins('tryToVoidTransactionAndUpdateResult', func_get_args(), $pluginInfo) : parent::tryToVoidTransactionAndUpdateResult($errorMessage);
    }
}
