我正在尝试创建一个客户端脚本,用于检查库存项目实际上是由采购订单的正文字段中选择的供应商提供的。我可以获取当前行项目的字段值,但不知道如何加载已标记为提供该项目的供应商列表。或者,让列表不显示所选供应商无法提供的任何项目会更好。任何有关这方面的帮助将不胜感激。
答案 0 :(得分:0)
我想通了,所以我想我会发布我的解决方案。如果有人知道更好的方式,并愿意分享,请做。
我选择供应商时首先担心的两个更改事件我加载了该供应商是首选供应商的所有库存项目。第二种是添加或更改“项目”以检查供应商项目列表,并在需要时显示警报。
var vendorItemList = '';
function fieldChange(type, name) {
try
{
//on vendor change set vendorItemList
if (name == 'entity')
{
//first check if current selected vendor supplies item selected
var vendorId = nlapiGetFieldValue('entity');
var vendorName = nlapiGetFieldValue('entity_display');
//check if vendor supplies item
var filters = [new nlobjSearchFilter('internalid','vendor','is', vendorId)];
var columns = [new nlobjSearchColumn('itemid')];
results = nlapiSearchRecord('inventoryitem',null,filters,columns);
if (results != null)
{
for(var i=0,l=results.length; i < l; i++) {
var result = results[i];
var itemid = result.getValue('itemid');
vendorItemList += itemid + "\n";
}
}
}
} catch (err) {
alert(err.message);
}
try
{
if (name == 'item')
{
if (!vendorItemList.contains(itemText))
{
alert(vendorName + '\' is not a vendor for \'' + itemText + '\' inventory item.');
}
}
} catch (err) {
alert(err.message);
}
}