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

namespace Kufer\KuferTools\Basis\TeilnehmerInfo\Detailsreiter\Bankverbindungen;

abstract class BankverbindungenPresenter extends \Kufer\KuferTools\Basis\Presenter\Presenter
{
  public function present()
  {
    
    $dbwBelegungen = new \DBWorkStammBv();
    $emptyBelegung = $dbwBelegungen->getNewObject();
    $belegungen = \array_merge(array($emptyBelegung), $this->useCaseResponse->stammBv);

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

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

  abstract protected function getBankverbindungenView($viewModel);

  protected function getAnderenContent($datamodul, $key)
  {
    $viewModel = new BankverbindungenViewModel();
    $viewModel->columns = $this->useCaseResponse->columns;
    $viewModel->stammBv = $datamodul;
    $viewModel->index = $key;
    
    $viewModel->showCheckbox = $this->useCaseResponse->markierenButtons;
    $terminView = $this->getBankverbindungenView($viewModel);

    return $terminView->show();
  }

  protected function getButtonHtml()
  {
    $buttonleiste = new \Kufer\KuferTools\Basis\Button\Buttonleiste();

    return $buttonleiste->getHtmlButtonleiste($this->useCaseResponse->reiterButtons, 'termine_buttons');
  }

  protected function getViewModel()
  {
    $viewModel = new BankverbindungenReiterViewModel();
    
    $viewModel->toolId = $this->useCaseResponse->toolId;
    $viewModel->reiterButtons = $this->getButtonHtml();
    $viewModel->markierenButtons = $this->useCaseResponse->markierenButtons;
    $viewModel->teilnehmer = $this->useCaseResponse->teilnehmer;
    $allgSettings = \AllgSettingsAPI::getAllgSettings();
    $viewModel->statusMsgSuccess = $this->getStatusMsgSuccess($allgSettings);
    $viewModel->statusMsgInfo = $this->getStatusMsgInfo($allgSettings);
    $viewModel->statusMsgFehler = $this->getStatusMsgFehler($allgSettings);

    return $viewModel;
  }

  
  abstract protected function getStatusMsgSuccess($allgSettings);

  
  abstract protected function getStatusMsgInfo($allgSettings);

  
  abstract protected function getStatusMsgFehler($allgSettings);
}