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
@@ -31,6 +31,9 @@ module Stupidedi
31
31
  autoload :QM214,
32
32
  "stupidedi/contrib/004010/transaction_set_defs/QM214"
33
33
 
34
+ autoload :IM210,
35
+ "stupidedi/contrib/004010/transaction_set_defs/IM210"
36
+
34
37
  autoload :GF990, # Response to a Load Tender
35
38
  "stupidedi/contrib/004010/transaction_set_defs/GF990"
36
39
 
@@ -0,0 +1,47 @@
1
+ # frozen_string_literal: true
2
+ module Stupidedi
3
+ module Contrib
4
+ module FortyTen
5
+ module TransactionSetDefs
6
+ d = Schema
7
+ r = SegmentReqs
8
+ s = SegmentDefs
9
+
10
+ IM210 = d::TransactionSetDef.build("IM", "210",
11
+ "Motor Carrier Freight Details and Invoice",
12
+
13
+ d::TableDef.header("Heading",
14
+ s:: ST.use( 10, r::Mandatory, d::RepeatCount.bounded(1)),
15
+ s:: B3.use( 20, r::Mandatory, d::RepeatCount.bounded(1)),
16
+ s:: C3.use( 40, r::Mandatory, d::RepeatCount.bounded(1)),
17
+ s:: N9.use( 60, r::Optional, d::RepeatCount.bounded(300)),
18
+ s::G62.use( 70, r::Optional, d::RepeatCount.bounded(6)),
19
+ s:: R3.use( 80, r::Optional, d::RepeatCount.bounded(12)),
20
+ s:: H3.use( 90, r::Optional, d::RepeatCount.bounded(6)),
21
+
22
+ d::LoopDef.build("0100", d::RepeatCount.bounded(5),
23
+ s:: N1.use(110, r::Mandatory, d::RepeatCount.bounded(1)),
24
+ s:: N3.use(130, r::Mandatory, d::RepeatCount.bounded(2)),
25
+ s:: N4.use(140, r::Mandatory, d::RepeatCount.bounded(1)),
26
+ s:: N9.use(150, r::Optional, d::RepeatCount.bounded(5)))),
27
+
28
+ d::LoopDef.build("0200", d::RepeatCount.bounded(10),
29
+ s:: N7.use(160, r::Mandatory, d::RepeatCount.bounded(1))),
30
+
31
+ d::TableDef.detail("Detail",
32
+ d::LoopDef.build("0400", d::RepeatCount.unbounded,
33
+ s:: LX.use(120, r::Mandatory, d::RepeatCount.bounded(1)),
34
+ s:: N9.use(130, r::Mandatory, d::RepeatCount.bounded(5)),
35
+ s:: L5.use(140, r::Optional, d::RepeatCount.bounded(30)),
36
+ s:: L0.use(170, r::Optional, d::RepeatCount.bounded(10)),
37
+ s:: L1.use(180, r::Optional, d::RepeatCount.bounded(10)),
38
+ s:: L4.use(190, r::Optional, d::RepeatCount.bounded(10)),
39
+ s:: L7.use(200, r::Optional, d::RepeatCount.bounded(10)))),
40
+
41
+ d::TableDef.summary("Summary",
42
+ s:: L3.use(10, r::Optional, d::RepeatCount.bounded(1)),
43
+ s:: SE.use(20, r::Mandatory, d::RepeatCount.bounded(1))))
44
+ end
45
+ end
46
+ end
47
+ end
@@ -36,6 +36,7 @@ module Stupidedi
36
36
  s:: S5.use(10, r::Mandatory, d::RepeatCount.bounded(1)),
37
37
  s::L11.use(20, r::Optional, d::RepeatCount.bounded(200)),
38
38
  s::G62.use(30, r::Optional, d::RepeatCount.bounded(2)),
39
+ s::LAD.use(50, r::Optional, d::RepeatCount.bounded(999)),
39
40
  s::NTE.use(65, r::Optional, d::RepeatCount.bounded(20)),
40
41
 
41
42
  d::LoopDef.build("0310", d::RepeatCount.bounded(1),
@@ -56,9 +57,26 @@ module Stupidedi
56
57
  s::LH1.use(143, r::Optional, d::RepeatCount.bounded(1)),
57
58
  s::LH2.use(144, r::Optional, d::RepeatCount.bounded(4)),
58
59
  s::LH3.use(145, r::Optional, d::RepeatCount.bounded(10)),
59
- s::LFH.use(146, r::Optional, d::RepeatCount.bounded(20))))))),
60
+ s::LFH.use(146, r::Optional, d::RepeatCount.bounded(20))))),
60
61
 
