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

namespace Kufer\Web\KuferTools\Dozent\DozFeedbackauswertungenUebersicht\DozFeedbackauswertungen;

class DozFeedbackauswertungenUebersichtUseCase extends \Kufer\Web\KuferTools\Basis\Feedbackauswertung\FeedbackAuswertungenUebersicht\FeedbackAuswertungenUebersichtUseCase
{
  public static function getToolId()
  {
    return \ToolsAPI::TOOL_FEEDBACK_AUSWERTUNGEN_DOZ;
  }

  public static function getToolSectionId()
  {
    return 568;
  }

  protected function getBogenTyp()
  {
    return 'T';
  }

  protected function getButtons()
  {
    $buttonFactory = new \Kufer\Web\KuferTools\Basis\Button\ButtonFactory();
    $buttons = array();

    $buttonGruppeFilter = array();
    $buttonGruppeFilter[] = $buttonFactory->getFilterButton('Filter', 'DozFeedbackauswertungUebersicht_suchen_Button');
    if ($this->isFilterGesetzt()) {
      $buttonGruppeFilter[] = $buttonFactory->getFilterLeerenButton('Leeren', 'DozFeedbackauswertungUebersicht_leeren_Button');
    }
    $buttons[] = $buttonGruppeFilter;

    return $buttons;
  }

  protected function getUeberschrift()
  {
    if ($this->request->isFilterSet) {
      return 'Feedbackauswertung der Teilnehmer (Gefiltert)';
    }

    return 'Feedbackauswertung der Teilnehmer';
  }

  protected function getResponse()
  {
    $this->response = parent::getResponse();
    $this->response->ueberschrift = $this->getUeberschrift();

    return $this->response;
  }

  
  protected function getFeedbackGedrucktByKnrs(\DBWorkFeedBackRetour $dbwFeedBackRetour)
  {
    static $cache = null;
    if (!isset($cache)) {
      $alleKurseArry = $this->getAlleKursNummern();
      if (count($alleKurseArry) === 0) {
        $cache = array();
      } else {
        $dbWorkFeedbackgedruckt = $dbwFeedBackRetour->createDBWorkFeedBackGedruckt();
        $feedbackGedrucktEinschraenkenAufDozenten = $this->toolSettings->feedbackGedrucktEinschraenkenAufDozenten;
        $user = $this->getUser();
        if (
          $feedbackGedrucktEinschraenkenAufDozenten == \ToolFeedbackAuswertungenDozSettings::EINSCHRAENKEN_AUF_DOZENTEN_NO
          || $user->isAdmin()
        ) {
          $cache = $dbWorkFeedbackgedruckt->getAlldataByKnrAndTyp($alleKurseArry, $this->getBogenTyp());
        } elseif ($feedbackGedrucktEinschraenkenAufDozenten == \ToolFeedbackAuswertungenDozSettings::EINSCHRAENKEN_AUF_DOZENTEN_MAYBE) {
          $cache = $dbWorkFeedbackgedruckt->getAlldataByKnrAndTypAndMaybeFuerDozent($alleKurseArry, $this->getBogenTyp(), $user->getDnrIdentifier());
        } elseif ($feedbackGedrucktEinschraenkenAufDozenten == \ToolFeedbackAuswertungenDozSettings::EINSCHRAENKEN_AUF_DOZENTEN_JUST) {
          $cache = $dbWorkFeedbackgedruckt->getAlldataByKnrAndTypAndFuerDozent($alleKurseArry, $this->getBogenTyp(), $user->getDnrIdentifier());
        }
      }
    }

    return $cache;
  }
}