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

namespace Kufer\Web\KuferTools\Veranstalter\DozentenInfo\Detailsreiter\Kurse\PdfListen\HonorarListen\PrintHonorarListen;


class PrintHonorarListenBySettingsUseCase extends PrintHonorarListenUseCase
{
  
  protected $druckSettingsError;

  public function __construct($pRequest)
  {
    
    parent::__construct($pRequest);
    $this->druckSettingsError = new \Kufer\Web\KuferTools\Basis\PdfListen\PrintPdfListen\DruckSettingsErrorHandler();
  }

  
  public function action()
  {
    
    if (!$this->_printAllowed4User) {
      $fehlerText = ' Keine Zugriffsberechtigung auf einen Kurs oder mehrere Kurse für Liste ' . $this->request->listName . '.';
      \Logger::logg($fehlerText, 120);
    } else {
      
      
      try {
        
        

        $this->listObj->loadSettingsFromReqObj($this->request->postSettings);
        if ($this->request->listName == 'FinanzamtVorlage' && !is_numeric($this->request->postSettings->kurstage->zahljahr)) {
          $faultMessage = 'Das ausgewählte Jahr ist leer oder keine Zahl!' . BR . ' Eingabewert für das Jahr: '
                  . $this->request->postSettings->kurstage->zahljahr;

          throw new \Exception($faultMessage);
        }
      } catch (\Exception $ex) {
        $this->druckSettingsError->handleError($ex->getMessage(), 51);
      }
      
    }

    return $this->getResponse();
  }

  
  protected function getResponse()
  {
    $this->response = parent::getResponse();
    $this->druckSettingsError->setPostError2Response($this->response);

    return $this->response;
  }

  
  protected function getPrintListenResponse()
  {
    return new \Kufer\Web\KuferTools\Basis\PdfListen\PrintPdfListen\PrintPdfListenBySettingsResponse();
  }
}