bankserv 0.8.5 → 0.8.6

Sign up to get free protection for your applications and to get access to all the features.
checksums.yaml CHANGED
@@ -1,15 +1,15 @@
1
1
  ---
2
2
  !binary "U0hBMQ==":
3
3
  metadata.gz: !binary |-
4
- MmI3ZDY0OGRlYzRlZTE0NDc3N2Y0MGUwMDliMzgyMWQ0MmQ1N2YwYw==
4
+ NjhmNWY3YTBkYzgxMmZjNWVkZDRhYmU0MTg3ZDBjMTM3ZWQwMDQyMg==
5
5
  data.tar.gz: !binary |-
6
- M2ZkYjUzMzYwYTFhMzA3M2NiYzVlODQzZGU5ODNkZmMzYWNkYjE1MA==
6
+ YTQ4ODg1YjZmNmIxMzRkOWQxNDUxNzVlNjMzMzY1ZjI5Njc1NTM3MQ==
7
7
  SHA512:
8
8
  metadata.gz: !binary |-
9
- YmM5ZTg4YTUxMWM4NDM0YjNiMWNlNjc0ZjMxNDUyYWZlN2ZlMTMxOGY2ZjZm
10
- ZTJjZGZjN2JkNDEyNjAwYjM1MGEyMGRlNjQ5MjU1YTEyZTFiOTcyYmYzODA3
11
- ODgwMjRhZDg1MWU3YjViNGYxZWE5OTE5ZWRiZWJjZDRmY2JjYjc=
9
+ N2Y2NGM5MGYyOWMxYmYyMDVhMTE2YjRlMzNmYjc0NDlmMDBhYTdjMDAyMDhj
10
+ YThmYTlmNjZmNjY1ZDk5MzYyNmQ3NGRiNmU5ZjhkZWQ0Y2MyMjUzZjllNjYx
11
+ MmRiNmIwZTQ4NWZjNmUxNzQxNzhkMjAwNWE4NDM5ODNhNTE0OTA=
12
12
  data.tar.gz: !binary |-
13
- YTNiODBkM2MwNDU1NTM4OGU5NDQyMjhlYmU3MDViMmVlYWY1OWIwNTlkM2Ex
14
- NDQ2OGU0MWJhYTc5MDQ2MDIwZDE2ZDk0N2M1NDQxOTVjODVkOTVlZDRhMDBl
15
- ZDQxMTkxNzFlMDE4MGQ1MThjYmNlNGNkYTQ0NTJjNTdmZmNiMzU=
13
+ Njk3NDEyMzY5NDgyYmE4NzdlNjQxNmJjMmFiM2U5NDU5MzNiYjllMDIwYTdi
14
+ NTU3OGQ1Y2YzYTNkMjE5ODNhZjhhNGMxMDQzZGNjNGY1YTNkNDE4ZWIzMWE5
15
+ YzUxNzQ0ZmRkZjhiYjc1MTYzM2JmNmFmZDIxODJkM2I0MDdiMzg=
@@ -1,33 +1,36 @@
1
1
  module Bankserv
2
2
  module Transmission::UserSet
3
-
3
+
4
4
  class Eft < Set
5
-
5
+
6
6
  before_save :set_sequence_numbers, :decorate_records, :decorate_header, :decorate_trailer
7
-
7
+
8
8
  attr_accessor :type_of_service, :account_type_correct, :accepted_report
9
-
9
+
10
10
  def self.has_work?
11
11
  class_type.has_work?
12
12
  end
13
-
13
+
14
14
  def self.has_test_work?
15
15
  class_type.has_test_work?
16
16
  end
17
-
17
+
18
18
  def self.unprocessed_efts(rec_status)
19
19
  if rec_status == "L"
20
- self.class_type.unprocessed.select{|item| not item.request.test?}
20
+ # include here?
21
+
22
+ self.class_type.includes(:request, :bank_account).unprocessed.select{|item| not item.request.test?}
23
+ #self.class_type.unprocessed.select{|item| not item.request.test?}
21
24
  else
22
25
  self.class_type.unprocessed.select{|item| item.request.test?}
23
26
  end
24
27
  end
25
-
28
+
26
29
  def self.generate(options = {})
27
30
  efts = self.unprocessed_efts(options[:rec_status])
28
-
31
+
29
32
  if efts.count > 0
