Skip to content

Commit f74b97e

Browse files
authored
update to latest external set (#39)
1 parent 0d22a7f commit f74b97e

File tree

2 files changed

+41
-16
lines changed

2 files changed

+41
-16
lines changed

createLists.php

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -17,7 +17,7 @@ function write(string $string, $exit = false)
1717

1818
function createPurposeClass()
1919
{
20-
$xlsDocument = 'https://www.iso20022.org/sites/default/files/2020-05/ExternalCodeSets_2Q2020_May2020_v1.xls';
20+
$xlsDocument = 'https://www.iso20022.org/sites/default/files/2021-03/ExternalCodeSets_4Q2020_February2021_v1.xlsx';
2121

2222
if (!class_exists('PhpOffice\PhpSpreadsheet\Spreadsheet')) {
2323
write('Please install also development dependencies to generate the Purpose class');
@@ -59,12 +59,12 @@ function createPurposeClass()
5959
];
6060

6161
$constantify = function (string $name) {
62-
$name = preg_replace_callback('@([A-Z]{2,})@', function ($matches) {
63-
return ucfirst(strtolower($matches[1]));
62+
$name = preg_replace_callback('@([A-Z]{2,})(?!$)@', function ($matches) {
63+
return ucfirst(strtolower(substr($matches[1], 0, -1))) . substr($matches[1], -1);
6464
}, $name);
6565
$name = ucwords($name);
6666
$name = str_replace(' ', '', $name);
67-
$name = preg_replace_callback('@([A-Z])@', function ($matches) {
67+
$name = preg_replace_callback('@([A-Z]+$|[A-Z])@', function ($matches) {
6868
return '_' . $matches[1];
6969
}, $name);
7070
$name = strtoupper($name);

src/Sepa/Purpose.php

Lines changed: 37 additions & 12 deletions
Original file line numberDiff line numberDiff line change
@@ -3,10 +3,34 @@
33
namespace rikudou\EuQrPayment\Sepa;
44

55
/**
6-
* @see https://www.iso20022.org/sites/default/files/2020-05/ExternalCodeSets_2Q2020_May2020_v1.xls
6+
* @see https://www.iso20022.org/sites/default/files/2021-03/ExternalCodeSets_4Q2020_February2021_v1.xlsx
77
*/
88
class Purpose
99
{
10+
// Deprecated names
11+
/** @deprecated */
12+
public const GUARANTEED_EPAYMENT = self::GUARANTEED_E_PAYMENT;
13+
/** @deprecated */
14+
public const EPAYMENT_RETURN = self::E_PAYMENT_RETURN;
15+
/** @deprecated */
16+
public const NON_GUARANTEED_EPAYMENT = self::NON_GUARANTEED_E_PAYMENT;
17+
/** @deprecated */
18+
public const LATE_PAYMENT_OF_FEES_CHARGES = self::LATE_PAYMENT_OF_FEES_AND_CHARGES;
19+
/** @deprecated */
20+
public const TBA_PAIROFF_NETTING = self::TBA_PAIR_OFF_NETTING;
21+
/** @deprecated */
22+
public const TRIPARTY_REPO_NETTING = self::TRI_PARTY_REPO_NETTING;
23+
/** @deprecated */
24+
public const INVESTMENT_SECURITIES = self::INVESTMENT_AND_SECURITIES;
25+
/** @deprecated */
26+
public const LENDING_EQUITY_MARKEDTOMARKET_CASH_COLLATERAL = self::LENDING_EQUITY_MARKED_TO_MARKET_CASH_COLLATERAL;
27+
/** @deprecated */
28+
public const LENDING_FIXED_INCOME_MARKEDTOMARKET_CASH_COLLATERAL = self::LENDING_FIXED_INCOME_MARKED_TO_MARKET_CASH_COLLATERAL;
29+
/** @deprecated */
30+
public const LENDING_UNSPECIFIED_TYPE_OF_MARKEDTOMARKET_CASH_COLLATERAL = self::LENDING_UNSPECIFIED_TYPE_OF_MARKED_TO_MARKET_CASH_COLLATERAL;
31+
/** @deprecated */
32+
public const CABLE_TVBILL = self::CABLE_TV_BILL;
33+
1034
// Bank Debt
1135
public const BANK_LOAN_DELAYED_DRAW_FUNDING = 'BKDF';
1236
public const BANK_LOAN_FEES = 'BKFE';
@@ -118,9 +142,9 @@ class Purpose
118142
public const MOBILE_P_P_PAYMENT = 'MP2P';
119143

120144
// E-Commerce
121-
public const GUARANTEED_EPAYMENT = 'ECPG';
122-
public const EPAYMENT_RETURN = 'ECPR';
123-
public const NON_GUARANTEED_EPAYMENT = 'ECPU';
145+
public const GUARANTEED_E_PAYMENT = 'ECPG';
146+
public const E_PAYMENT_RETURN = 'ECPR';
147+
public const NON_GUARANTEED_E_PAYMENT = 'ECPU';
124148
public const EPAYMENT = 'EPAY';
125149

126150
// Finance
@@ -171,7 +195,7 @@ class Purpose
171195
public const EDUCATION = 'EDUC';
172196
public const FACTOR_UPDATE_RELATED_PAYMENT = 'FACT';
173197
public const FINANCIAL_AID_IN_CASE_OF_NATURAL_DISASTER = 'FAND';
174-
public const LATE_PAYMENT_OF_FEES_CHARGES = 'FCPM';
198+
public const LATE_PAYMENT_OF_FEES_AND_CHARGES = 'FCPM';
175199
public const PAYMENT_OF_FEES = 'FEES';
176200
public const GOVERNMENT_PAYMENT = 'GOVT';
177201
public const IRREVOCABLE_CREDIT_CARD_PAYMENT = 'ICCP';
@@ -199,17 +223,18 @@ class Purpose
199223
public const BILATERAL_REPO_INTERNET_NETTING = 'RPNT';
200224
public const ROUND_ROBIN = 'RRBN';
201225
public const REIMBURSEMENT_RECEIVED_CREDIT_TRANSFER = 'RRCT';
226+
public const RELATED_REQUEST_TO_PAY = 'RRTP';
202227
public const RECEIVE_AGAINST_PAYMENT = 'RVPM';
203228
public const PAYMENT_SLIP_INSTRUCTION = 'SLPI';
204229
public const SPLIT_PAYMENTS = 'SPLT';
205230
public const STUDY = 'STDY';
206-
public const TBA_PAIROFF_NETTING = 'TBAN';
231+
public const TBA_PAIR_OFF_NETTING = 'TBAN';
207232
public const TELECOMMUNICATIONS_BILL = 'TBIL';
208233
public const TOWN_COUNCIL_SERVICE_CHARGES = 'TCSC';
209234
public const TELEPHONE_INITIATED_TRANSACTION = 'TELI';
210235
public const TMPG_CLAIM_PAYMENT = 'TMPG';
211236
public const TRI_PARTY_REPO_INTEREST = 'TPRI';
212-
public const TRIPARTY_REPO_NETTING = 'TPRP';
237+
public const TRI_PARTY_REPO_NETTING = 'TPRP';
213238
public const TRUNCATED_PAYMENT_SLIP = 'TRNC';
214239
public const TRAVELLER_CHEQUE = 'TRVC';
215240
public const INTERNET_INITIATED_TRANSACTION = 'WEBI';
@@ -235,7 +260,7 @@ class Purpose
235260
public const DIVIDEND = 'DIVD';
236261
public const FOREIGN_EXCHANGE = 'FREX';
237262
public const HEDGING = 'HEDG';
238-
public const INVESTMENT_SECURITIES = 'INVS';
263+
public const INVESTMENT_AND_SECURITIES = 'INVS';
239264
public const PRECIOUS_METAL = 'PRME';
240265
public const SAVINGS = 'SAVG';
241266
public const SECURITIES = 'SECU';
@@ -301,9 +326,9 @@ class Purpose
301326
public const LENDING_BUY_IN_NETTING = 'LBIN';
302327
public const LENDING_CASH_COLLATERAL_FREE_MOVEMENT = 'LCOL';
303328
public const LENDING_FEES = 'LFEE';
304-
public const LENDING_EQUITY_MARKEDTOMARKET_CASH_COLLATERAL = 'LMEQ';
305-
public const LENDING_FIXED_INCOME_MARKEDTOMARKET_CASH_COLLATERAL = 'LMFI';
306-
public const LENDING_UNSPECIFIED_TYPE_OF_MARKEDTOMARKET_CASH_COLLATERAL = 'LMRK';
329+
public const LENDING_EQUITY_MARKED_TO_MARKET_CASH_COLLATERAL = 'LMEQ';
330+
public const LENDING_FIXED_INCOME_MARKED_TO_MARKET_CASH_COLLATERAL = 'LMFI';
331+
public const LENDING_UNSPECIFIED_TYPE_OF_MARKED_TO_MARKET_CASH_COLLATERAL = 'LMRK';
307332
public const LENDING_REBATE_PAYMENTS = 'LREB';
308333
public const LENDING_REVENUE_PAYMENTS = 'LREV';
309334
public const LENDING_CLAIM_PAYMENT = 'LSFL';
@@ -336,7 +361,7 @@ class Purpose
336361
public const ROAD_PRICING = 'TRPT';
337362

338363
// Utilities
339-
public const CABLE_TVBILL = 'CBTV';
364+
public const CABLE_TV_BILL = 'CBTV';
340365
public const ELECTRICITY_BILL = 'ELEC';
341366
public const ENERGIES = 'ENRG';
342367
public const GAS_BILL = 'GASB';

0 commit comments

Comments
 (0)