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
Post a Comment