2016-11-21 5 views
0

Я создал пользовательскую валютную запись и одну запись для каждой валюты в системе (не могу сохранить новую запись с той же валютой). Для счетов-фактур мне нужно указать поля из этой пользовательской записи на основе валюты в счете-фактуре.NetSuite Advanced PDF/HTML - Исходные поля из пользовательской записи на основе валюты по счету

Например, если мой счет-фактура находится в долларах США, мне нужно вытащить поле «Банковская учетная запись №» из пользовательской записи валюты, где поле «Валютное имя» - «USD». Я бы предположил, что мне нужно выполнить поиск, а затем потянуть это значение, но я не знаю синтаксиса для этого с помощью freemarker.

С SuiteScript, я бы:

var currencyRecord; 
var currency = nlapiGetFieldValue('currency'); 

var filters = new Array(); 
var columns = new Array(); 

filters[0] = new nlobjSearchFilter('custrecord_nco_currency_name', null, 'is', currency); 
columns[0] = new nlobjSearchColumn('custrecord_bank_acct_num'); 
columns[1] = new nlobjSearchColumn('custrecord_nco_currency_name'); 

var currencyRecord = nlapiSearchRecord('customrecord_nco_currency_symbol', null, filters, columns); 

ответ

2

Я не думаю, что вы можете запустить поиск с помощью Freemarker. По моему мнению, данные должны жить на записи или на одном уровне вниз. Вам может понадобиться создать настраиваемое поле тела типа List/Record >> (Your Custom Currency Record) и настроить поле «Валюта» в качестве источника, а затем изменить настройки фильтра, чтобы поле было автоматически заполнено на основе валюты ,

1

Вы можете использовать beforeload UserEvent с типом «PRINT». Добавьте настраиваемое поле в тело транзакции или записи, которая не хранится, поэтому вы можете использовать сценарий beforeload для заполнения поля данными на основе вашей логики. Данные, которые вы заполняете в поле, могут быть текстовыми или JSON, с учетом вашей сложности.