/* * Author: Yanan Chen * Created Date: 02/22/2022 * Purpose: Utility class for describe layouts * Test Class: NewAndEditContactController * History: * 02/22/2022 - Yanan Chen - Initial Code. * * */ global class NewAndEditContactController extends NewAndEditBaseController { public String accountId{get; set;} public Account account{get; private set;} public NewAndEditContactController(ApexPages.StandardController controller){ List fieldList = new List(Schema.getGlobalDescribe().get('Contact').getDescribe().fields.getMap().keyset()); // Add fields to controller. This is to avoid the SOQL error in visualforce page //Get Account Id from url param this.accountId = ApexPages.currentPage().getParameters().get('retURL'); System.debug('accountId = ' + accountId); // System.debug('accountType = ' + ); if(!Test.isRunningTest()){ controller.addFields(fieldList); } Init(controller.getRecord()); if (this.accountId != '/003/o' && this.accountId != null && this.isNewMode) { ID accId = ID.valueOf(this.accountId.substring(1, this.accountId.length())); System.debug('accId = ' + accId); account = [select id, Name, PhoneD__c, FaxD__c, Address1D__c, PostCodeD__c, ProductSegment__c from Account where id =:accId]; System.debug('account = ' + account); } SObject obj = controller.getRecord(); if(obj.Id == null){ //初始化加载值 obj.put('OwnerId',UserInfo.getUserId()); } if (this.account != null) { obj.put('ProductSegment'+account.ProductSegment__c+'__c', true); } } @RemoteAction global static Response saveContact(String contactJson, String transId, Boolean isNew){ return save(new Contact(), contactJson, transId, isNew); } }