/** * Initialize model comments and return comment collection * * @return \Magento\Sales\Model\ResourceModel\Order\Comment\Collection\AbstractCollection * @throws \Magento\Framework\Exception\LocalizedException */ public function getComments() { if ($this->_commentCollection === null) { $entity = $this->getEntity(); if ($entity instanceof \Magento\Sales\Model\Order\Invoice) { $this->_commentCollection = $this->_invoiceCollectionFactory->create(); } elseif ($entity instanceof \Magento\Sales\Model\Order\Creditmemo) { $this->_commentCollection = $this->_memoCollectionFactory->create(); } elseif ($entity instanceof \Magento\Sales\Model\Order\Shipment) { $this->_commentCollection = $this->_shipmentCollectionFactory->create(); } else { throw new \Magento\Framework\Exception\LocalizedException(__('We found an invalid entity model.')); } $this->_commentCollection->setParentFilter($entity)->setCreatedAtOrder()->addVisibleOnFrontFilter(); } return $this->_commentCollection; }
/** * Return invoice comments * * @return \Magento\Sales\Api\Data\InvoiceCommentInterface[]|null */ public function getComments() { if ($this->getData(InvoiceInterface::COMMENTS) === null && $this->getId()) { $collection = $this->_commentCollectionFactory->create()->setInvoiceFilter($this->getId()); foreach ($collection as $comment) { $comment->setInvoice($this); } $this->setData(InvoiceInterface::COMMENTS, $collection->getItems()); } return $this->getData(InvoiceInterface::COMMENTS); }