stupidedi 1.2.14 → 1.2.15

Sign up to get free protection for your applications and to get access to all the features.
Files changed (60) hide show
  1. checksums.yaml +4 -4
  2. data/README.md +6 -6
  3. data/lib/ruby/jruby_hack.rb +683 -0
  4. data/lib/stupidedi.rb +4 -0
  5. data/lib/stupidedi/config.rb +1 -0
  6. data/lib/stupidedi/contrib/004010/guides.rb +1 -0
  7. data/lib/stupidedi/contrib/004010/guides/GF990.rb +6 -1
  8. data/lib/stupidedi/contrib/004010/guides/IM210.rb +267 -0
  9. data/lib/stupidedi/contrib/004010/guides/QM214.rb +17 -5
  10. data/lib/stupidedi/contrib/004010/guides/SM204.rb +252 -57
  11. data/lib/stupidedi/contrib/004010/transaction_set_defs.rb +3 -0
  12. data/lib/stupidedi/contrib/004010/transaction_set_defs/IM210.rb +47 -0
  13. data/lib/stupidedi/contrib/004010/transaction_set_defs/SM204.rb +20 -2
  14. data/lib/stupidedi/version.rb +1 -1
  15. data/lib/stupidedi/versions/functional_groups/004010/element_defs.rb +115 -4
  16. data/lib/stupidedi/versions/functional_groups/004010/segment_defs.rb +31 -0
  17. data/lib/stupidedi/versions/functional_groups/004010/segment_defs/B3.rb +31 -0
  18. data/lib/stupidedi/versions/functional_groups/004010/segment_defs/C3.rb +22 -0
  19. data/lib/stupidedi/versions/functional_groups/004010/segment_defs/H3.rb +25 -0
  20. data/lib/stupidedi/versions/functional_groups/004010/segment_defs/L0.rb +34 -0
  21. data/lib/stupidedi/versions/functional_groups/004010/segment_defs/L1.rb +42 -0
  22. data/lib/stupidedi/versions/functional_groups/004010/segment_defs/L3.rb +1 -1
  23. data/lib/stupidedi/versions/functional_groups/004010/segment_defs/L4.rb +25 -0
  24. data/lib/stupidedi/versions/functional_groups/004010/segment_defs/L7.rb +35 -0
  25. data/lib/stupidedi/versions/functional_groups/004010/segment_defs/LAD.rb +39 -0
  26. data/lib/stupidedi/versions/functional_groups/004010/segment_defs/MEA.rb +1 -1
  27. data/lib/stupidedi/versions/functional_groups/004010/segment_defs/N9.rb +7 -7
  28. data/lib/stupidedi/versions/functional_groups/004010/segment_defs/OID.rb +33 -0
  29. data/lib/stupidedi/versions/functional_groups/004010/segment_defs/R3.rb +28 -0
  30. data/lib/stupidedi/versions/functional_groups/005010/segment_defs/HI.rb +2 -2
  31. data/lib/stupidedi/versions/functional_groups/005010/transaction_set_defs/HC837.rb +2 -1
  32. data/spec/examples/ruby/symbol.example +20 -23
  33. data/spec/examples/stupidedi/versions/005010/element_types/nn.example +4 -3
  34. data/spec/examples/stupidedi/versions/005010/element_types/r.example +5 -4
  35. metadata +34 -46
  36. data/spec/coverage/assets/0.10.0/application.css +0 -799
  37. data/spec/coverage/assets/0.10.0/application.js +0 -1707
  38. data/spec/coverage/assets/0.10.0/colorbox/border.png +0 -0
  39. data/spec/coverage/assets/0.10.0/colorbox/controls.png +0 -0
  40. data/spec/coverage/assets/0.10.0/colorbox/loading.gif +0 -0
  41. data/spec/coverage/assets/0.10.0/colorbox/loading_background.png +0 -0
  42. data/spec/coverage/assets/0.10.0/favicon_green.png +0 -0
  43. data/spec/coverage/assets/0.10.0/favicon_red.png +0 -0
  44. data/spec/coverage/assets/0.10.0/favicon_yellow.png +0 -0
  45. data/spec/coverage/assets/0.10.0/loading.gif +0 -0
  46. data/spec/coverage/assets/0.10.0/magnify.png +0 -0
  47. data/spec/coverage/assets/0.10.0/smoothness/images/ui-bg_flat_0_aaaaaa_40x100.png +0 -0
  48. data/spec/coverage/assets/0.10.0/smoothness/images/ui-bg_flat_75_ffffff_40x100.png +0 -0
  49. data/spec/coverage/assets/0.10.0/smoothness/images/ui-bg_glass_55_fbf9ee_1x400.png +0 -0
  50. data/spec/coverage/assets/0.10.0/smoothness/images/ui-bg_glass_65_ffffff_1x400.png +0 -0
  51. data/spec/coverage/assets/0.10.0/smoothness/images/ui-bg_glass_75_dadada_1x400.png +0 -0
  52. data/spec/coverage/assets/0.10.0/smoothness/images/ui-bg_glass_75_e6e6e6_1x400.png +0 -0
  53. data/spec/coverage/assets/0.10.0/smoothness/images/ui-bg_glass_95_fef1ec_1x400.png +0 -0
  54. data/spec/coverage/assets/0.10.0/smoothness/images/ui-bg_highlight-soft_75_cccccc_1x100.png +0 -0
  55. data/spec/coverage/assets/0.10.0/smoothness/images/ui-icons_222222_256x240.png +0 -0
  56. data/spec/coverage/assets/0.10.0/smoothness/images/ui-icons_2e83ff_256x240.png +0 -0
  57. data/spec/coverage/assets/0.10.0/smoothness/images/ui-icons_454545_256x240.png +0 -0
  58. data/spec/coverage/assets/0.10.0/smoothness/images/ui-icons_888888_256x240.png +0 -0
  59. data/spec/coverage/assets/0.10.0/smoothness/images/ui-icons_cd0a0a_256x240.png +0 -0
  60. data/spec/coverage/index.html +0 -72
data/lib/stupidedi.rb CHANGED
@@ -25,6 +25,10 @@ require "ruby/to_time"
25
25
  require "ruby/try"
26
26
  require "ruby/instance_exec"
27
27
 
28
+ if RUBY_PLATFORM == "java"
29
+ require "ruby/jruby_hack"
30
+ end
31
+
28
32
  module Stupidedi
29
33
  autoload :Builder, "stupidedi/builder"
30
34
  autoload :Config, "stupidedi/config"
@@ -129,6 +129,7 @@ module Stupidedi
129
129
  x.register("004010", "SW", "945") { Stupidedi::Contrib::FortyTen::TransactionSetDefs::SW945 }
130
130
  x.register("004010", "SM", "204") { Stupidedi::Contrib::FortyTen::TransactionSetDefs::SM204 }
131
131
  x.register("004010", "QM", "214") { Stupidedi::Contrib::FortyTen::TransactionSetDefs::QM214 }
