bankserv 0.4.7 → 0.4.8

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.
Files changed (30) hide show
  1. data/lib/bankserv/account_holder_verification.rb +0 -15
  2. data/lib/bankserv/credit.rb +0 -13
  3. data/lib/bankserv/debit.rb +0 -11
  4. data/lib/bankserv/eft.rb +0 -4
  5. data/lib/bankserv/service.rb +16 -1
  6. data/lib/bankserv/transmission/document.rb +0 -2
  7. data/lib/bankserv/transmission/input_document.rb +17 -3
  8. data/lib/bankserv/transmission/reply_document.rb +1 -1
  9. data/lib/bankserv/transmission/set/account_holder_verification.rb +11 -5
  10. data/lib/bankserv/transmission/set/account_holder_verification_output.rb +1 -4
  11. data/lib/bankserv/transmission/set/eft_redirect.rb +1 -1
  12. data/lib/bankserv/transmission/set/eft_unpaid.rb +1 -4
  13. data/lib/bankserv/transmission/set/reply.rb +7 -3
  14. data/lib/bankserv/version.rb +1 -1
  15. data/lib/generators/active_record/templates/migration.rb +0 -3
  16. data/spec/examples/ahv_input_file.txt +2 -2
  17. data/spec/examples/ahv_output_file.txt +3 -3
  18. data/spec/examples/credit_eft_input.txt +1 -1
  19. data/spec/examples/debit_eft_input_file.txt +1 -1
  20. data/spec/examples/reply/rejected_transmission.txt +1 -1
  21. data/spec/examples/reply/reply_file.txt +1 -1
  22. data/spec/internal/db/schema.rb +0 -3
  23. data/spec/lib/bankserv/account_holder_verification_spec.rb +0 -5
  24. data/spec/lib/bankserv/credit_spec.rb +0 -9
  25. data/spec/lib/bankserv/debit_spec.rb +0 -9
  26. data/spec/lib/bankserv/transmission/input_document_spec.rb +14 -8
  27. data/spec/lib/bankserv/transmission/output_document_spec.rb +24 -36
  28. data/spec/lib/bankserv/transmission/reply_document_spec.rb +16 -4
  29. data/spec/lib/bankserv/transmission/set/account_holder_verification_spec.rb +18 -11
  30. metadata +16 -16
@@ -11,17 +11,6 @@ module Bankserv
11
11
  scope :internal, where(internal: true)
12
12
  scope :external, where(internal: false)
13
13
 
14
- after_create :generate_internal_user_ref
15
-
16
- def generate_internal_user_ref
17
- self.internal_user_ref = Bankserv::AccountHolderVerification.generate_reference_number(self)
18
- save!
19
- end
20
-
21
- def self.generate_reference_number(ahv)
22
- "AHV#{ahv.id}"
23
- end
24
-
25
14
  def self.service
26
15
  Bankserv::AHVService.where(active: true).last
27
16
  end
@@ -30,10 +19,6 @@ module Bankserv
30
19
  self.where(:user_ref => reference)
31
20
  end
32
21
 
33
- def self.for_internal_reference(reference)
34
- self.where(:internal_user_ref => reference)
35
- end
36
-
37
22
  def self.build!(options)
38
23
  bank_account = BankAccount.new(options.delete(:bank_account))
39
24
  is_internal = bank_account.branch_code == self.service.config[:internal_branch_code]
@@ -9,8 +9,6 @@ module Bankserv
9
9
  belongs_to :bank_account, :foreign_key => 'bankserv_bank_account_id'
10
10
  belongs_to :request, :foreign_key => 'bankserv_request_id'
11
11
 
12
- after_create :generate_internal_user_ref
13
-
14
12
  def self.bankserv_service
15
13
  Bankserv::CreditService.where(active: true).last
16
14
  end
@@ -19,19 +17,10 @@ module Bankserv
19
17
  Bankserv::Credit.bankserv_service
20
18
  end
21
19
 
22
- def generate_internal_user_ref
23
- self.internal_user_ref = "CREDIT#{id}"
24
- save!
25
- end
26
-
27
20
  def self.for_reference(reference)
28
21
  self.where(:user_ref => reference)
29
22
  end
30
23
 
31
- def self.for_internal_reference(reference)
32
- self.where(:internal_user_ref => reference)
33
- end
34
-
35
24
  def new?
36
25
  status == "new"
37
26
  end
@@ -74,7 +63,5 @@ module Bankserv
74
63
  self.bank_account
75
64
  end
76
65
  end
77
-
78
66
  end
79
-
80
67
  end
@@ -9,8 +9,6 @@ module Bankserv
9
9
  belongs_to :bank_account, :foreign_key => 'bankserv_bank_account_id'
10
10
  belongs_to :request, :foreign_key => 'bankserv_request_id'
11
11
 
12
- after_create :generate_internal_user_ref
13
-
14
12
  def self.bankserv_service
15
13
  Bankserv::DebitService.where(active: true).last
16
14
  end
@@ -19,11 +17,6 @@ module Bankserv
19
17
  Bankserv::Debit.bankserv_service
20
18
  end
21
19
 
22
- def generate_internal_user_ref
23
- self.internal_user_ref = "DEBIT#{id}"
24
- save!
25
- end
26
-
27
20
  def standard?
28
21
  record_type == "standard"
29
22
  end
@@ -54,10 +47,6 @@ module Bankserv
54
47
  self.where(:user_ref => reference)
55
48
  end
56
49
 
57
- def self.for_internal_reference(reference)
58
- self.where(:internal_user_ref => reference)
59
- end
60
-
61
50
  def process_response(data)
62
51
  save_data = if data[:response_status] == 'unpaid'
