@isTest public class AgencyOpportunityHandlerTest { public static Account account1 = new Account(); public static Account account2 = new Account(); public static Account account3 = new Account(); public static Contact contact1 = new Contact(); public static Contact contact2 = new Contact(); public static Contact contact3 = new Contact(); public static User user = new User(); public static User user2 = new User(); public static Agency_Hospital_Link__c agency_hospital_link = new Agency_Hospital_Link__c(); public static ProductTypes__c product_types = new ProductTypes__c(); public static Agency_Opportunity__c agency_opportunity = new Agency_Opportunity__c(); public static Agency_Opportunity__c agency_opportunity2 = new Agency_Opportunity__c(); public static OlympusCalendar__c olympus_calendar = new OlympusCalendar__c(); public static String report_id; public static String report_header_id; // 病院。コンタクト、ユーザー、カレンダーなどの初期データ作る public static Account hospital; public static Account agency1; public static Account agency2; public static Account agency3; public static String oldAgencyCode; public static String newAgencyCode; public static String oldAgencyId15; public static String newAgencyId15; public static Contact contact4; public static Contact contact5; public static User user1; public static User user3; public static Agency_Hospital_Link__c a1HPLink; public static Agency_Hospital_Link__c a2HPLink; public static Agency_Hospital_Link__c a3HPLink; private static void testInit() { // 取引先 account1.Name = 'test1医院'; account1.RecordTypeId = '01210000000QemG'; insert account1; List acclist=[select RecordTypeId,Name from Account ]; account2.Name = 'test1经销商'; account2.RecordTypeId = '01210000000Qem1'; insert account2; List acc2list=[select RecordTypeId,Name from Account ]; System.assertEquals(10,acc2list.size()); // 取引先責任者 contact1.AccountId = account1.Id; contact1.FirstName = '責任者'; contact1.LastName = 'test1医院'; insert contact1; List contactlist=[select Id,FirstName from Contact ]; System.assertEquals('責任者',contactlist[0].FirstName); contact2.AccountId = account2.Id; contact2.FirstName = '責任者'; contact2.LastName = 'test1经销商'; insert contact2; List contact2list=[select Id,FirstName from Contact ]; System.assertEquals('責任者',contact2list[0].FirstName); // ユーザー //Profile p = [select Id from Profile where Name = '901_经销商周报']; Profile p = [select Id from Profile where Name = '901_经销商活动系统']; user.ProfileId = p.Id; user.ContactId = contact2.Id; user.FirstName = 'ユーザー'; user.LastName = 'テスト'; user.Email = 'test_user@example.com'; user.emailencodingkey='UTF-8'; user.languagelocalekey='zh_CN'; user.localesidkey='ja_JP'; user.timezonesidkey='Asia/Shanghai'; user.Username = 'test_user@example.com' + System.now().millisecond(); user.Alias = 'テユ'; user.CommunityNickname = 'tu' + System.now().millisecond(); insert user; List users = [select Id,Name,LastName, FirstName from User where LastName='テスト']; //System.assertEquals('テスト',users[0].LastName); System.assertEquals('ユーザー',users[0].FirstName ); agency_hospital_link.Name = 'test1代理店医院'; agency_hospital_link.Hospital__c = account1.Id; agency_hospital_link.Agency__c = account2.Id; agency_hospital_link.OwnerId = user.Id; agency_hospital_link.Agency_Campaign_Obj__c = true; insert agency_hospital_link; List agencylist=[select Id,Name from Agency_Hospital_Link__c where Id =: agency_hospital_link.Id]; //System.assertEquals(null, agencylist.size()); System.assertEquals('test1医院',agencylist[0].Name); //Id rtId = [select Id,DeveloperName from RecordType where IsActive = true and SobjectType = 'Agency_Opportunity__c' and DeveloperName = 'Opportunity'].Id; Id rtId = Schema.SObjectType.Agency_Opportunity__c.getRecordTypeInfosByDeveloperName().get('Opportunity').getRecordTypeId(); // Schema.SobjectType.Agency_Opportunity__c.getRecordTypeInfosByName().get('询价').getRecordTypeId(); agency_opportunity.Agency_Person__c = contactlist[0].id; agency_opportunity.RecordTypeId = rtId; agency_opportunity.Name = '引合'; agency_opportunity.Hospital_Target__c = account1.Id; agency_opportunity.Agency__c = account2.Id; agency_opportunity.Agency_Hospital__c = agency_hospital_link.Id; agency_opportunity.StageName__c = '还没申请预算'; agency_opportunity.OwnerId = user.Id; agency_opportunity.NewOpportunity_Agency_Apply_Status__c = '批准'; agency_opportunity.Department_Cateogy__c = 'ET'; agency_opportunity.Sales_Manager__c = user.Id; insert agency_opportunity; List opportunitylist=[select Id,Name from Agency_Opportunity__c]; System.assertEquals(1,opportunitylist.size()); //rtId = [select Id,DeveloperName from RecordType where IsActive = true and SobjectType = 'Agency_Opportunity__c' and DeveloperName = 'Target'].Id; rtId = Schema.SObjectType.Agency_Opportunity__c.getRecordTypeInfosByDeveloperName().get('Opportunity').getRecordTypeId(); //Schema.SobjectType.Agency_Opportunity__c.getRecordTypeInfosByName().get('目标').getRecordTypeId(); agency_opportunity2.Agency_Person__c = contact2list[0].id; agency_opportunity2.RecordTypeId = rtId; agency_opportunity2.Name = '引合2'; agency_opportunity2.Hospital_Target__c = account1.Id; agency_opportunity2.Agency__c = account2.Id; agency_opportunity2.OwnerId = user.Id; agency_opportunity2.NewOpportunity_Agency_Apply_Status__c = '草案中'; agency_opportunity.Department_Cateogy__c = 'GS'; insert agency_opportunity2; System.debug(agency_opportunity2.Name); List opportunitylist2=[select Id,Name from Agency_Opportunity__c]; System.assertEquals(2,opportunitylist2.size()); olympus_calendar.Date__c = Date.valueOf('2017-04-10'); olympus_calendar.OwnerId = user.Id; insert olympus_calendar; List olympusCalendarlist=[select Id,Name,Date__c from OlympusCalendar__c]; System.assertEquals(Date.valueOf('2017-04-10'),olympusCalendarlist[0].Date__c); } // @isTest // public static void selectOpportunityByIdAndHospitalLinkIdTest() { // Test.startTest(); // testInit(); // Test.stopTest(); // System.runAs(user) { // List opportunity_data = WeeklyReportCmp.selectOpportunityByIdAndHospitalLinkId(agency_opportunity.Id, agency_hospital_link.Id); // List agencyopportunity=[select Id,Name,Agency__c,Agency_ID__c,Owner_Agency_ID__c, // Agency_Hospital_All__c,Agency_Hospital__c,Agency_Hospital_Target__c // from Agency_Opportunity__c ]; // System.assertEquals('::'+agency_opportunity.Name, agencyopportunity[0].Name); // System.assertEquals(agency_opportunity.Agency__c, agencyopportunity[0].Owner_Agency_ID__c); // System.assertEquals(agency_opportunity.Agency_Hospital_All__c, agencyopportunity[0].Agency_Hospital_Target__c); // //System.assertEquals(agency_opportunity2.Agency_Hospital_All__c, agencyopportunity[0].Agency_Hospital__c); // //System.assertEquals(agency_opportunity2.Agency_ID__c, String.valueOf(agencyopportunity[0].Owner_Agency_ID__c).substring(0,15)); // } // } @isTest static void test_setAgency_Contact_Share_ToRole() { Oly_TriggerHandler.bypass('AgencyReportHeaderHandler'); Oly_TriggerHandler.bypass('AgencyHospitalHandler'); //MergeAgencyActivityBatchTest.makeNormalData(true); makeNormalData(true); // assert List tList = [SELECT Name, NewOpportunity_Agency_Apply_Status__c, Agency__c FROM Agency_Opportunity__c ORDER BY Id LIMIT 2]; System.assertEquals(2, tList.size()); System.assertEquals(agency1.Id, tList[0].Agency__c); System.assertEquals(agency1.Id, tList[1].Agency__c); tList[0].NewOpportunity_Agency_Apply_Status__c = '填写完毕'; tList[1].NewOpportunity_Agency_Apply_Status__c = '填写完毕'; update tList; tList[0].NewOpportunity_Agency_Apply_Status__c = '批准'; tList[1].NewOpportunity_Agency_Apply_Status__c = '批准'; update tList; // List tsList = [SELECT Id // FROM Agency_Opportunity__Share WHERE ParentId = :tList AND RowCause = 'Manual']; // System.assertEquals(2, tsList.size()); Test.startTest(); Delete tList[0]; Test.stopTest(); // tsList = [SELECT Id // FROM Agency_Opportunity__Share WHERE ParentId = :tList AND RowCause = 'Manual']; // System.assertEquals(1, tsList.size()); UnDelete tList[0]; // tsList = [SELECT Id // FROM Agency_Opportunity__Share WHERE ParentId = :tList AND RowCause = 'Manual']; // System.assertEquals(2, tsList.size()); } //agency_opportunityのinsert @isTest public static void tst_shareToOSCM() { // 取引先 account1.Name = 'test1医院'; account1.RecordTypeId = '01210000000QemG'; account2.Name = 'test1经销商'; account2.RecordTypeId = '01210000000Qem1'; Id AgencyRecordTypeId = Schema.SObjectType.Account.getRecordTypeInfosByDeveloperName().get('Agency').getRecordTypeId(); account3.Name = 'test2经销商'; account3.RecordTypeId = AgencyRecordTypeId; insert new List {account1, account2, account3}; // 取引先責任者 contact1.AccountId = account1.Id; contact1.FirstName = '責任者'; contact1.LastName = 'test1医院'; contact2.AccountId = account2.Id; contact2.FirstName = '責任者'; contact2.LastName = 'test1经销商'; contact3.AccountId = account2.Id; contact3.FirstName = '責任者'; contact3.LastName = 'test2经销商'; insert new List {contact1,contact2,contact3}; Test.startTest(); // ユーザー //Profile p = [select Id from Profile where Name = '901_经销商周报']; Profile p = [select Id from Profile where Name = '901_经销商活动系统']; user.ProfileId = p.Id; user.ContactId = contact2.Id; user.FirstName = 'ユーザー'; user.LastName = 'テスト'; user.Email = 'test_user@example.com'; user.emailencodingkey='UTF-8'; user.languagelocalekey='zh_CN'; user.localesidkey='ja_JP'; user.timezonesidkey='Asia/Shanghai'; user.Username = 'test_user@example.com' + System.now().millisecond(); user.Alias = 'テユ'; user.CommunityNickname = 'tu1' + System.now().millisecond(); user2.ProfileId = p.Id; user2.ContactId = contact3.Id; user2.FirstName = 'ユーザー2'; user2.LastName = 'テスト2'; user2.Email = 'test_user2@example.com'; user2.emailencodingkey='UTF-8'; user2.languagelocalekey='zh_CN'; user2.localesidkey='ja_JP'; user2.timezonesidkey='Asia/Shanghai'; user2.Username = 'test_user2@example.com' + System.now().millisecond(); user2.Alias = 'テユ2'; user2.CommunityNickname = 'tu2' + System.now().millisecond(); insert new List {user, user2}; agency_hospital_link.Name = 'test1代理店医院'; agency_hospital_link.Hospital__c = account1.Id; agency_hospital_link.Agency__c = account2.Id; agency_hospital_link.OwnerId = user.Id; agency_hospital_link.Agency_Campaign_Obj__c = true; insert agency_hospital_link; ProductTypes__c productTypes = new ProductTypes__c(); productTypes.Name ='290系统'; productTypes.Name2__c ='290系统'; productTypes.Department_Cateogy__c = 'GI;BF;GS'; insert productTypes; List contactlist=[select Id,FirstName from Contact]; //Id rtId = [select Id,DeveloperName from RecordType where IsActive = true and SobjectType = 'Agency_Opportunity__c' and DeveloperName = 'Opportunity'].Id; Id rtId = Schema.SObjectType.Agency_Opportunity__c.getRecordTypeInfosByDeveloperName().get('Opportunity').getRecordTypeId(); // Schema.SobjectType.Agency_Opportunity__c.getRecordTypeInfosByName().get('询价').getRecordTypeId(); agency_opportunity.Agency_Person__c = contactlist[0].id; agency_opportunity.RecordTypeId = rtId; agency_opportunity.Name = '引合1'; agency_opportunity.Hospital_Target__c = account1.Id; agency_opportunity.Agency__c = account2.Id; agency_opportunity.Agency_Hospital__c = agency_hospital_link.Id; agency_opportunity.StageName__c = '还没申请预算'; agency_opportunity.OwnerId = user.Id; agency_opportunity.NewOpportunity_Agency_Apply_Status__c = '批准'; agency_opportunity.OCM_Change_To_Opportunity_Flg__c = true; agency_opportunity.Department_Cateogy__c = 'GI'; agency_opportunity.Product_Category1_P__c ='290系统'; //agency_opportunity.Product_Category2_P__c ='170系统'; //agency_opportunity.Product_Category3_P__c ='170系统'; agency_opportunity.Sales_Manager__c = user.Id; insert agency_opportunity; Opportunity opp = new Opportunity(); opp.Agency_Opportunity__c = agency_opportunity.Id; opp.Name = 'test询价'; opp.StageName = '目標'; //opp.AgencyOpp_FromOCM__c = true; opp.SAP_Send_OK__c = false; opp.CloseDate = Date.newInstance(2222, 7, 15); insert opp; opp.SAP_Send_OK__c = true; agency_opportunity2.RecordTypeId = rtId; agency_opportunity2.Name = '引合2'; agency_opportunity2.Hospital_Target__c = account1.Id; agency_opportunity2.Agency__c = account2.Id; agency_opportunity2.Agency_Hospital__c = agency_hospital_link.Id; //oObj.OCSM_Owner__c != nObj.OCSM_Owner__c agency_opportunity2.OwnerId = user2.Id; agency_opportunity2.NewOpportunity_Agency_Apply_Status__c = '批准'; agency_opportunity2.OCM_Change_To_Opportunity_Flg__c = false; insert agency_opportunity2; Test.stopTest(); Opportunity opp2 = new Opportunity(); opp2.Agency_Opportunity__c = agency_opportunity2.Id; opp2.Name = 'test询价2'; opp2.StageName = '目標2'; opp2.SAP_Send_OK__c = false; opp2.CloseDate = Date.newInstance(2222, 7, 15); opp2.SAP_Send_OK__c = true; // Test.startTest(); insert opp2; // Test.stopTest(); String rowCause = Schema.Agency_Opportunity__Share.RowCause.OCSM_Owner_c_User__c; List agencyopportunityShare=[SELECT RowCause,ParentId,UserOrGroupId FROM Agency_Opportunity__Share WHERE ParentId=:agency_opportunity.Id and RowCause =:rowCause]; System.assertEquals('OCSM_Owner_c_User__c', agencyopportunityShare[0].RowCause); agencyopportunityShare=[SELECT RowCause,ParentId,UserOrGroupId FROM Agency_Opportunity__Share WHERE ParentId=:agency_opportunity.Id and RowCause <>:rowCause]; System.assertEquals(user.Id, agencyopportunityShare[0].UserOrGroupId); } // 经销商所有者テスト @isTest public static void tst_Owner1() { // 取引先 // StaticParameter.EscapeAccountTrigger = true; StaticParameter.EscapeNFM007Trigger = true; StaticParameter.EscapeOpportunityBefUpdTrigger = true; StaticParameter.EscapeOpportunityHpDeptUpdTrigger = true; StaticParameter.EscapeSyncOpportunityTrigger = true; account1.Name = 'test1医院'; account1.RecordTypeId = '01210000000QemG'; account2.Name = 'test1经销商'; account2.RecordTypeId = '01210000000Qem1'; Id AgencyRecordTypeId = Schema.SObjectType.Account.getRecordTypeInfosByDeveloperName().get('Agency').getRecordTypeId(); account3.Name = 'test2经销商'; account3.RecordTypeId = AgencyRecordTypeId; insert new List {account1, account2, account3}; // 取引先責任者 contact1.AccountId = account1.Id; contact1.FirstName = '責任者'; contact1.LastName = 'test1医院'; contact2.AccountId = account2.Id; contact2.FirstName = '責任者'; contact2.Agency_User__c = true; contact2.LastName = 'test1经销商'; contact3.AccountId = account2.Id; contact3.FirstName = '責任者'; contact3.LastName = 'test2经销商'; insert new List {contact1,contact2,contact3}; //insert new List {contact1,contact2}; // ユーザー //Profile p = [select Id from Profile where Name = '901_经销商周报']; Profile p = [select Id from Profile where Name = '901_经销商活动系统']; user.ProfileId = p.Id; user.ContactId = contact2.Id; user.FirstName = 'ユーザー'; user.LastName = 'テスト'; user.Email = 'test_user@example.com'; user.emailencodingkey='UTF-8'; user.languagelocalekey='zh_CN'; user.localesidkey='ja_JP'; user.timezonesidkey='Asia/Shanghai'; user.Username = 'test_user@example.com' + System.now().millisecond(); user.Alias = 'テユ'; user.CommunityNickname = 'tu1' + System.now().millisecond(); user2.ProfileId = p.Id; user2.ContactId = contact3.Id; user2.FirstName = 'ユーザー2'; user2.LastName = 'テスト2'; user2.Email = 'test_user2@example.com'; user2.emailencodingkey='UTF-8'; user2.languagelocalekey='zh_CN'; user2.localesidkey='ja_JP'; user2.timezonesidkey='Asia/Shanghai'; user2.Username = 'test_user2@example.com' + System.now().millisecond(); user2.Alias = 'テユ2'; user2.CommunityNickname = 'tu2' + System.now().millisecond(); insert new List {user, user2}; agency_hospital_link.Name = 'test1代理店医院'; agency_hospital_link.Hospital__c = account1.Id; agency_hospital_link.Agency__c = account2.Id; agency_hospital_link.OwnerId = user.Id; agency_hospital_link.Agency_Campaign_Obj__c = true; insert agency_hospital_link; ProductTypes__c productTypes = new ProductTypes__c(); productTypes.Name ='290系统'; productTypes.Name2__c ='290系统'; productTypes.Department_Cateogy__c = 'GI;BF;GS'; insert productTypes; List contactlist=[select Id,FirstName from Contact]; //Id rtId = [select Id,DeveloperName from RecordType where IsActive = true and SobjectType = 'Agency_Opportunity__c' and DeveloperName = 'Opportunity'].Id; Id rtId = Schema.SObjectType.Agency_Opportunity__c.getRecordTypeInfosByDeveloperName().get('Opportunity').getRecordTypeId(); // Schema.SobjectType.Agency_Opportunity__c.getRecordTypeInfosByName().get('询价').getRecordTypeId(); agency_opportunity.Agency_Person__c = contactlist[0].id; agency_opportunity.RecordTypeId = rtId; agency_opportunity.Name = '引合1'; agency_opportunity.Hospital_Target__c = account1.Id; agency_opportunity.Agency__c = account2.Id; agency_opportunity.Agency_Hospital__c = agency_hospital_link.Id; agency_opportunity.StageName__c = '还没申请预算'; agency_opportunity.OwnerId = user.Id; agency_opportunity.NewOpportunity_Agency_Apply_Status__c = '批准'; agency_opportunity.OCM_Change_To_Opportunity_Flg__c = true; agency_opportunity.Department_Cateogy__c = 'GI'; agency_opportunity.Product_Category1_P__c ='290系统'; //agency_opportunity.Product_Category2_P__c ='170系统'; //agency_opportunity.Product_Category3_P__c ='170系统'; agency_opportunity.Sales_Manager__c = user.Id; insert agency_opportunity; Opportunity opp = new Opportunity(); opp.Agency_Opportunity__c = agency_opportunity.Id; opp.Name = 'test询价'; opp.StageName = '目標'; //opp.AgencyOpp_FromOCM__c = true; opp.SAP_Send_OK__c = false; opp.CloseDate = Date.newInstance(2222, 7, 15); opp.OwnerId = user.Id; insert opp; List oppList = [SELECT Id, OwnerId FROM Opportunity]; System.assertEquals(1, oppList.size()); System.assertEquals(user.Id, oppList[0].OwnerId); List owners = [select Id from User where AccountId =:account2.Id and isActive = true and Contact.Agency_User__c = true order by CreatedDate limit 1]; System.assertEquals(1, owners.size()); agency_opportunity2.RecordTypeId = rtId; agency_opportunity2.Name = '引合2'; agency_opportunity2.Hospital_Target__c = account1.Id; agency_opportunity2.Agency__c = account2.Id; agency_opportunity2.Agency_Hospital__c = agency_hospital_link.Id; agency_opportunity2.NewOpportunity_Agency_Apply_Status__c = '批准'; agency_opportunity2.OCM_Change_To_Opportunity_Flg__c = false; insert agency_opportunity2; List aoList = [SELECT Id, OwnerId, Sales_Manager_F__c, Sales_Manager__c FROM Agency_Opportunity__c WHERE Id = :agency_opportunity2.Id]; List userList = [SELECT Id, SalesManager__c FROM User WHERE Id = :UserInfo.getUserId()]; System.assertEquals(1, aoList.size()); System.assertEquals(UserInfo.getUserId(), aoList[0].OwnerId); System.assertEquals(userList[0].SalesManager__c, aoList[0].Sales_Manager_F__c); //System.assertEquals(aoList[0].Sales_Manager_F__c, aoList[0].Sales_Manager__c); } // 普通所有者テスト @isTest public static void tst_Owner2() { // 取引先 account1.Name = 'test1医院'; account1.RecordTypeId = '01210000000QemG'; account2.Name = 'test1经销商'; account2.RecordTypeId = '01210000000Qem1'; Id AgencyRecordTypeId = Schema.SObjectType.Account.getRecordTypeInfosByDeveloperName().get('Agency').getRecordTypeId(); account3.Name = 'test2经销商'; account3.RecordTypeId = AgencyRecordTypeId; insert new List {account1, account2, account3}; // 取引先責任者 contact1.AccountId = account1.Id; contact1.FirstName = '責任者'; contact1.LastName = 'test1医院'; contact2.AccountId = account2.Id; contact2.FirstName = '責任者'; contact2.LastName = 'test1经销商'; contact2.Agency_User__c = true; contact3.AccountId = account2.Id; contact3.FirstName = '責任者'; contact3.LastName = 'test2经销商'; insert new List {contact1,contact2,contact3}; // ユーザー //Profile p = [select Id from Profile where Name = '901_经销商周报']; Profile p = [select Id from Profile where Name = '901_经销商活动系统']; user.ProfileId = p.Id; user.ContactId = contact2.Id; user.FirstName = 'ユーザー'; user.LastName = 'テスト'; user.Email = 'test_user@example.com'; user.emailencodingkey='UTF-8'; user.languagelocalekey='zh_CN'; user.localesidkey='ja_JP'; user.timezonesidkey='Asia/Shanghai'; user.Username = 'test_user@example.com' + System.now().millisecond(); user.Alias = 'テユ'; user.CommunityNickname = 'tu1' + System.now().millisecond(); user2.ProfileId = p.Id; user2.ContactId = contact3.Id; user2.FirstName = 'ユーザー2'; user2.LastName = 'テスト2'; user2.Email = 'test_user2@example.com'; user2.emailencodingkey='UTF-8'; user2.languagelocalekey='zh_CN'; user2.localesidkey='ja_JP'; user2.timezonesidkey='Asia/Shanghai'; user2.Username = 'test_user2@example.com' + System.now().millisecond(); user2.Alias = 'テユ2'; user2.CommunityNickname = 'tu2' + System.now().millisecond(); // ユーザー User user3 = new User(); user3.ProfileId = UserInfo.getProfileId(); user3.FirstName = 'ユーザー3'; user3.LastName = 'テスト3'; user3.Email = 'test_user3@example.com'; user3.emailencodingkey='UTF-8'; user3.languagelocalekey='zh_CN'; user3.localesidkey='ja_JP'; user3.timezonesidkey='Asia/Shanghai'; user3.Username = 'test_user3@example.com' + System.now().millisecond(); user3.Alias = 'テユ4'; user3.CommunityNickname = 'tu3' + System.now().millisecond(); User user4 = new User(); user4.ProfileId = UserInfo.getProfileId(); user4.FirstName = 'ユーザー4'; user4.LastName = 'テスト4'; user4.Email = 'test_user4@example.com'; user4.emailencodingkey='UTF-8'; user4.languagelocalekey='zh_CN'; user4.localesidkey='ja_JP'; user4.timezonesidkey='Asia/Shanghai'; user4.Username = 'test_user4@example.com' + System.now().millisecond(); user4.Alias = 'テユ4'; user4.CommunityNickname = 'tu4' + System.now().millisecond(); insert new List {user, user2, user3, user4}; user3.SalesManager__c = user4.Id; update user3; agency_hospital_link.Name = 'test1代理店医院'; agency_hospital_link.Hospital__c = account1.Id; agency_hospital_link.Agency__c = account2.Id; agency_hospital_link.OwnerId = user.Id; agency_hospital_link.Agency_Campaign_Obj__c = true; insert agency_hospital_link; ProductTypes__c productTypes = new ProductTypes__c(); productTypes.Name ='290系统'; productTypes.Name2__c ='290系统'; productTypes.Department_Cateogy__c = 'GI;BF;GS'; insert productTypes; //Id rtId = [select Id,DeveloperName from RecordType where IsActive = true and SobjectType = 'Agency_Opportunity__c' and DeveloperName = 'Opportunity'].Id; Id rtId = Schema.SObjectType.Agency_Opportunity__c.getRecordTypeInfosByDeveloperName().get('Opportunity').getRecordTypeId(); // Schema.SobjectType.Agency_Opportunity__c.getRecordTypeInfosByName().get('询价').getRecordTypeId(); Opportunity opp = new Opportunity(); opp.Agency_Opportunity__c = agency_opportunity.Id; opp.Name = 'test询价'; opp.StageName = '目標'; //opp.AgencyOpp_FromOCM__c = true; opp.SAP_Send_OK__c = false; opp.CloseDate = Date.newInstance(2222, 7, 15); opp.OwnerId = user3.Id; insert opp; List oppList = [SELECT Id, OwnerId FROM Opportunity]; List contactlist=[select Id,FirstName from Contact]; System.assertEquals(1, oppList.size()); System.assertEquals(user3.Id, oppList[0].OwnerId); agency_opportunity.Agency_Person__c = contactlist[0].id; agency_opportunity.RecordTypeId = rtId; agency_opportunity.Name = '引合1'; agency_opportunity.Hospital_Target__c = account1.Id; agency_opportunity.Agency__c = account2.Id; agency_opportunity.Agency_Hospital__c = agency_hospital_link.Id; agency_opportunity.StageName__c = '还没申请预算'; agency_opportunity.OwnerId = user4.Id; agency_opportunity.NewOpportunity_Agency_Apply_Status__c = '批准'; agency_opportunity.OCM_Change_To_Opportunity_Flg__c = true; agency_opportunity.Department_Cateogy__c = 'GI'; agency_opportunity.Product_Category1_P__c ='290系统'; agency_opportunity.Change_To_Opportunity__c = opp.Id; //agency_opportunity.Product_Category2_P__c ='170系统'; //agency_opportunity.Product_Category3_P__c ='170系统'; agency_opportunity.Agency_ID__c = '0011000000V9RIs'; //agency_opportunity.Agency_Hospital_Target__c = agency_hospital_link.Id; agency_opportunity.Sales_Manager__c = user.Id; insert agency_opportunity; List aoList = [SELECT Id, OwnerId, Sales_Manager_F__c, Sales_Manager__c FROM Agency_Opportunity__c]; List userList = [SELECT Id, SalesManager__c FROM User WHERE Id = :user3.Id]; System.assertEquals(1, aoList.size()); System.assertEquals(userList[0].Id, aoList[0].OwnerId); System.assertEquals(userList[0].SalesManager__c, aoList[0].Sales_Manager_F__c); //System.assertEquals(aoList[0].Sales_Manager_F__c, aoList[0].Sales_Manager__c); } public static void makeNormalData(boolean withAgencyDetail) { ControllerUtil.EscapeNFM001Trigger = true; ControllerUtil.EscapeMaintenanceContractAfterUpdateTrigger = true; StaticParameter.EscapeNFM001Trigger = true; StaticParameter.EscapeNFM001AgencyContractTrigger = true; StaticParameter.EscapeNFM001AgencyContractTrigger2 = true; StaticParameter.EscapeMaintenanceContractAfterUpdateTrigger = true; StaticParameter.EscapeAccountTrigger = true; StaticParameter.EscapeNFM007Trigger = true; StaticParameter.EscapeOpportunityBefUpdTrigger = true; StaticParameter.EscapeOpportunityHpDeptUpdTrigger = true; StaticParameter.EscapeSyncOpportunityTrigger = true; System.runAs(new User(Id = UserInfo.getUserId())) { // create 病院 hospital = new Account(); hospital.RecordTypeId = Schema.SObjectType.Account.getRecordTypeInfosByDeveloperName().get('HP').getRecordTypeId(); hospital.Name = 'test hospital_1'; // create 经销商 agency1 = new Account(); agency1.Name = 'test1经销商'; agency1.RecordTypeId = Schema.SObjectType.Account.getRecordTypeInfosByDeveloperName().get('Agency').getRecordTypeId(); agency2 = new Account(); agency2.Name = 'test2经销商'; agency2.RecordTypeId = Schema.SObjectType.Account.getRecordTypeInfosByDeveloperName().get('Agency').getRecordTypeId(); agency3 = new Account(); agency3.Name = 'test3经销商'; agency3.RecordTypeId = Schema.SObjectType.Account.getRecordTypeInfosByDeveloperName().get('Agency').getRecordTypeId(); insert new List {hospital, agency1, agency2,agency3}; List agencyList = [SELECT Name, Management_Code__c FROM Account WHERE (Id = :agency1.Id OR Id = :agency2.Id) ORDER BY ID]; oldAgencyCode = agencyList[0].Management_Code__c; oldAgencyId15 = ('' + agencyList[0].Id).mid(0, 15); newAgencyCode = agencyList[1].Management_Code__c; newAgencyId15 = ('' + agencyList[1].Id).mid(0, 15); // 取引先責任者 contact4 = new Contact(); contact4.AccountId = agency1.Id; contact4.RecordTypeId = Schema.SObjectType.Contact.getRecordTypeInfosByDeveloperName().get('Agency').getRecordTypeId(); contact4.FirstName = '責任者'; contact4.LastName = 'test1经销商'; contact4.Agency_User__c = true; Contact contact12 = new Contact(); contact12.AccountId = agency1.Id; contact12.RecordTypeId = Schema.SObjectType.Contact.getRecordTypeInfosByDeveloperName().get('Agency').getRecordTypeId(); contact12.FirstName = '社員2'; contact12.LastName = 'test1经销商'; contact12.Agency_User__c = true; contact5 = new Contact(); contact5.AccountId = agency2.Id; contact5.RecordTypeId = Schema.SObjectType.Contact.getRecordTypeInfosByDeveloperName().get('Agency').getRecordTypeId(); contact5.FirstName = '責任者'; contact5.LastName = 'test2经销商'; contact5.Agency_User__c = true; Contact contact22 = new Contact(); contact22.AccountId = agency2.Id; contact22.RecordTypeId = Schema.SObjectType.Contact.getRecordTypeInfosByDeveloperName().get('Agency').getRecordTypeId(); contact22.FirstName = '社員2'; contact22.LastName = 'test1经销商'; contact22.Agency_User__c = true; Contact contact23 = new Contact(); contact23.AccountId = agency2.Id; contact23.RecordTypeId = Schema.SObjectType.Contact.getRecordTypeInfosByDeveloperName().get('Agency').getRecordTypeId(); contact23.FirstName = '社員3'; contact23.LastName = 'test2经销商'; contact23.Agency_User__c = true; Contact contact3 = new Contact(); contact3.AccountId = agency3.Id; contact3.RecordTypeId = Schema.SObjectType.Contact.getRecordTypeInfosByDeveloperName().get('Agency').getRecordTypeId(); contact3.FirstName = '社員3'; contact3.LastName = 'test2经销商'; contact3.Agency_User__c = true; insert new List {contact4, contact12, contact5, contact22, contact23,contact3}; // User (link to ContactId) Profile p = [SELECT Id FROM Profile WHERE Name = '901_经销商活动系统']; user1 = new User(); user1.ProfileId = p.Id; user1.ContactId = contact4.Id; user1.FirstName = 'ユーザー'; user1.LastName = 'テスト'; user1.Email = 'test_user1@example.com'; user1.Username = 'test_user1@sb1.example.com' + System.now().millisecond(); user1.Alias = 'テユa1'; user1.CommunityNickname = 'tu1' + System.now().millisecond(); user1.PortalRole = 'Worker'; user1.emailencodingkey='UTF-8'; user1.languagelocalekey='zh_CN'; user1.localesidkey='ja_JP'; user1.timezonesidkey='Asia/Shanghai'; user2 = new User(); user2.ProfileId = p.Id; user2.ContactId = contact5.Id; user2.FirstName = 'ユーザー'; user2.LastName = 'テスト'; user2.Email = 'test_user2@example.com'; user2.Username = 'test_user2@sb1.example.com' + System.now().millisecond(); user2.Alias = 'テユa2'; user2.CommunityNickname = 'tu2' + System.now().millisecond(); user2.PortalRole = 'Worker'; user2.emailencodingkey='UTF-8'; user2.languagelocalekey='zh_CN'; user2.localesidkey='ja_JP'; user2.timezonesidkey='Asia/Shanghai'; user3 = new User(); user3.ProfileId = p.Id; user3.ContactId = contact3.Id; user3.FirstName = 'ユーザー'; user3.LastName = 'テスト'; user3.Email = 'test_user3@example.com'; user3.Username = 'test_user3@sb1.example.com' + System.now().millisecond(); user3.Alias = 'テユa3'; user3.CommunityNickname = 'tu3' + System.now().millisecond(); user3.PortalRole = 'Worker'; user3.emailencodingkey='UTF-8'; user3.languagelocalekey='zh_CN'; user3.localesidkey='ja_JP'; user3.timezonesidkey='Asia/Shanghai'; insert new List {user1, user2,user3}; user2 = [SELECT FirstName, LastName, ContactId, Contact.AccountId, UserRoleId FROM User WHERE Id = :user2.Id]; System.assertEquals(agency2.Id, user2.Contact.AccountId); UserRole rolesAcc = [SELECT Id, Name, PortalAccountId, PortalRole FROM UserRole WHERE PortalAccountId = :agency2.Id AND PortalRole = 'Worker']; UserRole rolesUser = [SELECT Id, Name, PortalAccountId, PortalRole FROM UserRole WHERE Id = :user2.UserRoleId]; System.assertEquals(rolesAcc.PortalAccountId, rolesUser.PortalAccountId); System.assertEquals(rolesAcc.PortalRole, rolesUser.PortalRole); System.assertEquals(rolesAcc.Name, rolesUser.Name); System.assertEquals(rolesAcc.Id, rolesUser.Id); } System.runAs(new User(Id = UserInfo.getUserId())) { // UserにPermissionSetを設定 PermissionSet ps = [SELECT ID FROM PermissionSet WHERE Name = 'P002_Partner']; insert new List { new PermissionSetAssignment(AssigneeId = user1.id, PermissionSetId = ps.Id), new PermissionSetAssignment(AssigneeId = user2.id, PermissionSetId = ps.Id) }; } System.runAs(new User(Id = UserInfo.getUserId())) { // 营销关系 a1HPLink = new Agency_Hospital_Link__c(); a1HPLink.Name = 'test1经销商医院'; a1HPLink.Hospital__c = hospital.Id; a1HPLink.Agency__c = agency1.Id; a1HPLink.Agency_Campaign_Obj__c = true; insert a1HPLink; a2HPLink = new Agency_Hospital_Link__c(); a2HPLink.Name = 'test2经销商医院'; a2HPLink.Hospital__c = hospital.Id; a2HPLink.Agency__c = agency2.Id; a2HPLink.Agency_Campaign_Obj__c = true; insert a2HPLink; a3HPLink = new Agency_Hospital_Link__c(); a3HPLink.Name = 'test2经销商医院01'; a3HPLink.Hospital__c = hospital.Id; a3HPLink.Agency__c = agency3.Id; a3HPLink.Agency_Campaign_Obj__c = true; insert a3HPLink; a3HPLink.Agency_Campaign_Obj__c = false; update a3HPLink; if (withAgencyDetail) { //.客户人员 (agency1) Agency_Contact__c aContact1 = new Agency_Contact__c(); aContact1.Agency_Hospital__c = a1HPLink.Id; aContact1.Type__c = '医生'; aContact1.Name = 'testAgency医生'; aContact1.OwnerId = user1.Id; Agency_Contact__c aContact2 = new Agency_Contact__c(); aContact2.Agency_Hospital__c = a1HPLink.Id; aContact2.Type__c = '护士'; aContact2.Name = 'testAgency护士'; aContact2.OwnerId = user1.Id; insert new List {aContact1, aContact2}; // 经销商询价 (agency1) Agency_Opportunity__c agency_opportunity1 = new Agency_Opportunity__c(); agency_opportunity1.RecordTypeId = Schema.SObjectType.Agency_Opportunity__c.getRecordTypeInfosByDeveloperName().get('Opportunity').getRecordTypeId(); agency_opportunity1.Name = '引合1'; agency_opportunity1.Hospital_Target__c = hospital.Id; agency_opportunity1.Agency__c = agency1.Id; agency_opportunity1.Agency_Hospital__c = a1HPLink.Id; agency_opportunity1.StageName__c = '还没申请预算'; agency_opportunity1.NewOpportunity_Agency_Apply_Status__c = '批准'; agency_opportunity1.OwnerId = user1.Id; Agency_Opportunity__c agency_opportunity2 = new Agency_Opportunity__c(); agency_opportunity2.RecordTypeId = Schema.SObjectType.Agency_Opportunity__c.getRecordTypeInfosByDeveloperName().get('Opportunity').getRecordTypeId(); agency_opportunity2.Name = '引合2'; agency_opportunity2.Hospital_Target__c = hospital.Id; agency_opportunity2.Agency__c = agency1.Id; agency_opportunity2.Agency_Hospital__c = a1HPLink.Id; agency_opportunity2.StageName__c = '还没申请预算'; agency_opportunity2.NewOpportunity_Agency_Apply_Status__c = '批准'; agency_opportunity2.OwnerId = user1.Id; insert new List {agency_opportunity1, agency_opportunity2}; } } } }