* @license http://opensource.org/licenses/osl-3.0.php Open Software License (OSL 3.0) * @link http://www.temando.com/ */ class PickupItemRenderer extends AbstractItems { /** * Core string * * @var StringUtils */ private $string; /** * @param Context $context * @param Registry $registry * @param Data $taxData * @param Filesystem $filesystem * @param FilterManager $filterManager * @param StringUtils $string * @param AbstractResource $resource * @param AbstractDb $resourceCollection * @param array $data */ public function __construct( Context $context, Registry $registry, Data $taxData, Filesystem $filesystem, FilterManager $filterManager, StringUtils $string, AbstractResource $resource = null, AbstractDb $resourceCollection = null, array $data = [] ) { $this->string = $string; parent::__construct( $context, $registry, $taxData, $filesystem, $filterManager, $resource, $resourceCollection, $data ); } /** * Draw item line * * @return void * @throws LocalizedException */ public function draw() { $item = $this->getItem(); $pdf = $this->getPdf(); $page = $this->getPage(); $lines = []; // draw Product name $lines[0] = [['text' => $this->string->split($item->getData('name'), 60, true, true), 'feed' => 100]]; // draw QTY $lines[0][] = ['text' => $item->getData('qty') * 1, 'feed' => 35]; // draw SKU $lines[0][] = [ 'text' => $this->string->split($this->getSku($item), 25), 'feed' => 565, 'align' => 'right', ]; // Custom options $options = $this->getItemOptions(); if ($options) { foreach ($options as $option) { // draw options label $lines[][] = [ 'text' => $this->string->split($this->filterManager->stripTags($option['label']), 70, true, true), 'font' => 'italic', 'feed' => 110, ]; // draw options value if ($option['value']) { $printValue = isset( $option['print_value'] ) ? $option['print_value'] : $this->filterManager->stripTags( $option['value'] ); $values = explode(', ', $printValue); foreach ($values as $value) { $lines[][] = ['text' => $this->string->split($value, 50, true, true), 'feed' => 115]; } } } } $lineBlock = ['lines' => $lines, 'height' => 20]; $page = $pdf->drawLineBlocks($page, [$lineBlock], ['table_header' => true]); $this->setPage($page); } }