invoiceService = $invoiceService; } /** * @param OrderInterface $order * @param array $items * @param InvoiceCommentCreationInterface|null $comment * @param bool|false $appendComment * @param InvoiceCreationArgumentsInterface|null $arguments * @return InvoiceInterface * @SuppressWarnings(PHPMD.UnusedFormalParameter) * @since 100.1.2 */ public function create( OrderInterface $order, $items = [], InvoiceCommentCreationInterface $comment = null, $appendComment = false, InvoiceCreationArgumentsInterface $arguments = null ) { $invoiceItems = $this->itemsToArray($items); $invoice = $this->invoiceService->prepareInvoice($order, $invoiceItems); if ($comment) { $invoice->addComment( $comment->getComment(), $appendComment, $comment->getIsVisibleOnFront() ); } return $invoice; } /** * Convert Items To Array * * @param InvoiceItemCreationInterface[] $items * @return array */ private function itemsToArray($items = []) { $invoiceItems = []; foreach ($items as $item) { $invoiceItems[$item->getOrderItemId()] = $item->getQty(); } return $invoiceItems; } }