132
+ x.register("004010", "IM", "210") { Stupidedi::Contrib::FortyTen::TransactionSetDefs::IM210 }
132
133
  x.register("004010", "GF", "990") { Stupidedi::Contrib::FortyTen::TransactionSetDefs::GF990 }
133
134
  x.register("004010", "SS", "862") { Stupidedi::Contrib::FortyTen::TransactionSetDefs::SS862 }
134
135
  x.register("004010", "PS", "830") { Stupidedi::Contrib::FortyTen::TransactionSetDefs::PS830 }
@@ -8,6 +8,7 @@ module Stupidedi
8
8
  SegmentReqs = Stupidedi::Guides::FortyTen::SegmentReqs
9
9
  ElementReqs = Stupidedi::Guides::FortyTen::ElementReqs
10
10
 
11
+ autoload :IM210, "stupidedi/contrib/004010/guides/IM210"
11
12
  autoload :PO850, "stupidedi/contrib/004010/guides/PO850"
12
13
  autoload :OW940, "stupidedi/contrib/004010/guides/OW940"
13
14
  autoload :AR943, "stupidedi/contrib/004010/guides/AR943"
@@ -32,7 +32,12 @@ module Stupidedi
32
32
  b::Segment(30, s::N9, "Reference Identification",
33
33
  r::Situational, d::RepeatCount.bounded(1),
34
34
  b::Element(e::Required, "Reference Identification Qualifier"),
35
- b::Element(e::Situational, "Reference Identification")),
35
+ b::Element(e::Situational, "Reference Identification"),
36
+ b::Element(e::NotUsed, "Free-form Description"),
37
+ b::Element(e::NotUsed, "Date"),
38
+ b::Element(e::NotUsed, "Time"),
39
+ b::Element(e::NotUsed, "Time Code"),
40
+ b::Element(e::NotUsed, "Reference Identifier")),
36
41
 
