123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152 |
- <?php
- /**
- * Copyright © Magento, Inc. All rights reserved.
- * See COPYING.txt for license details.
- */
- namespace Magento\Customer\Controller\Adminhtml\Index;
- 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\Model\Address\Mapper;
- use Magento\Framework\DataObjectFactory as ObjectFactory;
- use Magento\Framework\Api\DataObjectHelper;
- /**
- * @SuppressWarnings(PHPMD.CouplingBetweenObjects)
- * @deprecated 101.0.0
- */
- class Cart extends \Magento\Customer\Controller\Adminhtml\Index
- {
- /**
- * @var \Magento\Quote\Model\QuoteFactory
- */
- private $quoteFactory;
- /**
- * Constructor
- *
- * @param \Magento\Backend\App\Action\Context $context
- * @param \Magento\Framework\Registry $coreRegistry
- * @param \Magento\Framework\App\Response\Http\FileFactory $fileFactory
- * @param \Magento\Customer\Model\CustomerFactory $customerFactory
- * @param \Magento\Customer\Model\AddressFactory $addressFactory
- * @param \Magento\Customer\Model\Metadata\FormFactory $formFactory
- * @param \Magento\Newsletter\Model\SubscriberFactory $subscriberFactory
- * @param \Magento\Customer\Helper\View $viewHelper
- * @param \Magento\Framework\Math\Random $random
- * @param CustomerRepositoryInterface $customerRepository
- * @param \Magento\Framework\Api\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 \Magento\Framework\Reflection\DataObjectProcessor $dataObjectProcessor
- * @param DataObjectHelper $dataObjectHelper
- * @param ObjectFactory $objectFactory
- * @param \Magento\Framework\View\LayoutFactory $layoutFactory
- * @param \Magento\Framework\View\Result\LayoutFactory $resultLayoutFactory
- * @param \Magento\Framework\View\Result\PageFactory $resultPageFactory
- * @param \Magento\Backend\Model\View\Result\ForwardFactory $resultForwardFactory
- * @param \Magento\Framework\Controller\Result\JsonFactory $resultJsonFactory
- * @param \Magento\Quote\Model\QuoteFactory|null $quoteFactory
- * @SuppressWarnings(PHPMD.ExcessiveParameterList)
- */
- public function __construct(
- \Magento\Backend\App\Action\Context $context,
- \Magento\Framework\Registry $coreRegistry,
- \Magento\Framework\App\Response\Http\FileFactory $fileFactory,
- \Magento\Customer\Model\CustomerFactory $customerFactory,
- \Magento\Customer\Model\AddressFactory $addressFactory,
- \Magento\Customer\Model\Metadata\FormFactory $formFactory,
- \Magento\Newsletter\Model\SubscriberFactory $subscriberFactory,
- \Magento\Customer\Helper\View $viewHelper,
- \Magento\Framework\Math\Random $random,
- CustomerRepositoryInterface $customerRepository,
- \Magento\Framework\Api\ExtensibleDataObjectConverter $extensibleDataObjectConverter,
- Mapper $addressMapper,
- AccountManagementInterface $customerAccountManagement,
- AddressRepositoryInterface $addressRepository,
- CustomerInterfaceFactory $customerDataFactory,
- AddressInterfaceFactory $addressDataFactory,
- \Magento\Customer\Model\Customer\Mapper $customerMapper,
- \Magento\Framework\Reflection\DataObjectProcessor $dataObjectProcessor,
- DataObjectHelper $dataObjectHelper,
- ObjectFactory $objectFactory,
- \Magento\Framework\View\LayoutFactory $layoutFactory,
- \Magento\Framework\View\Result\LayoutFactory $resultLayoutFactory,
- \Magento\Framework\View\Result\PageFactory $resultPageFactory,
- \Magento\Backend\Model\View\Result\ForwardFactory $resultForwardFactory,
- \Magento\Framework\Controller\Result\JsonFactory $resultJsonFactory,
- \Magento\Quote\Model\QuoteFactory $quoteFactory = 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(\Magento\Quote\Model\QuoteFactory::class);
- }
- /**
- * Handle and then get cart grid contents
- *
- * @return \Magento\Framework\View\Result\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 \Magento\Quote\Api\CartRepositoryInterface $quoteRepository */
- $quoteRepository = $this->_objectManager->create(\Magento\Quote\Api\CartRepositoryInterface::class);
- /** @var \Magento\Quote\Model\Quote $quote */
- try {
- $quote = $quoteRepository->getForCustomer($customerId);
- } catch (\Magento\Framework\Exception\NoSuchEntityException $e) {
- $quote = $this->quoteFactory->create();
- }
- $quote->setWebsite(
- $this->_objectManager->get(\Magento\Store\Model\StoreManagerInterface::class)->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;
- }
- }
|