hippo 0.1.2 → 0.2.0
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/CHANGELOG +7 -0
- data/README.md +58 -7
- data/lib/hippo/exceptions.rb +2 -1
- data/lib/hippo/field.rb +87 -1
- data/lib/hippo/parser/segment.rb +2 -2
- data/lib/hippo/segments/AK1.rb +1 -2
- data/lib/hippo/segments/AK3.rb +1 -2
- data/lib/hippo/segments/AK4.rb +4 -8
- data/lib/hippo/segments/AK9.rb +3 -6
- data/lib/hippo/segments/AMT.rb +1 -1
- data/lib/hippo/segments/BPR.rb +1 -1
- data/lib/hippo/segments/CAS.rb +12 -12
- data/lib/hippo/segments/CLM.rb +1 -1
- data/lib/hippo/segments/CLP.rb +5 -5
- data/lib/hippo/segments/CN1.rb +3 -3
- data/lib/hippo/segments/CR1.rb +2 -2
- data/lib/hippo/segments/CR2.rb +4 -5
- data/lib/hippo/segments/CR3.rb +1 -1
- data/lib/hippo/segments/CR4.rb +16 -16
- data/lib/hippo/segments/CR5.rb +7 -7
- data/lib/hippo/segments/CR7.rb +2 -4
- data/lib/hippo/segments/CTP.rb +15 -16
- data/lib/hippo/segments/CTX.rb +6 -12
- data/lib/hippo/segments/CUR.rb +1 -1
- data/lib/hippo/segments/DMG.rb +1 -1
- data/lib/hippo/segments/DN1.rb +2 -2
- data/lib/hippo/segments/DN2.rb +1 -1
- data/lib/hippo/segments/DSB.rb +2 -2
- data/lib/hippo/segments/FRM.rb +1 -1
- data/lib/hippo/segments/GE.rb +2 -2
- data/lib/hippo/segments/GS.rb +6 -6
- data/lib/hippo/segments/HCP.rb +5 -5
- data/lib/hippo/segments/HI.rb +24 -24
- data/lib/hippo/segments/HSD.rb +3 -4
- data/lib/hippo/segments/IEA.rb +2 -2
- data/lib/hippo/segments/IK3.rb +1 -2
- data/lib/hippo/segments/IK4.rb +4 -8
- data/lib/hippo/segments/ISA.rb +10 -10
- data/lib/hippo/segments/K3.rb +10 -10
- data/lib/hippo/segments/LX.rb +1 -2
- data/lib/hippo/segments/MEA.rb +13 -13
- data/lib/hippo/segments/MIA.rb +19 -19
- data/lib/hippo/segments/MOA.rb +4 -4
- data/lib/hippo/segments/PAT.rb +1 -1
- data/lib/hippo/segments/PLB.rb +6 -6
- data/lib/hippo/segments/PS1.rb +1 -1
- data/lib/hippo/segments/PWK.rb +1 -2
- data/lib/hippo/segments/QTY.rb +11 -11
- data/lib/hippo/segments/SE.rb +1 -2
- data/lib/hippo/segments/STC.rb +2 -2
- data/lib/hippo/segments/SV1.rb +8 -12
- data/lib/hippo/segments/SV2.rb +4 -4
- data/lib/hippo/segments/SV3.rb +6 -10
- data/lib/hippo/segments/SV5.rb +3 -3
- data/lib/hippo/segments/SV6.rb +6 -10
- data/lib/hippo/segments/SVC.rb +4 -4
- data/lib/hippo/segments/SVD.rb +3 -4
- data/lib/hippo/segments/TA1.rb +5 -5
- data/lib/hippo/segments/TS2.rb +19 -19
- data/lib/hippo/segments/TS3.rb +21 -21
- data/lib/hippo/segments/UR.rb +1 -1
- data/lib/hippo/segments/base.rb +12 -14
- data/lib/hippo/version.rb +1 -1
- data/lib/hippo.rb +4 -0
- data/test/test_helper.rb +4 -0
- data/test/test_parser.rb +3 -3
- data/test/test_segments_base.rb +42 -0
- metadata +6 -6
data/CHANGELOG
CHANGED
@@ -1,3 +1,10 @@
|
|
1
|
+
0.2.0 - 2012/01/21
|
2
|
+
* Updated segment definitions to differentiate between
|
3
|
+
Integer and Decimal.
|
4
|
+
* Add field level datatype conversion. Date, Time, Integer,
|
5
|
+
and Decimal fields will be stored internally as their
|
6
|
+
appropriate type and converted to a properly formatted
|
7
|
+
string representation when needed.
|
1
8
|
0.1.2 - 2012/01/18
|
2
9
|
* Add RepeatingComponent to Outputters.
|
3
10
|
* Add HIPAA_997 to list of supported transaction sets.
|
data/README.md
CHANGED
@@ -96,6 +96,10 @@ Transaction Sets/Loops and Segments are defined with a very straight forward DSL
|
|
96
96
|
field :name => 'Field4'
|
97
97
|
field :name => 'CommonName'
|
98
98
|
field :name => 'CommonName'
|
99
|
+
field :name => 'DateField', :datatype => :date
|
100
|
+
field :name => 'TimeField', :datatype => :time
|
101
|
+
field :name => 'IntegerField', :datatype => :integer
|
102
|
+
field :name => 'DecimalField', :datatype => :decimal
|
99
103
|
end
|
100
104
|
|
101
105
|
class TestCompoundSegment < Hippo::Segments::Base
|
@@ -223,8 +227,8 @@ composite field you can optionally pass the index of the field to access.
|
|
223
227
|
ts.TCS do |tcs|
|
224
228
|
tcs.Field1 = 'Foo' # use the field name
|
225
229
|
tcs.TCS01_01 = 'Bar' # use shorthand notation:
|
226
|
-
# TCS01 refers to the
|
227
|
-
# _01 refers to the first field within the composite
|
230
|
+
# TCS01 refers to the first field within the current segment
|
231
|
+
# _01 refers to the first field within the composite field
|
228
232
|
end
|
229
233
|
```
|
230
234
|
|
@@ -235,9 +239,9 @@ but if you need to access the second instance of TSS in the transaction set you
|
|
235
239
|
TSS_02 instead.
|
236
240
|
|
237
241
|
```ruby
|
238
|
-
ts.TCS.Field1
|
239
|
-
ts.TSS.Field2
|
240
|
-
ts.TSS_02.Field2
|
242
|
+
ts.TCS.Field1 = 'Foo'
|
243
|
+
ts.TSS.Field2 = 'Bar'
|
244
|
+
ts.TSS_02.Field2 = 'Baz'
|
241
245
|
|
242
246
|
# ts.to_s => 'TSS*Blah*Bar~TCS*Foo**Preset Field 7~TSS*Last Segment*Baz~'
|
243
247
|
```
|
@@ -248,12 +252,12 @@ on the name provided in the TransactionSet definition. You can either pass the
|
|
248
252
|
a Regexp to search with.
|
249
253
|
|
250
254
|
```ruby
|
251
|
-
ts.
|
255
|
+
ts.find_by_name('Test Simple Segment #1') do |tss|
|
252
256
|
tss.Field2 = 'Baz'
|
253
257
|
end
|
254
258
|
|
255
259
|
# which is essentially equivilent (because the search occurs in order of declaration)
|
256
|
-
ts.
|
260
|
+
ts.find_by_name(/Segment/) do |tss|
|
257
261
|
tss.Field2 = 'Baz'
|
258
262
|
end
|
259
263
|
|
@@ -269,6 +273,53 @@ The same technique can be used to reference fields within a segment that have th
|
|
269
273
|
# ts.to_s => 'TSS*Blah*Bar***Value1*Value2~TCS*Foo**Preset Field 7~TSS*Last Segment*Baz~'
|
270
274
|
```
|
271
275
|
|
276
|
+
Type Conversion
|
277
|
+
---------------
|
278
|
+
|
279
|
+
As of Hippo version 0.2.0 values are stored in the native format, and coverted back to the
|
280
|
+
appropriate string representation when required. This means that you can set and access date,
|
281
|
+
time, integer, and decimal fields without having to convert back and forth between strings.
|
282
|
+
|
283
|
+
As part of the type conversion process we are also validating that a fields value is being set
|
284
|
+
with a valid value for that particular data type.
|
285
|
+
|
286
|
+
Just a few examples using the type conversion:
|
287
|
+
|
288
|
+
```ruby
|
289
|
+
seg = Hippo::Segments::TSS.new # Please review definition from above.
|
290
|
+
|
291
|
+
# Date fields:
|
292
|
+
seg.DateField = Date.new(2012, 01, 20)
|
293
|
+
seg.DateField = "20120120"
|
294
|
+
seg.DateField = Time.new(2012, 01, 20, 10, 15, 20)
|
295
|
+
|
296
|
+
# all of these formats result in the same internal representation
|
297
|
+
puts seg.DateField.inspect # => #<Date: 2012-01-20 ((2455947j,0s,0n),+0s,2299161j)>
|
298
|
+
|
299
|
+
# To set the field back to a blank/empty value simply assign it to nil
|
300
|
+
seg.DateField = nil
|
301
|
+
|
302
|
+
# Time fields:
|
303
|
+
seg.TimeField = "0120" # => 1:20 am (HHMM)
|
304
|
+
seg.TimeField = "012023" # => 1:20:23 am (HHMMSS)
|
305
|
+
seg.TimeField = "01202322" # => 1:20:23.22 am (HHMMSSDD)
|
306
|
+
seg.TimeField = Time.now
|
307
|
+
|
308
|
+
# Integer fields:
|
309
|
+
seg.IntegerField = "10" # => 10
|
310
|
+
seg.IntegerField = 10 # => 10
|
311
|
+
seg.IntegerField = "10blah" # => 10
|
312
|
+
|
313
|
+
# Decimal fields:
|
314
|
+
seg.DecimalField = "123.45" # => #<BigDecimal:7fe83c315750,'0.12345E3',18(18)>
|
315
|
+
seg.DecimalField = 123.45 # => #<BigDecimal:7fe83c315750,'0.12345E3',18(18)>
|
316
|
+
seg.DecimalField = 123 # => #<BigDecimal:7fe83b9dd4f8,'0.123E3',9(18)>
|
317
|
+
seg.DecimalField = 123.0 # => #<BigDecimal:7fe83b9dd4f8,'0.123E3',9(18)>
|
318
|
+
```
|
319
|
+
|
320
|
+
__Please Note__: Due to issues with floating point representation of currency values we have
|
321
|
+
chosen to use BigDecimal internally to store all fields with a decimal datatype.
|
322
|
+
|
272
323
|
For more example please review the test suite.
|
273
324
|
|
274
325
|
License
|
data/lib/hippo/exceptions.rb
CHANGED
@@ -2,8 +2,9 @@ module Hippo
|
|
2
2
|
module Exceptions
|
3
3
|
class Exception < StandardError; end
|
4
4
|
|
5
|
+
class InvalidValue < Exception; end
|
5
6
|
class InvalidField < Exception; end
|
6
7
|
class InvalidSegment < Exception; end
|
7
|
-
class ParseError
|
8
|
+
class ParseError < Exception; end
|
8
9
|
end
|
9
10
|
end
|
data/lib/hippo/field.rb
CHANGED
@@ -1,6 +1,92 @@
|
|
1
|
+
require 'date'
|
2
|
+
require 'time'
|
3
|
+
require 'bigdecimal'
|
4
|
+
|
1
5
|
module Hippo
|
2
6
|
class Field
|
3
|
-
attr_accessor :name, :sequence, :datatype, :options,
|
7
|
+
attr_accessor :name, :sequence, :datatype, :options,
|
8
|
+
:restrictions, :minimum, :maximum, :required,
|
9
|
+
:separator, :composite, :composite_sequence
|
10
|
+
|
11
|
+
def minimum
|
12
|
+
@minimum ||= 0
|
13
|
+
end
|
14
|
+
|
15
|
+
def formatted_value(value)
|
16
|
+
return nil if value.nil?
|
17
|
+
|
18
|
+
case datatype
|
19
|
+
when :binary then value
|
20
|
+
when :integer then value.to_i
|
21
|
+
when :decimal then BigDecimal.new(value.to_s)
|
22
|
+
when :date then parse_date(value)
|
23
|
+
when :time then parse_time(value)
|
24
|
+
else value.to_s
|
25
|
+
end
|
26
|
+
end
|
27
|
+
|
28
|
+
def string_value(value)
|
29
|
+
return '' if value.nil? || value == ''
|
30
|
+
|
31
|
+
case datatype
|
32
|
+
when :binary then value
|
33
|
+
when :integer then value.to_s.rjust(minimum, '0')
|
34
|
+
when :decimal then value.to_s('F').sub(/\.0\z/,'').rjust(minimum, '0')
|
35
|
+
when :date
|
36
|
+
if maximum == 6
|
37
|
+
value.strftime('%y%m%d')
|
38
|
+
else
|
39
|
+
value.strftime('%Y%m%d')
|
40
|
+
end
|
41
|
+
when :time
|
42
|
+
if maximum == 4 || value.sec == 0
|
43
|
+
value.strftime('%H%M')
|
44
|
+
else
|
45
|
+
value.strftime('%H%M%S')
|
46
|
+
end
|
47
|
+
else value.to_s.ljust(minimum)
|
48
|
+
end
|
49
|
+
end
|
50
|
+
|
51
|
+
def parse_time(value)
|
52
|
+
case value.class.to_s
|
53
|
+
when 'Time' then value
|
54
|
+
when 'String'
|
55
|
+
format = case value
|
56
|
+
when /\A\d{4}\z/ then '%H%M'
|
57
|
+
when /\A\d{6}\z/ then '%H%M%S'
|
58
|
+
when /\A\d{7,8}\z/ then '%H%M%S%N'
|
59
|
+
else invalid!
|
60
|
+
end
|
61
|
+
|
62
|
+
Time.strptime(value, format)
|
63
|
+
else invalid!
|
64
|
+
end
|
65
|
+
rescue
|
66
|
+
invalid!
|
67
|
+
end
|
68
|
+
|
69
|
+
def parse_date(value)
|
70
|
+
case value.class.to_s
|
71
|
+
when "Date" then value
|
72
|
+
when "Time" then value.to_date
|
73
|
+
when "String"
|
74
|
+
format = case value
|
75
|
+
when /\A\d{6}\z/ then '%y%m%d'
|
76
|
+
when /\A\d{8}\z/ then '%Y%m%d'
|
77
|
+
else invalid!
|
78
|
+
end
|
79
|
+
|
80
|
+
Date.parse(value, format)
|
81
|
+
else
|
82
|
+
invalid! "Invalid datatype(#{value.class}) for date field."
|
83
|
+
end
|
84
|
+
rescue
|
85
|
+
invalid!
|
86
|
+
end
|
4
87
|
|
88
|
+
def invalid!(message = "Invalid value specified for #{self.datatype} field.")
|
89
|
+
raise Hippo::Exceptions::InvalidValue.new message
|
90
|
+
end
|
5
91
|
end
|
6
92
|
end
|
data/lib/hippo/parser/segment.rb
CHANGED
@@ -21,10 +21,10 @@ module Hippo
|
|
21
21
|
composite_fields.each_with_index do |comp_value, comp_index|
|
22
22
|
composite_field = field[comp_index]
|
23
23
|
|
24
|
-
self.values[composite_sequence][composite_field.sequence] = comp_value
|
24
|
+
self.values[composite_sequence][composite_field.sequence] = composite_field.formatted_value(comp_value)
|
25
25
|
end
|
26
26
|
else
|
27
|
-
self.values[field.sequence] = value
|
27
|
+
self.values[field.sequence] = field.formatted_value(value)
|
28
28
|
end
|
29
29
|
end
|
30
30
|
|
data/lib/hippo/segments/AK1.rb
CHANGED
data/lib/hippo/segments/AK3.rb
CHANGED
data/lib/hippo/segments/AK4.rb
CHANGED
@@ -7,8 +7,7 @@ module Hippo::Segments
|
|
7
7
|
|
8
8
|
field :name => 'ElementPositionInSegment',
|
9
9
|
:sequence => 1,
|
10
|
-
:datatype => :
|
11
|
-
:decimal => 0,
|
10
|
+
:datatype => :integer,
|
12
11
|
:minimum => 1,
|
13
12
|
:maximum => 2,
|
14
13
|
:required => true,
|
@@ -16,8 +15,7 @@ module Hippo::Segments
|
|
16
15
|
|
17
16
|
field :name => 'ComponentDataElementPositionInComposite',
|
18
17
|
:sequence => 2,
|
19
|
-
:datatype => :
|
20
|
-
:decimal => 0,
|
18
|
+
:datatype => :integer,
|
21
19
|
:minimum => 1,
|
22
20
|
:maximum => 2,
|
23
21
|
:required => false,
|
@@ -25,8 +23,7 @@ module Hippo::Segments
|
|
25
23
|
|
26
24
|
field :name => 'RepeatingDataElementPosition',
|
27
25
|
:sequence => 3,
|
28
|
-
:datatype => :
|
29
|
-
:decimal => 0,
|
26
|
+
:datatype => :integer,
|
30
27
|
:minimum => 1,
|
31
28
|
:maximum => 4,
|
32
29
|
:required => false,
|
@@ -36,8 +33,7 @@ module Hippo::Segments
|
|
36
33
|
|
37
34
|
field :name => 'DataElementReferenceNumber',
|
38
35
|
:sequence => 2,
|
39
|
-
:datatype => :
|
40
|
-
:decimal => 0,
|
36
|
+
:datatype => :integer,
|
41
37
|
:minimum => 1,
|
42
38
|
:maximum => 4,
|
43
39
|
:required => false,
|
data/lib/hippo/segments/AK9.rb
CHANGED
@@ -13,8 +13,7 @@ module Hippo::Segments
|
|
13
13
|
|
14
14
|
field :name => 'NumberOfTransactionSetsIncluded',
|
15
15
|
:sequence => 2,
|
16
|
-
:datatype => :
|
17
|
-
:decimal => 0,
|
16
|
+
:datatype => :integer,
|
18
17
|
:minimum => 1,
|
19
18
|
:maximum => 6,
|
20
19
|
:required => true,
|
@@ -22,8 +21,7 @@ module Hippo::Segments
|
|
22
21
|
|
23
22
|
field :name => 'NumberOfReceivedTransactionSets',
|
24
23
|
:sequence => 3,
|
25
|
-
:datatype => :
|
26
|
-
:decimal => 0,
|
24
|
+
:datatype => :integer,
|
27
25
|
:minimum => 1,
|
28
26
|
:maximum => 6,
|
29
27
|
:required => true,
|
@@ -31,8 +29,7 @@ module Hippo::Segments
|
|
31
29
|
|
32
30
|
field :name => 'NumberOfAcceptedTransactionSets',
|
33
31
|
:sequence => 4,
|
34
|
-
:datatype => :
|
35
|
-
:decimal => 0,
|
32
|
+
:datatype => :integer,
|
36
33
|
:minimum => 1,
|
37
34
|
:maximum => 6,
|
38
35
|
:required => true,
|
data/lib/hippo/segments/AMT.rb
CHANGED
data/lib/hippo/segments/BPR.rb
CHANGED
data/lib/hippo/segments/CAS.rb
CHANGED
@@ -21,7 +21,7 @@ module Hippo::Segments
|
|
21
21
|
|
22
22
|
field :name => 'MonetaryAmount',
|
23
23
|
:sequence => 3,
|
24
|
-
:datatype => :
|
24
|
+
:datatype => :decimal,
|
25
25
|
:minimum => 1,
|
26
26
|
:maximum => 18,
|
27
27
|
:required => true,
|
@@ -29,7 +29,7 @@ module Hippo::Segments
|
|
29
29
|
|
30
30
|
field :name => 'Quantity',
|
31
31
|
:sequence => 4,
|
32
|
-
:datatype => :
|
32
|
+
:datatype => :decimal,
|
33
33
|
:minimum => 1,
|
34
34
|
:maximum => 15,
|
35
35
|
:required => false,
|
@@ -45,7 +45,7 @@ module Hippo::Segments
|
|
45
45
|
|
46
46
|
field :name => 'MonetaryAmount',
|
47
47
|
:sequence => 6,
|
48
|
-
:datatype => :
|
48
|
+
:datatype => :decimal,
|
49
49
|
:minimum => 1,
|
50
50
|
:maximum => 18,
|
51
51
|
:required => false,
|
@@ -53,7 +53,7 @@ module Hippo::Segments
|
|
53
53
|
|
54
54
|
field :name => 'Quantity',
|
55
55
|
:sequence => 7,
|
56
|
-
:datatype => :
|
56
|
+
:datatype => :decimal,
|
57
57
|
:minimum => 1,
|
58
58
|
:maximum => 15,
|
59
59
|
:required => false,
|
@@ -69,7 +69,7 @@ module Hippo::Segments
|
|
69
69
|
|
70
70
|
field :name => 'MonetaryAmount',
|
71
71
|
:sequence => 9,
|
72
|
-
:datatype => :
|
72
|
+
:datatype => :decimal,
|
73
73
|
:minimum => 1,
|
74
74
|
:maximum => 18,
|
75
75
|
:required => false,
|
@@ -77,7 +77,7 @@ module Hippo::Segments
|
|
77
77
|
|
78
78
|
field :name => 'Quantity',
|
79
79
|
:sequence => 10,
|
80
|
-
:datatype => :
|
80
|
+
:datatype => :decimal,
|
81
81
|
:minimum => 1,
|
82
82
|
:maximum => 15,
|
83
83
|
:required => false,
|
@@ -93,7 +93,7 @@ module Hippo::Segments
|
|
93
93
|
|
94
94
|
field :name => 'MonetaryAmount',
|
95
95
|
:sequence => 12,
|
96
|
-
:datatype => :
|
96
|
+
:datatype => :decimal,
|
97
97
|
:minimum => 1,
|
98
98
|
:maximum => 18,
|
99
99
|
:required => false,
|
@@ -101,7 +101,7 @@ module Hippo::Segments
|
|
101
101
|
|
102
102
|
field :name => 'Quantity',
|
103
103
|
:sequence => 13,
|
104
|
-
:datatype => :
|
104
|
+
:datatype => :decimal,
|
105
105
|
:minimum => 1,
|
106
106
|
:maximum => 15,
|
107
107
|
:required => false,
|
@@ -117,7 +117,7 @@ module Hippo::Segments
|
|
117
117
|
|
118
118
|
field :name => 'MonetaryAmount',
|
119
119
|
:sequence => 15,
|
120
|
-
:datatype => :
|
120
|
+
:datatype => :decimal,
|
121
121
|
:minimum => 1,
|
122
122
|
:maximum => 18,
|
123
123
|
:required => false,
|
@@ -125,7 +125,7 @@ module Hippo::Segments
|
|
125
125
|
|
126
126
|
field :name => 'Quantity',
|
127
127
|
:sequence => 16,
|
128
|
-
:datatype => :
|
128
|
+
:datatype => :decimal,
|
129
129
|
:minimum => 1,
|
130
130
|
:maximum => 15,
|
131
131
|
:required => false,
|
@@ -141,7 +141,7 @@ module Hippo::Segments
|
|
141
141
|
|
142
142
|
field :name => 'MonetaryAmount',
|
143
143
|
:sequence => 18,
|
144
|
-
:datatype => :
|
144
|
+
:datatype => :decimal,
|
145
145
|
:minimum => 1,
|
146
146
|
:maximum => 18,
|
147
147
|
:required => false,
|
@@ -149,7 +149,7 @@ module Hippo::Segments
|
|
149
149
|
|
150
150
|
field :name => 'Quantity',
|
151
151
|
:sequence => 19,
|
152
|
-
:datatype => :
|
152
|
+
:datatype => :decimal,
|
153
153
|
:minimum => 1,
|
154
154
|
:maximum => 15,
|
155
155
|
:required => false,
|
data/lib/hippo/segments/CLM.rb
CHANGED
data/lib/hippo/segments/CLP.rb
CHANGED
@@ -21,7 +21,7 @@ module Hippo::Segments
|
|
21
21
|
|
22
22
|
field :name => 'MonetaryAmount',
|
23
23
|
:sequence => 3,
|
24
|
-
:datatype => :
|
24
|
+
:datatype => :decimal,
|
25
25
|
:minimum => 1,
|
26
26
|
:maximum => 18,
|
27
27
|
:required => true,
|
@@ -29,7 +29,7 @@ module Hippo::Segments
|
|
29
29
|
|
30
30
|
field :name => 'MonetaryAmount',
|
31
31
|
:sequence => 4,
|
32
|
-
:datatype => :
|
32
|
+
:datatype => :decimal,
|
33
33
|
:minimum => 1,
|
34
34
|
:maximum => 18,
|
35
35
|
:required => true,
|
@@ -37,7 +37,7 @@ module Hippo::Segments
|
|
37
37
|
|
38
38
|
field :name => 'MonetaryAmount',
|
39
39
|
:sequence => 5,
|
40
|
-
:datatype => :
|
40
|
+
:datatype => :decimal,
|
41
41
|
:minimum => 1,
|
42
42
|
:maximum => 18,
|
43
43
|
:required => false,
|
@@ -93,7 +93,7 @@ module Hippo::Segments
|
|
93
93
|
|
94
94
|
field :name => 'Quantity',
|
95
95
|
:sequence => 12,
|
96
|
-
:datatype => :
|
96
|
+
:datatype => :decimal,
|
97
97
|
:minimum => 1,
|
98
98
|
:maximum => 15,
|
99
99
|
:required => false,
|
@@ -101,7 +101,7 @@ module Hippo::Segments
|
|
101
101
|
|
102
102
|
field :name => 'PercentageAsDecimal',
|
103
103
|
:sequence => 13,
|
104
|
-
:datatype => :
|
104
|
+
:datatype => :decimal,
|
105
105
|
:minimum => 1,
|
106
106
|
:maximum => 10,
|
107
107
|
:required => false,
|
data/lib/hippo/segments/CN1.rb
CHANGED
@@ -13,7 +13,7 @@ module Hippo::Segments
|
|
13
13
|
|
14
14
|
field :name => 'MonetaryAmount',
|
15
15
|
:sequence => 2,
|
16
|
-
:datatype => :
|
16
|
+
:datatype => :decimal,
|
17
17
|
:minimum => 1,
|
18
18
|
:maximum => 18,
|
19
19
|
:required => false,
|
@@ -21,7 +21,7 @@ module Hippo::Segments
|
|
21
21
|
|
22
22
|
field :name => 'PercentDecimalFormat',
|
23
23
|
:sequence => 3,
|
24
|
-
:datatype => :
|
24
|
+
:datatype => :decimal,
|
25
25
|
:minimum => 1,
|
26
26
|
:maximum => 6,
|
27
27
|
:required => false,
|
@@ -37,7 +37,7 @@ module Hippo::Segments
|
|
37
37
|
|
38
38
|
field :name => 'TermsDiscountPercent',
|
39
39
|
:sequence => 5,
|
40
|
-
:datatype => :
|
40
|
+
:datatype => :decimal,
|
41
41
|
:minimum => 1,
|
42
42
|
:maximum => 6,
|
43
43
|
:required => false,
|
data/lib/hippo/segments/CR1.rb
CHANGED
@@ -13,7 +13,7 @@ module Hippo::Segments
|
|
13
13
|
|
14
14
|
field :name => 'Weight',
|
15
15
|
:sequence => 2,
|
16
|
-
:datatype => :
|
16
|
+
:datatype => :decimal,
|
17
17
|
:minimum => 1,
|
18
18
|
:maximum => 10,
|
19
19
|
:required => false,
|
@@ -45,7 +45,7 @@ module Hippo::Segments
|
|
45
45
|
|
46
46
|
field :name => 'Quantity',
|
47
47
|
:sequence => 6,
|
48
|
-
:datatype => :
|
48
|
+
:datatype => :decimal,
|
49
49
|
:minimum => 1,
|
50
50
|
:maximum => 15,
|
51
51
|
:required => false,
|
data/lib/hippo/segments/CR2.rb
CHANGED
@@ -5,8 +5,7 @@ module Hippo::Segments
|
|
5
5
|
|
6
6
|
field :name => 'Count',
|
7
7
|
:sequence => 1,
|
8
|
-
:datatype => :
|
9
|
-
:decimal => 0,
|
8
|
+
:datatype => :integer,
|
10
9
|
:minimum => 1,
|
11
10
|
:maximum => 9,
|
12
11
|
:required => false,
|
@@ -14,7 +13,7 @@ module Hippo::Segments
|
|
14
13
|
|
15
14
|
field :name => 'Quantity',
|
16
15
|
:sequence => 2,
|
17
|
-
:datatype => :
|
16
|
+
:datatype => :decimal,
|
18
17
|
:minimum => 1,
|
19
18
|
:maximum => 15,
|
20
19
|
:required => false,
|
@@ -46,7 +45,7 @@ module Hippo::Segments
|
|
46
45
|
|
47
46
|
field :name => 'Quantity',
|
48
47
|
:sequence => 6,
|
49
|
-
:datatype => :
|
48
|
+
:datatype => :decimal,
|
50
49
|
:minimum => 1,
|
51
50
|
:maximum => 15,
|
52
51
|
:required => false,
|
@@ -54,7 +53,7 @@ module Hippo::Segments
|
|
54
53
|
|
55
54
|
field :name => 'Quantity',
|
56
55
|
:sequence => 7,
|
57
|
-
:datatype => :
|
56
|
+
:datatype => :decimal,
|
58
57
|
:minimum => 1,
|
59
58
|
:maximum => 15,
|
60
59
|
:required => false,
|