63
52
  {
@@ -85,9 +85,5 @@ module Bankserv
85
85
  Debit.for_reference(reference) + Credit.for_reference(reference)
86
86
  end
87
87
 
88
- def self.for_internal_reference(reference)
89
- Debit.for_internal_reference(reference) + Credit.for_internal_reference(reference)
90
- end
91
-
92
88
  end
93
89
  end
@@ -4,6 +4,8 @@ module Bankserv
4
4
 
5
5
  has_many :requests
6
6
  serialize :config
7
+
8
+ scope :for_client_code, lambda {|client_code| where(client_code: client_code)}
7
9
 
8
10
  def self.register(params)
9
11
  s = new
@@ -54,6 +56,11 @@ module Bankserv
54
56
  def can_transmit?
55
57
  false
56
58
  end
59
+
60
+ def update_transmission_number!
61
+ config[:transmission_number] = (config[:transmission_number].to_i + 1).to_s
62
+ save!
63
+ end
57
64
 
58
65
  end
59
66
 
@@ -90,7 +97,15 @@ module Bankserv
90
97
 
91
98
  def can_transmit?
92
99
  true
93
- end
100
+ end
101
+
102
+ def has_work?
103
+ if self.config[:internal]
104
+ Bankserv::AccountHolderVerification.internal.unprocessed.count > 0
105
+ else
106
+ Bankserv::AccountHolderVerification.external.unprocessed.count > 0
107
+ end
108
+ end
94
109
  end
95
110
 
96
111
  class StatementService < Service
@@ -38,7 +38,5 @@ module Bankserv
38
38
  def set_with_generation_number(generation_number)
39
39
  sets.select{|set| set.generation_number == generation_number}.first
40
40
  end
41
-
42
41
  end
43
-
44
42
  end
@@ -37,6 +37,10 @@ class Bankserv::InputDocument < Bankserv::Document
37
37
  def self.has_test_work?
38
38
  sets_with_test_work.any?
39
39
  end
40
+
41
+ def accepted?
42
+ reply_status == "ACCEPTED"
43
+ end
40
44
 
41
45
  def self.generate!(bankserv_service)
42
46
  if bankserv_service.is_test_env?
@@ -49,7 +53,14 @@ class Bankserv::InputDocument < Bankserv::Document
49
53
  options.merge! rec_status: bankserv_service.config[:transmission_status]
50
54
  options.merge! client_code: bankserv_service.client_code
51
55
  options.merge! client_name: bankserv_service.config[:client_name]
52
- options.merge! th_for_use_of_ld_user: ""
56
+ options.merge! th_for_use_of_ld_user: bankserv_service.config[:transmission_number]
57
+
58
+ if bankserv_service.config.has_key? :internal
59
+ # swap the internal status and check if the service has any work.
60
+ bankserv_service.config[:internal] = !bankserv_service.config[:internal]
61
+ bankserv_service.save
62
+ return unless bankserv_service.has_work?
63
+ end
53
64
 
54
65
  transmission_status = bankserv_service.config[:transmission_status]
55
66
  raise "Transmission status not specified" if transmission_status.nil?
@@ -75,8 +86,11 @@ class Bankserv::InputDocument < Bankserv::Document
75
86
  input_sets.select!{|s| s.bankserv_service.client_code == bankserv_service.client_code}
76
87
  return unless input_sets.count > 0
77
88
 
78
- input_sets.each do |set|
79
- document.set.sets << set.generate(rec_status: document.rec_status)
89
+ input_sets.each do |set|
90
+ hash = {rec_status: document.rec_status}
91
+ hash.merge!(internal: bankserv_service.config[:internal]) if bankserv_service.config.has_key?(:internal)
92
+
93
+ document.set.sets << set.generate(hash)
80
94
  document.set.sets[-1].set = document.set # whaaaaaa?
81
95
  end
82
96
 
@@ -19,7 +19,7 @@ class Bankserv::ReplyDocument < Bankserv::Document
19
19
 
20
20
  def process!
21
21
  raise "Document already processed" if processed?
22
-
22
+
23
23
  self.set.process
24
24
  self.processed = true
25
25
  self.save
@@ -4,9 +4,12 @@ module Bankserv
4
4
  class AccountHolderVerification < Set
5
5
 
6
6
  before_create :set_header, :set_trailer, :decorate_records
7
+
8
+ attr_accessor :department_code
7
9
 
8
10
  def self.generate(options = {})
9
- [:internal, :external].collect do |type|
11
+ arr = options[:internal] ? [:internal] : [:external]
12
+ arr.collect do |type|
10
13
  ahvs = Bankserv::AccountHolderVerification.unprocessed.send(type)
11
14
 
12
15
  if options[:rec_status] == "L"
@@ -17,7 +20,7 @@ module Bankserv
17
20
 
18
21
  if ahvs.count > 0
19
22
  set = self.new
20
- set.build_header
23
+ set.build_header(type: type)
21
24
  ahvs.each{|ahv| set.build_transaction(ahv)}
22
25
  set.build_trailer
23
26
  set
@@ -46,7 +49,7 @@ module Bankserv
46
49
  id_number: ahv.bank_account.id_number,
47
50
  initials: ahv.bank_account.initials,
48
51
  surname: ahv.bank_account.account_name,
49
- user_ref: ahv.internal_user_ref
52
+ user_ref: ahv.user_ref
50
53
  )
51
54
 
52
55
  record_data.merge!(branch_code: ahv.bank_account.branch_code) if ahv.external?
@@ -70,9 +73,13 @@ module Bankserv
70
73
  end
71
74
 
72
75
  def set_header
76
+ type = header[:data].delete(:type)
77
+ department_code = "AHVEXT"
78
+ department_code = "AHVINT" if type == :internal
79
+
73
80
  self.generation_number = bankserv_service.reserve_generation_number!.to_s
74
81
  header.data[:gen_no] = generation_number
75
- header.data[:dept_code] = bankserv_service.config[:department_code]
82
+ header.data[:dept_code] = department_code
76
83
  end
77
84
 
78
85
  def set_trailer
@@ -81,6 +88,5 @@ module Bankserv
81
88
  end
82
89
 
83
90
  end
84
-
85
91
  end
86
92
  end
