eddy 0.8.4 → 0.9.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (106) hide show
  1. checksums.yaml +4 -4
  2. data/.rubocop.yml +4 -4
  3. data/CHANGELOG.md +18 -0
  4. data/Gemfile.lock +8 -8
  5. data/README.md +1 -1
  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/segments/generated/amt.rb +56 -0
  60. data/lib/definitions/segments/generated/bia.rb +107 -0
  61. data/lib/definitions/segments/generated/cur.rb +73 -0
  62. data/lib/definitions/segments/generated/dtm.rb +17 -0
  63. data/lib/definitions/segments/generated/fob.rb +73 -0
  64. data/lib/definitions/segments/generated/hl.rb +90 -0
  65. data/lib/definitions/segments/generated/itd.rb +158 -0
  66. data/lib/definitions/segments/generated/mtx.rb +56 -0
  67. data/lib/definitions/segments/generated/n2.rb +56 -0
  68. data/lib/definitions/segments/generated/n9.rb +56 -0
  69. data/lib/definitions/segments/generated/per.rb +158 -0
  70. data/lib/definitions/segments/generated/po1.rb +102 -0
  71. data/lib/definitions/segments/generated/po3.rb +158 -0
  72. data/lib/definitions/segments/generated/qty.rb +73 -0
  73. data/lib/definitions/segments/generated/ref.rb +17 -0
  74. data/lib/definitions/segments/generated/sac.rb +68 -0
  75. data/lib/definitions/segments/generated/sch.rb +56 -0
  76. data/lib/definitions/segments/generated/sdq.rb +73 -0
  77. data/lib/definitions/segments/generated/txi.rb +90 -0
  78. data/lib/definitions/transaction_sets/manual/846/846.rb +122 -0
  79. data/lib/definitions/transaction_sets/manual/846/loops/lin.rb +155 -0
  80. data/lib/definitions/transaction_sets/manual/846/loops/n1.rb +107 -0
  81. data/lib/definitions/transaction_sets/manual/846/loops/qty.rb +75 -0
  82. data/lib/definitions/transaction_sets/manual/846/loops/sch.rb +59 -0
  83. data/lib/definitions/transaction_sets/manual/846/loops/sln.rb +59 -0
  84. data/lib/definitions/transaction_sets/manual/850/850.rb +108 -1
  85. data/lib/definitions/transaction_sets/manual/850/loops/ctp.rb +47 -0
  86. data/lib/definitions/transaction_sets/manual/850/loops/n1.rb +31 -10
  87. data/lib/definitions/transaction_sets/manual/850/loops/n9.rb +59 -0
  88. data/lib/definitions/transaction_sets/manual/850/loops/pid.rb +47 -0
  89. data/lib/definitions/transaction_sets/manual/850/loops/po1.rb +78 -10
  90. data/lib/definitions/transaction_sets/manual/850/loops/sac.rb +47 -0
  91. data/lib/eddy.rb +49 -3
  92. data/lib/eddy/build/transaction_set_builder.rb +1 -1
  93. data/lib/eddy/config.rb +0 -21
  94. data/lib/eddy/data.rb +0 -29
  95. data/lib/eddy/data/persistence/base.rb +7 -0
  96. data/lib/eddy/data/persistence/memory.rb +14 -4
  97. data/lib/eddy/errors.rb +13 -9
  98. data/lib/eddy/models/element/composite.rb +2 -0
  99. data/lib/eddy/models/element/id.rb +1 -1
  100. data/lib/eddy/models/element/r.rb +1 -0
  101. data/lib/eddy/parse.rb +4 -56
  102. data/lib/eddy/parse/interchange.rb +58 -0
  103. data/lib/eddy/summary/loop.rb +1 -1
  104. data/lib/eddy/summary/segment.rb +2 -1
  105. data/lib/eddy/version.rb +1 -1
  106. metadata +78 -5
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA256:
3
- metadata.gz: 1a32819aa478f947399641cb8457f5a06e4a81d86f89881567da6857df815f5b
4
- data.tar.gz: 1e46e09711b93f043e0374e9d651f2f7498f18e87f13aaefd0e022be920668b6
3
+ metadata.gz: 8bc43221c915e9c746ad1adef91ee612a9a86e37529622960274bc052333fad1
4
+ data.tar.gz: 7520602c3ef65f24b40a3fd7ea007f41c568cb07a304e038bab4f9617cc7bc41
5
5
  SHA512:
