<?php
/**
 * @copyright (c) Kufer Software GmbH, Loisachstrasse 4, D-84453 Mühldorf
 */

namespace Kufer\KuferTools\Veranstalter\KursUebersicht\KursUebersicht;


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

  public static function getToolSectionId()
  {
    return 622;
  }

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

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

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

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

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

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

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

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

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

    if (\DBWorkBASysSettings::isSalzburgBildungswerk()) {
      $buttons[] = array(new \Kufer\KuferTools\Basis\Button\HtmlButton('Veranstaltung nachmelden', 'kursvorschlagNachreichen', 'index.php?&tool_id=52&action=kursvorschlagNachreichen&einstieg=1', 'edit', 'Kurs nachreichen'));
    }

    $anzahlEintraege = count($this->response->kurse);
    $this->addFilterButton($buttons, $buttonFactory, $anzahlEintraege, 'Filter');

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

    return $buttons;
  }

  
  private function showTeilnehmerButton()
  {
    $pageId = self::getToolSectionId(); 
    
    
    return ($this->isRechtAllowed($pageId . '.0.2')
            && \ToolsAPI::rechteOR(array('620.0.2', '620.0.4', '620.0.6', '620.0.8', '620.0.10'), $this->getToolId()));
  }

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

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

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

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

    return $this->isRechtAllowed($pageId . '.0.1')
            && \ToolsAPI::rechteOR(array('632.1.1', '632.1.2', '632.1.3', '632.1.4', '632.1.5', '632.1.6', '632.1.7', '632.1.8', '632.1.9'), $this->getToolId());
  }
}

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

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