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

namespace Kufer\KuferTools\Firma\KursUebersicht\KursUebersicht\Detailsreiter\Storno;

class InlinguaHandleStornoUseCase extends HandleStornoUseCase
{
  protected function getBelegAryAndUmmeldInfo()
  {
    $belegAry4Firma = array(); 
    $belegungenZumStornieren = array(); 
    $ummeldeInfo = array();

    
    
    $jsonObject = \JsonOperations::getFromString(\PostOperations::getVarValue('jsonData'));

    $vars = get_object_vars($jsonObject);

    
    
    $belegungenZumStornierenArry = array();
    foreach ($vars as $value) {
      
      $belegAry4Firma[] = $value->belegung->id;
      if (isset($value->belegung->status) && $value->belegung->status == 'S') {
        
        $belegungenZumStornieren = array();
        $belegungenZumStornieren['id'] = $value->belegung->id;
        if (isset($value->belegung->zeitraum->bereich) && $value->belegung->zeitraum->bereich == 'bereich') {
          $belegungenZumStornieren['zeitraumVon'] = $value->belegung->zeitraum->datumvon;
          $belegungenZumStornieren['zeitraumBis'] = $value->belegung->zeitraum->datumbis;
        }
      } else {
        
        $teilnehmerNeu = isset($value->teilnehmer) ? $value->teilnehmer : null;
        if (!is_null($teilnehmerNeu)) {
          if (isset($teilnehmerNeu->id) && $teilnehmerNeu->id != '') {
            
          }
          $ummeldeInfo[$value->belegung->id] = $teilnehmerNeu;
        }
      }
      $belegungenZumStornierenArry[$value->belegung->id] = $belegungenZumStornieren;
      $belegAry = array(
          'belegAry4Firma' => $belegAry4Firma,
          'ummeldeInfo' => $ummeldeInfo);
    }
    $belegAry['belegungenZumStornieren'] = $belegungenZumStornierenArry;

    return $belegAry;
  }

  protected function sollAutomatischAbmeldenAusgefuehrtWerden()
  {
    return false;
  }

  
  protected function getMaInformationen($pKomplettAbmelden, $pFirmenBelegungen, $pBelegungenZumStornieren, $pUmmeldeInfo, $belegAry4Firma)
  {
    $maInformationen = array();
    
    if (!$pKomplettAbmelden) {
      foreach ($pFirmenBelegungen as $belegung) {
        $nachrichtBeginn = 'Die Belegung für ' . $belegung->teilnehmer->name . ', ' . $belegung->teilnehmer->vorname
                . ' (Nr. ' . $belegung->tnr . ', derzeit Status ' . $belegung->status . ') soll ';
        if (in_array($belegung->id, $belegAry4Firma)) {
          if ($pBelegungenZumStornieren[$belegung->id]) {
            if (isset($pBelegungenZumStornieren[$belegung->id]['zeitraumVon'], $pBelegungenZumStornieren[$belegung->id]['zeitraumBis'])) {
              $datumVon = $pBelegungenZumStornieren[$belegung->id]['zeitraumVon'];
              $datumBis = $pBelegungenZumStornieren[$belegung->id]['zeitraumBis'];

              $nachrichtBeginn .= 'für den Zeitraum von ' . $datumVon . ' bis ' . $datumBis . ' ';
            } else {
              $nachrichtBeginn .= 'für den restlichen Zeitraum ';
            }
          }
          $maInformationen[] = $nachrichtBeginn . 'storniert werden.';
        } else {
          $maInformationen[] = $nachrichtBeginn . "ersetzt werden durch:\n "
                  . $this->getNeuMaInfo($pUmmeldeInfo[$belegung->id]);
        }
      }
    }

    return $maInformationen;
  }

  protected function getGruendeString4Email($pGuendeCount, $pGruende)
  {
    return '';
  }

  protected function getMaInfoString4Email($pMaInformationen)
  {
    $result = "\nDie Belegungen der Mitarbeiter sollen wie folgt geändert werden:";
    foreach ($pMaInformationen as $info) {
      $result .= "\n- $info";
    }

    return $result;
  }
}