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

namespace Kufer\KuferTools\Veranstalter\Anmeldung\AnmeldebestaetigungDialog;

class AnmeldeBestaetigungDialogUseCase extends \Kufer\KuferTools\Basis\UseCase\ToolUseCase
{
  public function __construct($request)
  {
    parent::__construct($request, new AnmeldebestaetigungDialogResponse());
  }

  public static function getToolId()
  {
    return \ToolsAPI::TOOL_ANMELDUNGBUCHEN_VA;
  }

  public static function getToolSectionId()
  {
    return 634;
  }

  public function action()
  {
    $anmeldebestaetigungJSONEncoded = $this->getAnmeldebestaetigung();

    return $this->getResponse($anmeldebestaetigungJSONEncoded);
  }

  private function getAnmeldebestaetigung()
  {
    $belegungen = $this->getBelegungen();

    if ($this->toolSettings->useAnmBestKuferWeb) {
      $anmeldebestaetigung = \AnmeldeStaticSight::getAnmeldebestaetigungKuferWEB($belegungen[0]->knr, $belegungen[0]->teilnehmer);
      $emailInhalttext = $anmeldebestaetigung['body'];
    } else {
      $viewModel = new AnmeldebestaetigungDialogViewModel();
      $viewModel->belegung = $belegungen;

      $view = new AnmeldeBestaetigungDialogView($viewModel);
      $sightText = $view->show();
      $subject = \StringOperations::getBestaetigungSubject($sightText);
      $body = \StringOperations::getBestaetigungBody($sightText);

      $emailInhalttext = "<!DOCTYPE HTML PUBLIC '-//W3C//DTD HTML 4.01//EN'><html><body>\n";
      $emailInhalttext .= $subject . '<br /><br />';
      $emailInhalttext .= $body;
      $emailInhalttext .= "\n</body></html>";
    }

    return \JsonOperations::encode4Ajax($emailInhalttext);
  }

  protected function getResponse($anmeldebestaetigungJSONEncoded)
  {
    $this->response->anmeldebestaetigungJSONEncoded = $anmeldebestaetigungJSONEncoded;

    return $this->response;
  }

  
  private function getBelegungen()
  {
    $dbwBelegung = new \DBWorkBelegung();

    return $dbwBelegung->getBelegungenbyKursTeilnehmerNR($this->request->knr, $this->request->tnr);
  }
}

class AnmeldebestaetigungDialogRequest
{
  public $knr;
  public $tnr;
}

class AnmeldebestaetigungDialogResponse extends \Kufer\KuferTools\Basis\UseCase\ToolResponse
{
  public $anmeldebestaetigungJSONEncoded;
}