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

 



class PageFaMeineKurseAbmeldung extends PageMeineKurseAbmeldung
{
  
  
  public $showStornoButton = true;

  public function __construct($pTool, $pPageId, $pData)
  {
    parent::__construct($pTool, $pPageId, $pData);
  }

  
  public function getSpecialJS()
  {
    return array('js/firmenstorno.js');
  }

  public function getJSDeclarations()
  {
    $result = parent::getJSDeclarations();
    $sprachSettings = SettingsFactory::getSettings('SprachSettingsObject');
    $result .= " registerNamespace('KuferTools');\n";
    $result .= JsOperations::getDeclarationBoolean('KuferTools.isBLAK', false);
    $result .= " registerNamespace('KuferTools.SprachSettings');\n";
    $result .= JsOperations::getDeclarationString('KuferTools.SprachSettings.TeilnehmerEinzahl', $sprachSettings->Teilnehmer['Singular']['Nominativ']);
    $result .= JsOperations::getDeclarationString('KuferTools.SprachSettings.TeilnehmerMehrzahl', $sprachSettings->Teilnehmer['Plural']['Nominativ']);

    return $result;
  }

  
  public function getContentHeader()
  {
    $sprachSettings = SettingsFactory::getSettings('SprachSettingsObject');

    return 'Abmeldung von ' . $sprachSettings->Kurs['Singular_mit_Artikel']['Dativ'] . ' ' . $this->_data->knr . ': ' . $this->_data->kurs->getVarValue('kurzbez_titel');
  }

  
  protected function _getTeilnehmerListe4StornoFormular()
  {
    $result = '';
    $this->showStornoButton = true;
    if (!$this->stornoGescheitert && !$this->mailVersandGescheitert) {
      $dbwBel = new DBWorkBelegung();
      $dbwteilnehmer = new DBWorkTeilnehmer();
      
      
      

      $sprachSettings = SettingsFactory::getSettings('SprachSettingsObject');

      
      $erlaubteStatus = ConstantOperations::getStatusangemeldetArraySimple();
      array_push($erlaubteStatus, 'W');
      
      $fTnBelAry = $dbwBel->getTeilnehmerBelegungenByFirmaKurs($this->_data->teilnehmer->id, $this->_data->knr, $erlaubteStatus, false);

      if (count($fTnBelAry) == 0) {
        
        
        
        $this->showStornoButton = false;
        $result .= ' Für die Firma liegen keine Einzelanmeldungen vor. Ein Stornieren ist daher nicht möglich.';
      } else {

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

        
        $this->_setBerufsGruppeInTNListe($tnListeAry);


        $result .= '<p><input type="radio" name="abmeldenRadio" id="alleAbmelden"  value="alle" checked="checked"><label for="alleAbmelden">alle ' . CleanOperations::cleanStringForHtml($sprachSettings->Teilnehmer['Plural']['Nominativ']) . ' stornieren</label>' . BR_WT;
        $result .= '<input type="radio" name="abmeldenRadio" id="einzelneAbmelden" value="einzelne"><label for="einzelneAbmelden">einzelne ' . CleanOperations::cleanStringForHtml($sprachSettings->Teilnehmer['Plural']['Nominativ']) . ' stornieren/wechseln</label></p>' . BR_WT;

        $result .= '<input type="hidden" name="submitListe" id="submitListe">' . "\n";
        
        $result .= '<input type="hidden" name="doStorno" id="doStorno" value="1">' . "\n";
        $result .= '<input type="hidden" name="jsonData" id="jsonDataInput">' . "\n";
        $result .= '<input type="hidden" name="alleChecked" id="alleChecked">' . "\n";
        $result .= '<script type="text/javascript">' . "\n";
        $result .= '$("#doStorno").data("tnListe", ' . JsonOperations::encode($tnListeAry) . ');' . "\n";

        
        $result .= $this->_getKursKennzPart4Script();
        $result .= '</script>' . "\n";

        $result .= '<table cellspacing="10">' . "\n";

        foreach ($fTnBelAry as $fTnBel) {
          $fTnBel4html = new CleanDatamodulForHtml($fTnBel);
          $result .= '<tr>';
          $checkBoxId = 'check_bel_' . $fTnBel4html->id;
          $result .= '<td><input type="checkbox" disabled class="teilnehmerCheckBox allowEdit" name="bel_' . $fTnBel4html->id . '" id="' . $checkBoxId . '"></td>' . "\n";
          $result .= '<td><label for="' . $checkBoxId . '">' . $fTnBel4html->teilnehmer->name . ', ' . $fTnBel4html->teilnehmer->vorname . ' (' . $fTnBel4html->status_lang . ')</label></td>' . "\n";
          $result .= '<td id="td_bel_' . $fTnBel4html->id . '"></td>' . "\n";
          $result .= $this->_getJSData4Storno($fTnBel);

          
          $result .= $this->_getUmmeldenPart($fTnBel);
        }
        $result .= '</table>' . "\n";
      } 
    } 

    return $result;
  }

  
  protected function _getJSData4Storno($pFirmaTnBel)
  {
    
    
    $firmenBelId = CleanOperations::cleanInt($pFirmaTnBel->id);

    return '  <script type="text/javascript">jQuery(function(){
                    $("#ma_anmeld_id_' . $firmenBelId . '").data("teilnehmer", ' . json_encode(StringOperations::objectToUtf8($pFirmaTnBel->teilnehmer)) . ');
                    $("#ma_anmeld_id_' . $firmenBelId . '").data("belegung", ' . json_encode(StringOperations::objectToUtf8($pFirmaTnBel)) . ');
                    $("#check_bel_' . $firmenBelId . '").data("belegid", ' . $firmenBelId . ');
                    var anmeldeObj = new Object();
                    anmeldeObj.belegung = new Object();
                    anmeldeObj.belegung.id = ' . $firmenBelId . ';
                    anmeldeObj.belegung.status = "S";
                    $("#submitListe").data("bel_' . $firmenBelId . '", anmeldeObj);
                    });
                  </script>' . "\n";
  }

  
  protected function _setBerufsGruppeInTNListe($pTnListeAry)
  {
  }

  
  protected function _getKursKennzPart4Script()
  {
    return '';
  }

  
  protected function _getUmmeldenPart($pFirmaTnBel)
  {
    return '';
  }

  
  protected function _getAbmeldebutton()
  {
    if (!$this->links['stornoaction'] || !$this->showStornoButton) {
      return '';
    }
    
    $abmeldeButtonSrc = 'layout/button_sub_abmelden.gif';
    $abmeldeButtonAlt = 'Abmeldung abschicken';

    return '<input id="stornoSubmitButton" type="image" src="' . $abmeldeButtonSrc . '" alt="' . $abmeldeButtonAlt . '">' . "\n";
  }

  
  protected function _getLinkClass4StornoFailed()
  {
    return 'stornofailed';
  }
}