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

namespace Kufer\KuferTools\Dozent\KursUebersicht\Detailsreiter\Honorar\GlindeVhs\HonorarPdf;

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

  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 = \Kufer\KuferTools\Dozent\KursUebersicht\Detailsreiter\Honorar\Vertrag\Utils\VertragUtilsGlindeVhs::getVertragUtils($this->request->knr);

    return $vertragUtils->isVertragsDruckAllowed();
  }

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

    $honorarAbrechnungPdf = new HonorarAbrechnung($this->request, $kurs, $dozent);

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

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

    return $this->response;
  }
}

class HonorarAbrechnungDruckenRequest
{
  public $knr;
  public $ueMin45;
  public $ueMin60;
  public $auslagenBetrag;
  public $abschlagBetrag;
  public $mitMwst;
}

class HonorarAbrechnungDruckenResponse extends \Kufer\KuferTools\Basis\UseCase\ToolResponse
{
  public $honorarAbrechnungPdf;
}