Quintiq file version 2.0
|
#parent: #root
|
Method CalculateDependentDemandSystemFulfilledQuantity (
|
output Real totalremaining
|
) declarative
|
{
|
Description: 'Greedy fufill the dependent demands'
|
TextBody:
|
[*
|
dependentdemands := selectsortedset( this, DependentDemand, d,
|
true,
|
d.Quantity() );
|
|
hasshelflifeormaturation :=( this.ProductInStockingPoint_MP().IsOptShelfLife() or this.ProductInStockingPoint_MP().IsOptMaturation() );
|
|
if( hasshelflifeormaturation )
|
{
|
dependentdemands := ProductInStockingPointInPeriod::GetSortedDependentDemands( this );
|
}
|
|
traverse( dependentdemands, Elements, dd )
|
{
|
unallocatedqty := dd.Quantity() - dd.OptimizerFulfilledQuantity();
|
unallocated := minvalue( totalremaining, unallocatedqty );
|
|
// If the product has shelf-life or maturation, use the ShelfLifeFulfilledQuantity instead
|
if( hasshelflifeormaturation )
|
{
|
unallocated := maxvalue( dd.ShelfLifeFulfilledQuantity() - dd.OptimizerFulfilledQuantity(), 0.0 );
|
}
|
|
dd.SystemFulfilledQuantity( unallocated );
|
totalremaining := totalremaining - unallocated;
|
}
|
*]
|
}
|