Quintiq file version 2.0
|
#parent: #root
|
Method UpdateCommitLogic (
|
Boolean isnew
|
)
|
{
|
Description: 'Logic used in onCommit of Unit.'
|
TextBody:
|
[*
|
// Commit logic
|
isvisible := true;
|
textcolor := 'Black';
|
namedisplaybehavior := '';
|
|
// Update unit
|
this.Update( this.ID(), this.Name(), this.Parent(),
|
this.CapacityType(),
|
this.Group(), this.UnitOfMeasure_MP(), this.Currency_MP(),
|
this.StartDate(), this.EndDate(), this.CampaignTypeDuration(),
|
this.IsPlannedInfinite(),
|
this.MinimumQuantity(), this.HasMaximumQuantity(), this.MaximumQuantity(), this.LotSize(),
|
this.IconName(),
|
this.QuantityToProcess(),
|
this.GISCountryCode(), this.GISCity(), this.GISPostalCode(),
|
this.Notes(),
|
this.HasCapacitySmoothing(),
|
this.IsSmoothCapacityOverAllPeriods(),
|
this.UserCapacitySmoothingLength(),
|
this.CapacitySmoothingPercentageDelta(),
|
this.IsOverlapCapacitySmoothing(),
|
this.IsIncludedInSupplySpecification(),
|
this.IsSupplier(),
|
this.HasUserFrozenFutureDuration(), this.UserFrozenFutureDuration(),
|
this.UseShiftOptimization(),
|
false /*isfromdb*/ );
|
|
// Create stocking point after update
|
if( isnew )
|
{
|
// SynchronizeAfterCreation should have created a default unit node, update it
|
view := select( this.MacroPlan(), ViewBase.astype( SupplyChainView ), scv, scv.User() = QuintiqUser::CurrentUser().ShortName() );
|
|
// Reuse the logic from OnCreate
|
this.SynchronizeAfterCreation();
|
|
// Create default stocking points
|
this.CreateDefaultStockingPoint( view );
|
|
// Unit node is created in SynchronizeAfterCreation, update unit node
|
unitnode := select( this, UnitNode, n, n.SupplyChainView() = view );
|
if( not isnull( unitnode ) )
|
{
|
unitnode.Update( this.DefaultGridX(), this.DefaultGridY(), isvisible, namedisplaybehavior, textcolor, '' );
|
}
|
}
|
|
// ---------------------- Quick fix ------------------------
|
// Please remove after the proper fix #16515
|
// The method in designer should be updated, setting relations/attribute will only done in one place.
|
// create new unit period
|
if( this.SynchronizeUnitPeriod() )
|
{
|
this.DeleteOldPeriodCapacity();
|
this.CreateUnitPeriods();
|
this.UnitAvailability( relflush );
|
this.UnitCapacity( relflush );
|
this.TransportAvailability( relflush );
|
this.TransportCapacity( relflush );
|
}
|
// ----------------------------------------------------------
|
|
this.SetAllParent();
|
*]
|
}
|