From 1b214a96d371ce90578fb7d6c14eecfcba5f87f0 Mon Sep 17 00:00:00 2001
From: 涂煌豪 <tuhuanghao@prec-tech.com>
Date: 星期一, 11 四月 2022 18:52:32 +0800
Subject: [PATCH] Sfdc2PoContactBatch修改
---
force-app/main/default/pages/CM_SearchContact.page | 280 +++++++++++++++++++++++++++++++++++++++++++++++--------
1 files changed, 237 insertions(+), 43 deletions(-)
diff --git a/force-app/main/default/pages/CM_SearchContact.page b/force-app/main/default/pages/CM_SearchContact.page
index 3092cbb..02af455 100644
--- a/force-app/main/default/pages/CM_SearchContact.page
+++ b/force-app/main/default/pages/CM_SearchContact.page
@@ -1,21 +1,83 @@
<apex:page id="Page" controller="CM_SearchContact" sidebar="false" showHeader="false" action="{!init}">
<apex:stylesheet value="{!URLFOR($Resource.blockUIcss)}"/>
+ <!-- 2022/02/15 寮犲崕寤� dependency start -->
+ <apex:includeScript value="{!URLFOR($Resource.AWSService, 'AWSService.js') }" />
+ <!-- 2022/02/15 寮犲崕寤� dependency end -->
<apex:includeScript value="{!URLFOR($Resource.jquery183minjs)}"/>
<apex:includeScript value="{!URLFOR($Resource.PleaseWaitDialog)}"/>
<script type="text/javascript">
+ // 2022/02/15 寮犲崕寤� 鏀归�燩I start
+ var staticResources = JSON.parse('{!staticResource}');
+ var contactAWSIds = JSON.parse('{!contactAWSIds}');
+ var LastName = '';
+ var contact = {};
+ var now_edit_id = '';
+ var aws_result = {};
+ searchContactAll();
+
+ function preparePayloadForSearchContact(){
+ let searchPayload = new Object();
+ searchPayload.dataIds = contactAWSIds;
+ searchPayload.contactName = LastName;
+ return JSON.stringify(searchPayload);
+ }
+
+ function searchContactAll(){
+ let data = preparePayloadForSearchContact();
+ let searchCallBack = function searchCallBack(result){
+ let contacts = result.object;
+ if(contacts == null){
+ return;
+ }
+ for(var i=0;i<contacts.length;i++){
+ let temp = {}
+ temp.lastName = contacts[i].lastName;
+ temp.phone = contacts[i].phone;
+
+ contact[contacts[i].dataId] = temp;
+ }
+ console.log(JSON.stringify(contact));
+ };
+ AWSService.search(staticResources.searchUrl,data,searchCallBack,staticResources.token);
+ }
+
+
+
function searchContactJs() {
blockme();
- searchContact();
+ LastName = document.getElementById('Page:allForm:searchBlock:LastName').value;
+ let awsDataIdArray = [];
+ for(var key in contact){
+ if(contact[key].lastName.includes(LastName)){
+ awsDataIdArray.push(key);
+ }
+ }
+ console.log(awsDataIdArray)
+ if(awsDataIdArray.length == 0){
+ clearLineInfoList();
+ return;
+ }
+ searchContactAll();
+ searchContact(awsDataIdArray.toString());
}
+ // 2022/02/15 寮犲崕寤� 鏀归�燩I end
function editContactJs(conid) {
blockme();
+ now_edit_id=conid;// 2022/02/15 寰愪寒 鏀归�燩I
editContact(conid);
}
function editSaveJs() {
+
+ document.getElementById("errorMsg").innerHTML = '';
+ if(!document.getElementById("Page:allForm:editBlock:Search_LastName__c").value){
+ document.getElementById("errorMsg").innerHTML = '<strong>閿欒:</strong> 蹇呴』濉啓銆�';
+ return;
+ }
+
blockme();
- saveNew();
+ ProcessPI({},GetEditObj());
}
function editClearJs() {
@@ -23,14 +85,17 @@
editClear();
}
- function setContact(line) {
+ function setContact(line,awsDataId) {
var openLine = '{!openLine}';
var cm = 'allPage:allForm:allBlock:records:'+ (openLine - 1) + ':contact';
var cmid = 'allPage:allForm:allBlock:records:'+ (openLine - 1) + ':contactId';
var conid = j$(escapeVfId('Page:allForm:listBlock:lineinfo:' + (line - 1) + ':conId')).value();
- var conname = j$(escapeVfId('Page:allForm:listBlock:lineinfo:' + (line - 1) + ':conName')).value();
+ //var conname = j$(escapeVfId('Page:allForm:listBlock:lineinfo:' + (line - 1) + ':conName')).value();
+ //2022/02/15 寮犲崕寤� 璧嬪�兼垚鏄庢枃 start
+ var conname = contact[awsDataId].lastName;
+ //2022/02/15 寮犲崕寤� 璧嬪�兼垚鏄庢枃 end
j$(escapeVfId(cmid),window.opener.document).val(conid);
j$(escapeVfId(cm),window.opener.document).val(conname);
@@ -53,19 +118,137 @@
window.close();
}
+
+ function showPIDiv(awsDataId){
+ console.log('awsDataId Value:'+awsDataId);
+ let parentNode = document.getElementById(awsDataId);
+ let createDiv = document.createElement("div");
+ createDiv.id = awsDataId+"_PI";
+ let piInformation = '濮撳悕:'+contact[awsDataId].lastName +'\n' +'鐢佃瘽:'+contact[awsDataId].phone
+ //let piInformation = 'Name:'+contact['943114607025717249'].lastName +'\n' +'Phone:'+contact['943114607025717249'].phone
+ createDiv.innerText = piInformation;
+ let x=window.event.x;
+ let y=window.event.y;
+ createDiv.style.left=x;
+ createDiv.style.top=y;
+ createDiv.style.background="#dddddd";
+ createDiv.style.position = "absolute";
+ parentNode.appendChild(createDiv);
+ parentNode.style.position = "relative";
+ }
+
+ function hidePIDiv(awsDataId){
+ document.getElementById(awsDataId+'_PI').remove();
+ }
+
+ // 2022骞�2鏈�15鏃� PI鏀归�� 寰愪寒 start
+ function sobjectToAws(){
+ let aws_id = document.getElementById("Page:allForm:editBlock:AWS_Data_Id__c").value;
+ if(contact.hasOwnProperty(aws_id)){
+ return contact[aws_id];
+ }
+ else{
+ console.log('not found aws data in contact obj');
+ return {};
+ }
+ }
+
+ function GetAWSResultObj(){
+ if(aws_result && aws_result.object && aws_result.object.length > 0){
+ return aws_result.object[0];
+ }
+ return null;
+ }
+ function ProcessPI(sobjJson, payloadForNewPI) {
+
+ let url = staticResources.newUrl
+ if (now_edit_id) {
+ url = staticResources.updateUrl
+ }
+ AWSService.post(url, payloadForNewPI, function(result){
+ aws_result = result;
+ SetEditObj();
+ saveNew();
+ }, staticResources.token);
+ }
+
+ function Trans(){
+ /*
+ jQuery.ajax({
+ "type":"post",
+ "url":staticResources.transactionUrl,
+ "data":{
+ "txId":aws_result.txId,
+ "isSuccess":1
+ },
+ beforeSend: function(request) {
+ request.setRequestHeader("pi-token",staticResources.token);
+ request.setRequestHeader('Content-Type', 'application/json');
+ },
+ success:function(data){
+ console.log(data);
+ },
+ error:function(jqXHR, textStatus, errorThrown) {
+ console.log(jqXHR);
+ console.log(textStatus);
+ console.log(errorThrown);
+ }
+ });*/
+
+ AWSService.post(staticResources.transactionUrl, JSON.stringify({
+ "txId":aws_result.txId,
+ "isSuccess":1
+ }), function(result){
+ window.location.reload();
+ }, staticResources.token);
+ }
+
+ function assignUnencrypted(){
+ let obj = sobjectToAws();
+ document.getElementById("Page:allForm:editBlock:Search_LastName__c").value = obj.lastName;
+ document.getElementById("Page:allForm:editBlock:Phone").value = obj.phone;
+ unblockUI();
+ }
+
+ function GetEditObj(){
+ return JSON.stringify([{
+ lastName : document.getElementById("Page:allForm:editBlock:Search_LastName__c").value,
+ phone : document.getElementById("Page:allForm:editBlock:Phone").value,
+ dataId:document.getElementById("Page:allForm:editBlock:AWS_Data_Id__c").value,
+ }]);
+ }
+
+ function SetEditObj(){
+ let obj = GetAWSResultObj();
+ if(obj){
+ document.getElementById("Page:allForm:editBlock:AWS_Data_Id__c").value = obj.dataId;
+ document.getElementById("Page:allForm:editBlock:Search_LastName__c").value = obj.lastName;
+ document.getElementById("Page:allForm:editBlock:LastName_Encrypted__c").value = obj.lastNameEncrypt;
+ document.getElementById("Page:allForm:editBlock:Phone").value = obj.phone;
+ document.getElementById("Page:allForm:editBlock:Phone_Encrypted__c").value = obj.phoneEncrypt;
+ }
+
+ }
+
+ // 2022骞�2鏈�15鏃� PI鏀归�� 寰愪寒 end
+
</script>
<apex:form id="allForm">
<apex:actionFunction name="searchContact" action="{!searchContact}" rerender="allForm" onComplete="unblockUI();">
+ <apex:param name="awsDataIdArray" assignTo="{!awsDataIdArray}" value="" />
</apex:actionFunction>
- <apex:actionFunction name="editContact" action="{!editContact}" rerender="allForm" onComplete="unblockUI();">
+ <apex:actionFunction name="editContact" action="{!editContact}" rerender="allForm" onComplete="assignUnencrypted();">
<apex:param name="firstParam" assignTo="{!conId}" value="" />
</apex:actionFunction>
- <apex:actionFunction name="saveNew" action="{!saveNew}" rerender="allForm" onComplete="unblockUI();">
+ <apex:actionFunction name="saveNew" action="{!saveNew}" rerender="allForm" onComplete="Trans();">
</apex:actionFunction>
<apex:actionFunction name="editClear" action="{!editClear}" rerender="allForm" onComplete="unblockUI();">
</apex:actionFunction>
-
+ <!-- 2022/02/15 寮犲崕寤� 娓呯┖LineInfoList start -->
+ <apex:actionFunction name="clearLineInfoList" action="{!clearLineInfoList}" rerender="allForm" onComplete="unblockUI();">
+ </apex:actionFunction>
+ <!-- 2022/02/15 寮犲崕寤� 娓呯┖LineInfoList end -->
<apex:outputPanel id="allPanel">
<apex:pageBlock id="searchBlock" title="妫�绱㈡潯浠�">
<table class="linetable" border="0" style="border-collapse: collapse;width:600px;table-layout:fixed;">
@@ -78,44 +261,49 @@
</colgroup>
<tr>
<td>{!$ObjectType.Contact.fields.LastName.Label}</td>
- <td><apex:inputField value="{!searchCon.Search_LastName__c}" style="width: 90%"/></td>
- <td>{!$ObjectType.Contact.fields.FirstName.Label}</td>
- <td><apex:inputField value="{!searchCon.Search_FirstName__c}" style="width: 90%"/></td>
+ <td><apex:inputField id="LastName" value="{!searchCon.Search_LastName__c}" style="width: 90%"/></td>
+ <!-- 2022/02/15 寮犲崕寤� 涓嶉渶瑕丗irstName start -->
+ <!-- <td>{!$ObjectType.Contact.fields.FirstName.Label}</td>
+ <td><apex:inputField id="FirstName" value="{!searchCon.Search_FirstName__c}" style="width: 90%"/></td> -->
+ <!-- 2022/02/15 寮犲崕寤� 涓嶉渶瑕丗irstName end -->
<td><input type="button" value="妫�绱�" onclick="searchContactJs(); return null;" /></td>
</tr>
</table>
</apex:pageBlock>
<apex:pageBlock id="listBlock" title="妫�绱㈢粨鏋�">
- <div style="height: 200px; overflow-y: auto; overflow-x: hidden;">
- <table class="edittable" border="0" style="border-collapse: collapse;width:580px;table-layout:fixed;">
- <colgroup>
- <col width="50px" />
- <col width="100px" />
- <col width="380px" />
- <col width="50px" />
- </colgroup>
- <tr>
- <th>No.</th>
- <th>{!$ObjectType.Contact.fields.Name.Label}</th>
- <th>{!$ObjectType.Contact.fields.AccountName__c.Label}</th>
- <th>鎿嶄綔</th>
- </tr>
- <apex:repeat id="lineinfo" value="{!lineInfoList}" var="lineinfo">
- <tr>
- <td>{!lineinfo.lineNo}
- <apex:inputHidden id="conId" value="{!lineinfo.con.id}"/>
- <apex:inputHidden id="conName" value="{!lineinfo.con.name}"/>
- <apex:inputHidden id="accountName" value="{!lineinfo.con.AccountName__c}"/>
- <apex:inputHidden id="accountid" value="{!lineinfo.con.accountid}"/>
- </td>
- <td><a href="#" onclick="setContact('{!lineinfo.lineNo}');">{!lineinfo.con.Name}</a></td>
- <td>{!lineinfo.con.AccountName__c}</td>
- <td><input style="width:90%;" type="button" value="缂栬緫" onclick="editContactJs('{!lineinfo.con.Id}'); return null;" /></td>
- </tr>
- </apex:repeat>
- </table>
- </div>
+ <div style="height: 200px; overflow-y: auto; overflow-x: hidden;">
+ <table class="edittable" border="0" style="border-collapse: collapse;width:580px;table-layout:fixed;">
+ <colgroup>
+ <col width="50px" />
+ <col width="100px" />
+ <col width="380px" />
+ <col width="50px" />
+ </colgroup>
+ <tr>
+ <th>No.</th>
+ <th>{!$ObjectType.Contact.fields.Name.Label}</th>
+ <th>{!$ObjectType.Contact.fields.AccountName__c.Label}</th>
+ <th>鎿嶄綔</th>
+ </tr>
+ <apex:repeat id="lineinfo" value="{!lineInfoList}" var="lineinfo">
+ <tr>
+ <td>{!lineinfo.lineNo}
+ <apex:inputHidden id="conId" value="{!lineinfo.con.id}"/>
+ <apex:inputHidden id="conName" value="{!lineinfo.con.name}"/>
+ <apex:inputHidden id="accountName" value="{!lineinfo.con.AccountName__c}"/>
+ <apex:inputHidden id="accountid" value="{!lineinfo.con.accountid}"/>
+ </td>
+ <!-- <td><a href="#" onclick="setContact('{!lineinfo.lineNo}');" id="943114607025717249" onmouseover="showPIDiv('943114607025717249')" onmouseout="hidePIDiv('943114607025717249')">{!lineinfo.con.Name}</a></td> -->
+ <!-- 2022/02/15 寮犲崕寤� 瑙e瘑淇℃伅 start -->
+ <td><a href="#" onclick="setContact('{!lineinfo.lineNo}','{!lineinfo.con.AWS_Data_Id__c}');" id="{!lineinfo.con.AWS_Data_Id__c}" onmouseover="showPIDiv('{!lineinfo.con.AWS_Data_Id__c}')" onmouseout="hidePIDiv('{!lineinfo.con.AWS_Data_Id__c}')">{!lineinfo.con.Name}</a></td>
+ <!-- 2022/02/15 寮犲崕寤� 瑙e瘑淇℃伅 end -->
+ <td>{!lineinfo.con.AccountName__c}</td>
+ <td><input style="width:90%;" type="button" value="缂栬緫" onclick="editContactJs('{!lineinfo.con.Id}'); return null;" /></td>
+ </tr>
+ </apex:repeat>
+ </table>
+ </div>
</apex:pageBlock>
<apex:pageBlock id="editBlock" title="鑱旂郴浜虹紪杈�">
@@ -123,6 +311,11 @@
<apex:commandButton onclick="editClearJs();" value="娓呯┖" rerender="dummy"/>
<apex:commandButton onclick="editSaveJs();" value="淇濆瓨" rerender="dummy"/>
</apex:pageBlockButtons>
+
+ <apex:inputHidden id="LastName_Encrypted__c" value="{!newCon.LastName_Encrypted__c}"/>
+ <apex:inputHidden id="Phone_Encrypted__c" value="{!newCon.Phone_Encrypted__c}"/>
+ <apex:inputHidden id="AWS_Data_Id__c" value="{!newCon.AWS_Data_Id__c}"/>
+
<table class="edittable" border="0" style="border-collapse: collapse; width:600px; table-layout:fixed;">
<colgroup>
<col width="50px" />
@@ -135,12 +328,13 @@
<tr>
<td>{!$ObjectType.Contact.fields.LastName.Label}</td>
<td><span><div class="requiredInput"><div class="requiredBlock"></div>
- <apex:inputField value="{!newCon.Search_LastName__c}" style="width: 90%"/>
+ <apex:inputField id="Search_LastName__c" value="{!newCon.Search_LastName__c}" style="width: 90%"/>
+ <div id="errorMsg" class="errorMsg"></div>
</div></span></td>
- <td>{!$ObjectType.Contact.fields.FirstName.Label}</td>
- <td><apex:inputField value="{!newCon.Search_FirstName__c}" style="width: 90%"/></td>
+ <!-- <td>{!$ObjectType.Contact.fields.FirstName.Label}</td>
+ <td><apex:inputField value="{!newCon.Search_FirstName__c}" style="width: 90%"/></td> -->
<td>{!$ObjectType.Contact.fields.Phone.Label}</td>
- <td><apex:inputField value="{!newCon.Phone}" style="width: 90%"/></td>
+ <td><apex:inputField id="Phone" value="{!newCon.Phone}" style="width: 90%"/></td>
</tr>
<tr>
<td>{!$ObjectType.Contact.fields.Supplement__c.Label}</td>
--
Gitblit v1.9.1