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

namespace Kufer\KuferTools\Teilnehmer\ZsaTeilnehmerUebersicht\Detailsreiter\Registrierungen;


class ReiterRegistrierungenUseCase extends \Kufer\KuferTools\Basis\UseCase\ToolUseCase
{
  private $bkbvtnHandler;

  public function __construct($request)
  {
    parent::__construct($request, new ReiterRegistrierungenResponse());
    $user = $this->getUser();
    $this->bkbvtnHandler = new \Kufer\KuferTools\Utils\BkBvTnHandler\Registrierungen4Bildungsverantwortlichen($user->tnr);
  }

  public static function getToolId()
  {
    return 42;
  }

  public static function getToolSectionId()
  {
    return 529;
  }

  public function hasAccess($pToolsectionId = null)
  {
    if (!\Kufer\KuferTools\Basis\UseCase\ToolUseCase::hasAccess($pToolsectionId)) {
      return false;
    }

    if (!$this->isRechtAllowed('527.1.2')) { 
      return false;
    }

    
    

    return true;
  }

  protected function getAlleDatamodule()
  {
    $this->bkbvtnHandler->setTnrFilter($this->request->tnr);

    return $this->bkbvtnHandler->getAlledatamodule();
  }

  public function action()
  {
    $bkbvtnAry = $this->getAlleDatamodule();

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

  protected function getResponse($bkbvtnAry)
  {
    $this->handleResponseStrategies();
    $this->response->bkbvtnAry = $bkbvtnAry;
    $this->response->rechtRegistrierung = $this->getRecht('529.0.1', 42);

    return $this->response;
  }

  protected function getResponseStrategies()
  {
    return array(
        new \Kufer\KuferTools\Utils\ResponseStrategies\ResponseWss($this)
    );
  }
}

class ReiterRegistrierungenRequest
{
  public $bkbvtnid;
}

class ReiterRegistrierungenResponse extends \Kufer\KuferTools\Basis\UseCase\ToolResponse
{
  public $bkbvtnAry;
  public $columns;
  public $rechtRegistrierung;
}