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
<?xml version="1.0" encoding="UTF-8"?>
<WebLink xmlns="http://soap.sforce.com/2006/04/metadata">
    <fullName>Add_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/1527436225000/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;Add_submit_approval_process&apos;.toLowerCase());
    for (var i=0; i&lt;buttons.length; i++) {
        buttons[i].className = &quot;btnDisabled&quot;;
        buttons[i].disabled = true;
    }
    /** OLY_OCM-251 start **/
    var detailCAZ = new Array();
    detailCAZ = sforce.connection.query(&quot;select Id from Rental_Apply_Equipment_Set_Detail__c where Rental_Apply__c=&apos;{!Rental_Apply__c.Id}&apos; and Draft_Appended__c=1&quot;);
    if (&apos;{!Rental_Apply__c.Add_Approval_Status__c}&apos; != &apos;草案中&apos; || detailCAZ.size == 0) {
        alert(&apos;没有需要审批的追加附属品&apos;);
        return;
    }
    /** OLY_OCM-251 end **/
    if (!confirm(&quot;一旦提交此记录以待批准,根据您的设置您可能不再能够编辑此记录或将他从批准过程中调回。是否继续?&quot;)) {
        return;
    }
    // 希望到货日不能早于申请提交日-0418追加
    //if (&apos;{!Rental_Apply__c.Request_shipping_day__c}&apos;  &lt; &apos;{!TODAY()}&apos;) {
    //     alert(&apos;希望到货日不能早于申请提交日&apos;);
    //     return;
    // }
    if(&apos;{!Rental_Apply__c.Repair__c}&apos; != &apos;&apos;){
        var DeliveryGood = new Array(); 
        DeliveryGood = sforce.connection.query(&quot;select ReRepairObject_F__c,Status1__c,Agreed_Date__c,Repair_Estimated_date_formula__c,Repair_Final_Inspection_Date__c,Repair_Shipped_Date__c,Number_of_EffectiveContract__c, NewProductGuaranteeObject__c, Delivered_Product__r.Product2.Asset_Model_No__c from Repair__c where id =&apos;{!JSENCODE(Rental_Apply__c.RepairId__c)}&apos;&quot;);
        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;一般用户&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;
            }
        }
        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.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;{!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; &amp;&amp;
        &apos;{!Rental_Apply__c.Status__c}&apos; != &apos;已出库指示&apos;) {
        alert(&apos;请备品申请状态确认,申请状态已批准后才可以提交追加审批&apos;);
        return;
    }
 
    var rac = new sforce.SObject(&quot;Rental_Apply__c&quot;);
    rac.Id = &quot;{!Rental_Apply__c.Id}&quot;;
    rac.Add_Approval_Status__c = &quot;填写完毕&quot;;
    //状态修改成填写完毕后会在Handler里面更新追加的附属品信息
    var result = sforce.connection.update([rac]);
    var messages = getConnectDMLErrorMessages(result);
    if (messages.length &gt; 0) {
        alert(messages.join(&quot;\n&quot;));
        return;
    }
 
    var request = new sforce.ProcessSubmitRequest();
    request.objectId = &quot;{!Rental_Apply__c.Id}&quot;;
    var processResults = sforce.connection.process([request]);
 
    if (processResults[0].errors != null) {
        var back = new sforce.SObject(&quot;Rental_Apply__c&quot;);
        back.Id = &quot;{!Rental_Apply__c.Id}&quot;;
        back.Add_Approval_Status__c = &quot;草案中&quot;;
        var backResult = sforce.connection.update([back]);
        backMessages = getConnectDMLErrorMessages(backResult);
        if (backMessages.length &gt; 0) {
            alert(backMessages.join(&quot;\n&quot;));
            return;
        }
 
        var errmsg = processResults[0].errors.message.toString();
        alert(errmsg);
        return;
    }
    window.location.href = window.location;
};
foo();</url>
</WebLink>