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

/**
 * Export für Feedbackbogen
 *
 * Mit dieser Klasse lassen sich Exporte für Feedbackbogen erstellen.
 * {@link add()} erwartet eine Feedback-Fragen ID
 */
class ExportFeedBackBogen extends ExportBasis
{
  /**
   * Initiert die Klasse und den Export.
   * Muss in jeder vererbten Klasse neu implementiert werden, und muss dort
   * zuerst parent::{@link initiate()} aufrufen!
   */
  public function initiate()
  {
    parent::initiate();
    $this->dboperations = new DBWorkFeedBackBogen(1, true);
  }

  /**
   * Export ausführen.
   *
   * Muss in jeder Klasse neu implementiert werden.
   */
  public function export()
  {
    $this->clearResult();
    for ($i = 0; $i < count($this->exportsets); $i++) {
      $tmp = $this->dboperations->getFeedbackBogenByKnr($this->exportsets[$i]->id);
      if (isset($tmp->id)) {
        array_push($this->exportresults, $tmp);
      }
    }
  }

  /**
   * @param string $varname Variablenname
   * @return mixed Wert der Variable
   */
  public function getVarValue($varname)
  {
    switch ($this->getVarCategory($varname)) {
      default: return \ExportBasis::getVarValue($varname);
      case 'feedbackb_': return $this->expCalculation->getVarValue4FeedBackBogen($this->getVarName($varname), $this->exportresults[$this->actualset]);
      case 'feedback_': return $this->expCalculation->getVarValue4FeedBack($this->getVarName($varname), $this->exportresults[$this->actualset]);
      //Dozent, zu welchem das Feedback abgegeben wird
      case 'feedbackfuerdoz_':
        $dnr = \SessionOperations::getVarValueIntern('feedback_fuer_dozent', -1);
        if ($dnr > 0) {
          $dbwDozenten = new \DBWorkDozenten();
          $dozent = $dbwDozenten->getDozent($dnr);
        } else {
          $dozent = new \Dozent();
        }

        return $this->expCalculation->getVarValue4Dozent($this->getVarName($varname), $dozent);
      case 'k_':
        $knr = \SessionOperations::getVarValueIntern('feedback_knr');
        $dbwKurse = new \DBWorkKurse();
        $kurs = $dbwKurse->getKurs($knr);

        return $this->expCalculation->getVarValue4Kurs($this->getVarName($varname), $kurs);
      //Hauptdozent des Kurses
      case 'doz_':
        $knr = \SessionOperations::getVarValueIntern('feedback_knr');
        $dbwKurse = new \DBWorkKurse();
        $kurs = $dbwKurse->getKurs($knr);

        return $this->expCalculation->getVarValue4Dozent($this->getVarName($varname), $kurs->hauptdozent);
      //Teilnehmer, der das Feedback abgibt
      case 'feedbackt_':
        $tnr = \SessionOperations::getVarValueIntern('feedback_tnr', -1);
        if ($tnr > 0) {
          $dbwTeilnehmer = new \DBWorkTeilnehmer();
          $teilnehmer = $dbwTeilnehmer->getTeilnehm($tnr);
        } else {
          $teilnehmer = new \Teilnehmer();
        }

        return $this->expCalculation->getVarValue4Teilnehmer($this->getVarName($varname), $teilnehmer);
      //Dozent, der das Feedback abgibt
      case 'feedbackd_':
        $dnr = \SessionOperations::getVarValueIntern('feedback_dnr', -1);
        if ($dnr > 0) {
          $dbwDozenten = new \DBWorkDozenten();
          $dozent = $dbwDozenten->getDozent($dnr);
        } else {
          $dozent = new \Dozent();
        }

        return $this->expCalculation->getVarValue4Dozent($this->getVarName($varname), $dozent);
    }
  }
}
