19626
2023-09-09 e14d6d0619330cad423f06493e3aa2371faa2a8f
force-app/main/default/classes/OpportunityLightingButtonController.cls
@@ -4,9 +4,24 @@
 * @Author: chen jing wu
 * @Date: 2023-04-12 11:16:07
 * @LastEditors: chen jing wu
 * @LastEditTime: 2023-05-15 13:40:51
 * @LastEditTime: 2023-09-08 16:57:51
 */
public with sharing class OpportunityLightingButtonController {
    @AuraEnabled
    public static List<Lost_cancel_report__c> queryForEditLostButton(String recordId){
        List<Lost_cancel_report__c> res = new List<Lost_cancel_report__c>();
        try {
            List<Lost_cancel_report__c> re = [
                select id,
                Report_Status__c,
                RecordTypeId
                from Lost_cancel_report__c where RecordTypeId != '01210000000R4hHAAS' and Opportunity__c =: recordId];
            res = re;
        } catch (Exception e) {
            throw new AuraHandledException(e.getMessage());
        }
        return res;
    }
    @AuraEnabled
    public static InitData initForPredictedDateChangeButton(String recordId){
        InitData res = new InitData();
@@ -45,9 +60,21 @@
                IF_Submit__c ,
                Trade__c,
                Is_Corrosion__c,
                If_Authorizing_Lock__c
                If_Authorizing_Lock__c,
                AccDealerBlacklist__c,
                Agency1__c,
                Agency2__c,
                Hospital__c,
                OwnerId,
                Sales_assistant_name_text__c
                from Opportunity where Id =: recordId 
            ];
            res.AccDealerBlacklist = opportunity.AccDealerBlacklist__c;
            res.angency1 = opportunity.Agency1__c;
            res.angency2 = opportunity.Agency2__c;
            res.accname = opportunity.Hospital__c;
            res.ownerids = opportunity.OwnerId;
            res.ddid = opportunity.Sales_assistant_name_text__c;
            res.agency1Id = opportunity.Agency1_ID_18__c;
            res.stageName = opportunity.StageName;
            res.sapSendOK = opportunity.SAP_Send_OK__c;
@@ -184,6 +211,7 @@
            res.systemProfileId = getProfileIdByName(lexLightingButtonConstant.SYSTEM_PROFILE_NAME);
            res.s1ProfileId = getProfileIdByName(lexLightingButtonConstant.S1_PROFILE_NAME);
            res.s4ProfileId = getProfileIdByName(lexLightingButtonConstant.S4_PROFILE_NAME);
            res.recordTypeId = Schema.SObjectType.Request_tedner_doc__c.getRecordTypeInfosByName().get(lexLightingButtonConstant.RECORD_TYPE_NAME_BY_AUTHORIZATION_REQUEST).getRecordTypeId();
        } catch (Exception e) {
            System.debug('e:****' + e);
        }
@@ -223,6 +251,7 @@
        res.salesManagerDepartmentID = opportunity.Sales_manager_departmentID__c;
        res.salesOwnerBuchang = opportunity.Sales_owner_buchang__c;
        res.salesOwnerBuchangID = opportunity.Sales_owner_buchangID__c;
        res.recordTypeId = Schema.SObjectType.Lost_cancel_report__c.getRecordTypeInfosByName().get(lexLightingButtonConstant.RECORD_TYPE_NAME_BY_OPPO_CANCEL_REPORT).getRecordTypeId();
        } catch (Exception e) {
            throw new AuraHandledException(e.getMessage());
        }
