Оператор IF с диапазоном номеров в шаблоне Netsuite PDF/HTML

Мне нужно указать способ доставки по умолчанию, если он не указан в форме ввода в Netsuite. По разным причинам я должен сделать это в шаблоне PDF/HTML. Это код, который у меня есть, но он не работает;

<#function toNumber val>
<#if val?has_content && val?length gt 0 >
<#return val?html?replace('[^0-9.]','','r')?number >
<#else><#return 0 ></#if></#function>

<#if record.shipmethod?has_content>

${record.shipmethod}  <!-- if a courier is selected -->

<#else>               <!-- else -->
<#list 2000..2560 as pcx>  <!-- Sydney Metro postcodes -->
<#if toNumber(record.shipzip)==pcx> 

Courier1              <!-- Standard Sydney Metro Courier -->

<#else>               <!-- else -->

Courier2              <!-- Standard Interstate Courier -->

</#if></#list></#if>

1 ответ

Решение

Ваш цикл будет что-то печатать при каждом запуске (то есть 560 строк)! Вместо того, чтобы перебирать числа, вы должны проверить, попадает ли почтовый индекс в желаемый диапазон, используя lte (меньше или равно) и gte (больше или равно) операторы сравнения:

<#function toNumber val>
<#if val?has_content && val?length gt 0 >
<#return val?html?replace('[^0-9.]','','r')?number >
<#else><#return 0 ></#if></#function>

<#assign zip = toNumber(record.shipzip)>

<#if record.shipmethod?has_content>
  ${record.shipmethod}
<#elseif zip gte 2000 && zip lte 2560 >
  Courier 1
<#else>
  Courier 2
</#if>
Другие вопросы по тегам