eddy 0.8.2 → 0.9.2

Sign up to get free protection for your applications and to get access to all the features.
Files changed (111) hide show
  1. checksums.yaml +4 -4
  2. data/.rubocop.yml +4 -4
  3. data/CHANGELOG.md +46 -1
  4. data/Gemfile.lock +8 -8
  5. data/README.md +2 -5
  6. data/data/code-lists/333.tsv +8 -0
  7. data/data/segments/amt.segment.yml +7 -0
  8. data/data/segments/bia.segment.yml +10 -0
  9. data/data/segments/cur.segment.yml +8 -0
  10. data/data/segments/dtm.segment.yml +1 -0
  11. data/data/segments/fob.segment.yml +8 -0
  12. data/data/segments/itd.segment.yml +13 -0
  13. data/data/segments/mtx.segment.yml +7 -0
  14. data/data/segments/n9.segment.yml +7 -0
  15. data/data/segments/per.segment.yml +13 -0
  16. data/data/segments/po1.segment.yml +6 -0
  17. data/data/segments/po3.segment.yml +13 -0
  18. data/data/segments/qty.segment.yml +10 -0
  19. data/data/segments/ref.segment.yml +1 -0
  20. data/data/segments/sac.segment.yml +4 -0
  21. data/data/segments/sch.segment.yml +7 -0
  22. data/data/segments/sdq.segment.yml +8 -0
  23. data/data/segments/txi.segment.yml +9 -0
  24. data/data/transaction_sets/810.edi.yml +93 -0
  25. data/data/transaction_sets/846.edi.yml +57 -0
  26. data/data/transaction_sets/850.edi.yml +73 -0
  27. data/data/transaction_sets/855.edi.yml +74 -0
  28. data/data/transaction_sets/856.edi.yml +54 -0
  29. data/eddy.gemspec +1 -1
  30. data/exe/eddy +1 -0
  31. data/lib/definitions/elements/generated/100.currency_code.rb +200 -0
  32. data/lib/definitions/elements/generated/146.shipment_method_of_payment.rb +65 -0
  33. data/lib/definitions/elements/generated/1551.message_text.rb +29 -0
  34. data/lib/definitions/elements/generated/280.exchange_rate.rb +29 -0
  35. data/lib/definitions/elements/generated/309.location_qualifier.rb +209 -0
  36. data/lib/definitions/elements/generated/310.location_identifier.rb +29 -0
  37. data/lib/definitions/elements/generated/311.shipment_type_code.rb +42 -0
  38. data/lib/definitions/elements/generated/322.load_empty_status_code.rb +40 -0
  39. data/lib/definitions/elements/generated/325.tax_identification_number.rb +29 -0
  40. data/lib/definitions/elements/generated/333.terms_basis_date_code.rb +44 -0
  41. data/lib/definitions/elements/generated/336.terms_type_code.rb +102 -0
  42. data/lib/definitions/elements/generated/338.terms_discount_percent.rb +29 -0
  43. data/lib/definitions/elements/generated/351.terms_discount_days_due.rb +30 -0
  44. data/lib/definitions/elements/generated/363.note_reference_code.rb +278 -0
  45. data/lib/definitions/elements/generated/364.communication_number.rb +29 -0
  46. data/lib/definitions/elements/generated/365.communication_number_qualifier.rb +77 -0
  47. data/lib/definitions/elements/generated/366.contact_function_code.rb +267 -0
  48. data/lib/definitions/elements/generated/369.free_form_description.rb +29 -0
  49. data/lib/definitions/elements/generated/370.terms_discount_due_date.rb +29 -0
  50. data/lib/definitions/elements/generated/371.change_reason_code.rb +67 -0
  51. data/lib/definitions/elements/generated/378.allowance_charge_percent_qualifier.rb +48 -0
  52. data/lib/definitions/elements/generated/386.terms_net_days.rb +30 -0
  53. data/lib/definitions/elements/generated/446.terms_net_due_date.rb +29 -0
  54. data/lib/definitions/elements/generated/522.amount_qualifier_code.rb +1510 -0
  55. data/lib/definitions/elements/generated/673.quantity_qualifier.rb +869 -0
  56. data/lib/definitions/elements/generated/755.report_type_code.rb +559 -0
  57. data/lib/definitions/elements/generated/954.percent.rb +29 -0
  58. data/lib/definitions/elements/generated/963.tax_type_code.rb +111 -0
  59. data/lib/definitions/elements/manual/i/I10.interchange_control_standards_identifier.rb +2 -2
  60. data/lib/definitions/elements/manual/i/I11.interchange_control_version_number.rb +1 -0
  61. data/lib/definitions/segments/generated/amt.rb +56 -0
  62. data/lib/definitions/segments/generated/bia.rb +107 -0
  63. data/lib/definitions/segments/generated/cur.rb +73 -0
  64. data/lib/definitions/segments/generated/dtm.rb +17 -0
  65. data/lib/definitions/segments/generated/fob.rb +73 -0
  66. data/lib/definitions/segments/generated/hl.rb +90 -0
  67. data/lib/definitions/segments/generated/itd.rb +158 -0
  68. data/lib/definitions/segments/generated/mtx.rb +56 -0
  69. data/lib/definitions/segments/generated/n2.rb +56 -0
  70. data/lib/definitions/segments/generated/n9.rb +56 -0
  71. data/lib/definitions/segments/generated/per.rb +158 -0
  72. data/lib/definitions/segments/generated/po1.rb +102 -0
  73. data/lib/definitions/segments/generated/po3.rb +158 -0
  74. data/lib/definitions/segments/generated/qty.rb +73 -0
  75. data/lib/definitions/segments/generated/ref.rb +17 -0
  76. data/lib/definitions/segments/generated/sac.rb +68 -0
  77. data/lib/definitions/segments/generated/sch.rb +56 -0
  78. data/lib/definitions/segments/generated/sdq.rb +73 -0
  79. data/lib/definitions/segments/generated/txi.rb +90 -0
  80. data/lib/definitions/transaction_sets/manual/846/846.rb +122 -0
  81. data/lib/definitions/transaction_sets/manual/846/loops/lin.rb +155 -0
  82. data/lib/definitions/transaction_sets/manual/846/loops/n1.rb +107 -0
  83. data/lib/definitions/transaction_sets/manual/846/loops/qty.rb +75 -0
  84. data/lib/definitions/transaction_sets/manual/846/loops/sch.rb +59 -0
  85. data/lib/definitions/transaction_sets/manual/846/loops/sln.rb +59 -0
  86. data/lib/definitions/transaction_sets/manual/850/850.rb +108 -1
  87. data/lib/definitions/transaction_sets/manual/850/loops/ctp.rb +47 -0
  88. data/lib/definitions/transaction_sets/manual/850/loops/n1.rb +31 -10
  89. data/lib/definitions/transaction_sets/manual/850/loops/n9.rb +59 -0
  90. data/lib/definitions/transaction_sets/manual/850/loops/pid.rb +47 -0
  91. data/lib/definitions/transaction_sets/manual/850/loops/po1.rb +78 -10
  92. data/lib/definitions/transaction_sets/manual/850/loops/sac.rb +47 -0
  93. data/lib/eddy.rb +49 -3
  94. data/lib/eddy/build/transaction_set_builder.rb +1 -1
  95. data/lib/eddy/config.rb +0 -21
  96. data/lib/eddy/data.rb +0 -40
  97. data/lib/eddy/data/persistence/base.rb +5 -11
  98. data/lib/eddy/data/persistence/memory.rb +14 -22
  99. data/lib/eddy/errors.rb +13 -9
  100. data/lib/eddy/models/element/composite.rb +2 -0
  101. data/lib/eddy/models/element/id.rb +1 -1
  102. data/lib/eddy/models/element/r.rb +1 -0
  103. data/lib/eddy/models/functional_group.rb +3 -2
  104. data/lib/eddy/models/interchange.rb +6 -2
  105. data/lib/eddy/models/transaction_set.rb +1 -1
  106. data/lib/eddy/parse.rb +4 -56
  107. data/lib/eddy/parse/interchange.rb +58 -0
  108. data/lib/eddy/summary/loop.rb +1 -1
  109. data/lib/eddy/summary/segment.rb +2 -1
  110. data/lib/eddy/version.rb +1 -1
  111. metadata +78 -5
