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

namespace Kufer\Web\KuferTools\Teilnehmer\KursUebersicht\TermineUebersicht\Utils;

class KurstageForTeilnehmer
{
  private $toolSettings;
  private $suchParameter;

  
  private $kurstageAufFaecherEinschraenken;

  public function __construct($suchParameter = array(), bool $kurstageAufFaecherEinschraenken = true)
  {
    $this->toolSettings = \ToolSettingsAPI::getToolSettings(20);
    $this->suchParameter = $suchParameter;
    $this->kurstageAufFaecherEinschraenken = $kurstageAufFaecherEinschraenken;
  }

  public function getAlleIds()
  {
    return $this->getIds();
  }

  public function getIdsInRange($vonDat, $bisDat)
  {
    return $this->getIds($vonDat, $bisDat);
  }

  private function getIds($vonDat = '', $bisDat = '')
  {
    if (isset($this->suchParameter)) {
      $searchAPI = new \KurssuchAPIwSearch(false);
      $searchAPI->getSearchParamsFromReqToSession('tool20');
      $searchAPI = new \KursplanungKurstagSucheAPI();
      $searchAPI->setSearchParamsToSession($this->suchParameter);
    }

    $user = \SessionOperations::getCurrentWebToolsUser();
    $belegungshelper = new \Kufer\Web\KuferTools\Utils\DatamodulHelper\Belegungen\TeilnehmerKurstageBelegungen($this->toolSettings, $user->tnr);
    $belegungen = $belegungshelper->getDatamoduleMitFilter(\ToolsAPI::TOOL_TN);

    if (empty($belegungen)) {
      $alleIds = array();
    } else {
      $kthelper = new \Kufer\Web\KuferTools\Utils\DatamodulHelper\KursTage\TeilnehmerKurstage(
        $this->toolSettings,
        $user,
        $belegungen,
        $vonDat,
        $bisDat,
        $this->kurstageAufFaecherEinschraenken
      );
      $alleIds = $kthelper->getIdsMitFilter(\ToolsAPI::TOOL_TN);
    }

    return $alleIds;
  }
}