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

namespace Kufer\Web\KuferTools\Veranstalter\DozentenInfo\Detailsreiter\Kurse\PdfListen\GrafikListen\PrintGrafikListen;


class PrintGrafikListenBySettingsUseCase extends PrintGrafikListenUseCase
{
  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->loadSettingsFromRequest();
        
      } catch (\TimeCompareException $timeEx) {
        
        
        $this->druckSettingsError->handleError($timeEx->getMessage(), 52);
      } catch (\Exception $ex) {
        
        
        
        
        $this->druckSettingsError->handleError($ex->getMessage(), 51);
      }
    }

    return $this->getResponse();
  }

  protected function loadSettingsFromRequest()
  {
    $this->listObj->loadSettingsFromReqObj($this->request->postSettings);
  }

  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();
  }
}