Quintiq file version 2.0
|
#parent: #root
|
Method Update (
|
String id,
|
String name,
|
Unit parent,
|
String capacitytype,
|
Group group,
|
UnitOfMeasure_MP unitofmeasure,
|
Currency_MP currency,
|
Date startdate,
|
Date enddate,
|
Duration campaigntypeduration,
|
Boolean isplannedinfinite,
|
Real minimumquantity,
|
Boolean hasmaximumquantity,
|
Real maximumquantity,
|
Real lotsize,
|
String usericonname,
|
String quantitytoprocess,
|
String giscountrycode,
|
String giscity,
|
String gispostalcode,
|
String notes,
|
Boolean hascapacitysmoothing,
|
Boolean issmoothcapacityoverallperiods,
|
Number usercapacitysmoothinglength,
|
Real capacitysmoothingpercentagedelta,
|
Boolean isoverlapcapacitysmoothing,
|
Boolean isincludedinsupplyspec,
|
Boolean issupplier,
|
Boolean hasuserfrozenfutureduration,
|
Duration userfrozenfutureduration,
|
Boolean useshiftoptimization,
|
Boolean isfromdb
|
)
|
{
|
Description: 'Update unit'
|
TextBody:
|
[*
|
// Update Unit
|
oldcapacitytype := this.CapacityType();
|
hasnewparent := this.ParentUnitID() <> guard( parent.ID(), '' );
|
isroot := isnull( parent );
|
|
this.UpdateTypeIndex( id );
|
|
this.UnitOfMeasureName( unitofmeasure.Name() );
|
this.CurrencyID( currency.ID() );
|
this.Name( name );
|
this.CapacityType( capacitytype );
|
this.StartDate( startdate );
|
this.EndDate( enddate );
|
this.CampaignTypeDuration( campaigntypeduration );
|
this.AddToGroup( group );
|
|
this.IsPlannedInfinite( isplannedinfinite );
|
this.MinimumQuantity( minimumquantity );
|
this.HasMaximumQuantity( hasmaximumquantity );
|
this.MaximumQuantity( maximumquantity );
|
this.LotSize( lotsize );
|
this.QuantityToProcess( quantitytoprocess );
|
this.GISCountryCode( giscountrycode );
|
this.GISCity( giscity )
|
this.GISPostalCode( gispostalcode );
|
this.Notes( notes );
|
this.HasCapacitySmoothing( hascapacitysmoothing );
|
this.IsSmoothCapacityOverAllPeriods( issmoothcapacityoverallperiods );
|
this.UserCapacitySmoothingLength( usercapacitysmoothinglength );
|
this.CapacitySmoothingPercentageDelta( capacitysmoothingpercentagedelta );
|
this.IsOverlapCapacitySmoothing( isoverlapcapacitysmoothing );
|
this.IsIncludedInSupplySpecification( isincludedinsupplyspec );
|
this.IsSupplier( issupplier );
|
|
this.HasUserFrozenFutureDuration( hasuserfrozenfutureduration );
|
this.UserFrozenFutureDuration( userfrozenfutureduration );
|
|
this.UseShiftOptimization( useshiftoptimization );
|
|
this.IsManuallyConfigured( not isfromdb );
|
|
this.UpdateIcon( usericonname );
|
|
//Update the parent relations
|
if( hasnewparent )
|
{
|
this.AssignParent( parent );
|
}
|
else if( isroot )
|
{
|
this.SetRootUnit();
|
}
|
|
// create new unit period
|
if( oldcapacitytype <> capacitytype )
|
{
|
this.DeleteOldPeriodCapacity();
|
this.CreateUnitPeriods();
|
this.UnitAvailability( relflush );
|
this.UnitCapacity( relflush );
|
this.TransportAvailability( relflush );
|
this.TransportCapacity( relflush );
|
|
// Update unitshiftpatterns if the capacity changes
|
timecapacity := GlobalParameters_MP::GetCapacityTypeTime();
|
if( oldcapacitytype = timecapacity )
|
{
|
this.UnitShiftPattern( relflush );
|
}
|
if( capacitytype = timecapacity )
|
{
|
this.CreateUnitShiftPatterns();
|
}
|
}
|
*]
|
}
|