37
42
  b::Segment(60, s::K1, "Remarks",
38
43
  r::Situational, d::RepeatCount.bounded(10),
@@ -0,0 +1,267 @@
1
+ # frozen_string_literal: true
2
+
3
+ module Stupidedi
4
+ module Contrib
5
+ module FortyTen
6
+ module Guides
7
+
8
+ b = GuideBuilder
9
+ d = Schema
10
+ r = SegmentReqs
11
+ e = ElementReqs
12
+ s = Versions::FunctionalGroups::FortyTen::SegmentDefs
13
+ t = Contrib::FortyTen::TransactionSetDefs
14
+
15
+ #
16
+ # Motor Carrier Freight Details and Invoice
17
+ #
18
+ IM210 = b.build(t::IM210,
19
+ d::TableDef.header("Heading",
20
+ b::Segment(10, s::ST, "Transaction Set Header",
21
+ r::Required, d::RepeatCount.bounded(1),
22
+ b::Element(e::Required, "Transaction Set Identifier Code", b::Values("210")),
23
+ b::Element(e::Required, "Transaction Set Control Number")),
24
+
25
+ b::Segment(20, s::B3, "Beginning Segment for Carrier's Invoice",
26
+ r::Required, d::RepeatCount.bounded(1),
27
+ b::Element(e::NotUsed, "Shipment Qualifier"),
28
+ b::Element(e::Required, "Invoice Number"),
29
+ b::Element(e::Required, "Shipment Identification Number"),
30
+ b::Element(e::Required, "Shipment Method of Payment"),
31
+ b::Element(e::NotUsed, "Weight Unit Code"),
32
+ b::Element(e::Required, "Date"),
33
+ b::Element(e::Required, "Net Amount Due"),
34
+ b::Element(e::Situational, "Correction Indicator"),
35
+ b::Element(e::Situational, "Delivery Date"),
36
+ b::Element(e::Situational, "Date/Time Qualifier"),
37
+ b::Element(e::Required, "Standard Carrier Alpha Code"),
38
+ b::Element(e::Situational, "Date")),
39
+
40
+ b::Segment(40, s::C3, "Currency",
41
+ r::Required, d::RepeatCount.bounded(1),
42
+ b::Element(e::Required, "Currency Code"),
43
+ b::Element(e::Situational, "Exchange Rate"),
44
+ b::Element(e::Situational, "Currency Code")),
45
+
46
+ b::Segment(60, s::N9, "Reference Identification",
47
+ r::Situational, d::RepeatCount.bounded(300),
48
+ b::Element(e::Required, "Reference Identification Qualifier"),
49
+ b::Element(e::Required, "Reference Identification"),
50
+ b::Element(e::NotUsed, "Free-form Description"),
51
+ b::Element(e::NotUsed, "Date"),
52
+ b::Element(e::NotUsed, "Time"),
53
+ b::Element(e::NotUsed, "Time Code"),
54
+ b::Element(e::NotUsed, "Reference Identifier")),
55
+
56
+ b::Segment(70, s::G62, "Date/Time",
57
+ r::Situational, d::RepeatCount.bounded(1),
58
+ b::Element(e::Situational, "Date Qualifier"),
59
+ b::Element(e::Situational, "Date"),
60
+ b::Element(e::Situational, "Time Qualifier"),
61
+ b::Element(e::Situational, "Time"),
62
+ b::Element(e::NotUsed, "Time Code")),
63
+
64
+ b::Segment(80, s::R3, "Route Information - Motor",
65
+ r::Required, d::RepeatCount.bounded(12),
66
+ b::Element(e::Required, "Standard Carrier Alpha Code"),
67
+ b::Element(e::Required, "Routing Sequence Code"),
68
+ b::Element(e::Situational, "City Name"),
69
+ b::Element(e::Situational, "Transport Method/Type Code"),
70
+ b::Element(e::Situational, "Standard Point Location Code"),
71
+ b::Element(e::Situational, "Invoice Number"),
72
+ b::Element(e::Situational, "Date"),
73
+ b::Element(e::Situational, "Amount"),
74
+ b::Element(e::Situational, "Free-form Description")),
75
+
76
+ b::Segment(90, s::H3, "Line Item - Quantity and Weight",
77
+ r::Situational, d::RepeatCount.bounded(6),
78
+ b::Element(e::Situational, "Special Handling Code"),
79
+ b::Element(e::Situational, "Special Handling Description"),
80
+ b::Element(e::Situational, "Protective Service Code"),
81
+ b::Element(e::Situational, "Vent Instruction Code Code"),
82
+ b::Element(e::Situational, "Tariff Application Code")),
83
+
84
+ d::LoopDef.build("0100",
85
+ d::RepeatCount.bounded(10),
86
+ b::Segment(110, s::N1, "Name",
87
+ r::Situational, d::RepeatCount.bounded(1),
88
+ b::Element(e::Required, "Entity Identifier Code"),
89
+ b::Element(e::Required, "Name"),
90
+ b::Element(e::Situational, "Identification Code Qualifier"),
91
+ b::Element(e::Situational, "Identification Code"),
92
+ b::Element(e::Situational, "Entity Relation Code"),
93
+ b::Element(e::Situational, "Entity Identifier Code")),
94
+
95
+ b::Segment(130, s::N3, "Address Information",
96
+ r::Situational, d::RepeatCount.bounded(2),
97
+ b::Element(e::Situational, "Address Information"),
98
+ b::Element(e::Situational, "Address Information")),
99
+
100
+ b::Segment(140, s::N4, "Geographic Information",
101
+ r::Situational, d::RepeatCount.bounded(1),
102
+ b::Element(e::Situational, "City Name"),
103
+ b::Element(e::Situational, "State or Province Code"),
104
+ b::Element(e::Situational, "Postal Code"),
105
+ b::Element(e::Situational, "Country Code"),
106
+ b::Element(e::Situational, "Location Qualifier"),
107
+ b::Element(e::Situational, "Location Identifier")),
108
+
109
+ b::Segment(150, s::N9, "Reference Identification",
110
+ r::Situational, d::RepeatCount.bounded(5),
111
+ b::Element(e::Required, "Reference Identification Qualifier"),
112
+ b::Element(e::Situational, "Reference Identification"),
113
+ b::Element(e::NotUsed, "Free-form Description"),
114
+ b::Element(e::NotUsed, "Date"),
115
+ b::Element(e::NotUsed, "Time"),
116
+ b::Element(e::NotUsed, "Time Code"),
117
+ b::Element(e::NotUsed, "Reference Identifier"))),
118
+
119
+ d::LoopDef.build("0200",
120
+ d::RepeatCount.bounded(10),
121
+ b::Segment(160, s::N7, "Equipment Details",
122
+ r::Situational, d::RepeatCount.bounded(1),
123
+ b::Element(e::Situational, "Equipment Initial"),
124
+ b::Element(e::Situational, "Equipment Number"),
125
+ b::Element(e::NotUsed, "Weight"),
126
+ b::Element(e::NotUsed, "Weight Qualifier"),
127
+ b::Element(e::NotUsed, "Tare Weight"),
128
+ b::Element(e::NotUsed, "Weight Allowance"),
129
+ b::Element(e::NotUsed, "Dunnage"),
130
+ b::Element(e::NotUsed, "Volume"),
131
+ b::Element(e::NotUsed, "Volume Qualifier"),
132
+ b::Element(e::NotUsed, "Ownership Code"),
133
+ b::Element(e::Situational, "Equipment Description Code"),
134
+ b::Element(e::NotUsed, "Standard Carrier Alpha Code"),
135
+ b::Element(e::NotUsed, "Temperature Control"),
136
+ b::Element(e::NotUsed, "Position"),
137
+ b::Element(e::Situational, "Equipment Length"),
138
+ b::Element(e::NotUsed, "Tare Qualifier Code"),
139
+ b::Element(e::NotUsed, "Weight Unit Code"),
140
+ b::Element(e::NotUsed, "Equipment Number Check Digit"),
141
+ b::Element(e::NotUsed, "Type of Service Code"),
142
+ b::Element(e::NotUsed, "Height"),
143
+ b::Element(e::NotUsed, "Width"),
144
+ b::Element(e::NotUsed, "Equipment Type"),
145
+ b::Element(e::NotUsed, "Standard Carrier Alpha Code"),
146
+ b::Element(e::NotUsed, "Car Type Code")))),
147
+
148
+ d::TableDef.detail("Detail",
149
+ d::LoopDef.build("0400",
150
+ d::RepeatCount.bounded(9999),
151
+ b::Segment(120, s::LX, "Assigned Number",
152
+ r::Required, d::RepeatCount.bounded(1),
153
+ b::Element(e::Required, "Assigned Number")),
154
+
155
+ b::Segment(130, s::N9, "Reference Identification",
156
+ r::Situational, d::RepeatCount.bounded(5),
157
+ b::Element(e::Required, "Reference Identification Qualifier"),
158
+ b::Element(e::Situational, "Reference Identification"),
159
+ b::Element(e::NotUsed, "Free-form Description"),
160
+ b::Element(e::NotUsed, "Date"),
161
+ b::Element(e::NotUsed, "Time"),
162
+ b::Element(e::NotUsed, "Time Code"),
163
+ b::Element(e::NotUsed, "Reference Identifier")),
164
+
165
+ b::Segment(140, s::L5, "Description, Marks and Numbers",
166
+ r::Situational, d::RepeatCount.bounded(30),
167
+ b::Element(e::Situational, "Lading Line Item Number"),
168
+ b::Element(e::Situational, "Lading Description"),
169
+ b::Element(e::Situational, "Commodity Code"),
170
+ b::Element(e::Situational, "Commodity Code Qualifier"),
171
+ b::Element(e::NotUsed, "Packaging Code"),
172
+ b::Element(e::NotUsed, "Marks and Numbers"),
173
+ b::Element(e::NotUsed, "Marks and Numbers Qualifier"),
174
+ b::Element(e::NotUsed, "Commodity Code"),
175
+ b::Element(e::NotUsed, "Commodity Code Qualifier"),
176
+ b::Element(e::NotUsed, "Compartment ID Code")),
177
+
178
+ b::Segment(170, s::L0, "Line Item -- Quantity and Weight",
179
+ r::Situational, d::RepeatCount.bounded(10),
180
+ b::Element(e::Situational, "Lading Line Item Number"),
181
+ b::Element(e::Situational, "Billed/Rated-as Quantity"),
182
+ b::Element(e::Situational, "Billed/Rated-as Qualifier"),
183
+ b::Element(e::Situational, "Weight"),
184
+ b::Element(e::Situational, "Weight Qualifier"),
185
+ b::Element(e::Situational, "Volume"),
186
+ b::Element(e::Situational, "Volume Qualifier"),
187
+ b::Element(e::Situational, "Lading Quantity"),
188
+ b::Element(e::Situational, "Packaging Form Code")),
189
+
190
+ b::Segment(180, s::L1, "Rate and Charges",
191
+ r::Situational, d::RepeatCount.bounded(10),
192
+ b::Element(e::Situational, "Lading Line Item Number"),
193
+ b::Element(e::Situational, "Freight Rate"),
194
+ b::Element(e::Situational, "Rate/Value Qualifier"),
195
+ b::Element(e::Situational, "Charge"),
196
+ b::Element(e::Situational, "Advances"),
197
+ b::Element(e::Situational, "Prepaid Amount"),
198
+ b::Element(e::Situational, "Rate Combination Point Code"),
199
+ b::Element(e::Situational, "Special Charge or Allowance Code"),
200
+ b::Element(e::Situational, "Rate Class Code"),
201
+ b::Element(e::Situational, "Entitlement Code"),
202
+ b::Element(e::Situational, "Charge Method of Payment"),
203
+ b::Element(e::Situational, "Special Charge Description"),
204
+ b::Element(e::Situational, "Tariff Application Code"),
205
+ b::Element(e::Situational, "Declared Value"),
206
+ b::Element(e::Situational, "Rate/Value Qualifier"),
207
+ b::Element(e::Situational, "Lading Liability Code"),
208
+ b::Element(e::Situational, "Billed/Rated-as Quantity"),
209
+ b::Element(e::Situational, "Billed/Rated-as Qualifier"),
210
+ b::Element(e::Situational, "Percent")),
211
+
212
+ b::Segment(190, s::L4, "Measurement",
213
+ r::Situational, d::RepeatCount.bounded(10),
214
+ b::Element(e::Situational, "Length"),
215
+ b::Element(e::Situational, "Width"),
216
+ b::Element(e::Situational, "Height"),
217
+ b::Element(e::Situational, "Measurement Qualifier"),
218
+ b::Element(e::Situational, "Quantity")),
219
+
220
+ b::Segment(200, s::L7, "Measurement",
221
+ r::Situational, d::RepeatCount.bounded(10),
222
+ b::Element(e::Situational, "Lading Line Item Number"),
223
+ b::Element(e::Situational, "Tariff Agency Code"),
224
+ b::Element(e::Situational, "Tariff Number"),
225
+ b::Element(e::Situational, "Tariff Section"),
226
+ b::Element(e::Situational, "Tariff Item Number"),
227
+ b::Element(e::Situational, "Tariff Item Part"),
228
+ b::Element(e::Situational, "Freight Class Code"),
229
+ b::Element(e::Situational, "Tariff Supplement Identifier"),
230
+ b::Element(e::Situational, "Ex Parte"),
231
+ b::Element(e::Situational, "Date"),
232
+ b::Element(e::Situational, "Rate Base Number"),
233
+ b::Element(e::Situational, "Tariff Column"),
234
+ b::Element(e::Situational, "Tariff Distance"),
235
+ b::Element(e::Situational, "Distance Qualifier"),
236
+ b::Element(e::Situational, "City Name"),
237
+ b::Element(e::Situational, "State or Province Code")))),
238
+
239
+ d::TableDef.summary("Summary",
240
+ b::Segment(10, s::L3, "Total Weight and Charges",
241
+ r::Situational, d::RepeatCount.bounded(1),
242
+ b::Element(e::Required, "Weight"),
243
+ b::Element(e::Required, "Weight Qualifier"),
244
+ b::Element(e::Situational, "Freight Rate"),
245
+ b::Element(e::Situational, "Rate/Value Qualifier"),
246
+ b::Element(e::Situational, "Charge"),
247
+ b::Element(e::Situational, "Advances"),
248
+ b::Element(e::NotUsed, "Prepaid Amount"),
249
+ b::Element(e::NotUsed, "Special Charge or Allowance Code"),
250
+ b::Element(e::Situational, "Volume"),
251
+ b::Element(e::Situational, "Volume Unit Qualifier"),
252
+ b::Element(e::Required, "Lading Quantity"),
253
+ b::Element(e::NotUsed, "Weight Unit Code"),
254
+ b::Element(e::NotUsed, "Tariff Number"),
255
+ b::Element(e::Situational, "Declared Value"),
256
+ b::Element(e::Situational, "Rate/Value Qualifier")),
257
+
258
+ b::Segment(20, s::SE, "Transaction Set Trailer",
259
+ r::Required, d::RepeatCount.bounded(1),
260
+ b::Element(e::Situational, "Number of Included Segments"),
261
+ b::Element(e::Situational, "Transaction Set Control Number"))))
262
+
263
+ end
264
+ end
265
+ end
266
+ end
267
+
@@ -45,7 +45,9 @@ module Stupidedi
45
45
  b::Element(e::Required, "Entity Identifier Code"),
46
46
  b::Element(e::Required, "Name"),
47
47
  b::Element(e::Situational, "Identification Code Qualifier"),
48
- b::Element(e::Situational, "Identification Code")),
48
+ b::Element(e::Situational, "Identification Code"),
49
+ b::Element(e::Situational, "Entity Relation Code"),
50
+ b::Element(e::Situational, "Entity Identifier Code")),
49
51
 
