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

namespace Kufer\Web\KuferTools\Utils\DatamodulHelper\Belegungen;

use Kufer\Web\Classes\Identifier\Identifier;

class TeilnehmerBelegungen extends BelegungsHelper
{
  protected $sortFn;

  
  public function __construct($toolSettings, $tnr, $sortFn = null)
  {
    parent::__construct($toolSettings, $tnr);
    $this->sortFn = $sortFn;
  }

  
  protected function getBelegungsIds($dbwBelegung)
  {
    return $dbwBelegung->getBelegungsIdsbyTeilnehmerNR($this->tnr);
  }

  protected function setzeFilter($dbwBelegung, $pToolId)
  {
    return KursFilterBelegungsHelper::setzeKursFilter($this->toolSettings, $dbwBelegung, $pToolId);
  }

  protected function setzeEinstellungen($dbwBelegung)
  {
    $this->setGlobalRestrictDateFilter($dbwBelegung);

    $dbwBelegung->fromobject->status = $this->toolSettings->tnstatus;
    $dbwBelegung->dbwkurse->beruecksichtigeKurstagRaumanzeige = $this->toolSettings->versteckeKurstageWieImRaumanzeigeprogramm;

    return $dbwBelegung;
  }

  protected function setzeSortierung($dbwBelegung)
  {
    if (is_null($this->sortFn)) {
      $dbwBelegung->setOrderBySettings($this->toolSettings);
    } else {
      call_user_func($this->sortFn, $dbwBelegung);
    }

    return $dbwBelegung;
  }
}