buli
2022-05-13 2f4492ee18f90274582fcc2bb06f5e9bf64136e8
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
public with sharing class NewLoanerApplicationController {
    //客户ID
    public String accountID {get; private set;}
    //联系人id
    public String contactID {get; private set;}
 
    public loaner_application__c la{get; private set;}
    public String typeName {get; private set;}
 
    public String userType {get; private set;}
 
    public String baseUrl { get; set; }
    public String rtUrl { get; set; }
 
    public NewLoanerApplicationController() {
        baseUrl = URL.getSalesforceBaseUrl().toExternalForm();
        String path = URL.getCurrentRequestUrl().getPath();
        if (path.indexOf('/apex') > 0) {
            baseUrl += path.substring(0,path.indexOf('/apex'));
        } else if (path.indexOf('production/') > 0) {
            baseUrl += '/production';
        }
        rtUrl = System.currentPageReference().getParameters().get('retURL');
        if (rtUrl == null || rtUrl == 'null') {
            rtUrl = '';
        }
    }
 
    public PageReference init() {
        userType = UserInfo.getUserType();
        accountID = System.currentPageReference().getParameters().get('accid');
        contactID = System.currentPageReference().getParameters().get('conId');
 
        Account acc = [select id,ProductSegment__c from Account where id = :accountID];
        typeName = acc.ProductSegment__c;
        Id recordTypeId =Schema.SObjectType.loaner_application__c.getRecordTypeInfosByName()
                  .get(typeName).getRecordTypeId();
        
        la = new loaner_application__c();
        la.RecordTypeId= recordTypeId;
        if(typeName == 'BS' && userType != 'Standard'){
            la.RecordTypeId = System.label.bs_D_ID;
        }
        System.debug(la.RecordTypeId);
        //ApexPages.addmessage(new ApexPages.message(ApexPages.severity.Error,accountID));
        return null;
    }
 
    public PageReference saveBtn() {
        if(la.Request_shipping_Date__c < Date.today()){
             ApexPages.addmessage(new ApexPages.message(ApexPages.severity.Error, '到货日不得早于今天'));
            return null;
        }
        if(la.Request_shipping_Date__c >= la.Request_return_Date__c){
             ApexPages.addmessage(new ApexPages.message(ApexPages.severity.Error, '归还日不得早于到货日'));
            return null;
        }
        Account acc = [select id,Name from Account where id = :accountID];
        la.Loaner_Account__c = acc.Name;
        la.ApplyPerson__c = UserInfo.getUserId();
         Savepoint sp = Database.setSavepoint();
        try {
            insert la;
 
            loaner_user__c lu = new loaner_user__c();
            lu.loaner_application__c = la.id;
            lu.Customer__c = accountID;
             
             if(contactID != null){
                 lu.Contact__c = contactID;
                 Contact contact = [select id,Phone,Name,Address1__c from Contact where id = :contactID];
                 lu.ContactNumber__c = contact.Phone;
                 
             }
             
            insert lu;
            String url = baseUrl + '\\' + la.Id;
            return new Pagereference(url);
        } catch (Exception e) {
            Database.rollback(sp);
            ApexPages.addmessage(new ApexPages.message(ApexPages.severity.Error, e.getMessage()));
        }
 
        return null;
    }
 
        public PageReference cancelBtn() {
        // 返回样机借出申请画面
        String url = baseUrl;
        if(contactID == null){
            url += '\\' + accountID;
        }else{
            url += '\\' + contactID;
        }
        
        return new Pagereference(url);
        return null;
    }
}