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


class EmailXMLHotel extends Datamodul
{
  
  public $emailkursid;
  
  public $emailweitereid;
  
  public $uebernachtung_jn;
  
  public $zimmerart;
  
  public $zimmergebuehr;
  
  public $dz_statt_ez_ok;
  
  public $dz_mit;
  
  public $sw_zimmer;
  
  public $keine_weitergabe_name;
  
  public $essen_jn;
  
  public $kein_fruehstueck;
  
  public $kein_abendessen;
  
  public $sw_essen;
  
  public $essengebuehr;
  
  public $bearbeiter;
  
  public $bearbdatum;

  
  public function _ConcatSW_Essen($pAnmeldedatenHotel)
  {
    $string = '';
    if ($pAnmeldedatenHotel->sw_essen1 != '') {
      $string .= $pAnmeldedatenHotel->sw_essen1 . '|';
    }
    if ($pAnmeldedatenHotel->sw_essen2 != '') {
      $string .= $pAnmeldedatenHotel->sw_essen2 . '|';
    }
    if ($pAnmeldedatenHotel->sw_essen3 != '') {
      $string .= $pAnmeldedatenHotel->sw_essen3 . '|';
    }
    if ($pAnmeldedatenHotel->sw_essen4 != '') {
      $string .= $pAnmeldedatenHotel->sw_essen4 . '|';
    }
    if ($pAnmeldedatenHotel->sw_essen5 != '') {
      $string .= $pAnmeldedatenHotel->sw_essen5 . '|';
    }

    if ($string != '') {
      return StringOperations::substr($string, 0, -1);
    } 
    else {
      return '';
    }
  }

  
  public function _ConcatSW_Zimmer($pAnmeldedatenHotel)
  {
    $string = '';
    if ($pAnmeldedatenHotel->sw_zimmer1 != '') {
      $string .= $pAnmeldedatenHotel->sw_zimmer1 . '|';
    }
    if ($pAnmeldedatenHotel->sw_zimmer2 != '') {
      $string .= $pAnmeldedatenHotel->sw_zimmer2 . '|';
    }
    if ($pAnmeldedatenHotel->sw_zimmer3 != '') {
      $string .= $pAnmeldedatenHotel->sw_zimmer3 . '|';
    }
    if ($pAnmeldedatenHotel->sw_zimmer4 != '') {
      $string .= $pAnmeldedatenHotel->sw_zimmer4 . '|';
    }
    if ($pAnmeldedatenHotel->sw_zimmer5 != '') {
      $string .= $pAnmeldedatenHotel->sw_zimmer5 . '|';
    }

    if ($string != '') {
      return StringOperations::substr($string, 0, -1);
    } 
    else {
      return '';
    }
  }

  
  public function CopyFromAnmeldedatenHotel($pAnmeldedatenHotel)
  {
    $this->uebernachtung_jn = $pAnmeldedatenHotel->uebernachtung_jn;
    $this->zimmerart = $pAnmeldedatenHotel->zimmerart;
    $this->zimmergebuehr = $pAnmeldedatenHotel->zimmergebuehr;
    $this->dz_statt_ez_ok = $pAnmeldedatenHotel->dz_statt_ez_ok;
    $this->dz_mit = $pAnmeldedatenHotel->dz_mit;
    $this->sw_zimmer = $this->_ConcatSW_Zimmer($pAnmeldedatenHotel);
    $this->keine_weitergabe_name = $pAnmeldedatenHotel->keine_weitergabe_name;
    $this->essen_jn = $pAnmeldedatenHotel->essen_jn;
    $this->kein_fruehstueck = $pAnmeldedatenHotel->kein_fruehstueck;
    $this->kein_abendessen = $pAnmeldedatenHotel->kein_abendessen;
    $this->sw_essen = $this->_ConcatSW_Essen($pAnmeldedatenHotel);
    $this->essengebuehr = $pAnmeldedatenHotel->essengebuehr;
  }

  public function getXMLNode($pNodeTag = 'HOTELANM')
  {
    $exceptions = array();
    

    $musthave = array('uebernachtung_jn');

    $rootNode = new XMLNode($pNodeTag);
    for ($i = 0; $i < $this->getVarCount(); $i++) {
      $varname = $this->getVarname($i);
      if (in_array($varname, $exceptions)) {
        continue;
      }
      $value = $this->getVarValue($varname);
      if ($value != '' || in_array($varname, $musthave)) {
        $rootNode->addChild(new XMLNode(StringOperations::strtoupper($varname), $this->getXMLVarValue($varname)));
      }
    }

    return $rootNode;
  }

  
  public function getXMLVarValue($varname)
  {
    switch (StringOperations::strtolower($varname)) {
      case 'uebernachtung_jn':
      case 'dz_statt_ez_ok':
      case 'keine_weitergabe_name':
      case 'essen_jn':
      case 'kein_fruehstueck':
      case 'kein_abendessen':
        return  $this->getVarValue($varname) ? 'W' : 'F';
      default:
        return $this->getVarValue($varname);
    }
  }

  public function getTyp($pFieldName)
  {
    switch ($pFieldName) {
      default:
        return parent::getTyp($pFieldName);
      case 'emailkursid':
      case 'emailweitereid':
        return \DatamodulVarType::TYPE_INT;
      case 'bearbdatum':
        return \DatamodulVarType::TYPE_DATE;
      case 'essengebuehr':
      case 'zimmergebuehr':
        return \DatamodulVarType::TYPE_FLOAT;
      case 'uebernachtung_jn':
      case 'dz_statt_ez_ok':
      case 'keine_weitergabe_name':
      case 'essen_jn':
      case 'kein_fruehstueck':
      case 'kein_abendessen':
        return \DatamodulVarType::TYPE_BOOL_WF;
    }
  }
}