[英]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
功能,它会等到你检查状态,并添加一个新行之前打在现有生产线的“添加”按钮。
状态验证已nlapiGetFieldValue('shipstate');
,您需要的功能是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;
}
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.