<?php

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

class TNBestaetigungNeueAnmeldung extends TNBestaetigungByStatusHTML
{
  protected function getSightIdForTnPart($pAnmeldeart)
  {
    return 505;
  }

  
  public function getKursPart($pKurse, $pStatus, $pTnInfoHauptTn = null)
  {
    Logger::logg('Kurspart für HTML Bestätigung-' . $this->anmeldeart . ' () ');

    $dmbasis = new DataMenuBasis(new URLParameterBasis(false));
    $dmbasis->initializecompletesight();
    $dmbasis->getSight(506);

    $dmbasis->exportadapter = new ExpTeilnehmer();
    if (!is_null($pTnInfoHauptTn)) {
      $dmbasis->dataarrayheader = array($pTnInfoHauptTn);
    } else {
      $dmbasis->dataarrayheader = array();
    }
    $header = $dmbasis->getheader();

    if (!is_null($pTnInfoHauptTn)) {
      $dmbasis->exportadapter = new ExpBelegungDirektObjekt();
      $this->initDataBelegungen($dmbasis, $pKurse, $pTnInfoHauptTn);
    } else {
      $dmbasis->exportadapter = new ExpKursuebersicht();
      $this->initDataKurse($dmbasis, $pKurse);
    }
    $dmbasis->exportadapter->setSightInfo('anmeldestatus', $pStatus);

    return $header . $dmbasis->getBody() . $dmbasis->getFooter();
  }

  
  private function initDataKurse(DataMenuBasis $dmbasis, array $pKurse)
  {
    $dbwkurse = new DBWorkKurse();

    $kurse = array();
    
    foreach ($pKurse as $kursinfo) {
      array_push($kurse, $dbwkurse->getKurs($kursinfo->getKursVarValue('kursnummer')));
    }
    $dmbasis->dataarraybody = $kurse;
  }

  
  private function initDataBelegungen(DataMenuBasis $dmbasis, array $pKurse, TeilnehmerPflicht $pTnInfoHauptTn): void
  {
    $belegungen = array();
    $dbwkurse = new DBWorkKurse();
    foreach ($pKurse as $kursinfo) {
      $b = new Belegung();
      $b->kurs = $dbwkurse->getKurs($kursinfo->getKursVarValue('kursnummer'));
      $b->teilnehmer = $pTnInfoHauptTn;
      $belegungen[] = $b;
    }
    $dmbasis->dataarraybody = $belegungen;
  }

  public function getBestaetigungOhneHeaderOhneFooter($pTNInfo, $pWeitere, $pHotel, $pKurse, $pMessage = '', $pHauptTnPart = '')
  {
    $text = '';
    if ($pMessage != '') {
      $text .= '<p><b>' . CleanOperations::cleanStringContainingHtml($pMessage) . '</b><br>';
    }


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

    $tnPart = $pHauptTnPart;

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

      
    }

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

    return $text;
  }
}