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; 
 | 
        } 
 | 
    } 
 | 
} 
 |