/** * @todo: in thin method we can get also a files, that doesn't written in DB if any exists * * @param array $itemIdList * @return array */ public function getItemAttachmentListForPreview($itemIdList) { /** * @var ExpenseItemAttachments $attachmentsDao * @var \DDD\Domain\Finance\Expense\ExpenseItemAttachments $attachment */ $attachmentsDao = $this->getServiceLocator()->get('dao_finance_expense_expense_item_attachments'); $attachmentList = []; if (count($itemIdList)) { $attachmentsDomain = $attachmentsDao->getAttachmentsForPreview($itemIdList); if ($attachmentsDomain->count()) { foreach ($attachmentsDomain as $attachment) { $filePath = $this->getExpenseItemImagePath($attachment->getExpenseId(), $attachment->getItemId(), $attachment->getFilename(), $attachment->getDateCreatedNeededFormat()); if (is_readable($filePath)) { $filesize = Helper::humanFilesize(filesize($filePath)); $extension = pathinfo($attachment->getFilename(), PATHINFO_EXTENSION); $attachmentList[$attachment->getItemId()] = ['id' => $attachment->getId(), 'name' => $attachment->getFilename(), 'size' => $filesize, 'path' => $filePath, 'extension' => $extension, 'isImage' => in_array(strtolower($extension), ['png', 'jpg', 'jpeg', 'gif']) ? 1 : 0]; } } } } return $attachmentList; }