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/pages/NewAndEditContact.page            |   41 --
 force-app/main/default/classes/NewAndEditLeadController.cls    |   46 ++
 force-app/main/default/classes/NewRepairController.cls         |  185 ++++++++++
 force-app/main/default/pages/NewRepair.page                    |   57 ++
 force-app/main/default/classes/NewAndEditContactController.cls |    8 
 force-app/main/default/classes/NewAndEditBaseController.cls    |   38 +
 force-app/main/default/classes/NewRepairControllerTest.cls     |   36 +
 force-app/main/default/pages/NewAndEditAgencyContact.page      |   10 
 force-app/main/default/pages/NewAndEditQIS.page                |  135 +-----
 force-app/main/default/classes/NewAndEditReportController.cls  |   86 ++--
 force-app/main/default/pages/NewRentalApply.page               |   12 
 force-app/main/default/pages/NewOnCall.page                    |   12 
 force-app/main/default/classes/NewAndEditAddressController.cls |   30 +
 force-app/main/default/pages/NewConsumApply.page               |    5 
 force-app/main/default/pages/NewAndEditASEActivity.page        |   15 
 force-app/main/default/pages/NewAndEditInspectionReport.page   |    8 
 force-app/main/default/pages/NewAndEditReport.page             |  110 ++++-
 force-app/main/default/classes/OnCallController.cls            |   58 +-
 force-app/main/default/classes/RentalApplyController.cls       |   32 +
 manifest/packageForCloneButton.xml                             |   42 ++
 force-app/main/default/pages/NewAndEditInquiryForm.page        |   17 
 force-app/main/default/classes/NewConsumApplyController.cls    |   25 +
 force-app/main/default/pages/NewAndEditAddress.page            |   11 
 force-app/main/default/pages/NewAndEditLead.page               |    5 
 force-app/main/default/pages/NewAndEditTenderinformation.page  |   10 
 25 files changed, 682 insertions(+), 352 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;
diff --git a/force-app/main/default/classes/NewAndEditBaseController.cls b/force-app/main/default/classes/NewAndEditBaseController.cls
index 1e854ce..6474e93 100644
--- a/force-app/main/default/classes/NewAndEditBaseController.cls
+++ b/force-app/main/default/classes/NewAndEditBaseController.cls
@@ -6,6 +6,7 @@
     public static Map<String, Schema.SObjectType> schemaMap = Schema.getGlobalDescribe();
     public String sobjectTypeValue {private set; get;}
     public Boolean isNewMode{set;get;}
+    public Boolean isCloneMode{protected set;get;}
     public String rtTypeId {get; set;}
     public String AWSDataId{set;get;}
     public String CurrentUserId{private set;get;}
@@ -53,7 +54,7 @@
     public List<String> LookUpOverrideFields{get;private set;}
     public string LookUpOverrideFieldsMapJson{get; set;}
     public string recordId{get;private set;}