6
- metadata.gz: 6f8f16313bca74dcd860787f2e94d349c1609e450d7efe0b6ebca76e4fa779d283477f282415f45f94fd55c304e2023ae554cdc0e8e371672466df82a95f0a7b
7
- data.tar.gz: 78e1996a735712303f6605124c002612d94f31e546fa5ee77f11510f4da3b41733cf313cdc9791e9737ef2119907316b8b4b58ac8c8c9ddefb811c605f3a2fd7
6
+ metadata.gz: 38311350797183f796764ee49f24c75212c45a88711833b445e110c40eb1206c46ffcd5594acd60051166930bab08eba726ed95ba7cfc9f9a68d9c7ea254e34a
7
+ data.tar.gz: 0d7d474a09a527c424e4db1fe3809593413648c869b9d1328cfe5d10f018b92bfdb49a839d5a446fb41fa6d4c2e753fe4ee3455db4f6d31eca191bb16ee21925
@@ -83,6 +83,10 @@ Naming/HeredocDelimiterNaming:
83
83
  Style/FormatString:
84
84
  EnforcedStyle: sprintf
85
85
 
86
+ Style/FormatStringToken:
87
+ # EnforcedStyle: template
88
+ Enabled: false
89
+
86
90
  # ==============================================================================
87
91
  # Numbers
88
92
  # ==============================================================================
@@ -107,10 +111,6 @@ Style/DefWithParentheses:
107
111
  Style/MethodCallWithoutArgsParentheses:
108
112
  Enabled: false
109
113
 
110
- # Only use braces if the function expects a hash argument. [different in Ruby 2.7+](https://blog.saeloun.com/2019/10/07/ruby-2-7-keyword-arguments-redesign.html)
111
- Style/BracesAroundHashParameters:
112
- Enabled: false
113
-
114
114
  Style/WordArray:
115
115
  EnforcedStyle: brackets
116
116
 
@@ -13,6 +13,24 @@ and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0
13
13
 
14
14
  ## master (unreleased)
15
15
 
16
+ ## 0.9.0 (2020-07-03)
17
+
18
+ ### Added
19
+
20
+ - New Transaction Set definition:
21
+ - 846
22
+ - New Segment definitions:
23
+ - BIA
24
+ - CUR
25
+ - PER
26
+ - QTY
27
+ - SCH
28
+ - SDQ
29
+
30
+ ### Fixed
31
+
32
+ - Updated method call in `Eddy::Build::TransactionSetBuilder#build_loops`.
33
+
16
34
  ## 0.8.4 (2020-01-15)
17
35
 
18
36
  ### Changed
@@ -1,7 +1,7 @@
1
1
  PATH
2
2
  remote: .
3
3
  specs:
4
- eddy (0.8.4)
4
+ eddy (0.9.0)
5
5
  ginny (~> 0.6.3)
6
6
  json_schemer (~> 0.2.8)
7
7
  thor (~> 1.0.1)
@@ -21,14 +21,14 @@ GEM
21
21
  tins (~> 1.6)
22
22
  docile (1.3.2)
23
23
  dry-inflector (0.2.0)
24
- ecma-re-validator (0.2.0)
24
+ ecma-re-validator (0.2.1)
25
25
  regexp_parser (~> 1.2)
26
26
  ginny (0.6.3)
27
27
  coolkit (~> 0.2.2)
28
28
  dry-inflector (~> 0.2.0)
29
- hana (1.3.5)
29
+ hana (1.3.6)
30
30
  json (2.3.0)
31
- json_schemer (0.2.8)
31
+ json_schemer (0.2.11)
32
32
  ecma-re-validator (~> 0.2)
33
33
  hana (~> 1.3)
34
34
  regexp_parser (~> 1.5)
@@ -45,8 +45,8 @@ GEM
45
45
  pry (0.12.2)
46
46
  coderay (~> 1.1.0)
47
47
  method_source (~> 0.9.0)
48
- rake (10.5.0)
49
- regexp_parser (1.6.0)
48
+ rake (13.0.1)
49
+ regexp_parser (1.7.1)
50
50
  ruby-progressbar (1.10.1)
51
51
  simplecov (0.16.1)
52
52
  docile (~> 1.1)
@@ -70,8 +70,8 @@ DEPENDENCIES
70
70
  minitest-focus (~> 1.1)
71
71
  minitest-reporters (~> 1.4)
72
72
  pry (~> 0.12.2)
73
- rake (~> 10.0)
73
+ rake (~> 13.0)
74
74
  simplecov (~> 0.16)
75
75
 
76
76
  BUNDLED WITH
77
- 2.0.2
77
+ 2.1.4
data/README.md CHANGED
@@ -10,7 +10,7 @@
10
10
  [travis-ci]: https://travis-ci.org/tcd/eddy
