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

namespace Kufer\KuferTools\Utils\WssField;

class WssFieldKursVertragStatus extends 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);
      }
    }

    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>';
  }

  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>';
  }

  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>';
  }

  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>';
  }

  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>';
  }
}