I am trying to clone an opportunityLineItem but I am getting an error :
Field is not writeable: OpportunityLineItem.Product2Id
public class OppLineItem {
public OpportunityLineItem objOpportunityLineItem{get;set;}
Pricebook2 pb = [Select id from Pricebook2 where isStandard = true limit 1];
public OppLineItem(ApexPages.StandardController controller) {
objOpportunityLineItem = [SELECT Id,Opportunityid,
ServiceDate,Product2id,TotalPrice,ListPrice,Asset__c,UnitPrice,Quantity,Description,Product2.Name FROM OpportunityLineItem WHERE ID =:controller.getId() limit 1];
}
public PageReference onSave(){
PricebookEntry pbe = new PricebookEntry();
pbe.Pricebook2Id= pb.id;
pbe.Product2Id = objOpportunityLineItem.Product2id;
pbe.UnitPrice = 1000;
insert pbe;
OpportunityLineItem oliClone = new OpportunityLineItem ();
oliClone.Opportunityid = objOpportunityLineItem.Opportunityid;
oliClone.ServiceDate = objOpportunityLineItem.ServiceDate;
//oliClone.Product2id = objOpportunityLineItem.Product2id;
oliClone.TotalPrice = objOpportunityLineItem.TotalPrice;
//oliClone.ListPrice = objOpportunityLineItem.ListPrice;
oliClone.Asset__c = objOpportunityLineItem.Asset__c;
oliClone.UnitPrice = objOpportunityLineItem.UnitPrice;
oliClone.Quantity = objOpportunityLineItem.Quantity;
oliClone.Description = objOpportunityLineItem.Description;
insert oliClone;
Pagereference pr = new PageReference('/'+oliClone.Id+'?retUrl=/'+oliClone.Id);
pr.setRedirect(true);
return pr;
}
}