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;
    }
}