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

namespace Kufer\KuferTools\Mitarbeiter\KursVorschlag\KursVorschlagBearbeiten;

use Kufer\KuferTools\Basis\KursPlanung\KursVorschlag\KursVorschlagAbsendenUseCase;

class KursVorschlagBearbeitenFormularPresenter extends \Kufer\KuferTools\Basis\Presenter\MitRahmenPresenter
{
  protected function getView()
  {
    return new KursVorschlagBearbeitenFormularView($this->getViewModel());
  }

  protected function getViewModel()
  {
    $viewModel = new KursVorschlagBearbeitenFormularViewModel();
    $viewModel->columns = $this->useCaseResponse->columns;
    $viewModel->kursplanung = $this->useCaseResponse->kursplanung;
    $viewModel->toolId = $this->useCaseResponse->toolId;
    $viewModel->readOnly = $this->useCaseResponse->readOnly;
    $viewModel->showButtonKursvorschlagBearbeitenSpeichern = $this->useCaseResponse->showButtonKursvorschlagBearbeitenSpeichern;

    $this->setStatusMessages();
    
    return $viewModel;
  }

  protected function setStatusMessages()
  {
    if (in_array(KursVorschlagAbsendenUseCase::ERROR_DOPPELT_ABSENDEN, $this->useCaseResponse->statusCodes)) {
      $statusMessage = new \Kufer\KuferTools\Utils\StatusMessages\StatusMessage(MSG_BOX_WARNING, 'Ihre Kursplanung wurde bereits abgesendet und wird deshalb kein zweites Mal versendet.');
      $this->useCaseResponse->statusMeldungen->addStatusMessageObj($statusMessage);
    }

    if (in_array(KursVorschlagAbsendenUseCase::ERROR_KURSPLANUNGSDATEN_FEHLERHAFT, $this->useCaseResponse->statusCodes)) {
      $statusMessage = new \Kufer\KuferTools\Utils\StatusMessages\StatusMessage(MSG_BOX_ERROR, \Kufer\KuferTools\Utils\WssHandler::getErrorMessage($this->useCaseResponse->wrongFields));
      $this->useCaseResponse->statusMeldungen->addStatusMessageObj($statusMessage);
    }
    if (in_array(KursVorschlagAbsendenUseCase::ERROR_INFO_EMAIL_AN_EINRICHTUNG_NICHT_VERSENDET, $this->useCaseResponse->statusCodes)) {
      $statusMessage = new \Kufer\KuferTools\Utils\StatusMessages\StatusMessage(MSG_BOX_ERROR, 'Eine Benachrichtigung konnte nicht an die Einrichtung versendet werden. Bitte wenden Sie sich an die Einrichtung.');
      $this->useCaseResponse->statusMeldungen->addStatusMessageObj($statusMessage);
    }
    if (in_array(KursVorschlagAbsendenUseCase::ERROR_EMAIL_AN_USER_NICHT_VERSENDET, $this->useCaseResponse->statusCodes)) {
      $statusMessage = new \Kufer\KuferTools\Utils\StatusMessages\StatusMessage(MSG_BOX_ERROR, 'Eine Kopie der Planung konnte nicht an Ihre E-Mail versendet werden. Bitte überprüfen Sie ggf. Ihre E-Mail-Adresse.');
      $this->useCaseResponse->statusMeldungen->addStatusMessageObj($statusMessage);
    }
    if (in_array(KursVorschlagAbsendenUseCase::ERROR_KURSPLANUNG_NICHT_VERSENDET, $this->useCaseResponse->statusCodes)) {
      $statusMessage = new \Kufer\KuferTools\Utils\StatusMessages\StatusMessage(MSG_BOX_ERROR, 'Aufgrund eines technischen Fehlers konnten Ihre Änderungen nicht durchgeführt werden. Bitte versuchen Sie es erneut, oder wenden Sie sich an die Einrichtung.');
      $this->useCaseResponse->statusMeldungen->addStatusMessageObj($statusMessage);
    }

    if (in_array(KursVorschlagAbsendenUseCase::SUCCESS_KURSPLANUNG_VERSENDET, $this->useCaseResponse->statusCodes)) {
      $statusMessage = new \Kufer\KuferTools\Utils\StatusMessages\StatusMessage(MSG_BOX_SUCCESS, 'Ihre Änderungen wurden erfolgreich durchgeführt und die Planung eines Kurses an die Einrichtung übermittelt.');
      $this->useCaseResponse->statusMeldungen->addStatusMessageObj($statusMessage);
    }
    if (in_array(KursVorschlagAbsendenUseCase::SUCCESS_KURSPLANUNG_ZWISCHENGESPEICHERT, $this->useCaseResponse->statusCodes)) {
      $statusMessage = new \Kufer\KuferTools\Utils\StatusMessages\StatusMessage(MSG_BOX_SUCCESS, 'Ihre Änderungen wurden erfolgreich durchgeführt.');
      $this->useCaseResponse->statusMeldungen->addStatusMessageObj($statusMessage);
    }
    if (in_array(KursVorschlagAbsendenUseCase::SUCCESS_INFO_EMAIL_AN_EINRICHTUNG_VERSENDET, $this->useCaseResponse->statusCodes)) {
      $statusMessage = new \Kufer\KuferTools\Utils\StatusMessages\StatusMessage(MSG_BOX_SUCCESS, 'Eine Benachrichtigung wurde an die Einrichtung versendet.');
      $this->useCaseResponse->statusMeldungen->addStatusMessageObj($statusMessage);
    }
    if (in_array(KursVorschlagAbsendenUseCase::SUCCESS_EMAIL_AN_USER_VERSENDET, $this->useCaseResponse->statusCodes)) {
      $statusMessage = new \Kufer\KuferTools\Utils\StatusMessages\StatusMessage(MSG_BOX_SUCCESS, 'Eine Kopie der Planung wurde an Ihre E-Mail-Adresse versendet.');
      $this->useCaseResponse->statusMeldungen->addStatusMessageObj($statusMessage);
    }
  }

  
  protected function getJSDeclarations()
  {
    $result = parent::getJSDeclarations();
    $result .= 'registerNamespace("KuferTools.Kursplanung");' . "\n";
    
    
    return $result;
  }

  protected function getJsFilesSrcAryWeitere()
  {
    return array(
      $this->getJsFileFromSys('doz_kursplanung.js')
    );
  }
}