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

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

use Kufer\Web\Classes\Db\DBWorkHLAusbildungsSchablone;
use Kufer\Web\Classes\Dbfilter\HLAusbildungSchablonenDetSQLFilter;
use Kufer\Web\Classes\Dbfilter\HLAusbildungSchablonenSQLFilter;
use Kufer\Web\Classes\Dbfilter\KurseFaecherSQLFilter;

class WssFieldKursAusbildungenAusbildungsschablone extends \Kufer\KuferTools\Utils\WssField\WssField
{
  public function getValue($datamodulWert, $isFormular = false)
  {
    $kurs = $datamodulWert instanceof \Kurs ? $datamodulWert : $datamodulWert->getDatamodulByName('kurs');

    $filterKurseFaecher = KurseFaecherSQLFilter::create();
    $filterKurseFaecher->equalsKursId($kurs->id);
    $filterHLAusbSchablDet = HLAusbildungSchablonenDetSQLFilter::create();
    $filterHLAusbSchablDet->applyKurseFaecherFilter($filterKurseFaecher);
    $filterHLAusbSchabl = HLAusbildungSchablonenSQLFilter::create();
    $filterHLAusbSchabl->applyHLAusbildungSchablonenDetFilter($filterHLAusbSchablDet);
    $dbwHlAusbSchabl = DBWorkHLAusbildungsSchablone::getDefaultInstance();
    $beschreibungenAry = $dbwHlAusbSchabl->findAusbildungsSchabloneByFilter($filterHLAusbSchabl);
    $cnt = count($beschreibungenAry);
    if ($cnt === 0) {
      return '';
    }

    if ($cnt === 1) {
      return $this->htmlEncode(\ArrayOperations::firstValue($beschreibungenAry));
    }

    return
      '<ul class="wss_list"><li>'
      . implode('</li><li>', array_map(array($this, 'htmlEncode'), $beschreibungenAry))
      . '</li></ul>';
  }

  protected function encodeValue($value)
  {
    return $value;
  }
}