@isTest
|
private class AssetRecordTypeUpdTriggerTest {
|
|
static Maintenance_Contract__c createMaintenanceContract( Account hospital, Account strategicDep, Account dep) {
|
Maintenance_Contract__c contract = new Maintenance_Contract__c();
|
contract.Name = 'tect contract';
|
contract.status__c ='契約';
|
contract.Maintenance_Contract_No__c = 'Kami_Contract_No';
|
contract.Contract_Conclusion_Date__c = Date.today();
|
contract.Hospital__c = hospital.Id;
|
contract.Department_Class__c = strategicDep.Id;
|
contract.Department__c = dep.Id;
|
contract.Contract_Start_Date__c = Date.today().addDays( -10); // 10日前
|
contract.Contract_End_Date__c = Date.today().addDays( 5); // 5日後
|
contract.SalesOfficeCode_selection__c = '北京RC';
|
insert contract;
|
return contract;
|
}
|
|
static Maintenance_Contract_Asset__c createMiddleTable( Asset asset, Maintenance_Contract__c contract) {
|
// 中間テーブルを設ける
|
Maintenance_Contract_Asset__c middleTable = new Maintenance_Contract_Asset__c();
|
middleTable.Asset__c = asset.Id;
|
middleTable.Maintenance_Contract__c = contract.id;
|
insert middleTable;
|
return middleTable;
|
}
|
|
static testMethod void testUpdate() {
|
|
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;
|
}
|
List<RecordType> rectAs = [select Id, Name from RecordType where IsActive = true and SobjectType = 'Asset' and Name = '备品'];
|
if (rectAs.size() == 0) {
|
return;
|
}
|
|
|
// insert hospital
|
Account company1 = new Account();
|
company1.RecordTypeId = rectCo[0].Id;
|
company1.Name = '病院テスト1';
|
List<Account> hps = new Account[]{company1};
|
insert hps;
|
|
List<Account> dc1s = [Select Id, Name, Department_Class_Label__c, Sys_Dept_Name_Change_Chk__c from Account where Parent.Id = :company1.Id order by Department_Class_Label__c];
|
|
Account depart1 = new Account();
|
depart1.RecordTypeId = rectDpt[0].Id;
|
depart1.Name = '*';
|
depart1.Department_Name__c = '診療科1';
|
depart1.ParentId = dc1s[0].Id;
|
depart1.Department_Class__c = dc1s[0].Id;
|
depart1.Hospital__c = company1.Id;
|
|
insert new Account[] {depart1};
|
|
List<Product2> prdList = new List<Product2>();
|
Product2 prd1 = new Product2();
|
prd1.ProductCode_Ext__c = 'HistoryPrd1';
|
prd1.ProductCode = 'HistoryPrd1';
|
prd1.Repair_Product_Code__c = 'HistoryPrd1_RP';
|
prd1.Name = 'HistoryPrd1';
|
prd1.Manual_Entry__c = false;
|
prd1.Extend_new_product_gurantee__c = true;
|
prd1.Extend_Gurantee_Start__c = Date.today().addDays(-60);
|
prd1.Extend_Gurantee_End__c = Date.today().addDays(60);
|
prdList.add(prd1);
|
insert prdList;
|
|
Asset ast = new Asset();
|
|
ast.RecordTypeId = rectAs[0].Id;
|
ast.SerialNumber = 'abcdefg';
|
ast.Name = '测试资产1';
|
ast.AccountId = depart1.Id;
|
ast.Department_Class__c = dc1s[0].Id;
|
ast.Hospital__c = company1.Id;
|
ast.Product2Id = prd1.Id;
|
ast.Guarantee_period_for_products__c = Date.today();
|
ast.InstallDate = Date.today();
|
ast.Manage_type__c = '个体管理';
|
ast.FirstApproveDate_old__c = Date.today().addDays(-30);
|
|
Oly_TriggerHandler.bypass('AssetHandler');
|
|
insert ast;
|
|
Asset ast1 = [select RecordTypeID__c from Asset where Id =: ast.Id];
|
|
String RecordTypeID = ast1.RecordTypeID__c;
|
|
System.assertEquals(RecordTypeID , ast.RecordTypeId);
|
|
RecordType rectOpp = [select id from RecordType where IsActive = true and SobjectType = 'Opportunity' and DeveloperName = 'Opportunity' ];
|
Opportunity opp = new Opportunity(
|
Name='testOpp1',
|
StageName='引合',
|
CloseDate=Date.today(),
|
AccountId=depart1.Id,
|
Sales_Root__c = 'OCM直接販売',
|
Competitor__c ='A',
|
Click_Close_Date__c = null,
|
RecordType = rectOpp
|
);
|
insert opp;
|
//注残
|
Statu_Achievements__c Sac = new Statu_Achievements__c(
|
name = 'zhucan_one',
|
Opportunity__c = opp.id,
|
DeliveryDate__c = Date.today(),
|
ContractNO__c = 'ContractNO1',
|
ContractAmount__c = 100
|
);
|
insert Sac;
|
|
ast.Order_No__c = 'ContractNO1';
|
update ast;
|
}
|
|
static testMethod void testDelete () {
|
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;
|
}
|
List<RecordType> rectAs = [select Id, Name from RecordType where IsActive = true and SobjectType = 'Asset' and Name = '备品'];
|
if (rectAs.size() == 0) {
|
return;
|
}
|
|
Account company1 = new Account();
|
company1.RecordTypeId = rectCo[0].Id;
|
company1.Name = '病院テスト1';
|
List<Account> hps = new Account[]{company1};
|
insert hps;
|
|
List<Account> dc1s = [Select Id, Name, Department_Class_Label__c, Sys_Dept_Name_Change_Chk__c from Account where Parent.Id = :company1.Id order by Department_Class_Label__c];
|
|
Account depart1 = new Account();
|
depart1.RecordTypeId = rectDpt[0].Id;
|
depart1.Name = '*';
|
depart1.Department_Name__c = '診療科1';
|
depart1.ParentId = dc1s[0].Id;
|
depart1.Department_Class__c = dc1s[0].Id;
|
depart1.Hospital__c = company1.Id;
|
insert depart1;
|
|
Product2 prd1 = new Product2();
|
prd1.ProductCode_Ext__c = 'HistoryPrd1';
|
prd1.ProductCode = 'HistoryPrd1';
|
prd1.Repair_Product_Code__c = 'HistoryPrd1_RP';
|
prd1.Name = 'HistoryPrd1';
|
prd1.Manual_Entry__c = false;
|
prd1.Extend_new_product_gurantee__c = true;
|
prd1.Extend_Gurantee_Start__c = Date.today().addDays(-60);
|
prd1.Extend_Gurantee_End__c = Date.today().addDays(60);
|
insert prd1;
|
|
Oly_TriggerHandler.bypass('AssetHandler');
|
|
Asset ast = new Asset();
|
ast.RecordTypeId = rectAs[0].Id;
|
ast.SerialNumber = 'abcdefg';
|
ast.Name = '测试资产1';
|
ast.AccountId = depart1.Id;
|
ast.Department_Class__c = dc1s[0].Id;
|
ast.Hospital__c = company1.Id;
|
ast.Product2Id = prd1.Id;
|
ast.Guarantee_period_for_products__c = Date.today();
|
ast.InstallDate = Date.today();
|
ast.Manage_type__c = '个体管理';
|
ast.FirstApproveDate_old__c = Date.today().addDays(-30);
|
insert ast;
|
|
Maintenance_Contract__c mContract = createMaintenanceContract(company1, dc1s[0], depart1);
|
Maintenance_Contract_Asset__c mca = createMiddleTable( ast, mContract);
|
|
Repair__c repair = new Repair__c();
|
repair.Account__c = depart1.Id;
|
repair.Department_Class__c = dc1s[0].Id;
|
repair.Hospital__c = company1.Id;
|
repair.Delivered_Product__c = ast.Id;
|
insert repair;
|
|
QIS_Report__c qis = new QIS_Report__c();
|
qis.nonyushohin__c = ast.Id;
|
qis.Hospital__c = company1.Id;
|
qis.RC__c = UserInfo.getUserId();
|
qis.Department_Class__c = dc1s[0].Id;
|
qis.Hospital_Department__c = depart1.Id;
|
qis.Damage_For_Doc_Or_Pat__c = '有';
|
qis.Relation_With_The_Problem__c = '有可能';
|
qis.Report_For_Goz__c = '不知道';
|
insert qis;
|
try {
|
delete ast;
|
} catch (Exception e) {
|
|
}
|
}
|
}
|