-
+	
     public NewAndEditBaseController(){
         ApiPrefix = 'PIBackApi';
         AWSToSobjectNonEncryptedMap = new Map<string,string>();
@@ -71,8 +72,12 @@
         system.debug('obj='+sobjectTypeValue);
         
         isNewMode = true;
+        isCloneMode = false;
         List<Sobject> lso = Database.query('select id from RecordType where SobjectType = :sobjectTypeValue');
-        
+        Map<string,string> mso = ApexPages.currentPage().getParameters();
+        if(mso != null && mso.containsKey('newclone')){
+            isCloneMode = true;
+        }
         if(obj.Id != null){
             recordId = obj.Id;
             isNewMode = false;
@@ -187,13 +192,14 @@
         System.debug('sobjectTypeValue:'+sobjectTypeValue+' Info:' + JSON.serialize(leadJson));
         System.debug('json length='+leadJson.length());
         System.debug('leadJson---------'+leadJson);
+        System.debug('isNew---------'+isNew);
         //1. Prepare the payload for  Lead
         Schema.SObjectType leadSchema = schemaMap.get(sobjectTypeValue);
         Map<String, Schema.SObjectField> fieldAPIToTypeMap = leadSchema.getDescribe().fields.getMap();
         Map<String,Object> fieldValueMap = (Map<String,Object>)JSON.deserializeUntyped(leadJson);
         
 
-        
+        Boolean isClone = false;
         //2. Save Record Process
         String status = 'success';    
         Response resp = new Response();
@@ -201,7 +207,7 @@
         Savepoint sp = Database.setSavepoint();
         Sobject leadInfo = sobj;
         try{
-            System.debug('abcde');
+            
             for (String fieldAPI: fieldValueMap.keySet()) {
                 system.debug('field API='+fieldAPI);
                 if(!fieldAPIToTypeMap.containskey(fieldAPI)){
@@ -234,22 +240,28 @@
             }
 
             system.debug('for (String fieldAPI: fieldValueMap.keySet()) end');
+            awsDataId = (String)leadInfo.get('AWS_Data_Id__c');
+            if (string.isBlank(awsDataId)) {
+                throw new DMLException('鏇存柊鏃禔WS_Data_Id__c涓嶈兘涓虹┖');
+            }
+            System.debug('awsDataId = ' + awsDataId);
+            Sobject[] sobjects = Database.query('select id from '+sobjectTypeValue+' where AWS_Data_Id__c =:awsDataId');
             
-            if(isNew){
+            
+            if(!isNew){
+                isClone = sobjects.size() == 0;
+            }
+            System.debug('isNew---------'+isNew);
+            
+            if(isNew || isClone){
                 System.debug('leadInfozhj = ' + leadInfo);
                 if(!Test.isRunningTest()){
                     insert leadInfo;
                 }
             }else{
                 System.debug('into update');
-                awsDataId = (String)leadInfo.get('AWS_Data_Id__c');
-                if (string.isBlank(awsDataId)) {
-                    throw new DMLException('鏇存柊鏃禔WS_Data_Id__c涓嶈兘涓虹┖');
-                }
-                System.debug('awsDataId = ' + awsDataId);
-                Sobject[] leads = Database.query('select id from '+sobjectTypeValue+' where AWS_Data_Id__c =:awsDataId');
-                System.debug('leads[0].id = ' + leads[0].id);
-                leadInfo.put('Id',leads[0].id);//For testing;
+                System.debug('sobjects[0].id = ' + sobjects[0].id);
+                leadInfo.put('Id',sobjects[0].id);//For testing;
                 if(!Test.isRunningTest()){
                     update leadInfo;
                 }
diff --git a/force-app/main/default/classes/NewAndEditContactController.cls b/force-app/main/default/classes/NewAndEditContactController.cls
index 022e74b..51152d2 100644
--- a/force-app/main/default/classes/NewAndEditContactController.cls
+++ b/force-app/main/default/classes/NewAndEditContactController.cls
@@ -18,6 +18,7 @@
         }else{
             Map<string,string> mso = ApexPages.currentPage().getParameters();
             system.debug('mso='+mso);
+            system.debug('url='+ApexPages.currentPage().getUrl());
             if(mso.containsKey('con4_lkid')){
                 controller.getRecord().put('AccountId',mso.get('con4_lkid'));
             }
@@ -31,15 +32,16 @@
         system.debug(mso);
         PageReference pg = null;
         mso.remove('sfdc.override');
+        mso.remove('save_new');
         system.debug('recordId='+recordId);
         if(string.isBlank(recordId)){
             pg = new PageReference('/003/e');
         }else{
             pg = new PageReference('/'+recordId+'/e');
         }
-        //pg.getParameters().putAll(mso);
-        pg.getParameters().put('RecordType',mso.get('RecordType'));
-        pg.getParameters().put('accid',mso.get('accid'));
+        pg.getParameters().putAll(mso);
+        //pg.getParameters().put('RecordType',mso.get('RecordType'));
+        //pg.getParameters().put('accid',mso.get('accid'));
         pg.getParameters().put('nooverride','1');
         pg.setRedirect(true);
         return pg;
diff --git a/force-app/main/default/classes/NewAndEditLeadController.cls b/force-app/main/default/classes/NewAndEditLeadController.cls
index 6a1bf53..6ff38fd 100644
--- a/force-app/main/default/classes/NewAndEditLeadController.cls
+++ b/force-app/main/default/classes/NewAndEditLeadController.cls
@@ -13,6 +13,7 @@
     public static Map<String, Schema.SObjectType> schemaMap = Schema.getGlobalDescribe();
     public static String sobjectTypeValue = 'Lead';
     public Boolean isNewMode{set;get;}
+    public Boolean isCloneMode{protected set;get;}
     public String rtTypeId {get; set;}
     public String AWSDataId{set;get;}
     public String AWSDataIdInquiryForm{set;get;}
@@ -40,10 +41,15 @@
         ApiPrefix = 'PIBackApi';       
         isDecryptContact = '0';
         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;
         sobjecttypeForFrontEnd = sobjectTypeValue;
+        Map<string,string> mso = ApexPages.currentPage().getParameters();
+        if(mso != null && mso.containsKey('newclone')){
+            isCloneMode = true;
+        }
         //鑾峰彇鎵�鏈夊瓧娈�
         List<String> fieldList = new List<String>(Schema.getGlobalDescribe().get('Lead').getDescribe().fields.getMap().keyset());  
         // Add fields to controller. This is to avoid the SOQL error in visualforce page
@@ -82,7 +88,7 @@
             contactsInfo = JSON.serialize(sfIdToAWSIdMap);
         }else{
             //鐪嬮摼鎺ヤ腑鏈夋棤甯﹁繃鏉ョ殑鍙傛暟(瀹㈡埛浜哄憳)
-            Map<string,string> mso = ApexPages.currentPage().getParameters();
+            // Map<string,string> mso = ApexPages.currentPage().getParameters();
             for(String key : mso.keySet()){
                 System.debug('key=' + key + ',value=' + mso.get(key));
             }
@@ -195,19 +201,30 @@
         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)leadInfo.get('AWS_Data_Id__c');
+            System.debug('awsDataId = ' + awsDataId);
+            Lead[] leads = [select id from Lead where AWS_Data_Id__c =:awsDataId];
+            
+            if(!isNew){
+                isClone = leads.size() == 0;
+            }
+            System.debug('isClone---------'+isClone);
+
+            if(isNew || isClone){
                 System.debug('leadInfozhj = ' + leadInfo);
                 if(!Test.isRunningTest()){
                     insert leadInfo;
                 }
             }else{
                 System.debug('into update');
-                String awsDataId = (String)leadInfo.get('AWS_Data_Id__c');
-                System.debug('awsDataId = ' + awsDataId);
-                Lead[] leads = [select id from Lead where AWS_Data_Id__c =:awsDataId];
+                // String awsDataId = (String)leadInfo.get('AWS_Data_Id__c');
+                // System.debug('awsDataId = ' + awsDataId);
+                // Lead[] leads = [select id from Lead where AWS_Data_Id__c =:awsDataId];
                 System.debug('leads[0].id = ' + leads[0].id);
                 leadInfo.put('Id',leads[0].id);//For testing;
                 if(!Test.isRunningTest()){
@@ -222,6 +239,25 @@
             System.debug('resp from sfdx back-end' + resp);
             return resp;
 
+        } catch(DmlException e) {
+            Integer index = 0;
+            System.debug(e.getNumDml());
+            System.debug(e.getDmlFields(index));
+            System.debug(e.getDmlId(index));
+            System.debug(e.getDmlIndex(index));
+            System.debug(e.getDmlMessage(index));
+            System.debug(e.getDmlStatusCode(index));
+            System.debug(e.getDmlType(index));
+            system.debug(e.getMessage());
+            system.debug(e.getStackTraceString());
+
+            System.debug('into catch'+e.getMessage());
+            Database.rollback(sp);
+            resp.status = 'Exception';
+            resp.message ='淇濆瓨澶辫触锛屽師鍥�:'+ e.getDmlMessage(index);
+            PIHelper.saveTransLog(sobjectTypeValue,(String)leadInfo.get('AWS_Data_Id__c'),rid,transId, leadJson ,status,e.getMessage()+e.getStackTraceString());
+            return resp;
+            
         } catch(Exception e) {
             System.debug('into catch'+e.getMessage());
             Database.rollback(sp);
diff --git a/force-app/main/default/classes/NewAndEditReportController.cls b/force-app/main/default/classes/NewAndEditReportController.cls
index de62a49..eec19b4 100644
--- a/force-app/main/default/classes/NewAndEditReportController.cls
+++ b/force-app/main/default/classes/NewAndEditReportController.cls
@@ -3,6 +3,7 @@
     public static Map<String, Schema.SObjectType> schemaMap = Schema.getGlobalDescribe();
     public static String sobjectTypeValue = 'Report__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
@@ -42,6 +43,7 @@
         AWSToSobjectEncryptedMap = new Map<string,string>();
         sobjectId = [SELECT CustomObjectId,CustomObjectName  FROM CustomObjectUserLicenseMetrics   where CustomObjectName ='Report' limit 1].CustomObjectId;
         isNewMode = true;
+        isCloneMode = false;
         Input_Required_Field_Msg = Label.Input_Required_Field_Msg;
         PIPL_Input_Account_Error_Msg = label.PIPL_Input_Account_Error_Msg;
         sobjecttypeForFrontEnd = sobjectTypeValue;
@@ -50,6 +52,10 @@
         // Add fields to controller. This is to avoid the SOQL error in visualforce page
         if (!Test.isRunningTest()) { 
             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){
@@ -151,7 +157,7 @@
             obj.put('OwnerId',UserInfo.getUserId());
         }else{
             //鏂板缓
-            Map<string,string> mso = ApexPages.currentPage().getParameters();
+            // Map<string,string> mso = ApexPages.currentPage().getParameters();
             //鍖婚櫌/绉戝/缁忛攢鍟�(鎵嬪啓)
             if(mso.containsKey('00N10000002GE3Z')){
                 controller.getRecord().put('Manual_Name__c',mso.get('00N10000002GE3Z'));
@@ -210,41 +216,49 @@
         Savepoint sp = Database.setSavepoint();
         String rid = '';
         //鑷畾涔夋牸寮忚浆鎹�
+        Boolean isClone = false;
         try{
-        for (String fieldAPI: fieldValueMap.keySet()) {
-            if(!fieldAPIToTypeMap.containskey(fieldAPI)){
-                continue;
+            for (String fieldAPI: fieldValueMap.keySet()) {
+                if(!fieldAPIToTypeMap.containskey(fieldAPI)){
+                    continue;
+                }
+                Schema.DisplayType fielddataType = fieldAPIToTypeMap.get(fieldAPI).getDescribe().getType();  
+                String fieldValue = String.valueOf(fieldValueMap.get(fieldAPI)); 
+                if(String.valueOf(fielddataType)=='DATE'){
+                    System.debug('DATE fieldAPI = '+fieldAPI+' filedData = '+String.valueOf(fieldValueMap.get(fieldAPI)));
+                    //reportInfo.put(fieldAPI, Date.valueOf(String.valueOf(fieldValueMap.get(fieldAPI)).replace('/', '-')));
+                    reportInfo.put(fieldAPI,(String.isBlank(fieldValue)||String.isEmpty(fieldValue))? null:Date.valueOf(fieldValue.replace('/', '-')));
+                }else if(String.valueOf(fielddataType)=='DATETIME'){
+                    System.debug('fieldValueMap:' + fieldValueMap);
+                    String dt = String.valueOf(fieldValueMap.get(fieldAPI));
+                    System.debug('fieldValueMap.get(fieldAPI)' + fieldValueMap.get(fieldAPI));
+                    System.debug('dt:'+dt);
+                    if(String.isNotBlank(dt)&&dt.contains('T')){
+                        dt = dt.replace('T',' ');
+                        reportInfo.put(fieldAPI, Datetime.valueOfGmt(dt));
+                    }else if(String.isNotBlank(dt))  {
+                        reportInfo.put(fieldAPI, Datetime.valueOf(dt.replace('/', '-') + ':00'));
+                    }else{
+                        reportInfo.put(fieldAPI, null);
+                    }         
+                }else if(String.valueof(fielddataType)=='CURRENCY'|| String.valueof(fielddataType)=='PERCENT'||String.valueOf(fielddataType)=='Number'||String.valueOf(fielddataType)=='DOUBLE' ){
+                    //reportInfo.put(fieldAPI, Decimal.valueOf(String.valueOf(fieldValueMap.get(fieldAPI))));
+                    reportInfo.put(fieldAPI, (String.isBlank(fieldValue)||String.isEmpty(fieldValue))?null:Decimal.valueOf(fieldValue.replace(',', ''))); 
+                } else if(String.valueof(fielddataType)=='BOOLEAN'){
+                    reportInfo.put(fieldAPI, fieldValueMap.get(fieldAPI));
+                }else {
+                    reportInfo.put(fieldAPI, String.valueOf(fieldValueMap.get(fieldAPI)));
+                }                  
             }
-            Schema.DisplayType fielddataType = fieldAPIToTypeMap.get(fieldAPI).getDescribe().getType();  
-            String fieldValue = String.valueOf(fieldValueMap.get(fieldAPI)); 
-            if(String.valueOf(fielddataType)=='DATE'){
-                System.debug('DATE fieldAPI = '+fieldAPI+' filedData = '+String.valueOf(fieldValueMap.get(fieldAPI)));
-                //reportInfo.put(fieldAPI, Date.valueOf(String.valueOf(fieldValueMap.get(fieldAPI)).replace('/', '-')));
-                reportInfo.put(fieldAPI,(String.isBlank(fieldValue)||String.isEmpty(fieldValue))? null:Date.valueOf(fieldValue.replace('/', '-')));
-            }else if(String.valueOf(fielddataType)=='DATETIME'){
-                System.debug('fieldValueMap:' + fieldValueMap);
-                String dt = String.valueOf(fieldValueMap.get(fieldAPI));
-                System.debug('fieldValueMap.get(fieldAPI)' + fieldValueMap.get(fieldAPI));
-                System.debug('dt:'+dt);
-                if(String.isNotBlank(dt)&&dt.contains('T')){
-                    dt = dt.replace('T',' ');
-                    reportInfo.put(fieldAPI, Datetime.valueOfGmt(dt));
-                }else if(String.isNotBlank(dt))  {
-                    reportInfo.put(fieldAPI, Datetime.valueOf(dt.replace('/', '-') + ':00'));
-                }else{
-                    reportInfo.put(fieldAPI, null);
-                }         
-            }else if(String.valueof(fielddataType)=='CURRENCY'|| String.valueof(fielddataType)=='PERCENT'||String.valueOf(fielddataType)=='Number'||String.valueOf(fielddataType)=='DOUBLE' ){
-                //reportInfo.put(fieldAPI, Decimal.valueOf(String.valueOf(fieldValueMap.get(fieldAPI))));
-                reportInfo.put(fieldAPI, (String.isBlank(fieldValue)||String.isEmpty(fieldValue))?null:Decimal.valueOf(fieldValue.replace(',', ''))); 
-            } else if(String.valueof(fielddataType)=='BOOLEAN'){
-                reportInfo.put(fieldAPI, fieldValueMap.get(fieldAPI));
-            }else {
-                reportInfo.put(fieldAPI, String.valueOf(fieldValueMap.get(fieldAPI)));
-            }                  
-        }
-        System.debug('鑷畾涔夋牸寮忚浆鎹㈢粨鏉�');
+            System.debug('鑷畾涔夋牸寮忚浆鎹㈢粨鏉�');
+
+            String awsDataId = (String)reportInfo.get('AWS_Data_Id__c');
+            System.debug('awsDataId = ' + awsDataId);
+            report__c[] reports = [select id from report__c where AWS_Data_Id__c =:awsDataId];
             
+            if(!isNew){
+                isClone = reports.size() == 0;
+            }
             if(isNew){
                 System.debug('reportInfo = ' + reportInfo);               
                 if(!Test.isRunningTest()){
@@ -255,9 +269,9 @@
                 }
             }else{
                 System.debug('into update');
-                String awsDataId = (String)reportInfo.get('AWS_Data_Id__c');
-                System.debug('awsDataId = ' + awsDataId);
-                report__c[] reports = [select id from report__c where AWS_Data_Id__c =:awsDataId];
+                // String awsDataId = (String)reportInfo.get('AWS_Data_Id__c');
+                // System.debug('awsDataId = ' + awsDataId);
+                // report__c[] reports = [select id from report__c where AWS_Data_Id__c =:awsDataId];
                 System.debug('reports[0].id = ' + reports[0].id);
                 reportInfo.put('Id',reports[0].id);//For testing;                
                 if(!Test.isRunningTest()){
diff --git a/force-app/main/default/classes/NewConsumApplyController.cls b/force-app/main/default/classes/NewConsumApplyController.cls
index fab3059..ad6b778 100644
--- a/force-app/main/default/classes/NewConsumApplyController.cls
+++ b/force-app/main/default/classes/NewConsumApplyController.cls
@@ -12,6 +12,7 @@
     public static Map<String, Schema.SObjectType> schemaMap = Schema.getGlobalDescribe();
     public static String sobjectTypeValue = 'Consum_Apply__c';
     public Boolean isNewMode{set;get;}
+    public Boolean isCloneMode{protected set;get;}
     public String rtTypeId {get; set;}
     public String AWSDataId{set;get;}
     public List<String> encryptedAPIList{set;get;}   
@@ -30,10 +31,15 @@
     public NewConsumApplyController(ApexPages.StandardController controller) {
         ApiPrefix = 'PIBackApi';  
         isNewMode = true;
+        isCloneMode = false;
         Input_Required_Field_Msg = Label.Input_Required_Field_Msg;
         PIPL_Input_Account_Error_Msg = label.PIPL_Input_Account_Error_Msg;
         //鑾峰彇鎵�鏈夊瓧娈�
         List<String> fieldList = new List<String>(Schema.getGlobalDescribe().get('Consum_Apply__c').getDescribe().fields.getMap().keyset());  
+        Map<string,string> mso = ApexPages.currentPage().getParameters();
+        if(mso != null && mso.containsKey('newclone')){
+            isCloneMode = true;
+        }
         if (!Test.isRunningTest()) { 
             controller.addFields(fieldList);
         }
@@ -55,7 +61,7 @@
             //鏂板缓
             rtTypeId = ApexPages.currentPage().getParameters().get('RecordType');
             obj.put('OwnerId',UserInfo.getUserId());
-            Map<string,string> mso = ApexPages.currentPage().getParameters();
+            // Map<string,string> mso = ApexPages.currentPage().getParameters();
             system.debug('mso='+mso);
             if(mso.containsKey('00N10000008rdgs')){
                 controller.getRecord().put('demo_purpose2__c',mso.get('00N10000008rdgs'));
@@ -133,17 +139,26 @@
         Response resp = new Response();
         Savepoint sp = Database.setSavepoint();
         String rid = '';
+        Boolean isClone = false;
+        String awsDataId = '';
+                
         try{
             System.debug('abcde');
-            if(isNew){
+            awsDataId = (String)consumApplyInfo.get('AWS_Data_Id__c');
+            System.debug('awsDataId = ' + awsDataId);
+            Consum_Apply__c[] ConsumApplys = [select id from Consum_Apply__c where AWS_Data_Id__c =:awsDataId];
+            if(!isNew){
+                isClone = ConsumApplys.size() == 0;
+            }
+            if(isNew || isClone){
                 System.debug('consumApplyInfozhj = ' + consumApplyInfo);
                 insert consumApplyInfo;
                 System.debug('consumApplyInfo.Id' + consumApplyInfo.Id);
             }else{
                 System.debug('into update');
-                String awsDataId = (String)consumApplyInfo.get('AWS_Data_Id__c');
-                System.debug('awsDataId = ' + awsDataId);
-                Consum_Apply__c[] ConsumApplys = [select id from Consum_Apply__c where AWS_Data_Id__c =:awsDataId];
+                // String awsDataId = (String)consumApplyInfo.get('AWS_Data_Id__c');
+                // System.debug('awsDataId = ' + awsDataId);
+                // Consum_Apply__c[] ConsumApplys = [select id from Consum_Apply__c where AWS_Data_Id__c =:awsDataId];
                 System.debug('ConsumApplys[0].id = ' + ConsumApplys[0].id);
                 consumApplyInfo.put('Id',ConsumApplys[0].id);//For testing;
                 update consumApplyInfo;
diff --git a/force-app/main/default/classes/NewRepairController.cls b/force-app/main/default/classes/NewRepairController.cls
index 1126822..b246859 100644
--- a/force-app/main/default/classes/NewRepairController.cls
+++ b/force-app/main/default/classes/NewRepairController.cls
@@ -26,6 +26,9 @@
     public String sobjectPrefix{set;get;}
     public String sobjecttypeForFrontEnd{set;get;}
     public String sobjectId{set;get;}
+    public String workLocationSelect{set;get;}
+    public String RepairSubOrderAWSDataId{set;get;}
+    public String staticResourceRepairSubOrder{set;get;}
     public NewRepairController(ApexPages.StandardController controller) {
         sobjectId = [SELECT CustomObjectId,CustomObjectName  FROM CustomObjectUserLicenseMetrics   where CustomObjectName ='Repair' limit 1].CustomObjectId;
         isNewMode = true;
@@ -52,14 +55,181 @@
             //鏂板缓
             Map<string,string> mso = ApexPages.currentPage().getParameters();
             system.debug('mso='+mso);
+            //淇悊鍝佽繑閫佸湴
             if(mso.containsKey('00N10000006P6SM')){
                 controller.getRecord().put('SalesOfficeCode_selection__c',mso.get('00N10000006P6SM'));
             }
             if(mso.containsKey('00N10000002FH86')){
-                controller.getRecord().put('On_site_repair__c',mso.get('00N10000002FH86'));
+                //controller.getRecord().put('On_site_repair__c',mso.get('00N10000002FH86'));
+                //Repair_Source__c
+                controller.getRecord().put('Repair_Source__c',mso.get('00N10000002FH86'));
             }
             if(mso.containsKey('00N10000006P6Rn')){
                 controller.getRecord().put('work_location_select__c',mso.get('00N10000006P6Rn'));
+                workLocationSelect = mso.get('00N10000006P6Rn');
+                System.debug('workLocationSelect = ' + workLocationSelect);
+            }
+            //闂鍐呭鎻忚堪00N10000002Dx6I
+            if(mso.containsKey('00N10000002Dx6I')){
+                controller.getRecord().put('Repair_Detail__c',mso.get('00N10000002Dx6I'));
+            }
+            //闂鑱旂粶鏀跺埌鏃�00N10000008rsVQ
+            if(mso.containsKey('00N10000008rsVQ')){
+                String o = mso.get('00N10000008rsVQ');
+                controller.getRecord().put('DateReceiptQuestions__c',(String.isBlank(o)||String.isEmpty(o))? null:Date.valueOf(o.replace('/', '-')));
+            }
+            
+            //鏄惁鏈夋浜°�佷激瀹炽�佹劅鏌�00N10000008rsW7
+            if(mso.containsKey('00N10000008rsW7')){
+                controller.getRecord().put('ifDeadHurt__c',mso.get('00N10000008rsW7'));
+            }
+            //鏄惁鍜岃繖娆$殑浜у搧鏁呴殰鏈夊叧00N10000008rsVw
+            if(mso.containsKey('00N10000008rsVw')){
+                controller.getRecord().put('ProductFailureRelated__c',mso.get('00N10000008rsVw'));
+            }
+            //鍖婚櫌鏈夋病鏈夊悜鏀垮簻鏈哄叧鎶ュ憡涓嶈壇浜嬩欢鎴栫枒浼间笉鑹簨浠�00N10000008rsW2
+            if(mso.containsKey('00N10000008rsW2')){
+                controller.getRecord().put('ReportAdverseEvents__c',mso.get('00N10000008rsW2'));
+            }
+            //鍋氱殑鏄摢涓」鐩�00N10000008rsW6
+            if(mso.containsKey('00N10000008rsW6')){
+                controller.getRecord().put('WhatProject__c',mso.get('00N10000008rsW6'));
+            }
+            //鎵嬫湳/妫�鏌ュ悕绉�00N10000008rsVk
+            if(mso.containsKey('00N10000008rsVk')){
+                controller.getRecord().put('OperationOrExaminationName__c',mso.get('00N10000008rsVk'));
+            }
+            //鏄惁鏈夊彂鐢熸柇瑁傛垨鑴辫惤00N10000008rsVN
+            if(mso.containsKey('00N10000008rsVN')){
+                controller.getRecord().put('BreakORFallOff__c',mso.get('00N10000008rsVN'));
+            }
+            //閰嶅浣跨敤浜у搧00N10000008rsW4
+            if(mso.containsKey('00N10000008rsW4')){
+                controller.getRecord().put('SupportingProducts__c',mso.get('00N10000008rsW4'));
+            }
+            //鍙戠幇鏁呴殰鍚庯紝鍖婚櫌瀵规偅鑰呯殑澶勭悊鎯呭喌00N10000008rsVL
+            if(mso.containsKey('00N10000008rsVL')){
+                controller.getRecord().put('AfterFailureInformation__c',mso.get('00N10000008rsVL'));
+            }
+            //鍙戠幇鏁呴殰鐜拌薄鍚庯紝鏈夊欢璇�15鍒嗛挓浠ヤ笂鐨勬墜鏈疄鏂界殑鎯呭喌鍙戠敓鍚�00N10000008rsVR
+            if(mso.containsKey('00N10000008rsVR')){
+                controller.getRecord().put('Delay15Min__c',mso.get('00N10000008rsVR'));
+            }
+            //淇℃伅鏄粠鍖婚櫌鐨勮皝閭i噷寰楀埌鐨�00N10000008rsVZ
+            if(mso.containsKey('00N10000008rsVZ')){
+                controller.getRecord().put('InformationFrom__c',mso.get('00N10000008rsVZ'));
+            }
+            //鍦ㄥ尰闄紝鏁呴殰鍙戠敓鐨勯鐜囨槸澶氬皯00N10000008rsVT
+            if(mso.containsKey('00N10000008rsVT')){
+                controller.getRecord().put('FailureQInHospital__c',mso.get('00N10000008rsVT'));
+            }
+            //闂鍙戠敓鏃堕棿鎯呭喌00N10000008rsVv
+            if(mso.containsKey('00N10000008rsVv')){
+                controller.getRecord().put('ProblemOccurred__c',mso.get('00N10000008rsVv'));
+            }
+            //鏄惁鐢ㄨ浜у搧瀹屾垚浜嗘墜鏈�/妫�鏌�00N10000008rsW5
+            if(mso.containsKey('00N10000008rsW5')){
+                if(mso.get('00N10000008rsW5') != 'undefined'){
+                    controller.getRecord().put('UseFailProductFinish__c',mso.get('00N10000008rsW5'));
+                }
+            }
+            //鏁呴殰鍙戠敓鏃�00N10000002Dx5y
+            if(mso.containsKey('00N10000002Dx5y')){
+                String o = mso.get('00N10000002Dx5y');
+                controller.getRecord().put('Failure_Occurrence_Date__c',(String.isBlank(o)||String.isEmpty(o))? null:Date.valueOf(o.replace('/', '-')));
+            }
+            //淇悊濮旀墭鑰�(FSE)CF00N10000002EMHw_lkid
+            if(mso.containsKey('CF00N10000002EMHw_lkid')){
+                controller.getRecord().put('Incharge_Staff__c',mso.get('CF00N10000002EMHw_lkid'));
+            }
+            //鍘熶慨鐞嗗彈浠樼暘鍙�00N1m000005gt1l
+            if(mso.containsKey('00N1m000005gt1l')){
+                controller.getRecord().put('Old_Name__c',mso.get('00N1m000005gt1l'));
+            }
+            //璁惧鍨嬪彿CF00N10000002Dx1X_lkid
+            if(mso.containsKey('CF00N10000002Dx1X_lkid')){
+                controller.getRecord().put('Delivered_Product__c',mso.get('CF00N10000002Dx1X_lkid'));
+            }
+            //缁翠慨濮旀墭涔﹀彿鐮�00N10000006P1dw
+            if(mso.containsKey('00N10000006P1dw')){
+                controller.getRecord().put('PaperRepairRequestNo__c',mso.get('00N10000006P1dw'));
+            }
+            
+            //閫氳繃id鏌�
+            Repair__c rc = null;
+            if (mso.containsKey('RepairId')) {
+                String RepairId = mso.get('RepairId');
+                rc = [select Hospital__c,Department_Class__c,Account__c,Dealer__c,Incharge_Staff_Contact__c,Incharge_Staff__c from Repair__c where id =:RepairId ];
+                //鍖婚櫌
+                controller.getRecord().put('Hospital__c',rc.Hospital__c);
+                //鎴樼暐绉戝鍒嗙被
+                controller.getRecord().put('Department_Class__c',rc.Department_Class__c);
+                //绉戝
+                controller.getRecord().put('Account__c',rc.Account__c);
+                //缁忛攢鍟嗗悕
+                controller.getRecord().put('Dealer__c',rc.Dealer__c);
+                //淇悊濮旀墭鑰咃紙鍛樺伐锛�
+                controller.getRecord().put('Incharge_Staff_Contact__c',rc.Incharge_Staff_Contact__c);
+                //淇悊濮旀墭鑰�(FSE)
+                controller.getRecord().put('Incharge_Staff__c',rc.Incharge_Staff__c);
+            }
+            
+            //甯傚満澶氬勾淇濅慨 鏈夊伩/鏃犲伩淇悊00N10000008rG4p
+            if(mso.containsKey('00N10000008rG4p')){
+                controller.getRecord().put('RepairCostType__c',mso.get('00N10000008rG4p'));
+            }
+            //鏈嶅姟鏂瑰紡00N10000002F6dW
+            if(mso.containsKey('00N10000002F6dW')){
+                controller.getRecord().put('On_site_repair__c',mso.get('00N10000002F6dW'));
+            }
+            //杩斿搧鏂瑰紡00N1m000004QmcJ
+            if(mso.containsKey('00N1m000004QmcJ')){
+                controller.getRecord().put('Returns_Product_way__c',mso.get('00N1m000004QmcJ'));
+            }
+            //闂鍐呭鎻忚堪锛堝浘鐗囷級00N10000008rsVuEAI
+            if(mso.containsKey('00N10000008rsVuEAI')){
+                controller.getRecord().put('ProblemDescription__c',mso.get('00N10000008rsVuEAI'));
+            }
+            //鎶ヤ慨浜�00N1m0000054ufW
+            if(mso.containsKey('00N1m0000054ufW')){
+                controller.getRecord().put('RepairApplicant__c',mso.get('00N1m0000054ufW'));
+            }
+            //鎶ヤ慨浜哄尰闄�00N1m0000054ufU
+            if(mso.containsKey('00N1m0000054ufU')){
+                controller.getRecord().put('RepairApplicantHospital__c',mso.get('00N1m0000054ufU'));
+            }
+            //鎶ヤ慨浜虹瀹�00N1m0000054ufT
+            if(mso.containsKey('00N1m0000054ufT')){
+                controller.getRecord().put('RepairApplicantDepartment__c',mso.get('00N1m0000054ufT'));
+            }
+            //閫佷慨鐗╂祦鏂瑰紡00N1m0000054ufE
+            if(mso.containsKey('00N1m0000054ufE')){
+                controller.getRecord().put('DeliveryLogisticsMode__c',mso.get('00N1m0000054ufE'));
+            }
+            //閫佷慨鐗╂祦鏈�鏂扮姸鎬�00N1m0000054ufk
+            if(mso.containsKey('00N1m0000054ufk')){
+                controller.getRecord().put('LogisticsLatestStatus__c',mso.get('00N1m0000054ufk'));
+            }
+            //閫佷慨鐗╂祦鍗曞彿00N1m0000054ufF
+            if(mso.containsKey('00N1m0000054ufF')){
+                controller.getRecord().put('DeliveryLogisticsNo__c',mso.get('00N1m0000054ufF'));
+            }
+            //閫佷慨鐗╂祦淇℃伅澶囨敞00N1m0000054ufD
+            if(mso.containsKey('00N1m0000054ufD')){
+                controller.getRecord().put('DeliveryLogisticsAnnotation__c',mso.get('00N1m0000054ufD'));
+            }
+            //瓒呮椂鎶ュ憡鐨勭悊鐢�00N10000008rsVS
+            if(mso.containsKey('00N10000008rsVS')){
+                controller.getRecord().put('DelayReportReason__c',mso.get('00N10000008rsVS'));
+            }
+            //鎶ヤ慨瀛愬崟CF00N1m0000054ufZ_lkid
+            if(mso.containsKey('CF00N1m0000054ufZ_lkid')){
+                controller.getRecord().put('RepairSubOrder__c',mso.get('CF00N1m0000054ufZ_lkid'));
+                //鏌ヨAWSDataId
+                List<RepairSubOrder__c> rso = [select AWS_Data_Id__c from RepairSubOrder__c where Id=:mso.get('CF00N1m0000054ufZ_lkid')];
+                if(rso.size() > 0){
+                    RepairSubOrderAWSDataId = rso[0].AWS_Data_Id__c;
+                }
             }
             rtTypeId = ApexPages.currentPage().getParameters().get('RecordType');
             if(String.isBlank(rtTypeId)||String.isEmpty(rtTypeId)){
@@ -77,9 +247,11 @@
         PIHelper.PIIntegration piIntegration = PIHelper.getPIIntegrationInfo('Repair__c');
         PIHelper.PIIntegration piIntegrationAddress = PIHelper.getPIIntegrationInfo('Address__c');
         PIHelper.PIIntegration piIntegrationContact = PIHelper.getPIIntegrationInfo('Contact');
+        PIHelper.PIIntegration piIntegrationRepairSubOrder = PIHelper.getPIIntegrationInfo('RepairSubOrder__c');
         staticResource = JSON.serialize(piIntegration);
         staticResourceAddress = JSON.serialize(piIntegrationAddress);
         staticResourceContact = JSON.serialize(piIntegrationContact);
+        staticResourceRepairSubOrder = JSON.serialize(piIntegrationRepairSubOrder);
         encryptedAPIList = piIntegration.PIFields;
         sobjectPrefix = piIntegration.sobjectPrefix;
     }
@@ -89,6 +261,17 @@
         public String message{set;get;}
         public String status{set;get;}
     }
+    
+    @RemoteAction
+    global static Response EncryptUpdate(string rid){
+        
+        boolean b = AWSServiceTool2.EncryptPushData(new string[]{rid});
+        Response r = new Response();
+        r.status = b ? 'success' : 'failed';
+        r.message = b ? '' : '鍔犲瘑鎺ㄩ�佸け璐�';
+        r.recordId = rid;
+        return r;
+    }
 
     @RemoteAction
     global static Response saveRepair(String repairJson,String transId,Boolean isNew) {
diff --git a/force-app/main/default/classes/NewRepairControllerTest.cls b/force-app/main/default/classes/NewRepairControllerTest.cls
index 5efe64a..b24e100 100644
--- a/force-app/main/default/classes/NewRepairControllerTest.cls
+++ b/force-app/main/default/classes/NewRepairControllerTest.cls
@@ -37,10 +37,44 @@
         url = ApexPages.currentPage().getParameters().put('00N10000002FH86','RC淇悊');
         url = ApexPages.currentPage().getParameters().put('00N10000006P6Rn','鍖椾含鍔炰簨澶�');
         url = ApexPages.currentPage().getParameters().put('RecordType',recordTypeId);
-
+        
+        url =  ApexPages.currentPage().getParameters().put('CF00N10000002Dx66_lkid','0011000000V9TM6');
+        url =  ApexPages.currentPage().getParameters().put('CF00N10000002Dx66','%E5%89%91%E9%98%81%E5%8E%BF%E4%BA%BA%E6%B0%91%E5%8C%BB%E9%99%A2');
+        url =  ApexPages.currentPage().getParameters().put('CF00N10000002Dx5t_lkid','0011000000VAFmh');
+        url =  ApexPages.currentPage().getParameters().put('CF00N10000002Dx5t','%E5%89%91%E9%98%81%E5%8E%BF%E4%BA%BA%E6%B0%91%E5%8C%BB%E9%99%A2+ET');
+        url =  ApexPages.currentPage().getParameters().put('CF00N10000002Dx5n_lkid','0011000000VAFmh');
+        url =  ApexPages.currentPage().getParameters().put('CF00N10000002Dx5n','%E5%89%91%E9%98%81%E5%8E%BF%E4%BA%BA%E6%B0%91%E5%8C%BB%E9%99%A2+ET');
+        url =  ApexPages.currentPage().getParameters().put('CF00N10000002Dx1X_lkid','02i10000004FhGu');
+        url =  ApexPages.currentPage().getParameters().put('CF00N10000002Dx1X','MH-443%3A%E5%90%B8%E5%BC%95%E6%8C%89%E9%92%AE');
+        url =  ApexPages.currentPage().getParameters().put('00N10000002FH86','%e5%8f%aa%e4%bf%ae%e7%90%86');
+        url =  ApexPages.currentPage().getParameters().put('00N10000006P6Rn','%E5%8C%97%E4%BA%AC%E5%8A%9E%E4%BA%8B%E5%A4%84');
+        
+        url = ApexPages.currentPage().getParameters().put('CF00N10000002FIJZ_lkid','a0f1000000cS7qH');
+        url = ApexPages.currentPage().getParameters().put('CF00N10000002FIJZ','OCSM-%E8%A5%BF%E5%8C%97-153PA-07878');
+        url = ApexPages.currentPage().getParameters().put('CF00N10000002Dx66_lkid','0011000000V9SnP');
+        url = ApexPages.currentPage().getParameters().put('CF00N10000002Dx66','%E6%B7%AE%E6%BB%A8%E5%8E%BF%E4%BA%BA%E6%B0%91%E5%8C%BB%E9%99%A2');
+        url = ApexPages.currentPage().getParameters().put('CF00N10000002Dx5t_lkid','0011000000V9ZEI');
+        url = ApexPages.currentPage().getParameters().put('CF00N10000002Dx5t','%E6%B7%AE%E6%BB%A8%E5%8E%BF%E4%BA%BA%E6%B0%91%E5%8C%BB%E9%99%A2+%E6%B6%88%E5%8C%96%E7%A7%91');
+        url = ApexPages.currentPage().getParameters().put('CF00N10000002Dx5n_lkid','0011000000VALNX');
+        url = ApexPages.currentPage().getParameters().put('CF00N10000002Dx5n','%E6%B7%AE%E6%BB%A8%E5%8E%BF%E4%BA%BA%E6%B0%91%E5%8C%BB%E9%99%A2+%E6%B6%88%E5%8C%96%E7%A7%91+%E8%83%83%E9%95%9C%E5%AE%A4');
+        url = ApexPages.currentPage().getParameters().put('CF00N10000002Dx1X_lkid','02i10000004ExNO');
+        url = ApexPages.currentPage().getParameters().put('CF00N10000002Dx1X','GIF-H170%3A%E7%94%B5%E5%AD%90%E4%B8%8A%E6%B6%88%E5%8C%96%E9%81%93%E5%86%85%E7%AA%A5%E9%95%9C');
+        url = ApexPages.currentPage().getParameters().put('CF00N10000002EMHw_lkid','00510000005sFUG');
+        url = ApexPages.currentPage().getParameters().put('CF00N10000002EMHw','%E5%90%95%20%E5%85%A8%E5%A5%BD');
+        url = ApexPages.currentPage().getParameters().put('00N10000002Dx5y','2020/08/05');
+        url = ApexPages.currentPage().getParameters().put('00N10000006P6SM','%E9%83%91%E5%B7%9E');
+        url = ApexPages.currentPage().getParameters().put('00N10000002FH86','%E4%BB%8EQIS');
+        url = ApexPages.currentPage().getParameters().put('00N10000006P6Rn','%E5%8C%97%E4%BA%AC%E5%8A%9E%E4%BA%8B%E5%A4%84');
+		
+		Repair__c repTest = TestDataUtility.CreateRepairs(1)[0];
+        url = ApexPages.currentPage().getParameters().put('RepairId',repTest.Id);
         Test.startTest();
         ApexPages.StandardController con =  new ApexPages.StandardController(new Repair__c());
         NewRepairController repDetail = new NewRepairController(con);
         Test.stopTest();
     }
+    static testMethod void testMethod3(){
+        TestDataUtility.CreatePIPolicyConfiguration('Repair__c');
+        NewRepairController.EncryptUpdate('a0J1m000001QqXk');        
+    }
 }
\ No newline at end of file
diff --git a/force-app/main/default/classes/OnCallController.cls b/force-app/main/default/classes/OnCallController.cls
index 23a15ff..910fdad 100644
--- a/force-app/main/default/classes/OnCallController.cls
+++ b/force-app/main/default/classes/OnCallController.cls
@@ -1,10 +1,3 @@
-/**
- * @description       : 
- * @author            : ChangeMeIn@UserSettingsUnder.SFDoc
- * @group             : 
- * @last modified on  : 03-28-2022
- * @last modified by  : ChangeMeIn@UserSettingsUnder.SFDoc
-**/
 global without sharing class OnCallController {
     public String layoutSectionsStr {get; set;}//for dynamic add readonly attribute
     public List <LayoutDescriberHelper.LayoutSection > layoutSections{set;get;}
@@ -12,6 +5,7 @@
     public static Map<String, Schema.SObjectType> schemaMap = Schema.getGlobalDescribe();
     public static String sobjectTypeValue = 'On_Call__c';
     public Boolean isNewMode{set;get;}
+    public Boolean isCloneMode{protected set;get;}
     public String rtTypeId {get; set;}
     public String AWSDataId{set;get;}
     public List<String> encryptedAPIList{set;get;}
@@ -28,6 +22,7 @@
     public OnCallController(ApexPages.StandardController controller) {
         // sobjectId = [SELECT CustomObjectId,CustomObjectName  FROM CustomObjectUserLicenseMetrics   where CustomObjectName ='OnCall' limit 1].CustomObjectId;
         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;
@@ -37,7 +32,13 @@
         // Add fields to controller. This is to avoid the SOQL error in visualforce page
         if(!Test.isRunningTest()){
             controller.addFields(fieldList);  
+        }  
+        Map<string,string> mso = ApexPages.currentPage().getParameters();
+        System.debug('mso:' + mso);
+        if(mso != null && mso.containsKey('newclone')){
+            isCloneMode = true;
         }
+        System.debug('isClone:' + isCloneMode);
         SObject obj = controller.getRecord();        
         if(obj.Id != null){
             //鏇存柊
@@ -78,33 +79,31 @@
         On_Call__c onCallInfo = new On_Call__c();
         //鑷畾涔夋牸寮忚浆鎹�
         for (String fieldAPI: fieldValueMap.keySet()) {
-            system.debug('field API'+fieldAPI);
-            if(!fieldAPIToTypeMap.containskey(fieldAPI)){
-                continue;
-            }
+            system.debug('field API='+fieldAPI);
             Schema.DisplayType fielddataType = fieldAPIToTypeMap.get(fieldAPI).getDescribe().getType();  
             String fieldValue = String.valueOf(fieldValueMap.get(fieldAPI)); 
+            system.debug('Field Type:'+fielddataType+' field Value='+fieldValue);
             if(String.valueOf(fielddataType)=='DATE'){
-                onCallInfo.put(fieldAPI,(String.isBlank(fieldValue)||String.isEmpty(fieldValue))? null:Date.valueOf(fieldValue.replace('/', '-'))); 
+                onCallInfo.put(fieldAPI,(String.isBlank(fieldValue)||String.isEmpty(fieldValue))? null:Date.valueOf(fieldValue.replace('/', '-')));              
             }else if(String.valueOf(fielddataType)=='DATETIME'){
                 if(String.isNotBlank(fieldValue)&&fieldValue.contains('T')){
                     fieldValue = fieldValue.replace('T',' ');
                     onCallInfo.put(fieldAPI, Datetime.valueOfGmt(fieldValue));
+                //20220405 By ChenYanan Start
                 }else if(String.isNotBlank(fieldValue))  {
                     fieldValue = fieldValue.replace('/', '-') + ':00';
-                    System.debug('fieldValue = ' + fieldValue);
                     onCallInfo.put(fieldAPI, Datetime.valueOf(fieldValue));
+                //20220405 By ChenYanan End
                 }else{
                     onCallInfo.put(fieldAPI, null);
-                }
-                
-            }else if(String.valueOf(fielddataType)=='PERCENT'||String.valueOf(fielddataType)=='CURRENCY'||String.valueOf(fielddataType)=='Number'||String.valueOf(fielddataType)=='DOUBLE' ){
-                onCallInfo.put(fieldAPI, (String.isBlank(fieldValue)||String.isEmpty(fieldValue))?null:Decimal.valueOf(fieldValue.replace(',', ''))); 
+                }                    
+            }else if(String.valueof(fielddataType)=='CURRENCY'|| String.valueof(fielddataType)=='PERCENT'||String.valueOf(fielddataType)=='Number'||String.valueOf(fielddataType)=='DOUBLE' ){
+                onCallInfo.put(fieldAPI, (String.isBlank(fieldValue)||String.isEmpty(fieldValue))?0:Decimal.valueOf(fieldValue)); 
             } else if(String.valueof(fielddataType)=='BOOLEAN'){
                 onCallInfo.put(fieldAPI, fieldValueMap.get(fieldAPI));
             }else {
-                onCallInfo.put(fieldAPI, String.valueOf(fieldValueMap.get(fieldAPI)));
-            }                  
+                onCallInfo.put(fieldAPI,fieldValue);
+            }                   
         }
         
         //2. Save Record Process
@@ -112,16 +111,27 @@
         Response resp = new Response();
         Savepoint sp = Database.setSavepoint();
         String rid = '';
+        Boolean isClone = false;
+        String awsDataId = '';
         try{
-            System.debug('abcde');
-            if(isNew){
+            System.debug('abcde'+isNew);
+            awsDataId = (String)onCallInfo.get('AWS_Data_Id__c');
+            if (string.isBlank(awsDataId)) {
+                throw new DMLException('鏇存柊鏃禔WS_Data_Id__c涓嶈兘涓虹┖');
+            }
+            System.debug('awsDataId = ' + awsDataId);
+            On_Call__c[] onCalls = Database.query('select id from On_Call__c where AWS_Data_Id__c =:awsDataId');
+            if(!isNew){
+                isClone = onCalls.size() == 0;
+            }
+            if(isNew || isClone){
                 System.debug('onCallInfozhj = ' + onCallInfo);
                 insert onCallInfo;
             }else{
                 System.debug('into update');
-                String awsDataId = (String)onCallInfo.get('AWS_Data_Id__c');
-                System.debug('awsDataId = ' + awsDataId);
-                On_Call__c[] onCalls = [select id from On_Call__c where AWS_Data_Id__c =:awsDataId];
+                // String awsDataId = (String)onCallInfo.get('AWS_Data_Id__c');
+                // System.debug('awsDataId = ' + awsDataId);
+                // On_Call__c[] onCalls = [select id from On_Call__c where AWS_Data_Id__c =:awsDataId];
                 System.debug('onCalls[0].id = ' + onCalls[0].id);
                 onCallInfo.put('Id',onCalls[0].id);//For testing;
                 update onCallInfo;
diff --git a/force-app/main/default/classes/RentalApplyController.cls b/force-app/main/default/classes/RentalApplyController.cls
index 24037c2..fac0fb0 100644
--- a/force-app/main/default/classes/RentalApplyController.cls
+++ b/force-app/main/default/classes/RentalApplyController.cls
@@ -1,10 +1,3 @@
-/**
- * @description       : 
- * @author            : ChangeMeIn@UserSettingsUnder.SFDoc
- * @group             : 
- * @last modified on  : 03-28-2022
- * @last modified by  : ChangeMeIn@UserSettingsUnder.SFDoc
-**/
 global without sharing class RentalApplyController {
     public String layoutSectionsStr {get; set;}//for dynamic add readonly attribute
     public List <LayoutDescriberHelper.LayoutSection > layoutSections{set;get;}
@@ -12,6 +5,7 @@
     public static Map<String, Schema.SObjectType> schemaMap = Schema.getGlobalDescribe();
     public static String sobjectTypeValue = 'Rental_Apply__c';
     public Boolean isNewMode{set;get;}
+    public Boolean isCloneMode{protected set;get;}
     public String rtTypeId {get; set;}
     public String AWSDataId{set;get;}
     public List<String> encryptedAPIList{set;get;}   
@@ -30,10 +24,15 @@
     public RentalApplyController(ApexPages.StandardController controller) {
         ApiPrefix = 'PIBackApi';    
         isNewMode = true;
+        isCloneMode = false;
         Input_Required_Field_Msg = Label.Input_Required_Field_Msg;
         PIPL_Input_Account_Error_Msg = label.PIPL_Input_Account_Error_Msg;
         //鑾峰彇鎵�鏈夊瓧娈�
         List<String> fieldList = new List<String>(Schema.getGlobalDescribe().get('Rental_Apply__c').getDescribe().fields.getMap().keyset());  
+        Map<string,string> mso = ApexPages.currentPage().getParameters();
+        if(mso != null && mso.containsKey('newclone')){
+            isCloneMode = true;
+        }
         if(!Test.isRunningTest()){
             controller.addFields(fieldList);
         }
@@ -51,7 +50,7 @@
             contactsInfo = JSON.serialize(sfIdToAWSIdMap);
         }else{
             //鏂板缓
-            Map<string,string> mso = ApexPages.currentPage().getParameters();
+            // Map<string,string> mso = ApexPages.currentPage().getParameters();
             system.debug('mso='+mso);
             if(mso.containsKey('Name')){
                 controller.getRecord().put('Name',mso.get('Name'));
@@ -151,17 +150,26 @@
         Response resp = new Response();
         Savepoint sp = Database.setSavepoint();
         String rid = '';
+        Boolean isClone = false;
+        String awsDataId = '';
         try{
             System.debug('abcde');
-            if(isNew){
+            awsDataId = (String)rentalApplyInfo.get('AWS_Data_Id__c');
+            System.debug('awsDataId = ' + awsDataId);
+            Rental_Apply__c[] RentalApplys = [select id from Rental_Apply__c where AWS_Data_Id__c =:awsDataId];
+            if(!isNew){
+                isClone = RentalApplys.size() == 0;
+            }
+
+            if(isNew || isClone){
                 System.debug('rentalApplyInfozhj = ' + rentalApplyInfo);
                 insert rentalApplyInfo;
                 System.debug('rentalApplyInfo.Id' + rentalApplyInfo.Id);
             }else{
                 System.debug('into update');
-                String awsDataId = (String)rentalApplyInfo.get('AWS_Data_Id__c');
-                System.debug('awsDataId = ' + awsDataId);
-                Rental_Apply__c[] RentalApplys = [select id from Rental_Apply__c where AWS_Data_Id__c =:awsDataId];
+                // String awsDataId = (String)rentalApplyInfo.get('AWS_Data_Id__c');
+                // System.debug('awsDataId = ' + awsDataId);
+                // Rental_Apply__c[] RentalApplys = [select id from Rental_Apply__c where AWS_Data_Id__c =:awsDataId];
                 System.debug('RentalApplys[0].id = ' + RentalApplys[0].id);
                 rentalApplyInfo.put('Id',RentalApplys[0].id);//For testing;
                 update rentalApplyInfo;
diff --git a/force-app/main/default/pages/NewAndEditASEActivity.page b/force-app/main/default/pages/NewAndEditASEActivity.page
index 6d10370..ec21f0b 100644
--- a/force-app/main/default/pages/NewAndEditASEActivity.page
+++ b/force-app/main/default/pages/NewAndEditASEActivity.page
@@ -1,10 +1,3 @@
-<!--
-  @description       : 
-  @author            : ChangeMeIn@UserSettingsUnder.SFDoc
-  @group             : 
-  @last modified on  : 03-23-2022
-  @last modified by  : ChangeMeIn@UserSettingsUnder.SFDoc
--->
 <apex:page standardController="ASEActivity__c" extensions="NewAndEditASEActivityController" id="page">
     <apex:includeScript value="{! URLFOR($Resource.AWSService, 'AWSService.js') }" />
     <script src="../../soap/ajax/53.0/connection.js" type="text/javascript"></script>
@@ -70,7 +63,7 @@
                 
                 //payloadJson.AWS_Data_Id__c = r.object[0].dataId;
                 payloadJson.AWS_Data_Id__c = '{!AWSDataId}';
-                if (isNewMode) {
+                if (isNewMode || {!isCloneMode}) {
                     payloadJson.AWS_Data_Id__c = r.object[0].dataId;
                 } else {
                     payloadJson.AWS_Data_Id__c = '{!AWSDataId}';
@@ -145,7 +138,7 @@
                
         function ProcessPI(sobjJson, payloadForNewPI) {
             blockme();
-            if ({!isNewMode}) {
+            if ({!isNewMode} || {!isCloneMode}) {
                 NewPIToAWS(sobjJson, payloadForNewPI)
             }else {
                 UpdatePIToAWS(sobjJson, payloadForNewPI)
@@ -474,10 +467,10 @@
         <div class="ptBody">
             <div class="content">
                 <img src="/img/s.gif" alt="{! SobjectLabel}" class="pageTitleIcon" title="{! SobjectLabel}" />
-                <h1 class="pageType">{! SobjectLabel}<apex:outputText rendered="{!isNewMode}">{!$Label.New}</apex:outputText><apex:outputText rendered="{!not(isNewMode)}">{!$Label.Edit}</apex:outputText>
+                <h1 class="pageType">{! SobjectLabel}<apex:outputText rendered="{!isNewMode || isCloneMode}">{!$Label.New}</apex:outputText><apex:outputText rendered="{!not(isNewMode || isCloneMode)}">{!$Label.Edit}</apex:outputText>
                     <span class="titleSeparatingColon">:</span>
                 </h1>
-                <h2 class="pageDescription"> <apex:outputText rendered="{!isNewMode}">{!$Label.New}</apex:outputText><apex:outputText rendered="{!not(isNewMode)}">{!$Label.Edit}</apex:outputText>{! SobjectLabel}</h2>
+                <h2 class="pageDescription"> <apex:outputText rendered="{!isNewMode || isCloneMode}">{!$Label.New}</apex:outputText><apex:outputText rendered="{!not(isNewMode || isCloneMode)}">{!$Label.Edit}</apex:outputText>{! SobjectLabel}</h2>
                 <div class="blank">&nbsp;</div>
             </div>
             <div class="links">
diff --git a/force-app/main/default/pages/NewAndEditAddress.page b/force-app/main/default/pages/NewAndEditAddress.page
index a767a50..ea98368 100644
--- a/force-app/main/default/pages/NewAndEditAddress.page
+++ b/force-app/main/default/pages/NewAndEditAddress.page
@@ -1,10 +1,3 @@
-<!--
-  @description       : 
-  @author            : ChangeMeIn@UserSettingsUnder.SFDoc
-  @group             : 
-  @last modified on  : 03-23-2022
-  @last modified by  : ChangeMeIn@UserSettingsUnder.SFDoc
--->
 <apex:page standardController="Address__c" extensions="NewAndEditAddressController" id="page">
     <apex:stylesheet value="{!URLFOR($Resource.blockUIcss)}"/>
     <apex:includeScript value="{! URLFOR($Resource.AWSService, 'AWSService.js') }" />
@@ -30,7 +23,7 @@
         var VLookUpFields = new Set(['Contacts__c', 'Province__c', 'City__c', 'Customer__c']);
         function ProcessPI(addressJson, payloadForNewPI) {
             blockme();
-            if ({!isNewMode}) {
+            if ({!isNewMode} || {!isCloneMode}) {
                 NewPIToAWS(addressJson, payloadForNewPI)
             }else {
                 UpdatePIToAWS(addressJson, payloadForNewPI)
@@ -172,7 +165,7 @@
             payloadJson.Detailed_Address_Encrypted__c = r.object[0].detailedAddressEncrypt;
             //payloadJson.AWS_Data_Id__c = r.object[0].dataId;
             payloadJson.AWS_Data_Id__c = '{!AWSDataId}';
-            if (isNewMode) {
+            if (isNewMode || {!isCloneMode}) {
                 payloadJson.AWS_Data_Id__c = r.object[0].dataId;
             } else {
                 payloadJson.AWS_Data_Id__c = '{!AWSDataId}';
diff --git a/force-app/main/default/pages/NewAndEditAgencyContact.page b/force-app/main/default/pages/NewAndEditAgencyContact.page
index aa864c3..5230dab 100644
--- a/force-app/main/default/pages/NewAndEditAgencyContact.page
+++ b/force-app/main/default/pages/NewAndEditAgencyContact.page
@@ -61,7 +61,7 @@
                 
                 //payloadJson.AWS_Data_Id__c = r.object[0].dataId;
                 payloadJson.AWS_Data_Id__c = '{!AWSDataId}';
-                if (isNewMode) {
+                if (isNewMode || {!isCloneMode}) {
                     payloadJson.AWS_Data_Id__c = r.object[0].dataId;
                 } else {
                     payloadJson.AWS_Data_Id__c = '{!AWSDataId}';
@@ -128,7 +128,7 @@
         var VLookUpFields = {! VLookUpFieldsJson};
         function ProcessPI(sobjJson, payloadForNewPI) {
             blockme();
-            if ({!isNewMode}) {
+            if ({!isNewMode} || {!isCloneMode}) {
             	NewPIToAWS(sobjJson, payloadForNewPI)
             }else {
                 UpdatePIToAWS(sobjJson, payloadForNewPI)
@@ -431,10 +431,10 @@
         <div class="ptBody">
             <div class="content">
                 <img src="/img/s.gif" alt="{! SobjectLabel}" class="pageTitleIcon" title="{! SobjectLabel}" />
-                <h1 class="pageType">{! SobjectLabel}<apex:outputText rendered="{!isNewMode}">{!$Label.New}</apex:outputText><apex:outputText rendered="{!not(isNewMode)}">{!$Label.Edit}</apex:outputText>
+                <h1 class="pageType">{! SobjectLabel}<apex:outputText rendered="{!isNewMode || isCloneMode}">{!$Label.New}</apex:outputText><apex:outputText rendered="{!not(isNewMode || isCloneMode)}">{!$Label.Edit}</apex:outputText>
                     <span class="titleSeparatingColon">:</span>
                 </h1>
-                <h2 class="pageDescription"> <apex:outputText rendered="{!isNewMode}">{!$Label.New}</apex:outputText><apex:outputText rendered="{!not(isNewMode)}">{!$Label.Edit}</apex:outputText>{! SobjectLabel}</h2>
+                <h2 class="pageDescription"> <apex:outputText rendered="{!isNewMode || isCloneMode}">{!$Label.New}</apex:outputText><apex:outputText rendered="{!not(isNewMode || isCloneMode)}">{!$Label.Edit}</apex:outputText>{! SobjectLabel}</h2>
                 <div class="blank">&nbsp;</div>
             </div>
             <div class="links">
@@ -456,7 +456,7 @@
                         <tr>
                             <td class="pbTitle">
                                 <img src="/img/s.gif" alt="" class="minWidth" title="" width="1" height="1" />
-                                <h2 class="mainTitle">{! SobjectLabel}<apex:outputText rendered="{!isNewMode}">{!$Label.New}</apex:outputText><apex:outputText rendered="{!not(isNewMode)}">{!$Label.Edit}</apex:outputText></h2>
+                                <h2 class="mainTitle">{! SobjectLabel}<apex:outputText rendered="{!isNewMode || isCloneMode}">{!$Label.New}</apex:outputText><apex:outputText rendered="{!not(isNewMode || isCloneMode)}">{!$Label.Edit}</apex:outputText></h2>
                             </td>
                             <td class="pbButton" id="topButtonRow">
                                 <input class="btn" type="Button" value="{!$Label.Save}" onclick="saveSobjectProcess()" />
diff --git a/force-app/main/default/pages/NewAndEditContact.page b/force-app/main/default/pages/NewAndEditContact.page
index 3b78be9..29881e7 100644
--- a/force-app/main/default/pages/NewAndEditContact.page
+++ b/force-app/main/default/pages/NewAndEditContact.page
@@ -61,7 +61,7 @@
                 
                 //payloadJson.AWS_Data_Id__c = r.object[0].dataId;
                 payloadJson.AWS_Data_Id__c = '{!AWSDataId}';
-                if (isNewMode) {
+                if (isNewMode || {!isCloneMode}) {
                     payloadJson.AWS_Data_Id__c = r.object[0].dataId;
                 } else {
                     payloadJson.AWS_Data_Id__c = '{!AWSDataId}';
@@ -134,7 +134,7 @@
         var VLookUpFields = {! VLookUpFieldsJson};
         function ProcessPI(sobjJson, payloadForNewPI) {
             blockme();
-            if ({!isNewMode}) {
+            if ({!isNewMode} || {!isCloneMode}) {
             	NewPIToAWS(sobjJson, payloadForNewPI)
             }else {
                 UpdatePIToAWS(sobjJson, payloadForNewPI)
@@ -388,10 +388,10 @@
         <div class="ptBody">
             <div class="content">
                 <img src="/img/s.gif" alt="{! SobjectLabel}" class="pageTitleIcon" title="{! SobjectLabel}" />
-                <h1 class="pageType">{! SobjectLabel}<apex:outputText rendered="{!isNewMode}">{!$Label.New}</apex:outputText><apex:outputText rendered="{!not(isNewMode)}">{!$Label.Edit}</apex:outputText>
+                <h1 class="pageType">{! SobjectLabel}<apex:outputText rendered="{!isNewMode || isCloneMode}">{!$Label.New}</apex:outputText><apex:outputText rendered="{!not(isNewMode || isCloneMode)}">{!$Label.Edit}</apex:outputText>
                     <span class="titleSeparatingColon">:</span>
                 </h1>
-                <h2 class="pageDescription"> <apex:outputText rendered="{!isNewMode}">{!$Label.New}</apex:outputText><apex:outputText rendered="{!not(isNewMode)}">{!$Label.Edit}</apex:outputText>{! SobjectLabel}</h2>
+                <h2 class="pageDescription"> <apex:outputText rendered="{!isNewMode || isCloneMode}">{!$Label.New}</apex:outputText><apex:outputText rendered="{!not(isNewMode || isCloneMode)}">{!$Label.Edit}</apex:outputText>{! SobjectLabel}</h2>
                 <div class="blank">&nbsp;</div>
             </div>
             <div class="links">
@@ -413,7 +413,7 @@
                         <tr>
                             <td class="pbTitle">
                                 <img src="/img/s.gif" alt="" class="minWidth" title="" width="1" height="1" />
-                                <h2 class="mainTitle">{! SobjectLabel}<apex:outputText rendered="{!isNewMode}">{!$Label.New}</apex:outputText><apex:outputText rendered="{!not(isNewMode)}">{!$Label.Edit}</apex:outputText></h2>
+                                <h2 class="mainTitle">{! SobjectLabel}<apex:outputText rendered="{!isNewMode || isCloneMode}">{!$Label.New}</apex:outputText><apex:outputText rendered="{!not(isNewMode || isCloneMode)}">{!$Label.Edit}</apex:outputText></h2>
                             </td>
                             <td class="pbButton" id="topButtonRow">
                                 <input class="btn" type="Button" value="{!$Label.Save}" onclick="saveSobjectProcess()" />
@@ -487,37 +487,6 @@
                     }
                 }
                 jQuery('a[data-id="OwnerId"]').remove();
-
-                /*
-                jQuery(".lookupInput").each(function(i,e){
-                    let je =jQuery(e).find('input');
-                    je.attr("readonly","");
-                    je.css("background","unset");
-                    
-                    let dataid = je.attr('data-id');
-                    if(['Hospital_Name__c','Department_Class__c','OwnerId'].indexOf(dataid) > -1) return;
-                    jQuery(e).children(":last-child").before('<img class="closeIcon" data-id="'+dataid+'" generate="" alt="Clear" src="/s.gif" style="display: inline-block;">');
-                })
-                
-                jQuery(".lookupInput").on("mouseenter","img[generate]",function(e){
-                    this.className = "closeIconOn";
-                });
-                
-                jQuery(".lookupInput").on("mouseleave","img[generate]",function(e){
-                    this.className = "closeIcon"
-                });
-                
-                jQuery(".lookupInput").on("click","img[generate]",function(e){
-                    let id = jQuery("input[data-id='"+jQuery(this).attr("data-id")+ "']").attr("id");
-                    let input = document.getElementById(id);
-                    if(input){
-                        input.value = '';
-                        let hidden = document.getElementById(id+'_lkid');
-                        if(hidden){
-                            hidden.value = '';
-                        }
-                    }
-                });*/
 
                 var layoutSections = JSON.parse('{!layoutSectionsStr}');
                 for (let m = 0; m < layoutSections.length; m++) {
diff --git a/force-app/main/default/pages/NewAndEditInquiryForm.page b/force-app/main/default/pages/NewAndEditInquiryForm.page
index 056f814..b3e7658 100644
--- a/force-app/main/default/pages/NewAndEditInquiryForm.page
+++ b/force-app/main/default/pages/NewAndEditInquiryForm.page
@@ -63,7 +63,7 @@
                 
                 //payloadJson.AWS_Data_Id__c = r.object[0].dataId;
                 payloadJson.AWS_Data_Id__c = '{!AWSDataId}';
-                if (isNewMode) {
+                if (isNewMode || {!isCloneMode}) {
                     payloadJson.AWS_Data_Id__c = r.object[0].dataId;
                 } else {
                     payloadJson.AWS_Data_Id__c = '{!AWSDataId}';
@@ -128,7 +128,7 @@
         var VLookUpFields = {! VLookUpFieldsJson};
         function ProcessPI(sobjJson, payloadForNewPI) {
             blockme();
-            if ({!isNewMode}) {
+            if ({!isNewMode} || {!isCloneMode}) {
             	NewPIToAWS(sobjJson, payloadForNewPI)
             }else {
                 UpdatePIToAWS(sobjJson, payloadForNewPI)
@@ -521,10 +521,10 @@
         <div class="ptBody">
             <div class="content">
                 <img src="/img/s.gif" alt="{! SobjectLabel}" class="pageTitleIcon" title="{! SobjectLabel}" />
-                <h1 class="pageType">{! SobjectLabel}<apex:outputText rendered="{!isNewMode}">{!$Label.New}</apex:outputText><apex:outputText rendered="{!not(isNewMode)}">{!$Label.Edit}</apex:outputText>
+                <h1 class="pageType">{! SobjectLabel}<apex:outputText rendered="{!isNewMode || isCloneMode}">{!$Label.New}</apex:outputText><apex:outputText rendered="{!not(isNewMode || isCloneMode)}">{!$Label.Edit}</apex:outputText>
                     <span class="titleSeparatingColon">:</span>
                 </h1>
-                <h2 class="pageDescription"> <apex:outputText rendered="{!isNewMode}">{!$Label.New}</apex:outputText><apex:outputText rendered="{!not(isNewMode)}">{!$Label.Edit}</apex:outputText>{! SobjectLabel}</h2>
+                <h2 class="pageDescription"> <apex:outputText rendered="{!isNewMode || isCloneMode}">{!$Label.New}</apex:outputText><apex:outputText rendered="{!not(isNewMode || isCloneMode)}">{!$Label.Edit}</apex:outputText>{! SobjectLabel}</h2>
                 <div class="blank">&nbsp;</div>
             </div>
             <div class="links">
@@ -547,7 +547,7 @@
                         <tr>
                             <td class="pbTitle">
                                 <img src="/img/s.gif" alt="" class="minWidth" title="" width="1" height="1" />
-                                <h2 class="mainTitle">{! SobjectLabel}<apex:outputText rendered="{!isNewMode}">{!$Label.New}</apex:outputText><apex:outputText rendered="{!not(isNewMode)}">{!$Label.Edit}</apex:outputText></h2>
+                                <h2 class="mainTitle">{! SobjectLabel}<apex:outputText rendered="{!isNewMode || isCloneMode}">{!$Label.New}</apex:outputText><apex:outputText rendered="{!not(isNewMode || isCloneMode)}">{!$Label.Edit}</apex:outputText></h2>
                             </td>
                             <td class="pbButton" id="topButtonRow">
                                 <input class="btn" type="Button" value="{!$Label.Save}" onclick="saveSobjectProcess()" />
@@ -682,13 +682,6 @@
                             }
                         })
                     })
-
-                    // jQuery(".lookupInput").on("click","img.closeIconOn",function(){
-                    //     if (jQuery(this).siblings("input").attr("data-id") == 'Hospital_Name__c'){
-                    //         clearVlookup('Department_Class__c');
-                    //         clearVlookup('Hospital__c');
-                    //     }
-                    // });
 
                     jQuery("body").on("change","input[data-id='Hospital_Name__c']",function(){
                         setTimeout(() => {
diff --git a/force-app/main/default/pages/NewAndEditInspectionReport.page b/force-app/main/default/pages/NewAndEditInspectionReport.page
index 39bdc71..226472d 100644
--- a/force-app/main/default/pages/NewAndEditInspectionReport.page
+++ b/force-app/main/default/pages/NewAndEditInspectionReport.page
@@ -57,7 +57,7 @@
                 
                 //payloadJson.AWS_Data_Id__c = r.object[0].dataId;
                 payloadJson.AWS_Data_Id__c = '{!AWSDataId}';
-                if (isNewMode) {
+                if (isNewMode || {!isCloneMode}) {
                     payloadJson.AWS_Data_Id__c = r.object[0].dataId;
                 } else {
                     payloadJson.AWS_Data_Id__c = '{!AWSDataId}';
@@ -120,7 +120,7 @@
         var VLookUpFields = {! VLookUpFieldsJson};
         function ProcessPI(sobjJson, payloadForNewPI) {
             blockme();
-            if ({!isNewMode}) {
+            if ({!isNewMode} || {!isCloneMode}) {
             	NewPIToAWS(sobjJson, payloadForNewPI)
             }else {
                 UpdatePIToAWS(sobjJson, payloadForNewPI)
@@ -361,10 +361,10 @@
         <div class="ptBody">
             <div class="content">
                 <img src="/img/s.gif" alt="{! SobjectLabel}" class="pageTitleIcon" title="{! SobjectLabel}" />
-                <h1 class="pageType">{! SobjectLabel}<apex:outputText rendered="{!isNewMode}">{!$Label.New}</apex:outputText><apex:outputText rendered="{!not(isNewMode)}">{!$Label.Edit}</apex:outputText>
+                <h1 class="pageType">{! SobjectLabel}<apex:outputText rendered="{!isNewMode || isCloneMode}">{!$Label.New}</apex:outputText><apex:outputText rendered="{!not(isNewMode || isCloneMode)}">{!$Label.Edit}</apex:outputText>
                     <span class="titleSeparatingColon">:</span>
                 </h1>
-                <h2 class="pageDescription"> <apex:outputText rendered="{!isNewMode}">{!$Label.New}</apex:outputText><apex:outputText rendered="{!not(isNewMode)}">{!$Label.Edit}</apex:outputText>{! SobjectLabel}</h2>
+                <h2 class="pageDescription"> <apex:outputText rendered="{!isNewMode || isCloneMode}">{!$Label.New}</apex:outputText><apex:outputText rendered="{!not(isNewMode || isCloneMode)}">{!$Label.Edit}</apex:outputText>{! SobjectLabel}</h2>
                 <div class="blank">&nbsp;</div>
             </div>
             <div class="links">
diff --git a/force-app/main/default/pages/NewAndEditLead.page b/force-app/main/default/pages/NewAndEditLead.page
index dc63186..b030efe 100644
--- a/force-app/main/default/pages/NewAndEditLead.page
+++ b/force-app/main/default/pages/NewAndEditLead.page
@@ -23,8 +23,7 @@
         var VLookUpFields = new Set(['Hospital_Name__c', 'Department_Class__c', 'Contact_Name__c', 'Campaign__c', 'Lead_Inquiry_form__c', 'Opp_Name_Search__c']);
         function ProcessPI(leadJson, payloadForNewPI) {
             blockme();
-            if ({!isNewMode
-        }) {
+            if ({!isNewMode} || {!isCloneMode}) {
             NewPIToAWS(leadJson, payloadForNewPI)
         }else {
             UpdatePIToAWS(leadJson, payloadForNewPI)
@@ -170,7 +169,7 @@
             payloadJson.Email_Encrypted__c = r.object[0].emailEncrypt;
             //payloadJson.AWS_Data_Id__c = r.object[0].dataId;
             payloadJson.AWS_Data_Id__c = '{!AWSDataId}';
-            if (isNewMode) {
+            if (isNewMode || {!isCloneMode}) {
                 payloadJson.AWS_Data_Id__c = r.object[0].dataId;
             } else {
                 payloadJson.AWS_Data_Id__c = '{!AWSDataId}';
diff --git a/force-app/main/default/pages/NewAndEditQIS.page b/force-app/main/default/pages/NewAndEditQIS.page
index b27fcc6..6ca0acf 100644
--- a/force-app/main/default/pages/NewAndEditQIS.page
+++ b/force-app/main/default/pages/NewAndEditQIS.page
@@ -62,7 +62,7 @@
                 
                 //payloadJson.AWS_Data_Id__c = r.object[0].dataId;
                 payloadJson.AWS_Data_Id__c = '{!AWSDataId}';
-                if (isNewMode) {
+                if (isNewMode || {!isCloneMode}) {
                     payloadJson.AWS_Data_Id__c = r.object[0].dataId;
                 } else {
                     payloadJson.AWS_Data_Id__c = '{!AWSDataId}';
@@ -130,7 +130,7 @@
         var VLookUpFields = {! VLookUpFieldsJson};
         function ProcessPI(sobjJson, payloadForNewPI) {
             blockme();
-            if ({!isNewMode}) {
+            if ({!isNewMode} || {!isCloneMode}) {
                 NewPIToAWS(sobjJson, payloadForNewPI)
             }else {
                 UpdatePIToAWS(sobjJson, payloadForNewPI)
@@ -202,6 +202,15 @@
             return error_msg;
         }
 
+        function getCKEinstance(api_name){
+            let t = jQuery("label[for$='textAreaDelegate_"+api_name+"']").parent().next().find("textarea")[0];
+            if(t && t.id){
+                return CKEDITOR.instances[t.id]
+                
+            }
+            return null;
+        }
+
         function getSobjectInformation() {
             //api_id_map
 //let nodelist = document.getElementsByClassName(config.ApiPrefix);
@@ -255,109 +264,35 @@
                 // }
             }
             //璧嬪�煎瘜鏂囨湰鍖哄煙
-            //闂鍐呭鎻忚堪锛堝浘鐗囷級-FSE-OCSM-OSH
-            if(document.querySelector("[title = 'RTF 绶ㄨ集鍣�, page:form:block:j_id50:4:j_id51:j_id52:15:j_id53:textAreaDelegate_problem_detail_photo__c']")){
-                result.problem_detail_photo__c = document.querySelector("[title = 'RTF 绶ㄨ集鍣�, page:form:block:j_id50:4:j_id51:j_id52:15:j_id53:textAreaDelegate_problem_detail_photo__c']").contentWindow.document.getElementsByTagName('body')[0].innerHTML
+            if(getCKEinstance('problem_detail_photo__c')){
+                result.problem_detail_photo__c = getCKEinstance('problem_detail_photo__c').getData()
             }
-            //闂鍐呭鎻忚堪锛堝浘鐗囷級-OSH鍥炵瓟瀹屾瘯-鐜板満缁撴-final
-            if(document.querySelector("[title = 'RTF 绶ㄨ集鍣�, page:form:block:j_id50:5:j_id51:j_id52:15:j_id53:textAreaDelegate_problem_detail_photo__c']")){
-                result.problem_detail_photo__c = document.querySelector("[title = 'RTF 绶ㄨ集鍣�, page:form:block:j_id50:5:j_id51:j_id52:15:j_id53:textAreaDelegate_problem_detail_photo__c']").contentWindow.document.getElementsByTagName('body')[0].innerHTML
+
+            if(getCKEinstance('Photo_1__c')){
+                result.Photo_1__c = getCKEinstance('Photo_1__c').getData()
+                
             }
-            //鐓х墖1 - OCSM-鐜板満缁撴-final
-            if(document.querySelector("[title = 'RTF 绶ㄨ集鍣�, page:form:block:j_id50:14:j_id51:j_id52:0:j_id53:textAreaDelegate_problem_detail_photo__c']")){
-                result.Photo_1__c = document.querySelector("[title = 'RTF 绶ㄨ集鍣�, page:form:block:j_id50:14:j_id51:j_id52:0:j_id53:textAreaDelegate_problem_detail_photo__c']").contentWindow.document.getElementsByTagName('body')[0].innerHTML
+            if(getCKEinstance('Photo_2__c')){
+                result.Photo_2__c = getCKEinstance('Photo_2__c').getData()
             }
-            //鐓х墖2-OCSM-鐜板満缁撴-final
-            if(document.querySelector("[title = 'RTF 绶ㄨ集鍣�, page:form:block:j_id50:14:j_id51:j_id52:1:j_id53:textAreaDelegate_problem_detail_photo__c']")){
-                result.Photo_2__c = document.querySelector("[title = 'RTF 绶ㄨ集鍣�, page:form:block:j_id50:14:j_id51:j_id52:1:j_id53:textAreaDelegate_problem_detail_photo__c']").contentWindow.document.getElementsByTagName('body')[0].innerHTML
+            if(getCKEinstance('Photo_3__c')){
+                result.Photo_3__c = getCKEinstance('Photo_3__c').getData()
             }
-            //鐓х墖3 -OCSM-鐜板満缁撴-final
-            if(document.querySelector("[title = 'RTF 绶ㄨ集鍣�, page:form:block:j_id50:14:j_id51:j_id52:2:j_id53:textAreaDelegate_problem_detail_photo__c']")){
-                result.Photo_3__c = document.querySelector("[title = 'RTF 绶ㄨ集鍣�, page:form:block:j_id50:14:j_id51:j_id52:2:j_id53:textAreaDelegate_problem_detail_photo__c']").contentWindow.document.getElementsByTagName('body')[0].innerHTML
+            if(getCKEinstance('Photo_4__c')){
+                result.Photo_4__c = getCKEinstance('Photo_4__c').getData()
             }
-            //鐓х墖4 -OCSM-鐜板満缁撴-final
-            if(document.querySelector("[title = 'RTF 绶ㄨ集鍣�, page:form:block:j_id50:14:j_id51:j_id52:3:j_id53:textAreaDelegate_problem_detail_photo__c']")){
-                result.Photo_4__c = document.querySelector("[title = 'RTF 绶ㄨ集鍣�, page:form:block:j_id50:14:j_id51:j_id52:3:j_id53:textAreaDelegate_problem_detail_photo__c']").contentWindow.document.getElementsByTagName('body')[0].innerHTML
+
+            if(getCKEinstance('Photo_OSH_1__c')){
+                result.Photo_OSH_1__c = getCKEinstance('Photo_OSH_1__c').getData()
             }
-            //鐓х墖OSH1 - OCSM
-             if(document.querySelector("[title = 'RTF 绶ㄨ集鍣�, page:form:block:j_id50:19:j_id51:j_id52:0:j_id53:textAreaDelegate_problem_detail_photo__c']")){
-                result.Photo_OSH_1__c = document.querySelector("[title = 'RTF 绶ㄨ集鍣�, page:form:block:j_id50:19:j_id51:j_id52:0:j_id53:textAreaDelegate_problem_detail_photo__c']").contentWindow.document.getElementsByTagName('body')[0].innerHTML
+            if(getCKEinstance('Photo_OSH_2__c')){
+                result.Photo_OSH_2__c = getCKEinstance('Photo_OSH_2__c').getData()
             }
-            //鐓х墖OSH2-OCSM
-            if(document.querySelector("[title = 'RTF 绶ㄨ集鍣�, page:form:block:j_id50:19:j_id51:j_id52:1:j_id53:textAreaDelegate_problem_detail_photo__c']")){
-                result.Photo_OSH_2__c = document.querySelector("[title = 'RTF 绶ㄨ集鍣�, page:form:block:j_id50:19:j_id51:j_id52:1:j_id53:textAreaDelegate_problem_detail_photo__c']").contentWindow.document.getElementsByTagName('body')[0].innerHTML
+            if(getCKEinstance('Photo_OSH_3__c')){
+                result.Photo_OSH_3__c = getCKEinstance('Photo_OSH_3__c').getData()
             }
-            //鐓х墖OSH3 -OCSM
-            if(document.querySelector("[title = 'RTF 绶ㄨ集鍣�, page:form:block:j_id50:19:j_id51:j_id52:2:j_id53:textAreaDelegate_problem_detail_photo__c']")){
-                result.Photo_OSH_3__c = document.querySelector("[title = 'RTF 绶ㄨ集鍣�, page:form:block:j_id50:19:j_id51:j_id52:2:j_id53:textAreaDelegate_problem_detail_photo__c']").contentWindow.document.getElementsByTagName('body')[0].innerHTML
-            }
-            //鐓х墖OSH4 -OCSM
-            if(document.querySelector("[title = 'RTF 绶ㄨ集鍣�, page:form:block:j_id50:19:j_id51:j_id52:3:j_id53:textAreaDelegate_problem_detail_photo__c']")){
-                result.Photo_OSH_4__c = document.querySelector("[title = 'RTF 绶ㄨ集鍣�, page:form:block:j_id50:19:j_id51:j_id52:3:j_id53:textAreaDelegate_problem_detail_photo__c']").contentWindow.document.getElementsByTagName('body')[0].innerHTML
-            }
-            //鐓х墖OSH1 - OSH鍥炵瓟瀹屾瘯
-            if(document.querySelector("[title = 'RTF 绶ㄨ集鍣�, page:form:block:j_id50:18:j_id51:j_id52:0:j_id53:textAreaDelegate_problem_detail_photo__c']")){
-                result.Photo_OSH_1__c = document.querySelector("[title = 'RTF 绶ㄨ集鍣�, page:form:block:j_id50:18:j_id51:j_id52:0:j_id53:textAreaDelegate_problem_detail_photo__c']").contentWindow.document.getElementsByTagName('body')[0].innerHTML
-            }
-            //鐓х墖OSH2-OSH鍥炵瓟瀹屾瘯
-            if(document.querySelector("[title = 'RTF 绶ㄨ集鍣�, page:form:block:j_id50:18:j_id51:j_id52:1:j_id53:textAreaDelegate_problem_detail_photo__c']")){
-                result.Photo_OSH_2__c = document.querySelector("[title = 'RTF 绶ㄨ集鍣�, page:form:block:j_id50:18:j_id51:j_id52:1:j_id53:textAreaDelegate_problem_detail_photo__c']").contentWindow.document.getElementsByTagName('body')[0].innerHTML
-            }
-            //鐓х墖OSH3 -OSH鍥炵瓟瀹屾瘯
-            if(document.querySelector("[title = 'RTF 绶ㄨ集鍣�, page:form:block:j_id50:18:j_id51:j_id52:2:j_id53:textAreaDelegate_problem_detail_photo__c']")){
-                result.Photo_OSH_3__c = document.querySelector("[title = 'RTF 绶ㄨ集鍣�, page:form:block:j_id50:18:j_id51:j_id52:2:j_id53:textAreaDelegate_problem_detail_photo__c']").contentWindow.document.getElementsByTagName('body')[0].innerHTML
-            }
-            //鐓х墖OSH4 -OSH鍥炵瓟瀹屾瘯
-            if(document.querySelector("[title = 'RTF 绶ㄨ集鍣�, page:form:block:j_id50:18:j_id51:j_id52:3:j_id53:textAreaDelegate_problem_detail_photo__c']")){
-                result.Photo_OSH_4__c = document.querySelector("[title = 'RTF 绶ㄨ集鍣�, page:form:block:j_id50:18:j_id51:j_id52:3:j_id53:textAreaDelegate_problem_detail_photo__c']").contentWindow.document.getElementsByTagName('body')[0].innerHTML
-            }
-            //鐓х墖1 - OSH
-            if(document.querySelector("[title = 'RTF 绶ㄨ集鍣�, page:form:block:j_id50:13:j_id51:j_id52:0:j_id53:textAreaDelegate_problem_detail_photo__c']")){
-                result.Photo_1__c = document.querySelector("[title = 'RTF 绶ㄨ集鍣�, page:form:block:j_id50:13:j_id51:j_id52:0:j_id53:textAreaDelegate_problem_detail_photo__c']").contentWindow.document.getElementsByTagName('body')[0].innerHTML
-            }
-            //鐓х墖2-OSH
-            if(document.querySelector("[title = 'RTF 绶ㄨ集鍣�, page:form:block:j_id50:13:j_id51:j_id52:1:j_id53:textAreaDelegate_problem_detail_photo__c']")){
-                result.Photo_2__c = document.querySelector("[title = 'RTF 绶ㄨ集鍣�, page:form:block:j_id50:13:j_id51:j_id52:1:j_id53:textAreaDelegate_problem_detail_photo__c']").contentWindow.document.getElementsByTagName('body')[0].innerHTML
-            }
-            //鐓х墖3 -OSH
-            if(document.querySelector("[title = 'RTF 绶ㄨ集鍣�, page:form:block:j_id50:13:j_id51:j_id52:2:j_id53:textAreaDelegate_problem_detail_photo__c']")){
-                result.Photo_3__c = document.querySelector("[title = 'RTF 绶ㄨ集鍣�, page:form:block:j_id50:13:j_id51:j_id52:2:j_id53:textAreaDelegate_problem_detail_photo__c']").contentWindow.document.getElementsByTagName('body')[0].innerHTML
-            }
-            //鐓х墖4 -OSH
-            if(document.querySelector("[title = 'RTF 绶ㄨ集鍣�, page:form:block:j_id50:13:j_id51:j_id52:3:j_id53:textAreaDelegate_problem_detail_photo__c']")){
-                result.Photo_4__c = document.querySelector("[title = 'RTF 绶ㄨ集鍣�, page:form:block:j_id50:13:j_id51:j_id52:3:j_id53:textAreaDelegate_problem_detail_photo__c']").contentWindow.document.getElementsByTagName('body')[0].innerHTML
-            }
-            //鐓х墖OSH1 - OSH
-            if(document.querySelector("[title = 'RTF 绶ㄨ集鍣�, page:form:block:j_id50:16:j_id51:j_id52:0:j_id53:textAreaDelegate_problem_detail_photo__c']")){
-                result.Photo_OSH_1__c = document.querySelector("[title = 'RTF 绶ㄨ集鍣�, page:form:block:j_id50:16:j_id51:j_id52:0:j_id53:textAreaDelegate_problem_detail_photo__c']").contentWindow.document.getElementsByTagName('body')[0].innerHTML
-            }
-            //鐓х墖OSH2-OSH
-            if(document.querySelector("[title = 'RTF 绶ㄨ集鍣�, page:form:block:j_id50:16:j_id51:j_id52:1:j_id53:textAreaDelegate_problem_detail_photo__c']")){
-                result.Photo_OSH_2__c = document.querySelector("[title = 'RTF 绶ㄨ集鍣�, page:form:block:j_id50:16:j_id51:j_id52:1:j_id53:textAreaDelegate_problem_detail_photo__c']").contentWindow.document.getElementsByTagName('body')[0].innerHTML
-            }
-            //鐓х墖OSH3 -OSH
-            if(document.querySelector("[title = 'RTF 绶ㄨ集鍣�, page:form:block:j_id50:16:j_id51:j_id52:2:j_id53:textAreaDelegate_problem_detail_photo__c']")){
-                result.Photo_OSH_3__c = document.querySelector("[title = 'RTF 绶ㄨ集鍣�, page:form:block:j_id50:16:j_id51:j_id52:2:j_id53:textAreaDelegate_problem_detail_photo__c']").contentWindow.document.getElementsByTagName('body')[0].innerHTML
-            }
-            //鐓х墖OSH4 -OSH
-            if(document.querySelector("[title = 'RTF 绶ㄨ集鍣�, page:form:block:j_id50:16:j_id51:j_id52:3:j_id53:textAreaDelegate_problem_detail_photo__c']")){
-                result.Photo_OSH_4__c = document.querySelector("[title = 'RTF 绶ㄨ集鍣�, page:form:block:j_id50:16:j_id51:j_id52:3:j_id53:textAreaDelegate_problem_detail_photo__c']").contentWindow.document.getElementsByTagName('body')[0].innerHTML
-            }
-            //鐓х墖OSH1 -鐜板満缁撴-final
-            if(document.querySelector("[title = 'RTF 绶ㄨ集鍣�, page:form:block:j_id50:17:j_id51:j_id52:0:j_id53:textAreaDelegate_problem_detail_photo__c']")){
-                result.Photo_OSH_1__c = document.querySelector("[title = 'RTF 绶ㄨ集鍣�, page:form:block:j_id50:17:j_id51:j_id52:0:j_id53:textAreaDelegate_problem_detail_photo__c']").contentWindow.document.getElementsByTagName('body')[0].innerHTML
-            }
-            //鐓х墖OSH2-鐜板満缁撴-final
-            if(document.querySelector("[title = 'RTF 绶ㄨ集鍣�, page:form:block:j_id50:17:j_id51:j_id52:1:j_id53:textAreaDelegate_problem_detail_photo__c']")){
-                result.Photo_OSH_2__c = document.querySelector("[title = 'RTF 绶ㄨ集鍣�, page:form:block:j_id50:17:j_id51:j_id52:1:j_id53:textAreaDelegate_problem_detail_photo__c']").contentWindow.document.getElementsByTagName('body')[0].innerHTML
-            }
-            //鐓х墖OSH3 -鐜板満缁撴-final
-            if(document.querySelector("[title = 'RTF 绶ㄨ集鍣�, page:form:block:j_id50:17:j_id51:j_id52:2:j_id53:textAreaDelegate_problem_detail_photo__c']")){
-                result.Photo_OSH_3__c = document.querySelector("[title = 'RTF 绶ㄨ集鍣�, page:form:block:j_id50:17:j_id51:j_id52:2:j_id53:textAreaDelegate_problem_detail_photo__c']").contentWindow.document.getElementsByTagName('body')[0].innerHTML
-            }
-            //鐓х墖OSH4 -鐜板満缁撴-final
-            if(document.querySelector("[title = 'RTF 绶ㄨ集鍣�, page:form:block:j_id50:17:j_id51:j_id52:3:j_id53:textAreaDelegate_problem_detail_photo__c']")){
-                result.Photo_OSH_4__c = document.querySelector("[title = 'RTF 绶ㄨ集鍣�, page:form:block:j_id50:17:j_id51:j_id52:3:j_id53:textAreaDelegate_problem_detail_photo__c']").contentWindow.document.getElementsByTagName('body')[0].innerHTML
+            if(getCKEinstance('Photo_OSH_4__c')){
+                result.Photo_OSH_4__c = getCKEinstance('Photo_OSH_4__c').getData()
             }
             return result;
         }
@@ -478,10 +413,10 @@
         <div class="ptBody">
             <div class="content">
                 <img src="/img/s.gif" alt="{! SobjectLabel}" class="pageTitleIcon" title="{! SobjectLabel}" />
-                <h1 class="pageType">{! SobjectLabel}<apex:outputText rendered="{!isNewMode}">{!$Label.New}</apex:outputText><apex:outputText rendered="{!not(isNewMode)}">{!$Label.Edit}</apex:outputText>
+                <h1 class="pageType">{! SobjectLabel}<apex:outputText rendered="{!isNewMode || isCloneMode}">{!$Label.New}</apex:outputText><apex:outputText rendered="{!not(isNewMode || isCloneMode)}">{!$Label.Edit}</apex:outputText>
                     <span class="titleSeparatingColon">:</span>
                 </h1>
-                <h2 class="pageDescription"> <apex:outputText rendered="{!isNewMode}">{!$Label.New}</apex:outputText><apex:outputText rendered="{!not(isNewMode)}">{!$Label.Edit}</apex:outputText>{! SobjectLabel}</h2>
+                <h2 class="pageDescription"> <apex:outputText rendered="{!isNewMode || isCloneMode}">{!$Label.New}</apex:outputText><apex:outputText rendered="{!not(isNewMode || isCloneMode)}">{!$Label.Edit}</apex:outputText>{! SobjectLabel}</h2>
                 <div class="blank">&nbsp;</div>
             </div>
             <div class="links">
@@ -528,7 +463,7 @@
                     <!--Each section has layoutFields, let's iterate them as well-->
                     <apex:repeat value="{!layoutSection.layoutFields}" var="layoutField">
                         <apex:inputField styleClass="{!ApiPrefix} {!ApiPrefix}_{!layoutField.fieldAPI}" html-data-id="{!layoutField.fieldAPI}" value="{!QIS_Report__c[layoutField.fieldAPI]}" rendered="{!not(layoutField.isPlaceHOlder)}"
-                                         required="{!layoutField.isRequired}" />
+                                        required="{!layoutField.isRequired}" />
                         <apex:pageblocksectionitem rendered="{!layoutField.isPlaceHolder}">
                         </apex:pageblocksectionitem>
                     </apex:repeat>
diff --git a/force-app/main/default/pages/NewAndEditReport.page b/force-app/main/default/pages/NewAndEditReport.page
index 6d07c91..16baa76 100644
--- a/force-app/main/default/pages/NewAndEditReport.page
+++ b/force-app/main/default/pages/NewAndEditReport.page
@@ -46,6 +46,15 @@
             errorMsgNode.className = '';
         }
 
+        function getCKEinstance(api_name){
+            let t = jQuery("label[for$='textAreaDelegate_"+api_name+"']").parent().next().find("textarea")[0];
+            if(t && t.id){
+                return CKEDITOR.instances[t.id]
+                
+            }
+            return null;
+        }
+
         //1銆傝幏鍙栨墍鏈夊瓧娈靛��
         function getReportInformation() {
             let nodelist = document.querySelectorAll("[data-id]");
@@ -64,10 +73,35 @@
                 } else if (nodelist[index].type == 'select-multiple') {
                     //nodelist[index].getAttribute("data-id")
                     let multiple = nodelist[index].getAttribute("data-id");
-                    let targets = document.querySelector("[data-id=" + multiple + "]").nextSibling.children[0].children[1].children[2].innerText;
-                    targets = targets.replace(/\n/g, ";");
-                    console.log('targets = ' + targets);
-                    result[nodelist[index].getAttribute("data-id")] = targets;
+                    //let targets = document.querySelector("[data-id=" + multiple + "]").nextSibling.children[0].children[1].children[2].innerText;
+                    //Before Update By Li Jun 20220411
+                    // let targets = document.querySelector("[data-id=" + multiple + "]").parentNode.children[2].children[0].children[1].children[2].children[0].innerText;
+                    // targets = targets.replace(/\n/g, ";");
+                    // console.log('targets = ' + targets);
+                    // result[nodelist[index].getAttribute("data-id")] = targets;
+                    //Before Update By Li Jun 20220411
+
+                    //After Update By Li Jun 20220411 Start
+                    let targets = document.querySelector("[data-id=" + multiple + "]").options;
+                    let selValues = [];
+                    for(i=0; i < targets.length; i++){
+                        if(targets[i].selected){
+                            selValues.push(targets[i].value);
+                        }
+                    }
+                    let setValuesStr = JSON.stringify(selValues);
+                    setValuesStr = setValuesStr.substring(1,setValuesStr.length-1);
+                    if(setValuesStr){
+                        setValuesStr = setValuesStr.replace(/"/g,"");
+                        if(setValuesStr.indexOf(',')!=-1){
+                            setValuesStr = setValuesStr.replace(/,/g,";");
+                        }
+                    }
+                    console.log('targets = ' + setValuesStr);
+                    result[nodelist[index].getAttribute("data-id")] = setValuesStr;
+                    //After Update By Li Jun 20220411 End
+
+
                 } else {
                     result[nodelist[index].getAttribute("data-id")] = nodelist[index].value;
                 }
@@ -85,30 +119,48 @@
                 result.Purpose2__c = document.getElementById('page:form:j_id5:j_id35:2:j_id36:j_id37:1:j_id38').value;
             }
             //瀵屾枃鏈璧嬪��
+            if(getCKEinstance('Customer_sigh_photo__c')){
+                result.Customer_sigh_photo__c = getCKEinstance('Customer_sigh_photo__c').getData()
+            }
+            if(getCKEinstance('Photo1__c')){
+                result.Photo1__c = getCKEinstance('Photo1__c').getData()
+            }
+            if(getCKEinstance('Photo2__c')){
+                result.Photo2__c = getCKEinstance('Photo2__c').getData()
+            }
+            if(getCKEinstance('Photo3__c')){
+                result.Photo3__c = getCKEinstance('Photo3__c').getData()
+            }
+            if(getCKEinstance('VOC_follow_up_result__c')){
+                result.VOC_follow_up_result__c = getCKEinstance('VOC_follow_up_result__c').getData()
+            }
+            if(getCKEinstance('VOC_follow_up_result1__c')){
+                result.VOC_follow_up_result1__c = getCKEinstance('VOC_follow_up_result1__c').getData()
+            }
             //鐢ㄦ埛绛惧瓧鐨勭収鐗�
-            if(document.querySelector("[aria-describedby = 'cke_34']")){
-                result.Customer_sigh_photo__c = document.querySelector("[aria-describedby = 'cke_34']").contentWindow.document.getElementsByTagName('body')[0].innerHTML
-            }
-            //鐓х墖1 Photo1__c
-            if(document.querySelector("[aria-describedby = 'cke_42']")){
-                result.Photo1__c = document.querySelector("[aria-describedby = 'cke_42']").contentWindow.document.getElementsByTagName('body')[0].innerHTML
-            }
-            //鐓х墖2 Photo2__c
-            if(document.querySelector("[aria-describedby = 'cke_75']")){
-                result.Photo2__c = document.querySelector("[aria-describedby = 'cke_75']").contentWindow.document.getElementsByTagName('body')[0].innerHTML
-            }
-            //鐓х墖3 Photo3__c
-            if(document.querySelector("[aria-describedby = 'cke_108']")){
-                result.Photo3__c = document.querySelector("[aria-describedby = 'cke_108']").contentWindow.document.getElementsByTagName('body')[0].innerHTML
-            }
-            //瀵瑰簲缁撴灉 VOC_follow_up_result__c cke_38
-            if(document.querySelector("[aria-describedby = 'cke_38']")){
-                result.VOC_follow_up_result__c = document.querySelector("[aria-describedby = 'cke_38']").contentWindow.document.getElementsByTagName('body')[0].innerHTML
-            }
-            //瀵瑰簲缁撴灉绗竴娆� 	VOC_follow_up_result1__c cke_71
-            if(document.querySelector("[aria-describedby = 'cke_71']")){
-                result.VOC_follow_up_result1__c = document.querySelector("[aria-describedby = 'cke_71']").contentWindow.document.getElementsByTagName('body')[0].innerHTML
-            }
+            // if(document.querySelector("[aria-describedby = 'cke_34']")){
+            //     result.Customer_sigh_photo__c = document.querySelector("[aria-describedby = 'cke_34']").contentWindow.document.getElementsByTagName('body')[0].innerHTML
+            // }
+            // //鐓х墖1 Photo1__c
+            // if(document.querySelector("[aria-describedby = 'cke_42']")){
+            //     result.Photo1__c = document.querySelector("[aria-describedby = 'cke_42']").contentWindow.document.getElementsByTagName('body')[0].innerHTML
+            // }
+            // //鐓х墖2 Photo2__c
+            // if(document.querySelector("[aria-describedby = 'cke_75']")){
+            //     result.Photo2__c = document.querySelector("[aria-describedby = 'cke_75']").contentWindow.document.getElementsByTagName('body')[0].innerHTML
+            // }
+            // //鐓х墖3 Photo3__c
+            // if(document.querySelector("[aria-describedby = 'cke_108']")){
+            //     result.Photo3__c = document.querySelector("[aria-describedby = 'cke_108']").contentWindow.document.getElementsByTagName('body')[0].innerHTML
+            // }
+            // //瀵瑰簲缁撴灉 VOC_follow_up_result__c cke_38
+            // if(document.querySelector("[aria-describedby = 'cke_38']")){
+            //     result.VOC_follow_up_result__c = document.querySelector("[aria-describedby = 'cke_38']").contentWindow.document.getElementsByTagName('body')[0].innerHTML
+            // }
+            // //瀵瑰簲缁撴灉绗竴娆� 	VOC_follow_up_result1__c cke_71
+            // if(document.querySelector("[aria-describedby = 'cke_71']")){
+            //     result.VOC_follow_up_result1__c = document.querySelector("[aria-describedby = 'cke_71']").contentWindow.document.getElementsByTagName('body')[0].innerHTML
+            // }
             if(result.From__c){
                 result.From__c = result.From__c.replace(/\//g, '-')+':00';
             }
@@ -202,7 +254,7 @@
         //5.鏂板缓鎴栫紪杈�
         function ProcessPI(reportJson, payloadForNewPI) {
             blockme();
-            if ({!isNewMode}) {
+            if ({!isNewMode} || {!isCloneMode}) {
                 NewPIToAWS(reportJson, payloadForNewPI)
             }else {
                 UpdatePIToAWS(reportJson, payloadForNewPI)
@@ -439,7 +491,7 @@
             payloadJson.age_Encrypted__c = result.object[0].ageEncrypt;
             payloadJson.Medical_History_Encrypted__c = result.object[0].medicalHistoryEncrypt;
             payloadJson.sex_Encrypted__c = result.object[0].sexEncrypt;
-            if (isNewMode) {
+            if (isNewMode || {!isCloneMode}) {
                 payloadJson.AWS_Data_Id__c = result.object[0].dataId;
             } else {
                 payloadJson.AWS_Data_Id__c = '{!AWSDataId}';
diff --git a/force-app/main/default/pages/NewAndEditTenderinformation.page b/force-app/main/default/pages/NewAndEditTenderinformation.page
index 21fb942..a0d15b5 100644
--- a/force-app/main/default/pages/NewAndEditTenderinformation.page
+++ b/force-app/main/default/pages/NewAndEditTenderinformation.page
@@ -57,7 +57,7 @@
                 
                 //payloadJson.AWS_Data_Id__c = r.object[0].dataId;
                 payloadJson.AWS_Data_Id__c = '{!AWSDataId}';
-                if (isNewMode) {
+                if (isNewMode || {!isCloneMode}) {
                     payloadJson.AWS_Data_Id__c = r.object[0].dataId;
                 } else {
                     payloadJson.AWS_Data_Id__c = '{!AWSDataId}';
@@ -120,7 +120,7 @@
         var VLookUpFields = {! VLookUpFieldsJson};
         function ProcessPI(sobjJson, payloadForNewPI) {
             blockme();
-            if ({!isNewMode}) {
+            if ({!isNewMode} || {!isCloneMode}) {
             	NewPIToAWS(sobjJson, payloadForNewPI)
             }else {
                 UpdatePIToAWS(sobjJson, payloadForNewPI)
@@ -361,10 +361,10 @@
         <div class="ptBody">
             <div class="content">
                 <img src="/img/s.gif" alt="{! SobjectLabel}" class="pageTitleIcon" title="{! SobjectLabel}" />
-                <h1 class="pageType">{! SobjectLabel}<apex:outputText rendered="{!isNewMode}">{!$Label.New}</apex:outputText><apex:outputText rendered="{!not(isNewMode)}">{!$Label.Edit}</apex:outputText>
+                <h1 class="pageType">{! SobjectLabel}<apex:outputText rendered="{!isNewMode || isCloneMode}">{!$Label.New}</apex:outputText><apex:outputText rendered="{!not(isNewMode || isCloneMode)}">{!$Label.Edit}</apex:outputText>
                     <span class="titleSeparatingColon">:</span>
                 </h1>
-                <h2 class="pageDescription"> <apex:outputText rendered="{!isNewMode}">{!$Label.New}</apex:outputText><apex:outputText rendered="{!not(isNewMode)}">{!$Label.Edit}</apex:outputText>{! SobjectLabel}</h2>
+                <h2 class="pageDescription"> <apex:outputText rendered="{!isNewMode || isCloneMode}">{!$Label.New}</apex:outputText><apex:outputText rendered="{!not(isNewMode || isCloneMode)}">{!$Label.Edit}</apex:outputText>{! SobjectLabel}</h2>
                 <div class="blank">&nbsp;</div>
             </div>
             <div class="links">
@@ -386,7 +386,7 @@
                         <tr>
                             <td class="pbTitle">
                                 <img src="/img/s.gif" alt="" class="minWidth" title="" width="1" height="1" />
-                                <h2 class="mainTitle">{! SobjectLabel}<apex:outputText rendered="{!isNewMode}">{!$Label.New}</apex:outputText><apex:outputText rendered="{!not(isNewMode)}">{!$Label.Edit}</apex:outputText></h2>
+                                <h2 class="mainTitle">{! SobjectLabel}<apex:outputText rendered="{!isNewMode || isCloneMode}">{!$Label.New}</apex:outputText><apex:outputText rendered="{!not(isNewMode || isCloneMode)}">{!$Label.Edit}</apex:outputText></h2>
                             </td>
                             <td class="pbButton" id="topButtonRow">
                                 <input class="btn" type="Button" value="{!$Label.Save}" onclick="saveSobjectProcess()" />
diff --git a/force-app/main/default/pages/NewConsumApply.page b/force-app/main/default/pages/NewConsumApply.page
index 7af6237..588c175 100644
--- a/force-app/main/default/pages/NewConsumApply.page
+++ b/force-app/main/default/pages/NewConsumApply.page
@@ -60,7 +60,7 @@
             payloadJson.Phone_Number_Encrypt__c = r.object[0].phoneNumberEncrypt;
             payloadJson.Direct_Shippment_Address_Encrypt__c = r.object[0].directShippmentAddressEncrypt;
             payloadJson.AWS_Data_Id__c = '{!AWSDataId}';
-            if (isNewMode) {
+            if (isNewMode || {!isCloneMode}) {
                 payloadJson.AWS_Data_Id__c = r.object[0].dataId;
             } else {
                 payloadJson.AWS_Data_Id__c = '{!AWSDataId}';
@@ -71,8 +71,7 @@
         // New Or Edit
         function ProcessPI(consumApplyJson, payloadForNewPI) {
             blockme();
-            if ({!isNewMode
-            }) {
+            if ({!isNewMode} || {!isCloneMode}) {
                 NewPIToAWS(consumApplyJson, payloadForNewPI)
             }else {
                 UpdatePIToAWS(consumApplyJson, payloadForNewPI)
diff --git a/force-app/main/default/pages/NewOnCall.page b/force-app/main/default/pages/NewOnCall.page
index 5d53a7f..c64cdb1 100644
--- a/force-app/main/default/pages/NewOnCall.page
+++ b/force-app/main/default/pages/NewOnCall.page
@@ -1,10 +1,3 @@
-<!--
-  @description       : 
-  @author            : ChangeMeIn@UserSettingsUnder.SFDoc
-  @group             : 
-  @last modified on  : 03-24-2022
-  @last modified by  : ChangeMeIn@UserSettingsUnder.SFDoc
--->
 <apex:page standardController="On_Call__c" extensions="OnCallController" id="page">
     <apex:includeScript value="{! URLFOR($Resource.AWSService, 'AWSService.js') }" />
     <apex:stylesheet value="{!URLFOR($Resource.blockUIcss)}"/>
@@ -61,7 +54,7 @@
             payloadJson.Caller_Phone_Encrypt__c = r.object[0].callerPhoneEncrypt;
             payloadJson.Responsible_PersonHP_Encrypt__c = r.object[0].responsiblePersonHPEncrypt;
             payloadJson.AWS_Data_Id__c = '{!AWSDataId}';
-            if (isNewMode) {
+            if (isNewMode|| {!isCloneMode}) {
                 payloadJson.AWS_Data_Id__c = r.object[0].dataId;
             } else {
                 payloadJson.AWS_Data_Id__c = '{!AWSDataId}';
@@ -73,8 +66,7 @@
         // New Or Edit
         function ProcessPI(onCallJson, payloadForNewPI) {
             blockme();
-            if ({!isNewMode
-            }) {
+            if ({!isNewMode} || {!isCloneMode}) {
                 NewPIToAWS(onCallJson, payloadForNewPI)
             }else {
                 UpdatePIToAWS(onCallJson, payloadForNewPI)
diff --git a/force-app/main/default/pages/NewRentalApply.page b/force-app/main/default/pages/NewRentalApply.page
index 53168ff..10321bc 100644
--- a/force-app/main/default/pages/NewRentalApply.page
+++ b/force-app/main/default/pages/NewRentalApply.page
@@ -1,10 +1,3 @@
-<!--
-  @description       : 
-  @author            : Dennis
-  @group             : 
-  @last modified on  : 04-01-2022
-  @last modified by  : ChangeMeIn@UserSettingsUnder.SFDoc
--->
 <apex:page standardController="Rental_Apply__c" extensions="RentalApplyController" id="page">
     <apex:stylesheet value="{!URLFOR($Resource.blockUIcss)}"/>
     <apex:includeScript value="{! URLFOR($Resource.AWSService, 'AWSService.js') }" />
@@ -63,7 +56,7 @@
             payloadJson.Phone_Number_Encrypt__c = r.object[0].phoneNumberEncrypt;
             payloadJson.Direct_Shippment_Address_Encrypt__c = r.object[0].directShippmentAddressEncrypt;
             payloadJson.AWS_Data_Id__c = '{!AWSDataId}';
-            if (isNewMode) {
+            if (isNewMode || {!isCloneMode}) {
                 payloadJson.AWS_Data_Id__c = r.object[0].dataId;
             } else {
                 payloadJson.AWS_Data_Id__c = '{!AWSDataId}';
@@ -75,8 +68,7 @@
         // New Or Edit
         function ProcessPI(rentalApplyJson, payloadForNewPI) {
             blockme();
-            if ({!isNewMode
-            }) {
+            if ({!isNewMode} || {!isCloneMode}) {
                 NewPIToAWS(rentalApplyJson, payloadForNewPI)
             }else {
                 UpdatePIToAWS(rentalApplyJson, payloadForNewPI)
diff --git a/force-app/main/default/pages/NewRepair.page b/force-app/main/default/pages/NewRepair.page
index 3cafc75..4db1fd5 100644
--- a/force-app/main/default/pages/NewRepair.page
+++ b/force-app/main/default/pages/NewRepair.page
@@ -30,14 +30,26 @@
 
         //Redirect Required Parameter
         var redirectCallBack = function redirectCallBack(sfId, errorMessage) {
-            if (sfId) {
-                if (redirectMode == 'Save') {
-                    window.open('/' + sfId, '_self');
-                } else if (redirectMode == 'SaveAndNew') {
-                    window.open('/setup/ui/recordtypeselect.jsp?ent=' + '{!sobjectId}' + '&retURL=/' + '{!sobjectPrefix}' + '/o&save_new_url=/' + '{!sobjectPrefix}' + '/e?retURL=%2F' + '{!sobjectPrefix}' + '%2Fo', '_self');
-                }
-            } else {
-                // alert(errorMessage);
+            if(sfId){
+                Visualforce.remoting.Manager.invokeAction(
+                   'NewRepairController.EncryptUpdate', // example
+                   sfId,
+                   function (result, event) {
+                       console.log(result);
+                       if(result.message){
+                       	alert(result.message);
+                       }
+                        if (redirectMode == 'Save') {
+                            window.open('/' + sfId, '_self');
+                        } else if (redirectMode == 'SaveAndNew') {
+                            window.open('/setup/ui/recordtypeselect.jsp?ent=' + '{!sobjectId}' + '&retURL=/' + '{!sobjectPrefix}' + '/o&save_new_url=/' + '{!sobjectPrefix}' + '/e?retURL=%2F' + '{!sobjectPrefix}' + '%2Fo', '_self');
+                        }
+                       
+                   },
+                   { escape: true }
+               );
+               
+            }else{
                 alertErrorMessage(errorMessage);
             }
         }
@@ -211,6 +223,12 @@
            if(e){
             result.Repair_Determine_result_ConfirmationUser__c = e.value;
            }
+           //鏈慨鐞嗗綊杩樼悊鐢�
+           //page:form:block:j_id34:17:j_id35:j_id36:2:j_id37
+           //page:form:block:j_id34:17:j_id35:j_id36:2:j_id37
+           if(document.getElementById('page:form:block:j_id34:17:j_id35:j_id36:2:j_id37')){
+               result.Return_Without_Repair_Reason__c = document.getElementById('page:form:block:j_id34:17:j_id35:j_id36:2:j_id37').value;
+           }
             console.log(JSON.stringify(result));
             return result;
         }
@@ -369,7 +387,7 @@
 
                     <!--Each section has layoutFields, let's iterate them as well-->
                     <apex:repeat value="{!layoutSection.layoutFields}" var="layoutField">
-                        <apex:inputField styleClass="PIBackApi PIBackApi_{!layoutField.fieldAPI}" html-data-id="{!layoutField.fieldAPI}" value="{!Repair__c[layoutField.fieldAPI]}" rendered="{!not(layoutField.isPlaceHOlder)}"
+                        <apex:inputField html-title="{!layoutField.fieldAPI}" styleClass="PIBackApi PIBackApi_{!layoutField.fieldAPI}" html-data-id="{!layoutField.fieldAPI}" value="{!Repair__c[layoutField.fieldAPI]}" rendered="{!not(layoutField.isPlaceHOlder)}"
                             required="{!layoutField.isRequired}" />
                         <apex:pageblocksectionitem rendered="{!layoutField.isPlaceHolder}">
                         </apex:pageblocksectionitem>
@@ -449,6 +467,27 @@
                         })
                     })
 
+                    //缁翠慨涓績
+                    if('{!workLocationSelect}' != ''){
+                        let wlNode = document.getElementById('page:form:block:j_id34:1:j_id35:j_id36:18:j_id37');
+                        if(wlNode){
+                           wlNode.removeAttribute("disabled")
+                            var o = new Option()
+                            o.text = '{!workLocationSelect}'
+                           wlNode.options.add(o)
+                           wlNode.value = '{!workLocationSelect}'
+                        }
+                    }
+
+                    //濡傛灉浠庢姤淇瓙鍗曡繃鏉ワ紝闇�瑕佽В瀵嗘姤淇汉
+                    if('{!RepairSubOrderAWSDataId}' != ''){
+                        var staticResourceRepairSubOrder = JSON.parse('{!staticResourceRepairSubOrder}');
+                        let queryBackRepairSubOrder = function queryBackRepairSubOrder(data) {
+                            document.querySelector("[data-id='RepairApplicant__c']").value = data.object.repairApplicantName;
+                        };
+                        AWSService.query(staticResourceRepairSubOrder.queryUrl, '{!RepairSubOrderAWSDataId}', queryBackRepairSubOrder, staticResourceRepairSubOrder.token);
+                    }
+
                     // jQuery(".lookupInput").each(function(i,e){
                     //     let je =jQuery(e).find('input');
                     //     je.attr("readonly","");
diff --git a/manifest/packageForCloneButton.xml b/manifest/packageForCloneButton.xml
new file mode 100644
index 0000000..f6ee9c4
--- /dev/null
+++ b/manifest/packageForCloneButton.xml
@@ -0,0 +1,42 @@
+<?xml version="1.0" encoding="UTF-8" standalone="yes"?>
+<Package xmlns="http://soap.sforce.com/2006/04/metadata">
+    <types>
+        <members>NewAndEditBaseController</members>
+        <members>NewAndEditBaseControllerTest</members>
+        <members>NewRepairController</members>
+        <members>NewRepairControllerTest</members>
+        <members>NewAndEditAddressController</members>
+        <members>NewAndEditAddressControllerTest</members>
+        <members>NewAndEditContactController</members>
+        <members>NewAndEditContactControllerTest</members>
+        <members>OnCallController</members>
+        <members>OnCallControllerTest</members>
+        <members>NewAndEditLeadController</members>
+        <members>NewAndEditLeadControllerTest</members>
+        <members>NewConsumApplyController</members>
+        <members>NewConsumApplyControllerTest</members>
+        <members>RentalApplyController</members>
+        <members>RentalApplyControllerTest</members>
+        <members>NewAndEditReportController</members>
+        <members>NewAndEditReportControllerTest</members>
+        <name>ApexClass</name>
+    </types>
+    <types>
+        <members>NewAndEditReport</members>
+        <members>NewRepair</members>
+        <members>NewAndEditTenderinformation</members>
+        <members>NewAndEditAgencyContact</members>
+        <members>NewRentalApply</members>
+        <members>NewConsumApply</members>
+        <members>NewAndEditLead</members>
+        <members>NewAndEditASEActivity</members>
+        <members>NewAndEditInspectionReport</members>
+        <members>NewAndEditAddress</members>
+        <members>NewOnCall</members>
+        <members>NewAndEditQIS</members>
+        <members>NewAndEditContact</members>
+        <members>NewAndEditInquiryForm</members>
+        <name>ApexPage</name>
+    </types>
+    <version>52.0</version>
+</Package>
\ No newline at end of file

--
Gitblit v1.9.1