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

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

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

class WssFieldSammelVertraegeAbgelehnteKurse extends \Kufer\Web\KuferTools\Utils\WssField\WssField
{
  protected function getValue($datamodulWert, $isFormular = false)
  {
    
    $vertraege = $datamodulWert->getDatamodulByName('sammelvertraege');
    if (empty($vertraege->abgelehntKursIds)) {
      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->abgelehntKursIds, 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;
  }
}