hongji.li
2023-11-07 192c736b8ac4b2d84cb823ac71f17e507948a5e8
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
Quintiq file version 2.0
#parent: #root
Method GetPISPIPs (
  Process_MP process,
  ProductInStockingPointInPeriod targetpispip,
  Boolean isupstream
) as structured[ProductInStockingPointInPeriod] id:Method_FormSupplyChainVisualization_GetPISPIPs
{
  #keys: '[134266.1.1803426731]'
  Body:
  [*
    // Get output or input PISPIPs of a process of a specific period
    // in alphabetical order
    pispips := null( ProductInStockingPointInPeriods );
    
    if( isupstream )
    {
      pispips := selectsortedset( process,
                                  ProcessInput.ProductInStockingPoint_MP.ProductInStockingPointInPeriod,
                                  pispip,
                                  pispip.Period_MP() = targetpispip.Period_MP()
                                  and ( not process.istype( LaneLeg )   
                                        or pispip.ProductInStockingPoint_MP().Product_MP() = targetpispip.ProductInStockingPoint_MP().Product_MP() ),
                                  pispip.ProductInStockingPoint_MP().IsSystem().AsQUILL()
                                  + pispip.ProductInStockingPoint_MP().Name() );
    }
    else
    {
      pispips := selectsortedset( process,
                                  ProcessOutput.ProductInStockingPoint_MP.ProductInStockingPointInPeriod,
                                  pispip,
                                  pispip.Period_MP() = targetpispip.Period_MP()
                                  and ( not process.istype( LaneLeg )   
                                        or pispip.ProductInStockingPoint_MP().Product_MP() = targetpispip.ProductInStockingPoint_MP().Product_MP() ),
                                  pispip.ProductInStockingPoint_MP().IsSystem().AsQUILL()
                                  + pispip.ProductInStockingPoint_MP().Name() );
    }
    
    return &pispips;
  *]
  ReturnsOwning: true
}