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



class KurstagebyRaumSight extends KurstageSight
{
  public $raumnr;
  
  public $ortVerfAry;
  public $dbwOrtVerf;
  public $raumTage;

  public function initiate($pNoInternetCare = false)
  {
    parent::initiate();
    $this->dbwOrtVerf = new DBWorkOrtVerf();
  }

  
  public function getData()
  {
    $this->dataary = $this->dbwkurstage->getKurstagebyRaum($this->raumnr);

    $objsettings = ToolSettingsAPI::getToolSettings(5);

    if ($objsettings->sperrzeitanzeigen) {

   
      $this->raumTage = $this->dataary;
      
      $vondat = $this->dbwOrtVerf->fromobject->vondat;
      $bisdat = $this->dbwOrtVerf->toobject->bisdat;

      
      
      $dtop = new DateTimeOperations();
      
      $this->ortVerfAry = $this->dbwOrtVerf->getKursorteVerfbyRaumDat($this->raumnr);

      
      foreach ($this->ortVerfAry as $ortVerf) {
        
        
        for ($aktDatum = $ortVerf->vondat;$dtop->isDateBefore($aktDatum, $ortVerf->bisdat)
          || strcmp($aktDatum, $ortVerf->bisdat) == 0;$aktDatum = $dtop->getNextDate($aktDatum, 1)) {
          if ((($dtop->isDateBefore($vondat, $aktDatum) && $dtop->isDateBefore($aktDatum, $bisdat))
           || strcmp($aktDatum, $vondat) == 0 || strcmp($aktDatum, $bisdat) == 0)
           && ($ortVerf->wochentag == 0 || $ortVerf->wochentag == $dtop->getWeekDayFromDate($aktDatum))) {
            $raumcnt = count($this->raumTage);
            
            $this->raumTage[$raumcnt] = $this->createKurstag4RaumSperre($ortVerf, $aktDatum);
          }
        }
      }
     
     usort($this->raumTage, array('KurstageSight', 'kTageCmp'));

      $this->dataary = $this->raumTage;
    }
  }

  
  public function createKurstag4RaumSperre($pOrtVerf, $pAktDatum)
  {
    
    $kurstag4Raum = $this->dbwkurstage->getNewObject();
    
    $dbwKursOrte = new DBWorkKursorte();    
    $kursOrt = $dbwKursOrte->getKursort($pOrtVerf->ortnr);
    
    
    
    $kurstag4Raum->ort = $kursOrt->mktext;
    
    $kurstag4Raum->kursort = $kursOrt;

    
    $kurstag4Raum->bemerkungen = $pOrtVerf->kommentar;

    $kurstag4Raum->datum = $pAktDatum;
    $kurstag4Raum->datum_kurz = StringOperations::substr($pAktDatum, 0, 6);
    $kurstag4Raum->datum_jahrkurz = DateTimeOperations::getShortForm4DateStr($pAktDatum);
    $kurstag4Raum->wotagkurz = DateTimeOperations::getWeekDayShort($pAktDatum);
    $kurstag4Raum->wotaglang = DateTimeOperations::getWeekDay($pAktDatum);
    $kurstag4Raum->datum_komplettlang = $kurstag4Raum->wotaglang . ', ' . $kurstag4Raum->datum;
    $kurstag4Raum->datum_komplettkurz = $kurstag4Raum->wotagkurz . ', ' . $kurstag4Raum->datum;
    $kurstag4Raum->datum_komplettkurz_jahrkurz = $kurstag4Raum->wotagkurz . ', ' . $kurstag4Raum->datum_jahrkurz;

    $kurstag4Raum->zeit_beg = $pOrtVerf->vonuhr;
    $kurstag4Raum->zeit_ende = $pOrtVerf->bisuhr;
    
    $kurstag4Raum->knr = 'Sperrzeit';
    $kurstag4Raum->kurs->nrab = 'Sperrzeit';
    $kurstag4Raum->kurs->kurzbez = $pOrtVerf->begruendung;
    $kurstag4Raum->kurs->ende_dat = $pOrtVerf->bisdat;
    $kurstag4Raum->dozent->namevorname = $pOrtVerf->verantwort;
    
    $kurstag4Raum->dozent->gebdat = '';
    $kurstag4Raum->kurs->hauptdozent = new Dozent();
    $kurstag4Raum->kurs->hauptdozent->namevorname = $pOrtVerf->verantwort;
    $kurstag4Raum->kurs->hauptdozent->tel_anzeige = '';

    return $kurstag4Raum;
  }

  
  public function getTitle()
  {
    return '';
  }

  public function getTableRow($rowindex = -1)
  {
    $str = KurstageSight::getTableRow($rowindex);
    $str = str_replace('{setknr}', $this->dataary[$rowindex]->knr, $str);

    return str_replace('{setraumnr}', $this->dataary[$rowindex]->kursort->id, $str);
  }
}