@isTest private class RepairTriggerTest { private static Id pricebookId = ControllerUtil.getStandardPricebook().Id; static testMethod void test01() { // 病院を作る Account hospital = new Account(); hospital.recordtypeId = [Select Id FROM RecordType WHERE IsActive = true and SobjectType = 'Account' and DeveloperName = 'HP'].id; hospital.Name = 'test hospital'; insert hospital; // 戦略科室を得る List 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 IsActive = true and SobjectType = 'Account' and 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; dep.State_Text__c = '海南省'; insert dep; // 製品を作る Product2 productA = new Product2( Name='テスト商品'); insert productA; // 価格表エントリを作成する PricebookEntry entry = new PricebookEntry( Pricebook2Id=pricebookId, Product2Id=productA.Id); entry.UnitPrice = 0; entry.IsActive = true; entry.UseStandardPrice = false; entry.CurrencyIsoCode = 'CNY'; entry.Product2Id = productA.Id; insert entry; // 納入機器を作成する 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; Asset asset2 = new Asset(); asset2.Name = 'テスト機器1'; asset2.AccountId = dep.Id; asset2.Department_Class__c = strategicDep[0].Id; asset2.Hospital__c = hospital.Id; asset2.SerialNumber = 'testserial1'; insert asset2; // 维修合同を作成する Maintenance_Contract__c contract = new Maintenance_Contract__c(); contract.Name = 'tect contract'; contract.Hospital__c = hospital.Id; contract.Department_Class__c = strategicDep[0].Id; contract.Contract_Start_Date__c = Date.today(); contract.Status__c = '契約'; contract.Contract_End_Date__c = Date.today().addMonths(12); contract.Department__c = dep.Id; contract.RecordTypeId = Schema.SObjectType.Maintenance_Contract__c.getRecordTypeInfosByDeveloperName().get('VM_Contract').getRecordTypeId(); insert contract; Maintenance_Contract__c contract2 = new Maintenance_Contract__c(); contract2.Name = 'tect contract2'; contract2.Hospital__c = hospital.Id; contract2.Department_Class__c = strategicDep[0].Id; contract2.Department__c = dep.Id; contract2.Status__c = '契約'; contract2.Maintenance_Contract_No__c = 'BJ-RS-SC0076290111'; contract2.Contract_Start_Date__c = Date.today(); contract2.Contract_End_Date__c = Date.today().addMonths(12); contract2.URF_Contract__c = true; contract2.agree_Upper_limit__c=true; contract2.RecordTypeId = Schema.SObjectType.Maintenance_Contract__c.getRecordTypeInfosByDeveloperName().get('NewMaintenance_Contract').getRecordTypeId(); insert contract2; MaintanceContractPack__c mcp = new MaintanceContractPack__c(); Maintenance_Contract__c contract23 = new Maintenance_Contract__c(); contract23.Name = 'tect contract2'; contract23.Hospital__c = hospital.Id; contract23.Department_Class__c = strategicDep[0].Id; contract23.Department__c = dep.Id; contract23.Status__c = '契約'; contract23.Maintenance_Contract_No__c = 'BJ-RS-SC007629011111'; contract23.Contract_Start_Date__c = Date.today(); contract23.Contract_End_Date__c = Date.today().addMonths(12); contract23.agree_Upper_limit__c=true; contract23.Limit_Price__c=true; contract23.MaintanceContractPack__c = mcp.id; contract23.RecordTypeId = Schema.SObjectType.Maintenance_Contract__c.getRecordTypeInfosByDeveloperName().get('NewMaintenance_Contract').getRecordTypeId(); insert contract23; Maintenance_Contract__c contract3 = new Maintenance_Contract__c(); contract3.Name = 'tect contract2'; contract3.Hospital__c = hospital.Id; contract3.Department_Class__c = strategicDep[0].Id; contract3.Department__c = dep.Id; contract3.Status__c = '契約'; contract3.Maintenance_Contract_No__c = 'BJ-RS-SC0076290111111'; contract3.Contract_Start_Date__c = Date.today(); contract3.Contract_End_Date__c = Date.today().addMonths(12); contract3.agree_Upper_limit__c=true; contract3.Limit_Price__c=true; contract3.RecordTypeId = Schema.SObjectType.Maintenance_Contract__c.getRecordTypeInfosByDeveloperName().get('NewMaintenance_Contract').getRecordTypeId(); insert contract3; Maintenance_Contract_Asset__c middleTable = new Maintenance_Contract_Asset__c(); middleTable.Asset__c = asset.Id; middleTable.Maintenance_Contract__c = contract.id; middleTable.endDateGurantee_Text__c = Date.today().addDays(1); insert middleTable; Maintenance_Contract_Asset__c middleTable2 = new Maintenance_Contract_Asset__c(); middleTable2.Asset__c = asset.Id; middleTable2.Maintenance_Contract__c = contract2.id; middleTable2.endDateGurantee_Text__c = Date.today().addDays(1); insert middleTable2; // 修理を作成する Repair__c repair = new Repair__c(); repair.Account__c = dep.Id; repair.Department_Class__c = strategicDep[0].Id; repair.Hospital__c = hospital.Id; repair.Delivered_Product__c = asset.Id; repair.NewProductGuarante_Txt__c = '2: 服务多年保修'; repair.Service_contract_judege_day__c = Date.today().addMonths(1); repair.Aware_date__c = Date.today(); insert repair; // Repair__c repair2 = new Repair__c(); // repair2.Account__c = dep.Id; // repair2.Department_Class__c = strategicDep[0].Id; // repair2.Hospital__c = hospital.Id; // repair2.Delivered_Product__c = asset.Id; // insert repair2; // 未決 } static testMethod void test02() { // 病院を作る Account hospital = new Account(); hospital.recordtypeId = [Select Id FROM RecordType WHERE IsActive = true and SobjectType = 'Account' and DeveloperName = 'HP'].id; hospital.Name = 'test hospital'; insert hospital; // 戦略科室を得る List 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 IsActive = true and SobjectType = 'Account' and 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; dep.State_Text__c = '海南省'; insert dep; // 製品を作る Product2 productA = new Product2( Name='テスト商品'); insert productA; // 価格表エントリを作成する PricebookEntry entry = new PricebookEntry( Pricebook2Id=pricebookId, Product2Id=productA.Id); entry.UnitPrice = 0; entry.IsActive = true; entry.UseStandardPrice = false; entry.CurrencyIsoCode = 'CNY'; entry.Product2Id = productA.Id; insert entry; // 納入機器を作成する 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; Asset asset2 = new Asset(); asset2.Name = 'テスト機器1'; asset2.AccountId = dep.Id; asset2.Department_Class__c = strategicDep[0].Id; asset2.Hospital__c = hospital.Id; asset2.SerialNumber = 'testserial1'; insert asset2; MaintanceContractPack__c mcp = new MaintanceContractPack__c(); Maintenance_Contract__c contract23 = new Maintenance_Contract__c(); contract23.Name = 'tect contract2'; contract23.Hospital__c = hospital.Id; contract23.Department_Class__c = strategicDep[0].Id; contract23.Department__c = dep.Id; contract23.Status__c = '契約'; contract23.Maintenance_Contract_No__c = 'BJ-RS-SC007629011111'; contract23.Contract_Start_Date__c = Date.today(); contract23.Contract_End_Date__c = Date.today().addMonths(12); contract23.agree_Upper_limit__c=true; contract23.Limit_Price__c=true; contract23.MaintanceContractPack__c = mcp.id; contract23.RecordTypeId = Schema.SObjectType.Maintenance_Contract__c.getRecordTypeInfosByDeveloperName().get('NewMaintenance_Contract').getRecordTypeId(); insert contract23; Maintenance_Contract__c contract3 = new Maintenance_Contract__c(); contract3.Name = 'tect contract2'; contract3.Hospital__c = hospital.Id; contract3.Department_Class__c = strategicDep[0].Id; contract3.Department__c = dep.Id; contract3.Status__c = '契約'; contract3.Maintenance_Contract_No__c = 'BJ-RS-SC0076290111111'; contract3.Contract_Start_Date__c = Date.today(); contract3.Contract_End_Date__c = Date.today().addMonths(12); contract3.agree_Upper_limit__c=true; contract3.Limit_Price__c=true; contract3.RecordTypeId = Schema.SObjectType.Maintenance_Contract__c.getRecordTypeInfosByDeveloperName().get('NewMaintenance_Contract').getRecordTypeId(); insert contract3; Maintenance_Contract_Asset__c middleTable3 = new Maintenance_Contract_Asset__c(); middleTable3.Asset__c = asset.Id; middleTable3.Maintenance_Contract__c = contract23.id; middleTable3.endDateGurantee_Text__c = Date.today().addDays(1); insert middleTable3; Maintenance_Contract_Asset__c middleTable4 = new Maintenance_Contract_Asset__c(); middleTable4.Asset__c = asset.Id; middleTable4.Maintenance_Contract__c = contract3.id; middleTable4.endDateGurantee_Text__c = Date.today().addDays(1); insert middleTable4; // 修理を作成する Repair__c repair = new Repair__c(); repair.Account__c = dep.Id; repair.Department_Class__c = strategicDep[0].Id; repair.Hospital__c = hospital.Id; repair.Delivered_Product__c = asset.Id; repair.NewProductGuarante_Txt__c = '2: 服务多年保修'; repair.Service_contract_judege_day__c = Date.today().addMonths(1); repair.Aware_date__c = Date.today(); insert repair; } static testMethod void test03() { // 病院を作る Account hospital = new Account(); hospital.recordtypeId = [Select Id FROM RecordType WHERE IsActive = true and SobjectType = 'Account' and DeveloperName = 'HP'].id; hospital.Name = 'test hospital'; insert hospital; // 戦略科室を得る List 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 IsActive = true and SobjectType = 'Account' and 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; dep.State_Text__c = '海南省'; insert dep; // 製品を作る Product2 productA = new Product2( Name='テスト商品'); insert productA; // 価格表エントリを作成する PricebookEntry entry = new PricebookEntry( Pricebook2Id=pricebookId, Product2Id=productA.Id); entry.UnitPrice = 0; entry.IsActive = true; entry.UseStandardPrice = false; entry.CurrencyIsoCode = 'CNY'; entry.Product2Id = productA.Id; insert entry; // 納入機器を作成する 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; Asset asset2 = new Asset(); asset2.Name = 'テスト機器1'; asset2.AccountId = dep.Id; asset2.Department_Class__c = strategicDep[0].Id; asset2.Hospital__c = hospital.Id; asset2.SerialNumber = 'testserial1'; insert asset2; // 维修合同を作成する Maintenance_Contract__c contract = new Maintenance_Contract__c(); contract.Name = 'tect contract'; contract.Hospital__c = hospital.Id; contract.Department_Class__c = strategicDep[0].Id; contract.Contract_Start_Date__c = Date.today(); contract.Status__c = '契約'; contract.Contract_End_Date__c = Date.today().addMonths(12); contract.Department__c = dep.Id; contract.RecordTypeId = Schema.SObjectType.Maintenance_Contract__c.getRecordTypeInfosByDeveloperName().get('VM_Contract').getRecordTypeId(); insert contract; Maintenance_Contract__c contract2 = new Maintenance_Contract__c(); contract2.Name = 'tect contract2'; contract2.Hospital__c = hospital.Id; contract2.Department_Class__c = strategicDep[0].Id; contract2.Department__c = dep.Id; contract2.Status__c = '契約'; contract2.Maintenance_Contract_No__c = 'BJ-RS-SC0076290111'; contract2.Contract_Start_Date__c = Date.today(); contract2.Contract_End_Date__c = Date.today().addMonths(12); contract2.URF_Contract__c = true; contract2.agree_Upper_limit__c=true; contract2.RecordTypeId = Schema.SObjectType.Maintenance_Contract__c.getRecordTypeInfosByDeveloperName().get('NewMaintenance_Contract').getRecordTypeId(); insert contract2; Maintenance_Contract_Asset__c middleTable = new Maintenance_Contract_Asset__c(); middleTable.Asset__c = asset.Id; middleTable.Maintenance_Contract__c = contract.id; middleTable.endDateGurantee_Text__c = Date.today().addDays(1); insert middleTable; Maintenance_Contract_Asset__c middleTable2 = new Maintenance_Contract_Asset__c(); middleTable2.Asset__c = asset.Id; middleTable2.Maintenance_Contract__c = contract2.id; middleTable2.endDateGurantee_Text__c = Date.today().addDays(1); insert middleTable2; RepairSubOrder__c subOrder = new RepairSubOrder__c(); subOrder.AttachmentDownload__c = true; subOrder.AttachmentLink__c = 'https://albsylfw.s3.cn-northwest-1.amazonaws.com.cn/20211220/14/11/30/lessthan12/5e8cb69e-f935-48f5-825e-b8344d60f6d4.zip'; subOrder.AttachmentName__c = '测试附件下载'; subOrder.Status__c = '待处理'; insert subOrder; // 修理を作成する Repair__c repair = new Repair__c(); repair.Account__c = dep.Id; repair.Department_Class__c = strategicDep[0].Id; repair.Hospital__c = hospital.Id; repair.Delivered_Product__c = asset.Id; repair.AwaitToSendAWS__c = false; repair.RepairSubOrder__c = subOrder.id; repair.engineerSendDate__c = Date.today(); repair.DescriptionName__c = 'xxxxxxxxxxxxx'; insert repair; } static testMethod void test04() { // 病院を作る Account hospital = new Account(); hospital.recordtypeId = [Select Id FROM RecordType WHERE IsActive = true and SobjectType = 'Account' and DeveloperName = 'HP'].id; hospital.Name = 'test hospital'; insert hospital; // 戦略科室を得る List 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 IsActive = true and SobjectType = 'Account' and 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; dep.State_Text__c = '海南省'; insert dep; // 製品を作る Product2 productA = new Product2( Name='テスト商品'); insert productA; // 価格表エントリを作成する PricebookEntry entry = new PricebookEntry( Pricebook2Id=pricebookId, Product2Id=productA.Id); entry.UnitPrice = 0; entry.IsActive = true; entry.UseStandardPrice = false; entry.CurrencyIsoCode = 'CNY'; entry.Product2Id = productA.Id; insert entry; // 納入機器を作成する 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; Asset asset2 = new Asset(); asset2.Name = 'テスト機器1'; asset2.AccountId = dep.Id; asset2.Department_Class__c = strategicDep[0].Id; asset2.Hospital__c = hospital.Id; asset2.SerialNumber = 'testserial1'; insert asset2; // 维修合同を作成する Maintenance_Contract__c contract = new Maintenance_Contract__c(); contract.Name = 'tect contract'; contract.Hospital__c = hospital.Id; contract.Department_Class__c = strategicDep[0].Id; contract.Contract_Start_Date__c = Date.today(); contract.Status__c = '契約'; contract.Contract_End_Date__c = Date.today().addMonths(12); contract.Department__c = dep.Id; contract.RecordTypeId = Schema.SObjectType.Maintenance_Contract__c.getRecordTypeInfosByDeveloperName().get('VM_Contract').getRecordTypeId(); insert contract; Maintenance_Contract__c contract2 = new Maintenance_Contract__c(); contract2.Name = 'tect contract2'; contract2.Hospital__c = hospital.Id; contract2.Department_Class__c = strategicDep[0].Id; contract2.Department__c = dep.Id; contract2.Status__c = '契約'; contract2.Maintenance_Contract_No__c = 'BJ-RS-SC0076290111'; contract2.Contract_Start_Date__c = Date.today(); contract2.Contract_End_Date__c = Date.today().addMonths(12); contract2.URF_Contract__c = true; contract2.agree_Upper_limit__c=true; contract2.RecordTypeId = Schema.SObjectType.Maintenance_Contract__c.getRecordTypeInfosByDeveloperName().get('NewMaintenance_Contract').getRecordTypeId(); insert contract2; Maintenance_Contract_Asset__c middleTable = new Maintenance_Contract_Asset__c(); middleTable.Asset__c = asset.Id; middleTable.Maintenance_Contract__c = contract.id; middleTable.endDateGurantee_Text__c = Date.today().addDays(1); insert middleTable; Maintenance_Contract_Asset__c middleTable2 = new Maintenance_Contract_Asset__c(); middleTable2.Asset__c = asset.Id; middleTable2.Maintenance_Contract__c = contract2.id; middleTable2.endDateGurantee_Text__c = Date.today().addDays(1); insert middleTable2; RepairSubOrder__c subOrder = new RepairSubOrder__c(); subOrder.AttachmentDownload__c = true; subOrder.AttachmentLink__c = 'https://albsylfw.s3.cn-northwest-1.amazonaws.com.cn/20211220/14/11/30/lessthan12/5e8cb69e-f935-48f5-825e-b8344d60f6d4.zip'; subOrder.AttachmentName__c = '测试附件下载'; subOrder.Status__c = '待处理'; insert subOrder; // 修理を作成する Repair__c repair = new Repair__c(); repair.Account__c = dep.Id; repair.Department_Class__c = strategicDep[0].Id; repair.Hospital__c = hospital.Id; repair.Delivered_Product__c = asset.Id; repair.AwaitToSendAWS__c = false; repair.RepairSubOrder__c = subOrder.id; repair.engineerSendDate__c = Date.today(); repair.DescriptionName__c = 'xxxxxxxxxxxxx'; repair.Exc_work_location__c = false; insert repair; } }