NetSuite:公司CAD发票表单和公司发票表单

时间:2016-01-27 18:15:57

标签: netsuite

有人可以帮助我解决以下问题吗:可以通过工作流程规则来完成,如果是的话怎么办?我很感激你的帮助。感谢

公司CAD发票表格和公司公司发票表格 - 当我们向公司公司子公司的客户开具发票时,我们要在加拿大子公司和公司发票表格中向客户开具发票时使用公司CAD发票表格。现在,CAD发票链接到标有"公司 - 高级会计师"但是当分配该角色的人需要为公司公司发票时,这会导致问题

3 个答案:

答案 0 :(得分:1)

是的,这绝对是可能的。有几种方法可以做到这一点,但是,我会通过带有pageInit和postSourcing脚本的客户端脚本来完成此操作。

如果您从客户记录中选择发票,则会点击pageInit脚本。 如果您从头开始创建发票,在您输入客户后,它将点击postSourcing脚本。

脚本应该:

  1. 检查子公司
  2. 检查当前表格
  3. 如果子公司的表格不正确
  4. 将表单更改为正确的表单。
  5. 见下面的代码。希望有所帮助。可能会有一些问题需要解决,但你应该得到主旨。

    function pageInit(type){
        var customer = nlapiGetFieldValue('entity'); 
        if(customer!='' && customer!=null){  // Check if customer is populated first
            var subsidiary = nlapiGetFieldValue('subsidiary'); // get subsidiary
            var form = nlapiGetFieldValue('customform'); // get form
            if(subsidiary == XX && form != YY){ // compare subsid id with form id - change XX and YY appropriately
                nlapiSetFieldValue('customform', YY)  // Set to the correct form.
            }
            // Add other if statements here
        }
    }
    
    
    function onPostSourcing(type, name) {
        if(name=='entity'){  // if customer is changed
            if(customer!='' && customer!=null){ // make sure user hasn't set customer to empty
                var subsidiary = nlapiGetFieldValue('subsidiary'); // get subsidiary
                var form = nlapiGetFieldValue('customform'); // get form
                if(subsidiary == XX && form != YY){ // compare subsid id with form id - change XX and YY appropriately
                    nlapiSetFieldValue('customform', YY)  // Set to the correct form.
                }
                // Add other if statements here
        }
    }
    

    }

答案 1 :(得分:1)

不确定是否可以通过工作流程完成此操作,但我已经多次使用以下代码来管理选择正确的表单。用于创建用户事件脚本的Netsuite文档已足够。

function beforeLoad(type, myForm, req) {
    if ((type == 'edit' || type == 'create') && 'userinterface' == nlapiGetContext().getExecutionContext()) {
        var needFormId = doFormLookup();// whatever custom logic you have
        if (req && !req.getParameter('cf') && needFormId != nlapiGetFieldValue('customform')) {//avoid unnecessary redirect and redirect loops
            nlapiLogExecution('DEBUG', 'sHould redirect to form '+ needFormId);
            nlapiSetRedirectURL('RECORD', nlapiGetRecordType(), nlapiGetRecordId(), (type == 'edit'), { cf: needFormId });
        }
    }
}

答案 2 :(得分:0)

如果您的员工具有不同的角色,以便特定子公司具有特定角色,您可以为每个角色分配默认表单。

@ lez-yeoh建议的客户端脚本也不错,我建议另外,你编写一个用户事件脚本,如果创建记录的入口点不是用户界面,例如: - csv import,suitescripts等等,保证选择正确的形式。