function readOnly(count){ }
Starting November 20, the site will be set to read-only. On December 4, 2023,
forum discussions will move to the Trailblazer Community.
+ Start a Discussion
sourabh kalvasourabh kalva 

Fix the trigger below, that creates renewal opportunities for all closed-won deals

Fix the trigger below, that creates renewal opportunities for all closed-won dealsUser-added image
Sai PraveenSai Praveen (Salesforce Developers) 
Hi Sourabh,

Can you paste the code instead of screenshot as it takes time to write the same code again.

Thanks,
 
sourabh kalvasourabh kalva
trigger CreateRenewalOpps on Opportunity (before update) {
// Create a Map to store all renewal opps for bulk inserting
Map</d, Opportunity> renewals = new Map<Id, Opportunity>();
for (Opportunity opp : Trigger.new) {
// Only create renewal opps for closed won deals
if (opp.StageName.contains('Closed')) {
Opportunity renewal = new Opportunity();
renewal.Accountld = 'opp.Accountld';
renewal.Name = opp.Name + 'Renewal';
renewal.CloseDate = opp.CloseDate + 365; // Add a year
renewal.StageName = 'Open';
renewal.Record Type = 'Renewal';
renewal.Ownerld
= opp.Ownerld;
renewals.put(renewal.Id, renewal);
}
}
insert renewals;
}
 
Sai PraveenSai Praveen (Salesforce Developers) 
Hi Sourabh,

Please try the below code. Use After update as you are trying to create a new record.
 
trigger CreateRenewalOpps on Opportunity (after update) {
// Create a Map to store all renewal opps for bulk inserting
List< Opportunity> renewals = new List< Opportunity>();
for (Opportunity opp : Trigger.new) {
    opportunity oldvalue= trigger.oldmap.get(opp.id);
// Only create renewal opps for closed won deals
if (opp.StageName.contains('Closed') && oldvalue.StageName!= opp.StageName) {
Opportunity renewal = new Opportunity();
renewal.Name = opp.Name + 'Renewal';
renewal.AccountId=opp.AccountId ;
renewal.CloseDate = opp.CloseDate + 365; // Add a year
renewal.StageName = 'Open';
renewal.RecordTypeid = Schema.SObjectType.Opportunity.getRecordTypeInfosByName().get('renewal').getRecordTypeId();
renewal.Ownerid= opp.Ownerid;
renewals.add( renewal);
}
}
insert renewals;
}

If this solution helps, Please mark it as best answer.

Thanks,
​​​​​​​