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


class TabKursAnmeldenMDS extends TabPageDefault
{
  public function __construct($pTabName, $pData)
  {
    parent::__construct($pTabName, $pData);
    $this->setScroll(true);
  }

  public function getTnListe($belAry, $readOnly, $extraClass)
  {
    $dbwAdrPers = new DBWorkAdrPers();
    $info = '';
    foreach ($belAry as $bel) {
      $aryAdrPers = $dbwAdrPers->getAdrPersByTnNr($bel->teilnehmer->id);
      $info .= '<span class="AnmeldenButtonMDS ' . $extraClass . ($readOnly ? ' readOnly' : '') . '" id="ma_anmeld_id_' . $bel->id . '"><img src="images/write.gif"> ';
      if ($bel->teilnehmer->name == 'TN N'
         || $bel->teilnehmer->name == 'TN M'
         || $bel->teilnehmer->name == 'TN F'
         || $bel->teilnehmer->name == 'aTN N'
         || $bel->teilnehmer->name == 'aTN M'
         || $bel->teilnehmer->name == 'aTN F') {
        $info .= 'freier Platz</span>' . BR_WT;
      } else {
        $info .= $bel->teilnehmer->name . ', ' . $bel->teilnehmer->vorname . '</span>' . BR_WT;
      }
      $info .= '<script type="text/javascript">';
      $info .= '$("#ma_anmeld_id_' . CleanOperations::cleanInt($bel->id) . '").data("teilnehmer", ' . json_encode(StringOperations::objectToUtf8($bel->teilnehmer)) . ');';
      if (isset($aryAdrPers[0])) {
        $info .= '$("#ma_anmeld_id_' . CleanOperations::cleanInt($bel->id) . '").data("adrPers", ' . json_encode(StringOperations::objectToUtf8($aryAdrPers[0])) . ');';
      }
      $info .= '$("#ma_anmeld_id_' . CleanOperations::cleanInt($bel->id) . '").data("belegung", ' . json_encode(StringOperations::objectToUtf8($bel)) . ');';
      $info .= '</script>';
    }

    return $info;
  }

  public function _getContent()
  {
    $dbwteilnehmer = new DBWorkTeilnehmer(1, true);
    $dbwAdrPers = new DBWorkAdrPers();
    $dbwBelegung = new DBWorkBelegung();
    $belAry = $dbwBelegung->getTeilnehmerBelegungenByFirmaKurs($this->_data->tnr, $this->_data->kurs->id);
    $angemeldetAry = array();
    $reserviertAry = array();
    $wartelistAry = array();
    foreach ($belAry as $bel) {
      switch ($bel->status) {
        case 'A':
        case 'T':
          $angemeldetAry[] = $bel;
          break;
        case 'P':
          $reserviertAry[] = $bel;
          break;
        case 'W':
          $wartelistAry[] = $bel;
          
        default:
          break;
      }
    }

    $info = '<div class="info">Angemeldet:' . BR_WT;
    $info .= $this->getTnListe($angemeldetAry, true, 'angemeldet');
    $info .= BR_WT;
    $info .= 'Reserviert:' . BR_WT;
    $info .= $this->getTnListe($reserviertAry, false, 'reserviert');
    $info .= BR_WT;
    $info .= 'auf Warteliste eintragen: ';
    $info .= '<img id="wartelistePlus" src="images/mengeplus.gif">' . BR_WT;
    $info .= $this->getTnListe($wartelistAry, true, 'warteliste');
    $info .= '</div>';
    $info .= BR_WT;

    
    $info .= '<img src="layout/button_anmelden.gif" id="submitListe">';
    $info .= '<form action="usertools.php?tool_id=24&toolsection_id=327" method="post" name="anmeldungen" id="anmeldungForm"><input type="hidden" name="jsonData" id="jsonDataInput"></form>';
    $info .= '<div id="tnListe"></div>';
    $info .= '<div id="tnListe4Select"></div>';

    
    
    $tnListeAry = $dbwteilnehmer->getMitarbeiterByBeziehungsTable4MDS($this->_data->tnr);

    
    
    $tnListAry4Select = array();
    foreach ($tnListeAry as $tnListObj) {
      $teiln4Select = new Teilnehmer4Select();
      $teiln4Select->id = $tnListObj->id;
      $teiln4Select->name = $tnListObj->name;
      $teiln4Select->vorname = $tnListObj->vorname;
      $tnListAry4Select[] = $teiln4Select;
    }

    
    $adrPersAry = $dbwAdrPers->getAdrPersByTnAry($tnListeAry);

    $info .= '<script type="text/javascript">';
    $info .= !empty($tnListAry4Select) ? '$("#tnListe4Select").data("tnListe", ' . JsonOperations::encode($tnListAry4Select) . ');' : '';
    $info .= !empty($tnListeAry) ? '$("#tnListe").data("tnListe", ' . JsonOperations::encode($tnListeAry) . ');' : '';
    $info .= !empty($adrPersAry) ? '$("#tnListe").data("adrPersListe", ' . JsonOperations::encode($adrPersAry) . ');' : '';
    $info .= '$("#submitListe").data("anzAng", ' . JsonOperations::encode(count($angemeldetAry)) . ').data("anzRes", ' . JsonOperations::encode(count($reserviertAry)) . ');';
    $info .= '$("#submitListe").data("firmaBelid", ' . JsonOperations::encode($this->_data->id) . ');';
    $info .= '$("#submitListe").data("firmaTnr", ' . JsonOperations::encode($this->_data->tnr) . ');';
    $info .= '$("#submitListe").data("knr", ' . JsonOperations::encode($this->_data->kurs->id) . ');';
    $info .= '</script>';

    return $info;
  }

  public function getJSDeclarations()
  {
    $result = parent::getJSDeclarations();
    $result .= 'registerNamespace("KuferTools.Anmeldung");';

    $dbwHlBez = new DBWorkHLBeziehung();
    $hlBez = $dbwHlBez->getByBez1AndBez2('Dienststelle', 'Hauptverwaltung');
    $dienststellen = array();
    if (!$hlBez->isEmpty()) {
      $dbwtn = new DBWorkTeilnehmer();
      
      $dienststellen = $dbwtn->getTeilnehmerByBeziehungsIdAndNr($this->_data->tnr, $hlBez->id, true);
    }

    $result .= JsOperations::getDeclarationJson('KuferTools.Anmeldung.Dienststellen', $dienststellen);

    return $result . "\n";
  }
}