61
- d::TableDef.detail("Summary",
62
+ d::LoopDef.build("0350", d::RepeatCount.bounded(999),
63
+ s::OID.use(150, r::Optional, d::RepeatCount.bounded(1)),
64
+
65
+ d::LoopDef.build("0360", d::RepeatCount.bounded(99),
66
+ s:: L5.use(190, r::Optional, d::RepeatCount.bounded(1)),
67
+ s::AT8.use(195, r::Optional, d::RepeatCount.bounded(1)),
68
+
69
+ d::LoopDef.build("0365", d::RepeatCount.bounded(99),
70
+ s::G61.use(200, r::Optional, d::RepeatCount.bounded(1)),
71
+ s::L11.use(201, r::Optional, d::RepeatCount.bounded(5)),
72
+
73
+ d::LoopDef.build("0370", d::RepeatCount.bounded(25),
74
+ s::LH1.use(203, r::Optional, d::RepeatCount.bounded(1)),
75
+ s::LH2.use(204, r::Optional, d::RepeatCount.bounded(4)),
76
+ s::LH3.use(205, r::Optional, d::RepeatCount.bounded(10)),
77
+ s::LFH.use(206, r::Optional, d::RepeatCount.bounded(20)))))))),
78
+
79
+ d::TableDef.summary("Summary",
62
80
  s:: L3.use(10, r::Optional, d::RepeatCount.bounded(1)),
63
81
  s:: SE.use(20, r::Mandatory, d::RepeatCount.bounded(1))))
64
82
  end
@@ -1,5 +1,5 @@
1
1
  # frozen_string_literal: true
2
2
 
3
3
  module Stupidedi
4
- VERSION = "1.2.14"
4
+ VERSION = "1.2.15"
5
5
  end
@@ -13,6 +13,7 @@ module Stupidedi
13
13
  s = Schema
14
14
 
15
15
  E2 = t::Nn.new(:E2 , "Number of Accepted Transaction Sets" , 1, 6, 0)
16
+ E16 = t::ID.new(:E16 , "Charge Method of Payment" , 1, 1)
16
17
  E19 = t::AN.new(:E19 , "City Name" , 2, 30)
17
18
  E22 = t::AN.new(:E22 , "Commodity Code" , 1, 30)
18
19
  E23 = t::ID.new(:E23 , "Commodity Code Qualifier" , 1, 1,
@@ -27,6 +28,8 @@ module Stupidedi
27
28
  s::CodeList.external("5"))
28
29
 
29
30
  E28 = t::Nn.new(:E28 , "Group Control Number" , 1, 9, 0)
31
+ E32 = t::DT.new(:E32 , "Invoice Due Date" , 8, 8)
32
+ E39 = t::ID.new(:E39 , "Entitlement Code" , 1, 1)
30
33
 
31
34
  E40 = t::ID.new(:E40 , "Equipment Description Code" , 2, 2,
32
35
  s::CodeList.build(
@@ -39,6 +42,8 @@ module Stupidedi
39
42
  "TL" => "Trailer (not otherwise specified)",
40
43
  "TV" => "Truck, Van"))
41
44
 
