• S!d.Dev
  • NEWBIE
  • 0 Points
  • Member since 2013

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

Hi all.Please let me know if any one worked on this.

 

OWD is private for account and contact. so no user connot see records now, now i want to show contact records to users when they entered existing email. i prevoiusly worked on lead which is woking. but help me now to do the same on contacts.

 

public class contacterror {

    public PageReference AssignPermissionforcontact1() {
        return null;
    }

public list<user> u{get;set;}
id contactid;
public contacterror ()
{
 contactid=ApexPages.CurrentPage().getParameters().get('id');
}

Public pagereference AssignPermissionforcontact(){

system.debug('GGGG'+UserInfo.getUserId());

ContactShare cs = new ContactShare();
     //   cs.ContactAccessLevel = 'Edit';     ( here getting errror as "=")
     //   cs.ContactId = contactId;
      //  cs.UserOrGroupId =  UserInfo.getUserId();

//Database.SaveResult contactInsertResults = Database.insert(cs, false);


pagereference p=new pagereference('/'+contactid);

return p;

}
}


VF page:------------------


vf page:------

<apex:page controller="Contacterrorclass" action="{!AssignPermissionforcontact}">
<apex:form >

</apex:form>
</apex:page>
-----------------------------------------------------------
Trigger:-(checks the dups, and gives the link to open the existing record)


trigger TriggerOncontact on contact (before insert) {
 
    Map<String, contact> mapcontact1 = new Map<String, contact>();
    Map<String, contact> mapcontact2 = new Map<String, contact>();

    for (contact contact : System.Trigger.new) {
          mapcontact1.put(contact.concatinate_name_and_email__c.TOLOWERCASE().TRIM(), contact);
          mapcontact2.put(contact.concatinate_name_and_phone__c.TOLOWERCASE().TRIM(), contact);
    }
     list<contact>contact1=[SELECT Id,Name,Email,Phone,concatinate_name_and_email__c FROM contact WHERE concatinate_name_and_email__c  IN :mapcontact1.KeySet()];
     list<contact> contact2=[SELECT Id,Name,Email,Phone,concatinate_name_and_phone__c FROM contact WHERE concatinate_name_and_phone__c IN :mapcontact2.KeySet()];
    for (contact con4 : System.Trigger.new) {
      if(con4.Any_way_save_record__c!=true)
      {
  
    if(contact1.size()>0)
    {
     for (contact contact :contact1){
     contact newcontact = mapcontact1.get(contact.concatinate_name_and_email__c.TOLOWERCASE().TRIM());
      
         
     newcontact.addError('Les contacts de cette personne existent dans Salesforce. Voir le contact :<a style=color:GREEN href=/apex/leaderror?id='+contact.ID+'>'+  contact.name + '</a>');
    }}else if(contact2.size()>0){
    for (contact Contact :contact2 ) {
      contact newcontact1 = mapcontact2.get(contact.concatinate_name_and_phone__c.TOLOWERCASE().TRIM());
      newcontact1.addError('contact already exists see this:<a style=color:GREEN href=/apex/leaderror?id='+contact.ID+'>'+  contact.name + '</a>');

  
    }
    
   }
}
}
}

 I want to show the contact when he clicks on link , (if it is not possible i need to show his related account).

KUDOS in Advance

 

Thanks

Sid.