@@ -0,0 +1,29 @@
1
+ module Eddy
2
+ module Elements
3
+ # ### Element Summary:
4
+ #
5
+ # - Id: 954
6
+ # - Name: Percent
7
+ # - Type: R
8
+ # - Min/Max: 1/10
9
+ # - Description: Percentage expressed as a decimal
10
+ class E954 < Eddy::Models::Element::R
11
+ # @param val [Float]
12
+ # @param req [String]
13
+ # @param ref [String]
14
+ # @return [void]
15
+ def initialize(val: nil, req: nil, ref: nil)
16
+ @id = "954"
17
+ @name = "Percent"
18
+ @description = "Percentage expressed as a decimal"
19
+ super(
20
+ min: 1,
21
+ max: 10,
22
+ req: req,
23
+ ref: ref,
24
+ val: val,
25
+ )
26
+ end
27
+ end
28
+ end
29
+ end
@@ -0,0 +1,111 @@
1
+ module Eddy
2
+ module Elements
3
+ # ### Element Summary:
4
+ #
5
+ # - Id: 963
6
+ # - Name: Tax Type Code
7
+ # - Type: ID
8
+ # - Min/Max: 2/2
9
+ # - Description: Code specifying the type of tax
10
+ class E963 < Eddy::Models::Element::ID
11
+
12
+ # @param val [String]
13
+ # @param req [String]
14
+ # @param ref [String]
15
+ # @return [void]
16
+ def initialize(val: nil, req: nil, ref: nil)
17
+ @id = "963"
18
+ @name = "Tax Type Code"
19
+ @description = "Code specifying the type of tax"
20
+ super(
21
+ min: 2,
22
+ max: 2,
23
+ req: req,
24
+ ref: ref,
25
+ val: val,
26
+ )
27
+ end
28
+
29
+ # @return [Array<String>]
30
+ def code_list()
31
+ return [
32
+ "AA", # Stadium Tax
33
+ "AB", # Surtax
34
+ "AT", # Assessment
35
+ "BP", # Business Privilege Tax
36
+ "CA", # City Tax
37
+ "CB", # Threshold Tax
38
+ "CG", # Federal Value-added Tax (GST) on Goods
39
+ "CI", # City Rental Tax
40
+ "CP", # County/Parish Sales Tax
41
+ "CR", # County Rental Tax
42
+ "CS", # City Sales Tax
43
+ "CT", # County Tax
44
+ "CV", # Federal Value-added Tax (GST) on Services
45
+ "DL", # Default Labor Tax
46
+ "EQ", # Equipment Tax
47
+ "ET", # Energy Tax
48
+ "EV", # Environmental Tax
49
+ "F1", # FICA Tax
50
+ "F2", # FICA Medicare Tax
51
+ "F3", # FICA Social Security Tax
52
+ "FD", # Federal Tax
53
+ "FF", # Fuel Super Fund Tax
54
+ "FI", # Federal Income Tax Withholding
55
+ "FL", # Fuel L.U.S.T. Tax (Leaking Underground Storage Tank)
56
+ "FR", # Franchise Tax
57
+ "FS", # Fuel Spill Tax
58
+ "FT", # Federal Excise Tax
59
+ "GR", # Gross Receipts Tax
60
+ "GS", # Goods and Services Tax
61
+ "HS", # Public Health and Education Tax
62
+ "HT", # Handicap Tax
63
+ "HZ", # Hazardous Waste Tax
64
+ "LB", # Labor By Trade Tax
65
+ "LO", # Local Tax (Not Sales Tax)
66
+ "LS", # State and Local Sales Tax
67
+ "LT", # Local Sales Tax (All Applicable Sales Taxes by Taxing Authority Below the State Level)
68
+ "LU", # Leaky Underground Storage Tank (LUST) Tax (federal)
69
+ "LV", # Leaky Underground Storage Tank (LUST) Tax (state)
70
+ "MA", # Material Tax
71
+ "MN", # Minimum Tax
72
+ "MP", # Municipal Tax
73
+ "MS", # Miscellaneous State Tax
74
+ "MT", # Metropolitan Transit Tax
75
+ "OH", # Other Taxes
76
+ "OT", # Occupational Tax
77
+ "PG", # State or Provincial Tax on Goods
78
+ "PS", # State or Provincial Tax on Services
79
+ "SA", # State or Provincial Fuel Tax
80
+ "SB", # Secondary Percentage Tax
81
+ "SC", # School Tax
82
+ "SE", # State Excise Tax
83
+ "SF", # Superfund Tax
84
+ "SL", # State and Local Tax
85
+ "SP", # State/Provincial Tax
86
+ "SR", # State Rental Tax
87
+ "SS", # State Tax on Specific Labor
88
+ "ST", # State Sales Tax
89
+ "SU", # Sales and Use Tax
90
+ "SX", # Enhanced 911 - State Excise Tax
91
+ "T1", # Pre-threshold Tax
92
+ "T2", # Post Threshold Tax
93
+ "TD", # Telecommunications Device for the Deaf (TDD) Service Excise Tax
94
+ "TT", # Telecommunications Tax
95
+ "TX", # All Taxes
96
+ "UL", # License Tax
97
+ "UT", # Utility Users' Tax
98
+ "VA", # Value Added Tax
99
+ "WS", # Well Service
100
+ "ZA", # 911-City Tax
101
+ "ZB", # 911-County Tax
102
+ "ZC", # 911-Excise Tax
103
+ "ZD", # 911-State Tax
104
+ "ZE", # 911-Tax
105
+ "ZZ", # Mutually Defined
106
+ ]
107
+ end
108
+
109
+ end
110
+ end
111
+ end
@@ -4,14 +4,14 @@ module Eddy
4
4
  #
