@isTest private class OCMManagementProvinceBatchTest { @isTest static void test_method_one() { ControllerUtil.EscapeNFM001Trigger = true; Profile p = [select id from Profile where id =:System.Label.ProfileId_SystemAdmin]; String loginId = UserInfo.getUserId(); User sys = [select id from User where Id = :loginId]; User u1 = new User(Test_staff__c = true); u1.LastName = '_サンブリッジ'; u1.Batch_User__c = true; u1.Alias = 'あ'; u1.Email = 'olympusTest01@sunbridge.com'; u1.Username = 'olympusTest10@sunbridge.com'; u1.CommunityNickname = 'あ1'; u1.IsActive = true; u1.EmailEncodingKey = 'ISO-2022-JP'; u1.TimeZoneSidKey = 'Asia/Tokyo'; u1.LocaleSidKey = 'ja_JP'; u1.LanguageLocaleKey = 'ja'; u1.ProfileId = p.id; u1.Job_Category__c = '销售服务'; u1.Province__c = '東京'; User u2 = new User(Test_staff__c = true); u2.LastName = '_サンブリッジ'; u2.Batch_User__c = true; u2.Alias = 'い'; u2.Email = 'olympusTest02@sunbridge.com'; u2.Username = 'olympusTest02@sunbridge.com'; u2.CommunityNickname = 'い'; u2.IsActive = true; u2.EmailEncodingKey = 'ISO-2022-JP'; u2.TimeZoneSidKey = 'Asia/Tokyo'; u2.LocaleSidKey = 'ja_JP'; u2.LanguageLocaleKey = 'ja'; u2.ProfileId = p.id; u2.Job_Category__c = '销售推广'; u2.Province__c = '東京'; User u3 = new User(Test_staff__c = true); u3.LastName = '_サンブリッジ'; u3.Batch_User__c = true; 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 = p.id; u3.Job_Category__c = '支援'; u3.Province__c = '東京'; u3.Dept__c = '能量事业本部'; insert new User[] {u1, u2, u3}; System.runAs(sys) { OCM_Management_Province__c mp1 = new OCM_Management_Province__c(); mp1.Name = '北京'; mp1.GI_assistant__c = u1.Id; mp1.SP_assistant__c = u1.Id; mp1.Energy_assistant__c = u1.Id; OCM_Management_Province__c mp2 = new OCM_Management_Province__c(); mp2.Name = '上海'; mp2.GI_assistant__c = u2.Id; mp2.SP_assistant__c = u2.Id; mp2.Energy_assistant__c = u2.Id; OCM_Management_Province__c mp3 = new OCM_Management_Province__c(); mp3.Name = '深圳'; mp3.GI_assistant__c = u3.Id; mp3.SP_assistant__c = u3.Id; mp3.Energy_assistant__c = u3.Id; OCM_Management_Province__c mp4 = new OCM_Management_Province__c(); mp4.Name = '特约经销商管理支援本部'; mp4.GI_assistant__c = loginId; mp4.SP_assistant__c = loginId; mp4.Energy_assistant__c = loginId; insert new OCM_Management_Province__c[] {mp1, mp2, mp3, mp4}; Address_Level__c al1 = new Address_Level__c(); al1.Name = '北京市'; al1.Level1_Code__c = 'CN-01'; al1.Level1_Sys_No__c = '353341'; Address_Level__c al2 = new Address_Level__c(); al2.Name = '上海市'; al2.Level1_Code__c = 'CN-16'; al2.Level1_Sys_No__c = '353334'; Address_Level__c al3 = new Address_Level__c(); al3.Name = '广东省'; al3.Level1_Code__c = 'CN-22'; al3.Level1_Sys_No__c = '353343'; insert new Address_Level__c[] {al1, al2, al3}; Address_Level2__c al21 = new Address_Level2__c(); al21.Level1_Code__c = 'CN-01'; al21.Level1_Sys_No__c = '353341'; al21.Level1_Name__c = '北京市'; al21.Name = '海淀区'; al21.Level2_Code__c = 'CN-0123'; al21.Level2_Sys_No__c = '353664'; al21.Address_Level__c = al1.id; Address_Level2__c al22 = new Address_Level2__c(); al22.Level1_Code__c = 'CN-16'; al22.Level1_Sys_No__c = '353334'; al22.Level1_Name__c = '上海市'; al22.Name = '徐汇区'; al22.Level2_Code__c = 'CN-1631'; al22.Level2_Sys_No__c = '353572'; al22.Address_Level__c = al2.id; Address_Level2__c al23 = new Address_Level2__c(); al23.Level1_Code__c = 'CN-22'; al23.Level1_Sys_No__c = '353343'; al23.Level1_Name__c = '广东省'; al23.Name = '深圳市'; al23.Level2_Code__c = 'CN-2259'; al23.Level2_Sys_No__c = '353700'; al23.Address_Level__c = al3.id; insert new Address_Level2__c[] {al21, al22, al23}; RecordType rectCo = [select Id from RecordType where IsActive = true and SobjectType = 'Account' and DeveloperName = 'Hp']; List rectDpt = [select Id from RecordType where IsActive = true and SobjectType = 'Account' and DeveloperName IN ('Department_GI', 'Department_GS') order by DeveloperName]; Account acc1 = new Account(); acc1.RecordTypeId = rectCo.Id; acc1.Name = 'HP test1'; //acc1.OCM_Management_Province__c = mp1.Id; acc1.State_Master__c = al1.Id; acc1.City_Master__c = al21.Id; Account acc2 = new Account(); acc2.RecordTypeId = rectCo.Id; acc2.Name = 'HP test2'; //acc2.OCM_Management_Province__c = mp2.Id; acc2.State_Master__c = al2.Id; acc2.City_Master__c = al22.Id; Account acc3 = new Account(); acc3.RecordTypeId = rectCo.Id; acc3.Name = 'HP test3'; //acc3.OCM_Management_Province__c = mp3.Id; acc3.State_Master__c = al3.Id; acc3.City_Master__c = al23.Id; insert new Account[] {acc1, acc2, acc3}; List dept1 = [select Id, Name from Account where ParentId = :acc1.Id and Department_Class_Label__c = '消化科']; List dept2 = [select Id, Name from Account where ParentId = :acc2.Id and Department_Class_Label__c = '普外科']; List dept3 = [select Id, Name from Account where ParentId = :acc3.Id and Department_Class_Label__c = '消化科']; dept3[0].OwnerId = u3.Id; update dept3[0]; Account depart1 = new Account(); depart1.RecordTypeId = rectDpt[0].Id; depart1.Name = '*'; depart1.Department_Name__c = '診療科1'; depart1.ParentId = dept1[0].Id; depart1.Department_Class__c = dept1[0].Id; depart1.Hospital__c = acc1.Id; Account depart2 = new Account(); depart2.RecordTypeId = rectDpt[1].Id; depart2.Name = '*'; depart2.Department_Name__c = '診療科2'; depart2.ParentId = dept2[0].Id; depart2.Department_Class__c = dept2[0].Id; depart2.Hospital__c = acc2.Id; Account depart3 = new Account(); depart3.RecordTypeId = rectDpt[0].Id; depart3.Name = '*'; depart3.Department_Name__c = '診療科3'; depart3.ParentId = dept3[0].Id; depart3.Department_Class__c = dept3[0].Id; depart3.Hospital__c = acc3.Id; insert new Account[] {depart1, depart2, depart3}; RecordType oppVND = [select id from RecordType where IsActive = true and SobjectType = 'Opportunity' and DeveloperName = 'Opportunity']; System.Test.startTest(); Opportunity opp1 = new Opportunity( Name = 'test opp1', StageName = '引合', CurrencyIsoCode = 'USD', CloseDate = Date.today().addDays(5), AccountId = depart1.Id, RecordTypeId = oppVND.Id, Closing_Bid_Date__c = Date.today(), Hospital__c = acc1.Id, Competitor__c = 'A', SAP_Send_OK__c = false, Close_Forecasted_Date__c = date.today().addDays(1), Opportunity_Category__c = 'GI' ); Opportunity opp2 = new Opportunity( Name = 'test opp2', StageName = '引合', CurrencyIsoCode = 'USD', CloseDate = Date.today().addDays(5), AccountId = depart2.Id, RecordTypeId = oppVND.Id, Closing_Bid_Date__c = Date.today(), Hospital__c = acc2.Id, Competitor__c = 'B', SAP_Send_OK__c = false, Close_Forecasted_Date__c = date.today().addDays(1), Opportunity_Category__c = 'SP' ); Opportunity opp3 = new Opportunity( Name = 'test opp3', StageName = '引合', CurrencyIsoCode = 'USD', CloseDate = Date.today().addDays(5), AccountId = depart3.Id, RecordTypeId = oppVND.Id, Closing_Bid_Date__c = Date.today(), Hospital__c = acc3.Id, Competitor__c = 'B', Opportunity_Category__c = 'GI', OwnerId = u3.Id, SAP_Send_OK__c = false, Close_Forecasted_Date__c = date.today().addDays(2), owner_not_automatically_update__c = true ); Opportunity opp4 = new Opportunity( Name = 'test opp4', StageName = '引合', CurrencyIsoCode = 'USD', CloseDate = Date.today().addDays(5), AccountId = depart3.Id, RecordTypeId = oppVND.Id, Closing_Bid_Date__c = Date.today(), Hospital__c = acc3.Id, Competitor__c = 'B', Opportunity_Category__c = 'GI', SAP_Send_OK__c = false, Close_Forecasted_Date__c = date.today().addDays(1), Distributor_InCharge_opp__c = true ); insert new Opportunity[] {opp1, opp2, opp3, opp4}; List oppList = [select id,Sales_assistant_name_text__c from Opportunity order by Name]; // System.assertEquals(u1.Id, oppList[0].Sales_assistant_name_text__c); // System.assertEquals(u2.Id, oppList[1].Sales_assistant_name_text__c); // System.assertEquals(u3.Id, oppList[2].Sales_assistant_name_text__c); // System.assertEquals(loginId, oppList[3].Sales_assistant_name_text__c); opp1.Sales_assistant_name_text__c = UserInfo.getUserId(); opp2.Sales_assistant_name_text__c = null; opp3.Sales_assistant_name_text__c = null; opp4.Sales_assistant_name_text__c = null; update new Opportunity[] {opp1, opp2, opp3, opp4}; OCMManagementProvinceWebService.updateOpportunity(); System.Test.stopTest(); } } @isTest static void test_method_two() { Id pricebookId = ControllerUtil.getStandardPricebook().Id; Product2 product = new Product2( Name='テスト商品'); product.SFDA_Status__c = '有効'; product.Intra_Trade_List_RMB_1__c = 100; product.Intra_Trade_List_RMB_Date1__c = date.today(); product.Intra_Trade_Cost_RMB_1__c = 200; product.Intra_Trade_Cost_RMB_Date1__c = date.today(); product.Manual_Entry__c = false; product.Asset_Model_No__c = '11111'; product.ProductCode = 'OTV-SP1H-NA-12E'; insert product; PricebookEntry entry = new PricebookEntry( Pricebook2Id=pricebookId, Product2Id=product.Id); entry.UnitPrice = 0; entry.IsActive = true; entry.UseStandardPrice = false; entry.CurrencyIsoCode = 'CNY'; insert entry; Opportunity opp = new Opportunity(); opp.Name='aiueo'; opp.StageName='contact'; opp.Trade__c = '内貿'; opp.CloseDate=Date.today(); opp.CurrencyIsoCode = 'CNY'; opp.Estimation_List_Price__c = 100; opp.Wholesale_Price__c = 101; opp.Dealer_Final_Price__c = 102; opp.OCM_Agent1_Price__c = 103; opp.Stocking_Price__c = 104; opp.Estimation_No__c = '105'; opp.Estimation_Name__c = '106'; opp.Estimation_Id__c = '107'; insert opp; OpportunityLineItem oppli = new OpportunityLineItem(); oppli.OpportunityId = opp.Id; oppli.Id__c = '110'; oppli.SFDA_Status__c = '有効'; oppli.Name__c = '111'; oppli.ListPrice__c = 112; oppli.Quantity = 113; oppli.UnitPrice = 114; oppli.UnitPrice__c = 115; oppli.Qty_Unit__c = '116'; oppli.Cost__c = 117; oppli.BSS_Category__c = 'G&R'; oppli.Item_Order__c = 1; oppli.PricebookEntryId = entry.Id; insert oppli; Quote quo = new Quote(); quo.Name = '206'; quo.OpportunityId = opp.Id; quo.Quote_No__c = '205'; quo.Estimation_List_Price__c = 200; quo.Dealer_Final_Price__c = 202; quo.Stocking_Price__c = 204; quo.OCM_Sales_Forecast__c = 201; quo.OCM_Agent1_Price__c = 203; quo.Pricebook2Id = pricebookId; insert quo; QuoteLineItem qli = new QuoteLineItem(); qli.QuoteId = quo.Id; qli.Id__c = '210'; qli.SFDA_Status__c = '有効'; qli.Name__c = '211'; qli.ListPrice__c = 212; qli.Quantity = 213; qli.UnitPrice__c = 215; qli.UnitPrice = 0; qli.Qty_Unit__c = '216'; qli.Cost__c = 217; qli.BSS_Category__c = 'ET'; qli.Subtotal__c = 218; qli.PricebookEntryId = entry.Id; insert qli; opp.Estimation_Id__c = quo.Id; opp.Estimation_Decision__c = true; update opp; opp.Estimation_Decision__c = false; update opp; } @isTest static void test_method_three() { //医院 // List rectHp = [select Id from RecordType where IsActive = true and SobjectType = 'Account' and DeveloperName = 'Agency']; // if (rectHp.size() == 0) { // return; // } String rectHpid = Schema.SObjectType.Account.getRecordTypeInfosByDeveloperName().get('Agency').getRecordTypeId(); Profile p = [select Id from Profile where id =:System.Label.ProfileId_SystemAdmin]; User hpOwner = new User(Test_staff__c = true, LastName = 'hp', Alias = 'hp', Work_Location__c = '北京', CommunityNickname = 'hpOwner', Email = 'olympus_hpowner@sunbridge.com', Username = 'olympus_hpowner@sunbridge.com', IsActive = true, EmailEncodingKey = 'ISO-2022-JP', TimeZoneSidKey = 'Asia/Tokyo', LocaleSidKey = 'ja_JP', LanguageLocaleKey = 'ja', ProfileId = p.id); User thisUser = [select Id,Alias from User where Id = :UserInfo.getUserId() ]; System.runAs ( thisUser ){ insert hpOwner; // 省 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; // 医院 ControllerUtil.EscapeNFM001Trigger = true; StaticParameter.EscapeNFM001Trigger = true; StaticParameter.EscapeNFM001AgencyContractTrigger = true; StaticParameter.EscapeNFM001AgencyContractTrigger2 = true; Account hp = new Account(RecordTypeId = Schema.SObjectType.Account.getRecordTypeInfosByDeveloperName().get('HP').getRecordTypeId(), Name = 'hp', OwnerId = thisUser.Id); hp.Name = 'test hospital'; hp.FSE_GI_Main_Leader__c = thisUser.Id; hp.FSE_SP_Main_Leader__c = thisUser.Id; hp.State_Master__c = al.id; hp.City_Master__c = al2.id; hp.ET_owner__c = thisUser.Id; hp.OCM_man_province_txt__c = '深圳'; insert hp; // 战略科室 Account section = new Account(); section.RecordTypeId = Schema.SObjectType.Account.getRecordTypeInfosByDeveloperName().get('Department_Class_BF').getRecordTypeId(); section.Name = '*'; section.Department_Class_Label__c = '消化科'; section.ParentId = hp.Id; section.Hospital_Department_Class__c = hp.Id; upsert section; // 科室 Account depart = new Account(); depart.RecordTypeId = Schema.SObjectType.Account.getRecordTypeInfosByDeveloperName().get('Department_GI').getRecordTypeId(); depart.Name = '*'; depart.Department_Name__c = 'NFM007TestDepart'; depart.ParentId = section.Id; depart.Department_Class__c = section.Id; depart.Hospital__c = hp.Id; upsert depart; // // RecordType recByoin = [select id from RecordType where IsActive = true and SobjectType= 'Account' and Name='病院' limit 1]; // Account hospital = new Account(Name = 'テスト病院'); // hospital.RecordTypeId = Schema.SObjectType.Account.getRecordTypeInfosByDeveloperName().get('HP').getRecordTypeId(); // hospital.Name = 'test hospital1'; // hospital.ET_owner__c = UserInfo.getUserId(); // hospital.State_Master__c = al.id; // hospital.City_Master__c = al2.id; // hospital.OCM_man_province_txt__c = '深圳'; // insert hospital; // 医院 String agencyid = Schema.SObjectType.Account.getRecordTypeInfosByDeveloperName().get('Agency').getRecordTypeId(); Account agency = new Account(RecordTypeId =agencyid , Name = 'hp', OwnerId = thisUser.Id); agency.Name = 'test hospital'; agency.FSE_GI_Main_Leader__c = thisUser.Id; agency.FSE_SP_Main_Leader__c = thisUser.Id; agency.State_Master__c = al.id; agency.City_Master__c = al2.id; agency.ET_owner__c = thisUser.Id; agency.OCM_man_province_txt__c = '深圳'; insert agency; OCM_Management_Province__c mp1 = new OCM_Management_Province__c(); mp1.Name = '深圳'; mp1.Province__c = '广东省'; mp1.Window1__c = hpOwner.Id; mp1.ET_DataWindow__c = hpOwner.Id; mp1.ET_BusinessWindow__c = hpOwner.Id; mp1.ET_Assistant1__c = hpOwner.Id; mp1.ET_Assistant2__c = hpOwner.Id; mp1.ENG_DataWindow__c = hpOwner.Id; mp1.ENG_BusinessWindow__c = hpOwner.Id; mp1.ETShareOpp__c = hpOwner.Id; mp1.ENGShareOpp__c = hpOwner.Id; mp1.ENG_Assistant1__c = hpOwner.Id; mp1.ENG_Assistant2__c = hpOwner.Id; insert mp1; System.Test.startTest(); Opportunity opp = new Opportunity( Name = 'test opp1', StageName = '完了', CurrencyIsoCode = 'USD', CloseDate = Date.today().addDays(5), AccountId = depart.Id, Department_Class__c = section.Id, Hospital__c = hp.Id, Closing_Bid_Date__c = Date.today(), //Hospital__c = hp.Id, Competitor__c = 'A', SAP_Send_OK__c = false, Close_Forecasted_Date__c = date.today().addDays(1), Opportunity_Category__c = 'GI', Opp_order_Type__c ='ET', SAP_Province__c = '广东省' ); // insert opp; // Opportunity opp = new Opportunity(); // opp.Name='aiueo'; // opp.StageName='完了'; // opp.Trade__c = '内貿'; // opp.CloseDate=Date.today(); // opp.CurrencyIsoCode = 'CNY'; // opp.Estimation_List_Price__c = 100; // opp.Wholesale_Price__c = 101; // opp.Dealer_Final_Price__c = 102; // opp.OCM_Agent1_Price__c = 103; // opp.Stocking_Price__c = 104; // opp.Estimation_No__c = '105'; // opp.Estimation_Name__c = '106'; // opp.Estimation_Id__c = '107'; // opp.Opp_order_Type__c ='ET'; // opp.SAP_Province__c = '广东省'; // insert opp; // Opportunity opp1 = new Opportunity(); // opp1.Name='aiueo'; // opp1.StageName='完了'; // opp1.Trade__c = '内貿'; // opp1.CloseDate=Date.today(); // opp1.CurrencyIsoCode = 'CNY'; // opp1.Estimation_List_Price__c = 100; // opp1.Wholesale_Price__c = 101; // opp1.Dealer_Final_Price__c = 102; // opp1.OCM_Agent1_Price__c = 103; // opp1.Stocking_Price__c = 104; // opp1.Estimation_No__c = '105'; // opp1.Estimation_Name__c = '106'; // opp1.Estimation_Id__c = '107'; // opp1.Opp_order_Type__c ='ENG'; // opp1.SAP_Province__c = '广东省'; // opp1.Department_Class__c = section.Id; // opp1.Hospital__c = hp.Id; // opp1.AccountId = depart.Id; // insert opp1; insert new Opportunity[] {opp}; // 共享计划创建 // opp = [select id,OCM_man_province_new__c from Opportunity where id = :opp.id]; // System.assertEquals('深圳', opp.OCM_man_province_new__c); OpportunityShare oppshare = new OpportunityShare(); oppshare.RowCause= 'Manual';//手动 oppshare.OpportunityId = opp.id; oppshare.UserOrGroupId = hpOwner.Id; oppshare.OpportunityAccessLevel = 'Read';//编辑 // insert oppshare; // OpportunityShare oppshare1 = new OpportunityShare(); // oppshare1.RowCause= 'Manual';//手动 // oppshare1.OpportunityId = opp1.id; // oppshare1.UserOrGroupId = hpOwner.Id; // oppshare1.OpportunityAccessLevel = 'Read';//编辑 // insert oppshare1; insert new OpportunityShare[] {oppshare}; //TMS数据 Dealer_ConsumableManage__c tms =new Dealer_ConsumableManage__c(); tms.Dealer_Name__c =agency.id; tms.ET_ENG__c ='ET'; tms.TMS_Key__c='1'; // insert tms; // Dealer_ConsumableManage__c tms1 =new Dealer_ConsumableManage__c(); // tms1.Dealer_Name__c =hp.id; // tms1.ET_ENG__c ='ENG'; // tms1.TMS_Key__c='2'; // insert tms1; insert new Dealer_ConsumableManage__c[] {tms}; // 共享计划创建 // tms = [select id,TMS_Province__c from Dealer_ConsumableManage__c where id = :tms.id]; // System.assertEquals('深圳', tms.TMS_Province__c); Dealer_ConsumableManage__Share tmsshare = new Dealer_ConsumableManage__Share(); tmsshare.RowCause= 'OCSMToTMSUser__c';//手动 tmsshare.ParentId = tms.id; tmsshare.UserOrGroupId = hpOwner.Id; tmsshare.AccessLevel = 'Read'; insert tmsshare; //IMS数据 Oly_TriggerHandler.bypass('ConsumableTargetManageHandler'); ConsumableTargetManage__c ims =new ConsumableTargetManage__c(); ims.Hospital__c =hp.id; ims.productType__c ='ET耗材'; ims.ConsumableTargetManageKey__c ='001'; // insert ims; // ConsumableTargetManage__c ims1 =new ConsumableTargetManage__c(); // ims1.Hospital__c =agency.id; // ims1.productType__c ='外科耗材'; // ims1.ConsumableTargetManageKey__c ='002'; // insert ims1; insert new ConsumableTargetManage__c[] {ims}; // 共享计划创建 ConsumableTargetManage__Share imsshare = new ConsumableTargetManage__Share(); imsshare.RowCause= 'OCSMToIMSUser__c';//手动 imsshare.ParentId = ims.id; imsshare.UserOrGroupId = hpOwner.Id; imsshare.AccessLevel = 'Read'; insert imsshare; OCMManagementProvinceWebService.updateOpportunity(); System.Test.stopTest(); } } @isTest static void test_method_4() { //医院 // List rectHp = [select Id from RecordType where IsActive = true and SobjectType = 'Account' and DeveloperName = 'Agency']; // if (rectHp.size() == 0) { // return; // } String rectHpid = Schema.SObjectType.Account.getRecordTypeInfosByDeveloperName().get('Agency').getRecordTypeId(); Profile p = [select Id from Profile where id =:System.Label.ProfileId_SystemAdmin]; User hpOwner = new User(Test_staff__c = true, LastName = 'hp', Alias = 'hp', Work_Location__c = '北京', CommunityNickname = 'hpOwner', Email = 'olympus_hpowner@sunbridge.com', Username = 'olympus_hpowner@sunbridge.com', IsActive = true, EmailEncodingKey = 'ISO-2022-JP', TimeZoneSidKey = 'Asia/Tokyo', LocaleSidKey = 'ja_JP', LanguageLocaleKey = 'ja', ProfileId = p.id); User thisUser = [select Id,Alias from User where Id = :UserInfo.getUserId() ]; System.runAs ( thisUser ){ insert hpOwner; // 省 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; // 医院 ControllerUtil.EscapeNFM001Trigger = true; StaticParameter.EscapeNFM001Trigger = true; StaticParameter.EscapeNFM001AgencyContractTrigger = true; StaticParameter.EscapeNFM001AgencyContractTrigger2 = true; Account hp = new Account(RecordTypeId = Schema.SObjectType.Account.getRecordTypeInfosByDeveloperName().get('HP').getRecordTypeId(), Name = 'hp', OwnerId = thisUser.Id); hp.Name = 'test hospital'; hp.FSE_GI_Main_Leader__c = thisUser.Id; hp.FSE_SP_Main_Leader__c = thisUser.Id; hp.State_Master__c = al.id; hp.City_Master__c = al2.id; hp.ET_owner__c = thisUser.Id; hp.OCM_man_province_txt__c = '深圳'; insert hp; // 战略科室 Account section = new Account(); section.RecordTypeId = Schema.SObjectType.Account.getRecordTypeInfosByDeveloperName().get('Department_Class_BF').getRecordTypeId(); section.Name = '*'; section.Department_Class_Label__c = '消化科'; section.ParentId = hp.Id; section.Hospital_Department_Class__c = hp.Id; upsert section; // 科室 Account depart = new Account(); depart.RecordTypeId = Schema.SObjectType.Account.getRecordTypeInfosByDeveloperName().get('Department_GI').getRecordTypeId(); depart.Name = '*'; depart.Department_Name__c = 'NFM007TestDepart'; depart.ParentId = section.Id; depart.Department_Class__c = section.Id; depart.Hospital__c = hp.Id; upsert depart; // // RecordType recByoin = [select id from RecordType where IsActive = true and SobjectType= 'Account' and Name='病院' limit 1]; // Account hospital = new Account(Name = 'テスト病院'); // hospital.RecordTypeId = Schema.SObjectType.Account.getRecordTypeInfosByDeveloperName().get('HP').getRecordTypeId(); // hospital.Name = 'test hospital1'; // hospital.ET_owner__c = UserInfo.getUserId(); // hospital.State_Master__c = al.id; // hospital.City_Master__c = al2.id; // hospital.OCM_man_province_txt__c = '深圳'; // insert hospital; // 医院 String agencyid = Schema.SObjectType.Account.getRecordTypeInfosByDeveloperName().get('Agency').getRecordTypeId(); Account agency = new Account(RecordTypeId =agencyid , Name = 'hp', OwnerId = thisUser.Id); agency.Name = 'test hospital'; agency.FSE_GI_Main_Leader__c = thisUser.Id; agency.FSE_SP_Main_Leader__c = thisUser.Id; agency.State_Master__c = al.id; agency.City_Master__c = al2.id; agency.ET_owner__c = thisUser.Id; agency.OCM_man_province_txt__c = '深圳'; insert agency; OCM_Management_Province__c mp1 = new OCM_Management_Province__c(); mp1.Name = '深圳'; mp1.Province__c = '广东省'; mp1.Window1__c = hpOwner.Id; mp1.ET_DataWindow__c = hpOwner.Id; mp1.ET_BusinessWindow__c = hpOwner.Id; mp1.ET_Assistant1__c = hpOwner.Id; mp1.ET_Assistant2__c = hpOwner.Id; mp1.ENG_DataWindow__c = hpOwner.Id; mp1.ENG_BusinessWindow__c = hpOwner.Id; mp1.ETShareOpp__c = hpOwner.Id; mp1.ENGShareOpp__c = hpOwner.Id; mp1.ENG_Assistant1__c = hpOwner.Id; mp1.ENG_Assistant2__c = hpOwner.Id; insert mp1; System.Test.startTest(); // Opportunity opp = new Opportunity( // Name = 'test opp1', // StageName = '完了', // CurrencyIsoCode = 'USD', // CloseDate = Date.today().addDays(5), // AccountId = depart.Id, // Department_Class__c = section.Id, // Hospital__c = hp.Id, // Closing_Bid_Date__c = Date.today(), // //Hospital__c = hp.Id, // Competitor__c = 'A', // SAP_Send_OK__c = false, // Close_Forecasted_Date__c = date.today().addDays(1), // Opportunity_Category__c = 'GI', // Opp_order_Type__c ='ET', // SAP_Province__c = '广东省' // ); // insert opp; // Opportunity opp = new Opportunity(); // opp.Name='aiueo'; // opp.StageName='完了'; // opp.Trade__c = '内貿'; // opp.CloseDate=Date.today(); // opp.CurrencyIsoCode = 'CNY'; // opp.Estimation_List_Price__c = 100; // opp.Wholesale_Price__c = 101; // opp.Dealer_Final_Price__c = 102; // opp.OCM_Agent1_Price__c = 103; // opp.Stocking_Price__c = 104; // opp.Estimation_No__c = '105'; // opp.Estimation_Name__c = '106'; // opp.Estimation_Id__c = '107'; // opp.Opp_order_Type__c ='ET'; // opp.SAP_Province__c = '广东省'; // insert opp; Opportunity opp1 = new Opportunity(); opp1.Name='aiueo'; opp1.StageName='完了'; opp1.Trade__c = '内貿'; opp1.CloseDate=Date.today(); opp1.CurrencyIsoCode = 'CNY'; opp1.Estimation_List_Price__c = 100; opp1.Wholesale_Price__c = 101; opp1.Dealer_Final_Price__c = 102; opp1.OCM_Agent1_Price__c = 103; opp1.Stocking_Price__c = 104; opp1.Estimation_No__c = '105'; opp1.Estimation_Name__c = '106'; opp1.Estimation_Id__c = '107'; opp1.Opp_order_Type__c ='ENG'; opp1.SAP_Province__c = '广东省'; opp1.Department_Class__c = section.Id; opp1.Hospital__c = hp.Id; opp1.AccountId = depart.Id; // insert opp1; insert new Opportunity[] {opp1}; // 共享计划创建 // opp = [select id,OCM_man_province_new__c from Opportunity where id = :opp.id]; // System.assertEquals('深圳', opp.OCM_man_province_new__c); // OpportunityShare oppshare = new OpportunityShare(); // oppshare.RowCause= 'Manual';//手动 // oppshare.OpportunityId = opp.id; // oppshare.UserOrGroupId = hpOwner.Id; // oppshare.OpportunityAccessLevel = 'Read';//编辑 // insert oppshare; OpportunityShare oppshare1 = new OpportunityShare(); oppshare1.RowCause= 'Manual';//手动 oppshare1.OpportunityId = opp1.id; oppshare1.UserOrGroupId = hpOwner.Id; oppshare1.OpportunityAccessLevel = 'Read';//编辑 // insert oppshare1; insert new OpportunityShare[] {oppshare1}; //TMS数据 // Dealer_ConsumableManage__c tms =new Dealer_ConsumableManage__c(); // tms.Dealer_Name__c =hp.id; // tms.ET_ENG__c ='ET'; // tms.TMS_Key__c='1'; // insert tms; /** Dealer_ConsumableManage__c tms1 =new Dealer_ConsumableManage__c(); tms1.Dealer_Name__c =agency.id; tms1.ET_ENG__c ='ENG'; tms1.TMS_Key__c='2'; // insert tms1; insert new Dealer_ConsumableManage__c[] {tms1}; // 共享计划创建 // tms = [select id,TMS_Province__c from Dealer_ConsumableManage__c where id = :tms.id]; // System.assertEquals('深圳', tms.TMS_Province__c); Dealer_ConsumableManage__Share tmsshare = new Dealer_ConsumableManage__Share(); tmsshare.RowCause= 'OCSMToTMSUser__c';//手动 tmsshare.ParentId = tms1.id; tmsshare.UserOrGroupId = hpOwner.Id; tmsshare.AccessLevel = 'Read'; insert tmsshare; //IMS数据 Oly_TriggerHandler.bypass('ConsumableTargetManageHandler'); // ConsumableTargetManage__c ims =new ConsumableTargetManage__c(); // ims.Hospital__c =agency.id; // ims.productType__c ='ET耗材'; // ims.ConsumableTargetManageKey__c ='001'; // insert ims; ConsumableTargetManage__c ims1 =new ConsumableTargetManage__c(); ims1.Hospital__c =hp.id; ims1.productType__c ='外科耗材'; ims1.ConsumableTargetManageKey__c ='002'; // insert ims1; insert new ConsumableTargetManage__c[] {ims1}; // 共享计划创建 // ConsumableTargetManage__Share imsshare = new ConsumableTargetManage__Share(); // imsshare.RowCause= 'OCSMToIMSUser__c';//手动 // imsshare.ParentId = ims2.id; // imsshare.UserOrGroupId = hpOwner.Id; // imsshare.AccessLevel = 'Read'; // insert imsshare; */ OCMManagementProvinceWebService.updateOpportunity(); Dealer_ConsumableManage__c tms1 =new Dealer_ConsumableManage__c(); tms1.Dealer_Name__c =agency.id; tms1.ET_ENG__c ='ENG'; tms1.TMS_Key__c='1'; Dealer_ConsumableManage__c tms2 =new Dealer_ConsumableManage__c(); tms2.Dealer_Name__c =agency.id; tms2.ET_ENG__c ='ET'; tms2.TMS_Key__c='2'; // insert tms1; insert new Dealer_ConsumableManage__c[] {tms1,tms2}; Dealer_ConsumableManage__Share tmsshare = new Dealer_ConsumableManage__Share(); tmsshare.RowCause= 'OCSMToTMSUser__c';//手动 tmsshare.ParentId = tms1.id; tmsshare.UserOrGroupId = hpOwner.Id; tmsshare.AccessLevel = 'Read'; insert tmsshare; Database.executeBatch(new OCMTOTMSShareUserBatch(),200); Oly_TriggerHandler.bypass('ConsumableTargetManageHandler'); ConsumableTargetManage__c ims =new ConsumableTargetManage__c(); ims.Hospital__c =hp.id; ims.productType__c ='ET耗材'; ims.ConsumableTargetManageKey__c ='001'; ConsumableTargetManage__c ims1 =new ConsumableTargetManage__c(); ims1.Hospital__c =hp.id; ims1.productType__c ='外科耗材'; ims1.ConsumableTargetManageKey__c ='002'; insert new ConsumableTargetManage__c[] {ims,ims1}; Database.executeBatch(new OCMTOIMSShareUserBatch(),200); System.Test.stopTest(); } } }