app->l11nManager, $request, $response); $view->setTemplate('/Modules/HumanResourceTimeRecording/Theme/Backend/dashboard'); $view->addData('nav', $this->app->moduleManager->get('Navigation')->createNavigationMid(1006301001, $request, $response)); /** @var \Modules\HumanResourceTimeRecording\Models\Session[] $list */ $list = SessionMapper::getLastSessionsFromAllEmployees(); $view->addData('sessions', $list); return $view; } /** * Routing end-point for application behaviour. * * @param RequestAbstract $request Request * @param ResponseAbstract $response Response * @param mixed $data Generic data * * @return RenderableInterface * * @since 1.0.0 * @codeCoverageIgnore */ public function viewPrivateDashboard(RequestAbstract $request, ResponseAbstract $response, mixed $data = null) : RenderableInterface { $view = new View($this->app->l11nManager, $request, $response); $view->setTemplate('/Modules/HumanResourceTimeRecording/Theme/Backend/private-dashboard'); $view->addData('nav', $this->app->moduleManager->get('Navigation')->createNavigationMid(1006303001, $request, $response)); /** @var \Modules\HumanResourceManagement\Models\Employee $employee */ $employee = EmployeeMapper::get() ->with('profile') ->with('profile/account') ->where('profile/account', $request->header->account) ->execute(); /** @var \Modules\HumanResourceTimeRecording\Models\Session $lastOpenSession */ $lastOpenSession = SessionMapper::getMostPlausibleOpenSessionForEmployee($employee->getId()); $start = new SmartDateTime('now'); $start = $start->getEndOfDay(); $limit = $start->getEndOfMonth(); $limit->smartModify(0, -2, 0); $list = SessionMapper::getAll() ->where('employee', $employee->getId()) ->where('createdAt', $start->format('Y-m-d H:i:s'), '<=') ->sort('id', OrderType::DESC) ->execute(); $view->addData('sessions', $list); $view->addData('lastSession', $lastOpenSession); $view->addData('date', $limit); return $view; } /** * Routing end-point for application behaviour. * * @param RequestAbstract $request Request * @param ResponseAbstract $response Response * @param mixed $data Generic data * * @return RenderableInterface * * @since 1.0.0 * @codeCoverageIgnore */ public function viewPrivateSession(RequestAbstract $request, ResponseAbstract $response, mixed $data = null) : RenderableInterface { $view = new View($this->app->l11nManager, $request, $response); $view->setTemplate('/Modules/HumanResourceTimeRecording/Theme/Backend/private-session'); $view->addData('nav', $this->app->moduleManager->get('Navigation')->createNavigationMid(1006303001, $request, $response)); /** @var \Modules\HumanResourceTimeRecording\Models\Session $session */ $session = SessionMapper::get()->where('id', (int) $request->getData('id'))->execute(); /** @var \Modules\HumanResourceManagement\Models\Employee $employee */ $employee = EmployeeMapper::get() ->with('profile') ->with('profile/account') ->where('profile/account', $request->header->account) ->execute(); if ($session->employee->getId() !== $employee->getId()) { $view->addData('session', new NullSession()); } else { $view->addData('session', $session); } return $view; } /** * Routing end-point for application behaviour. * * @param RequestAbstract $request Request * @param ResponseAbstract $response Response * @param mixed $data Generic data * * @return RenderableInterface * * @since 1.0.0 * @codeCoverageIgnore */ public function viewHRStats(RequestAbstract $request, ResponseAbstract $response, mixed $data = null) : RenderableInterface { $view = new View($this->app->l11nManager, $request, $response); $view->setTemplate('/Modules/HumanResourceTimeRecording/Theme/Backend/hr-stats'); $view->addData('nav', $this->app->moduleManager->get('Navigation')->createNavigationMid(1006301001, $request, $response)); /** @var \Modules\HumanResourceTimeRecording\Models\Session[] $list */ $list = SessionMapper::getLastSessionsFromAllEmployees(); $view->addData('sessions', $list); return $view; } }