/**
|
* wangweipeng 2021/07/28
|
* RepairBeforeInsertHandler 的测试类
|
* 新增修理时,默认查找到对应的直返收货地址
|
* 根据修理上选中医院的 OCM_man_province_txt__c 值,去匹配直返地址的省或市
|
*/
|
@isTest
|
private class RepairBeforeInsertHandlerTest {
|
Static String hospitalId;
|
Static String strategicDepId;
|
Static String depId;
|
static testMethod void testMethod1() {
|
// 省
|
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;
|
hospitalId = hospital.Id;
|
StaticParameter.EscapeAccountTrigger = true;
|
//战略科室
|
Account[] strategicDep = [SELECT ID, Name FROM Account WHERE parentId = :hospital.Id AND recordType.DeveloperName = 'Department_Class_OTH'];
|
strategicDepId = strategicDep[0].Id;
|
//诊疗科
|
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;
|
depId = dep.Id;
|
|
Contact contact2 = new Contact();
|
contact2.AccountId = dep.Id;
|
contact2.FirstName = '赵';
|
contact2.LastName = '静';
|
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';
|
asset1.Rental_Count__c = 0;
|
insert new Asset[] {asset1};
|
|
|
Address__c ascc = new Address__c();
|
ascc.Address_Classification__c = '办事处';
|
ascc.Customer__c = dep.Id;
|
ascc.Contacts__c = contact2.id;
|
ascc.Telephone__c = '0591-88011136';
|
ascc.Province__c = al.id;
|
ascc.City__c = al2.id;
|
ascc.Detailed_Address__c = '福建省福州市鼓楼区五四路137号信和广场1201单元';
|
insert ascc;
|
|
Repair__c repairObj1 = new Repair__c();
|
repairObj1.Delivered_Product__c = asset1.Id;
|
repairObj1.Hospital__c = hospitalId;
|
repairObj1.Department_Class__c = strategicDepId;
|
repairObj1.Account__c = depId;
|
repairObj1.SalesOfficeCode_selection__c = '北京石景山';
|
repairObj1.On_site_repair__c = 'RC修理';
|
repairObj1.Failure_Occurrence_Date__c = Date.today();
|
insert new Repair__c[]{repairObj1};
|
|
|
al.Name = '山东省';
|
update al;
|
|
al2.Level1_Name__c = '山东省';
|
al2.Name = '潍坊市';
|
update al2;
|
|
hospital.OCM_man_province_txt__c = '山东';
|
update hospital;
|
|
Repair__c repairObj2 = new Repair__c();
|
repairObj2.Delivered_Product__c = asset1.Id;
|
repairObj2.Hospital__c = hospitalId;
|
repairObj2.Department_Class__c = strategicDepId;
|
repairObj2.Account__c = depId;
|
repairObj2.SalesOfficeCode_selection__c = '北京石景山';
|
repairObj2.On_site_repair__c = 'RC修理';
|
repairObj2.Failure_Occurrence_Date__c = Date.today();
|
insert new Repair__c[]{repairObj2};
|
}
|
}
|