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

namespace Kufer\Web\KuferTools\Firma\KursUebersicht\TermineUebersicht;

class TermineUebersichtPresenter extends \Kufer\Web\KuferTools\Basis\Uebersicht\UebersichtMitWssPresenter
{
  protected function getBlaetternAction()
  {
    return 'termineuebersicht';
  }

  protected function getJsFilesSrcAryWeitere(): array
  {
    $js = parent::getJsFilesSrcAryWeitere();
    $js[] = $this->getJsFileFromSys('kursuebersicht.js');

    return $js;
  }

  protected function getDatamodulFuerUeberschriftszeile()
  {
    $dbwkt = \DBWorkKurseTage::getDefaultInstance();
    $kurstag = $dbwkt->getNewObject();
    $kurstag->belegung = new \Belegung(); 

    return $kurstag;
  }

  protected function getPanelTitleLink($kurstag)
  {
    $referer = urlencode($this->getAktuelleURLRelativeMitParams());
    $refererLabel = urlencode(\StringOperations::htmlentities('Zurück zur Termine Übersicht'));

    return 'index.php?tool_id=21&action=kursdetails&knr=' . $kurstag->knr . '&belid=' . $kurstag->belegung->id . '&referer=' . $referer . '&refererLabel=' . $refererLabel;
  }

  protected function getPanelTitle($belegung)
  {
    return $belegung->kurs->nr_anzeige . ' - ' . $belegung->kurs->kurzbez;
  }

  protected function getPanelTitleHinweis()
  {
    return 'Zu den ' . $this->useCaseResponse->sprachSettings->Kurs['Singular']['Nominativ'] . 'details';
  }

  protected function getPanelCheckBoxValue($kurstag)
  {
    return $kurstag->id;
  }

  protected function getPanelBootStrapColor($kurstag)
  {
    if ($kurstag->kurs->ausfall) {
      return 'danger';
    } else {
      return parent::getPanelBootStrapColor($kurstag);
    }
  }

  private function getAktuelleURLRelativeMitParams()
  {
    $datVon = $this->useCaseResponse->vonDatum;
    $datBis = $this->useCaseResponse->bisDatum;
    $url = \URL::loadCurrent();
    $UrlMitParams = $url->getUrlRelative();
    $UrlMitParams .= (!empty($datVon) && !empty($datBis)) ? '&datvon=' . $datVon . '&datbis=' . $datBis : '';

    return $UrlMitParams;
  }

  protected function showBackButton()
  {
    return true;
  }
}