From ea5686cada5a3e63edaa0d3e8c2db8def4f9ff31 Mon Sep 17 00:00:00 2001 From: Li Jun <buli@deloitte.com.cn> Date: 星期一, 11 四月 2022 11:52:41 +0800 Subject: [PATCH] PIPLCloneButton --- force-app/main/default/classes/NewAndEditAddressController.cls | 30 ++++++++++++++++++++++++------ 1 files changed, 24 insertions(+), 6 deletions(-) diff --git a/force-app/main/default/classes/NewAndEditAddressController.cls b/force-app/main/default/classes/NewAndEditAddressController.cls index 8826764..6feb735 100644 --- a/force-app/main/default/classes/NewAndEditAddressController.cls +++ b/force-app/main/default/classes/NewAndEditAddressController.cls @@ -13,6 +13,7 @@ public static Map<String, Schema.SObjectType> schemaMap = Schema.getGlobalDescribe(); public static String sobjectTypeValue = 'Address__c'; public Boolean isNewMode{set;get;} + public Boolean isCloneMode{protected set;get;} public String rtTypeId {get; set;} public String AWSDataId{set;get;} public String contactId{set;get;}//For Lookup field @@ -32,6 +33,7 @@ // public String CurrentUserName{private set; get;} public NewAndEditAddressController(ApexPages.StandardController controller) { isNewMode = true; + isCloneMode = false; Input_Required_Field_Msg = Label.Input_Required_Field_Msg; PIPL_Name_Label = Label.PIPL_Name_Label; PIPL_Input_Account_Error_Msg = label.PIPL_Input_Account_Error_Msg; @@ -40,7 +42,12 @@ List<String> fieldList = new List<String>(Schema.getGlobalDescribe().get('Address__c').getDescribe().fields.getMap().keyset()); // Add fields to controller. This is to avoid the SOQL error in visualforce page if (!Test.isRunningTest()) { - controller.addFields(fieldList);} + controller.addFields(fieldList); + } + Map<string,string> mso = ApexPages.currentPage().getParameters(); + if(mso != null && mso.containsKey('newclone')){ + isCloneMode = true; + } SObject obj = controller.getRecord(); if(obj.Id != null){ //鏇存柊 @@ -103,7 +110,10 @@ if(String.isNotBlank(dt)&&dt.contains('T')){ dt = dt.replace('T',' '); addressInfo.put(fieldAPI, Datetime.valueOfGmt(dt)); - }else { + }else if(String.isNotBlank(fieldValue)) { + fieldValue = fieldValue.replace('/', '-') + ':00'; + addressInfo.put(fieldAPI, Datetime.valueOf(fieldValue)); + }else{ addressInfo.put(fieldAPI,fieldValue); } }else if(String.valueOf(fielddataType)=='Number'||String.valueOf(fielddataType)=='DOUBLE' ){ @@ -119,18 +129,26 @@ String status = 'success'; Response resp = new Response(); Savepoint sp = Database.setSavepoint(); + Boolean isClone = false; // String rid = ''; String awsDataId = ''; try{ System.debug('abcde'); - if(isNew){ + awsDataId = (String)addressInfo.get('AWS_Data_Id__c'); + System.debug('awsDataId = ' + awsDataId); + Address__c[] addresses = [select id from Address__c where AWS_Data_Id__c =:awsDataId]; + if(!isNew){ + isClone = addresses.size() == 0; + } + System.debug('isClone---------'+isClone); + if(isNew || isClone){ System.debug('addressInfoNancy = ' + addressInfo); insert addressInfo; }else{ System.debug('into update'); - awsDataId = (String)addressInfo.get('AWS_Data_Id__c'); - System.debug('awsDataId = ' + awsDataId); - Address__c[] addresses = [select id from Address__c where AWS_Data_Id__c =:awsDataId]; + // awsDataId = (String)addressInfo.get('AWS_Data_Id__c'); + // System.debug('awsDataId = ' + awsDataId); + // Address__c[] addresses = [select id from Address__c where AWS_Data_Id__c =:awsDataId]; System.debug('addresses[0].id = ' + addresses[0].id); addressInfo.put('Id',addresses[0].id);//For testing; update addressInfo; -- Gitblit v1.9.1