<?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_KURSUEBERSICHT_DOZ;

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

$settingsArray = array();

array_push($settingsArray, LinkHelper::createHardlinkSettingItemToWssField(1, $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(
    'nr' => 'Kursnummer',
    'beginn_dat' => 'Beginndatum',
    'ende_dat' => 'Endedatum',
    '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(
    'nr' => 'Kursnummer',
    'beginn_dat' => 'Beginndatum',
    'ende_dat' => 'Endedatum',
    '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);

$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();
$items = array();
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 = 'Bewirkt, dass abgeschlossene Kurse nicht in der Kursübersicht angezeigt werden.';
$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 = 'Bewirkt, dass abgeschlossene Kurse nicht in der Kursübersicht angezeigt werden.';
$setting->subGroup = 'Kursübersicht';
$setting->toolId = $toolId;
$setting->config->loadConfiguration(SC_CHECKBOX);
array_push($settingsArray, $setting);

$setting = new Setting();
$setting->name = 'keineKurseOhneFreigegebenemVertrag';
$setting->description = 'Kurse ohne freigegebenem Vertrag ausblenden';
$setting->help = 'Bewirkt, dass Kurse ohne Vertragsfreigabe nicht in der Kursübersicht angezeigt werden.';
$setting->subGroup = 'Kursübersicht';
$setting->toolId = $toolId;
$setting->config->loadConfiguration(SC_CHECKBOX);
array_push($settingsArray, $setting);

$setting = new Setting();
$setting->name = 'notShowAbgeschlosseneKurse';
$setting->description = 'Abgeschlossene Kurse NICHT in den Drucklisten anzeigen';
$setting->help = 'Bewirkt, dass abgeschlossene Kurse nur in den PDF Drucklisten nicht angezeigt werden. Ist nicht von den Allgemeinen Einstellungen für '
                 . 'Semester und Kursfilter abhängig, sondern gilt nur für Tool Kursübersicht für Dozenten.';
$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');

$settingsArray[] = \Kufer\Web\Admin\Classes\Settings\Helper\Tools\KursDozententypHelper::createKursDozententypSetting($toolId, '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 = 'teilnehmerSuche';
$setting->description = 'Benutzer kann Kurse mit Teilnehmern suchen';
$setting->help = 'Ist dieser Haken gesetzt, so werden dem Benutzer im Filterdialog ein Suchfeld für Teilnehmer angezeigt.';
$setting->subGroup = 'Kursfilter:';
$setting->toolId = $toolId;
$setting->config->loadConfiguration(SC_CHECKBOX);
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);

$setting = new Setting();
$setting->name = 'kurstageAktivLehrendDozentVorbelegen';
$setting->description = '"Aktiv Lehrend" in Filter vorbelegen';
$setting->help = '';
$setting->subGroup = 'Kursfilter:';
$setting->toolId = $toolId;
$setting->config->loadConfiguration(SC_CHECKBOX);
array_push($settingsArray, $setting);



if (Kufer\Web\KuferTools\Dozent\KursUebersicht\Detailsreiter\Honorar\Vertrag\Utils\VertragUtils::hasEinrichtungAccessToVertragStatus()) {
  $setting = new Setting();
  $setting->name = 'vertragStatusNichtErmittelt';
  $setting->description = 'Vertragsstatus konnte nicht ermittelt werden';
  $setting->help = 'Wenn nichts eingetragen ist, wird das Standardsymbol ausgegeben: &lt;i class="fa fa-question-circle hasToolTip" style="color:red;" title="Vertragsstatus konnte nicht ermittelt werden."&gt;&lt;/i&gt;';
  $setting->subGroup = 'Vertragsstatus Symbole';
  $setting->toolId = $toolId;
  $setting->config->loadConfiguration(SC_INPUTNORMAL);
  array_push($settingsArray, $setting);

  $setting = new Setting();
  $setting->name = 'vertragStatusNichtFreigegeben';
  $setting->description = 'Vertrag noch nicht freigegeben';
  $setting->help = 'Wenn nichts eingetragen ist, wird das Standardsymbol ausgegeben: &lt;i class="fa fa-times-circle hasToolTip" style="color:red;" title="Vertrag noch nicht freigegeben"&gt;&lt;/i&gt;';
  $setting->subGroup = 'Vertragsstatus Symbole';
  $setting->toolId = $toolId;
  $setting->config->loadConfiguration(SC_INPUTNORMAL);
  array_push($settingsArray, $setting);

  $setting = new Setting();
  $setting->name = 'vertragStatusFreigegeben';
  $setting->description = 'Vertrag freigegeben, aber noch nicht akzeptiert';
  $setting->help = 'Wenn nichts eingetragen ist, wird das Standardsymbol ausgegeben: &lt;i class="fa fa-exclamation-circle hasToolTip" style="color:orange;" title="Vertrag freigegeben, aber noch nicht akzeptiert"&gt;&lt;/i&gt;';
  $setting->subGroup = 'Vertragsstatus Symbole';
  $setting->toolId = $toolId;
  $setting->config->loadConfiguration(SC_INPUTNORMAL);
  array_push($settingsArray, $setting);

  $setting = new Setting();
  $setting->name = 'vertragStatusAkzeptiert';
  $setting->description = 'Vertrag akzeptiert';
  $setting->help = 'Wenn nichts eingetragen ist, wird das Standardsymbol ausgegeben: &lt;i class="fa fa-check-circle hasToolTip" style="color:green;" title="Vertrag akzeptiert"&gt;&lt;/i&gt;';
  $setting->subGroup = 'Vertragsstatus Symbole';
  $setting->toolId = $toolId;
  $setting->config->loadConfiguration(SC_INPUTNORMAL);
  array_push($settingsArray, $setting);

  $setting = new Setting();
  $setting->name = 'vertragStatusAbgelehnt';
  $setting->description = 'Vertrag abgelehnt';
  $setting->help = 'Wenn nichts eingetragen ist, wird das Standardsymbol ausgegeben: &lt;i class="fa fa-minus-circle hasToolTip" style="color:red;" title="Vertrag abgelehnt"&gt;&lt;/i&gt;';
  $setting->subGroup = 'Vertragsstatus Symbole';
  $setting->toolId = $toolId;
  $setting->config->loadConfiguration(SC_INPUTNORMAL);
  array_push($settingsArray, $setting);
}



$settingsArray[] = LinkHelper::createHardlinkSettingItemToToolSetting(
  'doz_kursuebersicht_reiter_teilnehmer',
  'Teilnehmerdaten',
  $toolId,
  'Teilnehmerdaten anzeigen'
);



$setting = new Setting();
$setting->name = 'automatischeInfoAnEinrichtungBeiListendruck';
$setting->description = 'Die Einrichtung über den Druck von PDF-Listen automatisch informieren';
$setting->help = '';
$setting->subGroup = 'PDF-Listen';
$setting->toolId = $toolId;
$setting->config->loadConfiguration(SC_CHECKBOX);
array_push($settingsArray, $setting);

$setting = new Setting();
$setting->name = 'dozHatListeGedruckt_uebertragungper';
$setting->description = 'Übermittlung der Information per';
$setting->help = '';
$setting->subGroup = 'PDF-Listen';
$setting->toolId = $toolId;
$setting->config->loadConfiguration(SC_RADIO);
$items = array(HATLISTEGEDRUCKT_MAIL => 'E-Mail');
if (SessionOperations::isDmzBetrieb()) {
  $items[HATLISTEGEDRUCKT_DMZ] = 'DMZ';
} elseif (!SessionOperations::isReplikat()) {
  $items[HATLISTEGEDRUCKT_DIREKT] = 'Online';
}
$setting->config->items = $items;
array_push($settingsArray, $setting);

$setting = new Setting();
$setting->name = 'dozHatListeGeduruckt_email';
$setting->description = 'Ziel-E-Mail-Adresse';
$setting->help = 'Ist hier keine gültige E-Mail-Adresse angegeben, so wird die zentrale E-Mail-Adresse der KuferTools verwendet';
$setting->subGroup = 'PDF-Listen';
$setting->toolId = $toolId;
$setting->config->loadConfiguration(SC_INPUTNORMAL);
array_push($settingsArray, $setting);

$setting = new Setting();
$setting->name = 'enableDozHatListeGedrucktButton';
$setting->description = 'Die Einrichtung über den Druck von PDF-Listen per Button informieren';
$setting->help = 'Diese wird nur berücksichtigt, wenn die Einstellung "Die Einrichtung über den Druck von PDF-Listen automatisch informieren" nicht gesetzt ist.';
$setting->subGroup = 'PDF-Listen';
$setting->toolId = $toolId;
$setting->config->loadConfiguration(SC_CHECKBOX);
array_push($settingsArray, $setting);

$setting = new Setting();
$setting->name = 'dozHatListeGeduruckt_beschriftung';
$setting->description = 'Beschriftung des Buttons';
$setting->help = '';
$setting->subGroup = 'PDF-Listen';
$setting->toolId = $toolId;
$setting->config->loadConfiguration(SC_INPUTNORMAL);
array_push($settingsArray, $setting);

$setting = new Setting();
$setting->name = 'dozHatListeGeduruckt_beschreibung';
$setting->description = 'Beschreibung des Buttons';
$setting->help = 'wird als Tooltip des Buttons angezeigt';
$setting->subGroup = 'PDF-Listen';
$setting->toolId = $toolId;
$setting->config->loadConfiguration(SC_INPUTNORMAL);
array_push($settingsArray, $setting);

$setting = new Setting();
$setting->name = 'kursuebersichtDatenAenderungMailAnPlanMa';
$setting->description = 'Benachrichtigung an den planenden Mitarbeiter des Kurses versenden';
$setting->help = '';
$setting->subGroup = 'E-Mail-Benachrichtigungen nach Änderung von Belegungsdaten versenden';
$setting->toolId = $toolId;
$setting->config->loadConfiguration(SC_CHECKBOX);
array_push($settingsArray, $setting);

$setting = new Setting();
$setting->name = 'kursuebersichtDatenAenderungMailAnVerwMa';
$setting->description = 'Benachrichtigung an den verwaltenden Mitarbeiter des Kurses versenden';
$setting->help = '';
$setting->subGroup = 'E-Mail-Benachrichtigungen nach Änderung von Belegungsdaten versenden';
$setting->toolId = $toolId;
$setting->config->loadConfiguration(SC_CHECKBOX);
array_push($settingsArray, $setting);

$setting = new Setting();
$setting->name = 'kursuebersichtDatenAenderungMailAnVerantwMa';
$setting->description = 'Benachrichtigung an den verantwortenden Mitarbeiter des Kurses versenden';
$setting->help = '';
$setting->subGroup = 'E-Mail-Benachrichtigungen nach Änderung von Belegungsdaten versenden';
$setting->toolId = $toolId;
$setting->config->loadConfiguration(SC_CHECKBOX);
array_push($settingsArray, $setting);

$setting = new Setting();
$setting->name = 'kursuebersichtDatenAenderungMailAnEinrichtung';
$setting->description = 'Benachrichtigung an die Schulungseinrichtung versenden';
$setting->subGroup = 'E-Mail-Benachrichtigungen nach Änderung von Belegungsdaten versenden';
$setting->help = '';
$setting->toolId = $toolId;
$setting->config->loadConfiguration(SC_CHECKBOX);
array_push($settingsArray, $setting);

$setting = new Setting();
$setting->name = 'buttonBezeichnungen';
$setting->description = 'Beschriftung der Buttons ändern';
$setting->subGroup = 'Buttons Beschriftung';
$setting->toolId = $toolId;
$setting->config->loadConfiguration(SC_MULTIHYBRID);
$buttonbezeichnung = new ButtonBeschriftung_DozKursUebersicht();
$buttonConfigAry = $buttonbezeichnung->getButtonConfig();

foreach ($buttonConfigAry as $buttonConfig) {
  $setting->config->items['text'][$buttonConfig->defaultText] = $buttonConfig->bezeichnung;
}
array_push($settingsArray, $setting);