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

namespace Kufer\KuferTools\Basis\DrucklistenAllgemein\Drucklisten\ShowSettingsKurseListen;

abstract class ShowSettingsDruckListenAllgemeinPresenter extends \Kufer\KuferTools\Basis\Presenter\Presenter
{
  protected function _setViewModelAttributes($pViewModel)
  {
    $pViewModel->datamodulListObj = $this->useCaseResponse->datamodulListObj;
    
    $pViewModel->name = $this->useCaseResponse->name;

    
    $pViewModel->ueberschrift = $this->useCaseResponse->ueberschrift;
    $pViewModel->subtitle = $this->useCaseResponse->subtitle;
    $pViewModel->endbemerkung = $this->useCaseResponse->endbemerkung;

    
    
    
    
    $pViewModel->druckBereichFormatChecked = $this->useCaseResponse->druckBereichFormatChecked;
    $pViewModel->druckBereichFormatDisabled = $this->useCaseResponse->druckBereichFormatDisabled;

    
    $pViewModel->kursTageVon = $this->useCaseResponse->kursTageVon;
    $pViewModel->kursTageBis = $this->useCaseResponse->kursTageBis;
    $pViewModel->kursTageDisabled = $this->useCaseResponse->kursTageDisabled;
    

    
    $pViewModel = $this->getVertraegeSettings4View($pViewModel);
    $pViewModel->stammblattEinstellungen = $this->_getStammBlattEinstellungen();
    $pViewModel->lehrplanEinstellungen = $this->_getLehrplanEinstellungen();
    $pViewModel->lehrplantabelleEinstellungen = $this->_getLehrplanTabelleEinstellungen();
    $pViewModel->druckAutomatischMeldung = $this->useCaseResponse->druckAutomatischMeldung;

    if ($this->useCaseResponse->name == 'Einsatzplanliste') {
      $pViewModel->ausgefTage = $this->useCaseResponse->ausgefTage;
      $pViewModel->ktStatus = $this->useCaseResponse->ktStatus;
    }

    return $pViewModel;
  }

  
  public function present()
  {
    $view = $this->getView();

    if ($this->useCaseResponse->generateList) {
      return $view->show();
    }

    return $view->getNoColumn();
  }

  
  private function getVertraegeSettings4View($pViewModel)
  {
    if ($this->useCaseResponse->useUnterschrift) {
      if (isset($this->useCaseResponse->vertraglisteName)) {
        $pViewModel->vertraglisteName = $this->useCaseResponse->vertraglisteName;
        $pViewModel->vertraglisteBezeichnung = $this->useCaseResponse->vertraglisteBezeichnung;
        $pViewModel->vertraglisteTitel = $this->useCaseResponse->vertraglisteTitel;
      }
    }

    return $pViewModel;
  }

  
  private function _getStammBlattEinstellungen()
  {
    
    if ($this->useCaseResponse->useStammblatt) {
      $viewModel = new \Kufer\KuferTools\Basis\DrucklistenAllgemein\Drucklisten\ShowSettingsDruckListen\ShowSettingsDruckListenAllgemeinStammblattViewModel();
      $viewModel->einstellOptionChecked = $this->useCaseResponse->einstellOptionChecked;
      $viewModel->einstellOptionEnabled = $this->useCaseResponse->einstellOptionEnabled;
      $view = new \Kufer\KuferTools\Basis\DrucklistenAllgemein\Drucklisten\ShowSettingsDruckListen\ShowSettingsDruckListenAllgemeinStammblattView($viewModel);

      return $view->show();
    }

    return '';
  }

  
  private function _getLehrplanEinstellungen()
  {
    
    if ($this->useCaseResponse->useLehrplan) {
      $viewModel = new \Kufer\KuferTools\Basis\DrucklistenAllgemein\Drucklisten\ShowSettingsDruckListen\ShowSettingsDruckListenAllgemeinLehrplanViewModel();
      $viewModel->einstellOptionChecked = $this->useCaseResponse->einstellOptionChecked;
      $viewModel->einstellOptionEnabled = $this->useCaseResponse->einstellOptionEnabled;
      $viewModel->showKurstageNurVonEingeloggtemDozent = $this->useCaseResponse->showKurstageNurVonEingeloggtemDozent;
      $view = new \Kufer\KuferTools\Basis\DrucklistenAllgemein\Drucklisten\ShowSettingsDruckListen\ShowSettingsDruckListenAllgemeinLehrplanView($viewModel);

      return $view->show();
    }

    return '';
  }

  
  private function _getLehrplanTabelleEinstellungen()
  {
    
    if ($this->useCaseResponse->useLehrplanTabelle) {
      $viewModel = new \Kufer\KuferTools\Basis\DrucklistenAllgemein\Drucklisten\ShowSettingsDruckListen\ShowSettingsDruckListenAllgemeinLehrplanTabelleViewModel();
      $viewModel->einstellOptionChecked = $this->useCaseResponse->einstellOptionChecked;
      $viewModel->einstellOptionEnabled = $this->useCaseResponse->einstellOptionEnabled;
      $viewModel->showKurstageNurVonEingeloggtemDozent = $this->useCaseResponse->showKurstageNurVonEingeloggtemDozent;
      $view = new \Kufer\KuferTools\Basis\DrucklistenAllgemein\Drucklisten\ShowSettingsDruckListen\ShowSettingsDruckListenAllgemeinLehrplanTabelleView($viewModel);

      return $view->show();
    }

    return '';
  }
}