![]() Server : Apache System : Linux server2.corals.io 4.18.0-348.2.1.el8_5.x86_64 #1 SMP Mon Nov 15 09:17:08 EST 2021 x86_64 User : corals ( 1002) PHP Version : 7.4.33 Disable Function : exec,passthru,shell_exec,system Directory : /home/corals/cartforge.co/vendor/magento/module-sales/Block/Adminhtml/Order/Create/Sidebar/ |
<?php /** * Copyright © Magento, Inc. All rights reserved. * See COPYING.txt for license details. */ declare(strict_types=1); namespace Magento\Sales\Block\Adminhtml\Order\Create\Sidebar; use Magento\Catalog\Model\Product; use Magento\Catalog\Pricing\Price\FinalPrice; use Magento\Store\Model\ScopeInterface; /** * Adminhtml sales order create sidebar cart block * * @api * @author Magento Core Team <[email protected]> * @since 100.0.2 */ class Cart extends \Magento\Sales\Block\Adminhtml\Order\Create\Sidebar\AbstractSidebar { /** * Storage action on selected item * * @var string */ protected $_sidebarStorageAction = 'add_cart_item'; /** * Constructor * * @return void */ protected function _construct() { parent::_construct(); $this->setId('sales_order_create_sidebar_cart'); $this->setDataId('cart'); } /** * Get header text * * @return \Magento\Framework\Phrase */ public function getHeaderText() { return __('Shopping Cart'); } /** * Retrieve item collection * * @return mixed */ public function getItemCollection() { $collection = $this->getData('item_collection'); if ($collection === null) { $collection = $this->getCreateOrderModel()->getCustomerCart()->getAllVisibleItems(); $transferredItems = $this->getCreateOrderModel()->getSession()->getTransferredItems() ?? []; $transferredItems = $transferredItems[$this->getDataId()] ?? []; if (!empty($transferredItems)) { foreach ($collection as $key => $item) { if (in_array($item->getId(), $transferredItems)) { unset($collection[$key]); } } } $this->setData('item_collection', $collection); } return $collection; } /** * @inheritdoc * @since 102.0.1 */ public function getItemPrice(Product $product) { $customPrice = $this->getCartItemCustomPrice($product); return $customPrice !== null ? $this->convertPrice($customPrice) : $this->priceCurrency->format($product->getPriceInfo()->getPrice(FinalPrice::PRICE_CODE)->getValue()); } /** * Retrieve display item qty availability * * @return true */ public function canDisplayItemQty() { return true; } /** * Retrieve identifier of block item * * @param \Magento\Framework\DataObject $item * @return int */ public function getIdentifierId($item) { return $item->getId(); } /** * Retrieve product identifier linked with item * * @param \Magento\Quote\Model\Quote\Item $item * @return int */ public function getProductId($item) { return $item->getProduct()->getId(); } /** * Prepare layout * * Add button that clears customer's shopping cart * * @return $this */ protected function _prepareLayout() { $deleteAllConfirmString = __('Are you sure you want to delete all items from shopping cart?'); $this->addChild( 'empty_customer_cart_button', \Magento\Backend\Block\Widget\Button::class, [ 'label' => __('Clear Shopping Cart'), 'onclick' => 'order.clearShoppingCart(\'' . $deleteAllConfirmString . '\')' ] ); return parent::_prepareLayout(); } /** * Returns cart item custom price. * * @param Product $product * @return float|null */ private function getCartItemCustomPrice(Product $product): ?float { $items = $this->getItemCollection(); foreach ($items as $item) { $productItemId = $this->getProduct($item)->getId(); if ($productItemId === $product->getId() && $item->getCustomPrice()) { return (float)$item->getCustomPrice(); } } return null; } /** * @inheritdoc * @since 102.0.4 */ public function getItemCount() { $count = $this->getData('item_count'); if ($count === null) { $useQty = $this->_scopeConfig->getValue( 'checkout/cart_link/use_qty', ScopeInterface::SCOPE_STORE ); $allItems = $this->getItems(); if ($useQty) { $count = 0; foreach ($allItems as $item) { $count += $item->getQty(); } } else { $count = count($allItems); } $this->setData('item_count', $count); } return $count; } }