| Current Path : /home/rtorresani/www/vendor/magento/module-customer/Controller/Adminhtml/Index/ |
| Current File : //home/rtorresani/www/vendor/magento/module-customer/Controller/Adminhtml/Index/Cart.php |
<?php
/**
* Copyright © Magento, Inc. All rights reserved.
* See COPYING.txt for license details.
*/
namespace Magento\Customer\Controller\Adminhtml\Index;
use Magento\Backend\App\Action\Context;
use Magento\Backend\Model\View\Result\ForwardFactory;
use Magento\Customer\Api\AccountManagementInterface;
use Magento\Customer\Api\AddressRepositoryInterface;
use Magento\Customer\Api\CustomerRepositoryInterface;
use Magento\Customer\Api\Data\AddressInterfaceFactory;
use Magento\Customer\Api\Data\CustomerInterfaceFactory;
use Magento\Customer\Controller\Adminhtml\Index as BaseAction;
use Magento\Customer\Helper\View;
use Magento\Customer\Model\Address\Mapper;
use Magento\Customer\Model\AddressFactory;
use Magento\Customer\Model\CustomerFactory;
use Magento\Customer\Model\Metadata\FormFactory;
use Magento\Framework\Api\DataObjectHelper;
use Magento\Framework\Api\ExtensibleDataObjectConverter;
use Magento\Framework\App\Action\HttpGetActionInterface;
use Magento\Framework\App\Action\HttpPostActionInterface as HttpPostActionInterface;
use Magento\Framework\App\Response\Http\FileFactory;
use Magento\Framework\Controller\Result\JsonFactory;
use Magento\Framework\DataObjectFactory as ObjectFactory;
use Magento\Framework\Exception\NoSuchEntityException;
use Magento\Framework\Math\Random;
use Magento\Framework\Reflection\DataObjectProcessor;
use Magento\Framework\Registry;
use Magento\Framework\View\Result\Layout;
use Magento\Framework\View\Result\LayoutFactory;
use Magento\Framework\View\Result\PageFactory;
use Magento\Newsletter\Model\SubscriberFactory;
use Magento\Quote\Api\CartRepositoryInterface;
use Magento\Quote\Model\Quote;
use Magento\Quote\Model\QuoteFactory;
use Magento\Store\Model\StoreManagerInterface;
/**
* Admin customer shopping cart controller
*
* @SuppressWarnings(PHPMD.CouplingBetweenObjects)
* @deprecated 101.0.0
*/
class Cart extends BaseAction implements HttpGetActionInterface, HttpPostActionInterface
{
/**
* @var QuoteFactory
*/
private $quoteFactory;
/**
* @var StoreManagerInterface
*/
private $storeManager;
/**
* Constructor
*
* @param Context $context
* @param Registry $coreRegistry
* @param FileFactory $fileFactory
* @param CustomerFactory $customerFactory
* @param AddressFactory $addressFactory
* @param FormFactory $formFactory
* @param SubscriberFactory $subscriberFactory
* @param View $viewHelper
* @param Random $random
* @param CustomerRepositoryInterface $customerRepository
* @param ExtensibleDataObjectConverter $extensibleDataObjectConverter
* @param Mapper $addressMapper
* @param AccountManagementInterface $customerAccountManagement
* @param AddressRepositoryInterface $addressRepository
* @param CustomerInterfaceFactory $customerDataFactory
* @param AddressInterfaceFactory $addressDataFactory
* @param \Magento\Customer\Model\Customer\Mapper $customerMapper
* @param DataObjectProcessor $dataObjectProcessor
* @param DataObjectHelper $dataObjectHelper
* @param ObjectFactory $objectFactory
* @param \Magento\Framework\View\LayoutFactory $layoutFactory
* @param LayoutFactory $resultLayoutFactory
* @param PageFactory $resultPageFactory
* @param ForwardFactory $resultForwardFactory
* @param JsonFactory $resultJsonFactory
* @param QuoteFactory|null $quoteFactory
* @param StoreManagerInterface|null $storeManager
* @SuppressWarnings(PHPMD.ExcessiveParameterList)
*/
public function __construct(
Context $context,
Registry $coreRegistry,
FileFactory $fileFactory,
CustomerFactory $customerFactory,
AddressFactory $addressFactory,
FormFactory $formFactory,
SubscriberFactory $subscriberFactory,
View $viewHelper,
Random $random,
CustomerRepositoryInterface $customerRepository,
ExtensibleDataObjectConverter $extensibleDataObjectConverter,
Mapper $addressMapper,
AccountManagementInterface $customerAccountManagement,
AddressRepositoryInterface $addressRepository,
CustomerInterfaceFactory $customerDataFactory,
AddressInterfaceFactory $addressDataFactory,
\Magento\Customer\Model\Customer\Mapper $customerMapper,
DataObjectProcessor $dataObjectProcessor,
DataObjectHelper $dataObjectHelper,
ObjectFactory $objectFactory,
\Magento\Framework\View\LayoutFactory $layoutFactory,
LayoutFactory $resultLayoutFactory,
PageFactory $resultPageFactory,
ForwardFactory $resultForwardFactory,
JsonFactory $resultJsonFactory,
QuoteFactory $quoteFactory = null,
?StoreManagerInterface $storeManager = null
) {
parent::__construct(
$context,
$coreRegistry,
$fileFactory,
$customerFactory,
$addressFactory,
$formFactory,
$subscriberFactory,
$viewHelper,
$random,
$customerRepository,
$extensibleDataObjectConverter,
$addressMapper,
$customerAccountManagement,
$addressRepository,
$customerDataFactory,
$addressDataFactory,
$customerMapper,
$dataObjectProcessor,
$dataObjectHelper,
$objectFactory,
$layoutFactory,
$resultLayoutFactory,
$resultPageFactory,
$resultForwardFactory,
$resultJsonFactory
);
$this->quoteFactory = $quoteFactory ?: $this->_objectManager->get(QuoteFactory::class);
$this->storeManager = $storeManager ?? $this->_objectManager->get(StoreManagerInterface::class);
}
/**
* Handle and then get cart grid contents
*
* @return Layout
*/
public function execute()
{
$customerId = $this->initCurrentCustomer();
$websiteId = $this->getRequest()->getParam('website_id');
// delete an item from cart
$deleteItemId = $this->getRequest()->getPost('delete');
if ($deleteItemId) {
/** @var CartRepositoryInterface $quoteRepository */
$quoteRepository = $this->_objectManager->create(CartRepositoryInterface::class);
/** @var Quote $quote */
try {
$storeIds = $this->storeManager->getWebsite($websiteId)->getStoreIds();
$quote = $quoteRepository->getForCustomer($customerId, $storeIds);
} catch (NoSuchEntityException $e) {
$quote = $this->quoteFactory->create();
}
$quote->setWebsite(
$this->storeManager->getWebsite($websiteId)
);
$item = $quote->getItemById($deleteItemId);
if ($item && $item->getId()) {
$quote->removeItem($deleteItemId);
$quoteRepository->save($quote->collectTotals());
}
}
$resultLayout = $this->resultLayoutFactory->create();
$resultLayout->getLayout()->getBlock('admin.customer.view.edit.cart')->setWebsiteId($websiteId);
return $resultLayout;
}
}