Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- Product2 productToDeleteId = 'INSERT YOUR PRODUCT ID HERE';
- //get long id
- Id productToDeleteIdLong = [Select Id from Product2 where id = :productToDeleteId].id
- //delete related Orders
- List<AggregateResult> lOrderToDelete = new List<AggregateResult>();
- List<String> los = new List<String>();
- List<Order> lo;
- lOrderToDelete = [Select orderId from orderitem where Product2.id = :productToDeleteIdLong GROUP BY orderId];
- for(AggregateResult ori:lOrderToDelete){
- los.add((String)ori.get('OrderId'));
- }
- lo = [select id,status from order where id in:los];
- for(order oToDelete:lo){
- oToDelete.status = 'Draft';
- }
- update lo;
- delete lo;
- //related assets
- delete [Select id from asset where Product2.id = :productToDeleteIdLong];
- //PricebookEntry
- delete [Select Id from PricebookEntry where Product2.id = :productToDeleteIdLong];
- //AttributeAssignment__c
- delete [Select Id from vlocity_cmt__AttributeAssignment__c where vlocity_cmt__objectid__c = :productToDeleteIdLong];
- //ProductChildItem__c
- delete [Select Id from vlocity_cmt__ProductChildItem__c where vlocity_cmt__parentproductid__c = :productToDeleteIdLong];
- //OverrideDefinition__c and vlocity_cmt__CompiledAttributeOverride__c
- Id cao = [Select vlocity_cmt__CompiledAttributeOverrideId__c from vlocity_cmt__OverrideDefinition__c where vlocity_cmt__ProductId__c = :productToDeleteIdLong].Id;
- delete [Select vlocity_cmt__CompiledAttributeOverrideId__c from vlocity_cmt__CompiledAttributeOverride__c where id = :cao];
- delete [Select Id from vlocity_cmt__OverrideDefinition__c where vlocity_cmt__ProductId__c = :productToDeleteIdLong];
- //ProductConfigurationProcedure__c
- delete [Select Id from vlocity_cmt__ProductConfigurationProcedure__c where vlocity_cmt__ProductId__c = :productToDeleteIdLong];
- //ProductRelationship__c
- delete [Select Id from vlocity_cmt__ProductRelationship__c where vlocity_cmt__Product2Id__c = :productToDeleteIdLong or vlocity_cmt__RelatedProductId__c =:productToDeleteIdLong or vlocity_cmt__RelatedProductFilterId__c = :productToDeleteIdLong];
- //ProductEligibility__c
- delete [Select Id from vlocity_cmt__ProductEligibility__c where vlocity_cmt__Product2Id__c = :productToDeleteIdLong];
- //ProductAvailability__c
- delete [Select Id from vlocity_cmt__ProductAvailability__c where vlocity_cmt__Product2Id__c = :productToDeleteIdLong];
- //RuleAssignment__c
- delete [Select Id from vlocity_cmt__RuleAssignment__c where vlocity_cmt__ObjectId__c = :productToDeleteIdLong];
- for(vlocity_cmt__PriceListEntry__c ple : [Select Id from vlocity_cmt__PriceListEntry__c where vlocity_cmt__ProductId__c = :productToDeleteIdLong]){
- [Select Id from vlocity_cmt__RuleAssignment__c where vlocity_cmt__ObjectId__c = :ple.id];
- }
- //PriceListEntry__c
- delete [Select Id from vlocity_cmt__PriceListEntry__c where vlocity_cmt__ProductId__c = :productToDeleteIdLong];
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement