bankserv 0.7.4 → 0.7.5
Sign up to get free protection for your applications and to get access to all the features.
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
|