+ Start a Discussion
Kevin Chiles 930Kevin Chiles 930 

Renewal Opp from Asset


I am trying to create opportunity renewals from Assets.  If an asset is tied to the same opportunity as an expiring asset, we need to add that as a line item on the opportunity page.  Right now, I can only create an opp with 1 product, but I may have 4 assets that need to be added to that opp as products due to their previous relationship.  Please see my code below to let me know what I am doing wrong:
trigger createOpp2 on Asset (after update) {

for(Asset A : Trigger.New){

//Opportunity opp=[select Id from Opportunity where id =: A.Opportunity__c Limit 1];

list<Asset> assets=[select Id,Product2id,Opportunity__c From Asset where Opportunity__c =:a.Opportunity__c];

 List<PriceBookEntry> ProductList =  [SELECT  Id, Product2Id,UnitPrice FROM PriceBookEntry WHERE Product2Id =:a.Product2id];

List<OpportunityLineItem> listOI = new List<OpportunityLineItem> ();

 if (Trigger.isUpdate && A.Create_Renewal_Opp__c==TRUE ) 
                        Opportunity o = New Opportunity(
                            AccountId =A.AccountId,
                            Name='New Subscrition Renewal',                    
                            Type = 'Subscription Renewal',
                            RecordTypeId=[select Id from RecordType where Name = 'Renewal' and SobjectType = 'Opportunity'].Id,
                            insert o;
                            for(PricebookEntry Product: ProductList){
                               Opportunitylineitem NewItem = new opportunitylineItem();
                                                  insert listOI;