@@ -261,6 +290,36 @@
        }
        return res;
    }
    @AuraEnabled
    public static InitData initForLexQuoteEntryNewbotton(String recordId){
        InitData res = new InitData();
        try {
            Opportunity opportunity = [
                select
                Agency_Is_Delete__c,
                Account_Is_Active__c,
                Hospital_Is_Active__c,
                RecordTypeId,
                Estimation_Decision__c
                from Opportunity where Id =: recordId
            ];
            res.agencyIsDeletec = opportunity.Agency_Is_Delete__c;
            res.accountIsActivec = opportunity.Account_Is_Active__c;
            res.hospitalIsActivec = opportunity.Hospital_Is_Active__c;
            res.recordTypeId = opportunity.RecordTypeId;
            res.estimationDecisionc = opportunity.Estimation_Decision__c;
        } catch (Exception e) {
            throw new AuraHandledException(e.getMessage());
        }
        return res;
    }
    @AuraEnabled
    public static Boolean describeSObjectCommon (String objname)
    {
        Schema.DescribeSobjectResult schemaMap = Schema.describeSObjects(new String[]{objname})[0];
        return schemaMap.isCreateable();
    }
    @AuraEnabled
    public static InitData initForQuotationRequestButton(String recordId){
        InitData res = new InitData();
@@ -304,7 +363,11 @@
                CurrencyIsoCode
                from Opportunity where Id =: recordId
            ];
            Report cnyReport = [SELECT Id FROM Report WHERE Name = :lexLightingButtonConstant.REPORT_NAME_FOR_CNY limit 1];
            Report usdReport = [SELECT Id FROM Report WHERE Name = :lexLightingButtonConstant.REPORT_NAME_FOR_USD limit 1];
            res.currencyIsoCode = opportunity.CurrencyIsoCode;
            res.reportForCNYId = cnyReport.Id;
            res.reportForUSDId = usdReport.Id;
        } catch (Exception e) {
            throw new AuraHandledException(e.getMessage());
        }
@@ -425,6 +488,7 @@
            res.accountId = opp.AccountId;
            res.accountName = acc.Name;
            res.name = opp.Name;
            // res.recordTypeId = Schema.SObjectType.Task.getRecordTypeInfosByName().get(lexLightingButtonConstant.RECORD_TYPE_NAME_BY_INQUIRY_FOLLOW_UP).getRecordTypeId();
        } catch (Exception e) {
            throw new AuraHandledException(e.getMessage());
        }