@@ -6,12 +6,9 @@ module Bankserv
6
6
 
7
7
  def process
8
8
  transactions.each do |transaction|
9
- Bankserv::AccountHolderVerification.for_internal_reference(transaction.reference).first.process_response(transaction.data)
9
+ Bankserv::AccountHolderVerification.for_reference(transaction.reference).first.process_response(transaction.data)
10
10
  end
11
11
  end
12
-
13
12
  end
14
-
15
13
  end
16
-
17
14
  end
@@ -6,7 +6,7 @@ module Bankserv
6
6
 
7
7
  def process
8
8
  transactions.each do |transaction|
9
- eft = Bankserv::Eft.for_internal_reference(transaction.reference).first
9
+ eft = Bankserv::Eft.for_reference(transaction.reference).first
10
10
  eft.process_response(transaction.data.merge(response_status: 'redirect')) if eft
11
11
  end
12
12
  end
@@ -6,13 +6,10 @@ module Bankserv
6
6
 
7
7
  def process
8
8
  transactions.each do |transaction|
9
- eft = Bankserv::Eft.for_internal_reference(transaction.reference).first
9
+ eft = Bankserv::Eft.for_reference(transaction.reference).first
10
10
  eft.process_response(transaction.data.merge(response_status: 'unpaid')) if eft
11
11
  end
12
12
  end
13
-
14
13
  end
15
-
16
14
  end
17
-
18
15
  end
@@ -13,6 +13,13 @@ module Bankserv
13
13
  document = Bankserv::InputDocument.for_transmission_number(transaction.data[:transmission_number])
14
14
  document.reply_status = transaction.data[:transmission_status]
15
15
  document.save!
16
+
17
+ if document.accepted?
18
+ Bankserv::Service.for_client_code(document.client_code).active.each do |service|
19
+ service.update_transmission_number!
20
+ end
21
+ end
22
+
16
23
  when "transmission_rejected_reason"
