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

namespace Kufer\KuferTools\Teilnehmer\Anmeldung\KursUebersicht\ShowAnmeldeDialog;

use Kufer\Web\KuferTools\Utils\Spezial\BLAKUtils;

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

  public static function getToolSectionId()
  {
    return 94;
  }

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

  public function action()
  {
    return $this->getResponse();
  }

  private function getErlaubteZahlart($erlaubteZahlArten)
  {
    if ($erlaubteZahlArten[0] == 'lastschrift') {
      $this->response->erlaubteZahlart = 'Lastschrift';
    } elseif ($erlaubteZahlArten[0] == 'ueberweisung') {
      $this->response->erlaubteZahlart = 'Überweisung';
      $this->response->erlaubteZahlartVal = 'Ü';
    } elseif ($erlaubteZahlArten[0] == 'rechnung') {
      $this->response->erlaubteZahlart = 'Rechnung';
    }
  }

  private function shouldShowZertifikatsfortbildung(\Kurs $kurs): bool
  {
    return BLAKUtils::isKursZertifikatsfortbildungsKurs($this->toolSettings, $kurs);
  }

  private function isDseAkzeptiert()
  {
    $teilnehmer = \SessionOperations::getCurrentWebToolsTeilnehmer();
    $dse_date = $teilnehmer->dse_unterschrieben_datum;
    if (\DateTimeOperations::isDateTimeEmptyOrDefault($dse_date)) {
      return false;
    }
    if (\DateTimeOperations::isDateTimeBefore($dse_date, \DateTimeOperations::getDateTimeNow())) {
      return false;
    }
    if (\DateTimeOperations::isDateTimeBefore($dse_date, $teilnehmer->dse_widerrufen_datum)) {
      return false;
    }

    return true;
  }

  protected function getResponse()
  {
    $this->response->kursdata = $this->request->kursdata;
    if (isset($this->response->kursdata['Gebuehr'])) {
      
      
      $this->response->kursdata['Gebuehr'] = str_replace('&amp;', '&', $this->response->kursdata['Gebuehr']);
    }

    if (\DBWorkBASysSettings::isBlak()) {
      $this->response->kursdata['isfsp'] = \Kurs::isFSPEx($this->response->kursdata['Knr']);
      $this->response->kursdata['isbglu'] = \Kurs::isBGLUEx($this->response->kursdata['Knr']);
    }

    $erlaubteZahlArten = $this->toolSettings->getErlaubteZahlArten();
    $this->response->anzahlZahlArten = count($erlaubteZahlArten);

    if ($this->response->anzahlZahlArten <= 1) {
      $this->getErlaubteZahlart($erlaubteZahlArten);
    }
    $this->response->erlaubteZahlarten = implode(' ', $erlaubteZahlArten);
    $this->response->zahlart_lastschrift = in_array('lastschrift', $erlaubteZahlArten);
    $this->response->lastschriftClass = 'nurLastschrift';
    
    if ($this->response->erlaubteZahlart == 'Lastschrift') {
      $this->response->lastschriftClass = '';
    }
    $this->response->newsletterAnmeldung = $this->toolSettings->newsletterAnmeldung_erlaubt;
    $this->response->pauschaleMehrfachanmeldung = $this->toolSettings->anm_pauschaleMehrfachanmeldung_erlaubt;
    $this->response->anmZusatzText = \StringOperations::convertLinebreaks2HTML(\StringOperations::html_entity_decode($this->toolSettings->anm_zusatzText));
    $this->response->kursHatGebuehr = preg_match('/[1-9]/', $this->request->kursdata['Gebuehr']);
    $this->response->dseCheckbox = \StringOperations::convertLinebreaks2HTML(\StringOperations::html_entity_decode($this->toolSettings->anm_dseCheckbox));
    $this->response->dseAkzeptiert = $this->isDseAkzeptiert();
    $this->response->dseCheckboxAkzeptiert = \StringOperations::convertLinebreaks2HTML(\StringOperations::html_entity_decode($this->toolSettings->anm_dseCheckboxAkzeptiert));

    $kurs = \DBWorkKurse::getDefaultInstance()->getKurs($this->response->kursdata['Knr']);
    $this->response->blakzertifkatsbstg = $this->shouldShowZertifikatsfortbildung($kurs);

    return $this->response;
  }
}

class OldShowAnmeldeDialogRequest
{
  public $kursdata;
}

class OldShowAnmeldeDialogResponse extends \Kufer\KuferTools\Basis\UseCase\ToolResponse
{
  public $kursdata;
  public $erlaubteZahlarten;
  public $zahlart_lastschrift;
  public $erlaubteZahlart;
  public $erlaubteZahlartVal;

  public $anzahlZahlArten;
  public $lastschriftClass;
  public $newsletterAnmeldung;
  public $pauschaleMehrfachanmeldung;
  public $anmZusatzText;
  public $dseCheckbox;
  public $dseAkzeptiert;
  public $dseCheckboxAkzeptiert;
  public $kursHatGebuehr;
  public $blakzertifkatsbstg;
}