How to Get Invoice Comments List Programmatically in Magento 2

 Steps to Get Invoice Comments List Programmatically in Magento 2:

Step 1: First, create an Invoicecomments.php file inside the Model folder.


app\code\Vendor\Extension\Model


Now, add the code as follows


<?php

namespace Vendor\Extension\Model;

 

use Magento\Sales\Api\InvoiceManagementInterface;

use Magento\Framework\Exception\NoSuchEntityException;

use Magento\Sales\Api\Data\InvoiceCommentSearchResultInterface;

class Invoicecomments

{

    private $invoice;

    public function __construct(

        InvoiceManagementInterface $invoice

    ) {

        $this->invoice = $invoice;

    }

    

    public function getInvoiceComments($invoiceId): ?InvoiceCommentSearchResultInterface

    {

           $invoiceComments = null;

        try {

            $invoiceComments = $this->invoice->getCommentsList($invoiceId);

        } catch (NoSuchEntityException $exception) {

            throw new Exception($exception->getMessage());

        }

        return $invoiceComments;

    }

}

Step 2: Call the method with a required parameter in the second step.


$invoiceId = 1; // Invoice id

$objectManager = \Magento\Framework\App\ObjectManager::getInstance();

$invoicecommentObj = $objectManager->create('Vendor\Extension\Model\Invoicecomments')

$invoiceComments = $invoicecommentObj->getInvoiceComments($invoiceId);

if ($invoiceComments->getTotalCount())

{

       foreach($invoiceComment as $comment)

       {

            echo "<pre>";

            print_r($comment);

       }

}


Comments

Popular posts from this blog

Add Admin User name and Action name in Order Comment Section through Action Performed from Sales Order Grid in Magento 2

How to Update Product Stock Programmatically in Magento 2

How to Set and Get Cookie in Magento 2