@isTest private class lexSelectAssetEstimateVMControllerTest { private static Id pricebookId = ControllerUtil.getStandardPricebook().Id; private static User staticUser; private static Maintenance_Contract_Estimate__c staticContactEsti; static Asset createAsset(String input, String accountid, String dcId, String hpId, String serialNo, String prId, String mark ) { Asset asset = new Asset(); asset.Name = input; asset.AccountId = accountid; asset.Department_Class__c = dcId; asset.Hospital__c = hpId; asset.SerialNumber = serialNo; asset.Product2Id = prId; asset.InstallDate = Date.today(); //JZHG-BSDUT4 ---20200825---update By rentongxiao---Start //在接收参数的时候新增了String类型的Mark字段,以及在调用该方法时传递了String类型的Mark字段 asset.AssetMark__c = mark; //JZHG-BSDUT4 ---20200825---update By rentongxiao---End insert asset; return asset; } public class AssetInfo { public Integer lineNo {get; private set;} public Boolean rec_checkBox_c {get; set;} public Asset rec { get; set; } public Maintenance_Contract_Asset_Estimate__c mcae { get; set; } public Boolean isManual { get; set; } public Decimal orgPrice {get; private set;} public Id getRecId() { Id rtn = null; if (rec != null) { rtn = rec.Id; } return rtn; } public void setRecId(Id value) { // なにもしない } // Manual専用 public AssetInfo(Integer lineNo) { this.lineNo = lineNo; this.rec = null; this.mcae = new Maintenance_Contract_Asset_Estimate__c( isNew__c = true ); this.isManual = true; this.rec_checkBox_c = false; this.orgPrice = 0; } } //构造数据 @TestSetup public static void setup(){ ControllerUtil.EscapeNFM001Trigger = true; User u3 = new User(); u3.LastName = '_サンブリッジ'; u3.Alias = 'う'; u3.Email = 'olympusTest03@sunbridge.com'; u3.Username = 'olympusTest03@sunbridge.com'; u3.CommunityNickname = 'う'; u3.IsActive = true; u3.EmailEncodingKey = 'ISO-2022-JP'; u3.TimeZoneSidKey = 'Asia/Tokyo'; u3.LocaleSidKey = 'ja_JP'; u3.LanguageLocaleKey = 'ja'; u3.ProfileId = System.Label.ProfileId_SystemAdmin; u3.Job_Category__c = '销售服务'; u3.Province__c = '北京市'; u3.Use_Start_Date__c = Date.today().addMonths(-6); u3.HR_Post__c='总裁'; insert u3; lexSelectAssetEstimateVMControllerTest.staticUser = u3; system.runAs(u3) { Address_Level__c address = new Address_Level__c(Level1_Code__c = 'CN-01',Name='北京市'); insert address; // 病院を作る Account hospital = new Account(); hospital.recordtypeId = [Select Id FROM RecordType WHERE IsActive = true and SobjectType = 'Account' and DeveloperName = 'HP'].id; hospital.Name = 'test hospital'; hospital.Is_Active__c = '有效'; hospital.TradeComplianceStatus__c = '警示名单'; hospital.State_Master__c = address.Id; insert hospital; // 戦略科室を得る List strategicDep = [SELECT ID, Name FROM Account WHERE parentId = :hospital.Id AND recordType.DeveloperName = 'Department_Class_GI']; // 診療科を作る Account dep = new Account(); dep.recordtypeId = [Select Id FROM RecordType WHERE IsActive = true and SobjectType = 'Account' and DeveloperName = 'Department_GI'].id; dep.Name = 'test dep'; dep.ParentId = strategicDep[0].Id; dep.Department_Class__c = strategicDep[0].Id; dep.Hospital__c = hospital.Id; insert dep; // 製品を作る Product2 productA = new Product2( Name='テスト商品', Maintenance_Price_Year__c = 12000, Manual_Entry__c = false); insert productA; // 価格表エントリを作成する PricebookEntry entry = new PricebookEntry( Pricebook2Id=pricebookId, Product2Id=productA.Id); entry.UnitPrice = 0; entry.IsActive = true; entry.UseStandardPrice = false; entry.CurrencyIsoCode = 'CNY'; entry.Product2Id = productA.Id; insert entry; // 納入機器を作成する Asset asset01 = createAsset('asset01', dep.Id, strategicDep[0].Id, hospital.Id, '00001', productA.Id,'耗材'); Asset asset02 = createAsset('asset02', dep.Id, strategicDep[0].Id, hospital.Id, '00002', productA.Id,'主机'); Asset asset03 = createAsset('asset03', dep.Id, strategicDep[0].Id, hospital.Id, '00003', productA.Id,'耗材'); Asset asset04 = createAsset('asset04', dep.Id, strategicDep[0].Id, hospital.Id, '00004', productA.Id,'主机'); Asset asset05 = createAsset('asset05', dep.Id, strategicDep[0].Id, hospital.Id, '00005', productA.Id,'耗材'); // 维修合同を作成する Maintenance_Contract__c contract = new Maintenance_Contract__c(); contract.Name = 'tect contract'; contract.Not_Upper_limit_reason__c = 'tect contract'; contract.RecordtypeId = [Select Id FROM RecordType WHERE IsActive = true and SobjectType = 'Maintenance_Contract__c' and DeveloperName = 'NewMaintenance_Contract'].id; contract.Hospital__c = hospital.Id; contract.Department_Class__c = strategicDep[0].Id; contract.Department__c = dep.Id; contract.Service_Contract_Staff__c = u3.Id; insert contract; Maintenance_Contract__c contractLastyear = new Maintenance_Contract__c(); contractLastyear.Name = 'tect contract contractLastyear'; contractLastyear.Not_Upper_limit_reason__c = 'tect contract contractLastyear'; contractLastyear.RecordtypeId = [Select Id FROM RecordType WHERE IsActive = true and SobjectType = 'Maintenance_Contract__c' and DeveloperName = 'NewMaintenance_Contract'].id; contractLastyear.Hospital__c = hospital.Id; contractLastyear.Department_Class__c = strategicDep[0].Id; contractLastyear.Department__c = dep.Id; contractLastyear.Service_Contract_Staff__c = u3.Id; contractLastyear.Contract_End_Date__c = Date.newInstance(2023, 1, 1); contractLastyear.Last_year_service_contract__c = contract.Id; insert contractLastyear; // 维修合同/保有设备を作成する Maintenance_Contract_Asset__c mca1 = new Maintenance_Contract_Asset__c(); mca1.Asset__c = asset01.Id; mca1.Estimate_List_Price__c = 100; mca1.Maintenance_Contract__c = contract.Id; Maintenance_Contract_Asset__c mca2 = new Maintenance_Contract_Asset__c(); mca2.Asset__c = asset01.Id; mca2.Estimate_List_Price__c = 100; mca2.Maintenance_Contract__c = contract.Id; Maintenance_Contract_Asset__c mca3 = new Maintenance_Contract_Asset__c(); mca3.Asset__c = asset01.Id; mca3.Estimate_List_Price__c = 100; mca3.Maintenance_Contract__c = contractLastyear.Id; insert new Maintenance_Contract_Asset__c[] {mca1, mca2,mca3}; asset01.CurrentContract_F_asset__c = mca2.id; update asset01; asset02.CurrentContract_F_asset__c = mca3.id; update asset02; Maintenance_Contract_Estimate__c contactEsti1 = new Maintenance_Contract_Estimate__c( RecordtypeId = [Select Id FROM RecordType WHERE IsActive = true and SobjectType = 'Maintenance_Contract_Estimate__c' and DeveloperName = 'NewMaintenance_Quote'].id, Name = 'contract estimate 1', Maintenance_Contract__c = contract.Id, Contract_Esti_Start_Date__c = Date.today().addDays(1), Request_quotation_Amount__c = 1, EndUserType__c = '既有用户', mainTalksTime__c = 1, talksStartDate__c = Date.today(), Discount_reason__c = 'test', Improve_ConsumptionRate_Idea__c = 'test' ); insert contactEsti1; Maintenance_Contract_Asset_Estimate__c mcae1 = new Maintenance_Contract_Asset_Estimate__c(); mcae1.Asset__c = asset01.Id; mcae1.Adjustment_Upper_price__c = 1; mcae1.Adjustment_Lower_price__c = 1; mcae1.Maintenance_Contract_Estimate__c = contactEsti1.Id; mcae1.Estimate_List_Price__c = 1000; mcae1.Check_Result__c = 'OK'; //lwc add mcae1.Asset_Consumption_rate__c = 10; Maintenance_Contract_Asset_Estimate__c mcae2 = new Maintenance_Contract_Asset_Estimate__c(); mcae2.Asset__c = asset01.Id; mcae2.Adjustment_Upper_price__c = 1; mcae2.Adjustment_Lower_price__c = 1; mcae2.Maintenance_Contract_Estimate__c = contactEsti1.Id; mcae2.Estimate_List_Price__c = 1000; mcae2.Check_Result__c = 'OK'; Maintenance_Contract_Asset_Estimate__c mcae3 = new Maintenance_Contract_Asset_Estimate__c(); mcae3.Asset__c = asset01.Id; mcae3.Adjustment_Upper_price__c = 1; mcae3.Adjustment_Lower_price__c = 1; mcae3.Maintenance_Contract_Estimate__c = contactEsti1.Id; mcae3.Estimate_List_Price__c = 1000; mcae3.Check_Result__c = 'OK'; mcae3.Product_Manual__c = productA.Id; insert new Maintenance_Contract_Asset_Estimate__c[] {mcae1, mcae2,mcae3}; Achievement_linkage__c objAchievementlinkage = new Achievement_linkage__c(Consumption_rate_Lower__c =100, Consumption_rate_Upper__c=10, PriceCount_Lower__c =100, PriceCount_Upper__c = 20,Name = 'test'); insert objAchievementlinkage; } } static testMethod void testInitById() { System.Test.startTest(); User u3 = [SELECT Id FROM User WHERE Username = 'olympusTest03@sunbridge.com']; system.runAs(u3) { Maintenance_Contract_Estimate__c contactEsti1 = [SELECT Id FROM Maintenance_Contract_Estimate__c WHERE EndUserType__c = '既有用户' LIMIT 1]; String initResById = lexSelectAssetEstimateVMController.init(contactEsti1.Id,'Id'); System.assertEquals(true, initResById.length() > 0, '初始化信息异常'); } System.Test.stopTest(); } static testMethod void testInitByCopyId() { System.Test.startTest(); User u3 = [SELECT Id FROM User WHERE Username = 'olympusTest03@sunbridge.com']; system.runAs(u3) { Maintenance_Contract_Estimate__c contactEsti1 = [SELECT Id FROM Maintenance_Contract_Estimate__c WHERE EndUserType__c = '既有用户' LIMIT 1]; Maintenance_Contract__c contract = [SELECT Id,Past_Contract_end_day__c,Estimate_Num__c FROM Maintenance_Contract__c WHERE Not_Upper_limit_reason__c = 'tect contract' LIMIT 1]; lexSelectAssetEstimateVMControllerTest.staticContactEsti = contactEsti1; String initResByCopyId = lexSelectAssetEstimateVMController.init(contactEsti1.Id,'copyid'); System.assertEquals(true, initResByCopyId.length() > 0, '初始化信息异常'); lexSelectAssetEstimateVMController.InitData transInitDataByCopyId = (lexSelectAssetEstimateVMController.InitData)JSON.deserialize(initResByCopyId, lexSelectAssetEstimateVMController.InitData.class); } System.Test.stopTest(); } static testMethod void testInitByMcid() { System.Test.startTest(); User u3 = [SELECT Id FROM User WHERE Username = 'olympusTest03@sunbridge.com']; system.runAs(u3) { Maintenance_Contract_Estimate__c contactEsti1 = [SELECT Id FROM Maintenance_Contract_Estimate__c WHERE EndUserType__c = '既有用户' LIMIT 1]; Maintenance_Contract__c contract = [SELECT Id,Past_Contract_end_day__c,Estimate_Num__c FROM Maintenance_Contract__c WHERE Not_Upper_limit_reason__c = 'tect contract' LIMIT 1]; Maintenance_Contract__c contractNoEstimate = [SELECT Id,Past_Contract_end_day__c,Estimate_Num__c FROM Maintenance_Contract__c WHERE Not_Upper_limit_reason__c = 'tect contract contractLastyear' LIMIT 1]; lexSelectAssetEstimateVMControllerTest.staticContactEsti = contactEsti1; String initResByMcid = lexSelectAssetEstimateVMController.init(contract.Id,'mcid'); String initResByMcidLastYear = lexSelectAssetEstimateVMController.init(contractNoEstimate.Id,'mcid'); System.assertEquals(true, initResByMcid.length() > 0, '初始化信息异常'); lexSelectAssetEstimateVMController.InitData transInitDataMcid = (lexSelectAssetEstimateVMController.InitData)JSON.deserialize(initResByMcid, lexSelectAssetEstimateVMController.InitData.class); } System.Test.stopTest(); } static testMethod void testSave() { User u3 = [SELECT Id FROM User WHERE Username = 'olympusTest03@sunbridge.com']; system.runAs(u3) { System.Test.startTest(); Maintenance_Contract_Estimate__c contactEsti1 = [SELECT Id,EndUserType__c,Request_quotation_Amount__c,mainTalksTime__c,talksStartDate__c,Improve_ConsumptionRate_Idea__c,GuidePrice_Up__c ,Contract_Esti_Start_Date__c FROM Maintenance_Contract_Estimate__c WHERE EndUserType__c = '既有用户' LIMIT 1]; lexSelectAssetEstimateVMController.InitData transInitDataById = new lexSelectAssetEstimateVMController.InitData(); transInitDataById.estimate = contactEsti1; transInitDataById.estimate.Discount_reason__c = 'test save'; transInitDataById.estimate.Contract_Range__c = 10; transInitDataById.estimate.GuidePrice_Up__c = 0; transInitDataById.checkedAssets = new List(); transInitDataById.currPage = 1; transInitDataById.selRecordOption = '20'; transInitDataById.totalRecords = 0; transInitDataById.checkDealerId = ''; //2021-11-30 fy add LJPH-C8W8FV 置顶 start transInitDataById.TopProductModel.add('CF-LV1I'); transInitDataById.TopProductModel.add('CF-LV1L'); transInitDataById.TopProductModel.add('CV-V1'); transInitDataById.TopProductModel.add('GIF-LV1'); transInitDataById.TopProductModel.add('OER-AW'); transInitDataById.TopProductModel.add('OER-A'); //2021-11-30 fy add LJPH-C8W8FV 置顶 end transInitDataById.typeresult = null; transInitDataById.changedAfterPrint = false; transInitDataById.changedSubmitPrice = false; transInitDataById.isSaveOrApproval = false; transInitDataById.OldContractStartDate = null; transInitDataById.OldMaintenancePrice = null; transInitDataById.inDicideFlag = false; transInitDataById.isSoft = false; transInitDataById.activeOn = true; //LJPH-BSS6E2 ---20200911 ---update by rentongxiao start transInitDataById.contr = '1'; transInitDataById.val1 = '主机'; String saveResById = lexSelectAssetEstimateVMController.save(JSON.serialize(transInitDataById)); System.assertEquals(true, saveResById != null); transInitDataById.estimate.Contract_Esti_Start_Date__c = Date.today(); saveResById = lexSelectAssetEstimateVMController.save(JSON.serialize(transInitDataById)); // for exc saveResById = lexSelectAssetEstimateVMController.save(''); System.Test.stopTest(); } } static testMethod void testSave1() { User u3 = [SELECT Id FROM User WHERE Username = 'olympusTest03@sunbridge.com']; system.runAs(u3) { System.Test.startTest(); Maintenance_Contract_Estimate__c contactEsti1 = [SELECT Id,EndUserType__c,Request_quotation_Amount__c,mainTalksTime__c,talksStartDate__c,Improve_ConsumptionRate_Idea__c,GuidePrice_Up__c ,Contract_Esti_Start_Date__c FROM Maintenance_Contract_Estimate__c WHERE EndUserType__c = '既有用户' LIMIT 1]; lexSelectAssetEstimateVMController.InitData transInitDataById = new lexSelectAssetEstimateVMController.InitData(); transInitDataById.estimate = contactEsti1; transInitDataById.estimate.Discount_reason__c = 'test save'; transInitDataById.estimate.Contract_Range__c = 10; transInitDataById.estimate.GuidePrice_Up__c = 0; transInitDataById.checkedAssets = new List(); transInitDataById.currPage = 1; transInitDataById.selRecordOption = '20'; transInitDataById.totalRecords = 0; transInitDataById.checkDealerId = ''; //2021-11-30 fy add LJPH-C8W8FV 置顶 start transInitDataById.TopProductModel.add('CF-LV1I'); transInitDataById.TopProductModel.add('CF-LV1L'); transInitDataById.TopProductModel.add('CV-V1'); transInitDataById.TopProductModel.add('GIF-LV1'); transInitDataById.TopProductModel.add('OER-AW'); transInitDataById.TopProductModel.add('OER-A'); //2021-11-30 fy add LJPH-C8W8FV 置顶 end transInitDataById.typeresult = null; transInitDataById.changedAfterPrint = false; transInitDataById.changedSubmitPrice = false; transInitDataById.isSaveOrApproval = false; transInitDataById.OldContractStartDate = null; transInitDataById.OldMaintenancePrice = null; transInitDataById.inDicideFlag = true; transInitDataById.isSoft = false; transInitDataById.activeOn = true; transInitDataById.contract= new Maintenance_Contract__c(); transInitDataById.contract.Contract_End_Date__c = null; //LJPH-BSS6E2 ---20200911 ---update by rentongxiao start transInitDataById.contr = '1'; transInitDataById.val1 = '主机'; String saveResById = lexSelectAssetEstimateVMController.save(JSON.serialize(transInitDataById)); System.assertEquals(true, saveResById != null); transInitDataById.estimate.Contract_Esti_Start_Date__c = Date.today(); saveResById = lexSelectAssetEstimateVMController.save(JSON.serialize(transInitDataById)); System.Test.stopTest(); } } static testMethod void testOnChDealerUpdate() { System.Test.startTest(); User u3 = [SELECT Id FROM User WHERE Username = 'olympusTest03@sunbridge.com']; system.runAs(u3) { Maintenance_Contract_Estimate__c contactEsti1 = [SELECT Id FROM Maintenance_Contract_Estimate__c WHERE EndUserType__c = '既有用户' LIMIT 1]; lexSelectAssetEstimateVMControllerTest.staticContactEsti = contactEsti1; Account hospital = [SELECT Id FROM Account WHERE Is_Active__c = '有效' LIMIT 1]; String initResById = lexSelectAssetEstimateVMController.init(contactEsti1.Id,'Id'); System.assertEquals(true, initResById.length() > 0, '初始化信息异常'); lexSelectAssetEstimateVMController.InitData transInitDataById = (lexSelectAssetEstimateVMController.InitData)JSON.deserialize(initResById, lexSelectAssetEstimateVMController.InitData.class); transInitDataById.estimate.Discount_reason__c = 'test save'; transInitDataById.estimate.Contract_Range__c = 10; String onChDealerUpdateResById = lexSelectAssetEstimateVMController.onChDealerUpdate(JSON.serialize(contactEsti1),hospital.Id); // for exc onChDealerUpdateResById = lexSelectAssetEstimateVMController.onChDealerUpdate('',hospital.Id); String refreshProductDataResById = lexSelectAssetEstimateVMController.refreshProductData(JSON.serialize(transInitDataById.checkedAssets),JSON.serialize(transInitDataById.TopProductModel),10,10); transInitDataById.checkedAssets[0].mcae.Product_Manual__c = [SELECT Id,Name FROM Product2 WHERE Name='テスト商品' LIMIT 1].Id; refreshProductDataResById = lexSelectAssetEstimateVMController.refreshProductData(JSON.serialize(transInitDataById.checkedAssets),JSON.serialize(transInitDataById.TopProductModel),0,10); Boolean getMCAEIsCreateableResById = lexSelectAssetEstimateVMController.getMCAEIsCreateable(); List assetList = [SELECT Id, Maintenance_Price_Month__c, Posting_Date__c, InstallDate FROM Asset WHERE Name='asset01' OR Name='asset02' OR Name='asset03']; List IdList = new List(); String idsStr = ''; for (Asset assetObj : assetList) { idsStr +='\''+ assetObj.Id+'\','; } List saveBeforeCheckPriceChangeAssetResById = lexSelectAssetEstimateVMController.saveBeforeCheckPriceChangeAsset(idsStr.substring(0,idsStr.length()-1)); System.assertEquals(true, saveBeforeCheckPriceChangeAssetResById != null, 'saveBeforeCheckPriceChangeAsset 异常'); idsStr = ''; List product2List = [SELECT Id,Name FROM Product2 WHERE Name='テスト商品']; for (Product2 product2Obj : product2List) { idsStr +='\''+ product2Obj.Id+'\','; } List saveBeforeCheckPriceChangeProduct2ResById = lexSelectAssetEstimateVMController.saveBeforeCheckPriceChangeProduct2(idsStr.substring(0,idsStr.length()-1)); System.assertEquals(true, saveBeforeCheckPriceChangeProduct2ResById != null, 'saveBeforeCheckPriceChangeProduct2 异常'); } System.Test.stopTest(); } static testMethod void testSearchBtnEquals() { System.Test.startTest(); User u3 = [SELECT Id FROM User WHERE Username = 'olympusTest03@sunbridge.com']; system.runAs(u3) { Maintenance_Contract_Estimate__c contactEsti1 = [SELECT Id FROM Maintenance_Contract_Estimate__c WHERE EndUserType__c = '既有用户' LIMIT 1]; String initResById = lexSelectAssetEstimateVMController.init(contactEsti1.Id,'Id'); System.assertEquals(true, initResById.length() > 0, '初始化信息异常'); lexSelectAssetEstimateVMController.InitData transInitDataById = (lexSelectAssetEstimateVMController.InitData)JSON.deserialize(initResById, lexSelectAssetEstimateVMController.InitData.class); transInitDataById.estimate.Discount_reason__c = 'test save'; transInitDataById.estimate.Contract_Range__c = 10; String saveResById = lexSelectAssetEstimateVMController.save(JSON.serialize(transInitDataById)); String approvalProcessResById = lexSelectAssetEstimateVMController.approvalProcess(JSON.serialize(transInitDataById)); String decideResById = lexSelectAssetEstimateVMController.decide(JSON.serialize(transInitDataById)); String saveAndCancelResById = lexSelectAssetEstimateVMController.saveAndCancel(JSON.serialize(transInitDataById)); Maintenance_Contract_Estimate__c contactEstiObj = [SELECT Id,Discount_reason__c FROM Maintenance_Contract_Estimate__c WHERE Name = 'contract estimate 1']; System.assertEquals(true,contactEstiObj.Discount_reason__c == 'test save'); transInitDataById.text1 = 'S:AssetMark__c'; transInitDataById.cond1 = 'equals'; transInitDataById.val1 = ''; String searchBtnResById = lexSelectAssetEstimateVMController.searchBtn(JSON.serialize(transInitDataById)); System.assertEquals(true, searchBtnResById != null); } System.Test.stopTest(); } static testMethod void testSearchBtnEqualsWithVal() { User u3 = [SELECT Id FROM User WHERE Username = 'olympusTest03@sunbridge.com']; system.runAs(u3) { System.Test.startTest(); Maintenance_Contract_Estimate__c contactEsti1 = [SELECT Id FROM Maintenance_Contract_Estimate__c WHERE EndUserType__c = '既有用户' LIMIT 1]; String initResById = lexSelectAssetEstimateVMController.init(contactEsti1.Id,'Id'); System.assertEquals(true, initResById.length() > 0, '初始化信息异常'); lexSelectAssetEstimateVMController.InitData transInitDataById = (lexSelectAssetEstimateVMController.InitData)JSON.deserialize(initResById, lexSelectAssetEstimateVMController.InitData.class); String addNewRowsResById = lexSelectAssetEstimateVMController.addNewRows(JSON.serialize(transInitDataById.checkedAssets)); // for exc addNewRowsResById = lexSelectAssetEstimateVMController.addNewRows(''); transInitDataById.text1 = 'S:AssetMark__c'; transInitDataById.cond1 = 'equals'; transInitDataById.val1 = '耗材,主机'; String searchBtnResById = lexSelectAssetEstimateVMController.searchBtn(JSON.serialize(transInitDataById)); System.assertEquals(true, searchBtnResById != null); System.Test.stopTest(); } } static testMethod void testSearchBtnNotEquals() { User u3 = [SELECT Id FROM User WHERE Username = 'olympusTest03@sunbridge.com']; system.runAs(u3) { System.Test.startTest(); Maintenance_Contract_Estimate__c contactEsti1 = [SELECT Id FROM Maintenance_Contract_Estimate__c WHERE EndUserType__c = '既有用户' LIMIT 1]; String initResById = lexSelectAssetEstimateVMController.init(contactEsti1.Id,'Id'); System.assertEquals(true, initResById.length() > 0, '初始化信息异常'); lexSelectAssetEstimateVMController.InitData transInitDataById = (lexSelectAssetEstimateVMController.InitData)JSON.deserialize(initResById, lexSelectAssetEstimateVMController.InitData.class); transInitDataById.estimate.Discount_reason__c = 'test save'; transInitDataById.estimate.Contract_Range__c = 10; transInitDataById.text1 = 'S:AssetMark__c'; transInitDataById.cond1 = 'notequals'; transInitDataById.val1 = ''; String searchBtnResById = lexSelectAssetEstimateVMController.searchBtn(JSON.serialize(transInitDataById)); System.assertEquals(true, searchBtnResById != null); transInitDataById.val1 = '耗材,主机'; searchBtnResById = lexSelectAssetEstimateVMController.searchBtn(JSON.serialize(transInitDataById)); System.Test.stopTest(); } } static testMethod void testSearchBtnContains() { User u3 = [SELECT Id FROM User WHERE Username = 'olympusTest03@sunbridge.com']; system.runAs(u3) { System.Test.startTest(); Maintenance_Contract_Estimate__c contactEsti1 = [SELECT Id FROM Maintenance_Contract_Estimate__c WHERE EndUserType__c = '既有用户' LIMIT 1]; String initResById = lexSelectAssetEstimateVMController.init(contactEsti1.Id,'Id'); System.assertEquals(true, initResById.length() > 0, '初始化信息异常'); lexSelectAssetEstimateVMController.InitData transInitDataById = (lexSelectAssetEstimateVMController.InitData)JSON.deserialize(initResById, lexSelectAssetEstimateVMController.InitData.class); transInitDataById.estimate.Discount_reason__c = 'test save'; transInitDataById.estimate.Contract_Range__c = 10; transInitDataById.text1 = 'S:AssetMark__c'; transInitDataById.cond1 = 'contains'; transInitDataById.val1 = ''; String searchBtnResById = lexSelectAssetEstimateVMController.searchBtn(JSON.serialize(transInitDataById)); System.assertEquals(true, searchBtnResById != null); transInitDataById.val1 = '耗材,主机'; searchBtnResById = lexSelectAssetEstimateVMController.searchBtn(JSON.serialize(transInitDataById)); transInitDataById.val1 = '耗材 主机'; searchBtnResById = lexSelectAssetEstimateVMController.searchBtn(JSON.serialize(transInitDataById)); transInitDataById.cond1 = 'starts with'; searchBtnResById = lexSelectAssetEstimateVMController.searchBtn(JSON.serialize(transInitDataById)); System.Test.stopTest(); } } static testMethod void testExchangeAsset(){ User u3 = [SELECT Id FROM User WHERE Username = 'olympusTest03@sunbridge.com']; system.runAs(u3) { System.Test.startTest(); Maintenance_Contract_Estimate__c contactEsti1 = [SELECT Id FROM Maintenance_Contract_Estimate__c WHERE EndUserType__c = '既有用户' LIMIT 1]; String initResById = lexSelectAssetEstimateVMController.init(contactEsti1.Id,'Id'); System.assertEquals(true, initResById.length() > 0, '初始化信息异常'); lexSelectAssetEstimateVMController.InitData transInitDataById = (lexSelectAssetEstimateVMController.InitData)JSON.deserialize(initResById, lexSelectAssetEstimateVMController.InitData.class); transInitDataById.unCheckedAssets[0].rec_checkBox_c = true; //Maintenance_Contract__c 上一期维修合同 Maintenance_Contract__c objMaintenanceContract = [SELECT Id,Contract_Consumption_rate__c FROM Maintenance_Contract__c WHERE Not_Upper_limit_reason__c = 'tect contract' LIMIT 1]; System.debug(LoggingLevel.INFO, '***testExchangeAsset objMaintenanceContract: ' + objMaintenanceContract); transInitDataById.unCheckedAssets[0].rec.CurrentContract_F__c = objMaintenanceContract.Id; // transInitDataById.unCheckedAssets[0].mcae.Asset_Consumption_rate__c = 100; transInitDataById.estimate.Discount_reason__c = 'test save'; transInitDataById.estimate.Contract_Range__c = 10; transInitDataById.text1 = 'S:AssetMark__c'; transInitDataById.cond1 = 'contains'; transInitDataById.val1 = ''; String exchangeAssetResById = lexSelectAssetEstimateVMController.exchangeAsset(JSON.serialize(transInitDataById)); System.assertEquals(true, exchangeAssetResById != null); // for exc exchangeAssetResById = lexSelectAssetEstimateVMController.exchangeAsset(''); Maintenance_Contract__c contractNoEstimate = [SELECT Id,Past_Contract_end_day__c,Estimate_Num__c FROM Maintenance_Contract__c WHERE Not_Upper_limit_reason__c = 'tect contract contractLastyear' LIMIT 1]; // contract.Hospital_Salesdepartment__c = '6.华南'; String initResByMcidLastYear = lexSelectAssetEstimateVMController.init(contractNoEstimate.Id,'mcid'); exchangeAssetResById = lexSelectAssetEstimateVMController.exchangeAsset(initResByMcidLastYear); System.Test.stopTest(); } } static testMethod void testApprovalProcess() { User u3 = [SELECT Id FROM User WHERE Username = 'olympusTest03@sunbridge.com']; system.runAs(u3) { System.Test.startTest(); Maintenance_Contract_Estimate__c contactEsti1 = [SELECT Id FROM Maintenance_Contract_Estimate__c WHERE EndUserType__c = '既有用户' LIMIT 1]; String initResById = lexSelectAssetEstimateVMController.init(contactEsti1.Id,'Id'); System.assertEquals(true, initResById.length() > 0, '初始化信息异常'); lexSelectAssetEstimateVMController.InitData transInitDataById = (lexSelectAssetEstimateVMController.InitData)JSON.deserialize(initResById, lexSelectAssetEstimateVMController.InitData.class); String approvalProcessResById = lexSelectAssetEstimateVMController.approvalProcess(JSON.serialize(transInitDataById)); System.assertEquals(true, approvalProcessResById != null); System.Test.stopTest(); } } static testMethod void testShowLTYRepair() { User u3 = [SELECT Id FROM User WHERE Username = 'olympusTest03@sunbridge.com']; system.runAs(u3) { System.Test.startTest(); Maintenance_Contract_Estimate__c contactEsti1 = [SELECT Id FROM Maintenance_Contract_Estimate__c WHERE EndUserType__c = '既有用户' LIMIT 1]; String initResById = lexSelectAssetEstimateVMController.init(contactEsti1.Id,'Id'); System.assertEquals(true, initResById.length() > 0, '初始化信息异常'); lexSelectAssetEstimateVMController.InitData transInitDataById = (lexSelectAssetEstimateVMController.InitData)JSON.deserialize(initResById, lexSelectAssetEstimateVMController.InitData.class); transInitDataById.estimate.Discount_reason__c = 'test save'; transInitDataById.estimate.Contract_Range__c = 10; String showLTYRepairResById = lexSelectAssetEstimateVMController.ShowLTYRepair(transInitDataById.targetEstimateId); //for exc showLTYRepairResById = lexSelectAssetEstimateVMController.ShowLTYRepair(''); String toApprovalProcessResById = lexSelectAssetEstimateVMController.toApprovalProcess(JSON.serialize(transInitDataById)); toApprovalProcessResById = lexSelectAssetEstimateVMController.toApprovalProcess(''); String decideResById = lexSelectAssetEstimateVMController.decide(JSON.serialize(transInitDataById)); String decideCancleResById = lexSelectAssetEstimateVMController.decideCancle(JSON.serialize(transInitDataById)); decideCancleResById = lexSelectAssetEstimateVMController.decideCancle(''); String undecideResById = lexSelectAssetEstimateVMController.undecide(transInitDataById.targetEstimateId,JSON.serialize(contactEsti1)); System.assertEquals(true, undecideResById != null); System.Test.stopTest(); } } static testMethod void testDecideSyncEstimateById() { User u3 = [SELECT Id FROM User WHERE Username = 'olympusTest03@sunbridge.com']; system.runAs(u3) { System.Test.startTest(); //init id Maintenance_Contract_Estimate__c contactEsti2 = [SELECT Id,Contract_Esti_Start_Date__c,Contract_Range__c,Process_Status__c,EndUserType__c,Request_quotation_Amount__c,mainTalksTime__c,talksStartDate__c,Improve_ConsumptionRate_Idea__c,GuidePrice_Up__c ,Contract_Start_Date__c FROM Maintenance_Contract_Estimate__c WHERE EndUserType__c = '既有用户' LIMIT 1]; Maintenance_Contract_Asset_Estimate__c mcae = [SELECT Id,IsNew__c,Check_Object__c,Product_Manual__c,Estimate_List_Price__c,Check_Result__c,Repair_Price__c,Repair_Price_pass__c ,Comment__c,EquipmentGuaranteeFlgTxt__c,Estimate_Cost__c,Adjustment_ratio_Upper__c,Adjustment_ratio_Lower__c,Adjustment_Upper_price__c ,LastMContract_Price__c,Adjustment_Lower_price__c,Asset_Consumption_rate__c,Maintenance_Contract_Estimate__r.Contract_Esti_Start_Date__c ,Estimate_List_Price_Page__c,Third_Party_Return__c,Product_Manual__r.Maintenance_Price_Month__c,Product_Manual__r.EquipmentGuaranteeFlg__c ,Product_Manual__r.Asset_Model_No__c,Product_Manual__r.IS_StandardPricing__c,Asset__r.OwnershipMachine_No__c ,Product_Manual__r.Category4__c FROM Maintenance_Contract_Asset_Estimate__c WHERE Maintenance_Contract_Estimate__c =:contactEsti2.Id AND Product_Manual__c != null LIMIT 1]; // transInitDataById.checkedAssets.add(new lexSelectAssetEstimateVMController.AssetInfo(1,mcae)); lexSelectAssetEstimateVMController.AssetInfo objAssetInfo = new lexSelectAssetEstimateVMController.AssetInfo(1,mcae); // contactEsti2.Process_Status__c = '批准'; // update contactEsti2; String initResById = lexSelectAssetEstimateVMController.init(contactEsti2.Id,'Id'); System.assertEquals(true, initResById.length() > 0, '初始化信息异常'); lexSelectAssetEstimateVMController.InitData transInitDataById = (lexSelectAssetEstimateVMController.InitData)JSON.deserialize(initResById, lexSelectAssetEstimateVMController.InitData.class); transInitDataById.estimate.Discount_reason__c = 'test save'; transInitDataById.estimate.Contract_Range__c = 10; String decideSyncEstimateResById = lexSelectAssetEstimateVMController.syncEstimate(true,true,transInitDataById); // transInitDataById.contract. transInitDataById.estimate.Process_Status__c = '批准'; decideSyncEstimateResById = lexSelectAssetEstimateVMController.syncEstimate(false,true,transInitDataById); transInitDataById.changedAfterPrint = true; transInitDataById.estimate.Maintenance_Price__c = 0; decideSyncEstimateResById = lexSelectAssetEstimateVMController.syncEstimate(true,true,transInitDataById); System.assertEquals(true, decideSyncEstimateResById != null); System.Test.stopTest(); } } static testMethod void testDecideSyncEstimateByMcid() { User u3 = [SELECT Id FROM User WHERE Username = 'olympusTest03@sunbridge.com']; system.runAs(u3) { System.Test.startTest(); //mcid id Maintenance_Contract_Estimate__c contactEsti1 = [SELECT Id, Name, Maintenance_Contract__c, Estimation_Decision__c, CreatedDate, Service_Contract_Staff__c, JingliApprovalManager__c, BuchangApprovalManager__c, ZongjianApprovalManager__c, Finally_Approved_Staff__c, Contract_Esti_Start_Date__c, Contract_Esti_End_Date__c, Contract_Range__c, Contract_Start_Date__c, Contract_End_Date__c, Maintenance_Contract_Status__c, Discount_reason__c, Improve_ConsumptionRate_Idea__c, Process_Status__c, Estimate_Trial_Money__c, Maintenance_Price__c, Department__c, PrintDate__c, Quote_Date__c, Submit_quotation_day__c, Examination_Price__c, Service_contract_target_number__c,IS_Reduced_price_approval__c, Maintenance_Contract__r.Payment_Plan_Sum_First__c, Maintenance_Contract__r.Payment_Plan_Date_First__c, Maintenance_Contract__r.Payment_Plan_Sum_Second__c, Maintenance_Contract__r.Payment_Plan_Sum_Third__c, Maintenance_Contract__r.Payment_Plan_Sum_Forth__c, Maintenance_Contract__r.Payment_Plan_Sum_Fifth__c, Maintenance_Contract__r.Payment_Plan_Sum_Sixth__c, Discount_Price__c, Discount_Percentage__c, IsSyncing__c, NotUse_Oxygenated_Water__c, Estimate_Target__c, Dealer__c,Dealer__r.FirstParagraphEnd__c,Is_RecognitionModel__c, Append_Condition_Price__c, Asset_Sum_Price__c, Asset_Repair_Sum_Price__c, Print_Contract__c, Print_RepairPrice__c, Print_DiscountPercentage__c, Print_Agent__c, Change_Dealer_Approval__c, Print_DiscountPrice__c, Print_ListPrice__c, Print_MaintePrice__c, Print_SumPrice__c, Print_Tripartite__c, TKZongjianApprovalManager__c //打印报价(简化版) 2019/12/18 start , IS_Clone_After_Decide__c, New_contract_offer__c, NewEstimation_Amount__c, EndUserType__c, Print_Simplify__c //打印报价(简化版) 2019/12/18 end //最低价格 最高价格 申请背景相关字段 20200108 start , GuidePrice_Up__c, GuidePrice_Down__c, finalPriceDecideWay__c, mainTalksTime__c, talksStartDate__c , Combined_rate__c, New_Contract_Type_TxT__c, Estimate_Price_range__c //最低价格 最高价格计算 20200108 end , Sales_incidental__c, Consumption_rate_Forecast__c, AgencyHos_Price__c // 申请报价金额 和 相对标准价格范围的折扣率 , Request_quotation_Amount__c, Service_discount_Rate__c, ContractPriceType__c //上限合同 20230103 hql start ,Limit_Price_Amount__c //上限合同 20230103 hql end , LastMContract1__c, LastMContract2__c, LastMContract3__c, LastMContract4__c, LastMContract5__c , LastMContract1_ConCount__c, LastMContract2_ConCount__c, LastMContract3_ConCount__c, LastMContract4_ConCount__c, LastMContract5_ConCount__c, LastMContract1_NO__c, LastMContract2_NO__c, LastMContract3_NO__c, LastMContract4_NO__c, LastMContract5_NO__c //跳过点检标记 2021/07/28 gzw start , Skip_DJ__c //跳过点检标记 2021/07/28 gzw start // 服务合同点检拦截逻辑修改 start ,Approved_quotation_day__c // 服务合同点检拦截逻辑修改 end //WLIG-CDFBV3 开通续签报价为true的可以开放续签报价 thh 20220419 start , Maintenance_Contract__r.Open_RenewalQuotation__c,Maintenance_Contract__r.VM_Contract_Check__c //WLIG-CDFBV3 开通续签报价为true的可以开放续签报价 thh 20220419 end' //LJPH-C9SCX7 【委托】合同无空白期的提醒 lt 20211221 start // 报价规则改善20230314 start , Maintenance_Contract__r.Past_Contract_end_day__c //过去合同结束日 ,renewTen_OFF__c ,AgreeRenewTen_OFF__c ,Monthly_Repair_Cost_SUM__c // 报价规则改善20230314 end //LJPH-C9SCX7 【委托】合同无空白期的提醒 lt 20211221 end // URF限次合同2期 LY 20220811 start ,URF_P_MaxRepairCount__c,URF_V_MaxRepairCount__c ,URFMContract1__c,URFMContract1_startDate__c,URFMContract1_endDate__c //,URFMContract2__c,URFMContract3__c,URFMContract4__c,URFMContract5__c ,URF_LastMContract1_NO__c,URF_LastMContract2_NO__c,URF_LastMContract3_NO__c,URF_LastMContract4_NO__c,URF_LastMContract5_NO__c ,URF_LastMContract1_ConCount__c,URF_LastMContract2_ConCount__c,URF_LastMContract3_ConCount__c,URF_LastMContract4_ConCount__c,URF_LastMContract5_ConCount__c // URF限次合同2期 LY 20220811 end //故障品加费 2022/12/16 start ,Hospital_Salesdepartment__c ,Send_Email_To_RC__c //故障品加费 2022/12/16 end //贸易合规 you start ,Maintenance_Contract__r.AccDealerBlacklist__c ,Maintenance_Contract__r.Hospital__r.Name ,Maintenance_Contract__r.Dealer__r.Name ,CreatedById //贸易合规 you end // 报价合并 20230602 start ,Maintenance_Contract__r.MaintanceContractPack__r.id // 报价合并 20230602 end // 报价页面【合同定价总额】字段添加 20230628 start ,Total_Contract_Price__c FROM Maintenance_Contract_Estimate__c WHERE EndUserType__c = '既有用户' LIMIT 1]; //targetEstimateId blank Maintenance_Contract__c contract = [SELECT Id,Past_Contract_end_day__c,Estimate_Num__c FROM Maintenance_Contract__c WHERE Not_Upper_limit_reason__c = 'tect contract' LIMIT 1]; String initResByMcid = lexSelectAssetEstimateVMController.init(contract.Id,'mcid'); lexSelectAssetEstimateVMController.InitData transInitDataByMcid = (lexSelectAssetEstimateVMController.InitData)JSON.deserialize(initResByMcid, lexSelectAssetEstimateVMController.InitData.class); contactEsti1.Contract_Esti_Start_Date__c = Date.newInstance(2022, 2,2); contactEsti1.Contract_Range__c = 12; transInitDataByMcid.estimate = contactEsti1; String decideSyncEstimateResByMcid = lexSelectAssetEstimateVMController.syncEstimate(false,false,transInitDataByMcid); System.assertEquals(true, decideSyncEstimateResByMcid != null); System.Test.stopTest(); } } static testMethod void testPrint() { User u3 = [SELECT Id FROM User WHERE Username = 'olympusTest03@sunbridge.com']; system.runAs(u3) { System.Test.startTest(); Maintenance_Contract_Estimate__c contactEsti1 = [SELECT Id FROM Maintenance_Contract_Estimate__c WHERE EndUserType__c = '既有用户' LIMIT 1]; String initResById = lexSelectAssetEstimateVMController.init(contactEsti1.Id,'Id'); System.assertEquals(true, initResById.length() > 0, '初始化信息异常'); lexSelectAssetEstimateVMController.InitData transInitDataById = (lexSelectAssetEstimateVMController.InitData)JSON.deserialize(initResById, lexSelectAssetEstimateVMController.InitData.class); transInitDataById.estimate.Discount_reason__c = 'test save'; transInitDataById.estimate.Contract_Range__c = 10; String printResById = lexSelectAssetEstimateVMController.print(JSON.serialize(transInitDataById)); System.assertEquals(true, printResById != null); transInitDataById.estimate.Process_Status__c = '批准'; printResById = lexSelectAssetEstimateVMController.print(JSON.serialize(transInitDataById)); // for exc printResById = lexSelectAssetEstimateVMController.print(''); System.Test.stopTest(); } } static testMethod void testSendEmail() { User u3 = [SELECT Id FROM User WHERE Username = 'olympusTest03@sunbridge.com']; system.runAs(u3) { System.Test.startTest(); Maintenance_Contract_Estimate__c contactEsti1 = [SELECT Id,EndUserType__c,Request_quotation_Amount__c,mainTalksTime__c,talksStartDate__c,Improve_ConsumptionRate_Idea__c,GuidePrice_Up__c FROM Maintenance_Contract_Estimate__c WHERE EndUserType__c = '既有用户' LIMIT 1]; lexSelectAssetEstimateVMController.InitData transInitDataById = new lexSelectAssetEstimateVMController.InitData(); transInitDataById.estimate = contactEsti1; transInitDataById.estimate.Discount_reason__c = 'test save'; transInitDataById.estimate.Contract_Range__c = 10; transInitDataById.estimate.GuidePrice_Up__c = 0; transInitDataById.checkedAssets = new List(); transInitDataById.currPage = 1; transInitDataById.selRecordOption = '20'; transInitDataById.totalRecords = 0; transInitDataById.checkDealerId = ''; //2021-11-30 fy add LJPH-C8W8FV 置顶 start transInitDataById.TopProductModel.add('CF-LV1I'); transInitDataById.TopProductModel.add('CF-LV1L'); transInitDataById.TopProductModel.add('CV-V1'); transInitDataById.TopProductModel.add('GIF-LV1'); transInitDataById.TopProductModel.add('OER-AW'); transInitDataById.TopProductModel.add('OER-A'); //2021-11-30 fy add LJPH-C8W8FV 置顶 end transInitDataById.typeresult = null; transInitDataById.changedAfterPrint = false; transInitDataById.changedSubmitPrice = false; transInitDataById.isSaveOrApproval = false; transInitDataById.OldContractStartDate = null; transInitDataById.OldMaintenancePrice = null; transInitDataById.inDicideFlag = false; transInitDataById.isSoft = false; transInitDataById.activeOn = true; //LJPH-BSS6E2 ---20200911 ---update by rentongxiao start transInitDataById.contr = '1'; transInitDataById.val1 = '主机'; transInitDataById.estimate.Contract_Esti_Start_Date__c = Date.today(); // transInitDataById.estimate.Decided_Estimation__c =''; //走发邮件 String sendEmailResById = lexSelectAssetEstimateVMController.sendEmail(JSON.serialize(transInitDataById)); System.assertEquals(true, sendEmailResById != null); //验证返回结果 transInitDataById.estimate.Contract_Range__c = null; sendEmailResById = lexSelectAssetEstimateVMController.sendEmail(JSON.serialize(transInitDataById)); transInitDataById.estimate.Contract_Range__c = 10; transInitDataById.estimate.EndUserType__c = ''; sendEmailResById = lexSelectAssetEstimateVMController.sendEmail(JSON.serialize(transInitDataById)); String initResById = lexSelectAssetEstimateVMController.init(contactEsti1.Id,'Id'); System.assertEquals(true, initResById.length() > 0, '初始化信息异常'); transInitDataById = (lexSelectAssetEstimateVMController.InitData)JSON.deserialize(initResById, lexSelectAssetEstimateVMController.InitData.class); transInitDataById.estimate.Discount_reason__c = 'test save'; transInitDataById.estimate.Contract_Range__c = 10; sendEmailResById = lexSelectAssetEstimateVMController.sendEmail(JSON.serialize(transInitDataById)); System.Test.stopTest(); } } static testMethod void testFirstPage() { User u3 = [SELECT Id FROM User WHERE Username = 'olympusTest03@sunbridge.com']; system.runAs(u3) { System.Test.startTest(); Maintenance_Contract_Estimate__c contactEsti1 = [SELECT Id FROM Maintenance_Contract_Estimate__c WHERE EndUserType__c = '既有用户' LIMIT 1]; Asset objAsset = [SELECT Id, Name,OwnershipMachine_No__c,Product2.ProductURF__c, Asset_situation__c, SerialNumber, Department_Name__c, Installation_Site__c, Posting_Date__c, Management_Code__c, IF_Warranty_Service__c, Reson_Can_not_Warranty__c, InstallDate, isNewDate_use__c, Asset_Owner__c, Accumulation_Repair_Amount__c, Maintenance_Price_Month__c, Final_Examination_Date__c, CurrentContract_End_Date__c, EquipmentGuaranteeFlg__c, CurrentContract_F__c, CurrentContract_F__r.Maintenance_Contract_No_F__c,CurrentContract_F__r.Management_Code__c, CurrentContract_F__r.RecordType_DeveloperName__c, CurrentContract_F__r.Estimate_Num__c, CurrentContract_F__r.Contract_End_Date__c, CurrentContract_F__r.Estimate_Contract_endDate__c, CurrentContract_F_asset__c, CurrentContract_F_asset__r.Estimate_Cost_Month_formula__c, CurrentContract_F_asset__r.endDateGurantee_Text__c, CurrentContract_F__r.Gurantee_Estimate_startDate__c, CurrentContract_F__r.First_Estimate_Date__c, //变更多年保续签开始日 thh 20220315 start CurrentContract_F__r.Gurantee_Renew_startDate__c, //变更多年保续签开始日 thh 20220315 end // (2022年12月上线)故障品加费 start Return_Without_Repair__r.Repair_List_Price_formula__c, Return_Without_Repair__r.Agreed_Date__c, // (2022年12月上线)故障品加费 end CurrentContract_F__r.Contract_Consumption_rate__c, CurrentContract_F__r.First_contract_usage_Rate__c, CurrentContract_F__r.Contract_Range__c, AssetMark__c, //WLIG-CDFBV3 开通续签报价为true的可以开放续签报价 thh 20220414 start CurrentContract_F__r.Open_RenewalQuotation__c,CurrentContract_F__r.VM_Contract_Check__c, //WLIG-CDFBV3 开通续签报价为true的可以开放续签报价 thh 20220414 end // 2021-01-29 LJPH-BX9CVX mzy add 合同报价时判断零件风险 NoPartRiskDate_F__c, NoPartRiskDate__c, SignableFlag__c, Product2.PartSupplyFinishDate__c, Product2.PartSupplyFinishDateExp__c // 2021-01-29 LJPH-BX9CVX mzy add 合同报价时判断零件风险 //URF限次合同2期 LY 20220811 start , URF_Maintenance_Contract__c , URF_Maintenance_Contract__r.Management_Code__c , URF_Maintenance_Contract__r.Contract_End_Date__c //URF限次合同2期 LY 20220811 end // 报价规则改善 20230315 start ,IS_StandardPricing__c // 报价规则改善 20230315 end //多年保设备续签计算逻辑调整 2023/1/17 start ,CurrentContract_F_asset__r.Asset_Consumption_Rate__c ,CurrentContract_F_asset__r.Maintenance_Price_Year__c ,CurrentContract_F_asset__r.IS_VMContract_Asset__c ,Product2.Asset_Model_No__c // 报价页面【合同定价总额】字段添加 20230608 start ,Product2.Maintenance_Price_Year__c // 报价页面【合同定价总额】字段添加 20230608 end ,Product2.Category4__c ,CurrentContract_F__r.endDateGurantee__c //添加是否服务多年保修,多年保维修期至 ,IS_Extend_Gurantee__c,Extend_Gurantee_DateTo__c //多年保设备续签计算逻辑调整 2023/1/17 end FROM Asset WHERE Name = 'asset01' LIMIT 1]; String initResById = lexSelectAssetEstimateVMController.init(contactEsti1.Id,'Id'); System.assertEquals(true, initResById.length() > 0, '初始化信息异常'); lexSelectAssetEstimateVMController.InitData transInitDataById = (lexSelectAssetEstimateVMController.InitData)JSON.deserialize(initResById, lexSelectAssetEstimateVMController.InitData.class); transInitDataById.estimate.Discount_reason__c = 'test save'; // String firstPageResById = lexSelectAssetEstimateVMController.firstPage(JSON.serialize(transInitDataById)); // System.assertEquals(true, firstPageResById != null); // String nextPageResById = lexSelectAssetEstimateVMController.nextPage(JSON.serialize(transInitDataById)); // transInitDataById.currPage++; // String previousPageResById = lexSelectAssetEstimateVMController.previousPage(JSON.serialize(transInitDataById)); // String endPageResById = lexSelectAssetEstimateVMController.endPage(JSON.serialize(transInitDataById)); // String recordNumChangeResById = lexSelectAssetEstimateVMController.recordNumChange(JSON.serialize(transInitDataById)); Boolean getApprovalBtnNewDisabledResById = lexSelectAssetEstimateVMController.getApprovalBtnNewDisabled(); String interceptsendResById = lexSelectAssetEstimateVMController.interceptsend(JSON.serialize(transInitDataById.estimate),transInitDataById.targetEstimateId); // transInitDataById.currPage = 101; // nextPageResById = lexSelectAssetEstimateVMController.nextPage(firstPageResById); System.assertEquals(true, interceptsendResById != null); // for exc interceptsendResById = lexSelectAssetEstimateVMController.interceptsend('',transInitDataById.targetEstimateId); System.Test.stopTest(); } } static testMethod void testPriceChangeReset() { User u3 = [SELECT Id FROM User WHERE Username = 'olympusTest03@sunbridge.com']; system.runAs(u3) { System.Test.startTest(); Maintenance_Contract_Estimate__c contactEsti1 = [SELECT Id FROM Maintenance_Contract_Estimate__c WHERE EndUserType__c = '既有用户' LIMIT 1]; lexSelectAssetEstimateVMController.Data dataObj = new lexSelectAssetEstimateVMController.Data(22,22,22,22); String initResById = lexSelectAssetEstimateVMController.init(contactEsti1.Id,'Id'); System.assertEquals(true, initResById.length() > 0, '初始化信息异常'); lexSelectAssetEstimateVMController.InitData transInitDataById = (lexSelectAssetEstimateVMController.InitData)JSON.deserialize(initResById, lexSelectAssetEstimateVMController.InitData.class); transInitDataById.estimate.Discount_reason__c = 'test save'; transInitDataById.estimate.Contract_Range__c = 10; transInitDataById.changedSubmitPrice = true; String priceChangeResetResById = lexSelectAssetEstimateVMController.approvalProcess(JSON.serialize(transInitDataById)); System.Test.stopTest(); } } static testMethod void testComputeLTYRepair() { User u3 = [SELECT Id FROM User WHERE Username = 'olympusTest03@sunbridge.com']; system.runAs(u3) { System.Test.startTest(); Maintenance_Contract_Estimate__c contactEsti1 = [SELECT Id FROM Maintenance_Contract_Estimate__c WHERE EndUserType__c = '既有用户' LIMIT 1]; Account hospital = [SELECT Id FROM Account WHERE Is_Active__c = '有效' LIMIT 1]; Account dep = [SELECT Id FROM Account WHERE Hospital__c = :hospital.Id LIMIT 1]; // 戦略科室を得る List strategicDep = [SELECT ID, Name FROM Account WHERE parentId = :hospital.Id AND recordType.DeveloperName = 'Department_Class_GI']; Asset asset01 = [SELECT Id FROM Asset WHERE Name = 'asset01' LIMIT 1]; // 修理を作成する01 Repair__c repair01 = new Repair__c(); repair01.Account__c = dep.Id; repair01.Department_Class__c = strategicDep[0].Id; repair01.Hospital__c = hospital.Id; repair01.Delivered_Product__c = asset01.Id; repair01.SERVICE_CONTRACT_JUDEGE_DAY__C = Date.today().addDays(0); // 维修合同判断日がサービス契約の中間辺りの日付 repair01.FSE_Work_Location__c = '上海'; repair01.AWS_Data_Id__c = '123456789'; repair01.Agreed_Date__c = Date.today().addDays(-1); insert repair01; String computeLTYRepairResById = lexSelectAssetEstimateVMController.ComputeLTYRepair(contactEsti1.Id); //sumPrice savePrintFlg setApprovalManager System.assertEquals(true, computeLTYRepairResById == null); System.Test.stopTest(); } } static testMethod void testAccSendEmailFW(){ Maintenance_Contract__c mc = [select id,name,Hospital__r.name, Hospital__r.TradeComplianceStatus__c, Dealer__r.TradeComplianceStatus__c, Dealer__r.name, Service_Contract_Staff__r.name, Service_Contract_Staff__r.Email from Maintenance_Contract__c limit 1]; lexSelectAssetEstimateVMController.accSendEmailFW(mc.id,'2222222','1',null); lexSelectAssetEstimateVMController.accSendEmailFW(mc.id,'2222222','2','2223d2d2d'); } }