• Arjun Otturu 5
  • NEWBIE
  • 0 Points
  • Member since 2019

  • Chatter
    Feed
  • 0
    Best Answers
  • 0
    Likes Received
  • 0
    Likes Given
  • 1
    Questions
  • 4
    Replies

trigger MaintenanceRequest on Case ( after update) {
    // ToDo: Call MaintenanceRequestHelper.updateWorkOrders
    	 
	    for(Case c : Trigger.new){
        	if(Trigger.isAfter && Trigger.isUpdate){
     			MaintenanceRequestHelper.updateWorkOrders();
    		}    
    	}
}
public with sharing class MaintenanceRequestHelper {
    
    public static void updateWorkOrders() {
         list<case> insertCaseList = new list<case>();
        List<Case> ClosedCaseList =  [select id,Vehicle__r.Id,Equipment__r.Id,Equipment__r.Maintenance_Cycle__c,(select id from Work_Parts__r) from case where status = 'Closed' and Id IN :Trigger.new and Type in('Repair','Routine Maintenance') LIMIT 200];
        // TODO: Complete the method to update workorders
        
        for(Case c:ClosedCaseList){
        Case maintenanceRequest             = new Case();
        maintenanceRequest.Type             = 'Routine Maintenance';
        maintenanceRequest.Vehicle__c       = c.Vehicle__c;
        maintenanceRequest.Subject          = 'Routine Checkup';
        maintenanceRequest.Date_Reported__c = System.today();
        maintenanceRequest.Equipment__c     = c.Equipment__c;
        insertCaseList.add(maintenanceRequest);
        }
        system.debug('NewCasesList: '+ insertCaseList);
        system.debug('CaseList: '+ ClosedCaseList);
        Integer i=0;
        List<Aggregateresult> agrResult = [SELECT MIN(equipment__r.Maintenance_Cycle__c)MinimumValue FROM WORK_PART__c where Maintenance_Request__c=:ClosedCaseList];
        for(Aggregateresult r: agrResult){
            system.debug('Agg result: '+r);
                if(r.get('MinimumValue')!=NULL)
                	insertCaseList[i].Date_Due__c=system.today()+integer.valueof(r.get('MinimumValue'));
                    i++;
        		}
        		if(insertCaseList.size()>0){
        		insert insertCaseList;
         }
    }
}
@isTest
public class MaintenanceRequestTest {
	@isTest
    static void testMaintenanceRequest(){
        Date d = System.Today();
        List<Case> maintenanceList = new List<Case>();
        List<Case> maintenanceListClosed = new List<Case>();
        Vehicle__c vehicle = new Vehicle__c(Name='tata sumo',Air_Conditioner__c=true,Model__c='23Test');
        insert vehicle;
        Product2 equipment = new Product2(Name='tire',Cost__c=100,Current_Inventory__c=10,Replacement_Part__c=true,Warehouse_SKU__c='test',Lifespan_Months__c=10,Maintenance_Cycle__c=100);
        insert equipment;
        
        for(Integer i=1;i<=300;i++){
            Case maintenance = new Case(Subject='Test subject'+i,Date_Reported__c = System.today(),Type='Routine Maintenance'+i,Status='New'+i,Origin='Phone'+i,Equipment__C=equipment.Id,Vehicle__c=vehicle.Id);
            maintenanceList.add(maintenance);   
        }
        insert maintenanceList;
        List<Work_Part__c> workPartList = new List<Work_Part__c>();
        for(Case caseupdate :maintenanceList){
            caseupdate.Status='Closed';
            caseupdate.Type='routine Maintenance';
            Work_Part__c w=new Work_Part__c(Maintenance_Request__c=caseupdate.Id,Equipment__c=equipment.Id);
            caseupdate.Date_Due__c = date.Today().addDays(Integer.valueOf(equipment.Maintenance_Cycle__c));
            maintenanceListClosed.add(caseupdate);
            workPartList.add(w);
        }
        Test.startTest();
        try{
            Database.SaveResult[] inserResult = Database.insert(workPartList);
            for(database.SaveResult sr : inserResult){
                {
                    if(sr.IsSuccess()){
                        database.SaveResult[] updatequipment = Database.update(maintenanceListClosed);
                        for(database.SaveResult sa :updatequipment){
                            if(sa.Issuccess()){
                                List<Case> assertNewCase=[SELECT Id FROM Case Where Equipment__c=:equipment.Id AND Vehicle__c=:vehicle.Id AND Type='Routine Maintenance' AND Subject='New Request' AND Date_Reported__c=:d ];
                            	system.assertEquals(300,assertNewCase.size());
                            }
            			
                    }
                }
            }
                
          }
        }
        catch(Exception e)
        {
                    
        }
        Test.stopTest();
        
     }
 }
Hello Everyone,
Apex Specialist Step 4
I am getting 100% coverage but getting error. Can anyone please help where I need to change code
Class.MaintenanceRequestHelper.updateWorkOrders: line 8, column 1
Trigger.MaintenanceRequest: line 6, column 1

User-added image


 

How do I set up breadcrumbs to work in Community? I have a number of pages that I want to arrange hierarchically so that they can be displayed in a Breadcrumbs component as a path. The documentation on this is very poor.  When I drag Breadcrumbs component to a page it says "We can't load the Breadcrumbs component because it's not supported by any data. Once you add data, reload Community Builder to see your component."
How to add that data? I have tried to add relative links to pages under Administration > Pages > Site.com Studio > Sitemap, but that didn't seem to affect the Breadcrumbs component. (also, what are the relative links: /s/pageurl or /pageurl ?)