public without sharing class NewQuoteDevideController { private String oid; private String qid; private String ot; private String cid; private String rturl; public NewQuoteDevideController(ApexPages.StandardController controller) { this(); } public NewQuoteDevideController() { oid = System.currentPageReference().getParameters().get('oppid'); qid = System.currentPageReference().getParameters().get('id'); ot = System.currentPageReference().getParameters().get('openType'); cid = System.currentPageReference().getParameters().get('copyid'); rturl = System.currentPageReference().getParameters().get('retURL'); } public PageReference init() { PageReference pr = null; String quoId = ''; String oppId = ''; if (cid != null && cid.length() > 0) { quoId = cid; } else if (qid != null && qid.length() > 0) { quoId = qid; } else if (oid != null && oid.length() > 0) { oppId = oid; } boolean isService = false; if (ot == 'service') { isService = true; } else { if (quoId != null && quoId.length() > 0) { List quoList = [select Id, Quote_Type__c from Quote where Id = :quoId]; String rt = quoList[0].Quote_Type__c; isService = rt == 'service'; } if (oppId != null && oppId.length() > 0) { List oppList = [select Id, RecordTypeId from Opportunity where Id = :oppId]; String rt = oppList[0].RecordTypeId; isService = rt.substring(0, 15) == System.Label.RT_SSBD_Service; } } String cStr = ''; if (cid != null && cid.length() > 0) { cStr = '©id=' + cid; } String rStr = ''; if (rturl != null && rturl.length() > 0) { rStr = '&retURL=' + rturl; } if (oid != null && oid.length() > 0) { if (isService == true) { pr = new PageReference('/apex/NewQuoteService?oppid=' + oid + '&openType=service' + cStr + rStr); } else { pr = new PageReference('/apex/NewQuoteEntry?oppid=' + oid + cStr + rStr); } } else if (qid != null && qid.length() > 0) { if (isService == true) { pr = new PageReference('/apex/NewQuoteService?id=' + qid + '&openType=service' + rStr); } else { pr = new PageReference('/apex/NewQuoteEntry?id=' + qid + rStr); } } pr.setRedirect(true); return pr; } }