eddy 0.1.0 → 0.3.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.
Files changed (309) hide show
  1. checksums.yaml +4 -4
  2. data/.rubocop.yml +103 -37
  3. data/.solargraph.yml +4 -0
  4. data/.vscode/settings.json +17 -0
  5. data/.yardopts +2 -2
  6. data/CHANGELOG.md +50 -0
  7. data/Gemfile.lock +21 -7
  8. data/README.md +32 -3
  9. data/Rakefile +1 -10
  10. data/data/004010/code-lists/100.tsv +164 -0
  11. data/data/004010/code-lists/156.tsv +52 -0
  12. data/data/004010/code-lists/26.tsv +499 -0
  13. data/data/004010/code-lists/etc/100-fancy-definitions.tsv +164 -0
  14. data/data/004010/code-lists/etc/100-with-funds-codes.tsv +180 -0
  15. data/data/004010/code-lists/etc/26-alpha2.tsv +250 -0
  16. data/data/004010/code-lists/etc/26-alpha3.tsv +250 -0
  17. data/data/004010/elements-short.tsv +1405 -0
  18. data/data/004010/elements.tsv +3 -3
  19. data/data/004010/segments.tsv +1009 -1003
  20. data/data/004010/segments/ack.segment.yml +15 -0
  21. data/data/004010/segments/bak.segment.yml +9 -0
  22. data/data/004010/segments/beg.segment.yml +17 -0
  23. data/data/004010/segments/big.segment.yml +10 -0
  24. data/data/004010/segments/bsn.segment.yml +10 -0
  25. data/data/004010/segments/cad.segment.yml +14 -0
  26. data/data/004010/segments/ctp.segment.yml +19 -0
  27. data/data/004010/segments/ctt.segment.yml +13 -0
  28. data/data/004010/segments/dtm.segment.yml +7 -0
  29. data/data/004010/segments/envelope/ge.segment.yml +7 -0
  30. data/data/004010/segments/envelope/gs.segment.yml +13 -0
  31. data/data/004010/segments/envelope/iea.segment.yml +8 -0
  32. data/data/004010/segments/envelope/isa.segment.yml +22 -0
  33. data/data/004010/segments/envelope/se.segment.yml +7 -0
  34. data/data/004010/segments/envelope/st.segment.yml +12 -0
  35. data/data/004010/segments/hl.segment.yml +9 -0
  36. data/data/004010/segments/it1.segment.yml +20 -0
  37. data/data/004010/segments/lin.segment.yml +10 -0
  38. data/data/004010/segments/loop/hl.segment.yml +8 -0
  39. data/data/004010/segments/man.segment.yml +7 -0
  40. data/data/004010/segments/n1.segment.yml +9 -0
  41. data/data/004010/segments/n2.segment.yml +7 -0
  42. data/data/004010/segments/n3.segment.yml +6 -0
  43. data/data/004010/segments/n4.segment.yml +9 -0
  44. data/data/004010/segments/pid.segment.yml +10 -0
  45. data/data/004010/segments/po1.segment.yml +14 -0
  46. data/data/004010/segments/prf.segment.yml +9 -0
  47. data/data/004010/segments/ref.segment.yml +7 -0
  48. data/data/004010/segments/sac.segment.yml +20 -0
  49. data/data/004010/segments/sln.segment.yml +12 -0
  50. data/data/004010/segments/sn1.segment.yml +11 -0
  51. data/data/004010/segments/td1.segment.yml +13 -0
  52. data/data/004010/segments/td5.segment.yml +11 -0
  53. data/data/004010/segments/tds.segment.yml +10 -0
  54. data/data/schema/element_summary.json +60 -0
  55. data/data/schema/loop_summary.json +49 -0
  56. data/data/schema/segment_summary.json +66 -0
  57. data/data/schema/src/element_summary.schema.yml +73 -0
  58. data/data/schema/src/loop_summary.schema.yml +50 -0
  59. data/data/schema/src/segment_summary.schema.yml +59 -0
  60. data/data/schema/src/transaction_set_summary.schema.yml +27 -0
  61. data/data/schema/transaction_set_summary.json +33 -0
  62. data/data/sources.md +114 -145
  63. data/eddy.gemspec +6 -3
  64. data/exe/eddy +14 -0
  65. data/lib/definitions/elements/generated/1005.hierarchical_structure_code.rb +98 -0
  66. data/lib/definitions/elements/generated/1019.invoice_type_code.rb +40 -0
  67. data/lib/definitions/elements/generated/103.packaging_code.rb +29 -0
  68. data/lib/definitions/elements/generated/1166.contract_type_code.rb +87 -0
  69. data/lib/definitions/elements/generated/1232.purchase_category.rb +53 -0
  70. data/lib/definitions/elements/generated/127.reference_identification.rb +29 -0
  71. data/lib/definitions/elements/generated/128.reference_identification_qualifier.rb +1540 -0
  72. data/lib/definitions/elements/generated/1300.service_promotion_allowance_or_charge_code.rb +1090 -0
  73. data/lib/definitions/elements/generated/1301.agency_service_promotion_allowance_or_charge_code.rb +29 -0
  74. data/lib/definitions/elements/generated/133.routing_sequence_code.rb +60 -0
  75. data/lib/definitions/elements/generated/166.address_information.rb +29 -0
  76. data/lib/definitions/elements/generated/183.volume.rb +29 -0
  77. data/lib/definitions/elements/generated/187.weight_qualifier.rb +88 -0
  78. data/lib/definitions/elements/generated/19.city_name.rb +29 -0
  79. data/lib/definitions/elements/generated/206.equipment_initial.rb +29 -0
  80. data/lib/definitions/elements/generated/207.equipment_number.rb +29 -0
  81. data/lib/definitions/elements/generated/212.unit_price.rb +29 -0
  82. data/lib/definitions/elements/generated/22.commodity_code.rb +29 -0
  83. data/lib/definitions/elements/generated/23.commodity_code_qualifier.rb +60 -0
  84. data/lib/definitions/elements/generated/234.product_service_id.rb +29 -0
  85. data/lib/definitions/elements/generated/235.product_service_id_qualifier.rb +514 -0
  86. data/lib/definitions/elements/generated/236.price_identifier_code.rb +201 -0
  87. data/lib/definitions/elements/generated/248.allowance_or_charge_indicator.rb +44 -0
  88. data/lib/definitions/elements/generated/26.country_code.rb +535 -0
  89. data/lib/definitions/elements/generated/284.service_level_code.rb +103 -0
  90. data/lib/definitions/elements/generated/324.purchase_order_number.rb +29 -0
  91. data/lib/definitions/elements/generated/326.request_reference_number.rb +29 -0
  92. data/lib/definitions/elements/generated/327.change_order_sequence_number.rb +29 -0
  93. data/lib/definitions/elements/generated/328.release_number.rb +29 -0
  94. data/lib/definitions/elements/generated/330.quantity_ordered.rb +29 -0
  95. data/lib/definitions/elements/generated/347.hash_total.rb +29 -0
  96. data/lib/definitions/elements/generated/349.item_description_type.rb +40 -0
  97. data/lib/definitions/elements/generated/352.description.rb +29 -0
  98. data/lib/definitions/elements/generated/353.transaction_set_purpose_code.rb +102 -0
  99. data/lib/definitions/elements/generated/354.number_of_line_items.rb +30 -0
  100. data/lib/definitions/elements/generated/355.unit_or_basis_for_measurement_code.rb +831 -0
  101. data/lib/definitions/elements/generated/358.quantity_invoiced.rb +29 -0
  102. data/lib/definitions/elements/generated/367.contract_number.rb +29 -0
  103. data/lib/definitions/elements/generated/368.shipment_order_status_code.rb +139 -0
  104. data/lib/definitions/elements/generated/374.date_time_qualifier.rb +1149 -0
  105. data/lib/definitions/elements/generated/380.quantity.rb +29 -0
  106. data/lib/definitions/elements/generated/382.number_of_units_shipped.rb +29 -0
  107. data/lib/definitions/elements/generated/387.routing.rb +29 -0
  108. data/lib/definitions/elements/generated/396.shipment_identification.rb +29 -0
  109. data/lib/definitions/elements/generated/559.agency_qualifier_code.rb +213 -0
  110. data/lib/definitions/elements/generated/587.acknowledgment_type.rb +52 -0
  111. data/lib/definitions/elements/generated/610.amount.rb +30 -0
  112. data/lib/definitions/elements/generated/639.basis_of_unit_price_code.rb +128 -0
  113. data/lib/definitions/elements/generated/640.transaction_type_code.rb +483 -0
  114. data/lib/definitions/elements/generated/646.quantity_shipped_to_date.rb +29 -0
  115. data/lib/definitions/elements/generated/648.price_multiplier_qualifier.rb +43 -0
  116. data/lib/definitions/elements/generated/649.multiplier.rb +29 -0
  117. data/lib/definitions/elements/generated/66.identification_code_qualifier.rb +252 -0
  118. data/lib/definitions/elements/generated/662.relationship_code.rb +42 -0
  119. data/lib/definitions/elements/generated/668.line_item_status_code.rb +63 -0
  120. data/lib/definitions/elements/generated/67.identification_code.rb +29 -0
  121. data/lib/definitions/elements/generated/687.class_of_trade_code.rb +89 -0
  122. data/lib/definitions/elements/generated/750.product_process_characteristic_code.rb +254 -0
  123. data/lib/definitions/elements/generated/751.product_description_code.rb +29 -0
  124. data/lib/definitions/elements/generated/76.invoice_number.rb +29 -0
  125. data/lib/definitions/elements/generated/782.monetary_amount.rb +29 -0
  126. data/lib/definitions/elements/generated/786.security_level_code.rb +54 -0
  127. data/lib/definitions/elements/generated/79.lading_description.rb +29 -0
  128. data/lib/definitions/elements/generated/80.lading_quantity.rb +30 -0
  129. data/lib/definitions/elements/generated/87.marks_and_numbers.rb +29 -0
  130. data/lib/definitions/elements/generated/88.marks_and_numbers_qualifier.rb +57 -0
  131. data/lib/definitions/elements/generated/91.transportation_method_type_code.rb +108 -0
  132. data/lib/definitions/elements/generated/92.purchase_order_type_code.rb +106 -0
  133. data/lib/definitions/elements/generated/98.entity_identifier_code.rb +1349 -0
  134. data/lib/definitions/elements/manual/116.postal_code.rb +44 -0
  135. data/lib/definitions/elements/manual/124.application_receivers_code.rb +29 -0
  136. data/lib/definitions/elements/manual/140.standard_carrier_alpha_code.rb +211 -0
  137. data/lib/definitions/elements/manual/142.application_senders_code.rb +29 -0
  138. data/lib/definitions/elements/manual/143.transaction_set_identifier_code.rb +335 -0
  139. data/lib/definitions/elements/manual/156.state_or_province_code.rb +92 -0
  140. data/lib/definitions/elements/manual/28.group_control_number.rb +34 -0
  141. data/lib/definitions/elements/manual/329.transactional_set_control_number.rb +35 -0
  142. data/lib/definitions/elements/manual/337.time.rb +30 -0
  143. data/lib/definitions/elements/manual/350.assigned_identification.rb +33 -0
  144. data/lib/definitions/elements/manual/373.date.rb +30 -0
  145. data/lib/definitions/elements/manual/455.responsible_agency_code.rb +43 -0
  146. data/lib/definitions/elements/manual/479.functional_identifier_code.rb +271 -0
  147. data/lib/definitions/elements/manual/480.version_release_industry_identifier_code.rb +145 -0
  148. data/lib/definitions/elements/manual/784.length_of_binary_data.rb +30 -0
  149. data/lib/definitions/elements/manual/785.binary_data.rb +30 -0
  150. data/lib/definitions/elements/manual/96.number_of_included_segments.rb +30 -0
  151. data/lib/definitions/elements/manual/97.number_of_transaction_sets_included.rb +30 -0
  152. data/lib/definitions/elements/manual/hl/628.hierarchical_id_number.rb +29 -0
  153. data/lib/definitions/elements/manual/hl/734.hierarchical_parent_id_number.rb +29 -0
  154. data/lib/definitions/elements/manual/hl/735.hierarchical_level_code.rb +207 -0
  155. data/lib/definitions/elements/manual/hl/736.hierarchical_child_code.rb +39 -0
  156. data/lib/definitions/elements/manual/i/I01.authorization_information_qualifier.rb +48 -0
  157. data/lib/definitions/elements/manual/i/I02.authorization_information.rb +33 -0
  158. data/lib/definitions/elements/manual/i/I03.security_information_qualifier.rb +43 -0
  159. data/lib/definitions/elements/manual/i/I04.security_information.rb +33 -0
  160. data/lib/definitions/elements/manual/i/I05.interchange_id_qualifier.rb +75 -0
  161. data/lib/definitions/elements/manual/i/I06.interchange_sender_id.rb +29 -0
  162. data/lib/definitions/elements/manual/i/I07.interchange_receiver_id.rb +29 -0
  163. data/lib/definitions/elements/manual/i/I08.interchange_date.rb +35 -0
  164. data/lib/definitions/elements/manual/i/I09.interchange_time.rb +36 -0
  165. data/lib/definitions/elements/manual/i/I10.interchange_control_standards_identifier.rb +42 -0
  166. data/lib/definitions/elements/manual/i/I11.interchange_control_version_number.rb +55 -0
  167. data/lib/definitions/elements/manual/i/I12.interchange_control_number.rb +34 -0
  168. data/lib/definitions/elements/manual/i/I13.acknowledgment_requested.rb +43 -0
  169. data/lib/definitions/elements/manual/i/I14.usage_indicator.rb +40 -0
  170. data/lib/definitions/elements/manual/i/I15.component_element_separator.rb +36 -0
  171. data/lib/definitions/elements/manual/i/I16.number_of_included_functional_groups.rb +30 -0
  172. data/lib/definitions/elements/manual/misc/81.weight.rb +29 -0
  173. data/lib/definitions/elements/manual/misc/93.name.rb +29 -0
  174. data/lib/definitions/segments/generated/ack.rb +192 -0
  175. data/lib/definitions/segments/generated/bak.rb +90 -0
  176. data/lib/definitions/segments/generated/beg.rb +226 -0
  177. data/lib/definitions/segments/generated/big.rb +107 -0
  178. data/lib/definitions/segments/generated/bsn.rb +107 -0
  179. data/lib/definitions/segments/generated/cad.rb +175 -0
  180. data/lib/definitions/segments/generated/ctp.rb +158 -0
  181. data/lib/definitions/segments/generated/ctt.rb +141 -0
  182. data/lib/definitions/segments/generated/dtm.rb +56 -0
  183. data/lib/definitions/segments/generated/it1.rb +277 -0
  184. data/lib/definitions/segments/generated/lin.rb +107 -0
  185. data/lib/definitions/segments/generated/man.rb +56 -0
  186. data/lib/definitions/segments/generated/n1.rb +90 -0
  187. data/lib/definitions/segments/generated/n3.rb +39 -0
  188. data/lib/definitions/segments/generated/n4.rb +90 -0
  189. data/lib/definitions/segments/generated/pid.rb +107 -0
  190. data/lib/definitions/segments/generated/po1.rb +175 -0
  191. data/lib/definitions/segments/generated/prf.rb +90 -0
  192. data/lib/definitions/segments/generated/ref.rb +56 -0
  193. data/lib/definitions/segments/generated/sac.rb +107 -0
  194. data/lib/definitions/segments/generated/sln.rb +141 -0
  195. data/lib/definitions/segments/generated/sn1.rb +124 -0
  196. data/lib/definitions/segments/generated/td1.rb +158 -0
  197. data/lib/definitions/segments/generated/td5.rb +107 -0
  198. data/lib/definitions/segments/generated/tds.rb +39 -0
  199. data/lib/definitions/segments/manual/envelopes/ge.rb +53 -0
  200. data/lib/definitions/segments/manual/envelopes/gs.rb +163 -0
  201. data/lib/definitions/segments/manual/envelopes/iea.rb +53 -0
  202. data/lib/definitions/segments/manual/envelopes/isa.rb +295 -0
  203. data/lib/definitions/segments/manual/envelopes/se.rb +52 -0
  204. data/lib/definitions/segments/manual/envelopes/st.rb +52 -0
  205. data/lib/definitions/segments/manual/hl.rb +96 -0
  206. data/lib/definitions/segments/manual/n2.rb +52 -0
  207. data/lib/definitions/transaction_sets/manual/810/810.rb +143 -0
  208. data/lib/definitions/transaction_sets/manual/810/loops.rb +109 -0
  209. data/lib/definitions/transaction_sets/manual/850/850.rb +92 -0
  210. data/lib/definitions/transaction_sets/manual/850/loops.rb +58 -0
  211. data/lib/definitions/transaction_sets/manual/855/855.rb +83 -0
  212. data/lib/definitions/transaction_sets/manual/855/loops.rb +104 -0
  213. data/lib/definitions/transaction_sets/manual/856/856.rb +83 -0
  214. data/lib/definitions/transaction_sets/manual/856/loops.rb +155 -0
  215. data/lib/eddy.rb +29 -7
  216. data/lib/eddy/build/build.rb +47 -0
  217. data/lib/eddy/build/elements/element.rb +67 -0
  218. data/lib/eddy/build/elements/elements.rb +46 -0
  219. data/lib/eddy/build/elements/id.rb +55 -0
  220. data/lib/eddy/build/elements/n.rb +48 -0
  221. data/lib/eddy/build/loop_builder.rb +93 -0
  222. data/lib/eddy/build/segment_builder.rb +169 -0
  223. data/lib/eddy/build/transaction_set_builder.rb +218 -0
  224. data/lib/eddy/cli/cli.rb +39 -0
  225. data/lib/eddy/config.rb +51 -0
  226. data/lib/eddy/data.rb +50 -0
  227. data/lib/eddy/data/persistence/active_record.rb +10 -0
  228. data/lib/eddy/data/persistence/base.rb +47 -0
  229. data/lib/eddy/data/persistence/file.rb +50 -0
  230. data/lib/eddy/data/persistence/memory.rb +65 -0
  231. data/lib/eddy/data/store.rb +108 -0
  232. data/lib/eddy/errors.rb +112 -0
  233. data/lib/eddy/models/element.rb +14 -0
  234. data/lib/eddy/models/element/an.rb +55 -0
  235. data/lib/eddy/models/element/b.rb +53 -0
  236. data/lib/eddy/models/element/base.rb +116 -0
  237. data/lib/eddy/models/element/composite.rb +6 -0
  238. data/lib/eddy/models/element/dt.rb +100 -0
  239. data/lib/eddy/models/element/id.rb +58 -0
  240. data/lib/eddy/models/element/n.rb +94 -0
  241. data/lib/eddy/models/element/r.rb +84 -0
  242. data/lib/eddy/models/element/tm.rb +113 -0
  243. data/lib/eddy/models/loop.rb +74 -0
  244. data/lib/eddy/models/segment.rb +35 -0
  245. data/lib/eddy/models/transaction_set.rb +101 -0
  246. data/lib/eddy/parse.rb +58 -0
  247. data/lib/eddy/schema/element_summary.rb +123 -0
  248. data/lib/eddy/schema/loop_summary.rb +101 -0
  249. data/lib/eddy/schema/segment_summary.rb +116 -0
  250. data/lib/eddy/schema/transaction_set_summary.rb +96 -0
  251. data/lib/eddy/schema/validate.rb +41 -0
  252. data/lib/eddy/util.rb +16 -0
  253. data/lib/eddy/util/clean_folder.rb +14 -0
  254. data/lib/eddy/util/edi_data.rb +153 -0
  255. data/lib/eddy/util/new_number.rb +24 -0
  256. data/lib/eddy/util/normalize.rb +51 -0
  257. data/lib/eddy/util/paths.rb +19 -0
  258. data/lib/eddy/util/read.rb +38 -0
  259. data/lib/eddy/util/time.rb +56 -0
  260. data/lib/eddy/util/timestamp.rb +12 -0
  261. data/lib/eddy/util/trim.rb +29 -0
  262. data/lib/eddy/version.rb +1 -1
  263. data/lib/eddy/write/functional_group.rb +33 -0
  264. data/lib/eddy/write/interchange.rb +28 -0
  265. data/lib/eddy/write/simple_interchange.rb +57 -0
  266. data/lib/generators/eddy/initializer/initializer_generator.rb +17 -0
  267. data/lib/generators/eddy/initializer/templates/eddy.rb.erb +6 -0
  268. data/lib/generators/eddy/migration/migration_generator.rb +53 -0
  269. data/lib/generators/eddy/migration/templates/migration.rb.erb +35 -0
  270. data/tasks/build.rake +15 -0
  271. data/tasks/misc/gemspec.rake +12 -0
  272. data/tasks/misc/missing_lists.rake +240 -0
  273. data/tasks/misc/yaml2json.rake +20 -0
  274. data/todo.txt +16 -0
  275. metadata +297 -42
  276. data/data/004010/segments/ISA.tsv +0 -17
  277. data/data/schema.jsonc +0 -67
  278. data/lib/eddy/build/build_an.rb +0 -31
  279. data/lib/eddy/build/build_dt.rb +0 -46
  280. data/lib/eddy/build/build_elements.rb +0 -181
  281. data/lib/eddy/build/build_id.rb +0 -56
  282. data/lib/eddy/build/build_r_and_n.rb +0 -69
  283. data/lib/eddy/build/build_tm.rb +0 -52
  284. data/lib/eddy/build/segments.rb +0 -25
  285. data/lib/eddy/definitions/manual/elements/109.dt.pickup_date.rb +0 -20
  286. data/lib/eddy/definitions/manual/elements/111.tm.pickup_time.rb +0 -20
  287. data/lib/eddy/definitions/manual/elements/112.an.pier_name.rb +0 -19
  288. data/lib/eddy/definitions/manual/elements/785.b.binary_data.rb +0 -19
  289. data/lib/eddy/definitions/manual/elements/81.r.weight.rb +0 -19
  290. data/lib/eddy/definitions/manual/elements/86.n0.total_equipment.rb +0 -20
  291. data/lib/eddy/definitions/manual/elements/I02.authorization_information.rb +0 -20
  292. data/lib/eddy/definitions/manual/elements/I04.security_information.rb +0 -20
  293. data/lib/eddy/definitions/manual/elements/I08.interchange_date.rb +0 -20
  294. data/lib/eddy/definitions/manual/elements/I09.interchange_time.rb +0 -20
  295. data/lib/eddy/definitions/manual/elements/I15.component_element_separator.rb +0 -32
  296. data/lib/eddy/definitions/manual/segments/n1.rb +0 -14
  297. data/lib/eddy/element.rb +0 -14
  298. data/lib/eddy/element/an.rb +0 -36
  299. data/lib/eddy/element/b.rb +0 -9
  300. data/lib/eddy/element/base.rb +0 -37
  301. data/lib/eddy/element/dt.rb +0 -89
  302. data/lib/eddy/element/id.rb +0 -40
  303. data/lib/eddy/element/n.rb +0 -43
  304. data/lib/eddy/element/r.rb +0 -47
  305. data/lib/eddy/element/tm.rb +0 -108
  306. data/lib/eddy/error.rb +0 -14
  307. data/lib/eddy/helpers.rb +0 -31
  308. data/lib/eddy/segment.rb +0 -12
  309. data/lib/eddy/transaction_set.rb +0 -35
