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

namespace Kufer\Web\KuferTools\Mitarbeiter\KursUebersicht\KursUebersicht;

use Kufer\Web\KuferTools\Utils\StatusMessages\StatusMessage;


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

  public static function getToolSectionId()
  {
    return 26;
  }

  public function hasAccess($pToolSectionId = null)
  {
    if (!parent::hasAccess($pToolSectionId)) {
      return false;
    }

    if (!\DBWorkBASysSettings::isSalzburgBildungswerk()) {
      return false;
    }

    return true;
  }

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

  private function gehoertKursplanungZumMitarbeiter()
  {
    return in_array($this->request->nr, $this->getAlleIds());
  }

  public function action()
  {
    $success = false;
    
    if (!$this->request->isRefresh && $this->request->isXsrfOk && $this->gehoertKursplanungZumMitarbeiter()) {
      $success = \KursplanungAPI::deleteKursplanung($this->request->nr);
      if ($success) {
        $this->response->statusMeldungen->addStatusMessageObj(new \Kufer\Web\KuferTools\Utils\StatusMessages\PlainStatusMessage(StatusMessage::MSG_BOX_SUCCESS, 'Die Kursplanung wurde erfolgreich gelöscht.'));
      } else {
        $this->response->statusMeldungen->addStatusMessageObj(new \Kufer\Web\KuferTools\Utils\StatusMessages\PlainStatusMessage(StatusMessage::MSG_BOX_ERROR, 'Beim Löschen der Kursplanung ist ein Fehler aufgetreten.'));
      }
    }

    return $this->getResponse($success);
  }

  protected function getAlleIds()
  {
    $dbwKursPlanung = new \DBWorkKursplanung(1, true);
    $kursplanungen = $dbwKursPlanung->getKursplanungen4Erfasser($this->getUser()->id);

    return \ArrayOperations::mapAttribut($kursplanungen, 'id');
  }

  public function getResponse($success)
  {
    $this->response->success = $success;

    return $this->response;
  }
}

class KursplanungLoeschenRequest extends \Kufer\Web\KuferTools\Basis\KursUebersicht\KursUebersichtRequest
{
  public $nr;
}

class KursplanungLoeschenResponse extends \Kufer\Web\KuferTools\Basis\KursUebersicht\KursUebersichtResponse
{
  public $success = false;
}