禁用在销售订单上添加/删除项目

时间:2014-04-23 14:24:48

标签: javascript netsuite

我查看了很多Netsuite的文档,并在stackoverflow上搜索,但目前没有看到这个问题。

我基本上想要锁定(禁止最终用户更改)销售订单上的某些字段,这些字段在满足某些条件后会影响保证金。我已经能够在项目级别锁定我想要的字段,但我意识到他们仍然可以添加/复制/删除项目,这也会影响保证金。

想要锁定整个项目子列表 - 我们希望它们能够编辑次要内容,但实际项目无法添加/复制/删除。

我有什么想法可以做到这一点?基本上以某种方式删除添加/复制/删除按钮?

编辑: 由于删除了我的Javascript标记,我将解释它的用途。这个删除,因为在行级别,我知道需要使用NetSuite的API在SuiteScript-Javascript中完成。值得注意的是,这是我试图使用的语言。

代码:为了解释我到目前为止所做的工作,下面是一些伪代码:

function pageInit(){
if(currDate >= dLockDate && type == 'edit'){        
    //lock SO Date (header level)
    nlapiDisableField('trandate', true);                        
}
}

在lineInit://锁定订单项级别的某些字段

function lineInit(){
if(type == 'item'){
//list of items to disable
    var a_itemDisFields = ['rate', 'quantity','porate','amount', 'item'];

    for(var i = 0; i < a_itemDisFields.length; i++){
        nlapiDisableLineItemField('item',a_itemDisFields[i] , true);
    }

}

}

与上述两个功能类似,我禁用了字段,我想禁用添加订单项的功能。我不想锁定整个记录(因为我知道我可以从工作流程中完成),而是希望阻止用户在Item子列表中添加/复制/删除项目。

1 个答案:

答案 0 :(得分:2)

您可以在客户端脚本中使用validateLine事件,以防止用户在满足特定条件时添加行。您使用的函数只需要返回一个布尔值:true如果行添加可以继续,false如果它不应该。

同样,您可以使用validateDelete事件来阻止在符合某些条件时删除行。

最后,并且还遵循类似的模式,可以使用validateField事件来阻止用户在满足某些条件时修改字段值。它并没有完全禁用该字段,但它会阻止它们更改值。

将这些事件处理函数添加到客户端脚本应该允许您阻止所需的更改,但它实际上不会禁用任何字段。

可以使用jQuery来禁用添加/复制/删除按钮和某些字段,但我怀疑NetSuite是否会考虑支持&#34;方法