Helper/Order.php
private function createOrderInvoice($order, $transactionId, $amount)
    {
        if ($order->getTotalInvoiced() + $amount == $order->getGrandTotal()) {
            $invoice = $this->invoiceService->prepareInvoice($order);
        } else {
            $invoice = $this->invoiceService->prepareInvoiceWithoutItems($order, $amount);
        }

        $invoice->setRequestedCaptureCase(Invoice::CAPTURE_OFFLINE);
        $invoice->setTransactionId($transactionId);
        $invoice->setBaseGrandTotal($amount);
        $invoice->setGrandTotal($amount);
        $invoice->register();
        $invoice->save();

        $order->addRelatedObject($invoice);

        if (!$invoice->getEmailSent()) {
            $this->invoiceSender->send($invoice);
        }

        //Add notification comment to order
        $order->addStatusHistoryComment(
            __('Invoice #%1 is created. Notification email is sent to customer.', $invoice->getId())
        )->setIsCustomerNotified(true)->save();

        return $invoice;
    }
private function createOrderInvoice($order, $transactionId, $amount)
    {
        if ($order->getTotalInvoiced() + $amount == $order->getGrandTotal()) {
            $invoice = $this->invoiceService->prepareInvoice($order);
        } else {
            $invoice = $this->invoiceService->prepareInvoiceWithoutItems($order, $amount);
        }

        $invoice->setRequestedCaptureCase(Invoice::CAPTURE_OFFLINE);
        $invoice->setTransactionId($transactionId);
        $invoice->setBaseGrandTotal($amount);
        $invoice->setGrandTotal($amount);
        $invoice->register();
        $invoice->save();

        $order->addRelatedObject($invoice);

        if (!$invoice->getEmailSent()) {
            $this->invoiceSender->send($invoice);
        }

        //Add notification comment to order
        $order->addStatusHistoryComment(
            __('Invoice #%1 is created. Notification email is sent to customer.', $invoice->getId())
        )->setIsCustomerNotified(true)->save();

        return $invoice;
    }
private function createOrderInvoice ( $ order , $ transactionId , $ amount ) { if ( $ order -> getTotalInvoiced ( ) + $ amount == $ order -> getGrandTotal ( ) ) { $ invoice = $ this -> invoiceService -> prepareInvoice ( $ order ) ; } else { $ invoice = $ this -> invoiceService -> prepareInvoiceWithoutItems ( $ order , $ amount ) ; } $ invoice -> setRequestedCaptureCase ( Invoice :: CAPTURE_OFFLINE ) ; $ invoice -> setTransactionId ( $ transactionId ) ; $ invoice -> setBaseGrandTotal ( $ amount ) ; $ invoice -> setGrandTotal ( $ amount ) ; $ invoice -> register ( ) ; $ invoice -> save ( ) ; $ order -> addRelatedObject ( $ invoice ) ; if ( ! $ invoice -> getEmailSent ( ) ) { $ this -> invoiceSender -> send ( $ invoice ) ; } //Add notification comment to order $ order -> addStatusHistoryComment ( __ ( 'Invoice #%1 is created. Notification email is sent to customer.' , $ invoice -> getId ( ) ) ) -> setIsCustomerNotified ( true ) -> save ( ) ; return $ invoice ; }
Create an invoice for the order.

@param OrderModel $order
@param string $transactionId
@param float $amount

@return bool
@throws \Exception
@throws LocalizedException
Create an invoice for the order .