You need to sign in to do that
Don't have an account?
Gaurav Agnihotri 11
Unable to update the value from a lookup field in VF page
I am unable to update the value of the custom lookup field on a VF page.
the desired feature is to add the opportunity to the Service Request custom object by clicking "Associate Opportunity" Button
Any suggestions?
the desired feature is to add the opportunity to the Service Request custom object by clicking "Associate Opportunity" Button
public class ServiceDeskCreateOpp { public string oppRecordType { get; set; } public string oppName { get; set; } public date OppCloseDate { get; set; } public Id serviceDeskId; public Id OppAccountId; public List<account> SDAccount; public Id existingOpp; //private final ServiceDesk__c serviceDesk; public ServiceDeskCreateOpp(ApexPages.StandardController stdController) { //this.serviceDesk = (ServiceDesk__c) stdController.getRecord(); serviceDeskId = apexpages.currentpage().getparameters().get('id'); System.debug('serviceDeskId=' + serviceDeskId); List<ServiceDesk__c> newServiceDesk = [select Client_Company_Name_Organization__c, Opportunity__c from ServiceDesk__c where Id = :serviceDeskId]; if (newServiceDesk.size() > 0) { OppAccountId = newServiceDesk[0].Client_Company_Name_Organization__c; existingOpp = newServiceDesk[0].Opportunity__c; } SDAccount = [select id, name from Account where id = :OppAccountId]; if (SDAccount.size() > 0) { oppName = SDAccount[0].Name; } System.debug('OppAccountId=' + OppAccountId); System.debug('newServiceDesk=' + newServiceDesk); System.debug('oppName=' + oppName); } public PageReference OppAssociate() { System.debug('test'); serviceDeskId = apexpages.currentpage().getparameters().get('id'); List<ServiceDesk__c> newServiceDesk = [select Client_Company_Name_Organization__c, Opportunity__c from ServiceDesk__c where Id = :serviceDeskId]; Id newPageOppId = newServiceDesk[0].Opportunity__c ; System.debug (newServiceDesk); if (newServiceDesk.size() > 0) { OppAccountId = newServiceDesk[0].Client_Company_Name_Organization__c; existingOpp = newServiceDesk[0].Opportunity__c; System.debug('existingOpp ='+existingOpp ); } if (existingOpp != null) { newpageOppId = existingOpp; opportunity newOppySD = new Opportunity(); newOppySD.Id=newPageOppId; newOppySD.Service_Desk_Requests__c = serviceDeskId; update newOppySD; } ServiceDesk__c newServiceDesk1 = new ServiceDesk__c(); System.debug('serviceDeskId=' + serviceDeskId + ' op.Id=' + newPageOppId); newServiceDesk1.Id = serviceDeskId; newServiceDesk1.Opportunity__c = newPageOppId; update newServiceDesk1; System.debug(System.Label.Opportunity_URL); PageReference pageRef = new PageReference(System.Label.Opportunity_URL + '?id=' + newPageOppId+'&sfdc.override=1'); System.debug(pageRef); return pageRef; } Public PageReference OppCreate() { System.debug('in function'); Opportunity op = new opportunity(); Id newPageOppId = existingOpp; System.debug ('In the function'+newPageOppId); if (oppName != null && OppCloseDate != null && OppCloseDate != null) { //user ServiceDeskOwner = [select id from user where FirstName = 'Jessica' and LastName =' Jessica']; op.Name = oppName; System.debug(oppName); op.z_Date_Last_non_USD_Hist_Rate_Check__c = System.today(); op.StageName = 'Suspect'; op.CloseDate = OppCloseDate; System.debug(OppCloseDate); System.debug(SDAccount[0].Id); op.AccountId = SDAccount[0].Id; op.recordTypeId = [SELECT Id, Name, SobjectType FROM RecordType WHERE SobjectType = 'Opportunity' AND Name = :oppRecordType].Id; op.Service_Desk_Requests__c = serviceDeskId; op.OwnerId = UserInfo.getUserId(); insert op; newPageOppId = op.Id; } else { ApexPages.addmessage(new ApexPages.message(ApexPages.severity.WARNING,'Please enter value')); } ServiceDesk__c newServiceDesk = new ServiceDesk__c(); System.debug('serviceDeskId=' + serviceDeskId + ' op.Id=' + newPageOppId); newServiceDesk.Id = serviceDeskId; newServiceDesk.Opportunity__c = newPageOppId; update newServiceDesk; //update newServiceDesk; System.debug(System.Label.Opportunity_URL); PageReference pageRef = new PageReference(System.Label.Opportunity_URL + '?id=' + newPageOppId+'&sfdc.override=1'); System.debug(pageRef); return pageRef; } public List<SelectOption> getSelectOpptyRecordType() { List<SelectOption> options = new List<SelectOption> (); options.add(new SelectOption('', '')); options.add(new SelectOption('Default', 'Default')); options.add(new SelectOption('Partner Services', 'Partner Services')); options.add(new SelectOption('SMB', 'SMB')); options.add(new SelectOption('SMB Client Renewal', 'SMB Client Renewal')); options.add(new SelectOption('Sub-Contracted Services', 'Sub-Contracted Services')); options.add(new SelectOption('Technical Project', 'Technical Project')); return options; } public ServiceDesk__c getOpportunity() { return[select Opportunity__r.name from ServiceDesk__c limit 1]; } }and here's VF page:
<apex:page standardcontroller="ServiceDesk__c" extensions="ServiceDeskCreateOpp" doctype="html-5.0"> <apex:form> <apex:pageblock id="AssociateOpty"> <apex:pageMessages ></apex:pageMessages> <br /><br /> <br /><br /> <apex:commandbutton value="Associate Opportunity" action="{!OppAssociate}"> </apex:commandbutton> Choose an existing Opportunity Name : <apex:inputField value="{!ServiceDesk__c.Opportunity__c}"/> <br /><br /> </apex:pageblock> <br /><br /> <b>OR</b> <br /><br /> <apex:pageblock id ="CreateOpty"> <apex:pageMessages ></apex:pageMessages> <br /><br /> <apex:commandbutton value="Create Opportunity" action="{!OppCreate}"> </apex:commandbutton> <br /><br /> Create a new Opportunity: <apex:input value="{!oppName}" /> <br /><br /> Closed Date : <apex:input value="{!OppCloseDate}" type="date" /> <br /><br /> <apex:selectlist id="Best2" value="{!oppRecordType}" size="1" required="true"> Opportunity Type:<apex:selectoptions value="{!SelectOpptyRecordType}" /> </apex:selectlist> <br /><br /> <br /><br /> <br /><br /> <br /><br /> <br /><br /> <br /><br /> <table style="width:100%" border="1"> <tr> <th>Record Type Name</th> <th>Description</th> </tr> <tr> <td>Client Renewal</td> <td>Use for all Client Renewal Opportunities including Baseline, Upsell, Cross-sell, or Uptick</td> </tr> <tr> <td>Default</td> <td>Use for Enterprise, Business Edition, CFS, and sales to Existing Clients. Do NOT use this for PiiQ.</td> </tr> <tr> <td>Partner Services</td> <td> Use for partners bidding and winning services into CSOD without revenue. </td> </tr> <tr> <td>SMB</td> <td>Use for SMB Opportunities only (SMB team-owned)</td> </tr> <tr> <td> SMB Client Renewal </td> <td>Renewal to be used by PiiQ and CFS sales teams</td> </tr> <tr> <td>Sub-Contracted Services</td> <td>Use for Partners Services sub-contracted back to CSOD</td> </tr> <tr> <td>Technical Project</td> <td>Used for Technical Projects and additional services</td> </tr> </table> </apex:pageblock> </apex:form> </apex:page>
Any suggestions?