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 init from '@salesforce/apex/AddSubmitApprovalProcessController.init'; import submitApproval from '@salesforce/apex/AddSubmitApprovalProcessController.submitApproval'; import setSObjectShare from '@salesforce/apex/ControllerUtil.setSObjectShare'; export default class lexAddSubmitApprovalProcess extends LightningElement { @api recordId; IsLoading = true; RecordTypeId; @wire(CurrentPageReference) getStateParameters(currentPageReference){ if(currentPageReference) { const urlValue = currentPageReference.state.recordId; if(urlValue) { let str = `${urlValue}`; this.recordId = str; } } } connectedCallback(){ init({ recordId: this.recordId }).then(result=>{ if(result.addApprovalStatus != '草案中' || result.detailSize == 0){ this.ToastShow('没有需要审批的追加附属品','warning'); return; } if (!confirm("一旦提交此记录以待批准,根据您的设置您可能不再能够编辑此记录或将他从批准过程中调回。是否继续?")) { this.dispatchEvent(new CloseActionScreenEvent()); return; } // 希望到货日不能早于申请提交日-0418追加 //if ('{!Rental_Apply__c.Request_shipping_day__c}' < '{!TODAY()}') { // alert('希望到货日不能早于申请提交日'); // return; // } console.log(JSON.stringify(result)); if(result.repairId != null){ if(result.demoPurpose1 == '维修代用' && result.demoPurpose2 == '一般用户'){ if(result.repairEstimatedDateFormula == null){ this.ToastShow('一般维修无报价日,不可借用备品','warning'); return; }else if(result.repairEstimatedDateFormula <'2019-07-01' && result.agreedDate == null){ this.ToastShow('报价日在2019/7/1之前且户同意日为空,不可借用备品','warning'); return; } } //备品申请 过去历史转移 if(result.recordTypeId != result.demoRequestPastDataId && result.newProductGuaranteeObject=='2: 服务多年保修' && (result.assetModelNo=='CV-V1' ||result.assetModelNo=='CV-V1(A)'||result.assetModelNo=='CV-V1(B)'||result.assetModelNo=='GIF-LV1'||result.assetModelNo=='CF-LV1L'||result.assetModelNo=='CF-LV1I'||result.assetModelNo=='MAJ-1910') &&(result.demoPurpose2=='一般用户'||result.demoPurpose2=='再修理')){ this.ToastShow('奥辉设备,保修期内不提供备品.','warning'); return; } } if(result.campaignId!=null || result.campaignId!=''){ if(result.campaignStatus == '草案中'){ this.ToastShow('学会状态为草案中,不能提交','warning'); return; } if(result.campaignStatus == '申请中'){ this.ToastShow('学会状态为申请中,不能提交','warning'); return; } if(result.campaignStatus == '已结束'){ this.ToastShow('学会状态为已结束,不能提交','warning'); return; } if(result.campaignStatus == '已提交报告'){ this.ToastShow('学会状态为已提交报告,不能提交','warning'); return; } if(result.campaignStatus == '取消申请中'){ this.ToastShow('学会状态为取消申请中,不能提交','warning'); return; } if(result.campaignStatus == '取消'){ this.ToastShow('学会状态为取消,不能提交','warning'); return; } } if(result.qISNumber!=null || result.qISNumber!=''){ if(result.nextAction=='送回'){ this.ToastShow('QIS 已送回,不能再申请备品了','warning'); return; } } // share var userAccess = new Array(); userAccess.push(result.applyUserId + '_Edit'); //SWAG-BZMA8W 去掉 服务经理部长共享 start //update lxy DLIU-BZNBG9 去掉服务经理部长共享 //userAccess.push('{!Rental_Apply__c.JingliApprovalManagerId__c}_Read'); //userAccess.push('{!Rental_Apply__c.SalesManagerId__c}_Read');//20210727 ljh SFDC-C54C33 update 共享触发器完成 //update lxy DLIU-BZNBG9 去掉服务经理部长共享 //userAccess.push('{!Rental_Apply__c.BuchangApprovalManagerId__c}_Read'); //SWAG-BZMA8W 去掉 服务经理部长共享 end //userAccess.push('{!Rental_Apply__c.BuchangApprovalManagerSalesId__c}_Read');//20210727 ljh SFDC-C54C33 update 共享触发器完成 //userAccess.push('{!Rental_Apply__c.ZongjianApprovalManagerId__c}_Read');//20210727 ljh SFDC-C54C33 update 共享触发器完成 //userAccess.push('{!Rental_Apply__c.Status__c}_Read'); setSObjectShare({ sobjectName:'Rental_Apply__Share', rowCause:'ApplyUserShare__c', parentId:result.rentalApplyId, userAccess:userAccess, ownerId:result.ownerId }).then(res=>{ console.log('setSObjectShareSuccess===='+res); if(res!='OK'){ this.ToastShow(res,'warning'); return; } }).catch(err=>{ console.log('setSObjectShareErr===='+err); }) // var request = new sforce.ProcessSubmitRequest(); // request.objectId = "{!Rental_Apply__c.Id}"; // var processResults = sforce.connection.process([request]); // if (processResults[0].errors != null) { // var back = new sforce.SObject("Rental_Apply__c"); // back.Id = "{!Rental_Apply__c.Id}"; // back.Add_Approval_Status__c = "草案中"; // var backResult = sforce.connection.update([back]); // backMessages = this.getConnectDMLErrorMessages(backResult); // if (backMessages.length > 0) { // this.showToast(backMessages.join("\n"),'error'); // return; // } // var errmsg = processResults[0].errors.message.toString(); // this.showToast(errmsg,'error'); // return; // } //updateRecord({fields: { Id: this.recordId }}); submitApproval({ recordId: this.recordId }).then(res=>{ console.log('submitApproval===='+res); if(res == 'OK'){ this.ToastShow('提交成功','success'); }else{ this.ToastShow(res,'error'); } }) updateRecord({fields: { Id: this.recordId }}); }).catch(err=>{ console.log('sErr====',err.message); }) } ToastShow(msg,type){ const evt = new ShowToastEvent({ title : msg, message: '', variant: type }); this.dispatchEvent(evt); this.dispatchEvent(new CloseActionScreenEvent()); } getConnectDMLErrorMessages(results){ var messages = [], i = 0, len = results.length, r; for (; i < len; i++) { r = results[i]; if (!r.getBoolean("success")) { messages = messages.concat(this.getConnectDMLMessagesOfAResult(r)); } } return messages; } getConnectDMLMessagesOfAResult(res){ var messages = [], errors = res.getArray("errors"), i = 0, len = errors.length, e; for (; i < len; i++) { e = errors[i]; messages.push(e.message + " " + this.getConnectDMLErrorFields(e)); } return messages; } getConnectDMLErrorFields(error){ var fields = error.getArray('fields'); if (fields.length > 0) { return "[" + fields.join(",") + "]" } else { return ""; } } }