11
11
  [coveralls]: https://coveralls.io/github/tcd/eddy?branch=master
12
12
  [license]: https://github.com/tcd/eddy/blob/master/LICENSE.txt
13
- [docs]: https://www.rubydoc.info/gems/eddy/0.8.4
13
+ [docs]: https://www.rubydoc.info/gems/eddy/0.9.0
14
14
 
15
15
  ## Installation
16
16
 
@@ -0,0 +1,8 @@
1
+ id definition
2
+ 1 Ship Date
3
+ 2 Delivery Date
4
+ 3 Invoice Date
5
+ 4 Specified Date
6
+ 5 Invoice Receipt Date
7
+ 6 Anticipated Delivery Date 7 Effective Date
8
+ 7 Effective Date
@@ -0,0 +1,7 @@
1
+ ---
2
+ id: AMT
3
+ name: Monetary Amount Information
4
+ purpose: To indicate the total monetary amount.
5
+ elements:
6
+ - { ref: AMT01, id: '522', req: M }
7
+ - { ref: AMT02, id: '782', req: M }
@@ -0,0 +1,10 @@
1
+ ---
2
+ id: BIA
3
+ name: Beginning Segment for Inventory Inquiry/Advice
4
+ purpose: To indicate the beginning of an Inventory Inquiry/Advice Transaction Set
5
+ elements:
6
+ - { ref: BIA01, id: '353', req: M }
7
+ - { ref: BIA02, id: '755', req: M }
8
+ - { ref: BIA03, id: '127', req: M }
9
+ - { ref: BIA04, id: '373', req: M }
10
+ - { ref: BIA05, id: '337', req: O }
@@ -0,0 +1,8 @@
1
+ ---
2
+ id: CUR
3
+ name: Currency
4
+ purpose: To specify the currency (dollars, pounds, francs, etc.) used in a transaction
5
+ elements:
6
+ - { ref: CUR01, id: '98', req: M }
7
+ - { ref: CUR02, id: '100', req: M }
8
+ - { ref: CUR03, id: '280', req: O }
@@ -5,3 +5,4 @@ purpose: To specify pertinent dates and times.
5
5
  elements:
6
6
  - { ref: DTM01, id: '374', req: M }
7
7
  - { ref: DTM02, id: '373', req: X }
8
+ - { ref: DTM03, id: '337', req: X }
@@ -0,0 +1,8 @@
1
+ ---
2
+ id: FOB
3
+ name: F.O.B. Related Instructions
4
+ purpose: To specify transportation instructions relating to shipment.
5
+ elements:
6
+ - { ref: FOB01, id: '146', req: M }
7
+ - { ref: FOB02, id: '309', req: X }
8
+ - { ref: FOB03, id: '352', req: O }
@@ -0,0 +1,13 @@
1
+ ---
2
+ id: ITD
3
+ name: Terms of Sale/Deferred Terms of Sale
4
+ purpose: To specify terms of sale.
5
+ elements:
6
+ - { ref: ITD01, id: '336', req: O }
7
+ - { ref: ITD02, id: '333', req: O }
8
+ - { ref: ITD03, id: '338', req: O }
9
+ - { ref: ITD04, id: '370', req: X }
10
+ - { ref: ITD05, id: '351', req: X }
11
+ - { ref: ITD06, id: '446', req: O }
12
+ - { ref: ITD07, id: '386', req: O }
13
+ - { ref: ITD12, id: '352', req: O }
@@ -0,0 +1,7 @@
1
+ ---
2
+ id: MTX
3
+ name: Text
4
+ purpose: To specify textual data.
5
+ elements:
6
+ - { ref: MTX01, id: '363', req: O }
7
+ - { ref: MTX02, id: '1551', req: X }
@@ -0,0 +1,7 @@
1
+ ---
2
+ id: N9
3
+ name: Extended Reference Information
4
+ purpose: To transmit identifying information as specified by the Reference Identification Qualifier.
5
+ elements:
6
+ - { ref: N901, id: '128', req: M }
7
+ - { ref: N903, id: '369', req: X }
@@ -0,0 +1,13 @@
1
+ ---
2
+ id: PER
3
+ name: Administrative Communications Contact
4
+ purpose: To identify a person or office to whom administrative communications should be directed
5
+ elements:
6
+ - { ref: PER01, id: '366', req: M }
7
+ - { ref: PER02, id: '93', req: O }
8
+ - { ref: PER03, id: '365', req: X }
9
+ - { ref: PER04, id: '364', req: X }
10
+ - { ref: PER05, id: '365', req: X }
11
+ - { ref: PER06, id: '364', req: X }
12
+ - { ref: PER07, id: '365', req: X }
13
+ - { ref: PER08, id: '364', req: X }
@@ -12,3 +12,9 @@ elements:
12
12
  - { ref: PO107, id: '234', req: X }
