• Samsudeen Ameen 10
  • NEWBIE
  • 0 Points
  • Member since 2020

  • Chatter
    Feed
  • 0
    Best Answers
  • 0
    Likes Received
  • 0
    Likes Given
  • 1
    Questions
  • 1
    Replies
I am sure someone here can help me figure out what I am doing wrong here. We have an opportunity record type where partner portal users (they are also contact) have to select a lookup field called "Study" that looks up to a custom object called Project__c when creating oppty. However, Project__c also has another child-related object called Nurse_Training_Session__c. Nurse_Training_Session__c has a field that looks up to Contact called HcP__c and another lookup field called Project__c. Now, HcP__c is used to track contacts who have been assigned to work on a project (Project__c). When they log in to the portal to create an opportunity, we want to throw an error if they select a study they have not been assigned.
@TestVisible
private static final String UNALLOCATED_STUDY_ERROR_MSG = 'You have not been allocated to work on this study. Please select the correct study';
    
    public void beforeInsert(List<Opportunity> newList){

        Set<Id> projIds = new Set<Id>(); // Store Project__r.Id

Id nurseSuppliesRecordTypeId =  Schema.SObjectType.Opportunity.getRecordTypeInfosByDeveloperName().get('Nurse_Supplies').getRecordTypeId();

        Id curUserId   = userinfo.getUserId(); // Get current logged in user

        User curUser   = [SELECT Id, ContactId FROM User WHERE Id = :curUserId AND ContactId != null];

        Contact contId = [SELECT Id FROM Contact WHERE Id = :curUser.ContactId];

        List<Nurse_Training_Session__c> lstHcps = [SELECT Id, 
                                                   	  HcP__r.Id, 
                                                          Project__r.Id
                                                     FROM Nurse_Training_Session__c 
                                                      WHERE HcP__r.Id = :contId.Id];
        
    If(curUser != null && !lstHcps.isEmpty()){
        
       for(Nurse_Training_Session__c hcp: lstHcps){
           projIds.add(hcp.Project__r.Id);
        }
        
       for(Opportunity op: newList){
            if(op.RecordTypeId == nurseSuppliesRecordTypeId 
               && op.Study__c 		  != null 
               && !projIds.contains(op.Study__r.Id))
            	{

 
i need guidance regarding DataLoader any one please suggest to complete Challenge 8