@isTest
|
private class OpdPlanWebServiceTest {
|
@isTest
|
static void testMethod1() {
|
StaticParameter.rentalApplyIsRunning = true;
|
ControllerUtil.EscapeNFM001Trigger = true;
|
StaticParameter.EscapeNFM001AgencyContractTrigger = true;
|
StaticParameter.EscapeNFM001Trigger = true;
|
Oly_TriggerHandler.bypass(ContactTriggerHandler.class.getName());
|
Oly_TriggerHandler.bypass(AgencyHospitalHandler.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;
|
|
// 戦略科室を得る
|
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;
|
|
// 20200831 ljh add start
|
Date dateToday = Date.today();
|
Integer year = dateToday.year();
|
Integer month = dateToday.month();
|
if (month < 4) {
|
year -= 1;
|
}
|
String selectedTab = String.valueOf(year - 1867 + 'P');
|
Account_Number_of_target__c anot = new Account_Number_of_target__c();
|
anot.Account__c = strategicDep[0].Id;
|
anot.Account_HP__c = hospital.Id;
|
anot.OCM_Period__c = selectedTab;
|
anot.OCM_Year__c = String.valueOf(year+ '年度');
|
anot.OPD_290Miro__c = 1;
|
insert anot;
|
// 20200831 ljh add end
|
// 产品
|
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,Important_Rroduct_2GI__c=true);
|
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,Important_Rroduct_2GI__c=true);
|
insert new Product2[] {pro1, pro2};
|
|
//20200902 ljh add start
|
Campaign cam = new Campaign();
|
cam.Name = 'cam';
|
cam.StartDate = Date.today().addDays(-15);
|
cam.EndDate = Date.today().addDays(18);
|
cam.Mailflg_after45__c = true;
|
cam.Mailflg_cancel__c = true;
|
cam.Mailflg_before15__c = true;
|
cam.Mailflg_before7__c = true;
|
cam.Mailflg_after3__c = true;
|
//cam.Is_LendProduct__c = '否';
|
cam.status = '公开中';
|
cam.HostName__c ='test';
|
cam.cooperatorCompany__c ='test';
|
insert cam;
|
//20200902 ljh add end
|
//备品借出申请
|
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.demo_purpose2__c = FixtureUtil.raDemo_purpose2MAP.get('xuehuizhanhui');
|
raObj.Campaign__c = cam.id;
|
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.Phone_number__c = '1234567890';
|
raObj.Loaner_medical_Staff__c = contact2.Id;
|
insert raObj;
|
|
OpdPlanWebService.changeTrade(raObj.Id);
|
OpdPlanWebService.changeCampaign(raObj.Id);
|
OpdPlanWebService.dataCheck(raObj.Id);
|
OpdPlanWebService.raesCountCheck(raObj.Id);
|
OpdPlanWebService.changeCampaign(cam.id);
|
OpdPlanWebService.test();
|
}
|
|
@isTest
|
static void testMethod2(){
|
//前置数据
|
StaticParameter.EscapeNFM001AgencyContractTrigger = true;
|
StaticParameter.EscapeNFM001Trigger = true;
|
// システム管理者
|
User user = new User(Test_staff__c = true);
|
user.LastName = '_サンブリッジ';
|
user.FirstName = 'う';
|
user.Alias = 'う';
|
user.Email = 'olympusTest03@sunbridge.com';
|
user.Username = 'olympusTest03@sunbridge.com';
|
user.CommunityNickname = 'う';
|
user.IsActive = true;
|
user.EmailEncodingKey = 'ISO-2022-JP';
|
user.TimeZoneSidKey = 'Asia/Tokyo';
|
user.LocaleSidKey = 'ja_JP';
|
user.LanguageLocaleKey = 'ja';
|
user.ProfileId = System.Label.ProfileId_SystemAdmin;
|
user.Job_Category__c = '销售推广';
|
user.Province__c = '上海市';
|
user.Dept__c='医疗华北营业本部';
|
user.Use_Start_Date__c = Date.today().addMonths(-6);
|
user.SalesManager__c = UserInfo.getUserId();
|
user.BuchangApprovalManagerSales__c = UserInfo.getUserId();
|
user.JingliApprovalManager__c = UserInfo.getUserId();
|
user.BuchangApprovalManager__c = UserInfo.getUserId();
|
user.ZongjianApprovalManager__c = UserInfo.getUserId();
|
|
// MIXED_DML_OPERATION, DML operation on setup object is not permitted Error
|
System.runAs(new User(Id = Userinfo.getUserId())) {
|
user.Foul_Points__c = Integer.valueOf(System.Label.EquipmentRentalBlackList_ChangeOwner_Threshold);
|
insert user;
|
List<RecordType> rectCo = [select Id from RecordType where IsActive = true and SobjectType = 'Account' and Name = '病院'];
|
if (rectCo.size() == 0) {
|
return ;
|
}
|
List<RecordType> rectSct = [select Id from RecordType where IsActive = true and SobjectType = 'Account' and Name = '戦略科室分類 呼吸科'];
|
if (rectSct.size() == 0) {
|
return;
|
}
|
List<RecordType> rectDpt = [select Id, Name from RecordType where IsActive = true and SobjectType = 'Account' and Name IN ('診療科 消化科', '診療科 呼吸科') order by Name desc];
|
if (rectDpt.size() == 0) {
|
return;
|
}
|
|
// 病院を作る
|
Account hospital = new Account();
|
hospital.recordtypeId = [Select Id FROM RecordType WHERE DeveloperName = 'HP'].id;
|
hospital.Name = 'test hospital';
|
insert hospital;
|
|
// 戦略科室を得る
|
List<Account> strategicDep = [SELECT ID, Name FROM Account WHERE parentId = :hospital.Id AND recordType.DeveloperName = 'Department_Class_GI'];
|
|
// 診療科を作る
|
Account dep = new Account();
|
dep.recordtypeId = [Select Id FROM RecordType WHERE DeveloperName = 'Department_GI'].id;
|
dep.Name = 'test dep';
|
dep.ParentId = strategicDep[0].Id;
|
dep.Department_Class__c = strategicDep[0].Id;
|
dep.Hospital__c = hospital.Id;
|
insert dep;
|
|
//联系人
|
Oly_TriggerHandler.bypass('PIHelper');
|
Oly_TriggerHandler.bypass('ContactTriggerHandler');
|
Contact core = new Contact(email = 'jplumber@salesforce.com',
|
firstname = 'Joe',
|
lastname = 'Plumber',
|
accountid = dep.id);
|
insert core;
|
|
// 製品を作る
|
Product2 productA = new Product2( Name = 'テスト商品',
|
Fixture_Model_No__c = 'n01');
|
insert productA;
|
|
// 納入機器を作成する
|
Asset asset = new Asset();
|
asset.Name = 'テスト機器';
|
asset.AccountId = dep.Id;
|
asset.Department_Class__c = strategicDep[0].Id;
|
asset.Hospital__c = hospital.Id;
|
asset.SerialNumber = 'testserial';
|
insert asset;
|
|
Fixture_Set__c fixtures1 = new Fixture_Set__c();
|
fixtures1.Name = 'set1';
|
fixtures1.Loaner_name__c = 'name1';
|
insert new Fixture_Set__c[] {fixtures1};
|
|
Fixture_Set_Detail__c fsd1 = new Fixture_Set_Detail__c();
|
fsd1.Product2__c = productA.Id;
|
fsd1.Fixture_Set__c = fixtures1.Id;
|
fsd1.Is_Body__c = true;
|
fsd1.Is_Optional__c = false;
|
fsd1.UniqueKey__c = fixtures1.Id + ':' + productA.Id;
|
fsd1.SortInt__c = 1;
|
|
insert new Fixture_Set_Detail__c[] {fsd1};
|
|
OPDPlan__c oPDPlan0 = new OPDPlan__c();
|
oPDPlan0.Status__c = '草案中';
|
oPDPlan0.OPDPlan_ImplementDate__c = Date.today().addDays(1);
|
oPDPlan0.NoOpp_Reason__c = 'HCP对应';
|
oPDPlan0.OPDType__c = '科室';
|
insert oPDPlan0;
|
|
Rental_Apply__c ra = new Rental_Apply__c();
|
ra.Name = 'test';
|
ra.applyUser__c = user.Id;
|
ra.Status__c = FixtureUtil.raStatusMap.get(FixtureUtil.RaStatus.Cao_An_Zhong.ordinal());
|
ra.Request_shipping_day__c = Date.today().addDays(3);
|
ra.Hope_Lonaer_date_Num__c = 1;
|
ra.Request_return_day__c = Date.today().addDays(8);
|
ra.Demo_purpose1__c = '其他';
|
ra.Demo_purpose2__c = '其他';
|
ra.Account__c = dep.Id;
|
ra.Strategic_dept__c = dep.Id;
|
ra.Hospital__c = hospital.Id;
|
ra.Loaner_medical_Staff__c = core.Id;
|
ra.Phone_number__c = '12222222222';
|
ra.Person_In_Charge__c = user.Id;
|
ra.OPDPlan__c = oPDPlan0.id;
|
ra.SupplementCreated__c = true;
|
insert ra;
|
|
Rental_Apply_Equipment_Set__c es1 = new Rental_Apply_Equipment_Set__c();
|
es1.Rental_Apply__c = ra.Id;
|
es1.Fixture_Set__c = fixtures1.Id;
|
es1.IndexFromUniqueKey__c = 1;
|
es1.UniqueKey__c = '1:' + fixtures1.Id + ':1';
|
|
insert new Rental_Apply_Equipment_Set__c[] {es1};
|
|
//创建借出配套明细
|
Rental_Apply_Equipment_Set_Detail__c esd1 = new Rental_Apply_Equipment_Set_Detail__c();
|
esd1.Rental_Apply__c = ra.Id;
|
esd1.Fixture_Set_Detail__c = fsd1.Id;
|
esd1.Rental_Num__c = 1;
|
esd1.Queue_Number__c = 0;
|
esd1.Rental_Apply_Equipment_Set__c = es1.Id;
|
esd1.Salesdepartment_before__c = '1.华北营业本部';
|
esd1.Internal_asset_location_before__c = '北京 备品中心';
|
esd1.Product_category_text__c = 'GI';
|
esd1.Equipment_Type_text__c = '产品试用';
|
esd1.IndexFromUniqueKey__c = 1;
|
esd1.UniqueKey__c = '1:' + es1.Id + ':' + fsd1.Id + ':1';
|
esd1.Is_Body__c = true;
|
insert esd1;
|
|
OpdPlanWebService.changeTrade(ra.Id);
|
OpdPlanWebService.changeCampaign(ra.Id);
|
OpdPlanWebService.dataCheck(ra.Id);
|
OpdPlanWebService.raesCountCheck(ra.Id);
|
}
|
|
|
}
|
|
|
|
}
|