45
+ E46 = t::AN.new(:E46 , "Ex Parte" , 4, 4)
46
+
42
47
  E56 = t::ID.new(:E56 , "Type of Service Code" , 2, 2,
43
48
  s::CodeList.build(
44
49
  "AI" => "Transport Mode Change",
@@ -288,19 +293,23 @@ module Stupidedi
288
293
  E67 = t::AN.new(:E67 , "Identification Code" , 2, 80)
289
294
  E71 = t::Nn.new(:E71 , "Inquiry Request Number" , 1, 3, 0)
290
295
  E74 = t:: R.new(:E74 , "Declared Value" , 2, 12)
296
+ E76 = t::AN.new(:E76 , "Invoice Number" , 1, 22)
291
297
  E79 = t::AN.new(:E79 , "Lading Description" , 1, 50)
292
298
  E80 = t::Nn.new(:E80 , "Lading Quantity" , 1, 7, 0)
293
299
  E81 = t:: R.new(:E81 , "Weight" , 1, 10)
300
+ E82 = t:: R.new(:E82 , "Length" , 1, 8)
294
301
  E86 = t::ID.new(:E86 , "Total Equipment" , 1, 3)
295
302
  E87 = t::AN.new(:E87 , "Marks and Numbers" , 1, 48)
296
303
  E88 = t::ID.new(:E88 , "Marks and Numbers Qualifier" , 1, 2,
297
304
  s::CodeList.build(
298
305
  "UP" => "U.P.C. Consumer Package Code (1-5-5-1)",
299
306
  "GM" => "SSCC-18 and Application Identifier"))
307
+ E90 = t:: R.new(:E90 , "Height" , 1, 8)
300
308
  E91 = t::ID.new(:E91 , "Transportation Method/Type Code" , 1, 2,
301
309
  s::CodeList.build(
302
310
  "A" => "Air",
303
311
  "H" => "Customer Pickup",
312
+ "J" => "Motor",
304
313
  "M" => "Motor (Common Carrier)",
305
314
  "R" => "Rail",
306
315
  "S" => "Ocean",
@@ -341,7 +350,13 @@ module Stupidedi
341
350
  "SU" => "Supplier/Manufacturer",
342
351
  "TT" => "Transfer To",
343
352
  "WH" => "Warehouse",
344
- "OB" => "Ordered By"))
353
+ "OB" => "Ordered By",
354
+ "N5" => "Signed BOL",
355
+ "FR" => "Contacted Customer",
356
+ "PW" => "Pick Up Address",
357
+ "AB" => "Additional Pick Up Address",
358
+ "DA" => "Delivery Address",
359
+ "AE" => "Addtional Delivery Address"))
345
360
 
346
361
  E100 = t::ID.new(:E100 , "Currency Code" , 3, 3,
347
362
  s::CodeList.external("5"))
@@ -402,6 +417,8 @@ module Stupidedi
402
417
  E116 = t::ID.new(:E116 , "Postal Code" , 3, 15,
403
418
  s::CodeList.external("51"))
404
419
  E117 = t::Nn.new(:E117 , "Prepaid Amount" , 1, 15, 2)
420
+ E119 = t::AN.new(:E119 , "Rate Basis Number" , 1, 6)
421
+ E120 = t::AN.new(:E120 , "Rate Combination Point" , 3, 9)
405
422
  E121 = t::ID.new(:E121 , "Rate Class Code" , 1, 3,
406
423
  s::CodeList.build(
407
424
  "A" => "Alternate Rating",
@@ -3966,6 +3983,7 @@ module Stupidedi
3966
3983
  "WTV" => "Weight Verification",
3967
3984
  "ZZZ" => "Mutually Defined"))
3968
3985
 
3986
+ E153 = t::AN.new(:E153 , "Special Handling Description" , 2, 30)
3969
3987
  E154 = t::ID.new(:E154 , "Standard Point Location Code" , 6, 9)
3970
3988
  E156 = t::ID.new(:E156 , "State or Province Code" , 2, 2,
3971
3989
  s::CodeList.external("22"))
@@ -3980,7 +3998,12 @@ module Stupidedi
3980
3998
  E165 = t::Nn.new(:E165 , "Stop Sequence Number" , 1, 3, 0)
3981
3999
  E166 = t::AN.new(:E166 , "Address Information" , 1, 55)
3982
4000
  E167 = t::Nn.new(:E167 , "Tare Weight" , 3, 8, 0)
3983
- E171 = t::AN.new(:E171 , "Tarriff Number" , 1, 7)
4001
+ E168 = t::ID.new(:E168 , "Tariff Agency Code" , 1, 4)
4002
+ E169 = t::AN.new(:E169 , "Tariff Item Number" , 1, 16)
4003
+ E170 = t::Nn.new(:E170 , "Tariff Item Part" , 1, 2, 0)
4004
+ E171 = t::AN.new(:E171 , "Tariff Number" , 1, 7)
4005
+ E172 = t::AN.new(:E172 , "Tariff Section" , 1, 2)
4006
+ E173 = t::AN.new(:E173 , "Tariff Supplement" , 1, 4)
3984
4007
  E176 = t::ID.new(:E176 , "Time Qualifier" , 1, 2,
3985
4008
  s::CodeList.build(
3986
4009
  "I" => "Ship Not Before Time",
@@ -3996,7 +4019,8 @@ module Stupidedi
3996
4019
 
3997
4020
  E187 = t::ID.new(:E187 , "Weight Qualifier" , 1, 2,
3998
4021
  s::CodeList.build(
3999
- "G" => "Gross Weight"))
4022
+ "G" => "Gross Weight",
4023
+ "N" => "Net Weight"))
4000
4024
 
