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

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

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

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

  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 (!$this->isVertragsDruckAllowed()) {
      return false;
    }

    return true;
  }

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

    return $vertragUtils->isVertragsDruckAllowed();
  }

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

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

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

    return $this->response;
  }
}

class VertragDruckenRequest
{
  public $knr;
}

class VertragDruckenResponse extends \Kufer\Web\KuferTools\Basis\UseCase\ToolResponse
{
  public $vertragPdf;
}