李彤
2022-09-23 d79fcb2a960e8b0e18fe039d892f98187b08866d
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
@isTest
private class TenderResultConfirmTaskBatchTest {
 
    @IsTest
    static void myTest1() {
 
        StaticParameter.EscapeTOLinkTrigger = true;
        ControllerUtil.EscapeNFM001Trigger = true;
        ControllerUtil.EscapeMaintenanceContractAfterUpdateTrigger = true;
        StaticParameter.EscapeNFM001Trigger = true;
        StaticParameter.EscapeNFM001AgencyContractTrigger = true;
        StaticParameter.EscapeNFM001AgencyContractTrigger2 = true;
        StaticParameter.EscapeMaintenanceContractAfterUpdateTrigger = true;
        Oly_TriggerHandler.bypass('TenderInformationHandler');
 
 
        Profile p = [select id from Profile where id =:System.Label.ProfileId_SystemAdmin];
        String loginId = UserInfo.getUserId();
        User sys = [select id from User where Id = :loginId];
        User u1 = new User(Test_staff__c = true);
        u1.LastName = '123';
        u1.FirstName = '2';
        u1.Batch_User__c = true;
        u1.Alias = '2';
        u1.Email = 'shashiming@prec-tech.com';
        u1.Username = 'test_user1@olympus.com.cn.tenopplink';
        u1.CommunityNickname = 'あ1';
        u1.IsActive = true;
        u1.EmailEncodingKey = 'ISO-2022-JP';
        u1.TimeZoneSidKey = 'Asia/Tokyo';
        u1.LocaleSidKey = 'ja_JP';
        u1.LanguageLocaleKey = 'ja';
        u1.ProfileId = p.id;
        u1.Job_Category__c = '销售服务';
        u1.Province__c = '東京';
        insert u1;
 
        User u2 = new User(Test_staff__c = true);
        u2.LastName = '_サンブリッジ';
        u2.FirstName = 'い';
        u2.Batch_User__c = true;
        u2.Alias = 'い';
        u2.Email = 'shashiming@prec-tech.com';
        u2.Username = 'test_user2@olympus.com.cn.tenopplink';
        u2.CommunityNickname = 'い';
        u2.IsActive = true;
        u2.EmailEncodingKey = 'ISO-2022-JP';
        u2.TimeZoneSidKey = 'Asia/Tokyo';
        u2.LocaleSidKey = 'ja_JP';
        u2.LanguageLocaleKey = 'ja';
        u2.ProfileId = p.id;
        u2.Job_Category__c = '销售推广';
        u2.Province__c = '東京';
        u2.IsActive = true;
        insert u2;
        
        //创建招标项目1
        Tender_information__c info1 = new Tender_information__c();
        info1.Name = 'TEST001';
        info1.OpportunityStatus__c = '跟进中';
        info1.InfoType__c = '3:结果';
        info1.subInfoType__c = '3-5:中标通知';
        info1.OwnerId = u1.Id;
        info1.OpportunityNum__c = 1;
        info1.ResultDate__c = Date.today();
        insert info1;
 
        //询价1
        Opportunity opp1 = new Opportunity(
            StageName = '引合',
            Name = 'tenderTest询价1',
            ETPromoteSale__c  = true,
            Close_Forecasted_Date__c = Date.today().addDays(-5),
           // Bidding_Project_Name_Bid__c = info1.Id,
           CloseDate = Date.today()
        );
        insert opp1;
 
        Test.StartTest();
 
        System.runAs(u1){
            // 插入关联关系
            Tender_Opportunity_Link__c link1 = new Tender_Opportunity_Link__c();
            link1.Tender_information__c = info1.Id;
            link1.Opportunity__c = opp1.Id;
            insert link1;
        }
 
        System.runAs(u2){
            //新建招标项目2
            Tender_information__c info2 = new Tender_information__c();
            info2.Name = 'TEST002';
            info2.InfoType__c = '3:结果';
            info2.subInfoType__c = '3-5:中标通知';
            info2.ResultDate__c = Date.today();
            insert info2;
 
            //新建询价2
            Opportunity opp2 = new Opportunity(
                StageName = '引合',
                Name = 'tenderTest询价2',
                Contract_DB_complite_day__c = Date.today(),
                Close_Forecasted_Date__c = Date.today().addDays(-5),
                CloseDate = Date.today(),
                Contract_Authorize_Lock__c = true
            );
            insert opp2;
 
            // 插入关联关系
            Tender_Opportunity_Link__c link2 = new Tender_Opportunity_Link__c();
            link2.Tender_information__c = info2.Id;
            link2.Opportunity__c = opp2.Id;
            insert link2;
        }
 
 
        //新建询价3
        Opportunity opp3 = new Opportunity(
            StageName = '敗戦',
            Name = 'tenderTest询价3',
            Close_Forecasted_Date__c = Date.today().addDays(-5),
            CloseDate = Date.today()
        );
        insert opp3;
 
        //新建 询价失单/取消报告
        Lost_cancel_report__c lcr = new Lost_cancel_report__c(
            Opportunity__c = opp3.Id
        );
        insert lcr;
 
        opp3.Lost_Cancel_Report__c = lcr.Id;
        update opp3;
        
 
        // //新建询价4
        // Opportunity opp4 = new Opportunity(
        //     StageName = '敗戦',
        //     Name = 'tenderTest询价4',
        //     Close_Forecasted_Date__c = Date.today().addDays(-5),
        //     CloseDate = Date.today(),
        //     ConfirmationofAward__c = '竞争对手中标'
        // );
        // insert opp4;    
        // //新建 询价失单/取消报告
        // Lost_cancel_report__c lcr1 = new Lost_cancel_report__c(
        //     Opportunity__c = opp4.Id
        // );
        // insert lcr1;
        
        // opp4.Lost_Cancel_Report__c = lcr.Id;
        // // update opp4;
 
        List<Tender_Opportunity_Link__c> slist = [select id,name,Tender_information__r.InfoType__c,Tender_information__r.subInfoType__c,Tender_information__r.status__c,Tender_information__r.LastModifiedDate,Tender_information__r.OpportunityStatus__c,Tender_information__r.OpportunityNum__c,
                                                    Opportunity__r.StageName__c,Opportunity__r.If_Need_PriceApply__c,Opportunity__r.Contract_DB_complite_day__c,Opportunity__r.Contract_Authorize_Lock__c
                                                    from Tender_Opportunity_Link__c];
        
        System.assertEquals(2, slist.size());
        System.assertEquals('3:结果', slist[1].Tender_information__r.InfoType__c);
        System.assertEquals('3-5:中标通知', slist[1].Tender_information__r.subInfoType__c);
        // System.assertEquals('跟进中',slist[0].Tender_information__r.OpportunityStatus__c);
        // System.assertEquals(1,slist[0].Tender_information__r.OpportunityNum__c);
        // System.assertEquals('05.询价中',slist[0].Tender_information__r.status__c);
        // System.assertEquals('询价',slist[0].Opportunity__r.StageName__c);
        System.assertEquals(Date.today(),slist[1].Opportunity__r.Contract_DB_complite_day__c);
        System.assertEquals(true,slist[1].Opportunity__r.Contract_Authorize_Lock__c);
        Database.executeBatch(new TenderResultConfirmTaskBatch());
        Test.stopTest();
    }
}