protected function display() { if (Tools::isConnectedUser()) { // only teamMembers & observers can access this page if (0 == $this->teamid || $this->session_user->isTeamCustomer($this->teamid)) { $this->smartyHelper->assign('accessDenied', TRUE); } else { // use the servicecontractid set in the form, if not defined (first page call) use session servicecontractid $servicecontractid = 0; if (isset($_POST['servicecontractid'])) { $servicecontractid = Tools::getSecurePOSTIntValue('servicecontractid'); $_SESSION['servicecontractid'] = $servicecontractid; } else { if (isset($_GET['servicecontractid'])) { $servicecontractid = Tools::getSecureGETIntValue('servicecontractid'); $_SESSION['servicecontractid'] = $servicecontractid; } else { if (isset($_SESSION['servicecontractid'])) { $servicecontractid = $_SESSION['servicecontractid']; } } } // set TeamList (including observed teams) $oTeamList = $this->session_user->getObservedTeamList(); $mTeamList = $this->session_user->getManagedTeamList(); $teamList = $oTeamList + $mTeamList; // array_merge does not work ?! if (empty($teamList) || !array_key_exists($this->teamid, $teamList)) { // only managers (and observers) can access this page. return; } $isManager = $this->session_user->isTeamManager($this->teamid); $isObserver = $this->session_user->isTeamObserver($this->teamid); if ($isManager || $isObserver) { $this->smartyHelper->assign('isManager', true); } $this->smartyHelper->assign('servicecontracts', ServiceContractTools::getServiceContracts($this->teamid, $servicecontractid)); if (0 != $servicecontractid) { $servicecontract = ServiceContractCache::getInstance()->getServiceContract($servicecontractid); if ($this->teamid == $servicecontract->getTeamid()) { $this->smartyHelper->assign('servicecontractid', $servicecontractid); // get selected filters $selectedFilters = ""; if (isset($_GET['selectedFilters'])) { $selectedFilters = Tools::getSecureGETStringValue('selectedFilters'); } else { $selectedFilters = $this->session_user->getServiceContractFilters($servicecontractid); } ServiceContractTools::displayServiceContract($this->smartyHelper, $servicecontract, $isManager || $isObserver, $selectedFilters); // ConsistencyCheck $consistencyErrors = $this->getConsistencyErrors($servicecontract); if (0 != $consistencyErrors) { $this->smartyHelper->assign('ccheckButtonTitle', count($consistencyErrors) . ' ' . T_("Errors")); $this->smartyHelper->assign('ccheckBoxTitle', count($consistencyErrors) . ' ' . T_("Errors")); $this->smartyHelper->assign('ccheckErrList', $consistencyErrors); } // access rights if ($isManager || $this->session_user->isTeamLeader($servicecontract->getTeamid())) { $this->smartyHelper->assign('isEditGranted', true); } // old-style plugins (deprecated) $this->smartyHelper->assign('detailedChargesIndicatorFile', DetailedChargesIndicator::getSmartyFilename()); // Dashboard ServiceContractTools::dashboardSettings($this->smartyHelper, $servicecontract, $this->session_userid); } } else { unset($_SESSION['cmdid']); unset($_SESSION['commandsetid']); $action = filter_input(INPUT_POST, 'action'); if ('displayServiceContract' == $action) { header('Location:servicecontract_edit.php?servicecontractid=0'); } } } } }