繁体   English   中英

在添加订单项之前验证脚本中的状态(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功能,它会等到你检查状态,并添加一个新行之前打在现有生产线的“添加”按钮。

状态验证已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.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM