Quintiq file version 2.0
|
#parent: #root
|
Function CalcShelfLifeAgeQuantityVectorAsBinaryValue
|
{
|
TextBody:
|
[*
|
pispippl := this.ProductInStockingPointInPeriodPlanningLeaf();
|
product := pispippl.ProductInStockingPoint_MP().Product_MP();
|
if( product.HasShelfLifeOrMaturation() and not isnull( pispippl.ShelfLife() ) )
|
{
|
quantityvector := RealVector::Construct();
|
agevector := RealVector::Construct();
|
shelflifefulfilled := 0.0;
|
|
shelflife := pispippl.ShelfLife();
|
|
// Retrieve the vectors from PISPIP
|
source_quantityvector := RealVector::Construct( shelflife.ShelfLifeDDQuantityVectorAsBinaryValue() );
|
source_agevector := RealVector::Construct( shelflife.ShelfLifeDDAgeVectorAsBinaryValue() );
|
source_indexvector := NumberVector::Construct( shelflife.ShelfLifeDDIndexVectorAsBinaryValue() );
|
|
// Get this DependentDemand's index within the sorted set
|
sorted_dds := ProductInStockingPointInPeriod::GetSortedDependentDemands( pispippl );
|
current_index := sorted_dds.Find( this );
|
|
// Get the vectors for this DependentDemand
|
isforcurrentvector := source_indexvector.Equals( current_index );
|
dd_quantityvector := source_quantityvector.GetSelection( isforcurrentvector );
|
dd_agevector := source_agevector.GetSelection( isforcurrentvector );
|
|
quantityvector.Append( dd_quantityvector );
|
agevector.Append( dd_agevector );
|
|
// Calculate the shelf life fulfilled quantity for dependent demand both from trip and routing
|
shelflifefulfilled := quantityvector.Sum();
|
|
this.ShelfLifeQuantityVectorAsBinaryValue( quantityvector.AsBinaryValue() );
|
this.ShelfLifeAgeVectorAsBinaryValue( agevector.AsBinaryValue() );
|
this.ShelfLifeFulfilledQuantity( shelflifefulfilled );
|
}
|
*]
|
}
|