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

namespace Kufer\Web\KuferTools\Veranstalter\KursUebersicht\Ics;

class IcsAuswahlUseCase extends \Kufer\Web\KuferTools\Basis\Ics\IcsAuswahlUseCase
{
  public static function getToolId()
  {
    return \ToolsAPI::TOOL_KURSUEBERSICHT_VA;
  }

  public static function getToolSectionId()
  {
    return 622;
  }

  public function hasAccess($pToolSectionId = null)
  {
    if (!parent::hasAccess()) {
      return false;
    }
    if (!$this->isRechtAllowed('622.0.3') && !$this->isRechtAllowed('632.0.6')) {
      return false;
    }

    return true;
  }

  public function action()
  {
    $kurse = $this->getKurse();
    $this->setzeZeitraum($kurse[0]->beginn_dat, $kurse[0]->ende_dat);

    return $this->getResponse();
  }

  private function getKurse()
  {
    $dbwKurse = new \DBWorkKurseWT(1, true);

    return $dbwKurse->getKurseByKursnummern($this->request->kursnummern);
  }

  private function showKurstageNurVonEingeloggtemDozent()
  {
    $tool0Settings = \ToolSettingsAPI::getToolSettings(0);
    $dnr = $this->getDnr();

    return $tool0Settings->kurstageNurVonEingeloggtemDozent && $dnr > 0;
  }

  private function getDnr()
  {
    return \Kufer\Web\KuferTools\Veranstalter\Utils\VeranstalterUtils::getVeranstalterDnr();
  }

  protected function getResponse()
  {
    $this->response->kursnummern = $this->request->kursnummern;
    $this->response->kurstageNurVonEingeloggtemDozent = $this->showKurstageNurVonEingeloggtemDozent();

    return $this->response;
  }
}