首页 文章

如果潜在客户分配给客户,NetSuite会阻止向销售订单报价(通过销售订单按钮)

提问于
浏览
0

我们允许销售人员将潜在客户与机会和报价相关联,并且一旦信用对潜在客户有资格,他们就会将潜在客户推广给客户 . 我们需要做的是隐藏报价上的“销售订单”按钮,或者禁止将报价推进到销售订单 .

我对这个问题犹豫不决 - 似乎应该直截了当地弄明白 . 我查看了NetSuite帮助中的标准NetSuite按钮ID,但没有一个用于“销售订单” . 我查看了验证逻辑,但这不是验证,因为当记录未处于编辑模式时,会显示销售订单按钮 . 如果可能的话,我希望解决方案独立于形式 .

我很乐意隐藏按钮或让用户点击按钮并阻止他们创建销售订单 . 它可能对后者更友好,因为如果按钮被隐藏,销售人员会打电话询问为什么按钮不在那里 .

为清楚起见,这是一张图片:
enter image description here

2 回答

  • 2

    我假设当你在谈论"the Sales Order button"时,你的意思是这个:
    NetSuite Sales Order button

    我不确定这是否是最好的用户体验,或者您是否有可用的NetSuite开发资源,但这里有一个选项:

    创建一个新的用户事件脚本,该脚本部署到销售订单(以及您可能希望进行此预防的任何其他交易记录) . 使用 BeforeLoad 事件,您可以检查事务中的实体是否处于Prospect阶段 . 如果是,则脚本将抛出错误,从而阻止创建事务 . 完成此任务的代码:

    function onBeforeLoad(type) {
        var entityId = nlapiGetFieldValue('entity');
    
        if ((type != 'create') || !entityId) { return; }
    
        if(nlapiLookupField('customer', nlapiGetFieldValue('entity'), 'stage') === 'PROSPECT') {
            throw nlapiCreateError('INVALID_REQUEST', 'You cannot create a Sales Order from a Quote placed for a Prospect');
        }
    }
    

    我在TSTDRV帐户中测试了此代码,它按预期工作 . 您也可以构建一个工作流来完成相同的工作而不需要您编写代码,但我没有尝试这样做 .

    通过使用用户事件脚本,此代码将独立于表单以及独立于入口点,这意味着如果通过UI,通过其他脚本,通过Web服务集成创建销售订单,则将执行此代码(取决于您的Web服务配置),或通过CSV导入(取决于您的CSV导入配置) .

  • 1

    隐藏选项:如果您要引用下拉列表,则可以为上下文视图/编辑创建脚本以执行以下操作:

    setFieldAndLabelVisibility(“nl13”,false);

    否则,将nl13替换为检查所需销售订单链接/图标上的元素时显示的表或td元素的值 .

    • 上例中的ID是检查元素时显示的表,按钮或标签ID

相关问题