Skip to content

Instantly share code, notes, and snippets.

@SalesforceCPQ
Created November 13, 2017 15:40
Show Gist options
  • Select an option

  • Save SalesforceCPQ/563b1be8e8eb5bb01507d6bf21f31653 to your computer and use it in GitHub Desktop.

Select an option

Save SalesforceCPQ/563b1be8e8eb5bb01507d6bf21f31653 to your computer and use it in GitHub Desktop.
global class PluginDemoProductSearchPlugin implements SBQQ.ProductSearchPlugin{
public String type1 {get; set;}
global PluginDemoProductSearchPlugin(){
System.debug('METHOD CALLED: customSearchFilter Constructor');
}
global String getAdditionalSearchFilters(SObject so, Map<String,Object> ma){
System.debug('METHOD CALLED: getAdditionalSearchFilters');
//System.debug('Sobject Passed: ' + so.getSObjectType().getDescribe().getName());
System.debug('Map Passed:');
System.debug(ma);
return null;
}
global String getAdditionalSuggestFilters(SObject so, Map<String,Object> ma){
System.debug('METHOD CALLED: getAdditionalSuggestFilters');
//System.debug('Sobject Passed: ' + so.getSObjectType().getDescribe().getName());
System.debug('Map Passed:');
System.debug(ma);
return null;
}
global String getFilterDefaultValue(SObject so, String st){
System.debug('METHOD CALLED: getFilterDefaultValue');
//System.debug('Sobject Passed: ' + so.getSObjectType().getDescribe().getName());
System.debug('String Passed: ' + st);
return st== 'Name' ? 'Hello' : null;
}
global String getInputDefaultValue(SObject so, String st){
System.debug('METHOD CALLED: getInputDefaultValue');
//System.debug('Sobject Passed: ' + so.getSObjectType().getDescribe().getName());
System.debug('String Passed: ' + st);
return null;
}
global Boolean isFilterHidden(SObject so, String st){
System.debug('METHOD CALLED: isFilterHidden');
//System.debug('Sobject Passed: ' + so.getSObjectType().getDescribe().getName());
System.debug('String Passed: ' + st);
return false;
}
global Boolean isInputHidden(SObject so, String st){
System.debug('METHOD CALLED: isInputHidden');
//System.debug('Sobject Passed: ' + so.getSObjectType().getDescribe().getName());
System.debug('String Passed: ' + st);
return false;
}
global Boolean isSearchCustom(SObject so, Map<String,Object> ma){
System.debug('METHOD CALLED: isSearchCustom');
//System.debug('Sobject Passed: ' + so.getSObjectType().getDescribe().getName());
System.debug(ma);
type1= 'Search';
return true;
}
global Boolean isSuggestCustom(SObject so, Map<String,Object> ma){
System.debug('METHOD CALLED: isSuggestCustom');
//System.debug('Sobject Passed: ' + so.getSObjectType().getDescribe().getName());
System.debug(ma);
type1='Guided Selling';
return false;
}
global List<PricebookEntry> search(SObject quote, Map<String,Object> ma){
System.debug('Sobject Passed: ' + quote.getSObjectType().getDescribe().getName());
System.debug('Map Passed: ' + ma);
List<PricebookEntry> pbesToReturn = new List<PricebookEntry>();
ProductSearcher searcher = new ProductSearcher((SBQQ__Quote__c)quote, ma);
Map<Id, PricebookEntry> pbeMapResults = searcher.pbeMapSearch;
Map<Id, Product2> productMapResults = searcher.productMapSearch;
List<Inventory__c> inventoryListResults = searcher.inventoryListSearch;
String pId;
for(Inventory__c inv : inventoryListResults)
{
pId = inv.Product__c;
Product2 p = productMapResults.get(pId).clone(false, true, false, false);
p.Location__c = inv.MFG_Site__c;
PricebookEntry pbe = pbeMapResults.get(pId).clone(false, true, false, false);
pbe.getSObject('Product2');
pbe.Product2 = p;
pbesToReturn.add(pbe);
}
return pbesToReturn;
}
global List<PricebookEntry> suggest(SObject so, Map<String,Object> ma){
System.debug('YOU ARE DOING: ' + type1);
System.debug('METHOD CALLED: suggest');
//System.debug('Sobject Passed: ' + so.getSObjectType().getDescribe().getName());
System.debug(ma);
List<PricebookEntry> pbes = [SELECT Id, PricebookEntry.Product2Id FROM PricebookEntry LIMIT 1];
return pbes;
}
}
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment