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


class TNBestaetigungEMailByStatus extends TNBestaetigungEMail
{
  public function getKursPart($pKurse, $pStatus, $pTnInfoHauptTn = null)
  {
    Logger::logg(__CLASS__ . "Kurspart für TN Bestätigung-email ()\n");

    if (!$this->darfMailVersenden($pKurse)) {
      return '';
    }

    
    $dmbasis = $this->getBenachrichtigungSicht($pStatus);
    $dmbasis->setExportSightInfo('anmeldestatus', $pStatus);

    $dmbasis->dataarraybody = $this->getBenachrichtigungDataarraybody($pKurse);

    return $dmbasis->getheader() . $dmbasis->getbody() . $dmbasis->getfooter();
  }

  protected function darfMailVersenden($pKurse)
  {
    foreach ($pKurse as $kurs) { 
      
      if ($kurs->darfTnBestVersenden()) {
        return true;
      }
    }

    return false;
  }

  protected function getBenachrichtigungDataarraybody($pKurse)
  {
    $kurse = array();
    foreach ($pKurse as $kurs) {
      if ($kurs->darfTnBestVersenden()) {
        $kurse[] = KursStore::getKurs($kurs->getKursVarValue('kursnummer'));
      }
    }

    return $kurse;
  }

  protected function getBenachrichtigungSicht($pStatus)
  {
    $dmbasis = new DataMenuBasis(null);
    $dmbasis->initializecompletesight();
    $dmbasis->exportadapter = new ExpKursuebersicht();

    switch ($pStatus) {
      case ANMELDUNGONLINE_OK: $dmbasis->getSight(195);
        break;
      case ANMELDUNGONLINE_OFFLINE: $dmbasis->getSight(196);
        break;
      case ANMELDUNGONLINE_KURSVOLL: $dmbasis->getSight(197);
        break;
      case ANMELDUNGONLINE_AUSFALL: $dmbasis->getSight(198);
        break;
      case ANMELDUNGONLINE_KNRUNGUELTIG: $dmbasis->getSight(199);
        break;
      case ANMELDUNGONLINE_KURSENDE: $dmbasis->getSight(200);
        break;
      case ANMELDUNGONLINE_ANMELDESCHLUSS: $dmbasis->getSight(201);
        break;
      case ANMELDUNGONLINE_ABSCHLUSS: $dmbasis->getSight(202);
        break;
      case ANMELDUNGONLINE_ANMELDEBEGINN: $dmbasis->getSight(518);
        break;
      default: $dmbasis->getSight(203);
        break;
    }

    return $dmbasis;
  }

  public function getBestaetigung($pTNInfo, $pWeitere, $pHotel, $pKurse, $pMessage = '', $pIsCopy = false, $pKursGebSumme = null)
  {
    static::$isCopy = (bool)$pIsCopy;

    $schwersterStatus = ANMELDUNGONLINE_OK;
    foreach ($pKurse as $status => $kurs) {
      if (array_keys(STATUS_SCHWERE_REIHENFOLGE, $status) > $schwersterStatus) {
        $schwersterStatus = $status;
      }
    }
    $text = $this->getHeader(array('schwerwiegendster_status' => $schwersterStatus));

    if ($this->zentraleEinstellungen != null && $this->zentraleEinstellungen->bestaetigungKursVorTn == true) {
      $text .= $this->getMessage($pTNInfo);
    }

    $tnPart = $this->getTNPart($pTNInfo, array('schwerwiegendster_status' => $schwersterStatus));
    $tnPart .= $this->getWeiterePart($pWeitere);
    $tnPart .= $this->getHotelPart($pHotel);
    $kursPart = $this->getKursPartAlleKurse($pKurse, $pTNInfo, $pKursGebSumme);

    if ($this->zentraleEinstellungen != null && $this->zentraleEinstellungen->bestaetigungKursVorTn == true) {
      $text .= $kursPart . $tnPart;
    } else {
      $text .= $tnPart . $kursPart;
    }
    $text .= $this->getFooter();
    static::$isCopy = false;

    return $text;
  }

  protected function getKursPartAlleKurse($pKurse, $pTNInfo, $pKursGebSumme = null)
  {
    $kursPart = '';
    foreach ($pKurse as $status => $kurse) {
      $kursPart .= $this->getKursPart($kurse, $status, $pTNInfo);
      

      
    }

    return $kursPart;
  }
}