我们有一些客户有条款,有些没有。在我们的客户中心(我的帐户部分),有一个链接到"输入订单",默认显示一个发票表单,因为我将发票表单设置为首选销售订单(外部)形成。
然而,这似乎是为所有人显示发票表格,无论他们是否有条款。
我想要的行为是:当有条款的客户点击"输入订单"链接它显示发票订单表格。当没有条款的客户点击"输入订单"链接它显示信用卡订单。
有办法做到这一点吗?
答案 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>
基本思想是只使用注入的脚本来调整链接,以便存在正确的链接。