@isTest private class OpportunityTriggerTest { @isTest static void test_method_one() { 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.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(); List rectCo = [select Id from RecordType where IsActive = true and SobjectType = 'Account' and Name = '病院']; if (rectCo.size() == 0) { return; } List rectSct = [select Id from RecordType where IsActive = true and SobjectType = 'Account' and Name = '戦略科室分類 呼吸科']; if (rectSct.size() == 0) { return; } List rectDpt = [select Id from RecordType where IsActive = true and SobjectType = 'Account' and Name = '診療科 消化科']; if (rectDpt.size() == 0) { return; } StaticParameter.EscapeOpportunityBefUpdTrigger = true; StaticParameter.EscapeSyncOpportunityTrigger = true; StaticParameter.EscapeNFM007Trigger = true; StaticParameter.EscapeOpportunityHpDeptUpdTrigger = true; StaticParameter.EscapeSyncOpportunityTrigger = true; System.runAs(new User(Id = Userinfo.getUserId())) { insert user; // テストデータ Account company = new Account(); company.RecordTypeId = rectCo[0].Id; company.Name = 'NFM007TestCompany'; upsert company; Account section = new Account(); section.RecordTypeId = rectSct[0].Id; section.Name = '*'; section.Department_Class_Label__c = '消化科'; section.ParentId = company.Id; section.Hospital_Department_Class__c = company.Id; upsert section; Account depart = new Account(); depart.RecordTypeId = rectDpt[0].Id; depart.Name = '*'; depart.Department_Name__c = 'NFM007TestDepart'; depart.ParentId = section.Id; depart.Department_Class__c = section.Id; depart.Hospital__c = company.Id; upsert depart; Opportunity opp = new Opportunity(); opp.AccountId = depart.Id; opp.Department_Class__c = section.Id; opp.Hospital__c = company.Id; opp.SAP_Send_OK__c = false; opp.Name = 'GZ-SP-NFM007_1'; opp.Trade__c = '内貿'; opp.StageName = '引合'; opp.CloseDate = date.newinstance(2022, 11, 30); opp.Stock_apply_status__c = '申请中'; insert opp; System.Test.startTest(); Opportunity_File__c ofile = new Opportunity_File__c(); ofile.Name = 'test file'; ofile.Opportunity__c = opp.Id; insert ofile; Attachment att = new Attachment( Name = 'ORDER-123456.pdf', parentId = ofile.Id, Body = EncodingUtil.base64Decode('test') ); insert att; Opportunity_File__c ofile2 = new Opportunity_File__c(); ofile2.Name = 'test file2'; ofile2.Opportunity__c = opp.Id; insert ofile2; Attachment att2 = new Attachment( Name = 'ORDER-123456.pdf', parentId = ofile2.Id, Body = EncodingUtil.base64Decode('test') ); insert att2; delete ofile2; delete att; opp.Stock_apply_status__c = '批准'; update opp; List checkList = [select id, Is_Locked__c from Opportunity_File__c where id = :ofile.Id]; System.assertEquals(true, checkList[0].Is_Locked__c); Attachment att3 = new Attachment( Name = 'ORDER-123456.pdf', parentId = company.Id, Body = EncodingUtil.base64Decode('test') ); insert att3; //delete att3; Rental_Apply__c rentalApply = new Rental_Apply__c(); // '引当完了' -> 已批准 rentalApply.Status__c = FixtureUtil.raStatusMap.get(FixtureUtil.RaStatus.Yi_Pi_Zhun.ordinal()); // rentalApply.applyUser__c = UserInfo.getUserId(); rentalApply.applyUser__c = user.Id; rentalApply.direct_send__c = '直送'; rentalApply.direct_shippment_address__c = 'test'; rentalApply.Request_return_day__c = Date.today() + 30; rentalApply.demo_purpose1__c = '其他'; rentalApply.demo_purpose2__c = '其他'; /* 这个用户没权限 用它赋值会造成报错 暂时注释掉 精琢技术 wql 2021/05/26 */ //rentalApply.Person_In_Charge__c = user.Id; rentalApply.Hope_Lonaer_date_Num__c = 6; insert rentalApply; // Attachment att4 = new Attachment( // Name = 'ORDER-123456.pdf', // parentId = rentalApply.Id, // Body = EncodingUtil.base64Decode('test') // ); // insert att4; // delete att4; // Consumable_order__c co = new Consumable_order__c(); // insert co; // Attachment att5 = new Attachment( // Name = 'ORDER-123456.pdf', // parentId = co.Id, // Body = EncodingUtil.base64Decode('test') // ); // insert att5; //delete att5; System.Test.stopTest(); // OpportunityTrigger.intI(); } } @isTest static void test_Change_Quote() { List rectCo = [select Id from RecordType where IsActive = true and SobjectType = 'Account' and Name = '病院']; if (rectCo.size() == 0) { return; } List rectSct = [select Id from RecordType where IsActive = true and SobjectType = 'Account' and Name = '戦略科室分類 呼吸科']; if (rectSct.size() == 0) { return; } List rectDpt = [select Id from RecordType where IsActive = true and SobjectType = 'Account' and Name = '診療科 消化科']; if (rectDpt.size() == 0) { return; } // テストデータ Account company = new Account(); company.RecordTypeId = rectCo[0].Id; company.Name = 'NFM007TestCompany'; upsert company; Account section = new Account(); section.RecordTypeId = rectSct[0].Id; section.Name = '*'; section.Department_Class_Label__c = '消化科'; section.ParentId = company.Id; section.Hospital_Department_Class__c = company.Id; upsert section; Account depart = new Account(); depart.RecordTypeId = rectDpt[0].Id; depart.Name = '*'; depart.Department_Name__c = 'NFM007TestDepart'; depart.ParentId = section.Id; depart.Department_Class__c = section.Id; depart.Hospital__c = company.Id; upsert depart; //販売店 RecordType recHanbaiten = [select id from RecordType where IsActive = true and SobjectType= 'Account' and Name='販売店' limit 1]; Account sellerA = new Account(Name = '販売店A'); sellerA.RecordTypeId = recHanbaiten.id; sellerA.Delete_Flag__c = false; insert sellerA; Account sellerB = new Account(Name = '販売店B'); sellerB.RecordTypeId = recHanbaiten.id; sellerB.Delete_Flag__c = false; insert sellerB; Oly_TriggerHandler.bypass('PowerBIBaseHandler'); StaticParameter.EscapeSyncOpportunityTrigger = true; StaticParameter.EscapeNFM007Trigger = true; StaticParameter.EscapeOpportunityHpDeptUpdTrigger = true; Oly_TriggerHandler.bypass('AgencyOppUpdHandler'); StaticParameter.EscapeSyncOpportunityTrigger = true; System.Test.startTest(); Opportunity opp = new Opportunity(); opp.AccountId = depart.Id; opp.Department_Class__c = section.Id; opp.Hospital__c = company.Id; opp.SAP_Send_OK__c = false; opp.Name = 'GZ-SP-NFM007_1'; opp.Trade__c = '内貿'; opp.StageName = '引合'; opp.CloseDate = date.newinstance(2022, 11, 30); opp.Stock_apply_status__c = '申请中'; insert opp; Quote q = new Quote( Name = 'quote', OpportunityId = opp.Id, Agency1__c = sellerA.Id, Quote_No__c = 'Quote_No_1' ); insert q; opp.Agency1__c = sellerA.Id; opp.Estimation_No__c = q.Quote_No__c; update opp; opp.Agency1__c = sellerB.Id; update opp; System.Test.stopTest(); } //2021-05-13 mzy QLM @isTest static void test_Change_Opp() { List rectCo = [select Id from RecordType where IsActive = true and SobjectType = 'Account' and Name = '病院']; if (rectCo.size() == 0) { return; } List rectSct = [select Id from RecordType where IsActive = true and SobjectType = 'Account' and Name = '戦略科室分類 呼吸科']; if (rectSct.size() == 0) { return; } List rectDpt = [select Id from RecordType where IsActive = true and SobjectType = 'Account' and Name = '診療科 消化科']; if (rectDpt.size() == 0) { return; } // テストデータ Account company = new Account(); company.RecordTypeId = rectCo[0].Id; company.Name = 'NFM007TestCompany'; upsert company; Account section = new Account(); section.RecordTypeId = rectSct[0].Id; section.Name = '*'; section.Department_Class_Label__c = '消化科'; section.ParentId = company.Id; section.Hospital_Department_Class__c = company.Id; upsert section; Account depart = new Account(); depart.RecordTypeId = rectDpt[0].Id; depart.Name = '*'; depart.Department_Name__c = 'NFM007TestDepart'; depart.ParentId = section.Id; depart.Department_Class__c = section.Id; depart.Hospital__c = company.Id; upsert depart; //販売店 RecordType recHanbaiten = [select id from RecordType where IsActive = true and SobjectType= 'Account' and Name='販売店' limit 1]; Account sellerA = new Account(Name = '販売店A'); sellerA.RecordTypeId = recHanbaiten.id; sellerA.Delete_Flag__c = false; insert sellerA; Account sellerB = new Account(Name = '販売店B'); sellerB.RecordTypeId = recHanbaiten.id; sellerB.Delete_Flag__c = false; insert sellerB; Oly_TriggerHandler.bypass('PowerBIBaseHandler'); StaticParameter.EscapeSyncOpportunityTrigger = true; StaticParameter.EscapeNFM007Trigger = true; StaticParameter.EscapeOpportunityHpDeptUpdTrigger = true; Oly_TriggerHandler.bypass('AgencyOppUpdHandler'); StaticParameter.EscapeSyncOpportunityTrigger = true; System.Test.startTest(); //win Opportunity opp1 = new Opportunity( Name = 'test opp1', StageName = '完了', CurrencyIsoCode = 'USD', CloseDate = Date.today(), AccountId = depart.Id, Closing_Bid_Date__c = Date.today().addDays(-5), Hospital__c = company.Id, Competitor__c = 'A' ); insert opp1; opp1.SAP_Send_OK__c = true; opp1.Authorized_DB_No__c = '123'; opp1.Contract_DB_SalesDept_complite_day__c = Date.today(); opp1.NotesApprovedNo__c = '123'; update opp1; LastbuyProduct__c wqe = new LastbuyProduct__c(); wqe.InquiryCode__c=opp1.Id; wqe.LastbuyQuantity__c=1; wqe.ActualQuantity__c=1; insert wqe; opp1.SAP_Send_OK__c = false; opp1.Reason_Cancel_WIN__c = '1.终止合同'; update opp1; //lt 注释掉 te1 // //招标项目 // Tender_information__c te1 = new Tender_information__c(); // te1.Name = 'TestZhaoBiao'; // insert te1; // opp1.Bidding_Project_Name_Bid__c = te1.Id; // update opp1; //失单 opp1.StageName = '敗戦'; update opp1; //新建询价时,赋值招投标项目,打上标识 // Opportunity opp2 = new Opportunity( // Name = 'test opp1', // StageName = '引合', // CurrencyIsoCode = 'USD', // CloseDate = Date.today(), // AccountId = depart.Id, // Closing_Bid_Date__c = Date.today().addDays(-5), // Hospital__c = company.Id // // ,Competitor__c = 'A' // //,Bidding_Project_Name_Bid__c = te1.Id //lt 20220316 // ); // insert opp2; System.Test.stopTest(); } //2021-05-13 mzy QLM //LastBuy 预留产品 lt 20220315 start @isTest static void TestMethod1() { Opportunity opp = new Opportunity(); opp.Name = 'GZ-SP-NFM007_1'; opp.StageName = '引合'; opp.CloseDate = date.newinstance(2022, 11, 30); insert opp; Product2 pro = new Product2(); pro.Name = 'Testname0316'; pro.LastbuyProductFLG__c = false; insert pro; LastbuyProduct__c lbp = new LastbuyProduct__c(); lbp.Name = 'Test0215'; lbp.ProductName__c = pro.Id; lbp.InquiryCode__c = opp.Id; lbp.effectiveFLG__c = true; insert lbp; opp.StageName = '敗戦'; update opp; } //LastBuy 预留产品 lt 20220315 end //add start 20220623 @isTest static void test_createTaskByOppConfirmationofAward() { 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.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(); List rectCo = [select Id from RecordType where IsActive = true and SobjectType = 'Account' and Name = '病院']; if (rectCo.size() == 0) { return; } List rectSct = [select Id from RecordType where IsActive = true and SobjectType = 'Account' and Name = '戦略科室分類 呼吸科']; if (rectSct.size() == 0) { return; } List rectDpt = [select Id from RecordType where IsActive = true and SobjectType = 'Account' and Name = '診療科 消化科']; if (rectDpt.size() == 0) { return; } StaticParameter.EscapeOpportunityBefUpdTrigger = true; StaticParameter.EscapeSyncOpportunityTrigger = true; StaticParameter.EscapeNFM007Trigger = true; StaticParameter.EscapeOpportunityHpDeptUpdTrigger = true; StaticParameter.EscapeSyncOpportunityTrigger = true; System.runAs(new User(Id = Userinfo.getUserId())) { insert user; // テストデータ Account company = new Account(); company.RecordTypeId = rectCo[0].Id; company.Name = 'NFM007TestCompany'; upsert company; Account section = new Account(); section.RecordTypeId = rectSct[0].Id; section.Name = '*'; section.Department_Class_Label__c = '消化科'; section.ParentId = company.Id; section.Hospital_Department_Class__c = company.Id; upsert section; Account depart = new Account(); depart.RecordTypeId = rectDpt[0].Id; depart.Name = '*'; depart.Department_Name__c = 'NFM007TestDepart'; depart.ParentId = section.Id; depart.Department_Class__c = section.Id; depart.Hospital__c = company.Id; upsert depart; Opportunity opp = new Opportunity(); opp.AccountId = depart.Id; opp.Department_Class__c = section.Id; opp.Hospital__c = company.Id; opp.SAP_Send_OK__c = false; opp.Name = 'GZ-SP-NFM007_1'; opp.Trade__c = '内貿'; opp.StageName = '询价'; opp.ConfirmationofAward__c='OLY中标'; opp.CloseDate = date.newinstance(2022, 11, 30); insert opp; System.Test.startTest(); opp.ConfirmationofAward__c='竞争对手中标'; update opp; System.Test.stopTest(); } } //end start 20220623 }