| Quintiq file version 2.0 | 
| #parent: #root | 
| Method GetBaseCostPerQuantityForHour ( | 
|   const AccountAssignment aa, | 
|   const UnitPeriod unitperiod, | 
|   Real reqcapacity | 
| ) const declarative remote as Real | 
| { | 
|   Description: 'Calculate cost per hour. Table methods cannot be remote, therefore this method is created to cater the usage in remote and non-remote scope.' | 
|   TextBody: | 
|   [* | 
|     // soh yee Jan-21-2015 (moved) | 
|     value := 0.0; | 
|     if( this.AsProcess_MP().HasCapacityTypeTimeBase() ) | 
|     { | 
|      | 
|       accountcost := this.GetCost( aa, unitperiod ); | 
|      | 
|       // we still need a null check because there is a chance that no accountcost is found | 
|       if( not isnull( accountcost ) ) | 
|       { | 
|         cost := accountcost.Cost(); | 
|      | 
|         //convert cost per time unit into cost per quantity | 
|         if( reqcapacity > 0 and cost > 0 ) | 
|         { | 
|           ratio := PeriodSpecification_MP::GetLengthOfTimeAndTimeUnitRatio( unitperiod, accountcost ) | 
|           pfactor := guard( ratio / unitperiod.Duration().HoursAsReal(), 0 ); | 
|      | 
|           value :=  ( 1 / reqcapacity * cost ) | 
|                     * guard( unitperiod.CurrencyInPeriod().Rate(), 1.0 ) | 
|                     * pfactor; | 
|         } | 
|       } | 
|     } | 
|      | 
|     return value; | 
|   *] | 
| } |