30
- set = self.new
33
+ set = self.new
31
34
  set.type_of_service = efts.first.request.data[:type_of_service]
32
35
  set.accepted_report = efts.first.request.data[:accepted_report] || "Y"
33
36
  set.account_type_correct = efts.first.request.data[:account_type_correct] || "Y"
@@ -35,35 +38,35 @@ module Bankserv
35
38
  set
36
39
  end
37
40
  end
38
-
41
+
39
42
  def set_type
40
43
  "eft"
41
44
  end
42
-
43
- def short_date(date)
45
+
46
+ def short_date(date)
44
47
  date = Date.strptime(date, "%Y-%m-%d")
45
48
  date.strftime("%y%m%d")
46
49
  end
47
-
50
+
48
51
  def contra_records
49
52
  records.where(record_type: "contra_record")
50
53
  end
51
-
54
+
52
55
  def standard_records
53
56
  records.where(record_type: "standard_record")
54
57
  end
55
-
58
+
56
59
  def get_user_generation_number
57
60
  bankserv_service.reserve_generation_number!.to_s #Equal to the last accepted user gen number + 1
58
61
  #gen = Bankserv::DebitService.active.last.reserve_generation_number!.to_s unless Bankserv::DebitService.active.blank?
59
62
  #gen = Bankserv::CreditService.active.last.reserve_generation_number!.to_s unless Bankserv::CreditService.active.blank?
60
63
  #gen
61
64
  end
62
-
65
+
63
66
  def build_header(options = {})
64
67
  self.generation_number = options[:user_generation_number] || get_user_generation_number
65
68
  record_data = Absa::H2h::Transmission::Eft.record_type('header').template_options
66
-
69
+
67
70
  record_data.merge!(
68
71
  rec_id: rec_id,
69
72
  bankserv_creation_date: Time.now.strftime("%y%m%d"),
@@ -72,17 +75,17 @@ module Bankserv
72
75
  accepted_report: @accepted_report.nil? ? "" : @accepted_report,
73
76
  account_type_correct: @account_type_correct
74
77
  )
75
-
78
+
76
79
  record_data.merge!(first_sequence_number: options[:first_sequence_number]) if options[:first_sequence_number]
77
-
80
+
78
81
  records.build(record_type: "header", data: record_data)
79
82
  end
80
-
81
- def build_trailer(options = {})
83
+
84
+ def build_trailer(options = {})
82
85
  record_data = Absa::H2h::Transmission::Eft.record_type('trailer').template_options
83
86
  records.build(record_type: "trailer", data: record_data.merge(rec_id: rec_id))
84
87
  end
85
-
88
+
86
89
  def build_standard(transaction)
87
90
  record_data = Absa::H2h::Transmission::Eft.record_type('standard_record').template_options
88
91
  homing_account_number = transaction.bank_account.account_number.to_i.to_s
@@ -90,8 +93,8 @@ module Bankserv
90
93
 
91
94
  record_data.merge!(
92
95
  rec_id: rec_id,
93
- user_nominated_account: transaction.contra_bank_details.account_number,
94
- user_branch: transaction.contra_bank_details.branch_code,
96
+ user_nominated_account: transaction.contra_bank_details.account_number,
97
+ user_branch: transaction.contra_bank_details.branch_code,
95
98
  user_code: bankserv_service.config[:user_code],
96
99
  bankserv_record_identifier: standard_bankserv_record_identifier,
97
100
  homing_branch: homing_branch_code,
@@ -105,13 +108,13 @@ module Bankserv
105
108
  homing_account_name: transaction.bank_account.account_holder,
106
109
  non_standard_homing_account_number: homing_account_number.length > 11 ? homing_account_number : "0"
107
110
  )
108
-
111
+
109
112
  records.build(record_type: transaction.record_type + "_record", data: record_data, sourceable: transaction)
110
113
  end
111
-
114
+
112
115
  def build_contra(transaction)
113
116
  record_data = Absa::H2h::Transmission::Eft.record_type('contra_record').template_options
114
-
117
+
115
118
  record_data.merge!(
116
119
  rec_id: rec_id,
117
120
  bankserv_record_identifier: contra_bankserv_record_identifier,
@@ -126,67 +129,67 @@ module Bankserv
126
129
  entry_class: "10",
127
130
  user_ref: transaction.formatted_user_ref
128
131
  )
129
-
132
+
130
133
  records.build(record_type: transaction.record_type + "_record", data: record_data, sourceable: transaction)
