1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
<apex:page >
    <apex:includeScript value="/soap/ajax/51.0/connection.js"/>
    <apex:includeScript value="/soap/ajax/51.0/apex.js"/>
    <script>
    sforce.connection.sessionId = '{!$Api.Session_ID}';
    var getErrorMessages = function (results) {
    var messages = [],
        i = 0,
        len = results.length,
        r;
    for (; i < len; i++) {
        r = results[i];
        if (!r.getBoolean("success")) {
            messages = messages.concat(getMessagesOfAResult(r));
        }
    }
    return messages;
};
var getMessagesOfAResult = function (res) {
    var messages = [],
        errors = res.getArray("errors"),
        i = 0,
        len = errors.length,
        e;
    for (; i < len; i++) {
        e = errors[i];
        messages.push(e.message + " " + getErrorFields(e));
    }
    return messages;
};
var getErrorFields = function (error) {
    var fields = error.getArray('fields');
    if (fields.length > 0) {
        return "[" + fields.join(",") + "]"
    } else {
        return "";
    }
};
var tringcodestr = function () {
    var result = "";
    for (var i = 0; i < 5; i++) {
        var ranNum = Math.ceil(Math.random() * 25); //生成一个0到25的数字
        //大写字母'A'的ASCII是65,A~Z的ASCII码就是65 + 0~25;然后调用
        //String.fromCharCode()传入ASCII值返回相应的字符并push进数组里
        result = result + String.fromCharCode(65 + ranNum);
        //result.push(String.fromCharCode(65+ranNum));
    }
    //result = "250" + result;
    return result;
}
 
var tringcode = function () {
    var result = "";
    for (var i = 0; i < 5; i++) {
        var ranNum = Math.ceil(Math.random() * 25); //生成一个0到25的数字
        //大写字母'A'的ASCII是65,A~Z的ASCII码就是65 + 0~25;然后调用
        //String.fromCharCode()传入ASCII值返回相应的字符并push进数组里
        result = result + String.fromCharCode(65 + ranNum);
        //result.push(String.fromCharCode(65+ranNum));
    }
    result = "250" + result;
    return result;
}
 
var foo = function () {
    const queryString = window.location.search;   
    const urlParams = new URLSearchParams(queryString);    
    let ownerId = urlParams.get('ownerId');
    let orderId = urlParams.get('orderId');
    console.log('ownerId:'+ownerId);
    console.log('orderId:'+orderId);
    var Owner = ownerId;
    var det = new sforce.SObject("Consumable_order__c");
    det.Id = orderId;
    det.recordTypeid = "{!$Label.RT_ConOrder_Delivery}";
    var resultdet = sforce.connection.update([det]);
 
    var OrdermainId = orderId;
    var sql = "select Id,Name,CreatedByid,Consumable_order__r.id,Consumable_order__c,Consumable_order__r.recordtypeid,Consumable_product__c,Consumable_count__c,Asset_Model_No__c,Intra_Trade_List_RMB__c from Consumable_Orderdetails__c where Consumable_order__r.id ='" + OrdermainId + "'";
    var sqlResult = sforce.connection.query(sql);
    var records = sqlResult.getArray("records");
 
    if (records.length > 0) {
        for (var i = 0; i < records.length; i++) {
            var esd = records[i];
            var countNum = esd["Consumable_count__c"];
            var OrderNnme = esd["Name"];
            var OrderId = esd["Consumable_order__c"];
            var ForeignTrade = esd["Intra_Trade_List_RMB__c"];
            var AssetModel = esd["Asset_Model_No__c"];
            var orderPro = esd["Consumable_product__c"];
            for (var j = 1; j <= countNum; j++) {
                var rac = new sforce.SObject("Consumable_order_details2__c");
                if (j.toString().length == 1) {
                    rac.Name = OrderNnme + '00' + j;
                } else if (j.toString().length == 2) {
                    rac.Name = OrderNnme + '0' + j;
                } else { rac.Name = OrderNnme + j; }
                rac.Consumable_order_minor__c = OrderId;
                rac.RecordTypeId = "{!$Label.RT_ConOrderDetail2_Delivery}";
                rac.Asset_Model_No__c = AssetModel;
                rac.Intra_Trade_List_RMB__c = ForeignTrade;
                var NewDate = new Date();
                NewDate.setFullYear(NewDate.getFullYear() + 5);
                NewDate.setDate(NewDate.getDate() - 1);
                rac.Deliver_date__c = new Date();
                rac.Sterilization_limit__c = NewDate;
                rac.Guarantee_period_for_products__c = new Date();
                rac.Consumable_product__c = orderPro;
                var rtingC = tringcodestr();
                rac.TracingCode__c = rtingC.toString();
                rac.SerialLotNo__c = rtingC.toString();
                rac.Bar_Code__c = (new Date()).valueOf() + "250" + rtingC.toString();
                rac.OwnerId = Owner;
                var result = sforce.connection.create([rac]);
                messages = getErrorMessages(result);
                if (messages.length > 0) {
                    alert(messages.join("\n"));
                }
            }
        }
        alert('发货成功!');
    }
};
foo();
    </script>
</apex:page>