高章伟
2022-02-18 8b5f4c6c281cfa548f92de52c8021e37aa81901e
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
public with sharing class EnquiryDetailsController {
    public String ESetId{get;set;}
    public String baseUrl {get;private set;}
    public Opportunity insOppo{get;set;}
/*    public String EnquiryName{get;set;}
*/    public String IndexNum{get;set;}
    public Event__c ShowEvent{get;set;}
    public Opportunity showOppOName {get;set;}
    public boolean goOrNot {get;set;}
//*************************Insert 20160627 OCM-225 趙徳芳 Start*************************//
    private String Old_Competitor {get;set;}
//*************************Insert 20160627 OCM-225 趙徳芳 End***************************//
    public EnquiryDetailsController(){
    baseUrl = URL.getSalesforceBaseUrl().toExternalForm();
    ESetId = ApexPages.currentPage().getParameters().get('ESetId');
    //EnquiryName = ApexPages.currentPage().getParameters().get('idParam');
    IndexNum =  ApexPages.currentPage().getParameters().get('indexNumber');
    }
    public void init(){
        insOppo = new Opportunity();
        ShowEvent = new Event__c();
        showOppOName = new Opportunity();
        //新增Competitor__c字节
        //2021-12-10 增加 中标日 招标日 yjk
        String soql = 'select  id,Name,Competitor__c,Opportunity_stage__c,TenderBeginDate__c,Closing_Bid_Date_Bid__c,Application_Amount_Submit__c,Budget_Amount_Approval__c,Bid_Date__c,Close_Forecasted_Date__c,CloseDate,Closing_Bid_Date__c,Department_Name__c,Status_Formula__c,Close_Forecasted_Assume_Date__c from Opportunity where id = :ESetId';
        String sql = 'select name , id ,Related_Opportunity'+IndexNum+'__c,Related_Opportunity'+IndexNum+'_ID__c from Event__c where Related_Opportunity'+IndexNum+'_ID__c =:ESetId';
        //List<Event__c> showName = Database.query(sql);
        List<Opportunity> OppoName = Database.query(soql);
//*************************Insert 20160627 OCM-225 趙徳芳 Start*************************//
        if(OppoName.size()>0){
            Old_Competitor = OppoName[0].Competitor__c;
        }
//*************************Insert 20160627 OCM-225 趙徳芳 End***************************//
        //if(showName.size()>0){
            //ShowEvent = showName[0];
        //}
        if(OppoName.size()>0){
            insOppo = OppoName[0]; 
        }
    }
    public PageReference save(){
        system.debug('测试进入');
        Map<String,String> ApplyMap = new Map<String,String>();
        Map<String,String> ApproveMap = new Map<String,String>();
        ApplyMap.put('提交了预算申请','提交了预算申请');
        ApplyMap.put('预算已经批准','预算已经批准');        ApproveMap.put('预算已经批准','预算已经批准 ');
        ApplyMap.put('确定了对手参数','确定了对手参数');    ApproveMap.put('确定了对手参数','确定了对手参数 ');
        ApplyMap.put('没有确定参数','没有确定参数');        ApproveMap.put('没有确定参数','没有确定参数');
        ApplyMap.put('确定了OLY参数','确定了OLY参数');    ApproveMap.put('确定了OLY参数','确定了OLY参数');
        ApplyMap.put('中标签约','中标签约');            ApproveMap.put('中标签约','中标签约');
        //if(insOppo.Close_Forecasted_Date__c == null){
        //    insOppo.Close_Forecasted_Date__c.addError('预测COM签约日不能为空');
        //    system.debug('测试进入6');
        //    goOrNot = false;
           
        //}
        //else  if(insOppo.CloseDate==null){
        //    insOppo.CloseDate.addError('预测发货日不能为空');
        //    system.debug('测试进入7');    
        //}
        //else if(insOppo.Closing_Bid_Date__c >insOppo.Close_Forecasted_Date__c ){
        //insOppo.Close_Forecasted_Date__c.addError('预测OCM签约日不允许早于中标日');
        //system.debug('测试进入8');
        //goOrNot = false;
         
        //}
        //else if(insOppo.Close_Forecasted_Date__c <Date.today()){
        //    insOppo.Close_Forecasted_Date__c.addError('预测COM签约日不允许登录过去日期');
        //    system.debug('测试进入9');
        //    goOrNot = false;
           
        //}
        //else if(insOppo.Close_Forecasted_Date__c >insOppo.CloseDate){
        //    insOppo.Close_Forecasted_Date__c.addError('预测COM签约日不允许晚于预测发货日');
        //    system.debug('测试进入9');
        //    goOrNot = false;
           
        //}
        //else if(insOppo.Bid_Date__c >insOppo.Closing_Bid_Date__c ){
        if(insOppo.Bid_Date__c >insOppo.Closing_Bid_Date__c ){
            insOppo.Closing_Bid_Date__c.addError('中标日不允许早于招标日');
            system.debug('测试进入10');
            goOrNot = false;
           
        }
        /*else if(insOppo.CloseDate < Date.today()){
            insOppo.CloseDate.addError('预测发货日不允许登录过去日期');
            system.debug('测试进入11');
            goOrNot = false;
            
            }*/
        else if(insOppo.Closing_Bid_Date__c >Date.today() ){
            insOppo.Closing_Bid_Date__c.addError('中标日不允许登录未来日期');
            system.debug('测试进入8');
            goOrNot = false;
   
        }
        /* 
        SWAG-B8Y84V 2019-02-11 start
         提交申请金额 和 预算批准金额 不再必填
        else if(ApplyMap.containsKey(insOppo.Opportunity_stage__c)&& insOppo.Application_Amount_Submit__c ==null){
            insOppo.Application_Amount_Submit__c.addError('提交申请金额不能为空');
            goOrNot = false;
            
        }
        else if(ApproveMap.containsKey(insOppo.Opportunity_stage__c)&& insOppo.Budget_Amount_Approval__c ==null){
            insOppo.Budget_Amount_Approval__c.addError('预算批准金额不能为空');
            goOrNot = false;
 
        }
         SWAG-B8Y84V 2019-02-11 start
        */
//*************************Insert 20160627 OCM-225 趙徳芳 Start*************************//
        else if((Old_Competitor == 'C'||Old_Competitor == 'A'||Old_Competitor == 'B')&&(insOppo.Competitor__c =='D'||insOppo.Competitor__c =='E')){
            insOppo.Opportunity_stage__c.addError('询价等级已达到'+Old_Competitor+',询价等级为C及以上的,不可以修改到D或E');
            goOrNot = false;
        }
//*************************Insert 20160627 OCM-225 趙徳芳 End***************************//
 
        else if('中标签约'.equals(insOppo.Opportunity_stage__c)&& insOppo.Closing_Bid_Date__c ==null){
            insOppo.Closing_Bid_Date__c.addError('中标日不能为空');
            goOrNot = false;
 
        }
 
        else{
            try{
                Opportunity Oppo = new Opportunity();
                Oppo.id = ESetId;
                Oppo.Opportunity_stage__c = insOppo.Opportunity_stage__c;
                Oppo.Application_Amount_Submit__c = insOppo.Application_Amount_Submit__c;
                Oppo.Budget_Amount_Approval__c = insOppo.Budget_Amount_Approval__c;
                Oppo.Bid_Date__c = insOppo.Bid_Date__c;
                Oppo.Closing_Bid_Date__c = insOppo.Closing_Bid_Date__c;
                Oppo.Close_Forecasted_Date__c = insOppo.Close_Forecasted_Date__c;
                Oppo.Close_Forecasted_Assume_Date__c  = insOppo.Close_Forecasted_Assume_Date__c;
                //Oppo.CloseDate = insOppo.CloseDate;
                update Oppo;
                goOrNot = true;
                //SWAG-B8Y84V 2019-02-11 start
                ApexPages.addMessage(new ApexPages.message(ApexPages.severity.INFO, '保存完了!'));
                // SWAG-B8Y84V 2019-02-11 end
                }catch(DmlException ex) {
                    ApexPages.addmessage(new ApexPages.message(ApexPages.severity.Error, ' '+ex.getDmlMessage(0)));
                    //SAP上传后,不允许修改「预测OCM签约日」
                    system.debug('测试进入13:'+ex.getDmlMessage(0));
                    return null;    
                }
        
        system.debug('测试进入12');
 
      }    
        return null;
    }
}