| <?xml version="1.0" encoding="UTF-8"?> | 
| <WebLink xmlns="http://soap.sforce.com/2006/04/metadata"> | 
|     <fullName>SAP_Send_test</fullName> | 
|     <availability>online</availability> | 
|     <description>sap发货测试</description> | 
|     <displayType>button</displayType> | 
|     <linkType>javascript</linkType> | 
|     <masterLabel>发货(测试)</masterLabel> | 
|     <openType>onClickJavaScript</openType> | 
|     <protected>false</protected> | 
|     <url>{!RequireScript("/soap/ajax/51.0/connection.js")}  | 
| {!RequireScript("/soap/ajax/51.0/apex.js")}  | 
| //2021-10-22 gwy 版本更改为51.0 | 
| 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() {  | 
|   | 
|     if ('{!Consumable_order__c.Order_status__c}' == '已提交') {  | 
|         alert("请先审批订单");  | 
|         return;  | 
|     }else if ('{!Consumable_order__c.Order_status__c}' == '草案中') { | 
|         alert("请先批准订单"); | 
|         return;  | 
|     }; | 
|     var Owner = "{!Consumable_order__c.OwnerId}"; | 
|     var det = new sforce.SObject("Consumable_order__c");  | 
|     det.Id = "{!Consumable_order__c.Id}";  | 
|     det.recordTypeid = "{!$Label.RT_ConOrder_Delivery}"; | 
|     var resultdet = sforce.connection.update([det]);  | 
|   | 
|     var OrdermainId = "{!Consumable_order__c.Id}";  | 
|     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")); | 
|                 } | 
|             } | 
|         } | 
|         window.location.reload();  | 
|     } | 
| };  | 
|   | 
| foo();</url> | 
| </WebLink> |