Magento 2 Invoice Items Collection

invoicemagento2

Which class::method() is responsible for Invoice Items Collection in the Invoice to Items Selection in the New Invoice page?
I just want to make some custom filter in this collection.
Can anyone guide me please.

Best Answer

public function __construct(
    \Magento\Sales\Model\Order\InvoiceRepositoryFactory $invoiceRepositoryFactory,
    \Magento\Framework\Api\SearchCriteriaInterface $searchCriteria        
) {

     $this->invoiceRepositoryFactory = $invoiceRepositoryFactory;
    $this->searchCriteria = $searchCriteria;
}


/**
 * @return $this
 */
public function execute()
{
    $this->searchCriteria->setFilterGroups();
    $invoiceRepo = $this->invoiceRepositoryFactory->create();
    $invoiceRepoCollection = $invoiceRepo->getList($this->searchCriteria);
    $items = $invoiceRepoCollection->getItems();
    print_r($invoiceRepoCollection->getSize());
    foreach ($items as $item) {
        print_r($item->getData());
    }
}

or

Using Repository interface

Magento\Sales\Api\InvoiceRepositoryInterface::getList

Another way is

Magento\Sales\Model\ResourceModel\Order\Invoice\CollectionFactory

check this link How to get Invoice collection magento 2?

Related Topic