/** * Crawl Transactions * * @param TransferInformationInterface $transactionInformation * @return mixed */ public function visitTransferInformation(TransferInformationInterface $transactionInformation) { /** @var $transactionInformation CustomerCreditTransferInformation */ $CdtTrfTxInf = $this->createElement('CdtTrfTxInf'); // Payment ID 2.28 $PmtId = $this->createElement('PmtId'); if ($transactionInformation->getInstructionId()) { $PmtId->appendChild($this->createElement('InstrId', $transactionInformation->getInstructionId())); } $PmtId->appendChild($this->createElement('EndToEndId', $transactionInformation->getEndToEndIdentification())); $CdtTrfTxInf->appendChild($PmtId); // Amount 2.42 $amount = $this->createElement('Amt'); $instructedAmount = $this->createElement('InstdAmt', $this->intToCurrency($transactionInformation->getTransferAmount())); $instructedAmount->setAttribute('Ccy', $transactionInformation->getCurrency()); $amount->appendChild($instructedAmount); $CdtTrfTxInf->appendChild($amount); //Creditor Agent 2.77 if ($transactionInformation->getBic() != null) { $creditorAgent = $this->createElement('CdtrAgt'); $financialInstitution = $this->createElement('FinInstnId'); $financialInstitution->appendChild($this->createElement('BIC', $transactionInformation->getBic())); $creditorAgent->appendChild($financialInstitution); $CdtTrfTxInf->appendChild($creditorAgent); } // Creditor 2.79 $creditor = $this->createElement('Cdtr'); $creditor->appendChild($this->createElement('Nm', $transactionInformation->getCreditorName())); $CdtTrfTxInf->appendChild($creditor); // CreditorAccount 2.80 $creditorAccount = $this->createElement('CdtrAcct'); $id = $this->createElement('Id'); $id->appendChild($this->createElement('IBAN', $transactionInformation->getIban())); $creditorAccount->appendChild($id); $CdtTrfTxInf->appendChild($creditorAccount); // remittance 2.98 2.99 $remittanceInformation = $this->getRemittenceElement($transactionInformation->getRemittanceInformation()); $CdtTrfTxInf->appendChild($remittanceInformation); $this->currentPayment->appendChild($CdtTrfTxInf); }