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.
- checksums.yaml +4 -4
- data/.rubocop.yml +103 -37
- data/.solargraph.yml +4 -0
- data/.vscode/settings.json +17 -0
- data/.yardopts +2 -2
- data/CHANGELOG.md +50 -0
- data/Gemfile.lock +21 -7
- data/README.md +32 -3
- data/Rakefile +1 -10
- data/data/004010/code-lists/100.tsv +164 -0
- data/data/004010/code-lists/156.tsv +52 -0
- data/data/004010/code-lists/26.tsv +499 -0
- data/data/004010/code-lists/etc/100-fancy-definitions.tsv +164 -0
- data/data/004010/code-lists/etc/100-with-funds-codes.tsv +180 -0
- data/data/004010/code-lists/etc/26-alpha2.tsv +250 -0
- data/data/004010/code-lists/etc/26-alpha3.tsv +250 -0
- data/data/004010/elements-short.tsv +1405 -0
- data/data/004010/elements.tsv +3 -3
- data/data/004010/segments.tsv +1009 -1003
- data/data/004010/segments/ack.segment.yml +15 -0
- data/data/004010/segments/bak.segment.yml +9 -0
- data/data/004010/segments/beg.segment.yml +17 -0
- data/data/004010/segments/big.segment.yml +10 -0
- data/data/004010/segments/bsn.segment.yml +10 -0
- data/data/004010/segments/cad.segment.yml +14 -0
- data/data/004010/segments/ctp.segment.yml +19 -0
- data/data/004010/segments/ctt.segment.yml +13 -0
- data/data/004010/segments/dtm.segment.yml +7 -0
- data/data/004010/segments/envelope/ge.segment.yml +7 -0
- data/data/004010/segments/envelope/gs.segment.yml +13 -0
- data/data/004010/segments/envelope/iea.segment.yml +8 -0
- data/data/004010/segments/envelope/isa.segment.yml +22 -0
- data/data/004010/segments/envelope/se.segment.yml +7 -0
- data/data/004010/segments/envelope/st.segment.yml +12 -0
- data/data/004010/segments/hl.segment.yml +9 -0
- data/data/004010/segments/it1.segment.yml +20 -0
- data/data/004010/segments/lin.segment.yml +10 -0
- data/data/004010/segments/loop/hl.segment.yml +8 -0
- data/data/004010/segments/man.segment.yml +7 -0
- data/data/004010/segments/n1.segment.yml +9 -0
- data/data/004010/segments/n2.segment.yml +7 -0
- data/data/004010/segments/n3.segment.yml +6 -0
- data/data/004010/segments/n4.segment.yml +9 -0
- data/data/004010/segments/pid.segment.yml +10 -0
- data/data/004010/segments/po1.segment.yml +14 -0
- data/data/004010/segments/prf.segment.yml +9 -0
- data/data/004010/segments/ref.segment.yml +7 -0
- data/data/004010/segments/sac.segment.yml +20 -0
- data/data/004010/segments/sln.segment.yml +12 -0
- data/data/004010/segments/sn1.segment.yml +11 -0
- data/data/004010/segments/td1.segment.yml +13 -0
- data/data/004010/segments/td5.segment.yml +11 -0
- data/data/004010/segments/tds.segment.yml +10 -0
- data/data/schema/element_summary.json +60 -0
- data/data/schema/loop_summary.json +49 -0
- data/data/schema/segment_summary.json +66 -0
- data/data/schema/src/element_summary.schema.yml +73 -0
- data/data/schema/src/loop_summary.schema.yml +50 -0
- data/data/schema/src/segment_summary.schema.yml +59 -0
- data/data/schema/src/transaction_set_summary.schema.yml +27 -0
- data/data/schema/transaction_set_summary.json +33 -0
- data/data/sources.md +114 -145
- data/eddy.gemspec +6 -3
- data/exe/eddy +14 -0
- data/lib/definitions/elements/generated/1005.hierarchical_structure_code.rb +98 -0
- data/lib/definitions/elements/generated/1019.invoice_type_code.rb +40 -0
- data/lib/definitions/elements/generated/103.packaging_code.rb +29 -0
- data/lib/definitions/elements/generated/1166.contract_type_code.rb +87 -0
- data/lib/definitions/elements/generated/1232.purchase_category.rb +53 -0
- data/lib/definitions/elements/generated/127.reference_identification.rb +29 -0
- data/lib/definitions/elements/generated/128.reference_identification_qualifier.rb +1540 -0
- data/lib/definitions/elements/generated/1300.service_promotion_allowance_or_charge_code.rb +1090 -0
- data/lib/definitions/elements/generated/1301.agency_service_promotion_allowance_or_charge_code.rb +29 -0
- data/lib/definitions/elements/generated/133.routing_sequence_code.rb +60 -0
- data/lib/definitions/elements/generated/166.address_information.rb +29 -0
- data/lib/definitions/elements/generated/183.volume.rb +29 -0
- data/lib/definitions/elements/generated/187.weight_qualifier.rb +88 -0
- data/lib/definitions/elements/generated/19.city_name.rb +29 -0
- data/lib/definitions/elements/generated/206.equipment_initial.rb +29 -0
- data/lib/definitions/elements/generated/207.equipment_number.rb +29 -0
- data/lib/definitions/elements/generated/212.unit_price.rb +29 -0
- data/lib/definitions/elements/generated/22.commodity_code.rb +29 -0
- data/lib/definitions/elements/generated/23.commodity_code_qualifier.rb +60 -0
- data/lib/definitions/elements/generated/234.product_service_id.rb +29 -0
- data/lib/definitions/elements/generated/235.product_service_id_qualifier.rb +514 -0
- data/lib/definitions/elements/generated/236.price_identifier_code.rb +201 -0
- data/lib/definitions/elements/generated/248.allowance_or_charge_indicator.rb +44 -0
- data/lib/definitions/elements/generated/26.country_code.rb +535 -0
- data/lib/definitions/elements/generated/284.service_level_code.rb +103 -0
- data/lib/definitions/elements/generated/324.purchase_order_number.rb +29 -0
- data/lib/definitions/elements/generated/326.request_reference_number.rb +29 -0
- data/lib/definitions/elements/generated/327.change_order_sequence_number.rb +29 -0
- data/lib/definitions/elements/generated/328.release_number.rb +29 -0
- data/lib/definitions/elements/generated/330.quantity_ordered.rb +29 -0
- data/lib/definitions/elements/generated/347.hash_total.rb +29 -0
- data/lib/definitions/elements/generated/349.item_description_type.rb +40 -0
- data/lib/definitions/elements/generated/352.description.rb +29 -0
- data/lib/definitions/elements/generated/353.transaction_set_purpose_code.rb +102 -0
- data/lib/definitions/elements/generated/354.number_of_line_items.rb +30 -0
- data/lib/definitions/elements/generated/355.unit_or_basis_for_measurement_code.rb +831 -0
- data/lib/definitions/elements/generated/358.quantity_invoiced.rb +29 -0
- data/lib/definitions/elements/generated/367.contract_number.rb +29 -0
- data/lib/definitions/elements/generated/368.shipment_order_status_code.rb +139 -0
- data/lib/definitions/elements/generated/374.date_time_qualifier.rb +1149 -0
- data/lib/definitions/elements/generated/380.quantity.rb +29 -0
- data/lib/definitions/elements/generated/382.number_of_units_shipped.rb +29 -0
- data/lib/definitions/elements/generated/387.routing.rb +29 -0
- data/lib/definitions/elements/generated/396.shipment_identification.rb +29 -0
- data/lib/definitions/elements/generated/559.agency_qualifier_code.rb +213 -0
- data/lib/definitions/elements/generated/587.acknowledgment_type.rb +52 -0
- data/lib/definitions/elements/generated/610.amount.rb +30 -0
- data/lib/definitions/elements/generated/639.basis_of_unit_price_code.rb +128 -0
- data/lib/definitions/elements/generated/640.transaction_type_code.rb +483 -0
- data/lib/definitions/elements/generated/646.quantity_shipped_to_date.rb +29 -0
- data/lib/definitions/elements/generated/648.price_multiplier_qualifier.rb +43 -0
- data/lib/definitions/elements/generated/649.multiplier.rb +29 -0
- data/lib/definitions/elements/generated/66.identification_code_qualifier.rb +252 -0
- data/lib/definitions/elements/generated/662.relationship_code.rb +42 -0
- data/lib/definitions/elements/generated/668.line_item_status_code.rb +63 -0
- data/lib/definitions/elements/generated/67.identification_code.rb +29 -0
- data/lib/definitions/elements/generated/687.class_of_trade_code.rb +89 -0
- data/lib/definitions/elements/generated/750.product_process_characteristic_code.rb +254 -0
- data/lib/definitions/elements/generated/751.product_description_code.rb +29 -0
- data/lib/definitions/elements/generated/76.invoice_number.rb +29 -0
- data/lib/definitions/elements/generated/782.monetary_amount.rb +29 -0
- data/lib/definitions/elements/generated/786.security_level_code.rb +54 -0
- data/lib/definitions/elements/generated/79.lading_description.rb +29 -0
- data/lib/definitions/elements/generated/80.lading_quantity.rb +30 -0
- data/lib/definitions/elements/generated/87.marks_and_numbers.rb +29 -0
- data/lib/definitions/elements/generated/88.marks_and_numbers_qualifier.rb +57 -0
- data/lib/definitions/elements/generated/91.transportation_method_type_code.rb +108 -0
- data/lib/definitions/elements/generated/92.purchase_order_type_code.rb +106 -0
- data/lib/definitions/elements/generated/98.entity_identifier_code.rb +1349 -0
- data/lib/definitions/elements/manual/116.postal_code.rb +44 -0
- data/lib/definitions/elements/manual/124.application_receivers_code.rb +29 -0
- data/lib/definitions/elements/manual/140.standard_carrier_alpha_code.rb +211 -0
- data/lib/definitions/elements/manual/142.application_senders_code.rb +29 -0
- data/lib/definitions/elements/manual/143.transaction_set_identifier_code.rb +335 -0
- data/lib/definitions/elements/manual/156.state_or_province_code.rb +92 -0
- data/lib/definitions/elements/manual/28.group_control_number.rb +34 -0
- data/lib/definitions/elements/manual/329.transactional_set_control_number.rb +35 -0
- data/lib/definitions/elements/manual/337.time.rb +30 -0
- data/lib/definitions/elements/manual/350.assigned_identification.rb +33 -0
- data/lib/definitions/elements/manual/373.date.rb +30 -0
- data/lib/definitions/elements/manual/455.responsible_agency_code.rb +43 -0
- data/lib/definitions/elements/manual/479.functional_identifier_code.rb +271 -0
- data/lib/definitions/elements/manual/480.version_release_industry_identifier_code.rb +145 -0
- data/lib/definitions/elements/manual/784.length_of_binary_data.rb +30 -0
- data/lib/definitions/elements/manual/785.binary_data.rb +30 -0
- data/lib/definitions/elements/manual/96.number_of_included_segments.rb +30 -0
- data/lib/definitions/elements/manual/97.number_of_transaction_sets_included.rb +30 -0
- data/lib/definitions/elements/manual/hl/628.hierarchical_id_number.rb +29 -0
- data/lib/definitions/elements/manual/hl/734.hierarchical_parent_id_number.rb +29 -0
- data/lib/definitions/elements/manual/hl/735.hierarchical_level_code.rb +207 -0
- data/lib/definitions/elements/manual/hl/736.hierarchical_child_code.rb +39 -0
- data/lib/definitions/elements/manual/i/I01.authorization_information_qualifier.rb +48 -0
- data/lib/definitions/elements/manual/i/I02.authorization_information.rb +33 -0
- data/lib/definitions/elements/manual/i/I03.security_information_qualifier.rb +43 -0
- data/lib/definitions/elements/manual/i/I04.security_information.rb +33 -0
- data/lib/definitions/elements/manual/i/I05.interchange_id_qualifier.rb +75 -0
- data/lib/definitions/elements/manual/i/I06.interchange_sender_id.rb +29 -0
- data/lib/definitions/elements/manual/i/I07.interchange_receiver_id.rb +29 -0
- data/lib/definitions/elements/manual/i/I08.interchange_date.rb +35 -0
- data/lib/definitions/elements/manual/i/I09.interchange_time.rb +36 -0
- data/lib/definitions/elements/manual/i/I10.interchange_control_standards_identifier.rb +42 -0
- data/lib/definitions/elements/manual/i/I11.interchange_control_version_number.rb +55 -0
- data/lib/definitions/elements/manual/i/I12.interchange_control_number.rb +34 -0
- data/lib/definitions/elements/manual/i/I13.acknowledgment_requested.rb +43 -0
- data/lib/definitions/elements/manual/i/I14.usage_indicator.rb +40 -0
- data/lib/definitions/elements/manual/i/I15.component_element_separator.rb +36 -0
- data/lib/definitions/elements/manual/i/I16.number_of_included_functional_groups.rb +30 -0
- data/lib/definitions/elements/manual/misc/81.weight.rb +29 -0
- data/lib/definitions/elements/manual/misc/93.name.rb +29 -0
- data/lib/definitions/segments/generated/ack.rb +192 -0
- data/lib/definitions/segments/generated/bak.rb +90 -0
- data/lib/definitions/segments/generated/beg.rb +226 -0
- data/lib/definitions/segments/generated/big.rb +107 -0
- data/lib/definitions/segments/generated/bsn.rb +107 -0
- data/lib/definitions/segments/generated/cad.rb +175 -0
- data/lib/definitions/segments/generated/ctp.rb +158 -0
- data/lib/definitions/segments/generated/ctt.rb +141 -0
- data/lib/definitions/segments/generated/dtm.rb +56 -0
- data/lib/definitions/segments/generated/it1.rb +277 -0
- data/lib/definitions/segments/generated/lin.rb +107 -0
- data/lib/definitions/segments/generated/man.rb +56 -0
- data/lib/definitions/segments/generated/n1.rb +90 -0
- data/lib/definitions/segments/generated/n3.rb +39 -0
- data/lib/definitions/segments/generated/n4.rb +90 -0
- data/lib/definitions/segments/generated/pid.rb +107 -0
- data/lib/definitions/segments/generated/po1.rb +175 -0
- data/lib/definitions/segments/generated/prf.rb +90 -0
- data/lib/definitions/segments/generated/ref.rb +56 -0
- data/lib/definitions/segments/generated/sac.rb +107 -0
- data/lib/definitions/segments/generated/sln.rb +141 -0
- data/lib/definitions/segments/generated/sn1.rb +124 -0
- data/lib/definitions/segments/generated/td1.rb +158 -0
- data/lib/definitions/segments/generated/td5.rb +107 -0
- data/lib/definitions/segments/generated/tds.rb +39 -0
- data/lib/definitions/segments/manual/envelopes/ge.rb +53 -0
- data/lib/definitions/segments/manual/envelopes/gs.rb +163 -0
- data/lib/definitions/segments/manual/envelopes/iea.rb +53 -0
- data/lib/definitions/segments/manual/envelopes/isa.rb +295 -0
- data/lib/definitions/segments/manual/envelopes/se.rb +52 -0
- data/lib/definitions/segments/manual/envelopes/st.rb +52 -0
- data/lib/definitions/segments/manual/hl.rb +96 -0
- data/lib/definitions/segments/manual/n2.rb +52 -0
- data/lib/definitions/transaction_sets/manual/810/810.rb +143 -0
- data/lib/definitions/transaction_sets/manual/810/loops.rb +109 -0
- data/lib/definitions/transaction_sets/manual/850/850.rb +92 -0
- data/lib/definitions/transaction_sets/manual/850/loops.rb +58 -0
- data/lib/definitions/transaction_sets/manual/855/855.rb +83 -0
- data/lib/definitions/transaction_sets/manual/855/loops.rb +104 -0
- data/lib/definitions/transaction_sets/manual/856/856.rb +83 -0
- data/lib/definitions/transaction_sets/manual/856/loops.rb +155 -0
- data/lib/eddy.rb +29 -7
- data/lib/eddy/build/build.rb +47 -0
- data/lib/eddy/build/elements/element.rb +67 -0
- data/lib/eddy/build/elements/elements.rb +46 -0
- data/lib/eddy/build/elements/id.rb +55 -0
- data/lib/eddy/build/elements/n.rb +48 -0
- data/lib/eddy/build/loop_builder.rb +93 -0
- data/lib/eddy/build/segment_builder.rb +169 -0
- data/lib/eddy/build/transaction_set_builder.rb +218 -0
- data/lib/eddy/cli/cli.rb +39 -0
- data/lib/eddy/config.rb +51 -0
- data/lib/eddy/data.rb +50 -0
- data/lib/eddy/data/persistence/active_record.rb +10 -0
- data/lib/eddy/data/persistence/base.rb +47 -0
- data/lib/eddy/data/persistence/file.rb +50 -0
- data/lib/eddy/data/persistence/memory.rb +65 -0
- data/lib/eddy/data/store.rb +108 -0
- data/lib/eddy/errors.rb +112 -0
- data/lib/eddy/models/element.rb +14 -0
- data/lib/eddy/models/element/an.rb +55 -0
- data/lib/eddy/models/element/b.rb +53 -0
- data/lib/eddy/models/element/base.rb +116 -0
- data/lib/eddy/models/element/composite.rb +6 -0
- data/lib/eddy/models/element/dt.rb +100 -0
- data/lib/eddy/models/element/id.rb +58 -0
- data/lib/eddy/models/element/n.rb +94 -0
- data/lib/eddy/models/element/r.rb +84 -0
- data/lib/eddy/models/element/tm.rb +113 -0
- data/lib/eddy/models/loop.rb +74 -0
- data/lib/eddy/models/segment.rb +35 -0
- data/lib/eddy/models/transaction_set.rb +101 -0
- data/lib/eddy/parse.rb +58 -0
- data/lib/eddy/schema/element_summary.rb +123 -0
- data/lib/eddy/schema/loop_summary.rb +101 -0
- data/lib/eddy/schema/segment_summary.rb +116 -0
- data/lib/eddy/schema/transaction_set_summary.rb +96 -0
- data/lib/eddy/schema/validate.rb +41 -0
- data/lib/eddy/util.rb +16 -0
- data/lib/eddy/util/clean_folder.rb +14 -0
- data/lib/eddy/util/edi_data.rb +153 -0
- data/lib/eddy/util/new_number.rb +24 -0
- data/lib/eddy/util/normalize.rb +51 -0
- data/lib/eddy/util/paths.rb +19 -0
- data/lib/eddy/util/read.rb +38 -0
- data/lib/eddy/util/time.rb +56 -0
- data/lib/eddy/util/timestamp.rb +12 -0
- data/lib/eddy/util/trim.rb +29 -0
- data/lib/eddy/version.rb +1 -1
- data/lib/eddy/write/functional_group.rb +33 -0
- data/lib/eddy/write/interchange.rb +28 -0
- data/lib/eddy/write/simple_interchange.rb +57 -0
- data/lib/generators/eddy/initializer/initializer_generator.rb +17 -0
- data/lib/generators/eddy/initializer/templates/eddy.rb.erb +6 -0
- data/lib/generators/eddy/migration/migration_generator.rb +53 -0
- data/lib/generators/eddy/migration/templates/migration.rb.erb +35 -0
- data/tasks/build.rake +15 -0
- data/tasks/misc/gemspec.rake +12 -0
- data/tasks/misc/missing_lists.rake +240 -0
- data/tasks/misc/yaml2json.rake +20 -0
- data/todo.txt +16 -0
- metadata +297 -42
- data/data/004010/segments/ISA.tsv +0 -17
- data/data/schema.jsonc +0 -67
- data/lib/eddy/build/build_an.rb +0 -31
- data/lib/eddy/build/build_dt.rb +0 -46
- data/lib/eddy/build/build_elements.rb +0 -181
- data/lib/eddy/build/build_id.rb +0 -56
- data/lib/eddy/build/build_r_and_n.rb +0 -69
- data/lib/eddy/build/build_tm.rb +0 -52
- data/lib/eddy/build/segments.rb +0 -25
- data/lib/eddy/definitions/manual/elements/109.dt.pickup_date.rb +0 -20
- data/lib/eddy/definitions/manual/elements/111.tm.pickup_time.rb +0 -20
- data/lib/eddy/definitions/manual/elements/112.an.pier_name.rb +0 -19
- data/lib/eddy/definitions/manual/elements/785.b.binary_data.rb +0 -19
- data/lib/eddy/definitions/manual/elements/81.r.weight.rb +0 -19
- data/lib/eddy/definitions/manual/elements/86.n0.total_equipment.rb +0 -20
- data/lib/eddy/definitions/manual/elements/I02.authorization_information.rb +0 -20
- data/lib/eddy/definitions/manual/elements/I04.security_information.rb +0 -20
- data/lib/eddy/definitions/manual/elements/I08.interchange_date.rb +0 -20
- data/lib/eddy/definitions/manual/elements/I09.interchange_time.rb +0 -20
- data/lib/eddy/definitions/manual/elements/I15.component_element_separator.rb +0 -32
- data/lib/eddy/definitions/manual/segments/n1.rb +0 -14
- data/lib/eddy/element.rb +0 -14
- data/lib/eddy/element/an.rb +0 -36
- data/lib/eddy/element/b.rb +0 -9
- data/lib/eddy/element/base.rb +0 -37
- data/lib/eddy/element/dt.rb +0 -89
- data/lib/eddy/element/id.rb +0 -40
- data/lib/eddy/element/n.rb +0 -43
- data/lib/eddy/element/r.rb +0 -47
- data/lib/eddy/element/tm.rb +0 -108
- data/lib/eddy/error.rb +0 -14
- data/lib/eddy/helpers.rb +0 -31
- data/lib/eddy/segment.rb +0 -12
- 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
|