4001
4025
  E188 = t::ID.new(:E188 , "Weight Unit Code" , 1, 1,
4002
4026
  s::CodeList.build(
@@ -4014,19 +4038,29 @@ module Stupidedi
4014
4038
  "A" => "Accomplished",
4015
4039
  "P" => "Pending"))
4016
4040
  E191 = t::Nn.new(:E191 , "Advances" , 1, 9, 2)
4041
+ E193 = t::Nn.new(:E193 , "Net Amount Due" , 1, 12, 2)
4017
4042
  E200 = t::AN.new(:E200 , "Hazardous Materials Page" , 1, 6)
4043
+ E202 = t::ID.new(:E202 , "Correction Indicator" , 2, 2,
4044
+ s::CodeList.build(
4045
+ "AD" => "Adjustment of Previous Freight Bill Charges",
4046
+ "BD" => "Balance Due Indicator",
4047
+ "RB" => "Rebilling (Ignore previous bill)"))
4018
4048
  E205 = t::Nn.new(:E205 , "Dunnage" , 1, 6, 0)
4019
4049
  E206 = t::AN.new(:E206 , "Equipment Initial" , 1, 4)
4020
4050
  E207 = t::AN.new(:E207 , "Equipment Number" , 1, 10)
4051
+ E211 = t::ID.new(:E215 , "Packaging Form Code" , 3, 3)
4021
4052
  E212 = t:: R.new(:E212 , "Unit Price" , 1, 17)
4022
4053
  E213 = t::Nn.new(:E213 , "Lading Line Item Number" , 1, 3, 0)
4023
4054
  E215 = t::ID.new(:E215 , "Hazardous Classification" , 1, 30)
4024
4055
  E218 = t::ID.new(:E218 , "Hazardous Placard Notation Code" , 14,40)
4025
4056
  E219 = t::AN.new(:E219 , "Position" , 1, 3)
4057
+ E220 = t:: R.new(:E215 , "Billed/Rated-as Quantity" , 1, 11)
4058
+ E221 = t::ID.new(:E215 , "Billed/Rated-as Qualifier" , 2, 2)
4026
4059
  E222 = t::ID.new(:E222 , "Hazardous Endorsement Code" , 4, 25,
4027
4060
  s::CodeList.external("83"))
4028
4061
  E224 = t::ID.new(:E224 , "Hazardous Material Shipping Name" , 1, 25)
4029
4062
  E225 = t::AN.new(:E225 , "Seal Number" , 2, 15)
4063
+ E227 = t::AN.new(:E227 , "Tariff Column" , 1, 2)
4030
4064
  E232 = t::Nn.new(:E232 , "Weight Allowance" , 2, 6, 0)
4031
4065
  E234 = t::AN.new(:E234 , "Product/Service ID" , 1, 48)
4032
4066
  E235 = t::ID.new(:E235 , "Product/Service ID Qualifier" , 2, 2,
@@ -4058,8 +4092,76 @@ module Stupidedi
4058
4092
  "ZZ" => "Mutually Defined"))
4059
4093
 
4060
4094
  E236 = t::ID.new(:E236 , "Price Identifier Code" , 3, 3)
4095
+ E241 = t::ID.new(:E241 , "Protective Service Code" , 1, 4)
4096
+ E242 = t::ID.new(:E242 , "Vent Instruction Code" , 1, 7)
4061
4097
  E254 = t::ID.new(:E254 , "Packing Group Code" , 1, 3)
4098
+ E257 = t::ID.new(:E257 , "Tariff Application Code" , 1, 1)
4062
4099
  E267 = t::Nn.new(:E267 , "Net Explosive Quantity" , 1, 10, 0)
