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

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

class ShowSettingsGrafikListenPresenter extends \Kufer\Web\KuferTools\Veranstalter\DozentenInfo\Detailsreiter\Kurse\PdfListen\DruckListen\ShowSettingsDruckListen\ShowSettingsDruckListenPresenter
{
  protected function getView()
  {
    return new ShowSettingsGrafikListenView($this->getViewModel());
  }

  protected function getViewModel()
  {
    $viewModel = new ShowSettingsGrafikListenViewModel();
    
    parent::_setViewModelAttributes($viewModel);
    
    $viewModel->useKurstage = $this->useCaseResponse->useKurstage;

    $viewModel->useZeitbereich = $this->useCaseResponse->useZeitbereich;
    $viewModel->useZeitspanne = $this->useCaseResponse->useZeitspanne;

    
    $viewModel->zeitbereichVon = $this->useCaseResponse->zeitbereichVon;
    $viewModel->zeitbereichBis = $this->useCaseResponse->zeitbereichBis;
    if ($viewModel->useZeitspanne) {
      $viewModel->zeitspanneOptions = $this->_getZeitSpanneOptions();
      $viewModel->zeitbereichSpanne = $this->useCaseResponse->zeitbereichSpanne;
    }
    
    $viewModel->kalwoMonat = $this->useCaseResponse->kalwoMonat;
    $viewModel->kalwoJahr = $this->useCaseResponse->kalwoJahr;
    $viewModel->kalwoNr = $this->useCaseResponse->kalwoNr;
    
    $viewModel->datVon = $this->useCaseResponse->datVon;
    $viewModel->datBis = $this->useCaseResponse->datBis;
    
    $viewModel->useWochenplan = $this->useCaseResponse->useWochenplan;
    $viewModel->useZeitpunkte = $this->useCaseResponse->useZeitpunkte;
    $viewModel->useMonatsplan = $this->useCaseResponse->useMonatsplan;

    if ($viewModel->useZeitpunkte) {
      
      $viewModel->zeitpunkteOutput = $this->_getZeitpunkte();
    }
    
    

    
    $viewModel->auswahlChecked = $this->_getAuswahlRadioCheckedDisabled();
    $viewModel->auswahlInputEnabled = $viewModel->auswahlChecked;

    $viewModel->kwMonatOptions = $this->_getOptions4Monat(); 
    $viewModel->show_endbemerkung = $this->useCaseResponse->show_endbemerkung;

    return $viewModel;
  }

  

  
  private function _getZeitpunkte()
  {
    $zeitpktopt = array();
    
    
    $result = '<div class="col-xs-12 col-sm-6 col-md-5">' . "\n";
    for ($i = 1;$i <= 10;$i++) {
      $zeitpunkt = $this->useCaseResponse->zeitpunkte->zeitab[$i];
      $zeitpktopt[$i] = $this->_getOptions4Zeitpkt($zeitpunkt);
      $checked = ($this->useCaseResponse->zeitpunkte->zeitckx[$i]) ? 'checked' : '';
      

      $result
        .= '<div class="form-group form-inline" id="zeitpunkteab">' . "\n"
        . '<label> '.$i.'. Zeit ab: '
        .    \HTMLOperations::CreateSelectTag($zeitpktopt[$i], 'selectzeitab' . $i, 'form-control', 'selectzeitab' . $i, '', '', '', false)
        .  '</label> '
        . '<label>'.$i.'. Zeitabschnitt ausblenden' . "\n"
        . \HTMLOperations::CreateInputTag('zeitckx' . $i, 'checkbox', 'zeitckx' . $i, 'zeitabcheck', '', '', $checked, '', '')
        . '</label>' . "\n"

        . '</div>' . "\n"; 
    }
    $result .= '</div>' . "\n"; 

    return $result;
  }

  

  
  private function _getOptions4Zeitpkt($pZeitpunkt)
  {
    $optary = array();

    for ($i = 0;$i < 96;$i++) {
      $zeitstr = \DateTimeOperations::getFloatasTimeStringQuarter((float)$i / 4);
      if (\StringOperations::strlen($zeitstr) < 5) {
        $zeitstr = '0' . $zeitstr;
      }
      $selected = ($pZeitpunkt == $zeitstr ? 'selected' : '');
      $optary[$i + 1] = "<option $selected value=$zeitstr>$zeitstr</option>";
    }

    return $optary;
  }

  

  
  private function _getZeitSpanneOptions()
  {
    $optary = array();
    for ($i = 1; $i <= 60; $i++) {
      $zeitstr = \DateTimeOperations::getFloatasTimeStringQuarter((float)$i / 4);
      if (\StringOperations::strlen($zeitstr) < 5) {
        $zeitstr = '0' . $zeitstr;
      }
      $selected = ($this->useCaseResponse->zeitbereichSpanne == $zeitstr ? 'selected' : '');
      $optary[$i + 1] = "<option $selected value=$zeitstr>$zeitstr</option>";
    }

    return $optary;
  }

  

  
  private function _getAuswahlRadioCheckedDisabled()
  {
    $options = array('mon', 'kw', 'dat');
    $checkedAry = array();
    
    foreach ($options as $wert) {
      
      $checkedAry[] = $this->useCaseResponse->auswahl == $wert;
    }

    return $checkedAry;
  }

  

  
  private function _getOptions4Monat()
  {
    $optary = array();
    for ($i = 1;$i <= 12;$i++) {
      $monat = \DateTimeOperations::getNameofMonth($i);
      $selected = ($this->useCaseResponse->kalwoMonat == $monat ? 'selected' : '');
      $optary[] = '<option value=' . $i . ' ' . $selected . '>' . $monat . '</option>';
    }

    return $optary;
  }
}