Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- <apex:pageBlock title="Select the services that are applicable to this milestone.">
- <apex:pageblockSection >
- <apex:selectCheckboxes value="{!selections}">
- <apex:selectOptions value="{!ServicesNameToID}" />
- </apex:selectCheckboxes>
- </apex:pageblockSection>
- </apex:pageBlock>
- <apex:commandButton action="{!createRelatedServices}"
- value="Add Related Service" id="button"/>
- </apex:form>
- public Map<String, ID> ServicesNameToID {get;set;}
- public pse__Milestone__C milestone {get;set;}
- public pse__Milestone__C queriedMilestone {get;set;}
- public String[] selections {get;set;}
- public RelatedServiceController(ApexPages.StandardController stdController) {
- milestone = (pse__Milestone__C)stdController.getRecord();
- getServices();
- }
- public void getServices(){
- //Need to fully query the milestone to get project ID/opp ID
- queriedMilestone = [SELECT Name, ID, pse__Project__c, pse__Project__r.pse__Opportunity__c from pse__milestone__C where id = :milestone.ID];
- List<OpportunityLineItem> oppLineItems = [SELECT name, ID, Product2ID, ProductName__c from OpportunityLineItem
- WHERE OpportunityID = :queriedMilestone.pse__project__r.pse__opportunity__c];
- ServicesNameToID = new Map<String, ID>();
- for(OpportunityLineItem oli: oppLineItems){
- ServicesNameToID.put(oli.ProductName__c, oli.Product2ID);
- //system.debug(oli.ProductName__c);
- //system.debug(oli.Product2ID);
- }
- }
- public PageReference createRelatedServices(){
- List<Related_Service__c> relatedServicesToInsert = new List<Related_Service__c>();
- if(selections != null && selections.size() > 0){
- //Strings of the service name will be returned - match them up with the ID of that service using our map
- for (integer i = 0; i < selections.size(); i++){
- ID serviceToRelateID = ServicesNameToID.get(selections[i]);
- Related_Service__c rs = new Related_Service__c();
- rs.Milestone__c = milestone.ID;
- rs.Service__c = serviceToRelateID;
- rs.Name = 'test';
- relatedServicesToInsert.add(rs);
- }
- }
- insert relatedServicesToInsert;
- PageReference pageRef = new PageReference('/' + milestone.ID);
- pageRef.setRedirect(true);
- return pageRef;
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement