高章伟
2023-03-03 d8dc84a3d56df839895f1c417a4d9cbee763d262
force-app/main/default/classes/PaymentMaintenanceContractTriggerHandler.cls
@@ -61,17 +61,28 @@
                        mccList.add(mcc.id);
                    }
                    //查找维修合同的所有认款信息
                    List<Payment_Maintenance_Contract__c> allPMCc = [select id,name,Amount__c,DeleteFlag__c from Payment_Maintenance_Contract__c where Amount__c != 0.0 and Amount__c != null and Find_Contact__c in :mccList];
                    List<Payment_Maintenance_Contract__c> allPMCc = [select id,name,Amount__c,DeleteFlag__c,Find_Contact__c from Payment_Maintenance_Contract__c where Amount__c != 0.0 and Amount__c != null and Find_Contact__c in :mccList];
                    for(Maintenance_Contract__c mcc : mccData){
                        Decimal countAmount = 0.0;
                        for(Payment_Maintenance_Contract__c pmcc : allPMCc){
                            if(pmcc.Amount__c != 0 || pmcc.Amount__c != null){//判断认款金额不为0
                                //如果删除标识为X,那么把认款金额转为负数,然后相加
                                if(pmcc.DeleteFlag__c == 'X' ){
                                    countAmount += (pmcc.Amount__c - pmcc.Amount__c * 2);
                                }else{
                                    countAmount += pmcc.Amount__c;
                                }
                            // gzw bug fix 统计回款价格是区分合同 20220721
                            // if(pmcc.Amount__c != 0 || pmcc.Amount__c != null){//判断认款金额不为0
                            //     //如果删除标识为X,那么把认款金额转为负数,然后相加
                            //     if(pmcc.DeleteFlag__c == 'X' ){
                            //         countAmount += (pmcc.Amount__c - pmcc.Amount__c * 2);
                            //     }else{
                            //         countAmount += pmcc.Amount__c;
                            //     }
                            // }
                            if (pmcc.Find_Contact__c == mcc.Id) {
                                if(pmcc.Amount__c != 0 || pmcc.Amount__c != null){//判断认款金额不为0
                                    //如果删除标识为X,那么把认款金额转为负数,然后相加
                                    if(pmcc.DeleteFlag__c == 'X' ){
                                        countAmount += (pmcc.Amount__c - pmcc.Amount__c * 2);
                                    }else{
                                        countAmount += pmcc.Amount__c;
                                    }
                                }
                            }
                        }
                        mcc.All_Amount__c = countAmount;