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

namespace Kufer\KuferTools\Veranstalter\Anmeldung\AnmeldeFormular;

use Kufer\KuferTools\Utils\DatamodulHelper\TeilnehmerHelper\TeilnehmerHelper;
use Kufer\KuferTools\Veranstalter\Anmeldung\HandleAnmeldung\HandleAnmeldungUseCase as AnmeldungUseCase;

class AnmeldeFormularUseCase extends \Kufer\KuferTools\Basis\Anmeldung\AnmeldeFormular\AnmeldeFormularUseCase
{
  public static function getToolSectionId()
  {
    return 634;
  }

  protected function getKursHelper()
  {
    return new \Kufer\KuferTools\Utils\DatamodulHelper\KursHelper\VeranstalterAnmeldungKurse($this->toolSettings, $this->getUser(), array());
  }

  protected function getTeilnehmerHelper()
  {
    return TeilnehmerHelper::createVeranstalterAnmeldungTeilnehmerUebersicht($this->toolSettings, $this->getUser());
  }

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

  protected function isTeilnehmerAnlegenAllowed(): bool
  {
    return $this->isRechtAllowed('634.0.13');
  }

  
  protected function isFormReadOnly()
  {
    $readonly = $this->request->anmeldeStatus === AnmeldungUseCase::SUCCESS_ANGEMELDET
            || $this->request->anmeldeStatus === AnmeldungUseCase::SUCCESS_ANGEMELDET_UND_EMAIL_VERSANDT
            || $this->request->anmeldeStatus === AnmeldungUseCase::SUCCESS_ANGEMELDET_ABER_HAUPT_TN_EMAIL_FALSCH
            || $this->request->anmeldeStatus === AnmeldungUseCase::SUCCESS_ANGEMELDET_ABER_SONSTIGE_EMAIL_FEHLER
            || $this->request->anmeldeStatus === AnmeldungUseCase::INFO_DOPPELT_AUFGERUFEN;
    if ($readonly) {
      \SessionOperations::setVarValueWTIntern('AnmeldungReadonly_' . $this->getToolId(), 1);
    } else {
      \SessionOperations::setVarValueWTIntern('AnmeldungReadonly_' . $this->getToolId(), 0);
    }

    return $readonly;
  }

  protected function isAnmeldeartButtonAllowed()
  {
    
    $anmeldeartAllowed = $this->isRechtAllowed('634.0.10');
    
    $mehrfachAnmAllowed = $this->isRechtAllowed('634.0.5');
    
    $faAnmAllowed = $this->isRechtAllowed('634.0.6');

    return $anmeldeartAllowed || $mehrfachAnmAllowed || $faAnmAllowed;
  }

  protected function isNachlassButtonAllowed()
  {
    
    $uebermittlungsArt = \AnmeldevorgangAdapter::getUebermittlungsart();

    return ($this->isRechtAllowed('634.0.11') && ($uebermittlungsArt == ANMELDUNG_MATOOL_DMZ || $uebermittlungsArt == ANMELDUNG_MATOOL_ONLINE));
  }

  protected function isAbwZahlwegButtonAllowed()
  {
    
    return $this->isRechtAllowed('634.0.3');
  }

  protected function isAnmeldeDetailsButtonAllowed()
  {
    
    return $this->isRechtAllowed('634.0.2');
  }

  protected function isZahlartButtonAllowed()
  {
    return $this->isRechtAllowed('634.0.8');
  }

  protected function isKursDetailsAllowed($pKurs)
  {
    $toolZiel = 51;
    if (\DBWorkBASysSettings::isSalzburgBildungswerk()) {
      $toolZiel = 54;
    }

    $kursDetailsAllowed = $this->isRechtAllowed('634.0.1');
    $kursdetailsLink = '';
    if ($kursDetailsAllowed) {
      if (isset($pKurs->id)) {
        $kursdetailsLink = 'index.php?tool_id=' . $toolZiel . '&action=kursdetails'
                . '&knr=' . $pKurs->id . '&referer=' . urlencode($this->getAktuelleURLRelative()) . '&refererLabel=' . urlencode(\StringOperations::htmlentities('Zurück zum Anmeldeformular'));
      }
    }

    return compact('kursDetailsAllowed', 'kursdetailsLink');
  }

  protected function isBelegungsStatusAllowed()
  {
    return $this->isRechtAllowed('634.0.12');
  }

  protected function isAnmeldeartAllowed()
  {
    
    return $this->isRechtAllowed('634.0.10');
  }

  protected function isBemerkungAllowed()
  {
    
    return $this->isRechtAllowed('634.0.9');
  }

  protected function isNewsletterAllowed()
  {
    
    return $this->isRechtAllowed('634.0.7');
  }
}