17
24
  document.error = {
18
25
  code: transaction.data[:error_code],
@@ -43,9 +50,6 @@ module Bankserv
43
50
  end
44
51
  end
45
52
  end
46
-
47
53
  end
48
-
49
54
  end
50
-
51
55
  end
@@ -1,3 +1,3 @@
1
1
  module Bankserv
2
- VERSION = "0.4.7"
2
+ VERSION = "0.4.8"
3
3
  end
@@ -67,7 +67,6 @@ class CreateBankservTables < ActiveRecord::Migration
67
67
  t.string :status, :default => "new"
68
68
  t.text :response
69
69
  t.string :user_ref
70
- t.string :internal_user_ref
71
70
  t.timestamps
72
71
  end
73
72
 
@@ -81,7 +80,6 @@ class CreateBankservTables < ActiveRecord::Migration
81
80
  t.string :status, :default => "new"
82
81
  t.text :response
83
82
  t.string :user_ref
84
- t.string :internal_user_ref
85
83
  t.timestamps
86
84
  end
87
85
 
@@ -95,7 +93,6 @@ class CreateBankservTables < ActiveRecord::Migration
95
93
  t.string :status, :default => "new"
96
94
  t.text :response
97
95
  t.string :user_ref
98
- t.string :internal_user_ref
99
96
  t.timestamps
100
97
  end
101
98
 
@@ -1,5 +1,5 @@
1
- 000L2009070302236TEST 000000000000
2
- 030L0000001000001
1
+ 000L2009070302236TEST 000000000000 0
2
+ 030L0000001AHVINT
3
3
  031L00000010000000010944025246703085829086M CHAUKE 00000000AHV1
4
4
  031L00000020000000029684746696103120039082A VAN MOLENDORF 00000000AHV2
5
5
  031L00000030000000024920081778801261110087U NKWEBA 00000000AHV3
@@ -1,7 +1,7 @@
1
1
  000L2009070302236TEST 00000001000000
2
2
  030L0000001000001
3
- 031L00000010000000010944025246703085829086M CHAUKE 00000000AHV1
4
- 031L00000020000000029684746696103120039082A VAN MOLENDORF 00020304AHV2
5
- 031L00000030000000024920081778801261110087U NKWEBA 00000000AHV3
3
+ 031L00000010000000010944025246703085829086M CHAUKE 00000000149505000000000223600000008000
4
+ 031L00000020000000029684746696103120039082A VAN MOLENDORF 00020304198841000000000223600000000000
5
+ 031L00000030000000024920081778801261110087U NKWEBA 00000000149205000000000223605000700000
6
6
  039L0000003000000006554885370
7
7
  999L000000007
@@ -1,4 +1,4 @@
1
- 000L2008080800986TESTTEST 000084600000
1
+ 000L2008080800986TESTTEST 000084600000 846
2
2
  020L0499990808080808080808080808080000780846BATCH YY
3
3
  020L1063200504068123456999900007805002100081136250100001500000080808880 TESTTEST _2055185_PAY USER DEWEY ASSOCIATES 00000000000000000000 21
4
4
  020L1063200504068123456999900007963200504051717311100000542380080808880 TESTTEST _2055184_PAY USER SURE SLIM WELLNESS CLINIC SA 00000000000000000000 21
@@ -1,4 +1,4 @@
1
- 000T2004052400010LDC USER 10 AFRICA (PTY) 000062100000
1
+ 000T2004052400010LDC USER 10 AFRICA (PTY) 000062100000 621
2
2
  001T0495340405240405250405240405250000010037CORPSSV
3
3
  001T5063200504053538939953400000163200501019611899100000001000040524440000ALIMITTST SPP 1040524 01 HENNIE DU TOIT 00000000000000000000 21
4
4
  001T5063200504053538939953400000263200501019801892100000002000040524440000ALIMITTST SPP 1040524 02 TYRONE DREYDEN 00000000000000000000 21
@@ -1,4 +1,4 @@
1
- 000T2004052400000LCD USER 10 AFRICA (PTY) 000012300010
1
+ 000T2004052400000LCD USER 10 AFRICA (PTY) 000012300010 123
2
2
  900T000 TRANSMISSION 00010-0000621 REJECTED
3
3
  901T000 12345-HI THIS IS ERROR
4
4
  900T001 ACB USER SET 9534-0000037-000016 REJECTED
@@ -1,4 +1,4 @@
1
- 000T2004052400000LCD USER 10 AFRICA (PTY) 000012300010
1
+ 000T2004052400000LCD USER 10 AFRICA (PTY) 000012300010 123
2
2
  900T000 TRANSMISSION 00010-0000621 ACCEPTED
3
3
  900T001 ACB USER SET 9534-0000037-000016 ACCEPTED
4
4
  900T001 ACB USER SET 9534-0000038-000032 ACCEPTED
@@ -66,7 +66,6 @@ ActiveRecord::Schema.define do
66
66
  t.string :status, :default => "new"
67
67
  t.text :response
68
68
  t.string :user_ref
69
- t.string :internal_user_ref
70
69
  t.timestamps
71
70
  end
72
71
 
@@ -80,7 +79,6 @@ ActiveRecord::Schema.define do
80
79
  t.string :status, :default => "new"
81
80
  t.text :response
82
81
  t.string :user_ref
83
- t.string :internal_user_ref
84
82
  t.timestamps
85
83
  end
86
84
 
@@ -94,7 +92,6 @@ ActiveRecord::Schema.define do
94
92
  t.string :status, :default => "new"
95
93
  t.text :response
96
94
  t.string :user_ref
97
- t.string :internal_user_ref
98
95
  t.timestamps
99
96
  end
100
97
 
@@ -70,11 +70,6 @@ describe Bankserv::AccountHolderVerification do
70
70
  ahv.should be_external
71
71
  end
72
72
 
73
- it "should generate a unique internal reference" do
74
- @ahv_service.request(@hash)
75
- Bankserv::AccountHolderVerification.last.internal_user_ref.should match /AHV[0-9]+/
76
- end
77
-
78
73
  end
79
74
 
80
75
  context "when processing an account holder verification response" do
@@ -2,15 +2,6 @@ require 'spec_helper'
2
2
 
3
3
  describe Bankserv::Debit do
4
4
 
5
- context "creating a new credit" do
6
-
7
- it "should generate a unique internal reference" do
8
- create(:credit)
9
- Bankserv::Credit.last.internal_user_ref.should match /CREDIT[0-9]+/
10
- end
11
-
12
- end
13
-
14
5
  context "queuing a batch of credit orders" do
15
6
 
16
7
  before(:all) do
@@ -2,15 +2,6 @@ require 'spec_helper'
2
2
 
3
3
  describe Bankserv::Debit do
4
4
 
5
- context "creating a new debit" do
6
-
7
- it "should generate a unique internal reference" do
8
- create(:debit)
9
- Bankserv::Debit.last.internal_user_ref.should match /DEBIT[0-9]+/
10
- end
11
-
12
- end
13
-
14
5
  context "queuing a batch of debit orders" do
15
6
 
16
7
  before(:all) do
@@ -7,7 +7,7 @@ describe Bankserv::InputDocument do
7
7
 
8
8
  before(:each) do
9
9
  tear_it_down
10
- bankserv_service = Bankserv::AHVService.register(client_code: '2236', internal_branch_code: '632005', department_code: "000001", client_name: "TEST", client_abbreviated_name: 'TESTTEST', generation_number: 1, transmission_status: "L", transmission_number: "0")
10
+ bankserv_service = Bankserv::AHVService.register(client_code: '2236', internal_branch_code: '632005', department_code: "000001", client_name: "TEST", client_abbreviated_name: 'TESTTEST', generation_number: 1, transmission_status: "L", transmission_number: "0", internal: false)
11
11
 
12
12
  ahv_attributes = {
13
13
  bank_account: {
@@ -18,13 +18,12 @@ describe Bankserv::InputDocument do
18
18
  initials: "M",
19
19
  account_name: "CHAUKE"
20
20
  },
21
- user_ref: "149505000060000223600000000000"
21
+ user_ref: "AHV1"
22
22
  }
23
23
 
24
24
  bankserv_service.request(type: 'ahv', data: ahv_attributes)
25
25
  ahv = Bankserv::AccountHolderVerification.last
26
26
  ahv.internal = true
27
- ahv.internal_user_ref = "AHV1"
28
27
  ahv.save!
29
28
 
30
29
  ahv_attributes = {
@@ -36,13 +35,12 @@ describe Bankserv::InputDocument do
36
35
  initials: "A",
37
36
  account_name: "VAN MOLENDORF"
38
37
  },
39
- user_ref: "198841000060000223600000000000"
38
+ user_ref: "AHV2"
40
39
  }
41
40
 
42
41
  bankserv_service.request(type: 'ahv', data: ahv_attributes)
43
42
  ahv = Bankserv::AccountHolderVerification.last
44
43
  ahv.internal = true
45
- ahv.internal_user_ref = "AHV2"
46
44
  ahv.save!
47
45
 
48
46
  ahv_attributes = {
@@ -54,13 +52,12 @@ describe Bankserv::InputDocument do
54
52
  initials: "U",
55
53
  account_name: "NKWEBA"
56
54
  },
57
- user_ref: "149205000060000223600000000000"
55
+ user_ref: "AHV3"
58
56
  }
59
57
 
60
58
  bankserv_service.request(type: 'ahv', data: ahv_attributes)
61
59
  ahv = Bankserv::AccountHolderVerification.last
62
60
  ahv.internal = true
63
- ahv.internal_user_ref = "AHV3"
64
61
  ahv.save!
65
62
 
66
63
  t = Time.local(2009, 7, 3, 10, 5, 0)
@@ -80,7 +77,6 @@ describe Bankserv::InputDocument do
80
77
 
81
78
  string = File.open("./spec/examples/ahv_input_file.txt", "rb").read