@@ -446,6 +510,57 @@
            res.estimationDecision = opp.Estimation_Decision__c;
            res.sapSendOK = opp.SAP_Send_OK__c;
            res.ifAuthorizingLock = opp.If_Authorizing_Lock__c;
        } catch (Exception e) {
            throw new AuraHandledException(e.getMessage());
        }
        return res;
    }
    @AuraEnabled
    public static InitData initForSpecilaApplyCreateButton(String recordId){
        InitData res = new InitData();
        try {
            Opportunity opp = [
                select
                Forecast_this_month__c
                from Opportunity where Id =: recordId
            ];
            res.oppForecastStatus = opp.Forecast_this_month__c;
            res.recordTypeId = Schema.SObjectType.OpportunitySpecialApply__c.getRecordTypeInfosByName().get(lexLightingButtonConstant.RECORD_TYPE_NAME_BY_SPECIL_APPLY_CREATE).getRecordTypeId();
        } catch (Exception e) {
            throw new AuraHandledException(e.getMessage());
        }
        return res;
    }
    @AuraEnabled
    public static InitData initForSpecilaApplyCreateAchButton(String recordId){
        InitData res = new InitData();
        try {
            Statu_Achievements__c ach = [
                select
                Id,
                Monthly_forecast_shipping__c,
                Opportunity__c
                from Statu_Achievements__c where Id =: recordId
            ];
            res.oppId = ach.Opportunity__c;
            res.oppForecastStatus = ach.Monthly_forecast_shipping__c;
            res.recordTypeId = Schema.SObjectType.OpportunitySpecialApply__c.getRecordTypeInfosByName().get(lexLightingButtonConstant.RECORD_TYPE_NAME_BY_SPECIL_APPLY_CREATE_ACH).getRecordTypeId();
        } catch (Exception e) {
            throw new AuraHandledException(e.getMessage());
        }
        return res;
    }
    @AuraEnabled
    public static InitData initForNewOpportunityFileButton(String recordId){
        InitData res = new InitData();
        try {
            Opportunity opp = [
                select
                Stock_apply_status__c
                from Opportunity where Id =: recordId
            ];
            res.stockApplyStatus = opp.Stock_apply_status__c;
        } catch (Exception e) {
            throw new AuraHandledException(e.getMessage());
        }
@@ -568,7 +683,7 @@
                select id,
                Tender_information__r.subInfoType__c
                from Tender_Opportunity_Link__c 
                where (Tender_information__r.subInfoType__c =:lexLightingButtonConstant.SUB_INFO_TYPE_SCRAPPED_LABEL OR Tender_information__r.subInfoType__c =:lexLightingButtonConstant.SUB_INFO_TYPE_FLOW_LABEL) and Opportunity__c =: recordId
                where (Tender_information__r.subInfoType__c =:lexLightingButtonConstant.SUB_INFO_TYPE_SCRAPPED_LABEL OR Tender_information__r.subInfoType__c =:lexLightingButtonConstant.SUB_INFO_TYPE_FLOW_LABEL OR Tender_information__r.TerminateApprovalStatus__c= :lexLightingButtonConstant.SUB_INFO_TYPE_APPROVE) and Opportunity__c =: recordId
            ];
        } catch (Exception e) {
            System.debug('e:****' + e);
@@ -678,6 +793,42 @@
            return pro.Id;
        } catch (Exception e) {
            throw new AuraHandledException(e.getMessage());
        }
    }
    @AuraEnabled
    public static String changeTrade(String oppId){
        List<Quote> quoList = [select id from Quote where OpportunityId = :oppId];
        List<OpportunityLineItem> oppLI = [select id from OpportunityLineItem where Opportunity.id = :oppId];
        Opportunity opp = new Opportunity();
        opp.id = oppId;
        opp.Estimation_Decision__c = false;
        opp.Estimation_Id__c = null;
        opp.Quote_Update_Sum__c = null;
        opp.Estimation_No__c = null;
        opp.Estimation_Proposal_Date__c = null;
        opp.Estimation_Name__c = null;
        // LHJ SWAG-C9QAAJ 去掉 Start
        // opp.Authorized_Finish_Sales__c = null;
        // opp.Authorized_DB_No__c = null;
        // opp.Authorized_Date__c = null;
        // opp.Autholization_Activated_Date__c = null;
        // opp.Bidding_Content__c = null;
        // opp.Bid_Date__c = null;
        // opp.Bidding_No__c = null;
        // opp.Bidding_Project_Name__c = null;
        // LHJ End
        Savepoint sp = Database.setSavepoint();
        try {
            delete quoList;
            delete oppLI;
            update opp;
            return '1';
        } catch (Exception ex) {
            Database.rollback(sp);
            return  ex.getMessage() + ' | Line:' + ex.getLineNumber();
        }
    }
    public class InitData{
@@ -797,5 +948,39 @@
        public String s1ProfileId;
        @AuraEnabled
        public String accountName;
        @AuraEnabled
        public String recordTypeId;
        @AuraEnabled
        public String reportForCNYId;
        @AuraEnabled
        public String reportForUSDId;
        @AuraEnabled
        public String oppForecastStatus;
        @AuraEnabled
        public String oppId;
        @AuraEnabled
        public String AccDealerBlacklist;
        @AuraEnabled
        public String angency1;
        @AuraEnabled
        public String angency2;
        @AuraEnabled
        public String accname;
        @AuraEnabled
        public String ownerids;
        @AuraEnabled
        public String ddid;
        @AuraEnabled
        public String agencyIsDeletec;
        @AuraEnabled
        public String accountIsActivec;
        @AuraEnabled
        public String hospitalIsActivec;
        @AuraEnabled
        public Boolean estimationDecisionc;
        @AuraEnabled
        public String reportStatus;
        @AuraEnabled
        public String reportId;
    }
}