13
13
  - { ref: PO108, id: '235', req: X }
14
14
  - { ref: PO109, id: '234', req: X }
15
+ - { ref: PO110, id: '235', req: X }
16
+ - { ref: PO111, id: '234', req: X }
17
+ - { ref: PO112, id: '235', req: X }
18
+ - { ref: PO113, id: '234', req: X }
19
+ - { ref: PO114, id: '235', req: X }
20
+ - { ref: PO115, id: '234', req: X }
@@ -0,0 +1,13 @@
1
+ ---
2
+ id: PO3
3
+ name: Additional Item Detail
4
+ purpose: To specify additional item-related data involving variations in normal price/quantity structure.
5
+ elements:
6
+ - { ref: PO301, id: '371', req: M }
7
+ - { ref: PO302, id: '373', req: O }
8
+ - { ref: PO303, id: '236', req: X }
9
+ - { ref: PO304, id: '212', req: O }
10
+ - { ref: PO305, id: '639', req: X }
11
+ - { ref: PO306, id: '380', req: M }
12
+ - { ref: PO307, id: '355', req: M }
13
+ - { ref: PO308, id: '352', req: O }
@@ -0,0 +1,10 @@
1
+ ---
2
+ id: QTY
3
+ name: Quantity Information
4
+ purpose: To specify quantity information
5
+ elements:
6
+ - { ref: QTY01, id: '673', req: M }
7
+ - { ref: QTY02, id: '380', req: X }
8
+ - { ref: QTY03, id: '355', req: M }
9
+ # - { ref: QTY03, id: 'C001', req: O }
10
+ # - { ref: QTY03-01, id: '355', req: M }
@@ -5,3 +5,4 @@ purpose: To specify identifying information.
5
5
  elements:
6
6
  - { ref: REF01, id: '128', req: M }
7
7
  - { ref: REF02, id: '127', req: X }
8
+ - { ref: REF03, id: '352', req: X }
@@ -8,6 +8,10 @@ elements:
8
8
  - { ref: SAC03, id: '559', req: X }
9
9
  - { ref: SAC04, id: '1301', req: X }
10
10
  - { ref: SAC05, id: '610', req: O }
11
+ - { ref: SAC06, id: '378', req: X }
12
+ - { ref: SAC07, id: '322', req: X }
13
+ - { ref: SAC12, id: '311', req: O }
14
+ - { ref: SAC15, id: '352', req: X }
11
15
  notes: |
12
16
  1.R0203 - At least one of SAC02 or SAC03 is required.
13
17
  2.P0304 - If either SAC03 or SAC04 is present, then the other is required.
