Netsuite客户中心:输入订单 - 客户提交没有条款的发票

时间:2015-09-02 21:03:07

标签: netsuite

我们有一些客户有条款,有些没有。在我们的客户中心(我的帐户部分),有一个链接到"输入订单",默认显示一个发票表单,因为我将发票表单设置为首选销售订单(外部)形成。

然而,这似乎是为所有人显示发票表格,无论他们是否有条款。

我想要的行为是:当有条款的客户点击"输入订单"链接它显示发票订单表格。当没有条款的客户点击"输入订单"链接它显示信用卡订单。

有办法做到这一点吗?

2 个答案:

答案 0 :(得分:1)

实际上,您也可以使用加载前用户事件脚本执行相同的操作。我忘了这件事(多年前首次做过)

  • 创建销售订单用户事件脚本。
  • 为beforeLoadEvent设置如下的脚本:

    function beforeLoad(type, myForm, req) {
    
    if (type == 'create' && nlapiGetContext().getRoleCenter() == 'CUSTOMER') {
        if(nlapiGetFieldValue('entity')){// shouldn't be here if no entity
            var hasTerms = nlapiLookupField('customer', nlapiGetFieldValue('entity'), 'terms');
            var ccFormId = nlapiGetContext().getSetting('SCRIPT', 'custscript_default_custcenter_cash_form');
            var invFormId = nlapiGetContext().getSetting('SCRIPT', 'custscript_default_custcenter_inv_form');
            var neededFormId = hasTerms ? invFormId : ccFormId;
            if (req && !req.getParameter('cf') && neededFormId != nlapiGetFieldValue('customform')) {
                nlapiLogExecution('DEBUG', 'sHould redirect to invoice form');
                nlapiSetRedirectURL('RECORD', nlapiGetRecordType(), nlapiGetRecordId(), (type == 'create'), { cf: neededFormId });
            }
        }
    }
    

    }

答案 1 :(得分:0)

是的,但这有点像黑客。

基本上,您创建两个链接以在客户中心输入订单。每个都是相同的,只有一个&cf=<internalidoftermsform>

然后在您的主题中添加一个新标记<TAB_EXTRA_FOOTER>,在标记定义中为空白

然后在我的帐户标签上,您可以使用以下内容覆盖该标记:

<script type="text/javascript">

(function($){
    var custTerms ="<%=getCurrentAttribute('customer', 'terms', '')%>";

    $("a...).hide(); // filter out and hide the wrong link. Or just add the cf param to the existing link 

})(jQuery);

</script>

基本思想是只使用注入的脚本来调整链接,以便存在正确的链接。