/** * @param int $ticketId * @return array * @throws NotFoundException */ public function getTicketData($ticketId) { /** * @var Logger $logger */ $expenseDao = new Expenses($this->getServiceLocator(), '\\ArrayObject'); $expenseItemDao = new ExpenseItem($this->getServiceLocator(), '\\ArrayObject'); $expenseTransactionDao = new ExpenseTransactions($this->getServiceLocator(), '\\ArrayObject'); $logger = $this->getServiceLocator()->get('ActionLogger'); $expenseData = $expenseDao->getTicketData($ticketId); if (!$expenseData) { throw new NotFoundException('Purchase order not found.'); } if (!empty($expenseData['expected_completion_date_start']) && !empty($expenseData['expected_completion_date_end'])) { $expectedCompletionDate = date(Constants::GLOBAL_DATE_FORMAT, strtotime($expenseData['expected_completion_date_start'])) . ' - ' . date(Constants::GLOBAL_DATE_FORMAT, strtotime($expenseData['expected_completion_date_end'])); } else { $expectedCompletionDate = NULL; } $result = []; $logger->setOutputFormat(Logger::OUTPUT_HTML); if ($expenseData) { $result['ticket'] = ['id' => $expenseData['id'], 'ticket_creator_id' => $expenseData['creator_id'], 'ticket_creator' => $expenseData['ticket_creator'], 'currency_id' => $expenseData['currency_id'], 'currency' => $expenseData['currency'], 'date_created' => $expenseData['date_created'], 'title' => $expenseData['title'], 'purpose' => $expenseData['purpose'], 'ticket_manager' => $expenseData['manager_id'], 'limit' => $expenseData['limit'], 'expected_completion_date' => $expectedCompletionDate, 'ticket_balance' => $expenseData['ticket_balance'], 'deposit_balance' => $expenseData['deposit_balance'], 'item_balance' => $expenseData['item_balance'], 'transaction_balance' => $expenseData['transaction_balance'], 'status' => $expenseData['status'], 'finance_status' => $expenseData['finance_status'], 'budget' => $expenseData['budget_id'], 'comment' => $logger->get(Logger::MODULE_EXPENSE, $expenseData['id'])]; } $result['itemCount'] = $expenseItemDao->getCount(['expense_id' => $ticketId])['count']; $result['transactionCount'] = $expenseTransactionDao->getCount(['expense_id' => $ticketId, 'status' => Expense::STATUS_NORMAL])['count']; return $result; }