| trigger ConsumableOrderDetail1Trigger on Consumable_Orderdetails__c (after insert, after update, after delete) { | 
|      | 
|     //add by rentx 20210618 start | 
|     if (StaticParameter.ConsumableOrderTrigger) { | 
|         return ; | 
|     } | 
|     //ad by rentx 20210618 end  | 
|     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; | 
|         } | 
|     } | 
| } |