![]() 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/old/vendor/magento/module-bundle/Block/Adminhtml/Sales/Order/View/Items/ |
<?php /** * Copyright © Magento, Inc. All rights reserved. * See COPYING.txt for license details. */ namespace Magento\Bundle\Block\Adminhtml\Sales\Order\View\Items; use Magento\Catalog\Helper\Data as CatalogHelper; use Magento\Catalog\Model\Product\Type\AbstractType; use Magento\Framework\App\ObjectManager; use Magento\Framework\Serialize\Serializer\Json; /** * Adminhtml sales order item renderer * * @api * @since 100.0.2 */ class Renderer extends \Magento\Sales\Block\Adminhtml\Order\View\Items\Renderer\DefaultRenderer { /** * @var Json */ private $serializer; /** * @param \Magento\Backend\Block\Template\Context $context * @param \Magento\CatalogInventory\Api\StockRegistryInterface $stockRegistry * @param \Magento\CatalogInventory\Api\StockConfigurationInterface $stockConfiguration * @param \Magento\Framework\Registry $registry * @param \Magento\GiftMessage\Helper\Message $messageHelper * @param \Magento\Checkout\Helper\Data $checkoutHelper * @param array $data * @param \Magento\Framework\Serialize\Serializer\Json $serializer * @param CatalogHelper|null $catalogHelper */ public function __construct( \Magento\Backend\Block\Template\Context $context, \Magento\CatalogInventory\Api\StockRegistryInterface $stockRegistry, \Magento\CatalogInventory\Api\StockConfigurationInterface $stockConfiguration, \Magento\Framework\Registry $registry, \Magento\GiftMessage\Helper\Message $messageHelper, \Magento\Checkout\Helper\Data $checkoutHelper, array $data = [], Json $serializer = null, ?CatalogHelper $catalogHelper = null ) { $this->serializer = $serializer ?? ObjectManager::getInstance()->get(Json::class); $data['catalogHelper'] = $catalogHelper ?? ObjectManager::getInstance()->get(CatalogHelper::class); parent::__construct( $context, $stockRegistry, $stockConfiguration, $registry, $messageHelper, $checkoutHelper, $data ); } /** * Truncate string * * @param string $value * @param int $length * @param string $etc * @param string $remainder * @param bool $breakWords * @return string */ public function truncateString($value, $length = 80, $etc = '...', &$remainder = '', $breakWords = true) { return $this->filterManager->truncate( $value, ['length' => $length, 'etc' => $etc, 'remainder' => $remainder, 'breakWords' => $breakWords] ); } /** * Get is shipment separately. * * @param null|object $item * @return bool * @SuppressWarnings(PHPMD.CyclomaticComplexity) */ public function isShipmentSeparately($item = null) { if ($item) { $parentItem = $item->getParentItem(); if ($parentItem) { $options = $parentItem->getProductOptions(); if ($options) { return (isset($options['shipment_type']) && $options['shipment_type'] == AbstractType::SHIPMENT_SEPARATELY); } } else { $options = $item->getProductOptions(); if ($options) { return !(isset($options['shipment_type']) && $options['shipment_type'] == AbstractType::SHIPMENT_SEPARATELY); } } } $options = $this->getItem()->getProductOptions(); if ($options) { if (isset($options['shipment_type']) && $options['shipment_type'] == AbstractType::SHIPMENT_SEPARATELY) { return true; } } return false; } /** * Get is child calculated. * * @param null|object $item * @return bool * @SuppressWarnings(PHPMD.CyclomaticComplexity) */ public function isChildCalculated($item = null) { if ($item) { $parentItem = $item->getParentItem(); if ($parentItem) { $options = $parentItem->getProductOptions(); if ($options) { return (isset($options['product_calculations']) && $options['product_calculations'] == AbstractType::CALCULATE_CHILD); } } else { $options = $item->getProductOptions(); if ($options) { return !(isset($options['product_calculations']) && $options['product_calculations'] == AbstractType::CALCULATE_CHILD); } } } $options = $this->getItem()->getProductOptions(); if ($options) { if (isset($options['product_calculations']) && $options['product_calculations'] == AbstractType::CALCULATE_CHILD ) { return true; } } return false; } /** * Return selection attributes. * * @param mixed $item * @return mixed */ public function getSelectionAttributes($item) { if ($item instanceof \Magento\Sales\Model\Order\Item) { $options = $item->getProductOptions(); } else { $options = $item->getOrderItem()->getProductOptions(); } if (isset($options['bundle_selection_attributes'])) { return $this->serializer->unserialize($options['bundle_selection_attributes']); } return null; } /** * Return order options. * * @return array */ public function getOrderOptions() { $result = []; $options = $this->getItem()->getProductOptions(); if ($options) { if (isset($options['options'])) { $result = array_merge($result, $options['options']); } if (isset($options['additional_options'])) { $result = array_merge($result, $options['additional_options']); } if (!empty($options['attributes_info'])) { $result = array_merge($options['attributes_info'], $result); } } return $result; } /** * Return value html. * * @param object $item * @return string */ public function getValueHtml($item) { $result = $this->escapeHtml($item->getName()); if (!$this->isShipmentSeparately($item)) { $attributes = $this->getSelectionAttributes($item); if ($attributes) { $result = (float) $attributes['qty'] . ' x ' . $result; } } if (!$this->isChildCalculated($item)) { $attributes = $this->getSelectionAttributes($item); if ($attributes) { $result .= " " . $this->getItem()->getOrder()->formatBasePrice($attributes['price']); } } return $result; } /** * Return can show price. * * @param object $item * @return bool */ public function canShowPriceInfo($item) { if ($item->getParentItem() && $this->isChildCalculated() || !$item->getParentItem() && !$this->isChildCalculated() ) { return true; } return false; } }