binxie
2023-06-20 6d14c34d9a4e304bf3289e4ad957b091f27ef3b8
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
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
252
253
254
255
256
257
258
259
260
261
262
263
264
265
266
267
268
269
270
271
272
273
274
275
276
277
278
279
280
281
282
283
284
285
286
287
288
289
290
291
292
293
294
295
296
297
298
299
300
301
302
303
304
305
306
307
308
309
310
311
312
313
314
315
316
317
318
319
320
321
322
323
324
325
326
327
328
329
330
331
332
333
334
335
336
337
338
339
340
341
342
343
344
345
346
347
348
349
350
351
352
353
354
355
356
357
<?xml version="1.0" encoding="UTF-8"?>
<WebLink xmlns="http://soap.sforce.com/2006/04/metadata">
    <fullName>Send_NFM103</fullName>
    <availability>online</availability>
    <displayType>button</displayType>
    <linkType>javascript</linkType>
    <masterLabel>申请修理</masterLabel>
    <openType>onClickJavaScript</openType>
    <protected>false</protected>
    <url>// Ext.select(&apos;*[name=send_nfm103]&apos;).set({disabled:&apos;disabled&apos;,class:&apos;btnDisabled&apos;}, true);
var btns = document.getElementsByName(&quot;send_nfm103&quot;);
for (var i=0; i&lt;btns.length; i++) {
btns[i].disabled = true;
btns[i].className = &apos;btnDisabled&apos;;
}
{!RequireScript(&quot;/soap/ajax/51.0/connection.js&quot;)}
{!RequireScript(&quot;/soap/ajax/51.0/apex.js&quot;)}
{!RequireScript(&apos;/resource/1600400985000/CommonUtilJs&apos;)}
{!RequireScript(&apos;/resource/1415883095000/jquery183minjs&apos;)}
{!RequireScript(&apos;/resource/1648475357000/AWSService/AWSService.js&apos;)}
{!RequireScript(&apos;/resource/1656925336000/AWSService/AWSService.js&apos;)}
debugger
 
