public with sharing class NewHighProductsOppController { public boolean hasError { get; set; } public boolean isDealerPage { get; set; } public Opportunity opp { get; set; } public String accId { get; set; } public String conId { get; set; } private Account acc; private Contact con; public String baseUrl { get; set; } public String rtUrl { get; set; } public String ProductSegment { get; set; } public String staticResource {get; set;} public String oppid {get; set;} public NewHighProductsOppController() { 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() { hasError = false; accId = System.currentPageReference().getParameters().get('accid'); conId = System.currentPageReference().getParameters().get('conId'); staticResource = JSON.serialize(PIHelper.getPIIntegrationInfo('Opportunity')); List accList = [select Id, Name, ProductSegment__c,OwnerID__c from Account where Id = :accId]; if (accList.size() > 0) { acc = accList[0]; } List conList = [select Id, Name from Contact where Id = :conId]; if (conList.size() > 0) { con = conList[0]; } ProductSegment = acc.ProductSegment__c; isDealerPage = UserInfo.getUserType() == 'PowerPartner' && acc.ProductSegment__c != 'BS' && acc.ProductSegment__c != 'IE' && acc.ProductSegment__c != 'RVI' && acc.RecordTypeId != System.Label.RT_SSBD_Service; String dealerName = ''; String dealerId = ''; if (UserInfo.getUserType() == 'PowerPartner' && acc.ProductSegment__c != 'BS') { User dealerUser = [select id, DealerName__c, DealerId__c from User where id = :UserInfo.getUserId()]; dealerName = dealerUser.DealerName__c; dealerId = dealerUser.DealerId__c; } Id recordTypeId =Schema.SObjectType.Opportunity.getRecordTypeInfosByName().get('SSBD_HighendProducts').getRecordTypeId(); system.debug(recordTypeId); opp = new Opportunity(); opp.RecordTypeId = recordTypeId; opp.AccountId = acc.Id; opp.Account = acc; opp.ProductSegment__c = acc.ProductSegment__c; opp.Type = 'Not Traget'; opp.SalesChannel__c = 'dealer'; opp.NewInquiryDate__c = Date.today(); opp.StageName = 'Prospect Created'; opp.CloseDate = Date.valueOf('1900-01-01'); //opp.OwnerId = acc.OwnerID__c; if (UserInfo.getUserType() == 'PowerPartner' && acc.ProductSegment__c != 'BS') { opp.Dealer__c = dealerId; } return null; } public PageReference saveBtn() { List checkList = [select id, Name from Opportunity where AccountId = :opp.AccountId and Name = :opp.Name]; if (checkList.size() > 0) { ApexPages.addmessage(new ApexPages.message(ApexPages.severity.Info, '该客户下有名称一样的询价,是否继续创建该询价?')); hasError = true; } else { return saveBtnYes(); } return null; } public PageReference saveBtnYes() { system.debug('=====saveBtnYes'); Savepoint sp = Database.setSavepoint(); try { opp.RecordTypeId = System.Label.SSBD_HighendProducts; insert opp; OpportunityContactRole ocr = new OpportunityContactRole(); ocr.OpportunityId = opp.Id; ocr.ContactId = con.Id; ocr.Role = 'End user'; ocr.IsPrimary = true; insert ocr; hasError = false; oppid = opp.id; // String url = baseUrl + '\\' + opp.Id; // return new Pagereference(url); return null; } catch (Exception e) { Database.rollback(sp); ApexPages.addmessage(new ApexPages.message(ApexPages.severity.Error, e.getMessage())); hasError = false; } return null; } public PageReference saveBtnNo() { system.debug('=====saveBtnNo'); hasError = false; return null; } }