1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
| Quintiq file version 2.0
| #parent: #root
| Method DataMockupGenerateLanelegs (
| Unit unit,
| Number nroflanelegs,
| Number nrofproductsperlane
| )
| {
| TextBody:
| [*
| macroplan := this.MacroPlan();
|
| // Create lanes
| lane := Lane::Create( 'Lane',
| unit,
| 'Lane',
| true,
| Date::MinDate(),
| Date::MaxDate(),
| Duration::MinDuration(),
| Duration::MinDuration(),
| false
| );
|
| // Create ProductInLane for the number of passed in nrofproductsperlane
| for( i := 0; i < nrofproductsperlane; i++ )
| {
| // Find existing Product_MP
| product := Product_MP::FindProductTypeIndex( 'Product_' + [String] i );
| // Create ProductInLane
| ProductInLane::Create( product,
| lane,
| false,
| false
| );
| }
|
| // Create LaneLeg for the number of passed in nroflanelegs
| for( i := 0; i < nroflanelegs; i++ )
| {
| // Randomly select one origin StockingPoint_MP's ID
| originspid := minselect( macroplan, StockingPoint_MP, sp, true, Real::Random() ).ID();
| // Randomly select one destination StockingPoint_MP's ID, given that:
| // destination <> origin
| // and there's no existing laneleg in this lane that has the same origin and destination
| destinationspid := minselect( macroplan, StockingPoint_MP, sp,
| sp.ID() <> originspid
| and not exists( lane, LaneLeg, ll,
| ll.OriginStockingPointID() = originspid
| and ll.DestinationStockingPointID() = sp.ID() ),
| Real::Random() ).ID();
| // Create laneleg
| LaneLeg::Create( lane,
| originspid,
| destinationspid,
| false,
| Date::MinDate(),
| Date::MaxDate(),
| lane.ID() + ' - ' + originspid + ' to ' + destinationspid,
| true,
| Duration::Days( 1 ),
| false,
| Duration::MinDuration(),
| 0.0,
| 0.0, // CO2 emission for generated lanelegs
| false
| );
|
| }
|
| // Set StockingPointInLane after creating Lane & LaneLeg
| macroplan.InitializeLaneAfterImport();
| *]
| }
|
|