@@ -0,0 +1,158 @@
1
+ module Eddy
2
+ module Segments
3
+ # ### Segment Summary:
4
+ #
5
+ # - Id: TD1
6
+ # - Name: Carrier Details (Quantity and Weight)
7
+ # - Purpose: To specify the transportation details relative to commodity, weight, and quantity.
8
+ class TD1 < Eddy::Segment
9
+
10
+ # @param store [Eddy::Data::Store]
11
+ # @return [void]
12
+ def initialize(store)
13
+ @id = "TD1"
14
+ @name = "Carrier Details (Quantity and Weight)"
15
+ @td101 = Eddy::Elements::E103.new(ref: "TD101", req: "O")
16
+ @td102 = Eddy::Elements::E80.new(ref: "TD102", req: "X")
17
+ @td103 = Eddy::Elements::E23.new(ref: "TD103", req: "O")
18
+ @td104 = Eddy::Elements::E22.new(ref: "TD104", req: "X")
19
+ @td105 = Eddy::Elements::E79.new(ref: "TD105", req: "O")
20
+ @td106 = Eddy::Elements::E187.new(ref: "TD106", req: "O")
21
+ @td107 = Eddy::Elements::E81.new(ref: "TD107", req: "X")
22
+ @td108 = Eddy::Elements::E355.new(ref: "TD108", req: "X")
23
+ super(
24
+ store,
25
+ @td101,
26
+ @td102,
27
+ @td103,
28
+ @td104,
29
+ @td105,
30
+ @td106,
31
+ @td107,
32
+ @td108,
33
+ )
34
+ end
35
+
36
+ # ### TD101
37
+ #
38
+ # - Id: 103
39
+ # - Name: Packaging Code
40
+ # - Type: AN
41
+ # - Min/Max: 3/5
42
+ # - Description: Code identifying the type of packaging; Part 1: Packaging Form, Part 2: Packaging Material; if the Data Element is used, then Part 1 is always required
43
+ #
44
+ # @param arg [String]
45
+ # @return [void]
46
+ def TD101=(arg)
47
+ @td101.value = arg
48
+ end
49
+ alias PackagingCode= TD101=
50
+
51
+ # ### TD102
52
+ #
53
+ # - Id: 80
54
+ # - Name: Lading Quantity
55
+ # - Type: N0
56
+ # - Min/Max: 1/7
57
+ # - Description: Number of units (pieces) of the lading commodity
58
+ #
59
+ # @param arg [Integer]
60
+ # @return [void]
61
+ def TD102=(arg)
62
+ @td102.value = arg
63
+ end
64
+ alias LadingQuantity= TD102=
65
+
66
+ # ### TD103
67
+ #
68
+ # - Id: 23
69
+ # - Name: Commodity Code Qualifier
70
+ # - Type: ID
71
+ # - Min/Max: 1/1
72
+ # - Description: Code identifying the commodity coding system used for Commodity Code
73
+ #
74
+ # @param arg [String]
75
+ # @return [void]
76
+ def TD103=(arg)
77
+ @td103.value = arg
78
+ end
79
+ alias CommodityCodeQualifier= TD103=
80
+
81
+ # ### TD104
82
+ #
83
+ # - Id: 22
84
+ # - Name: Commodity Code
85
+ # - Type: AN
86
+ # - Min/Max: 1/30
87
+ # - Description: Code describing a commodity or group of commodities
88
+ #
89
+ # @param arg [String]
90
+ # @return [void]
91
+ def TD104=(arg)
92
+ @td104.value = arg
93
+ end
94
+ alias CommodityCode= TD104=
95
+
96
+ # ### TD105
97
+ #
98
+ # - Id: 79
99
+ # - Name: Lading Description
100
+ # - Type: AN
101
+ # - Min/Max: 1/50
102
+ # - Description: Description of an item as required for rating and billing purposes
103
+ #
104
+ # @param arg [String]
105
+ # @return [void]
106
+ def TD105=(arg)
107
+ @td105.value = arg
108
+ end
109
+ alias LadingDescription= TD105=
110
+
111
+ # ### TD106
112
+ #
113
+ # - Id: 187
114
+ # - Name: Weight Qualifier
115
+ # - Type: ID
116
+ # - Min/Max: 1/2
117
+ # - Description: Code defining the type of weight
118
+ #
119
+ # @param arg [String]
120
+ # @return [void]
121
+ def TD106=(arg)
122
+ @td106.value = arg
123
+ end
124
+ alias WeightQualifier= TD106=
125
+
126
+ # ### TD107
127
+ #
128
+ # - Id: 81
129
+ # - Name: Weight
130
+ # - Type: R
131
+ # - Min/Max: 1/10
132
+ # - Description: Numeric value of weight
133
+ #
134
+ # @param arg [Float]
135
+ # @return [void]
136
+ def TD107=(arg)
137
+ @td107.value = arg
138
+ end
139
+ alias Weight= TD107=
140
+
141
+ # ### TD108
142
+ #
143
+ # - Id: 355
144
+ # - Name: Unit or Basis for Measurement Code
145
+ # - Type: ID
146
+ # - Min/Max: 2/2
147
+ # - Description: Code specifying the units in which a value is being expressed, or manner in which a measurement has been taken
148
+ #
149
+ # @param arg [String]
150
+ # @return [void]
151
+ def TD108=(arg)
152
+ @td108.value = arg
153
+ end
154
+ alias UnitOrBasisForMeasurementCode= TD108=
155
+
156
+ end
157
+ end
158
+ end
@@ -0,0 +1,107 @@
1
+ module Eddy
2
+ module Segments
3
+ # ### Segment Summary:
4
+ #
5
+ # - Id: TD5
6
+ # - Name: Carrier Details (Routing Sequence/Transit Time)
7
+ # - Purpose: To specify the carrier and sequence of routing and provide transit time information.
8
+ class TD5 < Eddy::Segment
9
+
10
+ # @param store [Eddy::Data::Store]
11
+ # @return [void]
12
+ def initialize(store)
13
+ @id = "TD5"
14
+ @name = "Carrier Details (Routing Sequence/Transit Time)"
15
+ @td501 = Eddy::Elements::E133.new(ref: "TD501", req: "M")
16
+ @td502 = Eddy::Elements::E66.new(ref: "TD502", req: "X")
17
+ @td503 = Eddy::Elements::E67.new(ref: "TD503", req: "X")
18
+ @td504 = Eddy::Elements::E91.new(ref: "TD504", req: "M")
19
+ @td505 = Eddy::Elements::E387.new(ref: "TD505", req: "X")
20
+ super(
21
+ store,
22
+ @td501,
23
+ @td502,
24
+ @td503,
25
+ @td504,
26
+ @td505,
27
+ )
28
+ end
29
+
30
+ # ### TD501
31
+ #
32
+ # - Id: 133
33
+ # - Name: Routing Sequence Code
34
+ # - Type: ID
35
+ # - Min/Max: 1/2
36
+ # - Description: Code describing the relationship of a carrier to a specific shipment movement
37
+ #
38
+ # @param arg [String]
39
+ # @return [void]
40
+ def TD501=(arg)
41
+ @td501.value = arg
42
+ end
43
+ alias RoutingSequenceCode= TD501=
44
+
45
+ # ### TD502
46
+ #
47
+ # - Id: 66
48
+ # - Name: Identification Code Qualifier
49
+ # - Type: ID
50
+ # - Min/Max: 1/2
51
+ # - Description: Code designating the system/method of code structure used for Identification Code (67)
52
+ #
53
+ # @param arg [String]
54
+ # @return [void]
55
+ def TD502=(arg)
56
+ @td502.value = arg
57
+ end
58
+ alias IdentificationCodeQualifier= TD502=
59
+
60
+ # ### TD503
61
+ #
62
+ # - Id: 67
63
+ # - Name: Identification Code
64
+ # - Type: AN
65
+ # - Min/Max: 2/80
66
+ # - Description: Code identifying a party or other code
67
+ #
68
+ # @param arg [String]
69
+ # @return [void]
70
+ def TD503=(arg)
71
+ @td503.value = arg
72
+ end
73
+ alias IdentificationCode= TD503=
74
+
75
+ # ### TD504
76
+ #
77
+ # - Id: 91
78
+ # - Name: Transportation Method/Type Code
79
+ # - Type: ID
80
+ # - Min/Max: 1/2
81
+ # - Description: Code specifying the method or type of transportation for the shipment
82
+ #
83
+ # @param arg [String]
84
+ # @return [void]
85
+ def TD504=(arg)
86
+ @td504.value = arg
87
+ end
88
+ alias TransportationMethodTypeCode= TD504=
89
+
90
+ # ### TD505
91
+ #
92
+ # - Id: 387
93
+ # - Name: Routing
94
+ # - Type: AN
95
+ # - Min/Max: 1/35
96
+ # - Description: Free-form description of the routing or requested routing for shipment, or the originating carrier's identity
97
+ #
98
+ # @param arg [String]
99
+ # @return [void]
100
+ def TD505=(arg)
101
+ @td505.value = arg
102
+ end
103
+ alias Routing= TD505=
104
+
105
+ end
106
+ end
107
+ end
@@ -0,0 +1,39 @@
1
+ module Eddy
2
+ module Segments
3
+ # ### Segment Summary:
4
+ #
5
+ # - Id: TDS
6
+ # - Name: Total Monetary Value Summary
7
+ # - Purpose: To specify the total invoice discounts and amounts.
8
+ class TDS < Eddy::Segment
9
+
10
+ # @param store [Eddy::Data::Store]
11
+ # @return [void]
12
+ def initialize(store)
13
+ @id = "TDS"
14
+ @name = "Total Monetary Value Summary"
15
+ @tds01 = Eddy::Elements::E610.new(ref: "TDS01", req: "M")
16
+ super(
17
+ store,
18
+ @tds01,
19
+ )
20
+ end
21
+
22
+ # ### TDS01
23
+ #
24
+ # - Id: 610
25
+ # - Name: Amount
26
+ # - Type: N2
27
+ # - Min/Max: 1/15
28
+ # - Description: Monetary amount
29
+ #
30
+ # @param arg [Integer]
31
+ # @return [void]
32
+ def TDS01=(arg)
33
+ @tds01.value = arg
34
+ end
35
+ alias Amount= TDS01=
36
+
37
+ end
38
+ end
39
+ end
@@ -0,0 +1,53 @@
1
+ module Eddy
2
+ module Segments
3
+ # ### Segment Summary:
4
+ #
5
+ # - Id: GE
6
+ # - Name: Functional Group Trailer
7
+ # - Purpose: To indicate the end of a functional group and to provide control information.
8
+ class GE < Eddy::Segment
9
+
10
+ # @param store [Eddy::Data::Store]
11
+ # @param group_control_number [Integer]
12
+ # @return [void]
13
+ def initialize(store, group_control_number)
14
+ @id = "GE"
15
+ @name = "Functional Group Trailer"
16
+ @ge01 = Eddy::Elements::E97.new(ref: "GE01", req: "M", val: store.number_of_transaction_sets_included)
17
+ @ge02 = Eddy::Elements::E28.new(ref: "GE02", req: "M", val: group_control_number)
18
+ super(store, @ge01, @ge02)
19
+ end
20
+
21
+ # ### GE01
22
+ #
23
+ # - Id: 97
24
+ # - Name: Number of Transaction Sets Included
25
+ # - Type: N0
26
+ # - Min/Max: 1/6
27
+ # - Description: Total number of transaction sets included in the functional group or interchange (transmission) group terminated by the trailer containing this data element
28
+ #
29
+ # @param arg [Integer]
30
+ # @return [void]
31
+ def GE01=(arg)
32
+ @ge01.value = arg
33
+ end
34
+ alias NumberOfTransactionSetsIncluded= GE01=
35
+
36
+ # ### GE02
37
+ #
38
+ # - Id: 28
39
+ # - Name: Group Control Number
40
+ # - Type: N0
41
+ # - Min/Max: 1/9
42
+ # - Description: Assigned number originated and maintained by the sender
43
+ #
44
+ # @param arg [Integer]
45
+ # @return [void]
46
+ def GE02=(arg)
47
+ @ge02.value = arg
48
+ end
49
+ alias GroupControlNumber= GE02=
50
+
51
+ end
52
+ end
53
+ end
@@ -0,0 +1,163 @@
1
+ module Eddy
2
+ module Segments
3
+ # ### Segment Summary:
4
+ #
5
+ # - Id: GS
6
+ # - Name: Functional Group Header
7
+ # - Purpose: To indicate the beginning of a functional group and to provide control information.
8
+ class GS < Eddy::Segment
9
+
10
+ # @param store [Eddy::Data::Store]
11
+ # @param group_control_number [Integer]
12
+ # @param transaction_set [Eddy::TransactionSet]
13
+ # @return [void]
14
+ def initialize(store, group_control_number, transaction_set)
15
+ @id = "GS"
16
+ @name = "Functional Group Header"
17
+ @gs01 = Eddy::Elements::E479.new(ref: "GS01", req: "M", val: transaction_set.functional_group)
18
+ @gs02 = Eddy::Elements::E142.new(ref: "GS02", req: "M", val: store.application_senders_code)
19
+ @gs03 = Eddy::Elements::E124.new(ref: "GS03", req: "M", val: store.application_receivers_code)
20
+ @gs04 = Eddy::Elements::E373.new(ref: "GS04", req: "M", val: store.time)
21
+ @gs05 = Eddy::Elements::E337.new(ref: "GS05", req: "M", val: store.time) # TODO: Define time fmt for this.
22
+ @gs06 = Eddy::Elements::E28.new(ref: "GS06", req: "M", val: group_control_number)
23
+ @gs07 = Eddy::Elements::E455.new(ref: "GS07", req: "M")
24
+ @gs08 = Eddy::Elements::E480.new(ref: "GS08", req: "M", val: store.version_release_industry_id_code)
25
+ super(
26
+ store,
27
+ @gs01,
28
+ @gs02,
29
+ @gs03,
30
+ @gs04,
31
+ @gs05,
32
+ @gs06,
33
+ @gs07,
34
+ @gs08,
35
+ )
36
+ end
37
+
38
+ # ### GS01
39
+ #
40
+ # - Id: 479
41
+ # - Name: Functional Identifier Code
42
+ # - Type: ID
43
+ # - Min/Max: 2/2
44
+ # - Description: Code identifying a group of application related transaction sets
45
+ #
46
+ # @param arg [String]
47
+ # @return [void]
48
+ def GS01=(arg)
49
+ @gs01.value = arg
50
+ end
51
+ alias FunctionalIdentifierCode= GS01=
52
+
53
+ # ### GS02
54
+ #
55
+ # - Id: 142
56
+ # - Name: Application Sender's Code
57
+ # - Type: AN
58
+ # - Min/Max: 2/15
59
+ # - Description: Code identifying party sending transmission; codes agreed to by trading partners
60
+ #
61
+ # @param arg [String]
62
+ # @return [void]
63
+ def GS02=(arg)
64
+ @gs02.value = arg
65
+ end
66
+ alias ApplicationSendersCode= GS02=
67
+
68
+ # ### GS03
69
+ #
70
+ # - Id: 124
71
+ # - Name: Application Receiver's Code
72
+ # - Type: AN
73
+ # - Min/Max: 2/15
74
+ # - Description: Code identifying party receiving transmission. Codes agreed to by trading partners
75
+ #
76
+ # @param arg [String]
77
+ # @return [void]
78
+ def GS03=(arg)
79
+ @gs03.value = arg
80
+ end
81
+ alias ApplicationReceiversCode= GS03=
82
+
83
+ # ### GS04
84
+ #
85
+ # - Id: 373
86
+ # - Name: Date
87
+ # - Type: DT
88
+ # - Min/Max: 8/8
89
+ # - Description: Date expressed as CCYYMMDD
90
+ #
91
+ # @param arg [Time]
92
+ # @return [void]
93
+ def GS04=(arg)
94
+ @gs04.value = arg
95
+ end
96
+ alias Date= GS04=
97
+
98
+ # ### GS05
99
+ #
100
+ # - Id: 337
101
+ # - Name: Time
102
+ # - Type: TM
103
+ # - Min/Max: 4/8
104
+ # - Description: Time expressed in 24-hour clock time as follows: HHMM, or HHMMSS, or HHMMSSD, or HHMMSSDD, where H = hours (00-23), M = minutes (00-59), S = integer seconds (00-59) and DD = decimal seconds; decimal seconds are expressed as follows: D = tenths (0-9) and DD = hundredths (00-99)
105
+ #
106
+ # @param arg [Time]
107
+ # @return [void]
108
+ def GS05=(arg)
109
+ @gs05.value = arg
110
+ end
111
+ alias Time= GS05=
112
+
113
+ # ### GS06
114
+ #
115
+ # - Id: 28
116
+ # - Name: Group Control Number
117
+ # - Type: N0
118
+ # - Min/Max: 1/9
119
+ # - Description: Assigned number originated and maintained by the sender
120
+ #
121
+ # @param arg [Integer]
122
+ # @return [void]
123
+ def GS06=(arg)
124
+ @gs06.value = arg
125
+ end
126
+ alias GroupControlNumber= GS06=
127
+
128
+ # ### GS07
129
+ #
130
+ # - Id: 455
131
+ # - Name: Responsible Agency Code
132
+ # - Type: ID
133
+ # - Min/Max: 1/2
134
+ # - Description: Code used in conjunction with Data Element 480 to identify the issuer of the standard
135
+ #
136
+ # ### Notes:
137
+ #
138
+ # - (Default value: `"X"`)
139
+ # @param arg [String]
140
+ # @return [void]
141
+ def GS07=(arg)
142
+ @gs07.value = arg
143
+ end
144
+ alias ResponsibleAgencyCode= GS07=
145
+
146
+ # ### GS08
147
+ #
148
+ # - Id: 480
149
+ # - Name: Version / Release / Industry Identifier Code
150
+ # - Type: AN
151
+ # - Min/Max: 1/12
152
+ # - Description: Code indicating the version, release, subrelease, and industry identifier of the EDI standard being used, including the GS and GE segments; if code in DE455 in GS segment is X, then in DE 480 positions 1-3 are the version number; positions 4-6 are the release and subrelease, level of the version; and positions 7-12 are the industry or trade association identifiers (optionally assigned by user); if code in DE455 in GS segment is T, then other formats are allowed
153
+ #
154
+ # @param arg [String]
155
+ # @return [void]
156
+ def GS08=(arg)
157
+ @gs08.value = arg
158
+ end
159
+ alias VersionReleaseIndustryIdentifierCode= GS08=
160
+
161
+ end
162
+ end
163
+ end