You need to sign in to do that
Don't have an account?
zAks
trigger to sum all Quantity if status is 'avalible', and update parents total Quantity field.
Hi All,
Beloe is the snippet:
trigger UpdateQuantity on SVMXC__Product_Stock__c (after insert,after update)
{
Set<Id> productIds = new Set<Id>();
Map<Id, SVMXC__Product_Stock__c> productToStock = new Map<Id, SVMXC__Product_Stock__c>();
for (SVMXC__Product_Stock__c stock : Trigger.new)
{
if (stock.SVMXC__Product__c != null)
{
productIds.add(stock.SVMXC__Product__c);
productToStock.put(stock.Id, stock);
}
}
Map<Id, Product2> productMap = new Map<Id, Product2>([SELECT Total_Available_Quantity__c FROM Product2 WHERE Id IN :productIds]);
List<Product2> productsToUpdate = new List<Product2>();
for(SVMXC__Product_Stock__c stock : trigger.new)
{
AggregateResult[] results = [Select SVMXC__Product__c,SUM(SVMXC__Quantity2__c) FROM SVMXC__Product_Stock__c GROUP BY SVMXC__Product__c];
system.debug('tttt' + stock);
//SVMXC__Product_Stock__c oldStock = trigger.oldMap.get(stock.Id);
// System.debug('oldStockId'+ oldStock);
Product2 product = productMap.get(stock.SVMXC__Product__c);
if(stock.SVMXC__Status__c.equalsIgnoreCase('Available'))
{
product.Total_Available_Quantity__c = stock.SVMXC__Quantity2__c;
system.debug('test' + product.Total_Available_Quantity__c);
productsToUpdate.add(product);
}
/* if (oldStock.SVMXC__Status__c.equalsIgnoreCase('Available') && !stock.SVMXC__Status__c.equalsIgnoreCase('Available'))
{
product.Total_Available_Quantity__c = product.Total_Available_Quantity__c - stock.SVMXC__Quantity2__c;
productsToUpdate.add(product);
system.debug('kkkk' + productsToUpdate);
}*/
}
try {
update productsToUpdate;
} catch (Exception ex)
{
System.debug(ex.getMessage());
}
}
Beloe is the snippet:
trigger UpdateQuantity on SVMXC__Product_Stock__c (after insert,after update)
{
Set<Id> productIds = new Set<Id>();
Map<Id, SVMXC__Product_Stock__c> productToStock = new Map<Id, SVMXC__Product_Stock__c>();
for (SVMXC__Product_Stock__c stock : Trigger.new)
{
if (stock.SVMXC__Product__c != null)
{
productIds.add(stock.SVMXC__Product__c);
productToStock.put(stock.Id, stock);
}
}
Map<Id, Product2> productMap = new Map<Id, Product2>([SELECT Total_Available_Quantity__c FROM Product2 WHERE Id IN :productIds]);
List<Product2> productsToUpdate = new List<Product2>();
for(SVMXC__Product_Stock__c stock : trigger.new)
{
AggregateResult[] results = [Select SVMXC__Product__c,SUM(SVMXC__Quantity2__c) FROM SVMXC__Product_Stock__c GROUP BY SVMXC__Product__c];
system.debug('tttt' + stock);
//SVMXC__Product_Stock__c oldStock = trigger.oldMap.get(stock.Id);
// System.debug('oldStockId'+ oldStock);
Product2 product = productMap.get(stock.SVMXC__Product__c);
if(stock.SVMXC__Status__c.equalsIgnoreCase('Available'))
{
product.Total_Available_Quantity__c = stock.SVMXC__Quantity2__c;
system.debug('test' + product.Total_Available_Quantity__c);
productsToUpdate.add(product);
}
/* if (oldStock.SVMXC__Status__c.equalsIgnoreCase('Available') && !stock.SVMXC__Status__c.equalsIgnoreCase('Available'))
{
product.Total_Available_Quantity__c = product.Total_Available_Quantity__c - stock.SVMXC__Quantity2__c;
productsToUpdate.add(product);
system.debug('kkkk' + productsToUpdate);
}*/
}
try {
update productsToUpdate;
} catch (Exception ex)
{
System.debug(ex.getMessage());
}
}
Thanks
All Answers
What is the error you are getting and at what line?
Regards
Thanks
zAks,
Does your issue get solved ? Please mark as best answer if it works
Thanks
Rajat Maheshwari
Thanks for responding ,
i came up with the solution.