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

namespace Kufer\KuferTools\Firma\BayerischerApothekertag\HandleAnmeldung;

class HandleAnmeldungController extends \Kufer\KuferTools\Basis\Controller\ToolController
{
  protected function getUseCase(): \Kufer\KuferTools\Basis\UseCase\UseCase
  {
    return new HandleAnmeldungUseCase(
      $this->getRequestObj()
    );
  }

  protected function getRequestObj()
  {
    $requestObj = new HandleAnmeldungRequest();
    $requestObj->knrs = explode(':', \GetOperations::getVarValue('knrs'));
    $requestObj->zahlart = \PostOperations::getVarValue('anm_zahlart');
    $requestObj->guthaben_verwenden = \PostOperations::isDefined('guthaben_verwenden');
    $requestObj->abwBankverbindungAngegeben = \PostOperations::isDefined('abw_iban');
    $requestObj->abw_isNurFuerAnmeldung = \PostOperations::getVarValue('abw_isNurFuerAnmeldung', false) === 'true';
    $requestObj->abw_verfahren = \PostOperations::getVarValue('abw_verfahren');
    $requestObj->abw_inhaber = \PostOperations::getVarValue('abw_inhaber');
    $requestObj->abw_bank = \PostOperations::getVarValue('abw_bank');
    $requestObj->abw_kto = \PostOperations::getVarValue('abw_kto');
    $requestObj->abw_kto = \PostOperations::getVarValue('abw_kto');
    $requestObj->abw_blz = \PostOperations::getVarValue('abw_blz');
    $requestObj->abw_bic = \PostOperations::getVarValue('abw_bic');
    $requestObj->abw_iban = \PostOperations::getVarValue('abw_iban');
    $requestObj->anzahl_mitarbeiter = \PostOperations::getVarValue('anzahl_mitarbeiter');

    $requestObj->mitarbeiter = array();
    for ($i = 1; $i <= $requestObj->anzahl_mitarbeiter; $i++) {
      $mitarbeiter = new \stdClass();
      $mitarbeiter->name = \PostOperations::getVarValue('name_' . $i);
      $mitarbeiter->vorname = \PostOperations::getVarValue('vorname_' . $i);
      $mitarbeiter->tel = \PostOperations::getVarValue('telefon_' . $i);
      $mitarbeiter->email = \PostOperations::getVarValue('email_' . $i);
      $mitarbeiter->tnr = \PostOperations::getVarValue('tnr_' . $i);
      $mitarbeiter->kennz = \PostOperations::getVarValue('kennz_' . $i);
      $mitarbeiter->geschlecht = \PostOperations::getVarValue('geschlecht_' . $i);
      $mitarbeiter->name_titel = \PostOperations::getVarValue('anredetitel_' . $i);
      $mitarbeiter->gebdat = \PostOperations::getVarValue('gebdat_' . $i);
      $requestObj->mitarbeiter[$i] = $mitarbeiter;
    }

    return $this->handleXsrf($requestObj, 'handleFaAnmeldungApotag');
  }

  protected function getPresenter($pUseCaseResponse)
  {
    return new HandleAnmeldungPresenter($pUseCaseResponse);
  }
}