4 个回答
Hi Sayeed,Please find the working codetrigger OpportunityTrigger on Opportunity (after update) { Map<Id,String> oppIdToCheckBoxMap = new Map<Id,String>(); for (Opportunity opp : Trigger.new) { if (opp.Amount != Trigger.oldMap.get(opp.Id).Amount || opp.ExpectedRevenue != Trigger.oldMap.get(opp.Id).ExpectedRevenue) { if (opp.Amount > 0.3 * opp.ExpectedRevenue && Trigger.oldMap <= 0.3 * Trigger.oldMap.get(opp.Id).ExpectedRevenue) { oppIdToCheckBoxMap.put(opp.Id, '3'); } else if (opp.Amount > 0.2 * opp.ExpectedRevenue && Trigger.oldMap <= 0.2 * Trigger.oldMap.get(opp.Id).ExpectedRevenue) { oppIdToCheckBoxMap.put(opp.Id, '2'); } else if (opp.Amount > 0.1 * opp.ExpectedRevenue && Trigger.oldMap <= 0.1 * Trigger.oldMap.get(opp.Id).ExpectedRevenue) { oppIdToCheckBoxMap.put(opp.Id, '1'); } } } if (oppIdToCheckBoxMap.size() > 0) { List<Discount_Coupon__c> discountCouponList = [SELECT Id, Coupon_Code1__c, Coupon_Code2__c, Coupon_Code3__c FROM Discount_Coupon__c WHERE Opportunity__c IN :oppIdToCheckBoxMap.keySet()]; if (discountCouponList.size() > 0) { for (Discount_Coupon__c disCoupon : discountCouponList) { if (oppIdToCheckBoxMap.containsKey(disCoupon.Opportunity__c)) { if (oppIdToCheckBoxMap.get(disCoupon.Opportunity__c) == '3') { disCoupon.Coupon_Code3__c = true; disCoupon.Coupon_Code2__c = false; disCoupon.Coupon_Code1__c = false; } else if (oppIdToCheckBoxMap.get(disCoupon.Opportunity__c) == '2') { disCoupon.Coupon_Code2__c = true; disCoupon.Coupon_Code3__c = false; disCoupon.Coupon_Code1__c = false; } else { disCoupon.Coupon_Code1__c = true; disCoupon.Coupon_Code3__c = false; disCoupon.Coupon_Code2__c = false; } } } update discountCouponList; } }}Please mark this as the best answer if it helps. Thanks
Shubham Jain