liuyn
2024-03-11 a87f1c3df03078814ee97ad0c8ac200a232419e9
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
import { LightningElement, track, wire, api } from 'lwc';
import { CloseActionScreenEvent } from 'lightning/actions';
import { ShowToastEvent } from 'lightning/platformShowToastEvent';
import { CurrentPageReference,NavigationMixin } from 'lightning/navigation';
import { updateRecord } from 'lightning/uiRecordApi';
import LightningConfirm from 'lightning/confirm';
import init from '@salesforce/apex/lexSubmitApprovalRentalApplyController.init';
import updateRentalApply from '@salesforce/apex/lexSubmitApprovalRentalApplyController.updateRentalApply'
import RentalApplyCheckForSAoneEle from '@salesforce/apex/RentalApplyWebService.RentalApplyCheckForSAoneEle';
import raesCountCheck from '@salesforce/apex/OpdPlanWebService.raesCountCheck';
import STATUS_PROCESS_STATE from '@salesforce/label/c.StatusProcessState';
import setSObjectShare from '@salesforce/apex/ControllerUtil.setSObjectShare';
 
export default class lexSubmitApprovalRentalApply extends LightningElement {
    @api recordId;
    @track StatusProcessState=STATUS_PROCESS_STATE;
    
    @wire(CurrentPageReference)
    getStateParameters(currentPageReference){
        if(currentPageReference){
            const urvalue=currentPageReference.state.recordId;
            if(urvalue){
                let str=`${urvalue}`;
                this.recordId=str;
            }
        }
    }
 
