Advertisement
Guest User

Untitled

a guest
Jul 16th, 2019
119
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 2.37 KB | None | 0 0
  1. <apex:pageBlock title="Select the services that are applicable to this milestone.">
  2. <apex:pageblockSection >
  3. <apex:selectCheckboxes value="{!selections}">
  4. <apex:selectOptions value="{!ServicesNameToID}" />
  5. </apex:selectCheckboxes>
  6. </apex:pageblockSection>
  7. </apex:pageBlock>
  8.  
  9.  
  10. <apex:commandButton action="{!createRelatedServices}"
  11. value="Add Related Service" id="button"/>
  12. </apex:form>
  13.  
  14. public Map<String, ID> ServicesNameToID {get;set;}
  15. public pse__Milestone__C milestone {get;set;}
  16. public pse__Milestone__C queriedMilestone {get;set;}
  17. public String[] selections {get;set;}
  18.  
  19. public RelatedServiceController(ApexPages.StandardController stdController) {
  20. milestone = (pse__Milestone__C)stdController.getRecord();
  21. getServices();
  22. }
  23.  
  24. public void getServices(){
  25. //Need to fully query the milestone to get project ID/opp ID
  26. queriedMilestone = [SELECT Name, ID, pse__Project__c, pse__Project__r.pse__Opportunity__c from pse__milestone__C where id = :milestone.ID];
  27.  
  28. List<OpportunityLineItem> oppLineItems = [SELECT name, ID, Product2ID, ProductName__c from OpportunityLineItem
  29. WHERE OpportunityID = :queriedMilestone.pse__project__r.pse__opportunity__c];
  30.  
  31. ServicesNameToID = new Map<String, ID>();
  32. for(OpportunityLineItem oli: oppLineItems){
  33. ServicesNameToID.put(oli.ProductName__c, oli.Product2ID);
  34. //system.debug(oli.ProductName__c);
  35. //system.debug(oli.Product2ID);
  36. }
  37.  
  38. }
  39.  
  40. public PageReference createRelatedServices(){
  41.  
  42. List<Related_Service__c> relatedServicesToInsert = new List<Related_Service__c>();
  43.  
  44. if(selections != null && selections.size() > 0){
  45. //Strings of the service name will be returned - match them up with the ID of that service using our map
  46. for (integer i = 0; i < selections.size(); i++){
  47. ID serviceToRelateID = ServicesNameToID.get(selections[i]);
  48.  
  49. Related_Service__c rs = new Related_Service__c();
  50. rs.Milestone__c = milestone.ID;
  51. rs.Service__c = serviceToRelateID;
  52. rs.Name = 'test';
  53. relatedServicesToInsert.add(rs);
  54. }
  55. }
  56.  
  57. insert relatedServicesToInsert;
  58. PageReference pageRef = new PageReference('/' + milestone.ID);
  59. pageRef.setRedirect(true);
  60. return pageRef;
  61. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement