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

namespace Kufer\Web\KuferTools\Dozent\Kursplanung\TerminBearbeiten;

use Kufer\Web\KuferTools\Utils\Dozent\KursBearbeitenPlanungUtils;


class TerminBearbeitenFormularUseCase extends \Kufer\Web\KuferTools\Basis\Kursdetails\Detailsreiter\Termine\TerminBearbeiten\TerminBearbeitenFormularUseCase
{
  public static function getToolId()
  {
    return \ToolsAPI::TOOL_KURSPLANUNG_DOZ;
  }

  public static function getToolSectionId()
  {
    return 281;
  }

  
  
  public function hasAccess($pToolSectionId = null)
  {
    if (!parent::hasAccess($pToolSectionId)) {
      return false;
    }
    if (!$this->isRechtAllowed('9.0.2') || !$this->isRechtAllowed('10.0.1')) {
      return false;
    }
    $kurstag = $this->getKurstag();

    if ($kurstag->nodoztool) {
      return false;
    }

    $user = $this->getUser();
    if ($kurstag->dnr != $user->dnr) {
      return false;
    }

    if (!KursBearbeitenPlanungUtils::isTerminBearbeitbar(
      $this->toolSettings->kursstatusKursIstBearbeitbar,
      $this->toolSettings->kursstatusKursIstNichtBearbeitbar,
      $this->toolSettings->kursstatusKursInPlanung,
      $kurstag->getKurs()
    )) {
      return false;
    }

    return true;
  }

  protected function getKnr()
  {
    return $this->getKurstag()->knr;
  }

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

  protected function getRechte4KursBearbeiten(): array
  {
    return \PasstKursZuKurstageAPI::getRechte4KursBearbeitenDozent($this->getToolId(), $this->getUser());
  }
}