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

namespace Kufer\Web\KuferTools\Dozent\KursUebersicht\Detailsreiter\Teilnehmer\VerhaltensListe;

class VerhaltensListeUseCase extends \Kufer\Web\KuferTools\Dozent\KursUebersicht\EinzelKursUseCase
{
  public function __construct($request)
  {
    parent::__construct($request, new VerhaltensListeResponse());
  }

  public static function getToolId()
  {
    return \ToolsAPI::TOOL_KURSUEBERSICHT_DOZ;
  }

  public static function getToolSectionId()
  {
    return 3;
  }

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

    return true;
  }

  public function action()
  {
    
    $verhaltensListe = new \VerhaltensListe($this->request->knr, $this->getToolId(), $this->getVerhaltensListeObj());

    $verhaltensListe->loadSettings();

    return $this->getResponse($verhaltensListe);
  }

  protected function getResponse($pVerhaltensListe)
  {
    $this->response->verhaltensListe = $pVerhaltensListe;

    return $this->response;
  }

  
  private function getVerhaltensListeObj()
  {
    $dbwBelegungen = new \DBWorkBelegung(1, true);
    $dbwBelegungen->newSearch();
    $dbwBelegungen->fromobject->status = $this->toolSettings->tnstatus;
    $belegungen = $dbwBelegungen->getBelegungenbyKursNR($this->request->knr);
    
    $belIdsFromRequest = explode(':', $this->request->verhaltensListeObj->belIds);
    $result = array();
    foreach ($belegungen as $belegung) {
      if (in_array($belegung->id, $belIdsFromRequest)) {
        $result[] = $belegung->id;
      }
    }
    
    $this->request->verhaltensListeObj->belIds = implode(':', $result);

    return $this->request->verhaltensListeObj;
  }
}

class VerhaltensListeRequest
{
  public $knr;
  public $verhaltensListeObj;
}

class VerhaltensListeResponse extends \Kufer\Web\KuferTools\Basis\UseCase\ToolResponse
{
  public $verhaltensListe;
}