82
79
  options = Absa::H2h::Transmission::Document.hash_from_s(string, 'input')
83
-
84
80
  hash.should == options
85
81
  end
86
82
 
@@ -88,6 +84,16 @@ describe Bankserv::InputDocument do
88
84
  @document.mark_processed!
89
85
  @document.processed.should be_true
90
86
  end
87
+
88
+ it "should mark the ahv services internal status to true" do
89
+ Bankserv::AHVService.active.first.config[:internal].should be_true
90
+ end
91
+
92
+ it "should not build a document if no sets could be generated" do
93
+ Bankserv::Transmission::UserSet::Document.all.count.should == 1
94
+ Bankserv::InputDocument.generate!(Bankserv::AHVService.active.first)
95
+ Bankserv::Transmission::UserSet::Document.all.count.should == 1
96
+ end
91
97
  end
92
98
 
93
99
  context "building a transmission document two batches of debit order requests" do
@@ -67,8 +67,6 @@ describe Bankserv::OutputDocument do
67
67
  internal: true
68
68
  )
69
69
 
70
- ahv1.save!
71
- ahv1.internal_user_ref = "AHV1"
72
70
  ahv1.save!
73
71
 
74
72
  ahv2 = Bankserv::AccountHolderVerification.new(
@@ -85,9 +83,7 @@ describe Bankserv::OutputDocument do
85
83
  )
86
84
 
87
85
  ahv2.save!
