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,96 @@
1
+ module Eddy
2
+ module Segments
3
+ # ### Segment Summary:
4
+ #
5
+ # - Id: HL
6
+ # - Name: Hierarchical Level
7
+ # - Purpose: To identify dependencies among and the content of hierarchically related groups of data segments.
8
+ #
9
+ # ### Notes
10
+ #
11
+ # - Related RFIs
12
+ # - [HL SEGMENT CONTENT - RFI 31](http://www.x12.org/rfis/HL%20Segment%20Content.pdf)
13
+ # - [HL Parent/Child relationship - RFI 610](http://rfi.x12.org/Request/Details/610?stateViewModel=WPC.RFI.Models.ViewModels.RequestViewModel)
14
+ class HL < Eddy::Segment
15
+
16
+ # @param store [Eddy::Data::Store]
17
+ # @return [void]
18
+ def initialize(store)
19
+ @id = "HL"
20
+ @name = "Hierarchical Level"
21
+ @hl01 = Eddy::Elements::E628.new(ref: "HL01", req: "M")
22
+ @hl02 = Eddy::Elements::E734.new(ref: "HL02", req: "O")
23
+ @hl03 = Eddy::Elements::E735.new(ref: "HL03", req: "M")
24
+ @hl04 = Eddy::Elements::E736.new(ref: "HL04", req: "O")
25
+ super(
26
+ store,
27
+ @hl01,
28
+ @hl02,
29
+ @hl03,
30
+ @hl04,
31
+ )
32
+ end
33
+
34
+ # ### HL01
35
+ #
36
+ # - Id: 628
37
+ # - Name: Hierarchical ID Number
38
+ # - Type: AN
39
+ # - Min/Max: 1/12
40
+ # - Description: A unique number assigned by the sender to identify a particular data segment in a hierarchical structure
41
+ #
42
+ # @param arg [String]
43
+ # @return [void]
44
+ def HL01=(arg)
45
+ @hl01.value = arg
46
+ end
47
+ alias HierarchicalIdNumber= HL01=
48
+
49
+ # ### HL02
50
+ #
51
+ # - Id: 734
52
+ # - Name: Hierarchical Parent ID Number
53
+ # - Type: AN
54
+ # - Min/Max: 1/12
55
+ # - Description: Identification number of the next higher hierarchical data segment that the data segment being described is subordinate to
56
+ #
57
+ # @param arg [String]
58
+ # @return [void]
59
+ def HL02=(arg)
60
+ @hl02.value = arg
61
+ end
62
+ alias HierarchicalParentIdNumber= HL02=
63
+
64
+ # ### HL03
65
+ #
66
+ # - Id: 735
67
+ # - Name: Hierarchical Level Code
68
+ # - Type: ID
69
+ # - Min/Max: 1/2
70
+ # - Description: Code defining the characteristic of a level in a hierarchical structure
71
+ #
72
+ # @param arg [String]
73
+ # @return [void]
74
+ def HL03=(arg)
75
+ @hl03.value = arg
76
+ end
77
+ alias HierarchicalLevelCode= HL03=
78
+
79
+ # ### HL04
80
+ #
81
+ # - Id: 736
82
+ # - Name: Hierarchical Child Code
83
+ # - Type: ID
84
+ # - Min/Max: 1/1
85
+ # - Description: Code indicating if there are hierarchical child data segments subordinate to the level being described
86
+ #
87
+ # @param arg [String]
88
+ # @return [void]
89
+ def HL04=(arg)
90
+ @hl04.value = arg
91
+ end
92
+ alias HierarchicalChildCode= HL04=
93
+
94
+ end
95
+ end
96
+ end
@@ -0,0 +1,52 @@
1
+ module Eddy
2
+ module Segments
3
+ # ### Segment Summary:
4
+ #
5
+ # - Id: N2
6
+ # - Name: Additional Name Information
7
+ # - Purpose: To identify a party by type of organization, name, and code.
8
+ class N2 < Eddy::Segment
9
+
10
+ # @param store [Eddy::Data::Store]
11
+ # @return [void]
12
+ def initialize(store)
13
+ @id = "N2"
14
+ @name = "Additional Name Information"
15
+ @n201 = Eddy::Elements::E93.new(ref: "N201", req: "M")
16
+ @n202 = Eddy::Elements::E93.new(ref: "N202", req: "O")
17
+ super(store, @n201, @n202)
18
+ end
19
+
20
+ # ### N201
21
+ #
22
+ # - Id: 93
23
+ # - Name: Name
24
+ # - Type: AN
25
+ # - Min/Max: 1/60
26
+ # - Description: Free-form name
27
+ #
28
+ # @param arg [String]
29
+ # @return [void]
30
+ def N201=(arg)
31
+ @n201.value = arg
32
+ end
33
+ alias Name1= N201=
34
+
35
+ # ### N202
36
+ #
37
+ # - Id: 93
38
+ # - Name: Name
39
+ # - Type: AN
40
+ # - Min/Max: 1/60
41
+ # - Description: Free-form name
42
+ #
43
+ # @param arg [String]
44
+ # @return [void]
45
+ def N202=(arg)
46
+ @n202.value = arg
47
+ end
48
+ alias Name2= N202=
49
+
50
+ end
51
+ end
52
+ end
@@ -0,0 +1,143 @@
1
+ module Eddy
2
+ module TransactionSets
3
+ # Namespace for Transaction Set 810 and its loops.
4
+ module TS810
5
+ # ### Transaction Set Summary:
6
+ #
7
+ # - Id: 810
8
+ # - Name: Invoice
9
+ # - Functional Group: IN
10
+ class TS810 < Eddy::TransactionSet
11
+
12
+ ID = "810".freeze
13
+ NAME = "Invoice".freeze
14
+ FUNCTIONAL_GROUP = "IN".freeze
15
+
16
+ # @param store [Eddy::Data::Store]
17
+ # @return [void]
18
+ def initialize(store)
19
+ @big = Eddy::Segments::BIG.new(store)
20
+ @ref = Eddy::Segments::REF.new(store)
21
+ @l_n1 = Eddy::TransactionSets::TS810::Loops::N1.new(store)
22
+ @dtm = Eddy::Segments::DTM.new(store)
23
+ @l_it1 = Eddy::TransactionSets::TS810::Loops::IT1.new(store)
24
+ @tds = Eddy::Segments::TDS.new(store)
25
+ @cad = Eddy::Segments::CAD.new(store)
26
+ @l_sac = Eddy::TransactionSets::TS810::Loops::SAC.new(store)
27
+ @ctt = Eddy::Segments::CTT.new(store)
28
+ super(
29
+ store,
30
+ @big,
31
+ @ref,
32
+ @l_n1,
33
+ @dtm,
34
+ @l_it1,
35
+ @tds,
36
+ @cad,
37
+ @l_sac,
38
+ @ctt,
39
+ )
40
+ end
41
+
42
+ # (see Eddy::Segments::BIG)
43
+ #
44
+ # @yieldparam [Eddy::Segments::BIG] big
45
+ # @return [Eddy::Segments::BIG]
46
+ def BIG()
47
+ yield(@big) if block_given?
48
+ return @big
49
+ end
50
+
51
+ # (see Eddy::Segments::REF)
52
+ #
53
+ # @yieldparam [Eddy::Segments::REF] ref
54
+ # @return [Eddy::Segments::REF]
55
+ def REF()
56
+ yield(@ref) if block_given?
57
+ return @ref
58
+ end
59
+
60
+ # (see Eddy::TransactionSets::TS810::Loops::N1)
61
+ #
62
+ # @yieldparam [Eddy::Segments::N1] n1
63
+ # @yieldparam [Eddy::Segments::N3] n3
64
+ # @yieldparam [Eddy::Segments::N4] n4
65
+ # @return [void]
66
+ def L_N1(&block)
67
+ if block_given?
68
+ @l_n1.add_iteration(&block)
69
+ else
70
+ raise Eddy::Errors::Error, "No block given in loop iteration"
71
+ end
72
+ return nil
73
+ end
74
+
75
+ # (see Eddy::Segments::DTM)
76
+ #
77
+ # @yieldparam [Eddy::Segments::DTM] dtm
78
+ # @return [Eddy::Segments::DTM]
79
+ def DTM()
80
+ yield(@dtm) if block_given?
81
+ return @dtm
82
+ end
83
+
84
+ # (see Eddy::TransactionSets::TS810::Loops::IT1)
85
+ #
86
+ # @yieldparam [Eddy::Segments::IT1] it1
87
+ # @yieldparam [Eddy::Segments::CTP] ctp
88
+ # @yieldparam [Eddy::TransactionSets::TS810::Loops::PID] l_pid
89
+ # @yieldparam [Eddy::TransactionSets::TS810::Loops::SAC] l_sac
90
+ # @return [void]
91
+ def L_IT1(&block)
92
+ if block_given?
93
+ @l_it1.add_iteration(&block)
94
+ else
95
+ raise Eddy::Errors::Error, "No block given in loop iteration"
96
+ end
97
+ return nil
98
+ end
99
+
100
+ # (see Eddy::Segments::TDS)
101
+ #
102
+ # @yieldparam [Eddy::Segments::TDS] tds
103
+ # @return [Eddy::Segments::TDS]
104
+ def TDS()
105
+ yield(@tds) if block_given?
106
+ return @tds
107
+ end
108
+
109
+ # (see Eddy::Segments::CAD)
110
+ #
111
+ # @yieldparam [Eddy::Segments::CAD] cad
112
+ # @return [Eddy::Segments::CAD]
113
+ def CAD()
114
+ yield(@cad) if block_given?
115
+ return @cad
116
+ end
117
+
118
+ # (see Eddy::TransactionSets::TS810::Loops::SAC)
119
+ #
120
+ # @yieldparam [Eddy::Segments::SAC] sac
121
+ # @return [void]
122
+ def L_SAC(&block)
123
+ if block_given?
124
+ @l_sac.add_iteration(&block)
125
+ else
126
+ raise Eddy::Errors::Error, "No block given in loop iteration"
127
+ end
128
+ return nil
129
+ end
130
+
131
+ # (see Eddy::Segments::CTT)
132
+ #
133
+ # @yieldparam [Eddy::Segments::CTT] ctt
134
+ # @return [Eddy::Segments::CTT]
135
+ def CTT()
136
+ yield(@ctt) if block_given?
137
+ return @ctt
138
+ end
139
+
140
+ end
141
+ end
142
+ end
143
+ end
@@ -0,0 +1,109 @@
1
+ module Eddy
2
+ module TransactionSets
3
+ # Namespace for Transaction Set 810 and its loops.
4
+ module TS810
5
+ module Loops
6
+
7
+ # ### Loop Summary:
8
+ #
9
+ # - Repeat: 200
10
+ # - Components:
11
+ # - N1
12
+ # - N3
13
+ # - N4
14
+ class N1 < Eddy::Loop::Base
15
+ # @param store [Eddy::Data::Store]
16
+ # @return [void]
17
+ def initialize(store)
18
+ super(store)
19
+ @repeat = 200
20
+ @components = [
21
+ Eddy::Segments::N1,
22
+ Eddy::Segments::N3,
23
+ Eddy::Segments::N4,
24
+ ]
25
+ end
26
+
27
+ # @!method add_iteration(&block)
28
+ # @yieldparam [Eddy::Segments::N1] n1
29
+ # @yieldparam [Eddy::Segments::N3] n3
30
+ # @yieldparam [Eddy::Segments::N4] n4
31
+ # @return [void]
32
+ end
33
+
34
+ # ### Loop Summary:
35
+ #
36
+ # - Repeat: 200,000
37
+ # - Components:
38
+ # - IT1
39
+ # - CTP
40
+ # - PID (Loop)
41
+ # - SAC (loop)
42
+ class IT1 < Eddy::Loop::Base
43
+ # @param store [Eddy::Data::Store]
44
+ # @return [void]
45
+ def initialize(store)
46
+ super(store)
47
+ @repeat = 200_000
48
+ @components = [
49
+ Eddy::Segments::IT1,
50
+ Eddy::Segments::CTP,
51
+ Eddy::TransactionSets::TS810::Loops::PID,
52
+ Eddy::TransactionSets::TS810::Loops::SAC,
53
+ ]
54
+ end
55
+
56
+ # @!method add_iteration(&block)
57
+ # @yieldparam [Eddy::Segments::IT1] it1
58
+ # @yieldparam [Eddy::Segments::CTP] ctp
59
+ # @yieldparam [Eddy::TransactionSets::TS850::Loops::PID] l_pid
60
+ # @yieldparam [Eddy::TransactionSets::TS850::Loops::SAC] l_sac
61
+ # @return [void]
62
+ end
63
+
64
+ # ### Loop Summary:
65
+ #
66
+ # - Repeat: 1,000
67
+ # - Components:
68
+ # - PID
69
+ class PID < Eddy::Loop::Base
70
+ # @param store [Eddy::Data::Store]
71
+ # @return [void]
72
+ def initialize(store)
73
+ super(store)
74
+ @repeat = 1_000
75
+ @components = [
76
+ Eddy::Segments::PID,
77
+ ]
78
+ end
79
+
80
+ # @!method add_iteration(&block)
81
+ # @yieldparam [Eddy::Segments::PID] pid
82
+ # @return [void]
83
+ end
84
+
85
+ # ### Loop Summary:
86
+ #
87
+ # - Repeat: 25
88
+ # - Components:
89
+ # - SAC
90
+ class SAC < Eddy::Loop::Base
91
+ # @param store [Eddy::Data::Store]
92
+ # @return [void]
93
+ def initialize(store)
94
+ super(store)
95
+ @repeat = 25
96
+ @components = [
97
+ Eddy::Segments::SAC,
98
+ ]
99
+ end
100
+
101
+ # @!method add_iteration(&block)
102
+ # @yieldparam [Eddy::Segments::SAC] sac
103
+ # @return [void]
104
+ end
105
+
106
+ end
107
+ end
108
+ end
109
+ end
@@ -0,0 +1,92 @@
1
+ module Eddy
2
+ module TransactionSets
3
+ # Namespace for Transaction Set 850 and its loops.
4
+ module TS850
5
+ # ### Transaction Set Summary:
6
+ #
7
+ # - Id: 850
8
+ # - Name: Purchase Order
9
+ # - Functional Group: PO
10
+ class TS850 < Eddy::TransactionSet
11
+
12
+ ID = "850".freeze
13
+ NAME = "Purchase Order".freeze
14
+ FUNCTIONAL_GROUP = "PO".freeze
15
+
16
+ # @param store [Eddy::Data::Store]
17
+ # @return [void]
18
+ def initialize(store)
19
+ @beg = Eddy::Segments::BEG.new(store)
20
+ @td5 = Eddy::Segments::TD5.new(store)
21
+ @l_n1 = Eddy::TransactionSets::TS850::Loops::N1.new(store)
22
+ @l_po1 = Eddy::TransactionSets::TS850::Loops::PO1.new(store)
23
+ @ctt = Eddy::Segments::CTT.new(store)
24
+ super(
25
+ store,
26
+ @beg,
27
+ @td5,
28
+ @l_n1,
29
+ @l_po1,
30
+ @ctt,
31
+ )
32
+ end
33
+
34
+ # (see Eddy::Segments::BEG)
35
+ #
36
+ # @yieldparam [Eddy::Segments::BEG] beg
37
+ # @return [Eddy::Segments::BEG]
38
+ def BEG()
39
+ yield(@beg) if block_given?
40
+ return @beg
41
+ end
42
+
43
+ # (see Eddy::Segments::TD5)
44
+ #
45
+ # @yieldparam [Eddy::Segments::TD5] td5
46
+ # @return [Eddy::Segments::TD5]
47
+ def TD5()
48
+ yield(@td5) if block_given?
49
+ return @td5
50
+ end
51
+
52
+ # (see Eddy::TransactionSets::TS850::Loops::N1)
53
+ #
54
+ # @yieldparam [Eddy::Segments::N1] n1
55
+ # @yieldparam [Eddy::Segments::N3] n3
56
+ # @yieldparam [Eddy::Segments::N4] n4
57
+ # @return [void]
58
+ def L_N1(&block)
59
+ if block_given?
60
+ @l_n1.add_iteration(&block)
61
+ else
62
+ raise Eddy::Errors::Error, "No block given in loop iteration"
63
+ end
64
+ return nil
65
+ end
66
+
67
+ # (see Eddy::TransactionSets::TS850::Loops::PO1)
68
+ #
69
+ # @yieldparam [Eddy::Segments::PO1] po1
70
+ # @return [void]
71
+ def L_PO1(&block)
72
+ if block_given?
73
+ @l_po1.add_iteration(&block)
74
+ else
75
+ raise Eddy::Errors::Error, "No block given in loop iteration"
76
+ end
77
+ return nil
78
+ end
79
+
80
+ # (see Eddy::Segments::CTT)
81
+ #
82
+ # @yieldparam [Eddy::Segments::CTT] ctt
83
+ # @return [Eddy::Segments::CTT]
84
+ def CTT()
85
+ yield(@ctt) if block_given?
86
+ return @ctt
87
+ end
88
+
89
+ end
90
+ end
91
+ end
92
+ end