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

use Kufer\Admin\Classes\Settings\Helper\Tools\LinkHelper;

$sortId = 1;
$toolId = \ToolsAPI::TOOL_TN;

$objsettings = ToolSettingsAPI::getToolSettings($toolId);
$settingsArray = array();

array_push($settingsArray, LinkHelper::createHardlinkSettingItemToWssField(293, $toolId));

$setting = new Setting();
$setting->name = 'kurseproseite';
$setting->description = 'Angezeigte Kurse pro Seite';
$setting->help = '';
$setting->subGroup = 'Kursübersicht';
$setting->toolId = $toolId;
$setting->config->loadConfiguration(SC_INPUTNUMERIC);
$setting->config->size = 4;
$setting->config->maxLength = 4;
$setting->config->allowNegative = false;
$setting->config->HasIncrDecr = true;
array_push($settingsArray, $setting);

$setting = new Setting();
$setting->name = 'sortkurse';
$setting->description = 'Erstes Sortierkriterium für Kurse';
$setting->help = '';
$setting->subGroup = 'Kursübersicht';
$setting->toolId = $toolId;
$setting->config->loadConfiguration(SC_RADIO);
$setting->config->items = array(
    'knr' => 'Kursnummer',
    'beginn_dat' => 'Beginndatum',
    'ende_dat' => 'Endedatum',
    'k.ort' => 'Kursort',
    'aussenst' => 'Aussenstelle',
    'beginn' => 'Beginn-Uhrzeit',
    'ende' => 'Ende-Uhrzeit'
);
array_push($settingsArray, $setting);

$setting = new Setting();
$setting->name = 'sortkurseasc';
$setting->description = 'Erstes Sortierkriterium auf- oder absteigend';
$setting->help = '';
$setting->subGroup = 'Kursübersicht';
$setting->toolId = $toolId;
$setting->config->loadConfiguration(SC_RADIO);
$setting->config->items = array(
    '1' => 'aufsteigend',
    '' => 'absteigend'
);
array_push($settingsArray, $setting);

$setting = new Setting();
$setting->name = 'sortkurse2';
$setting->description = 'Zweites Sortierkriterium für Kurse';
$setting->help = '';
$setting->subGroup = 'Kursübersicht';
$setting->toolId = $toolId;
$setting->config->loadConfiguration(SC_RADIO);
$setting->config->items = array(
    'knr' => 'Kursnummer',
    'beginn_dat' => 'Beginndatum',
    'ende_dat' => 'Endedatum',
    'k.ort' => 'Kursort',
    'aussenst' => 'Aussenstelle',
    'beginn' => 'Beginn-Uhrzeit',
    'ende' => 'Ende-Uhrzeit'
);
array_push($settingsArray, $setting);

$setting = new Setting();
$setting->name = 'sortkurseasc2';
$setting->description = 'Zweites Sortierkriterium auf- oder absteigend';
$setting->help = '';
$setting->subGroup = 'Kursübersicht';
$setting->toolId = $toolId;
$setting->config->loadConfiguration(SC_RADIO);
$setting->config->items = array(
    '1' => 'aufsteigend',
    '' => 'absteigend'
);
array_push($settingsArray, $setting);


if (DBWorkBASysSettings::isBlak()) {
  $setting = new Setting();
  $setting->name = 'blakSchwelle';
  $setting->description = 'Schwellen für die Zertifikatsmeldung';
  $setting->descriptionBeforeInput = true;
  $setting->subGroup = 'Kursübersicht';
  $setting->toolId = $toolId;
  $setting->config->loadConfiguration(SC_BLAK_PUNKTESCHWELLEN);
  array_push($settingsArray, $setting);
}

$setting = new Setting();
$setting->name = 'tnstatus';
$setting->description = 'Einschränkung der Kurse auf Belegungsstatus des Teilnehmers';
$setting->help = 'Wenn kein Status angegeben ist, werden alle Kurse des Teilnehmers ohne Berücksichtigung seiner Belegungsstatus angezeigt.';
$setting->subGroup = 'Kursübersicht';
$setting->toolId = $toolId;
$setting->config->separator = '';
$setting->config->loadConfiguration(SC_MULTISELECT);
$dbhlstatKZ = new DBWorkHLStatusKZ();
$hlstatAry = $dbhlstatKZ->getAll();
foreach ($hlstatAry as $hlstat) {
  if ($hlstat->kennz != '' && $hlstat->kennz != 'F') {
    $statusAry[] = $hlstat->kennz;
    $displayAry[$hlstat->kennz] = 'Status <b>\'' . \CleanOperations::cleanStringForHtml($hlstat->text) . ' (' . \CleanOperations::cleanStringForHtml($hlstat->kennz) . ')' . '\'</b>';
    $setting->config->items[$hlstat->kennz] = $displayAry;
  }
}
$setting->config->items = $displayAry;
array_push($settingsArray, $setting);

