NetSuite:将报价转换为销售订单的问题

NetSuite:将报价转换为销售订单的问题,netsuite,Netsuite,我有两个目前相互冲突的业务需求。我在客户端订单创建代码中添加了以下逻辑,以限制谁可以通过发票进行订单: if (type == 'create' && nlapiGetContext().getRoleCenter() == 'CUSTOMER') { if(nlapiGetFieldValue('entity')){// shouldn't be here if no entity var hasTerms = nlapiLookupField('cus

我有两个目前相互冲突的业务需求。我在客户端订单创建代码中添加了以下逻辑,以限制谁可以通过发票进行订单:

if (type == 'create' && nlapiGetContext().getRoleCenter() == 'CUSTOMER') {
    if(nlapiGetFieldValue('entity')){// shouldn't be here if no entity
        var hasTerms = nlapiLookupField('customer', nlapiGetFieldValue('entity'), 'terms');
        var neededFormId = hasTerms ? 135 : 134;
        if (req && !req.getParameter('cf') && neededFormId != nlapiGetFieldValue('customform')) {
            nlapiSetRedirectURL('RECORD', nlapiGetRecordType(), nlapiGetRecordId(), (type == 'create'), { cf: neededFormId });
        }
    }
}

然而,出于某种原因,这已经打破了以下需要的用例:当我现在从报价中单击“创建订单”时,它会创建它,但不再在订单中包含报价中的任何项目。当我对上述逻辑进行注释时,“创建订单”按钮工作正常。我怎样才能两者兼得?我是否可以检查订单是否是由于现有报价而创建的?

您是否尝试过获取Page Init事件中“createdfrom”字段的值?如果您正在创建standalone SO,则此字段将为空。

您是否尝试在Page Init事件上获取“createdfrom”字段的值?如果您正在创建独立SO,则此字段将为空。

使用@rusty建议的“createdfrom”检查,以避免引号转换而落入逻辑陷阱

但是,您可能仍然希望使用特定的表单,在这种情况下,您可以在用户事件脚本中编写逻辑来更改表单

如果表单的目的是请求其他表单中未出现的不同字段,您可以尝试使用“beforeload用户事件脚本”,该脚本允许访问nlobjform,您可以尝试更改表单上的字段。

使用@rusty建议的“createdfrom”检查,以避免引号转换,从而落入逻辑陷阱

但是,您可能仍然希望使用特定的表单,在这种情况下,您可以在用户事件脚本中编写逻辑来更改表单


如果表单的目的是请求其他表单中未出现的不同字段,您可以尝试使用“加载前用户事件脚本”,该脚本允许访问nlobjform,您可以尝试更改表单上的字段。

在向客户提供初始报价表单时,考虑进行检查。术语客户可以获得术语报价表。信用卡客户得到一份报价表,这将总是导致他们进行现金销售

然后只需在报价表上使用Netsuite的固有功能


干杯

在向客户提供初始报价表时,考虑进行检查。术语客户可以获得术语报价表。信用卡客户得到一份报价表,这将总是导致他们进行现金销售

然后只需在报价表上使用Netsuite的固有功能


干杯

您想强制用户在某些条件下使用特定表单,重定向正在破坏“按订单报价”功能??正确。有4个用例都需要工作:(1)有条款的客户的新销售订单(2)无条款的客户的新销售订单(3)有条款的客户将报价转换为销售订单,以及(4)无条款的客户将报价转换为销售订单。我需要同时显示正确的表格,并使项目保持(3)和(4)的顺序。我可以按照下面的建议做,但我认为这并不能解决问题。我认为,真正的问题是,如何重定向而不丢失项目?您想强制用户在某些条件下使用特定的表单,而重定向破坏了按订单报价的功能??正确。有4个用例都需要工作:(1)有条款的客户的新销售订单(2)无条款的客户的新销售订单(3)有条款的客户将报价转换为销售订单,以及(4)无条款的客户将报价转换为销售订单。我需要同时显示正确的表格,并使项目保持(3)和(4)的顺序。我可以按照下面的建议做,但我认为这并不能解决问题。我认为,真正的问题是,我如何重定向而不丢失物品?好的,但我认为这并不能完全解决我的问题(因为我不清楚!),无论有人如何创建订单(直接或从报价),如果允许他们开发票,我需要显示发票表单,如果不允许,则显示信用卡表单。“创建订单”按钮不能只是默认为发票。信用卡是自定义发票表单吗?如果是,则可以在发票上使用加载前用户事件脚本,并使用“customform”字段将表单设置为正确的表单。好的,但我认为这并不能完全解决我的问题(因为我不清楚!),无论有人如何创建订单(直接创建或从报价创建)如果允许他们开具发票,我需要出示发票表格;如果不允许,我需要出示信用卡表格。“创建订单”按钮不能只是默认为发票。信用卡是自定义发票表单吗?如果是,则可以在发票上使用加载前用户事件脚本,并使用“customform”字段将表单设置为正确的表单。