• Ash Pate 1
  • NEWBIE
  • 0 Points
  • Member since 2017

  • Chatter
    Feed
  • 0
    Best Answers
  • 0
    Likes Received
  • 0
    Likes Given
  • 1
    Questions
  • 1
    Replies

Hey Everyone- Im not too familar with Apex but need help writing a class for the following working SOQL:


select OpportunityLineItemSchedule.OpportunityLineItem.OpportunityID, ScheduleDate, sum(Revenue) Revenue from OpportunityLineItemSchedule where OpportunityLineItemSchedule.OpportunityLineItem.OpportunityID=:objOpp.Id group by scheduledate, OpportunityLineItemSchedule.OpportunityLineItem.OpportunityID order by scheduledate

Basically trying to group revenue by month rather then having multiple same months with different revenue. I was able to find this which does what I am looking for but when I change the SOQL can not aggregate correctly. Any help here would be sooooo much appreciated...

Thanks!
 

<apex:page standardController="Opportunity" action="{!getOLIS}" tabStyle="Opportunity" extensions="OpportunityScheduleExtension">
 <apex:form >
 <apex:sectionHeader title="Opportunity" subtitle="{!Opportunity.Name}"/>
 <apex:pageBlock >
     <apex:pageBlockSection >
         <apex:outputField value="{!Opportunity.Name}"/>
         <apex:outputField value="{!Opportunity.CloseDate}"/>
         <apex:outputField value="{!Opportunity.StageName}"/>
     </apex:pageBlockSection>
  </apex:pageBlock>
     <apex:pageBlock title="Schedule">
     <apex:pageBlockTable value="{!lstOLIS}" var="lst" >
          <apex:column headerValue="Date" value="{!lst.ScheduleDate}"/>
          <apex:column headerValue="Revenue" value="{!lst.Revenue}"/>
          <apex:column headerValue="Comment" value="{!lst.Description}"/>
     </apex:pageBlockTable>
     </apex:pageBlock>
 </apex:form>
</apex:page>
 
public with sharing class OpportunityScheduleExtension {
    Opportunity objOpp;
    public list<OpportunityLineItemSchedule> lstOLIS {get;set;}
    public OpportunityScheduleExtension(ApexPages.StandardController controller) {
        this.objOpp= (Opportunity)controller.getRecord();
    }
    
   
    public void getOLIS(){
        lstOLIS = new list<OpportunityLineItemSchedule >();
        system.debug('objOpp---------->'+objOpp);
        for(OpportunityLineItemSchedule objOLIS:[Select Id, ScheduleDate, Revenue,
                                                 OpportunityLineItem.Product2.Name,
                                                 Description
                                                 from OpportunityLineItemSchedule 
                                                 where OpportunityLineItem.OpportunityId =:objOpp.Id] ){
            lstOLIS.add(objOLIS);                                             
        }
    }    
}
 


 

Hi All,
Does anyone know if a standard Controller or Extention exists for pulling the revenue schedule list, and can be used in a VF page?
The ultimate goal is to have the product revenue schedule reflected on the opportunity layout page. Any other solution will be appreciated too!

Thanks!