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

namespace Kufer\Web\KuferTools\Mitarbeiter\KursUebersicht\Detailsreiter\Teilnehmer\HandleBarzahlung;

use Kufer\Web\KuferTools\Basis\Kursdetails\Detailsreiter\Teilnehmer\TeilnehmerRowView;
use Kufer\Web\KuferTools\Basis\View\DetailsTabelleRowView;
use Kufer\Web\KuferTools\Basis\View\DetailsTabelleRowViewModel;


class BarzahlungDialogPresenter extends \Kufer\Web\KuferTools\Basis\Presenter\Presenter
{
  public function present()
  {
    
    $dbwBelegungen = new \DBWorkBelegung(1, true);
    $emptyBelegung = $dbwBelegungen->getNewObject();
    $belegungen = \array_merge(array($emptyBelegung), $this->useCaseResponse->belegungen);

    return $this->getAnderenContentAlsBody($belegungen);
  }

  protected function isDatamodulAryEmpty(array $datamodulArray): bool
  {
    
    return count($datamodulArray) <= 1;
  }

  protected function getAnderenContent($datamodul, $key): string
  {
    $isHeader = empty($datamodul);
    $viewModelDetails = new \Kufer\Web\KuferTools\Basis\Kursdetails\Detailsreiter\Teilnehmer\TeilnehmerRowViewModel();
    $viewModelDetails->isHeader = $isHeader;
    $viewModelDetails->showCheckbox = false;
    $viewModelDetails->belegung = $datamodul;

    $viewDetails = new TeilnehmerRowView($viewModelDetails);

    $viewModel = new DetailsTabelleRowViewModel(
      $this->useCaseResponse->toolSection,
      $this->useCaseResponse->toolSettings,
      false,
      $isHeader,
      trim($viewDetails->getHeader()),
      $this->useCaseResponse->columns,
      $datamodul->id,
      $datamodul
    );

    $viewModel->additionalContent = $viewDetails->getBody();
    $viewModel->checkboxInputAttr = trim($viewDetails->getFooter());

    $view = new DetailsTabelleRowView($viewModel);

    return $view->show();
  }

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

  protected function getViewModel()
  {
    $viewModel = new BarzahlungDialogViewModel();
    $viewModel->kurs = $this->useCaseResponse->kurs;
    $viewModel->kurs->toolId = $this->useCaseResponse->toolId;

    return $viewModel;
  }
}