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


namespace Kufer\KuferTools\Mitarbeiter\KursUebersicht\Detailsreiter\Honorar\DozentenHonorar;




class DozHonorarDialogUseCase extends \Kufer\KuferTools\Mitarbeiter\KursUebersicht\Tool8UseCase
{
  public function __construct($request)
  {
    parent::__construct($request, new DozHonorarDialogResponse());
  }

  public static function getToolSectionId()
  {
    return 29; 
  }

  public function hasAccess($pToolSectionId = null)
  {
    if (!parent::hasAccess()) {
      return false;
    }
    
    if (!$this->isRechtAllowed(self::getToolSectionId() . '.0.4')) {
      return false;
    }

    return true;
  }

  public function action()
  {
    
    $dbwDozHon = new \DBWorkDozentenHonorar();
    $dozentenHonorar = $dbwDozHon->getHonorar($this->request->dozKursId);

    $hongesamt = $dozentenHonorar->getVarValue('honGesamtMitKomma');
    $fahrtgesamt = $dozentenHonorar->getVarValue('fahrtGesamtMitKomma');
    $dozentenHonorar->honfaktor = str_replace('.', ',', $dozentenHonorar->honfaktor);
    $dozentenHonorar->honsatz = str_replace('.', ',', $dozentenHonorar->honsatz);
    
    $fahrtkmsatz = \MathOperations::StringToFloat($dozentenHonorar->fahrtkmsatz);

    
    
    if (($dozentenHonorar->fahrtkostenstatus == 'N' || $dozentenHonorar->fahrtkostenstatus == '')
        && ($dozentenHonorar->fahrtfaktor + $dozentenHonorar->fahrtentfernung + $fahrtkmsatz + $dozentenHonorar->fahrtdoppelt > 0)) {
      $fkstatuschecked = 'FKnachkm';
    } elseif ($dozentenHonorar->fahrtkostenstatus == 'N') {
      $fkstatuschecked = 'keineFK';
    } elseif ($dozentenHonorar->fahrtkostenstatus == 'G') {
      $fkstatuschecked = 'FKnachkm';
    } elseif ($dozentenHonorar->fahrtkostenstatus == 'P') { 
      $fkstatuschecked = 'FKpauschal';
    } else { 
      $fkstatuschecked = 'keineFK';
    }

    return $this->getResponse($dozentenHonorar, $hongesamt, $fahrtgesamt, $fkstatuschecked);
  }

  protected function getResponse($pHonorar, $pHongesamt, $pFahrtgesamt, $pFkStatusChecked)
  {
    $this->handleResponseStrategies();

    $this->response->dozhonorar = $pHonorar;
    $this->response->hongesamt = $pHongesamt;
    $this->response->fahrtgesamt = $pFahrtgesamt;
    $this->response->fkStatusChecked = $pFkStatusChecked;

    return $this->response;
  }

  protected function getResponseStrategies()
  {
    return array();
  }
}

class DozHonorarDialogRequest
{
  public $knr;
  public $dozKursId;
}

class DozHonorarDialogResponse extends \Kufer\KuferTools\Basis\UseCase\ToolResponse
{
  public $dozhonorar;
  public $hongesamt;
  public $fahrtgesamt;
  public $fkStatusChecked;
}