5
5
  # - Id: I10
6
6
  # - Name: Interchange Control Standards Identifier
7
- # - Type: ID
7
+ # - Type: AN (Should be ID)
8
8
  # - Min/Max: 1/1
9
9
  # - Description: Code to identify the agency responsible for the control standard used by the message that is enclosed by the interchange header and trailer
10
10
  #
11
11
  # ### Notes:
12
12
  #
13
13
  # - (Default value: `"U"`)
14
- class I10 < Eddy::Models::Element::ID
14
+ class I10 < Eddy::Models::Element::AN
15
15
 
16
16
  # @param val [String] ("U")
17
17
  # @param req [String] (nil)
@@ -47,6 +47,7 @@ module Eddy
47
47
  "00400", # Standard Issued as ANSI X12.5-1997
48
48
  "00401", # Draft Standards for Trial Use Approved for Publication by ASC X12 Procedures Review Board through October 1997
49
49
  "00402", # Draft Standards for Trial Use Approved for Publication by ASC X12 Procedures Review Board through October 1998
50
+ "00501",
50
51
  ]
51
52
  end
52
53
 
@@ -0,0 +1,56 @@
1
+ module Eddy
2
+ module Segments
3
+ # ### Segment Summary:
4
+ #
5
+ # - Id: AMT
6
+ # - Name: Monetary Amount Information
7
+ # - Purpose: To indicate the total monetary amount.
8
+ class AMT < Eddy::Models::Segment
9
+
10
+ # @param store [Eddy::Data::Store]
11
+ # @return [void]
12
+ def initialize(store)
13
+ @id = "AMT"
14
+ @name = "Monetary Amount Information"
15
+ @amt01 = Eddy::Elements::E522.new(ref: "AMT01", req: "M")
16
+ @amt02 = Eddy::Elements::E782.new(ref: "AMT02", req: "M")
17
+ super(
18
+ store,
19
+ @amt01,
20
+ @amt02,
21
+ )
22
+ end
23
+
24
+ # ### AMT01
25
+ #
26
+ # - Id: 522
27
+ # - Name: Amount Qualifier Code
28
+ # - Type: ID
29
+ # - Min/Max: 1/3
30
+ # - Description: Code to qualify amount
31
+ #
32
+ # @param arg [String]
33
+ # @return [void]
34
+ def AMT01=(arg)
35
+ @amt01.value = arg
36
+ end
37
+ alias AmountQualifierCode= AMT01=
38
+
39
+ # ### AMT02
40
+ #
41
+ # - Id: 782
42
+ # - Name: Monetary Amount
43
+ # - Type: R
44
+ # - Min/Max: 1/18
45
+ # - Description: Monetary amount
46
+ #
47
+ # @param arg [Float]
48
+ # @return [void]
49
+ def AMT02=(arg)
50
+ @amt02.value = arg
51
+ end
52
+ alias MonetaryAmount= AMT02=
53
+
54
+ end
55
+ end
56
+ end
@@ -0,0 +1,107 @@
1
+ module Eddy
2
+ module Segments
3
+ # ### Segment Summary:
4
+ #
5
+ # - Id: BIA
6
+ # - Name: Beginning Segment for Inventory Inquiry/Advice
7
+ # - Purpose: To indicate the beginning of an Inventory Inquiry/Advice Transaction Set
8
+ class BIA < Eddy::Models::Segment
9
+
10
+ # @param store [Eddy::Data::Store]
11
+ # @return [void]
12
+ def initialize(store)
13
+ @id = "BIA"
14
+ @name = "Beginning Segment for Inventory Inquiry/Advice"
15
+ @bia01 = Eddy::Elements::E353.new(ref: "BIA01", req: "M")
16
+ @bia02 = Eddy::Elements::E755.new(ref: "BIA02", req: "M")
17
+ @bia03 = Eddy::Elements::E127.new(ref: "BIA03", req: "M")
18
+ @bia04 = Eddy::Elements::E373.new(ref: "BIA04", req: "M")
19
+ @bia05 = Eddy::Elements::E337.new(ref: "BIA05", req: "O")
20
+ super(
21
+ store,
22
+ @bia01,
23
+ @bia02,
24
+ @bia03,
25
+ @bia04,
26
+ @bia05,
27
+ )
28
+ end
29
+
30
+ # ### BIA01
31
+ #
32
+ # - Id: 353
33
+ # - Name: Transaction Set Purpose Code
34
+ # - Type: ID
35
+ # - Min/Max: 2/2
36
+ # - Description: Code identifying purpose of transaction set
37
+ #
38
+ # @param arg [String]
39
+ # @return [void]
40
+ def BIA01=(arg)
41
+ @bia01.value = arg
42
+ end
43
+ alias TransactionSetPurposeCode= BIA01=
44
+
45
+ # ### BIA02
46
+ #
47
+ # - Id: 755
48
+ # - Name: Report Type Code
49
+ # - Type: ID
50
+ # - Min/Max: 2/2
51
+ # - Description: Code indicating the title or contents of a document, report or supporting item
52
+ #
53
+ # @param arg [String]
54
+ # @return [void]
55
+ def BIA02=(arg)
56
+ @bia02.value = arg
57
+ end
58
+ alias ReportTypeCode= BIA02=
59
+
60
+ # ### BIA03
61
+ #
62
+ # - Id: 127
63
+ # - Name: Reference Identification
64
+ # - Type: AN
65
+ # - Min/Max: 1/30
66
+ # - Description: Reference information as defined for a particular Transaction Set or as specified by the Reference Identification Qualifier
67
+ #
68
+ # @param arg [String]
69
+ # @return [void]
70
+ def BIA03=(arg)
71
+ @bia03.value = arg
72
+ end
73
+ alias ReferenceIdentification= BIA03=
74
+
75
+ # ### BIA04
76
+ #
77
+ # - Id: 373
78
+ # - Name: Date
79
+ # - Type: DT
80
+ # - Min/Max: 8/8
81
+ # - Description: Date expressed as CCYYMMDD
82
+ #
83
+ # @param arg [Time]
84
+ # @return [void]
85
+ def BIA04=(arg)
86
+ @bia04.value = arg
87
+ end
88
+ alias Date= BIA04=
89
+
90
+ # ### BIA05
91
+ #
92
+ # - Id: 337
93
+ # - Name: Time
94
+ # - Type: TM
95
+ # - Min/Max: 4/8
96
+ # - Description: Time expressed in 24-hour clock time as follows: HHMM, or HHMMSS, or HHMMSSD, or HHMMSSDD, where H = hours (00-23), M = minutes (00-59), S = integer seconds (00-59) and DD = decimal seconds; decimal seconds are expressed as follows: D = tenths (0-9) and DD = hundredths (00-99)
97
+ #
98
+ # @param arg [Time]
99
+ # @return [void]
100
+ def BIA05=(arg)
101
+ @bia05.value = arg
102
+ end
103
+ alias Time= BIA05=
104
+
105
+ end
106
+ end
107
+ end
@@ -0,0 +1,73 @@
1
+ module Eddy
2
+ module Segments
3
+ # ### Segment Summary:
4
+ #
5
+ # - Id: CUR
6
+ # - Name: Currency
7
+ # - Purpose: To specify the currency (dollars, pounds, francs, etc.) used in a transaction
8
+ class CUR < Eddy::Models::Segment
9
+
10
+ # @param store [Eddy::Data::Store]
11
+ # @return [void]
12
+ def initialize(store)
13
+ @id = "CUR"
14
+ @name = "Currency"
15
+ @cur01 = Eddy::Elements::E98.new(ref: "CUR01", req: "M")
16
+ @cur02 = Eddy::Elements::E100.new(ref: "CUR02", req: "M")
17
+ @cur03 = Eddy::Elements::E280.new(ref: "CUR03", req: "O")
18
+ super(
19
+ store,
20
+ @cur01,
21
+ @cur02,
22
+ @cur03,
23
+ )
24
+ end
25
+
26
+ # ### CUR01
27
+ #
28
+ # - Id: 98
29
+ # - Name: Entity Identifier Code
30
+ # - Type: ID
31
+ # - Min/Max: 2/3
32
+ # - Description: Code identifying an organizational entity, a physical location, property or an individual
33
+ #
34
+ # @param arg [String]
35
+ # @return [void]
36
+ def CUR01=(arg)
37
+ @cur01.value = arg
38
+ end
39
+ alias EntityIdentifierCode= CUR01=
40
+
41
+ # ### CUR02
42
+ #
43
+ # - Id: 100
44
+ # - Name: Currency Code
45
+ # - Type: ID
46
+ # - Min/Max: 3/3
47
+ # - Description: Code (Standard ISO) for country in whose currency the charges are specified
48
+ #
49
+ # @param arg [String]
50
+ # @return [void]
51
+ def CUR02=(arg)
52
+ @cur02.value = arg
53
+ end
54
+ alias CurrencyCode= CUR02=
55
+
56
+ # ### CUR03
57
+ #
58
+ # - Id: 280
59
+ # - Name: Exchange Rate
60
+ # - Type: R
61
+ # - Min/Max: 4/10
62
+ # - Description: Value to be used as a multiplier conversion factor to convert monetary value from one currency to another
63
+ #
64
+ # @param arg [Float]
65
+ # @return [void]
66
+ def CUR03=(arg)
67
+ @cur03.value = arg
68
+ end
69
+ alias ExchangeRate= CUR03=
70
+
71
+ end
72
+ end
73
+ end
@@ -14,10 +14,12 @@ module Eddy
14
14
  @name = "Date/Time Reference"
