<?php

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

class ToolRaumReservierung extends ToolBase
{
  public function __construct()
  {
    parent::__construct();
    $this->toolTitle = 'Raumreservierung';
  }

  public function init($pPageId)
  {
    
    $this->checkBrowserReload();

    switch ($pPageId) {
      default:
      case 448:
        $page = $this->_handleRaumReservierung($pPageId);
        break;
    }

    if ($page == null) {
      throw new Exception('ungültige PageId');
    }
    $this->currentPage = $page;
  }

  public function getToolId()
  {
    return \ToolsAPI::TOOL_RAUMRESERVIERUNG_HM;
  }

  
  protected function doByBrowserRefresh()
  {
    $_POST = array();
    $_SERVER['REQUEST_METHOD'] = 'GET';
  }

  private function _handleRaumReservierung($pPageId)
  {
    
    if (PostOperations::isDefined('raumres_kostentraeger')) {
      return $this->_handleRaumReservierungSubmit();
    }

    $dbwKursorte = new DBWorkKursorte(1, true);
    $alleIds = $this->getAlleIdsKursOrte($dbwKursorte);
    $raeume = $this->getData($dbwKursorte, $alleIds, 99999);

    return new PageRaumReservierung('Raumreservierung', $pPageId, $this, $raeume);
  }

  private function _handleRaumReservierungSubmit()
  {
    
    $datum = PostOperations::getVarValue('raumres_datum');
    $uhrVon = PostOperations::getVarValue('raumres_uhr_von');
    $uhrBis = PostOperations::getVarValue('raumres_uhr_bis');
    $raumAry = PostOperations::getVarValue('raumres_raum');
    $kostenstelle = PostOperations::getVarValue('raumres_kostenstelle');
    $kostentraeger = PostOperations::getVarValue('raumres_kostentraeger');
    $zweck = PostOperations::getVarValue('raumres_zweck');
    $ausstattung = PostOperations::getvarValue('raumres_ausstattung');
    $empfaengerId = PostOperations::getVarValue('raumres_empfaenger');

    $ansprechpartnerAry = JsonOperations::getFromStringBase64($this->toolSettings->ansprechpartner);
    $empfaenger = $ansprechpartnerAry[$empfaengerId];

    $dbwKursOrte = new DBWorkKursorte(1, true);
    $raeume = $dbwKursOrte->getKursOrteByIds($raumAry);

    $hausmeister = SessionOperations::getCurrentWebToolsHausmeister();

    
    $emailBody = 'Datum:' . "\n";
    $emailBody .= $datum . "\n\n";

    $emailBody .= 'Uhrzeit von - bis:' . "\n";
    $emailBody .= $uhrVon . ' - ' . $uhrBis . "\n\n";

    $emailBody .= 'Raum/Räume:' . "\n";
    foreach ($raeume as $raum) {
      $emailBody .= $raum->mktext . "\n";
    }
    $emailBody .= "\n";

    $emailBody .= 'Kostenstelle:' . "\n";
    $emailBody .= $kostenstelle . "\n\n";

    $emailBody .= 'Kostenträger:' . "\n";
    $emailBody .= $kostentraeger . "\n\n";

    $emailBody .= 'Zweck:' . "\n";
    $emailBody .= $zweck . "\n\n";

    if ($ausstattung !== '') {
      $emailBody .= 'Ausstattung:' . "\n";
      $emailBody .= $ausstattung . "\n\n";
    }

    
    $emailTitle = 'Raumreservierung aus den KuferTools';

    $senderEmailData = ToolsAPI::getSenderEmailAddressAndName($hausmeister);
    $from = $senderEmailData['email'];
    $sendername = $senderEmailData['name'];

    $mailAdress = $empfaenger->email;
    $user = SessionOperations::getCurrentWebToolsUser();

    $email = new smtpMailTools();
    $email->SetVar2Value('from', $from);
    $email->SetVar2Value('sendername', $sendername);
    $email->SetVar2Value('reply', $senderEmailData['reply']);
    $email->SetVar2Value('replyname', $senderEmailData['replyname']);
    $email->SetVar2Value('to', $mailAdress);
    $email->SetVar2Value('contenttype', SMTP_CONTENTTYPE_TEXT);
    $email->SetVar2Value('doNotSplitHTMLBody', true);
    $email->subject = $emailTitle;
    $email->body = $emailBody;
    $email->setFooter('Raumreservierung', $user);
    $success = $email->sendMail();

    $page = new PageWTDefault('Raumreservierung versendet', 448, $this);
    $page->addCssFile('css/raumreservierung.css');
    if ($success) {
      $page->setContentHeader('Reservierung erfolgreich versendet');
      $page->setContent(BR_WT . '<span class="success">Ihre Raumreservierung wurde erfolgreich abgesendet.</span>' . BR_WT . BR_WT
                        . '<a href="usertools.php?tool_id=35&toolsection_id=448&einstieg=1">'
                        . HTMLOperations::createButtonSpan('Eine weitere Raumreservierung abgeben', 'Eine weitere Raumreservierung abgeben.') . '</a>');
    } else {
      $page->setContentHeader('Übermittlung fehlgeschlagen');
      $page->setContent(BR_WT . '<span><span class="error">Bei der Übermittlung Ihrer Raumreservierung ist ein Fehler aufgetreten.</span>' . BR_WT . BR_WT . '
                        Bitte versuchen Sie es erneut, oder wenden Sie sich an die Einrichtung.</span>' . BR_WT . BR_WT
                        . '<a href="usertools.php?tool_id=35&toolsection_id=448&einstieg=1">'
                        . HTMLOperations::createButtonSpan('Formular erneut ausfüllen', 'Das Raumreservierung-Formular erneut aufrufen.') . '</a>');
    }

    return $page;
  }
}