/**
 * *
    ODescription:
    GAuthor: sun xia
    @Date: 2023-07-11 15:31:56
    GIastEditors: sun xia
    @IastEditTime: 2023-07-11 15:31:56
 * */
public with sharing class LexLoanerArrangedEmailController {
    @AuraEnabled
    public static InitData init(String recordId) {
        String statusSting = Label.StatusProcessState;
        List<String> status = statusSting.split(',');
        InitData res = new InitData();
        try {
            List<Rental_Apply__c> racList = [SELECT Id, Status__c, RA_Status__c, Campaign__c, RC_return_to_office__c, Repair_Final_Inspection_Date_F__c, Repair__c, Assigned_Not_Shipment__c, Demo_purpose1__c, Contract_pdf_updated__c, Wei_Assigned_Cnt__c from Rental_Apply__c where Id = :recordId];
            if(racList.size()>0){
                Rental_Apply__c rac = racList[0];
                if( rac.Campaign__c != null ){
                    //获取学会对象
                    Campaign camp = [select Id, Status, Rental_Apply_Flag__c,IF_Approved__c,Approved_Status__c, Meeting_Approved_No__c from Campaign where id = :rac.Campaign__c];
                    res.campaignId = camp.Id;
                    res.campaignStatus = camp.Status;
                    res.iFApproved = camp.IF_Approved__c;
                    res.meetingApprovedNo = camp.Meeting_Approved_No__c;
                    res.approvedStatus = camp.Approved_Status__c;
                }   
                res.id = recordId;   
                res.raStatus = rac.RA_Status__c;
                res.weiAssignedCnt = Integer.valueOf(rac.Wei_Assigned_Cnt__c);
                res.assignedNotShipment = Integer.valueOf(rac.Assigned_Not_Shipment__c);
                res.demoPurpose1 = rac.Demo_purpose1__c;
                res.contractPdfUpdated = rac.Contract_pdf_updated__c;
                res.repairId = rac.Repair__c;
                res.repairFinalInspectionDateF = rac.Repair_Final_Inspection_Date_F__c;
                res.rCReturnToOffice = rac.RC_return_to_office__c;
                res.statusList = status;
            }
        }
        catch (Exception e) {
            System.debug(LoggingLevel.INFO, '****e:' + e);
        }
        system.debug('res======'+res);
        return res;
    }

    
    //获取备品借出一栏
    @AuraEnabled
    public static Integer getRentalApplyEquipmentSet(String recordId) {
        Rental_Apply__c tempRa = [SELECT Id, Bollow_Date__c from Rental_Apply__c where Id = :recordId];
        List<Rental_Apply_Equipment_Set__c> tempRaEquipSetList = new List<Rental_Apply_Equipment_Set__c>();
        Integer pageLength ;
        if(tempRa.Bollow_Date__c != null) {
            tempRaEquipSetList = [SELECT Id from Rental_Apply_Equipment_Set__c where Rental_Apply__c = :recordId AND Shippment_loaner_time__c != null and RAES_Status__c != '已分配' and RAES_Status__c != '取消分配'];
        }else {
            tempRaEquipSetList = [SELECT Id from Rental_Apply_Equipment_Set__c where Rental_Apply__c = :recordId AND RAES_Status__c != '已分配' and RAES_Status__c != '取消分配'];
        }
        //
        if(tempRaEquipSetList.size()>0) {
            Integer setLength = tempRaEquipSetList.size();
            pageLength = Math.mod(setLength,10) == 0 ? setLength/10 : Math.round(setLength) + 1;
        }
        return pageLength;
    }

    public class InitData{
        @AuraEnabled
        public String id;
        @AuraEnabled
        public String campaignStatus;   //学会状态
        @AuraEnabled
        public String campaignId;   //学会Id
        @AuraEnabled
        public String raStatus;     //备品借出申请状态
        @AuraEnabled
        public Integer weiAssignedCnt;      //未分配件数  Wei_Assigned_Cnt__c
        @AuraEnabled
        public Integer assignedNotShipment; //已分配未出库指示  Assigned_Not_Shipment__c
        @AuraEnabled
        public String demoPurpose1;         //使用目的1  Demo_purpose1__c
        @AuraEnabled
        public Boolean contractPdfUpdated;  //合同书已上传    Contract_pdf_updated__c
        @AuraEnabled
        public String repairId;             //学会.修理Id
        @AuraEnabled
        public Date repairFinalInspectionDateF;     //修理最终检测日F      Repair_Final_Inspection_Date_F__c
        @AuraEnabled
        public Date rCReturnToOffice;       //RC修理品返送日      RC_return_to_office__c
        @AuraEnabled
        public Boolean iFApproved;          //学会.是否需要申请决裁
        @AuraEnabled
        public String meetingApprovedNo;    //学会.会议决裁编码
        @AuraEnabled
        public String approvedStatus;       //学会.决裁状态   Approved_Status__c
        @AuraEnabled
        public List<String> statusList;
    }
}