Exemple #1
0
 /**
  * @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;
 }