unknown
2023-07-06 50e96fd88845d033ab55eeb4034a17f74eee7b72
force-app/main/default/lwc/lexAddSubmitApprovalProcess/lexAddSubmitApprovalProcess.js
@@ -3,9 +3,12 @@
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/AddSubmitApprovalProcessController.init';
import setSObjectShare from '@salesforce/apex/ControllerUtil.setSObjectShare'
import submitApproval from '@salesforce/apex/AddSubmitApprovalProcessController.submitApproval';
import setSObjectShare from '@salesforce/apex/ControllerUtil.setSObjectShare';
import changeAddApprovalStatus from '@salesforce/apex/AddSubmitApprovalProcessController.changeAddApprovalStatus';
export default class lexAddSubmitApprovalProcess extends LightningElement {
   @api recordId;
   IsLoading = true;
@@ -27,70 +30,83 @@
         recordId: this.recordId
      }).then(result=>{
         if(result.addApprovalStatus != '草案中' || result.detailSize == 0){
            this.ToastShow('没有需要审批的追加附属品');
            this.ToastShow('没有需要审批的追加附属品','warning');
                return;
         }
         if (!confirm("一旦提交此记录以待批准,根据您的设置您可能不再能够编辑此记录或将他从批准过程中调回。是否继续?")) {
            this.dispatchEvent(new CloseActionScreenEvent());
            return;
         }
         // if (!confirm("一旦提交此记录以待批准,根据您的设置您可能不再能够编辑此记录或将他从批准过程中调回。是否继续?")) {
         //    this.dispatchEvent(new CloseActionScreenEvent());
         //    return;
         // }
         const SUBMIT = LightningConfirm.open({
               message: "一旦提交此记录以待批准,根据您的设置您可能不再能够编辑此记录或将他从批准过程中调回。是否继续?",
               variant: 'headerless',
               label: '提示信息',
               // setting theme would have no effect
           });
           if(SUBMIT==false){
              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('一般维修无报价日,不可借用备品');
                  this.ToastShow('一般维修无报价日,不可借用备品','warning');
                      return;
               }else if(result.repairEstimatedDateFormula <'2019-07-01' && result.agreedDate == null){
                  this.ToastShow('报价日在2019/7/1之前且户同意日为空,不可借用备品');
                  this.ToastShow('报价日在2019/7/1之前且户同意日为空,不可借用备品','warning');
                      return;
               }
            }
            if(result.recordTypeId !='01210000000RHIn' && 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('奥辉设备,保修期内不提供备品.');
            //备品申请 过去历史转移
            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.rentalApplyFlag == '草案中'){
               this.ToastShow('学会状态为草案中,不能提交');
            if(result.campaignStatus == '草案中'){
               this.ToastShow('学会状态为草案中,不能提交','warning');
               return;
            }
            if(result.rentalApplyFlag == '申请中'){
               this.ToastShow('学会状态为申请中,不能提交');
            if(result.campaignStatus == '申请中'){
               this.ToastShow('学会状态为申请中,不能提交','warning');
               return;
            }
            if(result.rentalApplyFlag == '已结束'){
               this.ToastShow('学会状态为已结束,不能提交');
            if(result.campaignStatus == '已结束'){
               this.ToastShow('学会状态为已结束,不能提交','warning');
               return;
            }
            if(result.rentalApplyFlag == '已提交报告'){
               this.ToastShow('学会状态为已提交报告,不能提交');
            if(result.campaignStatus == '已提交报告'){
               this.ToastShow('学会状态为已提交报告,不能提交','warning');
               return;
            }
            if(result.rentalApplyFlag == '取消申请中'){
               this.ToastShow('学会状态为取消申请中,不能提交');
            if(result.campaignStatus == '取消申请中'){
               this.ToastShow('学会状态为取消申请中,不能提交','warning');
               return;
            }
            if(result.rentalApplyFlag == '取消'){
               this.ToastShow('学会状态为取消,不能提交');
            if(result.campaignStatus == '取消'){
               this.ToastShow('学会状态为取消,不能提交','warning');
               return;
            }
         }
         if(result.qISNumber!=null || result.qISNumber!=''){
            if(result.nextAction=='送回'){
               this.ToastShow('QIS 已送回,不能再申请备品了');
               this.ToastShow('QIS 已送回,不能再申请备品了','warning');
               return;
            }
         }
         // share
         //share
         var userAccess = new Array();
         userAccess.push(result.applyUserId + '_Edit'); 
@@ -105,6 +121,7 @@
         //userAccess.push('{!Rental_Apply__c.ZongjianApprovalManagerId__c}_Read');//20210727 ljh SFDC-C54C33 update 共享触发器完成
         //userAccess.push('{!Rental_Apply__c.Status__c}_Read');
         console.log('参数==='+result.rentalApplyId+' '+userAccess+' '+result.ownerId);
         setSObjectShare({
            sobjectName:'Rental_Apply__Share',
            rowCause:'ApplyUserShare__c',
@@ -112,86 +129,58 @@
            userAccess:userAccess,
            ownerId:result.ownerId
         }).then(res=>{
            if(res!='OK'){
               this.ToastShow(res);
            if(res!='OK'){
               this.ToastShow(res,'warning');
               return;
            }else{
               console.log('setSObjectShareSuccess====OK');
               //追加备品申请状态确认,已经提交过的申请,不能重复提交Status__c
               if (result.rentalApplyStatus != '已批准' && result.rentalApplyStatus != '已出库指示') {
                  this.ToastShow('请备品申请状态确认,申请状态已批准后才可以提交追加审批','warning');
                  return;
               }
               changeAddApprovalStatus({
                  recordId: this.recordId,
                  status: '填写完毕'
               }).then(changeResult=>{
                  if(changeResult == '更新成功'){
                     submitApproval({
                        recordId: this.recordId
                     }).then(submitApprovalRes=>{
                        if(submitApprovalRes == 'OK'){
                           this.ToastShow('提交追加待审批','success');
                           this.updateRecordView(this.recordId);
                        }else{
                           this.ToastShow('追加待审批失败','ERROR');
                        }
                     })
                  }else{
                     this.ToastShow(changeResult,'error');
                  }
               })
            }
         }).catch(err=>{
            console.log('setSObjectShareErr====',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) {
            alert(backMessages.join("\n"));
            return;
            }
            var errmsg = processResults[0].errors.message.toString();
            alert(errmsg);
            return;
         }
          updateRecord({fields: { Id: this.recordId }});
          
      }).catch(err=>{
         console.log('sErr====',err);
         console.log('====1111====',err);
      })
   }
   ToastShow(msg){
   ToastShow(msg,type){
      const evt = new ShowToastEvent({
            title : msg,
            message: '',
            variant: 'warning'
            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 "";
      }
   }
   updateRecordView(recordId) {
        updateRecord({fields: { Id: recordId }});
    }
}