50
52
  b::Segment(70, s::N3, "Address Information",
51
53
  r::Situational, d::RepeatCount.bounded(2),
@@ -57,7 +59,10 @@ module Stupidedi
57
59
  b::Element(e::Situational, "City Name"),
58
60
  b::Element(e::Situational, "State or Province Code"),
59
61
  b::Element(e::Situational, "Postal Code"),
60
- b::Element(e::Situational, "Country Code"))),
62
+ b::Element(e::Situational, "Country Code"),
63
+ b::Element(e::Situational, "Location Qualifier"),
64
+ b::Element(e::Situational, "Location Identifier"))),
65
+
61
66
 
62
67
  # BUG: Getting "undefined method 'position' for
63
68
  # #<Stupidedi::Schema::LoopDef when a segment is sandwiched
@@ -95,18 +100,25 @@ module Stupidedi
95
100
  r::Situational, d::RepeatCount.bounded(1),
96
101
  b::Element(e::Situational, "City Name"),
97
102
  b::Element(e::Situational, "State or Province Code"),
98
- b::Element(e::Situational, "Country Code")),
103
+ b::Element(e::Situational, "Country Code"),
104
+ b::Element(e::Situational, "Longitude Code"),
105
+ b::Element(e::Situational, "Latitude Code"),
106
+ b::Element(e::Situational, "Direction Identifier Code"),
107
+ b::Element(e::Situational, "Direction Identifier Code"),
108
+ b::Element(e::Situational, "Postal Code")),
99
109
 
100
110
  b::Segment(146, s::MS2, "Equipment or Container Owner and Type",
101
111
  r::Situational, d::RepeatCount.bounded(1),
102
112
  b::Element(e::Situational, "Standard Carrier Alpha Code"),
103
- b::Element(e::Situational, "Equipment Number"))),
113
+ b::Element(e::Situational, "Equipment Number"),
114
+ b::Element(e::Situational, "Equipment Description Code"),
115
+ b::Element(e::Situational, "Equipment Number Check Digit"))),
104
116
 
105
117
  b::Segment(150, s::L11, "Business Instructions and Reference Number",
106
118
  r::Situational, d::RepeatCount.bounded(10),
107
119
  b::Element(e::Situational, "Reference Identification"),
108
120
  b::Element(e::Required, "Reference Identification Qualifier"),
109
- b::Element(e::Required, "Description")),
121
+ b::Element(e::Situational, "Description")),
110
122
 
111
123
  b::Segment(200, s::AT8, "Shipment Weight, Packaging and Quantity Data",
112
124
  r::Situational, d::RepeatCount.bounded(10),
@@ -45,7 +45,8 @@ module Stupidedi
45
45
  b::Segment(80, s::L11, "Business Instructions and Reference Number",
46
46
  r::Situational, d::RepeatCount.bounded(200),
47
47
  b::Element(e::Situational, "Reference Identification"),
48
- b::Element(e::Situational, "Reference Identification Qualifier")),
48
+ b::Element(e::Situational, "Reference Identification Qualifier"),
49
+ b::Element(e::Situational, "Description")),
49
50
 
