public class SearchSetProductController {
  public Product_Set__c rc {get;set;}
  public Product_Set__c sc {get;set;}
  public List<Product_Set__c> cl {get;set;}

  public String SearchName {get;set;}
  public String SearchCode {get;set;}
  public String SearchPrice {get;set;}
  public String SearchQuantity {get;set;}

  public String baseUrl {get;set;}
  public String reportid {get;set;}

  //public List<SSPLine> activities {get;set;}
  public List<String> setProductidFullList{get;set;}
  public List<SSPLine> activities {get;set;}
  public String setPFString {get;set;}
  public String DataStatus {get;set;}

  //选项名称
  public String filterName { get; set; }


  public SearchSetProductController(ApexPages.StandardController controller){

    rc = new Product_Set__c();
    sc = new Product_Set__c();
    cl = new List<Product_Set__c>();
    baseUrl = URL.getSalesforceBaseUrl().toExternalForm();
  }

  public void init(){
    Report r = new Report();
    List<Report> rs = new List<Report>();
    rs=[Select id,DeveloperName,Name,NamespacePrefix from Report Where DeveloperName='Set_Product_Detail'];
    if (rs.size()>0){
        //system.debug('DeveloperName=' + rs[0].DeveloperName);
        //system.debug('Name=' + rs[0].Name);
        //system.debug('NamespacePrefix=' + rs[0].NamespacePrefix);
        reportid = rs[0].id;
        reportid = reportid.substring(0,15);
    }
  }

  public PageReference serContact(){
    String searchSql = 'Select id, name, Price__c, Product_Set_CD__c, Quantity__c,Valid_Status__c,Quote_Select_Info__c From Product_Set__c ';
    String whereStr = 'Where Valid_Status__c = true ';
    String whereSql = '';

    if(SearchName != null && SearchName != ''){
      whereSql += 'and name Like ' + '\'%' + SearchName + '%\' ';
    }

    if(filterName != null && filterName != ''){
      whereSql += 'and Applicable_Department__c =\'' + filterName + '\'';
    }

    if(SearchCode != null && SearchCode != ''){
      whereSql += 'and Product_Set_CD__c like ' + '\'%' + SearchCode + '%\' ';
    }
/*
    if(SearchPrice != null && SearchPrice != ''){
      whereSql += 'and Price__c = \'' + SearchPrice + '\' ';
    }

    if(SearchQuantity != null && SearchQuantity != ''){
      whereSql += 'and Quantity__c = \'' + SearchQuantity + '\' ';
    }
*/
    searchSql = searchSql + whereStr + whereSql;

    searchSql += ' order by Product_Set_CD__c limit 500';

    cl = Database.query(searchSql);
    activities = New List<SSPLine>();
//    SSPLine a = new SSPLine();
    for(Product_Set__c psl : cl){
        SSPLine a = new SSPLine(psl);
        activities.add(a);
    }
    return null;
  }
  public void SelectDone(){
    setPFString = '';
    setProductidFullList = New List<String>();
    if(activities.size()==1){
      setPFString = activities[0].setProductidFull;
    }else{
      for(SSPLine arc : activities){
        if(arc.isSelected==true){
          if(String.isblank(setPFString)||setPFString==null){
            setPFString = arc.setProductidFull;
          }else{
            setPFString = setPFString+','+arc.setProductidFull;
          }
          
        }
      }
    }
    DataStatus = 'Fin';
  }

  //选项卡集合
    public static List<SelectOption> getlistViewOptions() {
        List<SelectOption> listViewOptions = new List<SelectOption>();
        listViewOptions.add(new SelectOption('', '--无--'));
        listViewOptions.add(new SelectOption('消化科','消化科'));
        listViewOptions.add(new SelectOption('呼吸科','呼吸科'));
        listViewOptions.add(new SelectOption('普外科','普外科'));
        listViewOptions.add(new SelectOption('泌尿科','泌尿科'));
        listViewOptions.add(new SelectOption('妇科','妇科'));
        listViewOptions.add(new SelectOption('耳鼻喉科','耳鼻喉科'));
        listViewOptions.add(new SelectOption('能量','能量'));
        listViewOptions.add(new SelectOption('SI','SI'));
        listViewOptions.add(new SelectOption('外科通用','外科通用'));
        return listViewOptions;
    }

    public class SSPLine {
        public Boolean isSelected {get;set;}
        public String setProductid { get; set; }
        public String setProductidFull { get; set; }
        public Decimal Quantity { get; set; }
        public Product_Set__c theObject { get; set; }
        public String Name { get; set; }       
        public String Product_Set_CD_c { get; set; }
        public String Quote_Select_Info_c { get; set; }
        public Boolean Valid_c { get; set; }

        public SSPLine(Product_Set__c psl) {
          isSelected = false;
          setProductid = psl.id;
	        setProductid = setProductid.substring(0,15);
	        setProductidFull = psl.id;
	        Name = psl.Name;
	        Product_Set_CD_c= psl.Product_Set_CD__c;
	        Quantity = psl.Quantity__c;
	        Quote_Select_Info_c = psl.Quote_Select_Info__c;
	        Valid_c = psl.Valid_Status__c;
        }
    }
}