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

namespace Kufer\Web\KuferTools\Dozent\KursUebersicht\Detailsreiter\Honorar\HeleneWeberHaus\AuftragsbestaetigungPdf;

use Kufer\Web\KuferTools\Dozent\KursUebersicht\Detailsreiter\Honorar\Vertrag\Utils\VertragUtilsDefaultDruckenAkzeptierenAblehnen;

class AuftragsbestaetigungDruckenUseCase extends \Kufer\Web\KuferTools\Dozent\KursUebersicht\EinzelKursUseCase
{
  public function __construct($request)
  {
    parent::__construct($request, new AuftragsbestaetigungDruckenResponse());
  }

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

  public static function getToolSectionId()
  {
    return 320;
  }

  public function hasAccess($pToolSectionId = null)
  {
    if (!parent::hasAccess()) {
      return false;
    }
    if (!\DBWorkBASysSettings::isHeleneWeberHaus()) {
      return false;
    }
    if (!$this->isAuftragsbestaetigungsDruckAllowed()) {
      return false;
    }

    return true;
  }

  
  private function isAuftragsbestaetigungsDruckAllowed()
  {
    $vertragUtils = VertragUtilsDefaultDruckenAkzeptierenAblehnen::getVertragUtils($this->request->knr);

    return $vertragUtils->isVertragBereitsAkzeptiert();
  }

  public function action()
  {
    $kurs = $this->getKurs($this->request->knr);
    $dozent = \SessionOperations::getCurrentWebToolsDozent();
    $auftragsbestaetigungPdf = new Auftragsbestaetigung($kurs, $dozent);

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

  protected function getResponse($auftragsbestaetigungPdf)
  {
    $this->response->auftragsbestaetigungPdf = $auftragsbestaetigungPdf;

    return $this->response;
  }
}

class AuftragsbestaetigungDruckenRequest
{
  public $knr;
}

class AuftragsbestaetigungDruckenResponse extends \Kufer\Web\KuferTools\Basis\UseCase\ToolResponse
{
  public $auftragsbestaetigungPdf;
}