50
51
  b::Segment(90, s::G62, "Date/Time",
51
52
  r::Situational, d::RepeatCount.bounded(1),
@@ -65,12 +66,15 @@ module Stupidedi
65
66
 
66
67
  b::Segment(120, s::PLD, "Pallet Information",
67
68
  r::Situational, d::RepeatCount.bounded(1),
68
- b::Element(e::Required, "Quantity of Pallets Shipped")),
69
+ b::Element(e::Required, "Quantity of Pallets Shipped"),
70
+ b::Element(e::NotUsed, "Pallet Exchange Code"),
71
+ b::Element(e::NotUsed, "Weight Unit Code"),
72
+ b::Element(e::NotUsed, "Weight")),
69
73
 
70
74
  b::Segment(130, s::NTE, "Note/Special Instruction",
71
75
  r::Situational, d::RepeatCount.bounded(10),
72
- b::Element(e::Situational, "Note Reference Code"),
73
- b::Element(e::Situational, "Description")),
76
+ b::Element(e::Situational, "Note Reference Code"),
77
+ b::Element(e::Situational, "Description")),
74
78
 
75
79
  d::LoopDef.build("LOOP 0100",
76
80
  d::RepeatCount.bounded(5),
@@ -79,7 +83,9 @@ module Stupidedi
79
83
  b::Element(e::Required, "Entity Identifier Code"),
80
84
  b::Element(e::Required, "Name"),
81
85
  b::Element(e::Situational, "Identification Code Qualifier"),
82
- b::Element(e::Situational, "Identification Code")),
86
+ b::Element(e::Situational, "Identification Code"),
87
+ b::Element(e::NotUsed, "Entity Relationship Code"),
88
+ b::Element(e::NotUsed, "Entity Identifier Code")),
83
89
 
84
90
  b::Segment(160, s::N3, "Address Information",
85
91
  r::Situational, d::RepeatCount.bounded(2),
@@ -91,60 +97,92 @@ module Stupidedi
91
97
  b::Element(e::Situational, "City Name"),
92
98
  b::Element(e::Situational, "State or Province Code"),
93
99
  b::Element(e::Situational, "Postal Code"),
94
- b::Element(e::Situational, "Country Code")),
100
+ b::Element(e::Situational, "Country Code"),
101
+ b::Element(e::NotUsed, "Location Qualifier"),
102
+ b::Element(e::NotUsed, "Location Identifier")),
95
103
 
96
104
  b::Segment(190, s::G61, "Contact",
97
105
  r::Situational, d::RepeatCount.bounded(3),
98
106
  b::Element(e::Situational, "Contact Function Code"),
99
107
  b::Element(e::Situational, "Name"),
100
108
  b::Element(e::Situational, "Communication Number Qualifier"),
101
- b::Element(e::Situational, "Communication Number"))),
109
+ b::Element(e::Situational, "Communication Number"),
110
+ b::Element(e::NotUsed, "Contact Inquiry Reference"))),
102
111
 
103
112
  d::LoopDef.build("LOOP 0200",
104
113
  d::RepeatCount.bounded(10),
105
114
  b::Segment(200, s::N7, "Equipment Details",
106
115
  r::Required, d::RepeatCount.bounded(1),
107
- b::Element(e::NotUsed, "Not Available"),
116
+ b::Element(e::NotUsed, "Equipment Initial"),
108
117
  b::Element(e::Situational, "Equipment Number"),
109
- b::Element(e::NotUsed, "Not Available"),
110
- b::Element(e::NotUsed, "Not Available"),
111
- b::Element(e::NotUsed, "Not Available"),
112
- b::Element(e::NotUsed, "Not Available"),
113
- b::Element(e::NotUsed, "Not Available"),
114
- b::Element(e::NotUsed, "Not Available"),
115
- b::Element(e::NotUsed, "Not Available"),
116
- b::Element(e::NotUsed, "Not Available"),
118
+ b::Element(e::NotUsed, "Weight"),
119
+ b::Element(e::NotUsed, "Weight Qualifier"),
120
+ b::Element(e::NotUsed, "Tare Weight"),
121
+ b::Element(e::NotUsed, "Weight Allowance"),
122
+ b::Element(e::NotUsed, "Dunnage"),
123
+ b::Element(e::NotUsed, "Volume"),
124
+ b::Element(e::NotUsed, "Volume Unit Qualifier"),
125
+ b::Element(e::NotUsed, "Ownership Code"),
117
126
  b::Element(e::Situational, "Equipment Description Code"),
118
- b::Element(e::NotUsed, "Not Available"),
119
- b::Element(e::NotUsed, "Not Available"),
120
- b::Element(e::NotUsed, "Not Available"),
121
- b::Element(e::Situational, "Equipment Length")),
127
+ b::Element(e::NotUsed, "Standard Carrier Alpha Code"),
128
+ b::Element(e::NotUsed, "Temperature Control"),
129
+ b::Element(e::NotUsed, "Position"),
130
+ b::Element(e::Situational, "Equipment Length"),
131
+ b::Element(e::NotUsed, "Tare Qualifier Code"),
132
+ b::Element(e::NotUsed, "Weight Unit Code"),
133
+ b::Element(e::NotUsed, "Equipment Number Check Digit"),
134
+ b::Element(e::NotUsed, "Type of Service Code"),
135
+ b::Element(e::NotUsed, "Height"),
136
+ b::Element(e::NotUsed, "Width"),
137
+ b::Element(e::NotUsed, "Equipment Type"),
138
+ b::Element(e::NotUsed, "Standard Carrier Alpha Code"),
139
+ b::Element(e::NotUsed, "Car Type Code")),
122
140
 
123
141
  b::Segment(208, s::MEA, "Measurements",
124
142
  r::Situational, d::RepeatCount.bounded(1),
125
- b::Element(e::NotUsed, "Not Available"),
126
- b::Element(e::NotUsed, "Not Available"),
127
- b::Element(e::NotUsed, "Not Available"),
128
- b::Element(e::NotUsed, "Composite Unit of Measure"),
143
+ b::Element(e::Situational, "Measurement Reference ID Code"),
144
+ b::Element(e::Situational, "Measurement Qualifier"),
145
+ b::Element(e::Situational, "Measurement Value"),
146
+ b::Element(e::Situational, "Composite Unit of Measure"),
129
147
  b::Element(e::Situational, "Range Minimum"),
130
- b::Element(e::Situational, "Range Maximum")),
148
+ b::Element(e::Situational, "Range Maximum"),
149
+ b::Element(e::NotUsed, "Measurement Significance Code"),
150
+ b::Element(e::NotUsed, "Measurement Attribute Code"),
151
+ b::Element(e::NotUsed, "Surface/Layer/Position Code"),
152
+ b::Element(e::NotUsed, "Measurement Method or Device Code"),
153
+ b::Element(e::NotUsed, "Code List Qualifier Code"),
154
+ b::Element(e::NotUsed, "Industry Code")),
131
155
 
