<?php
/**
 * @copyright (c) Kufer Software GmbH, Oderstraße 7, D-84453 Mühldorf
 */

namespace Kufer\Web\KuferTools\Veranstalter\Anmeldung\AnmeldeFormular;

use Kufer\Web\KuferTools\Utils\DatamodulHelper\Teilnehmer\TeilnehmerHelper;

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

  protected function getTeilnehmerHelper(): \Kufer\Web\KuferTools\Utils\DatamodulHelper\Teilnehmer\TeilnehmerHelper
  {
    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 isAnmeldeartButtonAllowed(): bool
  {
    
    $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(): bool
  {
    
    $uebermittlungsArt = \AnmeldevorgangAdapter::getUebermittlungsart();

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

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

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

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

  
  protected function isKursDetailsAllowed(\Kurs $pKurs): array
  {
    $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(): bool
  {
    return $this->isRechtAllowed('634.0.12');
  }

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

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

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

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

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

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