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

class DataMenuLoginDatenAendernZsa extends DataMenuLoginDatenAendern
{
  
  protected function afterSendChangesHook($pTeilnehmer)
  {
    if (\DBWorkBASysSettings::isKornwestheimEbz()) {
      $pflichtfelder = $this->getPflichtfelder();
      $changedTnFields = $this->getChangedFields($pTeilnehmer);

      if (count(array_intersect($pflichtfelder, $changedTnFields)) > 0) {
        $dbwBkBvTn = new DBWorkZsaBkBvTn(1, true);
        $bkBvTnBildungsverantwortliche = $dbwBkBvTn->getBildungsverantwortliche4Teilnehmer($pTeilnehmer->id);

        $tnBildungsverantworltiche = array();
        foreach ($bkBvTnBildungsverantwortliche as $bkbvtn) {
          
          $tnBildungsverantworltiche[$bkbvtn->teilnehmer->id] = $bkbvtn->teilnehmer;
        }

        foreach ($tnBildungsverantworltiche as $tnBv) {
          $this->sendEmail(clone($this), $tnBv->getVarValue('email_anzeige'));
        }
      }
    }
  }

  private function getPflichtfelder()
  {
    $this->getSight();
    $pflichtfelderHeader = StringOperations::getPflichtFelder('', $this->sight->header);
    $pflichtfelderBody = StringOperations::getPflichtFelder('', $this->sight->body);
    $pflichtfelderFooter = StringOperations::getPflichtFelder('', $this->sight->footer);

    return array_merge($pflichtfelderHeader, $pflichtfelderBody, $pflichtfelderFooter);
  }

  private function getChangedFields($pTeilnehmer)
  {
    $wbl = $this->_getOriginalWbLoginFromTeilnehmer($pTeilnehmer);

    return $this->_getRelevantChangedLoginFields($wbl, $pTeilnehmer->oldStammhoererData);
  }

  private function sendEmail($pDataMenu, $pZielEmail)
  {
    $content = $pDataMenu->getsightcomplete(441, new ExpStammhoerer());

    
    $titleContentAry = $this->_getEMailTeile($content, 'Änderung Ihrer Stammhörerdaten');

    $title = $titleContentAry['title'];
    $content = $titleContentAry['content'];

    return $this->_sendEMail($pZielEmail, $content, $title);
  }
}