131
134
  end
132
-
135
+
133
136
  def first_action_date
134
137
  transactions.min_by{|t| t.data[:action_date]}.data[:action_date]
135
138
  end
136
-
137
- def last_action_date
139
+
140
+ def last_action_date
138
141
  transactions.max_by{|t| t.data[:action_date]}.data[:action_date]
139
142
  end
140
-
143
+
141
144
  def purge_date
142
145
  last_action_date
143
146
  end
144
-
147
+
145
148
  def hash_total_of_homing_account_numbers
146
149
  hash_total = 0
147
150
 
148
- transactions.each do |transaction|
151
+ transactions.each do |transaction|
149
152
  hash_total += transaction.data[:homing_account_number].to_i
150
153
  hash_total += transaction.data[:non_standard_homing_account_number].reverse[0,11].reverse.to_i if transaction.record_type == "standard_record"
151
154
  end
152
-
155
+
153
156
  hash_total.to_s.reverse[0,12].reverse.to_i
154
157
  end
155
-
158
+
156
159
  def total_debit_value
157
160
  debit_records.inject(0) { |sum, record| sum + record.data[:amount].to_i }
158
161
  end
159
-
162
+
160
163
  def total_credit_value
161
164
  credit_records.inject(0) { |sum, record| sum + record.data[:amount].to_i }
162
165
  end
163
-
166
+
164
167
  def no_debit_records
165
168
  debit_records.count.to_s
166
169
  end
167
-
170
+
168
171
  def no_credit_records
169
172
  credit_records.count.to_s
170
173
  end
171
-
174
+
172
175
  private
173
-
176
+
174
177
  def set_sequence_numbers
175
178
  sequence_number = (header.data[:first_sequence_number] || bankserv_service.reserve_sequence_number!).to_i
176
-
179
+
177
180
  header.data[:first_sequence_number] = sequence_number.to_s
178
181
  trailer.data[:first_sequence_number] = sequence_number.to_s
179
-
182
+
180
183
  transactions.each do |record|
181
184
  record.data[:user_sequence_number] = sequence_number.to_s
182
185
  sequence_number += 1
183
186
  end
184
-
187
+
185
188
  trailer.data[:last_sequence_number] = (sequence_number - 1).to_s
186
189
 
187
190
  bankserv_service.reserve_sequence_number!(sequence_number - 1)
188
191
  end
189
-
192
+
190
193
  def decorate_header
191
194
  header.data[:bankserv_user_code] = bankserv_service.config[:user_code]
192
195
  header.data[:bankserv_purge_date] = purge_date
@@ -194,8 +197,8 @@ module Bankserv
194
197
  header.data[:last_action_date] = last_action_date
195
198
  header.save!
196
199
  end
197
-
198
- def decorate_trailer
200
+
201
+ def decorate_trailer
199
202
  trailer.data[:bankserv_user_code] = header.data[:bankserv_user_code]
200
203
  trailer.data[:first_action_date] = first_action_date
201
204
  trailer.data[:last_action_date] = last_action_date
@@ -210,4 +213,4 @@ module Bankserv
210
213
  end
211
214
  end
212
215
  end
213
- # 28905810181. Got 402890581018.
216
+ # 28905810181. Got 402890581018.
@@ -1,3 +1,3 @@
1
1
  module Bankserv
2
- VERSION = "0.8.5"
3
- end
2
+ VERSION = "0.8.6"
3
+ 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.8.5
4
+ version: 0.8.6
5
5
  platform: ruby
6
6
  authors:
7
7
  - Jeffrey van Aswegen
@@ -9,7 +9,7 @@ authors:
9
9
  autorequire:
10
10
  bindir: bin
11
11
  cert_chain: []
12
- date: 2015-08-28 00:00:00.000000000 Z
12
+ date: 2015-11-19 00:00:00.000000000 Z
13
13
  dependencies:
14
14
  - !ruby/object:Gem::Dependency
15
15
  name: activesupport
@@ -243,7 +243,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
243
243
  version: '0'
244
244
  requirements: []
245
245
  rubyforge_project: bankserv
246
- rubygems_version: 2.4.6
246
+ rubygems_version: 2.4.8
247
247
  signing_key:
248
248
  specification_version: 4
249
249
  summary: A rails 3 engine wrapped around the Absa Host 2 Host gem.