bankserv 0.7.4 → 0.7.5
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.
data/lib/bankserv/service.rb
CHANGED
@@ -61,9 +61,14 @@ module Bankserv
|
|
61
61
|
false
|
62
62
|
end
|
63
63
|
|
64
|
+
def next_transmission_number
|
65
|
+
last_successful_submission = Bankserv::Document.where(type: 'input', client_code: self.client_code, reply_status: "ACCEPTED").last
|
66
|
+
(last_successful_submission.transmission_number.to_i + 1).to_s
|
67
|
+
end
|
68
|
+
|
64
69
|
def update_transmission_number!
|
65
70
|
last_successful_submission = Bankserv::Document.where(type: 'input', client_code: self.client_code, reply_status: "ACCEPTED").last
|
66
|
-
config[:transmission_number] = (last_successful_submission.transmission_number.to_i +
|
71
|
+
config[:transmission_number] = (last_successful_submission.transmission_number.to_i + 2).to_s #(config[:transmission_number].to_i + 1).to_s
|
67
72
|
save!
|
68
73
|
end
|
69
74
|
|
@@ -22,8 +22,12 @@ module Bankserv
|
|
22
22
|
input_document.save!
|
23
23
|
|
24
24
|
if input_document.accepted?
|
25
|
-
|
26
|
-
|
25
|
+
service.config[:transmission_number] = (transaction.data[:transmission_number].to_i + 1).to_s
|
26
|
+
service.save!
|
27
|
+
# service.reload
|
28
|
+
Bankserv::Service.for_client_code(input_document.client_code).active.each do |c_service|
|
29
|
+
c_service.config[:transmission_number] = (transaction.data[:transmission_number].to_i + 1).to_s
|
30
|
+
c_service.save!
|
27
31
|
end
|
28
32
|
end
|
29
33
|
|
@@ -59,7 +63,7 @@ module Bankserv
|
|
59
63
|
if service.is_a? Bankserv::CreditService
|
60
64
|
set = input_document.set_with_generation_number(transaction.data[:user_code_generation_number])
|
61
65
|
next if set.contra_records.empty?
|
62
|
-
user_ref = set.contra_records.first.
|
66
|
+
user_ref = set.contra_records.first.data[:user_ref].match(/CONTRA([0-9]*)/)[1]
|
63
67
|
request_id = Bankserv::Credit.where(user_ref: user_ref)[0].bankserv_request_id
|
64
68
|
|
65
69
|
Bankserv::Credit.where(bankserv_request_id: request_id).each do |credit|
|
@@ -81,7 +85,7 @@ module Bankserv
|
|
81
85
|
end
|
82
86
|
end
|
83
87
|
when "rejected_message"
|
84
|
-
if transaction.data[:
|
88
|
+
if transaction.data[:error_message].starts_with?("*** WARNING ONLY")
|
85
89
|
# Warning only
|
86
90
|
set = input_document.set_with_generation_number(transaction.data[:user_code_generation_number])
|
87
91
|
record = set.record_with_sequence_number(transaction.data[:user_sequence_number])
|
@@ -124,7 +128,7 @@ module Bankserv
|
|
124
128
|
next if set.contra_records.empty?
|
125
129
|
|
126
130
|
set = input_document.set_with_generation_number(transaction.data[:user_code_generation_number])
|
127
|
-
user_ref = set.contra_records.first.
|
131
|
+
user_ref = set.contra_records.first.data[:user_ref].match(/CONTRA([0-9]*)/)[1]
|
128
132
|
request_id = Bankserv::Credit.where(user_ref: user_ref)[0].bankserv_request_id
|
129
133
|
|
130
134
|
Bankserv::Credit.where(bankserv_request_id: request_id).each do |credit|
|
@@ -138,7 +142,7 @@ module Bankserv
|
|
138
142
|
|
139
143
|
if service.is_a? Bankserv::CreditService
|
140
144
|
set = input_document.set_with_generation_number(transaction.data[:user_code_generation_number])
|
141
|
-
user_ref = set.contra_records.first.
|
145
|
+
user_ref = set.contra_records.first.data[:user_ref].match(/CONTRA([0-9]*)/)[1]
|
142
146
|
request_id = Bankserv::Credit.where(user_ref: user_ref)[0].bankserv_request_id
|
143
147
|
|
144
148
|
Bankserv::Credit.where(bankserv_request_id: request_id).each do |credit|
|
data/lib/bankserv/version.rb
CHANGED
@@ -346,4 +346,52 @@ describe Bankserv::ReplyDocument do
|
|
346
346
|
Bankserv::Credit.where(status: 'warning').first.response.first[:error_code].should == "80"
|
347
347
|
end
|
348
348
|
end
|
349
|
+
|
350
|
+
context "Fix bug where transmission number not being updated after accepted reply file received" do
|
351
|
+
before(:all) do
|
352
|
+
@cs = Bankserv::CreditService.register(client_code: '04136', client_name: "RENTAL CONNECT PTY LTD", client_abbreviated_name: 'RAWSONPROP', user_code: "A855", generation_number: 6365, transmission_status: "L", transmission_number: "376", sequence_number: 57, active: true)
|
353
|
+
|
354
|
+
Bankserv::Document.create!(type: "input", set_id: 18242, processed: true, transmission_status: "L", rec_status: "L", transmission_number: "367", reply_status: "ACCEPTED", error: nil, created_at: "2014-07-25 15:10:24", updated_at: "2014-07-25 16:30:22", client_code: "04136", user_ref: "2426")
|
355
|
+
@file_contents = File.open("./spec/examples/input_long.txt", "rb").read
|
356
|
+
@input_document = Bankserv::InputDocument.store(@file_contents)
|
357
|
+
|
358
|
+
options = Absa::H2h::Transmission::Document.hash_from_s(@file_contents, 'input')
|
359
|
+
options[:data].each do |entry|
|
360
|
+
if entry[:data].count == 4
|
361
|
+
c = entry[:data].map {|x| x[:data]}
|
362
|
+
request = Bankserv::Request.create!({
|
363
|
+
type: "credit",
|
364
|
+
data: {
|
365
|
+
:type_of_service=>"BATCH",
|
366
|
+
:batches=>[{
|
367
|
+
:debit=>{:account_number=>c[2][:homing_account_number], :id_number=>"", :initials=>"", :account_name=>c[2][:homing_account_name], :branch_code=>c[2][:homing_branch], :account_type=>"cheque", :amount=>c[2][:amount], :user_ref=>c[2][:user_ref].gsub("RAWSONPROPCONTRA", ""), :action_date=>"2014-07-15".to_date},
|
368
|
+
:credit=>{:account_number=>c[1][:homing_account_number], :id_number=>"", :initials=>"", :account_name=>c[1][:homing_account_name], :branch_code=>c[1][:homing_branch], :account_type=>"cheque", :amount=>c[1][:amount], :user_ref=>c[1][:user_ref].gsub("RAWSONPROP", ""), :action_date=>"2014-07-15".to_date}
|
369
|
+
}]
|
370
|
+
}
|
371
|
+
})
|
372
|
+
|
373
|
+
request.service_id = @cs.id
|
374
|
+
request.save!
|
375
|
+
end
|
376
|
+
end
|
377
|
+
|
378
|
+
Bankserv::InputDocument.last.update_attributes(client_code: '04136')
|
379
|
+
|
380
|
+
Bankserv::Credit.all.each {|x| x.status="pending";x.save!}
|
381
|
+
|
382
|
+
@file_contents = File.open("./spec/examples/reply/reply_long.txt", "rb").read
|
383
|
+
|
384
|
+
@document = Bankserv::ReplyDocument.store(@file_contents)
|
385
|
+
@document.process!
|
386
|
+
@cs.reload
|
387
|
+
end
|
388
|
+
|
389
|
+
it "should bump the credit service trans number to 377" do
|
390
|
+
Bankserv::CreditService.last.config[:transmission_number].should == "377"
|
391
|
+
end
|
392
|
+
|
393
|
+
it "should not have any rejected credits" do
|
394
|
+
Bankserv::Credit.where(status: 'rejected').count.should == 0
|
395
|
+
end
|
396
|
+
end
|
349
397
|
end
|
metadata
CHANGED
@@ -5,8 +5,8 @@ version: !ruby/object:Gem::Version
|
|
5
5
|
segments:
|
6
6
|
- 0
|
7
7
|
- 7
|
8
|
-
-
|
9
|
-
version: 0.7.
|
8
|
+
- 5
|
9
|
+
version: 0.7.5
|
10
10
|
platform: ruby
|
11
11
|
authors:
|
12
12
|
- Jeffrey van Aswegen
|
@@ -15,7 +15,7 @@ autorequire:
|
|
15
15
|
bindir: bin
|
16
16
|
cert_chain: []
|
17
17
|
|
18
|
-
date: 2014-08-
|
18
|
+
date: 2014-08-04 00:00:00 +02:00
|
19
19
|
default_executable:
|
20
20
|
dependencies:
|
21
21
|
- !ruby/object:Gem::Dependency
|