From ae3dbaacd49b295337c5c53dbf5cf732898ed6f8 Mon Sep 17 00:00:00 2001
From: GWY <guweiyiscp096@foxmail.com>
Date: 星期四, 17 三月 2022 09:49:00 +0800
Subject: [PATCH] PJ1降类修复

---
 force-app/main/default/classes/OpportunityTriggerTest.cls |  934 +++++++++++++++++++++++++++++++++++++--------------------
 1 files changed, 603 insertions(+), 331 deletions(-)

diff --git a/force-app/main/default/classes/OpportunityTriggerTest.cls b/force-app/main/default/classes/OpportunityTriggerTest.cls
index 71058a8..12b89cf 100644
--- a/force-app/main/default/classes/OpportunityTriggerTest.cls
+++ b/force-app/main/default/classes/OpportunityTriggerTest.cls
@@ -1,361 +1,633 @@
 @isTest
 private class OpportunityTriggerTest {
+    
+    // 鍏抽棴璇环鎻掑叆鍜屾洿鏂�
+    static testMethod void myTest1() {
+        List<RecordType> rectIE = [select Id from RecordType where IsActive = true and SobjectType = 'Account' and Name = 'Customer IE'];
+        Account accIE = new Account(
+            Name = '*',
+            RecordTypeId = rectIE[0].Id,
+            OwnerId = UserInfo.getUserId(),
+            DivisionName__c='Customer IE',
+            FacilityName__c='abc',
+            PostCode__c = '123456'
+        );
+        insert accIE; 
+        
+        PriceBook2 pricebook =new PriceBook2(
+            Name = 'IE',
+            ProductSegment__c = 'IE',
+            TradeType__c = 'Taxation',
+            SalesChannel__c = 'direct',
+            MachineParts__c = 'Machine'
+        );
+        insert pricebook;
+           
+        List<RecordType> rectOpp = [select id from RecordType where IsActive = true and SobjectType = 'Opportunity'];
+        Opportunity opp = new Opportunity(
+            Name = 'test opp',
+            AccountId = accIE.Id,
+            RecordTypeId = rectOpp[0].Id,
+            OwnerId = UserInfo.getUserId(),
+            StageName = 'Prospect Created',
+            CancelReason__c = 'Inquiry repeat',
+            Cancel_reason_D__c = 'Inquiry repeat',
+            CurrencyIsoCode = 'CNY',
+            ProductSegment__c = 'IE',
+            CloseDate = Date.today(),
+            NewInquiryDate__c = Date.today().addDays(-2),
+            ExpectedOrderDate__c = Date.today().addDays(2),
+            TradeType__c = 'Taxation',
+            SalesChannel__c = 'direct',
+            Machine_Parts__c = 'Machine'
+        );
+        insert opp;
 
-  @isTest static void test_method_one() {
+        OpportunityWebService.UpdateStageName(opp.Id, 'Closed Cancel');
+        update opp;
+        
+        List<Opportunity> oppList = [Select Id, CloseDate, ProductSegmentCompetitor__c, Pricebook2Id from Opportunity where Id = :opp.Id];
+        
+        //System.assertEquals(Date.today().addDays(2), oppList[0].CloseDate);
+        //System.assertEquals('IE', oppList[0].ProductSegmentCompetitor__c);
+        //System.assertEquals(pricebook.Id, oppList[0].Pricebook2Id);
+        
+    }
+    
+    // 鏈叧闂浠锋彃鍏ュ拰鏇存柊
+    static testMethod void myTest2() {
+        List<RecordType> rectIE = [select Id from RecordType where IsActive = true and SobjectType = 'Account' and Name = 'Customer IE'];
+        Account accIE = new Account(
+            Name = '*',
+            RecordTypeId = rectIE[0].Id,
+            OwnerId = UserInfo.getUserId(),
+            DivisionName__c='Customer IE',
+            FacilityName__c='abc',
+            PostCode__c = '123456'
+        );
+        insert accIE; 
+        
+        PriceBook2 pricebook =new PriceBook2(
+            Name = 'IE',
+            ProductSegment__c = 'IE',
+            TradeType__c = 'Taxation',
+            SalesChannel__c = 'direct',
+            MachineParts__c = 'Machine'
+        );
+        insert pricebook;
+         
+        List<RecordType> rectOpp = [select id from RecordType where IsActive = true and SobjectType = 'Opportunity'];
+        // 鏈夐瀹氫笅鍗曟棩
+        Opportunity opp = new Opportunity(
+            Name = 'test opp',
+            AccountId = accIE.Id,
+            RecordTypeId = rectOpp[0].Id,
+            OwnerId = UserInfo.getUserId(),
+            StageName = 'Prospect Created',
+            CurrencyIsoCode = 'CNY',
+            ProductSegment__c = 'IE',
+            CloseDate = Date.today(),
+            NewInquiryDate__c = Date.today().addDays(-2),
+            ExpectedOrderDate__c = Date.today().addDays(2),
+            TradeType__c = 'Taxation',
+            SalesChannel__c = 'direct',
+            Machine_Parts__c = 'Machine'
+        );
+        insert opp;
+        
+        List<Opportunity> oppList = [Select Id, CloseDate, ProductSegmentCompetitor__c, Pricebook2Id from Opportunity where Id = :opp.Id];
+        
+        //System.assertEquals(Date.today().addDays(2), oppList[0].CloseDate);
+        //System.assertEquals('IE', oppList[0].ProductSegmentCompetitor__c);
+        //System.assertEquals(pricebook.Id, oppList[0].Pricebook2Id);
+        
+        opp.ExpectedOrderDate__c = Date.today().addDays(3);
+        opp.ProductSegment__c = 'BS';
+        update opp;
+        
+        List<Opportunity> oppList2 = [Select Id, CloseDate, ProductSegmentCompetitor__c, Pricebook2Id from Opportunity where Id = :opp.Id];
+        
+        //System.assertEquals(Date.today().addDays(3), oppList2[0].CloseDate);
+        //System.assertEquals('BS', oppList2[0].ProductSegmentCompetitor__c);
+        
+        // 鏃犻瀹氫笅鍗曟棩
+        Opportunity opp2 = new Opportunity(
+            Name = 'test opp',
+            AccountId = accIE.Id,
+            RecordTypeId = rectOpp[0].Id,
+            OwnerId = UserInfo.getUserId(),
+            StageName = 'Prospect Created',
+            CurrencyIsoCode = 'CNY',
+            ProductSegment__c = 'IE',
+            CloseDate = Date.today(),
+            NewInquiryDate__c = Date.today().addDays(-2),
+            TradeType__c = 'Taxation',
+            SalesChannel__c = 'direct',
+            Machine_Parts__c = 'Machine'
+        );
+        insert opp2;
+        
+        List<Opportunity> oppList3 = [Select Id, CloseDate, ProductSegmentCompetitor__c, Pricebook2Id from Opportunity where Id = :opp2.Id];
+        
+        //System.assertEquals(Date.today().addDays(-2).addMonths(6), oppList3[0].CloseDate);
+        //System.assertEquals('IE', oppList3[0].ProductSegmentCompetitor__c);
+        //System.assertEquals(pricebook.Id, oppList3[0].Pricebook2Id);
+        
+        opp2.NewInquiryDate__c = Date.today().addDays(-3);
+        opp2.ProductSegment__c = 'BS';
+        update opp2;
+        
+        List<Opportunity> oppList4 = [Select Id, CloseDate, ProductSegmentCompetitor__c, Pricebook2Id from Opportunity where Id = :opp2.Id];
+        
+        //System.assertEquals(Date.today().addDays(-3).addMonths(6), oppList4[0].CloseDate);
+        //System.assertEquals('BS', oppList4[0].ProductSegmentCompetitor__c);
+    }
+    //@isTest(SeeAllData=true)
+    static testMethod void myTest3() {
+        List<RecordType> rectIE = [select Id from RecordType where IsActive = true and SobjectType = 'Account' and Name = 'Customer IE'];
+        List<RecordType> rectForeignCompany = [select Id from RecordType where IsActive = true and SobjectType = 'Account' and Name = 'ForeignCompany'];
+        Id pricebookId = Test.getStandardPricebookId();
+        
+        /*PriceBook2 pricebook1 = ControllerUtil.getStandardPricebook();
+        Id pricebookId = pricebook1.id;*/
+        Pricebook2 pricebook = new Pricebook2(
+            Name = 'IE',
+            ProductSegment__c = 'IE',
+            TradeType__c = 'Taxation',
+            SalesChannel__c = 'direct',
+            MachineParts__c = 'Machine',
+            isActive = true
+        );
+        insert pricebook;
+        
+        /*Pricebook2 pricebook =  [select Id from PriceBook2 where ProductSegment__c = 'IE' and
+         TradeType__c = 'Taxation' and SalesChannel__c = 'direct' and MachineParts__c = 'Machine' and  isActive = true limit 1];
+*/
+        Product2 product1 = new Product2();
+        product1.Name = 'product1';
+        product1.IsActive = true;
+        
+        Product2 product2 = new Product2();
+        product2.Name = 'product2';
+        product2.IsActive = true;
+        
+        Product2 product3 = new Product2();
+        product3.Name = 'product3';
+        product3.IsActive = true;
+        
+        insert new Product2[] {product1,product2,product3};
+        
+        PricebookEntry standardPrice1 = new PricebookEntry(
+            Pricebook2Id = pricebookId,
+            Product2Id = product1.Id,
+            UnitPrice = 0,
+            CurrencyIsoCode = 'CNY',
+            IsActive = 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 = '銇�';
+        );
+        
+        PricebookEntry standardPrice2 = new PricebookEntry(
+            Pricebook2Id = pricebookId,
+            Product2Id = product2.Id,
+            UnitPrice = 0,
+            CurrencyIsoCode = 'CNY',
+            IsActive = true
+        );
+        
+        PricebookEntry standardPrice3 = new PricebookEntry(
+            Pricebook2Id = pricebookId,
+            Product2Id = product3.Id,
+            UnitPrice = 0,
+            CurrencyIsoCode = 'CNY',
+            IsActive = true
+        );
+        
+        insert new PricebookEntry[] {standardPrice1,standardPrice2,standardPrice3};
+        
+        PricebookEntry entry1 = new PricebookEntry( Pricebook2Id=pricebook.Id, Product2Id=product1.Id);
+        entry1.UnitPrice = 0;
+        entry1.IsActive = true;
+        entry1.UseStandardPrice = false;
+        entry1.CurrencyIsoCode = 'CNY';
+        
+        PricebookEntry entry2 = new PricebookEntry( Pricebook2Id=pricebook.Id, Product2Id=product2.Id);
+        entry2.UnitPrice = 0;
+        entry2.IsActive = true;
+        entry2.UseStandardPrice = false;
+        entry2.CurrencyIsoCode = 'CNY';
+        
+        PricebookEntry entry3 = new PricebookEntry( Pricebook2Id=pricebook.Id, Product2Id=product3.Id);
+        entry3.UnitPrice = 0;
+        entry3.IsActive = true;
+        entry3.UseStandardPrice = false;
+        entry3.CurrencyIsoCode = 'CNY';
+
+        
+        insert new PricebookEntry[] {entry1,entry2,entry3};
+        
+        Account accIE = new Account(
+            Name = '*',
+            RecordTypeId = rectIE[0].Id,
+            OwnerId = UserInfo.getUserId(),
+            DivisionName__c='Customer IE',
+            FacilityName__c='abc',
+            PostCode__c = '123456'
+        );
+        insert accIE; 
+        
+        Account specialDeliveryAddress1 = new Account(Name = '*',FacilityName__c='specialDeliveryAddress1',PostCode__c = '123456');
+        Account specialDeliveryAddress2 = new Account(Name = '*',FacilityName__c='specialDeliveryAddress2',PostCode__c = '123456');
+        Account specialDeliveryAddress3 = new Account(Name = '*',FacilityName__c='specialDeliveryAddress3',PostCode__c = '123456');
+        Account foreignTradeCompany1 = new Account(Name = '*',FacilityName__c='foreignTradeCompany1',PostCode__c = '123456',RecordTypeId = rectForeignCompany[0].Id);
+        Account foreignTradeCompany2 = new Account(Name = '*',FacilityName__c='foreignTradeCompany2',PostCode__c = '123456',RecordTypeId = rectForeignCompany[0].Id);
+        Account foreignTradeCompany3 = new Account(Name = '*',FacilityName__c='foreignTradeCompany3',PostCode__c = '123456',RecordTypeId = rectForeignCompany[0].Id);
+        insert new Account[] {specialDeliveryAddress1,specialDeliveryAddress2,specialDeliveryAddress3,foreignTradeCompany1,foreignTradeCompany2,foreignTradeCompany3};
+        
+        User user = new User();
+        user.LastName = 'test';
+        user.FirstName = 'test';
+        user.Alias = 'test';
+        user.Email = 'User20210519@test.com';
+        user.Username = 'User20210519@test222.com';
+        user.CommunityNickname = 'test01';
         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<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 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;
-
+        user.ProfileId = System.Label.SystemAdmin;
+        insert user;
+        
+        Date day1 = Date.today();
+        Date day2 = day1.addDays(-1);
+        List<RecordType> rectOpp = [select id from RecordType where IsActive = true and SobjectType = 'Opportunity'];
+        // 鏈夐瀹氫笅鍗曟棩
         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 = '鐢宠涓�';
+        opp.Name = 'test opp';
+        opp.AccountId = accIE.Id;
+        opp.RecordTypeId = rectOpp[0].Id;
+        opp.OwnerId = UserInfo.getUserId();
+        opp.StageName = 'Prospect Created';
+        opp.CurrencyIsoCode = 'CNY';
+        opp.ProductSegment__c = 'IE';
+        opp.CloseDate = Date.today();
+        opp.NewInquiryDate__c = Date.today().addDays(-2);
+        opp.ExpectedOrderDate__c = Date.today().addDays(2);
+        opp.ApprovalStatus_D__c = 'Pass';
+        
+        opp.LeadSource = 'LeadSource_D__c';
+        opp.BudgetAmount__c = 111;
+        opp.CancelReasonText__c = 'Cancel_Reason_Text_D__c';
+        opp.CancelReason__c = 'Cancel_reason_D__c';
+        opp.CompetitorCompany__c = 'Competitor_Company_D__c';
+        opp.Competitor_Product__c = 'Competitor_Product_D__c';
+        opp.Competitor_Product2__c = 'Competitor_Product2_D__c';
+        opp.Competitor_Product3__c = 'Competitor_Product3_D__c';
+        opp.Competitor_Product4__c = 'Competitor_Product4_D__c';
+        opp.Competitor_Product5__c = 'Competitor_Product5_D__c';
+        opp.Competitor_Product6__c = 'Competitor_Product6_D__c';
+        opp.Competitor_Product7__c = 'Competitor_Product7_D__c';
+        opp.Competitor_Product8__c = 'Competitor_Product8_D__c';
+        opp.CompetitorProductCode__c = 'Competitor_Product_Code_D__c';
+        opp.CompetitorProductCode2__c = 'Competitor_Product_Code2_D__c';
+        opp.CompetitorProductCode3__c = 'Competitor_Product_Code3_D__c';
+        opp.CompetitorProductCode4__c = 'Competitor_Product_Code4_D__c';
+        opp.CompetitorProductCode5__c = 'Competitor_Product_Code5_D__c';
+        opp.CompetitorProductCode6__c = 'Competitor_Product_Code6_D__c';
+        opp.CompetitorProductCode7__c = 'Competitor_Product_Code7_D__c';
+        opp.CompetitorProductCode8__c = 'Competitor_Product_Code8_D__c';
+        opp.DealerSalesStaffName__c = 'Dealer_Sales_Staff_Name_D__c';
+        opp.DealerService__c = 'Dealer_Service_D__c';
+        opp.ExpectedDeliveryDate__c = day1;
+        opp.InquiryResult__c = 'InquiryResultD__c';
+        //opp.InquiryResultCancel__c = day1;
+        //opp.InquiryResultLost__c = day1;
+        opp.InquiryResultOrder__c = day1;
+        opp.LostAmount__c = 111;
+        opp.LostCompetitorProduct__c = 'Lost_competitor_product_D__c';
+        opp.LostReasonText__c = 'LostReasonText_D__c';
+        opp.LostReason__c = 'Lostreason_D__c';
+        opp.Phase1Date__c = day1;
+        opp.Phase2Date__c = day1;
+        opp.Phase3Date__c = day1;
+        opp.SalesChannel__c = 'direct';
+        opp.SubDealer__c = 'Sub_Dealer_D__c';
+        opp.TradeType__c = 'Taxation';
+        opp.Machine_Parts__c = 'Machine';
+        opp.SpecialDeliveryAddress__c = specialDeliveryAddress1.Id;
+        opp.ForeignTradeCompany__c = foreignTradeCompany1.Id;
+  
         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;
+        OpportunityLineItem oli = new OpportunityLineItem();
+        oli.OpportunityId = opp.Id;
+        oli.Quantity = 2;
+        oli.UnitPrice = 111;
+        oli.Description = 'test';
+        oli.PricebookEntryId = entry1.Id;
         
-        delete ofile2;
-        delete att;
-
-        opp.Stock_apply_status__c = '鎵瑰噯';
+        insert oli;
+        
+        opp.LeadSource = 'LeadSource';
+        opp.BudgetAmount__c = 222;
+        opp.CancelReasonText__c = 'CancelReasonText__c';
+        opp.CancelReason__c = 'CancelReason__c';
+        opp.CompetitorCompany__c = 'CompetitorCompany__c';
+        opp.Competitor_Product__c = 'Competitor_Product__c';
+        opp.Competitor_Product2__c = 'Competitor_Product2__c';
+        opp.Competitor_Product3__c = 'Competitor_Product3__c';
+        opp.Competitor_Product4__c = 'Competitor_Product4__c';
+        opp.Competitor_Product5__c = 'Competitor_Product5__c';
+        opp.Competitor_Product6__c = 'Competitor_Product6__c';
+        opp.Competitor_Product7__c = 'Competitor_Product7__c';
+        opp.Competitor_Product8__c = 'Competitor_Product8__c';
+        opp.CompetitorProductCode__c = 'CompetitorProductCode__c';
+        opp.CompetitorProductCode2__c = 'CompetitorProductCode2__c';
+        opp.CompetitorProductCode3__c = 'CompetitorProductCode3__c';
+        opp.CompetitorProductCode4__c = 'CompetitorProductCode4__c';
+        opp.CompetitorProductCode5__c = 'CompetitorProductCode5__c';
+        opp.CompetitorProductCode6__c = 'CompetitorProductCode6__c';
+        opp.CompetitorProductCode7__c = 'CompetitorProductCode7__c';
+        opp.CompetitorProductCode8__c = 'CompetitorProductCode8__c';
+        opp.DealerSalesStaffName__c = 'DealerSalesStaffName__c';
+        opp.DealerService__c = 'DealerService__c';
+        opp.ExpectedDeliveryDate__c = day2;
+        opp.ExpectedOrderDate__c = day2;
+        opp.InquiryResult__c = 'InquiryResult__c';
+        opp.InquiryResultCancel__c = null;
+        opp.InquiryResultLost__c = null;
+        opp.InquiryResultOrder__c = null;
+        opp.LostAmount__c = 222;
+        opp.LostCompetitorProduct__c = 'LostCompetitorProduct__c';
+        opp.LostReasonText__c = 'LostReasonText__c';
+        opp.LostReason__c = 'LostReason__c';
+        opp.NewInquiryDate__c = day2;
+        opp.Phase1Date__c = day2;
+        opp.Phase2Date__c = day2;
+        opp.Phase3Date__c = day2;
+        opp.SalesChannel__c = 'direct';
+        opp.SubDealer__c = 'SubDealer__c';
+        opp.TradeType__c = 'Taxation';
+        opp.Machine_Parts__c = 'Machine';
+        opp.SpecialDeliveryAddress__c = specialDeliveryAddress2.Id;
+        opp.ForeignTradeCompany__c = foreignTradeCompany2.Id;
+        
+        
+        opp.OwnerId = user.Id;
+        
+        update opp;
+        
+        oli.Quantity = 3;
+        oli.UnitPrice = 222;
+        oli.Description = 'test1';
+        
+        update oli;
+        
+        opp.LeadSource_D__c = 'newOpp.LeadSource';
+        opp.Budget_Amount_D__c = 111;
+        opp.Cancel_Reason_Text_D__c = 'newOpp.CancelReasonText__c';
+        opp.Cancel_Reason_D__c = 'newOpp.CancelReason__c';
+        opp.Competitor_Company_D__c = 'newOpp.CompetitorCompany__c';
+        opp.Competitor_Product_D__c = 'newOpp.Competitor_Product__c';
+        opp.Competitor_Product2_D__c = 'newOpp.Competitor_Product2__c';
+        opp.Competitor_Product3_D__c = 'newOpp.Competitor_Product3__c';
+        opp.Competitor_Product4_D__c = 'newOpp.Competitor_Product4__c';
+        opp.Competitor_Product5_D__c = 'newOpp.Competitor_Product5__c';
+        opp.Competitor_Product6_D__c = 'newOpp.Competitor_Product6__c';
+        opp.Competitor_Product7_D__c = 'newOpp.Competitor_Product7__c';
+        opp.Competitor_Product8_D__c = 'newOpp.Competitor_Product8__c';
+        opp.Competitor_Product_Code_D__c = 'newOpp.CompetitorProductCode__c';
+        opp.Competitor_Product_Code2_D__c = 'newOpp.CompetitorProductCode2__c';
+        opp.Competitor_Product_Code3_D__c = 'newOpp.CompetitorProductCode3__c';
+        opp.Competitor_Product_Code4_D__c = 'newOpp.CompetitorProductCode4__c';
+        opp.Competitor_Product_Code5_D__c = 'newOpp.CompetitorProductCode5__c';
+        opp.Competitor_Product_Code6_D__c = 'newOpp.CompetitorProductCode6__c';
+        opp.Competitor_Product_Code7_D__c = 'newOpp.CompetitorProductCode7__c';
+        opp.Competitor_Product_Code8_D__c = 'newOpp.CompetitorProductCode8__c';
+        opp.Dealer_Sales_Staff_Name_D__c = 'newOpp.DealerSalesStaffName__c';
+        opp.Dealer_Service_D__c = 'newOpp.DealerService__c';
+        opp.Expected_Delivery_Date_D__c = day1;
+        opp.Expected_Order_Date_D__c = day1;
+        opp.Inquiry_Result_D__c = 'newOpp.InquiryResult__c';
+        opp.Inquiry_Result_Cancel_D__c = null;
+        opp.Inquiry_Result_Lost_D__c = null;
+        opp.Inquiry_Result_Order_D__c = null;
+        opp.Lost_Amount_D__c = 111;
+        opp.Lost_Competitor_Product_D__c = 'newOpp.LostCompetitorProduct__c';
+        opp.LostReasonText_D__c = 'newOpp.LostReasonText__c';
+        opp.LostReason_D__c = 'newOpp.Lostreason__c';
+        opp.New_Inquiry_Date_D__c = day1;
+        opp.Phase1Date_D__c = day1;
+        opp.Phase2Date_D__c = day1;
+        opp.Phase3Date_D__c = day1;
+        opp.Sales_Channel_D__c = 'direct';
+        opp.Sub_Dealer_D__c = 'newOpp.SubDealer__c';
+        opp.Trade_Type_D__c = 'Taxation';
+        opp.Machine_Parts_D__c = 'Machine';
+        opp.SpecialDeliveryAddress_D__c= specialDeliveryAddress3.Id;
+        opp.ForeignTradeCompany_D__c = foreignTradeCompany3.Id;
+        
+        opp.DealerSelectOwner__c = UserInfo.getUserId();
+        
+        update opp;
+        
+        oli.QuantityD__c = 2;
+        oli.UnitPriceD__c = 111;
+        oli.DescriptionD__c = 'test';
+        oli.DealerSelectProduct__c = product1.Id;
+        
+        update oli;
+        
+        opp.ApprovalStatus_D__c = 'Completed';
+        update opp;
+        opp.ApprovalStatus_D__c = 'Submit';
+        update opp;
+        opp.ApprovalStatus_D__c = 'Reject';
         update opp;
 
-        List<Opportunity_File__c> 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();
+        opp.ApprovalStatus_D__c = 'Completed';
+        update opp;
+        opp.ApprovalStatus_D__c = 'Submit';
+        update opp;
+        opp.ApprovalStatus_D__c = 'Pass';
+        update opp;
     }
-}
 
-  @isTest static void test_Change_Quote() {
-    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 from RecordType where IsActive = true and SobjectType = 'Account' and Name = '瑷虹檪绉� 娑堝寲绉�'];
-        if (rectDpt.size() == 0) {
-            return;
-        }
+    static testMethod void myTest4() {
 
-        // 銉嗐偣銉堛儑銉笺偪
-        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;
+        StaticParameter.OpportunityTriggerIsUpdate = true;
+        List<RecordType> rectIE = [select Id from RecordType where IsActive = true and SobjectType = 'Account' and Name = 'Customer IE'];
+        Account accIE = new Account(
+            Name = '*',
+            RecordTypeId = rectIE[0].Id,
+            OwnerId = UserInfo.getUserId(),
+            DivisionName__c='Customer IE',
+            FacilityName__c='abc',
+            PostCode__c = '123456'
+        );
+        insert accIE; 
+        Contact con = new Contact();
+        con.LastName = 'test';
+        con.AccountId = accIE.Id;
+        con.MobilePhone = 'MobilePhoneD__c';
+        con.OtherPhone = 'OtherPhoneD__c';
+        con.Fax = 'FaxD__c';
+        con.Email = 'EmailD__c@test.com';
+        con.Phone = 'PhoneD__c';
+        con.Title = 'TitleD__c';
+        con.Address1__c = 'Address1D__c';
+        con.Address2__c = 'Address2D__c';
+        con.Address3__c = 'Address3D__c';
+        con.Postcode__c = '100111';
+        con.ContactStatus__c = 'ContactStatusD__c';
+        con.CancelReason__c = 'CancelReasonD__c';
+        con.StatusD__c = 'Pass';
 
-        //璨╁2搴�
-        RecordType recHanbaiten = [select id from RecordType where IsActive = true and SobjectType= 'Account' and Name='璨╁2搴�' limit 1];
-        Account sellerA = new Account(Name = '璨╁2搴桝');
-        sellerA.RecordTypeId = recHanbaiten.id;
-        sellerA.Delete_Flag__c = false;
-        insert sellerA;
-
-        Account sellerB = new Account(Name = '璨╁2搴桞');
-        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 con;
+        PriceBook2 pricebook =new PriceBook2(
+            Name = 'IE',
+            ProductSegment__c = 'IE',
+            TradeType__c = 'Taxation',
+            SalesChannel__c = 'direct',
+            MachineParts__c = 'Machine'
+        );
+        insert pricebook;
+           
+        List<RecordType> rectOpp = [select id from RecordType where IsActive = true and SobjectType = 'Opportunity'];
+        Opportunity opp = new Opportunity(
+            Name = 'test opp',
+            AccountId = accIE.Id,
+            RecordTypeId = rectOpp[0].Id,
+            OwnerId = UserInfo.getUserId(),
+            StageName = 'Prospect Created',
+            CancelReason__c = 'Inquiry repeat',
+            Cancel_reason_D__c = 'Inquiry repeat',
+            CurrencyIsoCode = 'CNY',
+            ProductSegment__c = 'IE',
+            CloseDate = Date.today(),
+            NewInquiryDate__c = Date.today().addDays(-2),
+            ExpectedOrderDate__c = Date.today().addDays(2),
+            TradeType__c = 'Taxation',
+            SalesChannel__c = 'direct',
+            Machine_Parts__c = 'Machine'
+        );
         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();
-  }
+        opp.Phase1Date_D__c = Date.today();
+        update opp;
 
-  //2021-05-13 mzy  QLM
-  @isTest static void test_Change_Opp() {
-    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 from RecordType where IsActive = true and SobjectType = 'Account' and Name = '瑷虹檪绉� 娑堝寲绉�'];
-        if (rectDpt.size() == 0) {
-            return;
-        }
+        opp.Phase2Date_D__c = Date.today();
+        update opp;
 
-        // 銉嗐偣銉堛儑銉笺偪
-        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;
+        opp.StageName = 'Phase3';
+        update opp;
 
-        //璨╁2搴�
-        RecordType recHanbaiten = [select id from RecordType where IsActive = true and SobjectType= 'Account' and Name='璨╁2搴�' limit 1];
-        Account sellerA = new Account(Name = '璨╁2搴桝');
-        sellerA.RecordTypeId = recHanbaiten.id;
-        sellerA.Delete_Flag__c = false;
-        insert sellerA;
-
-        Account sellerB = new Account(Name = '璨╁2搴桞');
-        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'
+        OpportunityContactRole role = new OpportunityContactRole(
+            Role  = 'End user',
+            IsPrimary = true,
+            OpportunityId = opp.Id,
+            ContactId = con.Id
         );
-        insert opp1;
+        insert role;
 
-        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;
-
-        //鎷涙爣椤圭洰
-        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
+        Order odr = new Order(
+            Name = '',
+            Status = 'Draft',
+            Status__c = 'Active',
+            AccountId = accIE.Id,
+            ApproveStatus__c = 'Draft',
+            OpportunityId = opp.Id,
+            EffectiveDate = Date.today(),
+            IE_SP5_D__c = true,
+            IE_SP8__c = true,
+            SpecialDeliveryAccount_D__c = accIE.Id,
+            SpecialDeliveryContact2_D__c = con.Id,
+            EndUser__c = con.Id
         );
-        insert opp2;
+        insert odr;
+        opp.Name = 'test';
+        update opp;
+    }
 
