Оператор 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>