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
MontTwo MontTwoMontTwo MontTwo 

Test button's action that adds OpportunityLineItem

Hello. I have a problem with one code's part.

Controller (a part):
public void click(){
        for(WrapperClass wrp : wrapperRecordList){          
              if(wrp.isSelected){
                OpportunityLineItem opp = new OpportunityLineItem();
                opp.Product2Id = wrp.productRecord.Id;
                opp.Quantity = wrp.quantity;
                opp.OpportunityId = prodId;
                try{
                    opp.PricebookEntryId = [SELECT Id FROM PricebookEntry WHERE Pricebook2Id IN (SELECT Pricebook2Id FROM Opportunity WHERE Id =: prodId) AND Product2Id =: wrp.productRecord.Id LIMIT 1].Id;
                    opp.TotalPrice = wrp.quantity * [SELECT UnitPrice FROM PricebookEntry WHERE Pricebook2Id IN (SELECT Pricebook2Id FROM Opportunity WHERE Id =: prodId) AND Product2Id =: wrp.productRecord.Id LIMIT 1].UnitPrice;                    
                    insert opp;                
                }catch(Exception e) {
                    ApexPages.addMessage(new ApexPages.Message(ApexPages.SEVERITY.ERROR, e.getMessage()));
                }     
            } 
         }
     }
Test (a part):
Account acc = new Account(Name ='Test acc');
		insert acc;
        Product2 prod = new Product2(Name = 'AutoBot', IsActive = true);
		insert prod;   
        PriceBook2 pb2 = new PriceBook2(Name = 'Test pb', IsActive = true);
        insert pb2;
        Opportunity opport = new Opportunity(Name = 'Test opp', CloseDate = date.today(), AccountId= acc.Id, Pricebook2Id = pb2.Id, StageName = 'Prospecting');
        insert opport;
	    PricebookEntry standardpbe = new PricebookEntry(Pricebook2Id = test.getstandardpricebookid(), Product2Id = prod.Id, UnitPrice = 0.0, IsActive = true);
        insert standardpbe;
       	PricebookEntry pbe = new PricebookEntry(Pricebook2Id = pb2.Id, Product2Id = prod.Id, UnitPrice = 10.0, IsActive = true);
        insert pbe;               

        OpportunityLineItem item = new OpportunityLineItem();
        item.OpportunityId = opport.Id;
        item.Product2Id = prod.Id;
        item.PricebookEntryId = pbe.Id;
        item.Quantity = quantity;
        item.TotalPrice = item.Quantity * pbe.UnitPrice;
        insert item;
        
        prController.click();
And I have that:
User-added image
I do something wrong?
Raj VakatiRaj Vakati
give me a complete code .. what you need to do it is the erapper class isSelected to true 
MontTwo MontTwoMontTwo MontTwo

The code is really big. isSelected - the checkbox from Wrapper Class.