From 98e838b6c6966e86442895e6605dd77dc93d88da Mon Sep 17 00:00:00 2001 From: elrico77 Date: Wed, 5 Feb 2014 13:06:31 +0100 Subject: [PATCH 1/3] Added FinInstnId/Othr/Id tag with NOTPROVIDED value when BIC is not provided --- lib/Digitick/Sepa/DomBuilder/BaseDomBuilder.php | 13 +++++++++++-- 1 file changed, 11 insertions(+), 2 deletions(-) diff --git a/lib/Digitick/Sepa/DomBuilder/BaseDomBuilder.php b/lib/Digitick/Sepa/DomBuilder/BaseDomBuilder.php index 02af781..2c74861 100644 --- a/lib/Digitick/Sepa/DomBuilder/BaseDomBuilder.php +++ b/lib/Digitick/Sepa/DomBuilder/BaseDomBuilder.php @@ -138,8 +138,17 @@ public function visitGroupHeader(GroupHeader $groupHeader) protected function getFinancialInstitutionElement($bic) { $finInstitution = $this->createElement('FinInstnId'); - $finInstitution->appendChild($this->createElement('BIC', $bic)); - + + if (!isset($bic) || trim($bic)==='') { + $other = $this->createElement ( 'Othr' ); + $id = $this->createElement ( 'Id', 'NOTPROVIDED' ); + $other->appendChild ( $id ); + $finInstitution->appendChild ( $other ); + } + else { + $finInstitution->appendChild($this->createElement('BIC', $bic)); + } + return $finInstitution; } From 2149b15a41794ce4670f59561a2d1dd829b40e76 Mon Sep 17 00:00:00 2001 From: elrico77 Date: Fri, 28 Mar 2014 15:57:42 +0100 Subject: [PATCH 2/3] CustomerCreditTransferInformation: add optional transaction id --- .../Sepa/DomBuilder/CustomerDirectDebitTransferDomBuilder.php | 3 +++ .../Sepa/TransferFile/Facade/CustomerDirectDebitFacade.php | 3 +++ 2 files changed, 6 insertions(+) diff --git a/lib/Digitick/Sepa/DomBuilder/CustomerDirectDebitTransferDomBuilder.php b/lib/Digitick/Sepa/DomBuilder/CustomerDirectDebitTransferDomBuilder.php index 95b51f0..f078fc3 100644 --- a/lib/Digitick/Sepa/DomBuilder/CustomerDirectDebitTransferDomBuilder.php +++ b/lib/Digitick/Sepa/DomBuilder/CustomerDirectDebitTransferDomBuilder.php @@ -130,6 +130,9 @@ public function visitTransferInformation(TransferInformationInterface $transacti $directDebitTransactionInformation = $this->createElement('DrctDbtTxInf'); $paymentId = $this->createElement('PmtId'); + if ($transactionInformation->getInstructionId()) { + $paymentId->appendChild($this->createElement('InstrId', $transactionInformation->getInstructionId())); + } $paymentId->appendChild( $this->createElement('EndToEndId', $transactionInformation->getEndToEndIdentification()) ); diff --git a/lib/Digitick/Sepa/TransferFile/Facade/CustomerDirectDebitFacade.php b/lib/Digitick/Sepa/TransferFile/Facade/CustomerDirectDebitFacade.php index 39ee1c4..8555484 100644 --- a/lib/Digitick/Sepa/TransferFile/Facade/CustomerDirectDebitFacade.php +++ b/lib/Digitick/Sepa/TransferFile/Facade/CustomerDirectDebitFacade.php @@ -108,6 +108,9 @@ public function addTransfer($paymentName, array $transferInformation) $transfer->setMandateSignDate(new \DateTime($transferInformation['debtorMandateSignDate'])); } $transfer->setRemittanceInformation($transferInformation['remittanceInformation']); + if (isset($transferInformation['InstrId'])) { + $transfer->setInstructionId($transferInformation['InstrId']); + } if (isset($transferInformation['endToEndId'])) { $transfer->setEndToEndIdentification($transferInformation['endToEndId']); } else { From 8753a372831b85a88c9d917ea26e966e4399bac7 Mon Sep 17 00:00:00 2001 From: elrico77 Date: Fri, 28 Mar 2014 17:33:17 +0100 Subject: [PATCH 3/3] Optionnal tag FinInstnId/Othr/Id tag with NOTPROVIDED only used when bic is set to NOTPROVIDED --- lib/Digitick/Sepa/DomBuilder/BaseDomBuilder.php | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/lib/Digitick/Sepa/DomBuilder/BaseDomBuilder.php b/lib/Digitick/Sepa/DomBuilder/BaseDomBuilder.php index 2c74861..1540420 100644 --- a/lib/Digitick/Sepa/DomBuilder/BaseDomBuilder.php +++ b/lib/Digitick/Sepa/DomBuilder/BaseDomBuilder.php @@ -139,7 +139,7 @@ protected function getFinancialInstitutionElement($bic) { $finInstitution = $this->createElement('FinInstnId'); - if (!isset($bic) || trim($bic)==='') { + if (strtoupper($bic)==='NOTPROVIDED') { $other = $this->createElement ( 'Othr' ); $id = $this->createElement ( 'Id', 'NOTPROVIDED' ); $other->appendChild ( $id );