You need to sign in to do that
Don't have an account?
kuldeep paliwal
can u help writing this trigger
i have phurchase order on that we have field Customer_PO, purchase order is related to purchase order line(Master detail relationship) where purchase order is parent and purchase order line is detail
now purchase order line is a lookup relationship to 'sales order line' which is child of 'sales order'
whenever user add Customer_PO on purchase order it also add field of sales order.
i write something like this can anyone check and update it..
trigger UpdateCustomerPOField on AcctSeedERP__Purchase_Order__c (after insert) {
list<id> pOrderLineId = new list<id>();
list<id> sOrderLineId = new list<id>();
list<id> sOrderId = new list<id>();
List<AcctSeedERP__Purchase_Order__c> purchase = [SELECT Id,Customer_PO__c,(SELECT Id,Name FROM AcctSeedERP__Purchase_Order_Lines__r ) FROM AcctSeedERP__Purchase_Order__c LIMIT 1];
for(AcctSeedERP__Purchase_Order__c purchaseOrder : purchase){
for(AcctSeedERP__Purchase_Order_Line__c purchaseOrderLine : purchaseOrder.AcctSeedERP__Purchase_Order_Lines__r ) {
pOrderLineId.add(purchaseOrderLine.Id);
}
}
List<AcctSeedERP__Purchase_Order_Line__c> pOrderLineList = [Select Id FROM AcctSeedERP__Purchase_Order_Line__c Where Id IN: pOrderLineId LIMIT 1];
map<id, AcctSeedERP__Purchase_Order_Line__c> purIdpurObjectMap = new map<id, AcctSeedERP__Purchase_Order_Line__c>();
for(AcctSeedERP__Purchase_Order_Line__c purOrder : pOrderLineList){
purIdpurObjectMap.put(purOrder.Id, purOrder);
}
list<AcctSeedERP__Sales_Order_Line__c> salesOrderLineList = [Select id, AcctSeedERP__Purchase_Order_Line__c From AcctSeedERP__Sales_Order_Line__c Where AcctSeedERP__Purchase_Order_Line__c In: pOrderLineId LIMIT 1];
map<id, list<AcctSeedERP__Sales_Order_Line__c>> purOrderLineSalesOrderLineMap = new map<id, list<AcctSeedERP__Sales_Order_Line__c>>();
for(AcctSeedERP__Sales_Order_Line__c salesOrderLine : salesOrderLineList){
list<AcctSeedERP__Sales_Order_Line__c> tempList = purOrderLineSalesOrderLineMap.get(salesOrderLine.AcctSeedERP__Purchase_Order_Line__c);
if(templist!= null && templist.Size()>0){
tempList.add(salesOrderLine);
}else{
tempList = new list<AcctSeedERP__Sales_Order_Line__c>();
tempList.add(salesOrderLine);
}
purOrderLineSalesOrderLineMap.put(salesOrderLine.AcctSeedERP__Purchase_Order_Line__c, tempList);
sOrderLineId.add(salesOrderLine.AcctSeedERP__Sales_Order__c);
}
list<AcctSeedERP__Sales_Order__c> salesOrderList = [Select id,Customer_PO__c,(SELECT Id,Name FROM AcctSeedERP__Sales_Order_Line__r) From AcctSeedERP__Sales_Order__c Where Id In: sOrderLineId];
map<id, AcctSeedERP__Sales_Order__c> salIdsalObjectMap = new map<id, AcctSeedERP__Sales_Order__c>();
for(AcctSeedERP__Sales_Order__c salesOrder : salesOrderList){
salIdsalObjectMap.put(salesOrder.Id, salesOrder);
for(AcctSeedERP__Sales_Order_Line__c salesLine : salesOrder.AcctSeedERP__Sales_Order_Line__r) {
sOrderId.add(salesLine.Id);
}
}
for(AcctSeedERP__Purchase_Order__c pur : trigger.new){
List<AcctSeedERP__Sales_Order_Line__c> listOfSalesOrder = purOrderLineSalesOrderLineMap.get(pur.AcctSeedERP__Purchase_Order_Line__c);
for(AcctSeedERP__Sales_Order__c sales : listOfSalesOrder){
AcctSeedERP__Sales_Order__c salesObject = salIdsalObjectMap.get(sales.id);
salesObject.Customer_PO__c = pur.Customer_PO__c;
}
}
}
now purchase order line is a lookup relationship to 'sales order line' which is child of 'sales order'
whenever user add Customer_PO on purchase order it also add field of sales order.
i write something like this can anyone check and update it..
trigger UpdateCustomerPOField on AcctSeedERP__Purchase_Order__c (after insert) {
list<id> pOrderLineId = new list<id>();
list<id> sOrderLineId = new list<id>();
list<id> sOrderId = new list<id>();
List<AcctSeedERP__Purchase_Order__c> purchase = [SELECT Id,Customer_PO__c,(SELECT Id,Name FROM AcctSeedERP__Purchase_Order_Lines__r ) FROM AcctSeedERP__Purchase_Order__c LIMIT 1];
for(AcctSeedERP__Purchase_Order__c purchaseOrder : purchase){
for(AcctSeedERP__Purchase_Order_Line__c purchaseOrderLine : purchaseOrder.AcctSeedERP__Purchase_Order_Lines__r ) {
pOrderLineId.add(purchaseOrderLine.Id);
}
}
List<AcctSeedERP__Purchase_Order_Line__c> pOrderLineList = [Select Id FROM AcctSeedERP__Purchase_Order_Line__c Where Id IN: pOrderLineId LIMIT 1];
map<id, AcctSeedERP__Purchase_Order_Line__c> purIdpurObjectMap = new map<id, AcctSeedERP__Purchase_Order_Line__c>();
for(AcctSeedERP__Purchase_Order_Line__c purOrder : pOrderLineList){
purIdpurObjectMap.put(purOrder.Id, purOrder);
}
list<AcctSeedERP__Sales_Order_Line__c> salesOrderLineList = [Select id, AcctSeedERP__Purchase_Order_Line__c From AcctSeedERP__Sales_Order_Line__c Where AcctSeedERP__Purchase_Order_Line__c In: pOrderLineId LIMIT 1];
map<id, list<AcctSeedERP__Sales_Order_Line__c>> purOrderLineSalesOrderLineMap = new map<id, list<AcctSeedERP__Sales_Order_Line__c>>();
for(AcctSeedERP__Sales_Order_Line__c salesOrderLine : salesOrderLineList){
list<AcctSeedERP__Sales_Order_Line__c> tempList = purOrderLineSalesOrderLineMap.get(salesOrderLine.AcctSeedERP__Purchase_Order_Line__c);
if(templist!= null && templist.Size()>0){
tempList.add(salesOrderLine);
}else{
tempList = new list<AcctSeedERP__Sales_Order_Line__c>();
tempList.add(salesOrderLine);
}
purOrderLineSalesOrderLineMap.put(salesOrderLine.AcctSeedERP__Purchase_Order_Line__c, tempList);
sOrderLineId.add(salesOrderLine.AcctSeedERP__Sales_Order__c);
}
list<AcctSeedERP__Sales_Order__c> salesOrderList = [Select id,Customer_PO__c,(SELECT Id,Name FROM AcctSeedERP__Sales_Order_Line__r) From AcctSeedERP__Sales_Order__c Where Id In: sOrderLineId];
map<id, AcctSeedERP__Sales_Order__c> salIdsalObjectMap = new map<id, AcctSeedERP__Sales_Order__c>();
for(AcctSeedERP__Sales_Order__c salesOrder : salesOrderList){
salIdsalObjectMap.put(salesOrder.Id, salesOrder);
for(AcctSeedERP__Sales_Order_Line__c salesLine : salesOrder.AcctSeedERP__Sales_Order_Line__r) {
sOrderId.add(salesLine.Id);
}
}
for(AcctSeedERP__Purchase_Order__c pur : trigger.new){
List<AcctSeedERP__Sales_Order_Line__c> listOfSalesOrder = purOrderLineSalesOrderLineMap.get(pur.AcctSeedERP__Purchase_Order_Line__c);
for(AcctSeedERP__Sales_Order__c sales : listOfSalesOrder){
AcctSeedERP__Sales_Order__c salesObject = salIdsalObjectMap.get(sales.id);
salesObject.Customer_PO__c = pur.Customer_PO__c;
}
}
}