4100
+ E276 = t::AN.new(:E276 , "Special Charge Description" , 2, 25,
4101
+ s::CodeList.build(
4102
+ "020" => "Address Correction",
4103
+ "405" => "Fuel Surcharge",
4104
+ "455" => "Insurance Premium",
4105
+ "520" => "Oversize Premium",
4106
+ "ADH" => "Advance Charges Handling",
4107
+ "APT" => "Appointment (Notification)",
4108
+ "ARB" => "Arbitrary (In Addition to Through Rates and Charges)",
4109
+ "BEY" => "Beyond Freight Charges",
4110
+ "BND" => "Bond Charges",
4111
+ "CLN" => "Cleaning Charge",
4112
+ "COL" => "Fee for Collecting COD Charge",
4113
+ "DEL" => "Delivery Charge",
4114
+ "DET" => "Detention of Trailers",
4115
+ "DIV" => "Diversion and Reconsignment",
4116
+ "DTL" => "Detention Loading",
4117
+ "DTU" => "Detention Unloading",
4118
+ "DTV" => "Detention (Vehicle)",
4119
+ "EIC" => "Export/Import Charge",
4120
+ "EVC" => "Excessive Value Charge",
4121
+ "EXW" => "Excess Weight",
4122
+ "FUE" => "Fuel Charge",
4123
+ "HAN" => "Handling Charges on Distribution Freight Forwarded Beyond",
4124
+ "HAZ" => "Hazardous Cargo Charge",
4125
+ "HOL" => "Sunday or Holiday Pick-up or Delivery",
4126
+ "IDL" => "Inside Delivery",
4127
+ "IPU" => "Inside Pick-up",
4128
+ "LAB" => "Extra Labor (Helper Service)",
4129
+ "LFT" => "Lift Gate (Truck) or Forklift Service at Pick-up/Delivery",
4130
+ "LOA" => "Loading (Labor Charges)",
4131
+ "MNC" => "Notify Consignee",
4132
+ "MRK" => "Marking or Tagging Charge",
4133
+ "MSC" => "Other Accessorial Service Charge",
4134
+ "MSG" => "Miscellaneous Charge",
4135
+ "OVR" => "Over Dimension",
4136
+ "PBE" => "Permits Bond Escort Attendant",
4137
+ "PER" => "Permit Charge",
4138
+ "PSC" => "Protective Service - Cold",
4139
+ "PSG" => "Protective Service Security with Armed Guards",
4140
+ "RCC" => "Reconsignment Charge",
4141
+ "RCL" => "Redelivery",
4142
+ "REP" => "Residential Pick-up",
4143
+ "RES" => "Residential Delivery",
4144
+ "SCL" => "Scale Charge",
4145
+ "SEG" => "Segregating (Sorting)",
4146
+ "SER" => "Service Charge (i.e. White Glove, Show Freight)",
4147
+ "SOC" => "Stop-off Charge",
4148
+ "SPC" => "Special Permits",
4149
+ "SPT" => "Spotting of Trailer",
4150
+ "SRG" => "Storage",
4151
+ "SSC" => "Stripping, Sorting, and Consolidation",
4152
+ "SSF" => "Single Shipment Fee",
4153
+ "STR" => "Storage in Transit",
4154
+ "SUF" => "Sufferance Warehouse Charge (Export or Import)",
4155
+ "TAX" => "Tax Charge",
4156
+ "TRA" => "Travel Charge",
4157
+ "TRF" => "Transfer Charge",
4158
+ "UND" => "Unloading",
4159
+ "UNL" => "Unloading (Labor Charge)",
4160
+ "URC" => "Unloading/Reloading Charge",
4161
+ "VOR" => "Vehicle Ordered but Not Used",
4162
+ "WRC" => "Load Weighing Charge",
4163
+ "WTV" => "Weight Verification Charge"))
4164
+
4063
4165
  E277 = t::ID.new(:E277 , "UN/NA Identification Code" , 6, 6)
4064
4166
  E280 = t:: R.new(:E280 , "Exchange Rate" , 4, 10)
4065
4167
  E285 = t::AN.new(:E285 , "Depositor Order Number" , 1, 22)
@@ -4077,6 +4179,8 @@ module Stupidedi
4077
4179
  "ZZ" => "Mutually Defined"))
4078
4180
 
4079
4181
  E289 = t::Nn.new(:E289 , "Multiple Price Quantity" , 1, 2, 0)
