Skip to main content
Hello all!

I have a question, i have a field on my opp products for the "Life of the contract" call (Vigencia) it's a number field, what i need is to put that value on opp field called Vigencia_MAX, but i have two conditions for that:

1) Put the Vigencia on Opp from the product with the highest price or if

2) the price are the same, put the Highest Vigencia on pp.

So for that i have this

trigger VigenciaOpp on OpportunityLineItem (after insert, after update, after delete) {

list<id> oppids=new list<id>();

list<opportunity> oppnames=new list<opportunity>();

for(OpportunityLineItem c:trigger.new){

oppids.add(c.opportunityId);

}

system.debug('>>>>'+oppids);

List<opportunity> opps=new List<opportunity>([select id, (select id,Vigencia_N_mero__c,TotalPrice from OpportunityLineItems Where Califica_a_Comision__c=True Order by Vigencia_N_mero__c DESC ,Vigencia_N_mero__c DESC Limit 1 ) from opportunity where Opportunity.Id in:oppids]);

Decimal myDecimal = 0.00;

Integer n=myDecimal.intValue();

for(opportunity o:opps){

for(OpportunityLineItem o1:o.OpportunityLineItems){

Decimal myDecimal2 =o1.Vigencia_N_mero__c;

n=myDecimal2.intValue();

}

o.Vigencia_Comision__c=n;

oppnames.add(o);

}

update oppnames;

}

It work, but no in the way that I need, i'll really appreciate your help!
2 个回答
  1. 2019年2月25日 14:07
    Hello Murali! Sorry pp is Opp (Opportunity)
0/9000