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

abstract class AnmeldedatenSender implements IAnmeldedatenSender
{
  
  protected function send($anmeldedaten, $anmeldeart, $nomappingAbw = false, $nomappingHauptTn = false)
  {
    $anmeldungenNode = new XMLNode('anmeldungen');

    $anmeldungNode = new XMLNode('anmeldung');
    $anmeldungNode->addChild(new XMLNode('art', $anmeldeart));

    $xmlDataGeneratorAnmeldedaten = new XmlDataGeneratorAnmeldedaten();
    $anmeldedatenNode = $xmlDataGeneratorAnmeldedaten->getXmlNode($anmeldedaten);
    $anmeldungNode->addChild($anmeldedatenNode);

    $anmeldungenNode->addChild(new XMLNode('MESSAGE_TYPE', 'ANMELDUNG'));
    $anmeldungenNode->addChild($anmeldungNode);

    $abgleichApi = new AbgleichAPI();
    $nutzlast = new Nutzlast($anmeldungenNode);
    if ($nomappingAbw) {
      $nutzlast->addNode(new XMLNode('nomappingabw', 'W'));
    }
    if ($nomappingHauptTn) {
      $nutzlast->addNode(new XMLNode('nomappinghaupttn', 'W'));
    }
    $result = $abgleichApi->sendeNachricht(AbgleichAPI::ABGLEICH_ANMELDUNGDIREKT, $nutzlast);

    
    $dmzIdsResultArray = array();
    if (preg_match('/\\[.*\\]/', $result->reason, $dmzIdsResultArray)) {
      $dmzIdsResultArray = json_decode($dmzIdsResultArray[0]);
    }

    $dmzIds = array();
    foreach ($dmzIdsResultArray as $stdObjekt) {
      $dmzIds[] = $stdObjekt->Value;
    }

    return $dmzIds;
  }
}