trigger ConsumableOrderDetail1Trigger on Consumable_Orderdetails__c (after insert, after update, after delete) {
|
List<String> orderList = new List<String>();
|
List<Consumable_Order__c> updorderList = new List<Consumable_Order__c>();
|
double total_amount=0;
|
double consumable_count=0;
|
double invoice_Cost_RMB = 0;
|
double invoiced_Procount = 0; //已发票数量
|
double invoicedProCost_RMB = 0; //已发票金额
|
double shipment_amount; //出货金额
|
double rrturnPro_count; //返品数量
|
double rrturnPro_Cost_RMB; //返品金额
|
|
if (trigger.isInsert || trigger.isUpdate){
|
for (Consumable_Orderdetails__c local : Trigger.New) {
|
//if (local.RecordType.DeveloperName == 'Detail1_Order' ||
|
// local.RecordType.DeveloperName == 'Detail1_Shipment' ||
|
// local.RecordType.DeveloperName == 'Detail1_Sale'){
|
orderList.add(local.Consumable_order__c);
|
//}
|
}
|
|
if(orderList.size() >0){
|
AggregateResult[] results = [SELECT Consumable_order__c,
|
sum(Sum_of_money__c) Sum_of_money,
|
sum(Consumable_count__c) Consumable_count,
|
sum(Invoice_Cost_RMB__c) Invoice_Cost_RMB,
|
sum(Invoiced_Procount__c) Invoiced_Procount,
|
sum(InvoicedProCost_RMB__c) InvoicedProCost_RMB,
|
sum(Shipment_amount__c) Shipment_amount,
|
sum(RrturnPro_count__c) RrturnPro_count,
|
sum(RrturnPro_Cost_RMB__c) RrturnPro_Cost_RMB
|
FROM Consumable_Orderdetails__c
|
WHERE Consumable_order__c in :orderList
|
GROUP BY Consumable_order__c];
|
|
for(AggregateResult ar: results){
|
Consumable_Order__c consumableOrder = new Consumable_Order__c();
|
consumableOrder.Id = String.valueOf(ar.get('Consumable_order__c'));
|
consumableOrder.Total_amount__c = double.valueOf(ar.get('Sum_of_money'));
|
consumableOrder.Total_num__c = double.valueOf(ar.get('Consumable_count'));
|
consumableOrder.InvoiceNotPro_total_amount__c = double.valueOf(ar.get('Invoice_Cost_RMB'));
|
consumableOrder.Total_Invoiced_Procount__c = double.valueOf(ar.get('Invoiced_Procount'));
|
consumableOrder.InvoicedPro_total_amount__c = double.valueOf(ar.get('InvoicedProCost_RMB'));
|
consumableOrder.Shipment_total_amount__c = double.valueOf(ar.get('Shipment_amount'));
|
consumableOrder.RrturnPro_total_count__c = double.valueOf(ar.get('RrturnPro_count'));
|
consumableOrder.RrturnPro_total_amount__c = double.valueOf(ar.get('RrturnPro_Cost_RMB'));
|
consumableOrder.Invoice_total_amount__c = double.valueOf(ar.get('InvoicedProCost_RMB'));
|
updorderList.add(consumableOrder);
|
}
|
|
update updorderList;
|
}
|
}
|
|
|
if (trigger.isDelete){
|
orderList = new List<String>();
|
updorderList = new List<Consumable_Order__c>();
|
|
for (Consumable_Orderdetails__c local : Trigger.old) {
|
if (local.Consumable_order__c!=null) orderList.add(local.Consumable_order__c);
|
}
|
|
if (orderList.size() > 0){
|
AggregateResult[] results = [SELECT Consumable_order__c,
|
sum(Sum_of_money__c) Sum_of_money,
|
sum(Consumable_count__c) Consumable_count,
|
sum(Invoice_Cost_RMB__c) Invoice_Cost_RMB,
|
sum(Invoiced_Procount__c) Invoiced_Procount,
|
sum(InvoicedProCost_RMB__c) InvoicedProCost_RMB,
|
sum(Shipment_amount__c) Shipment_amount,
|
sum(RrturnPro_count__c) RrturnPro_count,
|
sum(RrturnPro_Cost_RMB__c) RrturnPro_Cost_RMB
|
FROM Consumable_Orderdetails__c
|
WHERE Consumable_order__c in :orderList
|
GROUP BY Consumable_order__c];
|
|
for(AggregateResult ar: results){
|
total_amount = double.valueOf(ar.get('Sum_of_money'));
|
consumable_count = double.valueOf(ar.get('Consumable_count'));
|
invoice_Cost_RMB = double.valueOf(ar.get('Invoice_Cost_RMB'));
|
invoiced_Procount = double.valueOf(ar.get('Invoiced_Procount'));
|
invoicedProCost_RMB = double.valueOf(ar.get('InvoicedProCost_RMB'));
|
shipment_amount = double.valueOf(ar.get('Shipment_amount'));
|
rrturnPro_count = double.valueOf(ar.get('RrturnPro_count'));
|
rrturnPro_Cost_RMB = double.valueOf(ar.get('RrturnPro_Cost_RMB'));
|
|
Consumable_Order__c consumableOrder = new Consumable_Order__c();
|
consumableOrder.Id = String.valueOf(ar.get('Consumable_order__c'));
|
consumableOrder.Total_amount__c = total_amount;
|
consumableOrder.Total_num__c = consumable_count;
|
consumableOrder.InvoiceNotPro_total_amount__c = invoice_Cost_RMB;
|
consumableOrder.Total_Invoiced_Procount__c = invoiced_Procount;
|
consumableOrder.InvoicedPro_total_amount__c = invoicedProCost_RMB;
|
consumableOrder.Shipment_total_amount__c = shipment_amount;
|
consumableOrder.RrturnPro_total_count__c = rrturnPro_count;
|
consumableOrder.RrturnPro_total_amount__c = rrturnPro_Cost_RMB;
|
consumableOrder.Invoice_total_amount__c = invoicedProCost_RMB;
|
updorderList.add(consumableOrder);
|
}
|
|
update updorderList;
|
}
|
}
|
}
|