15
15
  @dtm01 = Eddy::Elements::E374.new(ref: "DTM01", req: "M")
16
16
  @dtm02 = Eddy::Elements::E373.new(ref: "DTM02", req: "X")
17
+ @dtm03 = Eddy::Elements::E337.new(ref: "DTM03", req: "X")
17
18
  super(
18
19
  store,
19
20
  @dtm01,
20
21
  @dtm02,
22
+ @dtm03,
21
23
  )
22
24
  end
23
25
 
@@ -51,6 +53,21 @@ module Eddy
51
53
  end
52
54
  alias Date= DTM02=
53
55
 
56
+ # ### DTM03
57
+ #
58
+ # - Id: 337
59
+ # - Name: Time
60
+ # - Type: TM
61
+ # - Min/Max: 4/8
62
+ # - Description: Time expressed in 24-hour clock time as follows: HHMM, or HHMMSS, or HHMMSSD, or HHMMSSDD, where H = hours (00-23), M = minutes (00-59), S = integer seconds (00-59) and DD = decimal seconds; decimal seconds are expressed as follows: D = tenths (0-9) and DD = hundredths (00-99)
63
+ #
64
+ # @param arg [Time]
65
+ # @return [void]
66
+ def DTM03=(arg)
67
+ @dtm03.value = arg
68
+ end
69
+ alias Time= DTM03=
70
+
54
71
  end
