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

namespace Kufer\Web\KuferTools\Dozent\HonorarAbnahme\HandleHonorarAbnahme\HonorarAbnahmeAkzeptieren;

use Kufer\Web\KuferTools\Basis\Presenter\HTMLEMailPresenter;
use Kufer\Web\KuferTools\Dozent\HonorarAbnahme\HandleHonorarAbnahme\HandleHonorarAbnahmeUseCase;
use Kufer\Web\Classes\Datamodul\HonorarAbnahmeEintrag;

class HonorarAbnahmeAkzeptierenUseCase extends HandleHonorarAbnahmeUseCase
{
  
  protected function handleHonorarAbnahme(): void
  {
    $this->honorarAbnahmeAkzeptieren();
  }

  
  private function honorarAbnahmeAkzeptieren(): void
  {
    $dozNr = static::getUser()->getDnrIdentifier();
    $honAbnahmeEintrag = $this->getNewHonorarAbnahmeEintrag();
    $honAbnahmeEintragNode = \XMLNode::getXMLNode($honAbnahmeEintrag, 'honabnahme_eintrag');

    $honAbnahmeAkzeptierenNode = new \XMLNode('honabnahme_akzeptieren');
    $honAbnahmeAkzeptierenNode->addChild(new \XMLNode('dnr', $dozNr->getId()));
    $honAbnahmeAkzeptierenNode->addChild($honAbnahmeEintragNode);

    $abgleichApi = new \AbgleichAPI();
    $abgleichApi->sendeNachricht(\AbgleichAPI::ABGLEICH_HONORAR_ABNAHME_AKZEPTIEREN, new \Nutzlast($honAbnahmeAkzeptierenNode));
  }

  protected function shouldSendEmail(): bool
  {
    return $this->toolSettings->emailBeiAkzeptieren;
  }

  protected function createEmail(): HTMLEMailPresenter
  {
    return new HonorarAbnahmeEMailAkzeptierenPresenter($this->response);
  }

  protected function getStatusAkzeptiertReklamiert(): int
  {
    return HonorarAbnahmeEintrag::STATUS_DOZENT_AKZEPTIERT;
  }

  protected function getAkzeptiertReklamiertString(): string
  {
    return 'akzeptiert';
  }

  protected function getAkzeptierenReklamierenString(): string
  {
    return 'Akzeptieren';
  }
}