force-app/main/default/lwc/lexLoanerArrangedEmail/lexLoanerArrangedEmail.js
@@ -1,102 +1,258 @@
import { LightningElement, track, wire, api } from 'lwc';
import { CurrentPageReference,NavigationMixin } from 'lightning/navigation';
import { LightningElement,api, track, wire } from 'lwc';
import {CurrentPageReference} from 'lightning/navigation';
import { CloseActionScreenEvent } from 'lightning/actions';
import init from '@salesforce/apex/loanerArrangedEmailController.init';
import getRentalApplyEquipmentSet from '@salesforce/apex/loanerArrangedEmailController.getRentalApplyEquipmentSet';
import approvalCheck from '@salesforce/apex/RentalApplyWebService.approvalCheck';
import setShipment_request from '@salesforce/apex/RentalApplyWebService.approvalCheck';
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';
export default class lexLoanerArrangedEmail extends LightningElement {
   @api recordId;
   IsLoading = true;
   @api recordId;
   id;
   RentalApplyC;
   Status;
   Wei_Assigned_Cnt__c;
   Bollow_Date__c;
   Assigned_Not_Shipment__c;
   IsLoading=true;
   @track statusStringg = STATUS_PROCESS_STATE;
   @wire(CurrentPageReference)
   getStateParameters(currentPageReference) {
      if(currentPageReference) {
         const urlValue = currentPageReference.state.recordId;
         if(urlValue) {
            let str = `${urlValue}`;
              this.recordId = str;
   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;
         }
      }
   }
   connectedCallback() {
      init({
         recordId: this.recordId
      }).then(result => {
         console.log(this.recordId);
         console.log('result==='+JSON.stringify(result));
         if(result != null) {
            if( result.WeiAssignedCnt > 0 ) {
               alert("申请单内存在未分配的配套,请分配备品或分割申请单");
            }else if(result.CampaignStatus == "取消") {
               alert("学会取消,不可出库指示");
            }else if (result.RaStatus == "已出库指示" && result.AssignedNotShipment == 0){
               alert("所有的借出备品Set一览都进行过出库指示了");
            }else if (result.AssignedNotShipment == 0) {
               alert("没有可以出库指示的明细");
            }else if (result.DemoPurpose1 == "长期借出" && result.ContractPdfUpdated == 0){
               alert("长期借出时,必须先上传契约书");
            }else if (result.RepairId != '' && (result.RepairFinalInspectionDateF != null && result.RepairFinalInspectionDateF != '') || (result.RCReturnToOffice != null && result.RCReturnToOffice != '')){
               alert("修理有最终检测日或修理品返送日,不可出库指示");
            }else if (result.IFApproved == "true" && (result.MeetingApprovedNo == null || result.MeetingApprovedNo == "")){
               alert("没有决裁号的,暂不能出借,请更新裁决信息。");
            }else if (result.IFApproved == "true" && result.MeetingApprovedNo != "" && result.StatusList.indexOf(records[0].Approved_Status__c) != -1){
               alert("已申请决裁但决裁状态不符合条件。");
            }else {
               approvalCheck({
                  rentalApplyId: this.recordId
               }).then(res=>{
                  if (res != '1') {
                     alert(rs1);
                  } 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=>{
                        if (res == "状态更新到已出库指示") {
                           alert("状态更新到已出库指示");
                           print();
                           setTimeout(function() {
                              location.href = "/{!Rental_Apply__c.Id}";
                           },100);
                        }else {
                           alert(res);
                        }
                     }).catch(e=>{
                        console.log('approvalCheck==='+e);
                     })
                  }
               }).catch(e=>{
                  console.log('setShipment_request==='+e);
               })
            }
            this.dispatchEvent(new CloseActionScreenEvent());
   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(()=>{
      });
   }
   print() {
      getRentalApplyEquipmentSet({
         recordId: this.recordId
      }).then(result => {
         window.open("https://ocsm--partial.sandbox.lightning.force.com/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;
   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;
            }
         }).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;
      // }
   }
}
}