model->getEntries(); if (empty($entries)) { return []; } /** @var InvoiceItem[] $invoiceItems */ $invoiceItems = []; foreach ($entries as $entry) { $id = $this->calculateSumIdentifier($entry); if (null !== $entry->getFixedRate()) { $id = $id . '_fixed_' . (string) $entry->getFixedRate(); } else { $id = $id . '_hourly_' . (string) $entry->getHourlyRate(); } if (!isset($invoiceItems[$id])) { $invoiceItems[$id] = new InvoiceItem(); } $invoiceItem = $invoiceItems[$id]; $this->mergeInvoiceItems($invoiceItem, $entry); $this->mergeSumInvoiceItem($invoiceItem, $entry); } return array_values($invoiceItems); } /** * @param InvoiceItem $invoiceItem * @param InvoiceItemInterface $entry * @return void */ protected function mergeSumInvoiceItem(InvoiceItem $invoiceItem, InvoiceItemInterface $entry) /* : void */ { if (method_exists($this, 'mergeSumTimesheet')) { @trigger_error('mergeSumTimesheet() is deprecated and will be removed with 2.0 - use mergeSumInvoiceItem() instead', E_USER_DEPRECATED); $this->mergeSumTimesheet($invoiceItem, $entry); } } }