From 27d02663e57a73e97c85978ea74edc8fdc485f25 Mon Sep 17 00:00:00 2001 From: John Was Date: Sun, 29 Sep 2013 13:18:00 +0200 Subject: [PATCH] moved bank account numbers from Company to Payment provider --- readme.md | 20 +++ src/Faker/Generator.php | 7 + src/Faker/Provider/Company.php | 140 ------------------ src/Faker/Provider/Payment.php | 140 ++++++++++++++++++ .../bg_BG/{Company.php => Payment.php} | 2 +- .../cs_CZ/{Company.php => Payment.php} | 2 +- src/Faker/Provider/da_DK/Company.php | 13 -- src/Faker/Provider/da_DK/Payment.php | 20 +++ .../de_AT/{Company.php => Payment.php} | 2 +- src/Faker/Provider/de_DE/Company.php | 13 -- src/Faker/Provider/de_DE/Payment.php | 19 +++ .../el_GR/{Company.php => Payment.php} | 2 +- .../en_GB/{Company.php => Payment.php} | 2 +- src/Faker/Provider/es_ES/Company.php | 13 -- src/Faker/Provider/es_ES/Payment.php | 19 +++ src/Faker/Provider/fr_BE/Company.php | 13 -- src/Faker/Provider/fr_BE/Payment.php | 19 +++ src/Faker/Provider/fr_FR/Company.php | 13 -- src/Faker/Provider/fr_FR/Payment.php | 19 +++ src/Faker/Provider/is_IS/Company.php | 13 -- src/Faker/Provider/is_IS/Payment.php | 19 +++ src/Faker/Provider/it_IT/Company.php | 13 -- src/Faker/Provider/it_IT/Payment.php | 19 +++ .../lv_LV/{Company.php => Payment.php} | 2 +- src/Faker/Provider/nl_BE/Company.php | 13 -- src/Faker/Provider/nl_BE/Payment.php | 19 +++ src/Faker/Provider/nl_NL/Company.php | 13 -- src/Faker/Provider/nl_NL/Payment.php | 19 +++ src/Faker/Provider/pl_PL/Company.php | 113 -------------- src/Faker/Provider/pl_PL/Payment.php | 119 +++++++++++++++ src/Faker/Provider/pt_BR/Company.php | 13 -- src/Faker/Provider/pt_BR/Payment.php | 19 +++ src/Faker/Provider/sk_SK/Company.php | 13 -- src/Faker/Provider/sk_SK/Payment.php | 19 +++ .../sr_Cyrl_RS/{Company.php => Payment.php} | 2 +- .../sr_Latn_RS/{Company.php => Payment.php} | 2 +- .../sr_RS/{Company.php => Payment.php} | 2 +- .../tr_TR/{Company.php => Payment.php} | 2 +- 38 files changed, 506 insertions(+), 406 deletions(-) rename src/Faker/Provider/bg_BG/{Company.php => Payment.php} (92%) rename src/Faker/Provider/cs_CZ/{Company.php => Payment.php} (92%) create mode 100644 src/Faker/Provider/da_DK/Payment.php rename src/Faker/Provider/de_AT/{Company.php => Payment.php} (92%) create mode 100644 src/Faker/Provider/de_DE/Payment.php rename src/Faker/Provider/el_GR/{Company.php => Payment.php} (92%) rename src/Faker/Provider/en_GB/{Company.php => Payment.php} (92%) create mode 100644 src/Faker/Provider/es_ES/Payment.php create mode 100644 src/Faker/Provider/fr_BE/Payment.php create mode 100644 src/Faker/Provider/fr_FR/Payment.php create mode 100644 src/Faker/Provider/is_IS/Payment.php create mode 100644 src/Faker/Provider/it_IT/Payment.php rename src/Faker/Provider/lv_LV/{Company.php => Payment.php} (92%) create mode 100644 src/Faker/Provider/nl_BE/Payment.php create mode 100644 src/Faker/Provider/nl_NL/Payment.php create mode 100644 src/Faker/Provider/pl_PL/Payment.php create mode 100644 src/Faker/Provider/pt_BR/Payment.php create mode 100644 src/Faker/Provider/sk_SK/Payment.php rename src/Faker/Provider/sr_Cyrl_RS/{Company.php => Payment.php} (92%) rename src/Faker/Provider/sr_Latn_RS/{Company.php => Payment.php} (92%) rename src/Faker/Provider/sr_RS/{Company.php => Payment.php} (92%) rename src/Faker/Provider/tr_TR/{Company.php => Payment.php} (92%) diff --git a/readme.md b/readme.md index 8f8047ee..052e42d2 100644 --- a/readme.md +++ b/readme.md @@ -97,6 +97,14 @@ Each of the generator properties (like `name`, `address`, and `lorem`) are calle company // 'Bogan-Treutel' companySuffix // 'and Sons' +### `Faker\Provider\Payment` + + creditCardType // 'MasterCard' + creditCardNumber // '4485480221084675' + creditCardExpirationDate // 04/13 + creditCardExpirationDateString // '04/13' + creditCardDetails // array('MasterCard', '4485480221084675', 'Aleksander Nowak', '04/13') + ### `Faker\Provider\Lorem` word // 'aut' @@ -713,6 +721,18 @@ echo $faker->regonLocal; // "15346111382836" ``` +### `Faker\Provider\pl_PL\Payment` + +```php +bank; // "Narodowy Bank Polski" +// Generates a random bank account number +echo $faker->bankAccountNumber; // "PL14968907563953822118075816" + +``` + ## License Faker is released under the MIT Licence. See the bundled LICENSE file for details. diff --git a/src/Faker/Generator.php b/src/Faker/Generator.php index fc6adc03..5e34a603 100644 --- a/src/Faker/Generator.php +++ b/src/Faker/Generator.php @@ -32,6 +32,13 @@ namespace Faker; * @property string company * @property string companySuffix * + * @property string creditCardType + * @property string creditCardNumber + * @property string creditCardExpirationDate + * @property string creditCardExpirationDateString + * @property string creditCardDetails + * @property string bankAccountNumber + * * @property string word * @method string words * @method string sentence diff --git a/src/Faker/Provider/Company.php b/src/Faker/Provider/Company.php index 970b689a..208d9ce5 100644 --- a/src/Faker/Provider/Company.php +++ b/src/Faker/Provider/Company.php @@ -10,73 +10,6 @@ class Company extends \Faker\Provider\Base protected static $companySuffix = array('Ltd'); - /** - * @var array list of IBAN formats, source: @link http://www.swift.com/dsp/resources/documents/IBAN_Registry.txt - */ - protected static $ibanFormats = array( - 'AD' => array(array('n', 4), array('n', 4), array('c', 12)), - 'AE' => array(array('n', 3), array('n', 16)), - 'AL' => array(array('n', 8), array('c', 16)), - 'AT' => array(array('n', 5), array('n', 11)), - 'AZ' => array(array('a', 4), array('c', 20)), - 'BA' => array(array('n', 3), array('n', 3), array('n', 8), array('n', 2)), - 'BE' => array(array('n', 3), array('n', 7), array('n', 2)), - 'BG' => array(array('a', 4), array('n', 4), array('n', 2), array('c', 8)), - 'BH' => array(array('a', 4), array('c', 14)), - 'BR' => array(array('n', 8), array('n', 5), array('n', 10), array('a', 1), array('c', 1)), - 'CH' => array(array('n', 5), array('c', 12)), - 'CR' => array(array('n', 3), array('n', 14)), - 'CY' => array(array('n', 3), array('n', 5), array('c', 16)), - 'CZ' => array(array('n', 4), array('n', 6), array('n', 10)), - 'DE' => array(array('n', 8), array('n', 10)), - 'DK' => array(array('n', 4), array('n', 9), array('n', 1)), - 'DO' => array(array('c', 4), array('n', 20)), - 'EE' => array(array('n', 2), array('n', 2), array('n', 11), array('n', 1)), - 'ES' => array(array('n', 4), array('n', 4), array('n', 1), array('n', 1), array('n', 10)), - 'FR' => array(array('n', 5), array('n', 5), array('c', 11), array('n', 2)), - 'GB' => array(array('a', 4), array('n', 6), array('n', 8)), - 'GE' => array(array('a', 2), array('n', 16)), - 'GI' => array(array('a', 4), array('c', 15)), - 'GR' => array(array('n', 3), array('n', 4), array('c', 16)), - 'GT' => array(array('c', 4), array('c', 20)), - 'HR' => array(array('n', 7), array('n', 10)), - 'HU' => array(array('n', 3), array('n', 4), array('n', 1), array('n', 15), array('n', 1)), - 'IE' => array(array('a', 4), array('n', 6), array('n', 8)), - 'IL' => array(array('n', 3), array('n', 3), array('n', 13)), - 'IS' => array(array('n', 4), array('n', 2), array('n', 6), array('n', 10)), - 'IT' => array(array('a', 1), array('n', 5), array('n', 5), array('c', 12)), - 'KW' => array(array('a', 4), array('c', 22)), - 'KZ' => array(array('n', 3), array('c', 13)), - 'LB' => array(array('n', 4), array('c', 20)), - 'LI' => array(array('n', 5), array('c', 12)), - 'LT' => array(array('n', 5), array('n', 11)), - 'LU' => array(array('n', 3), array('c', 13)), - 'LV' => array(array('a', 4), array('c', 13)), - 'MC' => array(array('n', 5), array('n', 5), array('c', 11), array('n', 2)), - 'MD' => array(array('c', 2), array('c', 18)), - 'ME' => array(array('n', 3), array('n', 13), array('n', 2)), - 'MK' => array(array('n', 3), array('c', 10), array('n', 2)), - 'MR' => array(array('n', 5), array('n', 5), array('n', 11), array('n', 2)), - 'MT' => array(array('a', 4), array('n', 5), array('c', 18)), - 'MU' => array(array('a', 4), array('n', 2), array('n', 2), array('n', 12), array('n', 3), array('a', 3)), - 'NL' => array(array('a', 4), array('n', 10)), - 'NO' => array(array('n', 4), array('n', 6), array('n', 1)), - 'PK' => array(array('a', 4), array('c', 16)), - 'PL' => array(array('n', 8), array('n', 16)), - 'PS' => array(array('a', 4), array('c', 21)), - 'PT' => array(array('n', 4), array('n', 4), array('n', 11), array('n', 2)), - 'RO' => array(array('a', 4), array('c', 16)), - 'RS' => array(array('n', 3), array('n', 13), array('n', 2)), - 'SA' => array(array('n', 2), array('c', 18)), - 'SE' => array(array('n', 3), array('n', 16), array('n', 1)), - 'SI' => array(array('n', 5), array('n', 8), array('n', 2)), - 'SK' => array(array('n', 4), array('n', 6), array('n', 10)), - 'SM' => array(array('a', 1), array('n', 5), array('n', 5), array('c', 12)), - 'TN' => array(array('n', 2), array('n', 3), array('n', 13), array('n', 2)), - 'TR' => array(array('n', 5), array('c', 1), array('c', 16)), - 'VG' => array(array('a', 4), array('n', 16)), - ); - /** * @example 'Acme Ltd' */ @@ -94,77 +27,4 @@ class Company extends \Faker\Provider\Base { return static::randomElement(static::$companySuffix); } - - /** - * International Bank Account Number (IBAN) - * @link http://en.wikipedia.org/wiki/International_Bank_Account_Number - * @param string $countryCode ISO 3166-1 alpha-2 country code - * @param string $prefix for generating bank account number of a specific bank - * @param integer $length total length without country code and 2 check digits - * @return string - */ - protected static function iban($countryCode, $prefix = '', $length = null) - { - $countryCode = strtoupper($countryCode); - $format = !isset(static::$ibanFormats[$countryCode]) ? array() : static::$ibanFormats[$countryCode]; - if ($length === null) { - if ($format === null) { - $length = 24; - } else { - $length = 0; - foreach($format as $part) { - list($class, $groupCount) = $part; - $length += $groupCount; - } - } - } - - $result = $prefix; - $length -= strlen($prefix); - $nextPart = array_shift($format); - if ($nextPart !== false) { - list($class, $groupCount) = $nextPart; - } else { - $class = 'n'; - $groupCount = 0; - } - $groupCount = $nextPart === false ? 0 : $nextPart[1]; - for ($i = 0; $i < $length; $i++) { - if ($nextPart !== false && $groupCount-- < 1) { - $nextPart = array_shift($format); - list($class, $groupCount) = $nextPart; - } - switch($class) { - default: - case 'c': $result .= mt_rand(0, 100) <= 50 ? static::randomDigit() : strtoupper(static::randomLetter()); break; - case 'a': $result .= strtoupper(static::randomLetter()); break; - case 'n': $result .= static::randomDigit(); break; - } - } - - $result = static::addBankCodeChecksum($result, $countryCode); - - $countryNumber = 100 * (ord($countryCode[0])-55) + (ord($countryCode[1])-55); - $tempResult = $result . $countryNumber . '00'; - // perform MOD97-10 checksum calculation - $checksum = (int)$tempResult[0]; - for ($i = 1; $i < strlen($tempResult); $i++) { - $checksum = (10 * $checksum + (int)$tempResult[$i]) % 97; - } - $checksum = 98 - $checksum; - if ($checksum < 10) - $checksum = '0'.$checksum; - return $countryCode . $checksum . $result; - } - - /** - * Calculates a checksum for the national bank and branch code part in the IBAN. - * @param string $iban randomly generated $iban - * @param string $countryCode ISO 3166-1 alpha-2 country code - * @return string IBAN with one character altered to a proper checksum - */ - protected static function addBankCodeChecksum($iban, $countryCode = '') - { - return $iban; - } } diff --git a/src/Faker/Provider/Payment.php b/src/Faker/Provider/Payment.php index d9d84dfb..bbef4081 100644 --- a/src/Faker/Provider/Payment.php +++ b/src/Faker/Provider/Payment.php @@ -50,6 +50,73 @@ class Payment extends Base ), ); + /** + * @var array list of IBAN formats, source: @link http://www.swift.com/dsp/resources/documents/IBAN_Registry.txt + */ + protected static $ibanFormats = array( + 'AD' => array(array('n', 4), array('n', 4), array('c', 12)), + 'AE' => array(array('n', 3), array('n', 16)), + 'AL' => array(array('n', 8), array('c', 16)), + 'AT' => array(array('n', 5), array('n', 11)), + 'AZ' => array(array('a', 4), array('c', 20)), + 'BA' => array(array('n', 3), array('n', 3), array('n', 8), array('n', 2)), + 'BE' => array(array('n', 3), array('n', 7), array('n', 2)), + 'BG' => array(array('a', 4), array('n', 4), array('n', 2), array('c', 8)), + 'BH' => array(array('a', 4), array('c', 14)), + 'BR' => array(array('n', 8), array('n', 5), array('n', 10), array('a', 1), array('c', 1)), + 'CH' => array(array('n', 5), array('c', 12)), + 'CR' => array(array('n', 3), array('n', 14)), + 'CY' => array(array('n', 3), array('n', 5), array('c', 16)), + 'CZ' => array(array('n', 4), array('n', 6), array('n', 10)), + 'DE' => array(array('n', 8), array('n', 10)), + 'DK' => array(array('n', 4), array('n', 9), array('n', 1)), + 'DO' => array(array('c', 4), array('n', 20)), + 'EE' => array(array('n', 2), array('n', 2), array('n', 11), array('n', 1)), + 'ES' => array(array('n', 4), array('n', 4), array('n', 1), array('n', 1), array('n', 10)), + 'FR' => array(array('n', 5), array('n', 5), array('c', 11), array('n', 2)), + 'GB' => array(array('a', 4), array('n', 6), array('n', 8)), + 'GE' => array(array('a', 2), array('n', 16)), + 'GI' => array(array('a', 4), array('c', 15)), + 'GR' => array(array('n', 3), array('n', 4), array('c', 16)), + 'GT' => array(array('c', 4), array('c', 20)), + 'HR' => array(array('n', 7), array('n', 10)), + 'HU' => array(array('n', 3), array('n', 4), array('n', 1), array('n', 15), array('n', 1)), + 'IE' => array(array('a', 4), array('n', 6), array('n', 8)), + 'IL' => array(array('n', 3), array('n', 3), array('n', 13)), + 'IS' => array(array('n', 4), array('n', 2), array('n', 6), array('n', 10)), + 'IT' => array(array('a', 1), array('n', 5), array('n', 5), array('c', 12)), + 'KW' => array(array('a', 4), array('c', 22)), + 'KZ' => array(array('n', 3), array('c', 13)), + 'LB' => array(array('n', 4), array('c', 20)), + 'LI' => array(array('n', 5), array('c', 12)), + 'LT' => array(array('n', 5), array('n', 11)), + 'LU' => array(array('n', 3), array('c', 13)), + 'LV' => array(array('a', 4), array('c', 13)), + 'MC' => array(array('n', 5), array('n', 5), array('c', 11), array('n', 2)), + 'MD' => array(array('c', 2), array('c', 18)), + 'ME' => array(array('n', 3), array('n', 13), array('n', 2)), + 'MK' => array(array('n', 3), array('c', 10), array('n', 2)), + 'MR' => array(array('n', 5), array('n', 5), array('n', 11), array('n', 2)), + 'MT' => array(array('a', 4), array('n', 5), array('c', 18)), + 'MU' => array(array('a', 4), array('n', 2), array('n', 2), array('n', 12), array('n', 3), array('a', 3)), + 'NL' => array(array('a', 4), array('n', 10)), + 'NO' => array(array('n', 4), array('n', 6), array('n', 1)), + 'PK' => array(array('a', 4), array('c', 16)), + 'PL' => array(array('n', 8), array('n', 16)), + 'PS' => array(array('a', 4), array('c', 21)), + 'PT' => array(array('n', 4), array('n', 4), array('n', 11), array('n', 2)), + 'RO' => array(array('a', 4), array('c', 16)), + 'RS' => array(array('n', 3), array('n', 13), array('n', 2)), + 'SA' => array(array('n', 2), array('c', 18)), + 'SE' => array(array('n', 3), array('n', 16), array('n', 1)), + 'SI' => array(array('n', 5), array('n', 8), array('n', 2)), + 'SK' => array(array('n', 4), array('n', 6), array('n', 10)), + 'SM' => array(array('a', 1), array('n', 5), array('n', 5), array('c', 12)), + 'TN' => array(array('n', 2), array('n', 3), array('n', 13), array('n', 2)), + 'TR' => array(array('n', 5), array('c', 1), array('c', 16)), + 'VG' => array(array('a', 4), array('n', 16)), + ); + /** * @return string Returns a credit card vendor name * @@ -127,4 +194,77 @@ class Payment extends Base 'expirationDate' => $this->creditCardExpirationDateString($valid) ); } + + /** + * International Bank Account Number (IBAN) + * @link http://en.wikipedia.org/wiki/International_Bank_Account_Number + * @param string $countryCode ISO 3166-1 alpha-2 country code + * @param string $prefix for generating bank account number of a specific bank + * @param integer $length total length without country code and 2 check digits + * @return string + */ + protected static function iban($countryCode, $prefix = '', $length = null) + { + $countryCode = strtoupper($countryCode); + $format = !isset(static::$ibanFormats[$countryCode]) ? array() : static::$ibanFormats[$countryCode]; + if ($length === null) { + if ($format === null) { + $length = 24; + } else { + $length = 0; + foreach($format as $part) { + list($class, $groupCount) = $part; + $length += $groupCount; + } + } + } + + $result = $prefix; + $length -= strlen($prefix); + $nextPart = array_shift($format); + if ($nextPart !== false) { + list($class, $groupCount) = $nextPart; + } else { + $class = 'n'; + $groupCount = 0; + } + $groupCount = $nextPart === false ? 0 : $nextPart[1]; + for ($i = 0; $i < $length; $i++) { + if ($nextPart !== false && $groupCount-- < 1) { + $nextPart = array_shift($format); + list($class, $groupCount) = $nextPart; + } + switch($class) { + default: + case 'c': $result .= mt_rand(0, 100) <= 50 ? static::randomDigit() : strtoupper(static::randomLetter()); break; + case 'a': $result .= strtoupper(static::randomLetter()); break; + case 'n': $result .= static::randomDigit(); break; + } + } + + $result = static::addBankCodeChecksum($result, $countryCode); + + $countryNumber = 100 * (ord($countryCode[0])-55) + (ord($countryCode[1])-55); + $tempResult = $result . $countryNumber . '00'; + // perform MOD97-10 checksum calculation + $checksum = (int)$tempResult[0]; + for ($i = 1; $i < strlen($tempResult); $i++) { + $checksum = (10 * $checksum + (int)$tempResult[$i]) % 97; + } + $checksum = 98 - $checksum; + if ($checksum < 10) + $checksum = '0'.$checksum; + return $countryCode . $checksum . $result; + } + + /** + * Calculates a checksum for the national bank and branch code part in the IBAN. + * @param string $iban randomly generated $iban + * @param string $countryCode ISO 3166-1 alpha-2 country code + * @return string IBAN with one character altered to a proper checksum + */ + protected static function addBankCodeChecksum($iban, $countryCode = '') + { + return $iban; + } } diff --git a/src/Faker/Provider/bg_BG/Company.php b/src/Faker/Provider/bg_BG/Payment.php similarity index 92% rename from src/Faker/Provider/bg_BG/Company.php rename to src/Faker/Provider/bg_BG/Payment.php index 4184ac73..e3711dec 100644 --- a/src/Faker/Provider/bg_BG/Company.php +++ b/src/Faker/Provider/bg_BG/Payment.php @@ -2,7 +2,7 @@ namespace Faker\Provider\bg_BG; -class Company extends \Faker\Provider\Company +class Payment extends \Faker\Provider\Payment { /** * International Bank Account Number (IBAN) diff --git a/src/Faker/Provider/cs_CZ/Company.php b/src/Faker/Provider/cs_CZ/Payment.php similarity index 92% rename from src/Faker/Provider/cs_CZ/Company.php rename to src/Faker/Provider/cs_CZ/Payment.php index 0142f9aa..bfc5a2d2 100644 --- a/src/Faker/Provider/cs_CZ/Company.php +++ b/src/Faker/Provider/cs_CZ/Payment.php @@ -2,7 +2,7 @@ namespace Faker\Provider\cs_CZ; -class Company extends \Faker\Provider\Company +class Payment extends \Faker\Provider\Payment { /** * International Bank Account Number (IBAN) diff --git a/src/Faker/Provider/da_DK/Company.php b/src/Faker/Provider/da_DK/Company.php index 7f0d775a..b9f289cc 100644 --- a/src/Faker/Provider/da_DK/Company.php +++ b/src/Faker/Provider/da_DK/Company.php @@ -67,17 +67,4 @@ class Company extends \Faker\Provider\Company { return static::numerify(static::$pFormat); } - - /** - * International Bank Account Number (IBAN) - * @link http://en.wikipedia.org/wiki/International_Bank_Account_Number - * @param string $prefix for generating bank account number of a specific bank - * @param string $countryCode ISO 3166-1 alpha-2 country code - * @param integer $length total length without country code and 2 check digits - * @return string - */ - public static function bankAccountNumber($prefix = '', $countryCode = 'DK', $length = null) - { - return static::iban($countryCode, $prefix, $length); - } } diff --git a/src/Faker/Provider/da_DK/Payment.php b/src/Faker/Provider/da_DK/Payment.php new file mode 100644 index 00000000..833bac74 --- /dev/null +++ b/src/Faker/Provider/da_DK/Payment.php @@ -0,0 +1,20 @@ + 'Aareal Bank Aktiengesellschaft (Spółka Akcyjna) - Oddział w Polsce', - '249' => 'Alior Bank SA', - '247' => 'Banco Espirito Santo de Investimento, S.A. Spółka Akcyjna Oddział w Polsce', - '238' => 'Banco Mais S.A. (SA) Oddział w Polsce', - '106' => 'Bank BPH SA', - '219' => 'Bank DnB NORD Polska SA', - '203' => 'Bank Gospodarki Żywnościowej SA', - '113' => 'Bank Gospodarstwa Krajowego', - '122' => 'Bank Handlowo - Kredytowy SA (w likwidacji 31.03.92)', - '103' => 'Bank Handlowy w Warszawie SA', - '116' => 'Bank Millennium SA', - '154' => 'Bank Ochrony Środowiska SA', - '260' => 'Bank of China (Luxembourg)S.A. Spółka Akcyjna Oddział w Polsce', - '221' => 'Bank of Tokyo-Mitsubishi UFJ (Polska) SA', - '132' => 'Bank Pocztowy SA', - '124' => 'Bank Polska Kasa Opieki SA', - '193' => 'BANK POLSKIEJ SPÓŁDZIELCZOŚCI SA', - '109' => 'Bank Zachodni WBK SA', - '224' => 'Banque PSA Finance SA Oddział w Polsce', - '160' => 'BNP PARIBAS BANK POLSKA SA', - '235' => 'BNP PARIBAS SA Oddział w Polsce', - '243' => 'BNP Paribas Securities Services SKAOddział w Polsce', - '229' => 'BPI Bank Polskich Inwestycji SA', - '215' => 'BRE Bank Hipoteczny SA', - '114' => 'BRE Bank SA', - '239' => 'CAIXABANK, S.A. (SPÓŁKA AKCYJNA)ODDZIAŁ W POLSCE', - '254' => 'Citibank Europe plc (Publiczna Spółka Akcyjna) Oddział w Polsce', - '194' => 'Credit Agricole Bank Polska SA', - '252' => 'CREDIT SUISSE (LUXEMBOURG) S.A. Spółka Akcyjna, Oddział w Polsce', - '236' => 'Danske Bank A/S SA Oddział w Polsce', - '191' => 'Deutsche Bank PBC SA', - '188' => 'Deutsche Bank Polska SA', - '174' => 'DZ BANK Polska SA', - '241' => 'Elavon Financial Services Limited (Spółka z ograniczoną odpowiedzialnością) Oddział w Polsce', - '147' => 'Euro Bank SA', - '265' => 'EUROCLEAR Bank SA/NV (Spółka Akcyjna) - Oddział w Polsce', - '207' => 'FCE Bank Polska SA', - '214' => 'Fiat Bank Polska SA', - '253' => 'FM Bank SA', - '248' => 'Getin Noble Bank SA', - '128' => 'HSBC Bank Polska SA', - '195' => 'Idea Bank SA', - '255' => 'Ikano Bank GmbH (Sp. z o.o.) Oddział w Polsce', - '262' => 'Industrial and Commercial Bank of China (Europe) S.A. (Spółka Akcyjna) Oddział w Polsce', - '105' => 'ING Bank Śląski SA', - '266' => 'Intesa Sanpaolo S.p.A. Spółka Akcyjna Oddział w Polsce', - '168' => 'INVEST - BANK SA', - '258' => 'J.P. Morgan Europe Limited Sp. z o.o. Oddział w Polsce', - '158' => 'Mercedes-Benz Bank Polska SA', - '130' => 'Meritum Bank ICB SA', - '101' => 'Narodowy Bank Polski', - '256' => 'Nordea Bank AB SA Oddział w Polsce', - '144' => 'NORDEA BANK POLSKA SA', - '232' => 'Nykredit Realkredit A/S SA - Oddział w Polsce', - '189' => 'Pekao Bank Hipoteczny SA', - '187' => 'Polski Bank Przedsiębiorczości SA', - '102' => 'Powszechna Kasa Oszczędności Bank Polski SA', - '200' => 'Rabobank Polska SA', - '175' => 'Raiffeisen Bank Polska SA', - '167' => 'RBS Bank (Polska) SA', - '264' => 'RCI Banque Spółka Akcyjna Oddział w Polsce', - '212' => 'Santander Consumer Bank SA', - '263' => 'Saxo Bank A/S Spółka Akcyjna Oddział w Polsce', - '161' => 'SGB-Bank SA', - '237' => 'Skandinaviska Enskilda Banken AB (SA) - Oddział w Polsce', - '184' => 'Societe Generale SA Oddział w Polsce', - '225' => 'Svenska Handelsbanken AB SA Oddział w Polsce', - '227' => 'Sygma Banque Societe Anonyme (SA) Oddział w Polsce', - '216' => 'Toyota Bank Polska SA', - '257' => 'UBS Limited (spółka z ograniczoną odpowiedzialnością) Oddział w Polsce', - '261' => 'Vanquis Bank Limited (spółka z ograniczoną odpowiedzialnością) Oddział w Polsce', - '213' => 'VOLKSWAGEN BANK POLSKA SA', - ); - /* * Register of the National Economy * @link http://pl.wikipedia.org/wiki/REGON @@ -132,39 +54,4 @@ class Company extends \Faker\Provider\Company return implode('', $result); } - - /** - * @example 'Euro Bank SA' - */ - public static function bank() - { - return static::randomElement(static::$banks); - } - - /** - * International Bank Account Number (IBAN) - * @link http://en.wikipedia.org/wiki/International_Bank_Account_Number - * @param string $prefix for generating bank account number of a specific bank - * @param string $countryCode ISO 3166-1 alpha-2 country code - * @param integer $length total length without country code and 2 check digits - * @return string - */ - public static function bankAccountNumber($prefix = '', $countryCode = 'PL', $length = null) - { - return static::iban($countryCode, $prefix, $length); - } - - protected static function addBankCodeChecksum($iban, $countryCode = 'PL') - { - if ($countryCode != "PL" || strlen($iban) <= 8) { - return $iban; - } - $checksum = 0; - $weights = array(7, 1, 3, 9, 7, 1, 3); - for ($i = 0; $i < 7; $i++) { - $checksum += $weights[$i] * (int)$iban[$i]; - } - $checksum = $checksum % 10; - return substr($iban, 0, 7) . $checksum . substr($iban, 8); - } } diff --git a/src/Faker/Provider/pl_PL/Payment.php b/src/Faker/Provider/pl_PL/Payment.php new file mode 100644 index 00000000..e999adb9 --- /dev/null +++ b/src/Faker/Provider/pl_PL/Payment.php @@ -0,0 +1,119 @@ + 'Aareal Bank Aktiengesellschaft (Spółka Akcyjna) - Oddział w Polsce', + '249' => 'Alior Bank SA', + '247' => 'Banco Espirito Santo de Investimento, S.A. Spółka Akcyjna Oddział w Polsce', + '238' => 'Banco Mais S.A. (SA) Oddział w Polsce', + '106' => 'Bank BPH SA', + '219' => 'Bank DnB NORD Polska SA', + '203' => 'Bank Gospodarki Żywnościowej SA', + '113' => 'Bank Gospodarstwa Krajowego', + '122' => 'Bank Handlowo - Kredytowy SA (w likwidacji 31.03.92)', + '103' => 'Bank Handlowy w Warszawie SA', + '116' => 'Bank Millennium SA', + '154' => 'Bank Ochrony Środowiska SA', + '260' => 'Bank of China (Luxembourg)S.A. Spółka Akcyjna Oddział w Polsce', + '221' => 'Bank of Tokyo-Mitsubishi UFJ (Polska) SA', + '132' => 'Bank Pocztowy SA', + '124' => 'Bank Polska Kasa Opieki SA', + '193' => 'BANK POLSKIEJ SPÓŁDZIELCZOŚCI SA', + '109' => 'Bank Zachodni WBK SA', + '224' => 'Banque PSA Finance SA Oddział w Polsce', + '160' => 'BNP PARIBAS BANK POLSKA SA', + '235' => 'BNP PARIBAS SA Oddział w Polsce', + '243' => 'BNP Paribas Securities Services SKAOddział w Polsce', + '229' => 'BPI Bank Polskich Inwestycji SA', + '215' => 'BRE Bank Hipoteczny SA', + '114' => 'BRE Bank SA', + '239' => 'CAIXABANK, S.A. (SPÓŁKA AKCYJNA)ODDZIAŁ W POLSCE', + '254' => 'Citibank Europe plc (Publiczna Spółka Akcyjna) Oddział w Polsce', + '194' => 'Credit Agricole Bank Polska SA', + '252' => 'CREDIT SUISSE (LUXEMBOURG) S.A. Spółka Akcyjna, Oddział w Polsce', + '236' => 'Danske Bank A/S SA Oddział w Polsce', + '191' => 'Deutsche Bank PBC SA', + '188' => 'Deutsche Bank Polska SA', + '174' => 'DZ BANK Polska SA', + '241' => 'Elavon Financial Services Limited (Spółka z ograniczoną odpowiedzialnością) Oddział w Polsce', + '147' => 'Euro Bank SA', + '265' => 'EUROCLEAR Bank SA/NV (Spółka Akcyjna) - Oddział w Polsce', + '207' => 'FCE Bank Polska SA', + '214' => 'Fiat Bank Polska SA', + '253' => 'FM Bank SA', + '248' => 'Getin Noble Bank SA', + '128' => 'HSBC Bank Polska SA', + '195' => 'Idea Bank SA', + '255' => 'Ikano Bank GmbH (Sp. z o.o.) Oddział w Polsce', + '262' => 'Industrial and Commercial Bank of China (Europe) S.A. (Spółka Akcyjna) Oddział w Polsce', + '105' => 'ING Bank Śląski SA', + '266' => 'Intesa Sanpaolo S.p.A. Spółka Akcyjna Oddział w Polsce', + '168' => 'INVEST - BANK SA', + '258' => 'J.P. Morgan Europe Limited Sp. z o.o. Oddział w Polsce', + '158' => 'Mercedes-Benz Bank Polska SA', + '130' => 'Meritum Bank ICB SA', + '101' => 'Narodowy Bank Polski', + '256' => 'Nordea Bank AB SA Oddział w Polsce', + '144' => 'NORDEA BANK POLSKA SA', + '232' => 'Nykredit Realkredit A/S SA - Oddział w Polsce', + '189' => 'Pekao Bank Hipoteczny SA', + '187' => 'Polski Bank Przedsiębiorczości SA', + '102' => 'Powszechna Kasa Oszczędności Bank Polski SA', + '200' => 'Rabobank Polska SA', + '175' => 'Raiffeisen Bank Polska SA', + '167' => 'RBS Bank (Polska) SA', + '264' => 'RCI Banque Spółka Akcyjna Oddział w Polsce', + '212' => 'Santander Consumer Bank SA', + '263' => 'Saxo Bank A/S Spółka Akcyjna Oddział w Polsce', + '161' => 'SGB-Bank SA', + '237' => 'Skandinaviska Enskilda Banken AB (SA) - Oddział w Polsce', + '184' => 'Societe Generale SA Oddział w Polsce', + '225' => 'Svenska Handelsbanken AB SA Oddział w Polsce', + '227' => 'Sygma Banque Societe Anonyme (SA) Oddział w Polsce', + '216' => 'Toyota Bank Polska SA', + '257' => 'UBS Limited (spółka z ograniczoną odpowiedzialnością) Oddział w Polsce', + '261' => 'Vanquis Bank Limited (spółka z ograniczoną odpowiedzialnością) Oddział w Polsce', + '213' => 'VOLKSWAGEN BANK POLSKA SA', + ); + + /** + * @example 'Euro Bank SA' + */ + public static function bank() + { + return static::randomElement(static::$banks); + } + + /** + * International Bank Account Number (IBAN) + * @link http://en.wikipedia.org/wiki/International_Bank_Account_Number + * @param string $prefix for generating bank account number of a specific bank + * @param string $countryCode ISO 3166-1 alpha-2 country code + * @param integer $length total length without country code and 2 check digits + * @return string + */ + public static function bankAccountNumber($prefix = '', $countryCode = 'PL', $length = null) + { + return static::iban($countryCode, $prefix, $length); + } + + protected static function addBankCodeChecksum($iban, $countryCode = 'PL') + { + if ($countryCode != "PL" || strlen($iban) <= 8) { + return $iban; + } + $checksum = 0; + $weights = array(7, 1, 3, 9, 7, 1, 3); + for ($i = 0; $i < 7; $i++) { + $checksum += $weights[$i] * (int)$iban[$i]; + } + $checksum = $checksum % 10; + return substr($iban, 0, 7) . $checksum . substr($iban, 8); + } +} diff --git a/src/Faker/Provider/pt_BR/Company.php b/src/Faker/Provider/pt_BR/Company.php index d4168137..2b9a98d1 100644 --- a/src/Faker/Provider/pt_BR/Company.php +++ b/src/Faker/Provider/pt_BR/Company.php @@ -63,17 +63,4 @@ class Company extends \Faker\Provider\Company return join($result, ' '); } - - /** - * International Bank Account Number (IBAN) - * @link http://en.wikipedia.org/wiki/International_Bank_Account_Number - * @param string $prefix for generating bank account number of a specific bank - * @param string $countryCode ISO 3166-1 alpha-2 country code - * @param integer $length total length without country code and 2 check digits - * @return string - */ - public static function bankAccountNumber($prefix = '', $countryCode = 'BR', $length = null) - { - return static::iban($countryCode, $prefix, $length); - } } diff --git a/src/Faker/Provider/pt_BR/Payment.php b/src/Faker/Provider/pt_BR/Payment.php new file mode 100644 index 00000000..9b08b2ee --- /dev/null +++ b/src/Faker/Provider/pt_BR/Payment.php @@ -0,0 +1,19 @@ +