You need to sign in to do that
Don't have an account?
Adam Balme 13
Redirect to Created Quote
Hi,
I have this page which opens a visualforce page on an opportunity record. Its allows the user to select products from the opportunity to include on a newly created quote.
How do I get this to redirect to the newly created quote when the 'Create Quote' button is clicked.
The code woprks fine currently but the user is not redirected.
Many thanks
Apex class:
I have this page which opens a visualforce page on an opportunity record. Its allows the user to select products from the opportunity to include on a newly created quote.
How do I get this to redirect to the newly created quote when the 'Create Quote' button is clicked.
The code woprks fine currently but the user is not redirected.
Many thanks
<apex:page standardController="Opportunity" extensions="CreateQuoteClass" lightningStylesheets="true"> <apex:sectionHeader title="Opportunity Items"/> <apex:form > <apex:pageBlock title="Products Items"> <apex:pageBlockTable var="qi" value="{!quotewrapperlist}" id="quoteitem"> <apex:column headerValue="Action"> <apex:inputCheckbox value="{!qi.isChecked}"/> </apex:column> <apex:column headerValue="Product" value="{!qi.oliresult.name}"/> <apex:column headerValue="Quantity" value="{!qi.oliresult.Quantity}"/> <apex:column headerValue="Sales Price" value="{!qi.oliresult.Unitprice}"/> <apex:column headerValue="List Price" value="{!qi.oliresult.TotalPrice}"/> </apex:pageBlockTable> <apex:pageBlockButtons > <apex:commandButton value="Create Quote" action="{!saveQuote}" immediate="false"/> </apex:pageBlockButtons> </apex:pageBlock> </apex:form> </apex:page>
Apex class:
public class CreateQuoteClass { public String opportunitystringId {get;set;} public List<Opportunity> opportunityList {get;set;} public List<quotewrapper> quotewrapperlist {get;set;} public List<OpportunityLineItem> oliList{get;set;} public class quotewrapper { public Boolean isChecked {get;set;} public OpportunityLineItem oliresult {get;set;} public quotewrapper(Boolean isChecked, OpportunityLineItem oliresult) { This.isChecked = isChecked; This.oliresult = oliresult; } } public CreateQuoteClass(ApexPages.StandardController controller) { try{ quotewrapperlist = new List<quotewrapper>(); opportunitystringId = ApexPages.CurrentPage().getparameters().get('Id'); if(opportunitystringId!=null) { opportunityList = [SELECT Id,Name,CloseDate,AccountId,Pricebook2Id from Opportunity WHERE Id =:opportunitystringId]; oliList = [Select Id,Name,Quantity,OpportunityId,UnitPrice,Product2Id,PricebookentryId,TotalPrice from OpportunityLineItem WHERE OpportunityId =:opportunitystringId]; } if(oliList.size()>0) { for(OpportunityLineItem olObj:oliList) { quotewrapper qobj = new quotewrapper(false, olObj); quotewrapperlist.add(qobj); } } } catch(Exception e) { System.debug('The following exception has occurred: ' + e.getMessage()); } } public void saveQuote() { try{ List<OpportunityLineItem> olilistNew = new List<OpportunityLineItem>(); List<QuoteLineItem> quoteItemList = new List<QuoteLineItem>(); for(quotewrapper qwr : quotewrapperlist) { if(qwr.isChecked==true) { olilistNew.add(qwr.oliresult); } } List<Quote> quoteListNew = new List<Quote>(); if(opportunityList.size()>0) { for(Opportunity opportunityObj : opportunityList) { Quote quoteObj = new Quote(); quoteObj.Name=opportunityObj.Name; quoteObj.OpportunityId = opportunityObj.Id; quoteObj.Pricebook2Id =opportunityObj.Pricebook2Id; quoteListNew.add(quoteObj); } } if(quoteListNew.size()>0) { Database.SaveResult[] quoteItemSaveList = Database.insert(quoteListNew); } if(olilistNew.size()>0) { for(Quote qutObj: quoteListNew) { for(OpportunityLineItem oliObj : olilistNew) { QuoteLineItem qlobj = new QuoteLineItem(); qlobj.Quantity=oliObj.Quantity; qlobj.PricebookEntryId=oliObj.PricebookEntryId; qlobj.QuoteId=qutObj.Id; qlobj.Product2Id=oliObj.Product2Id; qlobj.UnitPrice=oliObj.UnitPrice; quoteItemList.add(qlobj); } } if(quoteItemList.size()>0) { Database.SaveResult[] quoteItemSaveList = Database.insert(quoteItemList); } } } catch(Exception e) { System.debug('The following exception has occurred: ' + e.getMessage()); } } }
You need to use "Pagereference" concept to redirect to the newly created Quote or to any page.
I have modify your code, and have highlighted the changes.
Kindly mark it as the best answer if the information helps you.
Thanks!