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

namespace Kufer\Web\KuferTools\Utils\WssField\Kurs;

class WssFieldKursVertragStatus extends \Kufer\Web\KuferTools\Utils\WssField\WssField
{
  protected function getValue($datamodulWert, $isFormular = false)
  {
    $toolSettings = \ToolSettingsAPI::getToolSettings(\ToolsAPI::TOOL_KURSUEBERSICHT_DOZ);

    if (isset($datamodulWert->vertragStatus)) {
      switch ($datamodulWert->vertragStatus) {
        
        default:
        case 0:
          return $this->getVertragStatusNichtErmittelt($toolSettings);
        case 1:
          return $this->getVertragStatusNichtFreigegeben($toolSettings);
        case 2:
          return $this->getVertragStatusFreigegeben($toolSettings);
        case 3:
          return $this->getVertragStatusAkzeptiert($toolSettings);
        case 4:
          return $this->getVertragStatusAbgelehnt($toolSettings);
        case 5:
          return $this->getVertragStatusMeppenVhsHonorarabrechnungAbgesendet($toolSettings);
      }
    }

    return $this->getVertragStatusNichtErmittelt($toolSettings);
  }

  protected function encodeValue($value)
  {
    return $this->purifyHtml($value);
  }

  private function getVertragStatusNichtErmittelt($toolSettings)
  {
    if (trim($toolSettings->vertragStatusNichtErmittelt) !== '') {
      return $toolSettings->vertragStatusNichtErmittelt;
    }

    return '<i class="fa fa-question-circle hasToolTip" style="color:red;" title="Vertragsstatus konnte nicht ermittelt werden."></i> Vertragsstatus konnte nicht ermittelt werden.';
  }

  private function getVertragStatusNichtFreigegeben($toolSettings)
  {
    if (trim($toolSettings->vertragStatusNichtFreigegeben) !== '') {
      return $toolSettings->vertragStatusNichtFreigegeben;
    }

    return '<i class="fa fa-times-circle hasToolTip" style="color:red;" title="Vertrag noch nicht freigegeben"></i> Vertrag noch nicht freigegeben';
  }

  private function getVertragStatusFreigegeben($toolSettings)
  {
    if (trim($toolSettings->vertragStatusFreigegeben) !== '') {
      return $toolSettings->vertragStatusFreigegeben;
    }

    return '<i class="fa fa-exclamation-circle hasToolTip" style="color:orange;" title="Vertrag freigegeben, aber noch nicht akzeptiert"></i> Vertrag freigegeben, aber noch nicht akzeptiert';
  }

  private function getVertragStatusAkzeptiert($toolSettings)
  {
    if (trim($toolSettings->vertragStatusAkzeptiert) !== '') {
      return $toolSettings->vertragStatusAkzeptiert;
    }

    return '<i class="fa fa-check-circle hasToolTip" style="color:green;" title="Vertrag akzeptiert"></i> Vertrag akzeptiert';
  }

  private function getVertragStatusAbgelehnt($toolSettings)
  {
    if (trim($toolSettings->vertragStatusAbgelehnt) !== '') {
      return $toolSettings->vertragStatusAbgelehnt;
    }

    return '<i class="fa fa-minus-circle hasToolTip" style="color:red;" title="Vertrag abgelehnt"></i> Vertrag abgelehnt';
  }

  private function getVertragStatusMeppenVhsHonorarabrechnungAbgesendet($toolSettings)
  {
    return '<i class="fa fa-check-circle hasToolTip" style="color:green;" title="Rechnung erstellt"></i> Rechnung erstellt';
  }
}