unknown
2023-08-24 ddb0231ef7c5cf2bad9d3f1afc2f733674ad38a5
force-app/main/default/lwc/lexLoanerArrangedEmail/lexLoanerArrangedEmail.js
@@ -1,258 +1,127 @@
import { LightningElement,api, track, wire } from 'lwc';
import {CurrentPageReference} from 'lightning/navigation';
import { LightningElement, track, wire, api } from 'lwc';
import { CurrentPageReference,NavigationMixin } from 'lightning/navigation';
import { CloseActionScreenEvent } from 'lightning/actions';
import init from '@salesforce/apex/SelectSubstituteControllerLWT.initFromLoanerArrangedEmailLButton';
import selectRentalApplyCByName from '@salesforce/apex/SelectSubstituteControllerLWT.selectRentalApplyCByName';
import selectRaesById1 from '@salesforce/apex/SelectSubstituteControllerLWT.selectRaesById1';
import selectRaesById2 from '@salesforce/apex/SelectSubstituteControllerLWT.selectRaesById2';
import getSessionId from '@salesforce/apex/SelectSubstituteControllerLWT.getSessionId';
import approvalCheck from '@salesforce/apex/SelectSubstituteControllerLWT.approvalCheck';
import setShipment_requests from '@salesforce/apex/SelectSubstituteControllerLWT.setShipment_requests';
// import { label } from '@salesforce/label';
import STATUS_PROCESS_STATE from '@salesforce/label/c.StatusProcessState';
import { ShowToastEvent } from 'lightning/platformShowToastEvent';
import { updateRecord } from 'lightning/uiRecordApi';
import init from '@salesforce/apex/LexLoanerArrangedEmailController.init';
import getRentalApplyEquipmentSet from '@salesforce/apex/LexLoanerArrangedEmailController.getRentalApplyEquipmentSet';
import approvalCheck from '@salesforce/apex/RentalApplyWebService.approvalCheck';
import setShipment_request from '@salesforce/apex/RentalApplyWebService.setShipment_request';
export default class lexLoanerArrangedEmail extends LightningElement {
   @api recordId;
   id;
   RentalApplyC;
   Status;
   Wei_Assigned_Cnt__c;
   Bollow_Date__c;
   Assigned_Not_Shipment__c;
   IsLoading=true;
   @track statusStringg = STATUS_PROCESS_STATE;
   IsLoading = true;
   @wire(CurrentPageReference)
   getStateParameters(currentPageReference){
      console.log("进入页面");
      console.log(currentPageReference);
      if(currentPageReference){
         const urvalue=currentPageReference.state.recordId;
         if(urvalue){
            let str=`${urvalue}`;
            console.log('str');
            console.log(str);
            this.recordId=str;
   getStateParameters(currentPageReference) {
      if(currentPageReference) {
         const urlValue = currentPageReference.state.recordId;
         if(urlValue) {
            let str = `${urlValue}`;
              this.recordId = str;
         }
      }
   }
   connectedCallback() {
   connectedCallback(){
      console.log(this.recordId);
      init({recordId:this.recordId}).then(result=>{
         console.log(result);
         if(result!=null){
            this.id=result.id;
            this.RentalApplyC=result.RentalApplyC;
            this.Status=result.Status;
            this.Wei_Assigned_Cnt__c=result.WeiAssignedCntC;
            this.Bollow_Date__c=result.BollowDateC;
            this.Assigned_Not_Shipment__c=result.AssignedNotShipmentC;
            this.cancelSubmit().then(res=>{
               this.IsLoading=false;
               this.dispatchEvent(new CloseActionScreenEvent());
            });
         }
      }).catch(err=>{
         console.log("error:");
         console.log(err);
      }).finally(()=>{
      });
   }
   async cancelSubmit(){
      let campaignStatus = '';
      let records = null; // 20220217 ljh OBPM市场活动联动
      console.log("Ff");
      let statusSting = "{!$Label.StatusProcessState}"; // 20220322 ljh add
      let statusList = statusSting.split(',');
      console.log(statusSting);
      console.log(statusList);
      console.log(this.statusStringg);
      let raliveryGood;
      await selectRentalApplyCByName({recordId:this.RentalApplyC})
         .then(res=>{
            console.log(res);
            if (res!=null) {
               raliveryGood=res;
      init({
         recordId: this.recordId
      }).then(result => {
         let id = result.id;
         let statusArr = result.statusList;
         console.log('result==='+JSON.stringify(result));
         if(result != null) {
            if( result.weiAssignedCnt > 0 ) {
               this.showToast("申请单内存在未分配的配套,请分配备品或分割申请单",'error');
            }else if(result.campaignStatus == "取消") {
               this.showToast("学会取消,不可出库指示",'error');
            }else if (result.raStatus == "已出库指示" && result.assignedNotShipment == 0){
               this.showToast("所有的借出备品Set一览都进行过出库指示了",'error');
            }else if (result.assignedNotShipment == 0) {
               this.showToast("没有可以出库指示的明细",'error');
            }else if (result.demoPurpose1 == "长期借出" && result.contractPdfUpdated == false){
               this.showToast("长期借出时,必须先上传契约书",'error');
            }else if (result.repairId != '' && (result.repairFinalInspectionDateF != null && result.repairFinalInspectionDateF != '') || (result.rCReturnToOffice != null && result.rCReturnToOffice != '')){
               this.showToast("修理有最终检测日或修理品返送日,不可出库指示",'error');
            }else if (result.iFApproved == true && (result.meetingApprovedNo == null || result.meetingApprovedNo == "")){
               this.showToast("没有决裁号的,暂不能出借,请更新裁决信息。",'error');
            }else if (result.iFApproved == true && result.meetingApprovedNo != "" && statusArr.indexOf(result.approvedStatus) != -1){
               this.showToast("已申请决裁但决裁状态不符合条件。",'error');
            }else{
               approvalCheck({
                  rentalApplyId: this.recordId
               }).then(res1 =>{
                  if (res1 != '1') {
                     this.showToast(res1,'error');
                  }else{
                     //bp2 var rs2 = sforce.apex.execute("RentalApplyWebService", "reserve", {rentalApplyId: raid});
                     //bp2 if (rs2 != '1') {
                     //bp2 alert(rs2);
                     //bp2 } else {
                     //var rs1 = sforce.apex.execute("RentalApplyWebService", "setShipment_request", {raid : "{!Rental_Apply__c.Id}"});
                     setShipment_request({
                        raid: this.recordId
                     }).then(res=>{
                        console.log('res==',res);
                        if (res == '状态更新到已出库指示') {
                           this.showToast('状态更新到已出库指示','success');
                           print();
                           this.updateRecordView(this.recordId);
                           return;
                        }else {
                           console.log('else==',res);
                            const evt = new ShowToastEvent({
                                   title: 'Error',
                                   message:res,
                                   variant: 'error'
                               });
                               this.dispatchEvent(evt);
                               this.dispatchEvent(new CloseActionScreenEvent());
                        }
                     }).catch(e=>{
                        console.log('approvalCheck==='+e);
                     })
                  }
               }).catch(e=>{
                  console.log('setShipment_request==='+e);
               })
            }
         }).catch(err=>{
            console.log("selectRentalApplyCByName err:")
            console.log(err.message);
         });
      console.log(statusSting);
      console.log(raliveryGood);
      console.log("ddd");
      let RentalApply = raliveryGood[0];
      console.log(RentalApply);
      if(RentalApply.Campaign__c != null&&RentalApply.Campaign__c != '' ) {
         console.log();
         let DeliveryGood;
         // 20220217 ljh update OBPM市场活动联动 start
         // DeliveryGood = sforce.connection.query("select Status, Rental_Apply_Flag__c from Campaign where id ='" + RentalApply.Campaign__c + "'");
         // let records= DeliveryGood.getArray("records");
         await selectCampaignById({recordId:RentalApply.Campaign__c}).then(res=>{
            console.log(res);
            DeliveryGood=res;
         });
         console.log(RentalApply);
         records = DeliveryGood;
         console.log(DeliveryGood);
         // 20220217 ljh update OBPM市场活动联动 end
         campaignStatus = records[0].Status;
         console.log("hh3");
      }
      if(this.Wei_Assigned_Cnt__c > "0") {
         // alert("申请单内存在未分配的配套,请分配备品或分割申请单");
         const event = new ShowToastEvent({
            title: '提示信息',
            message:"申请单内存在未分配的配套,请分配备品或分割申请单"
         });
         this.dispatchEvent(event);
      }else if(campaignStatus == '取消'){
         // alert("学会取消,不可出库指示");
         const event = new ShowToastEvent({
            title: '提示信息',
            message:"学会取消,不可出库指示"
         });
         this.dispatchEvent(event);
      }else if (this.Assigned_Not_Shipment__c == "0") {
         // alert("没有可以出库指示的明细");
         const event = new ShowToastEvent({
            title: '提示信息',
            message:"没有可以出库指示的明细"
         });
         this.dispatchEvent(event);
      } else if (RentalApply.Demo_purpose1__c == "长期借出" && RentalApply.Contract_pdf_updated__c == "0") {
         // alert("长期借出时,必须先上传契约书");
         const event = new ShowToastEvent({
            title: '提示信息',
            message:"长期借出时,必须先上传契约书"
         });
         this.dispatchEvent(event);
      } else if(RentalApply.Repair__c != '' && RentalApply.Repair__c != null && (RentalApply.Repair_Final_Inspection_Date_F__c != null && RentalApply.Repair_Final_Inspection_Date_F__c != '') || (RentalApply.RC_return_to_office__c != null && RentalApply.RC_return_to_office__c != '')) {
         // alert("修理有最终检测日或修理品返送日,不可出库指示");
         const event = new ShowToastEvent({
            title: '提示信息',
            message:"修理有最终检测日或修理品返送日,不可出库指示"
         });
         this.dispatchEvent(event);
         // 20220217 ljh add OBPM市场活动联动 start
      } else if (records != null && records[0].IF_Approved__c == "true" && (records[0].Meeting_Approved_No__c == null || records[0].Meeting_Approved_No__c == "") ) {
         // alert("没有决裁号的,暂不能出借,请更新裁决信息。");
         const event = new ShowToastEvent({
            title: '提示信息',
            message:"没有决裁号的,暂不能出借,请更新裁决信息。"
         });
         this.dispatchEvent(event);
      } else if (records != null && records[0].IF_Approved__c == "true" && records[0].Meeting_Approved_No__c != "" && statusList.indexOf(records[0].Approved_Status__c) != -1 ) {
         // alert("已申请决裁但决裁状态不符合条件。");
         const event = new ShowToastEvent({
            title: '提示信息',
            message:"已申请决裁但决裁状态不符合条件。"
         });
         this.dispatchEvent(event);
         // 20220217 ljh add OBPM市场活动联动 end
      } else {
         console.log("hhhh3");
         let t=await getSessionId();
         console.log(t);
         window.sforce = window.sforce || {};
         window.sforce.connection = window.sforce.connection || {};
         window.sforce.connection.sessionId =t;
         //154p 1388 yc 20211020
         console.log("hhhh4");
         let raid = RentalApply.Id+";"+this.id;
         console.log(raid);
         let rs1 = await approvalCheck({rentalApplyId:raid});
         console.log(rs1);
         if (rs1 != '1') {
            // alert(rs1);
            const event = new ShowToastEvent({
               title: '提示信息',
               message:rs1
            });
            this.dispatchEvent(event);
         } else {
            //bp2 let rs2 = sforce.apex.execute("RentalApplyWebService", "reserve", {rentalApplyId: raid});
            //bp2 if (rs2 != '1') {
            //bp2 alert(rs2);
            //bp2 } else {
            setShipment_requests({raid:null,raesid: this.id}).then(res=>{
               if (res == "状态更新到已出库指示") {
                  // alert("状态更新到已出库指示");
                  const event = new ShowToastEvent({
                     title: '提示信息',
                     message:"状态更新到已出库指示"
                  });
                  this.dispatchEvent(event);
                  print().then(res=>{
                     setTimeout(function() {location.href = "/"+this.RentalApplyC;}, 100);
                  });
               } else {
                  // alert(res);
                  const event = new ShowToastEvent({
                     title: '提示信息',
                     message:res
                  });
                  this.dispatchEvent(event);
               }
            })
            // sforce.apex.execute("RentalApplyWebService", "setRaesShipment_request",
            //  {raesid: this.id}
            //    ,function(res) {
            //       if (res == "状态更新到已出库指示") {
            //          alert("状态更新到已出库指示");
            //          print().then(res=>{
            //             setTimeout(function() {location.href = "/"+this.RentalApplyC;}, 100);
            //          });
            //       } else {
            //          alert(res);
            //       }
            // });
         }
      }
      async function print(){
         let sqlResult;
         if(this.Bollow_Date__c != ''){
            await selectRaesById1({recordId:RentalApply.Id}).then(res=>{
               sqlResult=res;
            });
         }else{
            await selectRaesById2({recordId:RentalApply.Id}).then(res=>{
               sqlResult=res;
            });
         }
         let records = sqlResult;
         let size =records.length;
         let length = size%10 ==0? size/10 : parseInt(size/10) +1;
         for(let i =0;i<length;i++){
            window.open('/apex/FixtureRentalPDF?raid=' + RentalApply.Id + '&page=' + i);
         }
      }
      // function fixTime(time){
      //    if(time < 10) {time = "0" + time};
      //       return time;
      // }
      // function fixDate(date){
      //    let Month = fixTime(date.getMonth() + 1);
      //    let Day = fixTime(date.getDate());
      //    let UTC = date.toUTCString();
      //    let Time = UTC.substring(UTC.indexOf(':')-2, UTC.indexOf(':')+6);
      //    let Minutes = fixTime(date.getMinutes());
      //    let Seconds = fixTime(date.getSeconds());
      //    return date.getFullYear() + "-" + Month + "-" + Day + "T" + Time;
      // }
      })
   }
}
   print() {
      getRentalApplyEquipmentSet({
         recordId: this.recordId
      }).then(result => {
         window.open("/apex/FixtureRentalPDF?raid=" + this.recordId + "&page=" + result);
      })
   }
   fixDate(date){
      var Month = fixTime(date.getMonth() + 1);
      var Day = fixTime(date.getDate());
      var UTC = date.toUTCString();
      var Time = UTC.substring(UTC.indexOf(':')-2, UTC.indexOf(':')+6);
      var Minutes = fixTime(date.getMinutes());
      var Seconds = fixTime(date.getSeconds());
      return date.getFullYear() + "-" + Month + "-" + Day + "T" + Time;
   }
   showToast(msg,type) {
        const event = new ShowToastEvent({
            message: msg,
            variant: type
        });
        if(type == 'success'){
            this.updateRecordView(this.recordId);
        }
        this.dispatchEvent(event);
        this.dispatchEvent(new CloseActionScreenEvent());
    }
    updateRecordView(recordId) {
        updateRecord({fields: { Id: recordId }});
    }
}