| Quintiq file version 2.0 | 
| #parent: #root | 
| Method HasCurrencyRate ( | 
|   output Strings feedback_o, | 
|   output Strings sanitycheckfeedback_o | 
| ) declarative remote as Boolean | 
| { | 
|   Description: 'Returns true if rate is assigned to a (non-base) currency' | 
|   TextBody: | 
|   [* | 
|     // timothyg Oct-30-2014 (created) | 
|      | 
|     // All currencies need a rate, except for the base currency. | 
|     isvalid := this.IsBase() or this.CurrencyRate_MP( relsize ) > 0; | 
|      | 
|     //Perform name substitution | 
|     name := MacroPlan::GetSubstituteName( this.Name() ); | 
|      | 
|     if( not isnull( feedback_o ) and not isvalid ) | 
|     { | 
|       feedback_o.Add( SanityCheckMessage::GetFormattedMessage( Translations::MP_Currency_Instance( name ), | 
|                                                                Translations::MP_Currency_ViolateHasCurrencyRate() ) ); | 
|       sanitycheckfeedback_o.Add( SanityCheckCategoryLevel::GetSanityCheckCategoryDataIssue() ); | 
|     } | 
|     return isvalid; | 
|   *] | 
| } |