<?php
/**
 * @copyright (c) Kufer Software GmbH, Loisachstrasse 4, 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)
  {
  }
}