Subversion-Projekte lars-tiefland.laravel_shop

Revision

Details | Letzte Änderung | Log anzeigen | RSS feed

Revision Autor Zeilennr. Zeile
148 lars 1
<?php
2
 
3
namespace Faker\Provider\pl_PL;
4
 
5
class Payment extends \Faker\Provider\Payment
6
{
7
    /**
8
     * @var array list of Polish banks, source: https://ewib.nbp.pl/
9
     */
10
    protected static $banks = [
11
        '101' => 'Narodowy Bank Polski',
12
        '102' => 'Powszechna Kasa Oszczędności Bank Polski Spółka Akcyjna',
13
        '103' => 'Bank Handlowy w Warszawie Spółka Akcyjna',
14
        '105' => 'ING Bank Śląski Spółka Akcyjna',
15
        '106' => 'Bank BPH Spółka Akcyjna',
16
        '109' => 'Santander Bank Polska Spółka Akcyjna',
17
        '113' => 'Bank Gospodarstwa Krajowego',
18
        '114' => 'mBank Spółka Akcyjna',
19
        '116' => 'Bank Millennium Spółka Akcyjna',
20
        '122' => 'Bank Handlowo-Kredytowy Spółka Akcyjna w Katowicach w likwidacji',
21
        '124' => 'Bank Polska Kasa Opieki Spółka Akcyjna',
22
        '132' => 'Bank Pocztowy Spółka Akcyjna',
23
        '154' => 'Bank Ochrony Środowiska Spółka Akcyjna',
24
        '158' => 'Mercedes-Benz Bank Polska Spółka Akcyjna',
25
        '161' => 'SGB-Bank Spółka Akcyjna',
26
        '168' => 'PLUS BANK Spółka Akcyjna',
27
        '184' => 'Société Générale Spółka Akcyjna Oddział w Polsce',
28
        '187' => 'Nest Bank Spółka Akcyjna',
29
        '189' => 'Pekao Bank Hipoteczny Spółka Akcyjna',
30
        '191' => 'Deutsche Bank Polska Spółka Akcyjna',
31
        '193' => 'BANK POLSKIEJ SPÓŁDZIELCZOŚCI SPÓŁKA AKCYJNA',
32
        '194' => 'Credit Agricole Bank Polska Spółka Akcyjna',
33
        '195' => 'Idea Bank Spółka Akcyjna',
34
        '203' => 'BNP Paribas Bank Polska Spółka Akcyjna',
35
        '212' => 'Santander Consumer Bank Spółka Akcyjna',
36
        '215' => 'mBank Hipoteczny Spółka Akcyjna',
37
        '216' => 'Toyota Bank Polska Spółka Akcyjna',
38
        '219' => 'DNB Bank Polska Spółka Akcyjna',
39
        '224' => 'Banque PSA Finance Spółka Akcyjna Oddział w Polsce',
40
        '225' => 'Svenska Handelsbanken AB Spółka Akcyjna Oddział w Polsce',
41
        '235' => 'BNP Paribas S.A. Oddział w Polsce ',
42
        '236' => 'Danske Bank A/S Spółka Akcyjna Oddział w Polsce',
43
        '237' => 'Skandinaviska Enskilda Banken AB (Spółka Akcyjna) - Oddział w Polsce',
44
        '239' => 'CAIXABANK, S.A. (SPÓŁKA AKCYJNA) ODDZIAŁ W POLSCE',
45
        '241' => 'Elavon Financial Services Designated Activity Company (Spółka z O.O. o Wyznaczonym Przedmiocie Działalności) Oddział w Polsce',
46
        '243' => 'BNP Paribas Securities Services Spółka Komandytowo - Akcyjna Oddział w Polsce',
47
        '247' => 'HAITONG BANK, S.A. Spółka Akcyjna Oddział w Polsce',
48
        '248' => 'Getin Noble Bank Spółka Akcyjna',
49
        '249' => 'Alior Bank Spółka Akcyjna',
50
        '251' => 'Aareal Bank Aktiengesellschaft (Spółka Akcyjna) - Oddział w Polsce',
51
        '254' => 'Citibank Europe plc (Publiczna Spółka Akcyjna) Oddział w Polsce',
52
        '255' => 'Ikano Bank AB (publ) Spółka Akcyjna Oddział w Polsce',
53
        '256' => 'Nordea Bank Abp Spółka Akcyjna Oddział w Polsce',
54
        '258' => 'J.P. Morgan Europe Limited Spółka z ograniczoną odpowiedzialnością Oddział w Polsce',
55
        '260' => 'Bank of China (Luxembourg) S.A. Spółka Akcyjna Oddział w Polsce',
56
        '262' => 'Industrial and Commercial Bank of China (Europe) S.A. (Spółka Akcyjna) Oddział w Polsce',
57
        '264' => 'RCI Banque Spółka Akcyjna Oddział w Polsce',
58
        '265' => 'EUROCLEAR Bank SA/NV (Spółka Akcyjna) - Oddział w Polsce',
59
        '266' => 'Intesa Sanpaolo S.p.A. Spółka Akcyjna Oddział w Polsce',
60
        '267' => 'Western Union International Bank GmbH, Sp. z o.o. Oddział w Polsce',
61
        '269' => 'PKO Bank Hipoteczny Spółka Akcyjna',
62
        '270' => 'TF BANK AB (Spółka z ograniczoną odpowiedzialnością) Oddział w Polsce',
63
        '271' => 'FCE Bank Spółka Akcyjna Oddział w Polsce',
64
        '272' => 'AS Inbank Spółka Akcyjna - Oddział w Polsce',
65
        '273' => 'China Construction Bank (Europe) S.A. (Spółka Akcyjna) Oddział w Polsce',
66
        '274' => 'MUFG Bank (Europe) N.V. S.A. Oddział w Polsce',
67
        '275' => 'John Deere Bank S.A. Spółka Akcyjna Oddział w Polsce ',
68
        '277' => 'Volkswagen Bank GmbH Spółka z ograniczoną odpowiedzialnością Oddział w Polsce',
69
        '278' => 'ING Bank Hipoteczny Spółka Akcyjna',
70
        '279' => 'Raiffeisen Bank International AG (Spółka Akcyjna) Oddział w Polsce',
71
        '280' => 'HSBC France (Spółka Akcyjna) Oddział w Polsce',
72
        '281' => 'Goldman Sachs Bank Europe SE Spółka Europejska Oddział w Polsce',
73
        '283' => 'J.P. Morgan AG (Spółka Akcyjna) Oddział w Polsce',
74
        '284' => 'UBS Europe SE (Spółka Europejska) Oddział w Polsce',
75
        '285' => 'Banca Farmafactoring S.p.A. Spółka Akcyjna Oddział w Polsce',
76
        '286' => 'FCA Bank S.p.A. Spółka Akcyjna Oddział w Polsce',
77
        '287' => 'Bank Nowy BFG Spółka Akcyjna',
78
        '288' => 'ALLFUNDS BANK S.A.U. (SPÓŁKA AKCYJNA) ODDZIAŁ W POLSCE',
79
    ];
80
 
81
    /**
82
     * @example 'Euro Bank SA'
83
     */
84
    public static function bank()
85
    {
86
        return static::randomElement(static::$banks);
87
    }
88
 
89
    /**
90
     * International Bank Account Number (IBAN)
91
     *
92
     * @see http://en.wikipedia.org/wiki/International_Bank_Account_Number
93
     *
94
     * @param string $prefix      for generating bank account number of a specific bank
95
     * @param string $countryCode ISO 3166-1 alpha-2 country code
96
     * @param int    $length      total length without country code and 2 check digits
97
     *
98
     * @return string
99
     */
100
    public static function bankAccountNumber($prefix = '', $countryCode = 'PL', $length = null)
101
    {
102
        return static::iban($countryCode, $prefix, $length);
103
    }
104
 
105
    protected static function addBankCodeChecksum($iban, $countryCode = 'PL')
106
    {
107
        if ($countryCode != 'PL' || strlen($iban) <= 8) {
108
            return $iban;
109
        }
110
        $checksum = 0;
111
        $weights = [7, 1, 3, 9, 7, 1, 3];
112
 
113
        for ($i = 0; $i < 7; ++$i) {
114
            $checksum += $weights[$i] * (int) $iban[$i];
115
        }
116
        $checksum = $checksum % 10;
117
 
118
        return substr($iban, 0, 7) . $checksum . substr($iban, 8);
119
    }
120
}