binxie
2024-01-16 1b08402678deb31bba4a347bfd388eba8360cbc1
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
@isTest
private class LexNewOPDButtonOpportunityTest {
    private static Id pricebookId = ControllerUtil.getStandardPricebook().Id;
    static testMethod void method() {
 
        Opportunity opp = new Opportunity(
            Name='Opp',
            StageName='询价',
            CloseDate=Date.today().addDays(10),
            Close_Forecasted_Date__c=Date.today(),
            CurrencyIsoCode = 'CNY'
        );
        insert opp;
 
        // oppLine oppline = new oppLine();
        // oppline.opp = opp;
        // oppline.quoteNum = 1;
        Id productOlympusProductsRecordTypeId = Schema.SObjectType.Product2.getRecordTypeInfosByDeveloperName().get('OlympusProducts').getRecordTypeId();
        Product2 prd1 = new Product2();
        prd1.Name = 'Prd1';
        prd1.RecordTypeId = productOlympusProductsRecordTypeId;
        prd1.ProductCode_Ext__c = 'Prd1';
        prd1.ProductCode = 'Prd1';
        prd1.Important_product__c = true;
        prd1.Asset_Model_No__c = '1001';
        prd1.Important_Rroduct_1GI__c = true;
        prd1.RentalSubject__c = true;
        prd1.Fixture_Model_No__c = '1001';
        prd1.IsActive = true;
        insert prd1;  
 
        Quote q = new Quote(
            Name = 'quote',
            OpportunityId = opp.Id,
            Pricebook2Id = pricebookId
        );
        insert q;
        opp.Estimation_Id__c = String.valueOf(q.Id);
        update opp;
        
        PricebookEntry entry = new PricebookEntry( Pricebook2Id = pricebookId, Product2Id = prd1.Id);
        entry.UnitPrice = 0;
        entry.IsActive = true;
        entry.UseStandardPrice = false;
        entry.CurrencyIsoCode = 'CNY';
        insert entry;
 
        QuoteLineItem quoteItem = new QuoteLineItem();
        quoteItem.Name__c = 'テスト商品';
        quoteItem.QuoteId = q.id;
        quoteItem.Quantity = 1;
        quoteItem.Cost_Subtotal__c = 0;
        quoteItem.Cost__c = 200;
        quoteItem.Item_Order__c  = 3;
        quoteItem.UnitPrice = 10;
        quoteItem.Product2Id = prd1.id;
        quoteItem.PricebookEntryId = entry.Id;
        quoteItem.OppIsLendMark__c = false;
        insert quoteItem;
 
 
        OPDPlan__c oPDPlan1 = new OPDPlan__c();
        oPDPlan1.Status__c = '计划中';
        oPDPlan1.OPDPlan_ImplementDate__c =  Date.today().addMonths(1);
        oPDPlan1.NoOpp_Reason__c = 'HCP对应';     //无询价理由
        oPDPlan1.OPDLendSortDraft__c = 1;       //备品借出优先度
        oPDPlan1.OPDType__c = '事件';
        oPDPlan1.Related_Opportunity1_ID__c = opp.Id;
        oPDPlan1.NoOpp_Reason__c = null;
        insert oPDPlan1;
 
 
        List<ProLine> proLines = new List<ProLine>();
        ProLine proLine1 = new ProLine();
        // proLine1.Id = planRE.Id;
        proLine1.Quantity = 10;
        proLine1.ProductName = 'CF-H170I1';
        proLine1.ProductCode= '1001';
        proLine1.ProductModel= '1001';
        // proLine1.QuoteNo = 
        proLines.add(proLine1);
 
        String jsonRecords = System.JSON.serialize(proLines);
        LexNewOPDButtonOpportunityController.initCancleSumbit(oPDPlan1.Id);
        LexNewOPDButtonOpportunityController.initNewOPDButton2(opp.Id);
        LexNewOPDButtonOpportunityController.initGetQuote(opp.Id);
        LexNewOPDButtonOpportunityController.createProductTags(jsonRecords,opp.Id);
        LexNewOPDButtonOpportunityController.initReportSubmit(oPDPlan1.Id);
    }
 
    public class ProLine {
        // @AuraEnabled
        // public Id Id { get; set; } 
        @AuraEnabled
        public Integer Quantity { get; set; } 
        @AuraEnabled
        public String ProductName { get; set; } 
        @AuraEnabled
        public String ProductCode { get; set; }  
        @AuraEnabled
        public String ProductModel { get; set; } 
        @AuraEnabled
        public String QuoteNo { get; set; } 
        @AuraEnabled
        public String FixtureModel { get; set; } 
    } 
 
    public class oppLine {
        @AuraEnabled
        public Opportunity opp { get; set; } 
        @AuraEnabled
        public Integer quoteNum { get; set; } 
    } 
}