55
72
  end
56
73
  end
@@ -0,0 +1,73 @@
1
+ module Eddy
2
+ module Segments
3
+ # ### Segment Summary:
4
+ #
5
+ # - Id: FOB
6
+ # - Name: F.O.B. Related Instructions
7
+ # - Purpose: To specify transportation instructions relating to shipment.
8
+ class FOB < Eddy::Models::Segment
9
+
10
+ # @param store [Eddy::Data::Store]
11
+ # @return [void]
12
+ def initialize(store)
13
+ @id = "FOB"
14
+ @name = "F.O.B. Related Instructions"
15
+ @fob01 = Eddy::Elements::E146.new(ref: "FOB01", req: "M")
16
+ @fob02 = Eddy::Elements::E309.new(ref: "FOB02", req: "X")
17
+ @fob03 = Eddy::Elements::E352.new(ref: "FOB03", req: "O")
18
+ super(
19
+ store,
20
+ @fob01,
21
+ @fob02,
22
+ @fob03,
23
+ )
24
+ end
25
+
26
+ # ### FOB01
27
+ #
28
+ # - Id: 146
29
+ # - Name: Shipment Method of Payment
30
+ # - Type: ID
31
+ # - Min/Max: 2/2
32
+ # - Description: Code identifying payment terms for transportation charges
33
+ #
34
+ # @param arg [String]
35
+ # @return [void]
36
+ def FOB01=(arg)
37
+ @fob01.value = arg
38
+ end
39
+ alias ShipmentMethodOfPayment= FOB01=
40
+
41
+ # ### FOB02
42
+ #
43
+ # - Id: 309
44
+ # - Name: Location Qualifier
45
+ # - Type: ID
46
+ # - Min/Max: 1/2
47
+ # - Description: Code identifying type of location
48
+ #
49
+ # @param arg [String]
50
+ # @return [void]
51
+ def FOB02=(arg)
52
+ @fob02.value = arg
53
+ end
54
+ alias LocationQualifier= FOB02=
55
+
56
+ # ### FOB03
57
+ #
58
+ # - Id: 352
59
+ # - Name: Description
60
+ # - Type: AN
61
+ # - Min/Max: 1/80
62
+ # - Description: A free-form description to clarify the related data elements and their content
63
+ #
64
+ # @param arg [String]
65
+ # @return [void]
66
+ def FOB03=(arg)
67
+ @fob03.value = arg
68
+ end
69
+ alias Description= FOB03=
70
+
71
+ end
72
+ end
73
+ end