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

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


class Einzelveranstaltung
{
  private $teilnehmerGesamt = 0;
  private $teilnehmerMaennlich = 0;
  private $teilnehmerWeiblich = 0;
  private $teilnehmerUnbekannt = 0;

  
  public function initBevorzugeGesamt($gesamt, $maennlich, $weiblich, $unbekannt)
  {
    
    $this->setTeilnehmerMaennlich($maennlich);
    $this->setTeilnehmerWeiblich($weiblich);
    $this->setTeilnehmerUnbekannt($unbekannt);
    $this->setTeilnehmerGesamt($gesamt);
  }

  
  public function initBevorzugeUnbekannt($gesamt, $maennlich, $weiblich, $unbekannt)
  {
    
    $this->setTeilnehmerMaennlich($maennlich);
    $this->setTeilnehmerWeiblich($weiblich);
    $this->setTeilnehmerGesamt($gesamt);
    $this->setTeilnehmerUnbekannt($unbekannt);
  }

  public function setTeilnehmerGesamt($gesamt)
  {
    $this->teilnehmerGesamt = max(array(0, $gesamt, $this->teilnehmerMaennlich + $this->teilnehmerWeiblich));
    $this->teilnehmerUnbekannt = $this->teilnehmerGesamt - ($this->teilnehmerMaennlich + $this->teilnehmerWeiblich);
  }

  public function setTeilnehmerUnbekannt($unbekannt)
  {
    $this->teilnehmerUnbekannt = max(array(0, $unbekannt));
    $this->teilnehmerGesamt = $this->teilnehmerUnbekannt + $this->teilnehmerMaennlich + $this->teilnehmerWeiblich;
  }

  public function setTeilnehmerMaennlich($maennlich)
  {
    $this->teilnehmerMaennlich = max(array(0, $maennlich));
    $this->teilnehmerGesamt = $this->teilnehmerUnbekannt + $this->teilnehmerMaennlich + $this->teilnehmerWeiblich;
  }

  public function setTeilnehmerWeiblich($maennlich)
  {
    $this->teilnehmerWeiblich = max(array(0, $maennlich));
    $this->teilnehmerGesamt = $this->teilnehmerUnbekannt + $this->teilnehmerWeiblich + $this->teilnehmerWeiblich;
  }

  public function getTeilnehmerGesamt()
  {
    return $this->teilnehmerGesamt;
  }

  public function getTeilnehmerUnbekannt()
  {
    return $this->teilnehmerUnbekannt;
  }

  public function getTeilnehmerMaennlich()
  {
    return $this->teilnehmerMaennlich;
  }

  public function getTeilnehmerWeiblich()
  {
    return $this->teilnehmerWeiblich;
  }

  public static function getJsDeclarations($kurs)
  {
    $result = \JsOperations::getDeclarationInt('KuferTools.Kursplanung.ErwachseneGesamt', $kurs->getVarValueEx('teinzel', 'kurs'));
    $result .= \JsOperations::getDeclarationInt('KuferTools.Kursplanung.ErwachseneMaennlich', $kurs->getVarValueEx('teinzel_m', 'kurs'));
    $result .= \JsOperations::getDeclarationInt('KuferTools.Kursplanung.ErwachseneWeiblich', $kurs->getVarValueEx('teinzel_w', 'kurs'));
    $result .= \JsOperations::getDeclarationInt('KuferTools.Kursplanung.ErwachseneUnbekannt', $kurs->getVarValueEx('teinzel_u', 'kurs'));
    $result .= \JsOperations::getDeclarationInt('KuferTools.Kursplanung.KinderGesamt', $kurs->getVarValueEx('kinder_ev', 'kurs'));
    $result .= \JsOperations::getDeclarationInt('KuferTools.Kursplanung.KinderMaennlich', $kurs->getVarValueEx('keinzel_m', 'kurs'));
    $result .= \JsOperations::getDeclarationInt('KuferTools.Kursplanung.KinderWeiblich', $kurs->getVarValueEx('keinzel_w', 'kurs'));
    $result .= \JsOperations::getDeclarationInt('KuferTools.Kursplanung.KinderUnbekannt', $kurs->getVarValueEx('keinzel_u', 'kurs'));

    return $result;
  }
}