japan_net_bank 0.0.2 → 0.0.3

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
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