diff --git a/lib/Digitick/Sepa/DomBuilder/CustomerDirectDebitTransferDomBuilder.php b/lib/Digitick/Sepa/DomBuilder/CustomerDirectDebitTransferDomBuilder.php index 95b51f0..f6c066e 100644 --- a/lib/Digitick/Sepa/DomBuilder/CustomerDirectDebitTransferDomBuilder.php +++ b/lib/Digitick/Sepa/DomBuilder/CustomerDirectDebitTransferDomBuilder.php @@ -28,6 +28,7 @@ use Digitick\Sepa\TransferInformation\TransferInformationInterface; use Digitick\Sepa\PaymentInformation; use Digitick\Sepa\TransferFile\TransferFileInterface; +use Digitick\Sepa\GroupHeader; class CustomerDirectDebitTransferDomBuilder extends BaseDomBuilder @@ -174,5 +175,30 @@ public function visitTransferInformation(TransferInformationInterface $transacti } + /** + * Add the specific OrgId element for the format 'pain.008.001.02' + * + * @param GroupHeader $groupHeader + * @return mixed + */ + public function visitGroupHeader(GroupHeader $groupHeader) + { + parent::visitGroupHeader($groupHeader); + + if ($groupHeader->getInitiatingPartyId() !== null && $this->painFormat === 'pain.008.001.02') { + $newId = $this->createElement('Id'); + $orgId = $this->createElement('OrgId'); + $othr = $this->createElement('Othr'); + $othr->appendChild($this->createElement('Id', $groupHeader->getInitiatingPartyId())); + $orgId->appendChild($othr); + $newId->appendChild($orgId); + + $xpath = new \DOMXpath($this->doc); + $items = $xpath->query('GrpHdr/InitgPty/Id', $this->currentTransfer); + $oldId = $items->item(0); + + $oldId->parentNode->replaceChild($newId, $oldId); + } + } -} \ No newline at end of file +}