132
156
  b::Segment(210, s::M7, "Seal Numbers",
133
157
  r::Situational, d::RepeatCount.bounded(2),
134
- b::Element(e::Situational, "Seal Number")))),
158
+ b::Element(e::Situational, "Seal Number"),
159
+ b::Element(e::NotUsed, "Seal Number"),
160
+ b::Element(e::NotUsed, "Seal Number"),
161
+ b::Element(e::NotUsed, "Seal Number"),
162
+ b::Element(e::NotUsed, "Entity Identifier Code")))),
135
163
 
136
- d::TableDef.header("Detail",
164
+ d::TableDef.detail("Detail",
137
165
  d::LoopDef.build("LOOP 0300",
138
166
  d::RepeatCount.bounded(999),
139
167
  b::Segment(10, s::S5, "Stop Off Details",
140
168
  r::Required, d::RepeatCount.bounded(1),
141
169
  b::Element(e::Situational, "Stop Sequence Number"),
142
- b::Element(e::Situational, "Stop Reason Code")),
170
+ b::Element(e::Situational, "Stop Reason Code"),
171
+ b::Element(e::Situational, "Weight"),
172
+ b::Element(e::Situational, "Weight Unit Code"),
173
+ b::Element(e::Situational, "Number of Units Shipped"),
174
+ b::Element(e::Situational, "Unit of Measure Code"),
175
+ b::Element(e::Situational, "Volume"),
176
+ b::Element(e::Situational, "Volume Unit Qualifier"),
177
+ b::Element(e::NotUsed, "Description"),
178
+ b::Element(e::NotUsed, "Standard Point Location Code"),
179
+ b::Element(e::NotUsed, "Accomplish Code")),
143
180
 
144
181
  b::Segment(20, s::L11, "Business Instructions and Reference Number",
145
182
  r::Situational, d::RepeatCount.bounded(200),
146
183
  b::Element(e::Situational, "Reference Identification"),
147
- b::Element(e::Situational, "Reference Identification Qualifier")),
184
+ b::Element(e::Situational, "Reference Identification Qualifier"),
185
+ b::Element(e::Situational, "Description")),
148
186
 
149
187
  b::Segment(30, s::G62, "Date/Time",
150
188
  r::Situational, d::RepeatCount.bounded(2),
@@ -154,6 +192,32 @@ module Stupidedi
154
192
  b::Element(e::Situational, "Time"),
155
193
  b::Element(e::Situational, "Time Code")),
156
194
 
195
+ b::Segment(40, s::AT8, "Shipment Weight, Packaging and Quantity Data",
196
+ r::Situational, d::RepeatCount.bounded(1),
197
+ b::Element(e::Required, "Weight Qualifier"),
198
+ b::Element(e::Required, "Weight Unit Code"),
199
+ b::Element(e::Required, "Weight"),
200
+ b::Element(e::Required, "Lading Quantity"),
201
+ b::Element(e::Situational, "Lading Quantity"),
202
+ b::Element(e::Situational, "Volume Unit Qualifier"),
203
+ b::Element(e::Situational, "Volume")),
204
+
205
+ b::Segment(50, s::LAD, "Lading Detail",
206
+ r::Situational, d::RepeatCount.bounded(999),
207
+ b::Element(e::Situational, "Packaging Form Code"),
208
+ b::Element(e::Situational, "Lading Quantity"),
209
+ b::Element(e::Situational, "Weight Unit Code"),
210
+ b::Element(e::Situational, "Unit Weight"),
211
+ b::Element(e::Situational, "Weight Unit Code"),
212
+ b::Element(e::Situational, "Weight"),
213
+ b::Element(e::Situational, "Product/Service ID Qualifier"),
214
+ b::Element(e::Situational, "Product/Service ID"),
215
+ b::Element(e::Situational, "Product/Service ID Qualifier"),
216
+ b::Element(e::Situational, "Product/Service ID"),
217
+ b::Element(e::Situational, "Product/Service ID Qualifier"),
218
+ b::Element(e::Situational, "Product/Service ID"),
219
+ b::Element(e::Situational, "Lading Description")),
220
+
157
221
  b::Segment(65, s::NTE, "Note/Special Instruction",
158
222
  r::Situational, d::RepeatCount.bounded(20),
159
223
  b::Element(e::Situational, "Note Reference Code"),
@@ -166,7 +230,9 @@ module Stupidedi
166
230
  b::Element(e::Required, "Entity Identifier Code"),
167
231
  b::Element(e::Required, "Name"),
168
232
  b::Element(e::Situational, "Identification Code Qualifier"),
169
- b::Element(e::Situational, "Identification Code")),
233
+ b::Element(e::Situational, "Identification Code"),
234
+ b::Element(e::NotUsed, "Entity Relationship Code"),
235
+ b::Element(e::NotUsed, "Entity Identifier Code")),
170
236
 
171
237
  b::Segment(90, s::N3, "Address Information",
172
238
  r::Situational, d::RepeatCount.bounded(2),
@@ -178,14 +244,17 @@ module Stupidedi
178
244
  b::Element(e::Situational, "City Name"),
179
245
  b::Element(e::Situational, "State or Province Code"),
180
246
  b::Element(e::Situational, "Postal Code"),
181
- b::Element(e::Situational, "Country Code")),
247
+ b::Element(e::Situational, "Country Code"),
248
+ b::Element(e::NotUsed, "Location Qualifier"),
249
+ b::Element(e::NotUsed, "Location Identifier")),
182
250
 
183
251
  b::Segment(120, s::G61, "Contact",
184
252
  r::Situational, d::RepeatCount.bounded(3),
185
253
  b::Element(e::Situational, "Contact Function Code"),
186
254
  b::Element(e::Situational, "Name"),
187
255
  b::Element(e::Situational, "Communication Number Qualifier"),
188
- b::Element(e::Situational, "Communication Number"))),
256
+ b::Element(e::Situational, "Communication Number"),
257
+ b::Element(e::NotUsed, "Contact Inquiry Reference"))),
189
258
 
190
259
  d::LoopDef.build("LOOP 0320",
191
260
  d::RepeatCount.bounded(99),
@@ -199,7 +268,8 @@ module Stupidedi
199
268
  b::Element(e::Situational, "Marks and Numbers"),
200
269
  b::Element(e::Situational, "Marks and Numbers Qualifier"),
201
270
  b::Element(e::Situational, "SKU"),
202
- b::Element(e::Situational, "SKU Qualifier Code")),
271
+ b::Element(e::Situational, "SKU Qualifier Code"),
272
+ b::Element(e::NotUsed, "Compartment ID Code")),
203
273
 
204
274
  b::Segment(135, s::AT8, "Shipment Weight, Packaging and Quantity Data",
205
275
  r::Situational, d::RepeatCount.bounded(1),
@@ -210,7 +280,7 @@ module Stupidedi
210
280
  b::Element(e::Situational, "Lading Quantity"),
211
281
  b::Element(e::Situational, "Volume Unit Qualifier"),
212
282
  b::Element(e::Situational, "Volume")),
