在添加订单项之前验证脚本中的状态 (NetSuite)
Verify State in Script before Adding Line item (NetSuite)
我正在尝试在添加特定项目后向销售订单添加一行,但在此之前,我需要先验证状态。
这就是我挣扎的地方。我有正确添加项目的代码,但我的状态检查出错了。
function validateField(type, name, linenumber) {
var shipstate = nlapiGetFieldText()
if (shipstate == 'PA') {
function recalc(type) {
if (type == 'item') {
var itemId = nlapiGetCurrentLineItemValue('item', 'item');
if (itemId == 1658) {
//Insert item
nlapiSelectNewLineItem('item');
nlapiSetCurrentLineItemValue('item', 'item', 1516);
nlapiSetCurrentLineItemValue('item', 'quantity', 1);
nlapiSetCurrentLineItemValue('item', 'amount', '0.24');
nlapiCommitLineItem('item');
}
}
return true;
}
}
return true;
}
是否了解我的问题所在?
我认为我的问题是我存储状态值的位置,以便它可以检查变量。
我建议您添加带有 recalc
函数而不是 validateField
函数的行。这是因为如果您在编辑现有行时尝试添加新行,它将取消当前行。使用 recalc
函数,它将等到您点击现有行上的 'Add' 按钮,然后再检查状态并添加新行。
您的状态验证是正确的,您需要的功能是 nlapiGetFieldValue('shipstate');
。我相信下面的代码应该可以解决您的问题。
function recalc(type) {
var shipstate = nlapiGetFieldValue('shipstate');
if (shipstate === 'PA') {
addNewLine(type);
}
return true;
}
function addNewLine(type) {
if (type === 'item') {
var itemId = nlapiGetCurrentLineItemValue('item', 'item');
if (itemId === '1658') {
//Insert item
nlapiSelectNewLineItem('item');
nlapiSetCurrentLineItemValue('item', 'item', '1516');
nlapiSetCurrentLineItemValue('item', 'quantity', '1');
nlapiSetCurrentLineItemValue('item', 'amount', '0.24');
nlapiCommitLineItem('item');
}
}
return true;
}
我正在尝试在添加特定项目后向销售订单添加一行,但在此之前,我需要先验证状态。
这就是我挣扎的地方。我有正确添加项目的代码,但我的状态检查出错了。
function validateField(type, name, linenumber) {
var shipstate = nlapiGetFieldText()
if (shipstate == 'PA') {
function recalc(type) {
if (type == 'item') {
var itemId = nlapiGetCurrentLineItemValue('item', 'item');
if (itemId == 1658) {
//Insert item
nlapiSelectNewLineItem('item');
nlapiSetCurrentLineItemValue('item', 'item', 1516);
nlapiSetCurrentLineItemValue('item', 'quantity', 1);
nlapiSetCurrentLineItemValue('item', 'amount', '0.24');
nlapiCommitLineItem('item');
}
}
return true;
}
}
return true;
}
是否了解我的问题所在?
我认为我的问题是我存储状态值的位置,以便它可以检查变量。
我建议您添加带有 recalc
函数而不是 validateField
函数的行。这是因为如果您在编辑现有行时尝试添加新行,它将取消当前行。使用 recalc
函数,它将等到您点击现有行上的 'Add' 按钮,然后再检查状态并添加新行。
您的状态验证是正确的,您需要的功能是 nlapiGetFieldValue('shipstate');
。我相信下面的代码应该可以解决您的问题。
function recalc(type) {
var shipstate = nlapiGetFieldValue('shipstate');
if (shipstate === 'PA') {
addNewLine(type);
}
return true;
}
function addNewLine(type) {
if (type === 'item') {
var itemId = nlapiGetCurrentLineItemValue('item', 'item');
if (itemId === '1658') {
//Insert item
nlapiSelectNewLineItem('item');
nlapiSetCurrentLineItemValue('item', 'item', '1516');
nlapiSetCurrentLineItemValue('item', 'quantity', '1');
nlapiSetCurrentLineItemValue('item', 'amount', '0.24');
nlapiCommitLineItem('item');
}
}
return true;
}