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


namespace Kufer\KuferTools\Mitarbeiter\Anmeldung\TeilnehmerAuswahl;



class TeilnehmerAuswahlUseCase extends \Kufer\KuferTools\Basis\Uebersicht\UebersichtMitWssUseCase
{  
  
  public function __construct($request)
  {
    parent::__construct($request, new TeilnehmerAuswahlResponse());
  }
  
  public static function getToolSectionId()
  {
    return 21;
  }
  
  public static function getToolId()
  {
    return TOOL_ANMELDUNGBUCHEN_MA;
  }
  
  protected function getAlleIds()
  {
    
    $user = $this->getUser();
    $dbwTeilnehmer = new \DBWorkTeilnehmer();
    $dbwTeilnehmer->newSearch();
    
    $searchAPI = new \TeilnehmersuchAPI();
    $searchAPI->getSearchParamsFromReqToSession('tool'.$this->getToolId(),'searchteilnehmer');
    
    $dbwTeilnehmer->fromobject  = $searchAPI->getFromObjectBySession($dbwTeilnehmer->fromobject,'tool'.$this->getToolId());
    $dbwTeilnehmer->toobject    = $searchAPI->getToObjectBySession($dbwTeilnehmer->toobject,'tool'.$this->getToolId());
    $dbwTeilnehmer->orderby     = $this->toolSettings->sorttn;
    $dbwTeilnehmer->orderbyasc  = $this->toolSettings->sorttnasc;
    
    if ( $this->toolSettings->useBereichsRechteTeilnehmer) {
      return $dbwTeilnehmer->getTeilnehmerIdsbyFilter($user->id);
    }
    else {
      return $dbwTeilnehmer->getTeilnehmerIdsbyFilter();
    }
  }
  
  protected function getDatamodulOnCurrentPage()
  {
    return new \Kufer\KuferTools\Utils\ResponseStrategies\ResponseTeilnehmerOnCurrentPage($this);
  }
  
  protected function getResponse()
  {
    parent::getResponse();
    
    $this->response->datamodule = $this->response->teilnehmer;
    return $this->response;
  }
  
  protected function getUeberschrift()
  {
    return 'Teilnehmer';
  }
  
  protected function getButtons()
  {
    $buttonFactory = new \Kufer\KuferTools\Basis\Button\ButtonFactory();
    $buttons = array();
    $buttons[] = array($buttonFactory->getFilterButton());
    return $buttons;
  }
  
  protected function verlinkePanelHeaderAllowed()
  {
    return true;
  }
  
}

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

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