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

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

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

  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()
  {
    
    
    
    $dbwFach = new \DBWorkKursFach();
    $fachAry = $dbwFach->getFaecherByKurs($this->request->knr);
    
    $dbwdoz = new \DBWorkDozenten();
    $dozentenAry = $dbwdoz->getDozenten4Kurs($this->request->knr);

    
    

    $dbwBelegung = new \DBWorkBelegung(1, true);
    $dbwBelegung->newSearch();
    
    $dbwBelegung->setPersonenOrderBySettings($this->toolSettings, 'tn');
    $dbwBelegung->fromobject->status = $this->toolSettings->tnstatus;
    $belegungAry = $dbwBelegung->getBelegungenByKursNR($this->request->knr);

    

    
    
    $tnBelegungsAry = array();
    foreach ($belegungAry as $belegung) {
      $tnBelegung = new \stdClass();
      $tnBelegung->id = $belegung->id;
      $tnBelegung->namevorname = $belegung->teilnehmer->namevorname;
      $tnBelegungsAry[] = $tnBelegung;
    }

    
    $dbwAnwVerh = new \DBWorkAnwVerhalten();
    
    
    $verhaltenAry = $dbwAnwVerh->getVerhaltenInfoByKurs($this->request->knr);
    
    return $this->getResponse($fachAry, $dozentenAry, $tnBelegungsAry, $verhaltenAry);
  }

  
  protected function getResponse($pFachAry, $pDozentenAry, $pTnBelegungsAry, $pVerhaltenAry)
  {
    $this->response->knr = $this->request->knr;
    $this->response->fachAry = $pFachAry;
    $this->response->dozentenAry = $pDozentenAry;
    $this->response->teilnehmerAry = $pTnBelegungsAry;
    $this->response->verhaltenAry = $pVerhaltenAry;

    return $this->response;
  }
}

class VerhaltensListeAuswahlRequest
{
  public $knr;
}

class VerhaltensListeAuswahlResponse extends \Kufer\KuferTools\Basis\UseCase\ToolResponse
{
  public $knr;
  
  public $fachAry;
  
  public $dozentenAry;
  
  public $teilnehmerAry;
  
  public $verhaltenAry;
}