Completed
Push — master ( cc61cd...d5125b )
by Vuong
02:21
created

BankProvider   A

Complexity

Total Complexity 3

Size/Duplication

Total Lines 82
Duplicated Lines 0 %

Coupling/Cohesion

Components 1
Dependencies 1

Test Coverage

Coverage 100%

Importance

Changes 0
Metric Value
wmc 3
lcom 1
cbo 1
dl 0
loc 82
ccs 6
cts 6
cp 1
rs 10
c 0
b 0
f 0

1 Method

Rating   Name   Duplication   Size   Complexity  
A banks() 0 12 3
1
<?php
2
/**
3
 * @link https://github.com/yiiviet/yii2-payment
4
 * @copyright Copyright (c) 2017 Yii Viet
5
 * @license [New BSD License](http://www.opensource.org/licenses/bsd-license.php)
6
 */
7
8
9
namespace yiiviet\payment\nganluong;
10
11
/**
12
 * Lớp BankProvider cung cấp thông tin ngân hàng mà Ngân Lượng hổ trợ.
13
 *
14
 * @author Vuong Minh <[email protected]>
15
 * @since 1.0.3
16
 */
17
class BankProvider extends \yiiviet\payment\BankProvider
18
{
19
    /**
20
     * Loại ngân hàng giao dịch tự động trực tiếp (phổ biến).
21
     */
22
    const TYPE_ATM_ONLINE = 1;
23
24
    /**
25
     * Loại ngân hàng hổ trợ chuyển khoản internet banking.
26
     */
27
    const TYPE_IB_ONLINE = 2;
28
29
    /**
30
     * Loại ngân hàng hổ trợ qrcode.
31
     */
32
    const TYPE_QRCODE = 3;
33
34
    /**
35
     * Loại ngân hàng thu hộ khi giao hàng.
36
     */
37
    const TYPE_CASH_IN_SHOP = 4;
38
39
    /**
40
     * @var array danh sách thông tin ngân hàng
41
     */
42
    public static $bankList = [
43
        'AGB' => ['name' => 'Ngân hàng Nông nghiệp và Phát triển Nông thôn (Agribank)', 'types' => [self::TYPE_ATM_ONLINE, self::TYPE_QRCODE]],
44
        'BAB' => ['name' => 'Ngân hàng TMCP Bắc Á', 'types' => [self::TYPE_ATM_ONLINE]],
45
        'BIDV' => ['name' => 'Ngân hàng Đầu tư và Phát triển Việt Nam (BIDV)', 'types' => [self::TYPE_ATM_ONLINE, self::TYPE_IB_ONLINE]],
46
        'EXB' => ['name' => 'Ngân hàng TMCP Xuất Nhập Khẩu (Eximbank)', 'types' => [self::TYPE_ATM_ONLINE, self::TYPE_IB_ONLINE]],
47
        'MSB' => ['name' => 'Ngân hàng TMCP Hàng Hải (MariTimeBank)', 'types' => [self::TYPE_ATM_ONLINE, self::TYPE_QRCODE]],
48
        'STB' => ['name' => 'Ngân hàng TMCP Sài Gòn Thương Tín (Sacombank)', 'types' => [self::TYPE_ATM_ONLINE, self::TYPE_IB_ONLINE]],
49
        'SGB' => ['name' => 'Ngân hàng TMCP Sài Gòn Công thương', 'types' => [self::TYPE_ATM_ONLINE]],
50
        'NVB' => ['name' => 'Ngân hàng TMCP Nam Việt (NaviBank)', 'types' => [self::TYPE_ATM_ONLINE, self::TYPE_QRCODE]],
51
        'PGB' => ['name' => 'Ngân Hàng TMCP Xăng Dầu Petrolimex (PGBank)', 'types' => [self::TYPE_ATM_ONLINE]],
52
        'GPB' => ['name' => 'Ngân hàng TMCP Dầu Khí (GPBank)', 'types' => [self::TYPE_ATM_ONLINE]],
53
        'ICB' => ['name' => 'Ngân hàng TMCP Công Thương (VietinBank)', 'types' => [self::TYPE_ATM_ONLINE, self::TYPE_IB_ONLINE, self::TYPE_QRCODE]],
54
        'TCB' => ['name' => 'Ngân hàng TMCP Kỹ Thương (Techcombank)', 'types' => [self::TYPE_ATM_ONLINE, self::TYPE_IB_ONLINE]],
55
        'TPB' => ['name' => 'Ngân hàng TMCP Tiên Phong (TienPhong Bank)', 'types' => [self::TYPE_ATM_ONLINE]],
56
        'VAB' => ['name' => 'Ngân hàng TMCP Việt Á (VietA Bank)', 'types' => [self::TYPE_ATM_ONLINE]],
57
        'VIB' => ['name' => 'Ngân hàng TMCP Quốc tế (VIB)', 'types' => [self::TYPE_ATM_ONLINE]],
58
        'VCB' => ['name' => 'Ngân hàng TMCP Ngoại Thương Việt Nam (Vietcombank)', 'types' => [self::TYPE_ATM_ONLINE, self::TYPE_IB_ONLINE, self::TYPE_QRCODE]],
59
        'DAB' => ['name' => 'Ngân hàng TMCP Đông Á (DongA Bank)', 'types' => [self::TYPE_ATM_ONLINE, self::TYPE_IB_ONLINE]],
60
        'MB' => ['name' => 'Ngân hàng TMCP Quân Đội (MB)', 'types' => [self::TYPE_ATM_ONLINE, self::TYPE_QRCODE]],
61
        'ACB' => ['name' => 'Ngân hàng TMCP Á Châu (ACB)', 'types' => [self::TYPE_ATM_ONLINE, self::TYPE_IB_ONLINE]],
62
        'HDB' => ['name' => 'Ngân hàng TMCP Phát Triển Nhà TP. Hồ Chí Minh (HDBank)', 'types' => [self::TYPE_ATM_ONLINE]],
63
        'VPB' => ['name' => 'Ngân hàng TMCP Việt Nam Thịnh Vượng  (VPBank)', 'types' => [self::TYPE_ATM_ONLINE, self::TYPE_QRCODE]],
64
        'OJB' => ['name' => 'Ngân hàng TMCP Đại Dương (OceanBank)', 'types' => [self::TYPE_ATM_ONLINE]],
65
        'SHB' => ['name' => 'Ngân hàng TMCP Sài Gòn - Hà Nội ', 'types' => [self::TYPE_ATM_ONLINE, self::TYPE_QRCODE]],
66
        'SEA' => ['name' => 'Ngân hàng TMCP Đông Nam Á (SeABank)', 'types' => [self::TYPE_ATM_ONLINE]],
67
        'OCB' => ['name' => 'Ngân Hàng Phương Đông Việt Nam (OCB)', 'types' => [self::TYPE_ATM_ONLINE]],
68
        'ABB' => ['name' => 'Ngân hàng TMCP An Bình', 'types' => [self::TYPE_ATM_ONLINE, self::TYPE_QRCODE]],
69
        'NAB' => ['name' => 'Ngân hàng Nam Á (NamABank)', 'types' => [self::TYPE_ATM_ONLINE]],
70
        'SCB' => ['name' => 'Ngân hàng Thương Mại Cổ Phần Sài Gòn - Saigon Commercial Bank', 'types' => [self::TYPE_QRCODE]],
71
        'IVB' => ['name' => 'Ngân hàng trách nhiệm hữu hạn Indovina', 'types' => [self::TYPE_QRCODE]],
72
        'WCP' => ['name' => 'WeChat Pay', 'types' => [self::TYPE_QRCODE]],
73
        'VIETTELPOST' => ['name' => 'Viettel post', 'types' => [self::TYPE_CASH_IN_SHOP]],
74
    ];
75
76
    /**
77
     * @var int danh sách ngân hàng cần xuất.
78
     */
79
    public $type = self::TYPE_ATM_ONLINE;
80
81
    /**
82
     * @inheritdoc
83
     */
84 2
    public function banks(): array
85
    {
86 2
        $banks = [];
87
88 2
        foreach (static::$bankList as $id => $info) {
89 2
            if (in_array($this->type, $info['types'], true)) {
90 2
                $banks[$id] = $info['name'];
91
            }
92
        }
93
94 2
        return $banks;
95
    }
96
97
98
}
99