Sunday, April 7, 2013

Adding products to Opportunity product family


Visualforce Page:

<apex:page controller="myproductscls">
  <apex:form >
      <apex:pageBlock >
           <apex:actionFunction name="call" action="{!show}"/>
            <div align="center">
           Product Family:<apex:selectlist value="{!selectopt}" size="1" onchange="call()">
                <apex:selectOptions value="{!items}"/>
            </apex:selectlist> 
            </div>
          <apex:pageBlockTable value="{!lmw}" var="l">
              <apex:column headerValue="Select">
                  <apex:inputCheckbox value="{!l.selected}"/>
              </apex:column>
              <apex:column value="{!l.prodname}" headerValue="Name"/>
              <apex:column value="{!l.prodfamily}" headerValue="Family"/>
          </apex:pageBlockTable>
          <apex:pageBlockButtons >
              <apex:commandButton value="Add" action="{!addprod}"/>
          </apex:pageBlockButtons>
      </apex:pageBlock>
      
  </apex:form>
</apex:page>

Apex Class:


public with sharing class myproductscls 
{
    public PageReference addprod()
    {
        String oppid = Apexpages.currentpage().getparameters().get('opid');
        List<OpportunityLineItem> listopp=new List<OpportunityLineItem>(); 
        for(mywrapper w:lmw)
        {
            if(w.selected==true)
            {
                system.debug('-------------------------------------------------------------wrappers class boolean value is true');
                Opportunity oppor = [select pricebook2id from opportunity where id =:oppid ];
                
                List<pricebookentry> lpbe = [select id from pricebookentry where product2id = :w.prodid and pricebook2id =:oppor.pricebook2id];
                for(pricebookentry pbe : lpbe)
                {
                    opportunitylineitem ol = new opportunitylineitem();            
                    ol.pricebookentryid = pbe.id;
                    ol.Opportunityid = oppid;
                    ol.totalprice = 100.00;
                    ol.quantity = 10;
                    listopp.add(ol);
                }
            }
        }                         
        insert listopp;      
        return new Pagereference('/'+oppid);
    }

List<Product2> lp ;
public List<mywrapper> lmw {get; set;}
public List<selectoption> items {get; set;}
public String selectopt {get; set;}
public myproductscls(){
        items= new List<selectOption>();
        Schema.describefieldresult f= Schema.sobjecttype.Product2.fields.Family;
        System.debug('--------->'+f.getpicklistvalues());
        List<Schema.PicklistEntry> lst= f.getpicklistvalues();
        items.add(new selectoption('--','-None-'));
        for(Schema.PicklistEntry s: lst){        
            items.add(new selectOption(s.getvalue(), s.getlabel()));
                       }
lmw = new List<mywrapper>();
lp =[select name,family from product2];
if(lp.size()>0)
{
    for(product2 p : lp)
    {
        lmw.add(new mywrapper(p.name,p.family,p.id));
    }

}
}
public class mywrapper
{
    public String prodname{get; set;}
    public String prodid{get; set;}
    public String prodfamily{get; set;}
    public Boolean selected{get; set;}
    public mywrapper(String pname, String pfamily, String pid)
    {
        prodname = pname;
        prodid = pid;
        prodfamily = pfamily;
        selected = false;
    }
}
 public PageReference show(){
        lmw = new List<mywrapper>();
        lp=[select id,Name,Family from Product2 where Family=:selectopt];
        System.debug('---------------------------------------'+lp.size());
        if(lp.size()>0){
        for(Product2 pp:lp){           
            lmw.add(new mywrapper(pp.name,pp.family,pp.id));
                           }
                        }
        else{
            lmw=null;
            }
        
        return null;
                             }
}

No comments:

Post a Comment