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

namespace Kufer\KuferTools\Teilnehmer\VorgesetztenUebersicht\MitarbeiterUebersicht;

use Kufer\KuferTools\Basis\Uebersicht\UebersichtPresenter;

class VorgesetzterMitarbeiterUebersichtPresenter extends UebersichtPresenter
{
  protected function getBlaetternAction()
  {
    return 'vorgesetztermitarbeiteruebersicht';
  }

  public function getJsFilesSrcAryWeitere()
  {
    return array(
      $this->getJsFileFromOldTools('TNTool/mitarbeiteruebersicht4tn.js'),
      $this->getJsFileFromSys('filter.js')
    );
  }

  protected function getView()
  {
    return new VorgesetzterMitarbeiterUebersichtView($this->getViewModel());
  }

  protected function getViewModel()
  {
    $viewModel = parent::getViewModel();
    $viewModel->showFilterLeerenButton = $this->useCaseResponse->showFilterLeerenButton;

    return $viewModel;
  }

  protected function getUebersichtViewModel()
  {
    return new VorgesetzterMitarbeiterUebersichtViewModel();
  }

  protected function getBlaettern()
  {
    $params = array();
    if ($this->useCaseResponse->einstieg) {
      $params['einstieg'] = 1;
    }

    return \Kufer\KuferTools\Basis\Blaettern\BlaetternLeiste::getBlaetternLeiste(
      $this->getBlaetternAction(),
      $this->useCaseResponse->toolId,
      $this->useCaseResponse->blaettern,
      $params
    );
  }

  protected function getAktuelleURLRelative()
  {
    $url = \URL::loadCurrent();

    return $url->getUrlRelative();
  }

  
  protected function getPanelBody($pDatamodul)
  {
    $result = '';
    $view = new VorgesetzterMitarbeiterUebersichtKurseView(null);
    $BelegungenArry = $this->getBelegungenVonTeilnehmer($pDatamodul->getIdentifier());

    if (!$this->isDatamodulAryEmpty($BelegungenArry)) {
      $result .= $view->getHeader();
      foreach ($BelegungenArry as $belegung) {
        $result .= $this->getEinzelkurs($belegung);
      }
    } else {
      $result .= $view->getNoData();
    }

    return $result;
  }

  protected function getEinzelkurs($pBelegung)
  {
    $viewModel = new VorgesetzterMitarbeiterUebersichtKurseViewModel();
    $viewModel->belegung = $pBelegung;

    $kursView = new VorgesetzterMitarbeiterUebersichtKurseView($viewModel);

    return $kursView->getBody();
  }

  

  
  protected function getBelegungenVonTeilnehmer(\Kufer\Web\Classes\Identifier\Identifier $tnId)
  {
    $result = array();
    
    $belegungsArry = $this->useCaseResponse->belegungen;

    foreach ($belegungsArry as $belegung) {
      if ($belegung->getTnIdentifier()->isApproxEqualTo($tnId)) {
        $result[] = $belegung;
      }
    }

    return $result;
  }

  protected function getPanelTitle($pDatamodul)
  {
    return $pDatamodul->namevorname;
  }

  protected function getPanelTitleHinweis()
  {
    return '';
  }

  protected function getAnzahlSeminare($pDatamodulBelegungen)
  {
    return count($pDatamodulBelegungen);
  }

  
  protected function datamodulToPanel($datamodul)
  {
    $result = parent::datamodulToPanel($datamodul);
    $result->anzahlSeminare = $this->getAnzahlSeminare($this->getBelegungenVonTeilnehmer($datamodul->getIdentifier()));
    $result->index = $datamodul->id;

    return $result;
  }

  protected function getPanelTitleLink($pDatamodul)
  {
    return \CleanOperations::cleanStringForHtml('index.php?tool_id=36&action=vorgesetztermitarbeiteruebersicht&tnr=' . \CleanOperations::cleanInt($pDatamodul->id));
  }

  protected function getPanelBootStrapColor($pDatamodul)
  {
    return 'default';
  }

  protected function getMaxPanelSpalten()
  {
    return 2; 
  }
}