【发布时间】:2020-02-07 12:16:47
【问题描述】:
我需要从配额开始日期和结束日期之间的所有已关闭赢得机会的机会中添加所有(SUM)金额。
- 机会应该被关闭赢得
- 关闭日期应在配额的开始和结束日期内
- 分配给用户,这是配额上的查找字段,等于 配额所有者
下面是代码
public with sharing class listopponquota {
public list<Opportunity> oppList{get;set;}
public listopponquota()
{
String selectedVal ='';
oppList = new list<Opportunity>();
oppList();
}
*public pageReference oppList() {
Id qId = (Id) ApexPages.currentPage().getParameters().get('id');
system.debug('Id-->'+qId);
List<Opportunity> oppList1 = new List<Opportunity>();
oppList1 = [Select Id, Name, CloseDate, StageName,OwnerId,Amount From Opportunity where StageName = 'Closed Won'];
system.debug('quotaList1-->'+quotaList1);
if(quotaList1.size() > 0){
for(quota__c q : quotaList1){
map<id,double> amtmap = new map<id,double>();
for(aggregateresult ag : [SELECT SUM(Amount) sum,Quota__c FROM Opportunity where Quota__c in :quotaList1 and StageName = 'Closed Won' group by Quota__c ]){
amtmap.put((ID)ag.get('Quota__c'), double.valueof(ag.get('SUM')));
{
amtmap.put((ID)ag.get('Quota__c'), double.valueof(ag.get('SUM')));
}
list<Quota__c>Qtalist = new list<Quota__c>();
for(id iid : QtaIds){
Quota__c quot = new Quota__c(id=iid);
if(amtmap.containskey(iid)){
q.Actual_Amount__c = amtmap.get(iid);
}else{
q.Actual_Amount__c = 0;
}
Qtalist.add(quot);
}
if(Qtalist.size()>0){
update Qtalist;
return null;
}
}
}
}
}
}*
【问题讨论】:
标签: salesforce