Quintiq file version 2.0 
 | 
#parent: #root 
 | 
Method EditUnitAvailabilityFromListUnitPeriodTime ( 
 | 
  internal[GUIComponent] parent, 
 | 
  structured[UnitPeriodTime] selection 
 | 
) id:Method_DialogCreateEditUnitAvailability_EditUnitAvailabilityFromListUnitPeriodTime 
 | 
{ 
 | 
  #keys: '[105706.0.2071122933]' 
 | 
  Body: 
 | 
  [* 
 | 
    // Edit the capacity of the selection unit period times from periods list 
 | 
     
 | 
    isbatchedit := selection.Size() > 1; 
 | 
    Dialog.ShowHideComponentForBatchEdit( isbatchedit, false, true ); 
 | 
     
 | 
    upt := selection.Element( 0 ); 
 | 
    // Need this for excluding itself in pre-condition primary keys checking. 
 | 
    data := shadow( upt.UnitAvailability() ); 
 | 
     
 | 
    // In case selection.Element( 0 ) doesn't bind to any unit availability, calling SetDefaultValue method will return null error. 
 | 
    // Check start in case of editing from UPT later than the existing UA, the Start date will be off if we pass in existing UA 
 | 
    if( isnull( data ) 
 | 
        or data.Start() <> upt.Start() ) 
 | 
    { 
 | 
      data := selection.Element( 0 ).Unit().UnitAvailability( relshadow, UnitID := upt.Unit().ID(), Start := upt.Start() ); 
 | 
    } 
 | 
     
 | 
    Dialog.Data( data ); 
 | 
     
 | 
    // Need this so that when the upt doesn't not have a unit availability, the fields in this Dialog will not be blank. 
 | 
    Dialog.SetDefaultValue( selection.Element( 0 ) ); 
 | 
     
 | 
    result := this.DoModal( parent ); 
 | 
     
 | 
    if( result > 0 ) 
 | 
    { 
 | 
      UnitAvailability::CreateOrUpdateForUnitPeriodTimes( selection, 
 | 
                                                          not isbatchedit or CheckBoxBatchEditMaintenance.Checked(), 
 | 
                                                          data.TimeUnit(), 
 | 
                                                          data.Maintenance(), 
 | 
                                                          not isbatchedit or CheckBoxBatchEditEfficiency.Checked(), 
 | 
                                                          data.Efficiency(), 
 | 
                                                          not isbatchedit or CheckBoxBatchEditAllocation.Checked(), 
 | 
                                                          data.Allocation(), 
 | 
                                                          not isbatchedit or CheckBoxBatchEditShiftPattern.Checked(), 
 | 
                                                          data.ShiftPattern(), 
 | 
                                                          not isbatchedit or CheckBoxBatchEditMaxLoadPercentage.Checked(), 
 | 
                                                          data.MaximumLoadPercentage(), 
 | 
                                                          not isbatchedit or CheckBoxBatchEditNrOfUnitsOpen.Checked(), 
 | 
                                                          data.NrOfUnitsOpen(), 
 | 
                                                          CheckBoxThisPeriodOnwards.Checked(), 
 | 
                                                          not isbatchedit or CheckBoxBatchEditMinimumLoadThreshold.Checked(), 
 | 
                                                          data.MinimumLoadThreshold() 
 | 
                                                          ); 
 | 
    } 
 | 
  *] 
 | 
} 
 |