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,55 @@
1
+ module Eddy
2
+ module Elements
3
+ # ### Element Summary:
4
+ #
5
+ # - Id: I11
6
+ # - Name: Interchange Control Version Number
7
+ # - Type: ID
8
+ # - Min/Max: 5/5
9
+ # - Description: This version number covers the interchange control segments
10
+ #
11
+ # ### Notes:
12
+ #
13
+ # - Default value: `"00401"`
14
+ class I11 < Eddy::Element::ID
15
+
16
+ # @param val [String] ("00401")
17
+ # @param req [String] (nil)
18
+ # @param ref [String] (nil)
19
+ # @return [void]
20
+ def initialize(val: "00401", req: nil, ref: nil)
21
+ @id = "I11"
22
+ @name = "Interchange Control Version Number"
23
+ @description = "This version number covers the interchange control segments"
24
+ super(
25
+ min: 5,
26
+ max: 5,
27
+ req: req,
28
+ ref: ref,
29
+ val: val,
30
+ )
31
+ end
32
+
33
+ # @return [Array<String>]
34
+ def code_list()
35
+ return [
36
+ "00200", # Standard Issued as ANSI X12.5-1987
37
+ "00201", # Draft Standard for Trial Use Approved by ASC X12 Through August 1988
38
+ "00204", # Draft Standard for Trial Use Approved by ASC X12 Through May 1989
39
+ "00300", # Standard Issued as ANSI X12.5-1992
40
+ "00301", # Draft Standard for Trial Use Approved for Publication by ASC X12 Procedures Review Board Through October 1990
41
+ "00302", # Draft Standard for Trial Use Approved for Publication by ASC X12 Procedures Review Board Through October 1991
42
+ "00303", # Draft Standard for Trial Use Approved for Publication by ASC X12 Procedures Review Board Through October 1992
43
+ "00304", # Draft Standards for Trial Use Approved for Publication by ASC X12 Procedures Review Board through October 1993
44
+ "00305", # Draft Standards for Trial Use Approved for Publication by ASC X12 Procedures Review Board through October 1994
45
+ "00306", # Draft Standards for Trial Use Approved for Publication by ASC X12 Procedures Review Board through October 1995
46
+ "00307", # Draft Standards for Trial Use Approved for Publication by ASC X12 Procedures Review Board through October 1996
47
+ "00400", # Standard Issued as ANSI X12.5-1997
48
+ "00401", # Draft Standards for Trial Use Approved for Publication by ASC X12 Procedures Review Board through October 1997
49
+ "00402", # Draft Standards for Trial Use Approved for Publication by ASC X12 Procedures Review Board through October 1998
50
+ ]
51
+ end
52
+
53
+ end
54
+ end
55
+ end
@@ -0,0 +1,34 @@
1
+ module Eddy
2
+ module Elements
3
+ # ### Element Summary:
4
+ #
5
+ # - Id: I12
6
+ # - Name: Interchange Control Number
7
+ # - Type: N0
8
+ # - Min/Max: 9/9
9
+ # - Description: A control number assigned by the interchange sender
10
+ #
11
+ # ### Notes:
12
+ #
13
+ # - Values for this element need to be generated and have their uniqueness ensured.
14
+ class I12 < Eddy::Element::N
15
+ # @param val [Integer] (nil)
16
+ # @param req [String] (nil)
17
+ # @param ref [String] (nil)
18
+ # @return [void]
19
+ def initialize(val: nil, req: nil, ref: nil)
20
+ @id = "I12"
21
+ @name = "Interchange Control Number"
22
+ @description = "A control number assigned by the interchange sender"
23
+ super(
24
+ min: 9,
25
+ max: 9,
26
+ req: req,
27
+ ref: ref,
28
+ val: val,
29
+ decimals: 0,
30
+ )
31
+ end
32
+ end
33
+ end
34
+ end
@@ -0,0 +1,43 @@
1
+ module Eddy
2
+ module Elements
3
+ # ### Element Summary:
4
+ #
5
+ # - Id: I13
6
+ # - Name: Acknowledgment Requested
7
+ # - Type: ID
8
+ # - Min/Max: 1/1
9
+ # - Description: Code sent by the sender to request an interchange acknowledgment (`TA1`)
10
+ #
11
+ # ### Notes:
12
+ #
13
+ # - Default value: `"0"`
14
+ class I13 < Eddy::Element::ID
15
+
16
+ # @param val [String] ("0")
17
+ # @param req [String] (nil)
18
+ # @param ref [String] (nil)
19
+ # @return [void]
20
+ def initialize(val: "0", req: nil, ref: nil)
21
+ @id = "I13"
22
+ @name = "Acknowledgment Requested"
23
+ @description = "Code sent by the sender to request an interchange acknowledgment (`TA1`)"
24
+ super(
25
+ min: 1,
26
+ max: 1,
27
+ req: req,
28
+ ref: ref,
29
+ val: val,
30
+ )
31
+ end
32
+
33
+ # @return [Array<String>]
34
+ def code_list()
35
+ return [
36
+ "0", # No Acknowledgment Requested
37
+ "1", # Interchange Acknowledgment Requested
38
+ ]
39
+ end
40
+
41
+ end
42
+ end
43
+ end
@@ -0,0 +1,40 @@
1
+ module Eddy
2
+ module Elements
3
+ # ### Element Summary:
4
+ #
5
+ # - Id: I14
6
+ # - Name: Usage Indicator
7
+ # - Type: ID
8
+ # - Min/Max: 1/1
9
+ # - Description: Code to indicate whether data enclosed by this interchange envelope is test, production or information
10
+ class I14 < Eddy::Element::ID
11
+
12
+ # @param val [String] (nil)
13
+ # @param req [String] (nil)
14
+ # @param ref [String] (nil)
15
+ # @return [void]
16
+ def initialize(val: nil, req: nil, ref: nil)
17
+ @id = "I14"
18
+ @name = "Usage Indicator"
19
+ @description = "Code to indicate whether data enclosed by this interchange envelope is test, production or information"
20
+ super(
21
+ min: 1,
22
+ max: 1,
23
+ req: req,
24
+ ref: ref,
25
+ val: val,
26
+ )
27
+ end
28
+
29
+ # @return [Array<String>]
30
+ def code_list()
31
+ return [
32
+ "I", # Information
33
+ "P", # Production Data
34
+ "T", # Test Data
35
+ ]
36
+ end
37
+
38
+ end
39
+ end
40
+ end
@@ -0,0 +1,36 @@
1
+ module Eddy
2
+ module Elements
3
+ # ### Element Summary:
4
+ #
5
+ # - Id: I15
6
+ # - Name: Component Element Separator
7
+ # - Type: N/A (Type is not applicable (*but it's functionally AN*))
8
+ # - Min/Max: 1/1
9
+ # - Description:
10
+ # - The component element separator is a delimiter and not a data element.
11
+ # - This field provides the delimiter used to separate component data elements within a composite data structure.
12
+ # - This value must be different than the data element separator and the segment terminator.
13
+ #
14
+ # ### Notes:
15
+ #
16
+ # - Default value: `">"`
17
+ class I15 < Eddy::Element::AN
18
+ # @param val [String] (">")
19
+ # @param req [String] (nil)
20
+ # @param ref [String] (nil)
21
+ # @return [void]
22
+ def initialize(val: ">", req: nil, ref: nil)
23
+ @id = "I15"
24
+ @name = "Component Element Separator"
25
+ @description = "The delimiter used to separate component data elements within a composite data structure."
26
+ super(
27
+ min: 1,
28
+ max: 1,
29
+ req: req,
30
+ ref: ref,
31
+ val: val,
32
+ )
33
+ end
34
+ end
35
+ end
36
+ end
@@ -0,0 +1,30 @@
1
+ module Eddy
2
+ module Elements
3
+ # ### Element Summary:
4
+ #
5
+ # - Id: I16
6
+ # - Name: Number of Included Functional Groups
7
+ # - Type: N0
8
+ # - Min/Max: 1/5
9
+ # - Description: A count of the number of functional groups included in an interchange
10
+ class I16 < Eddy::Element::N
11
+ # @param val [Integer] (nil)
12
+ # @param req [String] (nil)
13
+ # @param ref [String] (nil)
14
+ # @return [void]
15
+ def initialize(val: nil, req: nil, ref: nil)
16
+ @id = "I16"
17
+ @name = "Number of Included Functional Groups"
18
+ @description = "A count of the number of functional groups included in an interchange"
19
+ super(
20
+ min: 1,
21
+ max: 5,
22
+ req: req,
23
+ ref: ref,
24
+ val: val,
25
+ decimals: 0,
26
+ )
27
+ end
28
+ end
29
+ end
30
+ end
@@ -0,0 +1,29 @@
1
+ module Eddy
2
+ module Elements
3
+ # ### Element Summary:
4
+ #
5
+ # - Id: 81
6
+ # - Name: Weight
7
+ # - Type: R
8
+ # - Min/Max: 1/10
9
+ # - Description: Numeric value of weight
10
+ class E81 < Eddy::Element::R
11
+ # @param val [Float] (nil)
12
+ # @param req [String] (nil)
13
+ # @param ref [String] (nil)
14
+ # @return [void]
15
+ def initialize(val: nil, req: nil, ref: nil)
16
+ @id = "81"
17
+ @name = "Weight"
18
+ @description = "Numeric value of weight"
19
+ super(
20
+ min: 1,
21
+ max: 10,
22
+ req: req,
23
+ ref: ref,
24
+ val: val,
25
+ )
26
+ end
27
+ end
28
+ end
29
+ end
@@ -0,0 +1,29 @@
1
+ module Eddy
2
+ module Elements
3
+ # ### Element Summary:
4
+ #
5
+ # - Id: 93
6
+ # - Name: Name
7
+ # - Type: AN
8
+ # - Min/Max: 1/60
9
+ # - Description: Free-form name
10
+ class E93 < Eddy::Element::AN
11
+ # @param val [String] (nil)
12
+ # @param req [String] (nil)
13
+ # @param ref [String] (nil)
14
+ # @return [void]
15
+ def initialize(val: nil, req: nil, ref: nil)
16
+ @id = "93"
17
+ @name = "Name"
18
+ @desctiption = "Free-form name"
19
+ super(
20
+ min: 1,
21
+ max: 60,
22
+ req: req,
23
+ ref: ref,
24
+ val: val,
25
+ )
26
+ end
27
+ end
28
+ end
29
+ end
@@ -0,0 +1,192 @@
1
+ module Eddy
2
+ module Segments
3
+ # ### Segment Summary:
4
+ #
5
+ # - Id: ACK
6
+ # - Name: Line Item Acknowledgement
7
+ # - Purpose: To acknowledge the ordered quantities and specify the ready date for a specific line item
8
+ class ACK < Eddy::Segment
9
+
10
+ # @param store [Eddy::Data::Store]
11
+ # @return [void]
12
+ def initialize(store)
13
+ @id = "ACK"
14
+ @name = "Line Item Acknowledgement"
15
+ @ack01 = Eddy::Elements::E668.new(ref: "ACK01", req: "M")
16
+ @ack02 = Eddy::Elements::E380.new(ref: "ACK02", req: "X")
17
+ @ack03 = Eddy::Elements::E355.new(ref: "ACK03", req: "X")
18
+ @ack04 = Eddy::Elements::E374.new(ref: "ACK04", req: "O")
19
+ @ack05 = Eddy::Elements::E373.new(ref: "ACK05", req: "X")
20
+ @ack06 = Eddy::Elements::E326.new(ref: "ACK06", req: "O")
21
+ @ack07 = Eddy::Elements::E235.new(ref: "ACK07", req: "X")
22
+ @ack08 = Eddy::Elements::E234.new(ref: "ACK08", req: "X")
23
+ @ack09 = Eddy::Elements::E235.new(ref: "ACK09", req: "X")
24
+ @ack10 = Eddy::Elements::E234.new(ref: "ACK10", req: "X")
25
+ super(
26
+ store,
27
+ @ack01,
28
+ @ack02,
29
+ @ack03,
30
+ @ack04,
31
+ @ack05,
32
+ @ack06,
33
+ @ack07,
34
+ @ack08,
35
+ @ack09,
36
+ @ack10,
37
+ )
38
+ end
39
+
40
+ # ### ACK01
41
+ #
42
+ # - Id: 668
43
+ # - Name: Line Item Status Code
44
+ # - Type: ID
45
+ # - Min/Max: 2/2
46
+ # - Description: Code specifying the action taken by the seller on a line item requested by the buyer
47
+ #
48
+ # @param arg [String]
49
+ # @return [void]
50
+ def ACK01=(arg)
51
+ @ack01.value = arg
52
+ end
53
+ alias LineItemStatusCode= ACK01=
54
+
55
+ # ### ACK02
56
+ #
57
+ # - Id: 380
58
+ # - Name: Quantity
59
+ # - Type: R
60
+ # - Min/Max: 1/15
61
+ # - Description: Numeric value of quantity
62
+ #
63
+ # @param arg [Float]
64
+ # @return [void]
65
+ def ACK02=(arg)
66
+ @ack02.value = arg
67
+ end
68
+ alias Quantity= ACK02=
69
+
70
+ # ### ACK03
71
+ #
72
+ # - Id: 355
73
+ # - Name: Unit or Basis for Measurement Code
74
+ # - Type: ID
75
+ # - Min/Max: 2/2
76
+ # - Description: Code specifying the units in which a value is being expressed, or manner in which a measurement has been taken
77
+ #
78
+ # @param arg [String]
79
+ # @return [void]
80
+ def ACK03=(arg)
81
+ @ack03.value = arg
82
+ end
83
+ alias UnitOrBasisForMeasurementCode= ACK03=
84
+
85
+ # ### ACK04
86
+ #
87
+ # - Id: 374
88
+ # - Name: Date/Time Qualifier
89
+ # - Type: ID
90
+ # - Min/Max: 3/3
91
+ # - Description: Code specifying type of date or time, or both date and time
92
+ #
93
+ # @param arg [String]
94
+ # @return [void]
95
+ def ACK04=(arg)
96
+ @ack04.value = arg
97
+ end
98
+ alias DateTimeQualifier= ACK04=
99
+
100
+ # ### ACK05
101
+ #
102
+ # - Id: 373
103
+ # - Name: Date
104
+ # - Type: DT
105
+ # - Min/Max: 8/8
106
+ # - Description: Date expressed as CCYYMMDD
107
+ #
108
+ # @param arg [Time]
109
+ # @return [void]
110
+ def ACK05=(arg)
111
+ @ack05.value = arg
112
+ end
113
+ alias Date= ACK05=
114
+
115
+ # ### ACK06
116
+ #
117
+ # - Id: 326
118
+ # - Name: Request Reference Number
119
+ # - Type: AN
120
+ # - Min/Max: 1/45
121
+ # - Description: Reference number or RFQ number to use to identify a particular transaction set and query (additional reference number or description which can be used with contract number)
122
+ #
123
+ # @param arg [String]
124
+ # @return [void]
125
+ def ACK06=(arg)
126
+ @ack06.value = arg
127
+ end
128
+ alias RequestReferenceNumber= ACK06=
129
+
130
+ # ### ACK07
131
+ #
132
+ # - Id: 235
133
+ # - Name: Product/Service ID Qualifier
134
+ # - Type: ID
135
+ # - Min/Max: 2/2
136
+ # - Description: Code identifying the type/source of the descriptive number used in Product/Service ID (234)
137
+ #
138
+ # @param arg [String]
139
+ # @return [void]
140
+ def ACK07=(arg)
141
+ @ack07.value = arg
142
+ end
143
+ alias ProductServiceIdQualifier1= ACK07=
144
+
145
+ # ### ACK08
146
+ #
147
+ # - Id: 234
148
+ # - Name: Product/Service ID
149
+ # - Type: AN
150
+ # - Min/Max: 1/48
151
+ # - Description: Identifying number for a product or service
152
+ #
153
+ # @param arg [String]
154
+ # @return [void]
155
+ def ACK08=(arg)
156
+ @ack08.value = arg
157
+ end
158
+ alias ProductServiceId1= ACK08=
159
+
160
+ # ### ACK09
161
+ #
162
+ # - Id: 235
163
+ # - Name: Product/Service ID Qualifier
164
+ # - Type: ID
165
+ # - Min/Max: 2/2
166
+ # - Description: Code identifying the type/source of the descriptive number used in Product/Service ID (234)
167
+ #
168
+ # @param arg [String]
169
+ # @return [void]
170
+ def ACK09=(arg)
171
+ @ack09.value = arg
172
+ end
173
+ alias ProductServiceIdQualifier2= ACK09=
174
+
175
+ # ### ACK10
176
+ #
177
+ # - Id: 234
178
+ # - Name: Product/Service ID
179
+ # - Type: AN
180
+ # - Min/Max: 1/48
181
+ # - Description: Identifying number for a product or service
182
+ #
183
+ # @param arg [String]
184
+ # @return [void]
185
+ def ACK10=(arg)
186
+ @ack10.value = arg
187
+ end
188
+ alias ProductServiceId2= ACK10=
189
+
190
+ end
191
+ end
192
+ end