4182
+ E294 = t::Nn.new(:E294 , "Tariff Distance" , 1, 5, 0)
4183
+ E295 = t::ID.new(:E295 , "Distance Qualifier" , 1, 1)
4080
4184
  E301 = t::ID.new(:E301 , "Car Type Code" , 1, 4)
4081
4185
  E305 = t::ID.new(:E305 , "Transaction Handling Code" , 1, 2,
4082
4186
  s::CodeList.build(
@@ -4672,6 +4776,7 @@ module Stupidedi
4672
4776
  "CC" => "Shipment Complete on"))
4673
4777
 
4674
4778
  E369 = t::AN.new(:E369, "Free-form Description" , 1, 45)
4779
+ E372 = t::ID.new(:E372, "Liability Code" , 1, 1)
4675
4780
  E373 = t::DT.new(:E373 , "Date" , 8, 8)
4676
4781
  E374 = t::ID.new(:E374 , "Date/Time Qualifier" , 3, 3,
4677
4782
  s::CodeList.build(
@@ -4686,6 +4791,7 @@ module Stupidedi
4686
4791
  "038" => "Ship no later",
4687
4792
  "050" => "Received",
4688
4793
  "097" => "Transaction Creation",
4794
+ "140" => "Actual",
4689
4795
  "150" => "Service Period Start",
4690
4796
  "151" => "Service Period End",
4691
4797
  "175" => "Cancel if not shipped by",
@@ -4787,6 +4893,7 @@ module Stupidedi
4787
4893
  "11" => "Shipped Date",
4788
4894
  "17" => "Estimated Delivery Date",
4789
4895
  "19" => "Date Unloaded",
4896
+ "35" => "Delivered On This Date",
4790
4897
  "37" => "Ship Not Before Date",
4791
4898
  "38" => "Ship Not Later Than Date",
4792
4899
  "53" => "Deliver Not Before Date",
@@ -5341,7 +5448,9 @@ module Stupidedi
5341
5448
  E610 = t::Nn.new(:E610 , "Amount" , 1, 15, 2)
5342
5449
  E623 = t::ID.new(:E623 , "Time Code" , 2, 2,
5343
5450
  s::CodeList.build(
5344
- "LT" => "Local Time (Preferred Usage - Explain in detail)"))
5451
+ "LT" => "Local Time (Preferred Usage - Explain in detail)",
5452
+ "MT" => "Mountain Time",
5453
+ "CT" => "Central Time"))
5345
5454
 
5346
5455
  E625 = t::ID.new(:E625 , "COD Method of Payment Code" , 1, 1,
5347
5456
  s::CodeList.build(
@@ -7631,6 +7740,7 @@ module Stupidedi
7631
7740
  "ZZN" => "Zinc",
7632
7741
  "ZZR" => "Zirconium",
7633
7742
  "ZZZ" => "Mutually Defined"))
7743
+ E739 = t:: R.new(:E739 , "Measurement Value" , 1, 20)
7634
7744
 
7635
7745
  E740 = t:: R.new(:E740 , "Range Minimum" , 1, 20)
7636
7746
  E741 = t:: R.new(:E741 , "Range Maximum" , 1, 20)
@@ -9328,6 +9438,7 @@ module Stupidedi
9328
9438
  "A7" => "Refused by Consignee",
9329
9439
  "A9" => "Shipment Damaged",
9330
9440
  "AF" => "Carrier Departed Pick-up Location with Shipment",
9441
+ "AA" => "Estimated Pick Up",
9331
9442
  "AG" => "Estimated Delivery",
9332
9443
  "AH" => "Attempted Delivery",
9333
9444
  "AI" => "Shipment has been Reconsigned",
@@ -68,9 +68,16 @@ module Stupidedi
68
68
  autoload :AT8,
69
69
  "stupidedi/versions/functional_groups/004010/segment_defs/AT8"
70
70
 
71
+
71
72
  autoload :B2A,
72
73
  "stupidedi/versions/functional_groups/004010/segment_defs/B2A"
73
74
 
75
+ autoload :B3,
76
+ "stupidedi/versions/functional_groups/004010/segment_defs/B3"
77
+
78
+ autoload :C3,
79
+ "stupidedi/versions/functional_groups/004010/segment_defs/C3"
80
+
74
81
  autoload :G61,
75
82
  "stupidedi/versions/functional_groups/004010/segment_defs/G61"
