<?php

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

namespace Kufer\KuferTools\Teilnehmer\ZsaTeilnehmerUebersicht\TeilnehmerUebersicht;


class TeilnehmerUebersichtUseCase extends \Kufer\KuferTools\Basis\Uebersicht\UebersichtUseCase
{
  public $bkbvtnHandler;

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

  public static function getToolSectionId()
  {
    return 526;
  }

  public static function getToolId()
  {
    return 42;
  }

  protected function getUeberschrift()
  {
    return 'Registrierungen';
  }

  protected function getDatamoduleProSeite()
  {
    return 10;
  }

  protected function getButtons()
  {
    $buttons = array();

    $buttonFactory = new \Kufer\KuferTools\Basis\Button\ButtonFactory();
    $buttons[] = array($buttonFactory->getFilterButton('Filter', 'suchen_button_zsaTnUebersicht'));

    return $buttons;
  }

  private function initDBW()
  {
    $searchAPI = new \ZsaBkBvTnSuchAPI();

    if (!empty($this->request->filter_status)) {
      if (!is_array($this->request->suchParameter)) {
        $this->request->suchParameter = array();
      }
      $this->request->suchParameter['ss_status_tool42'] = $this->request->filter_status;
    }

    if (isset($this->request->suchParameter)) {
      $searchAPI->setSearchParamsToSession($this->request->suchParameter);
    }

    $this->bkbvtnHandler->initFilterFromSession($this->getToolId());
  }

  protected function getAlleIds()
  {
    return $this->bkbvtnHandler->getAlleIds();
  }

  protected function getPanelButtonCallBacks()
  {
    $buttons = array();

    if ($this->isRechtAllowed('526.0.1')) {
      $buttons[] = function($bkbvtn) {
        return new \Kufer\KuferTools\Basis\Button\HtmlButton('Teilnehmerdetails', 'teilnehmerDetails', 'index.php?tool_id=42&action=teilnehmerdetails&bkbvtn=' . $bkbvtn->id, 'search', 'Teilnehmerdetails');
      };
    }

    return $buttons;
  }

  
  protected function getResponse()
  {
    parent::getResponse();
    
    $this->response->datamodule = $this->response->bkbvtn;

    return $this->response;
  }

  protected function getDatamodulOnCurrentPage()
  {
    return new \Kufer\KuferTools\Utils\ResponseStrategies\ResponseBkBvTnOnCurrentPage($this);
  }

  protected function verlinkePanelHeaderAllowed()
  {
    return $this->isRechtAllowed('526.0.1');
  }
}

class TeilnehmerUebersichtRequest extends \Kufer\KuferTools\Basis\Uebersicht\UebersichtRequest
{
  public $filter_status = '';
}

class TeilnehmerUebersichtResponse extends \Kufer\KuferTools\Basis\Uebersicht\UebersichtRequest
{
  public $bkbvtn = array();
}