@@ -0,0 +1,7 @@
1
+ ---
2
+ id: SCH
3
+ name: Line Item Schedule
4
+ purpose: To specify the data for scheduling a specific line-item
5
+ elements:
6
+ - { ref: SCH01, id: '380', req: M }
7
+ - { ref: SCH03, id: '98', req: O }
@@ -0,0 +1,8 @@
1
+ ---
2
+ id: SDQ
3
+ name: Destination Quantity
4
+ purpose: To specify destination and quantity detail
5
+ elements:
6
+ - { ref: SDQ01, id: '355', req: M }
7
+ - { ref: SDQ02, id: '66', req: O }
8
+ - { ref: SDQ23, id: '310', req: O }
@@ -0,0 +1,9 @@
1
+ ---
2
+ id: TXI
3
+ name: Tax Information
4
+ purpose: To specify tax information.
5
+ elements:
6
+ - { ref: ACK01, id: '963', req: M }
7
+ - { ref: ACK02, id: '782', req: X }
8
+ - { ref: ACK03, id: '954', req: X }
9
+ - { ref: ACK09, id: '325', req: O }
@@ -0,0 +1,93 @@
1
+ ---
2
+ id: 810
3
+ functional_group: IN
4
+ name: Invoice
5
+ components:
6
+
7
+ - id: BIG
8
+ req: M
9
+ element_count: 5
10
+
11
+ - id: REF
12
+ req: O
13
+ element_count: 2
14
+
15
+ - loop_id: N1
16
+ repeat: 200
17
+ components:
18
+ - id: N1
19
+ req: O
20
+ max_use: 1
21
+ element_count: 3
22
+ elements:
23
+ - { ref: N101, id: '98', req: M }
24
+ - { ref: N103, id: '66', req: X }
25
+ - { ref: N104, id: '67', req: X }
26
+ - id: N3
27
+ req: O
28
+ max_use: 2
29
+ element_count: 2
30
+ elements:
31
+ - { ref: N301, id: '166', req: M }
32
+ - { ref: N302, id: '166', req: O }
33
+ - id: N4
34
+ req: O
35
+ max_use: 2
36
+ element_count: 3
37
+ elements:
38
+ - { ref: N401, id: '19', req: O }
39
+ - { ref: N402, id: '156', req: O }
40
+ - { ref: N403, id: '116', req: O }
41
+
42
+ - id: DTM
43
+ req: O
44
+ element_count: 2
45
+ elements:
46
+ - { ref: DTM01, id: '374', req: M }
47
+ - { ref: DTM02, id: '373', req: X }
48
+
49
+ - loop_id: IT1
50
+ repeat: 200000
51
+ components:
52
+ - id: IT1
53
+ req: O
54
+ element_count: 14
55
+ - id: CTP
56
+ req: O
57
+ element_count: 6
58
+ - loop_id: PID
59
+ repeat: 1000
60
+ req: M
61
+ components:
62
+ - id: PID
63
+ req: O
64
+ element_count: 2
65
+ - loop_id: SAC
66
+ repeat: 25
67
+ req: O
68
+ components:
69
+ - id: SAC
70
+ req: O
71
+ element_count: 3
72
+
73
+ - id: TDS
74
+ req: M
75
+ element_count: 1
76
+
77
+ - id: CAD
78
+ req: O
79
+ element_count: 1
80
+
81
+ - loop_id: SAC
82
+ repeat: 25
83
+ req: O
84
+ components:
85
+ - id: SAC
86
+ req: O
87
+ element_count: 3
88
+
89
+ - id: CTT
90
+ req: O
91
+ element_count: 1
92
+ elements:
93
+ - { ref: CTT01, id: '354', req: M }
@@ -0,0 +1,57 @@
1
+ ---
2
+ id: 846
3
+ functional_group: IB
4
+ name: Inventory Inquiry/Advice
5
+ components:
6
+ - { id: BIA, req: M, max_use: 1 }
7
+ - { id: CUR, req: O, max_use: 1 }
8
+ - { id: DTM, req: O, max_use: 10 }
9
+ - { id: REF, req: O, max_use: 12 }
10
+ - { id: PER, req: O, max_use: 3 }
11
+ - loop_id: N1
12
+ repeat: 5
13
+ components:
14
+ - { id: N1, req: O, max_use: 1 }
15
+ - { id: N2, req: O, max_use: 2 }
16
+ - { id: N3, req: O, max_use: 2 }
17
+ - { id: N4, req: O, max_use: 1 }
18
+ - { id: REF, req: O, max_use: 12 }
19
+ - { id: PER, req: O, max_use: 3 }
20
+ - loop_id: LIN
21
+ repeat: 10000
22
+ components:
23
+ - { id: LIN, req: M, max_use: 1 }
24
+ - { id: PID, req: O, max_use: 200 }
25
+ - { id: DTM, req: O, max_use: 10 }
26
+ - { id: CTP, req: O, max_use: 25 }
27
+ - { id: REF, req: O, usage: must_use }
28
+ - { id: SDQ, req: O, max_use: 500 }
29
+ - loop_id: SLN
30
+ repeat: 1000
31
+ components:
32
+ - { id: SLN, req: O, max_use: 1 }
33
+ - { id: PID, req: O, max_use: 200 }
34
+ - loop_id: QTY
35
+ repeat: 99
36
+ components:
37
+ - { id: QTY, req: O, max_use: 1 }
38
+ - { id: DTM, req: O, max_use: 10 }
39
+ - loop_id: SCH
40
+ repeat: 25
41
+ components:
42
+ - { id: QTY, req: O, max_use: 1 }
43
+ - { id: DTM, req: O, max_use: 10 }
44
+ - loop_id: N1
45
+ repeat: 200
46
+ components:
47
+ - { id: N1, req: O, max_use: 1 }
48
+ - { id: N2, req: O, max_use: 2 }
49
+ - { id: N3, req: O, max_use: 2 }
50
+ - { id: N4, req: O, max_use: 1 }
51
+ - { id: REF, req: O, max_use: 12 }
52
+ - { id: PER, req: O, max_use: 3 }
53
+ - id: CTT
54
+ req: O
55
+ elements:
56
+ - { ref: CTT01, id: '354', req: M }
57
+ - { ref: CTT02, id: '347', req: O }