$setting = new Setting();
$setting->name = 'useAbweichendeSemester';
$setting->description = 'Von den allgemeinen Semestereinstellungen abweichende Semester verwenden bzw. abweichende Vorbelegung des Kursfilters verwenden';
$setting->help = 'Falls gesetzt, werden die unten angegebenen Semestereinstellungen verwendet, ansonsten die unter Allgemein/Semestereinstellungen';
$setting->subGroup = 'Kursübersicht';
$setting->toolId = $toolId;
$setting->config->loadConfiguration(SC_CHECKBOX);
array_push($settingsArray, $setting);

$setting = new Setting();
$setting->name = 'semlist';
$setting->description = 'Kurse folgender Semester anzeigen';
$setting->help = 'Es können auch mehrere Semester gewählt werden.';
$setting->subGroup = 'Kursübersicht';
$setting->toolId = $toolId;
$setting->config->loadConfiguration(SC_MULTISELECT);
$setting->config->separator = ',';

$semapi = new SemesterHlAPI();
$semesterAry = $semapi->getSemester();
foreach ($semesterAry as $semester) {
  $items[$semester] = 'Semester \'<b>' . $semester . '</b>\'';
}
if (count($items) == 0) {
  $items[''] = 'Es sind keine Semester verfügbar! Bitte überprüfen Sie die
  Hinterlegung der Semester.';
}
$setting->config->items = $items;
array_push($settingsArray, $setting);

$setting = new Setting();
$setting->name = 'keineAusgefallenenKurse';
$setting->description = 'Ausgefallene Kurse ausblenden';
$setting->help = '';
$setting->subGroup = 'Kursübersicht';
$setting->toolId = $toolId;
$setting->config->loadConfiguration(SC_CHECKBOX);
array_push($settingsArray, $setting);

$setting = new Setting();
$setting->name = 'keineAbgeschlossenenKurse';
$setting->description = 'Abgeschlossene Kurse ausblenden';
$setting->help = '';
$setting->subGroup = 'Kursübersicht';
$setting->toolId = $toolId;
$setting->config->loadConfiguration(SC_CHECKBOX);
array_push($settingsArray, $setting);

$setting = new Setting();
$setting->name = 'keineHauptkurse';
$setting->description = 'Hauptkurse von Kursreihen ausblenden';
$setting->help = '';
$setting->subGroup = 'Kursübersicht';
$setting->toolId = $toolId;
$setting->config->loadConfiguration(SC_CHECKBOX);
array_push($settingsArray, $setting);

$settingsArray[] = \Kufer\Admin\Classes\Settings\Helper\Tools\KursStatusHelper::createKursStatusSetting($toolId, $objsettings, 'Kursübersicht');

$setting = new Setting();
$setting->name = 'kursUebersichtAlsTabelle';
$setting->description = 'Stelle Kurse als Tabelle statt Panels dar';
$setting->help = '';
$setting->subGroup = 'Kursübersicht';
$setting->toolId = $toolId;
$setting->config->loadConfiguration(SC_CHECKBOX);
array_push($settingsArray, $setting);

$setting = new Setting();
$setting->name = 'kursFilterVorbelegen';
$setting->description = 'Kursfilter vorbelegen';
$setting->subGroup = 'Kursfilter:';
$setting->toolId = $toolId;
$setting->config->loadConfiguration(SC_MULTISELECT);
$setting->config->items = array('W' => '<b>Kursfilter vorbelegen:</b><br /><label for="knr_von" class="knr_label">Kursnummer von<input type="text" name="knr_von" class="knr_filter" id="knr_von" value="' . $objsettings->knrVon . '"></label><br />'
    . '<label for="knr_bis" class="knr_label">Kursnummer bis<input type="text" name="knr_bis" class="knr_filter" id="knr_bis" value="' . $objsettings->knrBis . '"></label>');
array_push($settingsArray, $setting);

$setting = new Setting();
$setting->name = 'ignoreKursBereichFromUser';
$setting->description = 'Benutzer kann den Kursnummernbereich nicht ändern';
$setting->help = 'Ist dieser Haken gesetzt, so werden die durch den Benutzer im Filterdialog auf der Kursübersicht gesetzten Filtereinstellungen für den Kursnummernbereich '
               . '(d.h. Kursnr von - bis) ignoriert. Es werden also weiterhin die im Web-Admin gesetzten Filtereinstellungen für den Kursnummernbereich beibehalten, auch wenn der '
               . ' Benutzer diese im Filterdialog ändern sollte. ';