+    static testMethod void myTest5() {
+        
+        List<RecordType> rectIE = [select Id from RecordType where IsActive = true and SobjectType = 'Account' and Name = 'Customer IE'];
+        Account accIE = new Account(
+            Name = '*',
+            RecordTypeId = rectIE[0].Id,
+            OwnerId = UserInfo.getUserId(),
+            DivisionName__c='Customer IE',
+            FacilityName__c='abc',
+            PostCode__c = '123456'
+        );
+        insert accIE; 
+        
+        PriceBook2 pricebook =new PriceBook2(
+            Name = 'IE',
+            ProductSegment__c = 'IE',
+            TradeType__c = 'Taxation',
+            SalesChannel__c = 'direct',
+            MachineParts__c = 'Machine'
+        );
+        insert pricebook;
 
-        System.Test.stopTest();
-
-  }
-  //2021-05-13 mzy  QLM
-
+        User user = new User();
+        user.LastName = 'test';
+        user.FirstName = 'test';
+        user.Alias = 'test';
+        user.Email = 'User202105191300@test.com';
+        user.Username = 'User202105191300@test222.com';
+        user.CommunityNickname = 'test01';
+        user.IsActive = true;
+        user.EmailEncodingKey = 'ISO-2022-JP';
+        user.TimeZoneSidKey = 'Asia/Tokyo';
+        user.LocaleSidKey = 'ja_JP';
+        user.LanguageLocaleKey = 'ja';
+        user.ProfileId = System.Label.SystemAdmin;
+        insert user;
+           
+        List<RecordType> rectOpp = [select id from RecordType where IsActive = true and SobjectType = 'Opportunity'];
+        Opportunity opp = new Opportunity(
+            Name = 'test opp',
+            AccountId = accIE.Id,
+            RecordTypeId = rectOpp[0].Id,
+            OwnerId = UserInfo.getUserId(),
+            StageName = 'Prospect Created',
+            CancelReason__c = 'Inquiry repeat',
+            Cancel_reason_D__c = 'Inquiry repeat',
+            CurrencyIsoCode = 'CNY',
+            ProductSegment__c = 'IE',
+            CloseDate = Date.today(),
+            NewInquiryDate__c = Date.today().addDays(-2),
+            ExpectedOrderDate__c = Date.today().addDays(2),
+            TradeType__c = 'Taxation',
+            SalesChannel__c = 'direct',
+            Machine_Parts__c = 'Machine'
+        );
+        insert opp;
+        Opportunity oppNew = new Opportunity();
+        oppNew.Name = 'test opp';
+        oppNew.AccountId = accIE.Id;
+        oppNew.RecordTypeId = rectOpp[0].Id;
+        oppNew.OwnerId = user.Id;
+        oppNew.StageName = 'Prospect Created';
+        oppNew.CancelReason__c = 'Inquiry repeat';
+        oppNew.Cancel_reason_D__c = 'Inquiry repeat';
+        oppNew.CurrencyIsoCode = 'CNY';
+        oppNew.ProductSegment__c = 'IE';
+        oppNew.CloseDate = Date.today();
+        oppNew.NewInquiryDate__c = Date.today().addDays(-2);
+        oppNew.ExpectedOrderDate__c = Date.today().addDays(2);
+        oppNew.TradeType__c = 'Taxation';
+        oppNew.SalesChannel__c = 'direct';
+        oppNew.Machine_Parts__c = 'Machine';
+        insert oppNew;
+        oppNew.Manager__c  = user.Id;
+        oppNew.Have_Computer__c = true;
+        oppNew.CanChangeOpp__c = true;
+        oppNew.Association_Opportunity__c = opp.Id;
+        update oppNew;
+        /*oppNew.Association_Opportunity__c = null;
+        update oppNew;*/
+    }
 }
\ No newline at end of file

--
Gitblit v1.9.1