    connectedCallback(){
        init({
            recordId:this.recordId
        }).then(res=>{
            if(JSON.stringify(res) == '{}'){
                this.ToastShow('没有查到需要的数据','warning');
                return;
            }    
            const SUBMIT = LightningConfirm.open({
                message: "一旦提交此记录以待批准,根据您的设置您可能不再能够编辑此记录或将他从批准过程中调回。是否继续?",
                variant: 'headerless',
                label: '提示信息',
            });
            if(SUBMIT==false){
                this.dispatchEvent(new CloseActionScreenEvent());
                return;
            }
 
            //1540 you 试用(无询价)目的的备品申请单,不能关联询价信息! 
            if(res.demoPurpose2 == '试用(无询价)' && res.followUPOpp!= null && res.followUPOpp !=''){
                this.showToast('试用(无询价)目的的备品申请单,不能关联询价信息!','warning');
                return;
            }
            // 已购待货的申请单审批时,需要check注残的状态 
            if(res.statuAchievements != ''){
                RentalApplyCheckForSAoneEle({
                    SaID:res.statuAchievementsId
                }).then(checkForSAoneEle=>{
                    if(checkForSAoneEle!='Fin'){
                        this.showToast(Fin,'warning');
                        return;
                    }
                })
            }
            let today=new Date();
            console.log('today==='+today);
            // 希望到货日不能早于申请提交日-0418追加 
            if(res.requestShippingDay < today){
                this.showToast('希望到货日不能早于申请提交日','warning');
                return;
            }
 
            if(res.stoppedSet && res.stoppedSet.length > 0){
                this.showToast(Array.from(stoppedSet).join(',')+' 产品注册证状态为停止,不可申请','warning');
                return;
            }
 
            if(res.demoPurpose2 == '索赔QIS'){
                if(res.qisSize==0 || res.qISisAgree){
                    this.showToast('申请的型号必须与QIS申请型号一致','warning');
                    return;
                }
            }
 
            if(res.repairId!='' || res.repairId!= null){
                if(res.demoPurpose1 == '维修代用' && res.demoPurpose2 == '索赔QIS'){
                    if(!res.modelSet.has(deliveredProductFixtureModelNo)){
                        this.showToast('申请的型号必须与送修的型号一致','warning');
                        return;
                    }
                }
            }
 
            if(res.demoPurpose1 == '维修代用' && res.demoPurpose2 == '一般用户'){
                if(res.repairEstimatedDateFormula == null){
                    this.showToast('一般维修无报价日,不可借用备品','warning');
                    return;
                }else if(res.repairEstimatedDateFormula<'2019-07-01' && res.agreedDate == null){
                    this.showToast('报价日在2019/7/1之前且户同意日为空,不可借用备品','warning');
                    return;
                }
                //20210608 ljh SFDC-C3CCN4 start 
                if(res.repairRank==''||res.repairRank==null){
                    this.showToast('报价等级为空不能申请备品','warning');
                    return;
                }else{
                    if(!res.dWSignTxt && res.repairRank == 'DW'){
                        this.showToast('DW报价等级下此型号不符合备品申请借用条件');
                        return;
                    }
                    if(res.repairRank == 'D1' || res.repairRank == 'D2' || res.repairRank == 'D3' || res.repairRank == 'E2'){
                        this.showToast('报价等级不符合备品申请借用条件','warning');
                        return;
                    }
                }
                //20210608 ljh SFDC-C3CCN4 end 
            }
 
            if(res.demoPurpose1 == '维修代用' && res.demoPurpose2 == '市场多年保修'){
                if(res.fSEApplyForRepairDay == null){
                    this.showToast('市场多年保修,没有[FSE修理申请日],不可借用备品','warning');
                    return;
                }
            }
            if(res.demoPurpose1 == '维修代用' && res.demoPurpose2 == '故障排查'){
                if(res.fSEApplyForRepairDay == null){
                    this.showToast('故障排查,没有[FSE修理申请日],不可借用备品','warning');
                    return;
                }
                if(res.repairOrderedDate!=null){
                    this.showToast('故障排查,[4.修理品RC受理日]必须为空','warning');
                    return;
                }
                if(!res.ifCheckFixture){
                    this.showToast('不满足故障排查目的','warning');
                    return;
                }
            }
 
            if(res.demoRequestPastDataId != res.recordTypeId && res.profileId!='00e10000000Y3o5' && res.newProductGuaranteeObject == '8: 市场多年保修' && res.demoPurpose2!= '市场多年保修'){
                this.showToast('无偿区别标志为8: 市场多年保修,必须选择市场多年保修。','warning');
                return;
            }
            if(res.repairFinalInspectionDate != null){
                this.showToast('存在修理最终检测日,不可借用备品','warning');
                return;
            }
            if(res.status1 == '0.删除' || res.status1 == '0.取消' || res.status1 == '5.完毕'){
                this.showToast('修理已经结束,不能申请备品','warning');
                return;
            }
            if(res.demoPurpose2 == '再修理' && !res.reRepairObjectF){
                this.showToast('不属于再受理参考对象,不可借用备品','warning');
                return;
            }
            if(res.demoRequestPastDataId != res.recordTypeId && res.demoPurpose2 != '保修用户' && res.demoPurpose2 != '市场多年保修' && res.numberOfEffectiveContract == '有'){
                this.showToast('有维修合同,必须选择保修用户.','warning');
                return;
            }
            if(res.demoRequestPastDataId != res.recordTypeId && res.newProductGuaranteeObject == '2: 服务多年保修' && (res.assetModelNo == 'LTF-190-10-3D' || res.assetModelNo == 'LTF-S190-5' || res.assetModelNo == 'CYF-VHA' || res.assetModelNo == 'CYF-VA2' || res.assetModelNo == 'CYF-5A' || res.assetModelNo == 'LTF-S190-10' 
                    || res.assetModelNo == 'OER-AW' || res.assetModelNo == 'URF-V' || res.assetModelNo == 'URF-V2' || res.assetModelNo == 'URF-P6') && res.demoPurpose2 != '保修用户'){
                this.showToast('此设备型号多年保修,请选择保修用户.','warning');
                return;
            }
            if(res.recordTypeId != result.demoRequestPastDataId && result.newProductGuaranteeObject=='2: 服务多年保修' && (res.assetModelNo == 'CV-V1' || res.assetModelNo == 'CV-V1(A)' || res.assetModelNo == 'CV-V1(B)' || res.assetModelNo == 'GIF-LV1' || res.assetModelNo == 'CF-LV1L' || res.assetModelNo == 'CF-LV1I' || res.assetModelNo == 'MAJ-1910') && (res.demoPurpose2 || res.demoPurpose2=='再修理')){
                this.showToast('奥辉设备,保修期内不提供备品.','warning');
                return;
            }
            if(res.supplementCreated == '1' && res.oPDPlanId != ''){
                raesCountCheck({
                    rentalApplyId: this.recordId
                }).then(opdResult=>{
                    if(opdResult != 'OK'){
                        this.showToast(opdResult,'warning');
                        return;
                    }
                })
            }
 
            if(res.campaignId != null && res.campaignId != ''){
                let statusSting = this.StatusProcessState;
                let statusList = statusSting.split(',');
                if(res.campaignStatus == '草案中'){
                    this.showToast('学会状态为草案中,不能提交','warning');
                    return;
                }
                if(res.campaignStatus == '申请中'){
                    this.showToast('学会状态为申请中,不能提交','warning');
                    return;
                }
                if(res.campaignStatus == '已结束'){
                    this.showToast('学会状态为已结束,不能提交','warning');
                    return;
                }
                if(res.campaignStatus == '已提交报告'){
                    this.showToast('学会状态为已提交报告,不能提交','warning');
                    return;
                }
                if(res.campaignStatus == '取消申请中'){
                    this.showToast('学会状态为取消申请中,不能提交','warning');
                    return;
                }
                if(res.campaignStatus == '取消'){
                    this.showToast('学会状态为取消,不能提交','warning');
                    return;
                }
                let today=new Date(); 
                if(today >= res.requestShippingDay - 7){
                    this.showToast('必须提前于希望到货日7天以上提交申请','warning');
                    return;
                }
                // 20220324 ljh obpm add start 
                if(res.campaignId!= null && res.iFApproved && (res.meetingApprovedNo==null || res.meetingApprovedNo=='')){
                    this.showToast('没有决裁号的,暂不能出借,请更新裁决信息。','warning');
                    return;
                }
                if(res.campaignId!= null && res.iFApproved && res.meetingApprovedNo!='' && statusList.indexOf(res.approvedStatus)!=-1 && res.approvedStatus != '草稿'){
                    this.showToast("已申请决裁但决裁状态不符合条件。");
                    return; 
                }
                // 20220324 ljh obpm add end 
            }
 
            //QIS部分
            if(res.qISNumber != null && res.qISNumber != ''){
                if(res.nextAction == '送回'){
                    this.showToast("QIS 已送回,不能再申请备品了");
                    return;
                }
            }
 
            //share
            let userAccess = new Array();
            userAccess.push(res.applyUserId +'_Edit'); 
 
            setSObjectShare({
                sobjectName: 'Rental_Apply__Share',
                rowCause: 'ApplyUserShare__c',
                parentId: this.recordId,
                userAccess: userAccess,
                ownerId: res.ownerId,
            }).then(shareResult=>{
                if(shareResult != 'OK'){
                    this.showToast(shareResult);
                    return;
                }else{
                    if(res.rentalApplyStatus =='填写完毕' || res.rentalApplyStatus =='申请中' || res.rentalApplyStatus =='已批准' || res.rentalApplyStatus =='已出库指示' || res.rentalApplyStatus =='删除' || res.rentalApplyStatus =='取消'){
                        this.showToast('请备品申请状态确认,已经提交过的申请,不能重复提交','warning');
                        return;
                    }
 
                    // 没有明细的一览check 
                    if(res.raesListSize > 0){
                        this.showToast('有没有明细的借出备品配套一览,不能提交','warning');
                    }
 
                    let updateStatus = '填写完毕';
                    let SalesManagerSubmit;
                    let OPDManagerApprover;
                    let BuchangApprovalManagerSalesSubmit;
                    let OPDBuchangApprover;
                    // 20220930 ljh SWAG-CJR8S7 start 
                    // 获取 OPDPlan__r.SalesManager_Txt__c,OPDPlan__r.BuchangApprovalManagerSales_Txt__c
                    // 20220930 ljh SWAG-CJR8S7 end 
                    if(res.manageUsersJingliEquipmentManager != null){
                        SalesManagerSubmit = res.manageUsersJingliEquipmentManagerTxt;
                        // 20220930 ljh SWAG-CJR8S7 start 
                        if(res.oPDPlanId != null){
                            OPDManagerApprover = res.salesManagerSubmit == oPDSalesManagerTxt ? res.salesManagerSubmit : '';
                        }
                        // 20220930 ljh SWAG-CJR8S7 end 
                    }
 
                    if(res.manageUsersBuzhangEquipmentManager != null){
                        BuchangApprovalManagerSalesSubmit = res.manageUsersBuzhangEquipmentManagerTxt;
                        // 20220930 ljh SWAG-CJR8S7 start
                        if(res.oPDPlanId != null){
                            OPDBuchangApprover = res.manageUsersBuzhangEquipmentManagerTxt == res.buchangApprovalManagerSalesSubmit? res.buchangApprovalManagerSalesSubmit :'';
                        }
                        // 20220930 ljh SWAG-CJR8S7 end
 
                        //更新借出申请
                        updateRentalApply({
                            recordId: this.recordId,
                            status: '填写完毕',
                            salesManagerSubmit: SalesManagerSubmit,
                            oPDManagerApprover: OPDManagerApprover,
                            buchangApprovalManagerSalesSubmit: BuchangApprovalManagerSalesSubmit,
                            oPDBuchangApprover: OPDBuchangApprover
                        }).then(updateResult=>{
                            if(updateResult == '更新成功'){
                                this.ToastShow('更新成功','success');
                                return;
                            }else{
                                this.ToastShow(updateResult,'warning');
                                return;
                            }
                        })
                    }
                    
                }
            })
        })
    }
 
    ToastShow(msg,type){
        const evt = new ShowToastEvent({
            message: msg,
            variant: type
        });
        this.dispatchEvent(evt);
        this.dispatchEvent(new CloseActionScreenEvent());
    }
 
    updateRecordView(recordId) {
        updateRecord({fields: { Id: recordId }});
    }
}