$setting->subGroup = 'Kursfilter:';
$setting->toolId = $toolId;
$setting->config->loadConfiguration(SC_CHECKBOX);
array_push($settingsArray, $setting);

$setting = new Setting();
$setting->name = 'kursFilterKursbeginnVorbelegen';
$setting->description = 'Datumsbereich für den Kursbeginn ausgehend vom aktuellen Datum';
$setting->help = 'In den folgenden beiden Feldern ist die Anzahl der Tage bzw. Monate ausgehend vom '
        . 'aktuellen Datum in Vorwärts- bzw. Rückwärtsrichtung (negative Werte) anzugeben. Der Werte '
        . 'unter bis muss hierbei groesser gleich dem Wert unter von sein.';
$setting->subGroup = 'Kursfilter:';
$setting->toolId = $toolId;
$setting->config->loadConfiguration(SC_MULTISELECT);

$setting->config->items = array('T' => 'Tag von  <label for="kurs_begVon" class="kursbeg_label"><input type="text" name="kurs_begVon" class="kursbeg_filter HasIncrDecr" id="kurs_begVon" value="' . $objsettings->kursBegVon . '"></label>'
    . '<label for="kurs_begBis" class="kursbeg_label">bis <input type="text" name="kurs_begBis" class="kursbeg_filter HasIncrDecr" id="kurs_begBis" value="' . $objsettings->kursBegBis . '"></label>',

    'M' => 'Monat von  <label for="kurs_begMonatVon" class="kursbegMonat_label"><input type="text" name="kurs_begMonatVon" class="kursbegMonat_filter HasIncrDecr" id="kurs_begMonatVon" value="' . $objsettings->kursBegMonatVon . '"></label>'
    . '<label for="kurs_begMonatBis" class="kursbeg_label">bis <input type="text" name="kurs_begMonatBis" class="kursbegMonat_filter HasIncrDecr" id="kurs_begMonatBis" value="' . $objsettings->kursBegMonatBis . '"></label>');
array_push($settingsArray, $setting);

$setting = new Setting();
$setting->name = 'showAllHinterlegungenFilter';
$setting->description = 'Alle Optionen der Hinterlegungen bei Kursfilter anzeigen';
$setting->help = 'Dies kann bei wenig Hinterlegungen, den Dialog schneller erscheinen lassen. Jedoch gibt es dann Optionen im Dialog, die zu keinem Resultat führen werden.';
$setting->subGroup = 'Kursfilter:';
$setting->toolId = $toolId;
$setting->config->loadConfiguration(SC_CHECKBOX);
array_push($settingsArray, $setting);

if (\DBWorkBASysSettings::isKoelnAksAkademieSteuern()) {
  $setting = new Setting();
  $setting->name = 'aksProtokollSerivceUrl';
  $setting->description = 'URL Protokollservice';
  $setting->help = 'Es muss die komplette URL zum Protokollservice (einschließlich login-ps.php) angegeben werden. Beispiel: https://www.aks-online.de/fileadmin/protokollservice/login-ps.php';
  $setting->subGroup = 'Sonstiges';
  $setting->toolId = $toolId;
  $setting->config->loadConfiguration(SC_INPUTNORMAL);
  array_push($settingsArray, $setting);

  $setting = new Setting();
  $setting->name = 'aksWPOnlineUrl';
  $setting->description = 'URL WP-Online (Flipbooks)';
  $setting->help = 'Es muss die komplette URL zum Ordner, der die Flipbooks enthält, angegeben werden. Beispiel: https://www.aks-online.de/fileadmin/wp-online/';
  $setting->subGroup = 'Sonstiges';
  $setting->toolId = $toolId;
  $setting->config->loadConfiguration(SC_INPUTNORMAL);
  array_push($settingsArray, $setting);
}

$setting = new Setting();
$setting->name = 'buttonBezeichnungZukuenftigeKurse';
$setting->description = 'Bezeichnung für den Button <b>Zukünftige Kurse</b>';
$setting->subGroup = 'Button Bezeichnung';
$setting->toolId = $toolId;
$setting->config->loadConfiguration(SC_INPUTNORMAL);
array_push($settingsArray, $setting);

$setting = new Setting();
$setting->name = 'buttonBezeichnungBeendeteKurse';
$setting->description = 'Bezeichnung für den Button <b>Beendete Kurse</b>';
$setting->subGroup = 'Button Bezeichnung';
$setting->toolId = $toolId;
$setting->config->loadConfiguration(SC_INPUTNORMAL);
array_push($settingsArray, $setting);