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

namespace Kufer\KuferTools\Firma\FaFeedbackauswertungenUebersicht\FaFeedbackauswertungen;

class FaFeedbackauswertungenUebersichtUseCase extends
    \Kufer\KuferTools\basis\Feedbackauswertung\FeedbackAuswertungenUebersicht\FeedbackAuswertungenUebersichtUseCase
{
  public static function getToolId()
  {
    return \ToolsAPI::TOOL_FEEDBACK_AUSWERTUNGEN_FA;
  }

  public static function getToolSectionId()
  {
    return 752;
  }

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

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

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

    return $buttons;
  }

  protected function getUeberschrift()
  {
    $getopSearchStichworte = \GetOperations::getVarValue('search_kursnummernbereich_von', null);
    if (!\is_null($getopSearchStichworte)) {
      return 'Feedbackauswertung der Mitarbeiter zum Kurs ' . $getopSearchStichworte;
    }
    if ($this->request->isFilterSet) {
      return 'Feedbackauswertung der Mitarbeiter (Gefiltert)';
    }

    return 'Feedbackauswertung der Mitarbeiter';
  }

  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();
        $dbwBelegung = new \DBWorkBelegung();
        $tnrs = $dbwBelegung->getTeilnehmerBelegungenByFirmaKursQuery($this->getUser()->tnr)->select('b.tnr');
        $cache = $dbWorkFeedbackgedruckt->getAlldataByKnrAndTypAndTnr($alleKurseArry, $this->getBogenTyp(), $tnrs);
      }
    }

    return $cache;
  }
}