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

namespace Kufer\Web\KuferTools\Veranstalter\LeiterMitarbeiterAndererVeranstalter\DozentenUebersicht\DozentenUebersichtFilter;

use Kufer\Web\KuferTools\Utils\KursFilter\HandleShowKursFilter;

class DozentenUebersichtFilterUseCase extends \Kufer\Web\KuferTools\Basis\UseCase\ToolUseCase
{
  public function __construct($request)
  {
    parent::__construct($request, new DozentenUebersichtFilterResponse());
  }

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

  public static function getToolSectionId()
  {
    return 696;
  }

  public function action()
  {
    return $this->getResponse();
  }

  private function setFilterVals()
  {
    $searchAPI = new \Kufer\Web\KuferTools\Utils\FilterSearch\DozentenSearchFilter();
    $fromobject = $searchAPI->getSearchMapFromSession('tool' . $this->getToolId());
    $this->response->name = $fromobject['name'];
    $this->response->dozId = $fromobject['doznr'];
    $this->response->vorname = $fromobject['vorname'];
    $this->response->persnr = $fromobject['pnr'];
    $this->response->strasse = $fromobject['strasse'];
    $this->response->ort = $fromobject['wohnort'];
    
    
    $this->response->fachBereiche = HandleShowKursFilter::getFachBereiche();
    $this->response->selectedFachbereich = $fromobject['fachbereich'];
    $this->response->kurs_stichwort = $fromobject['kurs_stichwort'];

    $this->response->gemeinde = $fromobject['gemeinde'];
    $this->response->stadtteil = $fromobject['stadtteil'];
    $this->response->bezirk = $fromobject['bezirk'];
    $this->response->bundesland = $fromobject['bundesland'];

    $this->response->bezirke = HandleShowKursFilter::getBezirke();
    $this->response->gemeinden = HandleShowKursFilter::getGemeinden();


    $this->response->kennzeichen_name = $fromobject['kennzeichen_name'];
    $this->response->branchen_name = $fromobject['branchen_name'];
    $this->response->branchen = HandleShowKursFilter::getBranchen();

    $this->response->veranstalter_namevorname = $fromobject['veranstalter_namevorname'];
    $this->response->veranstalter_stadtteil = $fromobject['veranstalter_stadtteil'];
    $this->response->veranstalter_bundesland = $fromobject['veranstalter_bundesland'];
    $this->response->veranstalter_bezirk = $fromobject['veranstalter_bezirk'];
    $this->response->veranstalter_gemeinde = $fromobject['veranstalter_gemeinde'];

    $this->fillResponseFreiWaehlbareEingabefelder($fromobject);
  }

  private function fillResponseFreiWaehlbareEingabefelder(array $fromobject)
  {
    $dbwFreiWaehlbareEingabefelder = new \DBWorkFreiWaehlbareEingabefelder4Dozent(1, true);
    $freiWaehlbareFelderEinstellungen = $dbwFreiWaehlbareEingabefelder->getFreiWaehlbareFelder();

    for ($i = 1; $i <= 16; $i++) {
      $kritVariable = 'krit' . $i;
      $hinterlegungVariable = 'krit' . $i . 'hinterlegung';

      $this->response->{$kritVariable} = $fromobject[$kritVariable];
      if (isset($freiWaehlbareFelderEinstellungen[$i - 1], $freiWaehlbareFelderEinstellungen[$i - 1]->hinterlegung)) {
        $this->response->{$hinterlegungVariable} = $freiWaehlbareFelderEinstellungen[$i - 1]->hinterlegung;
      }
    }
  }

  protected function getResponse()
  {
    $this->setFilterVals();

    return $this->response;
  }
}

class DozentenUebersichtFilterRequest
{
}

class DozentenUebersichtFilterResponse extends \Kufer\Web\KuferTools\Basis\UseCase\ToolResponse
{
  public $kategorien;
  public $sonderKategorien;
  public $aussenstellen;
  public $kursOrte;
  public $fachBereiche;
  public $selectedFachbereich;

  public $kursFilterVon;
  public $kursFilterBis;
  public $kurs_stichwort;

  public $krit1;
  public $krit2;
  public $krit3;
  public $krit4;
  public $krit5;
  public $krit6;
  public $krit7;
  public $krit8;
  public $krit9;
  public $krit10;
  public $krit11;
  public $krit12;
  public $krit13;
  public $krit14;
  public $krit15;
  public $krit16;

  public $krit1hinterlegung = array();
  public $krit2hinterlegung = array();
  public $krit3hinterlegung = array();
  public $krit4hinterlegung = array();
  public $krit5hinterlegung = array();
  public $krit6hinterlegung = array();
  public $krit7hinterlegung = array();
  public $krit8hinterlegung = array();
  public $krit9hinterlegung = array();
  public $krit10hinterlegung = array();
  public $krit11hinterlegung = array();
  public $krit12hinterlegung = array();
  public $krit13hinterlegung = array();
  public $krit14hinterlegung = array();
  public $krit15hinterlegung = array();
  public $krit16hinterlegung = array();

  public $gemeinde;
  public $stadtteil;
  public $bezirk;
  public $bundesland;
  public $bezirke;
  public $gemeinden;

  public $kennzeichen_name;
  public $branchen_name;
  public $branchen;

  public $veranstalter_namevorname;
  public $veranstalter_stadtteil;
  public $veranstalter_bundesland;
  public $veranstalter_bezirk;
  public $veranstalter_gemeinde;
}