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,53 @@
1
+ module Eddy
2
+ module Segments
3
+ # ### Segment Summary:
4
+ #
5
+ # - Id: IEA
6
+ # - Name: Interchange Control Trailer
7
+ # - Purpose: To define the end of an interchange of zero or more functional groups and interchange-related control segments.
8
+ class IEA < Eddy::Segment
9
+
10
+ # @param store [Eddy::Data::Store]
11
+ # @param interchange_control_number [Integer]
12
+ # @return [void]
13
+ def initialize(store, interchange_control_number)
14
+ @id = "IEA"
15
+ @name = "Interchange Control Trailer"
16
+ @iea01 = Eddy::Elements::I16.new(ref: "IEA01", req: "M", val: store.number_of_included_functional_groups)
17
+ @iea02 = Eddy::Elements::I12.new(ref: "IEA02", req: "M", val: interchange_control_number)
18
+ super(store, @iea01, @iea02)
19
+ end
20
+
21
+ # ### ISA01
22
+ #
23
+ # - Id: I16
24
+ # - Name: Number of Included Functional Groups
25
+ # - Type: N0
26
+ # - Min/Max: 1/5
27
+ # - Description: A count of the number of functional groups included in an interchange
28
+ #
29
+ # @param arg [Integer]
30
+ # @return [void]
31
+ def IEA01=(arg)
32
+ @iea01.value = arg
33
+ end
34
+ alias NumberOfIncludedFunctionalGroups= IEA01=
35
+
36
+ # ### ISA02
37
+ #
38
+ # - Id: I12
39
+ # - Name: Interchange Control Number
40
+ # - Type: N0
41
+ # - Min/Max: 9/9
42
+ # - Description: A control number assigned by the interchange sender
43
+ #
44
+ # @param arg [Integer]
45
+ # @return [void]
46
+ def IEA02=(arg)
47
+ @iea02.value = arg
48
+ end
49
+ alias InterchangeControlNumber= IEA02=
50
+
51
+ end
52
+ end
53
+ end
@@ -0,0 +1,295 @@
1
+ module Eddy
2
+ module Segments
3
+ # ### Segment Summary:
4
+ #
5
+ # - Id: ISA
6
+ # - Name: Interchange Control Header
7
+ # - Purpose: To start and identify an interchange of zero or more functional groups and interchange-related control segments.
8
+ class ISA < Eddy::Segment
9
+
10
+ # @param store [Eddy::Data::Store]
11
+ # @param interchange_control_number [Integer]
12
+ # @return [void]
13
+ def initialize(store, interchange_control_number)
14
+ @id = "ISA"
15
+ @name = "Interchange Control Header"
16
+ @isa01 = Eddy::Elements::I01.new(ref: "ISA01", req: "M")
17
+ @isa02 = Eddy::Elements::I02.new(ref: "ISA02", req: "M")
18
+ @isa03 = Eddy::Elements::I03.new(ref: "ISA03", req: "M")
19
+ @isa04 = Eddy::Elements::I04.new(ref: "ISA04", req: "M")
20
+ @isa05 = Eddy::Elements::I05.new(ref: "ISA05", req: "M")
21
+ @isa06 = Eddy::Elements::I06.new(ref: "ISA06", req: "M", val: store.application_senders_code)
22
+ @isa07 = Eddy::Elements::I05.new(ref: "ISA07", req: "M")
23
+ @isa08 = Eddy::Elements::I07.new(ref: "ISA08", req: "M", val: store.application_receivers_code)
24
+ @isa09 = Eddy::Elements::I08.new(ref: "ISA09", req: "M", val: store.time)
25
+ @isa10 = Eddy::Elements::I09.new(ref: "ISA10", req: "M", val: store.time)
26
+ @isa11 = Eddy::Elements::I10.new(ref: "ISA11", req: "M")
27
+ @isa12 = Eddy::Elements::I11.new(ref: "ISA12", req: "M", val: store.edi_version)
28
+ @isa13 = Eddy::Elements::I12.new(ref: "ISA13", req: "M", val: interchange_control_number)
29
+ @isa14 = Eddy::Elements::I13.new(ref: "ISA14", req: "M")
30
+ @isa15 = Eddy::Elements::I14.new(ref: "ISA15", req: "M")
31
+ @isa16 = Eddy::Elements::I15.new(ref: "ISA16", req: "M", val: store.component_separator)
32
+ super(
33
+ store,
34
+ @isa01,
35
+ @isa02,
36
+ @isa03,
37
+ @isa04,
38
+ @isa05,
39
+ @isa06,
40
+ @isa07,
41
+ @isa08,
42
+ @isa09,
43
+ @isa10,
44
+ @isa11,
45
+ @isa12,
46
+ @isa13,
47
+ @isa14,
48
+ @isa15,
49
+ @isa16,
50
+ )
51
+ end
52
+
53
+ # ### ISA01
54
+ #
55
+ # - Id: I01
56
+ # - Name: Authorization Information Qualifier
57
+ # - Type: ID
58
+ # - Min/Max: 2/2
59
+ # - Description: Code to identify the type of information in the Authorization Information
60
+ #
61
+ # @param arg [String]
62
+ # @return [void]
63
+ def ISA01=(arg)
64
+ @isa01.value = arg
65
+ end
66
+ alias AuthorizationInformationQualifier= ISA01=
67
+
68
+ # ### ISA02
69
+ #
70
+ # - Id: I02
71
+ # - Name: Authorization Information
72
+ # - Type: AN
73
+ # - Min/Max: 10/10
74
+ # - Description: Information used for additional identification or authorization of the interchange sender or the data in the interchange; the type of information is set by the Authorization Information Qualifier (I01)
75
+ #
76
+ # @param arg [String]
77
+ # @return [void]
78
+ def ISA02=(arg)
79
+ @isa02.value = arg
80
+ end
81
+ alias AuthorizationInformation= ISA02=
82
+
83
+ # ### ISA03
84
+ #
85
+ # - Id: I03
86
+ # - Name: Security Information Qualifier
87
+ # - Type: ID
88
+ # - Min/Max: 2/2
89
+ # - Description: Code to identify the type of information in the Security Information
90
+ #
91
+ # @param arg [String]
92
+ # @return [void]
93
+ def ISA03=(arg)
94
+ @isa03.value = arg
95
+ end
96
+ alias SecurityInformationQualifier= ISA03=
97
+
98
+ # ### ISA04
99
+ #
100
+ # - Id: I04
101
+ # - Name: Security Information
102
+ # - Type: AN
103
+ # - Min/Max: 10/10
104
+ # - Description: This is used for identifying the security information about the interchange sender or the data in the interchange; the type of information is set by the Security Information Qualifier (I03)
105
+ #
106
+ # @param arg [String]
107
+ # @return [void]
108
+ def ISA04=(arg)
109
+ @isa04.value = arg
110
+ end
111
+ alias SecurityInformation= ISA04=
112
+
113
+ # ### ISA05
114
+ #
115
+ # - Id: I05
116
+ # - Name: Interchange ID Qualifier
117
+ # - Type: ID
118
+ # - Min/Max: 2/2
119
+ # - Description: Qualifier to designate the system/method of code structure used to designate the sender or receiver ID element being qualified
120
+ #
121
+ # @param arg [String]
122
+ # @return [void]
123
+ def ISA05=(arg)
124
+ @isa05.value = arg
125
+ end
126
+ alias InterchangeIdQualifier1= ISA05=
127
+
128
+ # ### ISA06
129
+ #
130
+ # - Id: I06
131
+ # - Name: Interchange Sender ID
132
+ # - Type: AN
133
+ # - Min/Max: 15/15
134
+ # - Description: Identification code published by the sender for other parties to use as the receiver ID to route data to them; the sender always codes this value in the sender ID element
135
+ #
136
+ # @param arg [String]
137
+ # @return [void]
138
+ def ISA06=(arg)
139
+ @isa06.value = arg
140
+ end
141
+ alias InterchangeSenderId= ISA06=
142
+
143
+ # ### ISA07
144
+ #
145
+ # - Id: I05
146
+ # - Name: Interchange ID Qualifier
147
+ # - Type: ID
148
+ # - Min/Max: 2/2
149
+ # - Description: Qualifier to designate the system/method of code structure used to designate the sender or receiver ID element being qualified
150
+ #
151
+ # @param arg [String]
152
+ # @return [void]
153
+ def ISA07=(arg)
154
+ @isa07.value = arg
155
+ end
156
+ alias InterchangeIdQualifier2= ISA07=
157
+
158
+ # ### ISA08
159
+ #
160
+ # - Id: I07
161
+ # - Name: Interchange Receiver ID
162
+ # - Type: AN
163
+ # - Min/Max: 15/15
164
+ # - Description: Identification code published by the receiver of the data; When sending, it is used by the sender as their sending ID, thus other parties sending to them will use this as a receiving ID to route data to them
165
+ #
166
+ # @param arg [String]
167
+ # @return [void]
168
+ def ISA08=(arg)
169
+ @isa08.value = arg
170
+ end
171
+ alias InterchangeReceiverId= ISA08=
172
+
173
+ # ### ISA09
174
+ #
175
+ # - Id: I08
176
+ # - Name: Interchange Date
177
+ # - Type: DT
178
+ # - Min/Max: 6/6
179
+ # - Description: Date of the interchange
180
+ #
181
+ # @param arg [Time]
182
+ # @return [void]
183
+ def ISA09=(arg)
184
+ @isa09.value = arg
185
+ end
186
+ alias InterchangeDate= ISA09=
187
+
188
+ # ### ISA10
189
+ #
190
+ # - Id: I09
191
+ # - Name: Interchange Time
192
+ # - Type: TM
193
+ # - Min/Max: 4/4
194
+ # - Description: Time of the interchange
195
+ #
196
+ # @param arg [Time]
197
+ # @return [void]
198
+ def ISA10=(arg)
199
+ @isa10.value = arg
200
+ end
201
+ alias InterchangeTime= ISA10=
202
+
203
+ # ### ISA11
204
+ #
205
+ # - Id: I10
206
+ # - Name: Interchange Control Standards Identifier
207
+ # - Type: ID
208
+ # - Min/Max: 1/1
209
+ # - Description: Code to identify the agency responsible for the control standard used by the message that is enclosed by the interchange header and trailer
210
+ #
211
+ # @param arg [String]
212
+ # @return [void]
213
+ def ISA11=(arg)
214
+ @isa11.value = arg
215
+ end
216
+ alias InterchangeControlStandardsIdentifier= ISA11=
217
+
218
+ # ### ISA12
219
+ #
220
+ # - Id: I11
221
+ # - Name: Interchange Control Version Number
222
+ # - Type: ID
223
+ # - Min/Max: 5/5
224
+ # - Description: This version number covers the interchange control segments
225
+ #
226
+ # @param arg [String]
227
+ # @return [void]
228
+ def ISA12=(arg)
229
+ @isa12.value = arg
230
+ end
231
+ alias InterchangeControlVersionNumber= ISA12=
232
+
233
+ # ### ISA13
234
+ #
235
+ # - Id: I12
236
+ # - Name: Interchange Control Number
237
+ # - Type: N0
238
+ # - Min/Max: 9/9
239
+ # - Description: A control number assigned by the interchange sender
240
+ #
241
+ # @param arg [Integer]
242
+ # @return [void]
243
+ def ISA13=(arg)
244
+ @isa13.value = arg
245
+ end
246
+ alias InterchangeControlNumber= ISA13=
247
+
248
+ # ### ISA14
249
+ #
250
+ # - Id: I13
251
+ # - Name: Acknowledgment Requested
252
+ # - Type: ID
253
+ # - Min/Max: 1/1
254
+ # - Description: Code sent by the sender to request an interchange acknowledgment (TA1)
255
+ #
256
+ # @param arg [String]
257
+ # @return [void]
258
+ def ISA14=(arg)
259
+ @isa14.value = arg
260
+ end
261
+ alias AcknowledgmentRequested= ISA14=
262
+
263
+ # ### ISA15
264
+ #
265
+ # - Id: I14
266
+ # - Name: Usage Indicator
267
+ # - Type: ID
268
+ # - Min/Max: 1/1
269
+ # - Description: Code to indicate whether data enclosed by this interchange envelope is test, production or information
270
+ #
271
+ # @param arg [String]
272
+ # @return [void]
273
+ def ISA15=(arg)
274
+ @isa15.value = arg
275
+ end
276
+ alias UsageIndicator= ISA15=
277
+
278
+ # ### ISA16
279
+ #
280
+ # - Id: I15
281
+ # - Name: Component Element Separator
282
+ # - Type: AN
283
+ # - Min/Max: 1/1
284
+ # - Description: Type is not applicable; the component element separator is a delimiter and not a data element; this field provides the delimiter used to separate component data elements within a composite data structure; this value must be different than the data element separator and the segment terminator
285
+ #
286
+ # @param arg [String]
287
+ # @return [void]
288
+ def ISA16=(arg)
289
+ @isa16.value = arg
290
+ end
291
+ alias ComponentElementSeparator= ISA16=
292
+
293
+ end
294
+ end
295
+ end
@@ -0,0 +1,52 @@
1
+ module Eddy
2
+ module Segments
3
+ # ### Segment Summary:
4
+ #
5
+ # - Id: SE
6
+ # - Name: Transaction Set Trailer
7
+ # - Purpose: To indicate the end of the transaction set and provide the count of the transmitted segments (including the beginning (ST) and ending (SE) segments).
8
+ class SE < Eddy::Segment
9
+
10
+ # @param store [Eddy::Data::Store]
11
+ # @return [void]
12
+ def initialize(store)
13
+ @id = "SE"
14
+ @name = "Transaction Set Trailer"
15
+ @se01 = Eddy::Elements::E96.new(ref: "SE01", req: "M")
16
+ @se02 = Eddy::Elements::E329.new(ref: "SE02", req: "M") # TODO: store.transaction_set_control_number
17
+ super(store, @se01, @se02)
18
+ end
19
+
20
+ # ### SE01
21
+ #
22
+ # - Id: 96
23
+ # - Name: Number of Included Segments
24
+ # - Type: N0
25
+ # - Min/Max: 1/10
26
+ # - Description: Total number of segments included in a transaction set including ST and SE segments
27
+ #
28
+ # @param arg [String]
29
+ # @return [void]
30
+ def SE01=(arg)
31
+ @se01.value = arg
32
+ end
33
+ alias NumberOfIncludedSegments= SE01=
34
+
35
+ # ### SE02
36
+ #
37
+ # - Id: 329
38
+ # - Name: Transaction Set Control Number
39
+ # - Type: AN
40
+ # - Min/Max: 4/9
41
+ # - Description: Identifying control number that must be unique within the transaction set functional group assigned by the originator for a transaction set
42
+ #
43
+ # @param arg [String]
44
+ # @return [void]
45
+ def SE02=(arg)
46
+ @se02.value = arg
47
+ end
48
+ alias TransactionSetControlNumber= SE02=
49
+
50
+ end
51
+ end
52
+ end
@@ -0,0 +1,52 @@
1
+ module Eddy
2
+ module Segments
3
+ # ### Segment Summary:
4
+ #
5
+ # - Id: ST
6
+ # - Name: Transaction Set Header
7
+ # - Purpose: To indicate the start of a transaction set and to assign a control number.
8
+ class ST < Eddy::Segment
9
+
10
+ # @param store [Eddy::Data::Store]
11
+ # @return [void]
12
+ def initialize(store)
13
+ @id = "ST"
14
+ @name = "Transaction Set Header"
15
+ @st01 = Eddy::Elements::E143.new(ref: "ST01", req: "M")
16
+ @st02 = Eddy::Elements::E329.new(ref: "ST02", req: "M") # TODO: store.transaction_set_control_number
17
+ super(store, @st01, @st02)
18
+ end
19
+
20
+ # ### ST01
21
+ #
22
+ # - Id: 143
23
+ # - Name: Transaction Set Identifier Code
24
+ # - Type: ID
25
+ # - Min/Max: 3/3
26
+ # - Description: Code uniquely identifying a Transaction Set
27
+ #
28
+ # @param arg [String]
29
+ # @return [void]
30
+ def ST01=(arg)
31
+ @st01.value = arg
32
+ end
33
+ alias TransactionSetIdentifierCode= ST01=
34
+
35
+ # ### ST02
36
+ #
37
+ # - Id: 329
38
+ # - Name: Transaction Set Control Number
39
+ # - Type: AN
40
+ # - Min/Max: 4/9
41
+ # - Description: Identifying control number that must be unique within the transaction set functional group assigned by the originator for a transaction set
42
+ #
43
+ # @param arg [String]
44
+ # @return [void]
45
+ def ST02=(arg)
46
+ @st02.value = arg
47
+ end
48
+ alias TransactionSetControlNumber= ST02=
49
+
50
+ end
51
+ end
52
+ end