function readOnly(count){ }
Starting November 20, the site will be set to read-only. On December 4, 2023,
forum discussions will move to the Trailblazer Community.
+ Start a Discussion
Rahul Srivastava 44Rahul Srivastava 44 

Override New button with Vf page on selected record type

I have a requirement that I have to redirect to VF page on particular RecordType. If I choose record type 'Collection' then need to open VF page else for other recordtype open new button default functionality. I have done this but once I choose other Recordtypes, page is opening as by default and working good ('Save' and 'Save And New' ) button but once I click Cancel button it is not working as standard functionality. It not redirecting anywhere. I tried with putting home page redirect link in cancel functionality still not redirecting anywhere.
Please check my code where I am making mistake and help me!
 
public with sharing class TestRenewalActivityCollection {

private ApexPages.StandardController controller;
public String retURL {
    get;
    set;
}
public String saveNewURL {
    get;
    set;
}
public String rType {
    get;
    set;
}
public String cancelURL {
    get;
    set;
}
public String ent {
    get;
    set;
}
public String confirmationToken {
    get;
    set;
}
public String accountID {
    get;
    set;
}
public String contactID {
    get;
    set;
}

Public Id RenewalId {get;set;} 

public TestRenewalActivityCollection(ApexPages.StandardController controller) {

    this.controller = controller; 
    //retURL = ApexPages.currentPage().getParameters().get('retURL');
    rType = ApexPages.currentPage().getParameters().get('RecordType');
    cancelURL = 'https://***********partialcp.lightning.force.com/lightning/page/home';
    system.debug('***'+cancelURL);

    ent = ApexPages.currentPage().getParameters().get('ent');
    confirmationToken = ApexPages.currentPage().getParameters().get('_CONFIRMATIONTOKEN');
    saveNewURL = ApexPages.currentPage().getParameters().get('save_new_url'); 

    String retUrl = ApexPages.currentPage().getUrl().substringAfter('lkid'); 

    String RenewalId = String.isNOTBlank(retUrl) && retUrl.length() >= 16 ? retUrl.substring(1,16) : retUrl; 

    //system.debug('****'+parentId);

    //RenewalId = Id.valueOf(parentId);

    system.debug('****rType--'+RenewalId);

    //system.debug('***cancelURL'+cancelURL+'***ent'+ent+'**confirmationToken'+confirmationToken+'**saveNewURL'+saveNewURL+'');

}

public PageReference redirect() {

    PageReference returnURL;

    // Redirect if Record Type corresponds to custom VisualForce page

    IF(rType == '0120w000000Ah17AAC') {

        //returnURL = new PageReference('/apex/ActivityRenewalPage');

         PageReference pageref = new pagereference('/apex/ActivityRenewalPage');
           pageref.getParameters().put('recordID', RenewalId);
           pageref.setRedirect(true);
           return pageref;

    }

    ELSE { 
      returnURL = new PageReference('/a1K/e'); 
    }

    returnURL.getParameters().put('retURL', retURL);
    returnURL.getParameters().put('RecordType', rType); 
    returnURL.getParameters().put('cancelURL',cancelURL);
    returnURL.getParameters().put('ent', ent);
    returnURL.getParameters().put('_CONFIRMATIONTOKEN', confirmationToken);
    returnURL.getParameters().put('save_new_url', saveNewURL);
    returnURL.getParameters().put('nooverride', '1');

    returnURL.setRedirect(true);
    return returnURL;
} 
}