![]() 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/app/code/Cnc/Catalog/ViewModel/ |
<?php /** * Copyright (c) 2020 Kaliop Digital Commerce (https://digitalcommerce.kaliop.com) All Rights Reserved. * https://opensource.org/licenses/OSL-3.0 Open Software License (OSL 3.0) * Cnc * Radosław Stępień <[email protected]> <[email protected]> */ namespace Cnc\Catalog\ViewModel; use Cnc\Catalog\Helper\Data; use Cnc\Catalog\Model\Product\Pdf\GenerateQrCode; use Cnc\Catalog\Model\Product\States; use Endroid\QrCode\Exception\ValidationException; use Magento\Catalog\Helper\Image; use Magento\Catalog\Model\Product; use Magento\Framework\Exception\NoSuchEntityException; use Magento\Framework\View\Element\Block\ArgumentInterface; class PdfPrint implements ArgumentInterface { /** @var GenerateQrCode */ private $qrCodeGenerator; /** @var Image */ private $imageHelper; /** @var States */ private $productStates; /** @var Data */ private $cncCatalogHelper; /** * PdfPrint constructor. * @param GenerateQrCode $qrCodeGenerator * @param Image $imageHelper * @param States $productStates * @param Data $cncCatalogHelper */ public function __construct( GenerateQrCode $qrCodeGenerator, Image $imageHelper, States $productStates, Data $cncCatalogHelper ) { $this->qrCodeGenerator = $qrCodeGenerator; $this->imageHelper = $imageHelper; $this->productStates = $productStates; $this->cncCatalogHelper = $cncCatalogHelper; } /** * @param Product $product * @return mixed * @throws ValidationException * @throws NoSuchEntityException */ public function getProductQrCode(Product $product) { return $this->qrCodeGenerator->getQrCode($product); } /** * @param Product $product * @return Image */ public function getProductImage(Product $product) { return $this->imageHelper->init($product, 'product_base_image'); } /** * @param Product $product * @return string */ public function getPurchaseOptions(Product $product) { $purchaseOptionsHtml = ''; $associatedProducts = $product->getTypeInstance()->getAssociatedProducts($product); if (is_array($associatedProducts) && count($associatedProducts)) { $purchaseOptionsHtml = '<table><tr> <th>' . __('Product condition') . '</th> <th>' . __('Availability') . '</th> </tr>'; foreach ($associatedProducts as $associatedProduct) { $purchaseOptionsHtml .= '<tr><td>' . $this->cncCatalogHelper->getAttributeText($associatedProduct, 'cnc_state_of_wear') . '</td><td>' . $this->cncCatalogHelper->getAttributeText($associatedProduct, 'cnc_availability_icon') . '</td></tr>'; } $purchaseOptionsHtml .= '</table>'; } return $purchaseOptionsHtml; } }