eancom 1.6.2 → 2.0.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/.gitignore +7 -4
- data/.gitlab-ci.yml +11 -13
- data/.ruby-version +1 -1
- data/Gemfile +2 -4
- data/Gemfile.lock +21 -103
- data/README.md +46 -0
- data/definitions/desadv/d01b.rb +134 -87
- data/definitions/desadv/d96a.rb +145 -82
- data/definitions/invoic/d01b.rb +559 -0
- data/definitions/invoic/d96a.rb +389 -0
- data/definitions/invrpt/d01b.rb +134 -0
- data/definitions/invrpt/d96a.rb +125 -0
- data/definitions/orders/d01b.rb +182 -0
- data/definitions/orders/d96b.rb +198 -0
- data/definitions/ordrsp/d01b.rb +251 -0
- data/definitions/ordrsp/d96b.rb +226 -0
- data/definitions/pricat/d01b.rb +225 -0
- data/definitions/pricat/d96b.rb +207 -0
- data/definitions/retann/d01b.rb +172 -0
- data/definitions/retann/d96b.rb +221 -0
- data/definitions/segments/ajt.rb +47 -0
- data/definitions/segments/alc.rb +128 -36
- data/definitions/segments/bgm.rb +122 -2
- data/definitions/segments/cdi.rb +39 -0
- data/definitions/segments/cnt.rb +4 -0
- data/definitions/segments/cta.rb +89 -0
- data/definitions/segments/cux.rb +9 -2
- data/definitions/segments/dgs.rb +34 -0
- data/definitions/segments/doc.rb +45 -0
- data/definitions/segments/dtm.rb +75 -20
- data/definitions/segments/efi.rb +67 -0
- data/definitions/segments/eqd.rb +37 -0
- data/definitions/segments/ftx.rb +22 -8
- data/definitions/segments/gin.rb +113 -0
- data/definitions/segments/imd.rb +9 -13
- data/definitions/segments/inv.rb +94 -0
- data/definitions/segments/lin.rb +24 -4
- data/definitions/segments/loc.rb +52 -4
- data/definitions/segments/moa.rb +86 -2
- data/definitions/segments/nad.rb +69 -9
- data/definitions/segments/pac.rb +12 -0
- data/definitions/segments/pat.rb +171 -0
- data/definitions/segments/pcd.rb +9 -92
- data/definitions/segments/pci.rb +110 -0
- data/definitions/segments/pgi.rb +7 -3
- data/definitions/segments/pia.rb +21 -29
- data/definitions/segments/pri.rb +25 -13
- data/definitions/segments/qty.rb +208 -2
- data/definitions/segments/rff.rb +49 -13
- data/definitions/segments/rte.rb +52 -0
- data/definitions/segments/tax.rb +17 -10
- data/definitions/segments/tdt.rb +24 -0
- data/definitions/segments/tod.rb +64 -0
- data/definitions/segments/tru.rb +34 -0
- data/definitions/segments/una.rb +8 -8
- data/definitions/segments/unb.rb +4 -4
- data/definitions/segments/unh.rb +70 -5
- data/definitions/segments/uns.rb +2 -2
- data/definitions/segments/unt.rb +2 -2
- data/definitions/slsrpt/d01b.rb +132 -128
- data/definitions/slsrpt/d96a.rb +132 -129
- data/eancom.gemspec +5 -8
- data/lib/eancom/edifact/body.rb +37 -18
- data/lib/eancom/edifact/document.rb +20 -16
- data/lib/eancom/edifact/footer.rb +1 -0
- data/lib/eancom/edifact/item.rb +1 -1
- data/lib/eancom/edifact/message.rb +7 -39
- data/lib/eancom/edifact/segment.rb +9 -11
- data/lib/eancom/edifact/segments/ajt.rb +32 -0
- data/lib/eancom/edifact/segments/ali.rb +2 -4
- data/lib/eancom/edifact/segments/bgm.rb +4 -3
- data/lib/eancom/edifact/segments/cdi.rb +30 -0
- data/lib/eancom/edifact/segments/cnt.rb +8 -1
- data/lib/eancom/edifact/segments/cps.rb +4 -1
- data/lib/eancom/edifact/segments/cta.rb +30 -0
- data/lib/eancom/edifact/segments/cux.rb +1 -1
- data/lib/eancom/edifact/segments/dgs.rb +31 -0
- data/lib/eancom/edifact/segments/doc.rb +30 -0
- data/lib/eancom/edifact/segments/dtm.rb +10 -6
- data/lib/eancom/edifact/segments/efi.rb +38 -0
- data/lib/eancom/edifact/segments/eqd.rb +30 -0
- data/lib/eancom/edifact/segments/ftx.rb +2 -2
- data/lib/eancom/edifact/segments/gin.rb +45 -0
- data/lib/eancom/edifact/segments/imd.rb +1 -1
- data/lib/eancom/edifact/segments/inv.rb +43 -0
- data/lib/eancom/edifact/segments/lin.rb +7 -4
- data/lib/eancom/edifact/segments/loc.rb +8 -9
- data/lib/eancom/edifact/segments/mea.rb +1 -0
- data/lib/eancom/edifact/segments/moa.rb +3 -3
- data/lib/eancom/edifact/segments/nad.rb +11 -6
- data/lib/eancom/edifact/segments/pac.rb +3 -1
- data/lib/eancom/edifact/segments/pat.rb +37 -0
- data/lib/eancom/edifact/segments/pcd.rb +6 -17
- data/lib/eancom/edifact/segments/pci.rb +40 -0
- data/lib/eancom/edifact/segments/pia.rb +1 -0
- data/lib/eancom/edifact/segments/pri.rb +0 -1
- data/lib/eancom/edifact/segments/qty.rb +9 -5
- data/lib/eancom/edifact/segments/rff.rb +8 -2
- data/lib/eancom/edifact/segments/rte.rb +33 -0
- data/lib/eancom/edifact/segments/tax.rb +7 -1
- data/lib/eancom/edifact/segments/tdt.rb +4 -1
- data/lib/eancom/edifact/segments/tod.rb +33 -0
- data/lib/eancom/edifact/segments/tru.rb +31 -0
- data/lib/eancom/edifact/segments/una.rb +2 -1
- data/lib/eancom/edifact/segments/unb.rb +4 -5
- data/lib/eancom/edifact/segments/unh.rb +6 -4
- data/lib/eancom/edifact/segments/uns.rb +4 -1
- data/lib/eancom/edifact/structure.rb +0 -1
- data/lib/eancom/edifact.rb +15 -4
- data/lib/eancom/factory.rb +1 -1
- data/lib/eancom/parser/document.rb +3 -16
- data/lib/eancom/parser/segment.rb +9 -10
- data/lib/eancom/version.rb +1 -3
- data/lib/eancom.rb +3 -1
- data/pricat.json +1 -0
- metadata +45 -51
- data/.rubocop.yml +0 -2
- data/.tool-versions +0 -1
- data/definitions/segments/qvr.rb +0 -140
- data/lib/eancom/edifact/location.rb +0 -56
- data/lib/eancom/edifact/segments/qvr.rb +0 -50
data/definitions/segments/alc.rb
CHANGED
|
@@ -5,12 +5,12 @@ structure = Eancom::Edifact::Structure.new(tag: tag)
|
|
|
5
5
|
#==============================================================================
|
|
6
6
|
# Tag #
|
|
7
7
|
#==============================================================================
|
|
8
|
-
tag = Eancom::Edifact::Composite.new
|
|
8
|
+
tag = Eancom::Edifact::Composite.new
|
|
9
9
|
data = Eancom::Edifact::Data.new(
|
|
10
10
|
type: String,
|
|
11
11
|
length: 3,
|
|
12
12
|
dictionary: nil,
|
|
13
|
-
description:
|
|
13
|
+
description: 'Message Header',
|
|
14
14
|
required: true
|
|
15
15
|
)
|
|
16
16
|
tag.add(:tag, data)
|
|
@@ -19,7 +19,7 @@ structure << tag
|
|
|
19
19
|
#==============================================================================
|
|
20
20
|
# Allowance or Charge code qualifier
|
|
21
21
|
#==============================================================================
|
|
22
|
-
allowance_or_charge_code_qualifier = Eancom::Edifact::Composite.new
|
|
22
|
+
allowance_or_charge_code_qualifier = Eancom::Edifact::Composite.new
|
|
23
23
|
data = Eancom::Edifact::Data.new(
|
|
24
24
|
type: String,
|
|
25
25
|
length: 1..3,
|
|
@@ -32,8 +32,12 @@ data = Eancom::Edifact::Data.new(
|
|
|
32
32
|
description: 'Charge',
|
|
33
33
|
identifier: 'charge'
|
|
34
34
|
},
|
|
35
|
+
'N' => {
|
|
36
|
+
description: 'No allowance or charge',
|
|
37
|
+
identifier: 'no_allowance_or_charge'
|
|
38
|
+
}
|
|
35
39
|
},
|
|
36
|
-
description:
|
|
40
|
+
description: 'Allowance or Charge code qualifier',
|
|
37
41
|
required: true
|
|
38
42
|
)
|
|
39
43
|
allowance_or_charge_code_qualifier.add(:allowance_or_charge_code_qualifier, data)
|
|
@@ -42,13 +46,13 @@ structure << allowance_or_charge_code_qualifier
|
|
|
42
46
|
#==============================================================================
|
|
43
47
|
# Allowance/Charge information
|
|
44
48
|
#==============================================================================
|
|
45
|
-
allowance_charge_information = Eancom::Edifact::Composite.new
|
|
49
|
+
allowance_charge_information = Eancom::Edifact::Composite.new
|
|
46
50
|
|
|
47
51
|
data = Eancom::Edifact::Data.new(
|
|
48
52
|
type: String,
|
|
49
53
|
length: 0..35,
|
|
50
54
|
dictionary: nil,
|
|
51
|
-
description:
|
|
55
|
+
description: 'Allowance or charge identifier',
|
|
52
56
|
required: false
|
|
53
57
|
)
|
|
54
58
|
allowance_charge_information.add(:allowance_or_charge_identifier, data)
|
|
@@ -57,20 +61,24 @@ data = Eancom::Edifact::Data.new(
|
|
|
57
61
|
type: String,
|
|
58
62
|
length: 0..3,
|
|
59
63
|
dictionary: {
|
|
60
|
-
'64' =>{
|
|
64
|
+
'64' => {
|
|
61
65
|
description: 'Special agreement',
|
|
62
|
-
identifier: 'special_agreement'
|
|
66
|
+
identifier: 'special_agreement'
|
|
63
67
|
},
|
|
64
|
-
'69' =>{
|
|
68
|
+
'69' => {
|
|
65
69
|
description: 'Charge for a customer specific finish',
|
|
66
|
-
identifier: 'charge_for_a_customer_specific_finisch'
|
|
70
|
+
identifier: 'charge_for_a_customer_specific_finisch'
|
|
67
71
|
},
|
|
68
|
-
'64E' =>{
|
|
72
|
+
'64E' => {
|
|
69
73
|
description: 'Yearly turnover allowance/charge',
|
|
70
|
-
identifier: 'yearly_turnover_allowance_charge'
|
|
74
|
+
identifier: 'yearly_turnover_allowance_charge'
|
|
71
75
|
},
|
|
76
|
+
'101' => {
|
|
77
|
+
description: 'Carbon footprint charge',
|
|
78
|
+
identifier: 'carbon_footprint_charge'
|
|
79
|
+
}
|
|
72
80
|
},
|
|
73
|
-
description:
|
|
81
|
+
description: 'Allowance or charge identification code',
|
|
74
82
|
required: false
|
|
75
83
|
)
|
|
76
84
|
allowance_charge_information.add(:allowance_or_charge_identification_code, data)
|
|
@@ -81,22 +89,22 @@ data = Eancom::Edifact::Data.new(
|
|
|
81
89
|
dictionary: {
|
|
82
90
|
'1' => {
|
|
83
91
|
description: 'Bill back',
|
|
84
|
-
identifier: 'bill_back'
|
|
92
|
+
identifier: 'bill_back'
|
|
85
93
|
},
|
|
86
94
|
'2' => {
|
|
87
95
|
description: 'Off invoice',
|
|
88
|
-
identifier: 'off_invoice'
|
|
96
|
+
identifier: 'off_invoice'
|
|
89
97
|
},
|
|
90
98
|
'5' => {
|
|
91
99
|
description: 'Charge to be paid by vendor',
|
|
92
|
-
identifier: 'charge_to_be_paid_by_vendor'
|
|
100
|
+
identifier: 'charge_to_be_paid_by_vendor'
|
|
93
101
|
},
|
|
94
102
|
'6' => {
|
|
95
103
|
description: 'Charge to be paid by customer',
|
|
96
|
-
identifier: 'charge_to_be_paid_by_customer'
|
|
97
|
-
}
|
|
104
|
+
identifier: 'charge_to_be_paid_by_customer'
|
|
105
|
+
}
|
|
98
106
|
},
|
|
99
|
-
description:
|
|
107
|
+
description: 'Settlement mean code',
|
|
100
108
|
required: false
|
|
101
109
|
)
|
|
102
110
|
allowance_charge_information.add(:settlement_mean_code, data)
|
|
@@ -107,42 +115,42 @@ data = Eancom::Edifact::Data.new(
|
|
|
107
115
|
dictionary: {
|
|
108
116
|
'1' => {
|
|
109
117
|
description: 'First step of calculation',
|
|
110
|
-
identifier: 'first_step_of_calculation'
|
|
118
|
+
identifier: 'first_step_of_calculation'
|
|
111
119
|
},
|
|
112
120
|
'2' => {
|
|
113
121
|
description: 'Second step of calculation',
|
|
114
|
-
identifier: 'second_step_of_calculation'
|
|
122
|
+
identifier: 'second_step_of_calculation'
|
|
115
123
|
},
|
|
116
124
|
'3' => {
|
|
117
125
|
description: 'Third step of calculation',
|
|
118
|
-
identifier: 'third_step_of_calculation'
|
|
126
|
+
identifier: 'third_step_of_calculation'
|
|
119
127
|
},
|
|
120
128
|
'4' => {
|
|
121
129
|
description: 'Forth step of calculation',
|
|
122
|
-
identifier: 'forth_step_of_calculation'
|
|
130
|
+
identifier: 'forth_step_of_calculation'
|
|
123
131
|
},
|
|
124
132
|
'5' => {
|
|
125
133
|
description: 'Fith step of calculation',
|
|
126
|
-
identifier: 'fith_step_of_calculation'
|
|
134
|
+
identifier: 'fith_step_of_calculation'
|
|
127
135
|
},
|
|
128
136
|
'6' => {
|
|
129
137
|
description: 'Sixth step of calculation',
|
|
130
|
-
identifier: 'sixth_step_of_calculation'
|
|
138
|
+
identifier: 'sixth_step_of_calculation'
|
|
131
139
|
},
|
|
132
140
|
'7' => {
|
|
133
141
|
description: 'Seventh step of calculation',
|
|
134
|
-
identifier: 'seventh_step_of_calculation'
|
|
142
|
+
identifier: 'seventh_step_of_calculation'
|
|
135
143
|
},
|
|
136
144
|
'8' => {
|
|
137
145
|
description: 'Eighth step of calculation',
|
|
138
|
-
identifier: 'eighth_step_of_calculation'
|
|
146
|
+
identifier: 'eighth_step_of_calculation'
|
|
139
147
|
},
|
|
140
148
|
'9' => {
|
|
141
149
|
description: 'Ninth step of calculation',
|
|
142
|
-
identifier: 'ninth_step_of_calculation'
|
|
143
|
-
}
|
|
150
|
+
identifier: 'ninth_step_of_calculation'
|
|
151
|
+
}
|
|
144
152
|
},
|
|
145
|
-
description:
|
|
153
|
+
description: 'Calculation sequence code',
|
|
146
154
|
required: false
|
|
147
155
|
)
|
|
148
156
|
allowance_charge_information.add(:calculation_sequence_code, data)
|
|
@@ -151,7 +159,7 @@ structure << allowance_charge_information
|
|
|
151
159
|
#==============================================================================
|
|
152
160
|
# Special Services identification
|
|
153
161
|
#==============================================================================
|
|
154
|
-
special_services_identification = Eancom::Edifact::Composite.new
|
|
162
|
+
special_services_identification = Eancom::Edifact::Composite.new
|
|
155
163
|
|
|
156
164
|
data = Eancom::Edifact::Data.new(
|
|
157
165
|
type: String,
|
|
@@ -161,18 +169,74 @@ data = Eancom::Edifact::Data.new(
|
|
|
161
169
|
description: 'Adjustments',
|
|
162
170
|
identifier: 'adjustments'
|
|
163
171
|
},
|
|
172
|
+
'DDA' => {
|
|
173
|
+
description: 'Dealer discount/allowance (GS1 Temporary Code)',
|
|
174
|
+
identifier: 'dealer_discount_allowance_gs1'
|
|
175
|
+
},
|
|
176
|
+
'DBD' => {
|
|
177
|
+
description: 'Debtor bound (GS1 Temporary Code)',
|
|
178
|
+
identifier: 'debtor_bound'
|
|
179
|
+
},
|
|
164
180
|
'CAC' => {
|
|
165
181
|
description: 'Cash Discount',
|
|
166
182
|
identifier: 'cash_discount'
|
|
167
183
|
},
|
|
184
|
+
'CAV' => {
|
|
185
|
+
description: 'Battery collection and recycling',
|
|
186
|
+
identifier: 'battery_collection_and_recycling'
|
|
187
|
+
},
|
|
188
|
+
'CAU' => {
|
|
189
|
+
description: 'Sorting',
|
|
190
|
+
identifier: 'sorting'
|
|
191
|
+
},
|
|
192
|
+
'CAW' => {
|
|
193
|
+
description: 'Product Take Back Fee',
|
|
194
|
+
identifier: 'product_take_back_fee'
|
|
195
|
+
},
|
|
168
196
|
'AEK' => {
|
|
169
197
|
description: 'Cash on delivery service',
|
|
170
198
|
identifier: 'cash_on_delivery_service'
|
|
171
199
|
},
|
|
200
|
+
'AAB' => {
|
|
201
|
+
description: 'Returned goods charges',
|
|
202
|
+
identifier: 'returned_goods_charges'
|
|
203
|
+
},
|
|
204
|
+
'ABA' => {
|
|
205
|
+
description: 'Compulsory storage fee',
|
|
206
|
+
identifier: 'compulsory_storage_fee'
|
|
207
|
+
},
|
|
208
|
+
'ABL' => {
|
|
209
|
+
description: 'Packaging surcharge',
|
|
210
|
+
identifier: 'packaging_surcharge'
|
|
211
|
+
},
|
|
212
|
+
'ABZ' => {
|
|
213
|
+
description: 'Miscellaneous rebate or discount',
|
|
214
|
+
identifier: 'miscellaneous_rebate_or_discount'
|
|
215
|
+
},
|
|
216
|
+
'ACZ' => {
|
|
217
|
+
description: 'Damaged merchandise',
|
|
218
|
+
identifier: 'damaged_merchandise'
|
|
219
|
+
},
|
|
220
|
+
'ADS' => {
|
|
221
|
+
description: 'Full pallet ordering',
|
|
222
|
+
identifier: 'full_pallet_ordering'
|
|
223
|
+
},
|
|
224
|
+
'ADT' => {
|
|
225
|
+
description: 'Pick-up',
|
|
226
|
+
identifier: 'pick_up'
|
|
227
|
+
},
|
|
172
228
|
'EAB' => {
|
|
173
229
|
description: 'Early payment allowance',
|
|
174
230
|
identifier: 'early_payment_allowance'
|
|
175
231
|
},
|
|
232
|
+
'RCH' => {
|
|
233
|
+
description: 'Return handling (GS1 Temporary Code)',
|
|
234
|
+
identifier: 'return_handling'
|
|
235
|
+
},
|
|
236
|
+
'TD' => {
|
|
237
|
+
description: 'Trade discount',
|
|
238
|
+
identifier: 'trade_discount'
|
|
239
|
+
},
|
|
176
240
|
'FC' => {
|
|
177
241
|
description: 'Freight charge',
|
|
178
242
|
identifier: 'freght_charge'
|
|
@@ -181,6 +245,10 @@ data = Eancom::Edifact::Data.new(
|
|
|
181
245
|
description: 'Finance charge',
|
|
182
246
|
identifier: 'finance_charge'
|
|
183
247
|
},
|
|
248
|
+
'FR' => {
|
|
249
|
+
description: 'Flat Rate (GS1 Temporary Code)',
|
|
250
|
+
identifier: 'flat_rate'
|
|
251
|
+
},
|
|
184
252
|
'HD' => {
|
|
185
253
|
description: 'Handling',
|
|
186
254
|
identifier: 'handling'
|
|
@@ -189,12 +257,36 @@ data = Eancom::Edifact::Data.new(
|
|
|
189
257
|
description: 'Quantity discount',
|
|
190
258
|
identifier: 'quantity_discount'
|
|
191
259
|
},
|
|
260
|
+
'X01' => {
|
|
261
|
+
description: 'Allowance Global (GS1 Temporary Code)',
|
|
262
|
+
identifier: 'allowance_global'
|
|
263
|
+
},
|
|
264
|
+
'X02' => {
|
|
265
|
+
description: 'Charge Global (GS1 Temporary Code)',
|
|
266
|
+
identifier: 'charge_global'
|
|
267
|
+
},
|
|
268
|
+
'X03' => {
|
|
269
|
+
description: 'Consolidated (GS1 Temporary Code)',
|
|
270
|
+
identifier: 'consolidated'
|
|
271
|
+
},
|
|
272
|
+
'X04' => {
|
|
273
|
+
description: 'Lump sum (GS1 Temporary Code)',
|
|
274
|
+
identifier: 'lump_sum'
|
|
275
|
+
},
|
|
276
|
+
'X05' => {
|
|
277
|
+
description: 'Markup for small volume purchases',
|
|
278
|
+
identifier: 'markup_for_small_volume_purchases'
|
|
279
|
+
},
|
|
280
|
+
'X30' => {
|
|
281
|
+
description: 'Point of sales allowance (GS1 Temporary Code)',
|
|
282
|
+
identifier: 'point_of_sales_allowance'
|
|
283
|
+
},
|
|
192
284
|
'X40' => {
|
|
193
285
|
description: 'Allowance/charge regulated by law',
|
|
194
286
|
identifier: 'allowance_charge_regulated_by_law'
|
|
195
|
-
}
|
|
287
|
+
}
|
|
196
288
|
},
|
|
197
|
-
description:
|
|
289
|
+
description: 'Special service description_code',
|
|
198
290
|
required: false
|
|
199
291
|
)
|
|
200
292
|
special_services_identification.add(:special_service_description_code, data)
|
|
@@ -202,7 +294,7 @@ special_services_identification.add(:special_service_description_code, data)
|
|
|
202
294
|
data = Eancom::Edifact::Data.new(
|
|
203
295
|
type: String,
|
|
204
296
|
length: 0..17,
|
|
205
|
-
description:
|
|
297
|
+
description: 'Code list identification code',
|
|
206
298
|
required: false
|
|
207
299
|
)
|
|
208
300
|
special_services_identification.add(:code_list_identification_code, data)
|
|
@@ -216,7 +308,7 @@ data = Eancom::Edifact::Data.new(
|
|
|
216
308
|
identifier: 'gs1'
|
|
217
309
|
}
|
|
218
310
|
},
|
|
219
|
-
description:
|
|
311
|
+
description: 'Code list responsible agency code',
|
|
220
312
|
required: false
|
|
221
313
|
)
|
|
222
314
|
special_services_identification.add(:code_list_responsible_agency_code, data)
|
|
@@ -225,7 +317,7 @@ data = Eancom::Edifact::Data.new(
|
|
|
225
317
|
type: String,
|
|
226
318
|
length: 0..3,
|
|
227
319
|
dictionary: nil,
|
|
228
|
-
description:
|
|
320
|
+
description: 'Special service description',
|
|
229
321
|
required: false
|
|
230
322
|
)
|
|
231
323
|
special_services_identification.add(:special_service_description_1, data)
|
data/definitions/segments/bgm.rb
CHANGED
|
@@ -33,10 +33,22 @@ data = Eancom::Edifact::Data.new(
|
|
|
33
33
|
description: 'Federal label approval',
|
|
34
34
|
identifier: 'federal_label_approval'
|
|
35
35
|
},
|
|
36
|
+
'35' => {
|
|
37
|
+
description: 'Inventory report',
|
|
38
|
+
identifier: 'inventory_report'
|
|
39
|
+
},
|
|
40
|
+
'51' => {
|
|
41
|
+
description: 'Price/sales catalogue response',
|
|
42
|
+
identifier: 'price_sales_catalogue_response'
|
|
43
|
+
},
|
|
36
44
|
'67' => {
|
|
37
45
|
description: 'Commercial dispute',
|
|
38
46
|
identifier: 'commercial_dispute'
|
|
39
47
|
},
|
|
48
|
+
'78' => {
|
|
49
|
+
description: 'Inventory movement advice',
|
|
50
|
+
identifier: 'inventory_report'
|
|
51
|
+
},
|
|
40
52
|
'82' => {
|
|
41
53
|
description: 'Metered service invoice',
|
|
42
54
|
identifier: 'metered_service_invoice'
|
|
@@ -53,10 +65,50 @@ data = Eancom::Edifact::Data.new(
|
|
|
53
65
|
description: 'Invoice Data sheet',
|
|
54
66
|
identifier: 'invoice_data_sheet'
|
|
55
67
|
},
|
|
68
|
+
'172' => {
|
|
69
|
+
description: 'Authorisation plan and suggest orders',
|
|
70
|
+
identifier: 'authorisation_plan_and_suggest_orders'
|
|
71
|
+
},
|
|
72
|
+
'173' => {
|
|
73
|
+
description: 'Authorization plan and ship orders',
|
|
74
|
+
identifier: 'authorisation_plan_and_ship_orders'
|
|
75
|
+
},
|
|
76
|
+
'220' => {
|
|
77
|
+
description: 'Order',
|
|
78
|
+
identifier: 'order'
|
|
79
|
+
},
|
|
80
|
+
'221' => {
|
|
81
|
+
description: 'Blanket order',
|
|
82
|
+
identifier: 'blanket_order'
|
|
83
|
+
},
|
|
84
|
+
'224' => {
|
|
85
|
+
description: 'Rush order',
|
|
86
|
+
identifier: 'rush_order'
|
|
87
|
+
},
|
|
88
|
+
'225' => {
|
|
89
|
+
description: 'Repair order',
|
|
90
|
+
identifier: 'repair_order'
|
|
91
|
+
},
|
|
92
|
+
'226' => {
|
|
93
|
+
description: 'Call off order',
|
|
94
|
+
identifier: 'call_off_order'
|
|
95
|
+
},
|
|
96
|
+
'227' => {
|
|
97
|
+
description: 'Consignment order',
|
|
98
|
+
identifier: 'consignment_order'
|
|
99
|
+
},
|
|
56
100
|
'231' => {
|
|
57
101
|
description: 'Purchase order response',
|
|
58
102
|
identifier: 'purchase_order_response'
|
|
59
103
|
},
|
|
104
|
+
'237' => {
|
|
105
|
+
description: 'Cross docking services order',
|
|
106
|
+
identifier: 'cross_docking_services_order'
|
|
107
|
+
},
|
|
108
|
+
'258' => {
|
|
109
|
+
description: 'Standing order',
|
|
110
|
+
identifier: 'standing_order'
|
|
111
|
+
},
|
|
60
112
|
'261' => {
|
|
61
113
|
description: 'Self billed credit_note',
|
|
62
114
|
identifier: 'self_billed_credit_note'
|
|
@@ -65,6 +117,10 @@ data = Eancom::Edifact::Data.new(
|
|
|
65
117
|
description: 'Consolidated credit note - goods and services',
|
|
66
118
|
identifier: 'consolidated_credit_note_goods_and_services'
|
|
67
119
|
},
|
|
120
|
+
'263' => {
|
|
121
|
+
description: 'Inventory adjustement status report',
|
|
122
|
+
identifier: 'inventory_adjustement_status_report'
|
|
123
|
+
},
|
|
68
124
|
'308' => {
|
|
69
125
|
description: 'Delcredere credit note',
|
|
70
126
|
identifier: 'delcredere_credit_note'
|
|
@@ -125,10 +181,30 @@ data = Eancom::Edifact::Data.new(
|
|
|
125
181
|
description: 'Factored invoice',
|
|
126
182
|
identifier: 'factored_invoice'
|
|
127
183
|
},
|
|
184
|
+
'400' => {
|
|
185
|
+
description: 'Exceptional order',
|
|
186
|
+
identifier: 'exceptional_order'
|
|
187
|
+
},
|
|
188
|
+
'401' => {
|
|
189
|
+
description: 'Transshipment order',
|
|
190
|
+
identifier: 'transshipment_order'
|
|
191
|
+
},
|
|
192
|
+
'402' => {
|
|
193
|
+
description: 'Cross docking order',
|
|
194
|
+
identifier: 'cross_docking_order'
|
|
195
|
+
},
|
|
128
196
|
'527' => {
|
|
129
197
|
description: 'Self billed debit note',
|
|
130
198
|
identifier: 'self_billed_debit_note'
|
|
131
199
|
},
|
|
200
|
+
'24E' => {
|
|
201
|
+
description: 'Price/sales catalogue not containing pricing information (GS1 Temporary Code)',
|
|
202
|
+
identifier: 'price_sales_catalogue_not_containing_pricing_information'
|
|
203
|
+
},
|
|
204
|
+
'25E' => {
|
|
205
|
+
description: 'Price/sales catalogue containing pricing information (GS1 Temporary Code)',
|
|
206
|
+
identifier: 'price_sales_catalogue_containing_pricing_information'
|
|
207
|
+
},
|
|
132
208
|
'35E' => {
|
|
133
209
|
description: 'Return advice (GS1 Temporary Code)',
|
|
134
210
|
identifier: 'return_advice'
|
|
@@ -149,9 +225,25 @@ data = Eancom::Edifact::Data.new(
|
|
|
149
225
|
description: 'Ready for transshipment despatch advice (GS1 Temporary Code).',
|
|
150
226
|
identifier: 'ready_for_transshipment_despatch_advice'
|
|
151
227
|
},
|
|
228
|
+
'22E' => {
|
|
229
|
+
description: 'Manufacturer raised order (GS1 Temporary Code)',
|
|
230
|
+
identifier: 'manufacturer_raised_order'
|
|
231
|
+
},
|
|
232
|
+
'23E' => {
|
|
233
|
+
description: 'Manufacturer raised consignment order',
|
|
234
|
+
identifier: 'manufacturer_raised_consignment_order'
|
|
235
|
+
},
|
|
152
236
|
'73E' => {
|
|
153
237
|
description: 'Sales Report',
|
|
154
238
|
identifier: 'sales_report'
|
|
239
|
+
},
|
|
240
|
+
'70E' => {
|
|
241
|
+
description: 'Announcement for returns (GS1 Temporary Code)',
|
|
242
|
+
identifier: 'announcement_for_returns'
|
|
243
|
+
},
|
|
244
|
+
'2E' => {
|
|
245
|
+
description: 'Data distribution profile (GS1 Temporary Code)',
|
|
246
|
+
identifier: 'data_distribution_profile'
|
|
155
247
|
}
|
|
156
248
|
},
|
|
157
249
|
description: "Document name code.",
|
|
@@ -224,6 +316,10 @@ data = Eancom::Edifact::Data.new(
|
|
|
224
316
|
description: 'Addition',
|
|
225
317
|
identifier: 'addition'
|
|
226
318
|
},
|
|
319
|
+
'3' => {
|
|
320
|
+
description: 'Deletion',
|
|
321
|
+
identifier: 'deletion'
|
|
322
|
+
},
|
|
227
323
|
'4' => {
|
|
228
324
|
description: 'Change',
|
|
229
325
|
identifier: 'change'
|
|
@@ -232,6 +328,10 @@ data = Eancom::Edifact::Data.new(
|
|
|
232
328
|
description: 'Replace',
|
|
233
329
|
identifier: 'replace'
|
|
234
330
|
},
|
|
331
|
+
'6' => {
|
|
332
|
+
description: 'Confirmation',
|
|
333
|
+
identifier: 'confirmation'
|
|
334
|
+
},
|
|
235
335
|
'7' => {
|
|
236
336
|
description: 'Duplicate',
|
|
237
337
|
identifier: 'duplicate'
|
|
@@ -244,6 +344,18 @@ data = Eancom::Edifact::Data.new(
|
|
|
244
344
|
description: 'Response',
|
|
245
345
|
identifier: 'response'
|
|
246
346
|
},
|
|
347
|
+
'12' => {
|
|
348
|
+
description: 'Not processed',
|
|
349
|
+
identifier: 'not_processed'
|
|
350
|
+
},
|
|
351
|
+
'16' => {
|
|
352
|
+
description: 'Proposal',
|
|
353
|
+
identifier: 'proposal'
|
|
354
|
+
},
|
|
355
|
+
'27' => {
|
|
356
|
+
description: 'Not accepted',
|
|
357
|
+
identifier: 'not_accepted'
|
|
358
|
+
},
|
|
247
359
|
'29' => {
|
|
248
360
|
description: 'Order Response',
|
|
249
361
|
identifier: 'order_response'
|
|
@@ -256,12 +368,20 @@ data = Eancom::Edifact::Data.new(
|
|
|
256
368
|
description: 'Confirmation_via_specific_means',
|
|
257
369
|
identifier: 'confirmation_via_specific_means'
|
|
258
370
|
},
|
|
371
|
+
'43' => {
|
|
372
|
+
description: 'Additional transmission',
|
|
373
|
+
identifier: 'additional_transmission'
|
|
374
|
+
},
|
|
375
|
+
'45' => {
|
|
376
|
+
description: 'Accepted with reserves',
|
|
377
|
+
identifier: 'accepted_with_reserves'
|
|
378
|
+
},
|
|
259
379
|
'46' => {
|
|
260
|
-
description: '
|
|
380
|
+
description: 'Provisional',
|
|
261
381
|
identifier: 'provisional'
|
|
262
382
|
},
|
|
263
383
|
'47' => {
|
|
264
|
-
description: '
|
|
384
|
+
description: 'Definitive',
|
|
265
385
|
identifier: 'definitive'
|
|
266
386
|
}
|
|
267
387
|
},
|
|
@@ -0,0 +1,39 @@
|
|
|
1
|
+
tag = 'CDI'
|
|
2
|
+
Eancom.register_segment(tag: tag, klass: Eancom::Edifact::CDI)
|
|
3
|
+
|
|
4
|
+
structure = Eancom::Edifact::Structure.new(tag: tag)
|
|
5
|
+
|
|
6
|
+
#==============================================================================
|
|
7
|
+
# Tag #
|
|
8
|
+
#==============================================================================
|
|
9
|
+
tag = Eancom::Edifact::Composite.new
|
|
10
|
+
data = Eancom::Edifact::Data.new(
|
|
11
|
+
type: String,
|
|
12
|
+
length: 1..3,
|
|
13
|
+
dictionary: nil,
|
|
14
|
+
description: 'Message Header',
|
|
15
|
+
required: true
|
|
16
|
+
)
|
|
17
|
+
tag.add(:tag, data)
|
|
18
|
+
structure << tag
|
|
19
|
+
#==============================================================================
|
|
20
|
+
# Contact function code #
|
|
21
|
+
#==============================================================================
|
|
22
|
+
physical_or_logical_state_type_code_qualifier = Eancom::Edifact::Composite.new()
|
|
23
|
+
|
|
24
|
+
data = Eancom::Edifact::Data.new(
|
|
25
|
+
type: String,
|
|
26
|
+
length: 1..3,
|
|
27
|
+
dictionary: {
|
|
28
|
+
'3E' => {
|
|
29
|
+
description: 'Upon return (GS1 temporary code)',
|
|
30
|
+
identifier: 'upon_return'
|
|
31
|
+
}
|
|
32
|
+
},
|
|
33
|
+
description: 'Physical or logical state type code qualifier',
|
|
34
|
+
required: true
|
|
35
|
+
)
|
|
36
|
+
physical_or_logical_state_type_code_qualifier.add(:physical_or_logical_state_type_code_qualifier, data)
|
|
37
|
+
|
|
38
|
+
structure << physical_or_logical_state_type_code_qualifier
|
|
39
|
+
Eancom.register_structure(tag: 'CDI', structure: structure)
|
data/definitions/segments/cnt.rb
CHANGED
|
@@ -33,6 +33,10 @@ data = Eancom::Edifact::Data.new(
|
|
|
33
33
|
description: 'Number of line items in message',
|
|
34
34
|
identifier: 'total_line_items'
|
|
35
35
|
},
|
|
36
|
+
'3' => {
|
|
37
|
+
description: 'Number of line and sub items in message',
|
|
38
|
+
identifier: 'number_of_line_and_sub_items_in_message'
|
|
39
|
+
},
|
|
36
40
|
'7' => {
|
|
37
41
|
description: 'Total gross weight',
|
|
38
42
|
identifier: 'total_gross_weight'
|
|
@@ -0,0 +1,89 @@
|
|
|
1
|
+
tag = 'CTA'
|
|
2
|
+
Eancom.register_segment(tag: tag, klass: Eancom::Edifact::CTA)
|
|
3
|
+
|
|
4
|
+
structure = Eancom::Edifact::Structure.new(tag: tag)
|
|
5
|
+
|
|
6
|
+
#==============================================================================
|
|
7
|
+
# Tag #
|
|
8
|
+
#==============================================================================
|
|
9
|
+
tag = Eancom::Edifact::Composite.new
|
|
10
|
+
data = Eancom::Edifact::Data.new(
|
|
11
|
+
type: String,
|
|
12
|
+
length: 1..3,
|
|
13
|
+
dictionary: nil,
|
|
14
|
+
description: 'Message Header',
|
|
15
|
+
required: true
|
|
16
|
+
)
|
|
17
|
+
tag.add(:tag, data)
|
|
18
|
+
structure << tag
|
|
19
|
+
#==============================================================================
|
|
20
|
+
# Contact function code #
|
|
21
|
+
#==============================================================================
|
|
22
|
+
contact_function_code = Eancom::Edifact::Composite.new
|
|
23
|
+
|
|
24
|
+
data = Eancom::Edifact::Data.new(
|
|
25
|
+
type: String,
|
|
26
|
+
length: 1..3,
|
|
27
|
+
dictionary: {
|
|
28
|
+
'AD' => {
|
|
29
|
+
description: 'Accounting contact',
|
|
30
|
+
identifier: 'accounting_contact'
|
|
31
|
+
},
|
|
32
|
+
'AP' => {
|
|
33
|
+
description: 'Accounts payable contact',
|
|
34
|
+
identifier: 'accounts_payable_contact'
|
|
35
|
+
},
|
|
36
|
+
'AR' => {
|
|
37
|
+
description: 'Accounts receivable contact',
|
|
38
|
+
identifier: 'accounts_receivable_contact'
|
|
39
|
+
},
|
|
40
|
+
'GR' => {
|
|
41
|
+
description: 'Goods receiving contact',
|
|
42
|
+
identifier: 'goods_receiving_contact'
|
|
43
|
+
},
|
|
44
|
+
'IC' => {
|
|
45
|
+
description: 'Information contact',
|
|
46
|
+
identifier: 'information_contact'
|
|
47
|
+
},
|
|
48
|
+
'BJ' => {
|
|
49
|
+
description: 'Department or person responsible for processing purchase order',
|
|
50
|
+
identifier: 'dep_or_per_resp_for_proc_purchase_order'
|
|
51
|
+
},
|
|
52
|
+
'BO' => {
|
|
53
|
+
description: 'After business hour contact',
|
|
54
|
+
identifier: 'after_business_hour_contact'
|
|
55
|
+
},
|
|
56
|
+
'OC' => {
|
|
57
|
+
description: 'Order contact',
|
|
58
|
+
identifier: 'order_contact'
|
|
59
|
+
},
|
|
60
|
+
'PD' => {
|
|
61
|
+
description: 'Purchasing contact',
|
|
62
|
+
identifier: 'purchasing_contact'
|
|
63
|
+
},
|
|
64
|
+
'PM' => {
|
|
65
|
+
description: 'Product management contact',
|
|
66
|
+
identifier: 'product_management_contact'
|
|
67
|
+
},
|
|
68
|
+
'SR' => {
|
|
69
|
+
description: 'Sales representative or department',
|
|
70
|
+
identifier: 'sales_representative_or_department'
|
|
71
|
+
},
|
|
72
|
+
'QC' => {
|
|
73
|
+
description: 'Quality coordinator contact',
|
|
74
|
+
identifier: 'quality_coordinator_contact'
|
|
75
|
+
}
|
|
76
|
+
},
|
|
77
|
+
description: 'Contact function code',
|
|
78
|
+
required: true
|
|
79
|
+
)
|
|
80
|
+
contact_function_code.add(:contact_function_code, data)
|
|
81
|
+
|
|
82
|
+
structure << contact_function_code
|
|
83
|
+
#==============================================================================
|
|
84
|
+
# DEPARTMENT OR EMPLOYEE DETAILS
|
|
85
|
+
#==============================================================================
|
|
86
|
+
|
|
87
|
+
# TODO
|
|
88
|
+
|
|
89
|
+
Eancom.register_structure(tag: 'CTA', structure: structure)
|