@isTest public class RentalApplyWebServiceTest { // 备品借出时间check static testMethod void testMethodApprovalCheck() { ControllerUtil.EscapeNFM001Trigger = true; Oly_TriggerHandler.bypass(Product2Handler.Class.getName()); Oly_TriggerHandler.bypass(AssetHandler.Class.getName()); Oly_TriggerHandler.bypass(FixtureSetHandler.Class.getName()); Oly_TriggerHandler.bypass(RentalApplyTriggerHandler.Class.getName()); Oly_TriggerHandler.bypass(RentalApplyEquipmentSetHandler.Class.getName()); Oly_TriggerHandler.bypass(RentalApplyEquipmentSetDetailHandler.Class.getName()); Oly_TriggerHandler.bypass(ContactTriggerHandler.Class.getName()); Oly_TriggerHandler.bypass('AssetTrigger'); CreateRelationListPagingCmpCtrl cmp; PageReference ref; List raObjs; //Rental_Apply__c raObj; List raesObjs; //Rental_Apply_Equipment_Set__c raesObj; List raesdObjs; system.runAs(getUser()) { setupTestData1(); Test.startTest(); raObjs = [select Id from Rental_Apply__c]; System.assertEquals(raObjs.size(), 1); // 备品借出时间check RentalApplyWebService.approvalCheck(raObjs[0].Id); Test.stopTest(); } } // 备品借出时间check static testMethod void testMethodApprovalCheck1() { ControllerUtil.EscapeNFM001Trigger = true; Oly_TriggerHandler.bypass(Product2Handler.Class.getName()); Oly_TriggerHandler.bypass(AssetHandler.Class.getName()); Oly_TriggerHandler.bypass(FixtureSetHandler.Class.getName()); Oly_TriggerHandler.bypass(RentalApplyTriggerHandler.Class.getName()); Oly_TriggerHandler.bypass(RentalApplyEquipmentSetHandler.Class.getName()); Oly_TriggerHandler.bypass(RentalApplyEquipmentSetDetailHandler.Class.getName()); Oly_TriggerHandler.bypass(ContactTriggerHandler.Class.getName()); Oly_TriggerHandler.bypass('AssetTrigger'); CreateRelationListPagingCmpCtrl cmp; PageReference ref; List raObjs; //Rental_Apply__c raObj; List raesObjs; //Rental_Apply_Equipment_Set__c raesObj; List raesdObjs; system.runAs(getUser()) { setupTestData1(); Test.startTest(); raObjs = [select Id from Rental_Apply__c]; System.assertEquals(raObjs.size(), 1); // 备品借出时间check RentalApplyWebService.approvalCheck(null); Test.stopTest(); } } // 备品借出时间check static testMethod void testMethodApprovalCheck2() { ControllerUtil.EscapeNFM001Trigger = true; Oly_TriggerHandler.bypass(Product2Handler.Class.getName()); Oly_TriggerHandler.bypass(AssetHandler.Class.getName()); Oly_TriggerHandler.bypass(FixtureSetHandler.Class.getName()); Oly_TriggerHandler.bypass(RentalApplyTriggerHandler.Class.getName()); Oly_TriggerHandler.bypass(RentalApplyEquipmentSetHandler.Class.getName()); Oly_TriggerHandler.bypass(RentalApplyEquipmentSetDetailHandler.Class.getName()); Oly_TriggerHandler.bypass(ContactTriggerHandler.Class.getName()); Oly_TriggerHandler.bypass('AssetTrigger'); List raObjs; //Rental_Apply__c raObj; List raesObjs; //Rental_Apply_Equipment_Set__c raesObj; List raesdObjs; system.runAs(getUser()) { setupTestData1(); raObjs = [SELECT Id, Strategic_dept__c, Hospital__c, Account__c, Loaner_medical_Staff__c FROM Rental_Apply__c]; Rental_Apply__c raObj = new Rental_Apply__c(); raObj.Name = 'testra'; raObj.Product_category__c = 'GI'; raObj.Demo_purpose1__c = '产品试用'; raObj.demo_purpose2__c = FixtureUtil.raDemo_purpose2MAP.get('shiyongwuxunjia'); raObj.direct_send__c = '医疗机构'; raObj.Loaner_received_staff__c = '王五'; raObj.Loaner_received_staff_phone__c = '110'; raObj.direct_shippment_address__c = '北京市'; raObj.Hospital__c = raObjs[0].Hospital__c; raObj.Strategic_dept__c = raObjs[0].Strategic_dept__c; raObj.Account__c = raObjs[0].Account__c; raObj.Request_shipping_day__c = Date.toDay(); raObj.Hope_Lonaer_date_Num__c = 1; // 希望借用天数 raObj.Request_return_day__c = Date.toDay(); raObj.Status__c = '草案中'; raObj.Phone_number__c = '1234567890'; raObj.Loaner_medical_Staff__c = raObjs[0].Loaner_medical_Staff__c; raObj.Cross_Region_Assign__c = '北京 备品中心'; insert raObj; Test.startTest(); // 备品借出时间check RentalApplyWebService.approvalCheck(raObj.Id); Test.stopTest(); } } // 20210812 ljh SFDC-C5HDC7 add start static testMethod void testExtension_approval_processCheck() { ControllerUtil.EscapeNFM001Trigger = true; Oly_TriggerHandler.bypass(Product2Handler.Class.getName()); Oly_TriggerHandler.bypass(AssetHandler.Class.getName()); Oly_TriggerHandler.bypass(FixtureSetHandler.Class.getName()); Oly_TriggerHandler.bypass(RentalApplyTriggerHandler.Class.getName()); Oly_TriggerHandler.bypass(RentalApplyEquipmentSetHandler.Class.getName()); Oly_TriggerHandler.bypass(RentalApplyEquipmentSetDetailHandler.Class.getName()); Oly_TriggerHandler.bypass(ContactTriggerHandler.Class.getName()); Oly_TriggerHandler.bypass('AssetTrigger'); List raObjs; system.runAs(getUser()) { setupTestData1(); Test.startTest(); raObjs = [select Id from Rental_Apply__c]; System.assertEquals(raObjs.size(), 1); RentalApplyWebService.extension_approval_processCheck(raObjs[0].Id); Test.stopTest(); } } // 待分配的数据节点 static void setupTestData1() { ControllerUtil.EscapeNFM001Trigger = true; // OLY_OCM-643 追加ControllerUtil.EscapeNFM001Trigger Oly_TriggerHandler.bypass(Product2Handler.Class.getName()); Oly_TriggerHandler.bypass(AssetHandler.Class.getName()); Oly_TriggerHandler.bypass(FixtureSetHandler.Class.getName()); Oly_TriggerHandler.bypass(RentalApplyTriggerHandler.Class.getName()); Oly_TriggerHandler.bypass(RentalApplyEquipmentSetHandler.Class.getName()); Oly_TriggerHandler.bypass(RentalApplyEquipmentSetDetailHandler.Class.getName()); // 省 Address_Level__c al = new Address_Level__c(); al.Name = '東京'; al.Level1_Code__c = 'CN-99'; al.Level1_Sys_No__c = '999999'; insert al; // 市 Address_Level2__c al2 = new Address_Level2__c(); al2.Level1_Code__c = 'CN-99'; al2.Level1_Sys_No__c = '999999'; al2.Level1_Name__c = '東京'; al2.Name = '渋谷区'; al2.Level2_Code__c = 'CN-9999'; al2.Level2_Sys_No__c = '9999999'; al2.Address_Level__c = al.id; insert al2; // 病院を作る 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.Attribute_Type__c = '卫生部'; hospital.Speciality_Type__c = '综合医院'; hospital.Grade__c = '一级'; hospital.OCM_Category__c = 'SLTV'; hospital.Is_Medical__c = '医疗机构'; hospital.State_Master__c = al.id; hospital.City_Master__c = al2.id; hospital.Town__c = '东京'; insert hospital; StaticParameter.EscapeAccountTrigger = true; // 戦略科室を得る Account[] strategicDep = [SELECT ID, Name FROM Account WHERE parentId = :hospital.Id AND recordType.DeveloperName = 'Department_Class_OTH']; // 診療科を作る Account dep = new Account(); dep.recordtypeId = [Select Id FROM RecordType WHERE IsActive = true and SobjectType = 'Account' and DeveloperName = 'Department_OTH'].id; dep.Name = 'test dep'; dep.AgentCode_Ext__c = '9999998'; dep.ParentId = strategicDep[0].Id; dep.Department_Class__c = strategicDep[0].Id; dep.Hospital__c = hospital.Id; insert dep; Contact contact2 = new Contact(); contact2.AccountId = dep.Id; contact2.FirstName = '責任者'; contact2.LastName = 'test1经销商'; insert contact2; // 产品 Product2 pro1 = new Product2(Name='name01',IsActive=true,Family='GI', Fixture_Model_No__c='n01',Serial_Lot_No__c='S/N tracing', Fixture_Model_No_T__c = 'n01', Asset_Model_No__c = 'Pro1', ProductCode_Ext__c='pc01',Manual_Entry__c=false); Product2 pro2 = new Product2(Name='name02',IsActive=true,Family='GI', Fixture_Model_No__c='n02',Serial_Lot_No__c='Lot tracing', Fixture_Model_No_T__c = 'n02', Asset_Model_No__c = 'Pro2', ProductCode_Ext__c='pc02',Manual_Entry__c=false); Product2 pro3 = new Product2(Name='name03',IsActive=true,Family='GI', Fixture_Model_No__c='n03',Serial_Lot_No__c='Lot tracing', Fixture_Model_No_T__c = 'n03', Asset_Model_No__c = 'Pro3', ProductCode_Ext__c='pc03',Manual_Entry__c=false); insert new Product2[] {pro1, pro2, pro3}; //备品借出申请 Rental_Apply__c raObj = new Rental_Apply__c(); raObj.Name = 'testra'; raObj.Product_category__c = 'GI'; raObj.Demo_purpose1__c = '产品试用'; raObj.demo_purpose2__c = FixtureUtil.raDemo_purpose2MAP.get('shiyongwuxunjia'); raObj.direct_send__c = '医疗机构'; raObj.Loaner_received_staff__c = '王五'; raObj.Loaner_received_staff_phone__c = '110'; raObj.direct_shippment_address__c = '北京市'; raObj.Hospital__c = hospital.Id; raObj.Strategic_dept__c = strategicDep[0].Id; raObj.Account__c = dep.Id; raObj.Request_shipping_day__c = Date.toDay(); raObj.Hope_Lonaer_date_Num__c = 1; // 希望借用天数 raObj.Request_return_day__c = Date.toDay(); raObj.Status__c = '草案中'; raObj.Phone_number__c = '1234567890'; raObj.Loaner_medical_Staff__c = contact2.Id; insert raObj; // 保有设备 Asset asset1 = new Asset(Asset_Owner__c = 'Olympus'); asset1.RecordTypeId = System.Label.Asset_RecordType; asset1.SerialNumber = 'asset1'; asset1.Name = 'asset1'; asset1.AccountId = dep.Id; asset1.Department_Class__c = strategicDep[0].Id; asset1.Hospital__c = hospital.Id; asset1.Product2Id = pro1.Id; asset1.Quantity = 1; asset1.Status = '不明'; asset1.Manage_type__c = '个体管理'; asset1.Loaner_accsessary__c = false; asset1.Out_of_wh__c = 0; asset1.Salesdepartment__c = '1.华北营业本部'; asset1.Internal_asset_location__c = '北京 备品中心'; asset1.Product_category__c = 'GI'; asset1.Equipment_Type__c = '产品试用'; asset1.SalesProvince__c = '北京'; asset1.CompanyOfEquipment__c = '北京'; asset1.Internal_Asset_number__c = '0001'; Asset asset2 = new Asset(Asset_Owner__c = 'Olympus'); asset2.RecordTypeId = System.Label.Asset_RecordType; asset2.SerialNumber = 'asset2'; asset2.Name = 'asset2'; asset2.AccountId = dep.Id; asset2.Department_Class__c = strategicDep[0].Id; asset2.Hospital__c = hospital.Id; asset2.Product2Id = pro2.Id; asset2.Quantity = 1; asset2.Status = '不明'; asset2.Manage_type__c = '个体管理'; asset2.Loaner_accsessary__c = true; asset2.Out_of_wh__c = 0; asset2.Salesdepartment__c = '1.华北营业本部'; asset2.Internal_asset_location__c = '北京 备品中心'; asset2.Product_category__c = 'GI'; asset2.Equipment_Type__c = '产品试用'; asset2.SalesProvince__c = '北京'; asset2.CompanyOfEquipment__c = '北京'; asset2.Internal_Asset_number__c = '0002'; Asset asset3 = new Asset(Asset_Owner__c = 'Olympus'); asset3.RecordTypeId = System.Label.Asset_RecordType; asset3.SerialNumber = 'asset3'; asset3.Name = 'asset3'; asset3.AccountId = dep.Id; asset3.Department_Class__c = strategicDep[0].Id; asset3.Hospital__c = hospital.Id; asset3.Product2Id = pro3.Id; asset3.Quantity = 50; asset3.Status = '不明'; asset3.Manage_type__c = '数量管理'; asset3.Loaner_accsessary__c = true; asset3.Out_of_wh__c = 0; asset3.Salesdepartment__c = '1.华北营业本部'; asset3.Internal_asset_location__c = '北京 备品中心'; asset3.Product_category__c = 'GI'; asset3.Equipment_Type__c = '产品试用'; asset3.SalesProvince__c = '北京'; asset3.CompanyOfEquipment__c = '北京'; asset3.Internal_Asset_number__c = '0003'; insert new Asset[] {asset1, asset2, asset3}; // 备品配套 Fixture_Set__c fsObj1 = new Fixture_Set__c(); fsObj1.Name = 'set1'; fsObj1.Fixture_Set_Body_Model_No__c = 'modelNo1'; fsObj1.Loaner_name__c = 'name1'; insert fsObj1; // 备品配套明细 Fixture_Set_Detail__c fsdObjA1 = new Fixture_Set_Detail__c(); fsdObjA1.Name = '备品配套明细名1'; fsdObjA1.Name_CHN_Created__c = '中文名称1'; fsdObjA1.Product2__c = pro1.Id; fsdObjA1.Fixture_Set__c = fsObj1.Id; fsdObjA1.Is_Body__c = true; fsdObjA1.Is_Optional__c = false; fsdObjA1.UniqueKey__c = fsObj1.Id + ':' + pro1.Id; fsdObjA1.SortInt__c = 1; Fixture_Set_Detail__c fsdObjA2 = new Fixture_Set_Detail__c(); fsdObjA2.Name = '备品配套明细名2'; fsdObjA2.Name_CHN_Created__c = '中文名称2'; fsdObjA2.Product2__c = pro2.Id; fsdObjA2.Fixture_Set__c = fsObj1.Id; fsdObjA2.Is_Body__c = false; fsdObjA2.Is_Optional__c = true; fsdObjA2.UniqueKey__c = fsObj1.Id + ':' + pro2.Id; fsdObjA2.SortInt__c = 2; Fixture_Set_Detail__c fsdObjA3 = new Fixture_Set_Detail__c(); fsdObjA3.Name = '备品配套明细名3'; fsdObjA3.Name_CHN_Created__c = '中文名称3'; fsdObjA3.Product2__c = pro3.Id; fsdObjA3.Fixture_Set__c = fsObj1.Id; fsdObjA3.Is_Body__c = false; fsdObjA3.Is_Optional__c = true; fsdObjA3.UniqueKey__c = fsObj1.Id + ':' + pro3.Id; fsdObjA3.SortInt__c = 3; insert new Fixture_Set_Detail__c[] {fsdObjA1,fsdObjA2,fsdObjA3}; // 借出备品配套一览 Rental_Apply_Equipment_Set__c raesObj = new Rental_Apply_Equipment_Set__c(); raesObj.Rental_Apply__c = raObj.Id; raesObj.Fixture_Set__c = fsObj1.Id; raesObj.Cancel_Select__c = false; raesObj.Rental_Start_Date__c = Date.toDay(); raesObj.Rental_End_Date__c = Date.toDay(); raesObj.IndexFromUniqueKey__c = 1; raesObj.UniqueKey__c = '1:'+ fsObj1.Id + ':1'; insert raesObj; // 借出备品配套一览明细 Rental_Apply_Equipment_Set_Detail__c raesdObj1 = new Rental_Apply_Equipment_Set_Detail__c(); raesdObj1.Rental_Apply__c = raObj.Id; raesdObj1.Fixture_Set_Detail__c = fsdObjA1.Id; raesdObj1.Rental_Num__c = 1; raesdObj1.Queue_Number__c = null; raesdObj1.Is_Body__c = true; raesdObj1.Rental_Apply_Equipment_Set__c = raesObj.Id; raesdObj1.IndexFromUniqueKey__c = 1; raesdObj1.UniqueKey__c = '1:'+ raesObj.Id + ':' + fsdObjA1.Id + ':1'; raesdObj1.FSD_OneToOneAccessory_Cnt__c = 0; raesdObj1.FSD_Is_Optional__c = false; raesdObj1.FSD_Is_OneToOne__c = false; raesdObj1.ApplyPersonAppended__c = false; raesdObj1.FSD_Fixture_Model_No__c = 'n01'; raesdObj1.Fixture_Model_No_text__c = 'n01'; Rental_Apply_Equipment_Set_Detail__c raesdObj2 = new Rental_Apply_Equipment_Set_Detail__c(); raesdObj2.Rental_Apply__c = raObj.Id; raesdObj2.Fixture_Set_Detail__c = fsdObjA2.Id; raesdObj2.Rental_Num__c = 1; raesdObj2.Queue_Number__c = null; raesdObj2.Is_Body__c = false; raesdObj2.Rental_Apply_Equipment_Set__c = raesObj.Id; raesdObj2.IndexFromUniqueKey__c = 2; raesdObj2.UniqueKey__c = '1:'+ raesObj.Id + ':' + fsdObjA2.Id + ':2'; raesdObj2.FSD_OneToOneAccessory_Cnt__c = 0; raesdObj2.FSD_Is_Optional__c = false; raesdObj2.FSD_Is_OneToOne__c = false; raesdObj2.ApplyPersonAppended__c = false; raesdObj2.FSD_Fixture_Model_No__c = 'n02'; raesdObj2.Fixture_Model_No_text__c = 'n02'; Rental_Apply_Equipment_Set_Detail__c raesdObj3 = new Rental_Apply_Equipment_Set_Detail__c(); raesdObj3.Rental_Apply__c = raObj.Id; raesdObj3.Fixture_Set_Detail__c = fsdObjA3.Id; raesdObj3.Rental_Num__c = 1; raesdObj3.Queue_Number__c = null; raesdObj3.Is_Body__c = false; raesdObj3.Rental_Apply_Equipment_Set__c = raesObj.Id; raesdObj3.IndexFromUniqueKey__c = 3; raesdObj3.UniqueKey__c = '1:'+ raesObj.Id + ':' + fsdObjA3.Id + ':3'; raesdObj3.FSD_OneToOneAccessory_Cnt__c = 2; raesdObj3.FSD_Is_Optional__c = false; raesdObj3.FSD_Is_OneToOne__c = false; raesdObj3.ApplyPersonAppended__c = false; raesdObj3.FSD_Fixture_Model_No__c = 'n03'; raesdObj3.Fixture_Model_No_text__c = 'n03'; insert new Rental_Apply_Equipment_Set_Detail__c[] {raesdObj1,raesdObj2,raesdObj3}; // 申请单变为已批准 raObj.Status__c = '已批准'; update raObj; Oly_TriggerHandler.clearAllBypasses(); } private static User getUser() { String timenow = Datetime.now().format('yyyyMMddHHmmss'); User hpOwner = new User(Test_staff__c = true, LastName = 'TestMao', FirstName = 'TestMaoF', Alias = 'hp', CommunityNickname = 'TestMao', Email = 'Test@sunbridge.com', Username = 'Test' + timenow + '@sunbridge.com', IsActive = true, EmailEncodingKey = 'ISO-2022-JP', TimeZoneSidKey = 'Asia/Tokyo', LocaleSidKey = 'ja_JP', LanguageLocaleKey = 'ja', ProfileId = System.Label.ProfileId_SystemAdmin, Dept__c = '医疗华北营业本部', Province__c = '北京'); insert hpOwner; return hpOwner; } private static User getUser1() { String timenow = Datetime.now().format('yyyyMMddHHmmss'); User hpOwner = new User(Test_staff__c = true, LastName = 'TestMao', FirstName = 'TestMaoF', Alias = 'hp', CommunityNickname = 'TestMao', Email = 'Test@sunbridge.com', Username = 'Test' + timenow + '@sunbridge.com', IsActive = true, EmailEncodingKey = 'ISO-2022-JP', TimeZoneSidKey = 'Asia/Tokyo', LocaleSidKey = 'ja_JP', LanguageLocaleKey = 'ja', ProfileId = System.Label.ProfileId_SystemAdmin, Dept__c = '医疗华北营业本部', Province__c = '北京'); insert hpOwner; return hpOwner; } // 取消申请单 借出备品配套一览状态即时更新 static testMethod void testMethodRefreshStatus() { ControllerUtil.EscapeNFM001Trigger = true; Oly_TriggerHandler.bypass(Product2Handler.Class.getName()); Oly_TriggerHandler.bypass(AssetHandler.Class.getName()); Oly_TriggerHandler.bypass(FixtureSetHandler.Class.getName()); Oly_TriggerHandler.bypass(RentalApplyTriggerHandler.Class.getName()); Oly_TriggerHandler.bypass(RentalApplyEquipmentSetHandler.Class.getName()); Oly_TriggerHandler.bypass(RentalApplyEquipmentSetDetailHandler.Class.getName()); Oly_TriggerHandler.bypass(ContactTriggerHandler.Class.getName()); Oly_TriggerHandler.bypass('AssetTrigger'); CreateRelationListPagingCmpCtrl cmp; PageReference ref; List raObjs; //Rental_Apply__c raObj; List raesObjs; //Rental_Apply_Equipment_Set__c raesObj; List raesdObjs; system.runAs(getUser()) { setupTestData1(); Test.startTest(); raObjs = [select Id from Rental_Apply__c]; System.assertEquals(raObjs.size(), 1); raObjs[0].Cancel_Reason__c = '主动取消'; update raObjs; // 取消申请单 RentalApplyWebService.RentalApplyCancel(raObjs[0].Id, false); // 检验一览明细的状态变换正常与否 raesdObjs = [select Id, RAESD_Status__c, Fixture_QRCode_F__c from Rental_Apply_Equipment_Set_Detail__c]; System.assertEquals(raesdObjs[0].RAESD_Status__c, '取消'); System.assertEquals(raesdObjs[1].RAESD_Status__c, '取消'); System.assertEquals(raesdObjs[2].RAESD_Status__c, '取消'); // 检验一览的状态变换正常与否 raesObjs = [select Id, RAES_Status__c FROM Rental_Apply_Equipment_Set__c]; System.assertEquals(raesObjs[0].RAES_Status__c, '取消'); // 检验申请单的状态变换正常与否 raObjs = [select Id, Name, RA_Status__c FROM Rental_Apply__c]; System.assertEquals(raObjs[0].RA_Status__c, '取消'); // 配套一栏状态即时更新 RentalApplyWebService.eSetRefreshStatus(raesObjs[0].Id); Test.stopTest(); } } // 分配验证 static testMethod void testMethodAssignBtn() { ControllerUtil.EscapeNFM001Trigger = true; Oly_TriggerHandler.bypass(Product2Handler.Class.getName()); Oly_TriggerHandler.bypass(AssetHandler.Class.getName()); Oly_TriggerHandler.bypass(FixtureSetHandler.Class.getName()); Oly_TriggerHandler.bypass(RentalApplyTriggerHandler.Class.getName()); Oly_TriggerHandler.bypass(RentalApplyEquipmentSetHandler.Class.getName()); Oly_TriggerHandler.bypass(RentalApplyEquipmentSetDetailHandler.Class.getName()); Oly_TriggerHandler.bypass(ContactTriggerHandler.Class.getName()); Oly_TriggerHandler.bypass('AssetTrigger'); CreateRelationListPagingCmpCtrl cmp; PageReference ref; List raObjs; //Rental_Apply__c raObj; List raesObjs; //Rental_Apply_Equipment_Set__c raesObj; List raesdObjs; system.runAs(getUser()) { setupTestData1(); Test.startTest(); raObjs = [select Id from Rental_Apply__c]; System.assertEquals(raObjs.size(), 1); // 分配验证 RentalApplyWebService.AssignBtn(raObjs[0].Id); Test.stopTest(); } } // 分配验证 static testMethod void testMethodPostponeCheck() { ControllerUtil.EscapeNFM001Trigger = true; // OLY_OCM-643 追加ControllerUtil.EscapeNFM001Trigger Test.startTest(); // OlympusCalendar にデータを追加 OlympusCalendar__c oc1 = new OlympusCalendar__c(Date__c = Date.today().addDays(1), ChangeToHoliday__c=false, ChangeToWorkday__c=true); OlympusCalendar__c oc2 = new OlympusCalendar__c(Date__c = Date.today().addDays(2), ChangeToHoliday__c=false, ChangeToWorkday__c=true); OlympusCalendar__c oc3 = new OlympusCalendar__c(Date__c = Date.today().addDays(3), ChangeToHoliday__c=false, ChangeToWorkday__c=true); OlympusCalendar__c oc4 = new OlympusCalendar__c(Date__c = Date.today().addDays(4), ChangeToHoliday__c=false, ChangeToWorkday__c=true); OlympusCalendar__c oc5 = new OlympusCalendar__c(Date__c = Date.today().addDays(5), ChangeToHoliday__c=false, ChangeToWorkday__c=true); OlympusCalendar__c oc6 = new OlympusCalendar__c(Date__c = Date.today().addDays(6), ChangeToHoliday__c=true, ChangeToWorkday__c=false); OlympusCalendar__c oc7 = new OlympusCalendar__c(Date__c = Date.today().addDays(7), ChangeToHoliday__c=true, ChangeToWorkday__c=false); OlympusCalendar__c oc8 = new OlympusCalendar__c(Date__c = Date.today().addDays(8), ChangeToHoliday__c=false, ChangeToWorkday__c=true); OlympusCalendar__c oc9 = new OlympusCalendar__c(Date__c = Date.today().addDays(9), ChangeToHoliday__c=false, ChangeToWorkday__c=true); OlympusCalendar__c oc10 = new OlympusCalendar__c(Date__c = Date.today().addDays(10), ChangeToHoliday__c=false, ChangeToWorkday__c=true); OlympusCalendar__c oc11 = new OlympusCalendar__c(Date__c = Date.today().addDays(11), ChangeToHoliday__c=false, ChangeToWorkday__c=true); OlympusCalendar__c oc12 = new OlympusCalendar__c(Date__c = Date.today().addDays(12), ChangeToHoliday__c=false, ChangeToWorkday__c=true); insert new OlympusCalendar__c[] {oc1,oc2,oc3,oc4,oc5,oc6,oc7,oc8,oc9,oc10,oc11,oc12}; RentalApplyWebService.postponeCheck('2018/01/01', 1); // today + 10 Date dateToday = Date.today().addDays(10); String sToday = String.valueof(dateToday.year()) + '/' + String.valueof(dateToday.month()) + '/' + String.valueof(dateToday.day()); RentalApplyWebService.postponeCheck(sToday, -2); RentalApplyWebService.getWD_now(Date.today()); RentalApplyWebService RAS = New RentalApplyWebService(); RAS.getDateMap(Date.today().addDays(-1),Date.today().addDays(1),1); Test.stopTest(); } // 测试内容:出库指示以及Rental_Asset_SerialNumber__c的设值 // 申请书单位出库指示 /*static testMethod void testShipment_request() { system.runAs(getUser()) { Test.startTest(); setupTestData1(); List raesds = [SELECT Id, Rental_Apply_Equipment_Set__c, Rental_Apply__c FROM Rental_Apply_Equipment_Set_Detail__c ORDER BY Fixture_Model_No_F__c]; System.assertEquals(3, raesds.size()); List assets = [SELECT Id FROM Asset ORDER BY Fixture_Model_No_F__c]; System.assertEquals(3, assets.size()); for (Integer i = 0; i < raesds.size(); i++) { raesds[i].Asset__c = assets[i].Id; raesds[i].Select_Time__c = Datetime.now(); } update raesds; String message = RentalApplyWebService.setShipment_request(raesds[0].Rental_Apply__c); System.assertEquals('状态更新到已出库指示', message); Test.stopTest(); raesds = [SELECT Id, Rental_Apply_Equipment_Set__c, Shipment_request__c, Shipment_request_time2__c, Rental_Apply_Equipment_Set__r.Rental_Asset_SerialNumber__c, Asset__r.SerialNumber FROM Rental_Apply_Equipment_Set_Detail__c ORDER BY Fixture_Model_No_F__c]; System.assertEquals(3, raesds.size()); Set serialNumberSet = new Set(); for (Rental_Apply_Equipment_Set_Detail__c raesd : raesds) { System.assertEquals(true, raesd.Shipment_request__c); System.assertNotEquals(null, raesd.Shipment_request_time2__c); SerialNumberSet.add(raesd.Asset__r.SerialNumber); } System.assertEquals(3, serialNumberSet.size()); System.assertEquals(true, String.isNotBlank(raesds[0].Rental_Apply_Equipment_Set__r.Rental_Asset_SerialNumber__c)); List serialNumberList = raesds[0].Rental_Apply_Equipment_Set__r.Rental_Asset_SerialNumber__c.split(','); System.assertEquals(4, serialNumberList.size()); for (String str : serialNumberList) { if (String.isNotBlank(str)) { System.assertEquals(true, serialNumberSet.contains(str)); } } } } // 测试内容:出库指示以及Rental_Asset_SerialNumber__c的设值 // 一览单位出库指示 static testMethod void testRaesShipment_request() { system.runAs(getUser()) { Test.startTest(); setupTestData1(); List raesds = [SELECT Id, Rental_Apply_Equipment_Set__c, Rental_Apply__c FROM Rental_Apply_Equipment_Set_Detail__c ORDER BY Fixture_Model_No_F__c]; System.assertEquals(3, raesds.size()); List assets = [SELECT Id FROM Asset ORDER BY Fixture_Model_No_F__c]; System.assertEquals(3, assets.size()); for (Integer i = 0; i < raesds.size(); i++) { raesds[i].Asset__c = assets[i].Id; raesds[i].Select_Time__c = Datetime.now(); } update raesds; System.assertNotEquals(null, raesds[0].Rental_Apply_Equipment_Set__c); String message = RentalApplyWebService.setRaesShipment_request(raesds[0].Rental_Apply_Equipment_Set__c); System.assertEquals('状态更新到已出库指示', message); Test.stopTest(); raesds = [SELECT Id, Rental_Apply_Equipment_Set__c, SerialNumber_text__c, Shipment_request__c, Shipment_request_time2__c, Rental_Apply_Equipment_Set__r.Rental_Asset_SerialNumber__c, Asset__r.SerialNumber FROM Rental_Apply_Equipment_Set_Detail__c ORDER BY Fixture_Model_No_F__c]; System.assertEquals(3, raesds.size()); Set serialNumberSet = new Set(); for (Rental_Apply_Equipment_Set_Detail__c raesd : raesds) { System.assertEquals(true, raesd.Shipment_request__c); System.assertNotEquals(null, raesd.Shipment_request_time2__c); System.assertNotEquals(null, raesd.SerialNumber_text__c); serialNumberSet.add(raesd.SerialNumber_text__c); } System.assertEquals(3, serialNumberSet.size()); System.assertEquals(true, String.isNotBlank(raesds[0].Rental_Apply_Equipment_Set__r.Rental_Asset_SerialNumber__c)); List serialNumberList = raesds[0].Rental_Apply_Equipment_Set__r.Rental_Asset_SerialNumber__c.split(','); System.assertEquals(4, serialNumberList.size()); for (String str : serialNumberList) { if (String.isNotBlank(str)) { System.assertEquals(true, serialNumberSet.contains(str)); } } } }*/ static testMethod void testSetShipment_requests() { ControllerUtil.EscapeNFM001Trigger = true; Oly_TriggerHandler.bypass(Product2Handler.Class.getName()); Oly_TriggerHandler.bypass(AssetHandler.Class.getName()); Oly_TriggerHandler.bypass(FixtureSetHandler.Class.getName()); Oly_TriggerHandler.bypass(RentalApplyTriggerHandler.Class.getName()); Oly_TriggerHandler.bypass(RentalApplyEquipmentSetHandler.Class.getName()); Oly_TriggerHandler.bypass(RentalApplyEquipmentSetDetailHandler.Class.getName()); Oly_TriggerHandler.bypass(ContactTriggerHandler.Class.getName()); Oly_TriggerHandler.bypass('AssetTrigger'); // 省 Address_Level__c al = new Address_Level__c(); al.Name = '東京'; al.Level1_Code__c = 'CN-99'; al.Level1_Sys_No__c = '999999'; insert al; // 市 Address_Level2__c al2 = new Address_Level2__c(); al2.Level1_Code__c = 'CN-99'; al2.Level1_Sys_No__c = '999999'; al2.Level1_Name__c = '東京'; al2.Name = '渋谷区'; al2.Level2_Code__c = 'CN-9999'; al2.Level2_Sys_No__c = '9999999'; al2.Address_Level__c = al.id; insert al2; // 病院を作る 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.Attribute_Type__c = '卫生部'; hospital.Speciality_Type__c = '综合医院'; hospital.Grade__c = '一级'; hospital.OCM_Category__c = 'SLTV'; hospital.Is_Medical__c = '医疗机构'; hospital.State_Master__c = al.id; hospital.City_Master__c = al2.id; hospital.Town__c = '东京'; insert hospital; StaticParameter.EscapeAccountTrigger = true; // 戦略科室を得る Account[] strategicDep = [SELECT ID, Name FROM Account WHERE parentId = :hospital.Id AND recordType.DeveloperName = 'Department_Class_OTH']; // 診療科を作る Account dep = new Account(); dep.recordtypeId = [Select Id FROM RecordType WHERE IsActive = true and SobjectType = 'Account' and DeveloperName = 'Department_OTH'].id; dep.Name = 'test dep'; dep.AgentCode_Ext__c = '9999998'; dep.ParentId = strategicDep[0].Id; dep.Department_Class__c = strategicDep[0].Id; dep.Hospital__c = hospital.Id; insert dep; Contact contact2 = new Contact(); contact2.AccountId = dep.Id; contact2.FirstName = '責任者'; contact2.LastName = 'test1经销商'; insert contact2; // 产品 Product2 pro1 = new Product2(Name='name01',IsActive=true,Family='GI', Fixture_Model_No__c='n01',Serial_Lot_No__c='S/N tracing', Fixture_Model_No_T__c = 'n01', Asset_Model_No__c = 'Pro1', ProductCode_Ext__c='pc01',Manual_Entry__c=false); Product2 pro2 = new Product2(Name='name02',IsActive=true,Family='GI', Fixture_Model_No__c='n02',Serial_Lot_No__c='Lot tracing', Fixture_Model_No_T__c = 'n02', Asset_Model_No__c = 'Pro2', ProductCode_Ext__c='pc02',Manual_Entry__c=false); Product2 pro3 = new Product2(Name='name03',IsActive=true,Family='GI', Fixture_Model_No__c='n03',Serial_Lot_No__c='Lot tracing', Fixture_Model_No_T__c = 'n03', Asset_Model_No__c = 'Pro3', ProductCode_Ext__c='pc03',Manual_Entry__c=false); insert new Product2[] {pro1, pro2, pro3}; //备品借出申请 Rental_Apply__c raObj = new Rental_Apply__c(); raObj.Name = 'testra'; raObj.Product_category__c = 'GI'; raObj.Demo_purpose1__c = '产品试用'; raObj.demo_purpose2__c = FixtureUtil.raDemo_purpose2MAP.get('shiyongwuxunjia'); raObj.direct_send__c = '医疗机构'; raObj.Loaner_received_staff__c = '王五'; raObj.Loaner_received_staff_phone__c = '110'; raObj.direct_shippment_address__c = '北京市'; raObj.Hospital__c = hospital.Id; raObj.Strategic_dept__c = strategicDep[0].Id; raObj.Account__c = dep.Id; raObj.Request_shipping_day__c = Date.toDay(); raObj.Hope_Lonaer_date_Num__c = 1; // 希望借用天数 raObj.Request_return_day__c = Date.toDay(); raObj.Status__c = '草案中'; raObj.Phone_number__c = '1234567890'; raObj.Loaner_medical_Staff__c = contact2.Id; raObj.Cross_Region_Assign__c = '北京 备品中心'; insert raObj; // 保有设备 Asset asset1 = new Asset(Asset_Owner__c = 'Olympus'); asset1.RecordTypeId = System.Label.Asset_RecordType; asset1.SerialNumber = 'asset1'; asset1.Name = 'asset1'; asset1.AccountId = dep.Id; asset1.Department_Class__c = strategicDep[0].Id; asset1.Hospital__c = hospital.Id; asset1.Product2Id = pro1.Id; asset1.Quantity = 1; asset1.Status = '不明'; asset1.Manage_type__c = '个体管理'; asset1.Loaner_accsessary__c = false; asset1.Out_of_wh__c = 0; asset1.Salesdepartment__c = '1.华北营业本部'; asset1.Internal_asset_location__c = '北京 备品中心'; asset1.Product_category__c = 'GI'; asset1.Equipment_Type__c = '产品试用'; asset1.SalesProvince__c = '北京'; asset1.CompanyOfEquipment__c = '北京'; asset1.Internal_Asset_number__c = '0001'; Asset asset2 = new Asset(Asset_Owner__c = 'Olympus'); asset2.RecordTypeId = System.Label.Asset_RecordType; asset2.SerialNumber = 'asset2'; asset2.Name = 'asset2'; asset2.AccountId = dep.Id; asset2.Department_Class__c = strategicDep[0].Id; asset2.Hospital__c = hospital.Id; asset2.Product2Id = pro2.Id; asset2.Quantity = 1; asset2.Status = '不明'; asset2.Manage_type__c = '个体管理'; asset2.Loaner_accsessary__c = true; asset2.Out_of_wh__c = 0; asset2.Salesdepartment__c = '1.华北营业本部'; asset2.Internal_asset_location__c = '北京 备品中心'; asset2.Product_category__c = 'GI'; asset2.Equipment_Type__c = '产品试用'; asset2.SalesProvince__c = '北京'; asset2.CompanyOfEquipment__c = '北京'; asset2.Internal_Asset_number__c = '0002'; Asset asset3 = new Asset(Asset_Owner__c = 'Olympus'); asset3.RecordTypeId = System.Label.Asset_RecordType; asset3.SerialNumber = 'asset3'; asset3.Name = 'asset3'; asset3.AccountId = dep.Id; asset3.Department_Class__c = strategicDep[0].Id; asset3.Hospital__c = hospital.Id; asset3.Product2Id = pro3.Id; asset3.Quantity = 50; asset3.Status = '不明'; asset3.Manage_type__c = '数量管理'; asset3.Loaner_accsessary__c = true; asset3.Out_of_wh__c = 0; asset3.Salesdepartment__c = '1.华北营业本部'; asset3.Internal_asset_location__c = '北京 备品中心'; asset3.Product_category__c = 'GI'; asset3.Equipment_Type__c = '产品试用'; asset3.SalesProvince__c = '北京'; asset3.CompanyOfEquipment__c = '北京'; asset3.Internal_Asset_number__c = '0003'; insert new Asset[] {asset1, asset2, asset3}; // 备品配套 Fixture_Set__c fsObj1 = new Fixture_Set__c(); fsObj1.Name = 'set1'; fsObj1.Fixture_Set_Body_Model_No__c = 'modelNo1'; fsObj1.Loaner_name__c = 'name1'; insert fsObj1; // 备品配套明细 Fixture_Set_Detail__c fsdObjA1 = new Fixture_Set_Detail__c(); fsdObjA1.Name = '备品配套明细名1'; fsdObjA1.Name_CHN_Created__c = '中文名称1'; fsdObjA1.Product2__c = pro1.Id; fsdObjA1.Fixture_Set__c = fsObj1.Id; fsdObjA1.Is_Body__c = true; fsdObjA1.Is_Optional__c = false; fsdObjA1.UniqueKey__c = fsObj1.Id + ':' + pro1.Id; fsdObjA1.SortInt__c = 1; Fixture_Set_Detail__c fsdObjA2 = new Fixture_Set_Detail__c(); fsdObjA2.Name = '备品配套明细名2'; fsdObjA2.Name_CHN_Created__c = '中文名称2'; fsdObjA2.Product2__c = pro2.Id; fsdObjA2.Fixture_Set__c = fsObj1.Id; fsdObjA2.Is_Body__c = false; fsdObjA2.Is_Optional__c = true; fsdObjA2.UniqueKey__c = fsObj1.Id + ':' + pro2.Id; fsdObjA2.SortInt__c = 2; Fixture_Set_Detail__c fsdObjA3 = new Fixture_Set_Detail__c(); fsdObjA3.Name = '备品配套明细名3'; fsdObjA3.Name_CHN_Created__c = '中文名称3'; fsdObjA3.Product2__c = pro3.Id; fsdObjA3.Fixture_Set__c = fsObj1.Id; fsdObjA3.Is_Body__c = false; fsdObjA3.Is_Optional__c = true; fsdObjA3.UniqueKey__c = fsObj1.Id + ':' + pro3.Id; fsdObjA3.SortInt__c = 3; insert new Fixture_Set_Detail__c[] {fsdObjA1,fsdObjA2,fsdObjA3}; // 借出备品配套一览 Rental_Apply_Equipment_Set__c raesObj = new Rental_Apply_Equipment_Set__c(); raesObj.Rental_Apply__c = raObj.Id; raesObj.Fixture_Set__c = fsObj1.Id; raesObj.Cancel_Select__c = false; raesObj.Rental_Start_Date__c = Date.toDay(); raesObj.Rental_End_Date__c = Date.toDay(); raesObj.IndexFromUniqueKey__c = 1; raesObj.UniqueKey__c = '1:'+ fsObj1.Id + ':1'; insert raesObj; // 借出备品配套一览明细 Rental_Apply_Equipment_Set_Detail__c raesdObj1 = new Rental_Apply_Equipment_Set_Detail__c(); raesdObj1.Rental_Apply__c = raObj.Id; raesdObj1.Fixture_Set_Detail__c = fsdObjA1.Id; raesdObj1.Rental_Num__c = 1; raesdObj1.Queue_Number__c = null; raesdObj1.Is_Body__c = true; raesdObj1.Rental_Apply_Equipment_Set__c = raesObj.Id; raesdObj1.IndexFromUniqueKey__c = 1; raesdObj1.UniqueKey__c = '1:'+ raesObj.Id + ':' + fsdObjA1.Id + ':1'; raesdObj1.FSD_OneToOneAccessory_Cnt__c = 0; raesdObj1.FSD_Is_Optional__c = false; raesdObj1.FSD_Is_OneToOne__c = false; raesdObj1.ApplyPersonAppended__c = false; raesdObj1.FSD_Fixture_Model_No__c = 'n01'; raesdObj1.Fixture_Model_No_text__c = 'n01'; raesdObj1.Asset__c = asset1.Id; raesdObj1.Internal_asset_location_before__c = '北京 备品中心'; // raesdObj1.Select_Time__c = Datetime.now(); Rental_Apply_Equipment_Set_Detail__c raesdObj2 = new Rental_Apply_Equipment_Set_Detail__c(); raesdObj2.Rental_Apply__c = raObj.Id; raesdObj2.Fixture_Set_Detail__c = fsdObjA2.Id; raesdObj2.Rental_Num__c = 1; raesdObj2.Queue_Number__c = null; raesdObj2.Is_Body__c = false; raesdObj2.Rental_Apply_Equipment_Set__c = raesObj.Id; raesdObj2.IndexFromUniqueKey__c = 2; raesdObj2.UniqueKey__c = '1:'+ raesObj.Id + ':' + fsdObjA2.Id + ':2'; raesdObj2.FSD_OneToOneAccessory_Cnt__c = 0; raesdObj2.FSD_Is_Optional__c = false; raesdObj2.FSD_Is_OneToOne__c = false; raesdObj2.ApplyPersonAppended__c = false; raesdObj2.FSD_Fixture_Model_No__c = 'n02'; raesdObj2.Fixture_Model_No_text__c = 'n02'; raesdObj2.Asset__c = asset2.Id; // raesdObj2.Select_Time__c = Datetime.now(); Rental_Apply_Equipment_Set_Detail__c raesdObj3 = new Rental_Apply_Equipment_Set_Detail__c(); raesdObj3.Rental_Apply__c = raObj.Id; raesdObj3.Fixture_Set_Detail__c = fsdObjA3.Id; raesdObj3.Rental_Num__c = 1; raesdObj3.Queue_Number__c = null; raesdObj3.Is_Body__c = false; raesdObj3.Rental_Apply_Equipment_Set__c = raesObj.Id; raesdObj3.IndexFromUniqueKey__c = 3; raesdObj3.UniqueKey__c = '1:'+ raesObj.Id + ':' + fsdObjA3.Id + ':3'; raesdObj3.FSD_OneToOneAccessory_Cnt__c = 2; raesdObj3.FSD_Is_Optional__c = false; raesdObj3.FSD_Is_OneToOne__c = false; raesdObj3.ApplyPersonAppended__c = false; raesdObj3.FSD_Fixture_Model_No__c = 'n03'; raesdObj3.Fixture_Model_No_text__c = 'n03'; raesdObj3.Asset__c = asset3.Id; // raesdObj3.Select_Time__c = Datetime.now(); insert new Rental_Apply_Equipment_Set_Detail__c[] {raesdObj1,raesdObj2,raesdObj3}; // 申请单变为已批准 raObj.Status__c = '已批准'; update raObj; Oly_TriggerHandler.clearAllBypasses(); Test.startTest(); List raesds = [SELECT Id, Rental_Apply_Equipment_Set__c, Rental_Apply__c FROM Rental_Apply_Equipment_Set_Detail__c ORDER BY Fixture_Model_No_F__c]; System.assertEquals(3, raesds.size()); for (Integer i = 0; i < raesds.size(); i++) { raesds[i].Select_Time__c = Datetime.now(); } update raesds; String message; message = RentalApplyWebService.setRaesShipment_request(raesObj.Id); message = RentalApplyWebService.setShipment_request(raObj.Id); System.assertEquals('没有可以出库指示的一览', message); RentalApplyWebService.approvalCheck(raObj.Id+';'+raesObj.id); Test.stopTest(); } // 20210812 ljh SFDC-C5HDC7 add end // 注残Test @isTest static void test_RentalApplyCheckForSAoneEle() { ControllerUtil.EscapeNFM001Trigger = true; // OLY_OCM-643 追加ControllerUtil.EscapeNFM001Trigger System.runAs(new User(Id = Userinfo.getUserId())) { StaticParameter.EscapeNFM001AgencyContractTrigger = true; StaticParameter.EscapeNFM001Trigger = true; Oly_TriggerHandler.bypass(AssetHandler.Class.getName()); // Implement test code //Profile prof = [select Id from Profile where Name ='系统管理员']; // 病院を作る Account hospital = new Account(); hospital.recordtypeId = [Select Id FROM RecordType WHERE IsActive = true and SobjectType = 'Account' and DeveloperName = 'HP'].id; hospital.Name = 'test hospital'; insert hospital; // 产品 Product2 pro1 = new Product2(Name='name01',IsActive=true,Family='GI',Asset_Model_No__c='n01',Serial_Lot_No__c='S/N tracing',ProductCode_Ext__c='pc01',Manual_Entry__c=false); Product2 pro2 = new Product2(Name='name02',IsActive=true,Family='GI',Asset_Model_No__c='n02',Serial_Lot_No__c='Lot tracing',ProductCode_Ext__c='pc02',Manual_Entry__c=false); Product2 pro3 = new Product2(Name='name03',IsActive=true,Family='GI',Asset_Model_No__c='n03',Serial_Lot_No__c='S/N tracing',ProductCode_Ext__c='pc03',Manual_Entry__c=false); insert new Product2[] {pro1, pro2, pro3}; RecordType rectOpp = [select id from RecordType where IsActive = true and SobjectType = 'Opportunity' and DeveloperName = 'Opportunity' ]; // 戦略科室を得る Account[] strategicDep = [SELECT ID, Name FROM Account WHERE parentId = :hospital.Id AND recordType.DeveloperName = 'Department_Class_OTH']; // 診療科を作る Account dep = new Account(); dep.recordtypeId = [Select Id FROM RecordType WHERE IsActive = true and SobjectType = 'Account' and DeveloperName = 'Department_OTH'].id; dep.Name = 'test dep'; dep.AgentCode_Ext__c = '9999998'; dep.ParentId = strategicDep[0].Id; dep.Department_Class__c = strategicDep[0].Id; dep.Hospital__c = hospital.Id; insert dep; // 资产 Asset asset1 = new Asset(Asset_Owner__c = 'Olympus'); asset1.RecordTypeId = System.Label.Asset_RecordType; asset1.SerialNumber = 'ass01'; asset1.Name = 'ass01'; asset1.AccountId = dep.Id; asset1.Department_Class__c = strategicDep[0].Id; asset1.Hospital__c = hospital.Id; asset1.Product2Id = pro1.Id; asset1.Manage_type__c = '个体管理'; Asset asset2 = new Asset(Asset_Owner__c = 'Olympus'); asset2.RecordTypeId = System.Label.Asset_RecordType; asset2.SerialNumber = 'ass02'; asset2.Loaner_accsessary__c = true; asset2.Name = 'ass02'; asset2.AccountId = dep.Id; asset2.Department_Class__c = strategicDep[0].Id; asset2.Hospital__c = hospital.Id; asset2.Product2Id = pro2.Id; Asset asset3 = new Asset(Asset_Owner__c = 'Olympus'); asset3.RecordTypeId = System.Label.Asset_RecordType; asset3.SerialNumber = 'ass03'; asset3.Loaner_accsessary__c = true; asset3.Name = 'ass03'; asset3.AccountId = dep.Id; asset3.Department_Class__c = strategicDep[0].Id; asset3.Hospital__c = hospital.Id; asset3.Product2Id = pro3.Id; insert new Asset[] {asset1, asset2,asset3}; Oly_TriggerHandler.clearAllBypasses(); System.Test.startTest(); Opportunity opp1 = new Opportunity( Name='testOpp1', StageName='引合', CloseDate=Date.today(), Close_Forecasted_Date__c=Date.today().addDays(-2), AccountId=dep.Id, Sales_Root__c = '販売店', Competitor__c ='A', Click_Close_Date__c = null, RecordType = rectOpp, Opportunity_No__c = 'GI' ); Opportunity opp2 = new Opportunity( Name='testOpp1', StageName='引合', CloseDate=Date.today(), Close_Forecasted_Date__c=Date.today().addDays(-2), AccountId=dep.Id, Sales_Root__c = '販売店', Competitor__c ='A', Click_Close_Date__c = null, RecordType = rectOpp, Opportunity_No__c = 'SP' ); insert new Opportunity[] {opp2, opp1}; opp2.Opportunity_No__c = 'SP'; opp1.Opportunity_No__c = 'GI'; update new Opportunity[] {opp2, opp1}; //注残 Statu_Achievements__c Sac = new Statu_Achievements__c( name = 'zhucan_one', Opportunity__c = opp1.id, SoLatestDeliveryDate__c = Date.today(), FirstApproveDate__c = Date.today(), OverviewStatus__c = '注残', ContractAmount__c = 0 ); Statu_Achievements__c Sac2 = new Statu_Achievements__c( name = 'zhucan_one', Opportunity__c = opp2.id, SoLatestDeliveryDate__c = Date.today(), FirstApproveDate__c = Date.today(), OverviewStatus__c = '注残', ContractAmount__c = 0 ); insert new Statu_Achievements__c[]{Sac, Sac2}; List ss = [Select Id,Status_2_Formula__c, Status_1__c, Opp_Number__c From Statu_Achievements__c]; System.assertEquals('13 待发货', ss[0].Status_2_Formula__c); System.assertEquals('注残', ss[0].Status_1__c); System.assertEquals('13 待发货', ss[1].Status_2_Formula__c); System.assertEquals('注残', ss[1].Status_1__c); RentalApplyWebService.RentalApplyCheckForSAoneEle(Sac.Id); RentalApplyWebService.RentalApplyCheckForSAoneEle(Sac2.Id); System.Test.stopTest(); } } // 注残Test @isTest static void test_RentalApplyCheckForSAoneEle1() { ControllerUtil.EscapeNFM001Trigger = true; // OLY_OCM-643 追加ControllerUtil.EscapeNFM001Trigger System.runAs(new User(Id = Userinfo.getUserId())) { StaticParameter.EscapeNFM001AgencyContractTrigger = true; StaticParameter.EscapeNFM001Trigger = true; Oly_TriggerHandler.bypass(AssetHandler.Class.getName()); // Implement test code //Profile prof = [select Id from Profile where Name ='系统管理员']; // 病院を作る Account hospital = new Account(); hospital.recordtypeId = [Select Id FROM RecordType WHERE IsActive = true and SobjectType = 'Account' and DeveloperName = 'HP'].id; hospital.Name = 'test hospital'; insert hospital; // 产品 Product2 pro1 = new Product2(Name='name01',IsActive=true,Family='SP',Asset_Model_No__c='n01',Serial_Lot_No__c='S/N tracing',ProductCode_Ext__c='pc01',Manual_Entry__c=false); Product2 pro2 = new Product2(Name='name02',IsActive=true,Family='SP',Asset_Model_No__c='n02',Serial_Lot_No__c='Lot tracing',ProductCode_Ext__c='pc02',Manual_Entry__c=false); Product2 pro3 = new Product2(Name='name03',IsActive=true,Family='SP',Asset_Model_No__c='n03',Serial_Lot_No__c='S/N tracing',ProductCode_Ext__c='pc03',Manual_Entry__c=false); insert new Product2[] {pro1, pro2, pro3}; RecordType rectOpp = [select id from RecordType where IsActive = true and SobjectType = 'Opportunity' and DeveloperName = 'Opportunity' ]; // 戦略科室を得る Account[] strategicDep = [SELECT ID, Name FROM Account WHERE parentId = :hospital.Id AND recordType.DeveloperName = 'Department_Class_OTH']; // 診療科を作る Account dep = new Account(); dep.recordtypeId = [Select Id FROM RecordType WHERE IsActive = true and SobjectType = 'Account' and DeveloperName = 'Department_OTH'].id; dep.Name = 'test dep'; dep.AgentCode_Ext__c = '9999998'; dep.ParentId = strategicDep[0].Id; dep.Department_Class__c = strategicDep[0].Id; dep.Hospital__c = hospital.Id; insert dep; // 资产 Asset asset1 = new Asset(Asset_Owner__c = 'Olympus'); asset1.RecordTypeId = System.Label.Asset_RecordType; asset1.SerialNumber = 'ass01'; asset1.Name = 'ass01'; asset1.AccountId = dep.Id; asset1.Department_Class__c = strategicDep[0].Id; asset1.Hospital__c = hospital.Id; asset1.Product2Id = pro1.Id; asset1.Manage_type__c = '个体管理'; Asset asset2 = new Asset(Asset_Owner__c = 'Olympus'); asset2.RecordTypeId = System.Label.Asset_RecordType; asset2.SerialNumber = 'ass02'; asset2.Loaner_accsessary__c = true; asset2.Name = 'ass02'; asset2.AccountId = dep.Id; asset2.Department_Class__c = strategicDep[0].Id; asset2.Hospital__c = hospital.Id; asset2.Product2Id = pro2.Id; Asset asset3 = new Asset(Asset_Owner__c = 'Olympus'); asset3.RecordTypeId = System.Label.Asset_RecordType; asset3.SerialNumber = 'ass03'; asset3.Loaner_accsessary__c = true; asset3.Name = 'ass03'; asset3.AccountId = dep.Id; asset3.Department_Class__c = strategicDep[0].Id; asset3.Hospital__c = hospital.Id; asset3.Product2Id = pro3.Id; insert new Asset[] {asset1, asset2,asset3}; Oly_TriggerHandler.clearAllBypasses(); System.Test.startTest(); Opportunity opp1 = new Opportunity( Name='testOpp1', StageName='引合', CloseDate=Date.today(), Close_Forecasted_Date__c=Date.today().addDays(-2), AccountId=dep.Id, Competitor__c ='A', Click_Close_Date__c = null, Sales_Root__c = 'OCM直接販売', RecordType = rectOpp, Opportunity_No__c = 'GI' ); Opportunity opp2 = new Opportunity( Name='testOpp1', StageName='引合', CloseDate=Date.today(), Close_Forecasted_Date__c=Date.today().addDays(-2), AccountId=dep.Id, Sales_Root__c = 'OCM直接販売', Competitor__c ='A', Click_Close_Date__c = null, RecordType = rectOpp, Opportunity_No__c = 'SP' ); insert new Opportunity[] {opp2, opp1}; opp2.Opportunity_No__c = 'SP'; opp1.Opportunity_No__c = 'GI'; update new Opportunity[] {opp2, opp1}; //注残 Statu_Achievements__c Sac = new Statu_Achievements__c( name = 'zhucan_one', Opportunity__c = opp1.id, SoLatestDeliveryDate__c = Date.today(), FirstApproveDate__c = Date.today(), OverviewStatus__c = '注残', ContractAmount__c = 0 ); //注残 Statu_Achievements__c Sac2 = new Statu_Achievements__c( name = 'zhucan_one', Opportunity__c = opp2.id, SoLatestDeliveryDate__c = Date.today(), FirstApproveDate__c = Date.today(), OverviewStatus__c = '注残', ContractAmount__c = 0 ); insert new Statu_Achievements__c[]{Sac, Sac2}; RentalApplyWebService.RentalApplyCheckForSAoneEle(Sac.Id); RentalApplyWebService.RentalApplyCheckForSAoneEle(Sac2.Id); System.Test.stopTest(); } } //add wangweipeng 2021/12/13 start //批量延期测试程序 static testMethod void testMethodApprovalCheck3() { ControllerUtil.EscapeNFM001Trigger = true; // OLY_OCM-643 追加ControllerUtil.EscapeNFM001Trigger Oly_TriggerHandler.bypass(Product2Handler.Class.getName()); Oly_TriggerHandler.bypass(AssetHandler.Class.getName()); Oly_TriggerHandler.bypass(FixtureSetHandler.Class.getName()); Oly_TriggerHandler.bypass(RentalApplyTriggerHandler.Class.getName()); Oly_TriggerHandler.bypass(RentalApplyEquipmentSetHandler.Class.getName()); Oly_TriggerHandler.bypass(RentalApplyEquipmentSetDetailHandler.Class.getName()); Oly_TriggerHandler.bypass(ContactTriggerHandler.Class.getName()); Oly_TriggerHandler.bypass('AssetTrigger'); // 省 Address_Level__c al = new Address_Level__c(); al.Name = '東京'; al.Level1_Code__c = 'CN-99'; al.Level1_Sys_No__c = '999999'; insert al; // 市 Address_Level2__c al2 = new Address_Level2__c(); al2.Level1_Code__c = 'CN-99'; al2.Level1_Sys_No__c = '999999'; al2.Level1_Name__c = '東京'; al2.Name = '渋谷区'; al2.Level2_Code__c = 'CN-9999'; al2.Level2_Sys_No__c = '9999999'; al2.Address_Level__c = al.id; insert al2; // 病院を作る 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.Attribute_Type__c = '卫生部'; hospital.Speciality_Type__c = '综合医院'; hospital.Grade__c = '一级'; hospital.OCM_Category__c = 'SLTV'; hospital.Is_Medical__c = '医疗机构'; hospital.State_Master__c = al.id; hospital.City_Master__c = al2.id; hospital.Town__c = '东京'; insert hospital; StaticParameter.EscapeAccountTrigger = true; // 戦略科室を得る Account[] strategicDep = [SELECT ID, Name FROM Account WHERE parentId = :hospital.Id AND recordType.DeveloperName = 'Department_Class_OTH']; // 診療科を作る Account dep = new Account(); dep.recordtypeId = [Select Id FROM RecordType WHERE IsActive = true and SobjectType = 'Account' and DeveloperName = 'Department_OTH'].id; dep.Name = 'test dep'; dep.AgentCode_Ext__c = '9999998'; dep.ParentId = strategicDep[0].Id; dep.Department_Class__c = strategicDep[0].Id; dep.Hospital__c = hospital.Id; insert dep; Contact contact2 = new Contact(); contact2.AccountId = dep.Id; contact2.FirstName = '責任者'; contact2.LastName = 'test1经销商'; insert contact2; // 产品 Product2 pro1 = new Product2(Name='name01',IsActive=true,Family='GI', Fixture_Model_No__c='n01',Serial_Lot_No__c='S/N tracing', Fixture_Model_No_T__c = 'n01', Asset_Model_No__c = 'Pro1', ProductCode_Ext__c='pc01',Manual_Entry__c=false); Product2 pro2 = new Product2(Name='name02',IsActive=true,Family='GI', Fixture_Model_No__c='n02',Serial_Lot_No__c='Lot tracing', Fixture_Model_No_T__c = 'n02', Asset_Model_No__c = 'Pro2', ProductCode_Ext__c='pc02',Manual_Entry__c=false); Product2 pro3 = new Product2(Name='name03',IsActive=true,Family='GI', Fixture_Model_No__c='n03',Serial_Lot_No__c='Lot tracing', Fixture_Model_No_T__c = 'n03', Asset_Model_No__c = 'Pro3', ProductCode_Ext__c='pc03',Manual_Entry__c=false); insert new Product2[] {pro1, pro2, pro3}; // 保有设备 Asset asset1 = new Asset(Asset_Owner__c = 'Olympus'); asset1.RecordTypeId = System.Label.Asset_RecordType; asset1.SerialNumber = 'asset1'; asset1.Name = 'asset1'; asset1.AccountId = dep.Id; asset1.Department_Class__c = strategicDep[0].Id; asset1.Hospital__c = hospital.Id; asset1.Product2Id = pro1.Id; asset1.Quantity = 1; asset1.Status = '不明'; asset1.Manage_type__c = '个体管理'; asset1.Loaner_accsessary__c = false; asset1.Out_of_wh__c = 0; asset1.Salesdepartment__c = '1.华北营业本部'; asset1.Internal_asset_location__c = '北京 备品中心'; asset1.Product_category__c = 'GI'; asset1.Equipment_Type__c = '产品试用'; asset1.SalesProvince__c = '北京'; asset1.CompanyOfEquipment__c = '北京'; asset1.Internal_Asset_number__c = '0001'; insert new Asset[] {asset1}; //备品借出申请 Rental_Apply__c raObj = new Rental_Apply__c(); raObj.recordtypeId = [Select Id FROM RecordType WHERE IsActive = true and SobjectType = 'Rental_Apply__c' and DeveloperName = 'AgencyRequest'].id; raObj.Name = 'testra'; raObj.Product_category__c = 'GI'; raObj.Demo_purpose1__c = '产品试用'; raObj.demo_purpose2__c = FixtureUtil.raDemo_purpose2MAP.get('shiyongwuxunjia'); raObj.direct_send__c = '医疗机构'; raObj.Loaner_received_staff__c = '王五'; raObj.Loaner_received_staff_phone__c = '110'; raObj.direct_shippment_address__c = '北京市'; raObj.Hospital__c = hospital.Id; raObj.Strategic_dept__c = strategicDep[0].Id; raObj.Account__c = dep.Id; raObj.Request_shipping_day__c = Date.toDay(); raObj.Hope_Lonaer_date_Num__c = 1; // 希望借用天数 raObj.Request_return_day__c = Date.toDay(); raObj.Status__c = '草案中'; raObj.Phone_number__c = '1234567890'; raObj.Loaner_medical_Staff__c = contact2.Id; raObj.Assign_Person__c = Userinfo.getUserId(); insert raObj; // 备品配套 Fixture_Set__c fsObj1 = new Fixture_Set__c(); fsObj1.Name = 'set1'; fsObj1.Fixture_Set_Body_Model_No__c = 'modelNo1'; fsObj1.Loaner_name__c = 'name1'; insert fsObj1; // 备品配套明细 Fixture_Set_Detail__c fsdObjA1 = new Fixture_Set_Detail__c(); fsdObjA1.Name = '备品配套明细名1'; fsdObjA1.Name_CHN_Created__c = '中文名称1'; fsdObjA1.Product2__c = pro1.Id; fsdObjA1.Fixture_Set__c = fsObj1.Id; fsdObjA1.Is_Body__c = true; fsdObjA1.Is_Optional__c = false; fsdObjA1.UniqueKey__c = fsObj1.Id + ':' + pro1.Id; fsdObjA1.SortInt__c = 1; insert new Fixture_Set_Detail__c[] {fsdObjA1}; // 借出备品配套一览 Rental_Apply_Equipment_Set__c raesObj = new Rental_Apply_Equipment_Set__c(); raesObj.Rental_Apply__c = raObj.Id; raesObj.Fixture_Set__c = fsObj1.Id; raesObj.Cancel_Select__c = false; raesObj.Rental_Start_Date__c = Date.toDay(); raesObj.Rental_End_Date__c = Date.toDay().addDays(1); raesObj.IndexFromUniqueKey__c = 1; raesObj.UniqueKey__c = '1:'+ fsObj1.Id + ':1'; raesObj.Loaner_received_time__c = Datetime.now(); raesObj.Loaner_received_time__c = Datetime.now(); raesObj.Final_reply_day_text__c = Date.today().addDays(15); insert raesObj; // 借出备品配套一览明细 Rental_Apply_Equipment_Set_Detail__c raesdObj1 = new Rental_Apply_Equipment_Set_Detail__c(); raesdObj1.Rental_Apply__c = raObj.Id; raesdObj1.Fixture_Set_Detail__c = fsdObjA1.Id; raesdObj1.Rental_Num__c = 1; raesdObj1.Queue_Number__c = null; raesdObj1.Is_Body__c = true; raesdObj1.Rental_Apply_Equipment_Set__c = raesObj.Id; raesdObj1.IndexFromUniqueKey__c = 1; raesdObj1.UniqueKey__c = '1:'+ raesObj.Id + ':' + fsdObjA1.Id + ':1'; raesdObj1.FSD_OneToOneAccessory_Cnt__c = 0; raesdObj1.FSD_Is_Optional__c = false; raesdObj1.FSD_Is_OneToOne__c = false; raesdObj1.ApplyPersonAppended__c = false; raesdObj1.FSD_Fixture_Model_No__c = 'n01'; raesdObj1.Fixture_Model_No_text__c = 'n01'; raesdObj1.Asset_return_time__c = null; raesdObj1.Shippment_loaner_time__c = Datetime.now(); raesdObj1.Inspection_result__c = 'OK'; insert new Rental_Apply_Equipment_Set_Detail__c[] {raesdObj1}; raObj.Status__c = '已出库'; update raObj; raesObj.Final_reply_day_text__c = Date.today().addDays(15); update raesObj; //备品借出申请 Rental_Apply__c raObj2 = new Rental_Apply__c(); raObj2.recordtypeId = [Select Id FROM RecordType WHERE IsActive = true and SobjectType = 'Rental_Apply__c' and DeveloperName = 'AgencyRequest'].id; raObj2.Name = 'testraa'; raObj2.Product_category__c = 'GI'; raObj2.Demo_purpose1__c = '产品试用'; raObj2.demo_purpose2__c = FixtureUtil.raDemo_purpose2MAP.get('shiyongwuxunjia'); raObj2.direct_send__c = '医疗机构'; raObj2.Loaner_received_staff__c = '李四'; raObj2.Loaner_received_staff_phone__c = '110'; raObj2.direct_shippment_address__c = '北京市'; raObj2.Hospital__c = hospital.Id; raObj2.Strategic_dept__c = strategicDep[0].Id; raObj2.Account__c = dep.Id; raObj2.Request_shipping_day__c = Date.toDay(); raObj2.Hope_Lonaer_date_Num__c = 1; // 希望借用天数 raObj2.Request_return_day__c = Date.toDay(); raObj2.Status__c = '草案中'; raObj2.Phone_number__c = '1234567890'; raObj2.Loaner_medical_Staff__c = contact2.Id; //raObj2.Root_Rental_Apply__c = raObj.Id; raObj2.Assign_Person__c = Userinfo.getUserId(); insert raObj2; raObj.Root_Rental_Apply__c = raObj2.Id; // 申请单变为已批准 raObj.Status__c = '已出库'; update raObj; // 备品配套 Fixture_Set__c fsObj2 = new Fixture_Set__c(); fsObj2.Name = 'set2'; fsObj2.Fixture_Set_Body_Model_No__c = 'modelNo2'; fsObj2.Loaner_name__c = 'name2'; insert fsObj2; // 备品配套明细 Fixture_Set_Detail__c fsdObjA2 = new Fixture_Set_Detail__c(); fsdObjA2.Name = '备品配套明细名2'; fsdObjA2.Name_CHN_Created__c = '中文名称2'; fsdObjA2.Product2__c = pro2.Id; fsdObjA2.Fixture_Set__c = fsObj2.Id; fsdObjA2.Is_Body__c = false; fsdObjA2.Is_Optional__c = true; fsdObjA2.UniqueKey__c = fsObj2.Id + ':' + pro2.Id; fsdObjA2.SortInt__c = 2; insert new Fixture_Set_Detail__c[] {fsdObjA2}; // 借出备品配套一览 Rental_Apply_Equipment_Set__c raesObj2 = new Rental_Apply_Equipment_Set__c(); raesObj2.Rental_Apply__c = raObj2.Id; raesObj2.Fixture_Set__c = fsObj2.Id; raesObj2.Cancel_Select__c = false; raesObj2.Rental_Start_Date__c = Date.toDay(); raesObj2.Rental_End_Date__c = Date.toDay().addDays(1); raesObj2.IndexFromUniqueKey__c = 1; raesObj2.UniqueKey__c = '1:'+ fsObj2.Id + ':1'; raesObj2.Loaner_received_time__c = Datetime.now(); raesObj2.Loaner_received_time__c = Datetime.now(); raesObj2.Final_reply_day_text__c = Date.today().addDays(15); insert raesObj2; // 借出备品配套一览明细 Rental_Apply_Equipment_Set_Detail__c raesdObj2 = new Rental_Apply_Equipment_Set_Detail__c(); raesdObj2.Rental_Apply__c = raObj2.Id; raesdObj2.Fixture_Set_Detail__c = fsdObjA2.Id; raesdObj2.Rental_Num__c = 1; raesdObj2.Queue_Number__c = null; raesdObj2.Is_Body__c = true; raesdObj2.Rental_Apply_Equipment_Set__c = raesObj2.Id; raesdObj2.IndexFromUniqueKey__c = 1; raesdObj2.UniqueKey__c = '1:'+ raesObj2.Id + ':' + fsdObjA2.Id + ':1'; raesdObj2.FSD_OneToOneAccessory_Cnt__c = 0; raesdObj2.FSD_Is_Optional__c = false; raesdObj2.FSD_Is_OneToOne__c = false; raesdObj2.ApplyPersonAppended__c = false; raesdObj2.FSD_Fixture_Model_No__c = 'n01'; raesdObj2.Fixture_Model_No_text__c = 'n01'; raesdObj2.Asset_return_time__c = null; raesdObj2.Shippment_loaner_time__c = Datetime.now(); raesdObj2.Inspection_result__c = 'OK'; insert new Rental_Apply_Equipment_Set_Detail__c[] {raesdObj2}; // 备品配套 Fixture_Set__c fsObj3 = new Fixture_Set__c(); fsObj3.Name = 'set3'; fsObj3.Fixture_Set_Body_Model_No__c = 'modelNo3'; fsObj3.Loaner_name__c = 'name3'; insert fsObj3; // 备品配套明细 Fixture_Set_Detail__c fsdObjA3 = new Fixture_Set_Detail__c(); fsdObjA3.Name = '备品配套明细名2'; fsdObjA3.Name_CHN_Created__c = '中文名称2'; fsdObjA3.Product2__c = pro2.Id; fsdObjA3.Fixture_Set__c = fsObj3.Id; fsdObjA3.Is_Body__c = false; fsdObjA3.Is_Optional__c = true; fsdObjA3.UniqueKey__c = fsObj3.Id + ':' + pro2.Id; fsdObjA3.SortInt__c = 2; insert new Fixture_Set_Detail__c[] {fsdObjA3}; // 借出备品配套一览 Rental_Apply_Equipment_Set__c raesObj3 = new Rental_Apply_Equipment_Set__c(); raesObj3.Rental_Apply__c = raObj2.Id; raesObj3.Fixture_Set__c = fsObj3.Id; raesObj3.Cancel_Select__c = false; raesObj3.Rental_Start_Date__c = Date.toDay(); raesObj3.Rental_End_Date__c = Date.toDay().addDays(1); raesObj3.IndexFromUniqueKey__c = 1; raesObj3.UniqueKey__c = '1:'+ fsObj3.Id + ':1'; raesObj3.Loaner_received_time__c = Datetime.now(); raesObj3.Loaner_received_time__c = Datetime.now(); raesObj3.Final_reply_day_text__c = Date.today().addDays(15); raesObj3.Extend_Date__c = Date.today().addDays(1); insert raesObj3; // 借出备品配套一览明细 Rental_Apply_Equipment_Set_Detail__c raesdObj3 = new Rental_Apply_Equipment_Set_Detail__c(); raesdObj3.Rental_Apply__c = raObj2.Id; raesdObj3.Fixture_Set_Detail__c = fsdObjA3.Id; raesdObj3.Rental_Num__c = 1; raesdObj3.Queue_Number__c = null; raesdObj3.Is_Body__c = true; raesdObj3.Rental_Apply_Equipment_Set__c = raesObj3.Id; raesdObj3.IndexFromUniqueKey__c = 1; raesdObj3.UniqueKey__c = '1:'+ raesObj3.Id + ':' + fsdObjA3.Id + ':1'; raesdObj3.FSD_OneToOneAccessory_Cnt__c = 0; raesdObj3.FSD_Is_Optional__c = false; raesdObj3.FSD_Is_OneToOne__c = false; raesdObj3.ApplyPersonAppended__c = false; raesdObj3.FSD_Fixture_Model_No__c = 'n01'; raesdObj3.Fixture_Model_No_text__c = 'n01'; raesdObj3.Asset_return_time__c = null; raesdObj3.Shippment_loaner_time__c = Datetime.now().addDays(2); raesdObj3.Inspection_result__c = ''; insert new Rental_Apply_Equipment_Set_Detail__c[] {raesdObj3}; raObj2.Status__c = '已出库'; update raObj2; raesObj2.Final_reply_day_text__c = Date.today().addDays(15); update raesObj2; //备品借出申请 Rental_Apply__c raObj3 = new Rental_Apply__c(); raObj3.recordtypeId = [Select Id FROM RecordType WHERE IsActive = true and SobjectType = 'Rental_Apply__c' and DeveloperName = 'AgencyRequest'].id; raObj3.Name = 'testra'; raObj3.Product_category__c = 'GI'; raObj3.Demo_purpose1__c = '产品试用'; raObj3.demo_purpose2__c = FixtureUtil.raDemo_purpose2MAP.get('shiyongwuxunjia'); raObj3.direct_send__c = '医疗机构'; raObj3.Loaner_received_staff__c = '王五'; raObj3.Loaner_received_staff_phone__c = '110'; raObj3.direct_shippment_address__c = '北京市'; raObj3.Request_shipping_day__c = Date.toDay(); // 希望到货日 raObj3.Phone_number__c = '1234567890'; //raObj3.Campaign__c = cam.Id; raObj3.SupplementCreated__c = true; raObj3.Root_Rental_Apply__c = raObj2.Id; raObj3.Hospital__c = hospital.Id; raObj3.Strategic_dept__c = strategicDep[0].Id; raObj3.Account__c = dep.Id; raObj3.Hope_Lonaer_date_Num__c = 1; // 希望借用天数 raObj3.Request_return_day__c = Date.toDay().addDays(10); raObj3.Loaner_medical_Staff__c = contact2.Id; raObj3.Assign_Person__c = Userinfo.getUserId(); insert raObj3; // 备品配套 Fixture_Set__c fsObj4 = new Fixture_Set__c(); fsObj4.Name = 'set4'; fsObj4.Fixture_Set_Body_Model_No__c = 'modelNo4'; fsObj4.Loaner_name__c = 'name4'; insert fsObj4; // 备品配套明细 Fixture_Set_Detail__c fsdObjA4 = new Fixture_Set_Detail__c(); fsdObjA4.Name = '备品配套明细名4'; fsdObjA4.Name_CHN_Created__c = '中文名称4'; fsdObjA4.Product2__c = pro2.Id; fsdObjA4.Fixture_Set__c = fsObj4.Id; fsdObjA4.Is_Body__c = false; fsdObjA4.Is_Optional__c = true; fsdObjA4.UniqueKey__c = fsObj4.Id + ':' + pro2.Id; fsdObjA4.SortInt__c = 2; insert new Fixture_Set_Detail__c[] {fsdObjA4}; // 借出备品配套一览 Rental_Apply_Equipment_Set__c raesObj4 = new Rental_Apply_Equipment_Set__c(); raesObj4.Rental_Apply__c = raObj3.Id; raesObj4.Fixture_Set__c = fsObj4.Id; raesObj4.Cancel_Select__c = false; raesObj4.Rental_Start_Date__c = Date.toDay(); raesObj4.Rental_End_Date__c = Date.toDay().addDays(1); raesObj4.IndexFromUniqueKey__c = 1; raesObj4.UniqueKey__c = '1:'+ fsObj4.Id + ':1'; raesObj4.Loaner_received_time__c = Datetime.now(); raesObj4.Loaner_received_time__c = Datetime.now(); raesObj4.Final_reply_day_text__c = Date.today().addDays(15); raesObj4.Extend_Date__c = Date.today().addDays(1); raesObj4.Received_Confirm__c = 'NG'; raesObj4.Asset_return_time__c = Datetime.now(); raesObj4.Received_ng_detail__c = '1111'; insert raesObj4; // 借出备品配套一览明细 Rental_Apply_Equipment_Set_Detail__c raesdObj4 = new Rental_Apply_Equipment_Set_Detail__c(); raesdObj4.Rental_Apply__c = raObj3.Id; raesdObj4.Fixture_Set_Detail__c = fsdObjA4.Id; raesdObj4.Rental_Num__c = 1; raesdObj4.Queue_Number__c = null; raesdObj4.Is_Body__c = true; raesdObj4.Rental_Apply_Equipment_Set__c = raesObj4.Id; raesdObj4.IndexFromUniqueKey__c = 1; raesdObj4.UniqueKey__c = '1:'+ raesObj4.Id + ':' + fsdObjA4.Id + ':1'; raesdObj4.FSD_OneToOneAccessory_Cnt__c = 0; raesdObj4.FSD_Is_Optional__c = false; raesdObj4.FSD_Is_OneToOne__c = false; raesdObj4.ApplyPersonAppended__c = false; raesdObj4.FSD_Fixture_Model_No__c = 'n01'; raesdObj4.Fixture_Model_No_text__c = 'n01'; raesdObj4.Asset_return_time__c = null; raesdObj4.Shippment_loaner_time__c = Datetime.now().addDays(2); insert new Rental_Apply_Equipment_Set_Detail__c[] {raesdObj4}; //备品借出申请 Rental_Apply__c raObj4 = new Rental_Apply__c(); /*raObj4.recordtypeId = [Select Id FROM RecordType WHERE IsActive = true and SobjectType = 'Rental_Apply__c' and DeveloperName = 'AgencyRequest'].id; raObj4.Name = 'testra'; raObj4.Product_category__c = 'GI'; raObj4.Demo_purpose1__c = '维修代用'; raObj4.demo_purpose2__c = FixtureUtil.raDemo_purpose2MAP.get('baoxiuyonghu'); raObj4.direct_send__c = '医疗机构'; raObj4.Loaner_received_staff__c = '王五'; raObj4.Loaner_received_staff_phone__c = '110'; raObj4.direct_shippment_address__c = '北京市'; raObj4.Request_shipping_day__c = Date.toDay(); // 希望到货日 raObj4.Phone_number__c = '1234567890'; raObj4.Repair__c=; //raObj4.Campaign__c = cam.Id; raObj4.SupplementCreated__c = true;*/ raObj4.recordtypeId = [Select Id FROM RecordType WHERE IsActive = true and SobjectType = 'Rental_Apply__c' and DeveloperName = 'AgencyRequest'].id; raObj4.Name = 'testra'; raObj4.Product_category__c = 'GI'; raObj4.Demo_purpose1__c = '产品试用'; raObj4.demo_purpose2__c = FixtureUtil.raDemo_purpose2MAP.get('shiyongwuxunjia'); raObj4.direct_send__c = '医疗机构'; raObj4.Loaner_received_staff__c = '王五'; raObj4.Loaner_received_staff_phone__c = '110'; raObj4.direct_shippment_address__c = '北京市'; raObj4.Request_shipping_day__c = Date.toDay(); // 希望到货日 raObj4.Phone_number__c = '1234567890'; //raObj3.Campaign__c = cam.Id; raObj4.SupplementCreated__c = true; raObj4.Root_Rental_Apply__c = raObj2.Id; raObj4.Hospital__c = hospital.Id; raObj4.Strategic_dept__c = strategicDep[0].Id; raObj4.Account__c = dep.Id; raObj4.Hope_Lonaer_date_Num__c = 1; // 希望借用天数 raObj4.Request_return_day__c = Date.toDay().addDays(10); raObj4.Loaner_medical_Staff__c = contact2.Id; raObj4.Assign_Person__c = Userinfo.getUserId(); insert raObj4; Oly_TriggerHandler.clearAllBypasses(); Test.startTest(); List raObjs = [select Id,Root_Rental_Apply__c from Rental_Apply__c]; RentalApplyWebService.extension_approval_processCheck(raObjs[0].Id); RentalApplyWebService.extension_approval_processCheck(raObjs[1].Id); RentalApplyWebService.extension_approval_processCheck(raObjs[2].Id); RentalApplyWebService.extension_approval_processCheck(raObjs[3].Id); raObj4.recordtypeId = [Select Id FROM RecordType WHERE IsActive = true and SobjectType = 'Rental_Apply__c' and DeveloperName = 'StandardRequest'].id; raObj4.Assign_Person__c = null; update raObj4; RentalApplyWebService.extension_approval_processCheck(raObjs[3].Id); Test.stopTest(); } //add wangweipeng 2021/12/13 end }