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

namespace webtools\drucklisten;





class Zeitbereich
{
  
  public $zeitvon;
  
  public $zeitbis;

  
  public $zeitspanne;

  
  public function _getZeitbereichSettings($pZeitvon, $pZeitbis, $pZeitspanne)
  {
    $this->zeitvon = $pZeitvon;
    $this->zeitbis = $pZeitbis;
    $this->zeitspanne = $pZeitspanne;
  }
}


class Zeitpunkte
{
  
  public $zeitab = array();
  public $zeitchx = array();

  public function _getZeitpunktSettings($zeit)
  {
    for ($i = 1;$i <= 10;$i++) {
      $this->zeitchx[$i] = 1;
      $this->zeitab[$i] = $zeit[$i];
    }
  }
} 


class Wochentage
{
  
  public $Mo;
  public $Di;
  public $Mi;
  public $Do;
  public $Fr;
  public $Sa;
  public $So;

  public function __construct($pWotagAry)
  {
    $this->Mo = $pWotagAry['Mo'];
    $this->Di = $pWotagAry['Di'];
    $this->Mi = $pWotagAry['Mi'];
    $this->Do = $pWotagAry['Do'];
    $this->Fr = $pWotagAry['Fr'];
    $this->Sa = $pWotagAry['Sa'];
    $this->So = $pWotagAry['So'];
  }
} 

class Kalenderwoche
{
  
  public $kwjahr;
  
  public $kwnr;
  
  public $kwmonat;

  
  public $auswahl;

  
  public function _getKalenderwochenSettings($pKwjahr, $pKwnr, $pKwmonat, $pAuswahl)
  {
    $this->kwjahr = $pKwjahr;
    $this->kwnr = $pKwnr;
    $this->kwmonat = $pKwmonat;
    $this->auswahl = $pAuswahl;
  }
}

class Druckbereich
{
  
  public $hochformat;
}


class Kurstage
{
  
  public $von;
  
  public $bis;

  
  public $zahljahr;
}


class DruckSheetSettings
{
  
  public $einstellDarstellung;

  
  public $title1;

  
  public $title2;

  
  public $endbem;

  
  public $feed;

  
  public $kurstage;

  
  public $druckbereich;

  
  public $vertraglisteName = '';
  public $vertraglisteBezeichnung = '';
  public $vertraglisteTitel = '';

  public function __construct()
  {
    
    $this->einstellDarstellung = null;
    $this->kurstage = new Kurstage();
    $this->druckbereich = new Druckbereich();
  }

  
  public function loadFromReqObj($pPostSettings, $pGrafikZeitSettObj = null)
  {
    
    $this->druckbereich->hochformat = $pPostSettings->druckbereich->hochformat;
    
    $this->title1 = $pPostSettings->title1;
    
    $this->title2 = $pPostSettings->title2;
    
    $this->endbem = $pPostSettings->endbem;

    if (isset($pPostSettings->kurstage->zahljahr)) {
      $this->kurstage->zahljahr = $pPostSettings->kurstage->zahljahr;
    }

    
    try {
      
      $allowEmptyDate = true;
      

      if (\DateTimeOperations::isValidDate($pPostSettings->kurstage->von, $allowEmptyDate)
              && \DateTimeOperations::isValidDate($pPostSettings->kurstage->bis, $allowEmptyDate)) {
        $this->kurstage->von = $pPostSettings->kurstage->von;
        $this->kurstage->bis = $pPostSettings->kurstage->bis;
      } else {
        $faultMessage = 'Mindestens eine Datumseingabe für die Kurstage enthält einen unerlaubten Wert!' . BR . 'von Datum: '
                . $pPostSettings->kurstage->von . BR . 'bis Datum: ' . $pPostSettings->kurstage->bis;

        throw new \Exception($faultMessage);
      }
    } catch (\Exception $ex) {
      
      throw $ex;
    }
  }

  

  
  public function loadFromPOST($pTnlist = '')
  {
    
    if (\PostOperations::isDefined('format')) {
      $this->druckbereich->hochformat = \PostOperations::getVarValue('format') == 'H';
    }
    
    
    
    if (\PostOperations::isDefined('ueberschrift')) {
      $this->title1 = rtrim(\PostOperations::getVarValue('ueberschrift'));
    }
    
    if (\PostOperations::isDefined('subtitle')) {
      $this->title2 = rtrim(\PostOperations::getVarValue('subtitle'));
    }
    
    if (\PostOperations::isDefined('endbemerkung')) {
      $this->endbem = rtrim(\PostOperations::getVarValue('endbemerkung'));
    }
    
    if (\PostOperations::isDefined('vorschub')) {
      $this->feed = \PostOperations::getVarValue('vorschub');
    }

    
    if (\PostOperations::isDefined('vertraglisteName')) {
      $this->vertraglisteName = \PostOperations::getVarValue('vertraglisteName');
    }
    if (\PostOperations::isDefined('vertraglisteBezeichnung')) {
      $this->vertraglisteBezeichnung = \PostOperations::getVarValue('vertraglisteBezeichnung');
    }
    if (\PostOperations::isDefined('vertraglisteTitel')) {
      $this->vertraglisteTitel = \PostOperations::getVarValue('vertraglisteTitel');
    }
  }

  
  public function toDruckListSettings($pTyp)
  {
    $obj = new \DruckListSettings();
    
    $obj->listsettings = ' ';

    
    $obj->title1 = $this->title1;
    
    $obj->title2 = $this->title2;
    
    $obj->endbem = $this->endbem;
    
    $obj->feed = $this->feed;
    
    $obj->portrait = $this->druckbereich->hochformat;
    
    $obj->typ = $pTyp;

    return $obj;
  }

  
  public function fromDruckListSettings($settings)
  {
    
    $this->title1 = $settings->title1;
    
    $this->title2 = $settings->title2;
    
    $this->endbem = $settings->endbem;
    
    $this->feed = $settings->feed;
    
    isset($this->druckbereich) ?: $this->druckbereich = new Druckbereich();
    $this->druckbereich->hochformat = $settings->portrait;
  }

  
  public function fromHLDozVT($obj)
  {
    
    $this->title1 = $obj->titel1;
    
    $this->title2 = $obj->titel2;
    
    $this->endbem = $obj->ende;
    
    $this->feed = $obj->vorschub;
  }

  
  public function getSettingsfromFile($pToolId, $pListe)
  {
  }
}