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

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

use Kufer\Web\Classes\Datamodul\SammelvertragDatDoc;
use Kufer\Web\Classes\Stream\ArrayStream;

class WssFieldSammelVertraegeAkzeptierteKurse extends \Kufer\KuferTools\Utils\WssField\WssField
{
  protected function getValue($datamodulWert, $isFormular = false)
  {
    
    $vertraege = $datamodulWert->getDatamodulByName('sammelvertraege');
    if (empty($vertraege->akzeptiertKursIds)) {
      return '';
    }

    
    $kurse = $vertraege->getKurse();

    return '<ul class="wss_list">' . (new ArrayStream($kurse))
        ->filter(static function(\Kurs $kurs) use ($vertraege): bool {
          return in_array($kurs->id, $vertraege->akzeptiertKursIds, true);
        })
        ->map(static function(\Kurs $kurs): string {
          $kurzbez = $kurs->getVarValue('kurzbez');

          return $kurs->nr_anzeige . ($kurzbez !== '' ? (' - ' . $kurzbez) : '');
        })
        ->map(static function(string $str): string {
          return \CleanOperations::cleanStringForHtml($str);
        })
        ->map(static function(string $str): string {
          return "<li>$str</li>";
        })
        ->implode('') . '</ul>';
  }

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