88
- ahv2.internal_user_ref = "AHV2"
89
- ahv2.save!
90
-
86
+
91
87
  ahv3 = Bankserv::AccountHolderVerification.new(
92
88
  bank_account: Bankserv::BankAccount.new(
93
89
  account_number: "2492008177",
@@ -101,8 +97,6 @@ describe Bankserv::OutputDocument do
101
97
  internal: true
102
98
  )
103
99
 
104
- ahv3.save!
105
- ahv3.internal_user_ref = "AHV3"
106
100
  ahv3.save!
107
101
 
108
102
  Bankserv::AccountHolderVerification.for_reference("149505000000000223600000008000").first.completed?.should be_false
@@ -158,38 +152,32 @@ describe Bankserv::OutputDocument do
158
152
 
159
153
  it "should be able to process the document, updating any related debit or credit requests" do
160
154
  debits = []
161
- debits << Bankserv::Debit.create!(record_type: "standard", amount: 7627, batch_id: 1, user_ref: "A LDC TESTY PREMIE AL0597626X5")
162
- debits << Bankserv::Debit.create!(record_type: "standard", amount: 9964, batch_id: 1, user_ref: "A LDC TESTY PREMIE AL0394056X3")
163
- debits << Bankserv::Debit.create!(record_type: "standard", amount: 10851, batch_id: 2, user_ref: "A LDC TESTY PREMIE AL0620127X9")
164
- debits << Bankserv::Debit.create!(record_type: "standard", amount: 31700, batch_id: 3, user_ref: "A LDC TESTM PREMIE AL0876267X2")
165
- debits << Bankserv::Debit.create!(record_type: "standard", amount: 13755, batch_id: 3, user_ref: "A LDC TESTY PREMIE AL0699555X1")
166
- debits << Bankserv::Debit.create!(record_type: "standard", amount: 22935, batch_id: 4, user_ref: "A LDC TESTSALARIS BL ROODT")
167
- debits << Bankserv::Debit.create!(record_type: "standard", amount: 15198, batch_id: 4, user_ref: "A LDC TESTKREDITEUR L0844622KL")
168
- debits << Bankserv::Debit.create!(record_type: "standard", amount: 12720, batch_id: 4, user_ref: "A LDC TESTVERSEKERING 01BLOR3")
169
- debits << Bankserv::Debit.create!(record_type: "standard", amount: 9345, batch_id: 4, user_ref: "A LDC TESTSALARIS SOEKIE 12345")
170
- debits << Bankserv::Debit.create!(record_type: "standard", amount: 13420, batch_id: 4, user_ref: "A LDC TESTSALARIS BL ROODT")
171
- debits << Bankserv::Debit.create!(record_type: "standard", amount: 15300, batch_id: 4, user_ref: "A LDC TESTSALARIS BL ROODT")
172
- debits << Bankserv::Debit.create!(record_type: "standard", amount: 7790, batch_id: 4, user_ref: "A LDC TESTSANLAM AL0849 61X3")
173
- debits << Bankserv::Debit.create!(record_type: "standard", amount: 19698, batch_id: 4, user_ref: "A LDC TESTSOUTHERN LIFE 4627K5")
174
- debits << Bankserv::Debit.create!(record_type: "standard", amount: 5000, batch_id: 4, user_ref: "A LDC TESTHUISVERBAND 98173587")
175
- debits << Bankserv::Debit.create!(record_type: "standard", amount: 10420, batch_id: 4, user_ref: "A LDC TESTPERSOONLIKE LENING")
176
- debits << Bankserv::Debit.create!(record_type: "standard", amount: 10000, batch_id: 4, user_ref: "A LDC TESTSPAARKLUB OKT 2001")
177
- debits << Bankserv::Debit.create!(record_type: "standard", amount: 15000, batch_id: 4, user_ref: "A LDC TESTY PREMIE XAZAP1163V5")
178
- debits << Bankserv::Debit.create!(record_type: "standard", amount: 10000, batch_id: 4, user_ref: "A LDC TESTQ PREMIE BLASNK158X4")
179
- debits << Bankserv::Debit.create!(record_type: "standard", amount: 16150, batch_id: 4, user_ref: "A LDC TESTY PREMIE ALONE6728X1")
180
- debits << Bankserv::Debit.create!(record_type: "standard", amount: 12300, batch_id: 4, user_ref: "A LDC TESTM PREMIUM LZANA602F3")
181
- debits << Bankserv::Debit.create!(record_type: "standard", amount: 20000, batch_id: 4, user_ref: "A LDC TESTY PREMIE SP0001453X0")
182
- debits << Bankserv::Debit.create!(record_type: "standard", amount: 6287, batch_id: 4, user_ref: "A LDC TESTW INSTALMENT ND263XZ")
183
- debits << Bankserv::Debit.create!(record_type: "standard", amount: 8954, batch_id: 4, user_ref: "A LDC TESTY PROTECTION 9697523")
155
+ debits << Bankserv::Debit.create!(record_type: "standard", amount: 7627, batch_id: 1, user_ref: "DEBIT1")
156
+ debits << Bankserv::Debit.create!(record_type: "standard", amount: 9964, batch_id: 1, user_ref: "DEBIT2")
157
+ debits << Bankserv::Debit.create!(record_type: "standard", amount: 10851, batch_id: 2, user_ref: "DEBIT3")
158
+ debits << Bankserv::Debit.create!(record_type: "standard", amount: 31700, batch_id: 3, user_ref: "DEBIT4")
159
+ debits << Bankserv::Debit.create!(record_type: "standard", amount: 13755, batch_id: 3, user_ref: "DEBIT5")
160
+ debits << Bankserv::Debit.create!(record_type: "standard", amount: 22935, batch_id: 4, user_ref: "DEBIT6")
161
+ debits << Bankserv::Debit.create!(record_type: "standard", amount: 15198, batch_id: 4, user_ref: "DEBIT7")
162
+ debits << Bankserv::Debit.create!(record_type: "standard", amount: 12720, batch_id: 4, user_ref: "DEBIT8")
163
+ debits << Bankserv::Debit.create!(record_type: "standard", amount: 9345, batch_id: 4, user_ref: "DEBIT9")
164
+ debits << Bankserv::Debit.create!(record_type: "standard", amount: 13420, batch_id: 4, user_ref: "DEBIT10")
165
+ debits << Bankserv::Debit.create!(record_type: "standard", amount: 15300, batch_id: 4, user_ref: "DEBIT11")
166
+ debits << Bankserv::Debit.create!(record_type: "standard", amount: 7790, batch_id: 4, user_ref: "DEBIT12")
167
+ debits << Bankserv::Debit.create!(record_type: "standard", amount: 19698, batch_id: 4, user_ref: "DEBIT13")
168
+ debits << Bankserv::Debit.create!(record_type: "standard", amount: 5000, batch_id: 4, user_ref: "DEBIT14")
169
+ debits << Bankserv::Debit.create!(record_type: "standard", amount: 10420, batch_id: 4, user_ref: "DEBIT15")
170
+ debits << Bankserv::Debit.create!(record_type: "standard", amount: 10000, batch_id: 4, user_ref: "DEBIT16")
171
+ debits << Bankserv::Debit.create!(record_type: "standard", amount: 15000, batch_id: 4, user_ref: "DEBIT17")
172
+ debits << Bankserv::Debit.create!(record_type: "standard", amount: 10000, batch_id: 4, user_ref: "DEBIT18")
173
+ debits << Bankserv::Debit.create!(record_type: "standard", amount: 16150, batch_id: 4, user_ref: "DEBIT19")
174
+ debits << Bankserv::Debit.create!(record_type: "standard", amount: 12300, batch_id: 4, user_ref: "DEBIT20")
175
+ debits << Bankserv::Debit.create!(record_type: "standard", amount: 20000, batch_id: 4, user_ref: "DEBIT21")
176
+ debits << Bankserv::Debit.create!(record_type: "standard", amount: 6287, batch_id: 4, user_ref: "DEBIT22")
177
+ debits << Bankserv::Debit.create!(record_type: "standard", amount: 8954, batch_id: 4, user_ref: "DEBIT23")
184
178
 
185
179
  counter = 1
186
180
 
187
- debits.each do |debit|
188
- debit.internal_user_ref = "DEBIT#{counter}"
189
- debit.save!
190
- counter += 1
191
- end
192
-
193
181
  Bankserv::Debit.all.each{|debit| debit.completed?.should be_false}
194
182
  @document.process!
195
183
 
@@ -8,6 +8,7 @@ describe Bankserv::ReplyDocument do
8
8
  before(:all) do
9
9
  tear_it_down
10
10
  Bankserv::DebitService.register(client_code: '12346', client_name: "TESTTEST", client_abbreviated_name: 'TESTTEST', user_code: "9999", generation_number: 1, transmission_status: "L", transmission_number: "1")
11
+ Bankserv::CreditService.register(client_code: '12346', client_name: "TESTTEST", client_abbreviated_name: 'TESTTEST', user_code: "9999", generation_number: 1, transmission_status: "L", transmission_number: "1")
11
12
 
12
13
  @file_contents = File.open("./spec/examples/reply/reply_file.txt", "rb").read
13
14
  @options = Absa::H2h::Transmission::Document.hash_from_s(@file_contents, 'output')
@@ -34,7 +35,8 @@ describe Bankserv::ReplyDocument do
34
35
 
35
36
  before(:each) do
36
37
  tear_it_down
37
- Bankserv::DebitService.register(client_code: '12346', client_name: "TESTTEST", client_abbreviated_name: 'TESTTEST', user_code: "9999", generation_number: 1, transmission_status: "L", transmission_number: "1")
38
+ Bankserv::DebitService.register(client_code: '10', client_name: "TESTTEST", client_abbreviated_name: 'TESTTEST', user_code: "9999", generation_number: 1, transmission_status: "L", transmission_number: "1")
39
+ Bankserv::CreditService.register(client_code: '10', client_name: "TESTTEST", client_abbreviated_name: 'TESTTEST', user_code: "9999", generation_number: 1, transmission_status: "L", transmission_number: "1")
38
40
 
39
41
  @file_contents = File.open("./spec/examples/eft_input_with_2_sets.txt", "rb").read
40
42
  @input_document = Bankserv::InputDocument.store(@file_contents)
@@ -42,12 +44,11 @@ describe Bankserv::ReplyDocument do
42
44
  @file_contents = File.open("./spec/examples/reply/reply_file.txt", "rb").read
43
45
  @options = Absa::H2h::Transmission::Document.hash_from_s(@file_contents, 'output')
44
46
 
45
- @reply_document = Bankserv::OutputDocument.store(@file_contents)
47
+ @reply_document = Bankserv::ReplyDocument.store(@file_contents)
46
48
  end
47
49
 
48
50
  it "should mark the original input document as ACCEPTED if the transmission was accepted" do
49
51
  @input_document.reply_status.should be_nil
50
-
51
52
  @reply_document.process!
52
53
 
53
54
  @input_document.reload
@@ -62,6 +63,11 @@ describe Bankserv::ReplyDocument do
62
63
  set.reply_status.should == "ACCEPTED"
63
64
  end
64
65
  end
66
+
67
+ it "should update the tranmission number of the service" do
68
+ @reply_document.process!
69
+ Bankserv::DebitService.last.config[:transmission_number].should == "2"
70
+ end
65
71
 
66
72
  end
67
73
 
@@ -69,7 +75,8 @@ describe Bankserv::ReplyDocument do
69
75
 
70
76
  before(:all) do
71
77
  tear_it_down
72
- Bankserv::DebitService.register(client_code: '12346', client_name: "TESTTEST", client_abbreviated_name: 'TESTTEST', user_code: "9999", generation_number: 1, transmission_status: "L", transmission_number: "1")
78
+ Bankserv::DebitService.register(client_code: '10', client_name: "TESTTEST", client_abbreviated_name: 'TESTTEST', user_code: "9999", generation_number: 1, transmission_status: "L", transmission_number: "1")
79
+ Bankserv::CreditService.register(client_code: '10', client_name: "TESTTEST", client_abbreviated_name: 'TESTTEST', user_code: "9999", generation_number: 1, transmission_status: "L", transmission_number: "1")
73
80
 
74
81
  @file_contents = File.open("./spec/examples/eft_input_with_2_sets.txt", "rb").read
75
82
  @input_document = Bankserv::InputDocument.store(@file_contents)
@@ -82,6 +89,11 @@ describe Bankserv::ReplyDocument do
82
89
  @reply_document.process!
83
90
  @input_document.reload
84
91
  end
92
+
93
+ it "should not update the tranmission number of the services" do
94
+ Bankserv::DebitService.last.config[:transmission_number].should == "1"
95
+ Bankserv::CreditService.last.config[:transmission_number].should == "1"
96
+ end
85
97
 
86
98
  context "processing a transmission status record" do
87
99
  it "should mark the document's reply status as REJECTED" do
@@ -5,7 +5,7 @@ describe Bankserv::Transmission::UserSet::AccountHolderVerification do
5
5
 
6
6
  before(:all) do
7
7
  tear_it_down
8
- ahv_service = Bankserv::AHVService.register(client_code: '12345', internal_branch_code: '632005', department_code: "506", client_name: "TESTTEST", client_abbreviated_name: 'TESTTEST', generation_number: 1, transmission_status: "T", transmission_number: "1")
8
+ ahv_service = Bankserv::AHVService.register(client_code: '12345', internal_branch_code: '632005', department_code: "506", client_name: "TESTTEST", client_abbreviated_name: 'TESTTEST', generation_number: 1, transmission_status: "T", transmission_number: "1", internal: true)
9
9
 
10
10
  @ahv_list = [
11
11
  ahv_service.request(type: 'ahv', data: attributes_for(:internal_ahv).merge(bank_account: attributes_for(:internal_bank_account))),
@@ -21,20 +21,26 @@ describe Bankserv::Transmission::UserSet::AccountHolderVerification do
21
21
  it "should report when there are account holder verification requests that need to be processed" do
22
22
  Bankserv::Transmission::UserSet::AccountHolderVerification.has_test_work?.should be_true
23
23
  end
24
-
25
- it "should place internal and external account holder verifications into separate user sets" do
26
- sets = Bankserv::Transmission::UserSet::AccountHolderVerification.generate(rec_status: "T")
27
-
28
- sets.count.should == 2
24
+
25
+ it "should process the external account holder verifications" do
26
+ sets = Bankserv::Transmission::UserSet::AccountHolderVerification.generate(rec_status: "T", internal: false)
27
+
28
+ sets.count.should == 1
29
+ sets.first.transactions.count.should == 3
30
+ end
31
+
32
+ it "should process the internal account holder verifications" do
33
+ sets = Bankserv::Transmission::UserSet::AccountHolderVerification.generate(rec_status: "T", internal: true)
34
+
35
+ sets.count.should == 1
29
36
  sets.first.transactions.count.should == 2
30
- sets.last.transactions.count.should == 3
31
37
  end
32
38
 
33
39
  context "Building an account holder verification set" do
34
40
 
35
41
  before(:each) do
36
42
  tear_it_down
37
- ahv_service = Bankserv::AHVService.register(client_code: '12345', internal_branch_code: '632005', department_code: "506", client_name: "TESTTEST", client_abbreviated_name: 'TESTTEST', generation_number: 1, transmission_status: "T", transmission_number: "1")
43
+ ahv_service = Bankserv::AHVService.register(client_code: '12345', internal_branch_code: '632005', department_code: "506", client_name: "TESTTEST", client_abbreviated_name: 'TESTTEST', generation_number: 1, transmission_status: "T", transmission_number: "1", internal: false)
38
44
 
39
45
  @ahv_list = [
40
46
  ahv_service.request(type: 'ahv', data: attributes_for(:internal_ahv).merge(bank_account: attributes_for(:internal_bank_account))),
@@ -49,7 +55,7 @@ describe Bankserv::Transmission::UserSet::AccountHolderVerification do
49
55
  context "creating a header" do
50
56
 
51
57
  before(:each) do
52
- @set = Bankserv::Transmission::UserSet::AccountHolderVerification.generate(rec_status: "T").first
58
+ @set = Bankserv::Transmission::UserSet::AccountHolderVerification.generate(rec_status: "T", internal: true).first
53
59
  @set.save
54
60
  end
55
61
 
@@ -67,13 +73,14 @@ describe Bankserv::Transmission::UserSet::AccountHolderVerification do
67
73
 
68
74
  it "should store the specified department code" do
69
75
  @set.header.data.has_key?(:dept_code).should be_true
76
+ @set.header.data[:dept_code].should == "AHVINT"
70
77
  end
71
78
  end
72
79
 
73
80
  context "creating a trailer" do
74
81
 
75
82
  before(:each) do
76
- @set = Bankserv::Transmission::UserSet::AccountHolderVerification.generate(rec_status: "T").first
83
+ @set = Bankserv::Transmission::UserSet::AccountHolderVerification.generate(rec_status: "T", internal: true).first
77
84
  @set.save
78
85
  end
79
86
 
@@ -98,7 +105,7 @@ describe Bankserv::Transmission::UserSet::AccountHolderVerification do
98
105
  end
99
106
 
100
107
  it "should create a batch of transactions when the job begins" do
101
- batch = Bankserv::Transmission::UserSet::AccountHolderVerification.generate(rec_status: "T").first
108
+ batch = Bankserv::Transmission::UserSet::AccountHolderVerification.generate(rec_status: "T", internal: true).first
102
109
  batch.save
103
110
  batch.transactions.first.record_type.should == "internal_account_detail"
104
111
  end
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: bankserv
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.4.7
4
+ version: 0.4.8
5
5
  prerelease:
6
6
  platform: ruby
7
7
  authors:
@@ -10,11 +10,11 @@ authors:
10
10
  autorequire:
11
11
  bindir: bin
12
12
  cert_chain: []
13
- date: 2012-06-26 00:00:00.000000000Z
13
+ date: 2012-06-29 00:00:00.000000000Z
14
14
  dependencies:
15
15
  - !ruby/object:Gem::Dependency
16
16
  name: activesupport
17
- requirement: &70272531742720 !ruby/object:Gem::Requirement
17
+ requirement: &70159062700580 !ruby/object:Gem::Requirement
18
18
  none: false
19
19
  requirements:
20
20
  - - ! '>='
@@ -22,10 +22,10 @@ dependencies:
22
22
  version: '0'
23
23
  type: :runtime
24
24
  prerelease: false
25
- version_requirements: *70272531742720
25
+ version_requirements: *70159062700580
26
26
  - !ruby/object:Gem::Dependency
27
27
  name: activerecord
28
- requirement: &70272531742160 !ruby/object:Gem::Requirement
28
+ requirement: &70159062700000 !ruby/object:Gem::Requirement
29
29
  none: false
30
30
  requirements:
31
31
  - - ~>
@@ -33,10 +33,10 @@ dependencies:
33
33
  version: '3.0'
34
34
  type: :runtime
35
35
  prerelease: false
36
- version_requirements: *70272531742160
36
+ version_requirements: *70159062700000
37
37
  - !ruby/object:Gem::Dependency
38
38
  name: i18n
39
- requirement: &70272531741740 !ruby/object:Gem::Requirement
39
+ requirement: &70159062699300 !ruby/object:Gem::Requirement
40
40
  none: false
41
41
  requirements:
42
42
  - - ! '>='
@@ -44,10 +44,10 @@ dependencies:
44
44
  version: '0'
45
45
  type: :runtime
46
46
  prerelease: false
47
- version_requirements: *70272531741740
47
+ version_requirements: *70159062699300
48
48
  - !ruby/object:Gem::Dependency
49
49
  name: absa-h2h
50
- requirement: &70272531741060 !ruby/object:Gem::Requirement
50
+ requirement: &70159062698560 !ruby/object:Gem::Requirement
51
51
  none: false
52
52
  requirements:
53
53
  - - ~>
@@ -55,10 +55,10 @@ dependencies:
55
55
  version: 0.1.5
56
56
  type: :runtime
57
57
  prerelease: false
58
- version_requirements: *70272531741060
58
+ version_requirements: *70159062698560
59
59
  - !ruby/object:Gem::Dependency
60
60
  name: absa-esd
61
- requirement: &70272531740560 !ruby/object:Gem::Requirement
61
+ requirement: &70159062697860 !ruby/object:Gem::Requirement
62
62
  none: false
63
63
  requirements:
64
64
  - - ~>
@@ -66,10 +66,10 @@ dependencies:
66
66
  version: 0.0.3
67
67
  type: :runtime
68
68
  prerelease: false
69
- version_requirements: *70272531740560
69
+ version_requirements: *70159062697860
70
70
  - !ruby/object:Gem::Dependency
71
71
  name: absa-notify-me
72
- requirement: &70272531740100 !ruby/object:Gem::Requirement
72
+ requirement: &70159062697200 !ruby/object:Gem::Requirement
73
73
  none: false
74
74
  requirements:
75
75
  - - ~>
@@ -77,10 +77,10 @@ dependencies:
77
77
  version: 0.0.5
78
78
  type: :runtime
79
79
  prerelease: false
80
- version_requirements: *70272531740100
80
+ version_requirements: *70159062697200
81
81
  - !ruby/object:Gem::Dependency
82
82
  name: combustion
83
- requirement: &70272531739640 !ruby/object:Gem::Requirement
83
+ requirement: &70159062696640 !ruby/object:Gem::Requirement
84
84
  none: false
85
85
  requirements:
86
86
  - - ~>
@@ -88,7 +88,7 @@ dependencies:
88
88
  version: 0.3.1
89
89
  type: :development
90
90
  prerelease: false
91
- version_requirements: *70272531739640
91
+ version_requirements: *70159062696640
92
92
  description: ! "This engine allows users to inject requests into a queue to be processed.
93
93
  \n \n The queue handles bank account validations, credit payments,
94
94
  debit orders\n and collecting bank statements/notify me statements. "