japan_net_bank 0.0.2 → 0.0.3

Sign up to get free protection for your applications and to get access to all the features.
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA1:
3
- metadata.gz: 1352ecbdcf7522accd3a81a0f6321fc066e737d8
4
- data.tar.gz: 52a3a2b918c99dc83d7938474ce647edba051b1b
3
+ metadata.gz: 5101a750182d7f4f27383be795e6e5208732c5c6
4
+ data.tar.gz: f1c9a6a639696c052c677be8e2c80099190c1d47
5
5
  SHA512:
6
- metadata.gz: a51edb3197484394276025659d9dcc520cc2440d3354a5cae382d3502bcf1c15e96421e87f5340b6b5cf5017a2a9eb1e2655679af18f99b68ab8d230fa65951f
7
- data.tar.gz: 8d7343bb483149cc1ac174d4e0207e723a1d9ea41937abd0f6799a726b680f90d519cdb174e72ad2940d729ca527e36321ae4f2ff66c0fe5d2d9ced27fbc015a
6
+ metadata.gz: 38e94b58ce4048e8f31a2268cda03f4c403be22585741ec83d731ee3874bde19b0885530099b73c891d842503abc8a7c46866ae0dba096e01f6910c465bcb7be
7
+ data.tar.gz: ff5fca00e42a98d4d5ea3c91b7f88cc9b390e986dd504111d7eb499d454e102ed225ba7d35ce0662c026afd9f8c5a60c700c7e0a8858aaf9d6565db9e425fd6d
data/README.md CHANGED
@@ -23,6 +23,12 @@
23
23
  * [操作説明|WEB総振|BA-PLUSオプションサービス|BA-PLUS|ビジネスでのご利用|ジャパンネット銀行](http://www.japannetbank.co.jp/business/baplus/service/web_all/manual.html)
24
24
  * [csv_explain.pdf](http://www.japannetbank.co.jp/service/payment/web_all/csv_explain.pdf)
25
25
 
26
+ また、下記に基づいて振込手数料を算出できます。
27
+
28
+ * http://www.japannetbank.co.jp/web_all_baplus_manual.pdf
29
+ * 現在、組戻手数料には対応していません
30
+ * 手数料の変更には追随していく方針ですが、追随が遅れる可能性があります
31
+
26
32
  ## Installation
27
33
 
28
34
  Add this line to your application's Gemfile:
@@ -39,6 +45,8 @@ Or install it yourself as:
39
45
 
40
46
  ## Usage
41
47
 
48
+ ### 振込用 CSV を生成
49
+
42
50
  ```ruby
43
51
  transfer_data = [
44
52
  {
@@ -64,3 +72,12 @@ csv_string = JapanNetBank::Transfer.new(transfer_data).to_csv
64
72
 
65
73
  puts csv_string #=> "1,0123,012,1,0123456,サトウキテコ,1600\r\n1,0999,099,1,0999999,サトウハナコ,3200\r\n2,,,,,2,4800\r\n"
66
74
  ```
75
+
76
+ ### 振込手数料を算出
77
+
78
+ ```ruby
79
+ transfer_fee = JapanNetBank::Transfer.fee_for(bank_code: '0123', amount: 30_000)
80
+ # or JNB::Transfer.fee_for(bank_code: '0123', amount: 30_000)
81
+
82
+ puts transfer_fee #=> 270
83
+ ```
@@ -5,6 +5,22 @@ module JapanNetBank
5
5
  class Transfer
6
6
  attr_reader :rows_count, :total_amount, :rows
7
7
 
8
+ FEE_TO_JAPAN_NET_BANK = 54
9
+ FEE_FOR_AMOUNT_UNDER_30_000 = 172
10
+ FEE_FOR_AMOUNT_AND_OVER_30_000 = 270
11
+
12
+ def self.fee_for(bank_code: nil, amount: nil)
13
+ raise ArgumentError if bank_code.nil? || amount.nil?
14
+
15
+ if bank_code == JapanNetBank::BANK_CODE
16
+ FEE_TO_JAPAN_NET_BANK
17
+ elsif amount < 30_000
18
+ FEE_FOR_AMOUNT_UNDER_30_000
19
+ elsif amount >= 30_000
20
+ FEE_FOR_AMOUNT_AND_OVER_30_000
21
+ end
22
+ end
23
+
8
24
  def initialize(rows)
9
25
  @rows = []
10
26
  @rows_count = 0
@@ -30,9 +46,9 @@ module JapanNetBank
30
46
  private
31
47
 
32
48
  def append_row(row)
49
+ @rows << JapanNetBank::Transfer::Row.new(row).to_a
33
50
  @rows_count += 1
34
51
  @total_amount += row[:amount].to_i
35
- @rows << JapanNetBank::Transfer::Row.new(row).to_a
36
52
  end
37
53
 
38
54
  def add_trailer_row
@@ -1,3 +1,3 @@
1
1
  module JapanNetBank
2
- VERSION = "0.0.2"
2
+ VERSION = "0.0.3"
3
3
  end
@@ -1,6 +1,7 @@
1
1
  require "japan_net_bank/version"
2
2
 
3
3
  module JapanNetBank
4
+ BANK_CODE = '0033'
4
5
  end
5
6
 
6
7
  JNB = JapanNetBank
@@ -27,6 +27,31 @@ describe JapanNetBank::Transfer do
27
27
  let(:rows) { [row_hash1, row_hash2] }
28
28
  let(:transfer) { JapanNetBank::Transfer.new(rows) }
29
29
 
30
+ describe 'self.fee_for' do
31
+ context 'ジャパンネット銀行への振込のとき' do
32
+ it '振込手数料を取得できる' do
33
+ transfer_fee = JapanNetBank::Transfer.fee_for(bank_code: JapanNetBank::BANK_CODE, amount: 3200)
34
+ expect(transfer_fee).to eq JapanNetBank::Transfer::FEE_TO_JAPAN_NET_BANK
35
+ end
36
+ end
37
+
38
+ context 'ジャパンネット銀行以外への振込のとき' do
39
+ context '30,000円未満の振込のとき' do
40
+ it '振込手数料を取得できる' do
41
+ transfer_fee = JapanNetBank::Transfer.fee_for(bank_code: '0123', amount: 29_999)
42
+ expect(transfer_fee).to eq JapanNetBank::Transfer::FEE_FOR_AMOUNT_UNDER_30_000
43
+ end
44
+ end
45
+
46
+ context '30,000円以上の振込のとき' do
47
+ it '振込手数料を取得できる' do
48
+ transfer_fee = JapanNetBank::Transfer.fee_for(bank_code: '0123', amount: 30_000)
49
+ expect(transfer_fee).to eq JapanNetBank::Transfer::FEE_FOR_AMOUNT_AND_OVER_30_000
50
+ end
51
+ end
52
+ end
53
+ end
54
+
30
55
  describe '#initialize' do
31
56
  context '振込データが正しいとき' do
32
57
  it 'トレーラー行が追加されたデータを生成できる' do
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: japan_net_bank
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.0.2
4
+ version: 0.0.3
5
5
  platform: ruby
6
6
  authors:
7
7
  - INOUE Takuya
8
8
  autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2014-06-24 00:00:00.000000000 Z
11
+ date: 2014-06-26 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: activemodel