//2021-10-21 gwy 版本更改为51.0
var DetailedAddress = &apos;{!JSENCODE(Repair__c.Detailed_Address__c)}&apos;;
DetailedAddress = DetailedAddress.replace(/\r\n/g,&apos;&apos;)+&apos;&apos;;
var getConnectDMLErrorMessages = function (results) {
var messages = [],
i = 0,
len = results.length,
r;
for (; i &lt; len; i++) {
r = results[i];
if (!r.getBoolean(&quot;success&quot;)) {
messages = messages.concat(getConnectDMLMessagesOfAResult(r));
}
}
return messages;
};
var getConnectDMLMessagesOfAResult = function (res) {
var messages = [],
errors = res.getArray(&quot;errors&quot;),
i = 0,
len = errors.length,
e;
for (; i &lt; len; i++) {
e = errors[i];
messages.push(e.message + &quot; &quot; + getConnectDMLErrorFields(e));
}
return messages;
};
var getConnectDMLErrorFields = function (error) {
var fields = error.getArray(&apos;fields&apos;);
if (fields.length &gt; 0) {
return &quot;[&quot; + fields.join(&quot;,&quot;) + &quot;]&quot;
} else {
return &quot;&quot;;
}
};
 
 
var foo = function() {
//在一般修理新建修理时,如果是先款对象,需要弹出提示 thh 2022-03-04 start
var Dealer__c= &quot;{!Repair__c.Dealer__c}&quot;;
var sql3 = &quot;select id, FirstParagraph__c from Account where name = &apos;{!Repair__c.Dealer__c}&apos;&quot;;
var sql3Date = sforce.connection.query(sql3);
var records3 = sql3Date.getArray(&quot;records&quot;);
var FirstParagraph__c = &apos;&apos;;
if(records3.length &gt;= 1){
FirstParagraph__c = records3[0].FirstParagraph__c ;
}
if(FirstParagraph__c == &apos;true&apos;){
if(!confirm(&quot;该经销商为先款对象,是否继续申请修理?&quot;)){
return;
}
}
//在一般修理新建修理时,如果是先款对象,需要弹出提示 thh 2022-03-04 end
//wangweipeng 2021/11/19 start
//如果修理为 非维修合同的、不是多年保并且服务方式为 直送sorc修理的,提示一下
if(&apos;{!Repair__c.Number_of_EffectiveContract__c}&apos; == &apos;无&apos;
&amp;&amp; &apos;{!Repair__c.NewProductGuarante_Txt__c}&apos; != &apos;2: 多年保修&apos;
&amp;&amp; &apos;{!Repair__c.NewProductGuarante_Txt__c}&apos; != &apos;2: 服务多年保修&apos;
&amp;&amp; &apos;{!Repair__c.NewProductGuarante_Txt__c}&apos; != &apos;8: 市场多年保修&apos;
&amp;&amp; &apos;{!Repair__c.On_site_repair__c}&apos; == &apos;直送SORC修理&apos;)
{
if(!confirm(&quot;设备为非维修合同且非多年保修对象品,请确认是否直送SORC修理?&quot;)){
return;
}
}
//wangweipeng 2021/11/19 end
 
//XLIU-CGH5YY LY 2022/07/22 start
//如果修理为 非维修合同的、不是多年保并且服务方式为 直送sorc修理的,提示一下
if((&apos;{!Repair__c.Maintenance_Contract__c}&apos; != &apos;&apos; ||&apos;{!Repair__c.VM_Maintenance_Contract__c}&apos; !=&apos;&apos;) 
&amp;&amp; &apos;{!Repair__c.On_site_repair__c}&apos; == &apos;RC修理&apos; 
&amp;&amp; &apos;{!Repair__c.FSE_State__c}&apos; == &apos;山东省&apos;)
{
if(!confirm(&quot;该设备为维修合同或多年保修对象品,请确认是否送至RC修理?&quot;)){
return;
}
}
//XLIU-CGH5YY LY 2022/07/22 end
 
//WLIG-CAN6CJ LY 2022/01/27 start
// 申请修理时SAP修理申请日超过问题联络收到日1天,必须填写问超时报告的理由
var today = Date.parse(&quot;{!TODAY()}&quot;);
var dateReceiptQuestions = Date.parse(&quot;{!Repair__c.DateReceiptQuestions__c}&quot;);
var dates = (today -dateReceiptQuestions)/(24*60*60*1000);
if(&quot;{!$Profile.Id}&quot; != &quot;00e10000000Y3o5&quot; &amp;&amp; &quot;{!$User.Id}&quot; != &quot;0051000000AKgzv&quot; &amp;&amp; &quot;{!$User.Id}&quot; !=&quot;0051000000AKh05&quot;
&amp;&amp; &quot;{!$User.Id}&quot; != &quot;00510000004q1ed&quot;
&amp;&amp; &quot;{!Repair__c.DelayReportReason__c}&quot; == &quot;&quot; &amp;&amp; dates &gt; &quot;1&quot;
&amp;&amp; &quot;{!Repair__c.RepairSource__c}&quot; != &quot;QIS转修理&quot; )
{
alert(&quot;申请修理时SAP修理申请日超过问题联络收到日1天,必须填写问超时报告的理由&quot;);
return;
}
//WLIG-CAN6CJ LY 2022/01/27 end
 
 
//wangweipeng 2022/01/24 start
// 如果修理有维修合同,或是多年保修,那么如果 服务方式 没有选择 直送SORC修理或直送OGZ修理,做提示
if({!Repair__c.Quick_Repair_Sign__c} == true
&amp;&amp; (&apos;{!Repair__c.Number_of_EffectiveContract__c}&apos; == &apos;有&apos;
|| &apos;{!Repair__c.NewProductGuarante_Txt__c}&apos; == &apos;2: 多年保修&apos;
|| &apos;{!Repair__c.NewProductGuarante_Txt__c}&apos; == &apos;2: 服务多年保修&apos;
|| &apos;{!Repair__c.NewProductGuarante_Txt__c}&apos; == &apos;8: 市场多年保修&apos;)
&amp;&amp; (&apos;{!Repair__c.On_site_repair__c}&apos; == &apos;RC修理&apos; || &apos;{!Repair__c.On_site_repair__c}&apos; == &apos;办事处修理&apos; || &apos;{!Repair__c.On_site_repair__c}&apos; == &apos;现场修理&apos;))
{
if(&apos;{!Repair__c.RCCD__c}&apos; == &apos;2.东北&apos; || &apos;{!Repair__c.RCCD__c}&apos; == &apos;3.西北&apos;){
if(!confirm(&quot;该型号对应为合同或多年保对象品。如确认为大修理故障,需要选择直送SORC修理,请确认是否继续。&quot;)){
return;
}
}else if(&apos;{!Repair__c.RCCD__c}&apos; == &apos;1.华北&apos; || &apos;{!Repair__c.RCCD__c}&apos; == &apos;6.华南&apos; || &apos;{!Repair__c.RCCD__c}&apos; == &apos;4.西南&apos;){
if(!confirm(&quot;该型号对应为合同或多年保对象品。如确认为大修理故障,需要选择直送OGZ修理,请确认是否继续。&quot;)){
return;
}
}
}
//wangweipeng 2022/01/24 end
//wangweipeng 2021/08/02 直返收货地址 start
//如果不是华东、西北、西南和cic为奥辉产品,那么不需要这些判断
var returnsProductWay = &apos;{!Repair__c.Returns_Product_way__c}&apos;;
var falg = true;
if(returnsProductWay == &quot;&quot;){
if(!confirm(&quot;返品方式为空,是否继续申请修理!&quot;)){
return;
}
}
 
//2021/10/19 开发权限给华东、西北、西南和cic为奥辉产品
//2021/10/29 开发权限给华北和东北
//if(&quot;{!Repair__c.Sales_Dept_HP__c}&quot; == &quot;1.华北&quot; || &quot;{!Repair__c.Sales_Dept_HP__c}&quot; == &quot;2.东北&quot; || &quot;{!Repair__c.Sales_Dept_HP__c}&quot; == &quot;3.西北&quot; || &quot;{!Repair__c.Sales_Dept_HP__c}&quot; == &quot;4.西南&quot; || &quot;{!Repair__c.Sales_Dept_HP__c}&quot; == &quot;5.华东&quot; || &quot;{!Repair__c.is_aohui_product__c}&quot; == &quot;1&quot;){
//上海和备品不需要判断地址是否为空,其他都需要
//update wangweipeng 2021/12/27 start
//if(&quot;{!Repair__c.State_Hospital__c}&quot; == &quot;上海市&quot; || &quot;{!Repair__c.Asset_Owner__c}&quot; == &quot;Olympus&quot;){
if(&quot;{!Repair__c.Asset_Owner__c}&quot; == &quot;Olympus&quot;){
//update wangweipeng 2021/12/27 end
 
}else{
//var DetailedAddress = &apos;{!JSENCODE(Repair__c.Detailed_Address__c)}&apos;;
//DetailedAddress = DetailedAddress.replace(/\r\n/g,&apos;&apos;)+&apos;&apos;;
if(DetailedAddress != &apos;&apos;){
var prompt = &apos;当前直返收货地址为:&apos; + DetailedAddress +&apos;,您确认不修改了吗?&apos;;
if(!confirm(prompt)){
return;
}
}else{
alert(&apos;当前修理没有录入直返收货的详细地址,不能申请修理!&apos;);
return;
}
}
//}
//wangweipeng 2021/08/02 直返收货地址 end
 
// 设备废弃,不能提交申请 --- 16/10/21 韩超
var equipmentset = sforce.connection.query(&quot;SELECT Id, Status FROM Asset WHERE Id = &apos;{!Repair__c.Delivered_ProductId__c}&apos;&quot;);
var equipments = equipmentset.getArray(&quot;records&quot;);
if (equipments != null &amp;&amp; equipments.length &gt; 0) {
var equipment = equipments[0];
if (equipment.Status == &apos;廃棄&apos;){
alert(&quot;设备废弃,不能提交申请!&quot;);
return;
}
}
 
//
 
// Gzw 20200901
if(&quot;{!Repair__c.FSE_ApplyForRepair_time__c}&quot; != &quot;&quot;){
alert(&quot;已修理申请,不再修理申请了&quot;);
return;
}
// 20200901
 
//计算上限合同进行中的修理 LY 20230117 start
if(&quot;{!Repair__c.Limit_Price__c}&quot;==true){
    var repairSXAll = sforce.connection.query(&quot;SELECT Id,name FROM Repair__c WHERE Maintenance_Contract__c=&apos;{!Repair__c.Maintenance_ContractId__c}&apos; AND Status1__c=&apos;1.受理完毕&apos;&quot;);
    var repairSXCount = repairSXAll.getArray(&quot;records&quot;);
    var remainingAmountAll = sforce.connection.query(&quot;SELECT Id,name,Remaining_Amount__c FROM Maintenance_Contract__c WHERE ID=&apos;{!Repair__c.Maintenance_ContractId__c}&apos;&quot;);
    var remainingAmount= remainingAmountAll.getArray(&quot;records&quot;);
    if (repairSXCount.length &gt;0 &amp;&amp; remainingAmount[0].Remaining_Amount__c &lt;=150000){
        alert(&quot;该设备关联限次合同,目前修理剩余金额小于15万。请等待进行中修理完成后再进行申请&quot;);
        return;
    }
}
//计算上限合同进行中的修理 LY 20230117 end
 
//URF限次合同2期 LY 20220826 start
//限次合同大修次数还剩1次,这时创建了两个修理,第二个修理在点击申请修理时,给出提示不发sap
//限次合同大修次数为0时,这时创建修理给出合同外修理提示及清空维修合同
//维修合同保有设备 系列次数未修完
var surplusCount =0;
if (&quot;{!Repair__c.URF_Reapir__c}&quot;==true) {
var urfSeriesAllCount = sforce.connection.query(&quot;SELECT Id,URF_Series_F__c,Series_MaxRepairCount_F__c,Series_RepairCount_F__c FROM Maintenance_Contract_Asset__c WHERE Maintenance_Contract__c =&apos;{!Repair__c.Maintenance_ContractId__c}&apos; and Asset__c=&apos;{!Repair__c.Delivered_ProductId__c}&apos;&quot;);
var urfAsset = urfSeriesAllCount.getArray(&quot;records&quot;);
var seriesMaxRepairCount =0;
var seriesRepairCount =0;
 
if (urfAsset != null &amp;&amp; urfAsset.length &gt; 0) {
    seriesMaxRepairCount=urfAsset[0].Series_MaxRepairCount_F__c;
    seriesRepairCount=urfAsset[0].Series_RepairCount_F__c;
    surplusCount = seriesMaxRepairCount - seriesRepairCount;
}
 
//取限次系列
var urfSeriesAll = sforce.connection.query(&quot;SELECT Id,URFLimitSerial__c FROM ProductURF__c WHERE ID=&apos;{!Repair__c.URFLimitSerial__c}&apos;&quot;);
var urfSeriesInfo = urfSeriesAll .getArray(&quot;records&quot;);
var urfSeries =&apos;&apos;;
if (urfSeriesInfo != null &amp;&amp; urfSeriesInfo .length &gt; 0) {
    urfSeries =urfSeriesInfo[0].URFLimitSerial__c ; 
}
//计算进行中的修理
var repairAll = sforce.connection.query(&quot;SELECT Id,name FROM Repair__c WHERE Maintenance_Contract__c=&apos;{!Repair__c.Maintenance_ContractId__c}&apos; AND Status1__c=&apos;1.受理完毕&apos; AND Delivered_Product__r.Product2.ProductURF__r.URFLimitSerial__c =&apos;&quot;+urfSeries+&quot;&apos;&quot;);
var repairCount = repairAll.getArray(&quot;records&quot;);
if (repairCount.length &gt;0 &amp;&amp; surplusCount==1){
alert(&quot;该设备关联限次合同,目前剩余次数小于送修设备。请等待进行中修理完成后再进行申请&quot;);
return;
}
 
}
//URF限次合同2期 LY 20220826 end
 
if (&quot;{!Repair__c.Status__c}&quot; != &quot;草案中&quot; &amp;&amp; &quot;{!Repair__c.Status__c}&quot; != &quot;1.受理完毕(SAP待发送)&quot; &amp;&amp; &quot;{!Repair__c.Status__c}&quot; != &quot;4.修理品返送阶段&quot;) {
alert(&quot;不是草案中不能申请&quot;);
} else {
// HWAG-BDV5W7---XHL-20190711---Start
if (&quot;{!Repair__c.Dealer__c}&quot; != &quot;&quot;){
var findInvalidLicense = sforce.connection.query(&quot;select Id,Is_Validity__c from Account where Is_Validity__c = false And Id = &apos;{!Repair__c.DealerId__c}&apos;&quot;);
if (findInvalidLicense.size &gt;0) {
alert(&quot;经销商三证不在有效期,无法送修&quot;);
return;
}
 
}
// HWAG-BDV5W7---XHL-20190711---End
// 20200604
if(&quot;{!Repair__c.ifDeadHurt__c}&quot; == &quot;有&quot;){
if (!confirm(&quot;是否确认AE要提交?&quot;)) {
return;
}
}
// 20200604
 
// 20201106 gzw
if(&quot;{!Repair__c.Day_later_30__c}&quot; == &quot;是&quot;){
alert(&quot;创建后超过30天,不能申请了&quot;);
return;
}
// 20201106 gzw
 
 
var repair = new sforce.SObject(&quot;Repair__c&quot;);
repair.Id = &quot;{!Repair__c.Id}&quot;;
//LJPH-C9F3Z2 LY 20220110 Star
//if(&quot;{!Repair__c.Recall_Correspondence__c}&quot;==&apos;1&apos;){
//repair.Recall_Correspondence_Apply__c = &apos;是&apos;;
//}else{
//repair.Recall_Correspondence_Apply__c = &apos;否&apos;;
//}
//LJPH-C9F3Z2 LY 20220110 end
//URF限次合同2期 LY 20220826 start
//限次合同大修次数还剩0次时取消掉已经关联的维修合同
var prompt11 = &apos;合同内大修次数已用完,当前修理为合同外的修理,是否继续?&apos;;
if (&quot;{!Repair__c.URF_Reapir__c}&quot;==true &amp;&amp; surplusCount==0){
    repair.Maintenance_Contract__c = null;
        repair.MaintenanceContractType__c = null;
    if(!confirm(prompt11)){
        return;
    }
}
//URF限次合同2期 LY 20220826 end
 
var resultTmp = sforce.connection.update([repair]);
var messagesTmp = getConnectDMLErrorMessages(resultTmp);
if (messagesTmp.length &gt; 0) {
alert(messagesTmp.join(&quot;\n&quot;));
} else {
var resultSet = sforce.connection.query(&quot;SELECT Id, JingliApprovalManager__c, BuchangApprovalManager__c, ZongjianApprovalManager__c FROM User WHERE Id = &apos;{!Repair__c.Incharge_StaffId__c}&apos;&quot;);
var records = resultSet.getArray(&quot;records&quot;);
if (records != null &amp;&amp; records.length &gt; 0) {
var staff = records[0];
repair.JingliApprovalManager__c = staff.JingliApprovalManager__c == null ? staff.Id : staff.JingliApprovalManager__c;
repair.BuchangApprovalManager__c = staff.BuchangApprovalManager__c == null ? staff.Id : staff.BuchangApprovalManager__c;
repair.ZongjianApprovalManager__c = staff.ZongjianApprovalManager__c == null ? staff.Id : staff.ZongjianApprovalManager__c;
var serverTimestamp = sforce.connection.getServerTimestamp();
repair.FSE_ApplyForRepair_time__c = serverTimestamp.timestamp;
repair.DW_Sign_Txt__c = {!Repair__c.DW_Sign__c}; //20210608 ljh SFDC-C3CCN4 end
repair.status__c = &apos;1.受理完毕&apos;;
repair.Service_contract_judege_day__c = new Date();
// 非对象的时候 点击修理画面的【申请修理】的时候,SAP传输 start
/*if(&quot;{!Repair__c.DOJ_Status__c}&quot; == &quot;非对象&quot; &amp;&amp;((&quot;{!Repair__c.QIS_ID__c}&quot; != &quot;&quot; &amp;&amp; &quot;{!Repair__c.QIS_ID__c}&quot; != null) || &quot;{!Repair__c.is_CNBuy__c}&quot; == &quot;true&quot;)){*/
// 追加新字段,判断国内采购品、Failure_Occurrence_Date、OIS号码不为空
if(&quot;{!Repair__c.DOJ_Status__c}&quot; == &quot;非对象&quot; &amp;&amp; &quot;{!Repair__c.SAP_condition__c}&quot; == &quot;true&quot;){
repair.SAP_Transfer_time__c = serverTimestamp.timestamp;
}
// 非对象的时候 点击修理画面的【申请修理】的时候,SAP传输 end
var result = sforce.connection.update([repair]);
var messages = getConnectDMLErrorMessages(result);
if (messages.length &gt; 0) {
alert(messages.join(&quot;\n&quot;));
} else {
//add wangweipeng 2021/12/09 start
if(&quot;{!Repair__c.SalesOfficeCode_selection__c}&quot; == &quot;成都RC&quot;){
alert(&apos;现阶段,成都RC仅受理四川(西藏)内镜、西南全域CV/CLV,其余实物请发至广州RC。&apos;);
}
//add wangweipeng 2021/12/09 end
location.reload();
}
var retSet = sforce.connection.query(&quot;SELECT Id,NewProductGuarante_Formula__c,ProductGuarante_Create__c FROM Repair__c WHERE Id = &apos;{!Repair__c.Id}&apos;&quot;);
var rds = retSet.getArray(&quot;records&quot;);
if (rds != null &amp;&amp; rds.length &gt; 0) {
var repairAft = rds[0];
 
if (repairAft.NewProductGuarante_Formula__c != repairAft.ProductGuarante_Create__c) {
alert(&apos;该设备保修信息已发生变化,请了解&apos;);
}
}
} else {
alert(&quot;没有找到 修理委托者&quot;);
}
}
}
}
 
//foo();
 
var staticResource = JSON.parse(sforce.apex.execute(&quot;ButtonJsUtility&quot;,&quot;getStaticResource&quot;,{
sobj:&quot;Repair__c&quot;
}));
AWSService.query(staticResource.queryUrl,&apos;{!Repair__c.AWS_Data_Id__c}&apos;,function(data){
console.log(data);
if (data &amp;&amp; data.object) {
DetailedAddress = data.object.detailedAddress;
}
foo();
},staticResource.token);</url>
</WebLink>