eddy 0.8.2 → 0.9.2
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 +4 -4
- data/CHANGELOG.md +46 -1
- data/Gemfile.lock +8 -8
- data/README.md +2 -5
- data/data/code-lists/333.tsv +8 -0
- data/data/segments/amt.segment.yml +7 -0
- data/data/segments/bia.segment.yml +10 -0
- data/data/segments/cur.segment.yml +8 -0
- data/data/segments/dtm.segment.yml +1 -0
- data/data/segments/fob.segment.yml +8 -0
- data/data/segments/itd.segment.yml +13 -0
- data/data/segments/mtx.segment.yml +7 -0
- data/data/segments/n9.segment.yml +7 -0
- data/data/segments/per.segment.yml +13 -0
- data/data/segments/po1.segment.yml +6 -0
- data/data/segments/po3.segment.yml +13 -0
- data/data/segments/qty.segment.yml +10 -0
- data/data/segments/ref.segment.yml +1 -0
- data/data/segments/sac.segment.yml +4 -0
- data/data/segments/sch.segment.yml +7 -0
- data/data/segments/sdq.segment.yml +8 -0
- data/data/segments/txi.segment.yml +9 -0
- data/data/transaction_sets/810.edi.yml +93 -0
- data/data/transaction_sets/846.edi.yml +57 -0
- data/data/transaction_sets/850.edi.yml +73 -0
- data/data/transaction_sets/855.edi.yml +74 -0
- data/data/transaction_sets/856.edi.yml +54 -0
- data/eddy.gemspec +1 -1
- data/exe/eddy +1 -0
- data/lib/definitions/elements/generated/100.currency_code.rb +200 -0
- data/lib/definitions/elements/generated/146.shipment_method_of_payment.rb +65 -0
- data/lib/definitions/elements/generated/1551.message_text.rb +29 -0
- data/lib/definitions/elements/generated/280.exchange_rate.rb +29 -0
- data/lib/definitions/elements/generated/309.location_qualifier.rb +209 -0
- data/lib/definitions/elements/generated/310.location_identifier.rb +29 -0
- data/lib/definitions/elements/generated/311.shipment_type_code.rb +42 -0
- data/lib/definitions/elements/generated/322.load_empty_status_code.rb +40 -0
- data/lib/definitions/elements/generated/325.tax_identification_number.rb +29 -0
- data/lib/definitions/elements/generated/333.terms_basis_date_code.rb +44 -0
- data/lib/definitions/elements/generated/336.terms_type_code.rb +102 -0
- data/lib/definitions/elements/generated/338.terms_discount_percent.rb +29 -0
- data/lib/definitions/elements/generated/351.terms_discount_days_due.rb +30 -0
- data/lib/definitions/elements/generated/363.note_reference_code.rb +278 -0
- data/lib/definitions/elements/generated/364.communication_number.rb +29 -0
- data/lib/definitions/elements/generated/365.communication_number_qualifier.rb +77 -0
- data/lib/definitions/elements/generated/366.contact_function_code.rb +267 -0
- data/lib/definitions/elements/generated/369.free_form_description.rb +29 -0
- data/lib/definitions/elements/generated/370.terms_discount_due_date.rb +29 -0
- data/lib/definitions/elements/generated/371.change_reason_code.rb +67 -0
- data/lib/definitions/elements/generated/378.allowance_charge_percent_qualifier.rb +48 -0
- data/lib/definitions/elements/generated/386.terms_net_days.rb +30 -0
- data/lib/definitions/elements/generated/446.terms_net_due_date.rb +29 -0
- data/lib/definitions/elements/generated/522.amount_qualifier_code.rb +1510 -0
- data/lib/definitions/elements/generated/673.quantity_qualifier.rb +869 -0
- data/lib/definitions/elements/generated/755.report_type_code.rb +559 -0
- data/lib/definitions/elements/generated/954.percent.rb +29 -0
- data/lib/definitions/elements/generated/963.tax_type_code.rb +111 -0
- data/lib/definitions/elements/manual/i/I10.interchange_control_standards_identifier.rb +2 -2
- data/lib/definitions/elements/manual/i/I11.interchange_control_version_number.rb +1 -0
- data/lib/definitions/segments/generated/amt.rb +56 -0
- data/lib/definitions/segments/generated/bia.rb +107 -0
- data/lib/definitions/segments/generated/cur.rb +73 -0
- data/lib/definitions/segments/generated/dtm.rb +17 -0
- data/lib/definitions/segments/generated/fob.rb +73 -0
- data/lib/definitions/segments/generated/hl.rb +90 -0
- data/lib/definitions/segments/generated/itd.rb +158 -0
- data/lib/definitions/segments/generated/mtx.rb +56 -0
- data/lib/definitions/segments/generated/n2.rb +56 -0
- data/lib/definitions/segments/generated/n9.rb +56 -0
- data/lib/definitions/segments/generated/per.rb +158 -0
- data/lib/definitions/segments/generated/po1.rb +102 -0
- data/lib/definitions/segments/generated/po3.rb +158 -0
- data/lib/definitions/segments/generated/qty.rb +73 -0
- data/lib/definitions/segments/generated/ref.rb +17 -0
- data/lib/definitions/segments/generated/sac.rb +68 -0
- data/lib/definitions/segments/generated/sch.rb +56 -0
- data/lib/definitions/segments/generated/sdq.rb +73 -0
- data/lib/definitions/segments/generated/txi.rb +90 -0
- data/lib/definitions/transaction_sets/manual/846/846.rb +122 -0
- data/lib/definitions/transaction_sets/manual/846/loops/lin.rb +155 -0
- data/lib/definitions/transaction_sets/manual/846/loops/n1.rb +107 -0
- data/lib/definitions/transaction_sets/manual/846/loops/qty.rb +75 -0
- data/lib/definitions/transaction_sets/manual/846/loops/sch.rb +59 -0
- data/lib/definitions/transaction_sets/manual/846/loops/sln.rb +59 -0
- data/lib/definitions/transaction_sets/manual/850/850.rb +108 -1
- data/lib/definitions/transaction_sets/manual/850/loops/ctp.rb +47 -0
- data/lib/definitions/transaction_sets/manual/850/loops/n1.rb +31 -10
- data/lib/definitions/transaction_sets/manual/850/loops/n9.rb +59 -0
- data/lib/definitions/transaction_sets/manual/850/loops/pid.rb +47 -0
- data/lib/definitions/transaction_sets/manual/850/loops/po1.rb +78 -10
- data/lib/definitions/transaction_sets/manual/850/loops/sac.rb +47 -0
- data/lib/eddy.rb +49 -3
- data/lib/eddy/build/transaction_set_builder.rb +1 -1
- data/lib/eddy/config.rb +0 -21
- data/lib/eddy/data.rb +0 -40
- data/lib/eddy/data/persistence/base.rb +5 -11
- data/lib/eddy/data/persistence/memory.rb +14 -22
- data/lib/eddy/errors.rb +13 -9
- data/lib/eddy/models/element/composite.rb +2 -0
- data/lib/eddy/models/element/id.rb +1 -1
- data/lib/eddy/models/element/r.rb +1 -0
- data/lib/eddy/models/functional_group.rb +3 -2
- data/lib/eddy/models/interchange.rb +6 -2
- data/lib/eddy/models/transaction_set.rb +1 -1
- data/lib/eddy/parse.rb +4 -56
- data/lib/eddy/parse/interchange.rb +58 -0
- data/lib/eddy/summary/loop.rb +1 -1
- data/lib/eddy/summary/segment.rb +2 -1
- data/lib/eddy/version.rb +1 -1
- metadata +78 -5
|
@@ -0,0 +1,56 @@
|
|
|
1
|
+
module Eddy
|
|
2
|
+
module Segments
|
|
3
|
+
# ### Segment Summary:
|
|
4
|
+
#
|
|
5
|
+
# - Id: SCH
|
|
6
|
+
# - Name: Line Item Schedule
|
|
7
|
+
# - Purpose: To specify the data for scheduling a specific line-item
|
|
8
|
+
class SCH < Eddy::Models::Segment
|
|
9
|
+
|
|
10
|
+
# @param store [Eddy::Data::Store]
|
|
11
|
+
# @return [void]
|
|
12
|
+
def initialize(store)
|
|
13
|
+
@id = "SCH"
|
|
14
|
+
@name = "Line Item Schedule"
|
|
15
|
+
@sch01 = Eddy::Elements::E380.new(ref: "SCH01", req: "M")
|
|
16
|
+
@sch03 = Eddy::Elements::E98.new(ref: "SCH03", req: "O")
|
|
17
|
+
super(
|
|
18
|
+
store,
|
|
19
|
+
@sch01,
|
|
20
|
+
@sch03,
|
|
21
|
+
)
|
|
22
|
+
end
|
|
23
|
+
|
|
24
|
+
# ### SCH01
|
|
25
|
+
#
|
|
26
|
+
# - Id: 380
|
|
27
|
+
# - Name: Quantity
|
|
28
|
+
# - Type: R
|
|
29
|
+
# - Min/Max: 1/15
|
|
30
|
+
# - Description: Numeric value of quantity
|
|
31
|
+
#
|
|
32
|
+
# @param arg [Float]
|
|
33
|
+
# @return [void]
|
|
34
|
+
def SCH01=(arg)
|
|
35
|
+
@sch01.value = arg
|
|
36
|
+
end
|
|
37
|
+
alias Quantity= SCH01=
|
|
38
|
+
|
|
39
|
+
# ### SCH03
|
|
40
|
+
#
|
|
41
|
+
# - Id: 98
|
|
42
|
+
# - Name: Entity Identifier Code
|
|
43
|
+
# - Type: ID
|
|
44
|
+
# - Min/Max: 2/3
|
|
45
|
+
# - Description: Code identifying an organizational entity, a physical location, property or an individual
|
|
46
|
+
#
|
|
47
|
+
# @param arg [String]
|
|
48
|
+
# @return [void]
|
|
49
|
+
def SCH03=(arg)
|
|
50
|
+
@sch03.value = arg
|
|
51
|
+
end
|
|
52
|
+
alias EntityIdentifierCode= SCH03=
|
|
53
|
+
|
|
54
|
+
end
|
|
55
|
+
end
|
|
56
|
+
end
|
|
@@ -0,0 +1,73 @@
|
|
|
1
|
+
module Eddy
|
|
2
|
+
module Segments
|
|
3
|
+
# ### Segment Summary:
|
|
4
|
+
#
|
|
5
|
+
# - Id: SDQ
|
|
6
|
+
# - Name: Destination Quantity
|
|
7
|
+
# - Purpose: To specify destination and quantity detail
|
|
8
|
+
class SDQ < Eddy::Models::Segment
|
|
9
|
+
|
|
10
|
+
# @param store [Eddy::Data::Store]
|
|
11
|
+
# @return [void]
|
|
12
|
+
def initialize(store)
|
|
13
|
+
@id = "SDQ"
|
|
14
|
+
@name = "Destination Quantity"
|
|
15
|
+
@sdq01 = Eddy::Elements::E355.new(ref: "SDQ01", req: "M")
|
|
16
|
+
@sdq02 = Eddy::Elements::E66.new(ref: "SDQ02", req: "O")
|
|
17
|
+
@sdq23 = Eddy::Elements::E310.new(ref: "SDQ23", req: "O")
|
|
18
|
+
super(
|
|
19
|
+
store,
|
|
20
|
+
@sdq01,
|
|
21
|
+
@sdq02,
|
|
22
|
+
@sdq23,
|
|
23
|
+
)
|
|
24
|
+
end
|
|
25
|
+
|
|
26
|
+
# ### SDQ01
|
|
27
|
+
#
|
|
28
|
+
# - Id: 355
|
|
29
|
+
# - Name: Unit or Basis for Measurement Code
|
|
30
|
+
# - Type: ID
|
|
31
|
+
# - Min/Max: 2/2
|
|
32
|
+
# - Description: Code specifying the units in which a value is being expressed, or manner in which a measurement has been taken
|
|
33
|
+
#
|
|
34
|
+
# @param arg [String]
|
|
35
|
+
# @return [void]
|
|
36
|
+
def SDQ01=(arg)
|
|
37
|
+
@sdq01.value = arg
|
|
38
|
+
end
|
|
39
|
+
alias UnitOrBasisForMeasurementCode= SDQ01=
|
|
40
|
+
|
|
41
|
+
# ### SDQ02
|
|
42
|
+
#
|
|
43
|
+
# - Id: 66
|
|
44
|
+
# - Name: Identification Code Qualifier
|
|
45
|
+
# - Type: ID
|
|
46
|
+
# - Min/Max: 1/2
|
|
47
|
+
# - Description: Code designating the system/method of code structure used for Identification Code (67)
|
|
48
|
+
#
|
|
49
|
+
# @param arg [String]
|
|
50
|
+
# @return [void]
|
|
51
|
+
def SDQ02=(arg)
|
|
52
|
+
@sdq02.value = arg
|
|
53
|
+
end
|
|
54
|
+
alias IdentificationCodeQualifier= SDQ02=
|
|
55
|
+
|
|
56
|
+
# ### SDQ23
|
|
57
|
+
#
|
|
58
|
+
# - Id: 310
|
|
59
|
+
# - Name: Location Identifier
|
|
60
|
+
# - Type: AN
|
|
61
|
+
# - Min/Max: 1/30
|
|
62
|
+
# - Description: Code which identifies a specific location
|
|
63
|
+
#
|
|
64
|
+
# @param arg [String]
|
|
65
|
+
# @return [void]
|
|
66
|
+
def SDQ23=(arg)
|
|
67
|
+
@sdq23.value = arg
|
|
68
|
+
end
|
|
69
|
+
alias LocationIdentifier= SDQ23=
|
|
70
|
+
|
|
71
|
+
end
|
|
72
|
+
end
|
|
73
|
+
end
|
|
@@ -0,0 +1,90 @@
|
|
|
1
|
+
module Eddy
|
|
2
|
+
module Segments
|
|
3
|
+
# ### Segment Summary:
|
|
4
|
+
#
|
|
5
|
+
# - Id: TXI
|
|
6
|
+
# - Name: Tax Information
|
|
7
|
+
# - Purpose: To specify tax information.
|
|
8
|
+
class TXI < Eddy::Models::Segment
|
|
9
|
+
|
|
10
|
+
# @param store [Eddy::Data::Store]
|
|
11
|
+
# @return [void]
|
|
12
|
+
def initialize(store)
|
|
13
|
+
@id = "TXI"
|
|
14
|
+
@name = "Tax Information"
|
|
15
|
+
@txi01 = Eddy::Elements::E963.new(ref: "TXI01", req: "M")
|
|
16
|
+
@txi02 = Eddy::Elements::E782.new(ref: "TXI02", req: "X")
|
|
17
|
+
@txi03 = Eddy::Elements::E954.new(ref: "TXI03", req: "X")
|
|
18
|
+
@txi09 = Eddy::Elements::E325.new(ref: "TXI09", req: "O")
|
|
19
|
+
super(
|
|
20
|
+
store,
|
|
21
|
+
@txi01,
|
|
22
|
+
@txi02,
|
|
23
|
+
@txi03,
|
|
24
|
+
@txi09,
|
|
25
|
+
)
|
|
26
|
+
end
|
|
27
|
+
|
|
28
|
+
# ### TXI01
|
|
29
|
+
#
|
|
30
|
+
# - Id: 963
|
|
31
|
+
# - Name: Tax Type Code
|
|
32
|
+
# - Type: ID
|
|
33
|
+
# - Min/Max: 2/2
|
|
34
|
+
# - Description: Code specifying the type of tax
|
|
35
|
+
#
|
|
36
|
+
# @param arg [String]
|
|
37
|
+
# @return [void]
|
|
38
|
+
def TXI01=(arg)
|
|
39
|
+
@txi01.value = arg
|
|
40
|
+
end
|
|
41
|
+
alias TaxTypeCode= TXI01=
|
|
42
|
+
|
|
43
|
+
# ### TXI02
|
|
44
|
+
#
|
|
45
|
+
# - Id: 782
|
|
46
|
+
# - Name: Monetary Amount
|
|
47
|
+
# - Type: R
|
|
48
|
+
# - Min/Max: 1/18
|
|
49
|
+
# - Description: Monetary amount
|
|
50
|
+
#
|
|
51
|
+
# @param arg [Float]
|
|
52
|
+
# @return [void]
|
|
53
|
+
def TXI02=(arg)
|
|
54
|
+
@txi02.value = arg
|
|
55
|
+
end
|
|
56
|
+
alias MonetaryAmount= TXI02=
|
|
57
|
+
|
|
58
|
+
# ### TXI03
|
|
59
|
+
#
|
|
60
|
+
# - Id: 954
|
|
61
|
+
# - Name: Percent
|
|
62
|
+
# - Type: R
|
|
63
|
+
# - Min/Max: 1/10
|
|
64
|
+
# - Description: Percentage expressed as a decimal
|
|
65
|
+
#
|
|
66
|
+
# @param arg [Float]
|
|
67
|
+
# @return [void]
|
|
68
|
+
def TXI03=(arg)
|
|
69
|
+
@txi03.value = arg
|
|
70
|
+
end
|
|
71
|
+
alias Percent= TXI03=
|
|
72
|
+
|
|
73
|
+
# ### TXI09
|
|
74
|
+
#
|
|
75
|
+
# - Id: 325
|
|
76
|
+
# - Name: Tax Identification Number
|
|
77
|
+
# - Type: AN
|
|
78
|
+
# - Min/Max: 1/20
|
|
79
|
+
# - Description: Number assigned to a purchaser (buyer, orderer) by a taxing jurisdiction (state, county, etc.); often called a tax exemption number or certificate number
|
|
80
|
+
#
|
|
81
|
+
# @param arg [String]
|
|
82
|
+
# @return [void]
|
|
83
|
+
def TXI09=(arg)
|
|
84
|
+
@txi09.value = arg
|
|
85
|
+
end
|
|
86
|
+
alias TaxIdentificationNumber= TXI09=
|
|
87
|
+
|
|
88
|
+
end
|
|
89
|
+
end
|
|
90
|
+
end
|
|
@@ -0,0 +1,122 @@
|
|
|
1
|
+
module Eddy
|
|
2
|
+
module TransactionSets
|
|
3
|
+
module TS846
|
|
4
|
+
# ### Transaction Set Summary:
|
|
5
|
+
#
|
|
6
|
+
# - Id: 846
|
|
7
|
+
# - Name: Inventory Inquiry/Advice
|
|
8
|
+
# - Functional Group: IB
|
|
9
|
+
class TS846 < Eddy::Models::TransactionSet
|
|
10
|
+
|
|
11
|
+
ID = "846".freeze
|
|
12
|
+
NAME = "Inventory Inquiry/Advice".freeze
|
|
13
|
+
FUNCTIONAL_GROUP = "IB".freeze
|
|
14
|
+
|
|
15
|
+
# @param store [Eddy::Data::Store]
|
|
16
|
+
# @return [void]
|
|
17
|
+
def initialize(store)
|
|
18
|
+
@bia = Eddy::Segments::BIA.new(store)
|
|
19
|
+
@cur = Eddy::Segments::CUR.new(store)
|
|
20
|
+
@dtm = Eddy::Segments::DTM.new(store)
|
|
21
|
+
@ref = Eddy::Segments::REF.new(store)
|
|
22
|
+
@per = Eddy::Segments::PER.new(store)
|
|
23
|
+
@l_n1 = Eddy::TransactionSets::TS846::Loops::N1::Base.new(store)
|
|
24
|
+
@l_lin = Eddy::TransactionSets::TS846::Loops::LIN::Base.new(store)
|
|
25
|
+
@ctt = Eddy::Segments::CTT.new(store)
|
|
26
|
+
super(
|
|
27
|
+
store,
|
|
28
|
+
@bia,
|
|
29
|
+
@cur,
|
|
30
|
+
@dtm,
|
|
31
|
+
@ref,
|
|
32
|
+
@per,
|
|
33
|
+
@l_n1,
|
|
34
|
+
@l_lin,
|
|
35
|
+
@ctt,
|
|
36
|
+
)
|
|
37
|
+
end
|
|
38
|
+
|
|
39
|
+
# (see Eddy::Segments::BIA)
|
|
40
|
+
#
|
|
41
|
+
# @yieldparam [Eddy::Segments::BIA]
|
|
42
|
+
# @return [Eddy::Segments::BIA]
|
|
43
|
+
def BIA()
|
|
44
|
+
yield(@bia) if block_given?
|
|
45
|
+
return @bia
|
|
46
|
+
end
|
|
47
|
+
|
|
48
|
+
# (see Eddy::Segments::CUR)
|
|
49
|
+
#
|
|
50
|
+
# @yieldparam [Eddy::Segments::CUR]
|
|
51
|
+
# @return [Eddy::Segments::CUR]
|
|
52
|
+
def CUR()
|
|
53
|
+
yield(@cur) if block_given?
|
|
54
|
+
return @cur
|
|
55
|
+
end
|
|
56
|
+
|
|
57
|
+
# (see Eddy::Segments::DTM)
|
|
58
|
+
#
|
|
59
|
+
# @yieldparam [Eddy::Segments::DTM]
|
|
60
|
+
# @return [Eddy::Segments::DTM]
|
|
61
|
+
def DTM()
|
|
62
|
+
yield(@dtm) if block_given?
|
|
63
|
+
return @dtm
|
|
64
|
+
end
|
|
65
|
+
|
|
66
|
+
# (see Eddy::Segments::REF)
|
|
67
|
+
#
|
|
68
|
+
# @yieldparam [Eddy::Segments::REF]
|
|
69
|
+
# @return [Eddy::Segments::REF]
|
|
70
|
+
def REF()
|
|
71
|
+
yield(@ref) if block_given?
|
|
72
|
+
return @ref
|
|
73
|
+
end
|
|
74
|
+
|
|
75
|
+
# (see Eddy::Segments::PER)
|
|
76
|
+
#
|
|
77
|
+
# @yieldparam [Eddy::Segments::PER]
|
|
78
|
+
# @return [Eddy::Segments::PER]
|
|
79
|
+
def PER()
|
|
80
|
+
yield(@per) if block_given?
|
|
81
|
+
return @per
|
|
82
|
+
end
|
|
83
|
+
|
|
84
|
+
# (see Eddy::TransactionSets::TS846::Loops::N1::Base)
|
|
85
|
+
#
|
|
86
|
+
# @yieldparam [Eddy::TransactionSets::TS846::Loops::N1::Repeat]
|
|
87
|
+
# @return [void]
|
|
88
|
+
def L_N1(&block)
|
|
89
|
+
if block_given?
|
|
90
|
+
@l_n1.repeat(&block)
|
|
91
|
+
else
|
|
92
|
+
raise Eddy::Errors::Error, "No block given in loop iteration"
|
|
93
|
+
end
|
|
94
|
+
return nil
|
|
95
|
+
end
|
|
96
|
+
|
|
97
|
+
# (see Eddy::TransactionSets::TS846::Loops::LIN::Base)
|
|
98
|
+
#
|
|
99
|
+
# @yieldparam [Eddy::TransactionSets::TS846::Loops::LIN::Repeat]
|
|
100
|
+
# @return [void]
|
|
101
|
+
def L_LIN(&block)
|
|
102
|
+
if block_given?
|
|
103
|
+
@l_lin.repeat(&block)
|
|
104
|
+
else
|
|
105
|
+
raise Eddy::Errors::Error, "No block given in loop iteration"
|
|
106
|
+
end
|
|
107
|
+
return nil
|
|
108
|
+
end
|
|
109
|
+
|
|
110
|
+
# (see Eddy::Segments::CTT)
|
|
111
|
+
#
|
|
112
|
+
# @yieldparam [Eddy::Segments::CTT]
|
|
113
|
+
# @return [Eddy::Segments::CTT]
|
|
114
|
+
def CTT()
|
|
115
|
+
yield(@ctt) if block_given?
|
|
116
|
+
return @ctt
|
|
117
|
+
end
|
|
118
|
+
|
|
119
|
+
end
|
|
120
|
+
end
|
|
121
|
+
end
|
|
122
|
+
end
|
|
@@ -0,0 +1,155 @@
|
|
|
1
|
+
module Eddy
|
|
2
|
+
module TransactionSets
|
|
3
|
+
module TS846
|
|
4
|
+
module Loops
|
|
5
|
+
module LIN
|
|
6
|
+
|
|
7
|
+
# ### Loop Summary:
|
|
8
|
+
#
|
|
9
|
+
# - Repeat: 10000
|
|
10
|
+
# - Components:
|
|
11
|
+
# - LIN
|
|
12
|
+
# - PID
|
|
13
|
+
# - DTM
|
|
14
|
+
# - CTP
|
|
15
|
+
# - REF
|
|
16
|
+
# - SDQ
|
|
17
|
+
# - SLN (loop)
|
|
18
|
+
# - QTY (loop)
|
|
19
|
+
# - N1 (loop)
|
|
20
|
+
class Base < Eddy::Models::Loop::Base
|
|
21
|
+
# @param store [Eddy::Data::Store]
|
|
22
|
+
# @return [void]
|
|
23
|
+
def initialize(store)
|
|
24
|
+
@repeat_limit = 10000
|
|
25
|
+
super(store, Repeat)
|
|
26
|
+
end
|
|
27
|
+
end
|
|
28
|
+
|
|
29
|
+
# (see Eddy::TransactionSets::TS846::Loops::LIN::Base)
|
|
30
|
+
class Repeat < Eddy::Models::Loop::Repeat
|
|
31
|
+
# @param store [Eddy::Data::Store]
|
|
32
|
+
# @return [void]
|
|
33
|
+
def initialize(store)
|
|
34
|
+
@lin = Eddy::Segments::LIN.new(store)
|
|
35
|
+
@pid = Eddy::Segments::PID.new(store)
|
|
36
|
+
@dtm = Eddy::Segments::DTM.new(store)
|
|
37
|
+
@ctp = Eddy::Segments::CTP.new(store)
|
|
38
|
+
@ref = Eddy::Segments::REF.new(store)
|
|
39
|
+
@sdq = Eddy::Segments::SDQ.new(store)
|
|
40
|
+
@l_sln = Eddy::TransactionSets::TS846::Loops::SLN::Base.new(store)
|
|
41
|
+
@l_qty = Eddy::TransactionSets::TS846::Loops::QTY::Base.new(store)
|
|
42
|
+
@l_n1 = Eddy::TransactionSets::TS846::Loops::N1::Base.new(store)
|
|
43
|
+
super(
|
|
44
|
+
store,
|
|
45
|
+
@lin,
|
|
46
|
+
@pid,
|
|
47
|
+
@dtm,
|
|
48
|
+
@ctp,
|
|
49
|
+
@ref,
|
|
50
|
+
@sdq,
|
|
51
|
+
@l_sln,
|
|
52
|
+
@l_qty,
|
|
53
|
+
@l_n1,
|
|
54
|
+
)
|
|
55
|
+
end
|
|
56
|
+
|
|
57
|
+
# (see Eddy::Segments::LIN)
|
|
58
|
+
#
|
|
59
|
+
# @yieldparam [Eddy::Segments::LIN]
|
|
60
|
+
# @return [Eddy::Segments::LIN]
|
|
61
|
+
def LIN()
|
|
62
|
+
yield(@lin) if block_given?
|
|
63
|
+
return @lin
|
|
64
|
+
end
|
|
65
|
+
|
|
66
|
+
# (see Eddy::Segments::PID)
|
|
67
|
+
#
|
|
68
|
+
# @yieldparam [Eddy::Segments::PID]
|
|
69
|
+
# @return [Eddy::Segments::PID]
|
|
70
|
+
def PID()
|
|
71
|
+
yield(@pid) if block_given?
|
|
72
|
+
return @pid
|
|
73
|
+
end
|
|
74
|
+
|
|
75
|
+
# (see Eddy::Segments::DTM)
|
|
76
|
+
#
|
|
77
|
+
# @yieldparam [Eddy::Segments::DTM]
|
|
78
|
+
# @return [Eddy::Segments::DTM]
|
|
79
|
+
def DTM()
|
|
80
|
+
yield(@dtm) if block_given?
|
|
81
|
+
return @dtm
|
|
82
|
+
end
|
|
83
|
+
|
|
84
|
+
# (see Eddy::Segments::CTP)
|
|
85
|
+
#
|
|
86
|
+
# @yieldparam [Eddy::Segments::CTP]
|
|
87
|
+
# @return [Eddy::Segments::CTP]
|
|
88
|
+
def CTP()
|
|
89
|
+
yield(@ctp) if block_given?
|
|
90
|
+
return @ctp
|
|
91
|
+
end
|
|
92
|
+
|
|
93
|
+
# (see Eddy::Segments::REF)
|
|
94
|
+
#
|
|
95
|
+
# @yieldparam [Eddy::Segments::REF]
|
|
96
|
+
# @return [Eddy::Segments::REF]
|
|
97
|
+
def REF()
|
|
98
|
+
yield(@ref) if block_given?
|
|
99
|
+
return @ref
|
|
100
|
+
end
|
|
101
|
+
|
|
102
|
+
# (see Eddy::Segments::SDQ)
|
|
103
|
+
#
|
|
104
|
+
# @yieldparam [Eddy::Segments::SDQ]
|
|
105
|
+
# @return [Eddy::Segments::SDQ]
|
|
106
|
+
def SDQ()
|
|
107
|
+
yield(@sdq) if block_given?
|
|
108
|
+
return @sdq
|
|
109
|
+
end
|
|
110
|
+
|
|
111
|
+
# (see Eddy::TransactionSets::TS846::Loops::SLN::Base)
|
|
112
|
+
#
|
|
113
|
+
# @yieldparam [Eddy::TransactionSets::TS846::Loops::SLN::Repeat]
|
|
114
|
+
# @return [void]
|
|
115
|
+
def L_SLN(&block)
|
|
116
|
+
if block_given?
|
|
117
|
+
@l_sln.repeat(&block)
|
|
118
|
+
else
|
|
119
|
+
raise Eddy::Errors::Error, "No block given in loop iteration"
|
|
120
|
+
end
|
|
121
|
+
return nil
|
|
122
|
+
end
|
|
123
|
+
|
|
124
|
+
# (see Eddy::TransactionSets::TS846::Loops::QTY::Base)
|
|
125
|
+
#
|
|
126
|
+
# @yieldparam [Eddy::TransactionSets::TS846::Loops::QTY::Repeat]
|
|
127
|
+
# @return [void]
|
|
128
|
+
def L_QTY(&block)
|
|
129
|
+
if block_given?
|
|
130
|
+
@l_qty.repeat(&block)
|
|
131
|
+
else
|
|
132
|
+
raise Eddy::Errors::Error, "No block given in loop iteration"
|
|
133
|
+
end
|
|
134
|
+
return nil
|
|
135
|
+
end
|
|
136
|
+
|
|
137
|
+
# (see Eddy::TransactionSets::TS846::Loops::N1::Base)
|
|
138
|
+
#
|
|
139
|
+
# @yieldparam [Eddy::TransactionSets::TS846::Loops::N1::Repeat]
|
|
140
|
+
# @return [void]
|
|
141
|
+
def L_N1(&block)
|
|
142
|
+
if block_given?
|
|
143
|
+
@l_n1.repeat(&block)
|
|
144
|
+
else
|
|
145
|
+
raise Eddy::Errors::Error, "No block given in loop iteration"
|
|
146
|
+
end
|
|
147
|
+
return nil
|
|
148
|
+
end
|
|
149
|
+
end
|
|
150
|
+
|
|
151
|
+
end
|
|
152
|
+
end
|
|
153
|
+
end
|
|
154
|
+
end
|
|
155
|
+
end
|