76
83
 
@@ -83,18 +90,36 @@ module Stupidedi
83
90
  autoload :HL,
84
91
  "stupidedi/versions/functional_groups/004010/segment_defs/HL"
85
92
 
93
+ autoload :H3,
94
+ "stupidedi/versions/functional_groups/004010/segment_defs/H3"
95
+
86
96
  autoload :K1,
87
97
  "stupidedi/versions/functional_groups/004010/segment_defs/K1"
88
98
 
89
99
  autoload :L11,
90
100
  "stupidedi/versions/functional_groups/004010/segment_defs/L11"
91
101
 
102
+ autoload :L0,
103
+ "stupidedi/versions/functional_groups/004010/segment_defs/L0"
104
+
105
+ autoload :L1,
106
+ "stupidedi/versions/functional_groups/004010/segment_defs/L1"
107
+
92
108
  autoload :L3,
93
109
  "stupidedi/versions/functional_groups/004010/segment_defs/L3"
94
110
 
111
+ autoload :L4,
112
+ "stupidedi/versions/functional_groups/004010/segment_defs/L4"
113
+
95
114
  autoload :L5,
96
115
  "stupidedi/versions/functional_groups/004010/segment_defs/L5"
97
116
 
117
+ autoload :L7,
118
+ "stupidedi/versions/functional_groups/004010/segment_defs/L7"
119
+
120
+ autoload :LAD,
121
+ "stupidedi/versions/functional_groups/004010/segment_defs/LAD"
122
+
98
123
  autoload :LIN,
99
124
  "stupidedi/versions/functional_groups/004010/segment_defs/LIN"
100
125
 
@@ -164,6 +189,9 @@ module Stupidedi
164
189
  autoload :NTE,
165
190
  "stupidedi/versions/functional_groups/004010/segment_defs/NTE"
166
191
 
192
+ autoload :OID,
193
+ "stupidedi/versions/functional_groups/004010/segment_defs/OID"
194
+
167
195
  autoload :PLB,
168
196
  "stupidedi/versions/functional_groups/004010/segment_defs/PLB"
169
197
 
@@ -185,6 +213,9 @@ module Stupidedi
185
213
  autoload :QTY,
186
214
  "stupidedi/versions/functional_groups/004010/segment_defs/QTY"
187
215
 
216
+ autoload :R3,
217
+ "stupidedi/versions/functional_groups/004010/segment_defs/R3"
218
+
188
219
  autoload :REF,
189
220
  "stupidedi/versions/functional_groups/004010/segment_defs/REF"
190
221
 
@@ -0,0 +1,31 @@
1
+ # frozen_string_literal: true
2
+ module Stupidedi
3
+ module Versions
4
+ module FunctionalGroups
5
+ module FortyTen
6
+ module SegmentDefs
7
+
8
+ s = Schema
9
+ e = ElementDefs
10
+ r = ElementReqs
11
+
12
+ B3 = s::SegmentDef.build(:B3, "Beginning Segment for Carrier's Invoice",
13
+ "To transmit basic data relating to the carrier's invoice",
14
+ e::E147 .simple_use(r::Optional, s::RepeatCount.bounded(1)),
15
+ e::E76 .simple_use(r::Mandatory, s::RepeatCount.bounded(1)),
16
+ e::E145 .simple_use(r::Mandatory, s::RepeatCount.bounded(1)),
17
+ e::E146 .simple_use(r::Mandatory, s::RepeatCount.bounded(1)),
18
+ e::E188 .simple_use(r::Optional, s::RepeatCount.bounded(1)),
19
+ e::E373 .simple_use(r::Mandatory, s::RepeatCount.bounded(1)),
20
+ e::E193 .simple_use(r::Mandatory, s::RepeatCount.bounded(1)),
21
+ e::E202 .simple_use(r::Optional, s::RepeatCount.bounded(1)),
22
+ e::E32 .simple_use(r::Mandatory, s::RepeatCount.bounded(1)),
23
+ e::E374 .simple_use(r::Mandatory, s::RepeatCount.bounded(1)),
24
+ e::E140 .simple_use(r::Mandatory, s::RepeatCount.bounded(1)),
25
+ e::E373 .simple_use(r::Optional, s::RepeatCount.bounded(1)))
26
+
27
+ end
28
+ end
29
+ end
30
+ end
31
+ end