VOCCheck
    online
    button
    javascript
    VOC判定
    onClickJavaScript
    false
    {!RequireScript("/soap/ajax/51.0/connection.js")}
{!RequireScript("/soap/ajax/51.0/apex.js")}
{!RequireScript("/resource/CommonUtilJs")} 
//2021-10-22 gwy 版本更改为51.0
var foo = function() {
    // 陆胜,胡迪安,系统管理员可点
    if ("{!$User.Id}" != "00510000000gWAE" && "{!$User.Id}" != "00510000004reg2" && "{!$Profile.Id}" != "00e10000000Y3o5") {
        alert("你没有判定VOC的权限");
        return;
    }
    if ("{!Report__c.Status__c}" != "跟进中") {
        alert("不是跟进中不能点击");
        return;
    }
    if ("{!Report__c.IsVOC__c}" == "") {
        alert("必须选择是否VOC");
        return;
    }
    var rac = new sforce.SObject("Report__c");
    var result;
    rac.Id = "{!Report__c.Id}";
    if ("{!Report__c.IsVOC__c}" == "VOC") {
        // VOC対応者の経理部長総監を設定
        var resultSet = sforce.connection.query("SELECT Id, Job_Category__c, JingliApprovalManager__c, SalesManager__c, BuchangApprovalManager__c, BuchangApprovalManagerSales__c, ZongjianApprovalManager__c FROM User WHERE Id = '{!Report__c.Responsible_PersonId__c}'");
        var records = resultSet.getArray("records");
        if (records[0].Job_Category__c == "销售服务") {
            rac.VOC_jingli__c = records[0].JingliApprovalManager__c == null ? "" : records[0].JingliApprovalManager__c;
            rac.VOC_buzhang__c = records[0].BuchangApprovalManager__c == null ? "" : records[0].BuchangApprovalManager__c;
        } else {
            rac.VOC_jingli__c = records[0].SalesManager__c == null ? "" : records[0].SalesManager__c;
            rac.VOC_buzhang__c = records[0].BuchangApprovalManagerSales__c == null ? "" : records[0].BuchangApprovalManagerSales__c;
        }
        rac.VOC_zongjian__c = records[0].ZongjianApprovalManager__c == null ? "" : records[0].ZongjianApprovalManager__c;
        rac.Status__c = "判定完毕";
        rac.VOC_Finish__c = false;
        var serverTimestamp = sforce.connection.getServerTimestamp();
        rac.VOC_share_date__c = serverTimestamp.timestamp;
        
        // share
        var userAccess = new Array();
        userAccess.push('{!Report__c.Responsible_PersonId__c}_Edit');
        userAccess.push(rac.VOC_jingli__c + '_Read');
        userAccess.push(rac.VOC_buzhang__c + '_Read');
        userAccess.push(rac.VOC_zongjian__c + '_Read');
        var rtn = sforce.apex.execute('ControllerUtil','setSObjectShare',{sobjectName:'Report__Share',rowCause:'VOCShare__c',parentId:'{!Report__c.Id}',userAccess:userAccess,ownerId:'{!Report__c.OwnerId}'});
        if (rtn != 'OK') {
            alert(rtn);
            return;
        }
    
        result = sforce.connection.update([rac]);
    } else {
        rac.Status__c = "完毕";
        rac.VOC_Finish__c = true;
        result = sforce.connection.update([rac]);
    }
    var messages = getConnectDMLErrorMessages(result);
    if (messages.length > 0) {
        alert(messages.join("\n"));
        return;
    }
    location.reload();
}
foo();