Quintiq file version 2.0
|
#parent: #root
|
Method SetTypePartial (
|
Real capacity_i
|
) as LibCal_Event
|
{
|
Description:
|
[*
|
Set the type of the event to 'Partial', if allowed.
|
Otherwise set it to 'Available'.
|
*]
|
TextBody:
|
[*
|
// Use a FeedbackObject to collect the validation feedback.
|
feedback := LibCal_Validate::FeedbackObject();
|
|
// Validate if using partial capacity is allowed.
|
// Is only a warning, because if it is not allowed the type will be changed.
|
moreInfo := this.GetEventInfo();
|
LibCal_Validate::RegisterWarning( LibCal_Validate::Event_UsePartialCapacity( LibCal_Event::TYPE_PARTIAL(), capacity_i ), moreInfo );
|
|
// Type can only be set to Partial if partial capacity is enabled.
|
if( LibCal_Event::USE_PARTIAL_CAPACITY() )
|
{
|
//isChanged := this.Type() <> LibCal_Event::TYPE_PARTIAL()
|
// or this.PartialCapacity() <> capacity_i;
|
// this.IsChanged( isChanged ); Change of Type or Capacity should NOT trigger re-generation of occurrences.
|
|
this.Type( LibCal_Event::TYPE_PARTIAL() );
|
|
// Validate the capacity.
|
moreInfo := moreInfo + ", PartialCapacity = " + LibCal_Util::RealToString( capacity_i );
|
LibCal_Validate::RegisterError( LibCal_Validate::Event_PartialCapacity( capacity_i ), moreInfo );
|
}
|
else
|
{
|
// Force the type to be Available otherwise, unless the capacity is 0.0;
|
// In that case set it to Unavailable.
|
if( capacity_i = 0.0 )
|
{
|
this.SetTypeUnavailable();
|
}
|
else
|
{
|
this.SetTypeAvailable();
|
}
|
}
|
|
// Process the feedback that has been registered by the validation (if any).
|
LibCal_Util::ProcessFeedbackObject( feedback );
|
|
// The below is only executed when no validation errors were encountered.
|
// Set the ParticalCapacity, also when it is not used.
|
this.PartialCapacity( capacity_i );
|
|
// Make the API fluent.
|
return this;
|
*]
|
}
|