Exemplo n.º 1
0
 /**
  * Initialize model comments and return comment collection
  *
  * @return \Magento\Sales\Model\Resource\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;
 }
Exemplo n.º 2
0
 /**
  * Return invoice comments
  *
  * @return \Magento\Sales\Api\Data\InvoiceCommentInterface[]
  */
 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);
 }
Exemplo n.º 3
0
 /**
  * @param bool $reload
  * @return \Magento\Sales\Model\Resource\Order\Invoice\Comment\Collection
  */
 public function getCommentsCollection($reload = false)
 {
     if (is_null($this->_comments) || $reload) {
         $this->_comments = $this->_commentCollectionFactory->create()->setInvoiceFilter($this->getId())->setCreatedAtOrder();
         /**
          * When invoice created with adding comment, comments collection
          * must be loaded before we added this comment.
          */
         $this->_comments->load();
         if ($this->getId()) {
             foreach ($this->_comments as $comment) {
                 $comment->setInvoice($this);
             }
         }
     }
     return $this->_comments;
 }