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

  
  define('ISKUFERTOOLS', true);
  

if (!defined('BASEDIR')) {
  include_once '..' . DIRECTORY_SEPARATOR . 'classes' . DIRECTORY_SEPARATOR . 'constants.php';
}

CodingOperations::encodeEingaben();
CodingOperations::setObStartIfInternalAndExternalEncodingAreDiffrent();
CodingOperations::setEncodingResponseHeader();

if (!session_id()) {
  session_start();
}


if (!SessionOperations::isAdmin()) {
  header('Location: index.php?sessionfail=1');
  die();
}

  SecurityOperations::PurgeInput();

  $obj = new SaveDruckListe();
  $obj->save();


class SaveDruckListe
{
  public function save()
  {

      
    $fehlermeldung = '';
    
    
    if (GetOperations::isDefined('copy')) {
      $tool = GetOperations::getVarValue('toolid');
      $selected = GetOperations::getVarValue('copy');
      $liste = DruckListeFactory::create($selected, $tool);
      if (!$liste) {
        die('Schwerer Fehler: Listenobjekt konnte nicht erzeugt werden!');
      }

      
      
      switch ($liste->getListTyp()) {
            case 'D':  
            case 'W':  
            case 'F': 
              

              $dbwsql = new DBWorkHLDozVT();
              $sqlSettings = $dbwsql->getVertragByTyp($liste->getListTyp());

              $settings = new \webtools\drucklisten\DruckSheetSettings();
              if ($sqlSettings) {
                $settings->fromHLDozVT($sqlSettings);
              } else {
                $fehlermeldung = '&fehler=keineEinstellungenInSql';
              }

              
              $settings->druckbereich->hochformat = 1;
              break;
                    
            case '1': 
              
              

              $dbwsql = new DBWorkBasysKstamm();
              $sqlSettings = $dbwsql->getKursstammBlatt();
              $settings = new \webtools\drucklisten\StammblattListSettings();
              
              $settings->fromBasysKstamm($sqlSettings);
              break;

          
           
    
        }

      $dbsettings = $settings->toDruckListSettings($liste->getListTyp());

      $dbw = new DBWorkDruckListSettings();
      $dbw->addSettings($liste->getListID(), $tool, $dbsettings);
      $sight = GetOperations::getVarValue('sightid');
    }
    
    elseif (GetOperations::isDefined('standardliste')) {
      $tool = GetOperations::getVarValue('toolid');
      $selected = GetOperations::getVarValue('standardliste');
      $liste = DruckListeFactory::create($selected, $tool);
      
      if (!$liste) {
        die('Schwerer Fehler: Listenobjekt konnte nicht erzeugt werden!');
      }
      
      $settings = new TNGrafikSettings($tool);

      
      switch ($liste->getListTyp()) {
          
          case '22':  
              
              
              $settings->title1 = 'Ihr Stundenplan';
              $settings->druckbereich->hochformat = true;

            $defaultWotagAry = array('Mo' => '', 'Di' => '', 'Mi' => '', 'Do' => '', 'Fr' => '', 'Sa' => '', 'So' => '');
                $settings->wochentage = new \webtools\drucklisten\Wochentage($defaultWotagAry);

                $festHinterlegteKurszeiten = array();
                $festHinterlegteKurszeiten[0] = new StundenplanUhrzeit('08:00', '09:30', 48, false);
                $festHinterlegteKurszeiten[1] = new StundenplanUhrzeit('09:45', '11:15', 48, false);
                $festHinterlegteKurszeiten[2] = new StundenplanUhrzeit('11:15', '11:30', 8, true);
                $festHinterlegteKurszeiten[3] = new StundenplanUhrzeit('11:30', '13:00', 48, false);
                $festHinterlegteKurszeiten[4] = new StundenplanUhrzeit('13:00', '14:00', 32, true);
                $festHinterlegteKurszeiten[5] = new StundenplanUhrzeit('14:00', '14:45', 48, false);
                $festHinterlegteKurszeiten[6] = new StundenplanUhrzeit('14:45', '15:00', 8, true);
                $festHinterlegteKurszeiten[7] = new StundenplanUhrzeit('15:00', '16:30', 48, false);
                $settings->setStundenplanZeitSettings($festHinterlegteKurszeiten);
            break;

        
         } 
      
      
      
      $dbsettings = $settings->toDruckListSettings($liste->getListTyp());
      
      $dbsettings->description = $selected;
      $dbw = new DBWorkDruckListSettings();
      $dbw->addSettings($liste->getListID(), $tool, $dbsettings);

      
      $sight = GetOperations::getVarValue('sightid');
    }

    
    else {
      $tool = PostOperations::getVarValue('toolid');
      $liste = DruckListeFactory::create(PostOperations::getVarValue('art'), $tool);


      if (!$liste) {
        die('Schwerer Fehler: Listenobjekt konnte nicht erzeugt werden!');
      }

      
      

      $drucksheetsettings = $liste->settings;
      
      $drucksheetsettings->loadFromPOST($liste);

      
      $dbsettings = $drucksheetsettings->toDruckListSettings($liste->getListTyp());
      
      $dbsettings->description = PostOperations::getVarValue('art');
      $dbw = new DBWorkDruckListSettings();
      $dbw->addSettings($liste->getListID(), PostOperations::getVarValue('toolid'), $dbsettings);

      $sight = PostOperations::getVarValue('sightid');
      $selected = PostOperations::getVarValue('art');

      $toolId = PostOperations::getVarValue('toolid');
      $toolSettings = ToolSettingsAPI::getToolSettings($toolId);

      $toolSettingsvalue = $liste->setVertraglisteName($toolSettings, PostOperations::getVarValue('vertraglisteName'));
      $toolSettingsvalue = $liste->setVertraglisteBezeichnung($toolSettingsvalue, PostOperations::getVarValue('vertraglisteBezeichnung'));
      $toolSettingsvalue = $liste->setVertraglisteTitel($toolSettingsvalue, PostOperations::getVarValue('vertraglisteTitel'));

      ToolSettingsAPI::setToolSettings($toolSettingsvalue);
    }
    
    header("location: hleinstell.php?sightid=$sight&tool=$tool&liste=$selected$fehlermeldung");
  }
}