You need to sign in to do that
Don't have an account?
Durvesh Shah 8
Need help to cover this code with test class.
public class TriggerOnOfferInvoiceClass { public static Boolean isFirstTime = true; // to stop Recursiveness public static void updateOfferAndInvoice(List<TOOH_Offer__c> triggerNew, Map<Id, TOOH_Offer__c> triggerNewMap, Map<id, TOOH_Offer__c> triggerOldMap) { List<Invoice__c> invs = new List<Invoice__c>(); List<TOOH_Offer__c> offs = new List<TOOH_Offer__c>(); Set<Id> duplicateSet = new Set<Id>(); Set<Id> dup = new set<Id>(); Set<Id> offIds = new Set<Id>(); System.debug('triggerNew '+triggerNew); System.debug('triggerOldMap '+triggerOldMap); for(TOOH_Offer__c off : triggerNew){ System.debug('1 '+ off.BC_NBC__c +' '+triggerOldMap.get(off.id).BC_NBC__c ); //System.debug('2 '+ off.Percentage __c +' '+triggerOldMap.get(off.id).Percentage__c ); System.debug('3 '+ off.Name +' '+triggerOldMap.get(off.id).Name ); System.debug('4 '+ off.TOOH_Kind_Attn__c +' '+triggerOldMap.get(off.id).TOOH_Kind_Attn__c ); System.debug('5 '+ off.Owner +' '+triggerOldMap.get(off.id).Owner ); /* System.debug('1 @@@'+ off.BC_NBC__c != triggerOldMap.get(off.id).BC_NBC__c ); System.debug('2 '+ String.valueOf(off.Percentage__c) != String.valueOf(triggerOldMap.get(off.id).Percentage__c) ); System.debug('3 '+ off.Name != triggerOldMap.get(off.id).Name ); System.debug('4 '+ off.TOOH_Kind_Attn__c != triggerOldMap.get(off.id).TOOH_Kind_Attn__c ); System.debug('5 '+ String.valueOf(off.Owner) != String.valueOf(triggerOldMap.get(off.id).Owner) ); */ if(off.BC_NBC__c != triggerOldMap.get(off.id).BC_NBC__c || String.valueOf(off.Percentage__c) != String.valueOf(triggerOldMap.get(off.id).Percentage__c) || off.Name != triggerOldMap.get(off.id).Name || off.TOOH_Kind_Attn__c != triggerOldMap.get(off.id).TOOH_Kind_Attn__c || String.valueOf(off.Owner) != String.valueOf(triggerOldMap.get(off.id).Owner)){ System.debug('offerId in IF '+off.Id); offIds.add(off.Id); } System.debug('offerId out IF '+off.Id); } system.debug('!! +'+offIds); for(Invoice_Item__c obj : [SELECT Id, Invoice__c, Offer__c from Invoice_Item__c WHERE Offer__c IN :offIds ]){ if(duplicateSet.contains(obj.Invoice__c)) continue; duplicateSet.add(obj.Invoice__c); Invoice__c inv = new Invoice__c( Id=obj.Invoice__c, BC_NBC__c=triggerNewMap.get(obj.offer__c).BC_NBC__c, Percentage__c=triggerNewMap.get(obj.offer__c).Percentage__c, Brand_Name__c=triggerNewMap.get(obj.offer__c).Name, Contact_Person__c=triggerNewMap.get(obj.offer__c).TOOH_Kind_Attn__c, User__c=triggerNewMap.get(obj.offer__c).OwnerId ); invs.add(inv); } if(invs.size() > 0){ update invs; } system.debug(''+invs); for(Invoice_Item__c itobj : [SELECT Id, offer__c, invoice__c, invoice__r.BC_NBC__c, invoice__r.Percentage__c, invoice__r.Brand_Name__c, invoice__r.User__c, invoice__r.Contact_person__c from Invoice_Item__c WHERE Invoice__c IN :duplicateSet AND Offer__c NOT IN : offIds ]){ if(dup.contains(itobj.offer__c)) continue; dup.add(itobj.Offer__c); TOOH_Offer__c obj = new TOOH_Offer__c( id = itobj.Offer__c, BC_NBC__c = itobj.invoice__r.BC_NBC__c, Percentage__c = itobj.invoice__r.Percentage__c, Name = itobj.invoice__r.Brand_Name__c, TOOH_Kind_Attn__c = itobj.invoice__r.Contact_Person__c, OwnerId = itobj.invoice__r.User__c ); offs.add(obj); } if(offs.size() > 0){ update offs; } system.debug(''+offs); } }