bankserv 0.8.5 → 0.8.6

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,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.