/**
  * @param DomBuilderInterface $domBuilder
  */
 public function accept(DomBuilderInterface $domBuilder)
 {
     $this->validate();
     $domBuilder->visitTransferFile($this);
     $this->groupHeader->accept($domBuilder);
     /** @var $paymentInformation PaymentInformation */
     foreach ($this->paymentInformations as $paymentInformation) {
         $paymentInformation->accept($domBuilder);
     }
 }
 /**
  * Add GroupHeader Information to the document
  *
  * @param GroupHeader $groupHeader
  * @return mixed
  */
 public function visitGroupHeader(GroupHeader $groupHeader)
 {
     $groupHeaderTag = $this->doc->createElement('GrpHdr');
     $messageId = $this->createElement('MsgId', $groupHeader->getMessageIdentification());
     $groupHeaderTag->appendChild($messageId);
     $creationDateTime = $this->createElement('CreDtTm', $groupHeader->getCreationDateTime()->format($groupHeader->getCreationDateTimeFormat()));
     $groupHeaderTag->appendChild($creationDateTime);
     $groupHeaderTag->appendChild($this->createElement('NbOfTxs', $groupHeader->getNumberOfTransactions()));
     $groupHeaderTag->appendChild($this->createElement('CtrlSum', $this->intToCurrency($groupHeader->getControlSumCents())));
     $initiatingParty = $this->createElement('InitgPty');
     $initiatingPartyName = $this->createElement('Nm', $groupHeader->getInitiatingPartyName());
     $initiatingParty->appendChild($initiatingPartyName);
     if ($groupHeader->getInitiatingPartyId() !== null) {
         $id = $this->createElement('Id', $groupHeader->getInitiatingPartyId());
         $initiatingParty->appendChild($id);
     }
     $groupHeaderTag->appendChild($initiatingParty);
     $this->currentTransfer->appendChild($groupHeaderTag);
 }