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

namespace Kufer\Web\KuferTools\Utils;

class FeedbackHelper
{
  public const FEEDBACKBOGEN_SEND_SUCCESS = 'feedBackBogenVersandErfolgreich';
  public const FEEDBACKBOGEN_SEND_ERROR = 'feedBackBogenVersandFehler';
  public const ERROR_BROWSER_REFRESH = 'browserRefresh';

  
  public static function initFeedbackSessionVars($pFeedBackObj, $FrageBogen, $pFragen)
  {
    \SessionOperations::setVarValueWTIntern('feedback_Knr', $pFeedBackObj->kurs->id);

    $frageNr = 0;
    foreach ($pFragen as $frage) {
      $frageNr++;
      \SessionOperations::setVarValueWTIntern('feedback_Frage_' . $frageNr, serialize($frage));
    }
    \SessionOperations::setVarValueWTIntern('feedback_FragenCount', $frageNr);
    \SessionOperations::setVarValueWTIntern('feedback_Bogen', serialize($FrageBogen));
    \SessionOperations::setVarValueWTIntern('feedback_Antworten', array());
    
    
  }

  

  
  public static function resetFeedbackSessionVars()
  {
    \SessionOperations::setVarValueWTIntern('feedback_Antworten', array());
    $fragenCnt = \SessionOperations::getVarValueWTIntern('feedback_FragenCount');
    for ($i = 1; $i <= $fragenCnt; $i++) {
      \SessionOperations::setVarValueWTIntern('feedback_Frage_' . $i, '');
    }
    \SessionOperations::setVarValueWTIntern('feedback_FragenCount', '');
    \SessionOperations::setVarValueWTIntern('feedback_Bogen', '');
  }

  
  public static function getFeedbackRequest2Session($pFeedbackObj, $pRequest)
  {
    $feedBackAntworten = \SessionOperations::getVarValueWTIntern('feedback_Antworten', array());

    
    
    if ($pRequest->direction == 'forward') {
      $letzteFrageNr = $pFeedbackObj->aktuelleSeite - 2;
    } elseif ($pRequest->direction == 'backward') {
      $letzteFrageNr = $pFeedbackObj->aktuelleSeite;
    } else {
      throw new \RuntimeException('Unerwateter Aufruf');
    }

    
    
    if ($letzteFrageNr > 0 && $letzteFrageNr <= $pFeedbackObj->fragenCount) {
      $feedBackBogenFrage = unserialize(\SessionOperations::getVarValueWTIntern('feedback_Frage_' . $letzteFrageNr));

      if ($feedBackBogenFrage->feedbackfrage->warumanzeigen) {
        $feedBackAntworten[$feedBackBogenFrage->id]['warum'] = $pRequest->feedback_bemerkung;
      }

      if ($feedBackBogenFrage->feedbackfrage->typ > 0) {
        $feedBackAntworten[$feedBackBogenFrage->id]['wert'] = $pRequest->feedback_input;
      } else { 
        $feedBackAntworten[$feedBackBogenFrage->id]['wert'] = -1;
      }

      \SessionOperations::setVarValueWTIntern('feedback_Antworten', $feedBackAntworten);
    }
  }
}