Quintiq file version 2.0
|
#parent: #root
|
Function CalcShelfLifeEndAgeAndQuantityVectorAsBinaryValue
|
{
|
TextBody:
|
[*
|
// Get the shelf life supply vectors
|
quantityvector := RealVector::Construct( this.ShelfLifePlannedEndQuantityVectorAsBinaryValue() );
|
agevector := RealVector::Construct( this.ShelfLifePlannedEndAgeVectorAsBinaryValue() );
|
pispippl := this.ProductInStockingPointInPeriodPlanningLeaf();
|
|
// Check if the product has shelf life or maturation
|
// Also check if this PISPIP has actuals, if it has, inventory end will use the value from actuals instead
|
if( guard( pispippl.ProductInStockingPoint_MP().Product_MP().HasShelfLifeOrMaturation(),
|
false )
|
and pispippl.Period_MP().IsHistorical()
|
and pispippl.GetHasActual() )
|
{
|
quantityvector.Resize( 0 );
|
agevector.Resize( 0 );
|
|
traverse( pispippl, ActualProductInStockingPointInPeriod, actualpispip,
|
actualpispip.ActualInventoryLevelEnd() > 0 )
|
{
|
agevector.Append( actualpispip.Age() );
|
quantityvector.Append( actualpispip.ActualInventoryLevelEnd() );
|
}
|
|
ShelfLife::MergeVectorAccordingToAgeAndExpiration( quantityvector, agevector, pispippl, pispippl.End() );
|
}
|
|
this.ShelfLifeEndAgeVectorAsBinaryValue( agevector.AsBinaryValue() );
|
this.ShelfLifeEndQuantityVectorAsBinaryValue( quantityvector.AsBinaryValue() );
|
*]
|
}
|