Quintiq file version 2.0
|
#parent: #root
|
StaticMethod GetProcessQuantity (
|
Period_MP period,
|
Operations operations,
|
ProductInStockingPoint_MPs pisps,
|
Boolean isdependentdemand,
|
output String tooltip
|
) declarative remote as Real
|
{
|
Description: 'Return quantities of operations to pisps in a period or pisp to operations in a period'
|
TextBody:
|
[*
|
value := 0.0;
|
|
// Insert table tag for tooltip
|
// Routing step name
|
routingstep := select( operations, Elements.RoutingStep, rs, true );
|
tooltip := "<table>";
|
tooltip := tooltip + '<tr><td><b>Routing step: </b></td><td>'
|
+ routingstep.Name() + '</td></tr>';
|
|
// Routing name
|
tooltip := tooltip + '<tr><td><b>Routing: </b></td><td>'
|
+ routingstep.Routing().Name() + '</td></tr>';
|
|
// Period
|
tooltip := tooltip + '<tr><td><b>Period: </b></td><td>'
|
+ period.StartDate().Format( 'D-MM-Y' ) + ' until ' + period.EndDate().Format( 'D-MM-Y' ) + '</td></tr>';
|
|
// A separating line
|
tooltip := tooltip + '</table><hr>';
|
|
// Units and products headers
|
tooltip := tooltip + '<table><tr><td><b>Unit:</b></td><td><b>'
|
+ select( operations, Elements.OperationOutput, e, true ).ProductInStockingPoint_MP().Product_MP().Name() + ' quantity: </b></td></tr>';
|
|
if( isdependentdemand )
|
{
|
traverse( operations, Elements.PeriodTask_MP.DependentDemand, dd,
|
exists( pisps, Elements, e, e = dd.ProductInStockingPointInPeriodPlanningLeaf().ProductInStockingPoint_MP() )
|
and dd.Start() >= period.Start()
|
and dd.End() <= period.End() )
|
{
|
value := value + dd.Quantity();
|
tooltip := tooltip + '<tr><td>' + dd.PeriodTask_MP().Process_MP().Name() + '</td><td>'
|
+ dd.Quantity().AsQUILL() + '</td></tr>';
|
}
|
}
|
else
|
{
|
traverse( operations, Elements.PeriodTask_MP.NewSupply, ns,
|
exists( pisps, Elements, e, e = ns.ProductInStockingPointInPeriodPlanningLeaf().ProductInStockingPoint_MP() )
|
and ns.Start() >= period.Start()
|
and ns.End() <= period.End() )
|
{
|
value := value + ns.Quantity();
|
tooltip := tooltip + '<tr><td>' + ns.PeriodTask_MP().Process_MP().Name() + '</td><td>'
|
+ ns.Quantity().AsQUILL() + '</td></tr>';
|
}
|
}
|
|
// Sum for multi operation routing step
|
if( operations.Size() > 1 )
|
{
|
tooltip := tooltip + '<tr><td><b>All</td><td>' + value.AsQUILL() + '</td></tr></table>';
|
}
|
|
return value;
|
*]
|
}
|