BankProvider   A
last analyzed

Complexity

Total Complexity 4

Size/Duplication

Total Lines 63
Duplicated Lines 0 %

Coupling/Cohesion

Components 1
Dependencies 1

Test Coverage

Coverage 100%

Importance

Changes 0
Metric Value
wmc 4
lcom 1
cbo 1
dl 0
loc 63
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 4
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
namespace yiiviet\payment\nganluong;
9
10
use yiiviet\payment\BankProvider as BaseBankProvider;
11
12
/**
13
 * Lớp BankProvider cung cấp thông tin ngân hàng mà Ngân Lượng hổ trợ.
14
 *
15
 * @author Vuong Minh <[email protected]>
16
 * @since 1.0.3
17
 */
18
class BankProvider extends BaseBankProvider
19
{
20
21
    /**
22
     * @var int danh sách ngân hàng cần xuất.
23
     */
24
    public $type = PaymentGateway::PAYMENT_METHOD_ATM_ONLINE;
25
26
    /**
27
     * @var array danh sách thông tin ngân hàng
28
     */
29
    public static $bankList = [
30
        'AGB' => ['name' => 'Ngân hàng Nông nghiệp và Phát triển Nông thôn (Agribank)', 'types' => [PaymentGateway::PAYMENT_METHOD_ATM_ONLINE, PaymentGateway::PAYMENT_METHOD_QR_CODE]],
31
        'BAB' => ['name' => 'Ngân hàng TMCP Bắc Á', 'types' => [PaymentGateway::PAYMENT_METHOD_ATM_ONLINE]],
32
        'BIDV' => ['name' => 'Ngân hàng Đầu tư và Phát triển Việt Nam (BIDV)', 'types' => [PaymentGateway::PAYMENT_METHOD_ATM_ONLINE, PaymentGateway::PAYMENT_METHOD_INTERNET_BANKING]],
33
        'EXB' => ['name' => 'Ngân hàng TMCP Xuất Nhập Khẩu (Eximbank)', 'types' => [PaymentGateway::PAYMENT_METHOD_ATM_ONLINE, PaymentGateway::PAYMENT_METHOD_INTERNET_BANKING]],
34
        'MSB' => ['name' => 'Ngân hàng TMCP Hàng Hải (MariTimeBank)', 'types' => [PaymentGateway::PAYMENT_METHOD_ATM_ONLINE, PaymentGateway::PAYMENT_METHOD_QR_CODE]],
35
        'STB' => ['name' => 'Ngân hàng TMCP Sài Gòn Thương Tín (Sacombank)', 'types' => [PaymentGateway::PAYMENT_METHOD_ATM_ONLINE, PaymentGateway::PAYMENT_METHOD_INTERNET_BANKING]],
36
        'SGB' => ['name' => 'Ngân hàng TMCP Sài Gòn Công thương', 'types' => [PaymentGateway::PAYMENT_METHOD_ATM_ONLINE]],
37
        'NVB' => ['name' => 'Ngân hàng TMCP Nam Việt (NaviBank)', 'types' => [PaymentGateway::PAYMENT_METHOD_ATM_ONLINE, PaymentGateway::PAYMENT_METHOD_QR_CODE]],
38
        'PGB' => ['name' => 'Ngân Hàng TMCP Xăng Dầu Petrolimex (PGBank)', 'types' => [PaymentGateway::PAYMENT_METHOD_ATM_ONLINE]],
39
        'GPB' => ['name' => 'Ngân hàng TMCP Dầu Khí (GPBank)', 'types' => [PaymentGateway::PAYMENT_METHOD_ATM_ONLINE]],
40
        'ICB' => ['name' => 'Ngân hàng TMCP Công Thương (VietinBank)', 'types' => [PaymentGateway::PAYMENT_METHOD_ATM_ONLINE, PaymentGateway::PAYMENT_METHOD_INTERNET_BANKING, PaymentGateway::PAYMENT_METHOD_QR_CODE]],
41
        'TCB' => ['name' => 'Ngân hàng TMCP Kỹ Thương (Techcombank)', 'types' => [PaymentGateway::PAYMENT_METHOD_ATM_ONLINE, PaymentGateway::PAYMENT_METHOD_INTERNET_BANKING]],
42
        'TPB' => ['name' => 'Ngân hàng TMCP Tiên Phong (TienPhong Bank)', 'types' => [PaymentGateway::PAYMENT_METHOD_ATM_ONLINE]],
43
        'VAB' => ['name' => 'Ngân hàng TMCP Việt Á (VietA Bank)', 'types' => [PaymentGateway::PAYMENT_METHOD_ATM_ONLINE]],
44
        'VIB' => ['name' => 'Ngân hàng TMCP Quốc tế (VIB)', 'types' => [PaymentGateway::PAYMENT_METHOD_ATM_ONLINE]],
45
        'VCB' => ['name' => 'Ngân hàng TMCP Ngoại Thương Việt Nam (Vietcombank)', 'types' => [PaymentGateway::PAYMENT_METHOD_ATM_ONLINE, PaymentGateway::PAYMENT_METHOD_INTERNET_BANKING, PaymentGateway::PAYMENT_METHOD_QR_CODE]],
46
        'DAB' => ['name' => 'Ngân hàng TMCP Đông Á (DongA Bank)', 'types' => [PaymentGateway::PAYMENT_METHOD_ATM_ONLINE, PaymentGateway::PAYMENT_METHOD_INTERNET_BANKING]],
47
        'MB' => ['name' => 'Ngân hàng TMCP Quân Đội (MB)', 'types' => [PaymentGateway::PAYMENT_METHOD_ATM_ONLINE, PaymentGateway::PAYMENT_METHOD_QR_CODE]],
48
        'ACB' => ['name' => 'Ngân hàng TMCP Á Châu (ACB)', 'types' => [PaymentGateway::PAYMENT_METHOD_ATM_ONLINE, PaymentGateway::PAYMENT_METHOD_INTERNET_BANKING]],
49
        'HDB' => ['name' => 'Ngân hàng TMCP Phát Triển Nhà TP. Hồ Chí Minh (HDBank)', 'types' => [PaymentGateway::PAYMENT_METHOD_ATM_ONLINE]],
50
        'VPB' => ['name' => 'Ngân hàng TMCP Việt Nam Thịnh Vượng  (VPBank)', 'types' => [PaymentGateway::PAYMENT_METHOD_ATM_ONLINE, PaymentGateway::PAYMENT_METHOD_QR_CODE]],
51
        'OJB' => ['name' => 'Ngân hàng TMCP Đại Dương (OceanBank)', 'types' => [PaymentGateway::PAYMENT_METHOD_ATM_ONLINE]],
52
        'SHB' => ['name' => 'Ngân hàng TMCP Sài Gòn - Hà Nội ', 'types' => [PaymentGateway::PAYMENT_METHOD_ATM_ONLINE, PaymentGateway::PAYMENT_METHOD_QR_CODE]],
53
        'SEA' => ['name' => 'Ngân hàng TMCP Đông Nam Á (SeABank)', 'types' => [PaymentGateway::PAYMENT_METHOD_ATM_ONLINE]],
54
        'OCB' => ['name' => 'Ngân Hàng Phương Đông Việt Nam (OCB)', 'types' => [PaymentGateway::PAYMENT_METHOD_ATM_ONLINE]],
55
        'ABB' => ['name' => 'Ngân hàng TMCP An Bình', 'types' => [PaymentGateway::PAYMENT_METHOD_ATM_ONLINE, PaymentGateway::PAYMENT_METHOD_QR_CODE]],
56
        'NAB' => ['name' => 'Ngân hàng Nam Á (NamABank)', 'types' => [PaymentGateway::PAYMENT_METHOD_ATM_ONLINE]],
57
        'SCB' => ['name' => 'Ngân hàng Thương Mại Cổ Phần Sài Gòn - Saigon Commercial Bank', 'types' => [PaymentGateway::PAYMENT_METHOD_QR_CODE]],
58
        'IVB' => ['name' => 'Ngân hàng trách nhiệm hữu hạn Indovina', 'types' => [PaymentGateway::PAYMENT_METHOD_QR_CODE]],
59
        'WCP' => ['name' => 'WeChat Pay', 'types' => [PaymentGateway::PAYMENT_METHOD_QR_CODE]],
60
        'VIETTELPOST' => ['name' => 'Viettel post', 'types' => [PaymentGateway::PAYMENT_METHOD_CASH_IN_SHOP]],
61
    ];
62
63
    /**
64
     * @inheritdoc
65
     */
66 2
    public function banks(): array
67
    {
68 2
        $banks = [];
69
70 2
        foreach (static::$bankList as $id => $info) {
71 2
            if (in_array($this->type, $info['types'], true) || $this->type === null) {
72 2
                $banks[$id] = $info['name'];
73
            }
74
        }
75
76 2
        return $banks;
77
    }
78
79
80
}
81