Quintiq file version 2.0
|
#parent: #root
|
Method LinkPISPs (
|
PISPNodeInRoutings pispnodeinroutings,
|
Boolean asinput
|
)
|
{
|
Description: 'Add pisp to all the operations in this routing step as operation input.'
|
TextBody:
|
[*
|
// Traverse through each operation in the routing step to link the PISP
|
|
traverse( pispnodeinroutings, Elements, pispnodeinrouting )
|
{
|
pispnodes := construct( PISPNodeInRoutings );
|
pispnodes.Add( pispnodeinrouting );
|
pisp := pispnodeinrouting.ProductInStockingPoint_MP();
|
|
/*
|
Link/unlink all pisps to the operations when either none or all
|
of the pisps are/are not linked to this operation.
|
If only some operations are linked, link the PISPs which are not
|
linked to the operations yet.
|
*/
|
|
unlinkedoperations := selectset( this, Operation, op,
|
isnull( op.GetOperationBOM( pisp.ProductID(), pisp.StockingPointID(), true ) ) );
|
|
islinkedtoalloperations := unlinkedoperations.Size() = 0 // All operations are linked
|
or unlinkedoperations.Size() = this.Operation( relsize ); // All operations are unlinked
|
|
// If all operations are/are not entirely linked to this PISP, select all operations within the routing step
|
if( islinkedtoalloperations )
|
{
|
unlinkedoperations := selectset( this, Operation, op, true );
|
}
|
|
traverse( unlinkedoperations, Elements, op )
|
{
|
op.LinkPISPs( pispnodes, true );
|
}
|
}
|
*]
|
}
|