213
-
283
+
214
284
  d::LoopDef.build("LOOP 0325",
215
285
  d::RepeatCount.bounded(99),
216
286
  b::Segment(140, s::G61, "Contact",
@@ -218,44 +288,169 @@ module Stupidedi
218
288
  b::Element(e::Situational, "Contact Function Code", b::Values("HM")),
219
289
  b::Element(e::Situational, "Name"),
220
290
  b::Element(e::Situational, "Communication Number Qualifier", b::Values("TE")),
221
- b::Element(e::Situational, "Communication Number")),
291
+ b::Element(e::Situational, "Communication Number"),
292
+ b::Element(e::NotUsed, "Contact Inquiry Reference")),
222
293
 
223
294
  b::Segment(141, s::L11, "Business Instructions and Reference Number",
224
295
  r::Situational, d::RepeatCount.bounded(30),
225
296
  b::Element(e::Situational, "Reference Identification"),
226
- b::Element(e::Situational, "Reference Identification Qualifier")),
297
+ b::Element(e::Situational, "Reference Identification Qualifier"),
298
+ b::Element(e::Situational, "Description")),
227
299
 
228
300
  d::LoopDef.build("LOOP 0330",
229
301
  d::RepeatCount.bounded(25),
230
302
  b::Segment(143, s::LH1, "Hazardous Identification Information",
231
- r::Required, d::RepeatCount.bounded(1),
303
+ r::Situational, d::RepeatCount.bounded(1),
232
304
  b::Element(e::Required, "Unit or Basis for Measurement Code"),
233
- b::Element(e::Situational, "Lading Quantity"),
234
- b::Element(e::Required, "UN/NA Identification Code"),
235
- b::Element(e::NotUsed, "Not Available"),
236
- b::Element(e::NotUsed, "Not Available"),
237
- b::Element(e::NotUsed, "Not Available"),
238
- b::Element(e::NotUsed, "Not Available"),
239
- b::Element(e::NotUsed, "Not Available"),
240
- b::Element(e::NotUsed, "Not Available"),
241
- b::Element(e::Required, "Packing Group Code")),
305
+ b::Element(e::Required, "Lading Quantity"),
306
+ b::Element(e::Situational, "UN/NA Identification Code"),
307
+ b::Element(e::Situational, "Hazardous Materials Page"),
308
+ b::Element(e::Situational, "Commodity Code"),
309
+ b::Element(e::Situational, "Unit or Basis for Measurement Code"),
310
+ b::Element(e::Situational, "Quantity"),
311
+ b::Element(e::NotUsed, "Compartment ID Code"),
312
+ b::Element(e::NotUsed, "Residue Indicator Code"),
313
+ b::Element(e::Situational, "Packing Group Code"),
314
+ b::Element(e::NotUsed, "Interim Hazardous Material Regulatory Number"),
315
+ b::Element(e::NotUsed, "Industry Code")),
242
316
 
243
317
  b::Segment(144, s::LH2, "Hazardous Classification Information",
244
318
  r::Situational, d::RepeatCount.bounded(4),
245
319
  b::Element(e::Required, "Hazardous Classification"),
246
- b::Element(e::Required, "Hazardous Class Qualifier")),
320
+ b::Element(e::Required, "Hazardous Class Qualifier"),
321
+ b::Element(e::NotUsed, "Hazardous Placard Notation"),
322
+ b::Element(e::NotUsed, "Hazardous Endorsement"),
323
+ b::Element(e::NotUsed, "Reportable Quantity Code"),
324
+ b::Element(e::NotUsed, "Unit or Basis for Measurement Code"),
325
+ b::Element(e::NotUsed, "Temperature"),
326
+ b::Element(e::NotUsed, "Unit or Basis for Measurement Code"),
327
+ b::Element(e::NotUsed, "Temperature"),
328
+ b::Element(e::NotUsed, "Unit or Basis for Measurement Code"),
329
+ b::Element(e::NotUsed, "Temperature"),
330
+ b::Element(e::NotUsed, "Weight Unit Code"),
331
+ b::Element(e::NotUsed, "Net Explosive Quantity")),
247
332
 
248
333
  b::Segment(145, s::LH3, "Hazardous Material Shipping Name",
249
334
  r::Situational, d::RepeatCount.bounded(10),
250
335
  b::Element(e::Required, "Hazardous Material Shipping Name"),
251
- b::Element(e::Required, "Hazardous Material Shipping Name Qualifier")),
336
+ b::Element(e::Required, "Hazardous Material Shipping Name Qualifier"),
337
+ b::Element(e::NotUsed, "N.O.S. Indicator Code"),
338
+ b::Element(e::NotUsed, "Yes/No Condition or Response Code")),
252
339
 
