public with sharing class NewCrossHighOpportunityController {
|
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 NewCrossHighOpportunityController() {
|
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');
|
|
List<Account> accList = [select Id, Name, ProductSegment__c,OwnerID__c from Account where Id = :accId];
|
if (accList.size() > 0) {
|
acc = accList[0];
|
}
|
|
List<Contact> 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<Opportunity> 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 {
|
//测试环境Id
|
//opp.RecordTypeId = '0120T0000002kYL';
|
//正式环境id
|
opp.RecordTypeId = '0120K000000OpaH';
|
opp.CrossCooperativeProject__c = true;
|
opp.CrossCooperativeProjectL__c = true;
|
|
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;
|
|
String url = baseUrl + '\\' + opp.Id;
|
return new Pagereference(url);
|
} 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;
|
}
|
}
|