Li Jun
2022-05-11 b776940205e893302f77d24c4285613f228b44c6
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
<?xml version="1.0" encoding="UTF-8"?>
<WebLink xmlns="http://soap.sforce.com/2006/04/metadata">
    <fullName>submit_approval_process</fullName>
    <availability>online</availability>
    <displayType>button</displayType>
    <linkType>javascript</linkType>
    <masterLabel>提交待审批</masterLabel>
    <openType>onClickJavaScript</openType>
    <protected>false</protected>
    <url>{!RequireScript(&quot;/soap/ajax/51.0/connection.js&quot;)}
{!RequireScript(&quot;/soap/ajax/51.0/apex.js&quot;)}
{!RequireScript(&quot;/resource/CommonUtilJs&quot;)}
//2021-10-22 gwy 版本更改为51.0
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() {
    var buttons = document.getElementsByName(&apos;submit_approval_process&apos;.toLowerCase());
    for (var i=0; i&lt;buttons.length; i++) {
        buttons[i].className = &quot;btnDisabled&quot;;
        buttons[i].disabled = true;
    }
    if (!confirm(&quot;一旦提交此记录以待批准,根据您的设置您可能不再能够编辑此记录或将他从批准过程中调回。是否继续?&quot;)) {
        return;
    }
     //1540 you 试用(无询价)目的的备品申请单,不能关联询价信息!
    if(&apos;{!Rental_Apply__c.demo_purpose2__c}&apos; == &apos;试用(无询价)&apos; &amp;&amp; &apos;{!Rental_Apply__c.Follow_UP_Opp__c}&apos; !=null &amp;&amp; &apos;{!Rental_Apply__c.Follow_UP_Opp__c}&apos; != &apos;&apos;){
       alert(&apos;试用(无询价)目的的备品申请单,不能关联询价信息!&apos;);
       return;
    }
    // 希望到货日不能早于申请提交日-0418追加
    if (&apos;{!Rental_Apply__c.Request_shipping_day__c}&apos;  &lt; &apos;{!TODAY()}&apos; ) {
        alert(&apos;希望到货日不能早于申请提交日&apos;);
        return;
    }
    var raesdList = new Array();
    raesdList = sforce.connection.query(&quot;select Id, Fixture_Model_No_F__c, Product_Status_Flag_F__c&quot;
            + &quot; from Rental_Apply_Equipment_Set_Detail__c where Rental_Apply__c =&apos;{!Rental_Apply__c.Id}&apos;&quot;);
    raesdList = raesdList.getArray(&quot;records&quot;);
    var modelSet = new Set();
    var stoppedSet = new Set();
    for(var i=0;i&lt;raesdList.length;i++){
        modelSet.add(raesdList[i].Fixture_Model_No_F__c);
        if(&apos;false&apos; == raesdList[i].Product_Status_Flag_F__c 
            &amp;&amp; (&apos;{!Rental_Apply__c.demo_purpose2__c}&apos; == &apos;试用(有询价)&apos; || &apos;{!Rental_Apply__c.demo_purpose2__c}&apos; == &apos;试用(无询价)&apos;))
             {
            stoppedSet.add(raesdList[i].Fixture_Model_No_F__c);
        }
    }
 
    if(stoppedSet.size&gt; 0) {
        alert( Array.from(stoppedSet).join(&apos;,&apos;) + &apos; 产品注册证状态为停止,不可申请&apos;);
        return;
    }
    if(&apos;{!Rental_Apply__c.demo_purpose2__c}&apos; == &apos;索赔QIS&apos;){
        var DeliveryGood = new Array();
        DeliveryGood = sforce.connection.query(&quot;select Id, nonyushohin__r.Product2.Fixture_Model_No_T__c&quot;
            + &quot; from QIS_Report__c where id =&apos;{!JSENCODE(Rental_Apply__c.QIS_numberId__c)}&apos;&quot;);
        var records= DeliveryGood.getArray(&quot;records&quot;);
        if(records.length == 0 || !modelSet.has(records[0].nonyushohin__r.Product2.Fixture_Model_No_T__c)){
            alert(&apos;申请的型号必须与QIS申请型号一致&apos;);
            return;
        }
    }
    if(&apos;{!Rental_Apply__c.Repair__c}&apos; != &apos;&apos;){
        var DeliveryGood = new Array();
        DeliveryGood = sforce.connection.query(&quot;select Id, Repair_Rank__c, DW_Sign_Txt__c, FSE_ApplyForRepair_Day__c, Delivered_Product__r.Product2.Fixture_Model_No_T__c&quot;
            + &quot; , ReRepairObject_F__c,Status1__c,Agreed_Date__c,Repair_Estimated_date_formula__c,Repair_Ordered_Date__c&quot;
            + &quot; , IfCheckFixture__c&quot;
            + &quot; , Repair_Final_Inspection_Date__c,Repair_Shipped_Date__c,Number_of_EffectiveContract__c, NewProductGuaranteeObject__c, Delivered_Product__r.Product2.Asset_Model_No__c&quot;
            + &quot; from Repair__c where id =&apos;{!JSENCODE(Rental_Apply__c.RepairId__c)}&apos;&quot;);
        // 修理Data records[0]
        var records= DeliveryGood.getArray(&quot;records&quot;);
        if(&apos;{!Rental_Apply__c.Demo_purpose1__c}&apos;  == &apos;维修代用&apos; &amp;&amp; &apos;{!Rental_Apply__c.demo_purpose2__c}&apos; != &apos;索赔QIS&apos;) {
             if(!modelSet.has(records[0].Delivered_Product__r.Product2.Fixture_Model_No_T__c)){
                alert(&apos;申请的型号必须与送修的型号一致&apos;);
                return;
             }
        }
        if(&apos;{!Rental_Apply__c.Demo_purpose1__c}&apos;  == &apos;维修代用&apos; &amp;&amp; &apos;{!Rental_Apply__c.demo_purpose2__c}&apos;  == &apos;一般用户&apos; ){
            if (records[0].Repair_Estimated_date_formula__c == null) {
                alert(&apos;一般维修无报价日,不可借用备品&apos;);
                return;
            }
            else if (records[0].Repair_Estimated_date_formula__c &lt; &apos;2019-07-01&apos; &amp;&amp; records[0].Agreed_Date__c == null) {
                alert(&apos;报价日在2019/7/1之前且户同意日为空,不可借用备品&apos;);
                return;
            }
            //20210608 ljh SFDC-C3CCN4 start
            if(records[0].Repair_Rank__c  == &apos;&apos; || records[0].Repair_Rank__c  == null){
                alert(&apos;报价等级为空不能申请备品&apos;);
                return;
            }else{
                if(records[0].DW_Sign_Txt__c == &apos;false&apos; &amp;&amp; records[0].Repair_Rank__c == &apos;DW&apos;){
                    alert(&apos;DW报价等级下此型号不符合备品申请借用条件&apos;);
                    return;
                }
                if(records[0].Repair_Rank__c == &apos;D1&apos;
                ||records[0].Repair_Rank__c == &apos;D2&apos;
                ||records[0].Repair_Rank__c == &apos;D3&apos;
                ||records[0].Repair_Rank__c == &apos;E2&apos;){
                    alert(&apos;报价等级不符合备品申请借用条件&apos;);
                    return;
                }
            }
            //20210608 ljh SFDC-C3CCN4 end
        }
        if(&apos;{!Rental_Apply__c.Demo_purpose1__c}&apos;  == &apos;维修代用&apos; &amp;&amp; &apos;{!Rental_Apply__c.demo_purpose2__c}&apos;  == &apos;市场多年保修&apos; ){
            if (records[0].FSE_ApplyForRepair_Day__c == null) {
                alert(&apos;市场多年保修,没有[FSE修理申请日],不可借用备品&apos;);
                return;
            }
        }
        if(&apos;{!Rental_Apply__c.Demo_purpose1__c}&apos;  == &apos;维修代用&apos; &amp;&amp; &apos;{!Rental_Apply__c.demo_purpose2__c}&apos;  == &apos;故障排查&apos; ){
            if (records[0].FSE_ApplyForRepair_Day__c == null) {
                alert(&apos;故障排查,没有[FSE修理申请日],不可借用备品&apos;);
                return;
            }
            if(records[0].Repair_Ordered_Date__c != null) {
                alert(&apos;故障排查,[4.修理品RC受理日]必须为空&apos;);
                return;
            }
            if(records[0].IfCheckFixture__c == &apos;false&apos;){
                alert(&apos;不满足故障排查目的&apos;);
                return;
            }
        }
        
        if (&apos;{!Rental_Apply__c.RecordTypeId}&apos; != &quot;01210000000RHIn&quot;
                &amp;&amp; &apos;{!$Profile.Id}&apos; != &apos;00e10000000Y3o5&apos;
                &amp;&amp; records[0].NewProductGuaranteeObject__c == &apos;8: 市场多年保修&apos;
                &amp;&amp; &apos;{!Rental_Apply__c.demo_purpose2__c}&apos; != &apos;市场多年保修&apos;) {
            alert(&apos;无偿区别标志为8: 市场多年保修,必须选择市场多年保修。&apos;);
        }
        if(records[0].Repair_Final_Inspection_Date__c != null){
            alert(&apos;存在修理最终检测日,不可借用备品&apos;);
            return;
        }
        if(records[0].Repair_Shipped_Date__c != null){
            alert(&apos;存在RC修理返送日,不可借用备品&apos;);
            return;
        }
        if(records[0].Status1__c ==&apos;0.删除&apos; ||records[0].Status1__c ==&apos;0.取消&apos; ||records[0].Status1__c ==&apos;5.完毕&apos; ){
            alert(&apos;修理已经结束,不能申请备品&apos;);
            return;
        }
        if ( &apos;{!Rental_Apply__c.demo_purpose2__c}&apos;  == &apos;再修理&apos; &amp;&amp; records[0].ReRepairObject_F__c == &apos;false&apos;) {
            alert(&apos;不属于再受理参考对象,不可借用备品&apos;);
            return;
        }
        if (&apos;{!Rental_Apply__c.RecordTypeId}&apos; != &apos;01210000000RHIn&apos;
                &amp;&amp; &apos;{!Rental_Apply__c.demo_purpose2__c}&apos; != &apos;保修用户&apos;
                &amp;&amp; &apos;{!Rental_Apply__c.demo_purpose2__c}&apos; != &apos;市场多年保修&apos;
                &amp;&amp; records[0].Number_of_EffectiveContract__c == &apos;有&apos; ) {
            alert(&apos;有维修合同,必须选择保修用户.&apos;);
            return;
        }
        var AssetModelNo = records[0].Delivered_Product__r.Product2.Asset_Model_No__c;
        if (&apos;{!Rental_Apply__c.RecordTypeId}&apos; != &apos;01210000000RHIn&apos; &amp;&amp; records[0].Number_of_EffectiveContract__c == &apos;无&apos;
                &amp;&amp; (records[0].NewProductGuaranteeObject__c == &apos;2: 服务多年保修&apos;
                &amp;&amp; (AssetModelNo == &apos;LTF-190-10-3D&apos; || AssetModelNo == &apos;LTF-S190-5&apos; || AssetModelNo == &apos;CYF-VHA&apos; || AssetModelNo == &apos;CYF-VA2&apos; || AssetModelNo == &apos;CYF-5A&apos;|| AssetModelNo == &apos;LTF-S190-10&apos;|| AssetModelNo == &apos;OER-AW&apos;|| AssetModelNo == &apos;URF-V&apos;|| AssetModelNo == &apos;URF-V2&apos;|| AssetModelNo == &apos;URF-P6&apos;))
                &amp;&amp; &apos;{!Rental_Apply__c.demo_purpose2__c}&apos; != &apos;保修用户&apos; ) {
            alert(&apos;此设备型号多年保修,请选择保修用户.&apos;);
            return;
        }
 
        if (&apos;{!Rental_Apply__c.RecordTypeId}&apos; != &apos;01210000000RHIn&apos;
                &amp;&amp; records[0].NewProductGuaranteeObject__c == &apos;2: 服务多年保修&apos;
                &amp;&amp; (AssetModelNo == &apos;CV-V1&apos; || AssetModelNo == &apos;CV-V1(A)&apos; || AssetModelNo == &apos;CV-V1(B)&apos; || AssetModelNo == &apos;GIF-LV1&apos; || AssetModelNo == &apos;CF-LV1L&apos; || AssetModelNo == &apos;CF-LV1I&apos; || AssetModelNo == &apos;MAJ-1910&apos;)
                &amp;&amp; (&apos;{!Rental_Apply__c.demo_purpose2__c}&apos; == &apos;一般用户&apos; || &apos;{!Rental_Apply__c.demo_purpose2__c}&apos; == &apos;再修理&apos;)
        ) {
            alert(&apos;奥辉设备,保修期内不提供备品.&apos;);
            return;
        }
    }
    if (&apos;{!Rental_Apply__c.SupplementCreated__c}&apos; == &apos;1&apos; &amp;&amp; &apos;{!Rental_Apply__c.OPDPlan__c}&apos; != &apos;&apos;) {
        var raId = &quot;{!Rental_Apply__c.Id}&quot;;
        var raesCountCheck = sforce.apex.execute(&quot;OpdPlanWebService&quot;, &quot;raesCountCheck&quot;, {rentalApplyId: raId});
        if(raesCountCheck != &apos;OK&apos;){
            alert(raesCountCheck);
            return;
        }
 
    }
 
    if(&apos;{!Rental_Apply__c.Campaign__c}&apos; != null &amp;&amp; &apos;{!Rental_Apply__c.Campaign__c}&apos; != &apos;&apos;){
        var DeliveryGood = new Array();
        DeliveryGood = sforce.connection.query(&quot;select Status, Rental_Apply_Flag__c from Campaign where id =&apos;{!Rental_Apply__c.CampaignId__c}&apos;&quot;);
        var records= DeliveryGood.getArray(&quot;records&quot;);
 
        var interval = records[0].Status;
        var records_Date =  records[0].Rental_Apply_Flag__c;
        if (interval == &apos;草案中&apos;) {
             alert(&apos;学会状态为草案中,不能提交&apos;);
             return;
        }
        if (interval == &apos;申请中&apos;) {
             alert(&apos;学会状态为申请中,不能提交&apos;);
             return;
        }
        if (interval == &apos;已结束&apos;) {
             alert(&apos;学会状态为已结束,不能提交&apos;);
             return;
        }
        if (interval == &apos;已提交报告&apos;) {
             alert(&apos;学会状态为已提交报告,不能提交&apos;);
             return;
        }
        if (interval == &apos;取消申请中&apos;) {
             alert(&apos;学会状态为取消申请中,不能提交&apos;);
             return;
        }
        if (interval == &apos;取消&apos;) {
             alert(&apos;学会状态为取消,不能提交&apos;);
             return;
        }
        if (&apos;{!TODAY()}&apos; &gt;= &apos;{!Rental_Apply__c.Request_shipping_day__c}&apos; -7) {
             alert(&quot;必须提前于希望到货日7天以上提交申请&quot;);
             return;
        }
    }
    if(&apos;{!Rental_Apply__c.QIS_number__c}&apos; != null &amp;&amp; &apos;{!Rental_Apply__c.QIS_number__c}&apos; != &apos;&apos;){
        var DeliveryGood = new Array();
        DeliveryGood = sforce.connection.query(&quot;select id,next_action__c from QIS_report__c where id =&apos;{!Rental_Apply__c.QIS_ID_Line__c}&apos;&quot;);
        var records= DeliveryGood.getArray(&quot;records&quot;);
        var interval = records[0].next_action__c; 
        if (interval == &apos;送回&apos;) {
            alert(&quot;QIS 已送回,不能再申请备品了&quot;);
            return;
        }
    }
    // share
    var userAccess = new Array();
    userAccess.push(&apos;{!Rental_Apply__c.applyUserId__c}_Edit&apos;);
   //   SWAG-BZMA8W 去掉服务经理部长的共享 start 
   //update lxy DLIU-BZNBG9 去掉服务经理部长共享
   //userAccess.push(&apos;{!Rental_Apply__c.JingliApprovalManagerId__c}_Read&apos;);
    // userAccess.push(&apos;{!Rental_Apply__c.SalesManagerId__c}_Read&apos;);//20210727 ljh SFDC-C54C33 update 共享触发器完成
    //update lxy DLIU-BZNBG9 去掉服务经理部长共享
   //userAccess.push(&apos;{!Rental_Apply__c.BuchangApprovalManagerId__c}_Read&apos;);
   //   SWAG-BZMA8W 去掉服务经理部长的共享 end
    //userAccess.push(&apos;{!Rental_Apply__c.BuchangApprovalManagerSalesId__c}_Read&apos;);//20210727 ljh SFDC-C54C33 update 共享触发器完成
    //userAccess.push(&apos;{!Rental_Apply__c.ZongjianApprovalManagerId__c}_Read&apos;);//20210727 ljh SFDC-C54C33 update 共享触发器完成
    //userAccess.push(&apos;{!Rental_Apply__c.Status__c}_Read&apos;);
 
    var rtn = sforce.apex.execute(&apos;ControllerUtil&apos;,&apos;setSObjectShare&apos;,{sobjectName:&apos;Rental_Apply__Share&apos;,rowCause:&apos;ApplyUserShare__c&apos;,parentId:&apos;{!Rental_Apply__c.Id}&apos;,userAccess:userAccess,ownerId:&apos;{!Rental_Apply__c.OwnerId}&apos;});
    if (rtn != &apos;OK&apos;) {
        alert(rtn);
        return;
    }
 
    //追加备品申请状态确认,已经提交过的申请,不能重复提交Status__c
    if (&apos;{!Rental_Apply__c.Status__c}&apos; == &apos;填写完毕&apos; ||
        &apos;{!Rental_Apply__c.Status__c}&apos; == &apos;申请中&apos; ||
        &apos;{!Rental_Apply__c.Status__c}&apos; == &apos;已批准&apos; ||
        //现在申请书的Status__c已经没有引当完了状态。所以这里不需要判断
        //&apos;{!Rental_Apply__c.Status__c}&apos; == &apos;引当完了&apos; ||
        &apos;{!Rental_Apply__c.Status__c}&apos; == &apos;已出库指示&apos; ||
        &apos;{!Rental_Apply__c.Status__c}&apos; == &apos;删除&apos; ||
        &apos;{!Rental_Apply__c.Status__c}&apos; == &apos;取消&apos; ) {
        alert(&apos;请备品申请状态确认,已经提交过的申请,不能重复提交&apos;);
        return;
    }
 
        // 没有明细的一览check
    var raesList = new Array(); 
    raesList = sforce.connection.query(&quot;select Id from Rental_Apply_Equipment_Set__c where RetalFSetDetail_Cnt__c = 0 AND Rental_Apply__c =&apos;{!Rental_Apply__c.Id}&apos;&quot;);
    var records= raesList.getArray(&apos;records&apos;); 
    if(records.length &gt; 0){
        alert(&apos;有没有明细的借出备品配套一览,不能提交&apos;);
        return;
    }
    //2022-2-23 yjk 查询Rental_Apply__c 对象以获得SalesManager__c 的值 start
    var racs = sforce.connection.query(&quot;select id,Status__c, SalesManager__c from Rental_Apply__c where id = &apos;{!Rental_Apply__c.Id}&apos;&quot;);
    var rac = racs.getArray(&quot;records&quot;)[0];
    //2022-2-23 yjk 查询Rental_Apply__c 对象以获得SalesManager__c 的值 end
    rac.Status__c = &quot;填写完毕&quot;;
    //2022-2-23 yjk 提交时将经理的Name字段赋给备品提交时经理(文本)字段 start
    var manageUsers = sforce.connection.query(&quot;select id,name from User where id = &apos;&quot;+rac.SalesManager__c +&quot;&apos;&quot;);
    rac.SalesManagerSubmit__c = manageUsers.getArray(&quot;records&quot;)[0].Name; 
    //2022-2-23 yjk 提交时将经理的Name字段赋给备品提交时经理(文本)字段 end
    var result = sforce.connection.update([rac]);
    var messages = getConnectDMLErrorMessages(result);
    if (messages.length &gt; 0) {
        alert(messages.join(&quot;\n&quot;));
        return;
    }
    window.location.href = window.location;
};
foo();</url>
</WebLink>