Quintiq file version 2.0 
 | 
#parent: #root 
 | 
Method GetHasConformInputLotSizingRequirement () declarative remote as Boolean 
 | 
{ 
 | 
  Description: 'Returns true if the (Operation only) DependentDemand quantity is an integer multiple of input lot size' 
 | 
  TextBody: 
 | 
  [* 
 | 
    isvalid := true; 
 | 
    process := this.PeriodTask_MP().Process_MP(); 
 | 
    pisp := guard( this.ProductInStockingPointInPeriodPlanningLeaf().ProductInStockingPoint_MP(), null( ProductInStockingPoint_MP ) ); 
 | 
    period := guard( this.PeriodTask_MP().UnitPeriod().Period_MP(), null( Period_MP ) ); 
 | 
     
 | 
    if( guard( process.HasInputLotSize() 
 | 
               and pisp.HasInputLotSize()                     // To prevent division by zero 
 | 
               and period.IsWithinLotSizeHorizon(),       // Only check within the lotsize horizon 
 | 
               false ) 
 | 
       )   
 | 
    { 
 | 
      gp := this.PeriodTask_MP().MacroPlan().GlobalParameters_MP(); 
 | 
      inputlotsize := pisp.PISPSpecification().InputLotSize(); 
 | 
      remainder := GlobalParameters_MP::GetRemainder( this.Quantity(), inputlotsize ); 
 | 
     
 | 
      isvalid := gp.GetIsLotSizeWithinTolerance( inputlotsize, remainder + inputlotsize ) 
 | 
                 or gp.GetIsLotSizeWithinTolerance( inputlotsize, remainder ) 
 | 
                 or gp.GetIsBalanceWithinTolerance( remainder, 0.0 ); 
 | 
    } 
 | 
     
 | 
    return isvalid 
 | 
  *] 
 | 
} 
 |