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

namespace Kufer\KuferTools\Mitarbeiter\KursUebersicht\Detailsreiter\Termine\TerminBearbeiten\KursAnpassenNachTerminBearbeiten;

class KursAnpassenNachTerminBearbeitenUseCase extends \Kufer\KuferTools\Basis\Kursdetails\DetailsReiter\Termine\TerminBearbeiten\KursAnpassenNachTerminBearbeiten\KursAnpassenNachTerminBearbeitenUseCase
{
  public static function getToolId()
  {
    return \ToolsAPI::TOOL_KURSPLANUNG_MA;
  }

  public static function getToolSectionId()
  {
    return 378;
  }

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

    return true;
  }

  

  
  protected function preKursUpdateHook($data, $kurs)
  {
    list($data, $kurs) = parent::preKursUpdateHook($data, $kurs);
    $hasChanges = \ArrayOperations::any($data, \FunctionOperations::getAttribute('checked'));
    if ($hasChanges) {
      $kennung = $this->getMitarbeiterKennung();
      if (!empty($kennung)) {
        $data[] = $this->createItem('bearbeiter', $kennung, true);
      }
    }

    return array($data, $kurs);
  }

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

  private function getMitarbeiterKennung(): string
  {
    return \SessionOperations::getCurrentWebToolsMitarbeiterOrEmpty()->kennung;
  }
}