@@ -7,132 +7,132 @@ |
||
7 | 7 | use SKien\Sepa\SepaPmtInf; |
8 | 8 | use SKien\Sepa\SepaTxInf; |
9 | 9 | |
10 | - // some valid transactions |
|
11 | - $aValidTransactions = array( |
|
12 | - array( |
|
13 | - 'dblValue' => 104.45, |
|
14 | - 'strDescription' => 'Test Betreff 1', |
|
15 | - 'strName' => 'Mustermann, Max', |
|
16 | - 'strIBAN' => 'DE11682900000009215808', |
|
17 | - 'strBIC' => 'GENODE61LAH', |
|
18 | - 'strMandateId' => 'ID-0815', |
|
19 | - 'strDateOfSignature' => '2018-04-03' |
|
20 | - ), |
|
21 | - array( |
|
22 | - 'dblValue' => 205.67, |
|
23 | - 'strDescription' => 'Test Betreff 2', |
|
24 | - 'strName' => 'Musterfrau, Karin', |
|
25 | - 'strIBAN' => 'DE71664500500070143559', |
|
26 | - 'strBIC' => 'SOLADES1OFG', |
|
27 | - 'strMandateId' => 'ID-0816', |
|
28 | - 'strDateOfSignature' => '2019-06-09' |
|
29 | - ) |
|
30 | - ); |
|
10 | + // some valid transactions |
|
11 | + $aValidTransactions = array( |
|
12 | + array( |
|
13 | + 'dblValue' => 104.45, |
|
14 | + 'strDescription' => 'Test Betreff 1', |
|
15 | + 'strName' => 'Mustermann, Max', |
|
16 | + 'strIBAN' => 'DE11682900000009215808', |
|
17 | + 'strBIC' => 'GENODE61LAH', |
|
18 | + 'strMandateId' => 'ID-0815', |
|
19 | + 'strDateOfSignature' => '2018-04-03' |
|
20 | + ), |
|
21 | + array( |
|
22 | + 'dblValue' => 205.67, |
|
23 | + 'strDescription' => 'Test Betreff 2', |
|
24 | + 'strName' => 'Musterfrau, Karin', |
|
25 | + 'strIBAN' => 'DE71664500500070143559', |
|
26 | + 'strBIC' => 'SOLADES1OFG', |
|
27 | + 'strMandateId' => 'ID-0816', |
|
28 | + 'strDateOfSignature' => '2019-06-09' |
|
29 | + ) |
|
30 | + ); |
|
31 | 31 | |
32 | - // some invalid transactions to test validation |
|
33 | - $aInvalidTransactions = array( |
|
34 | - array( |
|
35 | - 'dblValue' => 104.45, |
|
36 | - 'strDescription' => 'Ein Eidgenosse...', |
|
37 | - 'strName' => '', // missing Name |
|
38 | - 'strIBAN' => 'CH18 0483 5029 8829 8100 0', |
|
39 | - 'strBIC' => 'CRESCHZZ80A', |
|
40 | - 'strMandateId' => 'ID-0815', |
|
41 | - 'strDateOfSignature' => '18-04-03' // Wrong Date |
|
42 | - ), |
|
43 | - array( |
|
44 | - // 'dblValue' => 104.45, // no value |
|
45 | - 'strDescription' => '', // missing descr |
|
46 | - 'strName' => 'Mustermann, Max', |
|
47 | - 'strIBAN' => 'FR14 2004 1010 0505 0001 3M02 606', |
|
48 | - 'strBIC' => 'GENODE61LAH', |
|
49 | - // 'strMandateId' => 'ID-0815', // missing |
|
50 | - // 'strDateOfSignature' => '18-04-03' // missing |
|
51 | - ), |
|
52 | - array( |
|
53 | - 'dblValue' => 205.67, |
|
54 | - 'strDescription' => 'Test Betreff 2 - enthält Umlaute, Sonderzeichen {} _@ und ungültige Zeichen [&%]', |
|
55 | - 'strName' => 'Musterfrau, Karin', |
|
56 | - 'strIBAN' => 'DE71664600500070143559', // Wrong checksum |
|
57 | - 'strBIC' => 'SOLADES1OG', // missing sign |
|
58 | - 'strMandateId' => 'ID-0816', |
|
59 | - 'strDateOfSignature' => '2019-06-09' |
|
60 | - ) |
|
61 | - ); |
|
32 | + // some invalid transactions to test validation |
|
33 | + $aInvalidTransactions = array( |
|
34 | + array( |
|
35 | + 'dblValue' => 104.45, |
|
36 | + 'strDescription' => 'Ein Eidgenosse...', |
|
37 | + 'strName' => '', // missing Name |
|
38 | + 'strIBAN' => 'CH18 0483 5029 8829 8100 0', |
|
39 | + 'strBIC' => 'CRESCHZZ80A', |
|
40 | + 'strMandateId' => 'ID-0815', |
|
41 | + 'strDateOfSignature' => '18-04-03' // Wrong Date |
|
42 | + ), |
|
43 | + array( |
|
44 | + // 'dblValue' => 104.45, // no value |
|
45 | + 'strDescription' => '', // missing descr |
|
46 | + 'strName' => 'Mustermann, Max', |
|
47 | + 'strIBAN' => 'FR14 2004 1010 0505 0001 3M02 606', |
|
48 | + 'strBIC' => 'GENODE61LAH', |
|
49 | + // 'strMandateId' => 'ID-0815', // missing |
|
50 | + // 'strDateOfSignature' => '18-04-03' // missing |
|
51 | + ), |
|
52 | + array( |
|
53 | + 'dblValue' => 205.67, |
|
54 | + 'strDescription' => 'Test Betreff 2 - enthält Umlaute, Sonderzeichen {} _@ und ungültige Zeichen [&%]', |
|
55 | + 'strName' => 'Musterfrau, Karin', |
|
56 | + 'strIBAN' => 'DE71664600500070143559', // Wrong checksum |
|
57 | + 'strBIC' => 'SOLADES1OG', // missing sign |
|
58 | + 'strMandateId' => 'ID-0816', |
|
59 | + 'strDateOfSignature' => '2019-06-09' |
|
60 | + ) |
|
61 | + ); |
|
62 | 62 | |
63 | - $bValidTest = isset($_GET['valid']) && $_GET['valid'] == 1; |
|
63 | + $bValidTest = isset($_GET['valid']) && $_GET['valid'] == 1; |
|
64 | 64 | |
65 | - // initialize package |
|
66 | - // - init() have to be called first before any use of the package! |
|
67 | - // - full validation is by default activated |
|
68 | - // - switch to german error messages |
|
69 | - Sepa::init(); |
|
70 | - Sepa::setValidationLevel(Sepa::V_FULL_VALIDATION); |
|
71 | - Sepa::loadErrorMsg('sepa_errormsg_de.json'); |
|
65 | + // initialize package |
|
66 | + // - init() have to be called first before any use of the package! |
|
67 | + // - full validation is by default activated |
|
68 | + // - switch to german error messages |
|
69 | + Sepa::init(); |
|
70 | + Sepa::setValidationLevel(Sepa::V_FULL_VALIDATION); |
|
71 | + Sepa::loadErrorMsg('sepa_errormsg_de.json'); |
|
72 | 72 | |
73 | - // test for dirct debit transdaction |
|
74 | - $type = Sepa::CDD; |
|
73 | + // test for dirct debit transdaction |
|
74 | + $type = Sepa::CDD; |
|
75 | 75 | |
76 | - // create new SEPA document with header |
|
77 | - $oSepaDoc = new SepaDoc($type); |
|
78 | - $oSepaDoc->createGroupHeader('Test company 4711'); |
|
76 | + // create new SEPA document with header |
|
77 | + $oSepaDoc = new SepaDoc($type); |
|
78 | + $oSepaDoc->createGroupHeader('Test company 4711'); |
|
79 | 79 | |
80 | - // create payment info instruction (PII) and set all needet creditor information |
|
81 | - $oPPI = new SepaPmtInf($oSepaDoc); |
|
82 | - $oPPI->setName('Testfirma'); |
|
83 | - $oPPI->setCI('CH51 ZZZ 12345678901'); |
|
84 | - $oPPI->setIBAN('DE71664500500070143559'); |
|
85 | - $oPPI->setBIC('GENODE61LAH'); |
|
86 | - $oPPI->setSeqType(Sepa::SEQ_RECURRENT); |
|
80 | + // create payment info instruction (PII) and set all needet creditor information |
|
81 | + $oPPI = new SepaPmtInf($oSepaDoc); |
|
82 | + $oPPI->setName('Testfirma'); |
|
83 | + $oPPI->setCI('CH51 ZZZ 12345678901'); |
|
84 | + $oPPI->setIBAN('DE71664500500070143559'); |
|
85 | + $oPPI->setBIC('GENODE61LAH'); |
|
86 | + $oPPI->setSeqType(Sepa::SEQ_RECURRENT); |
|
87 | 87 | |
88 | - // add the PII to the document. |
|
89 | - // NOTE: dont' add any transaction to the PII bofore added to the doc! |
|
90 | - if (($iErr = $oSepaDoc->addPaymentInstructionInfo($oPPI)) == Sepa::OK) { |
|
91 | - // test for transactions through SepaTxInf::fromArray() |
|
92 | - $aTransactions = $bValidTest ? $aValidTransactions : $aInvalidTransactions; |
|
93 | - foreach ($aTransactions as $aTrans) { |
|
94 | - $oTxInf = new SepaTxInf($type); |
|
95 | - $oTxInf->fromArray($aTrans); |
|
96 | - $iErr = $oPPI->addTransaction($oTxInf); |
|
97 | - if ($iErr != Sepa::OK) { |
|
98 | - echo '<h2>' . $oTxInf->getName() . ' (' . $oTxInf->getDescription() . ')</h2>'; |
|
99 | - echo $oTxInf->errorMsg($iErr, '<br />'); |
|
100 | - } else { |
|
101 | - // ... may write back generated id to database |
|
102 | - // $strPaymentId = $oTxInf->getPaymentId(); |
|
103 | - } |
|
104 | - } |
|
88 | + // add the PII to the document. |
|
89 | + // NOTE: dont' add any transaction to the PII bofore added to the doc! |
|
90 | + if (($iErr = $oSepaDoc->addPaymentInstructionInfo($oPPI)) == Sepa::OK) { |
|
91 | + // test for transactions through SepaTxInf::fromArray() |
|
92 | + $aTransactions = $bValidTest ? $aValidTransactions : $aInvalidTransactions; |
|
93 | + foreach ($aTransactions as $aTrans) { |
|
94 | + $oTxInf = new SepaTxInf($type); |
|
95 | + $oTxInf->fromArray($aTrans); |
|
96 | + $iErr = $oPPI->addTransaction($oTxInf); |
|
97 | + if ($iErr != Sepa::OK) { |
|
98 | + echo '<h2>' . $oTxInf->getName() . ' (' . $oTxInf->getDescription() . ')</h2>'; |
|
99 | + echo $oTxInf->errorMsg($iErr, '<br />'); |
|
100 | + } else { |
|
101 | + // ... may write back generated id to database |
|
102 | + // $strPaymentId = $oTxInf->getPaymentId(); |
|
103 | + } |
|
104 | + } |
|
105 | 105 | |
106 | - // test for direct call of SepaTxInf::setXXX Methods |
|
107 | - $oTxInf = new SepaTxInf($type); |
|
106 | + // test for direct call of SepaTxInf::setXXX Methods |
|
107 | + $oTxInf = new SepaTxInf($type); |
|
108 | 108 | |
109 | - $oTxInf->setValue( 168.24 ); |
|
110 | - $oTxInf->setDescription('Test Betreff 3'); |
|
111 | - $oTxInf->setName('Doe, John'); |
|
112 | - $oTxInf->setIBAN('DE71664500500070143559'); |
|
113 | - $oTxInf->setBIC('SOLADES1OFG'); |
|
114 | - $oTxInf->setMandateId('ID-4711'); |
|
115 | - $oTxInf->setDateOfSignature(new DateTime('22.12.2017')); |
|
109 | + $oTxInf->setValue( 168.24 ); |
|
110 | + $oTxInf->setDescription('Test Betreff 3'); |
|
111 | + $oTxInf->setName('Doe, John'); |
|
112 | + $oTxInf->setIBAN('DE71664500500070143559'); |
|
113 | + $oTxInf->setBIC('SOLADES1OFG'); |
|
114 | + $oTxInf->setMandateId('ID-4711'); |
|
115 | + $oTxInf->setDateOfSignature(new DateTime('22.12.2017')); |
|
116 | 116 | |
117 | - $iErr = $oTxInf->validate(); |
|
118 | - if ($iErr == Sepa::OK) { |
|
119 | - $oPPI->addTransaction($oTxInf); |
|
120 | - } else { |
|
121 | - echo $oTxInf->getName() . ' (' . $oTxInf->getDescription() . ')<br />'; |
|
122 | - echo $oTxInf->errorMsg($iErr, '<br />'); |
|
123 | - } |
|
117 | + $iErr = $oTxInf->validate(); |
|
118 | + if ($iErr == Sepa::OK) { |
|
119 | + $oPPI->addTransaction($oTxInf); |
|
120 | + } else { |
|
121 | + echo $oTxInf->getName() . ' (' . $oTxInf->getDescription() . ')<br />'; |
|
122 | + echo $oTxInf->errorMsg($iErr, '<br />'); |
|
123 | + } |
|
124 | 124 | |
125 | - if ($oSepaDoc->getInvalidCount() == 0) { |
|
126 | - // ... may cretae some loging etc. |
|
127 | - /* |
|
125 | + if ($oSepaDoc->getInvalidCount() == 0) { |
|
126 | + // ... may cretae some loging etc. |
|
127 | + /* |
|
128 | 128 | $strLog = date('Y-m-d H:i') . ': SEPA Direct Debit Transactions erzeugt ('; |
129 | 129 | $strLog .= $oSepaDoc->getTxCount() . 'Transaktionen / '; |
130 | 130 | $strLog .= sprintf("%01.2f", $oSepaDoc->getCtrlSum()) . ' €)'; |
131 | 131 | */ |
132 | - $oSepaDoc->output('test.xml'); |
|
133 | - } |
|
134 | - } else { |
|
135 | - echo '<h2>' . $oPPI->getName() . '</h2>'; |
|
136 | - echo $oPPI->errorMsg($iErr, '<br />'); |
|
137 | - } |
|
138 | - |
|
139 | 132 | \ No newline at end of file |
133 | + $oSepaDoc->output('test.xml'); |
|
134 | + } |
|
135 | + } else { |
|
136 | + echo '<h2>' . $oPPI->getName() . '</h2>'; |
|
137 | + echo $oPPI->errorMsg($iErr, '<br />'); |
|
138 | + } |
|
139 | + |
|
140 | 140 | \ No newline at end of file |
@@ -34,7 +34,7 @@ discard block |
||
34 | 34 | array( |
35 | 35 | 'dblValue' => 104.45, |
36 | 36 | 'strDescription' => 'Ein Eidgenosse...', |
37 | - 'strName' => '', // missing Name |
|
37 | + 'strName' => '', // missing Name |
|
38 | 38 | 'strIBAN' => 'CH18 0483 5029 8829 8100 0', |
39 | 39 | 'strBIC' => 'CRESCHZZ80A', |
40 | 40 | 'strMandateId' => 'ID-0815', |
@@ -42,7 +42,7 @@ discard block |
||
42 | 42 | ), |
43 | 43 | array( |
44 | 44 | // 'dblValue' => 104.45, // no value |
45 | - 'strDescription' => '', // missing descr |
|
45 | + 'strDescription' => '', // missing descr |
|
46 | 46 | 'strName' => 'Mustermann, Max', |
47 | 47 | 'strIBAN' => 'FR14 2004 1010 0505 0001 3M02 606', |
48 | 48 | 'strBIC' => 'GENODE61LAH', |
@@ -53,8 +53,8 @@ discard block |
||
53 | 53 | 'dblValue' => 205.67, |
54 | 54 | 'strDescription' => 'Test Betreff 2 - enthält Umlaute, Sonderzeichen {} _@ und ungültige Zeichen [&%]', |
55 | 55 | 'strName' => 'Musterfrau, Karin', |
56 | - 'strIBAN' => 'DE71664600500070143559', // Wrong checksum |
|
57 | - 'strBIC' => 'SOLADES1OG', // missing sign |
|
56 | + 'strIBAN' => 'DE71664600500070143559', // Wrong checksum |
|
57 | + 'strBIC' => 'SOLADES1OG', // missing sign |
|
58 | 58 | 'strMandateId' => 'ID-0816', |
59 | 59 | 'strDateOfSignature' => '2019-06-09' |
60 | 60 | ) |
@@ -106,7 +106,7 @@ discard block |
||
106 | 106 | // test for direct call of SepaTxInf::setXXX Methods |
107 | 107 | $oTxInf = new SepaTxInf($type); |
108 | 108 | |
109 | - $oTxInf->setValue( 168.24 ); |
|
109 | + $oTxInf->setValue(168.24); |
|
110 | 110 | $oTxInf->setDescription('Test Betreff 3'); |
111 | 111 | $oTxInf->setName('Doe, John'); |
112 | 112 | $oTxInf->setIBAN('DE71664500500070143559'); |
@@ -169,19 +169,19 @@ |
||
169 | 169 | self::addValidation('IT', 'SKien\Sepa\CntryValidation\SepaCntryValidationIT'); |
170 | 170 | |
171 | 171 | self::$aIBANError = array( |
172 | - Sepa::ERR_IBAN_INVALID_CNTRY => 'The country code of the IBAN is not supported!' |
|
172 | + Sepa::ERR_IBAN_INVALID_CNTRY => 'The country code of the IBAN is not supported!' |
|
173 | 173 | ,Sepa::ERR_IBAN_INVALID_LENGTH => 'Invalid length of the IBAN!' |
174 | 174 | ,Sepa::ERR_IBAN_INVALID_SIGN => 'The IBAN contains invalid characters!' |
175 | 175 | ,Sepa::ERR_IBAN_CHECKSUM => 'Invalid IBAN checksum!' |
176 | 176 | ); |
177 | 177 | |
178 | 178 | self::$aBICError = array( |
179 | - Sepa::ERR_BIC_INVALID => 'Invalid BIC!' |
|
179 | + Sepa::ERR_BIC_INVALID => 'Invalid BIC!' |
|
180 | 180 | ,Sepa::ERR_BIC_INVALID_CNTRY => 'The country code of the BIC is not supported!' |
181 | 181 | ); |
182 | 182 | |
183 | 183 | self::$aCIError = array( |
184 | - Sepa::ERR_IBAN_INVALID_CNTRY => 'The country code of the CI is not supported!' |
|
184 | + Sepa::ERR_IBAN_INVALID_CNTRY => 'The country code of the CI is not supported!' |
|
185 | 185 | ,Sepa::ERR_IBAN_INVALID_LENGTH => 'Invalid length of the CI!' |
186 | 186 | ,Sepa::ERR_IBAN_INVALID_SIGN => 'The CI contains invalid characters!' |
187 | 187 | ,Sepa::ERR_IBAN_CHECKSUM => 'Invalid CI checksum!' |
@@ -225,7 +225,7 @@ discard block |
||
225 | 225 | if (isset(self::$aValidation[$strCntry])) { |
226 | 226 | trigger_error('validation for cntry ' . $strCntry . ' already defined!', E_USER_ERROR); |
227 | 227 | } |
228 | - if (!is_subclass_of ($strValidationClass, 'SKien\Sepa\CntryValidation\SepaCntryValidation', true)) { |
|
228 | + if (!is_subclass_of($strValidationClass, 'SKien\Sepa\CntryValidation\SepaCntryValidation', true)) { |
|
229 | 229 | trigger_error('class ' . $strValidationClass . ' must implement SepaCntryValidation interface!', E_USER_ERROR); |
230 | 230 | } |
231 | 231 | self::$aValidation[$strCntry] = $strValidationClass; |
@@ -265,7 +265,7 @@ discard block |
||
265 | 265 | * Load error messages from JSON file |
266 | 266 | * @param string $strFilename |
267 | 267 | */ |
268 | - public static function loadErrorMsg(string $strFilename='sepa_error.json') : void |
|
268 | + public static function loadErrorMsg(string $strFilename = 'sepa_error.json') : void |
|
269 | 269 | { |
270 | 270 | /* |
271 | 271 | // ... testcode to create sample json file |
@@ -71,21 +71,21 @@ discard block |
||
71 | 71 | if (!Sepa::checkValidation(Sepa::V_NO_IBAN_VALIDATION)) { |
72 | 72 | if (strlen($this->strIBAN) == 0) { |
73 | 73 | $iErr |= Sepa::ERR_PMT_IBAN_MISSING; |
74 | - } else if( Sepa::validateIBAN($this->strIBAN) != Sepa::OK) { |
|
74 | + } else if (Sepa::validateIBAN($this->strIBAN) != Sepa::OK) { |
|
75 | 75 | $iErr |= Sepa::ERR_PMT_INVALID_IBAN; |
76 | 76 | } |
77 | 77 | } |
78 | 78 | if (!Sepa::checkValidation(Sepa::V_NO_BIC_VALIDATION)) { |
79 | 79 | if (strlen($this->strBIC) == 0) { |
80 | 80 | $iErr |= Sepa::ERR_PMT_BIC_MISSING; |
81 | - } else if( Sepa::validateBIC($this->strBIC) != Sepa::OK) { |
|
81 | + } else if (Sepa::validateBIC($this->strBIC) != Sepa::OK) { |
|
82 | 82 | $iErr |= Sepa::ERR_PMT_INVALID_BIC; |
83 | 83 | } |
84 | 84 | } |
85 | 85 | if (!Sepa::checkValidation(Sepa::V_NO_CI_VALIDATION)) { |
86 | 86 | if (strlen($this->strCI) == 0) { |
87 | 87 | $iErr |= Sepa::ERR_PMT_CI_MISSING; |
88 | - } else if( Sepa::validateCI($this->strCI) != Sepa::OK) { |
|
88 | + } else if (Sepa::validateCI($this->strCI) != Sepa::OK) { |
|
89 | 89 | $iErr |= Sepa::ERR_PMT_INVALID_CI; |
90 | 90 | } |
91 | 91 | } |
@@ -95,7 +95,7 @@ discard block |
||
95 | 95 | } |
96 | 96 | if (strlen($this->strSeqType) == 0) { |
97 | 97 | $iErr |= Sepa::ERR_PMT_SEQ_TYPE_MISSING; |
98 | - } else if( $this->strSeqType != Sepa::SEQ_FIRST && $this->strSeqType != Sepa::SEQ_RECURRENT && $this->strSeqType != Sepa::SEQ_ONE_OFF && $this->strSeqType != Sepa::SEQ_FINAL) { |
|
98 | + } else if ($this->strSeqType != Sepa::SEQ_FIRST && $this->strSeqType != Sepa::SEQ_RECURRENT && $this->strSeqType != Sepa::SEQ_ONE_OFF && $this->strSeqType != Sepa::SEQ_FINAL) { |
|
99 | 99 | $iErr |= Sepa::ERR_PMT_INVALID_SEQ_TYPE; |
100 | 100 | } |
101 | 101 | } |
@@ -127,7 +127,7 @@ discard block |
||
127 | 127 | } |
128 | 128 | |
129 | 129 | $iErr = $oTxInf->validate(); |
130 | - if ( $iErr == Sepa::OK) { |
|
130 | + if ($iErr == Sepa::OK) { |
|
131 | 131 | if ($oTxInf->getType() == Sepa::CDD) { |
132 | 132 | $xmlTx = $this->addChild(null, 'DrctDbtTxInf'); |
133 | 133 | |
@@ -159,7 +159,7 @@ discard block |
||
159 | 159 | |
160 | 160 | // Ultimate Debitor if requested |
161 | 161 | $strUltmtDbtr = $oTxInf->getUltimateName(); |
162 | - if ( strlen($strUltmtDbtr) > 0) { |
|
162 | + if (strlen($strUltmtDbtr) > 0) { |
|
163 | 163 | $xmlNode = $this->addChild($xmlTx, 'UltmtDbtr'); |
164 | 164 | $this->addChild($xmlNode, 'Nm', $strUltmtDbtr); |
165 | 165 | } |
@@ -187,7 +187,7 @@ discard block |
||
187 | 187 | |
188 | 188 | // Ultimate Creditor if requested |
189 | 189 | $strUltmtCbtr = $oTxInf->getUltimateName(); |
190 | - if ( strlen($strUltmtCbtr) > 0) { |
|
190 | + if (strlen($strUltmtCbtr) > 0) { |
|
191 | 191 | $xmlNode = $this->addChild($xmlTx, 'UltmtCbtr'); |
192 | 192 | $this->addChild($xmlNode, 'Nm', $strUltmtCbtr); |
193 | 193 | } |
@@ -215,7 +215,7 @@ discard block |
||
215 | 215 | */ |
216 | 216 | protected function addChild(?\DOMElement $xmlParent, string $strNode, $value = '') |
217 | 217 | { |
218 | - if($xmlParent == null) { |
|
218 | + if ($xmlParent == null) { |
|
219 | 219 | $xmlParent = $this; |
220 | 220 | } |
221 | 221 | $xmlNode = $this->sepaDoc->createElement($strNode); |
@@ -27,7 +27,7 @@ discard block |
||
27 | 27 | /** @var string type of sepa document */ |
28 | 28 | protected string $type = ''; |
29 | 29 | /** @var \DOMElement XML Base-Element */ |
30 | - protected ?\DOMElement $xmlBase = null; |
|
30 | + protected ?\DOMElement $xmlBase = null; |
|
31 | 31 | /** @var int overall count of transactions */ |
32 | 32 | protected int $iTxCount = 0; |
33 | 33 | /** @var \DOMElement DOM element containing overall count of transactions */ |
@@ -50,8 +50,8 @@ discard block |
||
50 | 50 | } |
51 | 51 | |
52 | 52 | $aTypeInfo = array( |
53 | - Sepa::CCT => array( 'pain' => '001.002.03', 'base' => 'CstmrCdtTrfInitn' ), |
|
54 | - Sepa::CDD => array( 'pain' => '008.002.02', 'base' => 'CstmrDrctDbtInitn' ) |
|
53 | + Sepa::CCT => array('pain' => '001.002.03', 'base' => 'CstmrCdtTrfInitn'), |
|
54 | + Sepa::CDD => array('pain' => '008.002.02', 'base' => 'CstmrDrctDbtInitn') |
|
55 | 55 | ); |
56 | 56 | |
57 | 57 | $strPain = $aTypeInfo[$type]['pain']; |
@@ -62,12 +62,12 @@ discard block |
||
62 | 62 | $this->type = $type; |
63 | 63 | |
64 | 64 | $this->formatOutput = true; |
65 | - $this->preserveWhiteSpace = false; // 'formatOutput' only works if 'preserveWhiteSpace' set to false |
|
65 | + $this->preserveWhiteSpace = false; // 'formatOutput' only works if 'preserveWhiteSpace' set to false |
|
66 | 66 | |
67 | 67 | $xmlRoot = $this->createElement("Document"); |
68 | - $xmlRoot->setAttribute("xmlns", "urn:iso:std:iso:20022:tech:xsd:pain." . $strPain); |
|
69 | - $xmlRoot->setAttribute("xmlns:xsi", "http://www.w3.org/2001/XMLSchema-instance"); |
|
70 | - $xmlRoot->setAttribute("xsi:schemaLocation", "urn:iso:std:iso:20022:tech:xsd:pain." . $strPain . " pain." . $strPain . ".xsd"); |
|
68 | + $xmlRoot->setAttribute("xmlns", "urn:iso:std:iso:20022:tech:xsd:pain." . $strPain); |
|
69 | + $xmlRoot->setAttribute("xmlns:xsi", "http://www.w3.org/2001/XMLSchema-instance"); |
|
70 | + $xmlRoot->setAttribute("xsi:schemaLocation", "urn:iso:std:iso:20022:tech:xsd:pain." . $strPain . " pain." . $strPain . ".xsd"); |
|
71 | 71 | $this->appendChild($xmlRoot); |
72 | 72 | |
73 | 73 | $this->xmlBase = $this->createElement($strBase); |
@@ -90,7 +90,7 @@ discard block |
||
90 | 90 | $this->id = self::createUID(); |
91 | 91 | |
92 | 92 | $this->addChild($xmlGrpHdr, 'MsgId', $this->id); |
93 | - $this->addChild($xmlGrpHdr, 'CreDtTm', date(DATE_ATOM)); // str_replace(' ', 'T', date('Y-m-d h:i:s'))); |
|
93 | + $this->addChild($xmlGrpHdr, 'CreDtTm', date(DATE_ATOM)); // str_replace(' ', 'T', date('Y-m-d h:i:s'))); |
|
94 | 94 | $this->xmlTxCount = $this->addChild($xmlGrpHdr, 'NbOfTxs', 0); |
95 | 95 | $this->xmlCtrlSum = $this->addChild($xmlGrpHdr, 'CtrlSum', sprintf("%01.2f", 0.0)); |
96 | 96 | |
@@ -118,7 +118,7 @@ discard block |
||
118 | 118 | } |
119 | 119 | |
120 | 120 | $iErr = $oPmtInf->validate(); |
121 | - if ( $iErr == Sepa::OK) { |
|
121 | + if ($iErr == Sepa::OK) { |
|
122 | 122 | $this->xmlBase->appendChild($oPmtInf); |
123 | 123 | |
124 | 124 | $this->addChild($oPmtInf, 'PmtInfId', $this->id); |
@@ -186,7 +186,7 @@ discard block |
||
186 | 186 | * @param string $strName output filename |
187 | 187 | * @param string $strTarget target (default: 'attachment') |
188 | 188 | */ |
189 | - function output(string $strName, string $strTarget='attachment') : void |
|
189 | + function output(string $strName, string $strTarget = 'attachment') : void |
|
190 | 190 | { |
191 | 191 | // send to browser |
192 | 192 | header('Content-Type: application/xml'); |
@@ -231,7 +231,7 @@ discard block |
||
231 | 231 | * @param mixed $value nodevalue. If empty, no value will be assigned (to create node only containing child elements) |
232 | 232 | * @return \DOMElement |
233 | 233 | */ |
234 | - protected function addChild(\DOMElement $xmlParent, string $strNode, $value='') : \DOMElement |
|
234 | + protected function addChild(\DOMElement $xmlParent, string $strNode, $value = '') : \DOMElement |
|
235 | 235 | { |
236 | 236 | $xmlNode = $this->createElement($strNode); |
237 | 237 | if (!empty($value)) { |
@@ -66,14 +66,14 @@ discard block |
||
66 | 66 | if (!Sepa::checkValidation(Sepa::V_NO_IBAN_VALIDATION)) { |
67 | 67 | if (strlen($this->strIBAN) == 0) { |
68 | 68 | $iErr |= Sepa::ERR_TX_IBAN_MISSING; |
69 | - } else if( Sepa::validateIBAN($this->strIBAN) != Sepa::OK) { |
|
69 | + } else if (Sepa::validateIBAN($this->strIBAN) != Sepa::OK) { |
|
70 | 70 | $iErr |= Sepa::ERR_TX_INVALID_IBAN; |
71 | 71 | } |
72 | 72 | } |
73 | 73 | if (!Sepa::checkValidation(Sepa::V_NO_BIC_VALIDATION)) { |
74 | 74 | if (strlen($this->strBIC) == 0) { |
75 | 75 | $iErr |= Sepa::ERR_TX_BIC_MISSING; |
76 | - } else if( Sepa::validateBIC($this->strBIC) != Sepa::OK) { |
|
76 | + } else if (Sepa::validateBIC($this->strBIC) != Sepa::OK) { |
|
77 | 77 | $iErr |= Sepa::ERR_TX_INVALID_BIC; |
78 | 78 | } |
79 | 79 | } |
@@ -127,31 +127,31 @@ discard block |
||
127 | 127 | */ |
128 | 128 | public function fromArray(array $aProperties) : void |
129 | 129 | { |
130 | - if (isset( $aProperties['strName']) ) { |
|
130 | + if (isset($aProperties['strName'])) { |
|
131 | 131 | $this->setName($aProperties['strName']); |
132 | 132 | } |
133 | - if (isset( $aProperties['strIBAN']) ) { |
|
133 | + if (isset($aProperties['strIBAN'])) { |
|
134 | 134 | $this->setIBAN($aProperties['strIBAN']); |
135 | 135 | } |
136 | - if (isset( $aProperties['strBIC']) ) { |
|
136 | + if (isset($aProperties['strBIC'])) { |
|
137 | 137 | $this->setBIC($aProperties['strBIC']); |
138 | 138 | } |
139 | - if (isset( $aProperties['strMandateId']) ) { |
|
139 | + if (isset($aProperties['strMandateId'])) { |
|
140 | 140 | $this->setMandateId($aProperties['strMandateId']); |
141 | 141 | } |
142 | - if (isset( $aProperties['strDateOfSignature']) ) { |
|
142 | + if (isset($aProperties['strDateOfSignature'])) { |
|
143 | 143 | $this->setDateOfSignature($aProperties['strDateOfSignature']); |
144 | 144 | } |
145 | - if (isset( $aProperties['strDescription']) ) { |
|
145 | + if (isset($aProperties['strDescription'])) { |
|
146 | 146 | $this->setDescription($aProperties['strDescription']); |
147 | 147 | } |
148 | - if (isset( $aProperties['dblValue']) ) { |
|
148 | + if (isset($aProperties['dblValue'])) { |
|
149 | 149 | $this->setValue(floatval($aProperties['dblValue'])); |
150 | 150 | } |
151 | - if (isset( $aProperties['strUltimateName']) ) { |
|
151 | + if (isset($aProperties['strUltimateName'])) { |
|
152 | 152 | $this->setUltimateName($aProperties['strUltimateName']); |
153 | 153 | } |
154 | - if (isset( $aProperties['strPaymentId']) ) { |
|
154 | + if (isset($aProperties['strPaymentId'])) { |
|
155 | 155 | $this->setPaymentId($aProperties['strPaymentId']); |
156 | 156 | } |
157 | 157 | } |
@@ -86,7 +86,7 @@ discard block |
||
86 | 86 | $bAlphaNum = false; |
87 | 87 | if (strlen($strCheck) == 17) { |
88 | 88 | $strRegEx = '/^([A-Z]){2}([0-9]){2}([0-9A-Z]){3}([0-9]){10}?$/'; |
89 | - } else if(strlen($strCheck) == 20) { |
|
89 | + } else if (strlen($strCheck) == 20) { |
|
90 | 90 | $strRegEx = '/^([A-Z]){2}([0-9]){2}([0-9A-Z]){3}([0-9]){3}D([0-9]){9}?$/'; |
91 | 91 | $bAlphaNum = true; |
92 | 92 | } else { |
@@ -99,7 +99,7 @@ discard block |
||
99 | 99 | if (!preg_match($strRegEx, $strCheck)) { |
100 | 100 | return Sepa::ERR_CI_INVALID_SIGN; |
101 | 101 | } |
102 | - $strCS = substr($strCheck, 2, 2); |
|
102 | + $strCS = substr($strCheck, 2, 2); |
|
103 | 103 | // NOTE: the CBC is not taken into account when calculating the checksum! |
104 | 104 | $strCheck = substr($strCheck, 7); |
105 | 105 | if ($bAlphaNum) { |
@@ -183,7 +183,7 @@ |
||
183 | 183 | return $this->strLastCheckSum; |
184 | 184 | } |
185 | 185 | |
186 | - /** |
|
186 | + /** |
|
187 | 187 | * calculate modulo 97 checksum for bankcode and accountnumber |
188 | 188 | * MOD 97-10 (see ISO 7064) |
189 | 189 | * @param string $strCheck |
@@ -162,9 +162,9 @@ discard block |
||
162 | 162 | return Sepa::ERR_CI_INVALID_SIGN; |
163 | 163 | } |
164 | 164 | |
165 | - $strCS = substr($strCheck, 2, 2); |
|
165 | + $strCS = substr($strCheck, 2, 2); |
|
166 | 166 | // NOTE: the CBC is not taken into account when calculating the checksum! |
167 | - $strCheck = substr($strCheck, 7); |
|
167 | + $strCheck = substr($strCheck, 7); |
|
168 | 168 | if ($this->bAlphaNumCI) { |
169 | 169 | $strCheck = $this->replaceAlpha($strCheck); |
170 | 170 | } |
@@ -199,7 +199,7 @@ discard block |
||
199 | 199 | // 3. subtract value from 98 |
200 | 200 | $strCS = $this->adjustFP(bcsub('98', $strCS2)); |
201 | 201 | // 4. always 2 digits... |
202 | - if (strlen($strCS) < 2 ) { |
|
202 | + if (strlen($strCS) < 2) { |
|
203 | 203 | $strCS = '0' . $strCS; |
204 | 204 | } |
205 | 205 | $this->strLastCheckSum = $strCS; |
@@ -215,7 +215,7 @@ discard block |
||
215 | 215 | */ |
216 | 216 | protected function adjustFP(string $str) : string |
217 | 217 | { |
218 | - if( strpos( '.', $str ) !== false ) { |
|
218 | + if (strpos('.', $str) !== false) { |
|
219 | 219 | $str = substr($str, 0, strpos('.', $str)); |
220 | 220 | } |
221 | 221 | return $str; |
@@ -241,7 +241,7 @@ discard block |
||
241 | 241 | protected function replaceAlpha(string $strCheck) : string |
242 | 242 | { |
243 | 243 | // account number may contains characters |
244 | - foreach (range('A', 'Z') as $ch){ |
|
244 | + foreach (range('A', 'Z') as $ch) { |
|
245 | 245 | $strCheck = str_replace((string)$ch, $this->convCharToNum((string)$ch), $strCheck); |
246 | 246 | } |
247 | 247 | return $strCheck; |
@@ -202,7 +202,7 @@ |
||
202 | 202 | |
203 | 203 | // New Year Good Day Easter Monday 1'stMay 1.Christmas 2.Christmas |
204 | 204 | $aTarget2 = array( |
205 | - '2019-01-01', '2019-04-18', '2019-04-21', '2019-05-01', '2019-12-25', '2019-12-26' |
|
205 | + '2019-01-01', '2019-04-18', '2019-04-21', '2019-05-01', '2019-12-25', '2019-12-26' |
|
206 | 206 | ,'2020-01-01', '2020-04-10', '2020-04-13', '2020-05-01', '2020-12-25', '2020-12-26' |
207 | 207 | ,'2021-01-01', '2021-04-02', '2021-04-05', '2021-05-01', '2021-12-25', '2021-12-26' |
208 | 208 | ,'2022-01-01', '2022-04-15', '2022-04-18', '2022-05-01', '2022-12-25', '2022-12-26' |
@@ -25,7 +25,7 @@ discard block |
||
25 | 25 | */ |
26 | 26 | protected function isValidType(string $type) : bool |
27 | 27 | { |
28 | - if( $type != Sepa::CCT && $type != Sepa::CDD ) { |
|
28 | + if ($type != Sepa::CCT && $type != Sepa::CDD) { |
|
29 | 29 | trigger_error('invalid type for ' . get_class($this), E_USER_ERROR); |
30 | 30 | } |
31 | 31 | return true; |
@@ -41,10 +41,10 @@ discard block |
||
41 | 41 | { |
42 | 42 | mt_srand((int)microtime(true) * 10000); |
43 | 43 | $charid = strtoupper(md5(uniqid((string)rand(), true))); |
44 | - $uuid = substr($charid, 0, 8) . chr( 45 ) |
|
45 | - .substr($charid, 8, 4) . chr( 45 ) |
|
46 | - .substr($charid, 12, 4) . chr( 45 ) |
|
47 | - .substr($charid, 16,12); |
|
44 | + $uuid = substr($charid, 0, 8) . chr(45) |
|
45 | + .substr($charid, 8, 4) . chr(45) |
|
46 | + .substr($charid, 12, 4) . chr(45) |
|
47 | + .substr($charid, 16, 12); |
|
48 | 48 | |
49 | 49 | return $uuid; |
50 | 50 | } |
@@ -88,7 +88,7 @@ discard block |
||
88 | 88 | $strValid = self::replaceSpecialChars($str); |
89 | 89 | |
90 | 90 | // regular expresion for 'standard' types MAXxxx |
91 | - $strRegEx = '/[^A-Za-z0-9 \.,\-\/\+():?]/'; // A...Z, a...z, 0...9, blank, dot, comma plus, minus, slash, questionmark, colon, open/closing bracket |
|
91 | + $strRegEx = '/[^A-Za-z0-9 \.,\-\/\+():?]/'; // A...Z, a...z, 0...9, blank, dot, comma plus, minus, slash, questionmark, colon, open/closing bracket |
|
92 | 92 | $strReplace = ' '; |
93 | 93 | $iMaxLen = 1025; |
94 | 94 | switch ($iType) { |
@@ -99,7 +99,7 @@ discard block |
||
99 | 99 | break; |
100 | 100 | case Sepa::ID2: |
101 | 101 | $iMaxLen = 35; |
102 | - $strRegEx = '/[^A-Za-z0-9\.,\+\-\/]/'; // same as ID1 except blank... |
|
102 | + $strRegEx = '/[^A-Za-z0-9\.,\+\-\/]/'; // same as ID1 except blank... |
|
103 | 103 | $strReplace = ''; |
104 | 104 | break; |
105 | 105 | case Sepa::MAX35: |
@@ -131,7 +131,7 @@ discard block |
||
131 | 131 | public static function replaceSpecialChars(string $str) : string |
132 | 132 | { |
133 | 133 | $strReplaced = ''; |
134 | - if( strlen($str) > 0 ) { |
|
134 | + if (strlen($str) > 0) { |
|
135 | 135 | // replace known special chars |
136 | 136 | $aSpecialChars = array( |
137 | 137 | 'á' => 'a', 'à' => 'a', 'ä' => 'ae', 'â' => 'a', 'ã' => 'a', 'å' => 'a', 'æ' => 'ae', |
@@ -151,7 +151,7 @@ discard block |
||
151 | 151 | '_' => '-', '@' => '(at)', '€' => 'EUR' |
152 | 152 | ); |
153 | 153 | |
154 | - $strReplaced = strtr( $str, $aSpecialChars ); |
|
154 | + $strReplaced = strtr($str, $aSpecialChars); |
|
155 | 155 | } |
156 | 156 | return $strReplaced; |
157 | 157 | } |
@@ -163,7 +163,7 @@ discard block |
||
163 | 163 | * @param int $dtStart unix timestamp start date (if null, current date is used) |
164 | 164 | * @return int unix timestamp |
165 | 165 | */ |
166 | - public static function calcCollectionDate(int $iDays, ?int $dtStart=null) : int |
|
166 | + public static function calcCollectionDate(int $iDays, ?int $dtStart = null) : int |
|
167 | 167 | { |
168 | 168 | $dtCollect = ($dtStart == null) ? time() : $dtStart; |
169 | 169 | |
@@ -202,14 +202,14 @@ discard block |
||
202 | 202 | |
203 | 203 | // New Year Good Day Easter Monday 1'stMay 1.Christmas 2.Christmas |
204 | 204 | $aTarget2 = array( |
205 | - '2019-01-01', '2019-04-18', '2019-04-21', '2019-05-01', '2019-12-25', '2019-12-26' |
|
206 | - ,'2020-01-01', '2020-04-10', '2020-04-13', '2020-05-01', '2020-12-25', '2020-12-26' |
|
207 | - ,'2021-01-01', '2021-04-02', '2021-04-05', '2021-05-01', '2021-12-25', '2021-12-26' |
|
208 | - ,'2022-01-01', '2022-04-15', '2022-04-18', '2022-05-01', '2022-12-25', '2022-12-26' |
|
209 | - ,'2023-01-01', '2023-04-07', '2023-04-10', '2023-05-01', '2023-12-25', '2023-12-26' |
|
210 | - ,'2024-01-01', '2024-03-29', '2024-04-01', '2024-05-01', '2024-12-25', '2024-12-26' |
|
211 | - ,'2025-01-01', '2025-04-18', '2025-04-21', '2025-05-01', '2025-12-25', '2025-12-26' |
|
205 | + '2019-01-01', '2019-04-18', '2019-04-21', '2019-05-01', '2019-12-25', '2019-12-26' |
|
206 | + ,'2020-01-01', '2020-04-10', '2020-04-13', '2020-05-01', '2020-12-25', '2020-12-26' |
|
207 | + ,'2021-01-01', '2021-04-02', '2021-04-05', '2021-05-01', '2021-12-25', '2021-12-26' |
|
208 | + ,'2022-01-01', '2022-04-15', '2022-04-18', '2022-05-01', '2022-12-25', '2022-12-26' |
|
209 | + ,'2023-01-01', '2023-04-07', '2023-04-10', '2023-05-01', '2023-12-25', '2023-12-26' |
|
210 | + ,'2024-01-01', '2024-03-29', '2024-04-01', '2024-05-01', '2024-12-25', '2024-12-26' |
|
211 | + ,'2025-01-01', '2025-04-18', '2025-04-21', '2025-05-01', '2025-12-25', '2025-12-26' |
|
212 | 212 | ); |
213 | - return ($iWeekDay > 5 || in_array( date( 'Y-m-d', $dt ), $aTarget2 )); |
|
213 | + return ($iWeekDay > 5 || in_array(date('Y-m-d', $dt), $aTarget2)); |
|
214 | 214 | } |
215 | 215 | } |