From b329ab986e250bb27e46ace97cf208f3b26d145a Mon Sep 17 00:00:00 2001
From: FUYU <fuyu@prec-tech.com>
Date: 星期一, 18 十二月 2023 17:38:15 +0800
Subject: [PATCH] 修改复制(不带产品按钮)

---
 force-app/main/default/classes/lexCopyToBaseController.cls-meta.xml |    5 +
 force-app/main/default/lwc/lexCopyToBase/lexCopyToBase.html         |    9 +
 force-app/main/default/lwc/lexCopyToBase/lexCopyToBase.js           |  134 ++++++++++++++++++++++++++
 force-app/main/default/classes/lexCopyToBaseController.cls          |  100 ++++++++++++++++++++
 force-app/main/default/lwc/lexCopyToBase/lexCopyToBase.js-meta.xml  |   11 ++
 5 files changed, 259 insertions(+), 0 deletions(-)

diff --git a/force-app/main/default/classes/lexCopyToBaseController.cls b/force-app/main/default/classes/lexCopyToBaseController.cls
new file mode 100644
index 0000000..fb1945c
--- /dev/null
+++ b/force-app/main/default/classes/lexCopyToBaseController.cls
@@ -0,0 +1,100 @@
+public with sharing class lexCopyToBaseController {
+    public lexCopyToBaseController() {
+        
+    }
+    @AuraEnabled
+    public static String init(String recordId){
+        String s='';
+        try {
+            String objectName = 'Opportunity'; // 瑕佽幏鍙栧瓧娈电殑瀵硅薄鍚�
+            Map<String, Schema.SObjectType> globalDescribe = Schema.getGlobalDescribe();
+            Schema.SObjectType objType = globalDescribe.get(objectName);
+            if (objType != null) {
+                Schema.DescribeSObjectResult objDescribe = objType.getDescribe();
+                Map<String, Schema.SObjectField> fieldMap = objDescribe.fields.getMap();
+                s+='SELECT ';
+                // 鐜板湪锛宖ieldMap涓寘鍚簡瀵硅薄鐨勬墍鏈夊瓧娈典俊鎭�
+                for (String fieldName : fieldMap.keySet()) {
+                    if(!fieldName.equals('id')
+                        &&!fieldName.equals('Id'))
+                        s+=fieldName+',';
+                }
+
+                s=s.removeEnd(',');
+                s+=' FROM Opportunity where id=\''+recordId+'\'';
+                system.debug('SQL:'+s);
+                List<Opportunity> opportunitys = Database.query(s);
+                s='';
+                if(opportunitys.size()>0){
+                    system.debug('in!');
+                    for (String fieldName : fieldMap.keySet()) {
+                        String formaF=fieldMap.get(fieldName).getDescribe().getName();
+                        if(opportunitys.get(0).get(fieldName)!=null&&!opportunitys.get(0).get(fieldName).equals('null')){
+                            if(formaF.equals('Id')
+                                ||formaF.equals('OwnerId')
+                                ||formaF.equals('CreatedDate')
+                                ||formaF.equals('CreatedById')
+                                )
+                            {
+                                continue;
+                            }
+                            Object val=opportunitys.get(0).get(fieldName);
+                            if(val instanceof Date ){
+                                String str=String.valueOf(val);
+                                str=str.replace(' ','T');
+                                str+='.000Z';
+                                s+=formaF+'='+str+',';
+                            }else if (val instanceof DateTime){
+                                String str=String.valueOf(val);
+                                str=str.replace(' ','T');
+                                str+='.000Z';
+                                s+=formaF+'='+str+',';
+                            }else{
+                                s+=formaF+'='+opportunitys.get(0).get(fieldName)+',';
+                            }
+                            
+                        }
+                    }
+                    s=s.removeEnd(',');
+                    return s;
+                }
+            }
+			return s;
+        } catch (Exception e) {
+            System.debug('lexCopyToBaseController init error:'+e.getMessage());
+        }
+        return s;
+    }
+    // public static getData(){
+
+    // }
+    public static String forma(String str){
+        String res='';
+        String stra='a';
+        Integer a=stra.charAt(0);
+        String strz='z';
+        Integer z=strz.charAt(0);
+        String strAa='A';
+        Integer bA=strAa.charAt(0);
+        String strZz='Z';
+        Integer bZ=strZz.charAt(0);
+        String strx='_';
+        Integer x=strx.charAt(0);
+        List<Integer> charArr = new List<Integer>();
+        Integer change=bA-a;
+        Integer st=(str.charAt(0)+change);
+        charArr.add(st);
+        for(Integer i=0;i<str.length()-2;i++){
+            Integer c=str.charAt(i);
+            Integer nextC=str.charAt(i+1);
+            if(c==x&&nextC>=a&&nextC<z&&i!=str.length()-2){
+                nextC+=change;
+            }
+            charArr.add(nextC);
+        }
+        res=String.fromCharArray(charArr);
+        res+=str.substring(str.length()-1,str.length());
+
+        return res;
+    }
+}
\ No newline at end of file
diff --git a/force-app/main/default/classes/lexCopyToBaseController.cls-meta.xml b/force-app/main/default/classes/lexCopyToBaseController.cls-meta.xml
new file mode 100644
index 0000000..d75b058
--- /dev/null
+++ b/force-app/main/default/classes/lexCopyToBaseController.cls-meta.xml
@@ -0,0 +1,5 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<ApexClass xmlns="http://soap.sforce.com/2006/04/metadata">
+    <apiVersion>51.0</apiVersion>
+    <status>Active</status>
+</ApexClass>
diff --git a/force-app/main/default/lwc/lexCopyToBase/lexCopyToBase.html b/force-app/main/default/lwc/lexCopyToBase/lexCopyToBase.html
new file mode 100644
index 0000000..f3e1a60
--- /dev/null
+++ b/force-app/main/default/lwc/lexCopyToBase/lexCopyToBase.html
@@ -0,0 +1,9 @@
+<template>
+    <div class="Holder" style="	
+    position: relative;
+    width:100%;
+    height:200px;
+    --sds-c-progress-ring__stroke-color: #0070d2;">
+        <lightning-spinner alternative-text="Loading" size="medium" variant="brand"></lightning-spinner>
+    </div>
+</template>
\ No newline at end of file
diff --git a/force-app/main/default/lwc/lexCopyToBase/lexCopyToBase.js b/force-app/main/default/lwc/lexCopyToBase/lexCopyToBase.js
new file mode 100644
index 0000000..ad5c1ea
--- /dev/null
+++ b/force-app/main/default/lwc/lexCopyToBase/lexCopyToBase.js
@@ -0,0 +1,134 @@
+import { api, wire,LightningElement } from 'lwc';
+import { CurrentPageReference } from "lightning/navigation";
+import { CloseActionScreenEvent } from 'lightning/actions';
+import { updateRecord } from 'lightning/uiRecordApi';
+import { ShowToastEvent } from 'lightning/platformShowToastEvent';
+import { NavigationMixin } from 'lightning/navigation';
+import { encodeDefaultFieldValues } from 'lightning/pageReferenceUtils';
+import { getRecord } from 'lightning/uiRecordApi';
+import init from '@salesforce/apex/lexCopyToBaseController.init';
+import lwcCSS from '@salesforce/resourceUrl/lwcCSS';
+import {loadStyle} from 'lightning/platformResourceLoader';
+export default class lexCopyToBase extends NavigationMixin(LightningElement) {
+    @api recordId;
+    dateF;
+    @wire(CurrentPageReference)
+    getStateParameters(currentPageReference) {
+        if (currentPageReference) {
+          const urlValue = currentPageReference.state.recordId;
+          if (urlValue) {
+            let str = `${urlValue}`;
+            this.recordId = str;
+          }
+        }
+    }
+    connectedCallback(){
+      Promise.all([
+          loadStyle(this, lwcCSS)
+      ]);
+      init({
+          recordId: this.recordId
+      }).then(result=>{
+          this.dateF = result;
+          this.createOPDFromRentalApply().then(res=>{
+            this.dispatchEvent(new CloseActionScreenEvent());
+          });
+      });
+    }
+    async createOPDFromRentalApply(){
+      let tt='dd';
+  		const data = encodeDefaultFieldValues({
+  			Lead_CreateBy__c:'',
+  			Lead_CreateDate__c:'',
+  			Estimation_No__c:'',
+  			Estimation_Name__c:'',
+  			Estimation_List_Price__c:'',
+  			Agency1__c:'',
+  			Sales_Contract_No__c:'',
+  			Agency2__c:'',
+  			Bid_Publish_Date__c:'',
+  			Bidding_Company__c:'',
+  			Bidding_No__c:'',
+  			Bidding_Project_Name__c:'',
+  			Bidding_Content__c:'',
+  			Bid_Planned_Date__c:'',
+  			Closing_Bid_Company__c:'',
+  			Closing_Bid_Price__c:'',
+  			Opp_Confirmation_Day__c:'',
+  			Last_Follow_Up_Date__c:'',
+  			Estimation_Proposal_Date__c:'',
+  			Authorized_Date__c:'',
+  			Autholization_Activated_Date__c:'',
+  			Bid_Date__c:'',
+  			Closing_Bid_Date__c:'',
+  			Assistant_Applied_Date__c:'',
+  			Contract_DB_SalesDept_complite_day__c:'',
+  			Contract_DB_complite_day__c:'',
+  			Agency_Contract_Date1__c:'',
+  			SAP_Send_OK_Date__c:'',
+  			Sales_Shop_Hospital_Contract__c:'',
+  			Forecast_Collect_Money__c:'',
+  			Contract_Invalid_Date__c:'',
+  			Next_action__c:'',
+  			Follow_up_comment__c:'',
+  			Xin_Gross_Follow_Num__c:'',
+  			OPD1__c:'',
+  			Num_Of_OPD__c:'',
+  			OPD_SIS_collect_evaluation_sight__c:'',
+  			Detail_Suggestion__c:'',
+  			Num_Of_NTC__c:'',
+  			Deleted_Reason__c:'',
+  			Lost_Opportunity_Date__c:'',
+  			opp14:'',
+  			Request_quotation_update__c:'',
+  			old_Oppo_No__c:'',
+  			Oppor_Number_Report__c:'',
+  			Manager_name_text__c:'',
+  			Sales_assistant_name_text__c:'',
+  			Sales_window_text__c:'',
+  			If_Authorizing__c:'',
+        Opportunity_No__c:'',
+        Collect_Customer_sign__c:'',
+        Estimation_Decision__c:'',
+        SAP_Send_OK__c:'',
+        Authorized_DB_No__c:'',
+        NotesApprovedNo__c:'',
+        is_CheckTarget_TF__c:'',
+        Whether_FALSE_order__c:'',
+        Stock_apply_status__c:'',
+        Stock_apply_time__c:'',
+        Stock_apply_passtime__c:'',
+        Stock_cancel_reason__c:'',
+        Stock_cancel_reason_text__c:'',
+        Stock_Confrim_Date__c:'',
+        Last_opportunity_file__c:'',
+        Application_Amount_Submit__c:'',
+        Agency_Opportunity__c:'',
+        Budget_Amount_Approval__c:'',
+        Hospital_Budget__c:'',
+        Key_tipics_last_update_day__c:'',
+        Lead_Num__c:'',
+        opp6:'',
+        opp17:'',
+        Other_Society__c:'',
+        Contract_DB_Finalcomplite_day__c:'',
+        Contract_Authorize_Lock__c:'',
+        Old_Opportunity_ID__c:'',
+        LeadSource:'',
+        Authorized_Finish_Sales__c:'',
+        IsAuthorized__c:'',
+      });
+      console.log(this.dateF+","+data);
+      this[NavigationMixin.Navigate]({
+          type: 'standard__objectPage',
+          attributes: {
+              objectApiName: 'Opportunity', // 瑕佹柊寤虹殑瀵硅薄API
+              actionName: 'new',
+          },
+          state:{
+              nooverride: '1',
+              defaultFieldValues:this.dateF+","+data
+          }
+      });
+    }
+}
\ No newline at end of file
diff --git a/force-app/main/default/lwc/lexCopyToBase/lexCopyToBase.js-meta.xml b/force-app/main/default/lwc/lexCopyToBase/lexCopyToBase.js-meta.xml
new file mode 100644
index 0000000..0bbf731
--- /dev/null
+++ b/force-app/main/default/lwc/lexCopyToBase/lexCopyToBase.js-meta.xml
@@ -0,0 +1,11 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<LightningComponentBundle xmlns="http://soap.sforce.com/2006/04/metadata" fqn="lexCopyToBase">
+    <apiVersion>51.0</apiVersion>
+    <isExposed>true</isExposed>
+    <targets>
+        <target>lightning__AppPage</target>
+        <target>lightning__RecordPage</target>
+        <target>lightning__HomePage</target>
+        <target>lightning__RecordAction</target>
+    </targets>
+</LightningComponentBundle>
\ No newline at end of file

--
Gitblit v1.9.1