paymentHelper = $paymentHelper; $this->coreRegistry = $registry; $this->addressRenderer = $addressRenderer; parent::__construct($context, $data); } /** * Load all tracks and save it to local cache by shipments * * @return $this */ protected function _beforeToHtml() { $tracksCollection = $this->getOrder()->getTracksCollection(); foreach ($tracksCollection->getItems() as $track) { $shipmentId = $track->getParentId(); $this->tracks[$shipmentId][] = $track; } $shipment = $this->coreRegistry->registry('current_shipment'); if ($shipment) { $this->shipmentsCollection = [$shipment]; } else { $this->shipmentsCollection = $this->getOrder()->getShipmentsCollection(); } return parent::_beforeToHtml(); } /** * @return void */ protected function _prepareLayout() { $this->pageConfig->getTitle()->set(__('Order # %1', $this->getOrder()->getRealOrderId())); $infoBlock = $this->paymentHelper->getInfoBlock($this->getOrder()->getPayment(), $this->getLayout()); $this->setChild('payment_info', $infoBlock); } /** * @return string */ public function getBackUrl() { return $this->getUrl('*/*/history'); } /** * @return string */ public function getPrintUrl() { return $this->getUrl('*/*/print'); } /** * @return string */ public function getPaymentInfoHtml() { return $this->getChildHtml('payment_info'); } /** * @return array|null */ public function getOrder() { return $this->coreRegistry->registry('current_order'); } /** * @return array|null */ public function getShipment() { return $this->coreRegistry->registry('current_shipment'); } /** * @param AbstractBlock $renderer * @return $this */ protected function _prepareItem(AbstractBlock $renderer) { $renderer->setPrintStatus(true); return parent::_prepareItem($renderer); } /** * Retrieve order shipments collection * * @return array|\Magento\Sales\Model\ResourceModel\Order\Shipment\Collection */ public function getShipmentsCollection() { return $this->shipmentsCollection; } /** * Getter for order tracking numbers collection per shipment * * @param \Magento\Sales\Model\Order\Shipment $shipment * @return array */ public function getShipmentTracks($shipment) { $tracks = []; if (!empty($this->tracks[$shipment->getId()])) { $tracks = $this->tracks[$shipment->getId()]; } return $tracks; } /** * Getter for shipment address by format * * @param \Magento\Sales\Model\Order\Shipment $shipment * @return string */ public function getShipmentAddressFormattedHtml($shipment) { $shippingAddress = $shipment->getShippingAddress(); if (!$shippingAddress instanceof \Magento\Sales\Model\Order\Address) { return ''; } return $this->addressRenderer->format($shippingAddress, 'html'); } /** * Getter for billing address of order by format * * @param \Magento\Sales\Model\Order $order * @return string */ public function getBillingAddressFormattedHtml($order) { $billingAddress = $order->getBillingAddress(); if (!$billingAddress instanceof \Magento\Sales\Model\Order\Address) { return ''; } return $this->addressRenderer->format($billingAddress, 'html'); } /** * Getter for billing address of order by format * * @param \Magento\Sales\Model\Order\Shipment $shipment * @return array */ public function getShipmentItems($shipment) { $res = []; foreach ($shipment->getItemsCollection() as $item) { if (!$item->getOrderItem()->getParentItem()) { $res[] = $item; } } return $res; } }