Untitled
unknown
java
a year ago
1.5 kB
19
Indexable
try {
changeAutomationState(true);
List<Product2> demotedProductsToPrimary = [SELECT Id FROM Product2 WHERE Name LIKE '% (subscription)' OR Name LIKE '% (Subscription)'];
setCategory(demotedProductsToPrimary, 'Primary');
List<Product2> bundleParents = [SELECT Id FROM Product2 WHERE Name LIKE '% (bundle)' OR Name LIKE '% (Bundle)'];
setCategory(bundleParents, 'Bundle Parent');
List<Product2> primaryProducts = [SELECT Id FROM Product2 WHERE IsActive = TRUE AND SBQQ__Component__c = FALSE AND SBQQ__SubscriptionType__c = 'Renewable' AND Id NOT IN :Utils.getIdSet(bundleParents) AND Subscription_Category__c != 'Primary'];
setCategory(primaryProducts, 'Primary');
List<Product2> options = [SELECT Id FROM Product2 WHERE IsActive = TRUE AND SBQQ__Component__c = TRUE AND SBQQ__SubscriptionType__c = 'Renewable' AND Subscription_Category__c != 'Primary'];
setCategory(options, 'Option');
} catch (Exception e) {
throw e;
} finally {
changeAutomationState(false);
}
static void setCategory(List<Product2> products, String value) {
for (Product2 pro : products) {
pro.Subscription_Category__c = value;
}
update products;
}
static void changeAutomationState(Boolean valueToSet) {
SObject controlSetting = Control_Product__c.getInstance();
controlSetting.put('Trigger_Disable_All_Operations__c', valueToSet);
controlSetting.put('Flow_Disable_All_Flows__c', valueToSet);
controlSetting.put('Validation_Disable_All_Rules__c', valueToSet);
upsert controlSetting;
}Editor is loading...
Leave a Comment