253
340
  b::Segment(146, s::LFH, "Freeform Hazardous Material Information",
254
341
  r::Situational, d::RepeatCount.bounded(20),
255
342
  b::Element(e::Required, "Hazardous Material Shipment Information Qualifier"),
256
- b::Element(e::Required, "Hazardous Material Shipment Information"))))))),
257
-
258
- d::TableDef.header("Summary",
343
+ b::Element(e::Required, "Hazardous Material Shipment Information"),
344
+ b::Element(e::NotUsed, "Hazardous Material Shipment Information"),
345
+ b::Element(e::NotUsed, "Hazard Zone Code"),
346
+ b::Element(e::NotUsed, "Unit or Basis for Measurement Code"),
347
+ b::Element(e::NotUsed, "Quantity"),
348
+ b::Element(e::NotUsed, "Quantity"),
349
+ b::Element(e::NotUsed, "Date"))))),
350
+
351
+ d::LoopDef.build("LOOP 0350",
352
+ d::RepeatCount.bounded(999),
353
+ b::Segment(150, s::OID, "Order Identification Detail",
354
+ r::Situational, d::RepeatCount.bounded(1),
355
+ b::Element(e::Optional, "Reference Identification"),
356
+ b::Element(e::Required, "Purchase Order Number"),
357
+ b::Element(e::Required, "Unit or Basis for Measurement Code"),
358
+ b::Element(e::Required, "Quantity"),
359
+ b::Element(e::Situational, "Weight Unit Code"),
360
+ b::Element(e::Situational, "Weight"),
361
+ b::Element(e::Situational, "Volume Unit Qualifier"),
362
+ b::Element(e::Situational, "Volume")),
363
+
364
+ d::LoopDef.build("LOOP 0360",
365
+ d::RepeatCount.bounded(99),
366
+ b::Segment(190, s::L5, "Description, Marks and Numbers",
367
+ r::Situational, d::RepeatCount.bounded(1),
368
+ b::Element(e::Situational, "Lading Line Item Number"),
369
+ b::Element(e::Situational, "Lading Description"),
370
+ b::Element(e::Situational, "Commodity Code"),
371
+ b::Element(e::Situational, "Commodity Code Qualifier"),
372
+ b::Element(e::NotUsed, "Packaging Code"),
373
+ b::Element(e::NotUsed, "Marks and Numbers"),
374
+ b::Element(e::NotUsed, "Marks and Numbers Qualifier"),
375
+ b::Element(e::NotUsed, "Commodity Code"),
376
+ b::Element(e::NotUsed, "Commodity Code Qualifier"),
377
+ b::Element(e::NotUsed, "Compartment ID Code")),
378
+
379
+ b::Segment(195, s::AT8, "Shipment Weight, Packaging and Quantity Data",
380
+ r::Situational, d::RepeatCount.bounded(1),
381
+ b::Element(e::Required, "Weight Qualifier"),
382
+ b::Element(e::Required, "Weight Unit Code"),
383
+ b::Element(e::Required, "Weight"),
384
+ b::Element(e::Required, "Lading Quantity"),
385
+ b::Element(e::Situational, "Lading Quantity"),
386
+ b::Element(e::Situational, "Volume Unit Qualifier"),
387
+ b::Element(e::Situational, "Volume")),
388
+
389
+ d::LoopDef.build("LOOP 0365",
390
+ d::RepeatCount.bounded(99),
391
+ b::Segment(200, s::G61, "Contact",
392
+ r::Situational, d::RepeatCount.bounded(1),
393
+ b::Element(e::Situational, "Contact Function Code"),
394
+ b::Element(e::Situational, "Name"),
395
+ b::Element(e::Situational, "Communication Number Qualifier"),
396
+ b::Element(e::Situational, "Communication Number"),
397
+ b::Element(e::NotUsed, "Contact Inquiry Reference")),
398
+
399
+ b::Segment(201, s::L11, "Business Instructions and Reference Number",
400
+ r::Situational, d::RepeatCount.bounded(5),
401
+ b::Element(e::Situational, "Reference Identification"),
402
+ b::Element(e::Situational, "Reference Identification Qualifier"),
403
+ b::Element(e::Situational, "Description")),
404
+
405
+ d::LoopDef.build("LOOP 0370",
406
+ d::RepeatCount.bounded(25),
407
+ b::Segment(203, s::LH1, "Hazardous Identification Information",
408
+ r::Situational, d::RepeatCount.bounded(1),
409
+ b::Element(e::Required, "Unit or Basis for Measurement Code"),
410
+ b::Element(e::Required, "Lading Quantity"),
411
+ b::Element(e::Situational, "UN/NA Identification Code"),
412
+ b::Element(e::Situational, "Hazardous Materials Page"),
413
+ b::Element(e::Situational, "Commodity Code"),
414
+ b::Element(e::Situational, "Unit or Basis for Measurement Code"),
415
+ b::Element(e::Situational, "Quantity"),
416
+ b::Element(e::NotUsed, "Compartment ID Code"),
417
+ b::Element(e::NotUsed, "Residue Indicator Code"),
418
+ b::Element(e::Situational, "Packing Group Code"),
419
+ b::Element(e::NotUsed, "Interim Hazardous Material Regulatory Number"),
420
+ b::Element(e::NotUsed, "Industry Code")),
421
+ b::Segment(204, s::LH2, "Hazardous Classification Information ",
422
+ r::Situational, d::RepeatCount.bounded(4),
423
+ b::Element(e::Required, "Hazardous Classification"),
424
+ b::Element(e::Required, "Hazardous Class Qualifier"),
425
+ b::Element(e::NotUsed, "Hazardous Placard Notation"),
426
+ b::Element(e::NotUsed, "Hazardous Endorsement"),
427
+ b::Element(e::NotUsed, "Reportable Quantity Code"),
428
+ b::Element(e::NotUsed, "Unit or Basis for Measurement Code"),
429
+ b::Element(e::NotUsed, "Temperature"),
430
+ b::Element(e::NotUsed, "Unit or Basis for Measurement Code"),
431
+ b::Element(e::NotUsed, "Temperature"),
432
+ b::Element(e::NotUsed, "Unit or Basis for Measurement Code"),
433
+ b::Element(e::NotUsed, "Temperature"),
434
+ b::Element(e::NotUsed, "Weight Unit Code"),
435
+ b::Element(e::NotUsed, "Net Explosive Quantity")),
436
+ b::Segment(205, s::LH3, "Hazardous Material Shipping Name",
437
+ r::Situational, d::RepeatCount.bounded(10),
438
+ b::Element(e::Required, "Hazardous Material Shipping Name"),
439
+ b::Element(e::Required, "Hazardous Material Shipping Name Qualifier"),
440
+ b::Element(e::NotUsed, "N.O.S. Indicator Code"),
441
+ b::Element(e::NotUsed, "Yes/No Condition or Response Code")),
442
+ b::Segment(206, s::LFH, "Freeform Hazardous Material Information",
443
+ r::Situational, d::RepeatCount.bounded(20),
444
+ b::Element(e::Required, "Hazardous Material Shipment Information Qualifier"),
445
+ b::Element(e::Required, "Hazardous Material Shipment Information"),
446
+ b::Element(e::NotUsed, "Hazardous Material Shipment Information"),
447
+ b::Element(e::NotUsed, "Hazard Zone Code"),
448
+ b::Element(e::NotUsed, "Unit or Basis for Measurement Code"),
449
+ b::Element(e::NotUsed, "Quantity"),
450
+ b::Element(e::NotUsed, "Quantity"),
451
+ b::Element(e::NotUsed, "Date")))))))),
452
+
453
+ d::TableDef.summary("Summary",
259
454
  b::Segment(10, s::L3, "Total Weight and Charges",
260
455
  r::Situational, d::RepeatCount.bounded(1),
261
456
  b::Element(e::Required, "Weight"),
@@ -263,14 +458,14 @@ module Stupidedi
263
458
  b::Element(e::Situational, "Freight Rate"),
264
459
  b::Element(e::Situational, "Rate/Value Qualifier"),
265
460
  b::Element(e::Situational, "Charge"),
266
- b::Element(e::NotUsed, "Not Available"),
267
- b::Element(e::NotUsed, "Not Available"),
268
- b::Element(e::NotUsed, "Not Available"),
461
+ b::Element(e::NotUsed, "Advances"),
462
+ b::Element(e::NotUsed, "Prepaid Amount"),
463
+ b::Element(e::NotUsed, "Special Charge or Allowance Code"),
269
464
  b::Element(e::Situational, "Volume"),
270
465
  b::Element(e::Situational, "Volume Unit Qualifier"),
271
- b::Element(e::NotUsed, "Not Available"),
272
- b::Element(e::NotUsed, "Not Available"),
273
- b::Element(e::NotUsed, "Not Available"),
466
+ b::Element(e::Situational, "Lading Quantity"),
467
+ b::Element(e::Situational, "Weight Unit Code"),
468
+ b::Element(e::NotUsed, "Tariff Number"),
274
469
  b::Element(e::Situational, "Declared Value"),
275
470
  b::Element(e::Situational, "Rate/Value Qualifier")),
276
471