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

namespace Kufer\KuferTools\Basis\Anmeldung\AnmeldeFormular;

abstract class AnmeldeFormularView extends \Kufer\KuferTools\Basis\View\ViewSight
{
  protected function getHeaderDataModulArray()
  {
    $dm = new class() extends \Datamodul {
      public $msgSuccess;
      public $msgInfo;
      public $msgFehler;
      public $newTnMsgSuccess;
      public $newTnMsgInfo;
      public $newTnMsgFehler;
      public $anmeldungMoeglichStatus;
      public $emailBestaetigungDrucken;
      public $isEinzelveranstaltung;
      public $emailBestaetigungSenden;
    };

    $dm->msgSuccess = $this->viewModel->anmeldMsgSuccess;
    $dm->msgInfo = $this->viewModel->anmeldMsgInfo;
    $dm->msgFehler = $this->viewModel->anmeldMsgFehler;
    $dm->newTnMsgSuccess = $this->viewModel->newTnMsgSuccess;
    $dm->newTnMsgInfo = $this->viewModel->newTnMsgInfo;
    $dm->newTnMsgFehler = $this->viewModel->newTnMsgFehler;
    $dm->anmeldungMoeglichStatus = $this->viewModel->anmeldungMoeglichStatus;
    $dm->emailBestaetigungDrucken = $this->viewModel->emailBestaetigungDrucken;
    $dm->isEinzelveranstaltung = $this->viewModel->isEinzelveranstaltung;
    $dm->emailBestaetigungSenden = $this->viewModel->emailBestaetigungSenden;

    return array($dm);
  }

  protected function getBodyDataModulArray()
  {
    $this->viewModel->teilnehmer->formReadOnly = $this->viewModel->formReadOnly;
    $this->viewModel->teilnehmer->tnAngemeldet = $this->viewModel->tnAngemeldet;
    $this->viewModel->teilnehmer->hasSepaMandat = $this->viewModel->hasSepaMandat;
    $this->viewModel->teilnehmer->ermaessigung = $this->viewModel->ermaessigung;
    $this->viewModel->teilnehmer->tnGuthaben = $this->viewModel->tnGuthaben;
    $this->viewModel->teilnehmer->isEinzelveranstaltung = $this->viewModel->isEinzelveranstaltung;
    if (isset($this->viewModel->tnDetailsAllowed, $this->viewModel->detailsSeiteTnr)) {
      $this->viewModel->teilnehmer->tnDetailsAllowed = $this->viewModel->tnDetailsAllowed;
      $this->viewModel->teilnehmer->detailsSeiteTnr = $this->viewModel->detailsSeiteTnr;
    }

    return array($this->viewModel->teilnehmer);
  }

  protected function getBodyExportAdapter()
  {
    return new \ExpTeilnehmer();
  }

  protected function getFooterDataModulArray()
  {
    $this->viewModel->kurs->formReadOnly = $this->viewModel->formReadOnly;
    $this->viewModel->kurs->tnplaetze = $this->viewModel->tnplaetze;
    $this->viewModel->kurs->kursDetailsAllowed = $this->viewModel->kursDetailsAllowed;
    $this->viewModel->kurs->kursdetailsLink = $this->viewModel->kursdetailsLink;

    return array($this->viewModel->kurs);
  }

  protected function getNoDataDataModulArray()
  {
    $dm = new \Datamodul();
    foreach (get_object_vars($this->viewModel) as $key => $value) {
      $dm->{$key} = $value;
    }

    return array($dm);
  }

  protected function getFooterExportAdapter()
  {
    return new \ExpKurse();
  }
}

class AnmeldeFormularViewModel extends \Kufer\KuferTools\Basis\View\BasisViewModel
{
  public $teilnehmer;
  public $kurs;
  public $zusaetzlicheAnmeldestatusErlaubt;
  public $anmeldMsgSuccess;
  public $anmeldMsgInfo;
  public $anmeldMsgFehler;
  public $newTnMsgSuccess;
  public $newTnMsgInfo;
  public $newTnMsgFehler;
  public $anmeldungMoeglichStatus;
  public $emailBestaetigungDrucken;
  public $formReadOnly;
  public $tnAngemeldet;
  public $hasSepaMandat;
  public $ermaessigung;
  public $tnGuthaben;
  public $tnplaetze;
  public $isEinzelveranstaltung;
  public $emailBestaetigungSenden;
  public $anmeldeStatusA;
  public $statusASelected;
  public $statusWSelected;
  public $hlbemerkungTitle;
  public $hlbemerkungRows;
  public $anmForm;
}