Quintiq file version 2.0
|
#parent: #root
|
StaticMethod CanEditCapacities (
|
UnitPeriods unitperiods,
|
output String feedback_o
|
) declarative remote as Boolean
|
{
|
Description: 'True if batch editing capacity is allowed for all given UnitPeriods'
|
TextBody:
|
[*
|
// Check if the selected set of UnitPeriods can be batch edited
|
feedback_o := ''
|
|
// Check if there's any Unit of the selected set of UnitPeriods has infinite capacity type
|
if( exists( unitperiods, Elements.Unit, u, u.HasCapacityTypeInfinite() ) )
|
{
|
feedback_o := Translations::MP_UnitPeriod_CanEditCapacities_IsInfinite();
|
}
|
else
|
{
|
// Check if the selected set of UnitPeriods all belong to the same subclass
|
issamesubclass := forall( unitperiods, Elements, up, up.istype( UnitPeriodTime ) )
|
or forall( unitperiods, Elements, up, up.istype( UnitPeriodQuantity ) )
|
or forall( unitperiods, Elements, up, up.istype( UnitPeriodTransportQuantity ) )
|
or forall( unitperiods, Elements, up, up.istype( UnitPeriodTransportTime ) );
|
|
// If the selected set of UnitPeriods do not belong to the same subclass
|
if( not issamesubclass )
|
{
|
// Check if the selected set of UnitPeriods is either type of UnitPeriodTimeAggregation or UnitPeriodQuantityAggregation
|
if( exists( unitperiods, Elements, up, up.istype( UnitPeriodTimeAggregation )
|
or up.istype( UnitPeriodQuantityAggregation ) ) )
|
{
|
feedback_o := Translations::MP_UnitPeriod_CanEditCapacities_IsAggregatedCapacitity();
|
}
|
else
|
{
|
feedback_o := Translations::MP_UnitPeriod_CanEditCapacities_IsDifferentSubclass();
|
}
|
}
|
}
|
|
return feedback_o = '';
|
*]
|
}
|