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

class ExportBelegungWithUmmelden extends ExportBelegung
{
  
  protected $ummeldenByBelegungsIdAry;

  
  public function __construct($ummeldenByBelegungsIdAry)
  {
    parent::__construct();

    $this->ummeldenByBelegungsIdAry = $ummeldenByBelegungsIdAry;
  }

  public function getVarValue($varname)
  {
    switch ($this->getVarCategory($varname)) {
      default:
        return parent::getVarValue($varname);
      case 'ummelden_':
        $belid = parent::getVarValue('b_id');
        if (empty($belid)) {
          return '';
        }

        $ummelden = $this->ummeldenByBelegungsIdAry[$belid] ?? null;
        if (is_null($ummelden)) {
          return '';
        }

        $varname = $this->getVarName($varname);
        switch ($varname) {
          case 'name_ggf_vorname': return $ummelden->name . ($ummelden->vorname === '' ? '' : ', ' . $ummelden->vorname);
          case 'name_vorname_ohne_komma': return trim($ummelden->name . ' ' . $ummelden->vorname);
          case 'titel_name_vorname': return trim($ummelden->titel . ' ' . $ummelden->name . ' ' . $ummelden->vorname);
          case 'titel_name': return trim($ummelden->titel . ' ' . $ummelden->name);
          case 'vorname_name': return trim(($ummelden->vorname === '' ? '' : $ummelden->vorname . ', ') . $ummelden->name);
          case 'vorname_name_ohne_komma': return trim($ummelden->vorname . ' ' . $ummelden->name);
          case 'titel_vorname_name': return trim($ummelden->titel . ' ' . $ummelden->vorname . ' ' . $ummelden->name);
          case 'id':
            return $ummelden->id ?? '';
          case 'geschlecht':
            return $ummelden->geschlecht ?? '';
          case 'email':
            return $ummelden->email->wert ?? '';
          case 'tel':
            return $ummelden->tel->wert ?? '';
          case 'mobil':
            return $ummelden->mobil->wert ?? '';
          case 'berufsgruppeary':

          case 'berufsgruppe_id':
            if (empty($ummelden->berufsgruppe)) {
              return '';
            }

            return $ummelden->berufsgruppe;
          case 'berufsgruppe_name':
            if (empty($ummelden->berufsgruppe)) {
              return '';
            }

            static $dbwKennz = null;
            if (is_null($dbwKennz)) {
              $dbwKennz = new \DBWorkKennz();
            }

            return $dbwKennz->getKennzNamebyKnr($ummelden->berufsgruppe);
          default:
            return $ummelden->{$varname} ?? '';
        }
    }
  }
}