<?php
/**
 * @copyright (c) Kufer Software GmbH, Oderstraße 7, D-84453 Mühldorf
 */

namespace Kufer\Web\KuferTools\Mitarbeiter\KursUebersicht\KursUebersicht;


class KursUebersichtUseCase extends \Kufer\Web\KuferTools\Basis\KursUebersicht\KursUebersichtUseCase
{
  public function __construct($request)
  {
    parent::__construct($request, new KursUebersichtResponse());
  }

  public static function getToolSectionId()
  {
    return 26;
  }

  public static function getToolId()
  {
    return \ToolsAPI::TOOL_KURSPLANUNG_MA; 
  }

  protected function getAlleIds()
  {
    $kurshelper = $this->getKursHelper();
    $sortKriterien = $this->getSortKriterien();

    return $kurshelper->getIdsMitFilter($this->getToolId(), $this->request->suchParameter, $this->request->einstieg, false, $sortKriterien);
  }

  
  

  
  protected function displayTitel($pVonDate = '', $pBisDate = '')
  {
    if ($pVonDate == '' || $pBisDate == '') {
      return 'Übersicht Ihrer ' . $this->response->sprachSettings->Kurs['Plural']['Genitiv'];
    }

    return 'Übersicht Ihrer ' . $this->response->sprachSettings->Kurs['Plural']['Genitiv'] . ' im Zeitraum von ' . $pVonDate . ' bis ' . $pBisDate;
  }

  
  protected function getButtons()
  {
    $beschriftung = new \ButtonBeschriftung_MaKursUebersicht();
    $buttonFactory = new \Kufer\Web\KuferTools\Basis\Button\ButtonFactory();
    $buttons = array();

    if ($this->showListenButton() && $this->datensaetzeVorhanden()) {
      $text = $beschriftung->getBeschriftung($beschriftung::BUTTON_LISTEN, $this->toolSettings);
      $buttons[] = array($buttonFactory->getKursPdfListenButton($text));
    }
    if ($this->showTeilnehmerButton() && $this->datensaetzeVorhanden()) {
      $text = $beschriftung->getBeschriftung($beschriftung::BUTTON_TEILNEHMER, $this->toolSettings);
      $buttons[] = array($buttonFactory->getTeilnehmerPdfListenButton($text));
    }

    if ($this->showIcsButton() && $this->datensaetzeVorhanden()) {
      $buttons[] = array($buttonFactory->getTermineIcsButton());
    }

    if ($this->showMarkierenButton() && $this->datensaetzeVorhanden()) {
      $text = $beschriftung->getBeschriftung($beschriftung::BUTTON_MARKIEREN, $this->toolSettings);
      $buttons[] = array($buttonFactory->getMarkierenButton($text));
    }

    $anzahlEintraege = count($this->response->kurse);
    
    $text = $beschriftung->getBeschriftung($beschriftung::BUTTON_FILTER, $this->toolSettings);
    $this->addFilterButton($buttons, $buttonFactory, $anzahlEintraege, $text);

    if ($this->datensaetzeVorhanden()) {
      $buttons[] = array($buttonFactory->getSortierenButton());
    }

    return $buttons;
  }

  
  private function showTeilnehmerButton()
  {
    $pageId = self::getToolSectionId(); 
    
    
    return ($this->isRechtAllowed($pageId . '.0.2')
            && \ToolsAPI::rechteOR(array('243.0.2', '243.0.4', '243.0.6', '243.0.8', '243.0.10'), $this->getToolId()));
  }

  private function showMarkierenButton()
  {
    return $this->checkboxNeeded();
  }

  private function showIcsButton()
  {
    return $this->isRechtAllowed('26.0.4');
  }

  protected function checkboxNeeded()
  {
    return $this->showTeilnehmerButton() || $this->showIcsButton();
  }

  protected function verlinkePanelHeaderAllowed()
  {
    $pageId = self::getToolSectionId(); 

    return $this->isRechtAllowed($pageId . '.0.1')
            && \ToolsAPI::rechteOR(array('377.1.1', '377.1.2', '377.1.3', '377.1.4', '377.1.5', '377.1.6', '377.1.7', '377.1.8', '377.1.9', '377.1.10'), $this->getToolId());
  }

  
  private function showListenButton()
  {
    return (\ToolsAPI::rechteOR(array('757.0.2', '757.0.12'), $this->getToolId()));
  }
}

class KursUebersichtRequest extends \Kufer\Web\KuferTools\Basis\KursUebersicht\KursUebersichtRequest
{
}

class KursUebersichtResponse extends \Kufer\Web\KuferTools\Basis\KursUebersicht\KursUebersichtResponse
{
}