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

namespace Kufer\Web\KuferTools\Basis\PdfListen\KurseListen\PrintKurseListen;


abstract class PrintKurseListenBySettingsController extends \Kufer\Web\KuferTools\Basis\PdfListen\PrintPdfListen\PrintPdfListenBySettingsController
{
  
  protected function _getDruckSettingsObject()
  {
    if ($this->listName === 'Kursstammblattliste') {
      $settingsObj = new \webtools\drucklisten\StammblattListSettings();
    } elseif ($this->listName === 'Lehrplanliste') {
      $settingsObj = new \webtools\drucklisten\LehrplanlisteSettings();
    } elseif ($this->listName === 'Lehrplantabelle') {
      $settingsObj = new \webtools\drucklisten\LehrplantabelleSettings();
    } else {
      $settingsObj = new \webtools\drucklisten\DruckSheetSettings();
    }

    return $settingsObj;
  }

  protected function _getPostSettings()
  {
    $settingsObj = parent::_getPostSettings();
    
    if ($this->listName === 'Kursstammblattliste' || $this->listName === 'Lehrplanliste' || $this->listName === 'Lehrplantabelle') {
      $vars = get_object_vars($settingsObj->einstellDarstellung);
      foreach ($vars as $name => $wert) {
        $optionName = $name;
        if ($this->listName === 'Kursstammblattliste') {
          $optionName = 'ein_' . $name;
        }
        $settingsObj->einstellDarstellung->{$name} = \PostOperations::isDefined($optionName);
      }
    }

    return $settingsObj;
  }
}